@aiquants/daily-report 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import{jsx as jt}from"react/jsx-runtime";var nt=({orientation:e,thumbCenter:t,label:r,isDragging:n,isTapScrollActive:s,isWheelScrollActive:a})=>r.trim()&&(n||s||a)?jt("div",{className:"pointer-events-none absolute flex items-center",style:e==="vertical"?{top:t,left:-16,transform:"translate(-100%, -50%)"}:{left:t,top:-16,transform:"translate(-50%, -100%)"},children:jt("div",{className:"rounded-full border border-slate-200 bg-white px-3 py-1 text-slate-700 text-xs shadow-md shadow-slate-400/30 dark:border-slate-700 dark:bg-slate-900/90 dark:text-slate-100",children:jt("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:r.trim()})})}):null;import Pn from"lucide-react/dist/esm/icons/paperclip.js";import{jsx as pr,jsxs as An}from"react/jsx-runtime";var Ln=2,st=({count:e,label:t})=>e<=0?null:An("span",{className:"inline-flex shrink-0 items-center gap-0.5 rounded px-1 py-0.5 text-slate-500 dark:text-slate-400",title:`${t}: ${e}`,role:"img","aria-label":`${t}: ${e}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":e,children:[pr(Pn,{className:"h-3.5 w-3.5","aria-hidden":"true"}),e>=Ln&&pr("span",{className:"font-semibold text-[10px] leading-none",children:e})]});import{createContext as Mn,useContext as Hn,useMemo as _n}from"react";import{jsx as Wt,jsxs as On}from"react/jsx-runtime";var fr={id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",categoryInfo:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",tabArticle:"Overview",tabRelations:"Related",relationsEmpty:"No related view configured yet."},at={title:"Daily Reports",apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",fieldLabels:fr,sourceTypeConfigs:{Internal:{label:"\u30AA\u30EA\u30B8\u30CA\u30EB",badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}},renderHeader:({title:e,annotation:t})=>On("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[Wt("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?Wt("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),showDevControls:!1},br=Mn(at),gr=({config:e,children:t})=>{let r=_n(()=>({...at,...e,fieldLabels:{...fr,...e?.fieldLabels??{}}}),[e]);return Wt(br.Provider,{value:r,children:t})},j=()=>Hn(br),Pe=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(s=>s.toLowerCase()===r);return n?t[n]:void 0};import{jsx as Be,jsxs as ot}from"react/jsx-runtime";var hr=1024,Gt=["B","KB","MB","GB"],Fn=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=hr&&r<Gt.length-1;)t/=hr,r+=1;return r===0?`${t} ${Gt[r]}`:`${t.toFixed(1)} ${Gt[r]}`},it=({attachments:e})=>{let{apiBasePath:t,fieldLabels:r}=j();return e.length===0?null:ot("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[Be("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:r.attachments}),Be("ul",{className:"flex flex-col gap-1.5",children:e.map(n=>{let s=`${t}/attachment/${n.id}`,a=Fn(n.fileSize),i=n.state==="absent";return ot("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 px-3 py-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":n.state,children:[ot("div",{className:"flex min-w-0 flex-col",children:[i?Be("span",{className:"truncate text-slate-400 text-sm line-through dark:text-slate-500","data-testid":"daily-report-attachment-name",children:n.fileName}):Be("a",{href:s,className:"truncate text-blue-600 text-sm hover:underline dark:text-blue-400","data-testid":"daily-report-attachment-link",children:n.fileName}),ot("span",{className:"text-[10px] text-slate-400 dark:text-slate-500",children:[a??"\u2014",i&&` \xB7 ${r.attachmentMissing}`]})]}),!i&&Be("a",{href:`${s}?download=1`,className:"ml-auto shrink-0 text-[10px] text-slate-500 hover:text-slate-700 hover:underline dark:text-slate-400 dark:hover:text-slate-200","data-testid":"daily-report-attachment-download",children:r.attachmentDownload})]},n.id)})})]})};import $n from"@heroicons/react/24/outline/TrashIcon.js";import{useState as Vn}from"react";var yr=(e,t,r)=>{let n=e.map((a,i)=>({id:`legacy-${i}`,authorName:a.name||"Unknown",content:a.text||"",isMine:!1,color:a.color||void 0,isLegacy:!0})),s=t.map(a=>({id:a.id,authorName:a.userName??"",content:a.content??"",createdAt:a.createdAt??"",isMine:r?a.userId===r:a.isMine,isLegacy:!1}));return[...n,...s]},xr=e=>{if(!e)return"text-gray-700 dark:text-gray-300";let t=e.toLowerCase();return t.includes("red")||t.includes("\u8D64")?"text-red-600 dark:text-red-400":t.includes("green")||t.includes("\u7DD1")?"text-green-600 dark:text-green-400":t.includes("blue")||t.includes("\u9752")?"text-blue-600 dark:text-blue-400":t.includes("yellow")||t.includes("\u9EC4")?"text-yellow-600 dark:text-yellow-400":t.includes("orange")||t.includes("\u6A59")?"text-orange-500 dark:text-orange-400":"text-gray-700 dark:text-gray-300"};var ne=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},se=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?se(e.toISOString()):String(e);let t=e.trim();if(t==="")return"-";let r=t.match(/^(\d{4})[-/](\d{2})[-/](\d{2})$/);if(r)return`${r[1]}-${r[2]}-${r[3]}`;let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let s=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let u=String(n.getHours()).padStart(2,"0"),l=String(n.getMinutes()).padStart(2,"0"),o=String(n.getSeconds()).padStart(2,"0");return`${s}-${a}-${i}T${u}:${l}:${o}`}return`${s}-${a}-${i}`};import{clsx as Bn}from"clsx";import{twMerge as Un}from"tailwind-merge";function W(...e){return Un(Bn(e))}import{jsx as Le,jsxs as lt}from"react/jsx-runtime";var zn=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,vr=({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:s,onPendingDeleteIdChange:a,onTrashClick:i,resolvedIdMap:c})=>{let[u,l]=Vn(!1),o=zn(e.id,s,c),y=w=>{w.stopPropagation(),w.preventDefault(),a(null),l(!0),typeof e.id=="number"&&n(e.id)};return lt("li",{"data-comment-id":e.id,"data-deleted":u?"true":void 0,className:W("group relative rounded-xl border border-slate-200 bg-white p-3 dark:border-slate-700 dark:bg-slate-900/70",e.isMine&&"border-blue-200 bg-blue-50 dark:border-blue-800/70 dark:bg-blue-950/40",u&&"hidden",o?"z-50":"z-0 hover:z-10"),children:[lt("div",{className:"mb-1 flex items-center justify-between",children:[Le("div",{className:W("font-semibold text-xs",xr(e.color)),children:ne(e.authorName)}),lt("div",{className:"flex items-center gap-2",children:[e.createdAt&&Le("div",{className:"text-[10px] text-slate-400",children:se(e.createdAt)}),e.isMine&&!e.isLegacy&&lt("div",{className:"relative",children:[Le("button",{type:"button",className:W("transition-colors",o?"text-red-500":"text-slate-400 hover:text-red-500"),title:"\u524A\u9664","aria-label":"\u524A\u9664",onClick:w=>i(w,e.id),children:Le($n,{className:"h-4 w-4"})}),o&&Le("button",{type:"button","data-delete-confirmation":!0,className:"fade-in zoom-in-95 absolute top-full right-0 z-20 mt-1 animate-in whitespace-nowrap rounded-md bg-red-600 px-3 py-1.5 font-bold text-white text-xs shadow-lg duration-200 hover:bg-red-700 active:scale-95",onClick:y,children:"\u524A\u9664\u3059\u308B"})]})]})]}),Le("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-relaxed dark:text-slate-200",children:e.content})]})};import{useCallback as jn,useEffect as Rr,useRef as Dr,useState as Wn}from"react";import{jsx as Te,jsxs as qn}from"react/jsx-runtime";var Gn=(e,t)=>{let r=Dr(null);return Rr(()=>{if(e===null)return;let s=a=>{a.target.closest("[data-delete-confirmation]")||t(null)};return document.addEventListener("mousedown",s),document.addEventListener("touchstart",s),()=>{document.removeEventListener("mousedown",s),document.removeEventListener("touchstart",s)}},[e,t]),Rr(()=>()=>{r.current&&clearTimeout(r.current)},[]),{handleTrashClick:jn((s,a)=>{s.stopPropagation(),s.preventDefault(),e!==a&&(t(a),r.current&&clearTimeout(r.current),r.current=window.setTimeout(()=>{t(null),r.current=null},5e3))},[e,t])}},dt=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:s,onPendingDeleteIdChange:a,resolvedIdMap:i})=>{let{handleTrashClick:c}=Gn(s,a);return e.length===0?null:Te("ul",{className:"mb-3 space-y-2",children:e.map(u=>Te(vr,{comment:u,reportHubId:t,businessDate:r,onOptimisticDelete:n||(()=>{}),pendingDeleteId:s,onPendingDeleteIdChange:a,onTrashClick:c,resolvedIdMap:i},u.id))})},ut=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,s]=Wn(!1),a=Dr(null);return qn("form",{className:"flex gap-2",ref:a,onSubmit:async c=>{c.preventDefault();let l=new FormData(c.currentTarget).get("content")?.trim();if(l&&r){s(!0),a.current?.reset();try{await r(l)}catch{if(a.current){let o=a.current.elements.namedItem("content");o&&(o.value=l)}}finally{s(!1)}}},children:[Te("input",{type:"hidden",name:"intent",value:"addComment"}),Te("input",{type:"hidden",name:"reportHubId",value:e}),Te("input",{type:"hidden",name:"businessDate",value:t}),Te("input",{type:"text",name:"content",placeholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",className:"flex-1 rounded-lg border border-slate-300 bg-slate-50 px-3 py-2 text-sm focus:border-blue-500 focus:bg-white focus:outline-none dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200",autoComplete:"off"}),Te("button",{type:"submit",className:"rounded-lg bg-blue-600 px-4 py-2 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",disabled:n,children:"\u9001\u4FE1"})]})};import{VirtualScroll as na}from"@aiquants/virtualscroll";import sa from"lucide-react/dist/esm/icons/check.js";import ln from"lucide-react/dist/esm/icons/star.js";import aa from"lucide-react/dist/esm/icons/trash-2.js";import{useCallback as Re,useEffect as Ie,useMemo as or,useRef as oe,useState as Xe}from"react";import{createContext as Hs,useCallback as we,useContext as _s,useEffect as nr,useRef as ae,useState as At}from"react";var wr=e=>{if(typeof e!="object"||e===null)return"unknown";let t=e;return typeof t.kind=="string"?t.kind==="chunk"?"chunk":t.kind==="error"?"error":"unknown":Array.isArray(t.items)?"chunk":typeof t.error=="string"?"error":"unknown"};var ct=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Sr=e=>{for(let t=1;t<e.length;t++)if(ct(e[t-1],e[t])>0)return!1;return!0},qt=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,s=r.length;for(;n<s;){let a=n+s>>1;ct(r[a],t)<=0?n=a+1:s=a}return r.splice(n,0,t),r};var Ae=(e,t,r=console)=>{let n=s=>typeof s=="string"?[`${t} ${s}`]:[t,s];return{debug:(s,...a)=>{e<=0&&r.debug(...n(s),...a)},info:(s,...a)=>{e<=1&&r.info(...n(s),...a)},warn:(s,...a)=>{e<=2&&r.warn(...n(s),...a)},error:(s,...a)=>{e<=3&&r.error(...n(s),...a)}}};import{useCallback as Jn,useEffect as Er,useRef as Qn,useState as wt}from"react";var Kn=/^\d{4}-\d{2}-\d{2}$/,Yn=/^\d{4}\/\d{2}\/\d{2}$/,mt=e=>e<10?`0${e}`:`${e}`,Ir=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=mt(e.getMonth()+1),n=mt(e.getDate());return`${t}-${r}-${n}`},Kt=(e=new Date)=>Number.isNaN(e.getTime())?Kt(new Date):`${e.getFullYear()}-${mt(e.getMonth()+1)}-${mt(e.getDate())}`,Ue=e=>{if(e==null)return null;if(e instanceof Date)return Ir(e);let t=e.trim();if(t==="")return null;if(Kn.test(t))return t;if(Yn.test(t))return t.replaceAll("/","-");let r=new Date(t);return Ir(r)};import{tapScrollCircleSampleVisual as Xn}from"@aiquants/virtualscroll";var Me=120,Cr=1e3,Yt=160,pt=6,$e=Yt-pt,ft=.8,bt={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},gt=20,Tr=6,ht={reportHubId:-1,businessDate:null},kr={report:null,error:null,isLoading:!1,isRefetching:!1},yt=240,xt=15,vt=8,Nr=3,Rt={enabled:!0,renderVisual:Xn,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8},Dt=["pen","touch"];var Lr=Ae(1,"use-daily-report"),Ar=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Xt=Ar("__DAILY_REPORT_CACHE_TTL__",3e5),Zn=Ar("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),L={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{L.listeners.forEach(t=>{t(e)})},getReport(e,t=!1){let r=this.reports.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},getList(e,t=!1){let r=e&&this.lists.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},set(e,t,r=!0){if(this.reports.set(e.reportHubId,{data:e,expiresAt:t}),r){let n=Ue(e.date),s=n?this.lists.get(n):null;if(s&&n){let i=s.data.some(c=>c.reportHubId===e.reportHubId)?s.data.map(c=>c.reportHubId===e.reportHubId?e:c):[e,...s.data];this.lists.set(n,{...s,data:i})}}this.notify(e.reportHubId)},update(e,t,r=!0){let n=this.reports.get(e);if(n?.data){if(r&&t.updatedAt&&n.data.updatedAt&&new Date(t.updatedAt).getTime()<new Date(n.data.updatedAt).getTime()){Lr.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Zn))}},delete(e,t){this.reports.delete(e);let r=Ue(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(s=>s.reportHubId!==e)}),this.notify(e)},merge(e,t){let r=e;if(r.postedComments.some(n=>this.recentDeletes.has(n.id))&&(r={...r,postedComments:r.postedComments.filter(n=>!this.recentDeletes.has(n.id))}),t){let n=new Set(r.postedComments.map(a=>a.id)),s=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);s.length>0&&(r={...r,postedComments:[...r.postedComments,...s].sort((a,i)=>new Date(a.createdAt||0).getTime()-new Date(i.createdAt||0).getTime())})}return r},cacheMany(e,t,r){this.prune();let n=Date.now(),s=n+Xt;for(let[i,c]of this.recentDeletes)n-c>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let c=this.lastMutations.get(i.reportHubId);if(c&&r>0&&c>r)return this.reports.get(i.reportHubId)?.data??i;let u=this.reports.get(i.reportHubId)?.data,l=this.merge(i,u);return this.set(l,s,!1),l});return t&&this.lists.set(t,{data:a,expiresAt:s}),a}},Mr=(e,t,r=!0)=>L.set(e,t,r),pe=(e,t)=>L.getReport(e,t?.ignoreExpiry),fe=(e,t)=>L.update(e,t),It=(e,t)=>L.delete(e,t),Ve=()=>{L.clear(),St.clear()},ze=e=>{L.locks.add(e),L.lastMutations.set(e,Date.now())},je=e=>{L.locks.delete(e),L.lastMutations.set(e,Date.now())},Hr=e=>L.recentDeletes.set(e,Date.now()),_r=(e,t)=>{let r=n=>{n===e&&t()};return L.listeners.add(r),()=>{L.listeners.delete(r)}},ke=(e,t)=>{L.prune(),L.set(t,Date.now()+Xt)},Or=e=>{L.prune();let t=L.getReport(e.reportHubId,!0),r=new Map;for(let s of t?.postedComments??[])r.set(s.id,s.isMine??!1);let n=(e.postedComments??[]).map(s=>({...s,isMine:r.get(s.id)??!1}));L.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Xt)},es=async(e,t)=>{let r=L.getReport(t);if(r)return r;let n=L.pendingReports.get(t);if(n)return n;let s=Date.now(),a=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(i=>i.ok?i.json():Promise.reject(`HTTP ${i.status}`)).then(i=>{if(i.error)throw new Error(i.error.message);let c=i.report;return L.cacheMany([c],null,s)[0]}).finally(()=>L.pendingReports.delete(t));return L.pendingReports.set(t,a),a},St=new Map,ts=1e4,rs=(e,t)=>{let r=St.get(t),n=Date.now();if(r&&n-r.at<ts)return r.inFlight;let s=Jt(e,t,{forceRefresh:!0}),a={at:n,inFlight:s};return St.set(t,a),s.finally(()=>{St.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),s},Jt=async(e,t,r={})=>{let n=r.forceRefresh?null:L.getList(t);if(n)return n;let s=L.pendingLists.get(t);if(s)return s;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(c=>c.ok?c.json():Promise.reject(`HTTP ${c.status}`)).then(c=>{if(c.error)throw new Error(c.error.message);return L.cacheMany(c.reports??[],t,a)}).finally(()=>L.pendingLists.delete(t));return L.pendingLists.set(t,i),i},He=(e,t)=>{let{apiBasePath:r}=j(),[n,s]=wt(()=>L.getReport(e)),[a,i]=wt(null),[c,u]=wt(!1),[l,o]=wt(!1),y=Qn({id:e,token:0});return Er(()=>{let w=g=>{if(g===e){let D=L.getReport(e,!0);s(D)}};return L.listeners.add(w),()=>{L.listeners.delete(w)}},[e]),Er(()=>{let w=Ue(t),g=(y.current.token||0)+1;if(y.current={id:e,token:g},e<=0){s(null),i(e===0?new Error("Invalid ID"):null),u(!1),o(!1);return}let D=L.getReport(e,!0),T=!1;if(D)T=!L.isValid(L.reports.get(e)?.expiresAt??0);else if(w){let N=L.getList(w,!0)?.find(_=>_.reportHubId===e);N&&(D=N,T=!L.isValid(L.lists.get(w)?.expiresAt??0))}if(s(D),D&&!T){i(null),u(!1),o(!1);return}u(!D),o(!0);let A=setTimeout(async()=>{if(y.current.token===g)try{let S=null;if(w){let N=L.getList(w)!==null;if(S=(await Jt(r,w)).find(U=>U.reportHubId===e)??null,!S&&N){let U=await rs(r,w);U&&(S=U.find(O=>O.reportHubId===e)??null)}}else S=await es(r,e);y.current.token===g&&(s(S),i(null))}catch(S){y.current.token===g&&i(S instanceof Error?S:new Error("Load failed"))}finally{y.current.token===g&&(u(!1),o(!1))}},D?Me:0);return()=>clearTimeout(A)},[e,t,r]),{report:n,error:a,isLoading:c,isRefetching:l}},Fr=()=>{let{apiBasePath:e}=j();return Jn(t=>{let r=Ue(t);r&&!L.getList(r)&&Jt(e,r).catch(n=>Lr.warn("Prefetch error",r,n))},[e])};import{useEffect as bs}from"react";import{z as b}from"zod";var ns=b.object({name:b.string().nullish(),affiliation:b.string().nullish()}),ss=b.object({name:b.string().nullish(),text:b.string().nullish(),color:b.string().nullish()}),as=b.object({id:b.number(),name:b.string().nullish(),color:b.string().nullish()}),Br=b.object({id:b.number(),userId:b.string().nullish(),userName:b.string().nullish(),content:b.string().nullish(),createdAt:b.string().nullish(),isMine:b.boolean()}),os=b.object({id:b.string(),fileName:b.string(),fileType:b.string().nullable(),fileSize:b.number().nullable(),createdAt:b.string().nullable(),state:b.enum(["present","absent","unknown"])}),Qt=b.object({reportHubId:b.number(),date:b.string().nullish(),createdAt:b.string().nullish(),author:b.string().nullish(),userId:b.string().nullish(),sourceType:b.string().nullish(),employeeName:b.string().nullish(),updatedBy:b.string().nullish(),updatedAt:b.string().nullish(),category:b.string().nullish(),creationCategory:b.string().nullish(),visitTimeFrom:b.string().nullish(),visitTimeTo:b.string().nullish(),customerName:b.string().nullish(),interviewers:b.array(ns),subject:b.string().nullish(),content:b.string().nullish(),externalComments:b.array(ss),isRead:b.boolean(),isStarred:b.boolean(),labels:b.array(as),postedComments:b.array(Br),attachments:b.array(os).default([])}),is=b.object({type:b.literal("connected")}),ls=b.object({type:b.literal("status-update"),reportHubId:b.number(),statusType:b.enum(["star","read"]),value:b.boolean(),clientTempId:b.string(),recipientRawUserId:b.number().optional()}),Zt=b.string().optional(),ds=b.object({type:b.literal("comment-add"),reportHubId:b.number(),comment:Br,clientTempId:b.string(),recipientRawUserId:b.number().optional(),sourceType:Zt}),us=b.object({type:b.literal("comment-delete"),reportHubId:b.number(),commentId:b.number(),clientTempId:b.string(),recipientRawUserId:b.number().optional(),sourceType:Zt}),cs=b.object({type:b.literal("report-create"),reportHubId:b.number(),report:Qt,clientTempId:b.string(),recipientRawUserId:b.number().optional()}),ms=b.object({type:b.literal("report-update"),reportHubId:b.number(),report:Qt,clientTempId:b.string(),recipientRawUserId:b.number().optional()}),ps=b.object({type:b.literal("report-publish"),reportHubId:b.number(),report:Qt,clientTempId:b.string(),recipientRawUserId:b.number().optional()}),fs=b.object({type:b.literal("report-delete"),reportHubId:b.number(),clientTempId:b.string(),sourceType:Zt}),Ur=b.discriminatedUnion("type",[is,ls,ds,us,cs,ms,ps,fs]);var We=Ae(1,"daily-report-sse-connection"),$r=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r}=j();bs(()=>{if(!e)return;let n=null,s=null,a=0,i,c=()=>{n?.close(),n=new EventSource(`${r}${i?`?lastEventId=${i}`:""}`),n.onopen=()=>{a=0,We.info("SSE Connected")},n.onmessage=u=>{u.lastEventId&&(i=u.lastEventId);try{let l=JSON.parse(u.data),o=Ur.safeParse(l);if(!o.success){We.error("SSE Validation Error:",o.error.flatten(),"raw message:",l);return}if(o.data.type==="connected"){We.info("SSE Subscribe Ready");return}t(o.data)}catch(l){We.error("SSE Parse Error",l)}},n.onerror=u=>{n?.close(),n=null,a++;let l=Math.min(2e3*2**(a-1),3e4);We.error(`SSE Error. Retrying in ${l}ms (attempt ${a})...`,u),s=setTimeout(c,l)}};return c(),()=>{n&&n.close(),s&&clearTimeout(s)}},[e,t,r])};import{useSyncExternalStore as ws}from"react";var gs=50,hs=1e3,ys=3e4,xs=6,vs=3e4,Ct=Symbol("read-stall"),Rs="/daily_report/api",Ds=/^\d{4}-\d{2}-\d{2}$/,Tt=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null};this.lastCursor=null;this.lastSnapshot=null;this.consecutiveFailures=0;this.started=!1;this.disposed=!1;this.loopGeneration=0;this.activeAbortController=null;this.activeSeenIds=null;this.externalRemovalTombstones=new Set;this.pendingForceRefresh=!1;this.wakeRetryWait=null;this.handleOnline=()=>this.wakeRetryWait?.();this.publishCoalesceTimer=null;this.lastItemsPublishAt=0;this.apiBasePath=t.apiBasePath??Rs,this.fetchFn=t.fetchFn??((r,n)=>fetch(r,n)),this.setTimeoutFn=t.setTimeoutFn??((r,n)=>setTimeout(r,n)),this.clearTimeoutFn=t.clearTimeoutFn??(r=>clearTimeout(r)),this.warn=t.warn??((...r)=>console.warn(...r)),this.readStallTimeoutMs=t.readStallTimeoutMs??vs,this.publishCoalesceMs=t.publishCoalesceMs??gs,typeof window<"u"&&window.addEventListener("online",this.handleOnline)}getState(){return this.state}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}start(){this.started||this.disposed||(this.started=!0,this.runStreamLoop({revalidate:!1,forceRefresh:!1}))}retry(){this.disposed||this.state.phase!=="failed"||(this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:!1}))}refresh(t={}){if(!this.disposed){if(this.state.phase==="failed"){this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:t.forceRefresh??!1});return}if(this.state.phase==="complete"){if(this.state.isRevalidating){t.forceRefresh&&(this.pendingForceRefresh=!0);return}this.lastCursor=null,this.consecutiveFailures=0,this.runStreamLoop({revalidate:!0,forceRefresh:t.forceRefresh??!1})}}}applyExternalUpsert(t){if(this.disposed||!t||typeof t.reportHubId!="number")return;this.externalRemovalTombstones.delete(t.reportHubId),this.activeSeenIds?.add(t.reportHubId);let r=this.itemMap.get(t.reportHubId),n={reportHubId:t.reportHubId,businessDate:t.businessDate,sourceType:t.sourceType??r?.sourceType};(!r||r.businessDate!==n.businessDate||r.sourceType!==n.sourceType)&&(this.itemMap.set(t.reportHubId,n),this.publishItems())}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.itemMap.delete(t)&&this.publishItems())}dispose(){this.disposed=!0,this.loopGeneration+=1,this.activeAbortController?.abort(),this.cancelScheduledPublishItems(),this.wakeRetryWait?.(),typeof window<"u"&&window.removeEventListener("online",this.handleOnline),this.listeners.clear()}async runStreamLoop(t){let r=++this.loopGeneration;for(this.activeAbortController?.abort(),this.wakeRetryWait?.(),this.lastCursor===null&&(this.activeSeenIds=new Set,this.externalRemovalTombstones.clear(),this.lastSnapshot=null),t.forceRefresh&&(this.pendingForceRefresh=!1),this.publish({phase:t.revalidate?this.state.phase:"streaming",isRevalidating:t.revalidate,error:null});!this.disposed&&r===this.loopGeneration;){let n=await this.streamOnce(t.forceRefresh);if(this.disposed||r!==this.loopGeneration)return;if(n.kind==="complete"){this.pruneUnseenItems(),this.consecutiveFailures=0,this.cancelScheduledPublishItems(),this.lastItemsPublishAt=Date.now(),this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size}),this.pendingForceRefresh&&!this.disposed&&(this.pendingForceRefresh=!1,this.lastCursor=null,this.runStreamLoop({revalidate:!0,forceRefresh:!0}));return}if(n.kind==="aborted")return;if(n.kind==="auth-required"){this.publish({phase:"auth-required",isRevalidating:!1});return}if(this.consecutiveFailures+=1,this.consecutiveFailures>=xs){t.revalidate&&this.state.hasCompletedOnce?(this.warn("[DailyReportIdsStream] revalidation gave up:",n.error.message),this.pendingForceRefresh=!1,this.publish({isRevalidating:!1,error:n.error})):this.publish({phase:"failed",isRevalidating:!1,error:n.error});return}this.publish({phase:t.revalidate?this.state.phase:"retrying",error:n.error}),await this.waitBeforeRetry(Math.min(hs*2**(this.consecutiveFailures-1),ys))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.itemMap.delete(r)}async streamOnce(t){let r=new AbortController;this.activeAbortController=r;try{let n=this.fetchFn(this.buildStreamUrl(t),{signal:r.signal,headers:{Accept:"application/x-ndjson"},cache:"no-store"}),s=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(y=>{s=this.setTimeoutFn(()=>y(Ct),this.readStallTimeoutMs*3)})]).finally(()=>{s!==null&&this.clearTimeoutFn(s)});if(a===Ct)return r.abort(),n.catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no response headers within timeout")};if(a.status===401||a.status===403)return{kind:"auth-required"};if(!(a.ok&&a.body))return{kind:"retryable",error:new Error(`ids stream HTTP ${a.status}`)};let i=a.body.getReader(),c=new TextDecoder,u="",l=!1,o=!1;for(;;){let y=await this.readWithStallGuard(i);if(y===Ct)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let{done:w,value:g}=y;if(w)break;let D=(u+c.decode(g,{stream:!0})).split(`
2
- `);u=D.pop()??"";let T=!1;for(let k of D){if(k.trim()==="")continue;let A;try{A=JSON.parse(k)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let S=wr(A);if(S==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(S==="error"){l=!0;continue}let N=A;T=this.absorbChunkLine(N)||T,typeof N.total=="number"&&Number.isFinite(N.total)&&N.total!==this.state.totalCount&&this.publish({totalCount:N.total}),N.nextCursor&&(N.nextCursor.businessDate===null||Ds.test(N.nextCursor.businessDate))&&(this.lastCursor=N.nextCursor),N.isLast&&(o=!0)}T&&(this.consecutiveFailures=0,this.schedulePublishItems())}return l?{kind:"retryable",error:new Error("Stream interrupted by server error")}:o?{kind:"complete"}:{kind:"retryable",error:new Error("Stream ended before completion")}}catch(n){return n instanceof Error&&n.name==="AbortError"?{kind:"aborted"}:{kind:"retryable",error:n instanceof Error?n:new Error(String(n))}}finally{this.activeAbortController===r&&(this.activeAbortController=null)}}async readWithStallGuard(t){if(this.readStallTimeoutMs<=0)return t.read();let r=null,n=new Promise(s=>{r=this.setTimeoutFn(()=>s(Ct),this.readStallTimeoutMs)});try{return await Promise.race([t.read(),n])}finally{r!==null&&this.clearTimeoutFn(r)}}absorbChunkLine(t){t.restarted===!0&&(this.lastCursor=null,this.lastSnapshot=null,this.activeSeenIds=new Set,this.externalRemovalTombstones.clear()),typeof t.snapshot=="string"&&(this.lastSnapshot=t.snapshot);let r=t.provisional===!0,n=!1;for(let s of t.items){if(!s||typeof s.reportHubId!="number"||this.externalRemovalTombstones.has(s.reportHubId))continue;r||this.activeSeenIds?.add(s.reportHubId);let a=this.itemMap.get(s.reportHubId);(!a||a.businessDate!==s.businessDate||a.sourceType!==s.sourceType)&&(this.itemMap.set(s.reportHubId,s),n=!0)}return n}publishItems(){this.lastItemsPublishAt=Date.now(),this.publish({items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size})}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=Date.now()-this.lastItemsPublishAt;if(t>=this.publishCoalesceMs){this.publishItems();return}this.publishCoalesceTimer===null&&(this.publishCoalesceTimer=this.setTimeoutFn(()=>{this.publishCoalesceTimer=null,this.publishItems()},this.publishCoalesceMs-t))}cancelScheduledPublishItems(){this.publishCoalesceTimer!==null&&(this.clearTimeoutFn(this.publishCoalesceTimer),this.publishCoalesceTimer=null)}publish(t){this.state={...this.state,...t};for(let r of this.listeners)r()}buildStreamUrl(t){let r=new URLSearchParams;this.lastCursor&&(r.set("cursor_report_hub_id",String(this.lastCursor.reportHubId)),this.lastCursor.businessDate!==null&&r.set("cursor_business_date",this.lastCursor.businessDate),this.lastSnapshot!==null&&r.set("cursor_snapshot",this.lastSnapshot)),t&&r.set("forceRefresh","true");let n=r.toString();return`${this.apiBasePath}/ids-stream${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,s=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===s&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=s,n=this.setTimeoutFn(s,t)})}};var Ss=6e4,Y=null,Vr=!1,er=new Set,zr={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null},jr=()=>{typeof window<"u"&&window.location.reload()},tr=()=>{for(let e of er)e()},Nt=()=>{Y&&(Y.unsubscribe(),Y.client.dispose(),Y=null,tr())},kt=e=>{if(typeof window>"u")return;let t=e.apiBasePath??at.apiBasePath;if(Y&&(Y.userKey!==e.userKey||Y.apiBasePath!==t)&&(Y.userKey!==e.userKey&&Ve(),Nt()),!Y){let r=new Tt({apiBasePath:t});Y={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(tr)},Is(),r.start(),tr();return}Et(Y)},Et=e=>{let t=e.client.getState();if(t.phase==="failed"){e.client.retry();return}t.phase==="complete"&&!t.isRevalidating&&t.completedAt!==null&&Date.now()-t.completedAt>Ss&&e.client.refresh()},Is=()=>{if(Vr||typeof document>"u"||typeof window>"u")return;Vr=!0;let e=()=>{Y&&Et(Y)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Wr=e=>{if(!(typeof window>"u")){if(!Y){kt(e);return}if(Y.userKey!==e.userKey){Ve(),Nt(),kt(e);return}Et(Y)}},Gr=()=>{typeof window>"u"||!Y||Et(Y)},Ge=e=>{Y?.client.applyExternalUpsert(e)},Pt=e=>{Y?.client.applyExternalRemoval(e)},Lt=()=>{Y?.client.retry()},rr=(e={})=>{Y?.client.refresh(e)},qr=()=>Y?.userKey,Cs=e=>(er.add(e),()=>er.delete(e)),Ts=()=>Y?.client.getState()??zr,ks=()=>zr,_e=()=>ws(Cs,Ts,ks),zo=()=>{Nt()};typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Nt()});import{createContext as Ns,useCallback as Kr,useContext as Es,useEffect as Ps,useMemo as Ls,useRef as Yr,useState as As}from"react";import{jsx as Xr,jsxs as Jr}from"react/jsx-runtime";var Ms=8e3,Qr=Ns({notifyError:()=>{}}),Zr=()=>Es(Qr),en=({children:e})=>{let{onError:t}=j(),[r,n]=As(null),s=Yr(t);s.current=t;let a=Yr(null),i=Kr(l=>{let o=s.current;if(o){o(l);return}n(l)},[]),c=Kr(()=>{a.current!==null&&(clearTimeout(a.current),a.current=null),n(null)},[]);Ps(()=>{if(r)return a.current=setTimeout(()=>n(null),Ms),()=>{a.current!==null&&(clearTimeout(a.current),a.current=null)}},[r]);let u=Ls(()=>({notifyError:i}),[i]);return Jr(Qr.Provider,{value:u,children:[e,r&&Jr("div",{role:"alert","data-testid":"daily-report-error-banner",className:"fade-in slide-in-from-bottom-2 fixed inset-x-0 bottom-4 z-[100] mx-auto flex w-fit max-w-[92vw] animate-in items-center gap-3 rounded-lg border border-red-300 bg-red-600 px-4 py-2.5 text-sm text-white shadow-lg duration-200 dark:border-red-500/60 dark:bg-red-700",children:[Xr("span",{className:"font-medium",children:r.message}),Xr("button",{type:"button","aria-label":"\u9589\u3058\u308B",onClick:c,className:"shrink-0 rounded px-1.5 py-0.5 font-bold text-white/90 transition-colors hover:bg-red-700 hover:text-white dark:hover:bg-red-800",children:"\u2715"})]})]})};import{jsx as Us}from"react/jsx-runtime";var ve=Ae(1,"daily-report-action-context"),Os={create:"\u65E5\u5831\u306E\u4F5C\u6210",update:"\u65E5\u5831\u306E\u4FDD\u5B58",publish:"\u65E5\u5831\u306E\u516C\u958B",delete:"\u65E5\u5831\u306E\u524A\u9664",addComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u6295\u7A3F",deleteComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u524A\u9664",toggleStar:"\u30B9\u30BF\u30FC\u306E\u66F4\u65B0",toggleRead:"\u65E2\u8AAD\u72B6\u614B\u306E\u66F4\u65B0"},Fs=e=>`${Os[e]??"\u64CD\u4F5C"}\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,Bs=Object.freeze([]),sr=globalThis.__DailyReportActionContext??Hs(null);globalThis.__DailyReportActionContext=sr;var be=()=>{let e=_s(sr);if(!e)throw new Error("useDailyReportActionContext must be used within a DailyReportActionProvider");return e},qe=e=>{if(!e)return"Unknown";if(e.displayName?.trim())return e.displayName;if(e.name){let t=`${e.name.familyName??""} ${e.name.givenName??""}`.trim();if(t)return t}return e.emails?.[0]?.value??"Unknown"},tn=({children:e,user:t,initialItems:r=Bs,userId:n})=>{let{apiBasePath:s,draftLabelName:a}=j(),{notifyError:i}=Zr(),c=ae(i);c.current=i;let u=ae(new Map),l=ae(new Map),o=ae(new Map),y=ae(new Map),w=ae(new Map),[g,D]=At(0),[T,k]=At(r),[A,S]=At(!1),N=ae(!1),_=ae(new Map),U=ae(new Set),O=ae(new Set),F=ae(new Set),M=_e(),C=ae(!1);C.current=M.phase==="complete"&&!M.isRevalidating;let H=we(()=>qr()===(n??null),[n]),Z=we(async()=>{ve.info("[DailyReportActionProvider] Refetching data without page reload..."),rr(),D(p=>p+1),L.listeners.forEach(p=>{p(-1)})},[]),ge=we(async()=>{ve.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),Ve(),O.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let d=await fetch(`${s}/action`,{method:"POST",body:p});if(!d.ok){let x=await d.json().catch(()=>null);ve.warn("[DailyReportActionProvider] Failed to clear server-side cache:",d.status,x)}}catch(p){ve.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}H()&&(rr({forceRefresh:!0}),D(p=>p+1),L.listeners.forEach(p=>{p(-1)}))},[s,H]),te=ae(new Map),ue=ae(()=>{}),ie=we((p,d)=>{let x=te.current,f=x.get(p);if(f){f.messages.push(d);return}let R={messages:[d],unsubscribe:()=>{},timer:setTimeout(()=>{let I=x.get(p);I&&(I.unsubscribe(),x.delete(p),ve.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${I.messages.length} messages`))},3e4)};R.unsubscribe=_r(p,()=>{let I=x.get(p);if(I&&pe(p,{ignoreExpiry:!0})){I.unsubscribe(),clearTimeout(I.timer),x.delete(p),ve.info(`[SSE Queue] Replaying ${I.messages.length} messages for reportHubId=${p}`);for(let E of I.messages)ue.current(E)}}),x.set(p,R)},[]),re=p=>{F.current.add(p),setTimeout(()=>{F.current.delete(p)},3e4)},ce=we(p=>!!p&&F.current.has(p),[]),X=we((p,d)=>{d!==void 0&&Ge({reportHubId:p,businessDate:d??null}),k(x=>{let f=x.find(I=>I.reportHubId===p),R=d??f?.businessDate??null;return qt(x,{reportHubId:p,businessDate:R,sourceType:f?.sourceType})})},[]),me=()=>{n&&(N.current=!0,S(p=>!p))};nr(()=>{if(!n)return;let p=setTimeout(()=>{N.current||S(!0)},Cr);return()=>clearTimeout(p)},[n]);let $=we(p=>{H()&&(O.current.add(p),Pt(p),k(d=>d.filter(x=>x.reportHubId!==p)))},[H]),[h,P]=At(r);if(r!==h){P(r);let p=new Map;for(let f of r)O.current.has(f.reportHubId)||p.set(f.reportHubId,f);let d=C.current;for(let f of T)p.has(f.reportHubId)||O.current.has(f.reportHubId)||d&&f.reportHubId>0||p.set(f.reportHubId,f);let x=Array.from(p.values());Sr(x)||x.sort(ct),k(x)}nr(()=>{if(C.current){let p=new Set(r.map(d=>d.reportHubId));for(let d of O.current)p.has(d)||O.current.delete(d)}},[r]);let G=we(p=>{if(H()&&!ce(p.clientTempId))switch(p.type){case"comment-add":{let{comment:d,reportHubId:x}=p,f=pe(x,{ignoreExpiry:!0});if(f){if(f.postedComments.some(q=>q.id===d.id))return;let R=!1,I=u.current.get(x);if(I){for(let[q,de]of I.entries())if(de===d.content){I.delete(q),w.current.set(q,d.id),R=!0;break}}let E={...d,userName:d.userName||(R?qe(t):"Unknown"),createdAt:d.createdAt||new Date().toISOString(),isMine:R},z={...f,postedComments:[...f.postedComments,E].sort((q,de)=>new Date(q.createdAt||0).getTime()-new Date(de.createdAt||0).getTime())};ke(x,z),ze(x),je(x),D(q=>q+1)}else ie(x,p);break}case"comment-delete":{let{commentId:d,reportHubId:x}=p,f=pe(x,{ignoreExpiry:!0});if(f){let R={...f,postedComments:f.postedComments.filter(I=>I.id!==d)};ke(x,R),ze(x),je(x),D(I=>I+1)}else ie(x,p);break}case"status-update":{let{statusType:d,value:x,reportHubId:f}=p,R=pe(f,{ignoreExpiry:!0});if(d==="star")if(o.current.get(f)===x&&o.current.delete(f),R){let I={...R,isStarred:x};ke(f,I),D(E=>E+1)}else ie(f,p);else if(d==="read")if(y.current.get(f)===x&&y.current.delete(f),R){let I={...R,isRead:x};ke(f,I),D(E=>E+1)}else ie(f,p);break}case"report-delete":{let{reportHubId:d}=p;U.current.delete(d),O.current.add(d),Pt(d);let x=te.current.get(d);x&&(x.unsubscribe(),clearTimeout(x.timer),te.current.delete(d));let f=pe(d,{ignoreExpiry:!0});f?.date&&(It(d,f.date),D(R=>R+1)),k(R=>R.filter(I=>I.reportHubId!==d));break}case"report-create":case"report-update":case"report-publish":{let{report:d}=p;Or(d),(p.type==="report-create"||p.type==="report-publish")&&(U.current.add(d.reportHubId),X(d.reportHubId,d.date)),D(x=>x+1);break}}},[ce,H,X,t,ie]);ue.current=G,nr(()=>()=>{for(let p of te.current.values())p.unsubscribe(),clearTimeout(p.timer);te.current.clear()},[]),$r({isSseEnabled:A,onMessage:G});let V=async(p,d,x,f,R,I)=>{I?.skipLock||ze(p),R.onOptimistic?.();let E=f.clientTempId||crypto.randomUUID();re(E);let z=new FormData;z.append("intent",d),z.append("reportHubId",String(p)),z.append("businessDate",x),z.append("operationTimestamp",String(Date.now())),z.append("clientTempId",E);for(let[q,de]of Object.entries(f))q!=="clientTempId"&&z.append(q,de);try{let q=await fetch(`${s}/action`,{method:"POST",body:z,headers:{Accept:"application/json"}});if(!q.ok){let mr=new Error(`Failed to ${d}`);throw Object.assign(mr,{status:q.status}),mr}let de=await q.json();if(de.status!=="OK"||d!=="create"&&String(de.reportHubId)!==String(p))throw new Error(`Invalid response for ${d}`);if(typeof de.clientTempId!="string"||de.clientTempId!==E)throw new Error(`Invalid clientTempId for ${d}`);if(!H())throw ve.warn(`[executeAction] ${d} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${d}`);return await R.onSuccess?.(de)}catch(q){throw ve.error(`${d} failed:`,q),H()&&(R.onFailure?.(),c.current({operation:d,message:Fs(d),cause:q})),q}finally{I?.keepLock||I?.skipLock||je(p)}},xe=async(p,d,x)=>{let f=Number(p),R=-1*Date.now(),I=V(f,"addComment",x,{content:d,clientTempId:String(R)},{onOptimistic:()=>{u.current.has(f)||u.current.set(f,new Map),u.current.get(f)?.set(R,d),D(E=>E+1)},onSuccess:E=>{if(!E.newComment)throw new Error("No new comment returned");let z=E.newComment.id;w.current.set(R,z),u.current.get(f)?.delete(R);let q=pe(f,{ignoreExpiry:!0});return q&&!q.postedComments.some(de=>de.id===z)&&fe(f,{postedComments:[...q.postedComments,{...E.newComment,id:z,isMine:!0,userName:qe(t)}],updatedAt:E.updatedAt}),z},onFailure:()=>{u.current.get(f)?.delete(R)}},{skipLock:!0}).finally(()=>_.current.delete(R));_.current.set(R,I),await I},Ce=async(p,d,x)=>{let f=Number(p);l.current.has(f)||l.current.set(f,new Set),l.current.get(f)?.add(d),D(I=>I+1);let R=d;if(d<0){let I=w.current.get(d);if(I!==void 0)R=I;else{let E=_.current.get(d);if(!E)return;try{R=await E}catch{return}}}await V(f,"deleteComment",x,{commentId:String(R)},{onSuccess:I=>{let E=typeof I.deletedCommentId=="string"?Number(I.deletedCommentId):R,z=pe(f,{ignoreExpiry:!0});z&&(fe(f,{postedComments:z.postedComments.filter(q=>q.id!==E),updatedAt:I.updatedAt}),Hr(E)),l.current.get(f)?.delete(d)},onFailure:()=>{l.current.get(f)?.delete(d)}},{skipLock:!0})},rt=async(p,d,x)=>{let f=Number(p);await V(f,"toggleStar",x,{isStarred:String(d)},{onOptimistic:()=>{fe(f,{isStarred:d}),o.current.set(f,d),D(R=>R+1)},onSuccess:R=>{R.updatedStatus&&typeof R.updatedStatus.isStarred=="boolean"&&pe(f,{ignoreExpiry:!0})&&(fe(f,{isStarred:R.updatedStatus.isStarred,updatedAt:R.updatedAt}),D(E=>E+1)),o.current.delete(f)},onFailure:()=>{fe(f,{isStarred:!d}),o.current.delete(f)}},{skipLock:!0})},ur=async(p,d,x)=>{let f=Number(p);await V(f,"toggleRead",x,{isRead:String(d)},{onOptimistic:()=>{fe(f,{isRead:d}),y.current.set(f,d),D(R=>R+1)},onSuccess:R=>{R.updatedStatus&&typeof R.updatedStatus.isRead=="boolean"&&pe(f,{ignoreExpiry:!0})&&(fe(f,{isRead:R.updatedStatus.isRead,updatedAt:R.updatedAt}),D(E=>E+1)),y.current.delete(f)},onFailure:()=>{fe(f,{isRead:!d}),y.current.delete(f)}},{skipLock:!0})},cr=ae(ur);cr.current=ur;let Cn=we((p,d,x)=>cr.current(p,d,x),[]),Tn=async p=>{let d=-1*Date.now(),x=new Date().toISOString(),f={reportHubId:d,date:p,createdAt:x,author:qe(t),userId:t?.id??"unknown",sourceType:"Internal",employeeName:qe(t),updatedBy:qe(t),updatedAt:x,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:a,color:"#9ca3af"}],postedComments:[],attachments:[]};Mr(f,Date.now()+3e5,!1),k(R=>[{reportHubId:d,businessDate:p},...R]);try{let R=await V(0,"create",p,{clientTempId:String(d)},{onSuccess:E=>E});if(R.clientTempId&&R.clientTempId!==String(d))throw ve.warn(`[createReport] ID mismatch. req=${d}, res=${R.clientTempId}`),new Error("Optimistic ID mismatch");let I=Number(R.reportHubId);return Ge({reportHubId:I,businessDate:p}),ze(I),R.report&&(ke(I,R.report),D(E=>E+1)),k(E=>E.some(z=>z.reportHubId===I)?E.filter(z=>z.reportHubId!==d):E.map(z=>z.reportHubId===d?{...z,reportHubId:I}:z)),setTimeout(()=>je(I),1e3),I}catch(R){throw ve.error("[createReport] Failed or mismatched",R),k(I=>I.filter(E=>E.reportHubId!==d)),R}},kn=async(p,d,x)=>{let f=Number(p);await V(f,"update",x,{...d.title&&{title:d.title},...d.content&&{content:d.content}},{onSuccess:()=>{let R=pe(f,{ignoreExpiry:!0});R&&(fe(f,{subject:d.title??R.subject,content:d.content??R.content}),D(I=>I+1))}})},Nn=async(p,d)=>{let x=Number(p),f=pe(x,{ignoreExpiry:!0}),R=f?.labels||[];await V(x,"publish",d,{},{onOptimistic:()=>{if(f){let I=f.labels.filter(E=>E.name!==a);fe(x,{labels:I}),D(E=>E+1)}},onSuccess:I=>{I.report&&(ke(x,I.report),D(E=>E+1)),Ge({reportHubId:x,businessDate:d})},onFailure:()=>{fe(x,{labels:R}),D(I=>I+1)}},{skipLock:!0})},En=async(p,d)=>{let x=Number(p),f=T.find(R=>R.reportHubId===x);O.current.add(x),Pt(x),k(R=>R.filter(I=>I.reportHubId!==x));try{await V(x,"delete",d,{},{onSuccess:R=>{It(x,d)}})}catch(R){if(R.status===404){It(x,d);return}if(!H())return;O.current.delete(x),Ge({reportHubId:x,businessDate:f?.businessDate??d}),f&&k(E=>E.some(z=>z.reportHubId===x)?E:qt(E,f))}};return Us(sr.Provider,{value:{user:t,pendingAddCommentIds:u,pendingDeleteCommentIds:l,pendingStarUpdates:o,pendingReadUpdates:y,resolvedIdMap:w,version:g,items:T,isSseEnabled:A,toggleSse:me,addComment:xe,deleteComment:Ce,toggleStar:rt,toggleRead:Cn,createReport:Tn,updateReport:kn,publishReport:Nn,deleteReport:En,removeStaleItem:$,refetchData:Z,clearCacheAndRefetch:ge},children:e})};import{useCallback as rn,useMemo as $s,useRef as Vs,useState as zs}from"react";var Mt=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:s,resolvedIdMap:a,version:i,addComment:c,deleteComment:u}=be(),[l,o]=zs(null),y=rn(T=>e&&u(e.reportHubId,T,e.date??""),[e,u]),w=rn(T=>e&&t?c(e.reportHubId,T,e.date??""):Promise.resolve(),[e,t,c]),g=Vs([]);return{uiComments:$s(()=>{if(!e)return[];let T=yr(e.externalComments,e.postedComments,r),k=s.current.get(e.reportHubId);k?.size&&(T=T.filter(S=>!k.has(S.id)));let A=n.current.get(e.reportHubId);if(A?.size&&t){let S=new Set(T.map(_=>_.id)),N=t.displayName?.trim()||(t.name?`${t.name.familyName??""} ${t.name.givenName??""}`.trim():"")||t.emails?.[0]?.value||"Unknown";for(let[_,U]of A){if(k?.has(_)||S.has(_))continue;let O=a.current.get(_);O&&S.has(O)||T.some(F=>F.isMine&&F.content===U&&typeof F.id=="number"&&F.id>0)||T.push({id:_,authorName:N,content:U,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(T)===JSON.stringify(g.current)?g.current:(g.current=T,T)},[e,t,r,s,n,a,i]),handleAddComment:w,handleDeleteComment:y,pendingDeleteId:l,setPendingDeleteId:o,resolvedIdMap:a.current}};import{useCallback as js,useEffect as Ws,useState as Gs}from"react";var Ht=(e,t)=>{let{enableMutationObserver:r=!1,bottomGap:n=4,minFallbackHeight:s=240}=t??{},[a,i]=Gs(600),c=js(()=>{if(typeof window>"u")return;let u=e.current;if(!u||u.offsetParent===null&&window.getComputedStyle(u).position!=="fixed")return;let l=H=>Number.parseFloat(H)||0,{top:o}=u.getBoundingClientRect(),y=u.parentElement?.getBoundingClientRect(),w=window.getComputedStyle(document.documentElement),g=l(w.getPropertyValue("--footer-height")),D=l(w.getPropertyValue("--header-height")),T=l(w.getPropertyValue("--scrollbar-height")),k=window.getComputedStyle(u),A=l(k.marginBottom),S=l(k.paddingBottom),N=window.innerHeight-g-T-n,_=y?Math.min(y.bottom,N):N,U=y?Math.max(y.top,D):D,O=Math.max(o,U),F=_-O-A-S,M=Number.isFinite(F)?Math.floor(F):0,C=M>0?M:s;C>0&&Number.isFinite(C)&&i(H=>Math.abs(H-C)>1?C:H)},[n,e,s]);return Ws(()=>{if(typeof window>"u")return;let u=null,l=null,o=null,y=null,w=()=>{u!==null&&window.cancelAnimationFrame(u),u=window.requestAnimationFrame(()=>{c()})};w(),l=window.setTimeout(()=>{w()},150);let g=e.current;return typeof ResizeObserver<"u"&&g&&(o=new ResizeObserver(()=>{w()}),o.observe(g),g.parentElement&&o.observe(g.parentElement)),r&&typeof MutationObserver<"u"&&(y=new MutationObserver(()=>{w()}),y.observe(document.documentElement,{attributes:!0,attributeFilter:["style"]})),window.addEventListener("resize",w),()=>{u!==null&&window.cancelAnimationFrame(u),l!==null&&window.clearTimeout(l),window.removeEventListener("resize",w),o?.disconnect(),y?.disconnect()}},[r,c,e]),{viewportHeight:a,updateViewportHeight:c}};import{useEffect as ea,useRef as ta,useState as ar}from"react";import{Slot as qs}from"@radix-ui/react-slot";import{cva as Ks}from"class-variance-authority";import*as nn from"react";import{jsx as Xs}from"react/jsx-runtime";var Ys=Ks("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Se=nn.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...s},a)=>Xs(n?qs:"button",{className:W(Ys({variant:t,size:r,className:e})),ref:a,...s}));Se.displayName="Button";import{jsx as Js}from"react/jsx-runtime";function sn({className:e,type:t,...r}){return Js("input",{type:t,"data-slot":"input",className:W("flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...r})}import*as an from"@radix-ui/react-label";import{jsx as Qs}from"react/jsx-runtime";function Ke({className:e,...t}){return Qs(an.Root,{"data-slot":"label",className:W("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...t})}import{jsx as Zs}from"react/jsx-runtime";function on({className:e,...t}){return Zs("textarea",{"data-slot":"textarea",className:W("flex min-h-15 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...t})}import{jsx as Ne,jsxs as _t}from"react/jsx-runtime";var Ot=({report:e,onCancel:t,onPublishSuccess:r})=>{let{updateReport:n,publishReport:s}=be(),[a,i]=ar(e.subject??""),[c,u]=ar(e.content??""),[l,o]=ar(!1),y=ta(e.reportHubId);ea(()=>{e.reportHubId!==y.current&&(i(e.subject??""),u(e.content??""),y.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let w=async()=>{o(!0);try{await n(e.reportHubId,{title:a,content:c},e.date??"")}catch{}finally{o(!1)}},g=async()=>{o(!0);try{await n(e.reportHubId,{title:a,content:c},e.date??""),await s(e.reportHubId,e.date??""),r?.()}catch{}finally{o(!1)}};return _t("div",{className:"space-y-6 p-1",children:[_t("div",{className:"space-y-2",children:[Ne(Ke,{htmlFor:`report-title-${e.reportHubId}`,children:"\u30BF\u30A4\u30C8\u30EB"}),Ne(sn,{id:`report-title-${e.reportHubId}`,value:a,onChange:D=>i(D.target.value),placeholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",disabled:l})]}),_t("div",{className:"space-y-2",children:[Ne(Ke,{htmlFor:`report-content-${e.reportHubId}`,children:"\u5185\u5BB9"}),Ne(on,{id:`report-content-${e.reportHubId}`,value:c,onChange:D=>u(D.target.value),placeholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",className:"min-h-50",disabled:l})]}),_t("div",{className:"flex justify-end gap-2",children:[t&&Ne(Se,{variant:"outline",onClick:t,disabled:l,children:"\u30AD\u30E3\u30F3\u30BB\u30EB"}),Ne(Se,{variant:"secondary",onClick:w,disabled:l,children:"\u4FDD\u5B58"}),Ne(Se,{onClick:g,disabled:l,children:"\u516C\u958B"})]})]})};import{jsx as ra}from"react/jsx-runtime";var Ye=({className:e})=>ra("span",{className:W("text-blue-500",e),children:"\u25CF"});import{Fragment as ba,jsx as v,jsxs as B}from"react/jsx-runtime";var oa=(e,t,r)=>{Ie(()=>{let n=e.current;if(!n)return;let s=new ResizeObserver(()=>{r(t,n.offsetHeight)});return s.observe(n),()=>s.disconnect()},[t,r,e])},ia=({itemId:e,index:t,setSize:r,onHeightMeasured:n,children:s})=>{let a=oe(null);return oa(a,e,n),v("div",{ref:a,className:"px-2 pb-3","data-daily-report-button":e,role:"listitem","aria-posinset":t+1,"aria-setsize":r,children:s})},la=e=>e.affiliation?.trim()?`${e.name}\uFF08${e.affiliation}\uFF09`:e.name??"",dn=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:s})=>{let[{initialScrollAnchor:a,restored:i}]=Xe(()=>{let h=s?.current;if(!h||h.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!h.topItem)return{initialScrollAnchor:void 0,restored:!0};let P=e.findIndex(G=>G.reportHubId===h.topItem?.reportHubId);return P!==-1?{initialScrollAnchor:{index:P,offsetPx:h.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:h.topItem.index,offsetPx:0},restored:!0}}),c=oe(i),u=oe(r??null),l=oe(s?.current.measuredHeights??new Map),o=oe(null),y=oe(null),{title:w}=j(),{viewportHeight:g,updateViewportHeight:D}=Ht(o,{enableMutationObserver:!0}),T=Fr(),[k,A]=Xe(""),[S,N]=Xe(!1),_=oe(null),U=oe(null),O=oe(e);O.current=e;let F=oe(null);Ie(()=>{if(r!=null&&y.current){let h=e.findIndex(P=>P.reportHubId===r);if(h!==-1){if(F.current?.id===r&&F.current?.index===h)return;if(c.current&&(c.current=!1,(r??null)===u.current)){F.current={id:r,index:h};return}y.current.scrollToIndex(h,{align:"top"}),F.current={id:r,index:h}}}else F.current=null},[r,e]),Ie(()=>{let h=s?.current;h&&(h.anchorReportHubId=r??null)},[r,s]);let M=oe(n);M.current=n,Ie(()=>{if(y.current){let h=document.querySelector('[data-testid="daily-report-detail-list"]');if(h){let P=y.current,G=Object.assign({},P,{findReportIndex:V=>O.current.findIndex(xe=>xe.reportHubId===V),getReportItem:V=>O.current[V],selectItem:V=>M.current?.(V)});h.__virtualScroll=G}}});let C=e.length,H=Re(h=>h>=C?ht:e[h],[e,C]),Z=Re((h,P)=>{if(C===0)return;let G=Math.max(0,h),V=Math.min(C-1,P);if(G>V)return;let xe=new Set;for(let Ce=G;Ce<=V;Ce++){let rt=H(Ce);if(rt.businessDate&&xe.add(rt.businessDate),xe.size>=Tr)break}xe.forEach(Ce=>{T(Ce)})},[H,C,T]),ge=Re(({renderingStartIndex:h,renderingEndIndex:P,visibleStartIndex:G})=>{if(C===0)return;let V=H(G);V?.businessDate&&A(se(V.businessDate)),Z(h,P),Z(P+1,P+gt),Z(h-gt,h-1)},[H,C,Z]),te=oe(null),ue=Re(()=>{y.current&&(te.current=y.current);let h=s?.current,P=y.current??te.current;if(h&&P){let V=P.getScrollAnchor(),xe=V?O.current[V.index]:void 0;V&&xe&&(h.topItem={reportHubId:xe.reportHubId,index:V.index,offsetPx:V.offsetPx})}let G=o.current;G&&(G.dataset.scrolling!=="true"&&(G.dataset.scrolling="true"),U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{G&&delete G.dataset.scrolling,U.current=null},150))},[s]),ie=Re(h=>v(nt,{...h,label:k,isWheelScrollActive:S}),[k,S]);Ie(()=>{let h=o.current;if(!h)return;let P=()=>{N(!0),_.current&&clearTimeout(_.current),_.current=window.setTimeout(()=>{N(!1),_.current=null},yt)};return h.addEventListener("wheel",P,{passive:!0}),()=>{h.removeEventListener("wheel",P),_.current&&clearTimeout(_.current)}},[]);let re=Re((h,P)=>{if(l.current.get(h)!==P&&(l.current.set(h,P),y.current)){let G=O.current.findIndex(V=>V.reportHubId===h);G!==-1&&y.current.updateItemSize(G,P)}},[]),ce=Re(h=>{let P=H(h);return l.current.get(P.reportHubId)||350},[H]),X=Re(h=>H(h).reportHubId,[H]);Ie(()=>{C>=0&&D()},[C,D]),Ie(()=>{C!==0&&Z(0,Math.min(C-1,gt))},[C,Z]);let me=Re(h=>{let P=O.current.findIndex(G=>G.reportHubId===h);P>=0&&setTimeout(()=>y.current?.scrollToIndex(P,{align:"bottom"}),300)},[]),$=Re((h,P)=>v(ua,{item:h,index:P,setSize:C,onHeightMeasured:re,onCommentAdded:me,userId:t},h.reportHubId),[re,me,t,C]);return B(ba,{children:[v("div",{ref:o,className:"flex min-h-0 flex-1 flex-col",children:v(na,{ref:y,itemCount:C,getItem:H,getItemKey:X,getItemHeight:ce,viewportSize:g,initialScrollAnchor:a,overscanCount:xt,scrollBarOptions:{width:vt,tapScrollCircleOptions:Rt,renderThumbOverlay:ie},behaviorOptions:{pointerDragInputs:Dt,wheelSpeedMultiplier:ft,inertiaOptions:bt,enableKeyboardNavigation:!1},onRangeChange:ge,onScroll:ue,testId:"daily-report-detail-list",className:"relative w-full",contentProps:{role:"list","aria-label":w},children:$})}),C===0&&v("div",{className:"py-8 text-center",children:v("p",{className:"text-slate-500",children:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093"})})]})},da=()=>B("div",{className:"rounded-2xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900/70",children:[B("div",{className:"mb-4 flex flex-wrap gap-2",children:[v("div",{className:"h-6 w-20 rounded-full bg-slate-200"}),v("div",{className:"h-6 w-24 rounded-full bg-slate-200"}),v("div",{className:"h-6 w-24 rounded-full bg-slate-200"}),v("div",{className:"h-6 w-28 rounded-full bg-slate-200"})]}),B("div",{className:"mb-3 grid gap-3 md:grid-cols-[minmax(0,1fr)_220px]",children:[B("div",{className:"space-y-3",children:[v("div",{className:"h-5 w-40 rounded bg-slate-200"}),v("div",{className:"h-5 w-56 rounded bg-slate-200"}),v("div",{className:"h-24 rounded-lg bg-slate-200"})]}),B("div",{className:"rounded-xl bg-slate-100 p-3",children:[v("div",{className:"mb-2 h-4 w-24 rounded bg-slate-200"}),v("div",{className:"mb-2 h-4 w-28 rounded bg-slate-200"}),v("div",{className:"h-4 w-32 rounded bg-slate-200"})]})]}),B("div",{className:"space-y-3",children:[v("div",{className:"h-4 w-24 rounded bg-slate-200"}),B("div",{className:"flex flex-wrap gap-2",children:[v("div",{className:"h-6 w-16 rounded-full bg-slate-200"}),v("div",{className:"h-6 w-16 rounded-full bg-slate-200"}),v("div",{className:"h-6 w-16 rounded-full bg-slate-200"})]}),B("div",{className:"space-y-2",children:[v("div",{className:"h-16 rounded-lg bg-slate-200"}),v("div",{className:"h-16 rounded-lg bg-slate-200"})]})]})]}),ua=({item:e,index:t,setSize:r,onHeightMeasured:n,onCommentAdded:s,userId:a})=>{let{report:i,error:c,isLoading:u,isRefetching:l}=He(e.reportHubId,e.businessDate),{removeStaleItem:o}=be(),{draftLabelName:y}=j(),[w,g]=Xe(!1),[D,T]=Xe(!1),k=oe(!1),A=oe(!1);l&&(A.current=!0),Ie(()=>{!(i||u||l||c)&&A.current&&e.reportHubId>0&&o(e.reportHubId)},[i,u,l,c,e.reportHubId,o]);let S=i?.labels.some(_=>_.name===y),N=a&&i?.userId===a;return Ie(()=>{i&&N&&S&&!w&&!D?(g(!0),k.current=!0):i&&!S&&w&&k.current&&(g(!1),k.current=!1)},[i,N,S,w,D]),v(ia,{itemId:e.reportHubId,index:t,setSize:r,onHeightMeasured:n,children:c?v(fa,{itemId:e.reportHubId}):i?w?v(Ot,{report:i,onCancel:()=>{g(!1),T(!0)},onPublishSuccess:()=>{g(!1)}}):v(pa,{item:e,report:i,onCommentAdded:s,userId:a,onDoubleClick:N?()=>g(!0):void 0}):v(da,{})})},ca=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:s,onToggleStar:a,onDelete:i,itemSourceType:c,visitTimeDisplay:u,categoryLabel:l,fieldLabels:o})=>{let{sourceTypeConfigs:y}=j();return B("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs",children:[v(st,{count:e.attachments.length,label:o.attachments}),(()=>{let w=c??e?.sourceType,g=Pe(w,y);return g?v("span",{className:W("inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",g.badgeClassName),children:g.label}):null})(),v("button",{type:"button",onClick:a,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 focus:outline-none dark:hover:bg-slate-700",title:r?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","data-detail-star-button":e.reportHubId,children:r?v(ln,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"}):v(ln,{className:"h-3.5 w-3.5 text-slate-300 dark:text-slate-500"})}),v("button",{type:"button",onClick:s,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 focus:outline-none dark:hover:bg-slate-700",title:t?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","data-detail-read-button":e.reportHubId,children:t?v(sa,{className:"h-3.5 w-3.5 text-blue-500"}):v(Ye,{className:"text-xs"})}),n&&v("button",{type:"button",onClick:i,"data-detail-delete-button":e.reportHubId,className:"text-lg leading-none transition-transform focus:outline-none active:scale-125",title:"\u524A\u9664\u3059\u308B",children:v(aa,{className:"h-4 w-4 text-slate-300 hover:text-red-500"})}),B("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-blue-50 px-3 py-1 font-semibold text-blue-700 text-xs",children:[v("span",{className:"text-[10px] text-blue-500 uppercase tracking-wide",children:o.id}),e.reportHubId]}),B("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[v("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.businessDate}),se(e.date)]}),B("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[v("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.author}),ne(e.employeeName)]}),B("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[v("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.visitTime}),u||"-"]}),B("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[v("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.updatedAt}),se(e.updatedAt)]}),l&&B("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-amber-100 px-3 py-1 text-amber-700",children:[v("span",{className:"text-[10px] text-amber-500 uppercase tracking-wide",children:o.category}),l]})]})},ma=({report:e,visitTimeDisplay:t,categoryLabel:r,fieldLabels:n})=>B("div",{className:"flex flex-col gap-3 rounded-xl bg-slate-100 p-4 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.author}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ne(e.author)})]}),B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.createdAt}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:se(e.createdAt)})]}),B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.updatedBy}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ne(e.updatedBy)})]}),B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.updatedAt}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:se(e.updatedAt)})]}),B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.businessDate}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:se(e.date)})]}),t&&B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.visitTime}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:t})]}),r&&B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.categoryInfo}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:r})]})]}),pa=({item:e,report:t,onCommentAdded:r,userId:n,onDoubleClick:s})=>{let a=oe(null),{toggleStar:i,toggleRead:c,pendingStarUpdates:u,pendingReadUpdates:l,deleteReport:o,user:y}=be(),{uiComments:w,handleAddComment:g,handleDeleteComment:D,pendingDeleteId:T,setPendingDeleteId:k,resolvedIdMap:A}=Mt(t,y,n),{fieldLabels:S,sourceTypeConfigs:N}=j(),_=e.sourceType??t?.sourceType,U=Pe(_,N),O=_?_.toLowerCase()!=="internal":!1,F=U?.allowComment??!O,M=async X=>{await g(X),r?.(e.reportHubId)},C=u.current.has(t.reportHubId)?u.current.get(t.reportHubId)??!1:t.isStarred,H=l.current.has(t.reportHubId)?l.current.get(t.reportHubId)??!1:t.isRead,Z=!!(n&&t.userId===n),ge=async()=>{try{await c(t.reportHubId,!H,t.date??"")}catch{}},te=async()=>{try{await i(t.reportHubId,!C,t.date??"")}catch{}},ue=async()=>{confirm("\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F")&&await o(t.reportHubId,t.date??"")},ie=or(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
3
- `).trim():"",[t.content]),re=or(()=>{let X=t.visitTimeFrom?.trim(),me=t.visitTimeTo?.trim();return X&&me?`${X} - ${me}`:X||me||""},[t.visitTimeFrom,t.visitTimeTo]),ce=or(()=>{let X=[];return t.category?.trim()&&X.push(`${S.category}: ${t.category}`),t.creationCategory?.trim()&&X.push(`${S.creationCategory}: ${t.creationCategory}`),X.join(" / ")},[t.category,t.creationCategory,S.category,S.creationCategory]);return v("div",{onDoubleClick:s,className:`flex h-full w-full flex-col rounded-2xl border bg-white p-4 shadow-sm transition-all duration-200 hover:-translate-y-0.5 hover:border-blue-300 hover:shadow-lg dark:border-slate-700 dark:bg-slate-900/70 ${H?"":"border-l-4 border-l-blue-500"}`,children:B("div",{className:"flex flex-col gap-4",children:[v(ca,{report:t,itemSourceType:e.sourceType,isRead:H,isStarred:C,isMine:Z,onToggleRead:ge,onToggleStar:te,onDelete:ue,visitTimeDisplay:re,categoryLabel:ce,fieldLabels:S}),B("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[B("div",{className:"flex flex-col gap-4",children:[B("div",{className:"grid gap-3 sm:grid-cols-2",children:[B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.customer}),v("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:ne(t.customerName)})]}),B("div",{className:"flex flex-col gap-1",children:[v("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.subject}),v("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ne(t.subject)})]})]}),ie&&B("div",{className:"flex flex-col gap-2",children:[v("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.content}),v("div",{className:"whitespace-pre-wrap rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-relaxed dark:bg-slate-800/60 dark:text-slate-200",children:ie})]}),t.interviewers.length>0&&B("div",{className:"flex flex-col gap-2",children:[v("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.interviewers}),v("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(X=>v("li",{className:"rounded-full bg-slate-100 px-3 py-1 text-slate-600 text-xs",children:la(X)},`${X.name}-${X.affiliation||""}`))})]}),v(it,{attachments:t.attachments}),w.length>0&&B("div",{className:"flex flex-col gap-2",children:[v("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.comments}),v(dt,{comments:w,reportHubId:t.reportHubId,businessDate:t.date??"",onDeleteComment:D,pendingDeleteId:T,onPendingDeleteIdChange:k,resolvedIdMap:A})]}),F&&v("div",{className:"mt-auto",ref:a,children:v(ut,{reportHubId:t.reportHubId,businessDate:t.date??"",onAddComment:M})})]}),v(ma,{report:t,visitTimeDisplay:re,categoryLabel:ce,fieldLabels:S})]})]})})},fa=({itemId:e})=>v("div",{className:"rounded-2xl border border-red-200 bg-red-50 p-4 text-red-700 text-sm",children:B("p",{children:["\u65E5\u5831 ",e.toLocaleString()," \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"]})});import cn from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as ga,useRef as un,useState as ha}from"react";var Je=(e,t=250)=>{let[r,n]=ha(e),s=un(e),a=un(!0);return ga(()=>{if(a.current){a.current=!1,s.current=e,n(e);return}let i=s.current;if(i===e)return;let c=null,u=null,l=o=>{u===null&&(u=o);let y=Math.min(1,Math.max(0,(o-u)/t)),w=1-(1-y)**3,g=Math.round(i+(e-i)*w);s.current=g,n(g),y<1&&(c=requestAnimationFrame(l))};return c=requestAnimationFrame(l),()=>{c!==null&&cancelAnimationFrame(c)}},[e,t]),r};import{jsx as Ft,jsxs as Bt}from"react/jsx-runtime";var Ut=()=>{let e=_e(),t=Je(e.loadedCount),r=Je(e.totalCount??0);if(e.phase==="streaming"){let n=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return Bt("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:"inline-flex items-center gap-1.5 rounded-full bg-blue-100 px-2 py-0.5 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300",children:[Ft("span",{"aria-hidden":"true",className:"h-1.5 w-1.5 animate-pulse rounded-full bg-blue-500 dark:bg-blue-400"}),"\u8AAD\u307F\u8FBC\u307F\u4E2D ",t.toLocaleString(),n!==null?` / ${r.toLocaleString()} (${n}%)`:" \u4EF6"]})}return e.phase==="retrying"?Bt("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:"inline-flex items-center gap-1.5 rounded-full bg-amber-100 px-2 py-0.5 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300",children:[Ft(cn,{"aria-hidden":"true",className:"h-3 w-3 animate-spin"}),"\u518D\u63A5\u7D9A\u4E2D... (",e.loadedCount.toLocaleString()," \u4EF6\u53D7\u4FE1\u6E08)"]}):e.phase==="failed"?Bt("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:"inline-flex items-center gap-1.5 rounded-full bg-rose-100 px-2 py-0.5 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300",children:["\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",Ft("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Lt(),className:"rounded bg-rose-200 px-1.5 py-0.5 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",children:"\u518D\u8A66\u884C"})]}):e.isRevalidating?Bt("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"revalidating",className:"inline-flex items-center gap-1 text-slate-400 text-xs dark:text-slate-500",children:[Ft(cn,{"aria-hidden":"true",className:"h-3 w-3 animate-spin"}),"\u6700\u65B0\u5316\u4E2D"]}):null};import{SwipeCloseGuardContext as Ra,useSwipeGuardState as Da,useSwipeToDismissOverlay as wa,useTapClick as fn,useTransitionDisplay as Sa}from"@aiquants/swipe-overlay";import{VirtualScroll as Ia}from"@aiquants/virtualscroll";import Ca from"lucide-react/dist/esm/icons/check.js";import pn from"lucide-react/dist/esm/icons/star.js";import Ta from"lucide-react/dist/esm/icons/trash-2.js";import{memo as ka,useCallback as ye,useEffect as le,useMemo as lr,useRef as Q,useState as Ee}from"react";import{useEffect as ya,useState as xa}from"react";var va="(max-width: 639px)",mn=()=>{let[e,t]=xa(!1);return ya(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let r=window.matchMedia(va),n=()=>t(r.matches);return n(),r.addEventListener("change",n),()=>r.removeEventListener("change",n)},[]),e};import*as he from"@radix-ui/react-tabs";import*as $t from"react";import{jsx as ir}from"react/jsx-runtime";var Vt=he.Root,Qe=$t.forwardRef(({className:e,...t},r)=>ir(he.List,{ref:r,className:W("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));Qe.displayName=he.List.displayName;var Ze=$t.forwardRef(({className:e,...t},r)=>ir(he.Trigger,{ref:r,className:W("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 font-medium text-sm ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-2xs",e),...t}));Ze.displayName=he.Trigger.displayName;var Oe=$t.forwardRef(({className:e,...t},r)=>ir(he.Content,{ref:r,className:W("data-[state=inactive]:hidden","mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Oe.displayName=he.Content.displayName;import{Fragment as yn,jsx as m,jsxs as K}from"react/jsx-runtime";var Na=(e,t,r,n)=>{let[s,a]=Ee(!1),[i,c]=Ee(!1),u=Q(null),l=Q(null),o=Q(null),y=lr(()=>t===null?null:r.find(D=>D.reportHubId===t)??null,[r,t]),w=e&&s&&y!==null;le(()=>{if(w)c(!0);else{let D=setTimeout(()=>c(!1),300);return()=>clearTimeout(D)}},[w]),le(()=>{if(!(typeof window>"u")){if(e&&s&&t!==null&&!u.current){let D=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:D},"",window.location.href),u.current=D}else!(e&&s)&&u.current&&(u.current=null);return s?(o.current=document.body.style.overflow,document.body.style.overflow="hidden"):o.current!==null&&(document.body.style.overflow=o.current,o.current=null),()=>{o.current!==null&&(document.body.style.overflow=o.current)}}},[e,s,t]),le(()=>{if(typeof window>"u")return;let D=()=>{u.current&&(l.current=t,u.current=null,a(!1),n(null))};return window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[t,n]);let g=ye(()=>{e&&(l.current=t,a(!1),n(null),u.current&&typeof window<"u"&&(u.current=null,window.history.back()))},[e,t,n]);return{isMobileDetailOpen:s,setIsMobileDetailOpen:a,isOverlayMounted:i,shouldShowOverlay:w,handleOverlayClose:g,lastClosedItemIdRef:l,selectedItem:y}},Ea=(e,t,r,n,s)=>{let a=Q(null),i=Q(void 0);i.current!==e?.reportHubId&&(i.current=e?.reportHubId,a.current=null),le(()=>{n||(a.current=null)},[n]);let c=ye(async(u=!1)=>{if(!e)return;u||(a.current=e.reportHubId);let l=!e.isRead;try{await s(e.reportHubId,l,e.date??"")}catch{}},[e,s]);return le(()=>{if(r&&e&&!e.isRead&&!t){if(a.current===e.reportHubId)return;let u=setTimeout(()=>c(!0),500);return()=>clearTimeout(u)}},[e,t,r,c]),{handleToggleRead:c}},bn=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:s,scrollOffsetRef:a})=>{let[i]=Ee(()=>a?.current??0),c=Q(null),u=Q(null),{title:l}=j(),{viewportHeight:o,updateViewportHeight:y}=Ht(c),[w,g]=Ee(""),[D,T]=Ee(!1),k=mn(),A=Q(null),S=e.length,N=Q(null),{isMobileDetailOpen:_,setIsMobileDetailOpen:U,isOverlayMounted:O,shouldShowOverlay:F,handleOverlayClose:M,lastClosedItemIdRef:C,selectedItem:H}=Na(k,r,e,n),Z=lr(()=>Number.isFinite(o)&&o>0?{height:o}:void 0,[o]);le(()=>{if(typeof window>"u")return;let $=()=>requestAnimationFrame(y);window.addEventListener("resize",$),y();let h=c.current,P=()=>{T(!0),A.current&&clearTimeout(A.current),A.current=window.setTimeout(()=>{T(!1),A.current=null},yt)};return h?.addEventListener("wheel",P,{passive:!0}),()=>{window.removeEventListener("resize",$),h?.removeEventListener("wheel",P),A.current&&clearTimeout(A.current)}},[y]),le(()=>{!S&&r!==null&&n(null)},[S,r,n]),le(()=>{if(k||_||C.current===null)return;let $=C.current;C.current=null;let h=e.findIndex(P=>P.reportHubId===$);h>=0&&(u.current?.scrollToIndex(h),requestAnimationFrame(()=>{document.querySelector(`[data-testid="daily-report-list"] [data-daily-report-button="${$}"]`)?.focus()}))},[_,k,e,C]),le(()=>{S>0&&g($=>{let h=se(e[0]?.businessDate);return $===h?$:h})},[e,S]);let ge=Q(e);ge.current=e,le(()=>{if(u.current){let $=document.querySelector('[data-testid="daily-report-list"]');$&&($.__virtualScroll={...u.current,findReportIndex:h=>ge.current.findIndex(P=>P.reportHubId===h),getReportIds:(h=20)=>ge.current.slice(0,h).map(P=>P.reportHubId)})}});let te=ye($=>{$<=0||(n($),k&&U(!0))},[k,n,U]),ue=ye($=>$<S?e[$]:ht,[e,S]),ie=ye(()=>Yt,[]),re=ye(($,h)=>m(hn,{item:$,index:h,setSize:S,isActive:$.reportHubId===r,onSelect:te},$.reportHubId),[S,r,te]),ce=ye($=>{let h=ue($.visibleStartIndex);h?.reportHubId>0&&g(P=>{let G=se(h.businessDate);return P===G?P:G})},[ue]),X=ye($=>{a&&(a.current=$);let h=c.current;h&&(h.dataset.scrolling!=="true"&&(h.dataset.scrolling="true"),N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{h&&delete h.dataset.scrolling,N.current=null},150))},[a]),me=ye($=>m(nt,{...$,label:w,isWheelScrollActive:D}),[w,D]);return K(yn,{children:[K("div",{className:"flex h-full min-h-0 gap-4",children:[m("div",{ref:c,className:"flex min-h-0 w-full sm:w-90",style:Z,children:m(Ia,{ref:u,itemCount:S,getItem:ue,getItemHeight:ie,viewportSize:o,initialScrollOffset:i,overscanCount:xt,scrollBarOptions:{width:vt,tapScrollCircleOptions:Rt,renderThumbOverlay:me},behaviorOptions:{pointerDragInputs:Dt,inertiaOptions:bt,wheelSpeedMultiplier:ft,enableKeyboardNavigation:!1},onRangeChange:ce,onScroll:X,contentInsets:{top:pt,bottom:pt},testId:"daily-report-list",className:"relative w-full",contentProps:{role:"list","aria-label":l},children:re})}),m(gn,{dailyReportItems:e,selectedItem:H,heightStyle:Z,autoMarkRead:!k&&t,isActive:r!==null,userId:s})]}),S===0&&m("div",{className:"py-8 text-center",children:m("p",{className:"text-slate-500",children:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093"})}),O&&m(Aa,{isOpen:F,selectedItem:H,onClose:M,autoMarkRead:k&&t,userId:s})]})},Pa=e=>m("div",{...e,className:"px-2 pb-3",style:{height:$e},children:K("div",{"data-skeleton":!0,className:"flex h-full animate-pulse flex-col justify-between rounded-2xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900/70",children:[K("div",{className:"mb-3 flex flex-wrap items-center gap-3",children:[m("div",{className:"h-4 w-24 rounded bg-slate-200"}),m("div",{className:"h-4 w-24 rounded bg-slate-200"}),m("div",{className:"h-4 w-24 rounded bg-slate-200"})]}),K("div",{className:"space-y-2",children:[m("div",{className:"h-4 w-full rounded bg-slate-200"}),m("div",{className:"h-4 w-11/12 rounded bg-slate-200"}),m("div",{className:"h-4 w-5/6 rounded bg-slate-200"})]})]})}),gn=({dailyReportItems:e,selectedItem:t,heightStyle:r,autoMarkRead:n=!1,isActive:s=!0,userId:a})=>{let[i,c]=Ee("article"),[u,l]=Ee(!1),{draftLabelName:o,fieldLabels:y,sourceTypeConfigs:w}=j(),{report:g,error:D,isLoading:T}=He(t?.reportHubId??-1,t?.businessDate??null),k=Q(null),A=Q(null),S=Q(!1);le(()=>{if(!g)return;let C=g.labels.some(H=>H.name===o);g.reportHubId!==A.current?(A.current=g.reportHubId,C?(l(!0),S.current=!0):(l(!1),S.current=!1)):!C&&u&&S.current&&(l(!1),S.current=!1)},[g,u,o]);let N=!!(a&&g?.userId===a),_=ye(()=>{setTimeout(()=>{k.current&&k.current.scrollTo({top:k.current.scrollHeight,behavior:"smooth"})},100)},[]);if(e&&(e.length===0||!t))return m("aside",{className:"hidden min-h-0 min-w-0 flex-1 gap-3 rounded-2xl border border-slate-200 bg-white p-4 shadow-sm sm:block dark:border-slate-700 dark:bg-slate-900/70",style:r,children:m("div",{className:"flex flex-1 items-center justify-center rounded-xl border border-slate-300 border-dashed bg-slate-50 p-4 text-center text-slate-500 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:m("p",{children:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002"})})});let U=se(g?.date??t?.businessDate),O=g?.employeeName||g?.author?ne(g.employeeName??g.author):"",F=T||!g,M=K(yn,{children:[K("div",{className:"space-y-1",children:[m("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:y.businessDate}),m("div",{className:"text-slate-900 text-sm dark:text-slate-100",children:U}),K("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[K("span",{children:[y.author,":"]}),F?m("div",{"data-skeleton":!0,className:"h-3 w-24 animate-pulse rounded bg-slate-200 dark:bg-slate-700"}):m("span",{children:O}),(()=>{let C=g?.sourceType,H=C?w?.[C]:void 0;return H?m("span",{className:W("ml-2 inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",H.badgeClassName),children:H.label}):null})()]})]}),K(Vt,{value:i,onValueChange:C=>c(C),className:"flex min-h-0 flex-1 flex-col",children:[m(Qe,{className:"grid grid-cols-2 gap-1 rounded-md bg-slate-100 p-1 text-xs dark:bg-slate-800",children:["article","relations"].map(C=>m(Ze,{value:C,className:"rounded-md px-2 py-1 font-medium text-slate-600 transition-colors data-[state=active]:bg-white data-[state=active]:text-slate-900 data-[state=active]:shadow-sm dark:text-slate-200 dark:data-[state=active]:bg-slate-900/70 dark:data-[state=active]:text-slate-100",children:C==="article"?y.tabArticle:y.tabRelations},C))}),m(Oe,{ref:k,value:"article",className:"scrollbar-thin flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-3 text-sm",children:u?g?m(Ot,{report:g,onCancel:()=>l(!1),onPublishSuccess:()=>l(!1)}):m("p",{className:"rounded-lg border border-slate-300 border-dashed bg-slate-50 p-4 text-slate-600 dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:"\u8AAD\u307F\u8FBC\u307F\u4E2D..."}):t&&m(La,{report:g,isLoading:T,error:D,selectedItem:t,autoMarkRead:n,isActive:s,onCommentAdded:_,userId:a,onDoubleClick:N?()=>l(!0):void 0})}),m(Oe,{value:"relations",className:"scrollbar-thin flex-1 touch-pan-y overflow-y-auto pt-3 text-sm",children:m("p",{className:"rounded-lg border border-slate-300 border-dashed bg-slate-50 p-4 text-slate-600 dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:y.relationsEmpty})})]})]});return e?m("aside",{"data-testid":"daily-report-side-pane","data-report-id":t?.reportHubId,className:"hidden min-h-0 min-w-0 flex-1 flex-col gap-3 rounded-2xl border border-slate-200 bg-white p-4 shadow-sm sm:flex dark:border-slate-700 dark:bg-slate-900/70",style:r,children:M}):m("div",{"data-testid":"daily-report-side-pane","data-report-id":t?.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-3 overflow-hidden",children:M})},Fe=({className:e="w-32"})=>m("div",{"data-skeleton":!0,className:`h-4 animate-pulse rounded bg-slate-200 dark:bg-slate-700 ${e}`}),La=({report:e,isLoading:t,error:r,selectedItem:n,autoMarkRead:s=!1,isActive:a=!0,onCommentAdded:i,userId:c,onDoubleClick:u})=>{let{toggleStar:l,toggleRead:o,deleteReport:y,user:w}=be(),{fieldLabels:g,sourceTypeConfigs:D}=j(),{uiComments:T,handleAddComment:k,handleDeleteComment:A,pendingDeleteId:S,setPendingDeleteId:N,resolvedIdMap:_}=Mt(e,w,c),{handleToggleRead:U}=Ea(e,t,s,a,o),O=n.sourceType??e?.sourceType,F=Pe(O,D),M=O?O.toLowerCase()!=="internal":!1,C=F?.allowComment??!M,H=Q(null),Z=Q(T.length);le(()=>{let h=e?.reportHubId??null;if(h!==H.current){H.current=h,Z.current=T.length;return}T.length>Z.current&&i?.(),Z.current=T.length},[T.length,e?.reportHubId,i]);let ge=async h=>{await k(h)},te=lr(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
1
+ import{jsx as qt}from"react/jsx-runtime";var at=({orientation:e,thumbCenter:t,label:r,isDragging:n,isTapScrollActive:s,isWheelScrollActive:a})=>r.trim()&&(n||s||a)?qt("div",{className:"pointer-events-none absolute flex items-center",style:e==="vertical"?{top:t,left:-16,transform:"translate(-100%, -50%)"}:{left:t,top:-16,transform:"translate(-50%, -100%)"},children:qt("div",{className:"rounded-full border border-slate-200 bg-white px-3 py-1 text-slate-700 text-xs shadow-md shadow-slate-400/30 dark:border-slate-700 dark:bg-slate-900/90 dark:text-slate-100",children:qt("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:r.trim()})})}):null;import Pn from"lucide-react/dist/esm/icons/paperclip.js";import{jsx as pr,jsxs as Ln}from"react/jsx-runtime";var An=2,ot=({count:e,label:t})=>e<=0?null:Ln("span",{className:"inline-flex shrink-0 items-center gap-0.5 rounded px-1 py-0.5 text-slate-500 dark:text-slate-400",title:`${t}: ${e}`,role:"img","aria-label":`${t}: ${e}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":e,children:[pr(Pn,{className:"h-3.5 w-3.5","aria-hidden":"true"}),e>=An&&pr("span",{className:"font-semibold text-[10px] leading-none",children:e})]});import{createContext as Mn,useContext as Hn,useMemo as _n}from"react";import{jsx as Kt,jsxs as On}from"react/jsx-runtime";var fr={id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",categoryInfo:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",tabArticle:"Overview",tabRelations:"Related",relationsEmpty:"No related view configured yet."},it={title:"Daily Reports",apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",fieldLabels:fr,sourceTypeConfigs:{Internal:{label:"\u30AA\u30EA\u30B8\u30CA\u30EB",badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}},renderHeader:({title:e,annotation:t})=>On("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[Kt("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?Kt("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),showDevControls:!1},br=Mn(it),hr=({config:e,children:t})=>{let r=_n(()=>({...it,...e,fieldLabels:{...fr,...e?.fieldLabels??{}}}),[e]);return Kt(br.Provider,{value:r,children:t})},W=()=>Hn(br),Le=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(s=>s.toLowerCase()===r);return n?t[n]:void 0};import{jsx as Ve,jsxs as lt}from"react/jsx-runtime";var gr=1024,Yt=["B","KB","MB","GB"],Fn=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=gr&&r<Yt.length-1;)t/=gr,r+=1;return r===0?`${t} ${Yt[r]}`:`${t.toFixed(1)} ${Yt[r]}`},dt=({attachments:e})=>{let{apiBasePath:t,fieldLabels:r}=W();return e.length===0?null:lt("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[Ve("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:r.attachments}),Ve("ul",{className:"flex flex-col gap-1.5",children:e.map(n=>{let s=`${t}/attachment/${n.id}`,a=Fn(n.fileSize),i=n.state==="absent";return lt("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 px-3 py-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":n.state,children:[lt("div",{className:"flex min-w-0 flex-col",children:[i?Ve("span",{className:"truncate text-slate-400 text-sm line-through dark:text-slate-500","data-testid":"daily-report-attachment-name",children:n.fileName}):Ve("a",{href:s,className:"truncate text-blue-600 text-sm hover:underline dark:text-blue-400","data-testid":"daily-report-attachment-link",children:n.fileName}),lt("span",{className:"text-[10px] text-slate-400 dark:text-slate-500",children:[a??"\u2014",i&&` \xB7 ${r.attachmentMissing}`]})]}),!i&&Ve("a",{href:`${s}?download=1`,className:"ml-auto shrink-0 text-[10px] text-slate-500 hover:text-slate-700 hover:underline dark:text-slate-400 dark:hover:text-slate-200","data-testid":"daily-report-attachment-download",children:r.attachmentDownload})]},n.id)})})]})};import $n from"@heroicons/react/24/outline/TrashIcon.js";import{useState as Vn}from"react";var yr=(e,t,r)=>{let n=e.map((a,i)=>({id:`legacy-${i}`,authorName:a.name||"Unknown",content:a.text||"",isMine:!1,color:a.color||void 0,isLegacy:!0})),s=t.map(a=>({id:a.id,authorName:a.userName??"",content:a.content??"",createdAt:a.createdAt??"",isMine:r?a.userId===r:a.isMine,isLegacy:!1}));return[...n,...s]},xr=e=>{if(!e)return"text-gray-700 dark:text-gray-300";let t=e.toLowerCase();return t.includes("red")||t.includes("\u8D64")?"text-red-600 dark:text-red-400":t.includes("green")||t.includes("\u7DD1")?"text-green-600 dark:text-green-400":t.includes("blue")||t.includes("\u9752")?"text-blue-600 dark:text-blue-400":t.includes("yellow")||t.includes("\u9EC4")?"text-yellow-600 dark:text-yellow-400":t.includes("orange")||t.includes("\u6A59")?"text-orange-500 dark:text-orange-400":"text-gray-700 dark:text-gray-300"};var ie=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},le=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?le(e.toISOString()):String(e);let t=e.trim();if(t==="")return"-";let r=t.match(/^(\d{4})[-/](\d{2})[-/](\d{2})$/);if(r)return`${r[1]}-${r[2]}-${r[3]}`;let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let s=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let u=String(n.getHours()).padStart(2,"0"),l=String(n.getMinutes()).padStart(2,"0"),o=String(n.getSeconds()).padStart(2,"0");return`${s}-${a}-${i}T${u}:${l}:${o}`}return`${s}-${a}-${i}`};import{clsx as Bn}from"clsx";import{twMerge as Un}from"tailwind-merge";function q(...e){return Un(Bn(e))}import{jsx as Me,jsxs as ut}from"react/jsx-runtime";var zn=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,vr=({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:s,onPendingDeleteIdChange:a,onTrashClick:i,resolvedIdMap:m})=>{let[u,l]=Vn(!1),o=zn(e.id,s,m),g=R=>{R.stopPropagation(),R.preventDefault(),a(null),l(!0),typeof e.id=="number"&&n(e.id)};return ut("li",{"data-comment-id":e.id,"data-deleted":u?"true":void 0,className:q("group relative rounded-xl border border-slate-200 bg-white p-3 dark:border-slate-700 dark:bg-slate-900/70",e.isMine&&"border-blue-200 bg-blue-50 dark:border-blue-800/70 dark:bg-blue-950/40",u&&"hidden",o?"z-50":"z-0 hover:z-10"),children:[ut("div",{className:"mb-1 flex items-center justify-between",children:[Me("div",{className:q("font-semibold text-xs",xr(e.color)),children:ie(e.authorName)}),ut("div",{className:"flex items-center gap-2",children:[e.createdAt&&Me("div",{className:"text-[10px] text-slate-400",children:le(e.createdAt)}),e.isMine&&!e.isLegacy&&ut("div",{className:"relative",children:[Me("button",{type:"button",className:q("transition-colors",o?"text-red-500":"text-slate-400 hover:text-red-500"),title:"\u524A\u9664","aria-label":"\u524A\u9664",onClick:R=>i(R,e.id),children:Me($n,{className:"h-4 w-4"})}),o&&Me("button",{type:"button","data-delete-confirmation":!0,className:"fade-in zoom-in-95 absolute top-full right-0 z-20 mt-1 animate-in whitespace-nowrap rounded-md bg-red-600 px-3 py-1.5 font-bold text-white text-xs shadow-lg duration-200 hover:bg-red-700 active:scale-95",onClick:g,children:"\u524A\u9664\u3059\u308B"})]})]})]}),Me("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-relaxed dark:text-slate-200",children:e.content})]})};import{useCallback as jn,useEffect as Rr,useRef as Dr,useState as Wn}from"react";import{jsx as Ee,jsxs as qn}from"react/jsx-runtime";var Gn=(e,t)=>{let r=Dr(null);return Rr(()=>{if(e===null)return;let s=a=>{a.target.closest("[data-delete-confirmation]")||t(null)};return document.addEventListener("mousedown",s),document.addEventListener("touchstart",s),()=>{document.removeEventListener("mousedown",s),document.removeEventListener("touchstart",s)}},[e,t]),Rr(()=>()=>{r.current&&clearTimeout(r.current)},[]),{handleTrashClick:jn((s,a)=>{s.stopPropagation(),s.preventDefault(),e!==a&&(t(a),r.current&&clearTimeout(r.current),r.current=window.setTimeout(()=>{t(null),r.current=null},5e3))},[e,t])}},ct=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:s,onPendingDeleteIdChange:a,resolvedIdMap:i})=>{let{handleTrashClick:m}=Gn(s,a);return e.length===0?null:Ee("ul",{className:"mb-3 space-y-2",children:e.map(u=>Ee(vr,{comment:u,reportHubId:t,businessDate:r,onOptimisticDelete:n||(()=>{}),pendingDeleteId:s,onPendingDeleteIdChange:a,onTrashClick:m,resolvedIdMap:i},u.id))})},mt=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,s]=Wn(!1),a=Dr(null);return qn("form",{className:"flex gap-2",ref:a,onSubmit:async m=>{m.preventDefault();let l=new FormData(m.currentTarget).get("content")?.trim();if(l&&r){s(!0),a.current?.reset();try{await r(l)}catch{if(a.current){let o=a.current.elements.namedItem("content");o&&(o.value=l)}}finally{s(!1)}}},children:[Ee("input",{type:"hidden",name:"intent",value:"addComment"}),Ee("input",{type:"hidden",name:"reportHubId",value:e}),Ee("input",{type:"hidden",name:"businessDate",value:t}),Ee("input",{type:"text",name:"content",placeholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",className:"flex-1 rounded-lg border border-slate-300 bg-slate-50 px-3 py-2 text-sm focus:border-blue-500 focus:bg-white focus:outline-none dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200",autoComplete:"off"}),Ee("button",{type:"submit",className:"rounded-lg bg-blue-600 px-4 py-2 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",disabled:n,children:"\u9001\u4FE1"})]})};import{VirtualScroll as na}from"@aiquants/virtualscroll";import sa from"lucide-react/dist/esm/icons/check.js";import on from"lucide-react/dist/esm/icons/star.js";import aa from"lucide-react/dist/esm/icons/trash-2.js";import{useCallback as Re,useEffect as Ce,useMemo as dr,useRef as ue,useState as Ze}from"react";import{createContext as Hs,useCallback as Se,useContext as _s,useEffect as or,useRef as de,useState as Ht}from"react";var wr=e=>{if(typeof e!="object"||e===null)return"unknown";let t=e;return typeof t.kind=="string"?t.kind==="chunk"?"chunk":t.kind==="error"?"error":"unknown":Array.isArray(t.items)?"chunk":typeof t.error=="string"?"error":"unknown"};var pt=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Sr=e=>{for(let t=1;t<e.length;t++)if(pt(e[t-1],e[t])>0)return!1;return!0},Xt=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,s=r.length;for(;n<s;){let a=n+s>>1;pt(r[a],t)<=0?n=a+1:s=a}return r.splice(n,0,t),r};var He=(e,t,r=console)=>{let n=s=>typeof s=="string"?[`${t} ${s}`]:[t,s];return{debug:(s,...a)=>{e<=0&&r.debug(...n(s),...a)},info:(s,...a)=>{e<=1&&r.info(...n(s),...a)},warn:(s,...a)=>{e<=2&&r.warn(...n(s),...a)},error:(s,...a)=>{e<=3&&r.error(...n(s),...a)}}};import{useCallback as Jn,useEffect as kr,useRef as Qn,useState as It}from"react";var Kn=/^\d{4}-\d{2}-\d{2}$/,Yn=/^\d{4}\/\d{2}\/\d{2}$/,ft=e=>e<10?`0${e}`:`${e}`,Ir=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=ft(e.getMonth()+1),n=ft(e.getDate());return`${t}-${r}-${n}`},Jt=(e=new Date)=>Number.isNaN(e.getTime())?Jt(new Date):`${e.getFullYear()}-${ft(e.getMonth()+1)}-${ft(e.getDate())}`,ze=e=>{if(e==null)return null;if(e instanceof Date)return Ir(e);let t=e.trim();if(t==="")return null;if(Kn.test(t))return t;if(Yn.test(t))return t.replaceAll("/","-");let r=new Date(t);return Ir(r)};import{tapScrollCircleSampleVisual as Xn}from"@aiquants/virtualscroll";var _e=120,Cr=1e3,Qt=160,bt=6,je=Qt-bt,ht=.8,gt={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},yt=20,Tr=6,xt={reportHubId:-1,businessDate:null},ko={report:null,error:null,isLoading:!1,isRefetching:!1},vt=240,Rt=15,Dt=8,Nr=3,wt={enabled:!0,renderVisual:Xn,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8},St=["pen","touch"];var Pr=He(1,"use-daily-report"),Ar=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Zt=Ar("__DAILY_REPORT_CACHE_TTL__",3e5),Zn=Ar("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),H={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{H.listeners.forEach(t=>{t(e)})},getReport(e,t=!1){let r=this.reports.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},getList(e,t=!1){let r=e&&this.lists.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},set(e,t,r=!0){if(this.reports.set(e.reportHubId,{data:e,expiresAt:t}),r){let n=ze(e.date),s=n?this.lists.get(n):null;if(s&&n){let i=s.data.some(m=>m.reportHubId===e.reportHubId)?s.data.map(m=>m.reportHubId===e.reportHubId?e:m):[e,...s.data];this.lists.set(n,{...s,data:i})}}this.notify(e.reportHubId)},update(e,t,r=!0){let n=this.reports.get(e);if(n?.data){if(r&&t.updatedAt&&n.data.updatedAt&&new Date(t.updatedAt).getTime()<new Date(n.data.updatedAt).getTime()){Pr.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Zn))}},delete(e,t){this.reports.delete(e);let r=ze(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(s=>s.reportHubId!==e)}),this.notify(e)},merge(e,t){let r=e;if(r.postedComments.some(n=>this.recentDeletes.has(n.id))&&(r={...r,postedComments:r.postedComments.filter(n=>!this.recentDeletes.has(n.id))}),t){let n=new Set(r.postedComments.map(a=>a.id)),s=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);s.length>0&&(r={...r,postedComments:[...r.postedComments,...s].sort((a,i)=>new Date(a.createdAt||0).getTime()-new Date(i.createdAt||0).getTime())})}return r},cacheMany(e,t,r){this.prune();let n=Date.now(),s=n+Zt;for(let[i,m]of this.recentDeletes)n-m>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let m=this.lastMutations.get(i.reportHubId);if(m&&r>0&&m>r)return this.reports.get(i.reportHubId)?.data??i;let u=this.reports.get(i.reportHubId)?.data,l=this.merge(i,u);return this.set(l,s,!1),l});return t&&this.lists.set(t,{data:a,expiresAt:s}),a}},Lr=(e,t,r=!0)=>H.set(e,t,r),fe=(e,t)=>H.getReport(e,t?.ignoreExpiry),be=(e,t)=>H.update(e,t),Tt=(e,t)=>H.delete(e,t),We=()=>{H.clear(),Ct.clear()},Ge=e=>{H.locks.add(e),H.lastMutations.set(e,Date.now())},qe=e=>{H.locks.delete(e),H.lastMutations.set(e,Date.now())},Mr=e=>H.recentDeletes.set(e,Date.now()),Hr=(e,t)=>{let r=n=>{n===e&&t()};return H.listeners.add(r),()=>{H.listeners.delete(r)}},Pe=(e,t)=>{H.prune(),H.set(t,Date.now()+Zt)},_r=e=>{H.prune();let t=H.getReport(e.reportHubId,!0),r=new Map;for(let s of t?.postedComments??[])r.set(s.id,s.isMine??!1);let n=(e.postedComments??[]).map(s=>({...s,isMine:r.get(s.id)??!1}));H.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Zt)},es=async(e,t)=>{let r=H.getReport(t);if(r)return r;let n=H.pendingReports.get(t);if(n)return n;let s=Date.now(),a=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(i=>i.ok?i.json():Promise.reject(`HTTP ${i.status}`)).then(i=>{if(i.error)throw new Error(i.error.message);let m=i.report;return H.cacheMany([m],null,s)[0]}).finally(()=>H.pendingReports.delete(t));return H.pendingReports.set(t,a),a},Ct=new Map,ts=1e4,rs=(e,t)=>{let r=Ct.get(t),n=Date.now();if(r&&n-r.at<ts)return r.inFlight;let s=er(e,t,{forceRefresh:!0}),a={at:n,inFlight:s};return Ct.set(t,a),s.finally(()=>{Ct.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),s},er=async(e,t,r={})=>{let n=r.forceRefresh?null:H.getList(t);if(n)return n;let s=H.pendingLists.get(t);if(s)return s;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(m=>m.ok?m.json():Promise.reject(`HTTP ${m.status}`)).then(m=>{if(m.error)throw new Error(m.error.message);return H.cacheMany(m.reports??[],t,a)}).finally(()=>H.pendingLists.delete(t));return H.pendingLists.set(t,i),i},Oe=(e,t)=>{let{apiBasePath:r}=W(),[n,s]=It(()=>H.getReport(e)),[a,i]=It(null),[m,u]=It(!1),[l,o]=It(!1),g=Qn({id:e,token:0});return kr(()=>{let R=h=>{if(h===e){let D=H.getReport(e,!0);s(D)}};return H.listeners.add(R),()=>{H.listeners.delete(R)}},[e]),kr(()=>{let R=ze(t),h=(g.current.token||0)+1;if(g.current={id:e,token:h},e<=0){s(null),i(e===0?new Error("Invalid ID"):null),u(!1),o(!1);return}let D=H.getReport(e,!0),T=!1;if(D)T=!H.isValid(H.reports.get(e)?.expiresAt??0);else if(R){let A=H.getList(R,!0)?.find(P=>P.reportHubId===e);A&&(D=A,T=!H.isValid(H.lists.get(R)?.expiresAt??0))}if(s(D),D&&!T){i(null),u(!1),o(!1);return}u(!D),o(!0);let F=setTimeout(async()=>{if(g.current.token===h)try{let C=null;if(R){let A=H.getList(R)!==null;if(C=(await er(r,R)).find(U=>U.reportHubId===e)??null,!C&&A){let U=await rs(r,R);U&&(C=U.find(k=>k.reportHubId===e)??null)}}else C=await es(r,e);g.current.token===h&&(s(C),i(null))}catch(C){g.current.token===h&&i(C instanceof Error?C:new Error("Load failed"))}finally{g.current.token===h&&(u(!1),o(!1))}},D?_e:0);return()=>clearTimeout(F)},[e,t,r]),{report:n,error:a,isLoading:m,isRefetching:l}},Or=()=>{let{apiBasePath:e}=W();return Jn(t=>{let r=ze(t);r&&!H.getList(r)&&er(e,r).catch(n=>Pr.warn("Prefetch error",r,n))},[e])};import{useEffect as bs}from"react";import{z as b}from"zod";var ns=b.object({name:b.string().nullish(),affiliation:b.string().nullish()}),ss=b.object({name:b.string().nullish(),text:b.string().nullish(),color:b.string().nullish()}),as=b.object({id:b.number(),name:b.string().nullish(),color:b.string().nullish()}),Fr=b.object({id:b.number(),userId:b.string().nullish(),userName:b.string().nullish(),content:b.string().nullish(),createdAt:b.string().nullish(),isMine:b.boolean()}),os=b.object({id:b.string(),fileName:b.string(),fileType:b.string().nullable(),fileSize:b.number().nullable(),createdAt:b.string().nullable(),state:b.enum(["present","absent","unknown"])}),tr=b.object({reportHubId:b.number(),date:b.string().nullish(),createdAt:b.string().nullish(),author:b.string().nullish(),userId:b.string().nullish(),sourceType:b.string().nullish(),employeeName:b.string().nullish(),updatedBy:b.string().nullish(),updatedAt:b.string().nullish(),category:b.string().nullish(),creationCategory:b.string().nullish(),visitTimeFrom:b.string().nullish(),visitTimeTo:b.string().nullish(),customerName:b.string().nullish(),interviewers:b.array(ns),subject:b.string().nullish(),content:b.string().nullish(),externalComments:b.array(ss),isRead:b.boolean(),isStarred:b.boolean(),labels:b.array(as),postedComments:b.array(Fr),attachments:b.array(os).default([])}),is=b.object({type:b.literal("connected")}),ls=b.object({type:b.literal("status-update"),reportHubId:b.number(),statusType:b.enum(["star","read"]),value:b.boolean(),clientTempId:b.string(),recipientRawUserId:b.number().optional()}),rr=b.string().optional(),ds=b.object({type:b.literal("comment-add"),reportHubId:b.number(),comment:Fr,clientTempId:b.string(),recipientRawUserId:b.number().optional(),sourceType:rr}),us=b.object({type:b.literal("comment-delete"),reportHubId:b.number(),commentId:b.number(),clientTempId:b.string(),recipientRawUserId:b.number().optional(),sourceType:rr}),cs=b.object({type:b.literal("report-create"),reportHubId:b.number(),report:tr,clientTempId:b.string(),recipientRawUserId:b.number().optional()}),ms=b.object({type:b.literal("report-update"),reportHubId:b.number(),report:tr,clientTempId:b.string(),recipientRawUserId:b.number().optional()}),ps=b.object({type:b.literal("report-publish"),reportHubId:b.number(),report:tr,clientTempId:b.string(),recipientRawUserId:b.number().optional()}),fs=b.object({type:b.literal("report-delete"),reportHubId:b.number(),clientTempId:b.string(),sourceType:rr}),Br=b.discriminatedUnion("type",[is,ls,ds,us,cs,ms,ps,fs]);var Ke=He(1,"daily-report-sse-connection"),Ur=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r}=W();bs(()=>{if(!e)return;let n=null,s=null,a=0,i,m=()=>{n?.close(),n=new EventSource(`${r}${i?`?lastEventId=${i}`:""}`),n.onopen=()=>{a=0,Ke.info("SSE Connected")},n.onmessage=u=>{u.lastEventId&&(i=u.lastEventId);try{let l=JSON.parse(u.data),o=Br.safeParse(l);if(!o.success){Ke.error("SSE Validation Error:",o.error.flatten(),"raw message:",l);return}if(o.data.type==="connected"){Ke.info("SSE Subscribe Ready");return}t(o.data)}catch(l){Ke.error("SSE Parse Error",l)}},n.onerror=u=>{n?.close(),n=null,a++;let l=Math.min(2e3*2**(a-1),3e4);Ke.error(`SSE Error. Retrying in ${l}ms (attempt ${a})...`,u),s=setTimeout(m,l)}};return m(),()=>{n&&n.close(),s&&clearTimeout(s)}},[e,t,r])};import{useSyncExternalStore as ws}from"react";var hs=50,gs=1e3,ys=3e4,xs=6,vs=3e4,Nt=Symbol("read-stall"),Rs="/daily_report/api",Ds=/^\d{4}-\d{2}-\d{2}$/,kt=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null};this.lastCursor=null;this.lastSnapshot=null;this.consecutiveFailures=0;this.started=!1;this.disposed=!1;this.loopGeneration=0;this.activeAbortController=null;this.activeSeenIds=null;this.externalRemovalTombstones=new Set;this.pendingForceRefresh=!1;this.wakeRetryWait=null;this.handleOnline=()=>this.wakeRetryWait?.();this.publishCoalesceTimer=null;this.lastItemsPublishAt=0;this.apiBasePath=t.apiBasePath??Rs,this.fetchFn=t.fetchFn??((r,n)=>fetch(r,n)),this.setTimeoutFn=t.setTimeoutFn??((r,n)=>setTimeout(r,n)),this.clearTimeoutFn=t.clearTimeoutFn??(r=>clearTimeout(r)),this.warn=t.warn??((...r)=>console.warn(...r)),this.readStallTimeoutMs=t.readStallTimeoutMs??vs,this.publishCoalesceMs=t.publishCoalesceMs??hs,typeof window<"u"&&window.addEventListener("online",this.handleOnline)}getState(){return this.state}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}start(){this.started||this.disposed||(this.started=!0,this.runStreamLoop({revalidate:!1,forceRefresh:!1}))}retry(){this.disposed||this.state.phase!=="failed"||(this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:!1}))}refresh(t={}){if(!this.disposed){if(this.state.phase==="failed"){this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:t.forceRefresh??!1});return}if(this.state.phase==="complete"){if(this.state.isRevalidating){t.forceRefresh&&(this.pendingForceRefresh=!0);return}this.lastCursor=null,this.consecutiveFailures=0,this.runStreamLoop({revalidate:!0,forceRefresh:t.forceRefresh??!1})}}}applyExternalUpsert(t){if(this.disposed||!t||typeof t.reportHubId!="number")return;this.externalRemovalTombstones.delete(t.reportHubId),this.activeSeenIds?.add(t.reportHubId);let r=this.itemMap.get(t.reportHubId),n={reportHubId:t.reportHubId,businessDate:t.businessDate,sourceType:t.sourceType??r?.sourceType};(!r||r.businessDate!==n.businessDate||r.sourceType!==n.sourceType)&&(this.itemMap.set(t.reportHubId,n),this.publishItems())}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.itemMap.delete(t)&&this.publishItems())}dispose(){this.disposed=!0,this.loopGeneration+=1,this.activeAbortController?.abort(),this.cancelScheduledPublishItems(),this.wakeRetryWait?.(),typeof window<"u"&&window.removeEventListener("online",this.handleOnline),this.listeners.clear()}async runStreamLoop(t){let r=++this.loopGeneration;for(this.activeAbortController?.abort(),this.wakeRetryWait?.(),this.lastCursor===null&&(this.activeSeenIds=new Set,this.externalRemovalTombstones.clear(),this.lastSnapshot=null),t.forceRefresh&&(this.pendingForceRefresh=!1),this.publish({phase:t.revalidate?this.state.phase:"streaming",isRevalidating:t.revalidate,error:null});!this.disposed&&r===this.loopGeneration;){let n=await this.streamOnce(t.forceRefresh);if(this.disposed||r!==this.loopGeneration)return;if(n.kind==="complete"){this.pruneUnseenItems(),this.consecutiveFailures=0,this.cancelScheduledPublishItems(),this.lastItemsPublishAt=Date.now(),this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size}),this.pendingForceRefresh&&!this.disposed&&(this.pendingForceRefresh=!1,this.lastCursor=null,this.runStreamLoop({revalidate:!0,forceRefresh:!0}));return}if(n.kind==="aborted")return;if(n.kind==="auth-required"){this.publish({phase:"auth-required",isRevalidating:!1});return}if(this.consecutiveFailures+=1,this.consecutiveFailures>=xs){t.revalidate&&this.state.hasCompletedOnce?(this.warn("[DailyReportIdsStream] revalidation gave up:",n.error.message),this.pendingForceRefresh=!1,this.publish({isRevalidating:!1,error:n.error})):this.publish({phase:"failed",isRevalidating:!1,error:n.error});return}this.publish({phase:t.revalidate?this.state.phase:"retrying",error:n.error}),await this.waitBeforeRetry(Math.min(gs*2**(this.consecutiveFailures-1),ys))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.itemMap.delete(r)}async streamOnce(t){let r=new AbortController;this.activeAbortController=r;try{let n=this.fetchFn(this.buildStreamUrl(t),{signal:r.signal,headers:{Accept:"application/x-ndjson"},cache:"no-store"}),s=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(g=>{s=this.setTimeoutFn(()=>g(Nt),this.readStallTimeoutMs*3)})]).finally(()=>{s!==null&&this.clearTimeoutFn(s)});if(a===Nt)return r.abort(),n.catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no response headers within timeout")};if(a.status===401||a.status===403)return{kind:"auth-required"};if(!(a.ok&&a.body))return{kind:"retryable",error:new Error(`ids stream HTTP ${a.status}`)};let i=a.body.getReader(),m=new TextDecoder,u="",l=!1,o=!1;for(;;){let g=await this.readWithStallGuard(i);if(g===Nt)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let{done:R,value:h}=g;if(R)break;let D=(u+m.decode(h,{stream:!0})).split(`
2
+ `);u=D.pop()??"";let T=!1;for(let I of D){if(I.trim()==="")continue;let F;try{F=JSON.parse(I)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let C=wr(F);if(C==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(C==="error"){l=!0;continue}let A=F;T=this.absorbChunkLine(A)||T,typeof A.total=="number"&&Number.isFinite(A.total)&&A.total!==this.state.totalCount&&this.publish({totalCount:A.total}),A.nextCursor&&(A.nextCursor.businessDate===null||Ds.test(A.nextCursor.businessDate))&&(this.lastCursor=A.nextCursor),A.isLast&&(o=!0)}T&&(this.consecutiveFailures=0,this.schedulePublishItems())}return l?{kind:"retryable",error:new Error("Stream interrupted by server error")}:o?{kind:"complete"}:{kind:"retryable",error:new Error("Stream ended before completion")}}catch(n){return n instanceof Error&&n.name==="AbortError"?{kind:"aborted"}:{kind:"retryable",error:n instanceof Error?n:new Error(String(n))}}finally{this.activeAbortController===r&&(this.activeAbortController=null)}}async readWithStallGuard(t){if(this.readStallTimeoutMs<=0)return t.read();let r=null,n=new Promise(s=>{r=this.setTimeoutFn(()=>s(Nt),this.readStallTimeoutMs)});try{return await Promise.race([t.read(),n])}finally{r!==null&&this.clearTimeoutFn(r)}}absorbChunkLine(t){t.restarted===!0&&(this.lastCursor=null,this.lastSnapshot=null,this.activeSeenIds=new Set,this.externalRemovalTombstones.clear()),typeof t.snapshot=="string"&&(this.lastSnapshot=t.snapshot);let r=t.provisional===!0,n=!1;for(let s of t.items){if(!s||typeof s.reportHubId!="number"||this.externalRemovalTombstones.has(s.reportHubId))continue;r||this.activeSeenIds?.add(s.reportHubId);let a=this.itemMap.get(s.reportHubId);(!a||a.businessDate!==s.businessDate||a.sourceType!==s.sourceType)&&(this.itemMap.set(s.reportHubId,s),n=!0)}return n}publishItems(){this.lastItemsPublishAt=Date.now(),this.publish({items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size})}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=Date.now()-this.lastItemsPublishAt;if(t>=this.publishCoalesceMs){this.publishItems();return}this.publishCoalesceTimer===null&&(this.publishCoalesceTimer=this.setTimeoutFn(()=>{this.publishCoalesceTimer=null,this.publishItems()},this.publishCoalesceMs-t))}cancelScheduledPublishItems(){this.publishCoalesceTimer!==null&&(this.clearTimeoutFn(this.publishCoalesceTimer),this.publishCoalesceTimer=null)}publish(t){this.state={...this.state,...t};for(let r of this.listeners)r()}buildStreamUrl(t){let r=new URLSearchParams;this.lastCursor&&(r.set("cursor_report_hub_id",String(this.lastCursor.reportHubId)),this.lastCursor.businessDate!==null&&r.set("cursor_business_date",this.lastCursor.businessDate),this.lastSnapshot!==null&&r.set("cursor_snapshot",this.lastSnapshot)),t&&r.set("forceRefresh","true");let n=r.toString();return`${this.apiBasePath}/ids-stream${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,s=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===s&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=s,n=this.setTimeoutFn(s,t)})}};var Ss=6e4,J=null,$r=!1,nr=new Set,Vr={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null},zr=()=>{typeof window<"u"&&window.location.reload()},sr=()=>{for(let e of nr)e()},Pt=()=>{J&&(J.unsubscribe(),J.client.dispose(),J=null,sr())},Et=e=>{if(typeof window>"u")return;let t=e.apiBasePath??it.apiBasePath;if(J&&(J.userKey!==e.userKey||J.apiBasePath!==t)&&(J.userKey!==e.userKey&&We(),Pt()),!J){let r=new kt({apiBasePath:t});J={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(sr)},Is(),r.start(),sr();return}At(J)},At=e=>{let t=e.client.getState();if(t.phase==="failed"){e.client.retry();return}t.phase==="complete"&&!t.isRevalidating&&t.completedAt!==null&&Date.now()-t.completedAt>Ss&&e.client.refresh()},Is=()=>{if($r||typeof document>"u"||typeof window>"u")return;$r=!0;let e=()=>{J&&At(J)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},jr=e=>{if(!(typeof window>"u")){if(!J){Et(e);return}if(J.userKey!==e.userKey){We(),Pt(),Et(e);return}At(J)}},Wr=()=>{typeof window>"u"||!J||At(J)},Ye=e=>{J?.client.applyExternalUpsert(e)},Lt=e=>{J?.client.applyExternalRemoval(e)},Mt=()=>{J?.client.retry()},ar=(e={})=>{J?.client.refresh(e)},Gr=()=>J?.userKey,Cs=e=>(nr.add(e),()=>nr.delete(e)),Ts=()=>J?.client.getState()??Vr,Ns=()=>Vr,Fe=()=>ws(Cs,Ts,Ns),Xo=()=>{Pt()};typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Pt()});import{createContext as ks,useCallback as qr,useContext as Es,useEffect as Ps,useMemo as As,useRef as Kr,useState as Ls}from"react";import{jsx as Yr,jsxs as Xr}from"react/jsx-runtime";var Ms=8e3,Jr=ks({notifyError:()=>{}}),Qr=()=>Es(Jr),Zr=({children:e})=>{let{onError:t}=W(),[r,n]=Ls(null),s=Kr(t);s.current=t;let a=Kr(null),i=qr(l=>{let o=s.current;if(o){o(l);return}n(l)},[]),m=qr(()=>{a.current!==null&&(clearTimeout(a.current),a.current=null),n(null)},[]);Ps(()=>{if(r)return a.current=setTimeout(()=>n(null),Ms),()=>{a.current!==null&&(clearTimeout(a.current),a.current=null)}},[r]);let u=As(()=>({notifyError:i}),[i]);return Xr(Jr.Provider,{value:u,children:[e,r&&Xr("div",{role:"alert","data-testid":"daily-report-error-banner",className:"fade-in slide-in-from-bottom-2 fixed inset-x-0 bottom-4 z-[100] mx-auto flex w-fit max-w-[92vw] animate-in items-center gap-3 rounded-lg border border-red-300 bg-red-600 px-4 py-2.5 text-sm text-white shadow-lg duration-200 dark:border-red-500/60 dark:bg-red-700",children:[Yr("span",{className:"font-medium",children:r.message}),Yr("button",{type:"button","aria-label":"\u9589\u3058\u308B",onClick:m,className:"shrink-0 rounded px-1.5 py-0.5 font-bold text-white/90 transition-colors hover:bg-red-700 hover:text-white dark:hover:bg-red-800",children:"\u2715"})]})]})};import{jsx as Us}from"react/jsx-runtime";var ve=He(1,"daily-report-action-context"),Os={create:"\u65E5\u5831\u306E\u4F5C\u6210",update:"\u65E5\u5831\u306E\u4FDD\u5B58",publish:"\u65E5\u5831\u306E\u516C\u958B",delete:"\u65E5\u5831\u306E\u524A\u9664",addComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u6295\u7A3F",deleteComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u524A\u9664",toggleStar:"\u30B9\u30BF\u30FC\u306E\u66F4\u65B0",toggleRead:"\u65E2\u8AAD\u72B6\u614B\u306E\u66F4\u65B0"},Fs=e=>`${Os[e]??"\u64CD\u4F5C"}\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,Bs=Object.freeze([]),ir=globalThis.__DailyReportActionContext??Hs(null);globalThis.__DailyReportActionContext=ir;var he=()=>{let e=_s(ir);if(!e)throw new Error("useDailyReportActionContext must be used within a DailyReportActionProvider");return e},Xe=e=>{if(!e)return"Unknown";if(e.displayName?.trim())return e.displayName;if(e.name){let t=`${e.name.familyName??""} ${e.name.givenName??""}`.trim();if(t)return t}return e.emails?.[0]?.value??"Unknown"},en=({children:e,user:t,initialItems:r=Bs,userId:n})=>{let{apiBasePath:s,draftLabelName:a}=W(),{notifyError:i}=Qr(),m=de(i);m.current=i;let u=de(new Map),l=de(new Map),o=de(new Map),g=de(new Map),R=de(new Map),[h,D]=Ht(0),[T,I]=Ht(r),[F,C]=Ht(!1),A=de(!1),P=de(new Map),U=de(new Set),k=de(new Set),L=de(new Set),M=Fe(),N=de(!1);N.current=M.phase==="complete"&&!M.isRevalidating;let O=Se(()=>Gr()===(n??null),[n]),se=Se(async()=>{ve.info("[DailyReportActionProvider] Refetching data without page reload..."),ar(),D(p=>p+1),H.listeners.forEach(p=>{p(-1)})},[]),we=Se(async()=>{ve.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),We(),k.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let d=await fetch(`${s}/action`,{method:"POST",body:p});if(!d.ok){let y=await d.json().catch(()=>null);ve.warn("[DailyReportActionProvider] Failed to clear server-side cache:",d.status,y)}}catch(p){ve.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}O()&&(ar({forceRefresh:!0}),D(p=>p+1),H.listeners.forEach(p=>{p(-1)}))},[s,O]),te=de(new Map),ge=de(()=>{}),oe=Se((p,d)=>{let y=te.current,f=y.get(p);if(f){f.messages.push(d);return}let v={messages:[d],unsubscribe:()=>{},timer:setTimeout(()=>{let w=y.get(p);w&&(w.unsubscribe(),y.delete(p),ve.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${w.messages.length} messages`))},3e4)};v.unsubscribe=Hr(p,()=>{let w=y.get(p);if(w&&fe(p,{ignoreExpiry:!0})){w.unsubscribe(),clearTimeout(w.timer),y.delete(p),ve.info(`[SSE Queue] Replaying ${w.messages.length} messages for reportHubId=${p}`);for(let E of w.messages)ge.current(E)}}),y.set(p,v)},[]),re=p=>{L.current.add(p),setTimeout(()=>{L.current.delete(p)},3e4)},ce=Se(p=>!!p&&L.current.has(p),[]),G=Se((p,d)=>{d!==void 0&&Ye({reportHubId:p,businessDate:d??null}),I(y=>{let f=y.find(w=>w.reportHubId===p),v=d??f?.businessDate??null;return Xt(y,{reportHubId:p,businessDate:v,sourceType:f?.sourceType})})},[]),me=()=>{n&&(A.current=!0,C(p=>!p))};or(()=>{if(!n)return;let p=setTimeout(()=>{A.current||C(!0)},Cr);return()=>clearTimeout(p)},[n]);let Te=Se(p=>{O()&&(k.current.add(p),Lt(p),I(d=>d.filter(y=>y.reportHubId!==p)))},[O]),[S,B]=Ht(r);if(r!==S){B(r);let p=new Map;for(let f of r)k.current.has(f.reportHubId)||p.set(f.reportHubId,f);let d=N.current;for(let f of T)p.has(f.reportHubId)||k.current.has(f.reportHubId)||d&&f.reportHubId>0||p.set(f.reportHubId,f);let y=Array.from(p.values());Sr(y)||y.sort(pt),I(y)}or(()=>{if(N.current){let p=new Set(r.map(d=>d.reportHubId));for(let d of k.current)p.has(d)||k.current.delete(d)}},[r]);let K=Se(p=>{if(O()&&!ce(p.clientTempId))switch(p.type){case"comment-add":{let{comment:d,reportHubId:y}=p,f=fe(y,{ignoreExpiry:!0});if(f){if(f.postedComments.some(Y=>Y.id===d.id))return;let v=!1,w=u.current.get(y);if(w){for(let[Y,pe]of w.entries())if(pe===d.content){w.delete(Y),R.current.set(Y,d.id),v=!0;break}}let E={...d,userName:d.userName||(v?Xe(t):"Unknown"),createdAt:d.createdAt||new Date().toISOString(),isMine:v},j={...f,postedComments:[...f.postedComments,E].sort((Y,pe)=>new Date(Y.createdAt||0).getTime()-new Date(pe.createdAt||0).getTime())};Pe(y,j),Ge(y),qe(y),D(Y=>Y+1)}else oe(y,p);break}case"comment-delete":{let{commentId:d,reportHubId:y}=p,f=fe(y,{ignoreExpiry:!0});if(f){let v={...f,postedComments:f.postedComments.filter(w=>w.id!==d)};Pe(y,v),Ge(y),qe(y),D(w=>w+1)}else oe(y,p);break}case"status-update":{let{statusType:d,value:y,reportHubId:f}=p,v=fe(f,{ignoreExpiry:!0});if(d==="star")if(o.current.get(f)===y&&o.current.delete(f),v){let w={...v,isStarred:y};Pe(f,w),D(E=>E+1)}else oe(f,p);else if(d==="read")if(g.current.get(f)===y&&g.current.delete(f),v){let w={...v,isRead:y};Pe(f,w),D(E=>E+1)}else oe(f,p);break}case"report-delete":{let{reportHubId:d}=p;U.current.delete(d),k.current.add(d),Lt(d);let y=te.current.get(d);y&&(y.unsubscribe(),clearTimeout(y.timer),te.current.delete(d));let f=fe(d,{ignoreExpiry:!0});f?.date&&(Tt(d,f.date),D(v=>v+1)),I(v=>v.filter(w=>w.reportHubId!==d));break}case"report-create":case"report-update":case"report-publish":{let{report:d}=p;_r(d),(p.type==="report-create"||p.type==="report-publish")&&(U.current.add(d.reportHubId),G(d.reportHubId,d.date)),D(y=>y+1);break}}},[ce,O,G,t,oe]);ge.current=K,or(()=>()=>{for(let p of te.current.values())p.unsubscribe(),clearTimeout(p.timer);te.current.clear()},[]),Ur({isSseEnabled:F,onMessage:K});let z=async(p,d,y,f,v,w)=>{w?.skipLock||Ge(p),v.onOptimistic?.();let E=f.clientTempId||crypto.randomUUID();re(E);let j=new FormData;j.append("intent",d),j.append("reportHubId",String(p)),j.append("businessDate",y),j.append("operationTimestamp",String(Date.now())),j.append("clientTempId",E);for(let[Y,pe]of Object.entries(f))Y!=="clientTempId"&&j.append(Y,pe);try{let Y=await fetch(`${s}/action`,{method:"POST",body:j,headers:{Accept:"application/json"}});if(!Y.ok){let mr=new Error(`Failed to ${d}`);throw Object.assign(mr,{status:Y.status}),mr}let pe=await Y.json();if(pe.status!=="OK"||d!=="create"&&String(pe.reportHubId)!==String(p))throw new Error(`Invalid response for ${d}`);if(typeof pe.clientTempId!="string"||pe.clientTempId!==E)throw new Error(`Invalid clientTempId for ${d}`);if(!O())throw ve.warn(`[executeAction] ${d} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${d}`);return await v.onSuccess?.(pe)}catch(Y){throw ve.error(`${d} failed:`,Y),O()&&(v.onFailure?.(),m.current({operation:d,message:Fs(d),cause:Y})),Y}finally{w?.keepLock||w?.skipLock||qe(p)}},_=async(p,d,y)=>{let f=Number(p),v=-1*Date.now(),w=z(f,"addComment",y,{content:d,clientTempId:String(v)},{onOptimistic:()=>{u.current.has(f)||u.current.set(f,new Map),u.current.get(f)?.set(v,d),D(E=>E+1)},onSuccess:E=>{if(!E.newComment)throw new Error("No new comment returned");let j=E.newComment.id;R.current.set(v,j),u.current.get(f)?.delete(v);let Y=fe(f,{ignoreExpiry:!0});return Y&&!Y.postedComments.some(pe=>pe.id===j)&&be(f,{postedComments:[...Y.postedComments,{...E.newComment,id:j,isMine:!0,userName:Xe(t)}],updatedAt:E.updatedAt}),j},onFailure:()=>{u.current.get(f)?.delete(v)}},{skipLock:!0}).finally(()=>P.current.delete(v));P.current.set(v,w),await w},$=async(p,d,y)=>{let f=Number(p);l.current.has(f)||l.current.set(f,new Set),l.current.get(f)?.add(d),D(w=>w+1);let v=d;if(d<0){let w=R.current.get(d);if(w!==void 0)v=w;else{let E=P.current.get(d);if(!E)return;try{v=await E}catch{return}}}await z(f,"deleteComment",y,{commentId:String(v)},{onSuccess:w=>{let E=typeof w.deletedCommentId=="string"?Number(w.deletedCommentId):v,j=fe(f,{ignoreExpiry:!0});j&&(be(f,{postedComments:j.postedComments.filter(Y=>Y.id!==E),updatedAt:w.updatedAt}),Mr(E)),l.current.get(f)?.delete(d)},onFailure:()=>{l.current.get(f)?.delete(d)}},{skipLock:!0})},ee=async(p,d,y)=>{let f=Number(p);await z(f,"toggleStar",y,{isStarred:String(d)},{onOptimistic:()=>{be(f,{isStarred:d}),o.current.set(f,d),D(v=>v+1)},onSuccess:v=>{v.updatedStatus&&typeof v.updatedStatus.isStarred=="boolean"&&fe(f,{ignoreExpiry:!0})&&(be(f,{isStarred:v.updatedStatus.isStarred,updatedAt:v.updatedAt}),D(E=>E+1)),o.current.delete(f)},onFailure:()=>{be(f,{isStarred:!d}),o.current.delete(f)}},{skipLock:!0})},Ne=async(p,d,y)=>{let f=Number(p);await z(f,"toggleRead",y,{isRead:String(d)},{onOptimistic:()=>{be(f,{isRead:d}),g.current.set(f,d),D(v=>v+1)},onSuccess:v=>{v.updatedStatus&&typeof v.updatedStatus.isRead=="boolean"&&fe(f,{ignoreExpiry:!0})&&(be(f,{isRead:v.updatedStatus.isRead,updatedAt:v.updatedAt}),D(E=>E+1)),g.current.delete(f)},onFailure:()=>{be(f,{isRead:!d}),g.current.delete(f)}},{skipLock:!0})},$e=de(Ne);$e.current=Ne;let Cn=Se((p,d,y)=>$e.current(p,d,y),[]),Tn=async p=>{let d=-1*Date.now(),y=new Date().toISOString(),f={reportHubId:d,date:p,createdAt:y,author:Xe(t),userId:t?.id??"unknown",sourceType:"Internal",employeeName:Xe(t),updatedBy:Xe(t),updatedAt:y,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:a,color:"#9ca3af"}],postedComments:[],attachments:[]};Lr(f,Date.now()+3e5,!1),I(v=>[{reportHubId:d,businessDate:p},...v]);try{let v=await z(0,"create",p,{clientTempId:String(d)},{onSuccess:E=>E});if(v.clientTempId&&v.clientTempId!==String(d))throw ve.warn(`[createReport] ID mismatch. req=${d}, res=${v.clientTempId}`),new Error("Optimistic ID mismatch");let w=Number(v.reportHubId);return Ye({reportHubId:w,businessDate:p}),Ge(w),v.report&&(Pe(w,v.report),D(E=>E+1)),I(E=>E.some(j=>j.reportHubId===w)?E.filter(j=>j.reportHubId!==d):E.map(j=>j.reportHubId===d?{...j,reportHubId:w}:j)),setTimeout(()=>qe(w),1e3),w}catch(v){throw ve.error("[createReport] Failed or mismatched",v),I(w=>w.filter(E=>E.reportHubId!==d)),v}},Nn=async(p,d,y)=>{let f=Number(p);await z(f,"update",y,{...d.title&&{title:d.title},...d.content&&{content:d.content}},{onSuccess:()=>{let v=fe(f,{ignoreExpiry:!0});v&&(be(f,{subject:d.title??v.subject,content:d.content??v.content}),D(w=>w+1))}})},kn=async(p,d)=>{let y=Number(p),f=fe(y,{ignoreExpiry:!0}),v=f?.labels||[];await z(y,"publish",d,{},{onOptimistic:()=>{if(f){let w=f.labels.filter(E=>E.name!==a);be(y,{labels:w}),D(E=>E+1)}},onSuccess:w=>{w.report&&(Pe(y,w.report),D(E=>E+1)),Ye({reportHubId:y,businessDate:d})},onFailure:()=>{be(y,{labels:v}),D(w=>w+1)}},{skipLock:!0})},En=async(p,d)=>{let y=Number(p),f=T.find(v=>v.reportHubId===y);k.current.add(y),Lt(y),I(v=>v.filter(w=>w.reportHubId!==y));try{await z(y,"delete",d,{},{onSuccess:v=>{Tt(y,d)}})}catch(v){if(v.status===404){Tt(y,d);return}if(!O())return;k.current.delete(y),Ye({reportHubId:y,businessDate:f?.businessDate??d}),f&&I(E=>E.some(j=>j.reportHubId===y)?E:Xt(E,f))}};return Us(ir.Provider,{value:{user:t,pendingAddCommentIds:u,pendingDeleteCommentIds:l,pendingStarUpdates:o,pendingReadUpdates:g,resolvedIdMap:R,version:h,items:T,isSseEnabled:F,toggleSse:me,addComment:_,deleteComment:$,toggleStar:ee,toggleRead:Cn,createReport:Tn,updateReport:Nn,publishReport:kn,deleteReport:En,removeStaleItem:Te,refetchData:se,clearCacheAndRefetch:we},children:e})};import{useCallback as tn,useMemo as $s,useRef as Vs,useState as zs}from"react";var _t=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:s,resolvedIdMap:a,version:i,addComment:m,deleteComment:u}=he(),[l,o]=zs(null),g=tn(T=>e&&u(e.reportHubId,T,e.date??""),[e,u]),R=tn(T=>e&&t?m(e.reportHubId,T,e.date??""):Promise.resolve(),[e,t,m]),h=Vs([]);return{uiComments:$s(()=>{if(!e)return[];let T=yr(e.externalComments,e.postedComments,r),I=s.current.get(e.reportHubId);I?.size&&(T=T.filter(C=>!I.has(C.id)));let F=n.current.get(e.reportHubId);if(F?.size&&t){let C=new Set(T.map(P=>P.id)),A=t.displayName?.trim()||(t.name?`${t.name.familyName??""} ${t.name.givenName??""}`.trim():"")||t.emails?.[0]?.value||"Unknown";for(let[P,U]of F){if(I?.has(P)||C.has(P))continue;let k=a.current.get(P);k&&C.has(k)||T.some(L=>L.isMine&&L.content===U&&typeof L.id=="number"&&L.id>0)||T.push({id:P,authorName:A,content:U,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(T)===JSON.stringify(h.current)?h.current:(h.current=T,T)},[e,t,r,s,n,a,i]),handleAddComment:R,handleDeleteComment:g,pendingDeleteId:l,setPendingDeleteId:o,resolvedIdMap:a.current}};import{useCallback as js,useEffect as Ws,useState as Gs}from"react";var Ot=(e,t)=>{let{enableMutationObserver:r=!1,bottomGap:n=4,minFallbackHeight:s=240}=t??{},[a,i]=Gs(600),m=js(()=>{if(typeof window>"u")return;let u=e.current;if(!u||u.offsetParent===null&&window.getComputedStyle(u).position!=="fixed")return;let l=O=>Number.parseFloat(O)||0,{top:o}=u.getBoundingClientRect(),g=u.parentElement?.getBoundingClientRect(),R=window.getComputedStyle(document.documentElement),h=l(R.getPropertyValue("--footer-height")),D=l(R.getPropertyValue("--header-height")),T=l(R.getPropertyValue("--scrollbar-height")),I=window.getComputedStyle(u),F=l(I.marginBottom),C=l(I.paddingBottom),A=window.innerHeight-h-T-n,P=g?Math.min(g.bottom,A):A,U=g?Math.max(g.top,D):D,k=Math.max(o,U),L=P-k-F-C,M=Number.isFinite(L)?Math.floor(L):0,N=M>0?M:s;N>0&&Number.isFinite(N)&&i(O=>Math.abs(O-N)>1?N:O)},[n,e,s]);return Ws(()=>{if(typeof window>"u")return;let u=null,l=null,o=null,g=null,R=()=>{u!==null&&window.cancelAnimationFrame(u),u=window.requestAnimationFrame(()=>{m()})};R(),l=window.setTimeout(()=>{R()},150);let h=e.current;return typeof ResizeObserver<"u"&&h&&(o=new ResizeObserver(()=>{R()}),o.observe(h),h.parentElement&&o.observe(h.parentElement)),r&&typeof MutationObserver<"u"&&(g=new MutationObserver(()=>{R()}),g.observe(document.documentElement,{attributes:!0,attributeFilter:["style"]})),window.addEventListener("resize",R),()=>{u!==null&&window.cancelAnimationFrame(u),l!==null&&window.clearTimeout(l),window.removeEventListener("resize",R),o?.disconnect(),g?.disconnect()}},[r,m,e]),{viewportHeight:a,updateViewportHeight:m}};import{useEffect as ea,useRef as ta,useState as lr}from"react";import{Slot as qs}from"@radix-ui/react-slot";import{cva as Ks}from"class-variance-authority";import*as rn from"react";import{jsx as Xs}from"react/jsx-runtime";var Ys=Ks("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Ie=rn.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...s},a)=>Xs(n?qs:"button",{className:q(Ys({variant:t,size:r,className:e})),ref:a,...s}));Ie.displayName="Button";import{jsx as Js}from"react/jsx-runtime";function nn({className:e,type:t,...r}){return Js("input",{type:t,"data-slot":"input",className:q("flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...r})}import*as sn from"@radix-ui/react-label";import{jsx as Qs}from"react/jsx-runtime";function Je({className:e,...t}){return Qs(sn.Root,{"data-slot":"label",className:q("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...t})}import{jsx as Zs}from"react/jsx-runtime";function an({className:e,...t}){return Zs("textarea",{"data-slot":"textarea",className:q("flex min-h-15 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...t})}import{jsx as Ae,jsxs as Ft}from"react/jsx-runtime";var Bt=({report:e,onCancel:t,onPublishSuccess:r})=>{let{updateReport:n,publishReport:s}=he(),[a,i]=lr(e.subject??""),[m,u]=lr(e.content??""),[l,o]=lr(!1),g=ta(e.reportHubId);ea(()=>{e.reportHubId!==g.current&&(i(e.subject??""),u(e.content??""),g.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let R=async()=>{o(!0);try{await n(e.reportHubId,{title:a,content:m},e.date??"")}catch{}finally{o(!1)}},h=async()=>{o(!0);try{await n(e.reportHubId,{title:a,content:m},e.date??""),await s(e.reportHubId,e.date??""),r?.()}catch{}finally{o(!1)}};return Ft("div",{className:"space-y-6 p-1",children:[Ft("div",{className:"space-y-2",children:[Ae(Je,{htmlFor:`report-title-${e.reportHubId}`,children:"\u30BF\u30A4\u30C8\u30EB"}),Ae(nn,{id:`report-title-${e.reportHubId}`,value:a,onChange:D=>i(D.target.value),placeholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",disabled:l})]}),Ft("div",{className:"space-y-2",children:[Ae(Je,{htmlFor:`report-content-${e.reportHubId}`,children:"\u5185\u5BB9"}),Ae(an,{id:`report-content-${e.reportHubId}`,value:m,onChange:D=>u(D.target.value),placeholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",className:"min-h-50",disabled:l})]}),Ft("div",{className:"flex justify-end gap-2",children:[t&&Ae(Ie,{variant:"outline",onClick:t,disabled:l,children:"\u30AD\u30E3\u30F3\u30BB\u30EB"}),Ae(Ie,{variant:"secondary",onClick:R,disabled:l,children:"\u4FDD\u5B58"}),Ae(Ie,{onClick:h,disabled:l,children:"\u516C\u958B"})]})]})};import{jsx as ra}from"react/jsx-runtime";var Qe=({className:e})=>ra("span",{className:q("text-blue-500",e),children:"\u25CF"});import{Fragment as ba,jsx as x,jsxs as V}from"react/jsx-runtime";var oa=(e,t,r)=>{Ce(()=>{let n=e.current;if(!n)return;let s=new ResizeObserver(()=>{r(t,n.offsetHeight)});return s.observe(n),()=>s.disconnect()},[t,r,e])},ia=({itemId:e,index:t,setSize:r,onHeightMeasured:n,children:s})=>{let a=ue(null);return oa(a,e,n),x("div",{ref:a,className:"px-2 pb-3","data-daily-report-button":e,role:"listitem","aria-posinset":t+1,"aria-setsize":r,children:s})},la=e=>e.affiliation?.trim()?`${e.name}\uFF08${e.affiliation}\uFF09`:e.name??"",ln=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:s})=>{let[{initialScrollAnchor:a,restored:i}]=Ze(()=>{let S=s?.current;if(!S||S.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!S.topItem)return{initialScrollAnchor:void 0,restored:!0};let B=e.findIndex(K=>K.reportHubId===S.topItem?.reportHubId);return B!==-1?{initialScrollAnchor:{index:B,offsetPx:S.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:S.topItem.index,offsetPx:0},restored:!0}}),m=ue(i),u=ue(r??null),l=ue(s?.current.measuredHeights??new Map),o=ue(null),g=ue(null),{title:R}=W(),{viewportHeight:h,updateViewportHeight:D}=Ot(o,{enableMutationObserver:!0}),T=Or(),[I,F]=Ze(""),[C,A]=Ze(!1),P=ue(null),U=ue(null),k=ue(e);k.current=e;let L=ue(null);Ce(()=>{if(r!=null&&g.current){let S=e.findIndex(B=>B.reportHubId===r);if(S!==-1){if(L.current?.id===r&&L.current?.index===S)return;if(m.current&&(m.current=!1,(r??null)===u.current)){L.current={id:r,index:S};return}g.current.scrollToIndex(S,{align:"top"}),L.current={id:r,index:S}}}else L.current=null},[r,e]),Ce(()=>{let S=s?.current;S&&(S.anchorReportHubId=r??null)},[r,s]);let M=ue(n);M.current=n,Ce(()=>{if(g.current){let S=document.querySelector('[data-testid="daily-report-detail-list"]');if(S){let B=g.current,K=Object.assign({},B,{findReportIndex:z=>k.current.findIndex(_=>_.reportHubId===z),getReportItem:z=>k.current[z],selectItem:z=>M.current?.(z)});S.__virtualScroll=K}}});let N=e.length,O=Re(S=>S>=N?xt:e[S],[e,N]),se=Re((S,B)=>{if(N===0)return;let K=Math.max(0,S),z=Math.min(N-1,B);if(K>z)return;let _=new Set;for(let $=K;$<=z;$++){let ee=O($);if(ee.businessDate&&_.add(ee.businessDate),_.size>=Tr)break}_.forEach($=>{T($)})},[O,N,T]),we=Re(({renderingStartIndex:S,renderingEndIndex:B,visibleStartIndex:K})=>{if(N===0)return;let z=O(K);z?.businessDate&&F(le(z.businessDate)),se(S,B),se(B+1,B+yt),se(S-yt,S-1)},[O,N,se]),te=ue(null),ge=Re(()=>{g.current&&(te.current=g.current);let S=s?.current,B=g.current??te.current;if(S&&B){let z=B.getScrollAnchor(),_=z?k.current[z.index]:void 0;z&&_&&(S.topItem={reportHubId:_.reportHubId,index:z.index,offsetPx:z.offsetPx})}let K=o.current;K&&(K.dataset.scrolling!=="true"&&(K.dataset.scrolling="true"),U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{K&&delete K.dataset.scrolling,U.current=null},150))},[s]),oe=Re(S=>x(at,{...S,label:I,isWheelScrollActive:C}),[I,C]);Ce(()=>{let S=o.current;if(!S)return;let B=()=>{A(!0),P.current&&clearTimeout(P.current),P.current=window.setTimeout(()=>{A(!1),P.current=null},vt)};return S.addEventListener("wheel",B,{passive:!0}),()=>{S.removeEventListener("wheel",B),P.current&&clearTimeout(P.current)}},[]);let re=Re((S,B)=>{if(l.current.get(S)!==B&&(l.current.set(S,B),g.current)){let K=k.current.findIndex(z=>z.reportHubId===S);K!==-1&&g.current.updateItemSize(K,B)}},[]),ce=Re(S=>{let B=O(S);return l.current.get(B.reportHubId)||350},[O]),G=Re(S=>O(S).reportHubId,[O]);Ce(()=>{N>=0&&D()},[N,D]),Ce(()=>{N!==0&&se(0,Math.min(N-1,yt))},[N,se]);let me=Re(S=>{let B=k.current.findIndex(K=>K.reportHubId===S);B>=0&&setTimeout(()=>g.current?.scrollToIndex(B,{align:"bottom"}),300)},[]),Te=Re((S,B)=>x(ua,{item:S,index:B,setSize:N,onHeightMeasured:re,onCommentAdded:me,userId:t},S.reportHubId),[re,me,t,N]);return V(ba,{children:[x("div",{ref:o,className:"flex min-h-0 flex-1 flex-col",children:x(na,{ref:g,itemCount:N,getItem:O,getItemKey:G,getItemHeight:ce,viewportSize:h,initialScrollAnchor:a,overscanCount:Rt,scrollBarOptions:{width:Dt,tapScrollCircleOptions:wt,renderThumbOverlay:oe},behaviorOptions:{pointerDragInputs:St,wheelSpeedMultiplier:ht,inertiaOptions:gt,enableKeyboardNavigation:!1},onRangeChange:we,onScroll:ge,testId:"daily-report-detail-list",className:"relative w-full",contentProps:{role:"list","aria-label":R},children:Te})}),N===0&&x("div",{className:"py-8 text-center",children:x("p",{className:"text-slate-500",children:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093"})})]})},da=()=>V("div",{className:"rounded-2xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900/70",children:[V("div",{className:"mb-4 flex flex-wrap gap-2",children:[x("div",{className:"h-6 w-20 rounded-full bg-slate-200"}),x("div",{className:"h-6 w-24 rounded-full bg-slate-200"}),x("div",{className:"h-6 w-24 rounded-full bg-slate-200"}),x("div",{className:"h-6 w-28 rounded-full bg-slate-200"})]}),V("div",{className:"mb-3 grid gap-3 md:grid-cols-[minmax(0,1fr)_220px]",children:[V("div",{className:"space-y-3",children:[x("div",{className:"h-5 w-40 rounded bg-slate-200"}),x("div",{className:"h-5 w-56 rounded bg-slate-200"}),x("div",{className:"h-24 rounded-lg bg-slate-200"})]}),V("div",{className:"rounded-xl bg-slate-100 p-3",children:[x("div",{className:"mb-2 h-4 w-24 rounded bg-slate-200"}),x("div",{className:"mb-2 h-4 w-28 rounded bg-slate-200"}),x("div",{className:"h-4 w-32 rounded bg-slate-200"})]})]}),V("div",{className:"space-y-3",children:[x("div",{className:"h-4 w-24 rounded bg-slate-200"}),V("div",{className:"flex flex-wrap gap-2",children:[x("div",{className:"h-6 w-16 rounded-full bg-slate-200"}),x("div",{className:"h-6 w-16 rounded-full bg-slate-200"}),x("div",{className:"h-6 w-16 rounded-full bg-slate-200"})]}),V("div",{className:"space-y-2",children:[x("div",{className:"h-16 rounded-lg bg-slate-200"}),x("div",{className:"h-16 rounded-lg bg-slate-200"})]})]})]}),ua=({item:e,index:t,setSize:r,onHeightMeasured:n,onCommentAdded:s,userId:a})=>{let{report:i,error:m,isLoading:u,isRefetching:l}=Oe(e.reportHubId,e.businessDate),{removeStaleItem:o}=he(),{draftLabelName:g}=W(),[R,h]=Ze(!1),[D,T]=Ze(!1),I=ue(!1),F=ue(!1);l&&(F.current=!0),Ce(()=>{!(i||u||l||m)&&F.current&&e.reportHubId>0&&o(e.reportHubId)},[i,u,l,m,e.reportHubId,o]);let C=i?.labels.some(P=>P.name===g),A=a&&i?.userId===a;return Ce(()=>{i&&A&&C&&!R&&!D?(h(!0),I.current=!0):i&&!C&&R&&I.current&&(h(!1),I.current=!1)},[i,A,C,R,D]),x(ia,{itemId:e.reportHubId,index:t,setSize:r,onHeightMeasured:n,children:m?x(fa,{itemId:e.reportHubId}):i?R?x(Bt,{report:i,onCancel:()=>{h(!1),T(!0)},onPublishSuccess:()=>{h(!1)}}):x(pa,{item:e,report:i,onCommentAdded:s,userId:a,onDoubleClick:A?()=>h(!0):void 0}):x(da,{})})},ca=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:s,onToggleStar:a,onDelete:i,itemSourceType:m,visitTimeDisplay:u,categoryLabel:l,fieldLabels:o})=>{let{sourceTypeConfigs:g}=W();return V("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs",children:[x(ot,{count:e.attachments.length,label:o.attachments}),(()=>{let R=m??e?.sourceType,h=Le(R,g);return h?x("span",{className:q("inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",h.badgeClassName),children:h.label}):null})(),x("button",{type:"button",onClick:a,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 focus:outline-none dark:hover:bg-slate-700",title:r?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","data-detail-star-button":e.reportHubId,children:r?x(on,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"}):x(on,{className:"h-3.5 w-3.5 text-slate-300 dark:text-slate-500"})}),x("button",{type:"button",onClick:s,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 focus:outline-none dark:hover:bg-slate-700",title:t?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","data-detail-read-button":e.reportHubId,children:t?x(sa,{className:"h-3.5 w-3.5 text-blue-500"}):x(Qe,{className:"text-xs"})}),n&&x("button",{type:"button",onClick:i,"data-detail-delete-button":e.reportHubId,className:"text-lg leading-none transition-transform focus:outline-none active:scale-125",title:"\u524A\u9664\u3059\u308B",children:x(aa,{className:"h-4 w-4 text-slate-300 hover:text-red-500"})}),V("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-blue-50 px-3 py-1 font-semibold text-blue-700 text-xs",children:[x("span",{className:"text-[10px] text-blue-500 uppercase tracking-wide",children:o.id}),e.reportHubId]}),V("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[x("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.businessDate}),le(e.date)]}),V("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[x("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.author}),ie(e.employeeName)]}),V("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[x("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.visitTime}),u||"-"]}),V("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[x("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:o.updatedAt}),le(e.updatedAt)]}),l&&V("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-amber-100 px-3 py-1 text-amber-700",children:[x("span",{className:"text-[10px] text-amber-500 uppercase tracking-wide",children:o.category}),l]})]})},ma=({report:e,visitTimeDisplay:t,categoryLabel:r,fieldLabels:n})=>V("div",{className:"flex flex-col gap-3 rounded-xl bg-slate-100 p-4 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.author}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ie(e.author)})]}),V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.createdAt}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(e.createdAt)})]}),V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.updatedBy}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ie(e.updatedBy)})]}),V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.updatedAt}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(e.updatedAt)})]}),V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.businessDate}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(e.date)})]}),t&&V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.visitTime}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:t})]}),r&&V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.categoryInfo}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:r})]})]}),pa=({item:e,report:t,onCommentAdded:r,userId:n,onDoubleClick:s})=>{let a=ue(null),{toggleStar:i,toggleRead:m,pendingStarUpdates:u,pendingReadUpdates:l,deleteReport:o,user:g}=he(),{uiComments:R,handleAddComment:h,handleDeleteComment:D,pendingDeleteId:T,setPendingDeleteId:I,resolvedIdMap:F}=_t(t,g,n),{fieldLabels:C,sourceTypeConfigs:A}=W(),P=e.sourceType??t?.sourceType,U=Le(P,A),k=P?P.toLowerCase()!=="internal":!1,L=U?.allowComment??!k,M=async G=>{await h(G),r?.(e.reportHubId)},N=u.current.has(t.reportHubId)?u.current.get(t.reportHubId)??!1:t.isStarred,O=l.current.has(t.reportHubId)?l.current.get(t.reportHubId)??!1:t.isRead,se=!!(n&&t.userId===n),we=async()=>{try{await m(t.reportHubId,!O,t.date??"")}catch{}},te=async()=>{try{await i(t.reportHubId,!N,t.date??"")}catch{}},ge=async()=>{confirm("\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F")&&await o(t.reportHubId,t.date??"")},oe=dr(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
3
+ `).trim():"",[t.content]),re=dr(()=>{let G=t.visitTimeFrom?.trim(),me=t.visitTimeTo?.trim();return G&&me?`${G} - ${me}`:G||me||""},[t.visitTimeFrom,t.visitTimeTo]),ce=dr(()=>{let G=[];return t.category?.trim()&&G.push(`${C.category}: ${t.category}`),t.creationCategory?.trim()&&G.push(`${C.creationCategory}: ${t.creationCategory}`),G.join(" / ")},[t.category,t.creationCategory,C.category,C.creationCategory]);return x("div",{onDoubleClick:s,className:`flex h-full w-full flex-col rounded-2xl border bg-white p-4 shadow-sm transition-all duration-200 hover:-translate-y-0.5 hover:border-blue-300 hover:shadow-lg dark:border-slate-700 dark:bg-slate-900/70 ${O?"":"border-l-4 border-l-blue-500"}`,children:V("div",{className:"flex flex-col gap-4",children:[x(ca,{report:t,itemSourceType:e.sourceType,isRead:O,isStarred:N,isMine:se,onToggleRead:we,onToggleStar:te,onDelete:ge,visitTimeDisplay:re,categoryLabel:ce,fieldLabels:C}),V("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[V("div",{className:"flex flex-col gap-4",children:[V("div",{className:"grid gap-3 sm:grid-cols-2",children:[V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:C.customer}),x("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:ie(t.customerName)})]}),V("div",{className:"flex flex-col gap-1",children:[x("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:C.subject}),x("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ie(t.subject)})]})]}),oe&&V("div",{className:"flex flex-col gap-2",children:[x("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:C.content}),x("div",{className:"whitespace-pre-wrap rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-relaxed dark:bg-slate-800/60 dark:text-slate-200",children:oe})]}),t.interviewers.length>0&&V("div",{className:"flex flex-col gap-2",children:[x("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:C.interviewers}),x("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(G=>x("li",{className:"rounded-full bg-slate-100 px-3 py-1 text-slate-600 text-xs",children:la(G)},`${G.name}-${G.affiliation||""}`))})]}),x(dt,{attachments:t.attachments}),R.length>0&&V("div",{className:"flex flex-col gap-2",children:[x("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:C.comments}),x(ct,{comments:R,reportHubId:t.reportHubId,businessDate:t.date??"",onDeleteComment:D,pendingDeleteId:T,onPendingDeleteIdChange:I,resolvedIdMap:F})]}),L&&x("div",{className:"mt-auto",ref:a,children:x(mt,{reportHubId:t.reportHubId,businessDate:t.date??"",onAddComment:M})})]}),x(ma,{report:t,visitTimeDisplay:re,categoryLabel:ce,fieldLabels:C})]})]})})},fa=({itemId:e})=>x("div",{className:"rounded-2xl border border-red-200 bg-red-50 p-4 text-red-700 text-sm",children:V("p",{children:["\u65E5\u5831 ",e.toLocaleString()," \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"]})});import un from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as ha,useRef as dn,useState as ga}from"react";var et=(e,t=250)=>{let[r,n]=ga(e),s=dn(e),a=dn(!0);return ha(()=>{if(a.current){a.current=!1,s.current=e,n(e);return}let i=s.current;if(i===e)return;let m=null,u=null,l=o=>{u===null&&(u=o);let g=Math.min(1,Math.max(0,(o-u)/t)),R=1-(1-g)**3,h=Math.round(i+(e-i)*R);s.current=h,n(h),g<1&&(m=requestAnimationFrame(l))};return m=requestAnimationFrame(l),()=>{m!==null&&cancelAnimationFrame(m)}},[e,t]),r};import{jsx as Ut,jsxs as $t}from"react/jsx-runtime";var Vt=()=>{let e=Fe(),t=et(e.loadedCount),r=et(e.totalCount??0);if(e.phase==="streaming"){let n=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return $t("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:"inline-flex items-center gap-1.5 rounded-full bg-blue-100 px-2 py-0.5 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300",children:[Ut("span",{"aria-hidden":"true",className:"h-1.5 w-1.5 animate-pulse rounded-full bg-blue-500 dark:bg-blue-400"}),"\u8AAD\u307F\u8FBC\u307F\u4E2D ",t.toLocaleString(),n!==null?` / ${r.toLocaleString()} (${n}%)`:" \u4EF6"]})}return e.phase==="retrying"?$t("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:"inline-flex items-center gap-1.5 rounded-full bg-amber-100 px-2 py-0.5 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300",children:[Ut(un,{"aria-hidden":"true",className:"h-3 w-3 animate-spin"}),"\u518D\u63A5\u7D9A\u4E2D... (",e.loadedCount.toLocaleString()," \u4EF6\u53D7\u4FE1\u6E08)"]}):e.phase==="failed"?$t("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:"inline-flex items-center gap-1.5 rounded-full bg-rose-100 px-2 py-0.5 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300",children:["\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",Ut("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Mt(),className:"rounded bg-rose-200 px-1.5 py-0.5 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",children:"\u518D\u8A66\u884C"})]}):e.isRevalidating?$t("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"revalidating",className:"inline-flex items-center gap-1 text-slate-400 text-xs dark:text-slate-500",children:[Ut(un,{"aria-hidden":"true",className:"h-3 w-3 animate-spin"}),"\u6700\u65B0\u5316\u4E2D"]}):null};import{Panel as pn,PanelGroup as Da,PanelResizeHandle as wa}from"@aiquants/resize-panels";import{SwipeCloseGuardContext as Sa,useSwipeGuardState as Ia,useSwipeToDismissOverlay as Ca,useTapClick as bn,useTransitionDisplay as Ta}from"@aiquants/swipe-overlay";import{VirtualScroll as Na}from"@aiquants/virtualscroll";import ka from"lucide-react/dist/esm/icons/check.js";import fn from"lucide-react/dist/esm/icons/star.js";import Ea from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Pa,useCallback as xe,useEffect as ae,useMemo as Wt,useRef as Q,useState as ke}from"react";import{useSyncExternalStore as ya}from"react";var cn="(max-width: 639px)",xa=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(cn);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},va=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(cn).matches:!1,Ra=()=>!1,mn=()=>ya(xa,va,Ra);import*as ye from"@radix-ui/react-tabs";import*as zt from"react";import{jsx as ur}from"react/jsx-runtime";var jt=ye.Root,tt=zt.forwardRef(({className:e,...t},r)=>ur(ye.List,{ref:r,className:q("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));tt.displayName=ye.List.displayName;var rt=zt.forwardRef(({className:e,...t},r)=>ur(ye.Trigger,{ref:r,className:q("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 font-medium text-sm ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-2xs",e),...t}));rt.displayName=ye.Trigger.displayName;var Be=zt.forwardRef(({className:e,...t},r)=>ur(ye.Content,{ref:r,className:q("data-[state=inactive]:hidden","mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Be.displayName=ye.Content.displayName;import{Fragment as Ua,jsx as c,jsxs as X}from"react/jsx-runtime";var Aa={pointerDragInputs:St,inertiaOptions:gt,wheelSpeedMultiplier:ht,enableKeyboardNavigation:!1},La={top:bt,bottom:bt},Ma=(e,t,r,n)=>{let[s,a]=ke(!1),[i,m]=ke(!1),u=Q(null),l=Q(null),o=Q(null),g=Q(e),R=Q(!0),h=Wt(()=>t===null?null:r.find(I=>I.reportHubId===t)??null,[r,t]);ae(()=>{if(R.current){R.current=!1,g.current=e;return}let I=!g.current;g.current=e,I&&e&&t!==null?a(!0):!e&&s&&(a(!1),o.current!==null&&(document.body.style.overflow=o.current,o.current=null))},[e,t,s]);let D=e&&s&&h!==null;ae(()=>{if(D)m(!0);else{let I=setTimeout(()=>m(!1),300);return()=>clearTimeout(I)}},[D]),ae(()=>{if(!(typeof window>"u")){if(e&&s&&t!==null&&!u.current){let I=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:I},"",window.location.href),u.current=I}else!(e&&s)&&u.current&&(u.current=null);return e&&s?(o.current=document.body.style.overflow,document.body.style.overflow="hidden"):o.current!==null&&(document.body.style.overflow=o.current,o.current=null),()=>{o.current!==null&&(document.body.style.overflow=o.current)}}},[e,s,t]),ae(()=>{if(typeof window>"u")return;let I=()=>{u.current&&(l.current=t,u.current=null,a(!1),n(null))};return window.addEventListener("popstate",I),()=>window.removeEventListener("popstate",I)},[t,n]);let T=xe(()=>{e&&(l.current=t,a(!1),n(null),u.current&&typeof window<"u"&&(u.current=null,window.history.back()))},[e,t,n]);return{isMobileDetailOpen:s,setIsMobileDetailOpen:a,isOverlayMounted:i,shouldShowOverlay:D,handleOverlayClose:T,lastClosedItemIdRef:l,selectedItem:h}},Ha=(e,t,r,n,s)=>{let a=Q(null),i=Q(void 0);i.current!==e?.reportHubId&&(i.current=e?.reportHubId,a.current=null),ae(()=>{n||(a.current=null)},[n]);let m=xe(async(u=!1)=>{if(!e)return;u||(a.current=e.reportHubId);let l=!e.isRead;try{await s(e.reportHubId,l,e.date??"")}catch{}},[e,s]);return ae(()=>{if(r&&e&&!e.isRead&&!t){if(a.current===e.reportHubId)return;let u=setTimeout(()=>m(!0),500);return()=>clearTimeout(u)}},[e,t,r,m]),{handleToggleRead:m}},hn=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:s,scrollOffsetRef:a})=>{let[i]=ke(()=>a?.current??0),m=Q(null),u=Q(null),{title:l}=W(),{viewportHeight:o,updateViewportHeight:g}=Ot(m),[R,h]=ke(""),[D,T]=ke(!1),I=mn(),F=Q(null),[C,A]=ke(!1);ae(()=>{if(typeof window>"u"||typeof ResizeObserver>"u")return;let _=F.current;if(!_)return;let $=new ResizeObserver(ee=>{for(let Ne of ee)if(Ne.target===_){let $e=Ne.contentRect.width;A($e>0&&$e<460)}});return $.observe(_),()=>$.disconnect()},[]);let P=I||C,U=Q(null),k=e.length,L=Q(null),{isMobileDetailOpen:M,setIsMobileDetailOpen:N,isOverlayMounted:O,shouldShowOverlay:se,handleOverlayClose:we,lastClosedItemIdRef:te,selectedItem:ge}=Ma(P,r,e,n),oe=Wt(()=>Number.isFinite(o)&&o>0?{height:o}:void 0,[o]);ae(()=>{if(typeof window>"u")return;let _=()=>requestAnimationFrame(g);window.addEventListener("resize",_),g();let $=m.current,ee=()=>{T(!0),U.current&&clearTimeout(U.current),U.current=window.setTimeout(()=>{T(!1),U.current=null},vt)};return $?.addEventListener("wheel",ee,{passive:!0}),()=>{window.removeEventListener("resize",_),$?.removeEventListener("wheel",ee),U.current&&clearTimeout(U.current)}},[g]),ae(()=>{!k&&r!==null&&n(null)},[k,r,n]),ae(()=>{if(P||M||te.current===null)return;let _=te.current;te.current=null;let $=e.findIndex(ee=>ee.reportHubId===_);$>=0&&(u.current?.scrollToIndex($),requestAnimationFrame(()=>{document.querySelector(`[data-testid="daily-report-list"] [data-daily-report-button="${_}"]`)?.focus()}))},[M,P,e,te]),ae(()=>{k>0&&h(_=>{let $=le(e[0]?.businessDate);return _===$?_:$})},[e,k]);let re=Q(e);re.current=e,ae(()=>{if(u.current){let _=document.querySelector('[data-testid="daily-report-list"]');_&&(_.__virtualScroll={...u.current,findReportIndex:$=>re.current.findIndex(ee=>ee.reportHubId===$),getReportIds:($=20)=>re.current.slice(0,$).map(ee=>ee.reportHubId)})}});let ce=xe(_=>{_<=0||(n(_),P&&N(!0))},[P,n,N]),G=xe(_=>_<k?e[_]:xt,[e,k]),me=xe(()=>Qt,[]),Te=xe((_,$)=>c(yn,{item:_,index:$,setSize:k,isActive:_.reportHubId===r,onSelect:ce},_.reportHubId),[k,r,ce]),S=xe(_=>{let $=G(_.visibleStartIndex);$?.reportHubId>0&&h(ee=>{let Ne=le($.businessDate);return ee===Ne?ee:Ne})},[G]),B=xe(_=>{a&&(a.current=_);let $=m.current;$&&($.dataset.scrolling!=="true"&&($.dataset.scrolling="true"),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{$&&delete $.dataset.scrolling,L.current=null},150))},[a]),K=xe(_=>c(at,{..._,label:R,isWheelScrollActive:D}),[R,D]),z=Wt(()=>c("div",{ref:m,className:"isolate flex h-full min-h-0 w-full overflow-hidden",style:oe,children:c(Na,{ref:u,itemCount:k,getItem:G,getItemHeight:me,viewportSize:o,initialScrollOffset:i,overscanCount:Rt,scrollBarOptions:{width:Dt,tapScrollCircleOptions:wt,renderThumbOverlay:K},behaviorOptions:Aa,onRangeChange:S,onScroll:B,contentInsets:La,testId:"daily-report-list",className:"relative w-full",contentProps:{role:"list","aria-label":l},children:Te})}),[oe,k,G,me,o,i,K,S,B,l,Te]);return X("div",{ref:F,className:"h-full min-h-0 w-full","data-testid":"daily-report-root",children:[P?c("div",{className:"flex h-full min-h-0",children:z}):X(Da,{direction:"horizontal",className:"flex h-full min-h-0","data-testid":"daily-report-panel-group",children:[c(pn,{id:"daily-report-list-panel",defaultSize:{value:360,unit:"pixels"},minSize:{value:160,unit:"pixels"},maxSize:{value:520,unit:"pixels"},contentOverflow:"hidden",className:"flex min-h-0",children:z}),c(wa,{id:"daily-report-list-handle",thickness:10,indicator:{visible:!0,thickness:6,length:32,barThickness:2,barLength:16},className:"cursor-col-resize rounded transition-colors hover:bg-slate-200/60 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-1 dark:hover:bg-slate-700/60","aria-label":"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u30EA\u30B5\u30A4\u30BA"}),c(pn,{id:"daily-report-detail-panel",minSize:{value:160,unit:"pixels"},contentOverflow:"hidden",className:"flex min-h-0 flex-1 pl-1.5",children:c(gn,{dailyReportItems:e,selectedItem:ge,autoMarkRead:t,isActive:r!==null,userId:s})})]}),k===0&&c("div",{className:"py-8 text-center",children:c("p",{className:"text-slate-500",children:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093"})}),O&&c(Fa,{isOpen:se,selectedItem:ge,onClose:we,autoMarkRead:P&&t,userId:s})]})},_a=e=>c("div",{...e,className:"px-2 pb-3",style:{height:je},children:X("div",{"data-skeleton":!0,className:"flex h-full animate-pulse flex-col justify-between rounded-2xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900/70",children:[X("div",{className:"mb-3 flex flex-wrap items-center gap-3",children:[c("div",{className:"h-4 w-24 rounded bg-slate-200"}),c("div",{className:"h-4 w-24 rounded bg-slate-200"}),c("div",{className:"h-4 w-24 rounded bg-slate-200"})]}),X("div",{className:"space-y-2",children:[c("div",{className:"h-4 w-full rounded bg-slate-200"}),c("div",{className:"h-4 w-11/12 rounded bg-slate-200"}),c("div",{className:"h-4 w-5/6 rounded bg-slate-200"})]})]})}),gn=({dailyReportItems:e,selectedItem:t,heightStyle:r,autoMarkRead:n=!1,isActive:s=!0,userId:a})=>{let[i,m]=ke("article"),[u,l]=ke(!1),{draftLabelName:o,fieldLabels:g,sourceTypeConfigs:R}=W(),{report:h,error:D,isLoading:T}=Oe(t?.reportHubId??-1,t?.businessDate??null),I=Q(null),F=Q(null),C=Q(!1);ae(()=>{if(!h)return;let N=h.labels.some(O=>O.name===o);h.reportHubId!==F.current?(F.current=h.reportHubId,N?(l(!0),C.current=!0):(l(!1),C.current=!1)):!N&&u&&C.current&&(l(!1),C.current=!1)},[h,u,o]);let A=!!(a&&h?.userId===a),P=xe(()=>{setTimeout(()=>{I.current&&I.current.scrollTo({top:I.current.scrollHeight,behavior:"smooth"})},100)},[]);if(e&&(e.length===0||!t))return c("aside",{className:"hidden h-full min-h-0 min-w-0 flex-1 gap-3 rounded-2xl border border-slate-200 bg-white p-4 shadow-sm sm:flex dark:border-slate-700 dark:bg-slate-900/70",style:r,children:c("div",{className:"flex h-full flex-1 items-center justify-center rounded-xl border border-slate-300 border-dashed bg-slate-50 p-4 text-center text-slate-500 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:c("p",{children:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002"})})});let U=le(h?.date??t?.businessDate),k=h?.employeeName||h?.author?ie(h.employeeName??h.author):"",L=T||!h,M=X(Ua,{children:[X("div",{className:"space-y-1",children:[c("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:g.businessDate}),c("div",{className:"text-slate-900 text-sm dark:text-slate-100",children:U}),X("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[X("span",{children:[g.author,":"]}),L?c("div",{"data-skeleton":!0,className:"h-3 w-24 animate-pulse rounded bg-slate-200 dark:bg-slate-700"}):c("span",{children:k}),(()=>{let N=h?.sourceType,O=N?R?.[N]:void 0;return O?c("span",{className:q("ml-2 inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",O.badgeClassName),children:O.label}):null})()]})]}),X(jt,{value:i,onValueChange:N=>m(N),className:"flex min-h-0 flex-1 flex-col",children:[c(tt,{className:"grid grid-cols-2 gap-1 rounded-md bg-slate-100 p-1 text-xs dark:bg-slate-800",children:["article","relations"].map(N=>c(rt,{value:N,className:"rounded-md px-2 py-1 font-medium text-slate-600 transition-colors data-[state=active]:bg-white data-[state=active]:text-slate-900 data-[state=active]:shadow-sm dark:text-slate-200 dark:data-[state=active]:bg-slate-900/70 dark:data-[state=active]:text-slate-100",children:N==="article"?g.tabArticle:g.tabRelations},N))}),c(Be,{ref:I,value:"article",className:"scrollbar-thin flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-3 text-sm",children:u?h?c(Bt,{report:h,onCancel:()=>l(!1),onPublishSuccess:()=>l(!1)}):c("p",{className:"rounded-lg border border-slate-300 border-dashed bg-slate-50 p-4 text-slate-600 dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:"\u8AAD\u307F\u8FBC\u307F\u4E2D..."}):t&&c(Oa,{report:h,isLoading:T,error:D,selectedItem:t,autoMarkRead:n,isActive:s,onCommentAdded:P,userId:a,onDoubleClick:A?()=>l(!0):void 0})}),c(Be,{value:"relations",className:"scrollbar-thin flex-1 touch-pan-y overflow-y-auto pt-3 text-sm",children:c("p",{className:"rounded-lg border border-slate-300 border-dashed bg-slate-50 p-4 text-slate-600 dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:g.relationsEmpty})})]})]});return e?c("aside",{"data-testid":"daily-report-side-pane","data-report-id":t?.reportHubId,className:"hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-3 rounded-2xl border border-slate-200 bg-white p-4 shadow-sm sm:flex dark:border-slate-700 dark:bg-slate-900/70",style:r,children:M}):c("div",{"data-testid":"daily-report-side-pane","data-report-id":t?.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-3 overflow-hidden",children:M})},Ue=({className:e="w-32"})=>c("div",{"data-skeleton":!0,className:`h-4 animate-pulse rounded bg-slate-200 dark:bg-slate-700 ${e}`}),Oa=({report:e,isLoading:t,error:r,selectedItem:n,autoMarkRead:s=!1,isActive:a=!0,onCommentAdded:i,userId:m,onDoubleClick:u})=>{let{toggleStar:l,toggleRead:o,deleteReport:g,user:R}=he(),{fieldLabels:h,sourceTypeConfigs:D}=W(),{uiComments:T,handleAddComment:I,handleDeleteComment:F,pendingDeleteId:C,setPendingDeleteId:A,resolvedIdMap:P}=_t(e,R,m),{handleToggleRead:U}=Ha(e,t,s,a,o),k=n.sourceType??e?.sourceType,L=Le(k,D),M=k?k.toLowerCase()!=="internal":!1,N=L?.allowComment??!M,O=Q(null),se=Q(T.length);ae(()=>{let S=e?.reportHubId??null;if(S!==O.current){O.current=S,se.current=T.length;return}T.length>se.current&&i?.(),se.current=T.length},[T.length,e?.reportHubId,i]);let we=async S=>{await I(S)},te=Wt(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
4
4
  `).replace(/<\/p>/gi,`
5
- `).replace(/<[^>]+>/g,""):null,[e]),ue=async()=>{if(!e)return;let h=!e.isStarred;try{await l(e.reportHubId,h,e.date??"")}catch{}},ie=async()=>{if(e&&confirm("\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F"))try{await y(e.reportHubId,e.date??"")}catch{alert("\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F")}};if(r)return m("p",{className:"text-red-500",children:r.message});let re=!e,ce=e?.isStarred??!1,X=e?.isRead??!1,me=!!(c&&e?.userId===c),$=T.length>0;return K("div",{className:"relative space-y-4 text-slate-700 dark:text-slate-200",onDoubleClick:u,children:[!re&&e&&K("div",{className:"absolute top-0 right-2 z-10 flex items-center justify-end gap-3",children:[m("button",{type:"button",onClick:()=>U(!1),className:"text-lg leading-none transition-transform focus:outline-none active:scale-110",title:X?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","data-detail-read-button":e.reportHubId,children:X?m("span",{className:"text-slate-300 hover:text-blue-500",children:"\u2713"}):m(Ye,{className:"hover:text-blue-600"})}),m("button",{type:"button",onClick:ue,className:"text-lg leading-none transition-transform focus:outline-none active:scale-110",title:ce?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","data-detail-star-button":e.reportHubId,children:ce?m("span",{className:"text-yellow-400",children:"\u2605"}):m("span",{className:"text-slate-300 hover:text-yellow-400",children:"\u2606"})}),me&&m("button",{type:"button",onClick:ie,"data-detail-delete-button":e.reportHubId,className:"text-lg leading-none transition-transform focus:outline-none active:scale-110",title:"\u524A\u9664\u3059\u308B",children:m(Ta,{className:"h-4 w-4 text-slate-300 hover:text-red-500"})})]}),K("div",{className:"flex items-baseline",children:[m("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:g.subject}),m("div",{className:"flex-1 pr-20",children:re?m(Fe,{className:"w-3/4"}):m("span",{className:"fade-in animate-in text-sm duration-500",children:ne(e?.subject)})})]}),K("div",{className:"flex items-baseline",children:[m("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:g.customer}),m("div",{className:"flex-1",children:re?m(Fe,{className:"w-1/2"}):m("span",{className:"fade-in animate-in text-sm duration-500",children:ne(e?.customerName)})})]}),K("div",{className:"space-y-2",children:[m("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:g.content}),m("div",{className:"min-h-22 rounded-lg bg-slate-50 p-3 text-sm leading-relaxed dark:bg-slate-800/40",children:re?K("div",{className:"space-y-2",children:[m(Fe,{className:"w-full"}),m(Fe,{className:"w-11/12"}),m(Fe,{className:"w-4/5"})]}):te?m("div",{className:"fade-in animate-in whitespace-pre-wrap duration-500",children:te}):m("p",{className:"fade-in animate-in text-slate-500 duration-500 dark:text-slate-400",children:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"})})]}),K("div",{className:"flex items-baseline",children:[m("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:g.visitTime}),m("div",{className:"flex-1",children:re?m(Fe,{className:"w-1/3"}):K("span",{className:"fade-in animate-in text-sm duration-500",children:[ne(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",ne(e?.visitTimeTo)]})})]}),e&&m(it,{attachments:e.attachments}),e&&K("div",{className:"fade-in animate-in space-y-2 border-slate-100 border-t pt-4 duration-500 dark:border-slate-800",children:[m("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:g.comments}),$&&m(dt,{comments:T,reportHubId:e.reportHubId,businessDate:e.date??"",onDeleteComment:A,pendingDeleteId:S,onPendingDeleteIdChange:N,resolvedIdMap:_}),C&&m(ut,{reportHubId:e.reportHubId,businessDate:e.date??"",onAddComment:ge})]})]})},Aa=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:s})=>{let a=Q(null),i=Q(null),{isBlocked:c,requestBlock:u,reset:l}=Da(),{report:o,error:y,isLoading:w}=He(t?.reportHubId??-1,t?.businessDate??null),g=Sa(e,t?{item:t,detail:{report:o,error:y,isLoading:w}}:null),D=g?.item??null;g?.detail??kr;let{overlayRef:k,overlayStyle:A,attemptClose:S,isSwiping:N}=wa({isOpen:e,onClose:r,isCloseBlocked:ye(()=>c,[c]),skipWhenTextSelected:!0}),_=fn(()=>S());return le(()=>{e?requestAnimationFrame(()=>i.current?.focus()):(a.current?.contains(document.activeElement)&&document.activeElement.blur(),l())},[e,l]),D?K("div",{ref:a,className:`fixed inset-0 z-50 flex touch-manipulation transition-[visibility] duration-200 sm:hidden ${e?"visible":"invisible"} ${e&&!N?"pointer-events-auto":"pointer-events-none"}`,"aria-hidden":!e,children:[m("button",{type:"button","aria-label":"\u80CC\u666F\u3092\u30BF\u30C3\u30D7\u3057\u3066\u9589\u3058\u308B",className:`absolute inset-0 touch-manipulation bg-slate-900/50 transition-opacity duration-200 focus:outline-none ${e?"opacity-100":"opacity-0"}`,..._}),m("aside",{role:"dialog","aria-modal":"true","aria-label":"\u65E5\u5831\u8A73\u7D30",className:`relative ml-auto flex h-full w-full max-w-full transform touch-none select-none bg-white shadow-xl transition-transform duration-200 ease-out dark:bg-slate-900/95 ${e?"pointer-events-auto":"pointer-events-none"}`,ref:k,onKeyDown:U=>{U.key==="Escape"&&(U.preventDefault(),S())},style:A,children:K("div",{className:"flex h-full w-full flex-col gap-3 p-4",children:[m(Ra.Provider,{value:{isBlocked:c,requestBlock:u},children:m(gn,{selectedItem:D,autoMarkRead:n,isActive:e,userId:s})}),m("div",{className:"mt-2 flex justify-start",children:m("button",{type:"button",ref:i,"data-overlay-interactive":"true",className:"touch-manipulation rounded-full border border-slate-300 px-4 py-2 font-medium text-slate-600 text-sm shadow-sm transition-colors hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",onClick:()=>S(),children:"\u9589\u3058\u308B"})})]})})]}):null},Ma=e=>e?e.replace(/<br\s*\/?\s*>/gi,`
5
+ `).replace(/<[^>]+>/g,""):null,[e]),ge=async()=>{if(!e)return;let S=!e.isStarred;try{await l(e.reportHubId,S,e.date??"")}catch{}},oe=async()=>{if(e&&confirm("\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F"))try{await g(e.reportHubId,e.date??"")}catch{alert("\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F")}};if(r)return c("p",{className:"text-red-500",children:r.message});let re=!e,ce=e?.isStarred??!1,G=e?.isRead??!1,me=!!(m&&e?.userId===m),Te=T.length>0;return X("div",{className:"relative space-y-4 text-slate-700 dark:text-slate-200",onDoubleClick:u,children:[!re&&e&&X("div",{className:"absolute top-0 right-2 z-10 flex items-center justify-end gap-3",children:[c("button",{type:"button",onClick:()=>U(!1),className:"rounded text-lg leading-none transition-transform focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 active:scale-95",title:G?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","data-detail-read-button":e.reportHubId,children:G?c("span",{className:"text-slate-300 hover:text-blue-500",children:"\u2713"}):c(Qe,{className:"hover:text-blue-600"})}),c("button",{type:"button",onClick:ge,className:"rounded text-lg leading-none transition-transform focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 active:scale-95",title:ce?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","data-detail-star-button":e.reportHubId,children:ce?c("span",{className:"text-yellow-400",children:"\u2605"}):c("span",{className:"text-slate-300 hover:text-yellow-400",children:"\u2606"})}),me&&c("button",{type:"button",onClick:oe,"data-detail-delete-button":e.reportHubId,className:"rounded text-lg leading-none transition-transform focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 active:scale-95",title:"\u524A\u9664\u3059\u308B",children:c(Ea,{className:"h-4 w-4 text-slate-300 hover:text-red-500"})})]}),X("div",{className:"flex items-baseline",children:[c("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:h.subject}),c("div",{className:"flex-1 pr-20",children:re?c(Ue,{className:"w-3/4"}):c("span",{className:"fade-in animate-in text-sm duration-500",children:ie(e?.subject)})})]}),X("div",{className:"flex items-baseline",children:[c("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:h.customer}),c("div",{className:"flex-1",children:re?c(Ue,{className:"w-1/2"}):c("span",{className:"fade-in animate-in text-sm duration-500",children:ie(e?.customerName)})})]}),X("div",{className:"space-y-2",children:[c("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:h.content}),c("div",{className:"min-h-22 rounded-lg bg-slate-50 p-3 text-sm leading-relaxed dark:bg-slate-800/40",children:re?X("div",{className:"space-y-2",children:[c(Ue,{className:"w-full"}),c(Ue,{className:"w-11/12"}),c(Ue,{className:"w-4/5"})]}):te?c("div",{className:"fade-in animate-in whitespace-pre-wrap duration-500",children:te}):c("p",{className:"fade-in animate-in text-slate-500 duration-500 dark:text-slate-400",children:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"})})]}),X("div",{className:"flex items-baseline",children:[c("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:h.visitTime}),c("div",{className:"flex-1",children:re?c(Ue,{className:"w-1/3"}):X("span",{className:"fade-in animate-in text-sm duration-500",children:[ie(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",ie(e?.visitTimeTo)]})})]}),e&&c(dt,{attachments:e.attachments}),e&&X("div",{className:"fade-in animate-in space-y-2 border-slate-100 border-t pt-4 duration-500 dark:border-slate-800",children:[c("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:h.comments}),Te&&c(ct,{comments:T,reportHubId:e.reportHubId,businessDate:e.date??"",onDeleteComment:F,pendingDeleteId:C,onPendingDeleteIdChange:A,resolvedIdMap:P}),N&&c(mt,{reportHubId:e.reportHubId,businessDate:e.date??"",onAddComment:we})]})]})},Fa=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:s})=>{let a=Q(null),i=Q(null),{isBlocked:m,requestBlock:u,reset:l}=Ia(),{report:o,error:g,isLoading:R}=Oe(t?.reportHubId??-1,t?.businessDate??null),D=Ta(e,t?{item:t,detail:{report:o,error:g,isLoading:R}}:null)?.item??null,{overlayRef:T,overlayStyle:I,attemptClose:F,isSwiping:C}=Ca({isOpen:e,onClose:r,isCloseBlocked:xe(()=>m,[m]),skipWhenTextSelected:!0}),A=bn(()=>F());return ae(()=>{e?requestAnimationFrame(()=>i.current?.focus()):(a.current?.contains(document.activeElement)&&document.activeElement.blur(),l())},[e,l]),D?X("div",{ref:a,"data-daily-report-mobile-overlay":"true",className:`fixed top-0 bottom-0 left-0 z-[100] flex touch-manipulation transition-[visibility] duration-200 ${e?"visible":"invisible"} ${e&&!C?"pointer-events-auto":"pointer-events-none"}`,style:{right:"var(--aqdr-overlay-right, 0px)",transition:"right 0.5s, visibility 0.2s"},"aria-hidden":!e,children:[c("button",{type:"button","aria-label":"\u80CC\u666F\u3092\u30BF\u30C3\u30D7\u3057\u3066\u9589\u3058\u308B",className:`absolute inset-0 touch-manipulation bg-slate-900/50 transition-opacity duration-200 focus:outline-none ${e?"opacity-100":"opacity-0"}`,...A}),c("aside",{role:"dialog","aria-modal":"true","aria-label":"\u65E5\u5831\u8A73\u7D30",className:`relative ml-auto flex h-full w-full max-w-full transform touch-none bg-white shadow-xl transition-transform duration-200 ease-out dark:bg-slate-900/95 ${e?"pointer-events-auto":"pointer-events-none"}`,ref:T,onKeyDown:P=>{P.key==="Escape"&&(P.preventDefault(),F())},style:I,children:X("div",{className:"flex h-full w-full flex-col gap-3 p-4",children:[c(Sa.Provider,{value:{isBlocked:m,requestBlock:u},children:c(gn,{selectedItem:D,autoMarkRead:n,isActive:e,userId:s})}),c("div",{className:"mt-2 flex justify-start",children:c("button",{type:"button",ref:i,"data-overlay-interactive":"true",className:"touch-manipulation rounded-full border border-slate-300 px-4 py-2 font-medium text-slate-600 text-sm shadow-sm transition-colors hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",onClick:()=>F(),children:"\u9589\u3058\u308B"})})]})})]}):null},Ba=e=>e?e.replace(/<br\s*\/?\s*>/gi,`
6
6
  `).replace(/<\/p>/gi,`
7
- `).replace(/<[^>]+>/g,"").split(/\r?\n/).map(t=>t.replace(/\u3000/g," ").trim()).filter(t=>t.length>0).slice(0,Nr):[],hn=ka(({item:e,index:t,setSize:r,isActive:n,onSelect:s})=>{let{fieldLabels:a,sourceTypeConfigs:i}=j(),{toggleStar:c,toggleRead:u,removeStaleItem:l}=be(),{report:o,error:y,isLoading:w,isRefetching:g}=He(e.reportHubId,e.businessDate),D={role:"listitem","aria-posinset":t+1,"aria-setsize":r},T=Q(!1);g&&(T.current=!0),le(()=>{!(o||w||g||y)&&T.current&&e.reportHubId>0&&l(e.reportHubId)},[o,w,g,y,e.reportHubId,l]);let k=fn(()=>s(e.reportHubId));if(y)return m("div",{...D,className:"px-2 pb-3",style:{height:$e},children:m("div",{className:"flex h-full items-center justify-center rounded-2xl border border-red-200 bg-red-50 p-4 text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:K("p",{children:["\u65E5\u5831 ",e.reportHubId.toLocaleString()," \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"]})})});if(w)return m(Pa,{...D});if(!o)return m("div",{...D,className:"px-2 pb-3",style:{height:$e},children:m("div",{className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 bg-slate-50 p-4 text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:m("p",{children:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"})})});let A=Ma(o.content??null).map((F,M)=>({line:F,key:`${e.reportHubId}-line-${M}`})),S=ne(o.employeeName??o.author),N=se(o.date),_=async F=>{F.stopPropagation();let M=!o.isStarred;try{await c(o.reportHubId,M,o.date??"")}catch{}},U=async F=>{F.stopPropagation();let M=!o.isRead;try{await u(o.reportHubId,M,o.date??"")}catch{}},O=F=>{F.stopPropagation()};return m("div",{...D,className:"px-2 pb-3",style:{height:$e},children:K("div",{"data-daily-report-button":e.reportHubId,className:`flex h-full w-full in-[[data-scrolling]]:transform-none cursor-pointer select-none flex-col rounded-2xl border in-[[data-scrolling]]:border-slate-200 bg-white p-4 text-left in-[[data-scrolling]]:shadow-sm shadow-sm in-[[data-scrolling]]:transition-none transition-all duration-200 hover:-translate-y-0.5 hover:border-blue-300 hover:shadow-lg dark:bg-slate-900/70 ${n?"border-blue-300 shadow-md ring-2 ring-blue-200 dark:border-blue-500/70 dark:ring-blue-500/40":"border-slate-200 dark:border-slate-700"}`,style:{touchAction:"manipulation"},role:"button",tabIndex:0,"aria-current":n?"true":void 0,"aria-pressed":n,"aria-label":`${N} ${S}`,...k,children:[K("div",{className:"mb-3 flex items-center gap-3 text-slate-600 text-sm",children:[m("span",{className:"inline-flex shrink-0 items-center rounded-full bg-slate-100 px-3 py-1 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200",children:m("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:N})}),m("span",{className:"inline-flex min-w-0 max-w-full items-center rounded-full bg-slate-100 px-3 py-1 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200",children:m("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:S})}),K("div",{className:"ml-auto flex items-center gap-1.5",children:[m(st,{count:o.attachments.length,label:a.attachments}),(()=>{let F=e.sourceType??o?.sourceType,M=Pe(F,i);return M?m("span",{className:W("inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",M.badgeClassName),children:M.label}):null})(),m("button",{type:"button",title:o.isStarred?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","aria-label":o.isStarred?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","aria-pressed":o.isStarred,"data-list-star-button":e.reportHubId,onClick:_,onPointerDown:O,onPointerUp:O,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 dark:hover:bg-slate-700",children:o.isStarred?m(pn,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"}):m(pn,{className:"h-3.5 w-3.5 text-slate-300 dark:text-slate-500"})}),m("button",{type:"button",title:o.isRead?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","aria-label":o.isRead?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","aria-pressed":o.isRead,"data-list-read-button":e.reportHubId,onClick:U,onPointerDown:O,onPointerUp:O,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 dark:hover:bg-slate-700",children:o.isRead?m(Ca,{className:"h-3.5 w-3.5 text-blue-500"}):m(Ye,{className:"text-xs"})})]})]}),m("div",{className:"space-y-1 text-slate-700 text-sm leading-relaxed dark:text-slate-200",children:A.length>0?A.map(({line:F,key:M})=>m("p",{className:"wrap-break-word line-clamp-1",children:F},M)):m("p",{children:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093"})})]})})});hn.displayName="ListReportItem";import{useEffect as Sn}from"react";import Ha from"lucide-react/dist/esm/icons/plus.js";import _a from"lucide-react/dist/esm/icons/refresh-cw.js";import Oa from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as Rn,useMemo as Fa,useRef as dr,useState as Dn}from"react";import{useSearchParams as Ba}from"react-router";import*as et from"@radix-ui/react-switch";import*as vn from"react";import{jsx as xn}from"react/jsx-runtime";var zt=vn.forwardRef(({className:e,...t},r)=>xn(et.Root,{className:W("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:r,children:xn(et.Thumb,{className:W("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));zt.displayName=et.Root.displayName;import{Fragment as $a,jsx as J,jsxs as De}from"react/jsx-runtime";var Ua="px-2 py-1 font-medium text-slate-600 text-xs transition-colors rounded-sm data-[state=active]:bg-white data-[state=active]:text-slate-900 data-[state=active]:shadow-xs dark:text-slate-300 dark:data-[state=active]:bg-slate-800 dark:data-[state=active]:text-slate-100",wn=({userId:e})=>{let[t,r]=Dn(!1),{title:n,renderHeader:s,showDevControls:a}=j(),{isSseEnabled:i,toggleSse:c,createReport:u,items:l,refetchData:o,clearCacheAndRefetch:y}=be(),[w]=Ba(),g=Je(l.length),D=dr(0),T=dr({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[k,A]=Dn(()=>l.length===0?null:l[0].reportHubId),S=dr(!1);Rn(()=>{!S.current&&l.length>0&&(S.current=!0,A(M=>M??l[0].reportHubId))},[l]);let N=async()=>{await o()},_=async()=>{await y()},U=async()=>{let C=w.get("businessDate")||Kt(),H=await u(C);A(H)};Rn(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let O=M=>{r(M),localStorage.setItem("daily-report-auto-read",String(M))},F=Fa(()=>[{value:"list",label:"\u{1F4C4} List",content:J(bn,{dailyReportItems:l,autoMarkRead:t,selectedReportHubId:k,onSelectItem:A,userId:e,scrollOffsetRef:D})},{value:"tree",label:"\u{1F333} Tree",content:J("div",{className:"flex flex-1 items-center justify-center rounded-lg border border-slate-300 border-dashed bg-white p-6 text-slate-500 transition-colors dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:"Tree \u30D3\u30E5\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059"})},{value:"detailList",label:"\u{1F4CB} DetailList",content:J(dn,{dailyReportItems:l,userId:e,selectedItemId:k,onSelectItem:A,scrollRestoreRef:T})}],[l,t,k,e]);return De($a,{children:[s({title:n,annotation:De("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[J(Ut,{}),De("span",{className:"tabular-nums",children:["\u7DCF\u4EF6\u6570: ",g.toLocaleString()," \u4EF6"]}),De("span",{children:["\u30C7\u30D0\u30A6\u30F3\u30B9: ",Me," ms"]})]})}),J("div",{className:"h-full bg-slate-50 dark:bg-slate-950",children:J("div",{className:"flex h-full w-full max-w-6xl flex-1 flex-col p-1",children:De(Vt,{defaultValue:"list",className:"flex h-full flex-1 flex-col",children:[De("div",{className:"flex items-center justify-between gap-1.5 rounded-md border border-slate-200/80 bg-slate-100/60 p-0.5 transition-colors dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",children:[J(Qe,{className:"scrollbar-none flex h-auto touch-pan-x flex-nowrap gap-0.5 overflow-x-auto overflow-y-hidden bg-transparent p-0",children:F.map(({value:M,label:C})=>J(Ze,{value:M,className:Ua,children:C},M))}),De("div",{className:"flex shrink-0 items-center gap-1.5 px-1",children:[De(Se,{size:"sm",onClick:U,className:"flex h-6 items-center gap-1 rounded bg-amber-600 px-2 font-medium text-[11px] text-white shadow-xs hover:bg-amber-700 dark:bg-amber-600 dark:hover:bg-amber-700",title:"\u65E5\u5831\u3092\u4F5C\u6210",children:[J(Ha,{className:"h-3 w-3"}),J("span",{children:"\u65E5\u5831\u4F5C\u6210"})]}),a&&De("div",{className:"hidden h-5.5 items-center gap-1 rounded border border-amber-300/70 bg-amber-50/60 px-1 text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB","data-testid":"dev-controls-toolbox",children:[J("span",{className:"select-none font-bold font-mono text-[9px] text-amber-800 uppercase dark:text-amber-200",children:"dev"}),J("div",{className:"-mx-0.5 flex items-center",title:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",children:J(zt,{id:"sse-mode",checked:i,onCheckedChange:c,className:"origin-center scale-50"})}),J(Se,{variant:"ghost",size:"icon",onClick:N,className:"h-4 w-4 p-0 text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100",title:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)","data-testid":"dev-reload-btn",children:J(Oa,{className:"h-2.5 w-2.5"})}),J(Se,{variant:"ghost",size:"icon",onClick:_,className:"h-4 w-4 p-0 text-amber-800 hover:bg-amber-200/60 hover:text-amber-950 dark:text-amber-300 dark:hover:bg-amber-800/60 dark:hover:text-amber-100",title:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97","data-testid":"dev-clear-cache-btn",children:J(_a,{className:"h-2.5 w-2.5"})})]}),De("div",{className:"flex items-center gap-0.5 pl-0.5",title:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",children:[J(zt,{id:"auto-read-mode",checked:t,onCheckedChange:O,className:"origin-center scale-50"}),J(Ke,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-[10px] text-slate-500 dark:text-slate-400",children:"\u81EA\u52D5\u65E2\u8AAD"})]})]})]}),F.map(({value:M,content:C})=>J(Oe,{value:M,className:"mt-0 flex h-full min-h-0 flex-1 flex-col",children:C},M))]})})})]})};import{Fragment as In,jsx as ee,jsxs as tt}from"react/jsx-runtime";var Va=()=>{let{title:e,renderHeader:t}=j();return tt(In,{children:[t({title:e,annotation:ee("span",{className:"font-bold text-red-500",children:"Error"})}),ee("div",{className:"h-full bg-slate-50 p-2",children:ee("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-6",children:tt("div",{className:"flex h-full flex-1 flex-col items-center justify-center gap-4 rounded-lg border border-red-200 bg-white p-4 text-slate-500 shadow-sm dark:border-red-900 dark:bg-slate-900/70 dark:text-slate-400",children:[ee("p",{className:"font-medium text-red-600",children:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"}),ee("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Lt(),className:"rounded bg-slate-100 px-4 py-2 text-slate-700 text-sm hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700",children:"\u518D\u8AAD\u307F\u8FBC\u307F"})]})})})]})},za=()=>{let{title:e,renderHeader:t}=j();return tt(In,{children:[t({title:e,annotation:tt("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[ee(Ut,{}),ee("span",{children:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D..."}),tt("span",{children:["\u30C7\u30D0\u30A6\u30F3\u30B9: ",Me," ms"]})]})}),ee("div",{className:"h-full bg-slate-50 p-2",children:ee("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-6",children:ee("div",{className:"flex h-full flex-1 items-center justify-center rounded-lg border border-slate-200 bg-white text-slate-500 shadow-sm dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059..."})})})]})},ja=({user:e,userId:t})=>{let{apiBasePath:r}=j(),n=_e();Sn(()=>{kt({apiBasePath:r,userKey:t??null})},[r,t]),Sn(()=>{n.phase==="auth-required"&&jr()},[n.phase]);let s=n.items.length>0||n.phase==="complete";return ee(en,{children:ee(tn,{user:e,initialItems:n.items,userId:t,children:s?ee(wn,{userId:t}):n.phase==="failed"?ee(Va,{}):ee(za,{})},t??"anonymous")})},gd=({config:e,...t})=>ee(gr,{config:e,children:ee(ja,{...t})});var vd=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:s,formData:a,formEncType:i,formMethod:c,json:u,nextUrl:l,text:o})=>{if(!n)return!1;if(!(r.pathname===l.pathname&&r.search===l.search&&r.hash===l.hash))return n;if(a){let g=a.get("intent");if(g==="toggleRead"||g==="toggleStar"||g==="addComment"||g==="deleteComment"||g==="create"||g==="update"||g==="publish"||g==="delete")return!1}return e!==void 0||t!==void 0||s!==void 0||a!==void 0||i!==void 0||c!==void 0||u!==void 0||o!==void 0?n:!1},Rd=e=>{let t=async r=>{Gr();let n=await r.serverLoader(),s=n.userId;return Wr({apiBasePath:e?.apiBasePath,userKey:typeof s=="string"?s:null}),n};return t.hydrate=!0,t};export{nt as BusinessDayThumbOverlay,Dt as CONTENT_DRAG_POINTER_INPUTS,Me as DAILY_REPORT_FETCH_DEBOUNCE_MS,Yt as DEFAULT_ITEM_HEIGHT,tn as DailyReportActionProvider,st as DailyReportAttachmentIndicator,it as DailyReportAttachmentList,L as DailyReportCache,ut as DailyReportCommentForm,dt as DailyReportCommentList,gr as DailyReportConfigProvider,dn as DailyReportDetailList,Ot as DailyReportEditForm,en as DailyReportErrorProvider,Tt as DailyReportIdsStreamClient,Ut as DailyReportIdsStreamStatus,bn as DailyReportList,Va as DailyReportLoadError,za as DailyReportLoading,gd as DailyReportPage,vr as DailyReportPostedComment,wn as DailyReportResolvedContent,kr as EMPTY_DETAIL,ht as EMPTY_ITEM,bt as FAST_SCROLL_INERTIA_OPTIONS,ft as FAST_SCROLL_WHEEL_MULTIPLIER,$e as ITEM_CONTAINER_HEIGHT,pt as ITEM_VERTICAL_PADDING,Nr as MAX_PREVIEW_LINES,gt as PREFETCH_LOOKAHEAD,Tr as PREFETCH_MAX_DATES,vt as SCROLL_BAR_WIDTH,Cr as SSE_INITIAL_CONNECT_DEFER_MS,Rt as TAP_SCROLL_CIRCLE_OPTIONS,Ye as UnreadIndicator,xt as VIRTUAL_SCROLL_OVERSCAN_COUNT,yt as WHEEL_RESET_TIMEOUT_MS,ze as acquireMutationLock,Or as applyBroadcastReportUpdate,ke as applyDailyReportServerUpdates,Wr as bootstrapDailyReportIdsStreamSession,Ve as clearDailyReportCache,Rd as createDailyReportClientLoader,vd as dailyReportShouldRevalidate,at as defaultDailyReportClientConfig,fr as defaultDailyReportFieldLabels,It as deleteDailyReportCache,kt as ensureDailyReportIdsStreamSession,pe as getCachedReport,qr as getDailyReportIdsStreamSessionUserKey,Gr as primeDailyReportIdsStreamSession,rr as refreshDailyReportIdsStream,Hr as registerRecentDeletion,je as releaseMutationLock,jr as reloadDocument,Pt as removeDailyReportIdsStreamItem,zo as resetDailyReportIdsStreamSessionForTesting,Pe as resolveSourceTypeConfig,Lt as retryDailyReportIdsStream,_r as subscribeCacheReady,fe as updateDailyReportCache,Ge as upsertDailyReportIdsStreamItem,Je as useAnimatedNumber,be as useDailyReportActionContext,Mt as useDailyReportComments,j as useDailyReportConfig,He as useDailyReportDetail,Zr as useDailyReportErrorSurface,_e as useDailyReportIdsStream,Fr as useDailyReportPrefetch,$r as useDailyReportSseConnection,Ht as useDynamicViewportHeight,Mr as writeCache};
7
+ `).replace(/<[^>]+>/g,"").split(/\r?\n/).map(t=>t.replace(/\u3000/g," ").trim()).filter(t=>t.length>0).slice(0,Nr):[],yn=Pa(({item:e,index:t,setSize:r,isActive:n,onSelect:s})=>{let{fieldLabels:a,sourceTypeConfigs:i}=W(),{toggleStar:m,toggleRead:u,removeStaleItem:l}=he(),{report:o,error:g,isLoading:R,isRefetching:h}=Oe(e.reportHubId,e.businessDate),D={role:"listitem","aria-posinset":t+1,"aria-setsize":r},T=Q(!1);h&&(T.current=!0),ae(()=>{!(o||R||h||g)&&T.current&&e.reportHubId>0&&l(e.reportHubId)},[o,R,h,g,e.reportHubId,l]);let I=bn(()=>s(e.reportHubId));if(g)return c("div",{...D,className:"px-2 pb-3",style:{height:je},children:c("div",{className:"flex h-full items-center justify-center rounded-2xl border border-red-200 bg-red-50 p-4 text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:X("p",{children:["\u65E5\u5831 ",e.reportHubId.toLocaleString()," \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"]})})});if(R)return c(_a,{...D});if(!o)return c("div",{...D,className:"px-2 pb-3",style:{height:je},children:c("div",{className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 bg-slate-50 p-4 text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:c("p",{children:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"})})});let F=Ba(o.content??null).map((L,M)=>({line:L,key:`${e.reportHubId}-line-${M}`})),C=ie(o.employeeName??o.author),A=le(o.date),P=async L=>{L.stopPropagation();let M=!o.isStarred;try{await m(o.reportHubId,M,o.date??"")}catch{}},U=async L=>{L.stopPropagation();let M=!o.isRead;try{await u(o.reportHubId,M,o.date??"")}catch{}},k=L=>{L.stopPropagation()};return c("div",{...D,className:"px-2 pb-3",style:{height:je},children:X("div",{"data-daily-report-button":e.reportHubId,className:`flex h-full w-full in-[[data-scrolling]]:transform-none cursor-pointer select-none flex-col rounded-2xl border in-[[data-scrolling]]:border-slate-200 bg-white p-4 text-left in-[[data-scrolling]]:shadow-sm shadow-sm in-[[data-scrolling]]:transition-none transition-[transform,border-color,box-shadow] duration-200 hover:-translate-y-0.5 hover:border-blue-300 hover:shadow-lg dark:bg-slate-900/70 ${n?"border-blue-300 shadow-md ring-2 ring-blue-200 dark:border-blue-500/70 dark:ring-blue-500/40":"border-slate-200 dark:border-slate-700"}`,style:{touchAction:"manipulation"},role:"button",tabIndex:0,"aria-current":n?"true":void 0,"aria-pressed":n,"aria-label":`${A} ${C}`,...I,children:[X("div",{className:"mb-3 flex items-center gap-3 text-slate-600 text-sm",children:[c("span",{className:"inline-flex shrink-0 items-center rounded-full bg-slate-100 px-3 py-1 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200",children:c("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:A})}),c("span",{className:"inline-flex min-w-0 max-w-full items-center rounded-full bg-slate-100 px-3 py-1 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200",children:c("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:C})}),X("div",{className:"ml-auto flex items-center gap-1.5",children:[c(ot,{count:o.attachments.length,label:a.attachments}),(()=>{let L=e.sourceType??o?.sourceType,M=Le(L,i);return M?c("span",{className:q("inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",M.badgeClassName),children:M.label}):null})(),c("button",{type:"button",title:o.isStarred?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","aria-label":o.isStarred?"\u30B9\u30BF\u30FC\u3092\u5916\u3059":"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B","aria-pressed":o.isStarred,"data-list-star-button":e.reportHubId,onClick:P,onPointerDown:k,onPointerUp:k,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 dark:hover:bg-slate-700",children:o.isStarred?c(fn,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"}):c(fn,{className:"h-3.5 w-3.5 text-slate-300 dark:text-slate-500"})}),c("button",{type:"button",title:o.isRead?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","aria-label":o.isRead?"\u672A\u8AAD\u306B\u3059\u308B":"\u65E2\u8AAD\u306B\u3059\u308B","aria-pressed":o.isRead,"data-list-read-button":e.reportHubId,onClick:U,onPointerDown:k,onPointerUp:k,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 dark:hover:bg-slate-700",children:o.isRead?c(ka,{className:"h-3.5 w-3.5 text-blue-500"}):c(Qe,{className:"text-xs"})})]})]}),c("div",{className:"space-y-1 text-slate-700 text-sm leading-relaxed dark:text-slate-200",children:F.length>0?F.map(({line:L,key:M})=>c("p",{className:"wrap-break-word line-clamp-1",children:L},M)):c("p",{children:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093"})})]})})});yn.displayName="ListReportItem";import{useEffect as Sn}from"react";import $a from"lucide-react/dist/esm/icons/plus.js";import Va from"lucide-react/dist/esm/icons/refresh-cw.js";import za from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as Rn,useMemo as ja,useRef as cr,useState as Dn}from"react";import{useSearchParams as Wa}from"react-router";import*as nt from"@radix-ui/react-switch";import*as vn from"react";import{jsx as xn}from"react/jsx-runtime";var Gt=vn.forwardRef(({className:e,...t},r)=>xn(nt.Root,{className:q("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:r,children:xn(nt.Thumb,{className:q("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));Gt.displayName=nt.Root.displayName;import{Fragment as qa,jsx as Z,jsxs as De}from"react/jsx-runtime";var Ga="px-2 py-1 font-medium text-slate-600 text-xs transition-colors rounded-sm data-[state=active]:bg-white data-[state=active]:text-slate-900 data-[state=active]:shadow-xs dark:text-slate-300 dark:data-[state=active]:bg-slate-800 dark:data-[state=active]:text-slate-100",wn=({userId:e})=>{let[t,r]=Dn(!1),{title:n,renderHeader:s,showDevControls:a}=W(),{isSseEnabled:i,toggleSse:m,createReport:u,items:l,refetchData:o,clearCacheAndRefetch:g}=he(),[R]=Wa(),h=et(l.length),D=cr(0),T=cr({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[I,F]=Dn(()=>l.length===0?null:l[0].reportHubId),C=cr(!1);Rn(()=>{!C.current&&l.length>0&&(C.current=!0,F(M=>M??l[0].reportHubId))},[l]);let A=async()=>{await o()},P=async()=>{await g()},U=async()=>{let N=R.get("businessDate")||Jt(),O=await u(N);F(O)};Rn(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let k=M=>{r(M),localStorage.setItem("daily-report-auto-read",String(M))},L=ja(()=>[{value:"list",label:"\u{1F4C4} List",content:Z(hn,{dailyReportItems:l,autoMarkRead:t,selectedReportHubId:I,onSelectItem:F,userId:e,scrollOffsetRef:D})},{value:"tree",label:"\u{1F333} Tree",content:Z("div",{className:"flex flex-1 items-center justify-center rounded-lg border border-slate-300 border-dashed bg-white p-6 text-slate-500 transition-colors dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:"Tree \u30D3\u30E5\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059"})},{value:"detailList",label:"\u{1F4CB} DetailList",content:Z(ln,{dailyReportItems:l,userId:e,selectedItemId:I,onSelectItem:F,scrollRestoreRef:T})}],[l,t,I,e]);return De(qa,{children:[s({title:n,annotation:De("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[Z(Vt,{}),De("span",{className:"tabular-nums",children:["\u7DCF\u4EF6\u6570: ",h.toLocaleString()," \u4EF6"]}),De("span",{children:["\u30C7\u30D0\u30A6\u30F3\u30B9: ",_e," ms"]})]})}),Z("div",{className:"h-full bg-slate-50 dark:bg-slate-950",children:Z("div",{className:"flex h-full w-full max-w-6xl flex-1 flex-col p-1",children:De(jt,{defaultValue:"list",className:"flex h-full flex-1 flex-col",children:[De("div",{className:"flex items-center justify-between gap-1.5 rounded-md border border-slate-200/80 bg-slate-100/60 p-0.5 transition-colors dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",children:[Z(tt,{className:"scrollbar-none flex h-auto touch-pan-x flex-nowrap gap-0.5 overflow-x-auto overflow-y-hidden bg-transparent p-0",children:L.map(({value:M,label:N})=>Z(rt,{value:M,className:Ga,children:N},M))}),De("div",{className:"flex shrink-0 items-center gap-1.5 px-1",children:[De(Ie,{size:"sm",onClick:U,className:"flex h-6 items-center gap-1 rounded bg-amber-600 px-2 font-medium text-[11px] text-white shadow-xs hover:bg-amber-700 dark:bg-amber-600 dark:hover:bg-amber-700",title:"\u65E5\u5831\u3092\u4F5C\u6210",children:[Z($a,{className:"h-3 w-3"}),Z("span",{children:"\u65E5\u5831\u4F5C\u6210"})]}),a&&De("div",{className:"hidden h-5.5 items-center gap-1 rounded border border-amber-300/70 bg-amber-50/60 px-1 text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB","data-testid":"dev-controls-toolbox",children:[Z("span",{className:"select-none font-bold font-mono text-[9px] text-amber-800 uppercase dark:text-amber-200",children:"dev"}),Z("div",{className:"-mx-0.5 flex items-center",title:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",children:Z(Gt,{id:"sse-mode",checked:i,onCheckedChange:m,className:"origin-center scale-50"})}),Z(Ie,{variant:"ghost",size:"icon",onClick:A,className:"h-4 w-4 p-0 text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100",title:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)","data-testid":"dev-reload-btn",children:Z(za,{className:"h-2.5 w-2.5"})}),Z(Ie,{variant:"ghost",size:"icon",onClick:P,className:"h-4 w-4 p-0 text-amber-800 hover:bg-amber-200/60 hover:text-amber-950 dark:text-amber-300 dark:hover:bg-amber-800/60 dark:hover:text-amber-100",title:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97","data-testid":"dev-clear-cache-btn",children:Z(Va,{className:"h-2.5 w-2.5"})})]}),De("div",{className:"flex items-center gap-0.5 pl-0.5",title:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",children:[Z(Gt,{id:"auto-read-mode",checked:t,onCheckedChange:k,className:"origin-center scale-50"}),Z(Je,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-[10px] text-slate-500 dark:text-slate-400",children:"\u81EA\u52D5\u65E2\u8AAD"})]})]})]}),L.map(({value:M,content:N})=>Z(Be,{value:M,className:"mt-0 flex h-full min-h-0 flex-1 flex-col",children:N},M))]})})})]})};import{Fragment as In,jsx as ne,jsxs as st}from"react/jsx-runtime";var Ka=()=>{let{title:e,renderHeader:t}=W();return st(In,{children:[t({title:e,annotation:ne("span",{className:"font-bold text-red-500",children:"Error"})}),ne("div",{className:"h-full bg-slate-50 p-2",children:ne("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-6",children:st("div",{className:"flex h-full flex-1 flex-col items-center justify-center gap-4 rounded-lg border border-red-200 bg-white p-4 text-slate-500 shadow-sm dark:border-red-900 dark:bg-slate-900/70 dark:text-slate-400",children:[ne("p",{className:"font-medium text-red-600",children:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"}),ne("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Mt(),className:"rounded bg-slate-100 px-4 py-2 text-slate-700 text-sm hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700",children:"\u518D\u8AAD\u307F\u8FBC\u307F"})]})})})]})},Ya=()=>{let{title:e,renderHeader:t}=W();return st(In,{children:[t({title:e,annotation:st("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[ne(Vt,{}),ne("span",{children:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D..."}),st("span",{children:["\u30C7\u30D0\u30A6\u30F3\u30B9: ",_e," ms"]})]})}),ne("div",{className:"h-full bg-slate-50 p-2",children:ne("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-6",children:ne("div",{className:"flex h-full flex-1 items-center justify-center rounded-lg border border-slate-200 bg-white text-slate-500 shadow-sm dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059..."})})})]})},Xa=({user:e,userId:t})=>{let{apiBasePath:r}=W(),n=Fe();Sn(()=>{Et({apiBasePath:r,userKey:t??null})},[r,t]),Sn(()=>{n.phase==="auth-required"&&zr()},[n.phase]);let s=n.items.length>0||n.phase==="complete";return ne(Zr,{children:ne(en,{user:e,initialItems:n.items,userId:t,children:s?ne(wn,{userId:t}):n.phase==="failed"?ne(Ka,{}):ne(Ya,{})},t??"anonymous")})},Sd=({config:e,...t})=>ne(hr,{config:e,children:ne(Xa,{...t})});var Nd=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:s,formData:a,formEncType:i,formMethod:m,json:u,nextUrl:l,text:o})=>{if(!n)return!1;if(!(r.pathname===l.pathname&&r.search===l.search&&r.hash===l.hash))return n;if(a){let h=a.get("intent");if(h==="toggleRead"||h==="toggleStar"||h==="addComment"||h==="deleteComment"||h==="create"||h==="update"||h==="publish"||h==="delete")return!1}return e!==void 0||t!==void 0||s!==void 0||a!==void 0||i!==void 0||m!==void 0||u!==void 0||o!==void 0?n:!1},kd=e=>{let t=async r=>{Wr();let n=await r.serverLoader(),s=n.userId;return jr({apiBasePath:e?.apiBasePath,userKey:typeof s=="string"?s:null}),n};return t.hydrate=!0,t};export{at as BusinessDayThumbOverlay,St as CONTENT_DRAG_POINTER_INPUTS,_e as DAILY_REPORT_FETCH_DEBOUNCE_MS,Qt as DEFAULT_ITEM_HEIGHT,en as DailyReportActionProvider,ot as DailyReportAttachmentIndicator,dt as DailyReportAttachmentList,H as DailyReportCache,mt as DailyReportCommentForm,ct as DailyReportCommentList,hr as DailyReportConfigProvider,ln as DailyReportDetailList,Bt as DailyReportEditForm,Zr as DailyReportErrorProvider,kt as DailyReportIdsStreamClient,Vt as DailyReportIdsStreamStatus,hn as DailyReportList,Ka as DailyReportLoadError,Ya as DailyReportLoading,Sd as DailyReportPage,vr as DailyReportPostedComment,wn as DailyReportResolvedContent,ko as EMPTY_DETAIL,xt as EMPTY_ITEM,gt as FAST_SCROLL_INERTIA_OPTIONS,ht as FAST_SCROLL_WHEEL_MULTIPLIER,je as ITEM_CONTAINER_HEIGHT,bt as ITEM_VERTICAL_PADDING,Nr as MAX_PREVIEW_LINES,yt as PREFETCH_LOOKAHEAD,Tr as PREFETCH_MAX_DATES,Dt as SCROLL_BAR_WIDTH,Cr as SSE_INITIAL_CONNECT_DEFER_MS,wt as TAP_SCROLL_CIRCLE_OPTIONS,Qe as UnreadIndicator,Rt as VIRTUAL_SCROLL_OVERSCAN_COUNT,vt as WHEEL_RESET_TIMEOUT_MS,Ge as acquireMutationLock,_r as applyBroadcastReportUpdate,Pe as applyDailyReportServerUpdates,jr as bootstrapDailyReportIdsStreamSession,We as clearDailyReportCache,kd as createDailyReportClientLoader,Nd as dailyReportShouldRevalidate,it as defaultDailyReportClientConfig,fr as defaultDailyReportFieldLabels,Tt as deleteDailyReportCache,Et as ensureDailyReportIdsStreamSession,fe as getCachedReport,Gr as getDailyReportIdsStreamSessionUserKey,Wr as primeDailyReportIdsStreamSession,ar as refreshDailyReportIdsStream,Mr as registerRecentDeletion,qe as releaseMutationLock,zr as reloadDocument,Lt as removeDailyReportIdsStreamItem,Xo as resetDailyReportIdsStreamSessionForTesting,Le as resolveSourceTypeConfig,Mt as retryDailyReportIdsStream,Hr as subscribeCacheReady,be as updateDailyReportCache,Ye as upsertDailyReportIdsStreamItem,et as useAnimatedNumber,he as useDailyReportActionContext,_t as useDailyReportComments,W as useDailyReportConfig,Oe as useDailyReportDetail,Qr as useDailyReportErrorSurface,Fe as useDailyReportIdsStream,Or as useDailyReportPrefetch,Ur as useDailyReportSseConnection,Ot as useDynamicViewportHeight,Lr as writeCache};
8
8
  //# sourceMappingURL=client.mjs.map