@aiquants/daily-report 0.31.0 → 0.32.0
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/CHANGELOG.md +76 -0
- package/README.md +105 -71
- package/dist/client.d.mts +23 -15
- package/dist/client.d.ts +23 -15
- package/dist/client.js +4 -4
- package/dist/client.mjs +4 -4
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/server.d.mts +40 -22
- package/dist/server.d.ts +40 -22
- package/dist/server.js +4 -4
- package/dist/server.mjs +4 -4
- package/package.json +3 -3
package/dist/client.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import pc from"lucide-react/dist/esm/icons/paperclip.js";var cc="data-daily-report-row-surface",Oe={[cc]:""},Kt="data-daily-report-scrolling",gt=8,cr="h-[calc-size(auto,round(up,size,4px))]",ht="p-[8px]",Za="pr-[8px]",rn="contain-size contain-layout contain-style",Ja="contain-strict",J="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",Qa="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",wo="scrollbar-thin [scrollbar-gutter:stable]",No=`-m-[4px] overflow-hidden p-[4px] ${wo}`,ei="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",nn="rounded-[calc(var(--radius-2xl)+8px)]",on="outline-none [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-2 [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-offset-4 [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-600 dark:[:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-400 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-2 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-blue-500 [&[aria-current=true]>:where([data-daily-report-row-surface])]:shadow-transparent forced-colors:[&[aria-current=true]]:outline-2 forced-colors:[&[aria-current=true]]:outline-solid forced-colors:[&[aria-current=true]]:-outline-offset-8 forced-colors:[&[aria-current=true]]:outline-[Highlight] forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-2 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-solid forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:-outline-offset-8 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-[Highlight]",ti="[:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-2 [:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-offset-4 [:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-blue-600 dark:[:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-blue-400 has-[>[aria-current=true]]:ring-2 has-[>[aria-current=true]]:ring-blue-500 has-[>[aria-current=true]]:shadow-transparent",rt="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",an=16,$t="rounded-xl border border-dashed border-slate-300 bg-slate-50 p-[11px] text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",ri=12,sn="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",ln="[--aqdr-hover-lift:2px] [@media(resolution:1.25dppx)]:[--aqdr-hover-lift:calc(2px/1.25)] [@media(resolution:1.75dppx)]:[--aqdr-hover-lift:calc(3px/1.75)] [@media(resolution:2.25dppx)]:[--aqdr-hover-lift:calc(4px/2.25)] [@media(resolution:2.75dppx)]:[--aqdr-hover-lift:calc(5px/2.75)] motion-safe:transition-[translate] motion-safe:duration-200 hover:border-blue-300 hover:shadow-lg motion-safe:hover:translate-y-[calc(-1*var(--aqdr-hover-lift))] [[data-daily-report-scrolling]_&]:transition-none [[data-daily-report-scrolling]_&]:hover:translate-none [[data-daily-report-scrolling]_&]:hover:shadow-sm",Ae=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${J}`,ni="-mx-1",oi="flex items-center gap-1",Le="inline-flex h-6 items-center rounded-full px-3",ai="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",ii="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",Rt="size-4",Se={starOff:`${Rt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${Rt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${Rt} text-blue-600 dark:text-blue-400`,delete:`${Rt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${Rt} text-red-600 dark:text-red-400`,edit:`${Rt} text-slate-500 dark:text-slate-400`},si="h-6 w-10 border-4 border-solid",li="size-4 data-[state=checked]:translate-x-4",di="data-[state=unchecked]:bg-slate-500 data-[state=checked]:bg-blue-600 dark:data-[state=unchecked]:bg-slate-400 dark:data-[state=checked]:bg-blue-400 forced-colors:border-[ButtonText] forced-colors:data-[state=checked]:bg-[Highlight]",ci="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var ui="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",mi="rounded-xl border border-solid p-[3px]",pi="relative inline-flex h-6 items-center justify-center whitespace-nowrap rounded-lg px-2 font-medium text-slate-600 text-xs dark:text-slate-300 data-[state=active]:bg-white data-[state=active]:text-slate-900 dark:data-[state=active]:bg-slate-950 dark:data-[state=active]:text-slate-100 after:pointer-events-none after:absolute after:right-[var(--radius-lg)] after:bottom-0 after:left-[var(--radius-lg)] after:h-[2px] after:rounded-full after:forced-color-adjust-none data-[state=active]:after:bg-blue-600 dark:data-[state=active]:after:bg-blue-400 forced-colors:data-[state=active]:after:bg-[Highlight] disabled:pointer-events-none disabled:opacity-50",uc="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",mc="bg-slate-50 dark:bg-slate-950",We="flex min-h-0 flex-1 flex-col",ur=`${We} ${mc}`,mr=`${We} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${uc}`,pr="text-red-700 dark:text-red-400",fi="bg-white dark:bg-slate-900",dn="flex min-h-0 flex-1 flex-col overflow-clip contain-size",cn="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",bi="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",yi={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},_t="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",dt=`m-0 ${_t}`,un="text-balance wrap-anywhere [word-break:auto-phrase]",mn="[&_.aqvs-scrollbar]:bg-slate-100 [&_.aqvs-scrollbar-track]:bg-slate-100 [&_.aqvs-scrollbar-thumb]:bg-slate-500 [&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-600 [&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-700 [&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 [&_.aqvs-scrollbar-arrow-button]:bg-slate-100 [&_.aqvs-scrollbar-arrow-button]:text-slate-600 [&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-200 dark:[&_.aqvs-scrollbar]:bg-slate-900 dark:[&_.aqvs-scrollbar-track]:bg-slate-900 dark:[&_.aqvs-scrollbar-thumb]:bg-slate-500 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-400 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-300 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 dark:[&_.aqvs-scrollbar-arrow-button]:bg-slate-900 dark:[&_.aqvs-scrollbar-arrow-button]:text-slate-400 dark:[&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-800 forced-colors:[&_.aqvs-scrollbar-thumb]:bg-[CanvasText] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-[GrayText] forced-colors:[&_.aqvs-scrollbar-track]:outline-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-solid forced-colors:[&_.aqvs-scrollbar-track]:-outline-offset-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-[CanvasText]";import{jsx as Ri,jsxs as bc}from"react/jsx-runtime";var fc=2,fr=({id:e,count:t,label:r})=>t<=0?null:bc("span",{id:e,className:"inline-flex h-6 shrink-0 items-center gap-1 text-slate-500 dark:text-slate-400",title:`${r}: ${t}`,role:"img","aria-label":`${r}: ${t}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":t,children:[Ri(pc,{className:Rt,"aria-hidden":"true"}),t>=fc&&Ri("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as sb}from"@aiquants/virtualscroll";import{useCallback as Ce,useEffect as Dt,useLayoutEffect as lb,useMemo as Ha,useRef as we,useState as Ro}from"react";var ce=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},de=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?de(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 o=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let d=String(n.getHours()).padStart(2,"0"),m=String(n.getMinutes()).padStart(2,"0"),u=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${d}:${m}:${u}`}return`${o}-${a}-${i}`};import{useCallback as Wc,useEffect as Oi,useRef as Kc,useState as $c}from"react";var yc=/^(\d{4})([-/])(\d{2})\2(\d{2})$/;var pn=e=>e<10?`0${e}`:`${e}`,Rc=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=pn(e.getMonth()+1),n=pn(e.getDate());return`${t}-${r}-${n}`},gc=e=>{let t=yc.exec(e);if(t===null)return null;let[,r,,n,o]=t,a=Number(r),i=Number(n),s=Number(o);if(a<1)return null;let d=new Date(0);return d.setUTCFullYear(a,i-1,s),d.getUTCFullYear()!==a||d.getUTCMonth()!==i-1||d.getUTCDate()!==s?null:`${r}-${n}-${o}`};var Oo=(e=new Date)=>Number.isNaN(e.getTime())?Oo(new Date):`${e.getFullYear()}-${pn(e.getMonth()+1)}-${pn(e.getDate())}`,wt=e=>e==null?null:e instanceof Date?Rc(e):gc(e);var zt=(e,t,r=console)=>{let n=o=>typeof o=="string"?[`${t} ${o}`]:[t,o];return{debug:(o,...a)=>{e<=0&&r.debug(...n(o),...a)},info:(o,...a)=>{e<=1&&r.info(...n(o),...a)},warn:(o,...a)=>{e<=2&&r.warn(...n(o),...a)},error:(o,...a)=>{e<=3&&r.error(...n(o),...a)}}};import{resolveVirtualScrollLocale as Cc}from"@aiquants/virtualscroll";import{createContext as Lc,useContext as Dc,useMemo as Ac}from"react";var hc=e=>typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"||e===null||e===void 0?String(e):Array.isArray(e)?"array":typeof e,xe=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${hc(r)}`),gi=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),fn=(e,t,r)=>xe(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Sc,resolveVirtualScrollLocale as vc,VIRTUAL_SCROLL_LABEL_CATALOGS as hi,VIRTUAL_SCROLL_LABEL_KEYS as Po}from"@aiquants/virtualscroll";var vi=["id","businessDate","author","visitTime","createdAt","updatedAt","updatedBy","category","creationCategory","customer","subject","content","interviewers","comments","attachments","attachmentMissing","attachmentDownload","attachmentThumbnailUnavailable","tabArticle","tabRelations","reportTabList","relationsEmpty","title","listKeyboardHelp","tabList","tabTree","tabDetailList","viewTabList","treeComingSoon","totalCountLoading","createReport","createReportTitle","devControls","devSseToggle","devReload","devClearCache","autoRead","autoReadTitle","loadErrorBadge","loadError","reload","loadingIds","streamFailed","streamRetry","streamRevalidating","selectPrompt","loading","reportNotFound","contentEmpty","contentEmptyPreview","confirmDelete","deleteFailed","starAdd","starRemove","markRead","markUnread","deleteReport","edit","resizeHandle","close","formTitle","formTitlePlaceholder","formContent","formContentPlaceholder","formCancel","formSave","formPublish","commentPlaceholder","commentSend","commentDelete","commentDeleteConfirm","unknownUser","sourceInternal"],Ei=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState","listRowPosition","listRowPositionInUnknownTotal"],Mo=[...Po,...vi,...Ei];var Ec=Object.freeze({en:"en-US",ja:"ja-JP"}),be=(e,t)=>t.toLocaleString(Ec[e]),Tc=Object.freeze({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"}),xc=Object.freeze({create:"create the report",update:"save the report",publish:"publish the report",delete:"delete the report",addComment:"post the comment",deleteComment:"delete the comment",toggleStar:"update the star",toggleRead:"update the read state"}),ko=Object.freeze({en:Object.freeze({id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",attachmentThumbnailUnavailable:"Preview unavailable",tabArticle:"Overview",tabRelations:"Related",reportTabList:"Report sections",relationsEmpty:"No related view configured yet.",title:"Daily Reports",listKeyboardHelp:"Up and Down arrows: previous or next report. Home and End: first or last report. Page Up and Page Down: move by a page. Enter or Space on a report row: make it current. Control+Home and Control+End: move to the nearest control before or after the list, when there is one.",tabList:"\u{1F4C4} List",tabTree:"\u{1F333} Tree",tabDetailList:"\u{1F4CB} DetailList",viewTabList:"Views",treeComingSoon:"The tree view is coming soon",totalCountLoading:"Total: loading...",createReport:"New report",createReportTitle:"Create a daily report",devControls:"Development-only controls",devSseToggle:"Toggle SSE real-time sync",devReload:"Reload data",devClearCache:"Clear the cache and reload",autoRead:"Auto-read",autoReadTitle:"Mark reports as read automatically while viewing them",loadErrorBadge:"Error",loadError:"Failed to load the daily reports.",reload:"Reload",loadingIds:"Loading report IDs...",streamFailed:"Failed to load",streamRetry:"Retry",streamRevalidating:"Refreshing",selectPrompt:"Select a report from the list on the left.",loading:"Loading...",reportNotFound:"Report not found",contentEmpty:"No content has been entered.",contentEmptyPreview:"No content has been entered",confirmDelete:"Are you sure you want to delete this report?",deleteFailed:"Failed to delete the report",starAdd:"Add star",starRemove:"Remove star",markRead:"Mark as read",markUnread:"Mark as unread",deleteReport:"Delete",edit:"Edit",resizeHandle:"Resize the border between the report list and the detail pane",close:"Close",formTitle:"Title",formTitlePlaceholder:"Enter the report title",formContent:"Content",formContentPlaceholder:"Enter the report content",formCancel:"Cancel",formSave:"Save",formPublish:"Publish",commentPlaceholder:"Add a comment...",commentSend:"Send",commentDelete:"Delete comment",commentDeleteConfirm:"Delete",unknownUser:"Unknown",sourceInternal:"Original",totalCount:e=>`Total: ${be("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${be("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${be("en",e)} / ${be("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${be("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${be("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${be("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${xc[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`,listRowPosition:(e,t)=>`${be("en",e)} of ${be("en",t)}`,listRowPositionInUnknownTotal:e=>`Item ${be("en",e)}`}),ja:Object.freeze({id:"ID",businessDate:"\u55B6\u696D\u65E5",author:"\u4F5C\u6210\u8005",visitTime:"\u8A2A\u554F\u6642\u9593",createdAt:"\u4F5C\u6210\u65E5\u6642",updatedAt:"\u66F4\u65B0\u65E5\u6642",updatedBy:"\u66F4\u65B0\u8005",category:"\u533A\u5206",creationCategory:"\u4F5C\u6210\u533A\u5206",customer:"\u9867\u5BA2",subject:"\u4EF6\u540D",content:"\u5185\u5BB9",interviewers:"\u9762\u8AC7\u8005",comments:"\u30B3\u30E1\u30F3\u30C8",attachments:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentMissing:"\u5B9F\u4F53\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",attachmentDownload:"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",attachmentThumbnailUnavailable:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3067\u304D\u307E\u305B\u3093",tabArticle:"\u6982\u8981",tabRelations:"\u95A2\u9023",reportTabList:"\u65E5\u5831\u306E\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",relationsEmpty:"\u95A2\u9023\u30D3\u30E5\u30FC\u306F\u307E\u3060\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",title:"\u65E5\u5831",listKeyboardHelp:"\u2191\u2193 \u3067\u524D\u5F8C\u306E\u65E5\u5831\u3001Home / End \u3067\u5148\u982D\u30FB\u672B\u5C3E\u3001PageUp / PageDown \u3067\u30DA\u30FC\u30B8\u79FB\u52D5\u3001\u65E5\u5831\u306E\u884C\u3067 Enter \u307E\u305F\u306F Space \u3092\u62BC\u3059\u3068\u9078\u629E\u3001Ctrl+Home / Ctrl+End \u3067\u4E00\u89A7\u306E\u76F4\u524D\u30FB\u76F4\u5F8C\u306E\u64CD\u4F5C\u90E8\u54C1\u304C\u3042\u308C\u3070\u305D\u3053\u3078\u79FB\u308A\u307E\u3059\u3002",tabList:"\u{1F4C4} \u4E00\u89A7",tabTree:"\u{1F333} \u30C4\u30EA\u30FC",tabDetailList:"\u{1F4CB} \u8A73\u7D30\u4E00\u89A7",viewTabList:"\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",treeComingSoon:"\u30C4\u30EA\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059",totalCountLoading:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D...",createReport:"\u65E5\u5831\u4F5C\u6210",createReportTitle:"\u65E5\u5831\u3092\u4F5C\u6210",devControls:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB",devSseToggle:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",devReload:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)",devClearCache:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97",autoRead:"\u81EA\u52D5\u65E2\u8AAD",autoReadTitle:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",loadErrorBadge:"\u30A8\u30E9\u30FC",loadError:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",reload:"\u518D\u8AAD\u307F\u8FBC\u307F",loadingIds:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059...",streamFailed:"\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",streamRetry:"\u518D\u8A66\u884C",streamRevalidating:"\u6700\u65B0\u5316\u4E2D",selectPrompt:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",reportNotFound:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",contentEmpty:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",contentEmptyPreview:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093",confirmDelete:"\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",deleteFailed:"\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",starAdd:"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B",starRemove:"\u30B9\u30BF\u30FC\u3092\u5916\u3059",markRead:"\u65E2\u8AAD\u306B\u3059\u308B",markUnread:"\u672A\u8AAD\u306B\u3059\u308B",deleteReport:"\u524A\u9664\u3059\u308B",edit:"\u7DE8\u96C6",resizeHandle:"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30CF\u30F3\u30C9\u30EB",close:"\u9589\u3058\u308B",formTitle:"\u30BF\u30A4\u30C8\u30EB",formTitlePlaceholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",formContent:"\u5185\u5BB9",formContentPlaceholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",formCancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",formSave:"\u4FDD\u5B58",formPublish:"\u516C\u958B",commentPlaceholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",commentSend:"\u9001\u4FE1",commentDelete:"\u524A\u9664",commentDeleteConfirm:"\u524A\u9664\u3059\u308B",unknownUser:"\u4E0D\u660E\u306A\u30E6\u30FC\u30B6\u30FC",sourceInternal:"\u30AA\u30EA\u30B8\u30CA\u30EB",totalCount:e=>`\u7DCF\u4EF6\u6570: ${be("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${be("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${be("ja",e)} / ${be("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${be("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${be("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${be("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Tc[e]}\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,rowState:({isRead:e,isStarred:t})=>`${e?"\u65E2\u8AAD":"\u672A\u8AAD"}${t?"\u3001\u30B9\u30BF\u30FC\u4ED8\u304D":""}`,listRowPosition:(e,t)=>`\u5168 ${be("ja",t)} \u4EF6\u4E2D ${be("ja",e)} \u4EF6\u76EE`,listRowPositionInUnknownTotal:e=>`${be("ja",e)} \u4EF6\u76EE`})}),Ti=Object.freeze({en:Object.freeze({...hi.en,...ko.en}),ja:Object.freeze({...hi.ja,...ko.ja})}),Ic=e=>{let t={},r=!1;for(let n of Po){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},Si=(e,t,r)=>{e[t]=r},Ho=(e,t)=>{let r=vc(e);if(t===void 0)return Ti[r];if(t===null||typeof t!="object")throw xe("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw xe("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!Mo.includes(i))throw fn("labels key",i,Mo);let a={...Sc(r,Ic(t)),...ko[r]};for(let i of vi){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw xe(`labels.${i}`,"a non-blank string",s);Si(a,i,s)}}for(let i of Ei){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw xe(`labels.${i}`,"a function",s);Si(a,i,s)}}return Object.freeze(a)},xi=e=>{let t={};for(let r of Po)t[r]=e[r];return Object.freeze(t)};import{jsx as Fo,jsxs as Hc}from"react/jsx-runtime";var _c=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),wc=({title:e,annotation:t})=>Hc("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[Fo("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?Fo("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),br=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:wc,showDevControls:!1,headingLevel:3}),Ii=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Nc=e=>{for(let t of Object.keys(e))if(!Ii.includes(t))throw fn("config key",t,Ii)},Oc=[2,3,4,5],Mc=e=>{if(e===void 0)return br.headingLevel;let t=Oc.find(r=>r===e);if(t===void 0)throw xe("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},kc=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw xe(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},Ci=e=>{Nc(e);let t=e.onSessionExpired;if(t===void 0)throw gi("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw xe("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=Cc(e.locale),n=Ho(r,e.labels),o=br;return{apiBasePath:e.apiBasePath===void 0?o.apiBasePath:e.apiBasePath,ssePath:e.ssePath===void 0?o.ssePath:e.ssePath,draftLabelName:e.draftLabelName===void 0?o.draftLabelName:e.draftLabelName,locale:r,labels:n,sourceTypeConfigs:e.sourceTypeConfigs===void 0?_c(n):kc(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:Mc(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},Pc=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},Li=Lc(Ci({onSessionExpired:Pc})),Bo=({config:e,children:t})=>{let r=Ac(()=>Ci(e),[e]);return Fo(Li.Provider,{value:r,children:t})},H=()=>Dc(Li),Nt=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(o=>o.toLowerCase()===r);return n?t[n]:void 0},bn=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as Bc}from"@aiquants/virtualscroll";var Uo={from:1,to:3},WR=Array.from({length:(Uo.to-Uo.from)*4+1},(e,t)=>(Uo.from*4+t)/4),Fc=4;var Gt=120,Di=1e3,yn=.8,Vo={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},Rn=20,Ai=6,gn={reportHubId:-1,businessDate:null},hn=240,Sn=15,Uc=8,_i=460,wi=3,Ni=352,Vc={enabled:!0,renderVisual:Bc,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},vn={width:Uc,tapScrollCircleOptions:Vc,enableArrowButtonTabStops:!1},En=["pen","touch"];var Pi=zt(1,"use-daily-report"),Hi=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Ko=Hi("__DAILY_REPORT_CACHE_TTL__",3e5),zc=Hi("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),Y={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=>{Y.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=wt(e.date),o=n?this.lists.get(n):null;if(o&&n){let i=o.data.some(s=>s.reportHubId===e.reportHubId)?o.data.map(s=>s.reportHubId===e.reportHubId?e:s):[e,...o.data];this.lists.set(n,{...o,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()){Pi.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+zc))}},delete(e,t){this.reports.delete(e);let r=wt(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(o=>o.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)),o=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);o.length>0&&(r={...r,postedComments:[...r.postedComments,...o].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(),o=n+Ko;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let s=this.lastMutations.get(i.reportHubId);if(s&&r>0&&s>r)return this.reports.get(i.reportHubId)?.data??i;let d=this.reports.get(i.reportHubId)?.data,m=this.merge(i,d);return this.set(m,o,!1),m});return t&&this.lists.set(t,{data:a,expiresAt:o}),a}},Fi=(e,t,r=!0)=>Y.set(e,t,r),Ke=(e,t)=>Y.getReport(e,t?.ignoreExpiry),$e=(e,t)=>Y.update(e,t),xn=(e,t)=>Y.delete(e,t),Rr=()=>{Y.clear(),Tn.clear()},gr=e=>{Y.locks.add(e),Y.lastMutations.set(e,Date.now())},hr=e=>{Y.locks.delete(e),Y.lastMutations.set(e,Date.now())},Bi=e=>Y.recentDeletes.set(e,Date.now()),Ui=(e,t)=>{let r=n=>{n===e&&t()};return Y.listeners.add(r),()=>{Y.listeners.delete(r)}},Ot=(e,t)=>{Y.prune(),Y.set(t,Date.now()+Ko)},Vi=e=>{Y.prune();let t=Y.getReport(e.reportHubId,!0),r=new Map;for(let o of t?.postedComments??[])r.set(o.id,o.isMine??!1);let n=(e.postedComments??[]).map(o=>({...o,isMine:r.get(o.id)??!1}));Y.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Ko)},Gc=async(e,t)=>{let r=Y.getReport(t);if(r)return r;let n=Y.pendingReports.get(t);if(n)return n;let o=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 s=i.report;return Y.cacheMany([s],null,o)[0]}).finally(()=>Y.pendingReports.delete(t));return Y.pendingReports.set(t,a),a},Tn=new Map,jc=1e4,Yc=(e,t)=>{let r=Tn.get(t),n=Date.now();if(r&&n-r.at<jc)return r.inFlight;let o=$o(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return Tn.set(t,a),o.finally(()=>{Tn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},$o=async(e,t,r={})=>{let n=r.forceRefresh?null:Y.getList(t);if(n)return n;let o=Y.pendingLists.get(t);if(o)return o;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);return Y.cacheMany(s.reports??[],t,a)}).finally(()=>Y.pendingLists.delete(t));return Y.pendingLists.set(t,i),i},Wo=(e,t)=>{let r=Y.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!Y.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=Y.lists.get(t),o=n?.data.find(a=>a.reportHubId===e);return n===void 0||o===void 0?{report:null,isStale:!1}:{report:o,isStale:!Y.isValid(n.expiresAt)}},Mi=(e,t)=>{if(e<=0)return{id:e,report:null,error:e===0?new Error("Invalid ID"):null,isLoading:!1,isRefetching:!1};let{report:r}=Wo(e,wt(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},jt=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,Mt=(e,t)=>{let{apiBasePath:r}=H(),[n,o]=$c(()=>Mi(e,t)),a=Kc(0),i=n;return n.id!==e&&(i=Mi(e,t),o(i)),Oi(()=>{let s=wt(t),d=m=>{m===e&&o(jt(e,{report:Wo(e,s).report}))};return Y.listeners.add(d),()=>{Y.listeners.delete(d)}},[e,t]),Oi(()=>{let s=wt(t);a.current+=1;let d=a.current,m=()=>{a.current+=1};if(e<=0)return m;let{report:u,isStale:f}=Wo(e,s);if(u&&!f)return o(jt(e,{report:u,error:null,isLoading:!1,isRefetching:!1})),m;o(jt(e,{report:u,isLoading:!u,isRefetching:!0}));let g=async()=>{try{let y=null;if(s){let L=Y.getList(s)!==null;if(y=(await $o(r,s)).find(l=>l.reportHubId===e)??null,!y&&L){let l=await Yc(r,s);l&&(y=l.find(p=>p.reportHubId===e)??null)}}else y=await Gc(r,e);a.current===d&&o(jt(e,{report:y,error:null}))}catch(y){a.current===d&&o(jt(e,{error:y instanceof Error?y:new Error("Load failed")}))}finally{a.current===d&&o(jt(e,{isLoading:!1,isRefetching:!1}))}};if(u===null)return g(),m;let E=setTimeout(g,Gt);return()=>{clearTimeout(E),m()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},zo=()=>{let{apiBasePath:e}=H();return Wc(t=>{let r=wt(t);r&&!Y.getList(r)&&$o(e,r).catch(n=>Pi.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as qc}from"@aiquants/virtualscroll";import{useRef as Xc}from"react";var In=()=>{let{locale:e,labels:t}=H(),r=xi(t),n=Xc(null),o=n.current;return o!==null&&qc.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as iu,useState as su}from"react";import{flushSync as lu}from"react-dom";var $i=Object.freeze({visibilityProperty:!0}),Wi=new Set(["auto","scroll"]),Ki=new Set(["","true","plaintext-only"]),zi=e=>{for(let t=e;t!==null;){if(t.hasAttribute("inert"))return!0;let r=t.parentElement;if(r!==null){t=r;continue}let n=t.getRootNode();t=qi(n)?n.host:null}return!1},Zc=e=>{let t=e.closest("map")?.getAttribute("name");if(t==null||t==="")return!1;let r=e.getRootNode();for(let n of r.querySelectorAll("img[usemap]"))if(n.getAttribute("usemap")===`#${t}`&&n.checkVisibility($i))return!0;return!1},Gi=e=>e.localName==="area"?Zc(e):e.checkVisibility($i),Jc=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Ki.has(t.toLowerCase()))return!1;for(let r=e.parentElement;r!==null;r=r.parentElement){let n=r.getAttribute("contenteditable");if(n===null)continue;let o=n.toLowerCase();if(Ki.has(o))return!1;if(o==="false")return!0}return!0},Qc=e=>{if(e.checked||e.name==="")return!0;let t=e.getRootNode(),r=null;for(let n of t.querySelectorAll("input"))if(!(n.type!=="radio"||n.name!==e.name||n.form!==e.form)){if(n.checked)return!1;r===null&&!n.disabled&&Gi(n)&&(r=n)}return r===e},eu=e=>{let t=e.ownerDocument;if(e===t.documentElement||e===t.body)return!1;let r=e.scrollWidth>e.clientWidth,n=e.scrollHeight>e.clientHeight;if(!(r||n))return!1;let o=t.defaultView;if(o===null)return!1;let a=o.getComputedStyle(e);return r&&Wi.has(a.overflowX)||n&&Wi.has(a.overflowY)},tu=e=>{switch(e.localName){case"a":case"area":return e.hasAttribute("href");case"button":case"select":case"textarea":case"iframe":case"embed":return!0;case"input":return e.type!=="hidden";case"summary":return e.parentElement?.localName==="details"&&e.parentElement.querySelector(":scope > summary")===e;case"audio":case"video":return e.hasAttribute("controls");case"object":{let t=e.contentWindow;return typeof t=="object"&&t!==null}default:return Jc(e)}},ru=/^[\t\n\f\r ]*[+-]?\d/,nu=e=>{let t=e.getAttribute("tabindex");return t!==null&&ru.test(t)?e.tabIndex:null},ji=(e,t)=>{for(let r of jo(e))if(t(r)||ji(r,t))return!0;return!1},Cn=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=ou(e,t);return t.set(e,n),n},ou=(e,t)=>{if(!Yo(e))return"none";let r=nu(e),n=r===null&&tu(e),o=r===null&&!n&&eu(e);return!(r!==null||n||o)||e.matches(":disabled")||zi(e)||!Gi(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?Qc(e)?"sequential":"programmatic":"sequential":ji(e,a=>Cn(a,t)==="sequential")?"none":"sequential"},Go=(e,t)=>{for(let r of jo(e))t(r),Go(r,t)},jo=e=>{if(ge(e)){let t=e;if(t.shadowRoot!==null)return t.shadowRoot.children;if(t.localName==="slot"){let r=t.assignedElements();if(r.length>0)return r}}return e.children};var Ln=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return Go(e,d=>{Cn(d,a)==="sequential"&&n.push(d)}),{before:r,within:n,after:o};let i=!1,s=(d,m)=>{for(let u of jo(d)){let f=u===t;!f&&Cn(u,a)==="sequential"&&(m?n.push(u):i?o.push(u):r.push(u)),s(u,m||f),f&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},Yi=e=>{let t=[],r=new Map;return Go(e,n=>{Cn(n,r)==="sequential"&&t.push(n)}),t},ge=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,Yo=e=>"focus"in e&&"blur"in e,au=e=>e.nodeType===e.DOCUMENT_NODE,qi=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,_e=e=>{let t=e.getRootNode();if(qi(t)){let r=t.activeElement;return r===null?_e(t.host):r}return au(t)?t.activeElement:null},Sr=e=>{let t=_e(e);return t===null||t===t.ownerDocument.body||zi(t)},qe=e=>{let t=e.ownerDocument.defaultView;if(t===null)throw new Error("[daily-report] the element belongs to a document without a window");return t};var Dn=e=>{let[t,r]=su(null);return iu(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useViewBoxHeight needs viewRef attached to the view's root");let o=null,a=d=>{if(d===o)return;let m=o===null;o=d,m?lu(()=>r(d)):r(d)},i=d=>{for(let m of d)a(m.borderBoxSize[0].blockSize)},s=new(qe(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var Xi=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,pe=(e,t,r)=>{if(r!==null&&Number.isInteger(r)&&r>=0&&r<e.length){if(e[r].reportHubId===t)return r;for(let n=1;n<=16;n++){let o=r+n;if(o<e.length&&e[o].reportHubId===t)return o;let a=r-n;if(a>=0&&e[a].reportHubId===t)return a}}return e.findIndex(n=>n.reportHubId===t)};var An="data-daily-report-row",Zi=`[role="listitem"][${An}]`,du='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',cu=/^[1-9]\d*$/,Ji=e=>{if(e===null||!cu.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},St=(e,t)=>{if(t===null||!ge(e))return null;let r=e.closest(Zi);return r===null||r===t||!t.contains(r)?null:r},kt=e=>Ji(e.getAttribute(An)),Yt=e=>Ji(e.getAttribute("aria-posinset")),Qi=e=>{let t=e.closest(Zi),r=t===null?null:Yt(t);return r===null?null:r-1},vr=(e,t)=>{if(e===null)return null;let r=kt(e);if(r===null)return null;let n=Yt(e),o=pe(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},es=(e,t)=>{if(!ge(e))return!1;let r=e.closest(du);return r!==null&&r!==t&&t.contains(r)};import{createContext as ts}from"react";var ct=ts(0),Er=-1,rs=(e,t)=>t.phase==="complete"?e:t.totalCount===null?Er:Math.max(e,t.totalCount),ut=ts(-1);import{clsx as uu}from"clsx";import{twMerge as mu}from"tailwind-merge";function h(...e){return mu(uu(e))}import{useCallback as ns,useMemo as pu,useSyncExternalStore as fu}from"react";var os="(prefers-reduced-motion: reduce)",as=e=>qe(e).matchMedia(os).matches?"instant":"smooth",bu=Object.freeze({...Vo,startVelocityThreshold:Number.POSITIVE_INFINITY}),qt=e=>e?bu:Vo,yu=()=>!1,_n=e=>{let t=pu(()=>e===null?null:qe(e).matchMedia(os),[e]),r=ns(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=ns(()=>t===null?!1:t.matches,[t]);return fu(r,n,yu)};import{useSyncExternalStore as Ru}from"react";import{jsx as qo}from"react/jsx-runtime";var wn=()=>{let e={label:"",isWheelScrollActive:!1},t=new Set,r=n=>{e=n;for(let o of[...t])o()};return{getState:()=>e,setLabel:n=>{n!==e.label&&r({...e,label:n})},setWheelScrollActive:n=>{n!==e.isWheelScrollActive&&r({...e,isWheelScrollActive:n})},subscribe:n=>(t.add(n),()=>{t.delete(n)})}},is=16,gu=(e,t)=>e==="vertical"?{top:0,left:-is,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-is,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},Nn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=Ru(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?qo("div",{className:"pointer-events-none absolute flex items-center",style:gu(e,t),children:qo("div",{className:h(ai,"border-slate-200 bg-white 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:qo("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as md,useCallback as $r,useEffect as ud,useId as Uf,useLayoutEffect as Vf,useMemo as bo,useRef as fo}from"react";import{createContext as mm,useCallback as mt,useContext as pm,useEffect as ma,useRef as Me,useState as Kn}from"react";import{systemSseRuntime as Bn}from"@aiquants/sse";import{createBrowserEventSource as ju}from"@aiquants/sse/client";import{useReopeningEventSource as Yu}from"@aiquants/sse/react";import{useEffect as sa,useRef as Un,useState as qu}from"react";import{z as D}from"zod";var ss=["auth-required","forbidden","resync-required"],Xo=15e3,ls="lastEventId",hu=/^\d{1,15}-\d{1,15}$/,On=e=>hu.test(e),Su=D.object({name:D.string().nullish(),affiliation:D.string().nullish()}),vu=D.object({name:D.string().nullish(),text:D.string().nullish(),color:D.string().nullish()}),Eu=D.object({id:D.number(),name:D.string().nullish(),color:D.string().nullish()}),ds=D.object({id:D.number(),userId:D.string().nullish(),userName:D.string().nullish(),content:D.string().nullish(),createdAt:D.string().nullish(),isMine:D.boolean()}),Tu=D.object({id:D.string(),fileName:D.string(),fileType:D.string().nullable(),fileSize:D.number().nullable(),createdAt:D.string().nullable(),state:D.enum(["present","absent","unknown"]),hasThumbnail:D.boolean().default(!1)}),Zo=D.object({reportHubId:D.number(),date:D.string().nullish(),createdAt:D.string().nullish(),author:D.string().nullish(),userId:D.string().nullish(),sourceType:D.string().nullish(),employeeName:D.string().nullish(),updatedBy:D.string().nullish(),updatedAt:D.string().nullish(),category:D.string().nullish(),creationCategory:D.string().nullish(),visitTimeFrom:D.string().nullish(),visitTimeTo:D.string().nullish(),customerName:D.string().nullish(),interviewers:D.array(Su),subject:D.string().nullish(),content:D.string().nullish(),externalComments:D.array(vu),isRead:D.boolean(),isStarred:D.boolean(),labels:D.array(Eu),postedComments:D.array(ds),attachments:D.array(Tu).default([])}),xu=D.object({type:D.literal("connected")}),Iu=D.object({type:D.literal("status-update"),reportHubId:D.number(),statusType:D.enum(["star","read"]),value:D.boolean(),clientTempId:D.string(),recipientRawUserId:D.number().optional()}),Jo=D.string().optional(),Cu=D.object({type:D.literal("comment-add"),reportHubId:D.number(),comment:ds,clientTempId:D.string(),recipientRawUserId:D.number().optional(),sourceType:Jo}),Lu=D.object({type:D.literal("comment-delete"),reportHubId:D.number(),commentId:D.number(),clientTempId:D.string(),recipientRawUserId:D.number().optional(),sourceType:Jo}),Du=D.object({type:D.literal("report-create"),reportHubId:D.number(),report:Zo,clientTempId:D.string(),recipientRawUserId:D.number().optional()}),Au=D.object({type:D.literal("report-update"),reportHubId:D.number(),report:Zo,clientTempId:D.string(),recipientRawUserId:D.number().optional()}),_u=D.object({type:D.literal("report-publish"),reportHubId:D.number(),report:Zo,clientTempId:D.string(),recipientRawUserId:D.number().optional()}),wu=D.object({type:D.literal("report-delete"),reportHubId:D.number(),clientTempId:D.string(),sourceType:Jo}),cs=D.discriminatedUnion("type",[xu,Iu,Cu,Lu,Du,Au,_u,wu]);import{useSyncExternalStore as Vu}from"react";var us="ids-stream",ms=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,Qo=e=>{for(let t=1;t<e.length;t++)if(Pt(e[t-1],e[t])>0)return!1;return!0};var Tr=()=>{let e=new Map,t=new Map,r=new Map,n=i=>{let s=r.get(i.reportHubId);if(s===void 0){e.set(i.reportHubId,i);return}r.delete(i.reportHubId),t.set(i.reportHubId,{previous:s,next:i})},o=(i,s)=>{if(e.has(s.reportHubId)){e.set(s.reportHubId,s);return}let d=t.get(s.reportHubId);t.set(s.reportHubId,{previous:d===void 0?i:d.previous,next:s})},a=i=>{if(e.delete(i.reportHubId))return;let s=t.get(i.reportHubId);s!==void 0&&t.delete(i.reportHubId),r.set(i.reportHubId,s===void 0?i:s.previous)};return{add:n,change:o,remove:a,fold:i=>{for(let s of i.removed)a(s);for(let{previous:s,next:d}of i.replaced)o(s,d);for(let s of i.appended)n(s)},isEmpty:()=>e.size===0&&t.size===0&&r.size===0,build:(i,s)=>({base:i,revision:s,appended:[...e.values()],replaced:[...t.values()],removed:[...r.values()]})}},ps=(e,t)=>{let r=e.findIndex(n=>n.base===t);if(r===-1)return null;for(let n=r+1;n<e.length;n++)if(e[n].base!==e[n-1].revision)return null;return e.slice(r)};var fs=()=>{let e=new TextDecoder,t=[],r=n=>{let o=[],a=0;for(let i=n.indexOf(`
|
|
1
|
+
import vc from"lucide-react/dist/esm/icons/paperclip.js";var gc="data-daily-report-row-surface",Pe={[gc]:""},Vt="data-daily-report-scrolling",yt=8,ur="h-[calc-size(auto,round(up,size,4px))]",Rt="p-[8px]",ei="pr-[8px]",on="contain-size contain-layout contain-style",ti="contain-strict",X="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",ri="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",Oo="scrollbar-thin [scrollbar-gutter:stable]",Mo=`-m-[4px] overflow-hidden p-[4px] ${Oo}`,ni="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",an="rounded-[calc(var(--radius-2xl)+8px)]",sn="outline-none [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-2 [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-offset-4 [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-600 dark:[:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-400 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-2 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-blue-500 [&[aria-current=true]>:where([data-daily-report-row-surface])]:shadow-transparent forced-colors:[&[aria-current=true]]:outline-2 forced-colors:[&[aria-current=true]]:outline-solid forced-colors:[&[aria-current=true]]:-outline-offset-8 forced-colors:[&[aria-current=true]]:outline-[Highlight] forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-2 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-solid forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:-outline-offset-8 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-[Highlight]",oi="[:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-2 [:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-offset-4 [:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-blue-600 dark:[:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-blue-400 has-[>[aria-current=true]]:ring-2 has-[>[aria-current=true]]:ring-blue-500 has-[>[aria-current=true]]:shadow-transparent",Qe="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",ln=16,Wt="rounded-xl border border-dashed border-slate-300 bg-slate-50 p-[11px] text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",ai=12,dn="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",cn="[--aqdr-hover-lift:2px] [@media(resolution:1.25dppx)]:[--aqdr-hover-lift:calc(2px/1.25)] [@media(resolution:1.75dppx)]:[--aqdr-hover-lift:calc(3px/1.75)] [@media(resolution:2.25dppx)]:[--aqdr-hover-lift:calc(4px/2.25)] [@media(resolution:2.75dppx)]:[--aqdr-hover-lift:calc(5px/2.75)] motion-safe:transition-[translate] motion-safe:duration-200 hover:border-blue-300 hover:shadow-lg motion-safe:hover:translate-y-[calc(-1*var(--aqdr-hover-lift))] [[data-daily-report-scrolling]_&]:transition-none [[data-daily-report-scrolling]_&]:hover:translate-none [[data-daily-report-scrolling]_&]:hover:shadow-sm",Le=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${X}`,ii="-mx-1",si="flex items-center gap-1",De="inline-flex h-6 items-center rounded-full px-3",li="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",di="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",bt="size-4",ge={starOff:`${bt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${bt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${bt} text-blue-600 dark:text-blue-400`,delete:`${bt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${bt} text-red-600 dark:text-red-400`,edit:`${bt} text-slate-500 dark:text-slate-400`},ci="h-6 w-10 border-4 border-solid",ui="size-4 data-[state=checked]:translate-x-4",mi="data-[state=unchecked]:bg-slate-500 data-[state=checked]:bg-blue-600 dark:data-[state=unchecked]:bg-slate-400 dark:data-[state=checked]:bg-blue-400 forced-colors:border-[ButtonText] forced-colors:data-[state=checked]:bg-[Highlight]",pi="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var fi="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",bi="rounded-xl border border-solid p-[3px]",yi="relative inline-flex h-6 items-center justify-center whitespace-nowrap rounded-lg px-2 font-medium text-slate-600 text-xs dark:text-slate-300 data-[state=active]:bg-white data-[state=active]:text-slate-900 dark:data-[state=active]:bg-slate-950 dark:data-[state=active]:text-slate-100 after:pointer-events-none after:absolute after:right-[var(--radius-lg)] after:bottom-0 after:left-[var(--radius-lg)] after:h-[2px] after:rounded-full after:forced-color-adjust-none data-[state=active]:after:bg-blue-600 dark:data-[state=active]:after:bg-blue-400 forced-colors:data-[state=active]:after:bg-[Highlight] disabled:pointer-events-none disabled:opacity-50",hc="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",Sc="bg-slate-50 dark:bg-slate-950",We="flex min-h-0 flex-1 flex-col",mr=`${We} ${Sc}`,pr=`${We} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${hc}`,fr="text-red-700 dark:text-red-400",Ri="bg-white dark:bg-slate-900",un="flex min-h-0 flex-1 flex-col overflow-clip contain-size",mn="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",gi="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",hi={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},At="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",it=`m-0 ${At}`,pn="text-balance wrap-anywhere [word-break:auto-phrase]",fn="[&_.aqvs-scrollbar]:bg-slate-100 [&_.aqvs-scrollbar-track]:bg-slate-100 [&_.aqvs-scrollbar-thumb]:bg-slate-500 [&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-600 [&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-700 [&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 [&_.aqvs-scrollbar-arrow-button]:bg-slate-100 [&_.aqvs-scrollbar-arrow-button]:text-slate-600 [&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-200 dark:[&_.aqvs-scrollbar]:bg-slate-900 dark:[&_.aqvs-scrollbar-track]:bg-slate-900 dark:[&_.aqvs-scrollbar-thumb]:bg-slate-500 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-400 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-300 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 dark:[&_.aqvs-scrollbar-arrow-button]:bg-slate-900 dark:[&_.aqvs-scrollbar-arrow-button]:text-slate-400 dark:[&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-800 forced-colors:[&_.aqvs-scrollbar-thumb]:bg-[CanvasText] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-[GrayText] forced-colors:[&_.aqvs-scrollbar-track]:outline-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-solid forced-colors:[&_.aqvs-scrollbar-track]:-outline-offset-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-[CanvasText]";import{jsx as Si,jsxs as Tc}from"react/jsx-runtime";var Ec=2,br=({id:e,count:t,label:r})=>t<=0?null:Tc("span",{id:e,className:"inline-flex h-6 shrink-0 items-center gap-1 text-slate-500 dark:text-slate-400",title:`${r}: ${t}`,role:"img","aria-label":`${r}: ${t}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":t,children:[Si(vc,{className:bt,"aria-hidden":"true"}),t>=Ec&&Si("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as vb}from"@aiquants/virtualscroll";import{useCallback as Ie,useEffect as Ct,useLayoutEffect as Eb,useMemo as Va,useRef as we,useState as ho}from"react";var ie=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},ae=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?ae(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 o=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let d=String(n.getHours()).padStart(2,"0"),m=String(n.getMinutes()).padStart(2,"0"),u=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${d}:${m}:${u}`}return`${o}-${a}-${i}`};import{useCallback as qc,useEffect as Fi,useRef as Xc,useState as Zc}from"react";var xc=/^(\d{4})([-/])(\d{2})\2(\d{2})$/;var bn=e=>e<10?`0${e}`:`${e}`,Ic=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=bn(e.getMonth()+1),n=bn(e.getDate());return`${t}-${r}-${n}`},vi=e=>{let t=xc.exec(e);if(t===null)return null;let[,r,,n,o]=t,a=Number(r),i=Number(n),s=Number(o);if(a<1)return null;let d=new Date(0);return d.setUTCFullYear(a,i-1,s),d.getUTCFullYear()!==a||d.getUTCMonth()!==i-1||d.getUTCDate()!==s?null:`${r}-${n}-${o}`},Ei=e=>vi(e)===e,Po=(e=new Date)=>Number.isNaN(e.getTime())?Po(new Date):`${e.getFullYear()}-${bn(e.getMonth()+1)}-${bn(e.getDate())}`,Lt=e=>e==null?null:e instanceof Date?Ic(e):vi(e);var Kt=(e,t,r=console)=>{let n=o=>typeof o=="string"?[`${t} ${o}`]:[t,o];return{debug:(o,...a)=>{e<=0&&r.debug(...n(o),...a)},info:(o,...a)=>{e<=1&&r.info(...n(o),...a)},warn:(o,...a)=>{e<=2&&r.warn(...n(o),...a)},error:(o,...a)=>{e<=3&&r.error(...n(o),...a)}}};import{resolveVirtualScrollLocale as Oc}from"@aiquants/virtualscroll";import{createContext as Mc,useContext as Pc,useMemo as kc}from"react";var Cc=e=>typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"||e===null||e===void 0?String(e):Array.isArray(e)?"array":typeof e,ve=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Cc(r)}`),Ti=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),yn=(e,t,r)=>ve(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Dc,resolveVirtualScrollLocale as Ac,VIRTUAL_SCROLL_LABEL_CATALOGS as xi,VIRTUAL_SCROLL_LABEL_KEYS as Fo}from"@aiquants/virtualscroll";var Ci=["id","businessDate","author","visitTime","createdAt","updatedAt","updatedBy","category","creationCategory","customer","subject","content","interviewers","comments","attachments","attachmentMissing","attachmentDownload","attachmentThumbnailUnavailable","tabArticle","tabRelations","reportTabList","relationsEmpty","title","listKeyboardHelp","tabList","tabTree","tabDetailList","viewTabList","treeComingSoon","totalCountLoading","createReport","createReportTitle","devControls","devSseToggle","devReload","devClearCache","autoRead","autoReadTitle","loadErrorBadge","loadError","reload","loadingIds","streamFailed","streamRetry","streamRevalidating","selectPrompt","loading","reportNotFound","contentEmpty","contentEmptyPreview","confirmDelete","deleteFailed","starAdd","starRemove","markRead","markUnread","deleteReport","edit","resizeHandle","close","formTitle","formTitlePlaceholder","formContent","formContentPlaceholder","formCancel","formSave","formPublish","commentPlaceholder","commentSend","commentDelete","commentDeleteConfirm","unknownUser","sourceInternal"],Di=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState","listRowPosition","listRowPositionInUnknownTotal"],ko=[...Fo,...Ci,...Di];var Lc=Object.freeze({en:"en-US",ja:"ja-JP"}),ue=(e,t)=>t.toLocaleString(Lc[e]),_c=Object.freeze({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"}),wc=Object.freeze({create:"create the report",update:"save the report",publish:"publish the report",delete:"delete the report",addComment:"post the comment",deleteComment:"delete the comment",toggleStar:"update the star",toggleRead:"update the read state"}),Ho=Object.freeze({en:Object.freeze({id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",attachmentThumbnailUnavailable:"Preview unavailable",tabArticle:"Overview",tabRelations:"Related",reportTabList:"Report sections",relationsEmpty:"No related view configured yet.",title:"Daily Reports",listKeyboardHelp:"Up and Down arrows: previous or next report. Home and End: first or last report. Page Up and Page Down: move by a page. Enter or Space on a report row: make it current. Control+Home and Control+End: move to the nearest control before or after the list, when there is one.",tabList:"\u{1F4C4} List",tabTree:"\u{1F333} Tree",tabDetailList:"\u{1F4CB} DetailList",viewTabList:"Views",treeComingSoon:"The tree view is coming soon",totalCountLoading:"Total: loading...",createReport:"New report",createReportTitle:"Create a daily report",devControls:"Development-only controls",devSseToggle:"Toggle SSE real-time sync",devReload:"Reload data",devClearCache:"Clear the cache and reload",autoRead:"Auto-read",autoReadTitle:"Mark reports as read automatically while viewing them",loadErrorBadge:"Error",loadError:"Failed to load the daily reports.",reload:"Reload",loadingIds:"Loading report IDs...",streamFailed:"Failed to load",streamRetry:"Retry",streamRevalidating:"Refreshing",selectPrompt:"Select a report from the list on the left.",loading:"Loading...",reportNotFound:"Report not found",contentEmpty:"No content has been entered.",contentEmptyPreview:"No content has been entered",confirmDelete:"Are you sure you want to delete this report?",deleteFailed:"Failed to delete the report",starAdd:"Add star",starRemove:"Remove star",markRead:"Mark as read",markUnread:"Mark as unread",deleteReport:"Delete",edit:"Edit",resizeHandle:"Resize the border between the report list and the detail pane",close:"Close",formTitle:"Title",formTitlePlaceholder:"Enter the report title",formContent:"Content",formContentPlaceholder:"Enter the report content",formCancel:"Cancel",formSave:"Save",formPublish:"Publish",commentPlaceholder:"Add a comment...",commentSend:"Send",commentDelete:"Delete comment",commentDeleteConfirm:"Delete",unknownUser:"Unknown",sourceInternal:"Original",totalCount:e=>`Total: ${ue("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${ue("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${ue("en",e)} / ${ue("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${ue("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${ue("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${ue("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${wc[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`,listRowPosition:(e,t)=>`${ue("en",e)} of ${ue("en",t)}`,listRowPositionInUnknownTotal:e=>`Item ${ue("en",e)}`}),ja:Object.freeze({id:"ID",businessDate:"\u55B6\u696D\u65E5",author:"\u4F5C\u6210\u8005",visitTime:"\u8A2A\u554F\u6642\u9593",createdAt:"\u4F5C\u6210\u65E5\u6642",updatedAt:"\u66F4\u65B0\u65E5\u6642",updatedBy:"\u66F4\u65B0\u8005",category:"\u533A\u5206",creationCategory:"\u4F5C\u6210\u533A\u5206",customer:"\u9867\u5BA2",subject:"\u4EF6\u540D",content:"\u5185\u5BB9",interviewers:"\u9762\u8AC7\u8005",comments:"\u30B3\u30E1\u30F3\u30C8",attachments:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentMissing:"\u5B9F\u4F53\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",attachmentDownload:"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",attachmentThumbnailUnavailable:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3067\u304D\u307E\u305B\u3093",tabArticle:"\u6982\u8981",tabRelations:"\u95A2\u9023",reportTabList:"\u65E5\u5831\u306E\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",relationsEmpty:"\u95A2\u9023\u30D3\u30E5\u30FC\u306F\u307E\u3060\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",title:"\u65E5\u5831",listKeyboardHelp:"\u2191\u2193 \u3067\u524D\u5F8C\u306E\u65E5\u5831\u3001Home / End \u3067\u5148\u982D\u30FB\u672B\u5C3E\u3001PageUp / PageDown \u3067\u30DA\u30FC\u30B8\u79FB\u52D5\u3001\u65E5\u5831\u306E\u884C\u3067 Enter \u307E\u305F\u306F Space \u3092\u62BC\u3059\u3068\u9078\u629E\u3001Ctrl+Home / Ctrl+End \u3067\u4E00\u89A7\u306E\u76F4\u524D\u30FB\u76F4\u5F8C\u306E\u64CD\u4F5C\u90E8\u54C1\u304C\u3042\u308C\u3070\u305D\u3053\u3078\u79FB\u308A\u307E\u3059\u3002",tabList:"\u{1F4C4} \u4E00\u89A7",tabTree:"\u{1F333} \u30C4\u30EA\u30FC",tabDetailList:"\u{1F4CB} \u8A73\u7D30\u4E00\u89A7",viewTabList:"\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",treeComingSoon:"\u30C4\u30EA\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059",totalCountLoading:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D...",createReport:"\u65E5\u5831\u4F5C\u6210",createReportTitle:"\u65E5\u5831\u3092\u4F5C\u6210",devControls:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB",devSseToggle:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",devReload:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)",devClearCache:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97",autoRead:"\u81EA\u52D5\u65E2\u8AAD",autoReadTitle:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",loadErrorBadge:"\u30A8\u30E9\u30FC",loadError:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",reload:"\u518D\u8AAD\u307F\u8FBC\u307F",loadingIds:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059...",streamFailed:"\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",streamRetry:"\u518D\u8A66\u884C",streamRevalidating:"\u6700\u65B0\u5316\u4E2D",selectPrompt:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",reportNotFound:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",contentEmpty:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",contentEmptyPreview:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093",confirmDelete:"\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",deleteFailed:"\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",starAdd:"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B",starRemove:"\u30B9\u30BF\u30FC\u3092\u5916\u3059",markRead:"\u65E2\u8AAD\u306B\u3059\u308B",markUnread:"\u672A\u8AAD\u306B\u3059\u308B",deleteReport:"\u524A\u9664\u3059\u308B",edit:"\u7DE8\u96C6",resizeHandle:"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30CF\u30F3\u30C9\u30EB",close:"\u9589\u3058\u308B",formTitle:"\u30BF\u30A4\u30C8\u30EB",formTitlePlaceholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",formContent:"\u5185\u5BB9",formContentPlaceholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",formCancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",formSave:"\u4FDD\u5B58",formPublish:"\u516C\u958B",commentPlaceholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",commentSend:"\u9001\u4FE1",commentDelete:"\u524A\u9664",commentDeleteConfirm:"\u524A\u9664\u3059\u308B",unknownUser:"\u4E0D\u660E\u306A\u30E6\u30FC\u30B6\u30FC",sourceInternal:"\u30AA\u30EA\u30B8\u30CA\u30EB",totalCount:e=>`\u7DCF\u4EF6\u6570: ${ue("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${ue("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${ue("ja",e)} / ${ue("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${ue("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${ue("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${ue("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${_c[e]}\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,rowState:({isRead:e,isStarred:t})=>`${e?"\u65E2\u8AAD":"\u672A\u8AAD"}${t?"\u3001\u30B9\u30BF\u30FC\u4ED8\u304D":""}`,listRowPosition:(e,t)=>`\u5168 ${ue("ja",t)} \u4EF6\u4E2D ${ue("ja",e)} \u4EF6\u76EE`,listRowPositionInUnknownTotal:e=>`${ue("ja",e)} \u4EF6\u76EE`})}),Ai=Object.freeze({en:Object.freeze({...xi.en,...Ho.en}),ja:Object.freeze({...xi.ja,...Ho.ja})}),Nc=e=>{let t={},r=!1;for(let n of Fo){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},Ii=(e,t,r)=>{e[t]=r},Bo=(e,t)=>{let r=Ac(e);if(t===void 0)return Ai[r];if(t===null||typeof t!="object")throw ve("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw ve("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!ko.includes(i))throw yn("labels key",i,ko);let a={...Dc(r,Nc(t)),...Ho[r]};for(let i of Ci){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw ve(`labels.${i}`,"a non-blank string",s);Ii(a,i,s)}}for(let i of Di){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw ve(`labels.${i}`,"a function",s);Ii(a,i,s)}}return Object.freeze(a)},Li=e=>{let t={};for(let r of Fo)t[r]=e[r];return Object.freeze(t)};import{jsx as Uo,jsxs as $c}from"react/jsx-runtime";var Hc=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Fc=({title:e,annotation:t})=>$c("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[Uo("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?Uo("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),yr=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Fc,showDevControls:!1,headingLevel:3}),_i=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Bc=e=>{for(let t of Object.keys(e))if(!_i.includes(t))throw yn("config key",t,_i)},Uc=[2,3,4,5],Vc=e=>{if(e===void 0)return yr.headingLevel;let t=Uc.find(r=>r===e);if(t===void 0)throw ve("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},Wc=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw ve(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},wi=e=>{Bc(e);let t=e.onSessionExpired;if(t===void 0)throw Ti("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw ve("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=Oc(e.locale),n=Bo(r,e.labels),o=yr;return{apiBasePath:e.apiBasePath===void 0?o.apiBasePath:e.apiBasePath,ssePath:e.ssePath===void 0?o.ssePath:e.ssePath,draftLabelName:e.draftLabelName===void 0?o.draftLabelName:e.draftLabelName,locale:r,labels:n,sourceTypeConfigs:e.sourceTypeConfigs===void 0?Hc(n):Wc(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:Vc(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},Kc=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},Ni=Mc(wi({onSessionExpired:Kc})),Vo=({config:e,children:t})=>{let r=kc(()=>wi(e),[e]);return Uo(Ni.Provider,{value:r,children:t})},F=()=>Pc(Ni),_t=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(o=>o.toLowerCase()===r);return n?t[n]:void 0},Rn=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as Gc}from"@aiquants/virtualscroll";var zc=4;var $t=120,Oi=1e3,gn=.8,Wo={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},hn=20,Mi=6,Sn={reportHubId:-1,businessDate:null},vn=240,En=15,jc=8,Pi=460,ki=3,Hi=352,Yc={enabled:!0,renderVisual:Gc,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},Tn={width:jc,tapScrollCircleOptions:Yc,enableArrowButtonTabStops:!1},xn=["pen","touch"];var Vi=Kt(1,"use-daily-report"),Wi=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},$o=Wi("__DAILY_REPORT_CACHE_TTL__",3e5),Jc=Wi("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),z={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=>{z.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=Lt(e.date),o=n?this.lists.get(n):null;if(o&&n){let i=o.data.some(s=>s.reportHubId===e.reportHubId)?o.data.map(s=>s.reportHubId===e.reportHubId?e:s):[e,...o.data];this.lists.set(n,{...o,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()){Vi.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Jc))}},delete(e,t){this.reports.delete(e);let r=Lt(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(o=>o.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)),o=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);o.length>0&&(r={...r,postedComments:[...r.postedComments,...o].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(),o=n+$o;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let s=this.lastMutations.get(i.reportHubId);if(s&&r>0&&s>r)return this.reports.get(i.reportHubId)?.data??i;let d=this.reports.get(i.reportHubId)?.data,m=this.merge(i,d);return this.set(m,o,!1),m});return t&&this.lists.set(t,{data:a,expiresAt:o}),a}},Ki=(e,t,r=!0)=>z.set(e,t,r),Ke=(e,t)=>z.getReport(e,t?.ignoreExpiry),$e=(e,t)=>z.update(e,t),Cn=(e,t)=>z.delete(e,t),gr=()=>{z.clear(),In.clear()},hr=e=>{z.locks.add(e),z.lastMutations.set(e,Date.now())},Sr=e=>{z.locks.delete(e),z.lastMutations.set(e,Date.now())},$i=e=>z.recentDeletes.set(e,Date.now()),zi=(e,t)=>{let r=n=>{n===e&&t()};return z.listeners.add(r),()=>{z.listeners.delete(r)}},wt=(e,t)=>{z.prune(),z.set(t,Date.now()+$o)},Gi=e=>{z.prune();let t=z.getReport(e.reportHubId,!0),r=new Map;for(let o of t?.postedComments??[])r.set(o.id,o.isMine??!1);let n=(e.postedComments??[]).map(o=>({...o,isMine:r.get(o.id)??!1}));z.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+$o)},Qc=async(e,t)=>{let r=z.getReport(t);if(r)return r;let n=z.pendingReports.get(t);if(n)return n;let o=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 s=i.report;return z.cacheMany([s],null,o)[0]}).finally(()=>z.pendingReports.delete(t));return z.pendingReports.set(t,a),a},In=new Map,eu=1e4,tu=(e,t)=>{let r=In.get(t),n=Date.now();if(r&&n-r.at<eu)return r.inFlight;let o=zo(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return In.set(t,a),o.finally(()=>{In.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},zo=async(e,t,r={})=>{let n=r.forceRefresh?null:z.getList(t);if(n)return n;let o=z.pendingLists.get(t);if(o)return o;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);return z.cacheMany(s.reports??[],t,a)}).finally(()=>z.pendingLists.delete(t));return z.pendingLists.set(t,i),i},Ko=(e,t)=>{let r=z.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!z.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=z.lists.get(t),o=n?.data.find(a=>a.reportHubId===e);return n===void 0||o===void 0?{report:null,isStale:!1}:{report:o,isStale:!z.isValid(n.expiresAt)}},Bi=(e,t)=>{if(e<=0)return{id:e,report:null,error:e===0?new Error("Invalid ID"):null,isLoading:!1,isRefetching:!1};let{report:r}=Ko(e,Lt(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},zt=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,Nt=(e,t)=>{let{apiBasePath:r}=F(),[n,o]=Zc(()=>Bi(e,t)),a=Xc(0),i=n;return n.id!==e&&(i=Bi(e,t),o(i)),Fi(()=>{let s=Lt(t),d=m=>{m===e&&o(zt(e,{report:Ko(e,s).report}))};return z.listeners.add(d),()=>{z.listeners.delete(d)}},[e,t]),Fi(()=>{let s=Lt(t);a.current+=1;let d=a.current,m=()=>{a.current+=1};if(e<=0)return m;let{report:u,isStale:p}=Ko(e,s);if(u&&!p)return o(zt(e,{report:u,error:null,isLoading:!1,isRefetching:!1})),m;o(zt(e,{report:u,isLoading:!u,isRefetching:!0}));let y=async()=>{try{let f=null;if(s){let D=z.getList(s)!==null;if(f=(await zo(r,s)).find(l=>l.reportHubId===e)??null,!f&&D){let l=await tu(r,s);l&&(f=l.find(g=>g.reportHubId===e)??null)}}else f=await Qc(r,e);a.current===d&&o(zt(e,{report:f,error:null}))}catch(f){a.current===d&&o(zt(e,{error:f instanceof Error?f:new Error("Load failed")}))}finally{a.current===d&&o(zt(e,{isLoading:!1,isRefetching:!1}))}};if(u===null)return y(),m;let v=setTimeout(y,$t);return()=>{clearTimeout(v),m()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},Go=()=>{let{apiBasePath:e}=F();return qc(t=>{let r=Lt(t);r&&!z.getList(r)&&zo(e,r).catch(n=>Vi.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as ru}from"@aiquants/virtualscroll";import{useRef as nu}from"react";var Dn=()=>{let{locale:e,labels:t}=F(),r=Li(t),n=nu(null),o=n.current;return o!==null&&ru.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as pu,useState as fu}from"react";import{flushSync as bu}from"react-dom";var qi=Object.freeze({visibilityProperty:!0}),ji=new Set(["auto","scroll"]),Yi=new Set(["","true","plaintext-only"]),Xi=e=>{for(let t=e;t!==null;){if(t.hasAttribute("inert"))return!0;let r=t.parentElement;if(r!==null){t=r;continue}let n=t.getRootNode();t=es(n)?n.host:null}return!1},ou=e=>{let t=e.closest("map")?.getAttribute("name");if(t==null||t==="")return!1;let r=e.getRootNode();for(let n of r.querySelectorAll("img[usemap]"))if(n.getAttribute("usemap")===`#${t}`&&n.checkVisibility(qi))return!0;return!1},Zi=e=>e.localName==="area"?ou(e):e.checkVisibility(qi),au=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Yi.has(t.toLowerCase()))return!1;for(let r=e.parentElement;r!==null;r=r.parentElement){let n=r.getAttribute("contenteditable");if(n===null)continue;let o=n.toLowerCase();if(Yi.has(o))return!1;if(o==="false")return!0}return!0},iu=e=>{if(e.checked||e.name==="")return!0;let t=e.getRootNode(),r=null;for(let n of t.querySelectorAll("input"))if(!(n.type!=="radio"||n.name!==e.name||n.form!==e.form)){if(n.checked)return!1;r===null&&!n.disabled&&Zi(n)&&(r=n)}return r===e},su=e=>{let t=e.ownerDocument;if(e===t.documentElement||e===t.body)return!1;let r=e.scrollWidth>e.clientWidth,n=e.scrollHeight>e.clientHeight;if(!(r||n))return!1;let o=t.defaultView;if(o===null)return!1;let a=o.getComputedStyle(e);return r&&ji.has(a.overflowX)||n&&ji.has(a.overflowY)},lu=e=>{switch(e.localName){case"a":case"area":return e.hasAttribute("href");case"button":case"select":case"textarea":case"iframe":case"embed":return!0;case"input":return e.type!=="hidden";case"summary":return e.parentElement?.localName==="details"&&e.parentElement.querySelector(":scope > summary")===e;case"audio":case"video":return e.hasAttribute("controls");case"object":{let t=e.contentWindow;return typeof t=="object"&&t!==null}default:return au(e)}},du=/^[\t\n\f\r ]*[+-]?\d/,cu=e=>{let t=e.getAttribute("tabindex");return t!==null&&du.test(t)?e.tabIndex:null},Ji=(e,t)=>{for(let r of Yo(e))if(t(r)||Ji(r,t))return!0;return!1},An=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=uu(e,t);return t.set(e,n),n},uu=(e,t)=>{if(!qo(e))return"none";let r=cu(e),n=r===null&&lu(e),o=r===null&&!n&&su(e);return!(r!==null||n||o)||e.matches(":disabled")||Xi(e)||!Zi(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?iu(e)?"sequential":"programmatic":"sequential":Ji(e,a=>An(a,t)==="sequential")?"none":"sequential"},jo=(e,t)=>{for(let r of Yo(e))t(r),jo(r,t)},Yo=e=>{if(fe(e)){let t=e;if(t.shadowRoot!==null)return t.shadowRoot.children;if(t.localName==="slot"){let r=t.assignedElements();if(r.length>0)return r}}return e.children};var Ln=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return jo(e,d=>{An(d,a)==="sequential"&&n.push(d)}),{before:r,within:n,after:o};let i=!1,s=(d,m)=>{for(let u of Yo(d)){let p=u===t;!p&&An(u,a)==="sequential"&&(m?n.push(u):i?o.push(u):r.push(u)),s(u,m||p),p&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},Qi=e=>{let t=[],r=new Map;return jo(e,n=>{An(n,r)==="sequential"&&t.push(n)}),t},fe=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,qo=e=>"focus"in e&&"blur"in e,mu=e=>e.nodeType===e.DOCUMENT_NODE,es=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,_e=e=>{let t=e.getRootNode();if(es(t)){let r=t.activeElement;return r===null?_e(t.host):r}return mu(t)?t.activeElement:null},vr=e=>{let t=_e(e);return t===null||t===t.ownerDocument.body||Xi(t)},ke=e=>{let t=e.ownerDocument.defaultView;if(t===null)throw new Error("[daily-report] the element belongs to a document without a window");return t};var _n=e=>{let[t,r]=fu(null);return pu(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useViewBoxHeight needs viewRef attached to the view's root");let o=null,a=d=>{if(d===o)return;let m=o===null;o=d,m?bu(()=>r(d)):r(d)},i=d=>{for(let m of d)a(m.borderBoxSize[0].blockSize)},s=new(ke(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var ts=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,le=(e,t,r)=>{if(r!==null&&Number.isInteger(r)&&r>=0&&r<e.length){if(e[r].reportHubId===t)return r;for(let n=1;n<=16;n++){let o=r+n;if(o<e.length&&e[o].reportHubId===t)return o;let a=r-n;if(a>=0&&e[a].reportHubId===t)return a}}return e.findIndex(n=>n.reportHubId===t)};var wn="data-daily-report-row",rs=`[role="listitem"][${wn}]`,yu='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',Ru=/^[1-9]\d*$/,ns=e=>{if(e===null||!Ru.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},gt=(e,t)=>{if(t===null||!fe(e))return null;let r=e.closest(rs);return r===null||r===t||!t.contains(r)?null:r},Ot=e=>ns(e.getAttribute(wn)),Gt=e=>ns(e.getAttribute("aria-posinset")),os=e=>{let t=e.closest(rs),r=t===null?null:Gt(t);return r===null?null:r-1},Er=(e,t)=>{if(e===null)return null;let r=Ot(e);if(r===null)return null;let n=Gt(e),o=le(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},as=(e,t)=>{if(!fe(e))return!1;let r=e.closest(yu);return r!==null&&r!==t&&t.contains(r)};import{createContext as is}from"react";var st=is(0),Tr=-1,ss=(e,t)=>t.phase==="complete"?e:t.totalCount===null?Tr:Math.max(e,t.totalCount),lt=is(-1);import{clsx as gu}from"clsx";import{twMerge as hu}from"tailwind-merge";function R(...e){return hu(gu(e))}import{useCallback as ls,useMemo as Su,useSyncExternalStore as vu}from"react";var ds="(prefers-reduced-motion: reduce)",cs=e=>ke(e).matchMedia(ds).matches?"instant":"smooth",Eu=Object.freeze({...Wo,startVelocityThreshold:Number.POSITIVE_INFINITY}),jt=e=>e?Eu:Wo,Tu=()=>!1,Yt=e=>{let t=Su(()=>e===null?null:ke(e).matchMedia(ds),[e]),r=ls(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=ls(()=>t===null?!1:t.matches,[t]);return vu(r,n,Tu)};import{useSyncExternalStore as xu}from"react";import{jsx as Xo}from"react/jsx-runtime";var Nn=()=>{let e={label:"",isWheelScrollActive:!1},t=new Set,r=n=>{e=n;for(let o of[...t])o()};return{getState:()=>e,setLabel:n=>{n!==e.label&&r({...e,label:n})},setWheelScrollActive:n=>{n!==e.isWheelScrollActive&&r({...e,isWheelScrollActive:n})},subscribe:n=>(t.add(n),()=>{t.delete(n)})}},us=16,Iu=(e,t)=>e==="vertical"?{top:0,left:-us,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-us,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},On=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=xu(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?Xo("div",{className:"pointer-events-none absolute flex items-center",style:Iu(e,t),children:Xo("div",{className:R(li,"border-slate-200 bg-white 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:Xo("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as Sd,useCallback as nr,useEffect as hd,useId as eb,useLayoutEffect as tb,useMemo as Ro,useRef as Ba}from"react";import{createContext as zs,useCallback as ma,useContext as vm,useEffect as pa,useLayoutEffect as Em,useMemo as ba,useRef as qt,useState as Lr}from"react";import{systemSseRuntime as Un}from"@aiquants/sse";import{createBrowserEventSource as Qu}from"@aiquants/sse/client";import{useReopeningEventSource as em}from"@aiquants/sse/react";import{useEffect as la,useRef as Vn,useState as tm}from"react";import{z as A}from"zod";var ms=["auth-required","forbidden","resync-required"],Zo=15e3,ps="lastEventId",Cu=/^\d{1,15}-\d{1,15}$/,Mn=e=>Cu.test(e),Du=A.object({name:A.string().nullish(),affiliation:A.string().nullish()}),Au=A.object({name:A.string().nullish(),text:A.string().nullish(),color:A.string().nullish()}),Lu=A.object({id:A.number(),name:A.string().nullish(),color:A.string().nullish()}),fs=A.object({id:A.number(),userId:A.string().nullish(),userName:A.string().nullish(),content:A.string().nullish(),createdAt:A.string().nullish(),isMine:A.boolean()}),_u=A.object({id:A.string(),fileName:A.string(),fileType:A.string().nullable(),fileSize:A.number().nullable(),createdAt:A.string().nullable(),state:A.enum(["present","absent","unknown"]),hasThumbnail:A.boolean().default(!1)}),Jo=A.object({reportHubId:A.number(),date:A.string().nullish(),createdAt:A.string().nullish(),author:A.string().nullish(),userId:A.string().nullish(),sourceType:A.string().nullish(),employeeName:A.string().nullish(),updatedBy:A.string().nullish(),updatedAt:A.string().nullish(),category:A.string().nullish(),creationCategory:A.string().nullish(),visitTimeFrom:A.string().nullish(),visitTimeTo:A.string().nullish(),customerName:A.string().nullish(),interviewers:A.array(Du),subject:A.string().nullish(),content:A.string().nullish(),externalComments:A.array(Au),isRead:A.boolean(),isStarred:A.boolean(),labels:A.array(Lu),postedComments:A.array(fs),attachments:A.array(_u).default([])}),wu=A.object({type:A.literal("connected")}),Nu=A.object({type:A.literal("status-update"),reportHubId:A.number(),statusType:A.enum(["star","read"]),value:A.boolean(),clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Qo=A.string().optional(),Ou=A.object({type:A.literal("comment-add"),reportHubId:A.number(),comment:fs,clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Qo}),Mu=A.object({type:A.literal("comment-delete"),reportHubId:A.number(),commentId:A.number(),clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Qo}),Pu=A.object({type:A.literal("report-create"),reportHubId:A.number(),report:Jo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),ku=A.object({type:A.literal("report-update"),reportHubId:A.number(),report:Jo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Hu=A.object({type:A.literal("report-publish"),reportHubId:A.number(),report:Jo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Fu=A.object({type:A.literal("report-delete"),reportHubId:A.number(),clientTempId:A.string(),sourceType:Qo}),bs=A.discriminatedUnion("type",[wu,Nu,Ou,Mu,Pu,ku,Hu,Fu]);import{useSyncExternalStore as ju}from"react";var ys="ids-stream",Rs=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 Mt=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,ea=e=>{for(let t=1;t<e.length;t++)if(Mt(e[t-1],e[t])>0)return!1;return!0};var xr=()=>{let e=new Map,t=new Map,r=new Map,n=i=>{let s=r.get(i.reportHubId);if(s===void 0){e.set(i.reportHubId,i);return}r.delete(i.reportHubId),t.set(i.reportHubId,{previous:s,next:i})},o=(i,s)=>{if(e.has(s.reportHubId)){e.set(s.reportHubId,s);return}let d=t.get(s.reportHubId);t.set(s.reportHubId,{previous:d===void 0?i:d.previous,next:s})},a=i=>{if(e.delete(i.reportHubId))return;let s=t.get(i.reportHubId);s!==void 0&&t.delete(i.reportHubId),r.set(i.reportHubId,s===void 0?i:s.previous)};return{add:n,change:o,remove:a,fold:i=>{for(let s of i.removed)a(s);for(let{previous:s,next:d}of i.replaced)o(s,d);for(let s of i.appended)n(s)},isEmpty:()=>e.size===0&&t.size===0&&r.size===0,build:(i,s)=>({base:i,revision:s,appended:[...e.values()],replaced:[...t.values()],removed:[...r.values()]})}},gs=(e,t)=>{let r=e.findIndex(n=>n.base===t);if(r===-1)return null;for(let n=r+1;n<e.length;n++)if(e[n].base!==e[n-1].revision)return null;return e.slice(r)};var hs=()=>{let e=new TextDecoder,t=[],r=n=>{let o=[],a=0;for(let i=n.indexOf(`
|
|
2
2
|
`);i!==-1;i=n.indexOf(`
|
|
3
|
-
`,a)){let s=n.slice(a,i);o.push(t.length===0?s:[...t,s].join("")),t=[],a=i+1}return a<n.length&&t.push(n.slice(a)),o};return{push:n=>r(e.decode(n,{stream:!0})),end:()=>{let n=r(e.decode()),o=t.join("");return t=[],o===""?n:[...n,o]}}};var Nu=50,Ou=32,bs=0,Mu=()=>(bs+=1,bs),ku=1e3,Pu=3e4,Hu=6,Fu=3e4,Mn=Symbol("read-stall"),Bu="/daily_report/api",Uu=/^\d{4}-\d{2}-\d{2}$/,xr=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,itemsRevision:0,itemsChanges:[],totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null};this.streamAnchorRevision=0;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=Number.NEGATIVE_INFINITY;this.pendingItemsChange=Tr();this.apiBasePath=t.apiBasePath??Bu,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??Fu,this.publishCoalesceMs=t.publishCoalesceMs??Nu,this.now=t.now??(()=>performance.now()),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})}}}resync(){if(!this.disposed){if(this.state.phase==="streaming"||this.state.phase==="retrying"){this.pendingForceRefresh=!0;return}this.refresh({forceRefresh:!0})}}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};this.putItem(r,n)&&this.schedulePublishItems()}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.deleteItem(t)&&this.schedulePublishItems())}has(t){return this.itemMap.has(t)}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();let o=this.takePendingItems();this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,...o}),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>=Hu){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(ku*2**(this.consecutiveFailures-1),Pu))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.deleteItem(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"}),o=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(u=>{o=this.setTimeoutFn(()=>u(Mn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Mn)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(),s=fs(),d=!1,m=!1;for(;;){let u=await this.readWithStallGuard(i);if(u===Mn)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let f=u.done?s.end():s.push(u.value),g=!1;for(let E of f){if(E.trim()==="")continue;let y;try{y=JSON.parse(E)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let L=ms(y);if(L==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(L==="error"){d=!0;continue}let v=y;g=this.absorbChunkLine(v)||g,typeof v.total=="number"&&Number.isFinite(v.total)&&v.total!==this.state.totalCount&&this.publish({totalCount:v.total}),v.nextCursor&&(v.nextCursor.businessDate===null||Uu.test(v.nextCursor.businessDate))&&(this.lastCursor=v.nextCursor),v.isLast&&(m=!0)}if(g&&(this.consecutiveFailures=0,this.schedulePublishItems()),u.done)break}return d?{kind:"retryable",error:new Error("Stream interrupted by server error")}:m?{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(o=>{r=this.setTimeoutFn(()=>o(Mn),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),t.streamAnchor!==void 0&&this.absorbStreamAnchor(t.streamAnchor);let r=t.provisional===!0,n=!1;for(let o of t.items)!o||typeof o.reportHubId!="number"||this.externalRemovalTombstones.has(o.reportHubId)||(r||this.activeSeenIds?.add(o.reportHubId),n=this.putItem(this.itemMap.get(o.reportHubId),o)||n);return n}putItem(t,r){return t===void 0?(this.itemMap.set(r.reportHubId,r),this.pendingItemsChange.add(r),!0):t.businessDate===r.businessDate&&t.sourceType===r.sourceType?!1:(this.itemMap.set(r.reportHubId,r),this.pendingItemsChange.change(t,r),!0)}deleteItem(t){let r=this.itemMap.get(t);return r===void 0?!1:(this.itemMap.delete(t),this.pendingItemsChange.remove(r),!0)}absorbStreamAnchor(t){if(t!==null&&!(typeof t=="string"&&On(t))){this.warn(`[DailyReportIdsStream] ids stream carried a malformed streamAnchor: ${String(t)}`);return}this.streamAnchorRevision+=1,this.publish({streamAnchor:{lastEventId:t,revision:this.streamAnchorRevision}})}takePendingItems(){if(this.pendingItemsChange.isEmpty())return{};this.lastItemsPublishAt=this.now();let t=Mu(),r=this.pendingItemsChange.build(this.state.itemsRevision,t);return this.pendingItemsChange=Tr(),{items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size,itemsRevision:t,itemsChanges:[...this.state.itemsChanges.slice(1-Ou),r]}}publishItems(){let t=this.takePendingItems();t.itemsRevision!==void 0&&this.publish(t)}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=this.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}/${us}${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,o=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===o&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=o,n=this.setTimeoutFn(o,t)})}};var Wu=6e4,ee=null,ys=!1,ea=new Set,Rs={items:[],loadedCount:0,itemsRevision:0,itemsChanges:[],totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},ta=()=>{for(let e of ea)e()},ra=()=>{ee&&(ee.unsubscribe(),ee.client.dispose(),ee=null,ta())},Ir=e=>{if(typeof window>"u")return;let t=e.apiBasePath??br.apiBasePath;if(ee&&(ee.userKey!==e.userKey||ee.apiBasePath!==t)&&(ee.userKey!==e.userKey&&Rr(),ra()),!ee){let r=new xr({apiBasePath:t});ee={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(ta)},Ku(),r.start(),ta();return}kn(ee)},kn=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>Wu&&e.client.refresh()},Ku=()=>{if(ys||typeof document>"u"||typeof window>"u")return;ys=!0;let e=()=>{ee&&kn(ee)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},na=e=>{if(!(typeof window>"u")){if(!ee){Ir(e);return}if(ee.userKey!==e.userKey){Rr(),ra(),Ir(e);return}kn(ee)}},oa=()=>{typeof window>"u"||!ee||kn(ee)},Cr=e=>{ee?.client.applyExternalUpsert(e)},Pn=e=>{ee?.client.applyExternalRemoval(e)},gs=e=>ee===null?!1:ee.client.has(e),aa=()=>ee===null?0:ee.client.getState().itemsRevision,Hn=()=>{ee?.client.retry()},Fn=()=>{ee?.client.resync()},ia=(e={})=>{ee?.client.refresh(e)},hs=()=>ee?.userKey,$u=e=>(ea.add(e),()=>ea.delete(e)),zu=()=>ee?.client.getState()??Rs,Gu=()=>Rs,Xe=()=>Vu($u,zu,Gu);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{ra()});var Ht=zt(1,"daily-report-sse-connection"),Xu=Object.freeze({kind:"resyncing"}),Ss={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},Zu=1,vs=Xo*3,Ju=vs+Xo,la=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=H(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=Xe(),[d,m]=qu({generation:0,minAnchorRevision:1,anchored:!1}),u=d.generation>0&&!d.anchored,f=u&&a==="complete"&&!i?s:null,g=Un(0),E=Un(null),y=Un(n);y.current=n;let L=Un(0);L.current=o===null?0:o.revision,sa(()=>{d.anchored||o===null||o.revision<d.minAnchorRevision||(E.current=o.lastEventId,g.current=0,m({...d,anchored:!0}))},[d,o]),sa(()=>{if(!e||f===null)return;let{initialDelayMs:l,maxDelayMs:p,multiplier:I}=Ss,C=Bn.random()*Math.min(p,l*I**g.current);Ht.warn(`SSE resync: the ids rescan gave up (${f.message}); rescanning in ${Math.round(C)} ms`);let k=Bn.setTimer(()=>{g.current+=1,Fn()},C);return()=>Bn.clearTimer(k)},[e,f]);let{status:v}=Yu(e&&d.anchored?`${r}#${d.generation}`:null,{resolveUrl:({lastEventId:l})=>l===null?r:`${r}?${ls}=${encodeURIComponent(l)}`,initialLastEventId:E.current,withCredentials:!1,createEventSource:ju,runtime:Bn,backoff:Ss,healthyOpenMs:Ju,nativeRetryLimit:Zu,giveUpAfterFailures:"never",terminalEvents:ss,heartbeat:{staleAfterMs:vs,onHeartbeat:null},events:{message:l=>{l.lastEventId!==""&&(On(l.lastEventId)?E.current=l.lastEventId:Ht.warn("SSE event carried a malformed id; keeping the previous cursor:",l.lastEventId));try{let p=JSON.parse(l.data),I=cs.safeParse(p);if(!I.success){Ht.error("SSE Validation Error:",I.error.flatten(),"raw message:",p);return}if(I.data.type==="connected"){Ht.info("SSE Subscribe Ready");return}t(I.data)}catch(p){Ht.error("SSE Parse Error",p)}}}});return sa(()=>{if(v.kind==="faulted"){Ht.error("SSE connection faulted:",v.error);return}if(v.kind==="terminated")switch(v.terminalEvent){case"auth-required":y.current();return;case"forbidden":Ht.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let l=L.current+1;m(p=>({generation:p.generation+1,minAnchorRevision:l,anchored:!1})),Fn();return}}},[v]),e&&u?Xu:v};import{createContext as Qu,useCallback as em,useContext as tm,useSyncExternalStore as Es}from"react";var Ts=()=>{let e=new Map,t=new Map,r=(n,o)=>{o===null?e.delete(n):e.set(n,o);let a=t.get(n);if(a!==void 0)for(let i of[...a])i()};return{modeOf:n=>{let o=e.get(n);return o===void 0?"display":o.mode},inputOf:n=>{let o=e.get(n);return o===void 0||o.mode==="dismissed"?null:o.input},subscribe:(n,o)=>{let a=t.get(n),i=a===void 0?new Set:a;return a===void 0&&t.set(n,i),i.add(o),()=>{i.delete(o),i.size===0&&t.get(n)===i&&t.delete(n)}},open:(n,o,a)=>{let i=e.get(n);i!==void 0&&i.mode!=="dismissed"||r(n,{mode:a?"automatic":"editing",input:o})},setInput:(n,o)=>{let a=e.get(n);a===void 0||a.mode==="dismissed"||r(n,{mode:a.mode,input:{...a.input,...o}})},dismiss:n=>{e.get(n)?.mode!=="dismissed"&&r(n,{mode:"dismissed"})},discard:n=>{e.has(n)&&r(n,null)}}},da=Qu(null),vt=()=>{let e=tm(da);if(e===null)throw new Error("[daily-report] the draft store is read outside a DailyReportActionProvider");return e},xs=(e,t)=>em(r=>e.subscribe(t,r),[e,t]),Vn=e=>{let t=vt(),r=()=>t.modeOf(e);return Es(xs(t,e),r,r)},Is=e=>{let t=vt(),r=()=>t.inputOf(e),n=Es(xs(t,e),r,r);if(n===null)throw new Error(`[daily-report] the edit form is rendered for report ${e}, whose editor is not open`);return n};import{createContext as rm,useCallback as Cs,useContext as nm,useEffect as om,useMemo as am,useRef as Ls,useState as im}from"react";import{jsx as Ds,jsxs as As}from"react/jsx-runtime";var sm=8e3,lm="fixed inset-x-0 bottom-4 z-[100] mx-auto flex w-fit max-w-[92vw] items-center gap-2 rounded-lg border border-red-300 border-solid bg-red-600 px-[15px] py-[7px] text-sm text-white shadow-lg motion-safe:fade-in motion-safe:slide-in-from-bottom-2 motion-safe:animate-in motion-safe:duration-200 dark:border-red-500/60 dark:bg-red-700",dm=h("flex size-6 shrink-0 items-center justify-center rounded font-bold text-white/90 hover:bg-red-700 hover:text-white dark:hover:bg-red-800",ei),_s=rm({notifyError:()=>{}}),ws=()=>nm(_s),ca=({children:e})=>{let{onError:t,labels:r}=H(),[n,o]=im(null),a=Ls(t);a.current=t;let i=Ls(null),s=Cs(u=>{let f=a.current;if(f){f(u);return}o(u)},[]),d=Cs(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);om(()=>{if(n)return i.current=setTimeout(()=>o(null),sm),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let m=am(()=>({notifyError:s}),[s]);return As(_s.Provider,{value:m,children:[e,n&&As("div",{role:"alert","data-testid":"daily-report-error-banner",className:lm,children:[Ds("span",{className:"font-medium",children:n.message}),Ds("button",{type:"button","aria-label":r.close,onClick:d,className:dm,children:"\u2715"})]})]})};var Os={items:[],held:new Map,revision:null,settled:!1},Ns=(e,t)=>{let r=0,n=e.length;for(;r<n;){let o=r+n>>1;Pt(e[o],t)<0?r=o+1:n=o}return r<e.length&&e[r].reportHubId===t.reportHubId?r:-1},Ms=(e,t,r)=>{let n=r,o=e.length;for(;n<o;){let a=n+o>>1;Pt(e[a],t)<=0?n=a+1:o=a}return n},cm=(e,t)=>e.businessDate===t.businessDate,um=(e,t)=>{if(Qo(t)||t.sort(Pt),e.length===0||Pt(e[e.length-1],t[0])<0)return e.concat(t);let r=[],n=0;for(let o of t){let a=Ms(e,o,n);a>n&&r.push(e.slice(n,a)),r.push([o]),n=a}return n<e.length&&r.push(e.slice(n)),r.flat()},ks=e=>{let{revision:t}=e;if(!e.settled||t===null)return e;let r=[...e.held.values()].filter(a=>a.item.reportHubId>0&&t>a.since).map(a=>a.item.reportHubId);if(r.length===0)return e;let n=new Set(r),o=new Map(e.held);for(let a of n)o.delete(a);return{...e,items:e.items.filter(a=>!n.has(a.reportHubId)),held:o}},ua=(e,t,r,n)=>{let o=new Set,a=[];for(let s of t.items)o.add(s.reportHubId),n.has(s.reportHubId)||a.push(s);let i=new Map;for(let s of e.items){if(o.has(s.reportHubId)||n.has(s.reportHubId))continue;let d=e.held.get(s.reportHubId);i.set(s.reportHubId,d===void 0?{item:s,since:Number.NEGATIVE_INFINITY}:d),a.push(s)}return Qo(a)||a.sort(Pt),ks({items:a,held:i,revision:t.itemsRevision,settled:r})},Ps=(e,t,r,n)=>{let o=e.revision;if(o===t.itemsRevision&&e.settled===r)return e;let a=o===null?null:o===t.itemsRevision?[]:ps(t.itemsChanges,o);if(o===null||a===null)return ua(e,t,r,n);let i=Tr();for(let l of a)i.fold(l);let{appended:s,replaced:d,removed:m}=i.build(o,t.itemsRevision),u=null,f=()=>(u===null&&(u=new Map(e.held)),u),g=[],E=new Set,y=[];for(let l of m)e.held.has(l.reportHubId)||Ns(e.items,l)===-1||(r||n.has(l.reportHubId)?E.add(l.reportHubId):f().set(l.reportHubId,{item:l,since:Number.NEGATIVE_INFINITY}));let L=(l,p)=>{let I=l.reportHubId;if(n.has(I))return;let C=e.held.get(I);C!==void 0&&f().delete(I);let k=C===void 0?p:C.item,w=k===void 0?-1:Ns(e.items,k);if(w!==-1&&cm(e.items[w],l)){e.items[w].sourceType!==l.sourceType&&g.push({index:w,item:l});return}w!==-1&&E.add(I),y.push(l)};for(let{previous:l,next:p}of d)L(p,l);for(let l of s)L(l,void 0);let v=e.items;if(g.length>0){v=v.slice();for(let{index:l,item:p}of g)v[l]=p}return E.size>0&&(v=v.filter(l=>!E.has(l.reportHubId))),y.length>0&&(v=um(v,y)),ks({items:v,held:u===null?e.held:u,revision:t.itemsRevision,settled:r})},Wn=(e,t,r)=>{if(e.items.some(a=>a.reportHubId===t.reportHubId))return e;let n=e.items.slice();n.splice(Ms(n,t,0),0,t);let o=new Map(e.held);return o.set(t.reportHubId,{item:t,since:r}),{...e,items:n,held:o}},Lr=(e,t)=>{if(!e.held.has(t))return e;let r=new Map(e.held);return r.delete(t),{...e,items:e.items.filter(n=>n.reportHubId!==t),held:r}},Hs=(e,t)=>{if(!e.items.some(n=>n.reportHubId===t))return e;let r=new Map(e.held);return r.delete(t),{...e,items:e.items.filter(n=>n.reportHubId!==t),held:r}},Fs=e=>({...e,revision:null});import{jsx as Bs}from"react/jsx-runtime";var nt=zt(1,"daily-report-action-context"),pa=globalThis.__DailyReportActionContext??mm(null);globalThis.__DailyReportActionContext=pa;var De=()=>{let e=pm(pa);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},Ft=(e,t)=>{if(!e)return t;if(e.displayName?.trim())return e.displayName;if(e.name){let n=[e.name.familyName,e.name.givenName].filter(o=>typeof o=="string"&&o!=="").join(" ");if(n.trim())return n.trim()}let r=e.emails?.[0]?.value;return r||t},fa=({children:e,user:t,userId:r})=>{let{apiBasePath:n,draftLabelName:o,labels:a}=H(),{notifyError:i}=ws(),s=Me(i);s.current=i;let d=Me(new Map),m=Me(new Map),u=Me(new Map),f=Me(new Map),g=Me(new Map),[E,y]=Kn(0),[L]=Kn(Ts),[v,l]=Kn(!1),p=Me(!1),I=Me(new Map),C=Me(new Set),k=Me(new Set),w=Xe(),U=w.phase==="complete"&&!w.isRevalidating,[N,P]=Kn(()=>ua(Os,w,U,C.current));(N.revision!==w.itemsRevision||N.settled!==U)&&P(x=>Ps(x,w,U,C.current));let Z=N.items,B=mt(()=>hs()===(r??null),[r]),Q=mt(async()=>{nt.info("[DailyReportActionProvider] Refetching data without page reload..."),ia(),y(x=>x+1),Y.listeners.forEach(x=>{x(-1)})},[]),K=mt(async()=>{nt.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),Rr(),C.current.clear(),P(Fs);try{sessionStorage.clear()}catch{}try{let x=new FormData;x.append("intent","clearCache");let c=await fetch(`${n}/action`,{method:"POST",body:x});if(!c.ok){let R=await c.json().catch(()=>null);nt.warn("[DailyReportActionProvider] Failed to clear server-side cache:",c.status,R)}}catch(x){nt.warn("[DailyReportActionProvider] Failed to clear server-side cache:",x)}B()&&(ia({forceRefresh:!0}),y(x=>x+1),Y.listeners.forEach(x=>{x(-1)}))},[n,B]),te=Me(new Map),j=Me(()=>{}),V=mt((x,c)=>{let R=te.current,b=R.get(x);if(b){b.messages.push(c);return}let S={messages:[c],unsubscribe:()=>{},timer:setTimeout(()=>{let A=R.get(x);A&&(A.unsubscribe(),R.delete(x),nt.warn(`[SSE Queue] Expired: reportHubId=${x}, dropped=${A.messages.length} messages`))},3e4)};S.unsubscribe=Ui(x,()=>{let A=R.get(x);if(A&&Ke(x,{ignoreExpiry:!0})){A.unsubscribe(),clearTimeout(A.timer),R.delete(x),nt.info(`[SSE Queue] Replaying ${A.messages.length} messages for reportHubId=${x}`);for(let O of A.messages)j.current(O)}}),R.set(x,S)},[]),ie=x=>{k.current.add(x),setTimeout(()=>{k.current.delete(x)},3e4)},re=mt(x=>!!x&&k.current.has(x),[]),ne=mt((x,c)=>{c!==void 0&&Cr({reportHubId:x,businessDate:c})},[]),he=()=>{r&&(p.current=!0,l(x=>!x))};ma(()=>{if(!r)return;let x=setTimeout(()=>{p.current||l(!0)},Di);return()=>clearTimeout(x)},[r]);let $=mt(x=>{B()&&(C.current.add(x),Pn(x),P(c=>Lr(c,x)),L.discard(x))},[B,L]);ma(()=>{if(U)for(let x of C.current)gs(x)||C.current.delete(x)},[U,w.itemsRevision]);let ve=mt(x=>{if(B()&&!re(x.clientTempId))switch(x.type){case"comment-add":{let{comment:c,reportHubId:R}=x,b=Ke(R,{ignoreExpiry:!0});if(b){if(b.postedComments.some(W=>W.id===c.id))return;let S=!1,A=d.current.get(R);if(A){for(let[W,T]of A.entries())if(T===c.content){A.delete(W),g.current.set(W,c.id),S=!0;break}}let O={...c,userName:c.userName||(S?Ft(t,a.unknownUser):a.unknownUser),createdAt:c.createdAt||new Date().toISOString(),isMine:S},z={...b,postedComments:[...b.postedComments,O].sort((W,T)=>new Date(W.createdAt||0).getTime()-new Date(T.createdAt||0).getTime())};Ot(R,z),gr(R),hr(R),y(W=>W+1)}else V(R,x);break}case"comment-delete":{let{commentId:c,reportHubId:R}=x,b=Ke(R,{ignoreExpiry:!0});if(b){let S={...b,postedComments:b.postedComments.filter(A=>A.id!==c)};Ot(R,S),gr(R),hr(R),y(A=>A+1)}else V(R,x);break}case"status-update":{let{statusType:c,value:R,reportHubId:b}=x,S=Ke(b,{ignoreExpiry:!0});if(c==="star")if(u.current.get(b)===R&&u.current.delete(b),S){let A={...S,isStarred:R};Ot(b,A),y(O=>O+1)}else V(b,x);else if(c==="read")if(f.current.get(b)===R&&f.current.delete(b),S){let A={...S,isRead:R};Ot(b,A),y(O=>O+1)}else V(b,x);break}case"report-delete":{let{reportHubId:c}=x;C.current.add(c),Pn(c),P(S=>Lr(S,c)),L.discard(c);let R=te.current.get(c);R&&(R.unsubscribe(),clearTimeout(R.timer),te.current.delete(c));let b=Ke(c,{ignoreExpiry:!0});b?.date&&(xn(c,b.date),y(S=>S+1));break}case"report-create":case"report-update":case"report-publish":{let{report:c}=x;Vi(c),(x.type==="report-create"||x.type==="report-publish")&&ne(c.reportHubId,c.date),y(R=>R+1);break}}},[re,B,ne,t,V,a.unknownUser,L]);j.current=ve,ma(()=>()=>{for(let x of te.current.values())x.unsubscribe(),clearTimeout(x.timer);te.current.clear()},[]);let Fe=la({isSseEnabled:v,onMessage:ve}),se=async(x,c,R,b,S,A)=>{A?.skipLock||gr(x),S.onOptimistic?.();let O=b.clientTempId||crypto.randomUUID();ie(O);let z=new FormData;z.append("intent",c),z.append("reportHubId",String(x)),typeof R=="string"&&z.append("businessDate",R),z.append("operationTimestamp",String(Date.now())),z.append("clientTempId",O);for(let[W,T]of Object.entries(b))W!=="clientTempId"&&z.append(W,T);try{let W=await fetch(`${n}/action`,{method:"POST",body:z,headers:{Accept:"application/json"}});if(!W.ok){let _=new Error(`Failed to ${c}`);throw Object.assign(_,{status:W.status}),_}let T=await W.json();if(T.status!=="OK"||c!=="create"&&String(T.reportHubId)!==String(x))throw new Error(`Invalid response for ${c}`);if(typeof T.clientTempId!="string"||T.clientTempId!==O)throw new Error(`Invalid clientTempId for ${c}`);if(!B())throw nt.warn(`[executeAction] ${c} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${c}`);return await S.onSuccess?.(T)}catch(W){throw nt.error(`${c} failed:`,W),B()&&(S.onFailure?.(),s.current({operation:c,message:a.operationFailed(c),cause:W})),W}finally{A?.keepLock||A?.skipLock||hr(x)}},me=async(x,c,R)=>{let b=Number(x),S=-1*Date.now(),A=se(b,"addComment",R,{content:c,clientTempId:String(S)},{onOptimistic:()=>{d.current.has(b)||d.current.set(b,new Map),d.current.get(b)?.set(S,c),y(O=>O+1)},onSuccess:O=>{if(!O.newComment)throw new Error("No new comment returned");let z=O.newComment.id;g.current.set(S,z),d.current.get(b)?.delete(S);let W=Ke(b,{ignoreExpiry:!0});return W&&!W.postedComments.some(T=>T.id===z)&&$e(b,{postedComments:[...W.postedComments,{...O.newComment,id:z,isMine:!0,userName:Ft(t,a.unknownUser)}],updatedAt:O.updatedAt}),z},onFailure:()=>{d.current.get(b)?.delete(S)}},{skipLock:!0}).finally(()=>I.current.delete(S));I.current.set(S,A),await A},Be=async(x,c,R)=>{let b=Number(x);m.current.has(b)||m.current.set(b,new Set),m.current.get(b)?.add(c),y(A=>A+1);let S=c;if(c<0){let A=g.current.get(c);if(A!==void 0)S=A;else{let O=I.current.get(c);if(!O)return;try{S=await O}catch{return}}}await se(b,"deleteComment",R,{commentId:String(S)},{onSuccess:A=>{let O=typeof A.deletedCommentId=="string"?Number(A.deletedCommentId):S,z=Ke(b,{ignoreExpiry:!0});z&&($e(b,{postedComments:z.postedComments.filter(W=>W.id!==O),updatedAt:A.updatedAt}),Bi(O)),m.current.get(b)?.delete(c)},onFailure:()=>{m.current.get(b)?.delete(c)}},{skipLock:!0})},Ue=async(x,c,R)=>{let b=Number(x);await se(b,"toggleStar",R,{isStarred:String(c)},{onOptimistic:()=>{$e(b,{isStarred:c}),u.current.set(b,c),y(S=>S+1)},onSuccess:S=>{S.updatedStatus&&typeof S.updatedStatus.isStarred=="boolean"&&Ke(b,{ignoreExpiry:!0})&&($e(b,{isStarred:S.updatedStatus.isStarred,updatedAt:S.updatedAt}),y(O=>O+1)),u.current.delete(b)},onFailure:()=>{$e(b,{isStarred:!c}),u.current.delete(b)}},{skipLock:!0})},Qe=async(x,c,R)=>{let b=Number(x);await se(b,"toggleRead",R,{isRead:String(c)},{onOptimistic:()=>{$e(b,{isRead:c}),f.current.set(b,c),y(S=>S+1)},onSuccess:S=>{S.updatedStatus&&typeof S.updatedStatus.isRead=="boolean"&&Ke(b,{ignoreExpiry:!0})&&($e(b,{isRead:S.updatedStatus.isRead,updatedAt:S.updatedAt}),y(O=>O+1)),f.current.delete(b)},onFailure:()=>{$e(b,{isRead:!c}),f.current.delete(b)}},{skipLock:!0})},et=Me(Qe);et.current=Qe;let lt=mt((x,c,R)=>et.current(x,c,R),[]),Ge=async x=>{let c=-1*Date.now(),R=new Date().toISOString(),b={reportHubId:c,date:x,createdAt:R,author:Ft(t,a.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:Ft(t,a.unknownUser),updatedBy:Ft(t,a.unknownUser),updatedAt:R,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:o,color:"#9ca3af"}],postedComments:[],attachments:[]};Fi(b,Date.now()+3e5,!1),P(S=>Wn(S,{reportHubId:c,businessDate:x},Number.NEGATIVE_INFINITY));try{let S=await se(0,"create",x,{clientTempId:String(c)},{onSuccess:z=>z});if(S.clientTempId&&S.clientTempId!==String(c))throw nt.warn(`[createReport] ID mismatch. req=${c}, res=${S.clientTempId}`),new Error("Optimistic ID mismatch");let A=Number(S.reportHubId),O=aa();return Cr({reportHubId:A,businessDate:x}),gr(A),S.report&&(Ot(A,S.report),y(z=>z+1)),P(z=>Wn(Lr(z,c),{reportHubId:A,businessDate:x},O)),setTimeout(()=>hr(A),1e3),A}catch(S){throw nt.error("[createReport] Failed or mismatched",S),P(A=>Lr(A,c)),S}},Ve=async(x,c,R)=>{let b=Number(x);await se(b,"update",R,{...c.title&&{title:c.title},...c.content&&{content:c.content}},{onSuccess:()=>{let S=Ke(b,{ignoreExpiry:!0});S&&($e(b,{subject:c.title??S.subject,content:c.content??S.content}),y(A=>A+1))}})},je=async(x,c)=>{let R=Number(x),b=Ke(R,{ignoreExpiry:!0}),S=b?.labels||[];await se(R,"publish",c,{},{onOptimistic:()=>{if(b){let A=b.labels.filter(O=>O.name!==o);$e(R,{labels:A}),y(O=>O+1)}},onSuccess:A=>{A.report&&(Ot(R,A.report),y(O=>O+1)),c!==void 0&&Cr({reportHubId:R,businessDate:c})},onFailure:()=>{$e(R,{labels:S}),y(A=>A+1)}},{skipLock:!0})},yt=async(x,c)=>{let R=Number(x),b=Z.find(S=>S.reportHubId===R);C.current.add(R),Pn(R),P(S=>Hs(S,R));try{await se(R,"delete",c,{},{onSuccess:S=>{xn(R,c),L.discard(R)}})}catch(S){if(S.status===404){xn(R,c),L.discard(R);return}if(!B())return;C.current.delete(R);let O=b===void 0?c:b.businessDate,z=aa();O!==void 0&&Cr({reportHubId:R,businessDate:O}),b&&P(W=>Wn(W,b,z))}};return Bs(da.Provider,{value:L,children:Bs(pa.Provider,{value:{user:t,pendingAddCommentIds:d,pendingDeleteCommentIds:m,pendingStarUpdates:u,pendingReadUpdates:f,resolvedIdMap:g,version:E,items:Z,isSseEnabled:v,toggleSse:he,sseStatus:Fe,addComment:me,deleteComment:Be,toggleStar:Ue,toggleRead:lt,createReport:Ge,updateReport:Ve,publishReport:je,deleteReport:yt,removeStaleItem:$,refetchData:Q,clearCacheAndRefetch:K},children:e})})};import{useCallback as Ws,useMemo as fm,useRef as bm,useState as ym}from"react";var Us=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw xe("mergeComments: unknownAuthorName","a non-blank string",n);let o=e.map((i,s)=>({id:`legacy-${s}`,authorName:i.name||n,content:i.text||"",isMine:!1,color:i.color||void 0,isLegacy:!0})),a=t.map(i=>({id:i.id,authorName:i.userName||n,content:i.content??"",createdAt:i.createdAt??"",isMine:r?i.userId===r:i.isMine,isLegacy:!1}));return[...o,...a]},Vs=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 Dr=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:d}=De(),{labels:m}=H(),u=m.unknownUser,[f,g]=ym(null),E=Ws(l=>e&&d(e.reportHubId,l,e.date),[e,d]),y=Ws(l=>e&&t?s(e.reportHubId,l,e.date):Promise.resolve(),[e,t,s]),L=bm([]);return{uiComments:fm(()=>{if(!e)return[];let l=Us(e.externalComments,e.postedComments,r,u),p=o.current.get(e.reportHubId);p?.size&&(l=l.filter(C=>!p.has(C.id)));let I=n.current.get(e.reportHubId);if(I?.size&&t){let C=new Set(l.map(w=>w.id)),k=Ft(t,u);for(let[w,U]of I){if(p?.has(w)||C.has(w))continue;let N=a.current.get(w);N&&C.has(N)||l.some(P=>P.isMine&&P.content===U&&typeof P.id=="number"&&P.id>0)||l.push({id:w,authorName:k,content:U,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(l)===JSON.stringify(L.current)?L.current:(L.current=l,l)},[e,t,r,u,o,n,a,i]),handleAddComment:y,handleDeleteComment:E,pendingDeleteId:f,setPendingDeleteId:g,resolvedIdMap:a.current}};import{jsx as gm}from"react/jsx-runtime";var Rm={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},Et=Object.freeze({2:3,3:4,4:5,5:6}),ke=({level:e,...t})=>{let r=Rm[e];return gm(r,{...t})};import{memo as yl,useId as cp,useMemo as up,useRef as mp}from"react";var Ks=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var ya="tile",_r=Ks[ya],hm=2,Ar=16,$s=5,zs=_r.maxWidth/hm,Sm=$s*(zs+Ar)-Ar,Gs=e=>{let t=Math.min($s,1+Math.floor((e+Ar)/(zs+Ar)));return Math.floor((Math.min(e,Sm)-(t-1)*Ar)/t)},ba=`round(nearest, 100cqi * ${_r.maxHeight} / ${_r.maxWidth}, 1px)`,js=Object.freeze({aspectRatio:`${_r.maxWidth} / ${_r.maxHeight}`,height:ba,contain:"strict"}),Ys=Object.freeze({marginBlockEnd:`calc(round(up, ${ba}, ${4}px) - ${ba})`});var vm="download",Em="thumbnail",Tm="1",Xt=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[vm]:Tm})}`;case"thumbnail":return`${n}?${new URLSearchParams({[Em]:r.variant})}`}};import{createContext as xm,useContext as Im}from"react";var wr=xm(null),Zt=()=>Im(wr)===!1?-1:void 0,qs=(e,t)=>{let{before:r,after:n}=Ln(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as _m,useContext as wm,useLayoutEffect as Nm,useMemo as Om,useState as Mm}from"react";import{flushSync as km}from"react-dom";import{flushSync as Cm}from"react-dom";var Ra=new WeakMap,Xs=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,Lm=e=>{e.frame=null;let t=[...e.observations.values()].filter(Xs);t.length!==0&&Cm(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Dm=(e,t)=>{for(let r of t){let n=e.observations.get(r.target);if(n===void 0)continue;let o=r.contentBoxSize[0].inlineSize;o!==0&&(n.observedTrackWidth=Gs(o))}e.frame!==null||![...e.observations.values()].some(Xs)||(e.frame=e.view.requestAnimationFrame(()=>Lm(e)))},Am=e=>{let t=Ra.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] An attachment tile grid must belong to a document with a window to be measured");let n={view:r,observer:new r.ResizeObserver(o=>Dm(n,o)),observations:new Map,frame:null};return Ra.set(e,n),n},Zs=(e,t)=>{let r=e.ownerDocument,n=Am(r);if(n.observations.has(e))throw new Error("[daily-report] An attachment tile grid is already observed");let o={onTrackWidth:t,observedTrackWidth:null,handedTrackWidth:null};return n.observations.set(e,o),n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),!(n.observations.size>0)&&(n.frame!==null&&n.view.cancelAnimationFrame(n.frame),n.observer.disconnect(),Ra.delete(r)))}};import{jsx as Or,jsxs as el}from"react/jsx-runtime";var Nr="\u2026",Pm=Nr.codePointAt(0),$n="data-attachment-file-name",Hm=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,Fm=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,tl=_m(null),rl=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},Js=(e,t,r,n)=>{let o=Array.from(e),a=0,i=o.length-1;for(;a<i;){let s=Math.ceil((a+i)/2);n(o.slice(0,s).join("")+t)<=r?a=s:i=s-1}return o.slice(0,a).join("")},Bm=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=rl(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${Js(o,Nr,a,r)}${Nr}`;return r(n+i)<=t?n+i:`${Js(n,Nr+i,t,r)}${Nr}${i}`},Qs=new WeakMap,nl=e=>{let t=Qs.get(e);if(t!==void 0)return t;let r=e.createElement("canvas").getContext("2d");if(r===null)throw new Error("[daily-report] Attachment file names are fitted with a canvas 2D context, which this document cannot create");let n={context:r,font:"",measures:new Map};return Qs.set(e,n),n},Um=(e,t)=>{let r=e.measures.get(t);if(r!==void 0)return r;let n=o=>(e.font!==t&&(e.context.font=t,e.font=t),e.context.measureText(o).width);return e.measures.set(t,n),n},ol=e=>{let t=new Set;for(let r of e.matchAll(Hm)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},Vm=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:ol(t.fontFamily),measure:Um(nl(e.ownerDocument),r)}},Wm=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,Km=e=>{let t=new Set([Pm]);for(let r of e.querySelectorAll(`[${$n}]`)){let n=r.getAttribute($n);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},$m=(e,t)=>{for(let r of e.split(",")){let n=Fm.exec(r.trim());if(n===null)return!0;let[,o,a]=n,i=Number.parseInt(o.replaceAll("?","0"),16),s=a===void 0?Number.parseInt(o.replaceAll("?","F"),16):Number.parseInt(a,16);for(let d of t)if(d>=i&&d<=s)return!0}return!1},ga=new WeakMap,al=e=>{let t=ga.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return ga.set(e,r),r},il=(e,t)=>{let r=Vm(e.container.querySelector(`[${$n}]`));e.fitted={trackWidth:t,nameFont:r};let n=al(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=Gm(n)),e.applyFit({width:t,measure:r.measure})},zm=(e,t)=>{let r=t.map(o=>({families:ol(o.family),unicodeRange:o.unicodeRange})),n=[];for(let o of e.registrations){let{fitted:a}=o;if(a===null)continue;let i=r.filter(d=>Array.from(d.families).some(m=>a.nameFont.families.has(m)));if(i.length===0)continue;let s=Km(o.container);i.some(d=>$m(d.unicodeRange,s))&&(nl(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&km(()=>{for(let[o,a]of n)il(o,a)})},Gm=e=>{let t=e.document.fonts,r=n=>{zm(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},jm=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=Zs(e,a=>il(r,a)),o=al(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),ga.delete(o.document))}},sl=({containerRef:e,children:t})=>{let[r,n]=Mm(null);return Nm(()=>{let o=e.current;return jm(o,i=>{n(s=>Wm(s,i)?s:i)})},[e]),Or(tl,{value:r,children:t})},Mr=({fileName:e,className:t,testId:r})=>{let n=wm(tl),o=Om(()=>n===null?null:Bm(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=rl(e);return el("span",{className:h("block min-w-0",t),title:e,"data-testid":r,[$n]:e,children:[o===null?el("span",{"aria-hidden":"true",className:"flex min-w-0",children:[Or("span",{className:"truncate",children:a}),i!==""&&Or("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):Or("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),Or("span",{className:"sr-only",children:e})]})};import Jm from"lucide-react/dist/esm/icons/image-off.js";import{memo as Qm,useCallback as va,useEffect as ep,useLayoutEffect as tp,useRef as Ea,useState as rp}from"react";var zn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),ll=zn.queueWaitMs+zn.readMs+zn.renderMs+zn.transferMarginMs;var Ym=Object.freeze({kind:"loaded"}),dl=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",d=null,m=null,u=null,f=null,g=null,E=K=>(K!==null&&n.clearTimeout(K),null),y=()=>{f?.(),f=null},L=()=>{g?.(),g=null},v=K=>K===null||K.kind==="loaded"?0:K.kind==="failing"?K.failedAttempts:i.maxAttempts,l=K=>{s="cooling",u=n.setTimeout(P,K)},p=()=>{o.abortInFlight(),L();let K=v(r.get(t))+1;if(K>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:K,retryAt:n.now()+i.retryDelayMs}),o.reset(),l(i.retryDelayMs)},I=K=>{if(s==="loading"){if(m=E(m),!K){p();return}s="done",r.set(t,Ym),L()}},C=()=>{m=null,I(!1)},k=()=>{s="loading",o.showActivity(!0),y(),m=n.setTimeout(C,i.loadTimeoutMs),o.grant()},w=()=>{d=null,s="queued",g=a.request(k)},U=()=>{d===null&&(d=n.setTimeout(w,i.settleMs))},N=K=>{if(o.showActivity(K),K){s==="watching"&&U();return}if(s==="queued"){L(),s="watching";return}d=E(d)},P=()=>{u=null,s="watching",o.showActivity(!1),f=n.observe(e,N)},Z=()=>{let K=s==="loading";s="done",y(),d=E(d),m=E(m),u=E(u),o.showActivity(!1),K&&(o.abortInFlight(),g!==null&&o.reset()),L()},B=r.get(t);if(B?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:I,dispose:Z};if(B?.kind==="exhausted"){if(n.now()-B.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:I,dispose:Z};r.delete(t)}o.reset();let Q=B?.kind==="failing"?B.retryAt-n.now():0;return Q>0?l(Q):P(),{settle:I,dispose:Z}};var qm=e=>{if(!Number.isInteger(e)||e<=0)throw xe("createLoadSlotLimiter: limit","an integer >= 1",e);let t=0,r=new Set,n=()=>{for(let o of r){r.delete(o),o.onGranted();return}t-=1};return{request:o=>{let a={onGranted:o},i=!1;return t<e?(t+=1,o()):r.add(a),()=>{i||(i=!0,!r.delete(a)&&n())}}}},cl=qm(2);var Xm=e=>{if(!Number.isInteger(e)||e<=0)throw xe("createThumbnailProgressStore: maxUrls","an integer >= 1",e);let t=new Map,r=(n,o)=>{t.delete(n),t.set(n,o)};return{peek:n=>t.get(n)??null,get:n=>{let o=t.get(n);return o===void 0?null:(r(n,o),o)},set:(n,o)=>{if(r(n,o),t.size<=e)return;let[a]=t.keys();t.delete(a)},delete:n=>{t.delete(n)}}},ha=Xm(1024);var Sa=new WeakMap,Zm=e=>{let t=Sa.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] A thumbnail frame must belong to a document with a window to be observed");let n=new WeakMap,a={observer:new r.IntersectionObserver(i=>{for(let s of i)n.get(s.target)?.onChange(s.isIntersecting)}),observations:n,observed:0};return Sa.set(e,a),a},ul=(e,t)=>{let r=e.ownerDocument,n=Zm(r);if(n.observations.has(e))throw new Error("[daily-report] A thumbnail frame is already observed");let o={onChange:t};return n.observations.set(e,o),n.observed+=1,n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),n.observed-=1,!(n.observed>0)&&(n.observer.disconnect(),Sa.delete(r)))}};import{jsx as kr,jsxs as dp}from"react/jsx-runtime";var np={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},op="data-thumbnail-active",ap="data-daily-report-attachment-preview",pl={[ap]:""},ip=Object.freeze({settleMs:250,loadTimeoutMs:ll,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),ml=e=>{let t=ha.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},sp=()=>({limiter:cl,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:ul,tuning:ip}),lp=(e,t,r,n)=>({grant:()=>r(o=>o.url!==e||o.status==="granted"||o.status==="loaded"?o:{url:e,status:"granted"}),reset:()=>r(o=>o.url!==e||o.status==="idle"?o:{url:e,status:"idle"}),exhausted:()=>r(o=>o.url!==e||o.status==="failed"?o:{url:e,status:"failed"}),abortInFlight:()=>{let o=n.current;o?.getAttribute("src")===e&&o.removeAttribute("src")},shows:()=>{let o=n.current;return o?.getAttribute("src")===e&&o.complete&&o.naturalWidth>0},showActivity:o=>{t.toggleAttribute(op,o)}}),fl=Qm(({thumbnailUrl:e,unavailableLabel:t})=>{let r=Ea(null),n=Ea(null),o=Ea(null),[a,i]=rp(()=>ml(e));a.url!==e&&i(ml(e)),tp(()=>{if(a.status==="failed")return;let u=n.current,f=a.status==="idle"?null:a.url;u.getAttribute("src")!==f&&(f===null?u.removeAttribute("src"):u.setAttribute("src",f))},[a]),ep(()=>{let u=r.current,f=dl(u,e,ha,sp(),lp(e,u,i,n));return o.current=f,()=>{o.current=null,f.dispose()}},[e]);let s=va(u=>{u!==null&&(n.current=u)},[]),d=va(()=>{i(u=>u.status==="granted"?{url:u.url,status:"loaded"}:u),o.current?.settle(!0)},[]),m=va(()=>{o.current?.settle(!1)},[]);return kr("span",{className:"block",children:kr("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":np[a.status],style:js,className:"relative block w-full",children:kr("span",{"data-testid":"daily-report-attachment-thumbnail-skin",className:"absolute inset-0 flex items-center justify-center overflow-hidden rounded-lg bg-slate-100 after:pointer-events-none after:absolute after:inset-0 after:rounded-[inherit] after:ring-1 after:ring-slate-900/10 after:ring-inset dark:bg-slate-800 dark:after:ring-white/10 [[data-daily-report-attachment-preview]:active_&]:after:ring-blue-500 dark:[[data-daily-report-attachment-preview]:active_&]:after:ring-blue-400 motion-safe:[[data-thumbnail-state=pending][data-thumbnail-active]_&]:animate-pulse [[data-thumbnail-state=pending]_&]:bg-slate-200 dark:[[data-thumbnail-state=pending]_&]:bg-slate-700 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-300 dark:[@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-400/60",children:a.status==="failed"?dp("span",{className:`flex size-full flex-col items-center justify-center gap-1 px-2 text-center text-slate-600 text-xs dark:text-slate-400 ${un}`,"data-testid":"daily-report-attachment-thumbnail-unavailable",children:[kr(Jm,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):kr("img",{ref:s,alt:"",decoding:"async",fetchPriority:"low",draggable:!1,onLoad:d,onError:m,className:"max-h-full max-w-full opacity-0 motion-safe:transition-opacity motion-safe:duration-200 motion-safe:ease-out [[data-thumbnail-state=loaded]_&]:opacity-100","data-testid":"daily-report-attachment-thumbnail"})})})})});import{jsx as ye,jsxs as ot}from"react/jsx-runtime";var bl=1024,Ta=["B","KB","MB","GB"],Rl="text-slate-500 text-sm line-through dark:text-slate-400",pp=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=bl&&r<Ta.length-1;)t/=bl,r+=1;return r===0?`${t} ${Ta[r]}`:`${t.toFixed(1)} ${Ta[r]}`},gl=({attachment:e,labels:t,className:r})=>ot("span",{className:r,children:[pp(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),xa=({href:e,children:t,...r})=>{let n=Zt();return ye("a",{href:e,...r,tabIndex:n,children:t})},hl=({downloadUrl:e,label:t,fileName:r})=>ot(xa,{href:e,className:h("relative ml-auto shrink-0 rounded-sm text-slate-500 text-xs underline decoration-slate-300 underline-offset-2 after:absolute after:-inset-x-2 after:-inset-y-1 hover:text-slate-700 hover:decoration-current dark:text-slate-400 dark:decoration-slate-600 dark:hover:text-slate-200",J),"data-testid":"daily-report-attachment-download",children:[t," ",ye("span",{className:"sr-only",children:r})]}),fp=yl(({attachment:e,apiBasePath:t,labels:r})=>{let n=ye(fl,{thumbnailUrl:Xt(t,e.id,{kind:"thumbnail",variant:ya}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return ot("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?ot("div",{className:"flex min-w-0 flex-col gap-2",children:[n,ye(Mr,{fileName:e.fileName,className:Rl,testId:"daily-report-attachment-name"})]}):ot(xa,{href:Xt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 flex-col gap-2 rounded-lg",J),"data-testid":"daily-report-attachment-link",...pl,children:[n,ye(Mr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),ot("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:Ys,children:[ye(gl,{attachment:e,labels:r,className:"truncate"}),!o&&ye(hl,{downloadUrl:Xt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),bp=yl(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return ot("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 p-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[ot("div",{className:"flex min-w-0 flex-col",children:[n?ye(Mr,{fileName:e.fileName,className:Rl,testId:"daily-report-attachment-name"}):ye(xa,{href:Xt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 rounded-sm",J),"data-testid":"daily-report-attachment-link",children:ye(Mr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),ye(gl,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&ye(hl,{downloadUrl:Xt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),yp=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=mp(null);return ye(sl,{containerRef:o,children:ye("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:ye("ul",{"aria-labelledby":t,className:"grid @min-[1008px]:w-[calc(round(down,100%-64px,5px)+64px)] @min-[240px]:w-[calc(round(down,100%-16px,2px)+16px)] @min-[496px]:w-[calc(round(down,100%-32px,3px)+32px)] @min-[752px]:w-[calc(round(down,100%-48px,4px)+48px)] w-[round(down,100%,1px)] max-w-[1264px] @min-[1008px]:grid-cols-5 @min-[240px]:grid-cols-2 @min-[496px]:grid-cols-3 @min-[752px]:grid-cols-4 grid-cols-1 gap-[16px]","data-testid":"daily-report-attachment-grid",children:e.map(a=>ye(fp,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},Gn=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=H(),o=cp(),{tileAttachments:a,rowAttachments:i}=up(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:ot("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[ye(ke,{level:Et[n],id:o,className:h("m-0",_t),children:r.attachments}),ot("div",{className:"flex flex-col gap-4",children:[a.length>0&&ye(yp,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&ye("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>ye(bp,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as wp}from"@aiquants/swipe-overlay";import{useCallback as La,useEffect as vl,useId as Np,useRef as Da,useState as Op}from"react";var Pr=e=>e.isComposing||e.keyCode===229,jn=e=>({key:e.key,keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,defaultPrevented:e.defaultPrevented,isComposing:e.nativeEvent.isComposing,target:e.target});var Rp={kind:"hold"},gp=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),hp=(e,t)=>{let r=e.getAttribute("role");return r!==null&&gp.has(r)&&e!==t&&e.contains(t)},Hr=e=>e.key==="Escape"&&!e.defaultPrevented&&!Pr(e),Sl=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||Pr(e))return null;let r=e.target;if(!(ge(r)&&t.contains(r)))return null;let n=Yi(t);if(n.length===0)return Rp;let{before:o,within:a,after:i}=Ln(t,r);return e.shiftKey?o.some(s=>!hp(s,r))?null:{kind:"wrap",element:n[n.length-1]}:a.length>0||i.length>0?null:{kind:"wrap",element:n[0]}};import{Fragment as Sp,jsx as vp}from"react/jsx-runtime";var Ee=({render:e})=>{let t=Zt();return vp(Sp,{children:e(t)})};import Ep from"@heroicons/react/24/outline/TrashIcon.js";import{memo as Tp,useId as xp,useRef as Ip,useState as Cp}from"react";import{jsx as Tt,jsxs as Yn}from"react/jsx-runtime";var Ia="data-comment-id",qn="data-comment-delete-button",Xn="data-comment-delete-slot",Lp=h(Ae,ni),Dp="relative flex h-5 items-center",Ap=h(Le,"motion-safe:fade-in motion-safe:zoom-in-95 absolute top-full right-0 z-20 mt-1 whitespace-nowrap bg-red-600 font-bold text-white text-xs shadow-lg hover:bg-red-700 active:bg-red-800 motion-safe:animate-in motion-safe:duration-200",J),_p=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,Ca=Tp(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:d})=>{let[m,u]=Cp(!1),{labels:f}=H(),g=xp(),E=Ip(null),y=_p(e.id,o,d),L=()=>{let l=E.current;l!==null&&s(l),a(null),u(!0),typeof e.id=="number"&&n?.(e.id)},v=l=>{if(!y)return;let p=l.relatedTarget;ge(p)&&l.currentTarget.contains(p)||a(null)};return Yn("li",{[Ia]:e.id,"data-deleted":m?"true":void 0,className:h("relative rounded-xl border border-slate-200 border-solid bg-white p-[11px] 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",m&&"hidden",y?"z-50":"z-0 hover:z-10"),children:[Yn("div",{className:"mb-1 flex items-center justify-between",children:[Tt("div",{className:h("font-semibold text-xs",Vs(e.color)),children:ce(e.authorName)}),Yn("div",{className:"flex items-center gap-2",children:[e.createdAt&&Tt("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:de(e.createdAt)}),e.isMine&&!e.isLegacy&&Yn("div",{[Xn]:e.id,className:Dp,onBlur:v,children:[Tt(Ee,{render:l=>Tt("button",{ref:E,type:"button",tabIndex:l,className:Lp,title:f.commentDelete,"aria-label":f.commentDelete,"aria-expanded":y,"aria-controls":y?g:void 0,[qn]:e.id,onClick:()=>i(e.id,y),children:Tt(Ep,{"aria-hidden":"true",className:y?Se.deletePending:Se.delete})})}),y&&Tt(Ee,{render:l=>Tt("button",{id:g,type:"button",tabIndex:l,"data-delete-confirmation":!0,className:Ap,onClick:L,children:f.commentDeleteConfirm})})]})]})]}),Tt("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});Ca.displayName="DailyReportPostedComment";import{jsx as Ze,jsxs as xl}from"react/jsx-runtime";var Mp="data-daily-report-comment-section",kp="data-daily-report-comment-heading",Pp=h(dt,J),Tl=(e,t)=>e>0||t,Hp=h("h-9 min-w-0 flex-1 rounded-lg border border-slate-300 border-solid bg-slate-50 px-[7px] text-sm focus:bg-white dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:focus:bg-slate-900",J),Fp=h("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",J),El=e=>e.querySelector(`[${qn}][aria-expanded="true"]`),Bp=(e,t,r)=>{let n=[...e.querySelectorAll(`[${qn}]`)].filter(s=>s===t||s.closest("[data-deleted]")===null),o=n.indexOf(t),a=n.at(o+1);if(a!==void 0)return{kind:"trash",button:a};if(o>0)return{kind:"trash",button:n[o-1]};let i=[...e.querySelectorAll(`[${Ia}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return Tl(i,r)?{kind:"heading"}:{kind:"report"}},Up=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:d,onSectionRemoved:m})=>{let u=Da(null),f=wp(),g=Np(),E=o!==null,y=La(()=>{let l=u.current,p=l===null?null:El(l),I=p===null?null:p.closest(`[${Xn}]`),C=l===null?null:_e(l);a(null),p!==null&&I!==null&&C!==null&&I.contains(C)&&p.focus({preventScroll:!0})},[a]);vl(()=>{if(E)return f({id:g,onEscape:l=>Hr(l)?(y(),!0):!1})},[E,f,g,y]),vl(()=>{let l=u.current;if(!E||l===null)return;let p=l.ownerDocument,I=C=>{let k=El(l)?.closest(`[${Xn}]`);k!=null&&ge(C.target)&&k.contains(C.target)||a(null)};return p.addEventListener("pointerdown",I,!0),()=>p.removeEventListener("pointerdown",I,!0)},[E,a]);let L=La((l,p)=>{p?y():a(l)},[y,a]),v=La(l=>{let p=u.current;if(p===null)return;let I=Bp(p,l,s);if(I.kind==="report"){m();return}let C=I.kind==="trash"?I.button:d.current;if(C===null)throw new Error("[daily-report] the comment section's heading is not attached");C.focus({preventScroll:!0})},[s,d,m]);return e.length===0?null:Ze("ul",{ref:u,className:"space-y-2",children:e.map(l=>Ze(Ca,{comment:l,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:L,onBeforeHide:v,resolvedIdMap:i},l.id))})},Zn=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=H(),a=Da(null);return Tl(r.comments.length,r.canComment)?xl("div",{[Mp]:"",className:h("flex flex-col gap-2",e),children:[Ze(ke,{ref:a,level:Et[o],tabIndex:-1,[kp]:"",className:Pp,children:n.comments}),Ze(Up,{...r,headingRef:a}),t]}):null},Jn=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=Op(!1),a=Da(null),{labels:i}=H();return xl("form",{className:"flex gap-2",ref:a,onSubmit:async d=>{d.preventDefault();let u=new FormData(d.currentTarget).get("content")?.trim();if(u&&r){o(!0),a.current?.reset();try{await r(u)}catch{if(a.current){let f=a.current.elements.namedItem("content");f&&(f.value=u)}}finally{o(!1)}}},children:[Ze("input",{type:"hidden",name:"intent",value:"addComment"}),Ze("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&Ze("input",{type:"hidden",name:"businessDate",value:t}),Ze(Ee,{render:d=>Ze("input",{type:"text",name:"content",tabIndex:d,placeholder:i.commentPlaceholder,className:Hp,autoComplete:"off"})}),Ze(Ee,{render:d=>Ze("button",{type:"submit",tabIndex:d,className:Fp,disabled:n,children:i.commentSend})})]})};import{useState as Yp}from"react";import{Slot as Vp}from"@radix-ui/react-slot";import{cva as Wp}from"class-variance-authority";import*as Il from"react";import{jsx as $p}from"react/jsx-runtime";var Kp=Wp(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 ${J}`,{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-solid 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-2",lg:"h-11 rounded-md px-4",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),pt=Il.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>$p(n?Vp:"button",{className:h(Kp({variant:t,size:r,className:e})),ref:a,...o}));pt.displayName="Button";import{jsx as zp}from"react/jsx-runtime";function Cl({className:e,type:t,...r}){return zp("input",{type:t,"data-slot":"input",className:h(`flex h-9 w-full min-w-0 rounded-md border border-input border-solid bg-transparent px-[7px] py-[3px] text-base shadow-xs 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 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...r})}import*as Ll from"@radix-ui/react-label";import{jsx as Gp}from"react/jsx-runtime";function Fr({className:e,...t}){return Gp(Ll.Root,{"data-slot":"label",className:h("flex select-none items-center gap-2 font-medium text-sm leading-none [:where(.group)[data-disabled=true]_&]:pointer-events-none [:where(.group)[data-disabled=true]_&]:opacity-50 [:where(.peer):disabled~&]:cursor-not-allowed [:where(.peer):disabled~&]:opacity-50",e),...t})}import{jsx as jp}from"react/jsx-runtime";function Dl({className:e,...t}){return jp("textarea",{"data-slot":"textarea",className:h(`flex min-h-15 w-full rounded-md border border-input border-solid bg-transparent p-[7px] text-base shadow-xs placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...t})}import{jsx as ze,jsxs as Qn}from"react/jsx-runtime";var Jt=e=>({title:e.subject??"",content:e.content??""}),qp=e=>{e.preventDefault()},eo=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=De(),{labels:i}=H(),s=vt(),{title:d,content:m}=Is(e.reportHubId),[u,f]=Yp(!1),g=async()=>{f(!0);try{await o(e.reportHubId,{title:d,content:m},e.date)}catch{}finally{f(!1)}},E=async()=>{f(!0);try{await o(e.reportHubId,{title:d,content:m},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{f(!1)}},y=`report-title-${e.reportHubId}`,L=`report-content-${e.reportHubId}`;return Qn("form",{className:"space-y-4 p-1",onSubmit:qp,children:[Qn("div",{className:"space-y-2",children:[ze(Fr,{htmlFor:y,children:i.formTitle}),ze(Ee,{render:v=>ze(Cl,{ref:n,id:y,value:d,onChange:l=>s.setInput(e.reportHubId,{title:l.target.value}),placeholder:i.formTitlePlaceholder,disabled:u,tabIndex:v})})]}),Qn("div",{className:"space-y-2",children:[ze(Fr,{htmlFor:L,children:i.formContent}),ze(Ee,{render:v=>ze(Dl,{id:L,value:m,onChange:l=>s.setInput(e.reportHubId,{content:l.target.value}),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:u,tabIndex:v})})]}),Qn("div",{className:"flex justify-end gap-2",children:[t&&ze(Ee,{render:v=>ze(pt,{type:"button",variant:"outline",onClick:t,disabled:u,tabIndex:v,children:i.formCancel})}),ze(Ee,{render:v=>ze(pt,{type:"button",variant:"secondary",onClick:g,disabled:u,tabIndex:v,children:i.formSave})}),ze(Ee,{render:v=>ze(pt,{type:"button",onClick:E,disabled:u,tabIndex:v,children:i.formPublish})})]})]})};import af from"lucide-react/dist/esm/icons/check.js";import sf from"lucide-react/dist/esm/icons/pencil.js";import lf from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as Al}from"react/jsx-runtime";var ro=24,_l=2,Xp=20,to=5,Zp=3,Jp=()=>{let e=Math.cos(2*Math.PI/to)/Math.cos(Math.PI/to),t=Array.from({length:2*to},(g,E)=>{let y=-Math.PI/2+E*Math.PI/to,L=E%2===0?1:e;return{x:L*Math.cos(y),y:L*Math.sin(y)}}),r=t.map(g=>g.x),n=t.map(g=>g.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],d=(Xp-_l)/(a-o),m=ro/2-d*(o+a)/2,u=ro/2-d*(i+s)/2,f=g=>String(Number(g.toFixed(Zp)));return t.map(g=>`${f(m+d*g.x)},${f(u+d*g.y)}`).join(" ")},Qp=Jp(),Qt=({filled:e})=>Al("svg",{viewBox:`0 0 ${ro} ${ro}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:_l,strokeLinejoin:"round",className:e?Se.starOn:Se.starOff,children:Al("polygon",{points:Qp})});import{Fragment as ef,jsx as no,jsxs as tf}from"react/jsx-runtime";var er=({config:e,id:t,className:r})=>no("span",{id:t,className:h(ii,e.badgeClassName,r),children:e.name===void 0?e.label:tf(ef,{children:[no("span",{"aria-hidden":"true",children:no("abbr",{title:e.name,children:e.label})}),no("span",{className:"sr-only",children:e.name})]})});import{jsx as wl}from"react/jsx-runtime";var oo=24,rf=6,tr=({className:e})=>wl("svg",{viewBox:`0 0 ${oo} ${oo}`,"aria-hidden":"true",className:h(Se.read,e),children:wl("circle",{cx:oo/2,cy:oo/2,r:rf,fill:"currentColor"})});import{jsx as of}from"react/jsx-runtime";var nf=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,Bt=({text:e})=>nf.test(e)?of("time",{dateTime:e,children:e}):e;import{jsx as Pe,jsxs as Ol}from"react/jsx-runtime";var ue=({label:e,classNames:t,valueId:r,children:n})=>Ol("div",{className:t.field,children:[Pe("dt",{className:t.label,children:e}),Pe("dd",{id:r,className:h("m-0",t.value),children:n})]}),xt={field:"flex flex-col gap-1",label:"font-semibold text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:"text-slate-700 text-sm dark:text-slate-200"},Nl=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return Ol("dl",{className:"m-0 flex flex-col gap-2 rounded-xl bg-slate-100 p-3 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[Pe(ue,{label:r.author,classNames:xt,children:ce(e.author)}),Pe(ue,{label:r.createdAt,classNames:xt,children:Pe(Bt,{text:de(e.createdAt)})}),Pe(ue,{label:r.updatedBy,classNames:xt,children:ce(e.updatedBy)}),Pe(ue,{label:r.updatedAt,classNames:xt,children:Pe(Bt,{text:de(e.updatedAt)})}),Pe(ue,{label:r.businessDate,classNames:xt,children:Pe(Bt,{text:de(e.date)})}),t!==null&&Pe(ue,{label:r.visitTime,classNames:xt,children:t}),n&&Pe(ue,{label:r.category,classNames:xt,children:n}),o&&Pe(ue,{label:r.creationCategory,classNames:xt,children:o})]})};import{jsx as le,jsxs as kl}from"react/jsx-runtime";var ao={field:h(Le,"gap-1 whitespace-nowrap bg-slate-100 text-slate-800 dark:bg-slate-800 dark:text-slate-100"),label:"text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:""},df={field:h(Le,"gap-1 whitespace-nowrap bg-blue-50 font-semibold text-blue-800 text-xs dark:bg-blue-500/15 dark:text-blue-200"),label:"text-blue-700 text-xs uppercase tracking-wide dark:text-blue-300",value:""},Ml={field:h(Le,"gap-1 whitespace-nowrap bg-amber-100 text-amber-900 dark:bg-amber-500/15 dark:text-amber-200"),label:"text-amber-800 text-xs uppercase tracking-wide dark:text-amber-300",value:""},Pl=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:d,sourceConfig:m,visitTimeDisplay:u,markerIds:f,labels:g})=>{let E=r?g.starRemove:g.starAdd,y=t?g.markUnread:g.markRead,L=e.category?.trim(),v=e.creationCategory?.trim();return kl("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[le(fr,{id:f.attachments,count:e.attachments.length,label:g.attachments}),m?le(er,{id:f.source,config:m}):null,le(Ee,{render:l=>le("button",{type:"button",onClick:a,tabIndex:l,className:Ae,title:E,"aria-label":E,"data-detail-star-button":e.reportHubId,children:le(Qt,{filled:r})})}),le(Ee,{render:l=>le("button",{type:"button",onClick:o,tabIndex:l,className:Ae,title:y,"aria-label":y,"data-detail-read-button":e.reportHubId,children:t?le(af,{className:Se.read}):le(tr,{})})}),i&&le(Ee,{render:l=>le("button",{ref:s,type:"button",onClick:i,tabIndex:l,"data-detail-edit-button":e.reportHubId,className:Ae,title:g.edit,"aria-label":g.edit,children:le(sf,{className:Se.edit})})}),n&&le(Ee,{render:l=>le("button",{type:"button",onClick:d,tabIndex:l,"data-detail-delete-button":e.reportHubId,className:Ae,title:g.deleteReport,"aria-label":g.deleteReport,children:le(lf,{className:Se.delete})})}),kl("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[le(ue,{label:g.id,classNames:df,children:e.reportHubId}),le(ue,{label:g.businessDate,classNames:ao,children:le(Bt,{text:de(e.date)})}),le(ue,{label:g.author,classNames:ao,children:ce(e.employeeName)}),le(ue,{label:g.visitTime,classNames:ao,children:ce(u)}),le(ue,{label:g.updatedAt,classNames:ao,children:le(Bt,{text:de(e.updatedAt)})}),L&&le(ue,{label:g.category,classNames:Ml,children:L}),v&&le(ue,{label:g.creationCategory,classNames:Ml,children:v})]})]})};import{useCallback as Hf,useContext as ld,useLayoutEffect as Ma,useRef as dd}from"react";import{startTransition as Df,useCallback as oe,useLayoutEffect as Ut,useMemo as ad,useRef as Lt,useState as Kr,useSyncExternalStore as Af}from"react";import{flushSync as id}from"react-dom";var rr=e=>({owner:e,focusIndex:null}),Aa=Object.freeze({owner:null,focusIndex:null}),Hl=(e,t)=>{if(e.length===0)return Aa;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},Fl=(e,t)=>{switch(t.kind){case"focusIn":return rr(t.row);case"focusOut":return t.to==="outside"?Aa:rr(e);case"pointerPress":return t.at==="outside"?Aa:rr(e);case"listChanged":{if(e===null)return rr(e);let r=pe(t.items,e.reportHubId,e.index);return r===-1?Hl(t.items,e.index):rr(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?rr(e):Hl(t.items,t.selection.index)}};var cf=new Set(["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","ScrollLock","Shift","Super","Symbol","SymbolLock"]),io={capture:!0},so=new WeakMap,uf=e=>{let t=o=>{cf.has(o.key)||(n.last="keyboard")},r=()=>{n.last="pointer"},n={observers:0,last:null,detach:()=>{e.removeEventListener("keydown",t,io),e.removeEventListener("pointerdown",r,io)}};return e.addEventListener("keydown",t,io),e.addEventListener("pointerdown",r,io),n},Bl=e=>{let t=so.get(e),r=t===void 0?uf(e):t;t===void 0&&so.set(e,r),r.observers+=1;let n=!1;return()=>{n||(n=!0,r.observers-=1,!(r.observers>0)&&(r.detach(),so.delete(e)))}},Ul=e=>{let t=so.get(e);return t===void 0?null:t.last};var lo=e=>e.matches(":focus-visible")&&Ul(e.ownerDocument)!=="pointer";var mf="data-daily-report-keyboard-focus",It={capture:!0},Vl=e=>{let t=Bl(e.ownerDocument),r=s=>{e.toggleAttribute(mf,ge(s)&&lo(s))},n=s=>r(s.target),o=s=>{ge(s.relatedTarget)&&e.contains(s.relatedTarget)||r(null)},a=()=>r(null);e.addEventListener("focusin",n,It),e.addEventListener("keydown",n,It),e.addEventListener("focusout",o,It),e.addEventListener("pointerdown",a,It);let i=_e(e);return r(i!==null&&e.contains(i)?i:null),()=>{e.removeEventListener("focusin",n,It),e.removeEventListener("keydown",n,It),e.removeEventListener("focusout",o,It),e.removeEventListener("pointerdown",a,It),r(null),t()}};var pf='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',ff=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],bf=ff.map(e=>`[role="${e}"]`).join(", "),yf=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),Rf=new Set(["Enter"," "]),gf=new Map([["Home","exitBefore"],["End","exitAfter"]]),_a=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return gf.get(e.key)??null;let r=yf.get(e.key);return r!==void 0?r:Rf.has(e.key)&&t.rowActivation?"activate":null},Wl=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},Kl=(e,t,r)=>{let n=_a(e,r);if(n===null||e.defaultPrevented||Pr(e)||t===null||!ge(e.target)||!t.contains(e.target))return null;let o=St(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:Wl(e.target,pf,t)||Wl(e.target,bf,t)?null:n};var co={kind:"stay"},uo=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},$l=e=>Math.floor(.875*e),Ct=(e,t)=>({kind:"move",index:e,align:t}),Br=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",hf=({index:e,count:t,viewport:r,focusedRowTop:n,heightOf:o})=>{let a=o(e),i=n+a,s={index:e+1,top:i};for(let d=e+1;d<t;d++){let m=o(d);if(a+=m,a>r)break;s={index:d,top:i},i+=m}return s},Sf=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>{let o=n(e),a=r,i={index:e-1,top:r-n(e-1)};for(let s=e-1;s>=0;s--){let d=n(s);if(a-=d,o+=d,o>t)break;i={index:s,top:a}}return i},vf=(e,t,r)=>{let{index:n,count:o,viewport:a,focusedRowTop:i,heightOf:s}=t,d=i+s(n);switch(e){case"previous":{if(n===0)return co;if(r==="top")return Ct(n-1,"top");let m=s(n-1);return Ct(n-1,Br(i-m,m,a,-1))}case"next":return n===o-1?co:r==="top"?Ct(n+1,"top"):Ct(n+1,Br(d,s(n+1),a,1));case"first":return Ct(0,"top");case"last":return Ct(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(d>a)return{kind:"reveal",delta:Math.min(d-a,$l(a))};if(n===o-1)return co;let m=hf(t);return Ct(m.index,Br(m.top,s(m.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,$l(a))};if(n===0)return co;let m=Sf(t);return Ct(m.index,Br(m.top,s(m.index),a,-1))}}},Ef=({index:e,focusedRowTop:t,heightOf:r},n)=>ql(n,{index:e,offsetPx:-t},r),jl=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let d=vf(e,o,n);if(d.kind==="stay")break;d.kind==="reveal"?(i+=d.delta,o={...o,focusedRowTop:o.focusedRowTop-d.delta}):d.align==="none"?o={...o,index:d.index,focusedRowTop:Ef(o,d.index)}:(a={index:d.index,align:d.align},i=0,o={...o,index:d.index,focusedRowTop:d.align==="top"?0:o.viewport-o.heightOf(d.index)})}return{index:o.index,alignment:a,scrollDelta:i}},Yl=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Br(r,n(e),t,1),ql=(e,t,r)=>{let n=-t.offsetPx;for(let o=t.index;o<e;o++)n+=r(o);for(let o=e;o<t.index;o++)n-=r(o);return n},Ur=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;let i=uo(n);if(n.kind==="uniform")return{index:t,count:r,viewport:o,focusedRowTop:t*n.rowHeight-a,heightOf:i};let s=e.getScrollAnchor();return s===null?null:{index:t,count:r,viewport:o,focusedRowTop:ql(t,s,i),heightOf:i}},zl=1,Xl=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=Vr(o,n,t,r);return{start:Math.max(0,o.index-zl),end:Math.min(t-1,a+zl)}},Vr=(e,t,r,n)=>{let o=uo(n),a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},Zl=(e,t)=>e.top<t.top?e.top-t.top:e.bottom>t.bottom?Math.min(e.bottom-t.bottom,e.top-t.top):0,Gl=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),Jl=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(Gl(t,n,o))return t.reportHubId;if(Gl(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var Na=1,Wr=2,wa=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?Na:0)|(n===t||n===r?Wr:0),Tf=e=>{if(Sr(e))return!0;let t=_e(e);return t!==null&&e.contains(t)},xf=(e,t)=>{let r=e.closest(`[${An}]`);return r!==null&&r!==e&&kt(r)===t&&_e(e)===r},Ql={capture:!0},ed=({getContainer:e,initialSelectedId:t})=>{let r={selectedId:t,tabStopId:t,arrivingId:null},n=null,o=null,a=!1,i=null,s=new Map,d=new Map,m=null,u=new Map,f=l=>wa(r,l),g=l=>{let p=d.get(l);if(p===void 0)return;let I=(f(l)&Wr)!==0?"0":"-1";p.getAttribute("tabindex")!==I&&p.setAttribute("tabindex",I)},E=()=>{if(n===null)return;let l=n;n=null,g(l)},y=(l,p)=>{E();let I={...r};l(r);let C=r,k=new Set([I.selectedId,I.tabStopId,I.arrivingId,C.selectedId,C.tabStopId,C.arrivingId]);for(let w of k){if(w===null)continue;let U=wa(I,w),N=wa(C,w);if(U===N)continue;((U^N)&Wr)!==0&&(w===p?n=w:g(w));let P=s.get(w);if(P!==void 0)for(let Z of[...P])Z()}},L=l=>{let p=l.ownerDocument,I=n!==null&&!Sr(l);I?p.addEventListener("focusout",E,Ql):E(),a=!0;try{l.focus({preventScroll:!0})}finally{a=!1,I&&p.removeEventListener("focusout",E,Ql),E()}},v=l=>{let p=e();p!==null&&(o=null,Tf(p)&&L(l))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:f,setTabStopId:l=>{y(p=>{p.tabStopId=l},null)},settleSelection:(l,p)=>{y(I=>{I.selectedId=l,I.tabStopId=p,I.arrivingId=null},null)},arrive:l=>{y(p=>{p.arrivingId=l},l)},subscribe:(l,p)=>{let I=s.get(l)??new Set;return I.add(p),s.set(l,I),()=>{I.delete(p),I.size===0&&s.get(l)===I&&s.delete(l)}},registerFocusTarget:(l,p)=>{if(d.set(l,p),g(l),o===l){v(p);return}i===null||i.reportHubId!==l||(Sr(p)||xf(p,l))&&L(p)},unregisterFocusTarget:(l,p)=>{d.get(l)===p&&d.delete(l)},requestFocus:l=>{o=l;let p=d.get(l);p!==void 0&&v(p)},cancelFocusRequest:()=>{o=null},pendingFocusId:()=>o,isMovingFocus:()=>a,getFocusOwner:()=>i,setFocusOwner:l=>{i=l},restoreFocus:l=>{if(i===null||i.reportHubId!==l)return;let p=d.get(l);p===void 0||!Sr(p)||L(p)},holdBodiesOutside:l=>{m=l},isBodyHeldAt:l=>m!==null&&(l<m.start||l>m.end),registerHeldBody:(l,p,I)=>{let C={indexHint:p,release:I};return u.set(l,C),()=>{u.get(l)===C&&u.delete(l)}},releaseHeldBodiesWithin:(l,p)=>{if(l!==null)for(let[I,{indexHint:C,release:k}]of[...u]){let w=p(I,C);w>=l.start&&w<=l.end&&k()}}}};var Je={previous:{axis:"row",amount:-1},next:{axis:"row",amount:1},pageBackward:{axis:"page",amount:-1},pageForward:{axis:"page",amount:1},first:{axis:"first",amount:1},last:{axis:"last",amount:1},activate:{axis:"activate",amount:1}},Oa=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),If=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),td=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Cf=new Map(Object.values(Je).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),rd=e=>{let t=Cf.get(e);if(t===void 0)throw new Error(`[daily-report] a repeat step must be one of REPEAT_STEPS; got the ${e.axis} axis with ${e.amount}`);return t},Lf=(e,t,r)=>e==="row"||e==="page"?t+r:r,nd=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:rd(e)}),od=(e,t)=>{switch(t.kind){case"repeat":{let{step:r}=t;if(e.axis!==r.axis)throw new Error(`[daily-report] a ${r.axis} repeat cannot continue a ${e.axis} stream`);return e.fence==="open"?(e.fence="immediate",rd(r)):(e.pending=Lf(e.axis,e.pending,r.amount),Oa)}case"frame":{if(e.fence==="open")return Oa;if(e.fence==="immediate")return e.fence="flush",If;if(e.pending===0)return e.fence="open",Oa;let r=e.pending;return e.pending=0,{apply:{axis:e.axis,amount:r},flush:!0,requestFrame:!0,ended:!1}}case"keyup":return e.pending===0?td:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return td}};var _f=Object.freeze({kind:"frame"}),wf=Object.freeze({kind:"keyup"}),Nf=Object.freeze({kind:"cancel"}),Of=Object.freeze({previous:Object.freeze({kind:"repeat",step:Je.previous}),next:Object.freeze({kind:"repeat",step:Je.next}),pageBackward:Object.freeze({kind:"repeat",step:Je.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:Je.pageForward}),first:Object.freeze({kind:"repeat",step:Je.first}),last:Object.freeze({kind:"repeat",step:Je.last}),activate:Object.freeze({kind:"repeat",step:Je.activate})}),Mf=(e,t)=>{if(e==="first"||e==="last")return{command:e,count:1};let r=Math.abs(t);return e==="row"?{command:t>0?"next":"previous",count:r}:{command:t>0?"pageForward":"pageBackward",count:r}},kf=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),Pf=e=>{let t=kt(e),r=Yt(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},mo=(e,t)=>{let r=oe(a=>e.subscribe(t,a),[e,t]),n=oe(()=>e.rowStateOf(t),[e,t]),o=Af(r,n,n);return{isCurrent:(o&Na)!==0,isTabStop:(o&Wr)!==0}},po=(e,t,r)=>{let[n,o]=Kr(()=>!e.isBodyHeldAt(r));return Ut(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Df(a),i},[e,t,r,n]),n},sd=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:d,rowActivation:m})=>{let[u]=Kr(()=>ed({getContainer:()=>n.current,initialSelectedId:t})),f=Lt({items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m}),g=Lt(null),E=Lt(null),[y,L]=Kr(null),v=Lt(null),l=Lt(null),[p,I]=Kr(null),C=Lt(!1),k=Lt(null),[w,U]=Kr(0),N=ad(()=>({id:t,indexHint:t===null?null:Xi(y,t)}),[t,y]),P=Lt(N);Ut(()=>{f.current={items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m},P.current=N},[e,r,s,d,m,N]);let Z=oe((c,R)=>{let b=E.current;if(b!==null&&b.items===c&&b.reportHubId===R)return b.index;let S=pe(c,R,b!==null&&b.reportHubId===R?b.index:null);return S!==-1&&(E.current={items:c,reportHubId:R,index:S}),S},[]),B=oe((c,R)=>{E.current={items:f.current.items,reportHubId:c,index:R},L(b=>b!==null&&b.reportHubId===c&&b.index===R?b:{reportHubId:c,index:R})},[]),Q=oe(c=>{let R=u.getFocusOwner();if(R===null)return null;let b=pe(c,R.reportHubId,R.index);return b===-1?null:{reportHubId:R.reportHubId,index:b}},[u]),K=oe(c=>{let R=f.current.items,b=c===null?null:{reportHubId:c,index:Z(R,c)};return Jl(R,Q(R),b,g.current,k.current)},[Z,Q]),te=oe(()=>{u.setTabStopId(K(u.getSelectedId()))},[u,K]),j=oe(c=>{let R=u.getFocusOwner();R===c||R!==null&&c!==null&&R.reportHubId===c.reportHubId&&R.index===c.index||(u.setFocusOwner(c),C.current||te())},[u,te]),V=oe(c=>{let R=Fl(u.getFocusOwner(),c);j(R.owner),R.focusIndex!==null&&(v.current=R.focusIndex,u.requestFocus(R.owner.reportHubId))},[u,j]);Ut(()=>{u.settleSelection(t,K(t))},[u,t,e,w,K]),Ut(()=>{let c=o.current;if(c!==null)return Vl(c)},[o]),Ut(()=>{let c=n.current;if(c===null)return;let R=c.ownerDocument,b=S=>{let A=n.current,O=S.target;V({kind:"pointerPress",at:A!==null&&ge(O)&&A.contains(O)?"inside":"outside"})};return R.addEventListener("pointerdown",b,{capture:!0}),()=>R.removeEventListener("pointerdown",b,{capture:!0})},[n,V]),Ut(()=>{let c=u.pendingFocusId();c!==null&&pe(e,c,v.current)===-1&&u.cancelFocusRequest(),V({kind:"listChanged",items:e})},[u,e,V]);let ie=oe(c=>{V({kind:"removed",reportHubId:c,selection:E.current,items:f.current.items})},[V]),re=oe((c,R,b)=>{let{items:S,onSelect:A,rowSizing:O,arrowAlign:z}=f.current,W=a.current;if(A===null||W===null)return null;let T=pe(S,b.reportHubId,b.index);if(T===-1)return null;let _=Ur(W,T,S.length,O);if(_===null)return null;let M=jl(c,R,_,z),X=S[M.index],fe=M.index!==T;if(fe){u.arrive(X.reportHubId),k.current=X.reportHubId,v.current=M.index,C.current=!0;try{u.requestFocus(X.reportHubId)}finally{C.current=!1}}try{id(()=>{fe&&(u.pendingFocusId()===null&&u.settleSelection(X.reportHubId,X.reportHubId),A(X.reportHubId,M.index)),M.alignment!==null&&i.toIndex(M.alignment.index,{align:M.alignment.align}),M.scrollDelta!==0&&i.by(M.scrollDelta),fe&&(B(X.reportHubId,M.index),U(tt=>tt+1));let Ye=Xl(W,S.length,O);u.holdBodiesOutside(Ye),u.releaseHeldBodiesWithin(Ye,(tt,tn)=>pe(S,tt,tn))})}finally{u.holdBodiesOutside(null)}return fe?{reportHubId:X.reportHubId,index:M.index}:{reportHubId:b.reportHubId,index:T}},[u,a,i,B]),ne=oe(c=>{let{items:R,onSelect:b}=f.current;if(b===null)return;let S=pe(R,c.reportHubId,c.index);S!==-1&&(b(c.reportHubId,S),B(c.reportHubId,S))},[B]),he=oe(c=>{let R=n.current,b=R===null?null:_e(R),S=R!==null&&b!==null&&R.contains(b)?vr(St(b,R),f.current.items):null;return S===null?c.origin:S},[n]),$=oe((c,R)=>{let b=he(c);if(R.axis==="activate"){ne(b);return}let S=Mf(R.axis,R.amount),A=re(S.command,S.count,b);A!==null&&(c.origin=A)},[he,ne,re]),ve=oe(c=>{l.current=null,c.frame!==0&&c.view.cancelAnimationFrame(c.frame),I(null)},[]),Fe=oe((c,R,b)=>{let{apply:S}=R;S!==null&&(R.flush?id(()=>$(c,S)):$(c,S)),l.current===c&&(R.ended?ve(c):R.requestFrame&&(c.frame=c.view.requestAnimationFrame(b)))},[$,ve]),se=oe((c,R,b)=>{Fe(c,od(c.state,R),b)},[Fe]),me=oe(()=>{let c=l.current;c!==null&&(c.frame=0,se(c,_f,me))},[se]),Be=oe(()=>{let c=l.current;c!==null&&se(c,wf,me)},[se,me]),Ue=oe(()=>{let c=l.current;c!==null&&se(c,Nf,me)},[se,me]),Qe=oe((c,R,b)=>{I(P.current);let{state:S,effects:A}=nd(Je[c]),O={state:S,origin:R,view:b,frame:0};l.current=O,Fe(O,A,me)},[Fe,me]);Ut(()=>()=>{let c=l.current;l.current=null,c!==null&&c.frame!==0&&c.view.cancelAnimationFrame(c.frame)},[]);let et=oe(c=>{let R=l.current,b=R!==null&&c.repeat?_a(c,f.current):null;if(R!==null&&b!==null&&b!=="exitBefore"&&b!=="exitAfter"&&Je[b].axis===R.state.axis){c.preventDefault(),se(R,Of[b],me);return}let{items:S,onSelect:A,rowSizing:O,rowActivation:z}=f.current,W=n.current,T=A===null?null:Kl(jn(c),W,{rowActivation:z});if(u.cancelFocusRequest(),Be(),T===null||W===null)return;if(T==="exitBefore"||T==="exitAfter"){let X=qs(W,T==="exitBefore"?"before":"after");if(X===null)return;c.preventDefault(),X.focus();return}let _=_e(W),M=vr(St(_!==null&&W.contains(_)?_:c.target,W),S);if(M!==null){if(T!=="activate"){let X=a.current;if(X===null||Ur(X,M.index,S.length,O)===null)return}if(c.preventDefault(),c.repeat){Qe(T,M,qe(W));return}T==="activate"?ne(M):re(T,1,M)}},[u,n,a,me,se,Be,Qe,ne,re]),lt=oe(()=>{Be()},[Be]),Ge=oe(c=>{let R=n.current,b=c.target,S=St(b,R);if(V({kind:"focusIn",row:S===null?null:Pf(S)}),u.isMovingFocus())return;let A=a.current;if(R===null||A===null||!ge(b)||!lo(b))return;let O=S===null?null:S.closest('[role="list"]');if(S===null||O===null)return;let z=O.getBoundingClientRect(),W=S.getBoundingClientRect(),T=W.height<=z.height?W:kf(b.getBoundingClientRect(),gt),_=Zl(T,z),M=A.getViewportSize();_===0||!(M>0&&z.height>0)||i.by(_*M/z.height)},[u,n,a,i,V]),Ve=oe(c=>{let R=n.current,b=c.relatedTarget,S=ge(b)?R?.contains(b)?"view":"outside":"nowhere";S!=="view"&&Ue(),V({kind:"focusOut",to:S})},[n,Ue,V]),je=oe(()=>{u.cancelFocusRequest(),Ue()},[u,Ue]),yt=oe(c=>{g.current={visibleStartIndex:c.visibleStartIndex,visibleEndIndex:c.visibleEndIndex},k.current=null,te()},[te]),x=ad(()=>({onKeyDown:et,onKeyUp:lt,onPointerDownCapture:je,onWheelCapture:je,onTouchStartCapture:je,onFocus:Ge,onBlur:Ve}),[et,lt,je,Ge,Ve]);return{cursor:u,containerProps:x,handleRangeChange:yt,selection:N,settledSelection:p===null?N:p,resolveSelectedIndex:Z,rememberSelection:B,focusAfterRemoval:ie}};import{jsx as ka}from"react/jsx-runtime";var Ff=h(ht,nn,on,rn,"h-full"),Bf="h-full w-full",cd=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:d}=mo(a,e),m=ld(ut),u=ld(ct),f=po(a,e,m),g=dd(null),E=dd(null),y=Hf(L=>(g.current=L,a.registerFocusTarget(e,L),()=>{g.current=null,a.unregisterFocusTarget(e,L)}),[a,e]);return Ma(()=>{let L=g.current,v=L===null||!f?null:L.firstElementChild,l=v instanceof HTMLElement?v:null,p=E.current;p!==null&&p.body===l||(p!==null&&p.stop(),E.current=l===null?null:{body:l,stop:o(l)})}),Ma(()=>()=>{E.current?.stop(),E.current=null},[]),Ma(()=>{a.restoreFocus(e)},[a,e,n]),ka(wr.Provider,{value:d,children:ka("div",{ref:y,className:Ff,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":m+1,"aria-setsize":u,"aria-labelledby":f&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":f&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!f?!0:void 0,"aria-current":s?"true":void 0,children:f?i:ka("div",{...Oe,className:Bf})})})};import{jsx as G,jsxs as Te}from"react/jsx-runtime";var Wf=h("flex w-full flex-col",rt,ln,cr),Kf=h(rt,cr),$f=h("rounded-2xl",cr),zf=h("rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",cr),Ie="bg-slate-200 dark:bg-slate-700",Gf=(e,t)=>{let r=ce(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},jf=()=>Te("div",{...Oe,className:Kf,children:[Te("div",{className:"mb-4 flex flex-wrap gap-2",children:[G("div",{className:h("h-6 w-20 rounded-full",Ie)}),G("div",{className:h("h-6 w-24 rounded-full",Ie)}),G("div",{className:h("h-6 w-24 rounded-full",Ie)}),G("div",{className:h("h-6 w-28 rounded-full",Ie)})]}),Te("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Te("div",{className:"space-y-4",children:[G("div",{className:h("h-5 w-40 rounded",Ie)}),G("div",{className:h("h-5 w-56 rounded",Ie)}),G("div",{className:h("h-24 rounded-xl",Ie)})]}),Te("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[G("div",{className:h("mb-2 h-4 w-24 rounded",Ie)}),G("div",{className:h("mb-2 h-4 w-28 rounded",Ie)}),G("div",{className:h("h-4 w-32 rounded",Ie)})]})]}),Te("div",{className:"space-y-4",children:[G("div",{className:h("h-4 w-24 rounded",Ie)}),Te("div",{className:"flex flex-wrap gap-2",children:[G("div",{className:h("h-6 w-16 rounded-full",Ie)}),G("div",{className:h("h-6 w-16 rounded-full",Ie)}),G("div",{className:h("h-6 w-16 rounded-full",Ie)})]}),Te("div",{className:"space-y-2",children:[G("div",{className:h("h-16 rounded-xl",Ie)}),G("div",{className:h("h-16 rounded-xl",Ie)})]})]})]}),Yf=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:d}=Mt(e.reportHubId,e.businessDate),{removeStaleItem:m}=De(),{draftLabelName:u,sourceTypeConfigs:f}=H(),g=vt(),E=Vn(e.reportHubId),y=E==="editing"||E==="automatic",L=fo(!1),v=fo(!1),l=fo(!1);ud(()=>{if(d){l.current=!0;return}!(a||s||i)&&l.current&&e.reportHubId>0&&m(e.reportHubId)},[a,s,d,i,e.reportHubId,m]);let p=a?.labels.some(re=>re.name===u),I=n&&a?.userId===n,C=bo(()=>a===null?void 0:()=>{L.current=!0,g.open(e.reportHubId,Jt(a),!1)},[g,e.reportHubId,a]),k=$r(()=>{v.current=!0,g.dismiss(e.reportHubId)},[g,e.reportHubId]),w=$r(()=>{v.current=!0,g.discard(e.reportHubId)},[g,e.reportHubId]),U=$r(re=>{re===null||!L.current||(L.current=!1,re.focus())},[]),N=$r(re=>{re===null||!v.current||(v.current=!1,re.focus())},[]);Vf(()=>{y||(v.current=!1)},[y]),ud(()=>{a!==null&&(I&&p&&E==="display"?g.open(e.reportHubId,Jt(a),!0):!p&&E==="automatic"&&g.discard(e.reportHubId))},[a,I,p,E,g,e.reportHubId]);let P=$r(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),Z=Uf(),B=bo(()=>({heading:`${Z}-heading`,state:`${Z}-state`,attachments:`${Z}-attachments`,source:`${Z}-source`}),[Z]),Q=a!==null&&a.attachments.length>0,K=a===null?void 0:Nt(a.sourceType,f),te=[B.state,...Q?[B.attachments]:[],...K!==void 0?[B.source]:[]].join(" "),j=!i&&a!==null&&!y?{kind:"card",ids:B,describedBy:te}:{kind:"label",label:de(e.businessDate)},V=!i&&a===null&&s,ie=i?"error":a===null?s?"loading":"missing":y?"editing":"resolved";return G(cd,{itemId:e.reportHubId,name:j,isBusy:V,bodyKind:ie,observeRowHeight:t,cursor:o,children:i?G(qf,{itemId:e.reportHubId}):a?y?G("div",{...Oe,className:$f,children:G(eo,{report:a,onCancel:k,onPublishSuccess:w,titleInputRef:U})}):G(fd,{item:e,report:a,sourceConfig:K,textIds:B,onCommentAdded:r,userId:n,onEdit:I?C:void 0,editButtonRef:N,onCommentSectionRemoved:P}):G(jf,{})})},pd=md(Yf),fd=md(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:d})=>{let m=fo(null),{toggleStar:u,toggleRead:f,pendingStarUpdates:g,pendingReadUpdates:E,deleteReport:y,user:L}=De(),{uiComments:v,handleAddComment:l,handleDeleteComment:p,pendingDeleteId:I,setPendingDeleteId:C,resolvedIdMap:k}=Dr(t,L,a),{labels:w,headingLevel:U}=H(),N=Et[U],P=bn(t.sourceType,r),Z=async $=>{await l($),o?.(e.reportHubId)},B=g.current.get(t.reportHubId),Q=B===void 0?t.isStarred:B,K=E.current.get(t.reportHubId),te=K===void 0?t.isRead:K,j=!!(a&&t.userId===a),V=async()=>{try{await f(t.reportHubId,!te,t.date)}catch{}},ie=async()=>{try{await u(t.reportHubId,!Q,t.date)}catch{}},re=async()=>{confirm(w.confirmDelete)&&await y(t.reportHubId,t.date)},ne=bo(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
|
|
4
|
-
`).trim():"",[t.content]),he=bo(()=>{let $=t.visitTimeFrom?.trim(),ve=t.visitTimeTo?.trim();return $&&ve?`${$} - ${ve}`:$||ve||null},[t.visitTimeFrom,t.visitTimeTo]);return Te("div",{...Oe,onDoubleClick:i,className:Wf,children:[G(ke,{level:U,id:n.heading,className:"sr-only",children:`${de(t.date)} ${ce(t.employeeName)} ${ce(t.subject)}`}),G("span",{id:n.state,className:"sr-only",children:w.rowState({isRead:te,isStarred:Q})}),Te("div",{className:"flex flex-col gap-4",children:[G(Pl,{report:t,sourceConfig:r,isRead:te,isStarred:Q,isMine:j,onToggleRead:V,onToggleStar:ie,onEdit:i,editButtonRef:s,onDelete:re,visitTimeDisplay:he,markerIds:n,labels:w}),Te("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Te("div",{className:"flex flex-col gap-4",children:[Te("div",{className:"grid gap-4 sm:grid-cols-2",children:[Te("div",{className:"flex flex-col gap-1",children:[G(ke,{level:N,className:dt,children:w.customer}),G("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:ce(t.customerName)})]}),Te("div",{className:"flex flex-col gap-1",children:[G(ke,{level:N,className:dt,children:w.subject}),G("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ce(t.subject)})]})]}),ne&&Te("div",{className:"flex flex-col gap-2",children:[G(ke,{level:N,className:dt,children:w.content}),G("div",{className:h("whitespace-pre-wrap",sn),children:ne})]}),t.interviewers.length>0&&Te("div",{className:"flex flex-col gap-2",children:[G(ke,{level:N,className:dt,children:w.interviewers}),G("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map($=>G("li",{className:h(Le,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:Gf($,w)},JSON.stringify([$.name,$.affiliation])))})]}),G(Gn,{attachments:t.attachments}),G(Zn,{comments:v,canComment:P,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:p,pendingDeleteId:I,onPendingDeleteIdChange:C,resolvedIdMap:k,onSectionRemoved:d}),P&&G("div",{className:"mt-auto",ref:m,children:G(Jn,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:Z})})]}),G(Nl,{report:t,visitTimeDisplay:he,labels:w})]})]})]})});fd.displayName="DailyReportResolvedItem";var qf=({itemId:e})=>{let{labels:t}=H();return G("div",{...Oe,className:zf,children:G("p",{children:t.reportLoadFailed(e)})})};import{useCallback as hd,useId as ob,useMemo as Sd,useRef as ab}from"react";import{useCallback as Xf,useLayoutEffect as bd,useMemo as yd,useRef as Pa}from"react";var Zf=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},Jf=(e,t,r,n)=>{let o=e*r+t,a=Math.min(Math.max(Math.floor(o/r),0),n-1);return{index:a,offsetPx:o-a*r}},Qf=(e,t,r,n)=>{let o=e,a=t;for(;a<0&&o>0;)o-=1,a+=r(o);for(;o<n-1&&a>=r(o);)a-=r(o),o+=1;return{index:o,offsetPx:a}},eb=(e,t,r,n,o)=>{if(t===e.recordedAt)return e;if(!(t>0))return null;let a=e.offsetPx+(t-e.recordedAt),{index:i,offsetPx:s}=n.kind==="uniform"?Jf(e.index,a,n.rowHeight,r.length):Qf(e.index,a,uo(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:Vr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},tb=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=pe(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},Rd=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=Pa(null),a=Pa(e),i=Pa(r),s=Xf(()=>{let m=t.current,u=m===null?-1:m.getScrollPosition(),f=m===null||!(u>0)?null:m.getScrollAnchor(),g=a.current,E=f===null?void 0:g[f.index],y=m===null?0:m.getViewportSize();o.current=f===null||E===void 0||!(y>0)?null:{reportHubId:E.reportHubId,index:f.index,offsetPx:f.offsetPx,lastVisibleIndex:Vr(f,y,g.length,i.current),recordedAt:u}},[t]),d=yd(()=>({toIndex:(m,u)=>{let f=t.current;f!==null&&(f.scrollToIndex(m,u),s())},by:m=>{let u=t.current;u!==null&&(u.scrollBy(m),s())},resizeRow:(m,u)=>{let f=t.current;f!==null&&(f.updateItemSize(m,u),s())}}),[t,s]);return bd(()=>{let m=a.current;a.current=e;let u=o.current,f=t.current;if(m===e||u===null||f===null||n())return;let g=eb(u,f.getScrollPosition(),m,i.current,f.getViewportSize());if(g===null){o.current=null;return}let E=pe(e,g.reportHubId,g.index),y=E===-1?tb(m,e,g):E;if(y===-1){o.current=null;return}if(y===g.index&&!Zf(m,e,g.index,g.lastVisibleIndex)){o.current=g;return}f.scrollToIndex(y,{align:"top",offset:-g.offsetPx}),o.current={reportHubId:e[y].reportHubId,index:y,offsetPx:g.offsetPx,lastVisibleIndex:Vr({index:y,offsetPx:g.offsetPx},f.getViewportSize(),e.length,r),recordedAt:f.getScrollPosition()}},[e,t,r,n]),bd(()=>{i.current=r},[r]),yd(()=>({handleRangeChange:s,handleScrollAdjust:s,scroller:d}),[s,d])};import{useCallback as rb}from"react";var nb=20,gd=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>rb(a=>{t.current=a;let i=a.querySelector(`[data-testid="${e}"]`);return i!==null&&Object.defineProperty(i,"__virtualScroll",{configurable:!0,get:()=>{let s=r.current;if(s!==null)return{getViewportSize:()=>s.getViewportSize(),getScrollPosition:()=>s.getScrollPosition(),getScrollAnchor:()=>s.getScrollAnchor(),getRange:()=>s.getRange(),getFenwickSize:()=>s.getFenwickSize(),findReportIndex:d=>o.current.findIndex(m=>m.reportHubId===d),getReportItem:d=>o.current[d],getReportIds:(d=nb)=>o.current.slice(0,d).map(m=>m.reportHubId),revealIndex:(d,m)=>n.toIndex(d,m)}}}),()=>{i!==null&&delete i.__virtualScroll,t.current=null}},[e,t,r,n,o]);import{jsx as ib}from"react/jsx-runtime";var yo=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=ab(null),s=hd(C=>(i.current=C,()=>{i.current=null}),[]),{handleRangeChange:d,handleScrollAdjust:m,scroller:u}=Rd({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:f,...g}=sd({...a,containerRef:e,handleRef:i,scroller:u}),E=gd({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:u,itemsRef:r}),{labels:y}=H(),L=ob(),v=a.onSelect!==null,l=hd(C=>{f(C),d(),o(C)},[f,d,o]),p=Sd(()=>({role:"list","aria-label":y.title,"aria-describedby":v?L:void 0}),[y.title,v,L]),I=Sd(()=>v?ib("span",{id:L,className:"sr-only",children:y.listKeyboardHelp}):null,[v,L,y.listKeyboardHelp]);return{...g,handleRangeChange:l,handleScrollAdjust:m,attachVirtualScroll:s,handleRef:i,scroller:u,attachScrollContainer:E,contentProps:p,keyboardHelp:I}};import{Fragment as bb,jsx as At,jsxs as fb}from"react/jsx-runtime";var Ed={pointerDragInputs:En,wheelSpeedMultiplier:yn,inertiaOptions:qt(!1),enableKeyboardNavigation:!1},db={...Ed,inertiaOptions:qt(!0)},vd="daily-report-detail-list",cb=h("relative w-full",mn,cn),ub=h(We,"relative"),mb=300,Fa=e=>{let t=we(null),[r,n]=Ro(null),o=Dn(t),a=_n(r),i=Ce(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return At("div",{ref:i,className:dn,children:o===null?null:At(pb,{...e,viewportHeight:o,reducedMotion:a})})},pb=({dailyReportItems:e,rowSetSize:t,userId:r,selectedItemId:n,onSelectItem:o,scrollRestoreRef:a,viewportHeight:i,reducedMotion:s})=>{let[{initialScrollAnchor:d,restored:m}]=Ro(()=>{let T=a?.current;if(!T||T.anchorReportHubId!==(n??null))return{initialScrollAnchor:void 0,restored:!1};if(!T.topItem)return{initialScrollAnchor:void 0,restored:!0};let _=e.findIndex(M=>M.reportHubId===T.topItem?.reportHubId);return _!==-1?{initialScrollAnchor:{index:_,offsetPx:T.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:T.topItem.index,offsetPx:0},restored:!0}}),u=we(m),f=we(n??null),g=we(a?.current.measuredHeights??new Map),E=we(null),y=In(),L=zo(),[v]=Ro(wn),l=we(null),p=we(null),I=we(e),C=we(o);lb(()=>{I.current=e,C.current=o},[e,o]);let k=we(null),[w,U]=Ro(0),N=we(null),P=e.length,Z=t===void 0?P:t,B=Ce(T=>T>=P?gn:e[T],[e,P]),Q=Ce(T=>{let _=g.current.get(B(T).reportHubId);return _===void 0?Ni:_},[B]),K=Ce(T=>B(T).reportHubId,[B]),te=Ha(()=>({kind:"measured",heightOf:Q}),[Q]),j=Ce((T,_)=>{k.current={reportHubId:T,index:_},U(M=>M+1),C.current?.(T)},[]),V=Ce((T,_)=>{if(P===0)return;let M=Math.max(0,T),X=Math.min(P-1,_);if(M>X)return;let fe=new Set;for(let Ye=M;Ye<=X;Ye++){let tt=B(Ye);if(tt.businessDate&&fe.add(tt.businessDate),fe.size>=Ai)break}fe.forEach(Ye=>{L(Ye)})},[B,P,L]),ie=Ce(T=>{if(P===0)return;let{renderingStartIndex:_,renderingEndIndex:M,visibleStartIndex:X}=T,fe=B(X);fe.businessDate&&v.setLabel(de(fe.businessDate)),V(_,M),V(M+1,M+Rn),V(_-Rn,_-1)},[B,P,V,v]),re=Ce(()=>N.current!==null,[]),{cursor:ne,containerProps:he,handleRangeChange:$,handleScrollAdjust:ve,attachVirtualScroll:Fe,handleRef:se,scroller:me,attachScrollContainer:Be,contentProps:Ue,keyboardHelp:Qe,resolveSelectedIndex:et,rememberSelection:lt}=yo({items:e,selectedId:n??null,onSelect:o===void 0?null:j,containerRef:E,rootRef:E,testId:vd,itemsRef:I,rowSizing:te,arrowAlign:"top",rowActivation:!0,isViewRevealPending:re,onRangeChange:ie}),Ge=Ce((T,_)=>{if(se.current===null)return!1;let M=I.current,X=_!==null&&_.reportHubId===T?pe(M,T,_.index):et(M,T);return X===-1?!1:(u.current&&(u.current=!1,T===f.current)||_!==null&&_.reportHubId===T&&_.index===X||me.toIndex(X,{align:"top"}),!0)},[se,et,me]);Dt(()=>{let T=k.current;k.current=null,N.current=null,n!=null&&(Ge(n,T)||(N.current=n))},[n,Ge]),Dt(()=>{let T=N.current;T!==null&&Ge(T,null)&&(N.current=null)},[e,Ge]),Dt(()=>{let T=a?.current;T&&(T.anchorReportHubId=n??null)},[n,a]),Dt(()=>{k.current=null},[w]);let Ve=we(null),je=Ce(()=>{se.current&&(Ve.current=se.current);let T=a?.current,_=Ve.current;if(T&&_){let X=_.getScrollAnchor(),fe=X?I.current[X.index]:void 0;X&&fe&&(T.topItem={reportHubId:fe.reportHubId,index:X.index,offsetPx:X.offsetPx})}let M=E.current;M&&(M.toggleAttribute(Kt,!0),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{M.toggleAttribute(Kt,!1),p.current=null},150))},[se,a]),yt=Ce(T=>At(Nn,{...T,store:v}),[v]);Dt(()=>{let T=E.current;if(!T)return;let _=()=>{v.setWheelScrollActive(!0),l.current&&clearTimeout(l.current),l.current=window.setTimeout(()=>{v.setWheelScrollActive(!1),l.current=null},hn)};return T.addEventListener("wheel",_,{passive:!0}),()=>{T.removeEventListener("wheel",_),l.current&&clearTimeout(l.current)}},[v]);let x=we(null),c=Ce(T=>{for(let _ of T){let M=_.target.parentElement,X=M===null?null:kt(M),fe=M===null?null:Yt(M),Ye=_.borderBoxSize[0];if(X===null||fe===null||Ye===void 0)continue;let tt=Ye.blockSize+2*gt;if(g.current.get(X)===tt)continue;let tn=pe(I.current,X,fe-1);tn!==-1&&(g.current.set(X,tt),me.resizeRow(tn,tt))}},[me]),R=Ce(T=>{x.current===null&&(x.current=new ResizeObserver(c));let _=x.current;return _.observe(T),()=>_.unobserve(T)},[c]);Dt(()=>()=>{x.current?.disconnect(),x.current=null},[]),Dt(()=>{P!==0&&V(0,Math.min(P-1,Rn))},[P,V]);let b=we(null),S=Ce(T=>{let _=pe(I.current,T,null);_!==-1&&(b.current!==null&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null;let M=pe(I.current,T,_);M!==-1&&me.toIndex(M,{align:"bottom"})},mb))},[me]);Dt(()=>()=>{b.current!==null&&clearTimeout(b.current)},[]);let A=Ce(T=>{if(!C.current)return;let _=St(T.target,E.current);if(_===null||es(T.target,_))return;let M=vr(_,I.current);M!==null&&(lt(M.reportHubId,M.index),j(M.reportHubId,M.index))},[j,lt]),O=Ce((T,_)=>At(ut.Provider,{value:_,children:At(pd,{item:T,observeRowHeight:R,onCommentAdded:S,userId:r,cursor:ne})},T.reportHubId),[R,S,r,ne]),z=Ha(()=>({...vn,renderThumbOverlay:yt}),[yt]),W=Ha(()=>At(ct.Provider,{value:Z,children:At(sb,{ref:Fe,itemCount:P,getItem:B,getItemKey:K,getItemHeight:Q,viewportSize:i,initialScrollAnchor:d,overscanCount:Sn,scrollBarOptions:z,behaviorOptions:s?db:Ed,onRangeChange:$,onScrollAdjust:ve,onScroll:je,testId:vd,className:cb,locale:y.locale,labels:y.labels,contentProps:Ue,children:O})}),[Fe,Z,P,B,K,Q,i,s,d,z,$,ve,je,y.locale,y.labels,Ue,O]);return At(bb,{children:fb("div",{ref:Be,className:ub,...he,onClick:A,children:[Qe,W]})})};import xd from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as yb,useRef as Td,useState as Rb}from"react";var zr=(e,t=250)=>{let[r,n]=Rb(e),o=Td(e),a=Td(!0);return yb(()=>{if(a.current){a.current=!1,o.current=e,n(e);return}let i=o.current;if(i===e)return;let s=null,d=null,m=u=>{d===null&&(d=u);let f=Math.min(1,Math.max(0,(u-d)/t)),g=1-(1-f)**3,E=Math.round(i+(e-i)*g);o.current=E,n(E),f<1&&(s=requestAnimationFrame(m))};return s=requestAnimationFrame(m),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};import{jsx as go,jsxs as ho}from"react/jsx-runtime";var Gr=()=>{let e=Xe(),{labels:t}=H(),r=zr(e.loadedCount),n=zr(e.totalCount??0);if(e.phase==="streaming"){let o=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return ho("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:h(Le,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[go("span",{"aria-hidden":"true",className:"size-2 rounded-full bg-blue-500 motion-safe:animate-pulse dark:bg-blue-400"}),o!==null?t.streamProgressRatio(r,n,o):t.streamProgressCount(r)]})}return e.phase==="retrying"?ho("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:h(Le,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[go(xd,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?ho("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:h(Le,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,go("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Hn(),className:h("inline-flex h-5 items-center rounded-full bg-rose-200 px-2 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",J),children:t.streamRetry})]}):e.isRevalidating?ho("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"revalidating",className:"inline-flex items-center gap-1 text-slate-500 text-xs dark:text-slate-400",children:[go(xd,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as Jd,PanelGroup as Hy,PanelResizeHandle as Fy}from"@aiquants/resize-panels";import{VirtualScroll as By}from"@aiquants/virtualscroll";import{useCallback as st,useEffect as Io,useLayoutEffect as za,useMemo as Co,useRef as dr,useState as Do}from"react";import{useSyncExternalStore as gb}from"react";var Id="(max-width: 639px)",hb=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(Id);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},Sb=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(Id).matches:!1,vb=()=>!1,Cd=()=>gb(hb,Sb,vb);import{SwipeCloseGuardContext as zb,useOverlayEscapeStack as Gb,useSwipeGuardState as jb,useSwipeToDismissOverlay as Yb,useTapClick as qb,useTransitionDisplay as Xb}from"@aiquants/swipe-overlay";import{useCallback as Eo,useEffect as ar,useId as Ka,useLayoutEffect as Ud,useRef as it,useState as To}from"react";import{createContext as Eb,useMemo as Tb}from"react";var Ld=Object.freeze({id:null,indexHint:null}),So=Eb(Object.freeze({selected:Ld,settled:Ld})),jr=(e,t)=>{let{id:r,indexHint:n}=t;return Tb(()=>{if(r===null)return null;let o=pe(e,r,n);return o===-1?null:e[o]},[e,r,n])};import xb from"lucide-react/dist/esm/icons/check.js";import Ib from"lucide-react/dist/esm/icons/pencil.js";import Cb from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Lb,useCallback as Vt,useContext as Db,useDeferredValue as Ab,useEffect as Ba,useId as Nd,useLayoutEffect as Ua,useMemo as Pd,useRef as Jr,useState as Od}from"react";import*as ft from"@radix-ui/react-tabs";import*as He from"react";import{jsx as Yr}from"react/jsx-runtime";var Dd=He.createContext(null),Ad=e=>{let t=He.useContext(Dd);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},_d=(e,t)=>`${e}-trigger-${t}`,wd=(e,t)=>`${e}-panel-${t}`,qr=He.forwardRef(({value:e,children:t,...r},n)=>{let o=He.useId(),a=He.useMemo(()=>({baseId:o,value:e}),[o,e]);return Yr(ft.Root,{ref:n,value:e,...r,children:Yr(Dd,{value:a,children:t})})});qr.displayName=ft.Root.displayName;var Xr=He.forwardRef(({className:e,...t},r)=>Yr(ft.List,{ref:r,className:h("inline-flex",e),...t}));Xr.displayName=ft.List.displayName;var Zr=He.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=Ad("TabsTrigger");return Yr(ft.Trigger,{ref:n,value:t,...r,id:_d(o,t),"aria-controls":wd(o,t),className:h(`${pi} ${J}`,e)})});Zr.displayName=ft.Trigger.displayName;var nr=He.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=Ad("TabsContent"),s=t===i;return Yr("div",{ref:o,role:"tabpanel",id:wd(a,t),"aria-labelledby":_d(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:h(`mt-2 data-[state=inactive]:hidden ${J}`,e),children:s?r:null})});nr.displayName="TabsContent";import{Fragment as $b,jsx as F,jsxs as at}from"react/jsx-runtime";var Hd=h(_t,"w-24 shrink-0"),Md={field:"flex items-baseline",label:Hd,value:"flex-1"},_b={field:"flex min-w-0 flex-1 items-baseline",label:Hd,value:"wrap-break-word min-w-0 flex-1"},wb={field:"flex flex-col gap-1",label:_t,value:""},Nb={field:"flex items-center gap-1",label:_t,value:""},kd=h("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",wo,Qa,Ja),Ob=h("flex flex-col gap-1",No),Mb=h("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",J),kb=500,Va=e=>{let t=e,r=new Set;return{isDwelling:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},Pb=(e,t,r,n,o,a)=>{let i=Jr(null),s=e?.reportHubId;Ua(()=>{i.current=null},[s]),Ba(()=>{n||(i.current=null)},[n]);let d=Vt(async(m,u)=>{u||(i.current=m.reportHubId);try{await a(m.reportHubId,!m.isRead,m.date)}catch{}},[a]);return Ba(()=>{if(!(r&&e&&!e.isRead&&!t)||i.current===e.reportHubId)return;let m=null,u=()=>{m!==null&&clearTimeout(m),m=o.isDwelling()?setTimeout(()=>d(e,!0),kb):null};u();let f=o.subscribe(u);return()=>{f(),m!==null&&clearTimeout(m)}},[e,t,r,d,o]),{handleToggleRead:d}},Wa="article",Hb=["article","relations"],Fb=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},Bb=h("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",rt),Ub=9,Vb=.875,Wb=16,Fd=4*Math.ceil((2*gt+2*an+2*ri+Ub*Vb*Wb)/4),Bd=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=H(),a=Nd(),i=Nd(),[s,d]=Od(Wa),{selected:m,settled:u}=Db(So),f=jr(e,m),g=jr(e,Ab(u)),E=f===null?null:f.reportHubId,L=(g===null?null:g.reportHubId)===E,[v]=Od(()=>Va(L));return Ua(()=>{v.set(L)},[v,L]),F("aside",{"data-testid":"daily-report-side-pane","data-report-id":f?.reportHubId,"data-displayed-report-id":g?.reportHubId,"aria-busy":L?void 0:!0,className:Bb,children:g===null?F("div",{className:h("flex h-full flex-1 items-center justify-center text-center",$t),children:F("p",{className:un,children:o.selectPrompt})}):F(vo,{item:g,headingId:a,authorId:i,activeTab:s,onActiveTabChange:d,autoMarkRead:t,isActive:!0,dwell:v,userId:r,onReportDeleted:n},g.reportHubId)})},vo=Lb(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:d,onReportDeleted:m})=>{let{draftLabelName:u,labels:f,sourceTypeConfigs:g,headingLevel:E}=H(),{report:y,error:L,isLoading:v}=Mt(e.reportHubId,e.businessDate),l=vt(),p=Vn(e.reportHubId),I=p==="editing"||p==="automatic",C=Jr(null),k=Jr(null),w=Jr(!1),U=Jr(!1),N=!!(d&&y?.userId===d),P=y?.labels.some($=>$.name===u);Ba(()=>{y!==null&&(N&&P&&p==="display"?l.open(e.reportHubId,Jt(y),!0):!P&&p==="automatic"&&l.discard(e.reportHubId))},[y,N,P,p,l,e.reportHubId]);let Z=Pd(()=>y===null?void 0:()=>{w.current=!0,l.open(e.reportHubId,Jt(y),!1)},[l,e.reportHubId,y]),B=Vt(()=>{U.current=!0,l.dismiss(e.reportHubId)},[l,e.reportHubId]),Q=Vt(()=>{U.current=!0,l.discard(e.reportHubId)},[l,e.reportHubId]),K=Vt($=>{$===null||!w.current||(w.current=!1,$.focus())},[]),te=Vt($=>{$===null||!U.current||(U.current=!1,$.focus())},[]),j=Vt(()=>{k.current?.focus({preventScroll:!0})},[]);Ua(()=>{I||!U.current||(U.current=!1,k.current?.focus())},[I]);let V=Vt(()=>{setTimeout(()=>{let $=C.current;$!==null&&$.scrollTo({top:$.scrollHeight,behavior:as($)})},100)},[]),ie=de(e.businessDate),re=y===null?null:ce(y.employeeName),ne=v||!y,he=y===null?void 0:Nt(y.sourceType,g);return at($b,{children:[at("div",{className:Ob,children:[F("dl",{className:"m-0",children:F(ue,{label:f.businessDate,classNames:wb,children:F(ke,{ref:k,level:E,id:t,tabIndex:-1,className:Mb,children:ie})})}),at("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[F("dl",{className:"m-0",children:F(ue,{label:f.author,classNames:Nb,valueId:r,children:ne?F("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):re})}),he?F(er,{config:he,className:"ml-2"}):null]})]}),at(qr,{value:n,onValueChange:$=>o(Fb($)),className:"flex min-h-0 flex-1 flex-col",children:[F("div",{className:No,children:F(Xr,{"aria-label":f.reportTabList,className:h(ui,"grid grid-cols-2 gap-1"),children:Hb.map($=>F(Zr,{value:$,children:$==="article"?f.tabArticle:f.tabRelations},$))})}),F(nr,{ref:C,value:"article",className:kd,children:I?y?F(eo,{report:y,onCancel:B,onPublishSuccess:Q,titleInputRef:K}):F("p",{className:$t,children:f.loading}):F(Kb,{report:y,sourceConfig:he,isLoading:v,error:L,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:V,userId:d,onEdit:N?Z:void 0,editButtonRef:te,onReportDeleted:m,onCommentSectionRemoved:j})}),F(nr,{value:"relations",className:kd,children:F("p",{className:$t,children:f.relationsEmpty})})]})]})});vo.displayName="DailyReportSidePaneContent";var or=({className:e="w-32"})=>F("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),Kb=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:d,userId:m,onEdit:u,editButtonRef:f,onReportDeleted:g,onCommentSectionRemoved:E})=>{let{toggleStar:y,toggleRead:L,deleteReport:v,user:l}=De(),{labels:p,headingLevel:I}=H(),C=Et[I],{uiComments:k,handleAddComment:w,handleDeleteComment:U,pendingDeleteId:N,setPendingDeleteId:P,resolvedIdMap:Z}=Dr(e,l,m),{handleToggleRead:B}=Pb(e,r,a,i,s,L),Q=e!==null&&bn(e.sourceType,t),K=async ne=>{await w(ne),d?.()},te=Pd(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
|
|
3
|
+
`,a)){let s=n.slice(a,i);o.push(t.length===0?s:[...t,s].join("")),t=[],a=i+1}return a<n.length&&t.push(n.slice(a)),o};return{push:n=>r(e.decode(n,{stream:!0})),end:()=>{let n=r(e.decode()),o=t.join("");return t=[],o===""?n:[...n,o]}}};var Bu=50,Uu=32,Ss=0,Vu=()=>(Ss+=1,Ss),Wu=1e3,Ku=3e4,$u=6,zu=3e4,Pn=Symbol("read-stall"),Gu="/daily_report/api",Ir=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={loadedCount:0,itemsRevision:0,itemsChanges:[],totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null};this.streamAnchorRevision=0;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=Number.NEGATIVE_INFINITY;this.pendingItemsChange=xr();this.apiBasePath=t.apiBasePath??Gu,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??zu,this.publishCoalesceMs=t.publishCoalesceMs??Bu,this.now=t.now??(()=>performance.now()),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})}}}resync(){if(!this.disposed){if(this.state.phase==="streaming"||this.state.phase==="retrying"){this.pendingForceRefresh=!0;return}this.refresh({forceRefresh:!0})}}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};this.putItem(r,n)&&this.schedulePublishItems()}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.deleteItem(t)&&this.schedulePublishItems())}has(t){return this.itemMap.has(t)}readItems(){let t=Array.from(this.itemMap.values());if(this.pendingItemsChange.isEmpty())return t;let{appended:r,replaced:n,removed:o}=this.pendingItemsChange.build(this.state.itemsRevision,this.state.itemsRevision),a=new Set(r.map(d=>d.reportHubId)),i=new Map(n.map(({previous:d})=>[d.reportHubId,d])),s=[];for(let d of t){if(a.has(d.reportHubId))continue;let m=i.get(d.reportHubId);s.push(m===void 0?d:m)}for(let d of o)s.push(d);return s}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();let o=this.takePendingItems();this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,...o}),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>=$u){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(Wu*2**(this.consecutiveFailures-1),Ku))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.deleteItem(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"}),o=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(u=>{o=this.setTimeoutFn(()=>u(Pn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Pn)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(),s=hs(),d=!1,m=!1;for(;;){let u=await this.readWithStallGuard(i);if(u===Pn)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let p=u.done?s.end():s.push(u.value),y=!1;for(let v of p){if(v.trim()==="")continue;let f;try{f=JSON.parse(v)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let D=Rs(f);if(D==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(D==="error"){d=!0;continue}let S=f;y=this.absorbChunkLine(S)||y,typeof S.total=="number"&&Number.isFinite(S.total)&&S.total!==this.state.totalCount&&this.publish({totalCount:S.total}),S.nextCursor&&(S.nextCursor.businessDate===null||Ei(S.nextCursor.businessDate))&&(this.lastCursor=S.nextCursor),S.isLast&&(m=!0)}if(y&&(this.consecutiveFailures=0,this.schedulePublishItems()),u.done)break}return d?{kind:"retryable",error:new Error("Stream interrupted by server error")}:m?{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(o=>{r=this.setTimeoutFn(()=>o(Pn),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),t.streamAnchor!==void 0&&this.absorbStreamAnchor(t.streamAnchor);let r=t.provisional===!0,n=!1;for(let o of t.items)!o||typeof o.reportHubId!="number"||this.externalRemovalTombstones.has(o.reportHubId)||(r||this.activeSeenIds?.add(o.reportHubId),n=this.putItem(this.itemMap.get(o.reportHubId),o)||n);return n}putItem(t,r){return t===void 0?(this.itemMap.set(r.reportHubId,r),this.pendingItemsChange.add(r),!0):t.businessDate===r.businessDate&&t.sourceType===r.sourceType?!1:(this.itemMap.set(r.reportHubId,r),this.pendingItemsChange.change(t,r),!0)}deleteItem(t){let r=this.itemMap.get(t);return r===void 0?!1:(this.itemMap.delete(t),this.pendingItemsChange.remove(r),!0)}absorbStreamAnchor(t){if(t!==null&&!(typeof t=="string"&&Mn(t))){this.warn(`[DailyReportIdsStream] ids stream carried a malformed streamAnchor: ${String(t)}`);return}this.streamAnchorRevision+=1,this.publish({streamAnchor:{lastEventId:t,revision:this.streamAnchorRevision}})}takePendingItems(){if(this.pendingItemsChange.isEmpty())return{};this.lastItemsPublishAt=this.now();let t=Vu(),r=this.pendingItemsChange.build(this.state.itemsRevision,t);return this.pendingItemsChange=xr(),{loadedCount:this.itemMap.size,itemsRevision:t,itemsChanges:[...this.state.itemsChanges.slice(1-Uu),r]}}publishItems(){let t=this.takePendingItems();t.itemsRevision!==void 0&&this.publish(t)}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=this.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}/${ys}${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,o=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===o&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=o,n=this.setTimeoutFn(o,t)})}};var Yu=6e4,Z=null,vs=!1,ta=new Set,Es={loadedCount:0,itemsRevision:0,itemsChanges:[],totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},ra=()=>{for(let e of ta)e()},na=()=>{Z&&(Z.unsubscribe(),Z.client.dispose(),Z=null,ra())},Cr=e=>{if(typeof window>"u")return;let t=e.apiBasePath??yr.apiBasePath;if(Z&&(Z.userKey!==e.userKey||Z.apiBasePath!==t)&&(Z.userKey!==e.userKey&&gr(),na()),!Z){let r=new Ir({apiBasePath:t});Z={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(ra)},qu(),r.start(),ra();return}kn(Z)},kn=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>Yu&&e.client.refresh()},qu=()=>{if(vs||typeof document>"u"||typeof window>"u")return;vs=!0;let e=()=>{Z&&kn(Z)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},oa=e=>{if(!(typeof window>"u")){if(!Z){Cr(e);return}if(Z.userKey!==e.userKey){gr(),na(),Cr(e);return}kn(Z)}},aa=()=>{typeof window>"u"||!Z||kn(Z)},Dr=e=>{Z?.client.applyExternalUpsert(e)},Hn=e=>{Z?.client.applyExternalRemoval(e)},Ts=e=>Z===null?!1:Z.client.has(e),xs=()=>Z===null?[]:Z.client.readItems(),ia=()=>Z===null?0:Z.client.getState().itemsRevision,Fn=()=>{Z?.client.retry()},Bn=()=>{Z?.client.resync()},sa=(e={})=>{Z?.client.refresh(e)},Is=()=>Z?.userKey,Xu=e=>(ta.add(e),()=>ta.delete(e)),Zu=()=>Z?.client.getState()??Es,Ju=()=>Es,Xe=()=>ju(Xu,Zu,Ju);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{na()});var Pt=Kt(1,"daily-report-sse-connection"),rm=Object.freeze({kind:"resyncing"}),Cs={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},nm=1,Ds=Zo*3,om=Ds+Zo,da=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=F(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=Xe(),[d,m]=tm({generation:0,minAnchorRevision:1,anchored:!1}),u=d.generation>0&&!d.anchored,p=u&&a==="complete"&&!i?s:null,y=Vn(0),v=Vn(null),f=Vn(n);f.current=n;let D=Vn(0);D.current=o===null?0:o.revision,la(()=>{d.anchored||o===null||o.revision<d.minAnchorRevision||(v.current=o.lastEventId,y.current=0,m({...d,anchored:!0}))},[d,o]),la(()=>{if(!e||p===null)return;let{initialDelayMs:l,maxDelayMs:g,multiplier:T}=Cs,x=Un.random()*Math.min(g,l*T**y.current);Pt.warn(`SSE resync: the ids rescan gave up (${p.message}); rescanning in ${Math.round(x)} ms`);let M=Un.setTimer(()=>{y.current+=1,Bn()},x);return()=>Un.clearTimer(M)},[e,p]);let{status:S}=em(e&&d.anchored?`${r}#${d.generation}`:null,{resolveUrl:({lastEventId:l})=>l===null?r:`${r}?${ps}=${encodeURIComponent(l)}`,initialLastEventId:v.current,withCredentials:!1,createEventSource:Qu,runtime:Un,backoff:Cs,healthyOpenMs:om,nativeRetryLimit:nm,giveUpAfterFailures:"never",terminalEvents:ms,heartbeat:{staleAfterMs:Ds,onHeartbeat:null},events:{message:l=>{l.lastEventId!==""&&(Mn(l.lastEventId)?v.current=l.lastEventId:Pt.warn("SSE event carried a malformed id; keeping the previous cursor:",l.lastEventId));try{let g=JSON.parse(l.data),T=bs.safeParse(g);if(!T.success){Pt.error("SSE Validation Error:",T.error.flatten(),"raw message:",g);return}if(T.data.type==="connected"){Pt.info("SSE Subscribe Ready");return}t(T.data)}catch(g){Pt.error("SSE Parse Error",g)}}}});return la(()=>{if(S.kind==="faulted"){Pt.error("SSE connection faulted:",S.error);return}if(S.kind==="terminated")switch(S.terminalEvent){case"auth-required":f.current();return;case"forbidden":Pt.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let l=D.current+1;m(g=>({generation:g.generation+1,minAnchorRevision:l,anchored:!1})),Bn();return}}},[S]),e&&u?rm:S};import{createContext as am,useCallback as im,useContext as sm,useSyncExternalStore as As}from"react";var Ls=()=>{let e=new Map,t=new Map,r=(n,o)=>{o===null?e.delete(n):e.set(n,o);let a=t.get(n);if(a!==void 0)for(let i of[...a])i()};return{modeOf:n=>{let o=e.get(n);return o===void 0?"display":o.mode},inputOf:n=>{let o=e.get(n);return o===void 0||o.mode==="dismissed"?null:o.input},subscribe:(n,o)=>{let a=t.get(n),i=a===void 0?new Set:a;return a===void 0&&t.set(n,i),i.add(o),()=>{i.delete(o),i.size===0&&t.get(n)===i&&t.delete(n)}},open:(n,o,a)=>{let i=e.get(n);i!==void 0&&i.mode!=="dismissed"||r(n,{mode:a?"automatic":"editing",input:o})},setInput:(n,o)=>{let a=e.get(n);a===void 0||a.mode==="dismissed"||r(n,{mode:a.mode,input:{...a.input,...o}})},dismiss:n=>{e.get(n)?.mode!=="dismissed"&&r(n,{mode:"dismissed"})},discard:n=>{e.has(n)&&r(n,null)}}},ca=am(null),ht=()=>{let e=sm(ca);if(e===null)throw new Error("[daily-report] the draft store is read outside a DailyReportActionProvider");return e},_s=(e,t)=>im(r=>e.subscribe(t,r),[e,t]),Wn=e=>{let t=ht(),r=()=>t.modeOf(e);return As(_s(t,e),r,r)},ws=e=>{let t=ht(),r=()=>t.inputOf(e),n=As(_s(t,e),r,r);if(n===null)throw new Error(`[daily-report] the edit form is rendered for report ${e}, whose editor is not open`);return n};import{createContext as lm,useCallback as Ns,useContext as dm,useEffect as cm,useMemo as um,useRef as Os,useState as mm}from"react";import{jsx as Ms,jsxs as Ps}from"react/jsx-runtime";var pm=8e3,fm="fixed inset-x-0 bottom-4 z-[100] mx-auto flex w-fit max-w-[92vw] items-center gap-2 rounded-lg border border-red-300 border-solid bg-red-600 px-[15px] py-[7px] text-sm text-white shadow-lg motion-safe:fade-in motion-safe:slide-in-from-bottom-2 motion-safe:animate-in motion-safe:duration-200 dark:border-red-500/60 dark:bg-red-700",bm=R("flex size-6 shrink-0 items-center justify-center rounded font-bold text-white/90 hover:bg-red-700 hover:text-white dark:hover:bg-red-800",ni),ks=lm({notifyError:()=>{}}),Hs=()=>dm(ks),ua=({children:e})=>{let{onError:t,labels:r}=F(),[n,o]=mm(null),a=Os(t);a.current=t;let i=Os(null),s=Ns(u=>{let p=a.current;if(p){p(u);return}o(u)},[]),d=Ns(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);cm(()=>{if(n)return i.current=setTimeout(()=>o(null),pm),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let m=um(()=>({notifyError:s}),[s]);return Ps(ks.Provider,{value:m,children:[e,n&&Ps("div",{role:"alert","data-testid":"daily-report-error-banner",className:fm,children:[Ms("span",{className:"font-medium",children:n.message}),Ms("button",{type:"button","aria-label":r.close,onClick:d,className:bm,children:"\u2715"})]})]})};import{useState as ym}from"react";var Rm={items:[],held:new Map,revision:null,settled:!1},Fs=(e,t)=>{let r=0,n=e.length;for(;r<n;){let o=r+n>>1;Mt(e[o],t)<0?r=o+1:n=o}return r<e.length&&e[r].reportHubId===t.reportHubId?r:-1},Bs=(e,t,r)=>{let n=r,o=e.length;for(;n<o;){let a=n+o>>1;Mt(e[a],t)<=0?n=a+1:o=a}return n},gm=(e,t)=>e.businessDate===t.businessDate,hm=(e,t)=>{if(ea(t)||t.sort(Mt),e.length===0||Mt(e[e.length-1],t[0])<0)return e.concat(t);let r=[],n=0;for(let o of t){let a=Bs(e,o,n);a>n&&r.push(e.slice(n,a)),r.push([o]),n=a}return n<e.length&&r.push(e.slice(n)),r.flat()},Us=e=>{let{revision:t}=e;if(!e.settled||t===null)return e;let r=[...e.held.values()].filter(a=>a.item.reportHubId>0&&t>a.since).map(a=>a.item.reportHubId);if(r.length===0)return e;let n=new Set(r),o=new Map(e.held);for(let a of n)o.delete(a);return{...e,items:e.items.filter(a=>!n.has(a.reportHubId)),held:o}},Vs=(e,t,r,n)=>{let o=new Set,a=[];for(let s of t.readItems())o.add(s.reportHubId),n.has(s.reportHubId)||a.push(s);let i=new Map;for(let s of e.items){if(o.has(s.reportHubId)||n.has(s.reportHubId))continue;let d=e.held.get(s.reportHubId);i.set(s.reportHubId,d===void 0?{item:s,since:Number.NEGATIVE_INFINITY}:d),a.push(s)}return ea(a)||a.sort(Mt),Us({items:a,held:i,revision:t.itemsRevision,settled:r})},Sm=(e,t,r,n)=>{let o=e.revision;if(o===t.itemsRevision&&e.settled===r)return e;let a=o===null?null:o===t.itemsRevision?[]:gs(t.itemsChanges,o);if(o===null||a===null)return Vs(e,t,r,n);let i=xr();for(let l of a)i.fold(l);let{appended:s,replaced:d,removed:m}=i.build(o,t.itemsRevision),u=null,p=()=>(u===null&&(u=new Map(e.held)),u),y=[],v=new Set,f=[];for(let l of m)e.held.has(l.reportHubId)||Fs(e.items,l)===-1||(r||n.has(l.reportHubId)?v.add(l.reportHubId):p().set(l.reportHubId,{item:l,since:Number.NEGATIVE_INFINITY}));let D=(l,g)=>{let T=l.reportHubId,x=e.held.get(T);x!==void 0&&p().delete(T);let M=x===void 0?g:x.item,O=M===void 0?-1:Fs(e.items,M);if(n.has(T)){O!==-1&&v.add(T);return}if(O!==-1&&gm(e.items[O],l)){e.items[O].sourceType!==l.sourceType&&y.push({index:O,item:l});return}O!==-1&&v.add(T),f.push(l)};for(let{previous:l,next:g}of d)D(g,l);for(let l of s)D(l,void 0);let S=e.items;if(y.length>0){S=S.slice();for(let{index:l,item:g}of y)S[l]=g}return v.size>0&&(S=S.filter(l=>!v.has(l.reportHubId))),f.length>0&&(S=hm(S,f)),Us({items:S,held:u===null?e.held:u,revision:t.itemsRevision,settled:r})},Ws=(e,t,r)=>{let[n,o]=ym(()=>Vs(Rm,e,t,r));return(n.revision!==e.itemsRevision||n.settled!==t)&&o(a=>Sm(a,e,t,r)),[n,o]},Kn=(e,t,r)=>{if(e.items.some(a=>a.reportHubId===t.reportHubId))return e;let n=e.items.slice();n.splice(Bs(n,t,0),0,t);let o=new Map(e.held);return o.set(t.reportHubId,{item:t,since:r}),{...e,items:n,held:o}},Ar=(e,t)=>{if(!e.held.has(t))return e;let r=new Map(e.held);return r.delete(t),{...e,items:e.items.filter(n=>n.reportHubId!==t),held:r}},Ks=(e,t)=>{if(!e.items.some(n=>n.reportHubId===t))return e;let r=new Map(e.held);return r.delete(t),{...e,items:e.items.filter(n=>n.reportHubId!==t),held:r}},$s=e=>({...e,revision:null});import{jsx as fa}from"react/jsx-runtime";var et=Kt(1,"daily-report-action-context"),zn=globalThis.__DailyReportActionsContext??zs(null);globalThis.__DailyReportActionsContext=zn;var Gn=globalThis.__DailyReportActionStateContext??zs(null);globalThis.__DailyReportActionStateContext=Gn;var $n=(e,t)=>{let r=vm(e);if(r===null)throw new Error(`[daily-report] ${t} must be used within a DailyReportActionProvider`);return r},Ee=()=>$n(zn,"useDailyReportActions"),jn=()=>$n(Gn,"useDailyReportActionState"),Tm=()=>{let e=$n(zn,"useDailyReportActionContext"),t=$n(Gn,"useDailyReportActionContext");return ba(()=>({...e,...t}),[e,t])},kt=(e,t)=>{if(!e)return t;if(e.displayName?.trim())return e.displayName;if(e.name){let n=[e.name.familyName,e.name.givenName].filter(o=>typeof o=="string"&&o!=="").join(" ");if(n.trim())return n.trim()}let r=e.emails?.[0]?.value;return r||t},xm=()=>({pendingAddCommentIds:{current:new Map},pendingDeleteCommentIds:{current:new Map},pendingStarUpdates:{current:new Map},pendingReadUpdates:{current:new Map},resolvedIdMap:{current:new Map}}),Im=e=>({functions:{toggleSse:()=>e.current.toggleSse(),addComment:(t,r,n)=>e.current.addComment(t,r,n),deleteComment:(t,r,n)=>e.current.deleteComment(t,r,n),toggleStar:(t,r,n)=>e.current.toggleStar(t,r,n),toggleRead:(t,r,n)=>e.current.toggleRead(t,r,n),createReport:t=>e.current.createReport(t),updateReport:(t,r,n)=>e.current.updateReport(t,r,n),publishReport:(t,r)=>e.current.publishReport(t,r),deleteReport:(t,r)=>e.current.deleteReport(t,r),removeStaleItem:t=>e.current.removeStaleItem(t),refetchData:()=>e.current.refetchData(),clearCacheAndRefetch:()=>e.current.clearCacheAndRefetch()},onSseMessage:t=>e.current.handleSseMessage(t)}),ya=({children:e,user:t,userId:r})=>{let{apiBasePath:n,draftLabelName:o,labels:a}=F(),{notifyError:i}=Hs(),[s]=Lr(xm),{pendingAddCommentIds:d,pendingDeleteCommentIds:m,pendingStarUpdates:u,pendingReadUpdates:p,resolvedIdMap:y}=s,[v,f]=Lr(0),[D]=Lr(Ls),[S,l]=Lr(!1),g=qt(!1),T=qt(new Map),x=qt(new Set),M=qt(new Set),O=Xe(),V=O.phase==="complete"&&!O.isRevalidating,[k,P]=Ws({itemsRevision:O.itemsRevision,itemsChanges:O.itemsChanges,readItems:xs},V,x.current),q=k.items,H=ma(()=>Is()===(r??null),[r]),Q=async()=>{et.info("[DailyReportActionProvider] Refetching data without page reload..."),sa(),f(c=>c+1),z.listeners.forEach(c=>{c(-1)})},U=async()=>{et.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),gr(),x.current.clear(),P($s);try{sessionStorage.clear()}catch{}try{let c=new FormData;c.append("intent","clearCache");let b=await fetch(`${n}/action`,{method:"POST",body:c});if(!b.ok){let E=await b.json().catch(()=>null);et.warn("[DailyReportActionProvider] Failed to clear server-side cache:",b.status,E)}}catch(c){et.warn("[DailyReportActionProvider] Failed to clear server-side cache:",c)}H()&&(sa({forceRefresh:!0}),f(c=>c+1),z.listeners.forEach(c=>{c(-1)}))},re=qt(new Map),j=(c,b)=>{let E=re.current,L=E.get(c);if(L){L.messages.push(b);return}let _={messages:[b],unsubscribe:()=>{},timer:setTimeout(()=>{let w=E.get(c);w&&(w.unsubscribe(),E.delete(c),et.warn(`[SSE Queue] Expired: reportHubId=${c}, dropped=${w.messages.length} messages`))},3e4)};_.unsubscribe=zi(c,()=>{let w=E.get(c);if(w&&Ke(c,{ignoreExpiry:!0})){w.unsubscribe(),clearTimeout(w.timer),E.delete(c),et.info(`[SSE Queue] Replaying ${w.messages.length} messages for reportHubId=${c}`);for(let W of w.messages)Ce.current.handleSseMessage(W)}}),E.set(c,_)},K=c=>{M.current.add(c),setTimeout(()=>{M.current.delete(c)},3e4)},be=ma(c=>!!c&&M.current.has(c),[]),oe=ma((c,b)=>{b!==void 0&&Dr({reportHubId:c,businessDate:b})},[]),Ae=()=>{r&&(g.current=!0,l(c=>!c))};pa(()=>{if(!r)return;let c=setTimeout(()=>{g.current||l(!0)},Oi);return()=>clearTimeout(c)},[r]);let Oe=c=>{H()&&(x.current.add(c),Hn(c),P(b=>Ar(b,c)),D.discard(c))};pa(()=>{if(V)for(let c of x.current)Ts(c)||x.current.delete(c)},[V,O.itemsRevision]);let J=c=>{if(H()&&!be(c.clientTempId))switch(c.type){case"comment-add":{let{comment:b,reportHubId:E}=c,L=Ke(E,{ignoreExpiry:!0});if(L){if(L.postedComments.some(C=>C.id===b.id))return;let _=!1,w=d.current.get(E);if(w){for(let[C,N]of w.entries())if(N===b.content){w.delete(C),y.current.set(C,b.id),_=!0;break}}let W={...b,userName:b.userName||(_?kt(t,a.unknownUser):a.unknownUser),createdAt:b.createdAt||new Date().toISOString(),isMine:_},h={...L,postedComments:[...L.postedComments,W].sort((C,N)=>new Date(C.createdAt||0).getTime()-new Date(N.createdAt||0).getTime())};wt(E,h),hr(E),Sr(E),f(C=>C+1)}else j(E,c);break}case"comment-delete":{let{commentId:b,reportHubId:E}=c,L=Ke(E,{ignoreExpiry:!0});if(L){let _={...L,postedComments:L.postedComments.filter(w=>w.id!==b)};wt(E,_),hr(E),Sr(E),f(w=>w+1)}else j(E,c);break}case"status-update":{let{statusType:b,value:E,reportHubId:L}=c,_=Ke(L,{ignoreExpiry:!0});if(b==="star")if(u.current.get(L)===E&&u.current.delete(L),_){let w={..._,isStarred:E};wt(L,w),f(W=>W+1)}else j(L,c);else if(b==="read")if(p.current.get(L)===E&&p.current.delete(L),_){let w={..._,isRead:E};wt(L,w),f(W=>W+1)}else j(L,c);break}case"report-delete":{let{reportHubId:b}=c;x.current.add(b),Hn(b),P(_=>Ar(_,b)),D.discard(b);let E=re.current.get(b);E&&(E.unsubscribe(),clearTimeout(E.timer),re.current.delete(b));let L=Ke(b,{ignoreExpiry:!0});L?.date&&(Cn(b,L.date),f(_=>_+1));break}case"report-create":case"report-update":case"report-publish":{let{report:b}=c;Gi(b),(c.type==="report-create"||c.type==="report-publish")&&oe(b.reportHubId,b.date),f(E=>E+1);break}}};pa(()=>()=>{for(let c of re.current.values())c.unsubscribe(),clearTimeout(c.timer);re.current.clear()},[]);let ye=async(c,b,E,L,_,w)=>{w?.skipLock||hr(c),_.onOptimistic?.();let W=L.clientTempId||crypto.randomUUID();K(W);let h=new FormData;h.append("intent",b),h.append("reportHubId",String(c)),typeof E=="string"&&h.append("businessDate",E),h.append("operationTimestamp",String(Date.now())),h.append("clientTempId",W);for(let[C,N]of Object.entries(L))C!=="clientTempId"&&h.append(C,N);try{let C=await fetch(`${n}/action`,{method:"POST",body:h,headers:{Accept:"application/json"}});if(!C.ok){let $=new Error(`Failed to ${b}`);throw Object.assign($,{status:C.status}),$}let N=await C.json();if(N.status!=="OK"||b!=="create"&&String(N.reportHubId)!==String(c))throw new Error(`Invalid response for ${b}`);if(typeof N.clientTempId!="string"||N.clientTempId!==W)throw new Error(`Invalid clientTempId for ${b}`);if(!H())throw et.warn(`[executeAction] ${b} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${b}`);return await _.onSuccess?.(N)}catch(C){throw et.error(`${b} failed:`,C),H()&&(_.onFailure?.(),Ce.current.notifyError({operation:b,message:a.operationFailed(b),cause:C})),C}finally{w?.keepLock||w?.skipLock||Sr(c)}},Ue={toggleSse:Ae,addComment:async(c,b,E)=>{let L=-1*Date.now(),_=ye(c,"addComment",E,{content:b,clientTempId:String(L)},{onOptimistic:()=>{d.current.has(c)||d.current.set(c,new Map),d.current.get(c)?.set(L,b),f(w=>w+1)},onSuccess:w=>{if(!w.newComment)throw new Error("No new comment returned");let W=w.newComment.id;y.current.set(L,W),d.current.get(c)?.delete(L);let h=Ke(c,{ignoreExpiry:!0});return h&&!h.postedComments.some(C=>C.id===W)&&$e(c,{postedComments:[...h.postedComments,{...w.newComment,id:W,isMine:!0,userName:kt(t,a.unknownUser)}],updatedAt:w.updatedAt}),W},onFailure:()=>{d.current.get(c)?.delete(L)}},{skipLock:!0}).finally(()=>T.current.delete(L));T.current.set(L,_),await _},deleteComment:async(c,b,E)=>{m.current.has(c)||m.current.set(c,new Set),m.current.get(c)?.add(b),f(_=>_+1);let L=b;if(b<0){let _=y.current.get(b);if(_!==void 0)L=_;else{let w=T.current.get(b);if(!w)return;try{L=await w}catch{return}}}await ye(c,"deleteComment",E,{commentId:String(L)},{onSuccess:_=>{let w=typeof _.deletedCommentId=="string"?Number(_.deletedCommentId):L,W=Ke(c,{ignoreExpiry:!0});W&&($e(c,{postedComments:W.postedComments.filter(h=>h.id!==w),updatedAt:_.updatedAt}),$i(w)),m.current.get(c)?.delete(b)},onFailure:()=>{m.current.get(c)?.delete(b)}},{skipLock:!0})},toggleStar:async(c,b,E)=>{await ye(c,"toggleStar",E,{isStarred:String(b)},{onOptimistic:()=>{$e(c,{isStarred:b}),u.current.set(c,b),f(L=>L+1)},onSuccess:L=>{L.updatedStatus&&typeof L.updatedStatus.isStarred=="boolean"&&Ke(c,{ignoreExpiry:!0})&&($e(c,{isStarred:L.updatedStatus.isStarred,updatedAt:L.updatedAt}),f(w=>w+1)),u.current.delete(c)},onFailure:()=>{$e(c,{isStarred:!b}),u.current.delete(c)}},{skipLock:!0})},toggleRead:async(c,b,E)=>{await ye(c,"toggleRead",E,{isRead:String(b)},{onOptimistic:()=>{$e(c,{isRead:b}),p.current.set(c,b),f(L=>L+1)},onSuccess:L=>{L.updatedStatus&&typeof L.updatedStatus.isRead=="boolean"&&Ke(c,{ignoreExpiry:!0})&&($e(c,{isRead:L.updatedStatus.isRead,updatedAt:L.updatedAt}),f(w=>w+1)),p.current.delete(c)},onFailure:()=>{$e(c,{isRead:!b}),p.current.delete(c)}},{skipLock:!0})},createReport:async c=>{let b=-1*Date.now(),E=new Date().toISOString(),L={reportHubId:b,date:c,createdAt:E,author:kt(t,a.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:kt(t,a.unknownUser),updatedBy:kt(t,a.unknownUser),updatedAt:E,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:o,color:"#9ca3af"}],postedComments:[],attachments:[]};Ki(L,Date.now()+3e5,!1),P(_=>Kn(_,{reportHubId:b,businessDate:c},Number.NEGATIVE_INFINITY));try{let _=await ye(0,"create",c,{clientTempId:String(b)},{onSuccess:h=>h});if(_.clientTempId&&_.clientTempId!==String(b))throw et.warn(`[createReport] ID mismatch. req=${b}, res=${_.clientTempId}`),new Error("Optimistic ID mismatch");let w=Number(_.reportHubId),W=ia();return Dr({reportHubId:w,businessDate:c}),hr(w),_.report&&(wt(w,_.report),f(h=>h+1)),P(h=>Kn(Ar(h,b),{reportHubId:w,businessDate:c},W)),setTimeout(()=>Sr(w),1e3),w}catch(_){throw et.error("[createReport] Failed or mismatched",_),P(w=>Ar(w,b)),_}},updateReport:async(c,b,E)=>{await ye(c,"update",E,{title:b.title,content:b.content},{onSuccess:()=>{Ke(c,{ignoreExpiry:!0})&&($e(c,{subject:b.title,content:b.content}),f(_=>_+1))}})},publishReport:async(c,b)=>{let E=Ke(c,{ignoreExpiry:!0}),L=E?.labels||[];await ye(c,"publish",b,{},{onOptimistic:()=>{if(E){let _=E.labels.filter(w=>w.name!==o);$e(c,{labels:_}),f(w=>w+1)}},onSuccess:_=>{_.report&&(wt(c,_.report),f(w=>w+1)),b!==void 0&&Dr({reportHubId:c,businessDate:b})},onFailure:()=>{$e(c,{labels:L}),f(_=>_+1)}},{skipLock:!0})},deleteReport:async(c,b)=>{let E=q.find(L=>L.reportHubId===c);x.current.add(c),Hn(c),P(L=>Ks(L,c));try{await ye(c,"delete",b,{},{onSuccess:L=>{Cn(c,b),D.discard(c)}})}catch(L){if(L.status===404){Cn(c,b),D.discard(c);return}if(!H())return;x.current.delete(c);let w=E===void 0?b:E.businessDate,W=ia();w!==void 0&&Dr({reportHubId:c,businessDate:w}),E&&P(h=>Kn(h,E,W))}},removeStaleItem:Oe,refetchData:Q,clearCacheAndRefetch:U,handleSseMessage:J,notifyError:i},Ce=qt(Ue);Em(()=>{Ce.current=Ue});let[Me]=Lr(()=>Im(Ce)),at=da({isSseEnabled:S,onMessage:Me.onSseMessage}),Ve=ba(()=>({...s,...Me.functions,user:t}),[s,Me,t]),I=ba(()=>({version:v,items:q,isSseEnabled:S,sseStatus:at}),[v,q,S,at]);return fa(ca.Provider,{value:D,children:fa(zn.Provider,{value:Ve,children:fa(Gn.Provider,{value:I,children:e})})})};import{jsx as Dm}from"react/jsx-runtime";var Cm={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},St=Object.freeze({2:3,3:4,4:5,5:6}),He=({level:e,...t})=>{let r=Cm[e];return Dm(r,{...t})};import{memo as hl,useId as hp,useMemo as Sp,useRef as vp}from"react";var Gs=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var ga="tile",wr=Gs[ga],Am=2,_r=16,js=5,Ys=wr.maxWidth/Am,Lm=js*(Ys+_r)-_r,qs=e=>{let t=Math.min(js,1+Math.floor((e+_r)/(Ys+_r)));return Math.floor((Math.min(e,Lm)-(t-1)*_r)/t)},Ra=`round(nearest, 100cqi * ${wr.maxHeight} / ${wr.maxWidth}, 1px)`,Xs=Object.freeze({aspectRatio:`${wr.maxWidth} / ${wr.maxHeight}`,height:Ra,contain:"strict"}),Zs=Object.freeze({marginBlockEnd:`calc(round(up, ${Ra}, ${4}px) - ${Ra})`});var _m="download",wm="thumbnail",Nm="1",Xt=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[_m]:Nm})}`;case"thumbnail":return`${n}?${new URLSearchParams({[wm]:r.variant})}`}};import{createContext as Om,useContext as Mm}from"react";var Nr=Om(null),Zt=()=>Mm(Nr)===!1?-1:void 0,Js=(e,t)=>{let{before:r,after:n}=Ln(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as Bm,useContext as Um,useLayoutEffect as Vm,useMemo as Wm,useState as Km}from"react";import{flushSync as $m}from"react-dom";import{flushSync as Pm}from"react-dom";var ha=new WeakMap,Qs=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,km=e=>{e.frame=null;let t=[...e.observations.values()].filter(Qs);t.length!==0&&Pm(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Hm=(e,t)=>{for(let r of t){let n=e.observations.get(r.target);if(n===void 0)continue;let o=r.contentBoxSize[0].inlineSize;o!==0&&(n.observedTrackWidth=qs(o))}e.frame!==null||![...e.observations.values()].some(Qs)||(e.frame=e.view.requestAnimationFrame(()=>km(e)))},Fm=e=>{let t=ha.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] An attachment tile grid must belong to a document with a window to be measured");let n={view:r,observer:new r.ResizeObserver(o=>Hm(n,o)),observations:new Map,frame:null};return ha.set(e,n),n},el=(e,t)=>{let r=e.ownerDocument,n=Fm(r);if(n.observations.has(e))throw new Error("[daily-report] An attachment tile grid is already observed");let o={onTrackWidth:t,observedTrackWidth:null,handedTrackWidth:null};return n.observations.set(e,o),n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),!(n.observations.size>0)&&(n.frame!==null&&n.view.cancelAnimationFrame(n.frame),n.observer.disconnect(),ha.delete(r)))}};import{jsx as Mr,jsxs as nl}from"react/jsx-runtime";var Or="\u2026",zm=Or.codePointAt(0),Yn="data-attachment-file-name",Gm=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,jm=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,ol=Bm(null),al=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},tl=(e,t,r,n)=>{let o=Array.from(e),a=0,i=o.length-1;for(;a<i;){let s=Math.ceil((a+i)/2);n(o.slice(0,s).join("")+t)<=r?a=s:i=s-1}return o.slice(0,a).join("")},Ym=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=al(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${tl(o,Or,a,r)}${Or}`;return r(n+i)<=t?n+i:`${tl(n,Or+i,t,r)}${Or}${i}`},rl=new WeakMap,il=e=>{let t=rl.get(e);if(t!==void 0)return t;let r=e.createElement("canvas").getContext("2d");if(r===null)throw new Error("[daily-report] Attachment file names are fitted with a canvas 2D context, which this document cannot create");let n={context:r,font:"",measures:new Map};return rl.set(e,n),n},qm=(e,t)=>{let r=e.measures.get(t);if(r!==void 0)return r;let n=o=>(e.font!==t&&(e.context.font=t,e.font=t),e.context.measureText(o).width);return e.measures.set(t,n),n},sl=e=>{let t=new Set;for(let r of e.matchAll(Gm)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},Xm=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:sl(t.fontFamily),measure:qm(il(e.ownerDocument),r)}},Zm=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,Jm=e=>{let t=new Set([zm]);for(let r of e.querySelectorAll(`[${Yn}]`)){let n=r.getAttribute(Yn);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},Qm=(e,t)=>{for(let r of e.split(",")){let n=jm.exec(r.trim());if(n===null)return!0;let[,o,a]=n,i=Number.parseInt(o.replaceAll("?","0"),16),s=a===void 0?Number.parseInt(o.replaceAll("?","F"),16):Number.parseInt(a,16);for(let d of t)if(d>=i&&d<=s)return!0}return!1},Sa=new WeakMap,ll=e=>{let t=Sa.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return Sa.set(e,r),r},dl=(e,t)=>{let r=Xm(e.container.querySelector(`[${Yn}]`));e.fitted={trackWidth:t,nameFont:r};let n=ll(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=tp(n)),e.applyFit({width:t,measure:r.measure})},ep=(e,t)=>{let r=t.map(o=>({families:sl(o.family),unicodeRange:o.unicodeRange})),n=[];for(let o of e.registrations){let{fitted:a}=o;if(a===null)continue;let i=r.filter(d=>Array.from(d.families).some(m=>a.nameFont.families.has(m)));if(i.length===0)continue;let s=Jm(o.container);i.some(d=>Qm(d.unicodeRange,s))&&(il(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&$m(()=>{for(let[o,a]of n)dl(o,a)})},tp=e=>{let t=e.document.fonts,r=n=>{ep(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},rp=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=el(e,a=>dl(r,a)),o=ll(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),Sa.delete(o.document))}},cl=({containerRef:e,children:t})=>{let[r,n]=Km(null);return Vm(()=>{let o=e.current;return rp(o,i=>{n(s=>Zm(s,i)?s:i)})},[e]),Mr(ol,{value:r,children:t})},Pr=({fileName:e,className:t,testId:r})=>{let n=Um(ol),o=Wm(()=>n===null?null:Ym(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=al(e);return nl("span",{className:R("block min-w-0",t),title:e,"data-testid":r,[Yn]:e,children:[o===null?nl("span",{"aria-hidden":"true",className:"flex min-w-0",children:[Mr("span",{className:"truncate",children:a}),i!==""&&Mr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):Mr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),Mr("span",{className:"sr-only",children:e})]})};import sp from"lucide-react/dist/esm/icons/image-off.js";import{memo as lp,useCallback as Ta,useEffect as dp,useLayoutEffect as cp,useRef as xa,useState as up}from"react";var qn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),ul=qn.queueWaitMs+qn.readMs+qn.renderMs+qn.transferMarginMs;var np=Object.freeze({kind:"loaded"}),ml=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",d=null,m=null,u=null,p=null,y=null,v=U=>(U!==null&&n.clearTimeout(U),null),f=()=>{p?.(),p=null},D=()=>{y?.(),y=null},S=U=>U===null||U.kind==="loaded"?0:U.kind==="failing"?U.failedAttempts:i.maxAttempts,l=U=>{s="cooling",u=n.setTimeout(P,U)},g=()=>{o.abortInFlight(),D();let U=S(r.get(t))+1;if(U>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:U,retryAt:n.now()+i.retryDelayMs}),o.reset(),l(i.retryDelayMs)},T=U=>{if(s==="loading"){if(m=v(m),!U){g();return}s="done",r.set(t,np),D()}},x=()=>{m=null,T(!1)},M=()=>{s="loading",o.showActivity(!0),f(),m=n.setTimeout(x,i.loadTimeoutMs),o.grant()},O=()=>{d=null,s="queued",y=a.request(M)},V=()=>{d===null&&(d=n.setTimeout(O,i.settleMs))},k=U=>{if(o.showActivity(U),U){s==="watching"&&V();return}if(s==="queued"){D(),s="watching";return}d=v(d)},P=()=>{u=null,s="watching",o.showActivity(!1),p=n.observe(e,k)},q=()=>{let U=s==="loading";s="done",f(),d=v(d),m=v(m),u=v(u),o.showActivity(!1),U&&(o.abortInFlight(),y!==null&&o.reset()),D()},H=r.get(t);if(H?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:T,dispose:q};if(H?.kind==="exhausted"){if(n.now()-H.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:T,dispose:q};r.delete(t)}o.reset();let Q=H?.kind==="failing"?H.retryAt-n.now():0;return Q>0?l(Q):P(),{settle:T,dispose:q}};var op=e=>{if(!Number.isInteger(e)||e<=0)throw ve("createLoadSlotLimiter: limit","an integer >= 1",e);let t=0,r=new Set,n=()=>{for(let o of r){r.delete(o),o.onGranted();return}t-=1};return{request:o=>{let a={onGranted:o},i=!1;return t<e?(t+=1,o()):r.add(a),()=>{i||(i=!0,!r.delete(a)&&n())}}}},pl=op(2);var ap=e=>{if(!Number.isInteger(e)||e<=0)throw ve("createThumbnailProgressStore: maxUrls","an integer >= 1",e);let t=new Map,r=(n,o)=>{t.delete(n),t.set(n,o)};return{peek:n=>t.get(n)??null,get:n=>{let o=t.get(n);return o===void 0?null:(r(n,o),o)},set:(n,o)=>{if(r(n,o),t.size<=e)return;let[a]=t.keys();t.delete(a)},delete:n=>{t.delete(n)}}},va=ap(1024);var Ea=new WeakMap,ip=e=>{let t=Ea.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] A thumbnail frame must belong to a document with a window to be observed");let n=new WeakMap,a={observer:new r.IntersectionObserver(i=>{for(let s of i)n.get(s.target)?.onChange(s.isIntersecting)}),observations:n,observed:0};return Ea.set(e,a),a},fl=(e,t)=>{let r=e.ownerDocument,n=ip(r);if(n.observations.has(e))throw new Error("[daily-report] A thumbnail frame is already observed");let o={onChange:t};return n.observations.set(e,o),n.observed+=1,n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),n.observed-=1,!(n.observed>0)&&(n.observer.disconnect(),Ea.delete(r)))}};import{jsx as kr,jsxs as gp}from"react/jsx-runtime";var mp={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},pp="data-thumbnail-active",fp="data-daily-report-attachment-preview",yl={[fp]:""},bp=Object.freeze({settleMs:250,loadTimeoutMs:ul,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),bl=e=>{let t=va.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},yp=()=>({limiter:pl,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:fl,tuning:bp}),Rp=(e,t,r,n)=>({grant:()=>r(o=>o.url!==e||o.status==="granted"||o.status==="loaded"?o:{url:e,status:"granted"}),reset:()=>r(o=>o.url!==e||o.status==="idle"?o:{url:e,status:"idle"}),exhausted:()=>r(o=>o.url!==e||o.status==="failed"?o:{url:e,status:"failed"}),abortInFlight:()=>{let o=n.current;o?.getAttribute("src")===e&&o.removeAttribute("src")},shows:()=>{let o=n.current;return o?.getAttribute("src")===e&&o.complete&&o.naturalWidth>0},showActivity:o=>{t.toggleAttribute(pp,o)}}),Rl=lp(({thumbnailUrl:e,unavailableLabel:t})=>{let r=xa(null),n=xa(null),o=xa(null),[a,i]=up(()=>bl(e));a.url!==e&&i(bl(e)),cp(()=>{if(a.status==="failed")return;let u=n.current,p=a.status==="idle"?null:a.url;u.getAttribute("src")!==p&&(p===null?u.removeAttribute("src"):u.setAttribute("src",p))},[a]),dp(()=>{let u=r.current,p=ml(u,e,va,yp(),Rp(e,u,i,n));return o.current=p,()=>{o.current=null,p.dispose()}},[e]);let s=Ta(u=>{u!==null&&(n.current=u)},[]),d=Ta(()=>{i(u=>u.status==="granted"?{url:u.url,status:"loaded"}:u),o.current?.settle(!0)},[]),m=Ta(()=>{o.current?.settle(!1)},[]);return kr("span",{className:"block",children:kr("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":mp[a.status],style:Xs,className:"relative block w-full",children:kr("span",{"data-testid":"daily-report-attachment-thumbnail-skin",className:"absolute inset-0 flex items-center justify-center overflow-hidden rounded-lg bg-slate-100 after:pointer-events-none after:absolute after:inset-0 after:rounded-[inherit] after:ring-1 after:ring-slate-900/10 after:ring-inset dark:bg-slate-800 dark:after:ring-white/10 [[data-daily-report-attachment-preview]:active_&]:after:ring-blue-500 dark:[[data-daily-report-attachment-preview]:active_&]:after:ring-blue-400 motion-safe:[[data-thumbnail-state=pending][data-thumbnail-active]_&]:animate-pulse [[data-thumbnail-state=pending]_&]:bg-slate-200 dark:[[data-thumbnail-state=pending]_&]:bg-slate-700 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-300 dark:[@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-400/60",children:a.status==="failed"?gp("span",{className:`flex size-full flex-col items-center justify-center gap-1 px-2 text-center text-slate-600 text-xs dark:text-slate-400 ${pn}`,"data-testid":"daily-report-attachment-thumbnail-unavailable",children:[kr(sp,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):kr("img",{ref:s,alt:"",decoding:"async",fetchPriority:"low",draggable:!1,onLoad:d,onError:m,className:"max-h-full max-w-full opacity-0 motion-safe:transition-opacity motion-safe:duration-200 motion-safe:ease-out [[data-thumbnail-state=loaded]_&]:opacity-100","data-testid":"daily-report-attachment-thumbnail"})})})})});import{jsx as me,jsxs as tt}from"react/jsx-runtime";var gl=1024,Ia=["B","KB","MB","GB"],Sl="text-slate-500 text-sm line-through dark:text-slate-400",Ep=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=gl&&r<Ia.length-1;)t/=gl,r+=1;return r===0?`${t} ${Ia[r]}`:`${t.toFixed(1)} ${Ia[r]}`},vl=({attachment:e,labels:t,className:r})=>tt("span",{className:r,children:[Ep(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),Ca=({href:e,children:t,...r})=>{let n=Zt();return me("a",{href:e,...r,tabIndex:n,children:t})},El=({downloadUrl:e,label:t,fileName:r})=>tt(Ca,{href:e,className:R("relative ml-auto shrink-0 rounded-sm text-slate-500 text-xs underline decoration-slate-300 underline-offset-2 after:absolute after:-inset-x-2 after:-inset-y-1 hover:text-slate-700 hover:decoration-current dark:text-slate-400 dark:decoration-slate-600 dark:hover:text-slate-200",X),"data-testid":"daily-report-attachment-download",children:[t," ",me("span",{className:"sr-only",children:r})]}),Tp=hl(({attachment:e,apiBasePath:t,labels:r})=>{let n=me(Rl,{thumbnailUrl:Xt(t,e.id,{kind:"thumbnail",variant:ga}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return tt("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?tt("div",{className:"flex min-w-0 flex-col gap-2",children:[n,me(Pr,{fileName:e.fileName,className:Sl,testId:"daily-report-attachment-name"})]}):tt(Ca,{href:Xt(t,e.id,{kind:"inline"}),className:R("flex min-w-0 flex-col gap-2 rounded-lg",X),"data-testid":"daily-report-attachment-link",...yl,children:[n,me(Pr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),tt("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:Zs,children:[me(vl,{attachment:e,labels:r,className:"truncate"}),!o&&me(El,{downloadUrl:Xt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),xp=hl(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return tt("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 p-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[tt("div",{className:"flex min-w-0 flex-col",children:[n?me(Pr,{fileName:e.fileName,className:Sl,testId:"daily-report-attachment-name"}):me(Ca,{href:Xt(t,e.id,{kind:"inline"}),className:R("flex min-w-0 rounded-sm",X),"data-testid":"daily-report-attachment-link",children:me(Pr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),me(vl,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&me(El,{downloadUrl:Xt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),Ip=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=vp(null);return me(cl,{containerRef:o,children:me("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:me("ul",{"aria-labelledby":t,className:"grid @min-[1008px]:w-[calc(round(down,100%-64px,5px)+64px)] @min-[240px]:w-[calc(round(down,100%-16px,2px)+16px)] @min-[496px]:w-[calc(round(down,100%-32px,3px)+32px)] @min-[752px]:w-[calc(round(down,100%-48px,4px)+48px)] w-[round(down,100%,1px)] max-w-[1264px] @min-[1008px]:grid-cols-5 @min-[240px]:grid-cols-2 @min-[496px]:grid-cols-3 @min-[752px]:grid-cols-4 grid-cols-1 gap-[16px]","data-testid":"daily-report-attachment-grid",children:e.map(a=>me(Tp,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},Xn=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=F(),o=hp(),{tileAttachments:a,rowAttachments:i}=Sp(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:tt("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[me(He,{level:St[n],id:o,className:R("m-0",At),children:r.attachments}),tt("div",{className:"flex flex-col gap-4",children:[a.length>0&&me(Ip,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&me("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>me(xp,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as Kp}from"@aiquants/swipe-overlay";import{memo as _l,useCallback as to,useEffect as Dl,useId as $p,useRef as _a,useState as zp}from"react";import{useCallback as Il,useMemo as Cp,useRef as Dp,useState as Ap}from"react";var Tl=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw ve("mergeComments: unknownAuthorName","a non-blank string",n);let o=e.map((i,s)=>({id:`legacy-${s}`,authorName:i.name||n,content:i.text||"",isMine:!1,color:i.color||void 0,isLegacy:!0})),a=t.map(i=>({id:i.id,authorName:i.userName||n,content:i.content??"",createdAt:i.createdAt??"",isMine:r?i.userId===r:i.isMine,isLegacy:!1}));return[...o,...a]},xl=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 Da=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,addComment:i,deleteComment:s}=Ee(),{version:d}=jn(),{labels:m}=F(),u=m.unknownUser,[p,y]=Ap(null),v=Il(l=>e&&s(e.reportHubId,l,e.date),[e,s]),f=Il(l=>e&&t?i(e.reportHubId,l,e.date):Promise.resolve(),[e,t,i]),D=Dp([]);return{uiComments:Cp(()=>{if(!e)return[];let l=Tl(e.externalComments,e.postedComments,r,u),g=o.current.get(e.reportHubId);g?.size&&(l=l.filter(x=>!g.has(x.id)));let T=n.current.get(e.reportHubId);if(T?.size&&t){let x=new Set(l.map(O=>O.id)),M=kt(t,u);for(let[O,V]of T){if(g?.has(O)||x.has(O))continue;let k=a.current.get(O);k&&x.has(k)||l.some(P=>P.isMine&&P.content===V&&typeof P.id=="number"&&P.id>0)||l.push({id:O,authorName:M,content:V,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(l)===JSON.stringify(D.current)?D.current:(D.current=l,l)},[e,t,r,u,o,n,a,d]),handleAddComment:f,handleDeleteComment:v,pendingDeleteId:p,setPendingDeleteId:y,resolvedIdMap:a.current}};var Hr=e=>e.isComposing||e.keyCode===229,Zn=e=>({key:e.key,keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,defaultPrevented:e.defaultPrevented,isComposing:e.nativeEvent.isComposing,target:e.target});var Lp={kind:"hold"},_p=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),wp=(e,t)=>{let r=e.getAttribute("role");return r!==null&&_p.has(r)&&e!==t&&e.contains(t)},Fr=e=>e.key==="Escape"&&!e.defaultPrevented&&!Hr(e),Cl=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||Hr(e))return null;let r=e.target;if(!(fe(r)&&t.contains(r)))return null;let n=Qi(t);if(n.length===0)return Lp;let{before:o,within:a,after:i}=Ln(t,r);return e.shiftKey?o.some(s=>!wp(s,r))?null:{kind:"wrap",element:n[n.length-1]}:a.length>0||i.length>0?null:{kind:"wrap",element:n[0]}};import{Fragment as Np,jsx as Op}from"react/jsx-runtime";var he=({render:e})=>{let t=Zt();return Op(Np,{children:e(t)})};import Mp from"@heroicons/react/24/outline/TrashIcon.js";import{memo as Pp,useId as kp,useRef as Hp,useState as Fp}from"react";import{jsx as vt,jsxs as Jn}from"react/jsx-runtime";var Aa="data-comment-id",Qn="data-comment-delete-button",eo="data-comment-delete-slot",Bp=R(Le,ii),Up="relative flex h-5 items-center",Vp=R(De,"motion-safe:fade-in motion-safe:zoom-in-95 absolute top-full right-0 z-20 mt-1 whitespace-nowrap bg-red-600 font-bold text-white text-xs shadow-lg hover:bg-red-700 active:bg-red-800 motion-safe:animate-in motion-safe:duration-200",X),Wp=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,La=Pp(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:d})=>{let[m,u]=Fp(!1),{labels:p}=F(),y=kp(),v=Hp(null),f=Wp(e.id,o,d),D=()=>{let l=v.current;l!==null&&s(l),a(null),u(!0),typeof e.id=="number"&&n?.(e.id)},S=l=>{if(!f)return;let g=l.relatedTarget;fe(g)&&l.currentTarget.contains(g)||a(null)};return Jn("li",{[Aa]:e.id,"data-deleted":m?"true":void 0,className:R("relative rounded-xl border border-slate-200 border-solid bg-white p-[11px] 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",m&&"hidden",f?"z-50":"z-0 hover:z-10"),children:[Jn("div",{className:"mb-1 flex items-center justify-between",children:[vt("div",{className:R("font-semibold text-xs",xl(e.color)),children:ie(e.authorName)}),Jn("div",{className:"flex items-center gap-2",children:[e.createdAt&&vt("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:ae(e.createdAt)}),e.isMine&&!e.isLegacy&&Jn("div",{[eo]:e.id,className:Up,onBlur:S,children:[vt(he,{render:l=>vt("button",{ref:v,type:"button",tabIndex:l,className:Bp,title:p.commentDelete,"aria-label":p.commentDelete,"aria-expanded":f,"aria-controls":f?y:void 0,[Qn]:e.id,onClick:()=>i(e.id,f),children:vt(Mp,{"aria-hidden":"true",className:f?ge.deletePending:ge.delete})})}),f&&vt(he,{render:l=>vt("button",{id:y,type:"button",tabIndex:l,"data-delete-confirmation":!0,className:Vp,onClick:D,children:p.commentDeleteConfirm})})]})]})]}),vt("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});La.displayName="DailyReportPostedComment";import{Fragment as ef,jsx as Te,jsxs as wa}from"react/jsx-runtime";var Gp="data-daily-report-comment-section",jp="data-daily-report-comment-heading",Yp=R(it,X),wl=(e,t)=>e>0||t,qp=R("h-9 min-w-0 flex-1 rounded-lg border border-slate-300 border-solid bg-slate-50 px-[7px] text-sm focus:bg-white dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:focus:bg-slate-900",X),Xp=R("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",X),Al=e=>e.querySelector(`[${Qn}][aria-expanded="true"]`),Zp=(e,t,r)=>{let n=[...e.querySelectorAll(`[${Qn}]`)].filter(s=>s===t||s.closest("[data-deleted]")===null),o=n.indexOf(t),a=n.at(o+1);if(a!==void 0)return{kind:"trash",button:a};if(o>0)return{kind:"trash",button:n[o-1]};let i=[...e.querySelectorAll(`[${Aa}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return wl(i,r)?{kind:"heading"}:{kind:"report"}},Jp=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:d,onSectionRemoved:m})=>{let u=_a(null),p=Kp(),y=$p(),v=o!==null,f=to(()=>{let l=u.current,g=l===null?null:Al(l),T=g===null?null:g.closest(`[${eo}]`),x=l===null?null:_e(l);a(null),g!==null&&T!==null&&x!==null&&T.contains(x)&&g.focus({preventScroll:!0})},[a]);Dl(()=>{if(v)return p({id:y,onEscape:l=>Fr(l)?(f(),!0):!1})},[v,p,y,f]),Dl(()=>{let l=u.current;if(!v||l===null)return;let g=l.ownerDocument,T=x=>{let M=Al(l)?.closest(`[${eo}]`);M!=null&&fe(x.target)&&M.contains(x.target)||a(null)};return g.addEventListener("pointerdown",T,!0),()=>g.removeEventListener("pointerdown",T,!0)},[v,a]);let D=to((l,g)=>{g?f():a(l)},[f,a]),S=to(l=>{let g=u.current;if(g===null)return;let T=Zp(g,l,s);if(T.kind==="report"){m();return}let x=T.kind==="trash"?T.button:d.current;if(x===null)throw new Error("[daily-report] the comment section's heading is not attached");x.focus({preventScroll:!0})},[s,d,m]);return e.length===0?null:Te("ul",{ref:u,className:"space-y-2",children:e.map(l=>Te(La,{comment:l,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:D,onBeforeHide:S,resolvedIdMap:i},l.id))})},Ll=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=F(),a=_a(null);return wl(r.comments.length,r.canComment)?wa("div",{[Gp]:"",className:R("flex flex-col gap-2",e),children:[Te(He,{ref:a,level:St[o],tabIndex:-1,[jp]:"",className:Yp,children:n.comments}),Te(Jp,{...r,headingRef:a}),t]}):null},Nl=_l(({report:e,canComment:t,onSectionRemoved:r,formPlacement:n,sectionClassName:o,comments:a,onAddComment:i,onDeleteComment:s,pendingDeleteId:d,onPendingDeleteIdChange:m,resolvedIdMap:u})=>{let p=t?Te(Qp,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:i}):null,y={comments:a,canComment:t,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:s,pendingDeleteId:d,onPendingDeleteIdChange:m,resolvedIdMap:u,onSectionRemoved:r,className:o};return n==="in-section"?Te(Ll,{...y,children:p}):wa(ef,{children:[Te(Ll,{...y}),p&&Te("div",{className:"mt-auto",children:p})]})});Nl.displayName="ReportCommentsView";var Br=_l(({report:e,userId:t,canComment:r,onCommentAdded:n,onSectionRemoved:o,formPlacement:a,sectionClassName:i})=>{let{user:s}=Ee(),{uiComments:d,handleAddComment:m,handleDeleteComment:u,pendingDeleteId:p,setPendingDeleteId:y,resolvedIdMap:v}=Da(e,s,t),f=to(async D=>{await m(D),n?.()},[m,n]);return Te(Nl,{report:e,canComment:r,onSectionRemoved:o,formPlacement:a,sectionClassName:i,comments:d,onAddComment:f,onDeleteComment:u,pendingDeleteId:p,onPendingDeleteIdChange:y,resolvedIdMap:v})});Br.displayName="ReportComments";var Qp=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=zp(!1),a=_a(null),{labels:i}=F();return wa("form",{className:"flex gap-2",ref:a,onSubmit:async d=>{d.preventDefault();let u=new FormData(d.currentTarget).get("content")?.trim();if(u&&r){o(!0),a.current?.reset();try{await r(u)}catch{if(a.current){let p=a.current.elements.namedItem("content");p&&(p.value=u)}}finally{o(!1)}}},children:[Te("input",{type:"hidden",name:"intent",value:"addComment"}),Te("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&Te("input",{type:"hidden",name:"businessDate",value:t}),Te(he,{render:d=>Te("input",{type:"text",name:"content",tabIndex:d,placeholder:i.commentPlaceholder,className:qp,autoComplete:"off"})}),Te(he,{render:d=>Te("button",{type:"submit",tabIndex:d,className:Xp,disabled:n,children:i.commentSend})})]})};import{useState as df}from"react";import{Slot as tf}from"@radix-ui/react-slot";import{cva as rf}from"class-variance-authority";import*as Ol from"react";import{jsx as of}from"react/jsx-runtime";var nf=rf(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 ${X}`,{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-solid 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-2",lg:"h-11 rounded-md px-4",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),dt=Ol.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>of(n?tf:"button",{className:R(nf({variant:t,size:r,className:e})),ref:a,...o}));dt.displayName="Button";import{jsx as af}from"react/jsx-runtime";function Ml({className:e,type:t,...r}){return af("input",{type:t,"data-slot":"input",className:R(`flex h-9 w-full min-w-0 rounded-md border border-input border-solid bg-transparent px-[7px] py-[3px] text-base shadow-xs 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 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${X}`,e),...r})}import*as Pl from"@radix-ui/react-label";import{jsx as sf}from"react/jsx-runtime";function Ur({className:e,...t}){return sf(Pl.Root,{"data-slot":"label",className:R("flex select-none items-center gap-2 font-medium text-sm leading-none [:where(.group)[data-disabled=true]_&]:pointer-events-none [:where(.group)[data-disabled=true]_&]:opacity-50 [:where(.peer):disabled~&]:cursor-not-allowed [:where(.peer):disabled~&]:opacity-50",e),...t})}import{jsx as lf}from"react/jsx-runtime";function kl({className:e,...t}){return lf("textarea",{"data-slot":"textarea",className:R(`flex min-h-15 w-full rounded-md border border-input border-solid bg-transparent p-[7px] text-base shadow-xs placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${X}`,e),...t})}import{jsx as ze,jsxs as ro}from"react/jsx-runtime";var Jt=e=>({title:e.subject??"",content:e.content??""}),cf=e=>{e.preventDefault()},no=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=Ee(),{labels:i}=F(),s=ht(),{title:d,content:m}=ws(e.reportHubId),[u,p]=df(!1),y=async()=>{p(!0);try{await o(e.reportHubId,{title:d,content:m},e.date)}catch{}finally{p(!1)}},v=async()=>{p(!0);try{await o(e.reportHubId,{title:d,content:m},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{p(!1)}},f=`report-title-${e.reportHubId}`,D=`report-content-${e.reportHubId}`;return ro("form",{className:"space-y-4 p-1",onSubmit:cf,children:[ro("div",{className:"space-y-2",children:[ze(Ur,{htmlFor:f,children:i.formTitle}),ze(he,{render:S=>ze(Ml,{ref:n,id:f,value:d,onChange:l=>s.setInput(e.reportHubId,{title:l.target.value}),placeholder:i.formTitlePlaceholder,disabled:u,tabIndex:S})})]}),ro("div",{className:"space-y-2",children:[ze(Ur,{htmlFor:D,children:i.formContent}),ze(he,{render:S=>ze(kl,{id:D,value:m,onChange:l=>s.setInput(e.reportHubId,{content:l.target.value}),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:u,tabIndex:S})})]}),ro("div",{className:"flex justify-end gap-2",children:[t&&ze(he,{render:S=>ze(dt,{type:"button",variant:"outline",onClick:t,disabled:u,tabIndex:S,children:i.formCancel})}),ze(he,{render:S=>ze(dt,{type:"button",variant:"secondary",onClick:y,disabled:u,tabIndex:S,children:i.formSave})}),ze(he,{render:S=>ze(dt,{type:"button",onClick:v,disabled:u,tabIndex:S,children:i.formPublish})})]})]})};import Sf from"lucide-react/dist/esm/icons/check.js";import vf from"lucide-react/dist/esm/icons/pencil.js";import Ef from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as Hl}from"react/jsx-runtime";var ao=24,Fl=2,uf=20,oo=5,mf=3,pf=()=>{let e=Math.cos(2*Math.PI/oo)/Math.cos(Math.PI/oo),t=Array.from({length:2*oo},(y,v)=>{let f=-Math.PI/2+v*Math.PI/oo,D=v%2===0?1:e;return{x:D*Math.cos(f),y:D*Math.sin(f)}}),r=t.map(y=>y.x),n=t.map(y=>y.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],d=(uf-Fl)/(a-o),m=ao/2-d*(o+a)/2,u=ao/2-d*(i+s)/2,p=y=>String(Number(y.toFixed(mf)));return t.map(y=>`${p(m+d*y.x)},${p(u+d*y.y)}`).join(" ")},ff=pf(),Qt=({filled:e})=>Hl("svg",{viewBox:`0 0 ${ao} ${ao}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:Fl,strokeLinejoin:"round",className:e?ge.starOn:ge.starOff,children:Hl("polygon",{points:ff})});import{Fragment as bf,jsx as io,jsxs as yf}from"react/jsx-runtime";var er=({config:e,id:t,className:r})=>io("span",{id:t,className:R(di,e.badgeClassName,r),children:e.name===void 0?e.label:yf(bf,{children:[io("span",{"aria-hidden":"true",children:io("abbr",{title:e.name,children:e.label})}),io("span",{className:"sr-only",children:e.name})]})});import{jsx as Bl}from"react/jsx-runtime";var so=24,Rf=6,tr=({className:e})=>Bl("svg",{viewBox:`0 0 ${so} ${so}`,"aria-hidden":"true",className:R(ge.read,e),children:Bl("circle",{cx:so/2,cy:so/2,r:Rf,fill:"currentColor"})});import{jsx as hf}from"react/jsx-runtime";var gf=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,Ht=({text:e})=>gf.test(e)?hf("time",{dateTime:e,children:e}):e;import{jsx as Fe,jsxs as Vl}from"react/jsx-runtime";var se=({label:e,classNames:t,valueId:r,children:n})=>Vl("div",{className:t.field,children:[Fe("dt",{className:t.label,children:e}),Fe("dd",{id:r,className:R("m-0",t.value),children:n})]}),Et={field:"flex flex-col gap-1",label:"font-semibold text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:"text-slate-700 text-sm dark:text-slate-200"},Ul=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return Vl("dl",{className:"m-0 flex flex-col gap-2 rounded-xl bg-slate-100 p-3 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[Fe(se,{label:r.author,classNames:Et,children:ie(e.author)}),Fe(se,{label:r.createdAt,classNames:Et,children:Fe(Ht,{text:ae(e.createdAt)})}),Fe(se,{label:r.updatedBy,classNames:Et,children:ie(e.updatedBy)}),Fe(se,{label:r.updatedAt,classNames:Et,children:Fe(Ht,{text:ae(e.updatedAt)})}),Fe(se,{label:r.businessDate,classNames:Et,children:Fe(Ht,{text:ae(e.date)})}),t!==null&&Fe(se,{label:r.visitTime,classNames:Et,children:t}),n&&Fe(se,{label:r.category,classNames:Et,children:n}),o&&Fe(se,{label:r.creationCategory,classNames:Et,children:o})]})};import{jsx as ne,jsxs as Kl}from"react/jsx-runtime";var lo={field:R(De,"gap-1 whitespace-nowrap bg-slate-100 text-slate-800 dark:bg-slate-800 dark:text-slate-100"),label:"text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:""},Tf={field:R(De,"gap-1 whitespace-nowrap bg-blue-50 font-semibold text-blue-800 text-xs dark:bg-blue-500/15 dark:text-blue-200"),label:"text-blue-700 text-xs uppercase tracking-wide dark:text-blue-300",value:""},Wl={field:R(De,"gap-1 whitespace-nowrap bg-amber-100 text-amber-900 dark:bg-amber-500/15 dark:text-amber-200"),label:"text-amber-800 text-xs uppercase tracking-wide dark:text-amber-300",value:""},$l=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:d,sourceConfig:m,visitTimeDisplay:u,markerIds:p,labels:y})=>{let v=r?y.starRemove:y.starAdd,f=t?y.markUnread:y.markRead,D=e.category?.trim(),S=e.creationCategory?.trim();return Kl("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[ne(br,{id:p.attachments,count:e.attachments.length,label:y.attachments}),m?ne(er,{id:p.source,config:m}):null,ne(he,{render:l=>ne("button",{type:"button",onClick:a,tabIndex:l,className:Le,title:v,"aria-label":v,"data-detail-star-button":e.reportHubId,children:ne(Qt,{filled:r})})}),ne(he,{render:l=>ne("button",{type:"button",onClick:o,tabIndex:l,className:Le,title:f,"aria-label":f,"data-detail-read-button":e.reportHubId,children:t?ne(Sf,{className:ge.read}):ne(tr,{})})}),i&&ne(he,{render:l=>ne("button",{ref:s,type:"button",onClick:i,tabIndex:l,"data-detail-edit-button":e.reportHubId,className:Le,title:y.edit,"aria-label":y.edit,children:ne(vf,{className:ge.edit})})}),n&&ne(he,{render:l=>ne("button",{type:"button",onClick:d,tabIndex:l,"data-detail-delete-button":e.reportHubId,className:Le,title:y.deleteReport,"aria-label":y.deleteReport,children:ne(Ef,{className:ge.delete})})}),Kl("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[ne(se,{label:y.id,classNames:Tf,children:e.reportHubId}),ne(se,{label:y.businessDate,classNames:lo,children:ne(Ht,{text:ae(e.date)})}),ne(se,{label:y.author,classNames:lo,children:ie(e.employeeName)}),ne(se,{label:y.visitTime,classNames:lo,children:ie(u)}),ne(se,{label:y.updatedAt,classNames:lo,children:ne(Ht,{text:ae(e.updatedAt)})}),D&&ne(se,{label:y.category,classNames:Wl,children:D}),S&&ne(se,{label:y.creationCategory,classNames:Wl,children:S})]})]})};import{useCallback as Zf,useContext as yd,useLayoutEffect as Ha,useRef as Rd}from"react";import{startTransition as Wf,useCallback as ee,useLayoutEffect as Ft,useMemo as pd,useRef as It,useState as zr,useSyncExternalStore as Kf}from"react";import{flushSync as fd}from"react-dom";var rr=e=>({owner:e,focusIndex:null}),Na=Object.freeze({owner:null,focusIndex:null}),zl=(e,t)=>{if(e.length===0)return Na;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},Gl=(e,t)=>{switch(t.kind){case"focusIn":return rr(t.row);case"focusOut":return t.to==="outside"?Na:rr(e);case"pointerPress":return t.at==="outside"?Na:rr(e);case"listChanged":{if(e===null)return rr(e);let r=le(t.items,e.reportHubId,e.index);return r===-1?zl(t.items,e.index):rr(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?rr(e):zl(t.items,t.selection.index)}};var xf=new Set(["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","ScrollLock","Shift","Super","Symbol","SymbolLock"]),co={capture:!0},uo=new WeakMap,If=e=>{let t=o=>{xf.has(o.key)||(n.last="keyboard")},r=()=>{n.last="pointer"},n={observers:0,last:null,detach:()=>{e.removeEventListener("keydown",t,co),e.removeEventListener("pointerdown",r,co)}};return e.addEventListener("keydown",t,co),e.addEventListener("pointerdown",r,co),n},jl=e=>{let t=uo.get(e),r=t===void 0?If(e):t;t===void 0&&uo.set(e,r),r.observers+=1;let n=!1;return()=>{n||(n=!0,r.observers-=1,!(r.observers>0)&&(r.detach(),uo.delete(e)))}},Yl=e=>{let t=uo.get(e);return t===void 0?null:t.last};var mo=e=>e.matches(":focus-visible")&&Yl(e.ownerDocument)!=="pointer";var Cf="data-daily-report-keyboard-focus",Tt={capture:!0},ql=e=>{let t=jl(e.ownerDocument),r=s=>{e.toggleAttribute(Cf,fe(s)&&mo(s))},n=s=>r(s.target),o=s=>{fe(s.relatedTarget)&&e.contains(s.relatedTarget)||r(null)},a=()=>r(null);e.addEventListener("focusin",n,Tt),e.addEventListener("keydown",n,Tt),e.addEventListener("focusout",o,Tt),e.addEventListener("pointerdown",a,Tt);let i=_e(e);return r(i!==null&&e.contains(i)?i:null),()=>{e.removeEventListener("focusin",n,Tt),e.removeEventListener("keydown",n,Tt),e.removeEventListener("focusout",o,Tt),e.removeEventListener("pointerdown",a,Tt),r(null),t()}};var Df='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',Af=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],Lf=Af.map(e=>`[role="${e}"]`).join(", "),_f=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),wf=new Set(["Enter"," "]),Nf=new Map([["Home","exitBefore"],["End","exitAfter"]]),Oa=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return Nf.get(e.key)??null;let r=_f.get(e.key);return r!==void 0?r:wf.has(e.key)&&t.rowActivation?"activate":null},Xl=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},Zl=(e,t,r)=>{let n=Oa(e,r);if(n===null||e.defaultPrevented||Hr(e)||t===null||!fe(e.target)||!t.contains(e.target))return null;let o=gt(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:Xl(e.target,Df,t)||Xl(e.target,Lf,t)?null:n};var po={kind:"stay"},fo=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},Jl=e=>Math.floor(.875*e),xt=(e,t)=>({kind:"move",index:e,align:t}),Vr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",Of=({index:e,count:t,viewport:r,focusedRowTop:n,heightOf:o})=>{let a=o(e),i=n+a,s={index:e+1,top:i};for(let d=e+1;d<t;d++){let m=o(d);if(a+=m,a>r)break;s={index:d,top:i},i+=m}return s},Mf=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>{let o=n(e),a=r,i={index:e-1,top:r-n(e-1)};for(let s=e-1;s>=0;s--){let d=n(s);if(a-=d,o+=d,o>t)break;i={index:s,top:a}}return i},Pf=(e,t,r)=>{let{index:n,count:o,viewport:a,focusedRowTop:i,heightOf:s}=t,d=i+s(n);switch(e){case"previous":{if(n===0)return po;if(r==="top")return xt(n-1,"top");let m=s(n-1);return xt(n-1,Vr(i-m,m,a,-1))}case"next":return n===o-1?po:r==="top"?xt(n+1,"top"):xt(n+1,Vr(d,s(n+1),a,1));case"first":return xt(0,"top");case"last":return xt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(d>a)return{kind:"reveal",delta:Math.min(d-a,Jl(a))};if(n===o-1)return po;let m=Of(t);return xt(m.index,Vr(m.top,s(m.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,Jl(a))};if(n===0)return po;let m=Mf(t);return xt(m.index,Vr(m.top,s(m.index),a,-1))}}},kf=({index:e,focusedRowTop:t,heightOf:r},n)=>nd(n,{index:e,offsetPx:-t},r),td=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let d=Pf(e,o,n);if(d.kind==="stay")break;d.kind==="reveal"?(i+=d.delta,o={...o,focusedRowTop:o.focusedRowTop-d.delta}):d.align==="none"?o={...o,index:d.index,focusedRowTop:kf(o,d.index)}:(a={index:d.index,align:d.align},i=0,o={...o,index:d.index,focusedRowTop:d.align==="top"?0:o.viewport-o.heightOf(d.index)})}return{index:o.index,alignment:a,scrollDelta:i}},rd=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Vr(r,n(e),t,1),nd=(e,t,r)=>{let n=-t.offsetPx;for(let o=t.index;o<e;o++)n+=r(o);for(let o=e;o<t.index;o++)n-=r(o);return n},Wr=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;let i=fo(n);if(n.kind==="uniform")return{index:t,count:r,viewport:o,focusedRowTop:t*n.rowHeight-a,heightOf:i};let s=e.getScrollAnchor();return s===null?null:{index:t,count:r,viewport:o,focusedRowTop:nd(t,s,i),heightOf:i}},Ql=1,od=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=Kr(o,n,t,r);return{start:Math.max(0,o.index-Ql),end:Math.min(t-1,a+Ql)}},Kr=(e,t,r,n)=>{let o=fo(n),a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},ad=(e,t)=>e.top<t.top?e.top-t.top:e.bottom>t.bottom?Math.min(e.bottom-t.bottom,e.top-t.top):0,ed=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),id=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(ed(t,n,o))return t.reportHubId;if(ed(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var Pa=1,$r=2,Ma=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?Pa:0)|(n===t||n===r?$r:0),Hf=e=>{if(vr(e))return!0;let t=_e(e);return t!==null&&e.contains(t)},Ff=(e,t)=>{let r=e.closest(`[${wn}]`);return r!==null&&r!==e&&Ot(r)===t&&_e(e)===r},sd={capture:!0},ld=({getContainer:e,initialSelectedId:t})=>{let r={selectedId:t,tabStopId:t,arrivingId:null},n=null,o=null,a=!1,i=null,s=new Map,d=new Map,m=null,u=new Map,p=l=>Ma(r,l),y=l=>{let g=d.get(l);if(g===void 0)return;let T=(p(l)&$r)!==0?"0":"-1";g.getAttribute("tabindex")!==T&&g.setAttribute("tabindex",T)},v=()=>{if(n===null)return;let l=n;n=null,y(l)},f=(l,g)=>{v();let T={...r};l(r);let x=r,M=new Set([T.selectedId,T.tabStopId,T.arrivingId,x.selectedId,x.tabStopId,x.arrivingId]);for(let O of M){if(O===null)continue;let V=Ma(T,O),k=Ma(x,O);if(V===k)continue;((V^k)&$r)!==0&&(O===g?n=O:y(O));let P=s.get(O);if(P!==void 0)for(let q of[...P])q()}},D=l=>{let g=l.ownerDocument,T=n!==null&&!vr(l);T?g.addEventListener("focusout",v,sd):v(),a=!0;try{l.focus({preventScroll:!0})}finally{a=!1,T&&g.removeEventListener("focusout",v,sd),v()}},S=l=>{let g=e();g!==null&&(o=null,Hf(g)&&D(l))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:p,setTabStopId:l=>{f(g=>{g.tabStopId=l},null)},settleSelection:(l,g)=>{f(T=>{T.selectedId=l,T.tabStopId=g,T.arrivingId=null},null)},arrive:l=>{f(g=>{g.arrivingId=l},l)},subscribe:(l,g)=>{let T=s.get(l)??new Set;return T.add(g),s.set(l,T),()=>{T.delete(g),T.size===0&&s.get(l)===T&&s.delete(l)}},registerFocusTarget:(l,g)=>{if(d.set(l,g),y(l),o===l){S(g);return}i===null||i.reportHubId!==l||(vr(g)||Ff(g,l))&&D(g)},unregisterFocusTarget:(l,g)=>{d.get(l)===g&&d.delete(l)},requestFocus:l=>{o=l;let g=d.get(l);g!==void 0&&S(g)},cancelFocusRequest:()=>{o=null},pendingFocusId:()=>o,isMovingFocus:()=>a,getFocusOwner:()=>i,setFocusOwner:l=>{i=l},restoreFocus:l=>{if(i===null||i.reportHubId!==l)return;let g=d.get(l);g===void 0||!vr(g)||D(g)},holdBodiesOutside:l=>{m=l},isBodyHeldAt:l=>m!==null&&(l<m.start||l>m.end),registerHeldBody:(l,g,T)=>{let x={indexHint:g,release:T};return u.set(l,x),()=>{u.get(l)===x&&u.delete(l)}},releaseHeldBodiesWithin:(l,g)=>{if(l!==null)for(let[T,{indexHint:x,release:M}]of[...u]){let O=g(T,x);O>=l.start&&O<=l.end&&M()}}}};var Ze={previous:{axis:"row",amount:-1},next:{axis:"row",amount:1},pageBackward:{axis:"page",amount:-1},pageForward:{axis:"page",amount:1},first:{axis:"first",amount:1},last:{axis:"last",amount:1},activate:{axis:"activate",amount:1}},ka=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),Bf=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),dd=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Uf=new Map(Object.values(Ze).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),cd=e=>{let t=Uf.get(e);if(t===void 0)throw new Error(`[daily-report] a repeat step must be one of REPEAT_STEPS; got the ${e.axis} axis with ${e.amount}`);return t},Vf=(e,t,r)=>e==="row"||e==="page"?t+r:r,ud=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:cd(e)}),md=(e,t)=>{switch(t.kind){case"repeat":{let{step:r}=t;if(e.axis!==r.axis)throw new Error(`[daily-report] a ${r.axis} repeat cannot continue a ${e.axis} stream`);return e.fence==="open"?(e.fence="immediate",cd(r)):(e.pending=Vf(e.axis,e.pending,r.amount),ka)}case"frame":{if(e.fence==="open")return ka;if(e.fence==="immediate")return e.fence="flush",Bf;if(e.pending===0)return e.fence="open",ka;let r=e.pending;return e.pending=0,{apply:{axis:e.axis,amount:r},flush:!0,requestFrame:!0,ended:!1}}case"keyup":return e.pending===0?dd:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return dd}};var $f=Object.freeze({kind:"frame"}),zf=Object.freeze({kind:"keyup"}),Gf=Object.freeze({kind:"cancel"}),jf=Object.freeze({previous:Object.freeze({kind:"repeat",step:Ze.previous}),next:Object.freeze({kind:"repeat",step:Ze.next}),pageBackward:Object.freeze({kind:"repeat",step:Ze.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:Ze.pageForward}),first:Object.freeze({kind:"repeat",step:Ze.first}),last:Object.freeze({kind:"repeat",step:Ze.last}),activate:Object.freeze({kind:"repeat",step:Ze.activate})}),Yf=(e,t)=>{if(e==="first"||e==="last")return{command:e,count:1};let r=Math.abs(t);return e==="row"?{command:t>0?"next":"previous",count:r}:{command:t>0?"pageForward":"pageBackward",count:r}},qf=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),Xf=e=>{let t=Ot(e),r=Gt(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},bo=(e,t)=>{let r=ee(a=>e.subscribe(t,a),[e,t]),n=ee(()=>e.rowStateOf(t),[e,t]),o=Kf(r,n,n);return{isCurrent:(o&Pa)!==0,isTabStop:(o&$r)!==0}},yo=(e,t,r)=>{let[n,o]=zr(()=>!e.isBodyHeldAt(r));return Ft(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Wf(a),i},[e,t,r,n]),n},bd=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:d,rowActivation:m})=>{let[u]=zr(()=>ld({getContainer:()=>n.current,initialSelectedId:t})),p=It({items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m}),y=It(null),v=It(null),[f,D]=zr(null),S=It(null),l=It(null),[g,T]=zr(null),x=It(!1),M=It(null),[O,V]=zr(0),k=pd(()=>({id:t,indexHint:t===null?null:ts(f,t)}),[t,f]),P=It(k);Ft(()=>{p.current={items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m},P.current=k},[e,r,s,d,m,k]);let q=ee((I,c)=>{let b=v.current;if(b!==null&&b.items===I&&b.reportHubId===c)return b.index;let E=le(I,c,b!==null&&b.reportHubId===c?b.index:null);return E!==-1&&(v.current={items:I,reportHubId:c,index:E}),E},[]),H=ee((I,c)=>{v.current={items:p.current.items,reportHubId:I,index:c},D(b=>b!==null&&b.reportHubId===I&&b.index===c?b:{reportHubId:I,index:c})},[]),Q=ee(I=>{let c=u.getFocusOwner();if(c===null)return null;let b=le(I,c.reportHubId,c.index);return b===-1?null:{reportHubId:c.reportHubId,index:b}},[u]),U=ee(I=>{let c=p.current.items,b=I===null?null:{reportHubId:I,index:q(c,I)};return id(c,Q(c),b,y.current,M.current)},[q,Q]),re=ee(()=>{u.setTabStopId(U(u.getSelectedId()))},[u,U]),j=ee(I=>{let c=u.getFocusOwner();c===I||c!==null&&I!==null&&c.reportHubId===I.reportHubId&&c.index===I.index||(u.setFocusOwner(I),x.current||re())},[u,re]),K=ee(I=>{let c=Gl(u.getFocusOwner(),I);j(c.owner),c.focusIndex!==null&&(S.current=c.focusIndex,u.requestFocus(c.owner.reportHubId))},[u,j]);Ft(()=>{u.settleSelection(t,U(t))},[u,t,e,O,U]),Ft(()=>{let I=o.current;if(I!==null)return ql(I)},[o]),Ft(()=>{let I=n.current;if(I===null)return;let c=I.ownerDocument,b=E=>{let L=n.current,_=E.target;K({kind:"pointerPress",at:L!==null&&fe(_)&&L.contains(_)?"inside":"outside"})};return c.addEventListener("pointerdown",b,{capture:!0}),()=>c.removeEventListener("pointerdown",b,{capture:!0})},[n,K]),Ft(()=>{let I=u.pendingFocusId();I!==null&&le(e,I,S.current)===-1&&u.cancelFocusRequest(),K({kind:"listChanged",items:e})},[u,e,K]);let be=ee(I=>{K({kind:"removed",reportHubId:I,selection:v.current,items:p.current.items})},[K]),oe=ee((I,c,b)=>{let{items:E,onSelect:L,rowSizing:_,arrowAlign:w}=p.current,W=a.current;if(L===null||W===null)return null;let h=le(E,b.reportHubId,b.index);if(h===-1)return null;let C=Wr(W,h,E.length,_);if(C===null)return null;let N=td(I,c,C,w),$=E[N.index],ce=N.index!==h;if(ce){u.arrive($.reportHubId),M.current=$.reportHubId,S.current=N.index,x.current=!0;try{u.requestFocus($.reportHubId)}finally{x.current=!1}}try{fd(()=>{ce&&(u.pendingFocusId()===null&&u.settleSelection($.reportHubId,$.reportHubId),L($.reportHubId,N.index)),N.alignment!==null&&i.toIndex(N.alignment.index,{align:N.alignment.align}),N.scrollDelta!==0&&i.by(N.scrollDelta),ce&&(H($.reportHubId,N.index),V(Je=>Je+1));let qe=od(W,E.length,_);u.holdBodiesOutside(qe),u.releaseHeldBodiesWithin(qe,(Je,nn)=>le(E,Je,nn))})}finally{u.holdBodiesOutside(null)}return ce?{reportHubId:$.reportHubId,index:N.index}:{reportHubId:b.reportHubId,index:h}},[u,a,i,H]),Ae=ee(I=>{let{items:c,onSelect:b}=p.current;if(b===null)return;let E=le(c,I.reportHubId,I.index);E!==-1&&(b(I.reportHubId,E),H(I.reportHubId,E))},[H]),Oe=ee(I=>{let c=n.current,b=c===null?null:_e(c),E=c!==null&&b!==null&&c.contains(b)?Er(gt(b,c),p.current.items):null;return E===null?I.origin:E},[n]),J=ee((I,c)=>{let b=Oe(I);if(c.axis==="activate"){Ae(b);return}let E=Yf(c.axis,c.amount),L=oe(E.command,E.count,b);L!==null&&(I.origin=L)},[Oe,Ae,oe]),ye=ee(I=>{l.current=null,I.frame!==0&&I.view.cancelAnimationFrame(I.frame),T(null)},[]),Ge=ee((I,c,b)=>{let{apply:E}=c;E!==null&&(c.flush?fd(()=>J(I,E)):J(I,E)),l.current===I&&(c.ended?ye(I):c.requestFrame&&(I.frame=I.view.requestAnimationFrame(b)))},[J,ye]),Re=ee((I,c,b)=>{Ge(I,md(I.state,c),b)},[Ge]),de=ee(()=>{let I=l.current;I!==null&&(I.frame=0,Re(I,$f,de))},[Re]),je=ee(()=>{let I=l.current;I!==null&&Re(I,zf,de)},[Re,de]),Ye=ee(()=>{let I=l.current;I!==null&&Re(I,Gf,de)},[Re,de]),mt=ee((I,c,b)=>{T(P.current);let{state:E,effects:L}=ud(Ze[I]),_={state:E,origin:c,view:b,frame:0};l.current=_,Ge(_,L,de)},[Ge,de]);Ft(()=>()=>{let I=l.current;l.current=null,I!==null&&I.frame!==0&&I.view.cancelAnimationFrame(I.frame)},[]);let pt=ee(I=>{let c=l.current,b=c!==null&&I.repeat?Oa(I,p.current):null;if(c!==null&&b!==null&&b!=="exitBefore"&&b!=="exitAfter"&&Ze[b].axis===c.state.axis){I.preventDefault(),Re(c,jf[b],de);return}let{items:E,onSelect:L,rowSizing:_,rowActivation:w}=p.current,W=n.current,h=L===null?null:Zl(Zn(I),W,{rowActivation:w});if(u.cancelFocusRequest(),je(),h===null||W===null)return;if(h==="exitBefore"||h==="exitAfter"){let $=Js(W,h==="exitBefore"?"before":"after");if($===null)return;I.preventDefault(),$.focus();return}let C=_e(W),N=Er(gt(C!==null&&W.contains(C)?C:I.target,W),E);if(N!==null){if(h!=="activate"){let $=a.current;if($===null||Wr($,N.index,E.length,_)===null)return}if(I.preventDefault(),I.repeat){mt(h,N,ke(W));return}h==="activate"?Ae(N):oe(h,1,N)}},[u,n,a,de,Re,je,mt,Ae,oe]),ft=ee(()=>{je()},[je]),Ue=ee(I=>{let c=n.current,b=I.target,E=gt(b,c);if(K({kind:"focusIn",row:E===null?null:Xf(E)}),u.isMovingFocus())return;let L=a.current;if(c===null||L===null||!fe(b)||!mo(b))return;let _=E===null?null:E.closest('[role="list"]');if(E===null||_===null)return;let w=_.getBoundingClientRect(),W=E.getBoundingClientRect(),h=W.height<=w.height?W:qf(b.getBoundingClientRect(),yt),C=ad(h,w),N=L.getViewportSize();C===0||!(N>0&&w.height>0)||i.by(C*N/w.height)},[u,n,a,i,K]),Ce=ee(I=>{let c=n.current,b=I.relatedTarget,E=fe(b)?c?.contains(b)?"view":"outside":"nowhere";E!=="view"&&Ye(),K({kind:"focusOut",to:E})},[n,Ye,K]),Me=ee(()=>{u.cancelFocusRequest(),Ye()},[u,Ye]),at=ee(I=>{y.current={visibleStartIndex:I.visibleStartIndex,visibleEndIndex:I.visibleEndIndex},M.current=null,re()},[re]),Ve=pd(()=>({onKeyDown:pt,onKeyUp:ft,onPointerDownCapture:Me,onWheelCapture:Me,onTouchStartCapture:Me,onFocus:Ue,onBlur:Ce}),[pt,ft,Me,Ue,Ce]);return{cursor:u,containerProps:Ve,handleRangeChange:at,selection:k,settledSelection:g===null?k:g,resolveSelectedIndex:q,rememberSelection:H,focusAfterRemoval:be}};import{jsx as Fa}from"react/jsx-runtime";var Jf=R(Rt,an,sn,on,"h-full"),Qf="h-full w-full",gd=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:d}=bo(a,e),m=yd(lt),u=yd(st),p=yo(a,e,m),y=Rd(null),v=Rd(null),f=Zf(D=>(y.current=D,a.registerFocusTarget(e,D),()=>{y.current=null,a.unregisterFocusTarget(e,D)}),[a,e]);return Ha(()=>{let D=y.current,S=D===null||!p?null:D.firstElementChild,l=S instanceof HTMLElement?S:null,g=v.current;g!==null&&g.body===l||(g!==null&&g.stop(),v.current=l===null?null:{body:l,stop:o(l)})}),Ha(()=>()=>{v.current?.stop(),v.current=null},[]),Ha(()=>{a.restoreFocus(e)},[a,e,n]),Fa(Nr.Provider,{value:d,children:Fa("div",{ref:f,className:Jf,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":m+1,"aria-setsize":u,"aria-labelledby":p&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":p&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!p?!0:void 0,"aria-current":s?"true":void 0,children:p?i:Fa("div",{...Pe,className:Qf})})})};import{jsx as G,jsxs as Se}from"react/jsx-runtime";var rb=R("flex w-full flex-col",Qe,cn,ur),nb=R(Qe,ur),ob=R("rounded-2xl",ur),ab=R("rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",ur),xe="bg-slate-200 dark:bg-slate-700",ib=(e,t)=>{let r=ie(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},sb=()=>Se("div",{...Pe,className:nb,children:[Se("div",{className:"mb-4 flex flex-wrap gap-2",children:[G("div",{className:R("h-6 w-20 rounded-full",xe)}),G("div",{className:R("h-6 w-24 rounded-full",xe)}),G("div",{className:R("h-6 w-24 rounded-full",xe)}),G("div",{className:R("h-6 w-28 rounded-full",xe)})]}),Se("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Se("div",{className:"space-y-4",children:[G("div",{className:R("h-5 w-40 rounded",xe)}),G("div",{className:R("h-5 w-56 rounded",xe)}),G("div",{className:R("h-24 rounded-xl",xe)})]}),Se("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[G("div",{className:R("mb-2 h-4 w-24 rounded",xe)}),G("div",{className:R("mb-2 h-4 w-28 rounded",xe)}),G("div",{className:R("h-4 w-32 rounded",xe)})]})]}),Se("div",{className:"space-y-4",children:[G("div",{className:R("h-4 w-24 rounded",xe)}),Se("div",{className:"flex flex-wrap gap-2",children:[G("div",{className:R("h-6 w-16 rounded-full",xe)}),G("div",{className:R("h-6 w-16 rounded-full",xe)}),G("div",{className:R("h-6 w-16 rounded-full",xe)})]}),Se("div",{className:"space-y-2",children:[G("div",{className:R("h-16 rounded-xl",xe)}),G("div",{className:R("h-16 rounded-xl",xe)})]})]})]}),lb=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:d}=Nt(e.reportHubId,e.businessDate),{removeStaleItem:m}=Ee(),{draftLabelName:u,sourceTypeConfigs:p}=F(),y=ht(),v=Wn(e.reportHubId),f=v==="editing"||v==="automatic",D=Ba(!1),S=Ba(!1),l=Ba(!1);hd(()=>{if(d){l.current=!0;return}!(a||s||i)&&l.current&&e.reportHubId>0&&m(e.reportHubId)},[a,s,d,i,e.reportHubId,m]);let g=a?.labels.some(oe=>oe.name===u),T=n&&a?.userId===n,x=Ro(()=>a===null?void 0:()=>{D.current=!0,y.open(e.reportHubId,Jt(a),!1)},[y,e.reportHubId,a]),M=nr(()=>{S.current=!0,y.dismiss(e.reportHubId)},[y,e.reportHubId]),O=nr(()=>{S.current=!0,y.discard(e.reportHubId)},[y,e.reportHubId]),V=nr(oe=>{oe===null||!D.current||(D.current=!1,oe.focus())},[]),k=nr(oe=>{oe===null||!S.current||(S.current=!1,oe.focus())},[]);tb(()=>{f||(S.current=!1)},[f]),hd(()=>{a!==null&&(T&&g&&v==="display"?y.open(e.reportHubId,Jt(a),!0):!g&&v==="automatic"&&y.discard(e.reportHubId))},[a,T,g,v,y,e.reportHubId]);let P=nr(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),q=eb(),H=Ro(()=>({heading:`${q}-heading`,state:`${q}-state`,attachments:`${q}-attachments`,source:`${q}-source`}),[q]),Q=a!==null&&a.attachments.length>0,U=a===null?void 0:_t(a.sourceType,p),re=[H.state,...Q?[H.attachments]:[],...U!==void 0?[H.source]:[]].join(" "),j=!i&&a!==null&&!f?{kind:"card",ids:H,describedBy:re}:{kind:"label",label:ae(e.businessDate)},K=!i&&a===null&&s,be=i?"error":a===null?s?"loading":"missing":f?"editing":"resolved";return G(gd,{itemId:e.reportHubId,name:j,isBusy:K,bodyKind:be,observeRowHeight:t,cursor:o,children:i?G(db,{itemId:e.reportHubId}):a?f?G("div",{...Pe,className:ob,children:G(no,{report:a,onCancel:M,onPublishSuccess:O,titleInputRef:V})}):G(Ed,{item:e,report:a,sourceConfig:U,textIds:H,onCommentAdded:r,userId:n,onEdit:T?x:void 0,editButtonRef:k,onCommentSectionRemoved:P}):G(sb,{})})},vd=Sd(lb),Ed=Sd(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:d})=>{let{toggleStar:m,toggleRead:u,pendingStarUpdates:p,pendingReadUpdates:y,deleteReport:v}=Ee(),{labels:f,headingLevel:D}=F(),S=St[D],l=Rn(t.sourceType,r),g=nr(()=>o?.(e.reportHubId),[o,e.reportHubId]),T=p.current.get(t.reportHubId),x=T===void 0?t.isStarred:T,M=y.current.get(t.reportHubId),O=M===void 0?t.isRead:M,V=!!(a&&t.userId===a),k=async()=>{try{await u(t.reportHubId,!O,t.date)}catch{}},P=async()=>{try{await m(t.reportHubId,!x,t.date)}catch{}},q=async()=>{confirm(f.confirmDelete)&&await v(t.reportHubId,t.date)},H=Ro(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
|
|
4
|
+
`).trim():"",[t.content]),Q=Ro(()=>{let U=t.visitTimeFrom?.trim(),re=t.visitTimeTo?.trim();return U&&re?`${U} - ${re}`:U||re||null},[t.visitTimeFrom,t.visitTimeTo]);return Se("div",{...Pe,onDoubleClick:i,className:rb,children:[G(He,{level:D,id:n.heading,className:"sr-only",children:`${ae(t.date)} ${ie(t.employeeName)} ${ie(t.subject)}`}),G("span",{id:n.state,className:"sr-only",children:f.rowState({isRead:O,isStarred:x})}),Se("div",{className:"flex flex-col gap-4",children:[G($l,{report:t,sourceConfig:r,isRead:O,isStarred:x,isMine:V,onToggleRead:k,onToggleStar:P,onEdit:i,editButtonRef:s,onDelete:q,visitTimeDisplay:Q,markerIds:n,labels:f}),Se("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Se("div",{className:"flex flex-col gap-4",children:[Se("div",{className:"grid gap-4 sm:grid-cols-2",children:[Se("div",{className:"flex flex-col gap-1",children:[G(He,{level:S,className:it,children:f.customer}),G("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:ie(t.customerName)})]}),Se("div",{className:"flex flex-col gap-1",children:[G(He,{level:S,className:it,children:f.subject}),G("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ie(t.subject)})]})]}),H&&Se("div",{className:"flex flex-col gap-2",children:[G(He,{level:S,className:it,children:f.content}),G("div",{className:R("whitespace-pre-wrap",dn),children:H})]}),t.interviewers.length>0&&Se("div",{className:"flex flex-col gap-2",children:[G(He,{level:S,className:it,children:f.interviewers}),G("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(U=>G("li",{className:R(De,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:ib(U,f)},JSON.stringify([U.name,U.affiliation])))})]}),G(Xn,{attachments:t.attachments}),G(Br,{report:t,userId:a,canComment:l,onCommentAdded:g,onSectionRemoved:d,formPlacement:"after-section"})]}),G(Ul,{report:t,visitTimeDisplay:Q,labels:f})]})]})]})});Ed.displayName="DailyReportResolvedItem";var db=({itemId:e})=>{let{labels:t}=F();return G("div",{...Pe,className:ab,children:G("p",{children:t.reportLoadFailed(e)})})};import{useCallback as Dd,useId as gb,useMemo as Ad,useRef as hb}from"react";import{useCallback as cb,useLayoutEffect as Td,useMemo as xd,useRef as Ua}from"react";var ub=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},mb=(e,t,r,n)=>{let o=e*r+t,a=Math.min(Math.max(Math.floor(o/r),0),n-1);return{index:a,offsetPx:o-a*r}},pb=(e,t,r,n)=>{let o=e,a=t;for(;a<0&&o>0;)o-=1,a+=r(o);for(;o<n-1&&a>=r(o);)a-=r(o),o+=1;return{index:o,offsetPx:a}},fb=(e,t,r,n,o)=>{if(t===e.recordedAt)return e;if(!(t>0))return null;let a=e.offsetPx+(t-e.recordedAt),{index:i,offsetPx:s}=n.kind==="uniform"?mb(e.index,a,n.rowHeight,r.length):pb(e.index,a,fo(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:Kr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},bb=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=le(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},Id=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=Ua(null),a=Ua(e),i=Ua(r),s=cb(()=>{let m=t.current,u=m===null?-1:m.getScrollPosition(),p=m===null||!(u>0)?null:m.getScrollAnchor(),y=a.current,v=p===null?void 0:y[p.index],f=m===null?0:m.getViewportSize();o.current=p===null||v===void 0||!(f>0)?null:{reportHubId:v.reportHubId,index:p.index,offsetPx:p.offsetPx,lastVisibleIndex:Kr(p,f,y.length,i.current),recordedAt:u}},[t]),d=xd(()=>({toIndex:(m,u)=>{let p=t.current;p!==null&&(p.scrollToIndex(m,u),s())},by:m=>{let u=t.current;u!==null&&(u.scrollBy(m),s())},resizeRow:(m,u)=>{let p=t.current;p!==null&&(p.updateItemSize(m,u),s())}}),[t,s]);return Td(()=>{let m=a.current;a.current=e;let u=o.current,p=t.current;if(m===e||u===null||p===null||n())return;let y=fb(u,p.getScrollPosition(),m,i.current,p.getViewportSize());if(y===null){o.current=null;return}let v=le(e,y.reportHubId,y.index),f=v===-1?bb(m,e,y):v;if(f===-1){o.current=null;return}if(f===y.index&&!ub(m,e,y.index,y.lastVisibleIndex)){o.current=y;return}p.scrollToIndex(f,{align:"top",offset:-y.offsetPx}),o.current={reportHubId:e[f].reportHubId,index:f,offsetPx:y.offsetPx,lastVisibleIndex:Kr({index:f,offsetPx:y.offsetPx},p.getViewportSize(),e.length,r),recordedAt:p.getScrollPosition()}},[e,t,r,n]),Td(()=>{i.current=r},[r]),xd(()=>({handleRangeChange:s,handleScrollAdjust:s,scroller:d}),[s,d])};import{useCallback as yb}from"react";var Rb=20,Cd=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>yb(a=>{t.current=a;let i=a.querySelector(`[data-testid="${e}"]`);return i!==null&&Object.defineProperty(i,"__virtualScroll",{configurable:!0,get:()=>{let s=r.current;if(s!==null)return{getViewportSize:()=>s.getViewportSize(),getScrollPosition:()=>s.getScrollPosition(),getScrollAnchor:()=>s.getScrollAnchor(),getRange:()=>s.getRange(),getFenwickSize:()=>s.getFenwickSize(),findReportIndex:d=>o.current.findIndex(m=>m.reportHubId===d),getReportItem:d=>o.current[d],getReportIds:(d=Rb)=>o.current.slice(0,d).map(m=>m.reportHubId),revealIndex:(d,m)=>n.toIndex(d,m)}}}),()=>{i!==null&&delete i.__virtualScroll,t.current=null}},[e,t,r,n,o]);import{jsx as Sb}from"react/jsx-runtime";var go=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=hb(null),s=Dd(x=>(i.current=x,()=>{i.current=null}),[]),{handleRangeChange:d,handleScrollAdjust:m,scroller:u}=Id({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:p,...y}=bd({...a,containerRef:e,handleRef:i,scroller:u}),v=Cd({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:u,itemsRef:r}),{labels:f}=F(),D=gb(),S=a.onSelect!==null,l=Dd(x=>{p(x),d(),o(x)},[p,d,o]),g=Ad(()=>({role:"list","aria-label":f.title,"aria-describedby":S?D:void 0}),[f.title,S,D]),T=Ad(()=>S?Sb("span",{id:D,className:"sr-only",children:f.listKeyboardHelp}):null,[S,D,f.listKeyboardHelp]);return{...y,handleRangeChange:l,handleScrollAdjust:m,attachVirtualScroll:s,handleRef:i,scroller:u,attachScrollContainer:v,contentProps:g,keyboardHelp:T}};import{Fragment as Lb,jsx as Dt,jsxs as Ab}from"react/jsx-runtime";var _d={pointerDragInputs:xn,wheelSpeedMultiplier:gn,inertiaOptions:jt(!1),enableKeyboardNavigation:!1},Tb={..._d,inertiaOptions:jt(!0)},Ld="daily-report-detail-list",xb=R("relative w-full",fn,mn),Ib=R(We,"relative"),Cb=300,Wa=e=>{let t=we(null),[r,n]=ho(null),o=_n(t),a=Yt(r),i=Ie(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return Dt("div",{ref:i,className:un,children:o===null?null:Dt(Db,{...e,viewportHeight:o,reducedMotion:a})})},Db=({dailyReportItems:e,rowSetSize:t,userId:r,selectedItemId:n,onSelectItem:o,scrollRestoreRef:a,viewportHeight:i,reducedMotion:s})=>{let[{initialScrollAnchor:d,restored:m}]=ho(()=>{let h=a?.current;if(!h||h.anchorReportHubId!==(n??null))return{initialScrollAnchor:void 0,restored:!1};if(!h.topItem)return{initialScrollAnchor:void 0,restored:!0};let C=e.findIndex(N=>N.reportHubId===h.topItem?.reportHubId);return C!==-1?{initialScrollAnchor:{index:C,offsetPx:h.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:h.topItem.index,offsetPx:0},restored:!0}}),u=we(m),p=we(n??null),y=we(a?.current.measuredHeights??new Map),v=we(null),f=Dn(),D=Go(),[S]=ho(Nn),l=we(null),g=we(null),T=we(e),x=we(o);Eb(()=>{T.current=e,x.current=o},[e,o]);let M=we(null),[O,V]=ho(0),k=we(null),P=e.length,q=t===void 0?P:t,H=Ie(h=>h>=P?Sn:e[h],[e,P]),Q=Ie(h=>{let C=y.current.get(H(h).reportHubId);return C===void 0?Hi:C},[H]),U=Ie(h=>H(h).reportHubId,[H]),re=Va(()=>({kind:"measured",heightOf:Q}),[Q]),j=Ie((h,C)=>{M.current={reportHubId:h,index:C},V(N=>N+1),x.current?.(h)},[]),K=Ie((h,C)=>{if(P===0)return;let N=Math.max(0,h),$=Math.min(P-1,C);if(N>$)return;let ce=new Set;for(let qe=N;qe<=$;qe++){let Je=H(qe);if(Je.businessDate&&ce.add(Je.businessDate),ce.size>=Mi)break}ce.forEach(qe=>{D(qe)})},[H,P,D]),be=Ie(h=>{if(P===0)return;let{renderingStartIndex:C,renderingEndIndex:N,visibleStartIndex:$}=h,ce=H($);ce.businessDate&&S.setLabel(ae(ce.businessDate)),K(C,N),K(N+1,N+hn),K(C-hn,C-1)},[H,P,K,S]),oe=Ie(()=>k.current!==null,[]),{cursor:Ae,containerProps:Oe,handleRangeChange:J,handleScrollAdjust:ye,attachVirtualScroll:Ge,handleRef:Re,scroller:de,attachScrollContainer:je,contentProps:Ye,keyboardHelp:mt,resolveSelectedIndex:pt,rememberSelection:ft}=go({items:e,selectedId:n??null,onSelect:o===void 0?null:j,containerRef:v,rootRef:v,testId:Ld,itemsRef:T,rowSizing:re,arrowAlign:"top",rowActivation:!0,isViewRevealPending:oe,onRangeChange:be}),Ue=Ie((h,C)=>{if(Re.current===null)return!1;let N=T.current,$=C!==null&&C.reportHubId===h?le(N,h,C.index):pt(N,h);return $===-1?!1:(u.current&&(u.current=!1,h===p.current)||C!==null&&C.reportHubId===h&&C.index===$||de.toIndex($,{align:"top"}),!0)},[Re,pt,de]);Ct(()=>{let h=M.current;M.current=null,k.current=null,n!=null&&(Ue(n,h)||(k.current=n))},[n,Ue]),Ct(()=>{let h=k.current;h!==null&&Ue(h,null)&&(k.current=null)},[e,Ue]),Ct(()=>{let h=a?.current;h&&(h.anchorReportHubId=n??null)},[n,a]),Ct(()=>{M.current=null},[O]);let Ce=we(null),Me=Ie(()=>{Re.current&&(Ce.current=Re.current);let h=a?.current,C=Ce.current;if(h&&C){let $=C.getScrollAnchor(),ce=$?T.current[$.index]:void 0;$&&ce&&(h.topItem={reportHubId:ce.reportHubId,index:$.index,offsetPx:$.offsetPx})}let N=v.current;N&&(N.toggleAttribute(Vt,!0),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{N.toggleAttribute(Vt,!1),g.current=null},150))},[Re,a]),at=Ie(h=>Dt(On,{...h,store:S}),[S]);Ct(()=>{let h=v.current;if(!h)return;let C=()=>{S.setWheelScrollActive(!0),l.current&&clearTimeout(l.current),l.current=window.setTimeout(()=>{S.setWheelScrollActive(!1),l.current=null},vn)};return h.addEventListener("wheel",C,{passive:!0}),()=>{h.removeEventListener("wheel",C),l.current&&clearTimeout(l.current)}},[S]);let Ve=we(null),I=Ie(h=>{for(let C of h){let N=C.target.parentElement,$=N===null?null:Ot(N),ce=N===null?null:Gt(N),qe=C.borderBoxSize[0];if($===null||ce===null||qe===void 0)continue;let Je=qe.blockSize+2*yt;if(y.current.get($)===Je)continue;let nn=le(T.current,$,ce-1);nn!==-1&&(y.current.set($,Je),de.resizeRow(nn,Je))}},[de]),c=Ie(h=>{Ve.current===null&&(Ve.current=new ResizeObserver(I));let C=Ve.current;return C.observe(h),()=>C.unobserve(h)},[I]);Ct(()=>()=>{Ve.current?.disconnect(),Ve.current=null},[]),Ct(()=>{P!==0&&K(0,Math.min(P-1,hn))},[P,K]);let b=we(null),E=Ie(h=>{let C=le(T.current,h,null);C!==-1&&(b.current!==null&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null;let N=le(T.current,h,C);N!==-1&&de.toIndex(N,{align:"bottom"})},Cb))},[de]);Ct(()=>()=>{b.current!==null&&clearTimeout(b.current)},[]);let L=Ie(h=>{if(!x.current)return;let C=gt(h.target,v.current);if(C===null||as(h.target,C))return;let N=Er(C,T.current);N!==null&&(ft(N.reportHubId,N.index),j(N.reportHubId,N.index))},[j,ft]),_=Ie((h,C)=>Dt(lt.Provider,{value:C,children:Dt(vd,{item:h,observeRowHeight:c,onCommentAdded:E,userId:r,cursor:Ae})},h.reportHubId),[c,E,r,Ae]),w=Va(()=>({...Tn,renderThumbOverlay:at}),[at]),W=Va(()=>Dt(st.Provider,{value:q,children:Dt(vb,{ref:Ge,itemCount:P,getItem:H,getItemKey:U,getItemHeight:Q,viewportSize:i,initialScrollAnchor:d,overscanCount:En,scrollBarOptions:w,behaviorOptions:s?Tb:_d,onRangeChange:J,onScrollAdjust:ye,onScroll:Me,testId:Ld,className:xb,locale:f.locale,labels:f.labels,contentProps:Ye,children:_})}),[Ge,q,P,H,U,Q,i,s,d,w,J,ye,Me,f.locale,f.labels,Ye,_]);return Dt(Lb,{children:Ab("div",{ref:je,className:Ib,...Oe,onClick:L,children:[mt,W]})})};import Nd from"lucide-react/dist/esm/icons/refresh-cw.js";import{useState as Nb}from"react";import{useEffect as _b,useRef as wd,useState as wb}from"react";var Gr=(e,t,r=250)=>{let n=Yt(t),[o,a]=wb(e),i=wd(e),s=wd(!0);return _b(()=>{if(s.current){s.current=!1,i.current=e,a(e);return}let d=i.current;if(d===e)return;if(n||t===null){i.current=e,a(e);return}let m=ke(t),u=null,p=null,y=v=>{p===null&&(p=v);let f=Math.min(1,Math.max(0,(v-p)/r)),D=1-(1-f)**3,S=Math.round(d+(e-d)*D);i.current=S,a(S),f<1&&(u=m.requestAnimationFrame(y))};return u=m.requestAnimationFrame(y),()=>{u!==null&&m.cancelAnimationFrame(u)}},[e,r,n,t]),n?e:o};import{jsx as jr,jsxs as So}from"react/jsx-runtime";var Ob=({loadedCount:e,totalCount:t})=>{let{labels:r}=F(),[n,o]=Nb(null),a=Gr(e,n),i=Gr(t===null?0:t,n),s=t!==null&&t>0?Math.min(100,Math.round(e/t*100)):null;return So("span",{ref:o,"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:R(De,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[jr("span",{"aria-hidden":"true",className:"size-2 rounded-full bg-blue-500 motion-safe:animate-pulse dark:bg-blue-400"}),s!==null?r.streamProgressRatio(a,i,s):r.streamProgressCount(a)]})},Yr=()=>{let e=Xe(),{labels:t}=F();return e.phase==="streaming"?jr(Ob,{loadedCount:e.loadedCount,totalCount:e.totalCount}):e.phase==="retrying"?So("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:R(De,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[jr(Nd,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?So("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:R(De,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,jr("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Fn(),className:R("inline-flex h-5 items-center rounded-full bg-rose-200 px-2 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",X),children:t.streamRetry})]}):e.isRevalidating?So("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"revalidating",className:"inline-flex items-center gap-1 text-slate-500 text-xs dark:text-slate-400",children:[jr(Nd,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as ic,PanelGroup as Qy,PanelResizeHandle as eR}from"@aiquants/resize-panels";import{VirtualScroll as tR}from"@aiquants/virtualscroll";import{useCallback as ot,useEffect as Co,useLayoutEffect as qa,useMemo as Do,useRef as cr,useState as Lo}from"react";import{useSyncExternalStore as Mb}from"react";var Od="(max-width: 639px)",Pb=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(Od);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},kb=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(Od).matches:!1,Hb=()=>!1,Md=()=>Mb(Pb,kb,Hb);import{SwipeCloseGuardContext as sy,useOverlayEscapeStack as ly,useSwipeGuardState as dy,useSwipeToDismissOverlay as cy,useTapClick as uy,useTransitionDisplay as my}from"@aiquants/swipe-overlay";import{useCallback as To,useEffect as ir,useId as ja,useLayoutEffect as Yd,useRef as nt,useState as xo}from"react";import{createContext as Fb,useMemo as Bb}from"react";var Pd=Object.freeze({id:null,indexHint:null}),vo=Fb(Object.freeze({selected:Pd,settled:Pd})),qr=(e,t)=>{let{id:r,indexHint:n}=t;return Bb(()=>{if(r===null)return null;let o=le(e,r,n);return o===-1?null:e[o]},[e,r,n])};import Ub from"lucide-react/dist/esm/icons/check.js";import Vb from"lucide-react/dist/esm/icons/pencil.js";import Wb from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Kb,useCallback as Bt,useContext as $b,useDeferredValue as zb,useEffect as Ka,useId as Ud,useLayoutEffect as $a,useMemo as $d,useRef as en,useState as Vd}from"react";import*as ct from"@radix-ui/react-tabs";import*as Be from"react";import{jsx as Xr}from"react/jsx-runtime";var kd=Be.createContext(null),Hd=e=>{let t=Be.useContext(kd);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},Fd=(e,t)=>`${e}-trigger-${t}`,Bd=(e,t)=>`${e}-panel-${t}`,Zr=Be.forwardRef(({value:e,children:t,...r},n)=>{let o=Be.useId(),a=Be.useMemo(()=>({baseId:o,value:e}),[o,e]);return Xr(ct.Root,{ref:n,value:e,...r,children:Xr(kd,{value:a,children:t})})});Zr.displayName=ct.Root.displayName;var Jr=Be.forwardRef(({className:e,...t},r)=>Xr(ct.List,{ref:r,className:R("inline-flex",e),...t}));Jr.displayName=ct.List.displayName;var Qr=Be.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=Hd("TabsTrigger");return Xr(ct.Trigger,{ref:n,value:t,...r,id:Fd(o,t),"aria-controls":Bd(o,t),className:R(`${yi} ${X}`,e)})});Qr.displayName=ct.Trigger.displayName;var or=Be.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=Hd("TabsContent"),s=t===i;return Xr("div",{ref:o,role:"tabpanel",id:Bd(a,t),"aria-labelledby":Fd(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:R(`mt-2 data-[state=inactive]:hidden ${X}`,e),children:s?r:null})});or.displayName="TabsContent";import{Fragment as iy,jsx as B,jsxs as rt}from"react/jsx-runtime";var zd=R(At,"w-24 shrink-0"),Wd={field:"flex items-baseline",label:zd,value:"flex-1"},Gb={field:"flex min-w-0 flex-1 items-baseline",label:zd,value:"wrap-break-word min-w-0 flex-1"},jb={field:"flex flex-col gap-1",label:At,value:""},Yb={field:"flex items-center gap-1",label:At,value:""},Kd=R("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",Oo,ri,ti),qb=R("flex flex-col gap-1",Mo),Xb=R("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",X),Zb=500,za=e=>{let t=e,r=new Set;return{isDwelling:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},Jb=(e,t,r,n,o,a)=>{let i=en(null),s=e?.reportHubId;$a(()=>{i.current=null},[s]),Ka(()=>{n||(i.current=null)},[n]);let d=Bt(async(m,u)=>{u||(i.current=m.reportHubId);try{await a(m.reportHubId,!m.isRead,m.date)}catch{}},[a]);return Ka(()=>{if(!(r&&e&&!e.isRead&&!t)||i.current===e.reportHubId)return;let m=null,u=()=>{m!==null&&clearTimeout(m),m=o.isDwelling()?setTimeout(()=>d(e,!0),Zb):null};u();let p=o.subscribe(u);return()=>{p(),m!==null&&clearTimeout(m)}},[e,t,r,d,o]),{handleToggleRead:d}},Ga="article",Qb=["article","relations"],ey=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},ty=R("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",Qe),ry=9,ny=.875,oy=16,Gd=4*Math.ceil((2*yt+2*ln+2*ai+ry*ny*oy)/4),jd=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=F(),a=Ud(),i=Ud(),[s,d]=Vd(Ga),{selected:m,settled:u}=$b(vo),p=qr(e,m),y=qr(e,zb(u)),v=p===null?null:p.reportHubId,D=(y===null?null:y.reportHubId)===v,[S]=Vd(()=>za(D));return $a(()=>{S.set(D)},[S,D]),B("aside",{"data-testid":"daily-report-side-pane","data-report-id":p?.reportHubId,"data-displayed-report-id":y?.reportHubId,"aria-busy":D?void 0:!0,className:ty,children:y===null?B("div",{className:R("flex h-full flex-1 items-center justify-center text-center",Wt),children:B("p",{className:pn,children:o.selectPrompt})}):B(Eo,{item:y,headingId:a,authorId:i,activeTab:s,onActiveTabChange:d,autoMarkRead:t,isActive:!0,dwell:S,userId:r,onReportDeleted:n},y.reportHubId)})},Eo=Kb(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:d,onReportDeleted:m})=>{let{draftLabelName:u,labels:p,sourceTypeConfigs:y,headingLevel:v}=F(),{report:f,error:D,isLoading:S}=Nt(e.reportHubId,e.businessDate),l=ht(),g=Wn(e.reportHubId),T=g==="editing"||g==="automatic",x=en(null),M=en(null),O=en(!1),V=en(!1),k=!!(d&&f?.userId===d),P=f?.labels.some(J=>J.name===u);Ka(()=>{f!==null&&(k&&P&&g==="display"?l.open(e.reportHubId,Jt(f),!0):!P&&g==="automatic"&&l.discard(e.reportHubId))},[f,k,P,g,l,e.reportHubId]);let q=$d(()=>f===null?void 0:()=>{O.current=!0,l.open(e.reportHubId,Jt(f),!1)},[l,e.reportHubId,f]),H=Bt(()=>{V.current=!0,l.dismiss(e.reportHubId)},[l,e.reportHubId]),Q=Bt(()=>{V.current=!0,l.discard(e.reportHubId)},[l,e.reportHubId]),U=Bt(J=>{J===null||!O.current||(O.current=!1,J.focus())},[]),re=Bt(J=>{J===null||!V.current||(V.current=!1,J.focus())},[]),j=Bt(()=>{M.current?.focus({preventScroll:!0})},[]);$a(()=>{T||!V.current||(V.current=!1,M.current?.focus())},[T]);let K=Bt(()=>{setTimeout(()=>{let J=x.current;J!==null&&J.scrollTo({top:J.scrollHeight,behavior:cs(J)})},100)},[]),be=ae(e.businessDate),oe=f===null?null:ie(f.employeeName),Ae=S||!f,Oe=f===null?void 0:_t(f.sourceType,y);return rt(iy,{children:[rt("div",{className:qb,children:[B("dl",{className:"m-0",children:B(se,{label:p.businessDate,classNames:jb,children:B(He,{ref:M,level:v,id:t,tabIndex:-1,className:Xb,children:be})})}),rt("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[B("dl",{className:"m-0",children:B(se,{label:p.author,classNames:Yb,valueId:r,children:Ae?B("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):oe})}),Oe?B(er,{config:Oe,className:"ml-2"}):null]})]}),rt(Zr,{value:n,onValueChange:J=>o(ey(J)),className:"flex min-h-0 flex-1 flex-col",children:[B("div",{className:Mo,children:B(Jr,{"aria-label":p.reportTabList,className:R(fi,"grid grid-cols-2 gap-1"),children:Qb.map(J=>B(Qr,{value:J,children:J==="article"?p.tabArticle:p.tabRelations},J))})}),B(or,{ref:x,value:"article",className:Kd,children:T?f?B(no,{report:f,onCancel:H,onPublishSuccess:Q,titleInputRef:U}):B("p",{className:Wt,children:p.loading}):B(ay,{report:f,sourceConfig:Oe,isLoading:S,error:D,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:K,userId:d,onEdit:k?q:void 0,editButtonRef:re,onReportDeleted:m,onCommentSectionRemoved:j})}),B(or,{value:"relations",className:Kd,children:B("p",{className:Wt,children:p.relationsEmpty})})]})]})});Eo.displayName="DailyReportSidePaneContent";var ar=({className:e="w-32"})=>B("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),ay=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:d,userId:m,onEdit:u,editButtonRef:p,onReportDeleted:y,onCommentSectionRemoved:v})=>{let{toggleStar:f,toggleRead:D,deleteReport:S}=Ee(),{labels:l,headingLevel:g}=F(),T=St[g],{handleToggleRead:x}=Jb(e,r,a,i,s,D),M=e!==null&&Rn(e.sourceType,t),O=$d(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
|
|
5
5
|
`).replace(/<\/p>/gi,`
|
|
6
|
-
`).replace(/<[^>]+>/g,""):null,[e]),j=async ne=>{try{await y(ne.reportHubId,!ne.isStarred,ne.date)}catch{}},V=async ne=>{if(confirm(p.confirmDelete)){try{await v(ne.reportHubId,ne.date)}catch{alert(p.deleteFailed);return}g(ne.reportHubId)}};if(n)return F("p",{className:pr,children:p.reportLoadFailed(o.reportHubId)});let ie=!e,re=!!(m&&e?.userId===m);return at("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:u,children:[at("div",{className:"flex items-start gap-2",children:[F("dl",{className:"m-0 flex min-w-0 flex-1",children:F(ue,{label:p.subject,classNames:_b,children:ie?F(or,{className:"w-3/4"}):F("span",{className:"text-sm",children:ce(e?.subject)})})}),!ie&&e&&at("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[F("button",{type:"button",onClick:()=>j(e),className:Ae,title:e.isStarred?p.starRemove:p.starAdd,"aria-label":e.isStarred?p.starRemove:p.starAdd,"data-detail-star-button":e.reportHubId,children:F(Qt,{filled:e.isStarred})}),F("button",{type:"button",onClick:()=>B(e,!1),className:Ae,title:e.isRead?p.markUnread:p.markRead,"aria-label":e.isRead?p.markUnread:p.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?F(xb,{className:Se.read}):F(tr,{})}),u&&F("button",{ref:f,type:"button",onClick:u,"data-detail-edit-button":e.reportHubId,className:Ae,title:p.edit,"aria-label":p.edit,children:F(Ib,{className:Se.edit})}),re&&F("button",{type:"button",onClick:()=>V(e),"data-detail-delete-button":e.reportHubId,className:Ae,title:p.deleteReport,"aria-label":p.deleteReport,children:F(Cb,{className:Se.delete})})]})]}),F("dl",{className:"m-0",children:F(ue,{label:p.customer,classNames:Md,children:ie?F(or,{className:"w-1/2"}):F("span",{className:"text-sm",children:ce(e?.customerName)})})}),at("div",{className:"flex flex-col gap-2",children:[F(ke,{level:C,className:dt,children:p.content}),F("div",{className:h("min-h-22",sn),children:ie?at("div",{className:"space-y-2",children:[F(or,{className:"w-full"}),F(or,{className:"w-11/12"}),F(or,{className:"w-4/5"})]}):te?F("div",{className:"whitespace-pre-wrap",children:te}):F("p",{className:"text-slate-500 dark:text-slate-400",children:p.contentEmpty})})]}),F("dl",{className:"m-0",children:F(ue,{label:p.visitTime,classNames:Md,children:ie?F(or,{className:"w-1/3"}):at("span",{className:"text-sm",children:[ce(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",ce(e?.visitTimeTo)]})})}),e&&F(Gn,{attachments:e.attachments}),e&&F(Zn,{comments:k,canComment:Q,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:U,pendingDeleteId:N,onPendingDeleteIdChange:P,resolvedIdMap:Z,onSectionRemoved:E,className:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:Q&&F(Jn,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:K})})]})};import{jsx as Wt,jsxs as Vd}from"react/jsx-runtime";var Zb="fixed inset-y-0 left-0 m-0 flex h-auto max-h-none w-auto max-w-none touch-manipulation overflow-hidden border-0 bg-transparent p-0 text-inherit outline-none backdrop:bg-transparent motion-safe:transition-[right] motion-safe:duration-500 motion-safe:ease-[ease]",Jb={right:"var(--aqdr-overlay-right, 0px)"},Qb="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",ey=h("relative ml-auto flex h-full w-full max-w-full touch-none shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out",fi),ty=h("inline-flex h-9 touch-manipulation items-center rounded-full border border-slate-300 border-solid px-[15px] font-medium text-slate-600 text-sm shadow-sm hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",J),ry=50,Wd=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=To(!1),[d,m]=To(!1),u=it(null),f=it(null),g=it(null),E=it(e),y=it(!0),L=jr(r,t),v=Eo(()=>{let C=o.current;if(C===null)return;let k=C.ownerDocument.body;g.current={body:k,overflow:k.style.overflow},k.style.overflow="hidden"},[o]),l=Eo(()=>{let C=g.current;C!==null&&(C.body.style.overflow=C.overflow,g.current=null)},[]);ar(()=>{if(y.current){y.current=!1,E.current=e;return}let C=!E.current;E.current=e,C&&e&&a!==null?s(!0):!e&&i&&(f.current=a,s(!1),l())},[e,a,i,l]);let p=e&&i&&L!==null;ar(()=>{if(p)m(!0);else{let C=setTimeout(()=>m(!1),300);return()=>clearTimeout(C)}},[p]),ar(()=>{if(e&&i&&a!==null&&!u.current){let C=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:C},"",window.location.href),u.current=C}else!(e&&i)&&u.current&&(u.current=null);return e&&i?v():l(),l},[e,i,a,v,l]),ar(()=>{let C=()=>{u.current&&(f.current=a,u.current=null,s(!1),n(null))};return window.addEventListener("popstate",C),()=>window.removeEventListener("popstate",C)},[a,n]);let I=Eo(()=>{e&&(f.current=a,s(!1),n(null),u.current&&(u.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:d,shouldShowOverlay:p,handleOverlayClose:I,lastClosedItemIdRef:f,selectedItem:L}},Kd=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=H(),s=it(null),d=Ka(),m=Ka(),[u,f]=To(Wa),g=Gb(),E=Ka(),y=it(!1),L=it(e),v=it(null),[l]=To(()=>Va(e)),{isBlocked:p,requestBlock:I,reset:C}=jb(),k=Xb(e,t),{overlayRef:w,overlayStyle:U,attemptClose:N,isSwiping:P}=Yb({isOpen:e,onClose:r,isCloseBlocked:Eo(()=>p,[p]),skipWhenTextSelected:!0}),Z=it(N);Ud(()=>{Z.current=N,L.current=e,l.set(e)},[N,e,l]),ar(()=>{if(e)return g({id:E,onEscape:j=>Hr(j)&&Z.current()})},[e,g,E]),Ud(()=>{let j=s.current;if(j===null)return;if(e){if(y.current)return;j.showModal(),y.current=!0,j.ownerDocument.getElementById(d)?.focus();return}if(!y.current)return;y.current=!1;let V=_e(j);V!==null&&j.contains(V)&&Yo(V)&&V.blur(),j.close()},[e,d]),ar(()=>{e||C()},[e,C]);let B=qb(()=>N()),Q=j=>{let V=jn(j);if(Hr(V)){N()&&j.preventDefault();return}if(V.key==="Escape"){v.current=j.timeStamp;return}let ie=Sl(V,j.currentTarget);ie!==null&&(j.preventDefault(),ie.kind==="wrap"&&ie.element.focus())},K=j=>{j.preventDefault();let V=v.current;v.current=null,!(V!==null&&j.timeStamp-V<=ry)&&Z.current()},te=j=>{let V=j.currentTarget;V.open||!L.current||(y.current=!1,!Z.current()&&(V.showModal(),y.current=!0))};return k?Vd("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${d} ${m}`,tabIndex:-1,className:h(Zb,e&&!P?"pointer-events-auto":"pointer-events-none"),style:Jb,inert:!e,onKeyDown:Q,onCancel:K,onClose:te,children:[Wt("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:h(Qb,e?"opacity-100":"opacity-0"),...B}),Wt("div",{ref:w,"data-daily-report-overlay-panel":"",className:h(ey,e?"pointer-events-auto":"pointer-events-none"),style:U,children:Vd("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Wt(zb.Provider,{value:{isBlocked:p,requestBlock:I},children:Wt("div",{"data-testid":"daily-report-side-pane","data-report-id":k.reportHubId,"data-displayed-report-id":k.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Wt(vo,{item:k,headingId:d,authorId:m,activeTab:u,onActiveTabChange:f,autoMarkRead:n,isActive:e,dwell:l,userId:o,onReportDeleted:a},k.reportHubId)})}),Wt("div",{className:"flex justify-start",children:Wt("button",{type:"button","data-overlay-interactive":"true",className:ty,onClick:()=>N(),children:i.close})})]})})]}):null};import yy from"lucide-react/dist/esm/icons/check.js";import{createContext as Ry,memo as Yd,useCallback as gy,useContext as sr,useEffect as hy,useId as Qr,useMemo as qd,useRef as Sy}from"react";import{createContext as ny,createElement as oy,useLayoutEffect as ay,useMemo as iy,useRef as sy,useState as ly}from"react";var dy=6.75,cy=4,uy=1e-6,my=e=>4*Math.ceil((2*gt+2*an+cy+dy*e-uy)/4),xo=ny(null),py="data-daily-report-root-font-size-probe",fy={position:"fixed",insetBlockStart:0,insetInlineStart:0,visibility:"hidden",pointerEvents:"none",overflow:"hidden",writingMode:"horizontal-tb",boxSizing:"content-box",padding:0,border:0,margin:0,blockSize:"1rem",inlineSize:0},by=e=>{let t=qe(e).getComputedStyle(e.ownerDocument.documentElement).fontSize,r=/^(\d+(?:\.\d+)?)px$/.exec(t);if(r===null||!(Number(r[1])>0))throw new Error(`[daily-report] the root element has no computed font size in px; got ${JSON.stringify(t)}`);return Number(r[1])},$d=()=>{let e=sy(null),[t,r]=ly(null);ay(()=>{let o=e.current;if(o===null)throw new Error("[daily-report] useListRowSlotHeight needs the List to render remProbe");let a=null,i=()=>{let d=my(by(o));d!==a&&(a=d,r(d))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=iy(()=>oy("div",{ref:e,"aria-hidden":!0,[py]:"",style:fy}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as q,jsxs as lr}from"react/jsx-runtime";var vy=h(ht,nn,on,rn),Ey=h("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",rt,ln,ti),Ty="min-w-24",xy="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",Iy={touchAction:"manipulation"},Cy=h("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",Ty),Ly=h("relative z-10",Ae),Dy=h("flex h-full",rt),Ay="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",ir="h-4 rounded bg-slate-200 dark:bg-slate-700",_y=()=>q("div",{"data-skeleton":!0,...Oe,className:Dy,children:lr("div",{className:Ay,children:[lr("div",{className:"flex flex-wrap items-center gap-2",children:[q("div",{className:h(ir,"w-24")}),q("div",{className:h(ir,"w-24")}),q("div",{className:h(ir,"w-24")})]}),lr("div",{className:"space-y-2",children:[q("div",{className:h(ir,"w-full")}),q("div",{className:h(ir,"w-11/12")}),q("div",{className:h(ir,"w-5/6")})]})]})}),wy=e=>{e.target===e.currentTarget&&e.preventDefault()},Ny="h-full w-full",Xd=Ry(!1),zd=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=sr(ut),a=sr(ct),i=sr(xo);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=qd(()=>({height:i}),[i]),{isCurrent:d,isTabStop:m}=mo(t,e),u=po(t,e,o);return q(wr.Provider,{value:m,children:q(Xd.Provider,{value:d,children:q("div",{ref:r?.focusTargetRef,role:"listitem","data-daily-report-row":e,"aria-posinset":o+1,"aria-setsize":a,"aria-label":r?.label,"aria-busy":r?.isBusy||!u?!0:void 0,"aria-current":r!==null&&d?"true":void 0,tabIndex:r===null?-1:void 0,className:vy,style:s,onMouseDown:wy,children:u?n:q("div",{...Oe,className:Ny})})})})},Oy=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,My=e=>{if(!e)return[];let t=[],r="",n=0,o=()=>{let a=r.replace(/\u3000/g," ").trim();a.length>0&&t.push(a),r=""};for(let a of e.matchAll(Oy))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===wi))return t;return r+=e.slice(n),o(),t},ky=({id:e})=>{let{labels:t}=H(),r=sr(ut),n=sr(ct);return q("span",{id:e,hidden:!0,children:n===Er?t.listRowPositionInUnknownTotal(r+1):t.listRowPosition(r+1,n)})},Py=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=sr(Xd);return q("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:Cy,children:o})},Gd=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=Zt();return q("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:Ly,children:n})},Zd=Yd(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=H(),{toggleStar:i,toggleRead:s}=De(),d=Qr(),m=Qr(),u=Qr(),f=Qr(),g=Qr(),E=qd(()=>My(t.content??null),[t.content]),y=ce(t.employeeName),L=de(e.businessDate),v=U=>{U.currentTarget.focus({preventScroll:!0});let N=Qi(U.currentTarget);N!==null&&r(e.reportHubId,N)},l=async()=>{let U=!t.isStarred;try{await i(t.reportHubId,U,t.date)}catch{}},p=async()=>{let U=!t.isRead;try{await s(t.reportHubId,U,t.date)}catch{}},I=t.isStarred?o.starRemove:o.starAdd,C=t.isRead?o.markUnread:o.markRead,k=Nt(t.sourceType,a),w=[d,u,...t.attachments.length>0?[f]:[],...k===void 0?[]:[g],m].join(" ");return lr("div",{"data-daily-report-card":!0,...Oe,style:Iy,className:Ey,children:[q(ky,{id:d}),q("span",{id:u,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),lr(Py,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:w,onClick:v,children:[q("span",{className:h(Le,"shrink-0 bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:q("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:L})})," ",q("span",{className:h(Le,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:q("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:y})})]}),lr("div",{className:h(oi,"ml-auto"),children:[q(fr,{id:f,count:t.attachments.length,label:o.attachments}),k?q(er,{id:g,config:k}):null,q(Gd,{label:I,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:l,children:q(Qt,{filled:t.isStarred})}),q(Gd,{label:C,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:p,children:t.isRead?q(yy,{className:Se.read}):q(tr,{})})]}),q("div",{id:m,className:xy,children:E.length>0?E.map((U,N)=>q("p",{className:"wrap-break-word line-clamp-1",children:U},N)):q("p",{children:o.contentEmptyPreview})})]})});Zd.displayName="ListReportCard";var jd=(e,t)=>gy(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),$a=Yd(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=H(),{removeStaleItem:o}=De(),{report:a,error:i,isLoading:s,isRefetching:d}=Mt(e.reportHubId,e.businessDate),m=Sy(!1);hy(()=>{if(d){m.current=!0;return}!(a||s||i)&&m.current&&e.reportHubId>0&&o(e.reportHubId)},[a,s,d,i,e.reportHubId,o]);let u=jd(r,e.reportHubId),f=jd(r,e.reportHubId),g=(E,y)=>q(zd,{reportHubId:e.reportHubId,cursor:r,cardless:{label:de(e.businessDate),isBusy:y,focusTargetRef:u},children:E});return i?g(q("div",{...Oe,className:"flex h-full items-center justify-center rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:q("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?g(q(_y,{}),!0):a?q(zd,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:q(Zd,{item:e,report:a,onSelect:t,focusTargetRef:f})}):g(q("div",{...Oe,className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 border-solid bg-slate-50 p-[15px] text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:q("p",{children:n.reportNotFound})}),!1)});$a.displayName="ListReportItem";import{Fragment as eR,jsx as Ne,jsxs as Lo}from"react/jsx-runtime";var ec={pointerDragInputs:En,inertiaOptions:qt(!1),wheelSpeedMultiplier:yn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},Uy={...ec,inertiaOptions:qt(!0)},Vy=Object.freeze({value:360,unit:"pixels"}),Wy=Object.freeze({value:160,unit:"pixels"}),Ky=Object.freeze({value:Fd,unit:"pixels"}),$y=Object.freeze({value:520,unit:"pixels"}),zy=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),Gy=h("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",J),jy=h("relative w-full",mn,cn),Yy=h(We,"relative isolate overflow-hidden"),Qd="daily-report-list",qy=()=>!1,Xy=e=>{let[t,r]=Do(!1);return za(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] the List root is not attached");let o=i=>{for(let s of i)r(s.contentRect.width>0&&s.contentRect.width<_i)},a=new(qe(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},Ga=e=>{let t=dr(null),[r,n]=Do(null),o=Dn(t),a=Xy(t),{rowSlotHeight:i,remProbe:s}=$d(),d=_n(r),m=st(u=>(t.current=u,n(u),()=>{t.current=null,n(null)}),[]);return Lo("div",{ref:m,className:dn,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:Ne(Zy,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:d})]})},Zy=({dailyReportItems:e,rowSetSize:t,autoMarkRead:r=!1,selectedReportHubId:n,onSelectItem:o,userId:a,scrollOffsetRef:i,rootRef:s,viewportHeight:d,rowSlotHeight:m,isContainerNarrow:u,reducedMotion:f})=>{let[g]=Do(()=>i?.current??0),E=dr(null),{labels:y}=H(),L=In(),[v]=Do(wn),p=Cd()||u,I=dr(null),C=e.length,k=t===void 0?C:t,w=dr(null),U=st(T=>o(T),[o]),N=st(T=>T<C?e[T]:gn,[e,C]),P=st(T=>{let _=N(T.visibleStartIndex);_.reportHubId>0&&v.setLabel(de(_.businessDate))},[N,v]),Z=Co(()=>({kind:"uniform",rowHeight:m}),[m]),B=dr(e);za(()=>{B.current=e},[e]);let{cursor:Q,containerProps:K,handleRangeChange:te,handleScrollAdjust:j,attachVirtualScroll:V,handleRef:ie,scroller:re,attachScrollContainer:ne,contentProps:he,keyboardHelp:$,selection:ve,settledSelection:Fe,resolveSelectedIndex:se,rememberSelection:me,focusAfterRemoval:Be}=yo({items:e,selectedId:n,onSelect:U,containerRef:E,rootRef:s,testId:Qd,itemsRef:B,rowSizing:Z,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:qy,onRangeChange:P}),{isMobileDetailOpen:Ue,setIsMobileDetailOpen:Qe,isOverlayMounted:et,shouldShowOverlay:lt,handleOverlayClose:Ge,lastClosedItemIdRef:Ve,selectedItem:je}=Wd({isMobileLayout:p,selection:ve,dailyReportItems:e,onSelectItem:o,rootRef:s}),yt=Co(()=>({selected:ve,settled:Fe}),[ve,Fe]);Io(()=>{let T=E.current,_=()=>{v.setWheelScrollActive(!0),I.current&&clearTimeout(I.current),I.current=window.setTimeout(()=>{v.setWheelScrollActive(!1),I.current=null},hn)};return T?.addEventListener("wheel",_,{passive:!0}),()=>{T?.removeEventListener("wheel",_),I.current&&clearTimeout(I.current)}},[v]),Io(()=>{!C&&n!==null&&o(null)},[C,n,o]),Io(()=>{if(Ue||Ve.current===null)return;let T=Ve.current;Ve.current=null;let _=se(e,T);if(_===-1)return;let M=ie.current;if(M!==null){let X=Ur(M,_,e.length,Z),fe=X===null?"none":Yl(X);fe!=="none"&&re.toIndex(_,{align:fe})}Q.requestFocus(T)},[Ue,e,Ve,Q,se,ie,Z,re]),Io(()=>{C>0&&v.setLabel(de(e[0].businessDate))},[e,C,v]);let x=st((T,_)=>{T<=0||(me(T,_),o(T),p&&Qe(!0))},[p,o,Qe,me]),c=st(()=>m,[m]),R=dr(m);za(()=>{let T=R.current;R.current=m;let _=ie.current;if(T===m||_===null)return;let M=_.getScrollPosition();M>0&&re.by(M*m/T-M)},[ie,m,re]);let b=st(T=>N(T).reportHubId,[N]),S=st((T,_)=>Ne(ut.Provider,{value:_,children:Ne($a,{item:T,onSelect:x,cursor:Q})},T.reportHubId),[x,Q]),A=st(T=>{i&&(i.current=T);let _=E.current;_&&(_.toggleAttribute(Kt,!0),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{_.toggleAttribute(Kt,!1),w.current=null},150))},[i]),O=st(T=>Ne(Nn,{...T,store:v}),[v]),z=Co(()=>Lo("div",{ref:ne,className:Yy,...K,children:[$,Ne(ct.Provider,{value:k,children:Ne(xo.Provider,{value:m,children:Ne(By,{ref:V,itemCount:C,getItem:N,getItemKey:b,getItemHeight:c,viewportSize:d,initialScrollOffset:g,overscanCount:Sn,scrollBarOptions:{...vn,renderThumbOverlay:O},behaviorOptions:f?Uy:ec,onRangeChange:te,onScrollAdjust:j,onScroll:A,testId:Qd,className:jy,locale:L.locale,labels:L.labels,contentProps:he,children:S})})})]}),[ne,V,K,k,C,N,b,c,d,m,f,g,O,te,j,A,$,he,L.locale,L.labels,S]),W=Co(()=>Lo(Hy,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Ne(Jd,{id:"daily-report-list-panel",defaultSize:Vy,minSize:Wy,maxSize:$y,contentOverflow:"hidden",className:Jy,children:z}),Ne(Fy,{id:"daily-report-list-handle",thickness:10,indicator:zy,className:Gy,"aria-label":y.resizeHandle}),Ne(Jd,{id:"daily-report-detail-panel",minSize:Ky,contentOverflow:"hidden",className:Qy,children:Ne(Bd,{dailyReportItems:e,autoMarkRead:r,userId:a,onReportDeleted:Be})})]}),[z,y.resizeHandle,e,r,a,Be]);return Lo(eR,{children:[p?Ne("div",{className:We,children:z}):Ne(So.Provider,{value:yt,children:W}),et&&Ne(Kd,{isOpen:lt,selectedItem:je,onClose:Ge,autoMarkRead:p&&r,userId:a,onReportDeleted:Be})]})},Jy=h("flex min-h-0",Za),Qy=h("flex min-h-0 flex-1",ht);import{useEffect as ic,useRef as RR}from"react";import rR from"lucide-react/dist/esm/icons/plus.js";import nR from"lucide-react/dist/esm/icons/refresh-cw.js";import oR from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as oc,useMemo as aR,useRef as Ya,useState as qa}from"react";import{useSearchParams as iR}from"react-router";import*as en from"@radix-ui/react-switch";import*as rc from"react";import{jsx as tc}from"react/jsx-runtime";var Ao=rc.forwardRef(({className:e,...t},r)=>tc(en.Root,{className:h(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${si} ${di} ${J}`,e),...t,ref:r,children:tc(en.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${li} ${ci}`})}));Ao.displayName=en.Root.displayName;import{useSyncExternalStore as tR}from"react";var nc=e=>{let t=e,r=new Set;return{get:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},ja=e=>tR(e.subscribe,e.get,e.get);import{Fragment as yR,jsx as ae,jsxs as bt}from"react/jsx-runtime";var sR="list",lR=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},dR=h(mi,bi,"ml-[8px] flex flex-wrap items-center gap-2"),ac="relative h-4 w-4 p-0 after:absolute after:-inset-1",cR="flex items-center gap-2",uR=({count:e})=>{let{labels:t}=H(),r=zr(e);return ae("span",{className:"tabular-nums",children:t.totalCount(r)})},mR=({setSize:e})=>{let{labels:t}=H();return e===Er?ae("span",{children:t.totalCountLoading}):ae(uR,{count:e})},pR=({selectionStore:e,dailyReportItems:t,rowSetSize:r,autoMarkRead:n,userId:o,scrollOffsetRef:a})=>{let i=ja(e);return ae(Ga,{dailyReportItems:t,rowSetSize:r,autoMarkRead:n,selectedReportHubId:i,onSelectItem:e.set,userId:o,scrollOffsetRef:a})},fR=({selectionStore:e,dailyReportItems:t,rowSetSize:r,userId:n,scrollRestoreRef:o})=>{let a=ja(e);return ae(Fa,{dailyReportItems:t,rowSetSize:r,userId:n,selectedItemId:a,onSelectItem:e.set,scrollRestoreRef:o})},bR=({tabItems:e,actions:t})=>{let[r,n]=qa(sR),{labels:o}=H();return bt(qr,{value:r,onValueChange:a=>n(lR(a)),className:h("@container/views",We),children:[bt("div",{className:h(dR,yi[r]),children:[ae(Xr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>ae(Zr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>ae(nr,{value:a,className:h("mt-0",We),children:i},a))]})},Xa=({userId:e})=>{let[t,r]=qa(!1),{labels:n,renderHeader:o,showDevControls:a}=H(),{isSseEnabled:i,toggleSse:s,createReport:d,items:m,refetchData:u,clearCacheAndRefetch:f}=De(),[g]=iR(),E=rs(m.length,Xe()),y=Ya(0),L=Ya({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[v]=qa(()=>nc(m.length===0?null:m[0].reportHubId)),l=Ya(!1);oc(()=>{!l.current&&m.length>0&&(l.current=!0,v.get()===null&&v.set(m[0].reportHubId))},[m,v]);let p=async()=>{await u()},I=async()=>{await f()},C=async()=>{let N=g.get("businessDate")||Oo(),P=await d(N);v.set(P)};oc(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let k=U=>{r(U),localStorage.setItem("daily-report-auto-read",String(U))},w=aR(()=>[{value:"list",label:n.tabList,content:ae(pR,{selectionStore:v,dailyReportItems:m,rowSetSize:E,autoMarkRead:t,userId:e,scrollOffsetRef:y})},{value:"tree",label:n.tabTree,content:ae("div",{className:h("flex flex-1 items-center justify-center",$t),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:ae(fR,{selectionStore:v,dailyReportItems:m,rowSetSize:E,userId:e,scrollRestoreRef:L})}],[m,E,t,e,n,v]);return bt(yR,{children:[o({title:n.title,annotation:bt("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[ae(Gr,{}),ae(mR,{setSize:E}),ae("span",{children:n.debounce(Gt)})]})}),ae("div",{className:ur,children:ae("div",{className:mr,children:ae(bR,{tabItems:w,actions:bt("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[bt(pt,{size:"sm",onClick:C,className:"flex h-6 items-center gap-1 rounded-lg bg-amber-700 px-2 font-medium text-white text-xs shadow-xs hover:bg-amber-800 dark:bg-amber-700 dark:hover:bg-amber-800",title:n.createReportTitle,children:[ae(rR,{className:"h-3 w-3"}),ae("span",{children:n.createReport})]}),a&&bt("div",{className:"hidden h-6 items-center gap-1 rounded-lg border border-amber-300/70 border-solid bg-amber-50/60 px-[3px] text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:n.devControls,"data-testid":"dev-controls-toolbox",children:[ae("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),ae(Ao,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:i,onCheckedChange:s}),bt("div",{className:cR,"data-testid":"dev-icon-buttons",children:[ae(pt,{variant:"ghost",size:"icon",onClick:p,className:h(ac,"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:n.devReload,"data-testid":"dev-reload-btn",children:ae(oR,{className:"size-3"})}),ae(pt,{variant:"ghost",size:"icon",onClick:I,className:h(ac,"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:n.devClearCache,"data-testid":"dev-clear-cache-btn",children:ae(nR,{className:"size-3"})})]})]}),bt("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[ae(Ao,{id:"auto-read-mode",checked:t,onCheckedChange:k}),ae(Fr,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as dc,jsx as Re,jsxs as _o}from"react/jsx-runtime";var sc=h(We,ht),lc=h("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 dark:text-slate-300",rt),gR=()=>{let{labels:e,renderHeader:t}=H();return _o(dc,{children:[t({title:e.title,annotation:Re("span",{className:h("font-bold",pr),children:e.loadErrorBadge})}),Re("div",{className:ur,children:Re("div",{className:mr,children:Re("div",{className:sc,children:_o("div",{className:h(lc,"border-red-200 dark:border-red-900"),children:[Re("p",{className:h("font-medium",pr),children:e.loadError}),Re("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Hn(),className:h("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",J),children:e.reload})]})})})})]})},hR=()=>{let{labels:e,renderHeader:t}=H();return _o(dc,{children:[t({title:e.title,annotation:_o("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[Re(Gr,{}),Re("span",{children:e.totalCountLoading}),Re("span",{children:e.debounce(Gt)})]})}),Re("div",{className:ur,children:Re("div",{className:mr,children:Re("div",{className:sc,children:Re("div",{className:lc,children:e.loadingIds})})})})]})},SR=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=H(),o=Xe(),a=RR(n);a.current=n,ic(()=>{Ir({apiBasePath:r,userKey:t??null})},[r,t]),ic(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.items.length>0||o.phase==="complete";return Re(ca,{children:Re(fa,{user:e,userId:t,children:i?Re(Xa,{userId:t}):o.phase==="failed"?Re(gR,{}):Re(hR,{})},t??"anonymous")})},vR=({config:e,...t})=>Re(Bo,{config:e,children:Re(SR,{...t})});var ER=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:d,nextUrl:m,text:u})=>{if(!n)return!1;if(!(r.pathname===m.pathname&&r.search===m.search&&r.hash===m.hash))return n;if(a){let E=a.get("intent");if(E==="toggleRead"||E==="toggleStar"||E==="addComment"||E==="deleteComment"||E==="create"||E==="update"||E==="publish"||E==="delete")return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||d!==void 0||u!==void 0?n:!1},TR=e=>{let t=async r=>{oa();let n=await r.serverLoader(),o=n.userId;return na({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{Ti as DAILY_REPORT_LABEL_CATALOGS,Mo as DAILY_REPORT_LABEL_KEYS,Fc as DAILY_REPORT_LAYOUT_LATTICE_PX,fa as DailyReportActionProvider,fr as DailyReportAttachmentIndicator,Bo as DailyReportConfigProvider,Fa as DailyReportDetailList,ca as DailyReportErrorProvider,xr as DailyReportIdsStreamClient,Gr as DailyReportIdsStreamStatus,Ga as DailyReportList,vR as DailyReportPage,Xa as DailyReportResolvedContent,na as bootstrapDailyReportIdsStreamSession,TR as createDailyReportClientLoader,ER as dailyReportShouldRevalidate,br as defaultDailyReportClientConfig,Ir as ensureDailyReportIdsStreamSession,oa as primeDailyReportIdsStreamSession,Ho as resolveDailyReportLabels,Nt as resolveSourceTypeConfig,Fn as resyncDailyReportIdsStream,De as useDailyReportActionContext,Dr as useDailyReportComments,H as useDailyReportConfig,Mt as useDailyReportDetail,Xe as useDailyReportIdsStream,zo as useDailyReportPrefetch,la as useDailyReportSseConnection};
|
|
6
|
+
`).replace(/<[^>]+>/g,""):null,[e]),V=async H=>{try{await f(H.reportHubId,!H.isStarred,H.date)}catch{}},k=async H=>{if(confirm(l.confirmDelete)){try{await S(H.reportHubId,H.date)}catch{alert(l.deleteFailed);return}y(H.reportHubId)}};if(n)return B("p",{className:fr,children:l.reportLoadFailed(o.reportHubId)});let P=!e,q=!!(m&&e?.userId===m);return rt("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:u,children:[rt("div",{className:"flex items-start gap-2",children:[B("dl",{className:"m-0 flex min-w-0 flex-1",children:B(se,{label:l.subject,classNames:Gb,children:P?B(ar,{className:"w-3/4"}):B("span",{className:"text-sm",children:ie(e?.subject)})})}),!P&&e&&rt("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[B("button",{type:"button",onClick:()=>V(e),className:Le,title:e.isStarred?l.starRemove:l.starAdd,"aria-label":e.isStarred?l.starRemove:l.starAdd,"data-detail-star-button":e.reportHubId,children:B(Qt,{filled:e.isStarred})}),B("button",{type:"button",onClick:()=>x(e,!1),className:Le,title:e.isRead?l.markUnread:l.markRead,"aria-label":e.isRead?l.markUnread:l.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?B(Ub,{className:ge.read}):B(tr,{})}),u&&B("button",{ref:p,type:"button",onClick:u,"data-detail-edit-button":e.reportHubId,className:Le,title:l.edit,"aria-label":l.edit,children:B(Vb,{className:ge.edit})}),q&&B("button",{type:"button",onClick:()=>k(e),"data-detail-delete-button":e.reportHubId,className:Le,title:l.deleteReport,"aria-label":l.deleteReport,children:B(Wb,{className:ge.delete})})]})]}),B("dl",{className:"m-0",children:B(se,{label:l.customer,classNames:Wd,children:P?B(ar,{className:"w-1/2"}):B("span",{className:"text-sm",children:ie(e?.customerName)})})}),rt("div",{className:"flex flex-col gap-2",children:[B(He,{level:T,className:it,children:l.content}),B("div",{className:R("min-h-22",dn),children:P?rt("div",{className:"space-y-2",children:[B(ar,{className:"w-full"}),B(ar,{className:"w-11/12"}),B(ar,{className:"w-4/5"})]}):O?B("div",{className:"whitespace-pre-wrap",children:O}):B("p",{className:"text-slate-500 dark:text-slate-400",children:l.contentEmpty})})]}),B("dl",{className:"m-0",children:B(se,{label:l.visitTime,classNames:Wd,children:P?B(ar,{className:"w-1/3"}):rt("span",{className:"text-sm",children:[ie(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",ie(e?.visitTimeTo)]})})}),e&&B(Xn,{attachments:e.attachments}),e&&B(Br,{report:e,userId:m,canComment:M,onCommentAdded:d,onSectionRemoved:v,formPlacement:"in-section",sectionClassName:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800"})]})};import{jsx as Ut,jsxs as qd}from"react/jsx-runtime";var py="fixed inset-y-0 left-0 m-0 flex h-auto max-h-none w-auto max-w-none touch-manipulation overflow-hidden border-0 bg-transparent p-0 text-inherit outline-none backdrop:bg-transparent motion-safe:transition-[right] motion-safe:duration-500 motion-safe:ease-[ease]",fy={right:"var(--aqdr-overlay-right, 0px)"},by="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",yy=R("relative ml-auto flex h-full w-full max-w-full touch-none shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out",Ri),Ry=R("inline-flex h-9 touch-manipulation items-center rounded-full border border-slate-300 border-solid px-[15px] font-medium text-slate-600 text-sm shadow-sm hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",X),gy=50,Xd=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=xo(!1),[d,m]=xo(!1),u=nt(null),p=nt(null),y=nt(null),v=nt(e),f=nt(!0),D=qr(r,t),S=To(()=>{let x=o.current;if(x===null)return;let M=x.ownerDocument.body;y.current={body:M,overflow:M.style.overflow},M.style.overflow="hidden"},[o]),l=To(()=>{let x=y.current;x!==null&&(x.body.style.overflow=x.overflow,y.current=null)},[]);ir(()=>{if(f.current){f.current=!1,v.current=e;return}let x=!v.current;v.current=e,x&&e&&a!==null?s(!0):!e&&i&&(p.current=a,s(!1),l())},[e,a,i,l]);let g=e&&i&&D!==null;ir(()=>{if(g)m(!0);else{let x=setTimeout(()=>m(!1),300);return()=>clearTimeout(x)}},[g]),ir(()=>{if(e&&i&&a!==null&&!u.current){let x=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:x},"",window.location.href),u.current=x}else!(e&&i)&&u.current&&(u.current=null);return e&&i?S():l(),l},[e,i,a,S,l]),ir(()=>{let x=()=>{u.current&&(p.current=a,u.current=null,s(!1),n(null))};return window.addEventListener("popstate",x),()=>window.removeEventListener("popstate",x)},[a,n]);let T=To(()=>{e&&(p.current=a,s(!1),n(null),u.current&&(u.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:d,shouldShowOverlay:g,handleOverlayClose:T,lastClosedItemIdRef:p,selectedItem:D}},Zd=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=F(),s=nt(null),d=ja(),m=ja(),[u,p]=xo(Ga),y=ly(),v=ja(),f=nt(!1),D=nt(e),S=nt(null),[l]=xo(()=>za(e)),{isBlocked:g,requestBlock:T,reset:x}=dy(),M=my(e,t),{overlayRef:O,overlayStyle:V,attemptClose:k,isSwiping:P}=cy({isOpen:e,onClose:r,isCloseBlocked:To(()=>g,[g]),skipWhenTextSelected:!0}),q=nt(k);Yd(()=>{q.current=k,D.current=e,l.set(e)},[k,e,l]),ir(()=>{if(e)return y({id:v,onEscape:j=>Fr(j)&&q.current()})},[e,y,v]),Yd(()=>{let j=s.current;if(j===null)return;if(e){if(f.current)return;j.showModal(),f.current=!0,j.ownerDocument.getElementById(d)?.focus();return}if(!f.current)return;f.current=!1;let K=_e(j);K!==null&&j.contains(K)&&qo(K)&&K.blur(),j.close()},[e,d]),ir(()=>{e||x()},[e,x]);let H=uy(()=>k()),Q=j=>{let K=Zn(j);if(Fr(K)){k()&&j.preventDefault();return}if(K.key==="Escape"){S.current=j.timeStamp;return}let be=Cl(K,j.currentTarget);be!==null&&(j.preventDefault(),be.kind==="wrap"&&be.element.focus())},U=j=>{j.preventDefault();let K=S.current;S.current=null,!(K!==null&&j.timeStamp-K<=gy)&&q.current()},re=j=>{let K=j.currentTarget;K.open||!D.current||(f.current=!1,!q.current()&&(K.showModal(),f.current=!0))};return M?qd("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${d} ${m}`,tabIndex:-1,className:R(py,e&&!P?"pointer-events-auto":"pointer-events-none"),style:fy,inert:!e,onKeyDown:Q,onCancel:U,onClose:re,children:[Ut("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:R(by,e?"opacity-100":"opacity-0"),...H}),Ut("div",{ref:O,"data-daily-report-overlay-panel":"",className:R(yy,e?"pointer-events-auto":"pointer-events-none"),style:V,children:qd("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Ut(sy.Provider,{value:{isBlocked:g,requestBlock:T},children:Ut("div",{"data-testid":"daily-report-side-pane","data-report-id":M.reportHubId,"data-displayed-report-id":M.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Ut(Eo,{item:M,headingId:d,authorId:m,activeTab:u,onActiveTabChange:p,autoMarkRead:n,isActive:e,dwell:l,userId:o,onReportDeleted:a},M.reportHubId)})}),Ut("div",{className:"flex justify-start",children:Ut("button",{type:"button","data-overlay-interactive":"true",className:Ry,onClick:()=>k(),children:i.close})})]})})]}):null};import Ny from"lucide-react/dist/esm/icons/check.js";import{createContext as Oy,memo as rc,useCallback as My,useContext as lr,useEffect as Py,useId as tn,useMemo as nc,useRef as ky}from"react";import{createContext as hy,createElement as Sy,useLayoutEffect as vy,useMemo as Ey,useRef as Ty,useState as xy}from"react";var Iy=6.75,Cy=4,Dy=1e-6,Ay=e=>4*Math.ceil((2*yt+2*ln+Cy+Iy*e-Dy)/4),Io=hy(null),Ly="data-daily-report-root-font-size-probe",_y={position:"fixed",insetBlockStart:0,insetInlineStart:0,visibility:"hidden",pointerEvents:"none",overflow:"hidden",writingMode:"horizontal-tb",boxSizing:"content-box",padding:0,border:0,margin:0,blockSize:"1rem",inlineSize:0},wy=e=>{let t=ke(e).getComputedStyle(e.ownerDocument.documentElement).fontSize,r=/^(\d+(?:\.\d+)?)px$/.exec(t);if(r===null||!(Number(r[1])>0))throw new Error(`[daily-report] the root element has no computed font size in px; got ${JSON.stringify(t)}`);return Number(r[1])},Jd=()=>{let e=Ty(null),[t,r]=xy(null);vy(()=>{let o=e.current;if(o===null)throw new Error("[daily-report] useListRowSlotHeight needs the List to render remProbe");let a=null,i=()=>{let d=Ay(wy(o));d!==a&&(a=d,r(d))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=Ey(()=>Sy("div",{ref:e,"aria-hidden":!0,[Ly]:"",style:_y}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as dr}from"react/jsx-runtime";var Hy=R(Rt,an,sn,on),Fy=R("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",Qe,cn,oi),By="min-w-24",Uy="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",Vy={touchAction:"manipulation"},Wy=R("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",By),Ky=R("relative z-10",Le),$y=R("flex h-full",Qe),zy="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",sr="h-4 rounded bg-slate-200 dark:bg-slate-700",Gy=()=>Y("div",{"data-skeleton":!0,...Pe,className:$y,children:dr("div",{className:zy,children:[dr("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:R(sr,"w-24")}),Y("div",{className:R(sr,"w-24")}),Y("div",{className:R(sr,"w-24")})]}),dr("div",{className:"space-y-2",children:[Y("div",{className:R(sr,"w-full")}),Y("div",{className:R(sr,"w-11/12")}),Y("div",{className:R(sr,"w-5/6")})]})]})}),jy=e=>{e.target===e.currentTarget&&e.preventDefault()},Yy="h-full w-full",oc=Oy(!1),Qd=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=lr(lt),a=lr(st),i=lr(Io);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=nc(()=>({height:i}),[i]),{isCurrent:d,isTabStop:m}=bo(t,e),u=yo(t,e,o);return Y(Nr.Provider,{value:m,children:Y(oc.Provider,{value:d,children:Y("div",{ref:r?.focusTargetRef,role:"listitem","data-daily-report-row":e,"aria-posinset":o+1,"aria-setsize":a,"aria-label":r?.label,"aria-busy":r?.isBusy||!u?!0:void 0,"aria-current":r!==null&&d?"true":void 0,tabIndex:r===null?-1:void 0,className:Hy,style:s,onMouseDown:jy,children:u?n:Y("div",{...Pe,className:Yy})})})})},qy=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,Xy=e=>{if(!e)return[];let t=[],r="",n=0,o=()=>{let a=r.replace(/\u3000/g," ").trim();a.length>0&&t.push(a),r=""};for(let a of e.matchAll(qy))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===ki))return t;return r+=e.slice(n),o(),t},Zy=({id:e})=>{let{labels:t}=F(),r=lr(lt),n=lr(st);return Y("span",{id:e,hidden:!0,children:n===Tr?t.listRowPositionInUnknownTotal(r+1):t.listRowPosition(r+1,n)})},Jy=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=lr(oc);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:Wy,children:o})},ec=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=Zt();return Y("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:Ky,children:n})},ac=rc(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=F(),{toggleStar:i,toggleRead:s}=Ee(),d=tn(),m=tn(),u=tn(),p=tn(),y=tn(),v=nc(()=>Xy(t.content??null),[t.content]),f=ie(t.employeeName),D=ae(e.businessDate),S=V=>{V.currentTarget.focus({preventScroll:!0});let k=os(V.currentTarget);k!==null&&r(e.reportHubId,k)},l=async()=>{let V=!t.isStarred;try{await i(t.reportHubId,V,t.date)}catch{}},g=async()=>{let V=!t.isRead;try{await s(t.reportHubId,V,t.date)}catch{}},T=t.isStarred?o.starRemove:o.starAdd,x=t.isRead?o.markUnread:o.markRead,M=_t(t.sourceType,a),O=[d,u,...t.attachments.length>0?[p]:[],...M===void 0?[]:[y],m].join(" ");return dr("div",{"data-daily-report-card":!0,...Pe,style:Vy,className:Fy,children:[Y(Zy,{id:d}),Y("span",{id:u,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),dr(Jy,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:O,onClick:S,children:[Y("span",{className:R(De,"shrink-0 bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:D})})," ",Y("span",{className:R(De,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:f})})]}),dr("div",{className:R(si,"ml-auto"),children:[Y(br,{id:p,count:t.attachments.length,label:o.attachments}),M?Y(er,{id:y,config:M}):null,Y(ec,{label:T,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:l,children:Y(Qt,{filled:t.isStarred})}),Y(ec,{label:x,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:g,children:t.isRead?Y(Ny,{className:ge.read}):Y(tr,{})})]}),Y("div",{id:m,className:Uy,children:v.length>0?v.map((V,k)=>Y("p",{className:"wrap-break-word line-clamp-1",children:V},k)):Y("p",{children:o.contentEmptyPreview})})]})});ac.displayName="ListReportCard";var tc=(e,t)=>My(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),Ya=rc(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=F(),{removeStaleItem:o}=Ee(),{report:a,error:i,isLoading:s,isRefetching:d}=Nt(e.reportHubId,e.businessDate),m=ky(!1);Py(()=>{if(d){m.current=!0;return}!(a||s||i)&&m.current&&e.reportHubId>0&&o(e.reportHubId)},[a,s,d,i,e.reportHubId,o]);let u=tc(r,e.reportHubId),p=tc(r,e.reportHubId),y=(v,f)=>Y(Qd,{reportHubId:e.reportHubId,cursor:r,cardless:{label:ae(e.businessDate),isBusy:f,focusTargetRef:u},children:v});return i?y(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:Y("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?y(Y(Gy,{}),!0):a?Y(Qd,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(ac,{item:e,report:a,onSelect:t,focusTargetRef:p})}):y(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 border-solid bg-slate-50 p-[15px] text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:Y("p",{children:n.reportNotFound})}),!1)});Ya.displayName="ListReportItem";import{Fragment as yR,jsx as Ne,jsxs as Ao}from"react/jsx-runtime";var lc={pointerDragInputs:xn,inertiaOptions:jt(!1),wheelSpeedMultiplier:gn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},rR={...lc,inertiaOptions:jt(!0)},nR=Object.freeze({value:360,unit:"pixels"}),oR=Object.freeze({value:160,unit:"pixels"}),aR=Object.freeze({value:Gd,unit:"pixels"}),iR=Object.freeze({value:520,unit:"pixels"}),sR=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),lR=R("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",X),dR=R("relative w-full",fn,mn),cR=R(We,"relative isolate overflow-hidden"),sc="daily-report-list",uR=()=>!1,mR=e=>{let[t,r]=Lo(!1);return qa(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] the List root is not attached");let o=i=>{for(let s of i)r(s.contentRect.width>0&&s.contentRect.width<Pi)},a=new(ke(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},Xa=e=>{let t=cr(null),[r,n]=Lo(null),o=_n(t),a=mR(t),{rowSlotHeight:i,remProbe:s}=Jd(),d=Yt(r),m=ot(u=>(t.current=u,n(u),()=>{t.current=null,n(null)}),[]);return Ao("div",{ref:m,className:un,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:Ne(pR,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:d})]})},pR=({dailyReportItems:e,rowSetSize:t,autoMarkRead:r=!1,selectedReportHubId:n,onSelectItem:o,userId:a,scrollOffsetRef:i,rootRef:s,viewportHeight:d,rowSlotHeight:m,isContainerNarrow:u,reducedMotion:p})=>{let[y]=Lo(()=>i?.current??0),v=cr(null),{labels:f}=F(),D=Dn(),[S]=Lo(Nn),g=Md()||u,T=cr(null),x=e.length,M=t===void 0?x:t,O=cr(null),V=ot(h=>o(h),[o]),k=ot(h=>h<x?e[h]:Sn,[e,x]),P=ot(h=>{let C=k(h.visibleStartIndex);C.reportHubId>0&&S.setLabel(ae(C.businessDate))},[k,S]),q=Do(()=>({kind:"uniform",rowHeight:m}),[m]),H=cr(e);qa(()=>{H.current=e},[e]);let{cursor:Q,containerProps:U,handleRangeChange:re,handleScrollAdjust:j,attachVirtualScroll:K,handleRef:be,scroller:oe,attachScrollContainer:Ae,contentProps:Oe,keyboardHelp:J,selection:ye,settledSelection:Ge,resolveSelectedIndex:Re,rememberSelection:de,focusAfterRemoval:je}=go({items:e,selectedId:n,onSelect:V,containerRef:v,rootRef:s,testId:sc,itemsRef:H,rowSizing:q,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:uR,onRangeChange:P}),{isMobileDetailOpen:Ye,setIsMobileDetailOpen:mt,isOverlayMounted:pt,shouldShowOverlay:ft,handleOverlayClose:Ue,lastClosedItemIdRef:Ce,selectedItem:Me}=Xd({isMobileLayout:g,selection:ye,dailyReportItems:e,onSelectItem:o,rootRef:s}),at=Do(()=>({selected:ye,settled:Ge}),[ye,Ge]);Co(()=>{let h=v.current,C=()=>{S.setWheelScrollActive(!0),T.current&&clearTimeout(T.current),T.current=window.setTimeout(()=>{S.setWheelScrollActive(!1),T.current=null},vn)};return h?.addEventListener("wheel",C,{passive:!0}),()=>{h?.removeEventListener("wheel",C),T.current&&clearTimeout(T.current)}},[S]),Co(()=>{!x&&n!==null&&o(null)},[x,n,o]),Co(()=>{if(Ye||Ce.current===null)return;let h=Ce.current;Ce.current=null;let C=Re(e,h);if(C===-1)return;let N=be.current;if(N!==null){let $=Wr(N,C,e.length,q),ce=$===null?"none":rd($);ce!=="none"&&oe.toIndex(C,{align:ce})}Q.requestFocus(h)},[Ye,e,Ce,Q,Re,be,q,oe]),Co(()=>{x>0&&S.setLabel(ae(e[0].businessDate))},[e,x,S]);let Ve=ot((h,C)=>{h<=0||(de(h,C),o(h),g&&mt(!0))},[g,o,mt,de]),I=ot(()=>m,[m]),c=cr(m);qa(()=>{let h=c.current;c.current=m;let C=be.current;if(h===m||C===null)return;let N=C.getScrollPosition();N>0&&oe.by(N*m/h-N)},[be,m,oe]);let b=ot(h=>k(h).reportHubId,[k]),E=ot((h,C)=>Ne(lt.Provider,{value:C,children:Ne(Ya,{item:h,onSelect:Ve,cursor:Q})},h.reportHubId),[Ve,Q]),L=ot(h=>{i&&(i.current=h);let C=v.current;C&&(C.toggleAttribute(Vt,!0),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>{C.toggleAttribute(Vt,!1),O.current=null},150))},[i]),_=ot(h=>Ne(On,{...h,store:S}),[S]),w=Do(()=>Ao("div",{ref:Ae,className:cR,...U,children:[J,Ne(st.Provider,{value:M,children:Ne(Io.Provider,{value:m,children:Ne(tR,{ref:K,itemCount:x,getItem:k,getItemKey:b,getItemHeight:I,viewportSize:d,initialScrollOffset:y,overscanCount:En,scrollBarOptions:{...Tn,renderThumbOverlay:_},behaviorOptions:p?rR:lc,onRangeChange:re,onScrollAdjust:j,onScroll:L,testId:sc,className:dR,locale:D.locale,labels:D.labels,contentProps:Oe,children:E})})})]}),[Ae,K,U,M,x,k,b,I,d,m,p,y,_,re,j,L,J,Oe,D.locale,D.labels,E]),W=Do(()=>Ao(Qy,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Ne(ic,{id:"daily-report-list-panel",defaultSize:nR,minSize:oR,maxSize:iR,contentOverflow:"hidden",className:fR,children:w}),Ne(eR,{id:"daily-report-list-handle",thickness:10,indicator:sR,className:lR,"aria-label":f.resizeHandle}),Ne(ic,{id:"daily-report-detail-panel",minSize:aR,contentOverflow:"hidden",className:bR,children:Ne(jd,{dailyReportItems:e,autoMarkRead:r,userId:a,onReportDeleted:je})})]}),[w,f.resizeHandle,e,r,a,je]);return Ao(yR,{children:[g?Ne("div",{className:We,children:w}):Ne(vo.Provider,{value:at,children:W}),pt&&Ne(Zd,{isOpen:ft,selectedItem:Me,onClose:Ue,autoMarkRead:g&&r,userId:a,onReportDeleted:je})]})},fR=R("flex min-h-0",ei),bR=R("flex min-h-0 flex-1",Rt);import{useEffect as fc,useLayoutEffect as OR,useRef as MR}from"react";import gR from"lucide-react/dist/esm/icons/plus.js";import hR from"lucide-react/dist/esm/icons/refresh-cw.js";import SR from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as mc,useMemo as vR,useRef as Ja,useState as wo}from"react";import{useSearchParams as ER}from"react-router";import*as rn from"@radix-ui/react-switch";import*as cc from"react";import{jsx as dc}from"react/jsx-runtime";var _o=cc.forwardRef(({className:e,...t},r)=>dc(rn.Root,{className:R(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${ci} ${mi} ${X}`,e),...t,ref:r,children:dc(rn.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${ui} ${pi}`})}));_o.displayName=rn.Root.displayName;import{useSyncExternalStore as RR}from"react";var uc=e=>{let t=e,r=new Set;return{get:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},Za=e=>RR(e.subscribe,e.get,e.get);import{Fragment as NR,jsx as te,jsxs as ut}from"react/jsx-runtime";var TR="list",xR=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},IR=R(bi,gi,"ml-[8px] flex flex-wrap items-center gap-2"),pc="relative h-4 w-4 p-0 after:absolute after:-inset-1",CR="flex items-center gap-2",DR=({count:e})=>{let{labels:t}=F(),[r,n]=wo(null),o=Gr(e,r);return te("span",{ref:n,className:"tabular-nums",children:t.totalCount(o)})},AR=({setSize:e})=>{let{labels:t}=F();return e===Tr?te("span",{children:t.totalCountLoading}):te(DR,{count:e})},LR=({selectionStore:e,dailyReportItems:t,rowSetSize:r,autoMarkRead:n,userId:o,scrollOffsetRef:a})=>{let i=Za(e);return te(Xa,{dailyReportItems:t,rowSetSize:r,autoMarkRead:n,selectedReportHubId:i,onSelectItem:e.set,userId:o,scrollOffsetRef:a})},_R=({selectionStore:e,dailyReportItems:t,rowSetSize:r,userId:n,scrollRestoreRef:o})=>{let a=Za(e);return te(Wa,{dailyReportItems:t,rowSetSize:r,userId:n,selectedItemId:a,onSelectItem:e.set,scrollRestoreRef:o})},wR=({tabItems:e,actions:t})=>{let[r,n]=wo(TR),{labels:o}=F();return ut(Zr,{value:r,onValueChange:a=>n(xR(a)),className:R("@container/views",We),children:[ut("div",{className:R(IR,hi[r]),children:[te(Jr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>te(Qr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>te(or,{value:a,className:R("mt-0",We),children:i},a))]})},Qa=({userId:e})=>{let[t,r]=wo(!1),{labels:n,renderHeader:o,showDevControls:a}=F(),{toggleSse:i,createReport:s,refetchData:d,clearCacheAndRefetch:m}=Ee(),{isSseEnabled:u,items:p}=jn(),[y]=ER(),v=ss(p.length,Xe()),f=Ja(0),D=Ja({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[S]=wo(()=>uc(p.length===0?null:p[0].reportHubId)),l=Ja(!1);mc(()=>{!l.current&&p.length>0&&(l.current=!0,S.get()===null&&S.set(p[0].reportHubId))},[p,S]);let g=async()=>{await d()},T=async()=>{await m()},x=async()=>{let k=y.get("businessDate")||Po(),P=await s(k);S.set(P)};mc(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let M=V=>{r(V),localStorage.setItem("daily-report-auto-read",String(V))},O=vR(()=>[{value:"list",label:n.tabList,content:te(LR,{selectionStore:S,dailyReportItems:p,rowSetSize:v,autoMarkRead:t,userId:e,scrollOffsetRef:f})},{value:"tree",label:n.tabTree,content:te("div",{className:R("flex flex-1 items-center justify-center",Wt),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:te(_R,{selectionStore:S,dailyReportItems:p,rowSetSize:v,userId:e,scrollRestoreRef:D})}],[p,v,t,e,n,S]);return ut(NR,{children:[o({title:n.title,annotation:ut("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[te(Yr,{}),te(AR,{setSize:v}),te("span",{children:n.debounce($t)})]})}),te("div",{className:mr,children:te("div",{className:pr,children:te(wR,{tabItems:O,actions:ut("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[ut(dt,{size:"sm",onClick:x,className:"flex h-6 items-center gap-1 rounded-lg bg-amber-700 px-2 font-medium text-white text-xs shadow-xs hover:bg-amber-800 dark:bg-amber-700 dark:hover:bg-amber-800",title:n.createReportTitle,children:[te(gR,{className:"h-3 w-3"}),te("span",{children:n.createReport})]}),a&&ut("div",{className:"hidden h-6 items-center gap-1 rounded-lg border border-amber-300/70 border-solid bg-amber-50/60 px-[3px] text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:n.devControls,"data-testid":"dev-controls-toolbox",children:[te("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),te(_o,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:u,onCheckedChange:i}),ut("div",{className:CR,"data-testid":"dev-icon-buttons",children:[te(dt,{variant:"ghost",size:"icon",onClick:g,className:R(pc,"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:n.devReload,"data-testid":"dev-reload-btn",children:te(SR,{className:"size-3"})}),te(dt,{variant:"ghost",size:"icon",onClick:T,className:R(pc,"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:n.devClearCache,"data-testid":"dev-clear-cache-btn",children:te(hR,{className:"size-3"})})]})]}),ut("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[te(_o,{id:"auto-read-mode",checked:t,onCheckedChange:M}),te(Ur,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as Rc,jsx as pe,jsxs as No}from"react/jsx-runtime";var bc=R(We,Rt),yc=R("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 dark:text-slate-300",Qe),PR=()=>{let{labels:e,renderHeader:t}=F();return No(Rc,{children:[t({title:e.title,annotation:pe("span",{className:R("font-bold",fr),children:e.loadErrorBadge})}),pe("div",{className:mr,children:pe("div",{className:pr,children:pe("div",{className:bc,children:No("div",{className:R(yc,"border-red-200 dark:border-red-900"),children:[pe("p",{className:R("font-medium",fr),children:e.loadError}),pe("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Fn(),className:R("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",X),children:e.reload})]})})})})]})},kR=()=>{let{labels:e,renderHeader:t}=F();return No(Rc,{children:[t({title:e.title,annotation:No("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[pe(Yr,{}),pe("span",{children:e.totalCountLoading}),pe("span",{children:e.debounce($t)})]})}),pe("div",{className:mr,children:pe("div",{className:pr,children:pe("div",{className:bc,children:pe("div",{className:yc,children:e.loadingIds})})})})]})},HR=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=F(),o=Xe(),a=MR(n);OR(()=>{a.current=n}),fc(()=>{Cr({apiBasePath:r,userKey:t??null})},[r,t]),fc(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.loadedCount>0||o.phase==="complete";return pe(ua,{children:pe(ya,{user:e,userId:t,children:i?pe(Qa,{userId:t}):o.phase==="failed"?pe(PR,{}):pe(kR,{})},t??"anonymous")})},FR=({config:e,...t})=>pe(Vo,{config:e,children:pe(HR,{...t})});var BR=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:d,nextUrl:m,text:u})=>{if(!n)return!1;if(!(r.pathname===m.pathname&&r.search===m.search&&r.hash===m.hash))return n;if(a){let v=a.get("intent");if(v==="toggleRead"||v==="toggleStar"||v==="addComment"||v==="deleteComment"||v==="create"||v==="update"||v==="publish"||v==="delete")return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||d!==void 0||u!==void 0?n:!1},UR=e=>{let t=async r=>{aa();let n=await r.serverLoader(),o=n.userId;return oa({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{Ai as DAILY_REPORT_LABEL_CATALOGS,ko as DAILY_REPORT_LABEL_KEYS,zc as DAILY_REPORT_LAYOUT_LATTICE_PX,ya as DailyReportActionProvider,br as DailyReportAttachmentIndicator,Vo as DailyReportConfigProvider,Wa as DailyReportDetailList,ua as DailyReportErrorProvider,Ir as DailyReportIdsStreamClient,Yr as DailyReportIdsStreamStatus,Xa as DailyReportList,FR as DailyReportPage,Qa as DailyReportResolvedContent,oa as bootstrapDailyReportIdsStreamSession,UR as createDailyReportClientLoader,BR as dailyReportShouldRevalidate,yr as defaultDailyReportClientConfig,Cr as ensureDailyReportIdsStreamSession,aa as primeDailyReportIdsStreamSession,Bo as resolveDailyReportLabels,_t as resolveSourceTypeConfig,Bn as resyncDailyReportIdsStream,Tm as useDailyReportActionContext,Da as useDailyReportComments,F as useDailyReportConfig,Nt as useDailyReportDetail,Xe as useDailyReportIdsStream,Go as useDailyReportPrefetch,da as useDailyReportSseConnection};
|