@aiquants/daily-report 0.33.0 → 0.34.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 +61 -0
- package/README.md +108 -45
- package/dist/client.d.mts +110 -122
- package/dist/client.d.ts +110 -122
- package/dist/client.js +4 -4
- package/dist/client.mjs +4 -4
- package/dist/comment-adapter-7TduiLiu.d.mts +127 -0
- package/dist/comment-adapter-BLfjD6P0.d.ts +127 -0
- package/dist/index.d.mts +18 -3
- package/dist/index.d.ts +18 -3
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/server.d.mts +16 -8
- package/dist/server.d.ts +16 -8
- package/dist/server.js +4 -4
- package/dist/server.mjs +4 -4
- package/dist/styles/daily-report.standalone.css +1 -1
- package/package.json +3 -3
- package/dist/ids-stream-CtlszCHr.d.ts +0 -32
- package/dist/ids-stream-CyK2upgD.d.mts +0 -32
- /package/dist/{sse-schema-DcOgQr_O.d.mts → sse-schema-DVIUaiAG.d.mts} +0 -0
- /package/dist/{sse-schema-DcOgQr_O.d.ts → sse-schema-DVIUaiAG.d.ts} +0 -0
package/dist/client.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import ou from"lucide-react/dist/esm/icons/paperclip.js";var tu="data-daily-report-row-surface",Pe={[tu]:""},jt="data-daily-report-scrolling",ht=8,yr="h-[calc-size(auto,round(up,size,4px))]",St="p-[8px]",Ri="pr-[8px]",sn="contain-size contain-layout contain-style",gi="contain-strict",X="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",hi="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",qo="scrollbar-thin [scrollbar-gutter:stable]",Xo=`-m-[4px] overflow-hidden p-[4px] ${qo}`,Si="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",ln="rounded-[calc(var(--radius-2xl)+8px)]",dn="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]",vi="[: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",tt="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",cn=16,Gt="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",Ei=12,un="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",mn="[--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",we=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${X}`,Ti="-mx-1",Ii="flex items-center gap-1",Ce="inline-flex h-6 items-center rounded-full px-3",xi="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Ci="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",gt="size-4",he={starOff:`${gt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${gt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${gt} text-blue-600 dark:text-blue-400`,delete:`${gt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${gt} text-red-600 dark:text-red-400`,edit:`${gt} text-slate-500 dark:text-slate-400`},Ai="h-6 w-10 border-4 border-solid",Di="size-4 data-[state=checked]:translate-x-4",_i="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]",Li="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var wi="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",Ni="rounded-xl border border-solid p-[3px]",Oi="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",ru="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",nu="bg-slate-50 dark:bg-slate-950",We="flex min-h-0 flex-1 flex-col",Rr=`${We} ${nu}`,gr=`${We} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${ru}`,hr="text-red-700 dark:text-red-400",Mi="bg-white dark:bg-slate-900",pn="min-h-0 flex-1 overflow-clip contain-size",fn="flex h-full flex-col contain-size contain-layout contain-style",Pi="relative inline-block whitespace-nowrap tabular-nums",ki="invisible",Hi="absolute inset-0 contain-size contain-layout contain-style",bn="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",Fi="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",Bi={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},Nt="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",it=`m-0 ${Nt}`,yn="text-balance wrap-anywhere [word-break:auto-phrase]",Rn="[&_.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 Ui,jsxs as iu}from"react/jsx-runtime";var au=2,Sr=({id:e,count:t,label:r})=>t<=0?null:iu("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:[Ui(ou,{className:gt,"aria-hidden":"true"}),t>=au&&Ui("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as hy}from"@aiquants/virtualscroll";import{useCallback as xe,useEffect as wt,useLayoutEffect as Sy,useMemo as oi,useRef as Oe,useState as Mo}from"react";var le=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},ie=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?ie(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"),c=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${d}:${m}:${c}`}return`${o}-${a}-${i}`};import{useCallback as $u,useEffect as ls,useRef as ju,useState as Gu}from"react";import{z as da}from"zod";var gn="ids-stream",Vi=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 Ot=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Zo=e=>{for(let t=1;t<e.length;t++)if(Ot(e[t-1],e[t])>0)return!1;return!0};var vt=Object.freeze({businessDate:"business-date",idsStream:gn,report:"report",action:"action"}),Jo=Object.freeze({businessDate:"businessDate",reportHubId:"reportHubId",forceRefresh:"forceRefresh",cursorReportHubId:"cursor_report_hub_id",cursorBusinessDate:"cursor_business_date",cursorSnapshot:"cursor_snapshot"});var su=/^(\d{4})([-/])(\d{2})\2(\d{2})$/;var hn=e=>e<10?`0${e}`:`${e}`,lu=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=hn(e.getMonth()+1),n=hn(e.getDate());return`${t}-${r}-${n}`},Wi=e=>{let t=su.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}`},Ki=e=>Wi(e)===e,Qo=(e=new Date)=>Number.isNaN(e.getTime())?Qo(new Date):`${e.getFullYear()}-${hn(e.getMonth()+1)}-${hn(e.getDate())}`,Mt=e=>e==null?null:e instanceof Date?lu(e):Wi(e);var Yt=(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{z as D}from"zod";var Sn=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|-[1-9][0-9]{0,15})$/;var zi=["auth-required","forbidden","resync-required"],ea=15e3,$i="lastEventId",du=/^\d{1,15}-\d{1,15}$/,vn=e=>du.test(e),cu=D.object({name:D.string().nullish(),affiliation:D.string().nullish()}),uu=D.object({name:D.string().nullish(),text:D.string().nullish(),color:D.string().nullish()}),mu=D.object({id:D.number(),name:D.string().nullish(),color:D.string().nullish()}),En=D.object({id:D.number(),userId:D.string().nullish(),userName:D.string().nullish(),content:D.string().nullish(),createdAt:D.string().nullish(),isMine:D.boolean()}),pu=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)}),st=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(cu),subject:D.string().nullish(),content:D.string().nullish(),externalComments:D.array(uu),isRead:D.boolean(),isStarred:D.boolean(),labels:D.array(mu),postedComments:D.array(En),attachments:D.array(pu).default([])}),Pt=D.string().regex(Sn),fu=D.object({type:D.literal("connected")}),bu=D.object({type:D.literal("status-update"),reportHubId:D.number(),statusType:D.enum(["star","read"]),value:D.boolean(),clientTempId:Pt,recipientRawUserId:D.number().optional()}),ta=D.string().optional(),yu=D.object({type:D.literal("comment-add"),reportHubId:D.number(),comment:En,clientTempId:Pt,recipientRawUserId:D.number().optional(),sourceType:ta}),Ru=D.object({type:D.literal("comment-delete"),reportHubId:D.number(),commentId:D.number(),clientTempId:Pt,recipientRawUserId:D.number().optional(),sourceType:ta}),gu=D.object({type:D.literal("report-create"),reportHubId:D.number(),report:st,clientTempId:Pt,recipientRawUserId:D.number().optional()}),hu=D.object({type:D.literal("report-update"),reportHubId:D.number(),report:st,clientTempId:Pt,recipientRawUserId:D.number().optional()}),Su=D.object({type:D.literal("report-publish"),reportHubId:D.number(),report:st,clientTempId:Pt,recipientRawUserId:D.number().optional()}),vu=D.object({type:D.literal("report-delete"),reportHubId:D.number(),clientTempId:Pt,sourceType:ta}),ji=D.discriminatedUnion("type",[fu,bu,yu,Ru,gu,hu,Su,vu]);import{resolveVirtualScrollLocale as _u}from"@aiquants/virtualscroll";import{createContext as Lu,useContext as wu,useMemo as Nu}from"react";var Eu=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,Ee=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Eu(r)}`),Gi=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),Tn=(e,t,r)=>Ee(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Tu,resolveVirtualScrollLocale as Iu,VIRTUAL_SCROLL_LABEL_CATALOGS as Yi,VIRTUAL_SCROLL_LABEL_KEYS as oa}from"@aiquants/virtualscroll";var Xi=["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"],Zi=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState","listRowPosition","listRowPositionInUnknownTotal"],ra=[...oa,...Xi,...Zi];var xu=Object.freeze({en:"en-US",ja:"ja-JP"}),pe=(e,t)=>t.toLocaleString(xu[e]),Cu=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"}),Au=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"}),na=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: ${pe("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${pe("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${pe("en",e)} / ${pe("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${pe("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${pe("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${pe("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${Au[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`,listRowPosition:(e,t)=>`${pe("en",e)} of ${pe("en",t)}`,listRowPositionInUnknownTotal:e=>`Item ${pe("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: ${pe("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${pe("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${pe("ja",e)} / ${pe("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${pe("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${pe("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${pe("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Cu[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 ${pe("ja",t)} \u4EF6\u4E2D ${pe("ja",e)} \u4EF6\u76EE`,listRowPositionInUnknownTotal:e=>`${pe("ja",e)} \u4EF6\u76EE`})}),Ji=Object.freeze({en:Object.freeze({...Yi.en,...na.en}),ja:Object.freeze({...Yi.ja,...na.ja})}),Du=e=>{let t={},r=!1;for(let n of oa){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},qi=(e,t,r)=>{e[t]=r},aa=(e,t)=>{let r=Iu(e);if(t===void 0)return Ji[r];if(t===null||typeof t!="object")throw Ee("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw Ee("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!ra.includes(i))throw Tn("labels key",i,ra);let a={...Tu(r,Du(t)),...na[r]};for(let i of Xi){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw Ee(`labels.${i}`,"a non-blank string",s);qi(a,i,s)}}for(let i of Zi){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw Ee(`labels.${i}`,"a function",s);qi(a,i,s)}}return Object.freeze(a)},Qi=e=>{let t={};for(let r of oa)t[r]=e[r];return Object.freeze(t)};import{jsx as ia,jsxs as Uu}from"react/jsx-runtime";var Ou=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Mu=({title:e,annotation:t})=>Uu("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[ia("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?ia("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),vr=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Mu,showDevControls:!1,headingLevel:3}),es=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Pu=e=>{for(let t of Object.keys(e))if(!es.includes(t))throw Tn("config key",t,es)},ku=[2,3,4,5],Hu=e=>{if(e===void 0)return vr.headingLevel;let t=ku.find(r=>r===e);if(t===void 0)throw Ee("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},Fu=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw Ee(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},ts=e=>{Pu(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 Ee("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=_u(e.locale),n=aa(r,e.labels),o=vr;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?Ou(n):Fu(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:Hu(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},Bu=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},rs=Lu(ts({onSessionExpired:Bu})),sa=({config:e,children:t})=>{let r=Nu(()=>ts(e),[e]);return ia(rs.Provider,{value:r,children:t})},B=()=>wu(rs),kt=(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},In=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as Wu}from"@aiquants/virtualscroll";var Vu=4;var qt=120,ns=1e3,xn=.8,la={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},Cn=20,os=6,An={reportHubId:-1,businessDate:null},Dn=240,_n=15,Ku=8,as=460,is=3,ss=352,zu={enabled:!0,renderVisual:Wu,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},Ln={width:Ku,tapScrollCircleOptions:zu,enableArrowButtonTabStops:!1},wn=["pen","touch"];var us=Yt(1,"use-daily-report"),ms=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},ua=ms("__DAILY_REPORT_CACHE_TTL__",3e5),Yu=ms("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),$={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Map,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)})},isLocked(e){let t=this.locks.get(e);return t===void 0?!1:t>performance.now()?!0:(this.locks.delete(e),!1)},isValid:e=>e>Date.now(),notify:e=>{$.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=Mt(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()){us.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Yu))}},delete(e,t){this.reports.delete(e);let r=Mt(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+ua;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.isLocked(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}},ps=(e,t,r=!0)=>$.set(e,t,r),Ke=(e,t)=>$.getReport(e,t?.ignoreExpiry),ze=(e,t)=>$.update(e,t),On=(e,t)=>$.delete(e,t),Tr=()=>{$.clear(),Nn.clear()},Mn=e=>{$.locks.set(e,Number.POSITIVE_INFINITY),$.lastMutations.set(e,Date.now())},Pn=e=>{$.locks.delete(e),$.lastMutations.set(e,Date.now())},fs=(e,t)=>{$.locks.set(e,performance.now()+t),$.lastMutations.set(e,Date.now()+t)},bs=e=>$.recentDeletes.set(e,Date.now()),ys=(e,t)=>{let r=n=>{n===e&&t()};return $.listeners.add(r),()=>{$.listeners.delete(r)}},Ht=(e,t)=>{$.prune(),$.set(t,Date.now()+ua)},Rs=e=>{$.prune();let t=$.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}));$.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+ua)},qu=da.object({report:st}),Xu=da.object({reports:da.array(st)}),gs=async(e,t,r)=>{if(!e.ok)throw new Error(`[daily-report] ${r} answered HTTP ${e.status}`);let n=t.safeParse(await e.json());if(!n.success)throw new Error(`[daily-report] ${r} answered a body that does not match its schema`);return n.data},Zu=async(e,t)=>{let r=$.getReport(t);if(r)return r;let n=$.pendingReports.get(t);if(n)return n;let o=Date.now(),a=new URLSearchParams({[Jo.reportHubId]:String(t)}),i=fetch(`${e}/${vt.report}?${a}`,{cache:"no-cache"}).then(s=>gs(s,qu,vt.report)).then(({report:s})=>$.cacheMany([s],null,o)[0]).finally(()=>$.pendingReports.delete(t));return $.pendingReports.set(t,i),i},Nn=new Map,Ju=1e4,Qu=(e,t)=>{let r=Nn.get(t),n=Date.now();if(r&&n-r.at<Ju)return r.inFlight;let o=ma(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return Nn.set(t,a),o.finally(()=>{Nn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},ma=async(e,t,r={})=>{let n=r.forceRefresh?null:$.getList(t);if(n)return n;let o=$.pendingLists.get(t);if(o)return o;let a=Date.now(),i=new URLSearchParams({[Jo.businessDate]:t}),s=fetch(`${e}/${vt.businessDate}?${i}`,{cache:"no-cache"}).then(d=>gs(d,Xu,vt.businessDate)).then(({reports:d})=>$.cacheMany(d,t,a)).finally(()=>$.pendingLists.delete(t));return $.pendingLists.set(t,s),s},ca=(e,t)=>{let r=$.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!$.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=$.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:!$.isValid(n.expiresAt)}},ds=(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}=ca(e,Mt(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},Xt=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,Ft=(e,t)=>{let{apiBasePath:r}=B(),[n,o]=Gu(()=>ds(e,t)),a=ju(0),i=n;return n.id!==e&&(i=ds(e,t),o(i)),ls(()=>{let s=Mt(t),d=m=>{m===e&&o(Xt(e,{report:ca(e,s).report}))};return $.listeners.add(d),()=>{$.listeners.delete(d)}},[e,t]),ls(()=>{let s=Mt(t);a.current+=1;let d=a.current,m=()=>{a.current+=1};if(e<=0)return m;let{report:c,isStale:p}=ca(e,s);if(c&&!p)return o(Xt(e,{report:c,error:null,isLoading:!1,isRefetching:!1})),m;o(Xt(e,{report:c,isLoading:!c,isRefetching:!0}));let b=async()=>{try{let f=null;if(s){let E=$.getList(s)!==null;if(f=(await ma(r,s)).find(l=>l.reportHubId===e)??null,!f&&E){let l=await Qu(r,s);l&&(f=l.find(g=>g.reportHubId===e)??null)}}else f=await Zu(r,e);a.current===d&&o(Xt(e,{report:f,error:null}))}catch(f){a.current===d&&o(Xt(e,{error:f instanceof Error?f:new Error("Load failed")}))}finally{a.current===d&&o(Xt(e,{isLoading:!1,isRefetching:!1}))}};if(c===null)return b(),m;let S=setTimeout(b,qt);return()=>{clearTimeout(S),m()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},pa=()=>{let{apiBasePath:e}=B();return $u(t=>{let r=Mt(t);r&&!$.getList(r)&&ma(e,r).catch(n=>us.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as em}from"@aiquants/virtualscroll";import{useRef as tm}from"react";var kn=()=>{let{locale:e,labels:t}=B(),r=Qi(t),n=tm(null),o=n.current;return o!==null&&em.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as um,useState as mm}from"react";import{flushSync as pm}from"react-dom";var vs=Object.freeze({visibilityProperty:!0}),hs=new Set(["auto","scroll"]),Ss=new Set(["","true","plaintext-only"]),Es=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=Cs(n)?n.host:null}return!1},rm=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(vs))return!0;return!1},Ts=e=>e.localName==="area"?rm(e):e.checkVisibility(vs),nm=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Ss.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(Ss.has(o))return!1;if(o==="false")return!0}return!0},om=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&&Ts(n)&&(r=n)}return r===e},am=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&&hs.has(a.overflowX)||n&&hs.has(a.overflowY)},im=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 nm(e)}},sm=/^[\t\n\f\r ]*[+-]?\d/,lm=e=>{let t=e.getAttribute("tabindex");return t!==null&&sm.test(t)?e.tabIndex:null},Is=(e,t)=>{for(let r of ba(e))if(t(r)||Is(r,t))return!0;return!1},Hn=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=dm(e,t);return t.set(e,n),n},dm=(e,t)=>{if(!ya(e))return"none";let r=lm(e),n=r===null&&im(e),o=r===null&&!n&&am(e);return!(r!==null||n||o)||e.matches(":disabled")||Es(e)||!Ts(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?om(e)?"sequential":"programmatic":"sequential":Is(e,a=>Hn(a,t)==="sequential")?"none":"sequential"},fa=(e,t)=>{for(let r of ba(e))t(r),fa(r,t)},ba=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 Fn=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return fa(e,d=>{Hn(d,a)==="sequential"&&n.push(d)}),{before:r,within:n,after:o};let i=!1,s=(d,m)=>{for(let c of ba(d)){let p=c===t;!p&&Hn(c,a)==="sequential"&&(m?n.push(c):i?o.push(c):r.push(c)),s(c,m||p),p&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},xs=e=>{let t=[],r=new Map;return fa(e,n=>{Hn(n,r)==="sequential"&&t.push(n)}),t},ge=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,ya=e=>"focus"in e&&"blur"in e,cm=e=>e.nodeType===e.DOCUMENT_NODE,Cs=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Ne=e=>{let t=e.getRootNode();if(Cs(t)){let r=t.activeElement;return r===null?Ne(t.host):r}return cm(t)?t.activeElement:null},Ir=e=>{let t=Ne(e);return t===null||t===t.ownerDocument.body||Es(t)},Ae=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 Bn=e=>{let[t,r]=mm(null);return um(()=>{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?pm(()=>r(d)):r(d)},i=d=>{for(let m of d)a(m.borderBoxSize[0].blockSize)},s=new(Ae(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var As=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,ce=(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 Un="data-daily-report-row",Ds=`[role="listitem"][${Un}]`,fm='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',bm=/^[1-9]\d*$/,_s=e=>{if(e===null||!bm.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},Et=(e,t)=>{if(t===null||!ge(e))return null;let r=e.closest(Ds);return r===null||r===t||!t.contains(r)?null:r},Bt=e=>_s(e.getAttribute(Un)),Zt=e=>_s(e.getAttribute("aria-posinset")),Ls=e=>{let t=e.closest(Ds),r=t===null?null:Zt(t);return r===null?null:r-1},xr=(e,t)=>{if(e===null)return null;let r=Bt(e);if(r===null)return null;let n=Zt(e),o=ce(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},ws=(e,t)=>{if(!ge(e))return!1;let r=e.closest(fm);return r!==null&&r!==t&&t.contains(r)};import{createContext as Ns}from"react";var lt=Ns(0),Cr=-1,Os=(e,t)=>t.phase==="complete"?e:t.totalCount===null?Cr:Math.max(e,t.totalCount),dt=Ns(-1);import{clsx as ym}from"clsx";import{twMerge as Rm}from"tailwind-merge";function R(...e){return Rm(ym(e))}import{useCallback as Ms,useMemo as gm,useSyncExternalStore as hm}from"react";var Ps="(prefers-reduced-motion: reduce)",ks=e=>Ae(e).matchMedia(Ps).matches?"instant":"smooth",Sm=Object.freeze({...la,startVelocityThreshold:Number.POSITIVE_INFINITY}),Jt=e=>e?Sm:la,vm=()=>!1,Qt=e=>{let t=gm(()=>e===null?null:Ae(e).matchMedia(Ps),[e]),r=Ms(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=Ms(()=>t===null?!1:t.matches,[t]);return hm(r,n,vm)};import{useSyncExternalStore as Em}from"react";import{jsx as Ra}from"react/jsx-runtime";var Vn=()=>{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)})}},Hs=16,Tm=(e,t)=>e==="vertical"?{top:0,left:-Hs,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-Hs,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},Wn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=Em(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?Ra("div",{className:"pointer-events-none absolute flex items-center",style:Tm(e,t),children:Ra("div",{className:R(xi,"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:Ra("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as ec,useCallback as sr,useEffect as Qd,useId as Qb,useLayoutEffect as ey,useMemo as No,useRef as ri}from"react";import{createContext as El,memo as pp,useCallback as Sl,useContext as fp,useEffect as vl,useLayoutEffect as Na,useMemo as Oa,useRef as no,useState as It}from"react";import{z as ne}from"zod";var Bs=Object.freeze(["create","update","publish","delete","toggleStar","toggleRead","addComment","deleteComment","clearCache"]);var ke=Object.freeze({intent:"intent",clientTempId:"clientTempId",businessDate:"businessDate",operationTimestamp:"operationTimestamp",reportHubId:"reportHubId",title:"title",content:"content",isStarred:"isStarred",isRead:"isRead",commentId:"commentId"}),ha=e=>{let t=new FormData;if(t.append(ke.intent,e.intent),e.intent==="clearCache"||(t.append(ke.clientTempId,e.clientTempId),e.businessDate!==null&&t.append(ke.businessDate,e.businessDate),e.operationTimestamp!==null&&t.append(ke.operationTimestamp,String(e.operationTimestamp)),e.intent==="create"))return t;switch(t.append(ke.reportHubId,String(e.reportHubId)),e.intent){case"update":return e.changes.title!==void 0&&t.append(ke.title,e.changes.title),e.changes.content!==void 0&&t.append(ke.content,e.changes.content),t;case"publish":case"delete":return t;case"toggleStar":return t.append(ke.isStarred,String(e.value)),t;case"toggleRead":return t.append(ke.isRead,String(e.value)),t;case"addComment":return t.append(ke.content,e.content),t;case"deleteComment":return t.append(ke.commentId,String(e.commentId)),t}},Fs=/^[1-9][0-9]*$/,Im=()=>{let e=ne.string().regex(Fs),t=ne.string().regex(Sn),r=ne.literal("OK"),n=ne.object({isStarred:ne.boolean(),isRead:ne.boolean()}),o=ne.number().int().nonnegative().nullable();return{create:ne.object({status:r,intent:ne.literal("create"),reportHubId:e,clientTempId:t,report:st}),update:ne.object({status:r,intent:ne.literal("update"),reportHubId:e,clientTempId:t}),publish:ne.object({status:r,intent:ne.literal("publish"),reportHubId:e,clientTempId:t,report:st.nullable()}),delete:ne.object({status:r,intent:ne.literal("delete"),reportHubId:e,clientTempId:t}),toggleStar:ne.object({status:r,intent:ne.literal("toggleStar"),reportHubId:e,clientTempId:t,updatedStatus:n,operationTimestamp:o}),toggleRead:ne.object({status:r,intent:ne.literal("toggleRead"),reportHubId:e,clientTempId:t,updatedStatus:n,operationTimestamp:o}),addComment:ne.object({status:r,intent:ne.literal("addComment"),reportHubId:e,clientTempId:t,newComment:En}),deleteComment:ne.object({status:r,intent:ne.literal("deleteComment"),reportHubId:e,clientTempId:t,deletedCommentId:ne.string().regex(Fs)}),clearCache:ne.object({status:r,intent:ne.literal("clearCache")})}},ga=null,xm=()=>(ga===null&&(ga=Im()),ga),Us=(e,t)=>{let r=xm()[e].safeParse(t);return r.success?r.data:null};import{systemSseRuntime as Qn}from"@aiquants/sse";import{createBrowserEventSource as $m}from"@aiquants/sse/client";import{useReopeningEventSource as jm}from"@aiquants/sse/react";import{useEffect as Aa,useRef as eo,useState as Gm}from"react";import{startTransition as Mm,useLayoutEffect as Pm,useState as km,useSyncExternalStore as jn}from"react";var Ar=()=>{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()]})}},Vs=(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 Ws=()=>{let e=new TextDecoder,t=[],r=n=>{let o=[],a=0;for(let i=n.indexOf(`
|
|
1
|
+
import Su from"lucide-react/dist/esm/icons/paperclip.js";var Ru="data-daily-report-row-surface",He={[Ru]:""},Zt="data-daily-report-scrolling",St=8,Oi="[--aqdr-lattice-block:4px] [@media(resolution:1.125dppx)]:[--aqdr-lattice-block:8px] [@media(resolution:1.375dppx)]:[--aqdr-lattice-block:8px] [@media(resolution:1.625dppx)]:[--aqdr-lattice-block:8px] [@media(resolution:1.875dppx)]:[--aqdr-lattice-block:8px] [@media(resolution:2.125dppx)]:[--aqdr-lattice-block:8px] [@media(resolution:2.375dppx)]:[--aqdr-lattice-block:8px] [@media(resolution:2.625dppx)]:[--aqdr-lattice-block:8px] [@media(resolution:2.875dppx)]:[--aqdr-lattice-block:8px]",Pt=`${Oi} h-[calc-size(auto,round(up,size,var(--aqdr-lattice-block)))]`,Et="p-[8px]",Mi="pr-[8px]",cn="contain-size contain-layout contain-style",Pi="contain-strict",Q="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",ki="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",aa="scrollbar-thin [scrollbar-gutter:stable]",ia=`-m-[4px] overflow-hidden p-[4px] ${aa}`,Hi="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",un="rounded-[calc(var(--radius-2xl)+8px)]",mn="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]",Fi="[: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",tt="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",pn=16,Qt="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",Bi=12,fn="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",yn="[--aqdr-hover-lift:2px] [@media(resolution:1.125dppx)]:[--aqdr-hover-lift:calc(2px/1.125)] [@media(resolution:1.25dppx)]:[--aqdr-hover-lift:calc(2px/1.25)] [@media(resolution:1.375dppx)]:[--aqdr-hover-lift:calc(2px/1.375)] [@media(resolution:1.625dppx)]:[--aqdr-hover-lift:calc(3px/1.625)] [@media(resolution:1.75dppx)]:[--aqdr-hover-lift:calc(3px/1.75)] [@media(resolution:1.875dppx)]:[--aqdr-hover-lift:calc(3px/1.875)] [@media(resolution:2.125dppx)]:[--aqdr-hover-lift:calc(4px/2.125)] [@media(resolution:2.25dppx)]:[--aqdr-hover-lift:calc(4px/2.25)] [@media(resolution:2.375dppx)]:[--aqdr-hover-lift:calc(4px/2.375)] [@media(resolution:2.625dppx)]:[--aqdr-hover-lift:calc(5px/2.625)] [@media(resolution:2.75dppx)]:[--aqdr-hover-lift:calc(5px/2.75)] [@media(resolution:2.875dppx)]:[--aqdr-hover-lift:calc(5px/2.875)] 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",Ne=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${Q}`,Vi="-mx-1",Ui="flex items-center gap-1",_e="inline-flex h-6 items-center rounded-full px-3",Wi="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Ki="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",ht="size-4",Se={starOff:`${ht} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${ht} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${ht} text-blue-600 dark:text-blue-400`,delete:`${ht} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${ht} text-red-600 dark:text-red-400`,edit:`${ht} text-slate-500 dark:text-slate-400`},zi="h-6 w-10 border-4 border-solid",$i="size-4 data-[state=checked]:translate-x-4",ji="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]",Gi="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var Yi="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",qi="rounded-xl border border-solid p-[3px]",Xi="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",gu="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",hu="bg-slate-50 dark:bg-slate-950",je="flex min-h-0 flex-1 flex-col",bn=`${je} ${hu}`,Rn=`${je} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${gu}`,Er="text-red-700 dark:text-red-400",Zi="bg-white dark:bg-slate-900",gn=`min-h-0 flex-1 overflow-clip contain-size ${Oi}`,hn="flex h-full flex-col contain-size contain-layout contain-style",Qi="relative inline-block whitespace-nowrap tabular-nums",Ji="invisible",es="absolute inset-0 contain-size contain-layout contain-style",Sn="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",ts="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",rs={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},kt="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",it=`m-0 ${kt}`,En="text-balance wrap-anywhere [word-break:auto-phrase]",vn="[&_.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 ns,jsxs as vu}from"react/jsx-runtime";var Eu=2,vr=({id:e,count:t,label:r})=>t<=0?null:vu("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:[ns(Su,{className:ht,"aria-hidden":"true"}),t>=Eu&&ns("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as jb}from"@aiquants/virtualscroll";import{useCallback as De,useEffect as Ot,useLayoutEffect as Gb,useMemo as Ri,useRef as Me,useState as Ko}from"react";var le=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},ie=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?ie(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 lm,useEffect as xs,useRef as dm,useState as cm}from"react";import{z as ga}from"zod";var Tn="ids-stream",os=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 Ht=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,sa=e=>{for(let t=1;t<e.length;t++)if(Ht(e[t-1],e[t])>0)return!1;return!0};var vt=Object.freeze({businessDate:"business-date",idsStream:Tn,report:"report",action:"action"}),Tt=Object.freeze({businessDate:"businessDate",reportHubId:"reportHubId",forceRefresh:"forceRefresh",cursorReportHubId:"cursor_report_hub_id",cursorBusinessDate:"cursor_business_date",cursorSnapshot:"cursor_snapshot"});var Tu=/^(\d{4})([-/])(\d{2})\2(\d{2})$/;var In=e=>e<10?`0${e}`:`${e}`,Iu=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=In(e.getMonth()+1),n=In(e.getDate());return`${t}-${r}-${n}`},as=e=>{let t=Tu.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}`},is=e=>as(e)===e,la=(e=new Date)=>Number.isNaN(e.getTime())?la(new Date):`${e.getFullYear()}-${In(e.getMonth()+1)}-${In(e.getDate())}`,Ft=e=>e==null?null:e instanceof Date?Iu(e):as(e);var Jt=(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{z as _}from"zod";var xn=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|-[1-9][0-9]{0,15})$/;import{z as xu}from"zod";var ue=xu.number().int().positive().max(Number.MAX_SAFE_INTEGER);var ss=["auth-required","forbidden","resync-required"],da=15e3,ls="lastEventId",Cu=/^\d{1,15}-\d{1,15}$/,Cn=e=>Cu.test(e),Du=_.object({name:_.string().nullish(),affiliation:_.string().nullish()}),Au=_.object({name:_.string().nullish(),text:_.string().nullish(),color:_.string().nullish()}),_u=_.object({id:ue,name:_.string().nullish(),color:_.string().nullish()}),Dn=_.object({id:ue,userId:_.string().nullish(),userName:_.string().nullish(),content:_.string().nullish(),createdAt:_.string().nullish(),isMine:_.boolean()}),Lu=_.object({id:_.string(),fileName:_.string(),fileType:_.string().nullable(),fileSize:_.number().nullable(),createdAt:_.string().nullable(),state:_.enum(["present","absent","unknown"]),hasThumbnail:_.boolean().default(!1)}),st=_.object({reportHubId:ue,date:_.string().nullish(),createdAt:_.string().nullish(),author:_.string().nullish(),userId:_.string().nullish(),sourceType:_.string().nullish(),employeeName:_.string().nullish(),updatedBy:_.string().nullish(),updatedAt:_.string().nullish(),category:_.string().nullish(),creationCategory:_.string().nullish(),visitTimeFrom:_.string().nullish(),visitTimeTo:_.string().nullish(),customerName:_.string().nullish(),interviewers:_.array(Du),subject:_.string().nullish(),content:_.string().nullish(),externalComments:_.array(Au),isRead:_.boolean(),isStarred:_.boolean(),labels:_.array(_u),postedComments:_.array(Dn),attachments:_.array(Lu).default([])}),Bt=_.string().regex(xn),wu=_.object({type:_.literal("connected")}),Nu=_.object({type:_.literal("status-update"),reportHubId:ue,statusType:_.enum(["star","read"]),value:_.boolean(),clientTempId:Bt,recipientRawUserId:ue.optional()}),ca=_.string().optional(),Ou=_.object({type:_.literal("comment-add"),reportHubId:ue,comment:Dn,clientTempId:Bt,recipientRawUserId:ue.optional(),sourceType:ca}),Mu=_.object({type:_.literal("comment-delete"),reportHubId:ue,commentId:ue,clientTempId:Bt,recipientRawUserId:ue.optional(),sourceType:ca}),Pu=_.object({type:_.literal("report-create"),reportHubId:ue,report:st,clientTempId:Bt,recipientRawUserId:ue.optional()}),ku=_.object({type:_.literal("report-update"),reportHubId:ue,report:st,clientTempId:Bt,recipientRawUserId:ue.optional()}),Hu=_.object({type:_.literal("report-publish"),reportHubId:ue,report:st,clientTempId:Bt,recipientRawUserId:ue.optional()}),Fu=_.object({type:_.literal("report-delete"),reportHubId:ue,clientTempId:Bt,sourceType:ca}),ds=_.discriminatedUnion("type",[wu,Nu,Ou,Mu,Pu,ku,Hu,Fu]);var An=e=>e.issues.map(t=>`${t.path.length===0?"(root)":t.path.join(".")}: ${t.code}`).join("; ");import{resolveVirtualScrollLocale as ju}from"@aiquants/virtualscroll";import{createContext as Gu,useContext as Yu,useMemo as qu}from"react";var Bu=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,fe=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Bu(r)}`),cs=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),_n=(e,t,r)=>fe(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Vu,resolveVirtualScrollLocale as Uu,VIRTUAL_SCROLL_LABEL_CATALOGS as us,VIRTUAL_SCROLL_LABEL_KEYS as pa}from"@aiquants/virtualscroll";var ps=["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"],fs=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState","listRowPosition","listRowPositionInUnknownTotal"],ua=[...pa,...ps,...fs];var Wu=Object.freeze({en:"en-US",ja:"ja-JP"}),ye=(e,t)=>t.toLocaleString(Wu[e]),Ku=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"}),zu=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"}),ma=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: ${ye("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${ye("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${ye("en",e)} / ${ye("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${ye("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${ye("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${ye("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${zu[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`,listRowPosition:(e,t)=>`${ye("en",e)} of ${ye("en",t)}`,listRowPositionInUnknownTotal:e=>`Item ${ye("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: ${ye("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${ye("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${ye("ja",e)} / ${ye("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${ye("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${ye("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${ye("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Ku[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 ${ye("ja",t)} \u4EF6\u4E2D ${ye("ja",e)} \u4EF6\u76EE`,listRowPositionInUnknownTotal:e=>`${ye("ja",e)} \u4EF6\u76EE`})}),ys=Object.freeze({en:Object.freeze({...us.en,...ma.en}),ja:Object.freeze({...us.ja,...ma.ja})}),$u=e=>{let t={},r=!1;for(let n of pa){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},ms=(e,t,r)=>{e[t]=r},fa=(e,t)=>{let r=Uu(e);if(t===void 0)return ys[r];if(t===null||typeof t!="object")throw fe("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw fe("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!ua.includes(i))throw _n("labels key",i,ua);let a={...Vu(r,$u(t)),...ma[r]};for(let i of ps){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw fe(`labels.${i}`,"a non-blank string",s);ms(a,i,s)}}for(let i of fs){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw fe(`labels.${i}`,"a function",s);ms(a,i,s)}}return Object.freeze(a)},bs=e=>{let t={};for(let r of pa)t[r]=e[r];return Object.freeze(t)};import{jsx as ya,jsxs as nm}from"react/jsx-runtime";var Xu=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Zu=({title:e,annotation:t})=>nm("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[ya("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?ya("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),Tr=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Zu,showDevControls:!1,headingLevel:3}),Rs=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Qu=e=>{for(let t of Object.keys(e))if(!Rs.includes(t))throw _n("config key",t,Rs)},Ju=[2,3,4,5],em=e=>{if(e===void 0)return Tr.headingLevel;let t=Ju.find(r=>r===e);if(t===void 0)throw fe("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},tm=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw fe(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},gs=e=>{Qu(e);let t=e.onSessionExpired;if(t===void 0)throw cs("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw fe("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=ju(e.locale),n=fa(r,e.labels),o=Tr;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?Xu(n):tm(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:em(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},rm=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},hs=Gu(gs({onSessionExpired:rm})),ba=({config:e,children:t})=>{let r=qu(()=>gs(e),[e]);return ya(hs.Provider,{value:r,children:t})},k=()=>Yu(hs),Vt=(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},Ln=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as am}from"@aiquants/virtualscroll";var om=4;var er=120,Ss=1e3,Nn=.8,Ra={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},On=20,Es=6,Mn={reportHubId:-1,businessDate:null},Pn=240,kn=15,im=8,vs=460,Ts=3,Is=352,sm={enabled:!0,renderVisual:am,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},Hn={width:im,tapScrollCircleOptions:sm,enableArrowButtonTabStops:!1},Fn=["pen","touch"];var As=Jt(1,"use-daily-report"),_s=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Sa=_s("__DAILY_REPORT_CACHE_TTL__",3e5),um=_s("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),U={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,lockHolders:new Map,lockHolds:new Map,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.lockHolders.clear(),this.lockHolds.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isLocked(e){if(this.lockHolders.has(e))return!0;let t=this.lockHolds.get(e);return t===void 0?!1:t>performance.now()?!0:(this.lockHolds.delete(e),!1)},isValid:e=>e>Date.now(),notify:e=>{U.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=Ft(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()){As.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+um))}},delete(e,t){this.reports.delete(e);let r=Ft(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+Sa;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.isLocked(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}},Ls=(e,t,r=!0)=>U.set(e,t,r),Ge=(e,t)=>U.getReport(e,t?.ignoreExpiry),Ye=(e,t)=>U.update(e,t),Ea=(e,t)=>U.delete(e,t),Ir=()=>{U.clear(),Bn.clear()},Vn=(e,t)=>{let r=U.lastMutations.get(e);(r===void 0||r<t)&&U.lastMutations.set(e,t)},va=e=>{Vn(e,Date.now())},ws=e=>{let t=Symbol("mutation-lock"),r=U.lockHolders.get(e);return r===void 0?U.lockHolders.set(e,new Set([t])):r.add(t),Vn(e,Date.now()),()=>{let n=U.lockHolders.get(e);n===void 0||!n.delete(t)||(n.size===0&&U.lockHolders.delete(e),Vn(e,Date.now()))}},Ns=(e,t)=>{let r=performance.now()+t,n=U.lockHolds.get(e);(n===void 0||n<r)&&U.lockHolds.set(e,r),Vn(e,Date.now()+t)},Os=e=>U.recentDeletes.set(e,Date.now()),Ms=(e,t)=>{let r=n=>{n===e&&t()};return U.listeners.add(r),()=>{U.listeners.delete(r)}},Ut=(e,t)=>{U.prune(),U.set(t,Date.now()+Sa)},Ps=e=>{U.prune();let t=U.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}));U.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Sa)},mm=ga.object({report:st}),pm=ga.object({reports:ga.array(st)}),ks=async(e,t,r)=>{if(!e.ok)throw new Error(`[daily-report] ${r} answered HTTP ${e.status}`);let n=t.safeParse(await e.json());if(!n.success)throw new Error(`[daily-report] ${r} answered a body that does not match its schema (${An(n.error)})`);return n.data},fm=async(e,t)=>{let r=U.getReport(t);if(r)return r;let n=U.pendingReports.get(t);if(n)return n;let o=Date.now(),a=new URLSearchParams({[Tt.reportHubId]:String(t)}),i=fetch(`${e}/${vt.report}?${a}`,{cache:"no-cache"}).then(s=>ks(s,mm,vt.report)).then(({report:s})=>U.cacheMany([s],null,o)[0]).finally(()=>U.pendingReports.delete(t));return U.pendingReports.set(t,i),i},Bn=new Map,ym=1e4,bm=(e,t)=>{let r=Bn.get(t),n=Date.now();if(r&&n-r.at<ym)return r.inFlight;let o=Ta(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return Bn.set(t,a),o.finally(()=>{Bn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},Ta=async(e,t,r={})=>{let n=r.forceRefresh?null:U.getList(t);if(n)return n;let o=U.pendingLists.get(t);if(o)return o;let a=Date.now(),i=new URLSearchParams({[Tt.businessDate]:t}),s=fetch(`${e}/${vt.businessDate}?${i}`,{cache:"no-cache"}).then(d=>ks(d,pm,vt.businessDate)).then(({reports:d})=>U.cacheMany(d,t,a)).finally(()=>U.pendingLists.delete(t));return U.pendingLists.set(t,s),s},ha=(e,t)=>{let r=U.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!U.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=U.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:!U.isValid(n.expiresAt)}},Cs=(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}=ha(e,Ft(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},tr=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,Wt=(e,t)=>{let{apiBasePath:r}=k(),[n,o]=cm(()=>Cs(e,t)),a=dm(0),i=n;return n.id!==e&&(i=Cs(e,t),o(i)),xs(()=>{let s=Ft(t),d=m=>{m===e&&o(tr(e,{report:ha(e,s).report}))};return U.listeners.add(d),()=>{U.listeners.delete(d)}},[e,t]),xs(()=>{let s=Ft(t);a.current+=1;let d=a.current,m=()=>{a.current+=1};if(e<=0)return m;let{report:u,isStale:f}=ha(e,s);if(u&&!f)return o(tr(e,{report:u,error:null,isLoading:!1,isRefetching:!1})),m;o(tr(e,{report:u,isLoading:!u,isRefetching:!0}));let p=async()=>{try{let y=null;if(s){let T=U.getList(s)!==null;if(y=(await Ta(r,s)).find(l=>l.reportHubId===e)??null,!y&&T){let l=await bm(r,s);l&&(y=l.find(S=>S.reportHubId===e)??null)}}else y=await fm(r,e);a.current===d&&o(tr(e,{report:y,error:null}))}catch(y){a.current===d&&o(tr(e,{error:y instanceof Error?y:new Error("Load failed")}))}finally{a.current===d&&o(tr(e,{isLoading:!1,isRefetching:!1}))}};if(u===null)return p(),m;let R=setTimeout(p,er);return()=>{clearTimeout(R),m()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},Ia=()=>{let{apiBasePath:e}=k();return lm(t=>{let r=Ft(t);r&&!U.getList(r)&&Ta(e,r).catch(n=>As.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as Rm}from"@aiquants/virtualscroll";import{useRef as gm}from"react";var Un=()=>{let{locale:e,labels:t}=k(),r=bs(t),n=gm(null),o=n.current;return o!==null&&Rm.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as Am,useState as _m}from"react";import{flushSync as Lm}from"react-dom";var Bs=Object.freeze({visibilityProperty:!0}),Hs=new Set(["auto","scroll"]),Fs=new Set(["","true","plaintext-only"]),Vs=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=zs(n)?n.host:null}return!1},hm=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(Bs))return!0;return!1},Us=e=>e.localName==="area"?hm(e):e.checkVisibility(Bs),Sm=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Fs.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(Fs.has(o))return!1;if(o==="false")return!0}return!0},Em=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&&Us(n)&&(r=n)}return r===e},vm=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&&Hs.has(a.overflowX)||n&&Hs.has(a.overflowY)},Tm=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 Sm(e)}},Im=/^[\t\n\f\r ]*[+-]?\d/,xm=e=>{let t=e.getAttribute("tabindex");return t!==null&&Im.test(t)?e.tabIndex:null},Ws=(e,t)=>{for(let r of Ca(e))if(t(r)||Ws(r,t))return!0;return!1},Wn=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=Cm(e,t);return t.set(e,n),n},Cm=(e,t)=>{if(!xr(e))return"none";let r=xm(e),n=r===null&&Tm(e),o=r===null&&!n&&vm(e);return!(r!==null||n||o)||e.matches(":disabled")||Vs(e)||!Us(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?Em(e)?"sequential":"programmatic":"sequential":Ws(e,a=>Wn(a,t)==="sequential")?"none":"sequential"},xa=(e,t)=>{for(let r of Ca(e))t(r),xa(r,t)},Ca=e=>{if(de(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 Kn=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return xa(e,d=>{Wn(d,a)==="sequential"&&n.push(d)}),{before:r,within:n,after:o};let i=!1,s=(d,m)=>{for(let u of Ca(d)){let f=u===t;!f&&Wn(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}},Ks=e=>{let t=[],r=new Map;return xa(e,n=>{Wn(n,r)==="sequential"&&t.push(n)}),t},de=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,xr=e=>"focus"in e&&"blur"in e,Dm=e=>e.nodeType===e.DOCUMENT_NODE,zs=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Oe=e=>{let t=e.getRootNode();if(zs(t)){let r=t.activeElement;return r===null?Oe(t.host):r}return Dm(t)?t.activeElement:null},Cr=e=>{let t=Oe(e);return t===null||t===t.ownerDocument.body||Vs(t)},Le=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 zn=e=>{let[t,r]=_m(null);return Am(()=>{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?Lm(()=>r(d)):r(d)},i=d=>{for(let m of d)a(m.borderBoxSize[0].blockSize)},s=new(Le(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var $s=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,me=(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 jn="data-daily-report-row",$n=`[role="listitem"][${jn}]`,wm='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',Nm=/^[1-9]\d*$/,js=e=>{if(e===null||!Nm.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},Om=`${$n}[tabindex="0"], ${$n} [tabindex="0"]`,Gn=e=>e.querySelector(Om),It=(e,t)=>{if(t===null||!de(e))return null;let r=e.closest($n);return r===null||r===t||!t.contains(r)?null:r},Kt=e=>js(e.getAttribute(jn)),rr=e=>js(e.getAttribute("aria-posinset")),Gs=e=>{let t=e.closest($n),r=t===null?null:rr(t);return r===null?null:r-1},Dr=(e,t)=>{if(e===null)return null;let r=Kt(e);if(r===null)return null;let n=rr(e),o=me(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},Ys=(e,t)=>{if(!de(e))return!1;let r=e.closest(wm);return r!==null&&r!==t&&t.contains(r)};import{createContext as qs}from"react";var lt=qs(0),Ar=-1,Xs=(e,t)=>t.phase==="complete"?e:t.totalCount===null?Ar:Math.max(e,t.totalCount),dt=qs(-1);import{clsx as Mm}from"clsx";import{twMerge as Pm}from"tailwind-merge";function g(...e){return Pm(Mm(e))}import{useCallback as Zs,useMemo as km,useSyncExternalStore as Hm}from"react";var Qs="(prefers-reduced-motion: reduce)",Js=e=>Le(e).matchMedia(Qs).matches?"instant":"smooth",Fm=Object.freeze({...Ra,startVelocityThreshold:Number.POSITIVE_INFINITY}),nr=e=>e?Fm:Ra,Bm=()=>!1,Vm=()=>{},or=e=>{let t=km(()=>e===null?null:Le(e).matchMedia(Qs),[e]),r=Zs(o=>t===null?Vm:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=Zs(()=>t===null?!1:t.matches,[t]);return Hm(r,n,Bm)};import{useSyncExternalStore as Um}from"react";import{jsx as Da}from"react/jsx-runtime";var Yn=()=>{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)})}},el=16,Wm=(e,t)=>e==="vertical"?{top:0,left:-el,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-el,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},qn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=Um(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?Da("div",{className:"pointer-events-none absolute flex items-center",style:Wm(e,t),children:Da("div",{className:g(Wi,"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:Da("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as gc,useCallback as mr,useEffect as Rc,useId as Cb,useLayoutEffect as Db,useMemo as Uo,useRef as yi}from"react";import{createContext as Ul,memo as Bp,useCallback as Bl,useContext as Vp,useEffect as Vl,useLayoutEffect as za,useMemo as $a,useRef as yo,useState as Ct}from"react";import{z as oe}from"zod";var tl=Object.freeze(["create","update","publish","delete","toggleStar","toggleRead","addComment","deleteComment","clearCache"]);var Fe=Object.freeze({intent:"intent",clientTempId:"clientTempId",businessDate:"businessDate",operationTimestamp:"operationTimestamp",reportHubId:"reportHubId",title:"title",content:"content",isStarred:"isStarred",isRead:"isRead",commentId:"commentId"}),_a=e=>{let t=new FormData;if(t.append(Fe.intent,e.intent),e.intent==="clearCache"||(t.append(Fe.clientTempId,e.clientTempId),e.businessDate!==null&&t.append(Fe.businessDate,e.businessDate),e.operationTimestamp!==null&&t.append(Fe.operationTimestamp,String(e.operationTimestamp)),e.intent==="create"))return t;switch(t.append(Fe.reportHubId,String(e.reportHubId)),e.intent){case"update":return e.changes.title!==void 0&&t.append(Fe.title,e.changes.title),e.changes.content!==void 0&&t.append(Fe.content,e.changes.content),t;case"publish":case"delete":return t;case"toggleStar":return t.append(Fe.isStarred,String(e.value)),t;case"toggleRead":return t.append(Fe.isRead,String(e.value)),t;case"addComment":return t.append(Fe.content,e.content),t;case"deleteComment":return t.append(Fe.commentId,String(e.commentId)),t}},Km=()=>{let e=ue,t=oe.string().regex(xn),r=oe.literal("OK"),n=oe.object({isStarred:oe.boolean(),isRead:oe.boolean()}),o=oe.number().int().nonnegative().nullable();return{create:oe.object({status:r,intent:oe.literal("create"),reportHubId:e,clientTempId:t,report:st}),update:oe.object({status:r,intent:oe.literal("update"),reportHubId:e,clientTempId:t}),publish:oe.object({status:r,intent:oe.literal("publish"),reportHubId:e,clientTempId:t,report:st.nullable()}),delete:oe.object({status:r,intent:oe.literal("delete"),reportHubId:e,clientTempId:t}),toggleStar:oe.object({status:r,intent:oe.literal("toggleStar"),reportHubId:e,clientTempId:t,updatedStatus:n,operationTimestamp:o}),toggleRead:oe.object({status:r,intent:oe.literal("toggleRead"),reportHubId:e,clientTempId:t,updatedStatus:n,operationTimestamp:o}),addComment:oe.object({status:r,intent:oe.literal("addComment"),reportHubId:e,clientTempId:t,newComment:Dn}),deleteComment:oe.object({status:r,intent:oe.literal("deleteComment"),reportHubId:e,clientTempId:t,deletedCommentId:ue}),clearCache:oe.object({status:r,intent:oe.literal("clearCache")})}},Aa=null,zm=()=>(Aa===null&&(Aa=Km()),Aa),rl=(e,t)=>{let r=zm()[e].safeParse(t);return r.success?{result:r.data}:{mismatch:An(r.error)}};import{systemSseRuntime as ao}from"@aiquants/sse";import{createBrowserEventSource as up}from"@aiquants/sse/client";import{useReopeningEventSource as mp}from"@aiquants/sse/react";import{useEffect as ka,useRef as io,useState as pp}from"react";import{startTransition as Jm,useLayoutEffect as ep,useState as tp,useSyncExternalStore as Or}from"react";var nl=e=>{let t=new URLSearchParams;return e.cursor!==null&&(t.set(Tt.cursorReportHubId,String(e.cursor.reportHubId)),e.cursor.businessDate!==null&&t.set(Tt.cursorBusinessDate,e.cursor.businessDate)),e.snapshot!==null&&t.set(Tt.cursorSnapshot,e.snapshot),e.forceRefresh&&t.set(Tt.forceRefresh,"true"),t};var _r=()=>{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()]})}},ol=(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 al=()=>{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 Cm=50,Am=32,Ks=0,Dm=()=>(Ks+=1,Ks),_m=1e3,Lm=3e4,wm=6,Nm=3e4,Kn=Symbol("read-stall"),Om="/daily_report/api",Dr=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=Ar();this.apiBasePath=t.apiBasePath??Om,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??Nm,this.publishCoalesceMs=t.publishCoalesceMs??Cm,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>=wm){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(_m*2**(this.consecutiveFailures-1),Lm))}}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(c=>{o=this.setTimeoutFn(()=>c(Kn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Kn)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=Ws(),d=!1,m=!1;for(;;){let c=await this.readWithStallGuard(i);if(c===Kn)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let p=c.done?s.end():s.push(c.value),b=!1;for(let S of p){if(S.trim()==="")continue;let f;try{f=JSON.parse(S)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let E=Vi(f);if(E==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(E==="error"){d=!0;continue}let h=f;b=this.absorbChunkLine(h)||b,typeof h.total=="number"&&Number.isFinite(h.total)&&h.total!==this.state.totalCount&&this.publish({totalCount:h.total}),h.nextCursor&&(h.nextCursor.businessDate===null||Ki(h.nextCursor.businessDate))&&(this.lastCursor=h.nextCursor),h.isLast&&(m=!0)}if(b&&(this.consecutiveFailures=0,this.schedulePublishItems()),c.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(Kn),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"&&vn(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=Dm(),r=this.pendingItemsChange.build(this.state.itemsRevision,t);return this.pendingItemsChange=Ar(),{loadedCount:this.itemMap.size,itemsRevision:t,itemsChanges:[...this.state.itemsChanges.slice(1-Am),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}/${gn}${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 Hm=6e4,Z=null,zs=!1,_r=new Set,zn={loadedCount:0,itemsRevision:0,itemsChanges:[],totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},Sa=()=>{for(let e of _r)e()},va=()=>{Z&&(Z.unsubscribe(),Z.client.dispose(),Z=null,Sa())},Lr=e=>{if(typeof window>"u")return;let t=e.apiBasePath??vr.apiBasePath;if(Z&&(Z.userKey!==e.userKey||Z.apiBasePath!==t)&&(Z.userKey!==e.userKey&&Tr(),va()),!Z){let r=new Dr({apiBasePath:t});Z={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(Sa)},Fm(),r.start(),Sa();return}Gn(Z)},Gn=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>Hm&&e.client.refresh()},Fm=()=>{if(zs||typeof document>"u"||typeof window>"u")return;zs=!0;let e=()=>{Z&&Gn(Z)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Ea=e=>{if(!(typeof window>"u")){if(!Z){Lr(e);return}if(Z.userKey!==e.userKey){Tr(),va(),Lr(e);return}Gn(Z)}},Ta=()=>{typeof window>"u"||!Z||Gn(Z)},wr=e=>{Z?.client.applyExternalUpsert(e)},Yn=e=>{Z?.client.applyExternalRemoval(e)},js=e=>Z===null?!1:Z.client.has(e),Bm=()=>Z===null?[]:Z.client.readItems(),Ia=()=>Z===null?0:Z.client.getState().itemsRevision,qn=()=>{Z?.client.retry()},Xn=()=>{Z?.client.resync()},xa=(e={})=>{Z?.client.refresh(e)},Gs=()=>Z?.userKey,Zn=e=>(_r.add(e),()=>_r.delete(e)),$n=()=>Z?.client.getState()??zn,Um=()=>zn,Vm=()=>jn(Zn,$n,Um),Ca=(e,t)=>{let r=zn,n=e(zn);return()=>{let o=$n();if(o===r)return n;let a=e(o);return r=o,t(n,a)||(n=a),n}},Ys=Ca(({phase:e,isRevalidating:t,error:r,streamAnchor:n,loadedCount:o})=>({phase:e,isRevalidating:t,error:r,streamAnchor:n,hasItems:o>0}),(e,t)=>e.phase===t.phase&&e.isRevalidating===t.isRevalidating&&e.error===t.error&&e.streamAnchor===t.streamAnchor&&e.hasItems===t.hasItems),Wm=Ys(),Jn=()=>jn(Zn,Ys,()=>Wm),qs=Ca(({phase:e,isRevalidating:t,loadedCount:r,totalCount:n})=>({phase:e,isRevalidating:t,loadedCount:r,totalCount:n}),(e,t)=>e.phase===t.phase&&e.isRevalidating===t.isRevalidating&&e.loadedCount===t.loadedCount&&e.totalCount===t.totalCount),Km=qs(),Xs=()=>jn(Zn,qs,()=>Km),Zs=Ca(({phase:e,totalCount:t})=>({phase:e,totalCount:t}),(e,t)=>e.phase===t.phase&&e.totalCount===t.totalCount),zm=Zs(),Js=()=>jn(Zn,Zs,()=>zm),Qs=e=>e.phase==="complete"&&!e.isRevalidating,$s=e=>`${e.itemsRevision}:${Qs(e)}`,el=()=>{let[,e]=km(0),t=$n(),r=$s(t);return Pm(()=>{let n=r,o=()=>{let a=$s($n());a!==n&&(n=a,Mm(()=>e(i=>i+1)))};return _r.add(o),o(),()=>{_r.delete(o)}},[]),{itemsRevision:t.itemsRevision,itemsChanges:t.itemsChanges,readItems:Bm,settled:Qs(t)}};import.meta.hot?.dispose(va);var Ut=Yt(1,"daily-report-sse-connection"),Ym=Object.freeze({kind:"resyncing"}),tl={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},qm=1,rl=ea*3,Xm=rl+ea,Da=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=B(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=Jn(),[d,m]=Gm({generation:0,minAnchorRevision:1,anchored:!1}),c=d.generation>0&&!d.anchored,p=c&&a==="complete"&&!i?s:null,b=eo(0),S=eo(null),f=eo(n);f.current=n;let E=eo(0);E.current=o===null?0:o.revision,Aa(()=>{d.anchored||o===null||o.revision<d.minAnchorRevision||(S.current=o.lastEventId,b.current=0,m({...d,anchored:!0}))},[d,o]),Aa(()=>{if(!e||p===null)return;let{initialDelayMs:l,maxDelayMs:g,multiplier:T}=tl,C=Qn.random()*Math.min(g,l*T**b.current);Ut.warn(`SSE resync: the ids rescan gave up (${p.message}); rescanning in ${Math.round(C)} ms`);let P=Qn.setTimer(()=>{b.current+=1,Xn()},C);return()=>Qn.clearTimer(P)},[e,p]);let{status:h}=jm(e&&d.anchored?`${r}#${d.generation}`:null,{resolveUrl:({lastEventId:l})=>l===null?r:`${r}?${$i}=${encodeURIComponent(l)}`,initialLastEventId:S.current,withCredentials:!1,createEventSource:$m,runtime:Qn,backoff:tl,healthyOpenMs:Xm,nativeRetryLimit:qm,giveUpAfterFailures:"never",terminalEvents:zi,heartbeat:{staleAfterMs:rl,onHeartbeat:null},events:{message:l=>{l.lastEventId!==""&&(vn(l.lastEventId)?S.current=l.lastEventId:Ut.warn("SSE event carried a malformed id; keeping the previous cursor:",l.lastEventId));try{let g=JSON.parse(l.data),T=ji.safeParse(g);if(!T.success){Ut.error("SSE Validation Error:",T.error.flatten(),"raw message:",g);return}if(T.data.type==="connected"){Ut.info("SSE Subscribe Ready");return}t(T.data)}catch(g){Ut.error("SSE Parse Error",g)}}}});return Aa(()=>{if(h.kind==="faulted"){Ut.error("SSE connection faulted:",h.error);return}if(h.kind==="terminated")switch(h.terminalEvent){case"auth-required":f.current();return;case"forbidden":Ut.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let l=E.current+1;m(g=>({generation:g.generation+1,minAnchorRevision:l,anchored:!1})),Xn();return}}},[h]),e&&c?Ym:h};import{createContext as Zm,useCallback as Jm,useContext as Qm,useSyncExternalStore as nl}from"react";var ol=()=>{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)}}},_a=Zm(null),Tt=()=>{let e=Qm(_a);if(e===null)throw new Error("[daily-report] the draft store is read outside a DailyReportActionProvider");return e},al=(e,t)=>Jm(r=>e.subscribe(t,r),[e,t]),to=e=>{let t=Tt(),r=()=>t.modeOf(e);return nl(al(t,e),r,r)},il=e=>{let t=Tt(),r=()=>t.inputOf(e),n=nl(al(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 ep,useCallback as sl,useContext as tp,useEffect as rp,useMemo as np,useRef as ll,useState as op}from"react";import{jsx as dl,jsxs as cl}from"react/jsx-runtime";var ap=8e3,ip="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",sp=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",Si),ul=ep({notifyError:()=>{}}),ml=()=>tp(ul),La=({children:e})=>{let{onError:t,labels:r}=B(),[n,o]=op(null),a=ll(t);a.current=t;let i=ll(null),s=sl(c=>{let p=a.current;if(p){p(c);return}o(c)},[]),d=sl(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);rp(()=>{if(n)return i.current=setTimeout(()=>o(null),ap),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let m=np(()=>({notifyError:s}),[s]);return cl(ul.Provider,{value:m,children:[e,n&&cl("div",{role:"alert","data-testid":"daily-report-error-banner",className:ip,children:[dl("span",{className:"font-medium",children:n.message}),dl("button",{type:"button","aria-label":r.close,onClick:d,className:sp,children:"\u2715"})]})]})};import{useState as lp}from"react";var dp={items:[],held:new Map,revision:null,settled:!1},pl=(e,t)=>{let r=0,n=e.length;for(;r<n;){let o=r+n>>1;Ot(e[o],t)<0?r=o+1:n=o}return r<e.length&&e[r].reportHubId===t.reportHubId?r:-1},fl=(e,t,r)=>{let n=r,o=e.length;for(;n<o;){let a=n+o>>1;Ot(e[a],t)<=0?n=a+1:o=a}return n},cp=(e,t)=>e.businessDate===t.businessDate,up=(e,t)=>{if(Zo(t)||t.sort(Ot),e.length===0||Ot(e[e.length-1],t[0])<0)return e.concat(t);let r=[],n=0;for(let o of t){let a=fl(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()},bl=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}},yl=(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 Zo(a)||a.sort(Ot),bl({items:a,held:i,revision:t.itemsRevision,settled:r})},mp=(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?[]:Vs(t.itemsChanges,o);if(o===null||a===null)return yl(e,t,r,n);let i=Ar();for(let l of a)i.fold(l);let{appended:s,replaced:d,removed:m}=i.build(o,t.itemsRevision),c=null,p=()=>(c===null&&(c=new Map(e.held)),c),b=[],S=new Set,f=[];for(let l of m)e.held.has(l.reportHubId)||pl(e.items,l)===-1||(r||n.has(l.reportHubId)?S.add(l.reportHubId):p().set(l.reportHubId,{item:l,since:Number.NEGATIVE_INFINITY}));let E=(l,g)=>{let T=l.reportHubId,C=e.held.get(T);C!==void 0&&p().delete(T);let P=C===void 0?g:C.item,O=P===void 0?-1:pl(e.items,P);if(n.has(T)){O!==-1&&S.add(T);return}if(O!==-1&&cp(e.items[O],l)){e.items[O].sourceType!==l.sourceType&&b.push({index:O,item:l});return}O!==-1&&S.add(T),f.push(l)};for(let{previous:l,next:g}of d)E(g,l);for(let l of s)E(l,void 0);let h=e.items;if(b.length>0){h=h.slice();for(let{index:l,item:g}of b)h[l]=g}return S.size>0&&(h=h.filter(l=>!S.has(l.reportHubId))),f.length>0&&(h=up(h,f)),bl({items:h,held:c===null?e.held:c,revision:t.itemsRevision,settled:r})},Rl=(e,t,r)=>{let[n,o]=lp(()=>yl(dp,e,t,r));return(n.revision!==e.itemsRevision||n.settled!==t)&&o(a=>mp(a,e,t,r)),[n,o]},ro=(e,t,r)=>{if(e.items.some(a=>a.reportHubId===t.reportHubId))return e;let n=e.items.slice();n.splice(fl(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}},Nr=(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}},gl=(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}},hl=e=>({...e,revision:null});import{jsx as wa,jsxs as Ip}from"react/jsx-runtime";var ct=Yt(1,"daily-report-action-context"),bp=3e4,yp=3e4,Rp=1e3,oo=class extends Error{constructor(t,r){super(`[daily-report] ${t} answered HTTP ${r}`),this.name="DailyReportActionHttpError",this.status=r}},gp=e=>{let t=new Map,r=n=>{for(let[o,a]of t){if(a>n)return;t.delete(o)}};return{add:n=>{let o=e();r(o),t.delete(n),t.set(n,o+bp)},has:n=>(r(e()),t.has(n))}},hp=(e,t)=>!("clientTempId"in e)||e.clientTempId!==t.clientTempId?!1:"reportHubId"in t?"reportHubId"in e&&e.reportHubId===String(t.reportHubId):!0,io=globalThis.__DailyReportActionsContext??El(null);globalThis.__DailyReportActionsContext=io;var so=globalThis.__DailyReportActionStateContext??El(null);globalThis.__DailyReportActionStateContext=so;var ao=(e,t)=>{let r=fp(e);if(r===null)throw new Error(`[daily-report] ${t} must be used within a DailyReportActionProvider`);return r},Te=()=>ao(io,"useDailyReportActions"),lo=()=>ao(so,"useDailyReportActionState"),Sp=()=>{let e=ao(io,"useDailyReportActionContext"),t=ao(so,"useDailyReportActionContext");return Oa(()=>({...e,...t}),[e,t])},Vt=(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},vp=()=>({pendingAddCommentIds:{current:new Map},pendingDeleteCommentIds:{current:new Map},pendingStarUpdates:{current:new Map},pendingReadUpdates:{current:new Map},resolvedIdMap:{current:new Map}}),Ep=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)}),Tp=Object.freeze({kind:"idle"}),Tl=pp(({isSseEnabled:e,onMessage:t,onStatus:r})=>{let n=Da({isSseEnabled:e,onMessage:t});return Na(()=>{r(n)},[n,r]),null});Tl.displayName="DailyReportSseConnectionHost";var Ma=({children:e,user:t,userId:r})=>{let{apiBasePath:n,draftLabelName:o,labels:a}=B(),{notifyError:i}=ml(),[s]=It(vp),{pendingAddCommentIds:d,pendingDeleteCommentIds:m,pendingStarUpdates:c,pendingReadUpdates:p,resolvedIdMap:b}=s,[S,f]=It(0),[E]=It(ol),[h,l]=It(!1),[g,T]=It(Tp),C=no(!1),P=no(new Map),O=no(new Set),[W]=It(()=>gp(()=>performance.now())),[M]=It(()=>new Map),V=el(),[G,H]=Rl(V,V.settled,O.current),J=G.items,F=Sl(()=>Gs()===(r??null),[r]),se=async()=>{ct.info("[DailyReportActionProvider] Refetching data without page reload..."),xa(),f(u=>u+1),$.listeners.forEach(u=>{u(-1)})},q=async()=>{ct.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),Tr(),O.current.clear(),H(hl);try{sessionStorage.clear()}catch{}try{let u=await fetch(`${n}/${vt.action}`,{method:"POST",body:ha({intent:"clearCache"})});if(!u.ok){let y=await u.json().catch(()=>null);ct.warn("[DailyReportActionProvider] Failed to clear server-side cache:",u.status,y)}}catch(u){ct.warn("[DailyReportActionProvider] Failed to clear server-side cache:",u)}F()&&(xa({forceRefresh:!0}),f(u=>u+1),$.listeners.forEach(u=>{u(-1)}))},K=(u,y)=>{y.unsubscribe(),M.delete(u)},ye=(u,y)=>{K(u,y),ct.warn(`[SSE Queue] Expired: reportHubId=${u}, dropped=${y.messages.length} messages`)},re=(u,y)=>{let _=performance.now(),x=M.get(u);if(x!==void 0&&x.expiresAt>_){x.messages.push(y);return}x!==void 0&&ye(u,x);let L;L={messages:[y],unsubscribe:ys(u,()=>{if(L.expiresAt<=performance.now()){ye(u,L);return}if(Ke(u,{ignoreExpiry:!0})){K(u,L),ct.info(`[SSE Queue] Replaying ${L.messages.length} messages for reportHubId=${u}`);for(let v of L.messages)Xe.current.handleSseMessage(v)}}),expiresAt:_+yp},M.set(u,L)};Na(()=>()=>{for(let u of M.values())u.unsubscribe();M.clear()},[M]);let _e=Sl((u,y)=>{y!==void 0&&wr({reportHubId:u,businessDate:y})},[]),Me=()=>{r&&(C.current=!0,l(u=>!u))};vl(()=>{if(!r)return;let u=setTimeout(()=>{C.current||l(!0)},ns);return()=>clearTimeout(u)},[r]);let Q=u=>{F()&&(O.current.add(u),Yn(u),H(y=>Nr(y,u)),E.discard(u))};vl(()=>{if(G.settled)for(let u of O.current)js(u)||O.current.delete(u)},[G.settled,G.revision]);let je=u=>{if(F()&&!W.has(u.clientTempId))switch(u.type){case"comment-add":{let{comment:y,reportHubId:_}=u,x=Ke(_,{ignoreExpiry:!0});if(x){if(x.postedComments.some(N=>N.id===y.id))return;let L=!1,k=d.current.get(_);if(k){for(let[N,z]of k.entries())if(z===y.content){k.delete(N),b.current.set(N,y.id),L=!0;break}}let v={...y,userName:y.userName||(L?Vt(t,a.unknownUser):a.unknownUser),createdAt:y.createdAt||new Date().toISOString(),isMine:L},A={...x,postedComments:[...x.postedComments,v].sort((N,z)=>new Date(N.createdAt||0).getTime()-new Date(z.createdAt||0).getTime())};Ht(_,A),Mn(_),Pn(_),f(N=>N+1)}else re(_,u);break}case"comment-delete":{let{commentId:y,reportHubId:_}=u,x=Ke(_,{ignoreExpiry:!0});if(x){let L={...x,postedComments:x.postedComments.filter(k=>k.id!==y)};Ht(_,L),Mn(_),Pn(_),f(k=>k+1)}else re(_,u);break}case"status-update":{let{statusType:y,value:_,reportHubId:x}=u,L=Ke(x,{ignoreExpiry:!0});if(y==="star")if(c.current.get(x)===_&&c.current.delete(x),L){let k={...L,isStarred:_};Ht(x,k),f(v=>v+1)}else re(x,u);else if(y==="read")if(p.current.get(x)===_&&p.current.delete(x),L){let k={...L,isRead:_};Ht(x,k),f(v=>v+1)}else re(x,u);break}case"report-delete":{let{reportHubId:y}=u;O.current.add(y),Yn(y),H(L=>Nr(L,y)),E.discard(y);let _=M.get(y);_!==void 0&&K(y,_);let x=Ke(y,{ignoreExpiry:!0});x?.date&&(On(y,x.date),f(L=>L+1));break}case"report-create":case"report-update":case"report-publish":{let{report:y}=u;Rs(y),(u.type==="report-create"||u.type==="report-publish")&&_e(y.reportHubId,y.date),f(_=>_+1);break}}},Re=async(u,y,_={})=>{let{intent:x}=u,{lockedReportHubId:L}=_;L!==void 0&&Mn(L),y.onOptimistic?.(),W.add(u.clientTempId);try{let k=await fetch(`${n}/${vt.action}`,{method:"POST",body:ha(u),headers:{Accept:"application/json"}});if(!k.ok)throw new oo(x,k.status);let v=Us(x,await k.json());if(v===null)throw new Error(`[daily-report] ${x} answered a body that is not its result`);if(!hp(v,u))throw new Error(`[daily-report] ${x} answered another request`);if(!F())throw ct.warn(`[executeAction] ${x} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${x}`);return y.onSuccess(v)}catch(k){throw ct.error(`${x} failed:`,k),F()&&(y.onFailure?.(),Xe.current.notifyError({operation:x,message:a.operationFailed(x),cause:k})),k}finally{L!==void 0&&Pn(L)}},oe=(u,y,_)=>({reportHubId:u,clientTempId:_,businessDate:typeof y=="string"?y:null,operationTimestamp:Date.now()}),Ve={toggleSse:Me,addComment:async(u,y,_)=>{let x=-1*Date.now(),L=Re({...oe(u,_,String(x)),intent:"addComment",content:y},{onOptimistic:()=>{d.current.has(u)||d.current.set(u,new Map),d.current.get(u)?.set(x,y),f(k=>k+1)},onSuccess:({newComment:k})=>{let v=k.id;b.current.set(x,v),d.current.get(u)?.delete(x);let A=Ke(u,{ignoreExpiry:!0});return A&&!A.postedComments.some(N=>N.id===v)&&ze(u,{postedComments:[...A.postedComments,{...k,isMine:!0,userName:Vt(t,a.unknownUser)}]}),v},onFailure:()=>{d.current.get(u)?.delete(x)}}).finally(()=>P.current.delete(x));P.current.set(x,L),await L},deleteComment:async(u,y,_)=>{m.current.has(u)||m.current.set(u,new Set),m.current.get(u)?.add(y),f(L=>L+1);let x=y;if(y<0){let L=b.current.get(y);if(L!==void 0)x=L;else{let k=P.current.get(y);if(!k)return;try{x=await k}catch{return}}}await Re({...oe(u,_,crypto.randomUUID()),intent:"deleteComment",commentId:x},{onSuccess:()=>{let L=Ke(u,{ignoreExpiry:!0});L&&(ze(u,{postedComments:L.postedComments.filter(k=>k.id!==x)}),bs(x)),m.current.get(u)?.delete(y)},onFailure:()=>{m.current.get(u)?.delete(y)}})},toggleStar:async(u,y,_)=>{await Re({...oe(u,_,crypto.randomUUID()),intent:"toggleStar",value:y},{onOptimistic:()=>{ze(u,{isStarred:y}),c.current.set(u,y),f(x=>x+1)},onSuccess:({updatedStatus:x})=>{Ke(u,{ignoreExpiry:!0})&&(ze(u,{isStarred:x.isStarred}),f(L=>L+1)),c.current.delete(u)},onFailure:()=>{ze(u,{isStarred:!y}),c.current.delete(u)}})},toggleRead:async(u,y,_)=>{await Re({...oe(u,_,crypto.randomUUID()),intent:"toggleRead",value:y},{onOptimistic:()=>{ze(u,{isRead:y}),p.current.set(u,y),f(x=>x+1)},onSuccess:({updatedStatus:x})=>{Ke(u,{ignoreExpiry:!0})&&(ze(u,{isRead:x.isRead}),f(L=>L+1)),p.current.delete(u)},onFailure:()=>{ze(u,{isRead:!y}),p.current.delete(u)}})},createReport:async u=>{let y=-1*Date.now(),_=new Date().toISOString(),x={reportHubId:y,date:u,createdAt:_,author:Vt(t,a.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:Vt(t,a.unknownUser),updatedBy:Vt(t,a.unknownUser),updatedAt:_,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:[]};ps(x,Date.now()+3e5,!1),H(L=>ro(L,{reportHubId:y,businessDate:u},Number.NEGATIVE_INFINITY));try{let L=await Re({intent:"create",clientTempId:String(y),businessDate:u,operationTimestamp:Date.now()},{onSuccess:A=>A.report}),k=L.reportHubId,v=Ia();return wr({reportHubId:k,businessDate:u}),fs(k,Rp),Ht(k,L),f(A=>A+1),H(A=>ro(Nr(A,y),{reportHubId:k,businessDate:u},v)),k}catch(L){throw ct.error("[createReport] Failed",L),H(k=>Nr(k,y)),L}},updateReport:async(u,y,_)=>{await Re({...oe(u,_,crypto.randomUUID()),intent:"update",changes:{title:y.title,content:y.content}},{onSuccess:()=>{Ke(u,{ignoreExpiry:!0})&&(ze(u,{subject:y.title,content:y.content}),f(L=>L+1))}},{lockedReportHubId:u})},publishReport:async(u,y)=>{let _=Ke(u,{ignoreExpiry:!0});await Re({...oe(u,y,crypto.randomUUID()),intent:"publish"},{onOptimistic:()=>{_&&(ze(u,{labels:_.labels.filter(x=>x.name!==o)}),f(x=>x+1))},onSuccess:({report:x})=>{x!==null&&(Ht(u,x),f(L=>L+1)),y!==void 0&&wr({reportHubId:u,businessDate:y})},onFailure:()=>{_&&(ze(u,{labels:_.labels}),f(x=>x+1))}})},deleteReport:async(u,y)=>{let _=J.find(x=>x.reportHubId===u);O.current.add(u),Yn(u),H(x=>gl(x,u));try{await Re({...oe(u,y,crypto.randomUUID()),intent:"delete"},{onSuccess:()=>{On(u,y),E.discard(u)}},{lockedReportHubId:u})}catch(x){if(x instanceof oo&&x.status===404){On(u,y),E.discard(u);return}if(!F())return;O.current.delete(u);let L=_===void 0?y:_.businessDate,k=Ia();L!==void 0&&wr({reportHubId:u,businessDate:L}),_&&H(v=>ro(v,_,k))}},removeStaleItem:Q,refetchData:se,clearCacheAndRefetch:q,handleSseMessage:je,notifyError:i},Xe=no(Ve);Na(()=>{Xe.current=Ve});let[Le]=It(()=>Ep(Xe)),I=Oa(()=>({...s,...Le.functions,user:t}),[s,Le,t]),w=Oa(()=>({version:S,items:J,isSseEnabled:h,sseStatus:g}),[S,J,h,g]);return wa(_a.Provider,{value:E,children:wa(io.Provider,{value:I,children:Ip(so.Provider,{value:w,children:[wa(Tl,{isSseEnabled:h,onMessage:Le.onSseMessage,onStatus:T}),e]})})})};import{jsx as Cp}from"react/jsx-runtime";var xp={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},xt=Object.freeze({2:3,3:4,4:5,5:6}),He=({level:e,...t})=>{let r=xp[e];return Cp(r,{...t})};import{memo as Zl,useId as hf,useMemo as Sf,useRef as vf}from"react";var Il=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var ka="tile",Mr=Il[ka],Ap=2,Or=16,xl=5,Cl=Mr.maxWidth/Ap,Dp=xl*(Cl+Or)-Or,Al=e=>{let t=Math.min(xl,1+Math.floor((e+Or)/(Cl+Or)));return Math.floor((Math.min(e,Dp)-(t-1)*Or)/t)},Pa=`round(nearest, 100cqi * ${Mr.maxHeight} / ${Mr.maxWidth}, 1px)`,Dl=Object.freeze({aspectRatio:`${Mr.maxWidth} / ${Mr.maxHeight}`,height:Pa,contain:"strict"}),_l=Object.freeze({marginBlockEnd:`calc(round(up, ${Pa}, ${4}px) - ${Pa})`});var _p="download",Lp="thumbnail",wp="1",er=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[_p]:wp})}`;case"thumbnail":return`${n}?${new URLSearchParams({[Lp]:r.variant})}`}};import{createContext as Np,useContext as Op}from"react";var Pr=Np(null),tr=()=>Op(Pr)===!1?-1:void 0,Ll=(e,t)=>{let{before:r,after:n}=Fn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as Fp,useContext as Bp,useLayoutEffect as Up,useMemo as Vp,useState as Wp}from"react";import{flushSync as Kp}from"react-dom";import{flushSync as Mp}from"react-dom";var Ha=new WeakMap,wl=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,Pp=e=>{e.frame=null;let t=[...e.observations.values()].filter(wl);t.length!==0&&Mp(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},kp=(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=Al(o))}e.frame!==null||![...e.observations.values()].some(wl)||(e.frame=e.view.requestAnimationFrame(()=>Pp(e)))},Hp=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=>kp(n,o)),observations:new Map,frame:null};return Ha.set(e,n),n},Nl=(e,t)=>{let r=e.ownerDocument,n=Hp(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 Hr,jsxs as Pl}from"react/jsx-runtime";var kr="\u2026",zp=kr.codePointAt(0),co="data-attachment-file-name",$p=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,jp=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,kl=Fp(null),Hl=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},Ol=(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("")},Gp=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=Hl(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${Ol(o,kr,a,r)}${kr}`;return r(n+i)<=t?n+i:`${Ol(n,kr+i,t,r)}${kr}${i}`},Ml=new WeakMap,Fl=e=>{let t=Ml.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 Ml.set(e,n),n},Yp=(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},Bl=e=>{let t=new Set;for(let r of e.matchAll($p)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},qp=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:Bl(t.fontFamily),measure:Yp(Fl(e.ownerDocument),r)}},Xp=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,Zp=e=>{let t=new Set([zp]);for(let r of e.querySelectorAll(`[${co}]`)){let n=r.getAttribute(co);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},Jp=(e,t)=>{for(let r of e.split(",")){let n=jp.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},Fa=new WeakMap,Ul=e=>{let t=Fa.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return Fa.set(e,r),r},Vl=(e,t)=>{let r=qp(e.container.querySelector(`[${co}]`));e.fitted={trackWidth:t,nameFont:r};let n=Ul(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=ef(n)),e.applyFit({width:t,measure:r.measure})},Qp=(e,t)=>{let r=t.map(o=>({families:Bl(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=Zp(o.container);i.some(d=>Jp(d.unicodeRange,s))&&(Fl(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&Kp(()=>{for(let[o,a]of n)Vl(o,a)})},ef=e=>{let t=e.document.fonts,r=n=>{Qp(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},tf=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=Nl(e,a=>Vl(r,a)),o=Ul(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),Fa.delete(o.document))}},Wl=({containerRef:e,children:t})=>{let[r,n]=Wp(null);return Up(()=>{let o=e.current;return tf(o,i=>{n(s=>Xp(s,i)?s:i)})},[e]),Hr(kl,{value:r,children:t})},Fr=({fileName:e,className:t,testId:r})=>{let n=Bp(kl),o=Vp(()=>n===null?null:Gp(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=Hl(e);return Pl("span",{className:R("block min-w-0",t),title:e,"data-testid":r,[co]:e,children:[o===null?Pl("span",{"aria-hidden":"true",className:"flex min-w-0",children:[Hr("span",{className:"truncate",children:a}),i!==""&&Hr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):Hr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),Hr("span",{className:"sr-only",children:e})]})};import sf from"lucide-react/dist/esm/icons/image-off.js";import{memo as lf,useCallback as Va,useEffect as df,useLayoutEffect as cf,useRef as Wa,useState as uf}from"react";var uo=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),Kl=uo.queueWaitMs+uo.readMs+uo.renderMs+uo.transferMarginMs;var rf=Object.freeze({kind:"loaded"}),zl=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",d=null,m=null,c=null,p=null,b=null,S=F=>(F!==null&&n.clearTimeout(F),null),f=()=>{p?.(),p=null},E=()=>{b?.(),b=null},h=F=>F===null||F.kind==="loaded"?0:F.kind==="failing"?F.failedAttempts:i.maxAttempts,l=F=>{s="cooling",c=n.setTimeout(V,F)},g=()=>{o.abortInFlight(),E();let F=h(r.get(t))+1;if(F>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:F,retryAt:n.now()+i.retryDelayMs}),o.reset(),l(i.retryDelayMs)},T=F=>{if(s==="loading"){if(m=S(m),!F){g();return}s="done",r.set(t,rf),E()}},C=()=>{m=null,T(!1)},P=()=>{s="loading",o.showActivity(!0),f(),m=n.setTimeout(C,i.loadTimeoutMs),o.grant()},O=()=>{d=null,s="queued",b=a.request(P)},W=()=>{d===null&&(d=n.setTimeout(O,i.settleMs))},M=F=>{if(o.showActivity(F),F){s==="watching"&&W();return}if(s==="queued"){E(),s="watching";return}d=S(d)},V=()=>{c=null,s="watching",o.showActivity(!1),p=n.observe(e,M)},G=()=>{let F=s==="loading";s="done",f(),d=S(d),m=S(m),c=S(c),o.showActivity(!1),F&&(o.abortInFlight(),b!==null&&o.reset()),E()},H=r.get(t);if(H?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:T,dispose:G};if(H?.kind==="exhausted"){if(n.now()-H.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:T,dispose:G};r.delete(t)}o.reset();let J=H?.kind==="failing"?H.retryAt-n.now():0;return J>0?l(J):V(),{settle:T,dispose:G}};var nf=e=>{if(!Number.isInteger(e)||e<=0)throw Ee("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())}}}},$l=nf(2);var of=e=>{if(!Number.isInteger(e)||e<=0)throw Ee("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)}}},Ba=of(1024);var Ua=new WeakMap,af=e=>{let t=Ua.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 Ua.set(e,a),a},jl=(e,t)=>{let r=e.ownerDocument,n=af(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(),Ua.delete(r)))}};import{jsx as Br,jsxs as gf}from"react/jsx-runtime";var mf={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},pf="data-thumbnail-active",ff="data-daily-report-attachment-preview",Yl={[ff]:""},bf=Object.freeze({settleMs:250,loadTimeoutMs:Kl,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),Gl=e=>{let t=Ba.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},yf=()=>({limiter:$l,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:jl,tuning:bf}),Rf=(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(pf,o)}}),ql=lf(({thumbnailUrl:e,unavailableLabel:t})=>{let r=Wa(null),n=Wa(null),o=Wa(null),[a,i]=uf(()=>Gl(e));a.url!==e&&i(Gl(e)),cf(()=>{if(a.status==="failed")return;let c=n.current,p=a.status==="idle"?null:a.url;c.getAttribute("src")!==p&&(p===null?c.removeAttribute("src"):c.setAttribute("src",p))},[a]),df(()=>{let c=r.current,p=zl(c,e,Ba,yf(),Rf(e,c,i,n));return o.current=p,()=>{o.current=null,p.dispose()}},[e]);let s=Va(c=>{c!==null&&(n.current=c)},[]),d=Va(()=>{i(c=>c.status==="granted"?{url:c.url,status:"loaded"}:c),o.current?.settle(!0)},[]),m=Va(()=>{o.current?.settle(!1)},[]);return Br("span",{className:"block",children:Br("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":mf[a.status],style:Dl,className:"relative block w-full",children:Br("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"?gf("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 ${yn}`,"data-testid":"daily-report-attachment-thumbnail-unavailable",children:[Br(sf,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):Br("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 fe,jsxs as rt}from"react/jsx-runtime";var Xl=1024,Ka=["B","KB","MB","GB"],Jl="text-slate-500 text-sm line-through dark:text-slate-400",Ef=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=Xl&&r<Ka.length-1;)t/=Xl,r+=1;return r===0?`${t} ${Ka[r]}`:`${t.toFixed(1)} ${Ka[r]}`},Ql=({attachment:e,labels:t,className:r})=>rt("span",{className:r,children:[Ef(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),za=({href:e,children:t,...r})=>{let n=tr();return fe("a",{href:e,...r,tabIndex:n,children:t})},ed=({downloadUrl:e,label:t,fileName:r})=>rt(za,{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," ",fe("span",{className:"sr-only",children:r})]}),Tf=Zl(({attachment:e,apiBasePath:t,labels:r})=>{let n=fe(ql,{thumbnailUrl:er(t,e.id,{kind:"thumbnail",variant:ka}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return rt("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?rt("div",{className:"flex min-w-0 flex-col gap-2",children:[n,fe(Fr,{fileName:e.fileName,className:Jl,testId:"daily-report-attachment-name"})]}):rt(za,{href:er(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,fe(Fr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),rt("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:_l,children:[fe(Ql,{attachment:e,labels:r,className:"truncate"}),!o&&fe(ed,{downloadUrl:er(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),If=Zl(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return rt("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:[rt("div",{className:"flex min-w-0 flex-col",children:[n?fe(Fr,{fileName:e.fileName,className:Jl,testId:"daily-report-attachment-name"}):fe(za,{href:er(t,e.id,{kind:"inline"}),className:R("flex min-w-0 rounded-sm",X),"data-testid":"daily-report-attachment-link",children:fe(Fr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),fe(Ql,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&fe(ed,{downloadUrl:er(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),xf=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=vf(null);return fe(Wl,{containerRef:o,children:fe("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:fe("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=>fe(Tf,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},mo=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=B(),o=hf(),{tileAttachments:a,rowAttachments:i}=Sf(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:rt("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[fe(He,{level:xt[n],id:o,className:R("m-0",Nt),children:r.attachments}),rt("div",{className:"flex flex-col gap-4",children:[a.length>0&&fe(xf,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&fe("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>fe(If,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as Kf}from"@aiquants/swipe-overlay";import{memo as dd,useCallback as Ro,useEffect as ad,useId as zf,useRef as cd,useState as $f}from"react";import{useCallback as nd,useMemo as Cf,useRef as Af,useState as Df}from"react";var td=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw Ee("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]},rd=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 $a=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,addComment:i,deleteComment:s}=Te(),{version:d}=lo(),{labels:m}=B(),c=m.unknownUser,[p,b]=Df(null),S=nd(l=>e&&s(e.reportHubId,l,e.date),[e,s]),f=nd(l=>e&&t?i(e.reportHubId,l,e.date):Promise.resolve(),[e,t,i]),E=Af([]);return{uiComments:Cf(()=>{if(!e)return[];let l=td(e.externalComments,e.postedComments,r,c),g=o.current.get(e.reportHubId);g?.size&&(l=l.filter(C=>!g.has(C.id)));let T=n.current.get(e.reportHubId);if(T?.size&&t){let C=new Set(l.map(O=>O.id)),P=Vt(t,c);for(let[O,W]of T){if(g?.has(O)||C.has(O))continue;let M=a.current.get(O);M&&C.has(M)||l.some(V=>V.isMine&&V.content===W&&typeof V.id=="number"&&V.id>0)||l.push({id:O,authorName:P,content:W,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(l)===JSON.stringify(E.current)?E.current:(E.current=l,l)},[e,t,r,c,o,n,a,d]),handleAddComment:f,handleDeleteComment:S,pendingDeleteId:p,setPendingDeleteId:b,resolvedIdMap:a.current}};var Ur=e=>e.isComposing||e.keyCode===229,po=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 _f={kind:"hold"},Lf=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),wf=(e,t)=>{let r=e.getAttribute("role");return r!==null&&Lf.has(r)&&e!==t&&e.contains(t)},Vr=e=>e.key==="Escape"&&!e.defaultPrevented&&!Ur(e),od=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||Ur(e))return null;let r=e.target;if(!(ge(r)&&t.contains(r)))return null;let n=xs(t);if(n.length===0)return _f;let{before:o,within:a,after:i}=Fn(t,r);return e.shiftKey?o.some(s=>!wf(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 Nf,jsx as Of}from"react/jsx-runtime";var Se=({render:e})=>{let t=tr();return Of(Nf,{children:e(t)})};import Mf from"@heroicons/react/24/outline/TrashIcon.js";import{memo as Pf,useId as kf,useRef as Hf,useState as Ff}from"react";import{jsx as Ct,jsxs as fo}from"react/jsx-runtime";var ja="data-comment-id",bo="data-comment-delete-button",yo="data-comment-delete-slot",Bf=R(we,Ti),Uf="relative flex h-5 items-center",Vf=R(Ce,"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),Wf=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,Ga=Pf(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:d})=>{let[m,c]=Ff(!1),{labels:p}=B(),b=kf(),S=Hf(null),f=Wf(e.id,o,d),E=()=>{let l=S.current;l!==null&&s(l),a(null),c(!0),typeof e.id=="number"&&n?.(e.id)},h=l=>{if(!f)return;let g=l.relatedTarget;ge(g)&&l.currentTarget.contains(g)||a(null)};return fo("li",{[ja]: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:[fo("div",{className:"mb-1 flex items-center justify-between",children:[Ct("div",{className:R("font-semibold text-xs",rd(e.color)),children:le(e.authorName)}),fo("div",{className:"flex items-center gap-2",children:[e.createdAt&&Ct("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:ie(e.createdAt)}),e.isMine&&!e.isLegacy&&fo("div",{[yo]:e.id,className:Uf,onBlur:h,children:[Ct(Se,{render:l=>Ct("button",{ref:S,type:"button",tabIndex:l,className:Bf,title:p.commentDelete,"aria-label":p.commentDelete,"aria-expanded":f,"aria-controls":f?b:void 0,[bo]:e.id,onClick:()=>i(e.id,f),children:Ct(Mf,{"aria-hidden":"true",className:f?he.deletePending:he.delete})})}),f&&Ct(Se,{render:l=>Ct("button",{id:b,type:"button",tabIndex:l,"data-delete-confirmation":!0,className:Vf,onClick:E,children:p.commentDeleteConfirm})})]})]})]}),Ct("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});Ga.displayName="DailyReportPostedComment";import{Fragment as eb,jsx as Fe,jsxs as Ya}from"react/jsx-runtime";var jf="data-daily-report-comment-section",Gf="data-daily-report-comment-heading",Yf=R(it,X),ud=(e,t)=>e>0||t,qf=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),Xf=R("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",X),id=e=>e.querySelector(`[${bo}][aria-expanded="true"]`),Zf=(e,t,r)=>{let n=[...e.querySelectorAll(`[${bo}]`)].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(`[${ja}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return ud(i,r)?{kind:"heading"}:{kind:"report"}},Jf=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:d,onSectionRemoved:m})=>{let c=cd(null),p=Kf(),b=zf(),S=o!==null,f=Ro(()=>{let l=c.current,g=l===null?null:id(l),T=g===null?null:g.closest(`[${yo}]`),C=l===null?null:Ne(l);a(null),g!==null&&T!==null&&C!==null&&T.contains(C)&&g.focus({preventScroll:!0})},[a]);ad(()=>{if(S)return p({id:b,onEscape:l=>Vr(l)?(f(),!0):!1})},[S,p,b,f]),ad(()=>{let l=c.current;if(!S||l===null)return;let g=l.ownerDocument,T=C=>{let P=id(l)?.closest(`[${yo}]`);P!=null&&ge(C.target)&&P.contains(C.target)||a(null)};return g.addEventListener("pointerdown",T,!0),()=>g.removeEventListener("pointerdown",T,!0)},[S,a]);let E=Ro((l,g)=>{g?f():a(l)},[f,a]),h=Ro(l=>{let g=c.current;if(g===null)return;let T=Zf(g,l,s);if(T.kind==="report"){m();return}let C=T.kind==="trash"?T.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:Fe("ul",{ref:c,className:"space-y-2",children:e.map(l=>Fe(Ga,{comment:l,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:E,onBeforeHide:h,resolvedIdMap:i},l.id))})},sd=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=B(),a=cd(null);return ud(r.comments.length,r.canComment)?Ya("div",{[jf]:"",className:R("flex flex-col gap-2",e),children:[Fe(He,{ref:a,level:xt[o],tabIndex:-1,[Gf]:"",className:Yf,children:n.comments}),Fe(Jf,{...r,headingRef:a}),t]}):null},md=dd(({report:e,canComment:t,onSectionRemoved:r,formPlacement:n,sectionClassName:o,comments:a,onAddComment:i,onDeleteComment:s,pendingDeleteId:d,onPendingDeleteIdChange:m,resolvedIdMap:c})=>{let p=t?Fe(Qf,{onAddComment:i}):null,b={comments:a,canComment:t,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:s,pendingDeleteId:d,onPendingDeleteIdChange:m,resolvedIdMap:c,onSectionRemoved:r,className:o};return n==="in-section"?Fe(sd,{...b,children:p}):Ya(eb,{children:[Fe(sd,{...b}),p&&Fe("div",{className:"mt-auto",children:p})]})});md.displayName="ReportCommentsView";var Wr=dd(({report:e,userId:t,canComment:r,onCommentAdded:n,onSectionRemoved:o,formPlacement:a,sectionClassName:i})=>{let{user:s}=Te(),{uiComments:d,handleAddComment:m,handleDeleteComment:c,pendingDeleteId:p,setPendingDeleteId:b,resolvedIdMap:S}=$a(e,s,t),f=Ro(async E=>{await m(E),n?.()},[m,n]);return Fe(md,{report:e,canComment:r,onSectionRemoved:o,formPlacement:a,sectionClassName:i,comments:d,onAddComment:f,onDeleteComment:c,pendingDeleteId:p,onPendingDeleteIdChange:b,resolvedIdMap:S})});Wr.displayName="ReportComments";var ld="content",Qf=({onAddComment:e})=>{let[t,r]=$f(!1),{labels:n}=B();return Ya("form",{className:"flex gap-2",onSubmit:async a=>{a.preventDefault();let i=a.currentTarget,s=i.elements.namedItem(ld);if(!(s instanceof Ae(i).HTMLInputElement))return;let d=s.value.trim();if(d&&e){r(!0),i.reset();try{await e(d)}catch{s.value=d}finally{r(!1)}}},children:[Fe(Se,{render:a=>Fe("input",{type:"text",name:ld,tabIndex:a,placeholder:n.commentPlaceholder,className:qf,autoComplete:"off"})}),Fe(Se,{render:a=>Fe("button",{type:"submit",tabIndex:a,className:Xf,disabled:t,children:n.commentSend})})]})};import{useState as lb}from"react";import{Slot as tb}from"@radix-ui/react-slot";import{cva as rb}from"class-variance-authority";import*as pd from"react";import{jsx as ob}from"react/jsx-runtime";var nb=rb(`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"}}),ut=pd.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>ob(n?tb:"button",{className:R(nb({variant:t,size:r,className:e})),ref:a,...o}));ut.displayName="Button";import{jsx as ab}from"react/jsx-runtime";function fd({className:e,type:t,...r}){return ab("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 bd from"@radix-ui/react-label";import{jsx as ib}from"react/jsx-runtime";function Kr({className:e,...t}){return ib(bd.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 sb}from"react/jsx-runtime";function yd({className:e,...t}){return sb("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 $e,jsxs as go}from"react/jsx-runtime";var rr=e=>({title:e.subject??"",content:e.content??""}),db=e=>{e.preventDefault()},ho=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=Te(),{labels:i}=B(),s=Tt(),{title:d,content:m}=il(e.reportHubId),[c,p]=lb(!1),b=async()=>{p(!0);try{await o(e.reportHubId,{title:d,content:m},e.date)}catch{}finally{p(!1)}},S=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}`,E=`report-content-${e.reportHubId}`;return go("form",{className:"space-y-4 p-1",onSubmit:db,children:[go("div",{className:"space-y-2",children:[$e(Kr,{htmlFor:f,children:i.formTitle}),$e(Se,{render:h=>$e(fd,{ref:n,id:f,value:d,onChange:l=>s.setInput(e.reportHubId,{title:l.target.value}),placeholder:i.formTitlePlaceholder,disabled:c,tabIndex:h})})]}),go("div",{className:"space-y-2",children:[$e(Kr,{htmlFor:E,children:i.formContent}),$e(Se,{render:h=>$e(yd,{id:E,value:m,onChange:l=>s.setInput(e.reportHubId,{content:l.target.value}),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:c,tabIndex:h})})]}),go("div",{className:"flex justify-end gap-2",children:[t&&$e(Se,{render:h=>$e(ut,{type:"button",variant:"outline",onClick:t,disabled:c,tabIndex:h,children:i.formCancel})}),$e(Se,{render:h=>$e(ut,{type:"button",variant:"secondary",onClick:b,disabled:c,tabIndex:h,children:i.formSave})}),$e(Se,{render:h=>$e(ut,{type:"button",onClick:S,disabled:c,tabIndex:h,children:i.formPublish})})]})]})};import hb from"lucide-react/dist/esm/icons/check.js";import Sb from"lucide-react/dist/esm/icons/pencil.js";import vb from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as Rd}from"react/jsx-runtime";var vo=24,gd=2,cb=20,So=5,ub=3,mb=()=>{let e=Math.cos(2*Math.PI/So)/Math.cos(Math.PI/So),t=Array.from({length:2*So},(b,S)=>{let f=-Math.PI/2+S*Math.PI/So,E=S%2===0?1:e;return{x:E*Math.cos(f),y:E*Math.sin(f)}}),r=t.map(b=>b.x),n=t.map(b=>b.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],d=(cb-gd)/(a-o),m=vo/2-d*(o+a)/2,c=vo/2-d*(i+s)/2,p=b=>String(Number(b.toFixed(ub)));return t.map(b=>`${p(m+d*b.x)},${p(c+d*b.y)}`).join(" ")},pb=mb(),nr=({filled:e})=>Rd("svg",{viewBox:`0 0 ${vo} ${vo}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:gd,strokeLinejoin:"round",className:e?he.starOn:he.starOff,children:Rd("polygon",{points:pb})});import{Fragment as fb,jsx as Eo,jsxs as bb}from"react/jsx-runtime";var or=({config:e,id:t,className:r})=>Eo("span",{id:t,className:R(Ci,e.badgeClassName,r),children:e.name===void 0?e.label:bb(fb,{children:[Eo("span",{"aria-hidden":"true",children:Eo("abbr",{title:e.name,children:e.label})}),Eo("span",{className:"sr-only",children:e.name})]})});import{jsx as hd}from"react/jsx-runtime";var To=24,yb=6,ar=({className:e})=>hd("svg",{viewBox:`0 0 ${To} ${To}`,"aria-hidden":"true",className:R(he.read,e),children:hd("circle",{cx:To/2,cy:To/2,r:yb,fill:"currentColor"})});import{jsx as gb}from"react/jsx-runtime";var Rb=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,Wt=({text:e})=>Rb.test(e)?gb("time",{dateTime:e,children:e}):e;import{jsx as Be,jsxs as vd}from"react/jsx-runtime";var de=({label:e,classNames:t,valueId:r,children:n})=>vd("div",{className:t.field,children:[Be("dt",{className:t.label,children:e}),Be("dd",{id:r,className:R("m-0",t.value),children:n})]}),At={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"},Sd=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return vd("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:[Be(de,{label:r.author,classNames:At,children:le(e.author)}),Be(de,{label:r.createdAt,classNames:At,children:Be(Wt,{text:ie(e.createdAt)})}),Be(de,{label:r.updatedBy,classNames:At,children:le(e.updatedBy)}),Be(de,{label:r.updatedAt,classNames:At,children:Be(Wt,{text:ie(e.updatedAt)})}),Be(de,{label:r.businessDate,classNames:At,children:Be(Wt,{text:ie(e.date)})}),t!==null&&Be(de,{label:r.visitTime,classNames:At,children:t}),n&&Be(de,{label:r.category,classNames:At,children:n}),o&&Be(de,{label:r.creationCategory,classNames:At,children:o})]})};import{jsx as ae,jsxs as Td}from"react/jsx-runtime";var Io={field:R(Ce,"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:""},Eb={field:R(Ce,"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:""},Ed={field:R(Ce,"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:""},Id=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:d,sourceConfig:m,visitTimeDisplay:c,markerIds:p,labels:b})=>{let S=r?b.starRemove:b.starAdd,f=t?b.markUnread:b.markRead,E=e.category?.trim(),h=e.creationCategory?.trim();return Td("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[ae(Sr,{id:p.attachments,count:e.attachments.length,label:b.attachments}),m?ae(or,{id:p.source,config:m}):null,ae(Se,{render:l=>ae("button",{type:"button",onClick:a,tabIndex:l,className:we,title:S,"aria-label":S,"data-detail-star-button":e.reportHubId,children:ae(nr,{filled:r})})}),ae(Se,{render:l=>ae("button",{type:"button",onClick:o,tabIndex:l,className:we,title:f,"aria-label":f,"data-detail-read-button":e.reportHubId,children:t?ae(hb,{className:he.read}):ae(ar,{})})}),i&&ae(Se,{render:l=>ae("button",{ref:s,type:"button",onClick:i,tabIndex:l,"data-detail-edit-button":e.reportHubId,className:we,title:b.edit,"aria-label":b.edit,children:ae(Sb,{className:he.edit})})}),n&&ae(Se,{render:l=>ae("button",{type:"button",onClick:d,tabIndex:l,"data-detail-delete-button":e.reportHubId,className:we,title:b.deleteReport,"aria-label":b.deleteReport,children:ae(vb,{className:he.delete})})}),Td("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[ae(de,{label:b.id,classNames:Eb,children:e.reportHubId}),ae(de,{label:b.businessDate,classNames:Io,children:ae(Wt,{text:ie(e.date)})}),ae(de,{label:b.author,classNames:Io,children:le(e.employeeName)}),ae(de,{label:b.visitTime,classNames:Io,children:le(c)}),ae(de,{label:b.updatedAt,classNames:Io,children:ae(Wt,{text:ie(e.updatedAt)})}),E&&ae(de,{label:b.category,classNames:Ed,children:E}),h&&ae(de,{label:b.creationCategory,classNames:Ed,children:h})]})]})};import{useCallback as Xb,useContext as Xd,useLayoutEffect as ei,useRef as Zd}from"react";import{startTransition as Vb,useCallback as ee,useLayoutEffect as Kt,useMemo as Gd,useRef as Lt,useState as Yr,useSyncExternalStore as Wb}from"react";import{flushSync as Yd}from"react-dom";var ir=e=>({owner:e,focusIndex:null}),qa=Object.freeze({owner:null,focusIndex:null}),xd=(e,t)=>{if(e.length===0)return qa;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},Cd=(e,t)=>{switch(t.kind){case"focusIn":return ir(t.row);case"focusOut":return t.to==="outside"?qa:ir(e);case"pointerPress":return t.at==="outside"?qa:ir(e);case"listChanged":{if(e===null)return ir(e);let r=ce(t.items,e.reportHubId,e.index);return r===-1?xd(t.items,e.index):ir(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?ir(e):xd(t.items,t.selection.index)}};var Tb=new Set(["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","ScrollLock","Shift","Super","Symbol","SymbolLock"]),xo={capture:!0},Co=new WeakMap,Ib=e=>{let t=o=>{Tb.has(o.key)||(n.last="keyboard")},r=()=>{n.last="pointer"},n={observers:0,last:null,detach:()=>{e.removeEventListener("keydown",t,xo),e.removeEventListener("pointerdown",r,xo)}};return e.addEventListener("keydown",t,xo),e.addEventListener("pointerdown",r,xo),n},Ad=e=>{let t=Co.get(e),r=t===void 0?Ib(e):t;t===void 0&&Co.set(e,r),r.observers+=1;let n=!1;return()=>{n||(n=!0,r.observers-=1,!(r.observers>0)&&(r.detach(),Co.delete(e)))}},Dd=e=>{let t=Co.get(e);return t===void 0?null:t.last};var Ao=e=>e.matches(":focus-visible")&&Dd(e.ownerDocument)!=="pointer";var xb="data-daily-report-keyboard-focus",Dt={capture:!0},_d=e=>{let t=Ad(e.ownerDocument),r=s=>{e.toggleAttribute(xb,ge(s)&&Ao(s))},n=s=>r(s.target),o=s=>{ge(s.relatedTarget)&&e.contains(s.relatedTarget)||r(null)},a=()=>r(null);e.addEventListener("focusin",n,Dt),e.addEventListener("keydown",n,Dt),e.addEventListener("focusout",o,Dt),e.addEventListener("pointerdown",a,Dt);let i=Ne(e);return r(i!==null&&e.contains(i)?i:null),()=>{e.removeEventListener("focusin",n,Dt),e.removeEventListener("keydown",n,Dt),e.removeEventListener("focusout",o,Dt),e.removeEventListener("pointerdown",a,Dt),r(null),t()}};var Cb='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',Ab=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],Db=Ab.map(e=>`[role="${e}"]`).join(", "),_b=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),Lb=new Set(["Enter"," "]),wb=new Map([["Home","exitBefore"],["End","exitAfter"]]),Xa=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return wb.get(e.key)??null;let r=_b.get(e.key);return r!==void 0?r:Lb.has(e.key)&&t.rowActivation?"activate":null},Ld=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},wd=(e,t,r)=>{let n=Xa(e,r);if(n===null||e.defaultPrevented||Ur(e)||t===null||!ge(e.target)||!t.contains(e.target))return null;let o=Et(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:Ld(e.target,Cb,t)||Ld(e.target,Db,t)?null:n};var Do={kind:"stay"},_o=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},Nd=e=>Math.floor(.875*e),_t=(e,t)=>({kind:"move",index:e,align:t}),zr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",Nb=({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},Ob=({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},Mb=(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 Do;if(r==="top")return _t(n-1,"top");let m=s(n-1);return _t(n-1,zr(i-m,m,a,-1))}case"next":return n===o-1?Do:r==="top"?_t(n+1,"top"):_t(n+1,zr(d,s(n+1),a,1));case"first":return _t(0,"top");case"last":return _t(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(d>a)return{kind:"reveal",delta:Math.min(d-a,Nd(a))};if(n===o-1)return Do;let m=Nb(t);return _t(m.index,zr(m.top,s(m.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,Nd(a))};if(n===0)return Do;let m=Ob(t);return _t(m.index,zr(m.top,s(m.index),a,-1))}}},Pb=({index:e,focusedRowTop:t,heightOf:r},n)=>Hd(n,{index:e,offsetPx:-t},r),Pd=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let d=Mb(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:Pb(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}},kd=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>zr(r,n(e),t,1),Hd=(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},$r=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;let i=_o(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:Hd(t,s,i),heightOf:i}},Od=1,Fd=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=jr(o,n,t,r);return{start:Math.max(0,o.index-Od),end:Math.min(t-1,a+Od)}},jr=(e,t,r,n)=>{let o=_o(n),a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},Bd=(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,Md=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),Ud=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(Md(t,n,o))return t.reportHubId;if(Md(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var Ja=1,Gr=2,Za=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?Ja:0)|(n===t||n===r?Gr:0),kb=e=>{if(Ir(e))return!0;let t=Ne(e);return t!==null&&e.contains(t)},Hb=(e,t)=>{let r=e.closest(`[${Un}]`);return r!==null&&r!==e&&Bt(r)===t&&Ne(e)===r},Vd={capture:!0},Wd=({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,c=new Map,p=l=>Za(r,l),b=l=>{let g=d.get(l);if(g===void 0)return;let T=(p(l)&Gr)!==0?"0":"-1";g.getAttribute("tabindex")!==T&&g.setAttribute("tabindex",T)},S=()=>{if(n===null)return;let l=n;n=null,b(l)},f=(l,g)=>{S();let T={...r};l(r);let C=r,P=new Set([T.selectedId,T.tabStopId,T.arrivingId,C.selectedId,C.tabStopId,C.arrivingId]);for(let O of P){if(O===null)continue;let W=Za(T,O),M=Za(C,O);if(W===M)continue;((W^M)&Gr)!==0&&(O===g?n=O:b(O));let V=s.get(O);if(V!==void 0)for(let G of[...V])G()}},E=l=>{let g=l.ownerDocument,T=n!==null&&!Ir(l);T?g.addEventListener("focusout",S,Vd):S(),a=!0;try{l.focus({preventScroll:!0})}finally{a=!1,T&&g.removeEventListener("focusout",S,Vd),S()}},h=l=>{let g=e();g!==null&&(o=null,kb(g)&&E(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),b(l),o===l){h(g);return}i===null||i.reportHubId!==l||(Ir(g)||Hb(g,l))&&E(g)},unregisterFocusTarget:(l,g)=>{d.get(l)===g&&d.delete(l)},requestFocus:l=>{o=l;let g=d.get(l);g!==void 0&&h(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||!Ir(g)||E(g)},holdBodiesOutside:l=>{m=l},isBodyHeldAt:l=>m!==null&&(l<m.start||l>m.end),registerHeldBody:(l,g,T)=>{let C={indexHint:g,release:T};return c.set(l,C),()=>{c.get(l)===C&&c.delete(l)}},releaseHeldBodiesWithin:(l,g)=>{if(l!==null)for(let[T,{indexHint:C,release:P}]of[...c]){let O=g(T,C);O>=l.start&&O<=l.end&&P()}}}};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}},Qa=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),Fb=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),Kd=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Bb=new Map(Object.values(Je).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),zd=e=>{let t=Bb.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},Ub=(e,t,r)=>e==="row"||e==="page"?t+r:r,$d=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:zd(e)}),jd=(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",zd(r)):(e.pending=Ub(e.axis,e.pending,r.amount),Qa)}case"frame":{if(e.fence==="open")return Qa;if(e.fence==="immediate")return e.fence="flush",Fb;if(e.pending===0)return e.fence="open",Qa;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?Kd:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return Kd}};var Kb=Object.freeze({kind:"frame"}),zb=Object.freeze({kind:"keyup"}),$b=Object.freeze({kind:"cancel"}),jb=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})}),Gb=(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}},Yb=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),qb=e=>{let t=Bt(e),r=Zt(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},Lo=(e,t)=>{let r=ee(a=>e.subscribe(t,a),[e,t]),n=ee(()=>e.rowStateOf(t),[e,t]),o=Wb(r,n,n);return{isCurrent:(o&Ja)!==0,isTabStop:(o&Gr)!==0}},wo=(e,t,r)=>{let[n,o]=Yr(()=>!e.isBodyHeldAt(r));return Kt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Vb(a),i},[e,t,r,n]),n},qd=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:d,rowActivation:m})=>{let[c]=Yr(()=>Wd({getContainer:()=>n.current,initialSelectedId:t})),p=Lt({items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m}),b=Lt(null),S=Lt(null),[f,E]=Yr(null),h=Lt(null),l=Lt(null),[g,T]=Yr(null),C=Lt(!1),P=Lt(null),[O,W]=Yr(0),M=Gd(()=>({id:t,indexHint:t===null?null:As(f,t)}),[t,f]),V=Lt(M);Kt(()=>{p.current={items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m},V.current=M},[e,r,s,d,m,M]);let G=ee((I,w)=>{let u=S.current;if(u!==null&&u.items===I&&u.reportHubId===w)return u.index;let y=ce(I,w,u!==null&&u.reportHubId===w?u.index:null);return y!==-1&&(S.current={items:I,reportHubId:w,index:y}),y},[]),H=ee((I,w)=>{S.current={items:p.current.items,reportHubId:I,index:w},E(u=>u!==null&&u.reportHubId===I&&u.index===w?u:{reportHubId:I,index:w})},[]),J=ee(I=>{let w=c.getFocusOwner();if(w===null)return null;let u=ce(I,w.reportHubId,w.index);return u===-1?null:{reportHubId:w.reportHubId,index:u}},[c]),F=ee(I=>{let w=p.current.items,u=I===null?null:{reportHubId:I,index:G(w,I)};return Ud(w,J(w),u,b.current,P.current)},[G,J]),se=ee(()=>{c.setTabStopId(F(c.getSelectedId()))},[c,F]),q=ee(I=>{let w=c.getFocusOwner();w===I||w!==null&&I!==null&&w.reportHubId===I.reportHubId&&w.index===I.index||(c.setFocusOwner(I),C.current||se())},[c,se]),K=ee(I=>{let w=Cd(c.getFocusOwner(),I);q(w.owner),w.focusIndex!==null&&(h.current=w.focusIndex,c.requestFocus(w.owner.reportHubId))},[c,q]);Kt(()=>{c.settleSelection(t,F(t))},[c,t,e,O,F]),Kt(()=>{let I=o.current;if(I!==null)return _d(I)},[o]),Kt(()=>{let I=n.current;if(I===null)return;let w=I.ownerDocument,u=y=>{let _=n.current,x=y.target;K({kind:"pointerPress",at:_!==null&&ge(x)&&_.contains(x)?"inside":"outside"})};return w.addEventListener("pointerdown",u,{capture:!0}),()=>w.removeEventListener("pointerdown",u,{capture:!0})},[n,K]),Kt(()=>{let I=c.pendingFocusId();I!==null&&ce(e,I,h.current)===-1&&c.cancelFocusRequest(),K({kind:"listChanged",items:e})},[c,e,K]);let ye=ee(I=>{K({kind:"removed",reportHubId:I,selection:S.current,items:p.current.items})},[K]),re=ee((I,w,u)=>{let{items:y,onSelect:_,rowSizing:x,arrowAlign:L}=p.current,k=a.current;if(_===null||k===null)return null;let v=ce(y,u.reportHubId,u.index);if(v===-1)return null;let A=$r(k,v,y.length,x);if(A===null)return null;let N=Pd(I,w,A,L),z=y[N.index],me=N.index!==v;if(me){c.arrive(z.reportHubId),P.current=z.reportHubId,h.current=N.index,C.current=!0;try{c.requestFocus(z.reportHubId)}finally{C.current=!1}}try{Yd(()=>{me&&(c.pendingFocusId()===null&&c.settleSelection(z.reportHubId,z.reportHubId),_(z.reportHubId,N.index)),N.alignment!==null&&i.toIndex(N.alignment.index,{align:N.alignment.align}),N.scrollDelta!==0&&i.by(N.scrollDelta),me&&(H(z.reportHubId,N.index),W(et=>et+1));let Ze=Fd(k,y.length,x);c.holdBodiesOutside(Ze),c.releaseHeldBodiesWithin(Ze,(et,an)=>ce(y,et,an))})}finally{c.holdBodiesOutside(null)}return me?{reportHubId:z.reportHubId,index:N.index}:{reportHubId:u.reportHubId,index:v}},[c,a,i,H]),_e=ee(I=>{let{items:w,onSelect:u}=p.current;if(u===null)return;let y=ce(w,I.reportHubId,I.index);y!==-1&&(u(I.reportHubId,y),H(I.reportHubId,y))},[H]),Me=ee(I=>{let w=n.current,u=w===null?null:Ne(w),y=w!==null&&u!==null&&w.contains(u)?xr(Et(u,w),p.current.items):null;return y===null?I.origin:y},[n]),Q=ee((I,w)=>{let u=Me(I);if(w.axis==="activate"){_e(u);return}let y=Gb(w.axis,w.amount),_=re(y.command,y.count,u);_!==null&&(I.origin=_)},[Me,_e,re]),je=ee(I=>{l.current=null,I.frame!==0&&I.view.cancelAnimationFrame(I.frame),T(null)},[]),Re=ee((I,w,u)=>{let{apply:y}=w;y!==null&&(w.flush?Yd(()=>Q(I,y)):Q(I,y)),l.current===I&&(w.ended?je(I):w.requestFrame&&(I.frame=I.view.requestAnimationFrame(u)))},[Q,je]),oe=ee((I,w,u)=>{Re(I,jd(I.state,w),u)},[Re]),ue=ee(()=>{let I=l.current;I!==null&&(I.frame=0,oe(I,Kb,ue))},[oe]),Ge=ee(()=>{let I=l.current;I!==null&&oe(I,zb,ue)},[oe,ue]),Ye=ee(()=>{let I=l.current;I!==null&&oe(I,$b,ue)},[oe,ue]),bt=ee((I,w,u)=>{T(V.current);let{state:y,effects:_}=$d(Je[I]),x={state:y,origin:w,view:u,frame:0};l.current=x,Re(x,_,ue)},[Re,ue]);Kt(()=>()=>{let I=l.current;l.current=null,I!==null&&I.frame!==0&&I.view.cancelAnimationFrame(I.frame)},[]);let yt=ee(I=>{let w=l.current,u=w!==null&&I.repeat?Xa(I,p.current):null;if(w!==null&&u!==null&&u!=="exitBefore"&&u!=="exitAfter"&&Je[u].axis===w.state.axis){I.preventDefault(),oe(w,jb[u],ue);return}let{items:y,onSelect:_,rowSizing:x,rowActivation:L}=p.current,k=n.current,v=_===null?null:wd(po(I),k,{rowActivation:L});if(c.cancelFocusRequest(),Ge(),v===null||k===null)return;if(v==="exitBefore"||v==="exitAfter"){let z=Ll(k,v==="exitBefore"?"before":"after");if(z===null)return;I.preventDefault(),z.focus();return}let A=Ne(k),N=xr(Et(A!==null&&k.contains(A)?A:I.target,k),y);if(N!==null){if(v!=="activate"){let z=a.current;if(z===null||$r(z,N.index,y.length,x)===null)return}if(I.preventDefault(),I.repeat){bt(v,N,Ae(k));return}v==="activate"?_e(N):re(v,1,N)}},[c,n,a,ue,oe,Ge,bt,_e,re]),Rt=ee(()=>{Ge()},[Ge]),Qe=ee(I=>{let w=n.current,u=I.target,y=Et(u,w);if(K({kind:"focusIn",row:y===null?null:qb(y)}),c.isMovingFocus())return;let _=a.current;if(w===null||_===null||!ge(u)||!Ao(u))return;let x=y===null?null:y.closest('[role="list"]');if(y===null||x===null)return;let L=x.getBoundingClientRect(),k=y.getBoundingClientRect(),v=k.height<=L.height?k:Yb(u.getBoundingClientRect(),ht),A=Bd(v,L),N=_.getViewportSize();A===0||!(N>0&&L.height>0)||i.by(A*N/L.height)},[c,n,a,i,K]),qe=ee(I=>{let w=n.current,u=I.relatedTarget,y=ge(u)?w?.contains(u)?"view":"outside":"nowhere";y!=="view"&&Ye(),K({kind:"focusOut",to:y})},[n,Ye,K]),Ve=ee(()=>{c.cancelFocusRequest(),Ye()},[c,Ye]),Xe=ee(I=>{b.current={visibleStartIndex:I.visibleStartIndex,visibleEndIndex:I.visibleEndIndex},P.current=null,se()},[se]),Le=Gd(()=>({onKeyDown:yt,onKeyUp:Rt,onPointerDownCapture:Ve,onWheelCapture:Ve,onTouchStartCapture:Ve,onFocus:Qe,onBlur:qe}),[yt,Rt,Ve,Qe,qe]);return{cursor:c,containerProps:Le,handleRangeChange:Xe,selection:M,settledSelection:g===null?M:g,resolveSelectedIndex:G,rememberSelection:H,focusAfterRemoval:ye}};import{jsx as ti}from"react/jsx-runtime";var Zb=R(St,ln,dn,sn,"h-full"),Jb="h-full w-full",Jd=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:d}=Lo(a,e),m=Xd(dt),c=Xd(lt),p=wo(a,e,m),b=Zd(null),S=Zd(null),f=Xb(E=>(b.current=E,a.registerFocusTarget(e,E),()=>{b.current=null,a.unregisterFocusTarget(e,E)}),[a,e]);return ei(()=>{let E=b.current,h=E===null||!p?null:E.firstElementChild,l=h instanceof HTMLElement?h:null,g=S.current;g!==null&&g.body===l||(g!==null&&g.stop(),S.current=l===null?null:{body:l,stop:o(l)})}),ei(()=>()=>{S.current?.stop(),S.current=null},[]),ei(()=>{a.restoreFocus(e)},[a,e,n]),ti(Pr.Provider,{value:d,children:ti("div",{ref:f,className:Zb,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":m+1,"aria-setsize":c,"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:ti("div",{...Pe,className:Jb})})})};import{jsx as j,jsxs as ve}from"react/jsx-runtime";var ty=R("flex w-full flex-col",tt,mn,yr),ry=R(tt,yr),ny=R("rounded-2xl",yr),oy=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",yr),Ie="bg-slate-200 dark:bg-slate-700",ay=(e,t)=>{let r=le(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},iy=()=>ve("div",{...Pe,className:ry,children:[ve("div",{className:"mb-4 flex flex-wrap gap-2",children:[j("div",{className:R("h-6 w-20 rounded-full",Ie)}),j("div",{className:R("h-6 w-24 rounded-full",Ie)}),j("div",{className:R("h-6 w-24 rounded-full",Ie)}),j("div",{className:R("h-6 w-28 rounded-full",Ie)})]}),ve("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"space-y-4",children:[j("div",{className:R("h-5 w-40 rounded",Ie)}),j("div",{className:R("h-5 w-56 rounded",Ie)}),j("div",{className:R("h-24 rounded-xl",Ie)})]}),ve("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[j("div",{className:R("mb-2 h-4 w-24 rounded",Ie)}),j("div",{className:R("mb-2 h-4 w-28 rounded",Ie)}),j("div",{className:R("h-4 w-32 rounded",Ie)})]})]}),ve("div",{className:"space-y-4",children:[j("div",{className:R("h-4 w-24 rounded",Ie)}),ve("div",{className:"flex flex-wrap gap-2",children:[j("div",{className:R("h-6 w-16 rounded-full",Ie)}),j("div",{className:R("h-6 w-16 rounded-full",Ie)}),j("div",{className:R("h-6 w-16 rounded-full",Ie)})]}),ve("div",{className:"space-y-2",children:[j("div",{className:R("h-16 rounded-xl",Ie)}),j("div",{className:R("h-16 rounded-xl",Ie)})]})]})]}),sy=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:d}=Ft(e.reportHubId,e.businessDate),{removeStaleItem:m}=Te(),{draftLabelName:c,sourceTypeConfigs:p}=B(),b=Tt(),S=to(e.reportHubId),f=S==="editing"||S==="automatic",E=ri(!1),h=ri(!1),l=ri(!1);Qd(()=>{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(re=>re.name===c),T=n&&a?.userId===n,C=No(()=>a===null?void 0:()=>{E.current=!0,b.open(e.reportHubId,rr(a),!1)},[b,e.reportHubId,a]),P=sr(()=>{h.current=!0,b.dismiss(e.reportHubId)},[b,e.reportHubId]),O=sr(()=>{h.current=!0,b.discard(e.reportHubId)},[b,e.reportHubId]),W=sr(re=>{re===null||!E.current||(E.current=!1,re.focus())},[]),M=sr(re=>{re===null||!h.current||(h.current=!1,re.focus())},[]);ey(()=>{f||(h.current=!1)},[f]),Qd(()=>{a!==null&&(T&&g&&S==="display"?b.open(e.reportHubId,rr(a),!0):!g&&S==="automatic"&&b.discard(e.reportHubId))},[a,T,g,S,b,e.reportHubId]);let V=sr(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),G=Qb(),H=No(()=>({heading:`${G}-heading`,state:`${G}-state`,attachments:`${G}-attachments`,source:`${G}-source`}),[G]),J=a!==null&&a.attachments.length>0,F=a===null?void 0:kt(a.sourceType,p),se=[H.state,...J?[H.attachments]:[],...F!==void 0?[H.source]:[]].join(" "),q=!i&&a!==null&&!f?{kind:"card",ids:H,describedBy:se}:{kind:"label",label:ie(e.businessDate)},K=!i&&a===null&&s,ye=i?"error":a===null?s?"loading":"missing":f?"editing":"resolved";return j(Jd,{itemId:e.reportHubId,name:q,isBusy:K,bodyKind:ye,observeRowHeight:t,cursor:o,children:i?j(ly,{itemId:e.reportHubId}):a?f?j("div",{...Pe,className:ny,children:j(ho,{report:a,onCancel:P,onPublishSuccess:O,titleInputRef:W})}):j(rc,{item:e,report:a,sourceConfig:F,textIds:H,onCommentAdded:r,userId:n,onEdit:T?C:void 0,editButtonRef:M,onCommentSectionRemoved:V}):j(iy,{})})},tc=ec(sy),rc=ec(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:d})=>{let{toggleStar:m,toggleRead:c,pendingStarUpdates:p,pendingReadUpdates:b,deleteReport:S}=Te(),{labels:f,headingLevel:E}=B(),h=xt[E],l=In(t.sourceType,r),g=sr(()=>o?.(e.reportHubId),[o,e.reportHubId]),T=p.current.get(t.reportHubId),C=T===void 0?t.isStarred:T,P=b.current.get(t.reportHubId),O=P===void 0?t.isRead:P,W=!!(a&&t.userId===a),M=async()=>{try{await c(t.reportHubId,!O,t.date)}catch{}},V=async()=>{try{await m(t.reportHubId,!C,t.date)}catch{}},G=async()=>{confirm(f.confirmDelete)&&await S(t.reportHubId,t.date)},H=No(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
|
|
4
|
-
`).trim():"",[t.content]),J=No(()=>{let F=t.visitTimeFrom?.trim(),se=t.visitTimeTo?.trim();return F&&se?`${F} - ${se}`:F||se||null},[t.visitTimeFrom,t.visitTimeTo]);return ve("div",{...Pe,onDoubleClick:i,className:ty,children:[j(He,{level:E,id:n.heading,className:"sr-only",children:`${ie(t.date)} ${le(t.employeeName)} ${le(t.subject)}`}),j("span",{id:n.state,className:"sr-only",children:f.rowState({isRead:O,isStarred:C})}),ve("div",{className:"flex flex-col gap-4",children:[j(Id,{report:t,sourceConfig:r,isRead:O,isStarred:C,isMine:W,onToggleRead:M,onToggleStar:V,onEdit:i,editButtonRef:s,onDelete:G,visitTimeDisplay:J,markerIds:n,labels:f}),ve("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"flex flex-col gap-4",children:[ve("div",{className:"grid gap-4 sm:grid-cols-2",children:[ve("div",{className:"flex flex-col gap-1",children:[j(He,{level:h,className:it,children:f.customer}),j("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:le(t.customerName)})]}),ve("div",{className:"flex flex-col gap-1",children:[j(He,{level:h,className:it,children:f.subject}),j("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(t.subject)})]})]}),H&&ve("div",{className:"flex flex-col gap-2",children:[j(He,{level:h,className:it,children:f.content}),j("div",{className:R("whitespace-pre-wrap",un),children:H})]}),t.interviewers.length>0&&ve("div",{className:"flex flex-col gap-2",children:[j(He,{level:h,className:it,children:f.interviewers}),j("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(F=>j("li",{className:R(Ce,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:ay(F,f)},JSON.stringify([F.name,F.affiliation])))})]}),j(mo,{attachments:t.attachments}),j(Wr,{report:t,userId:a,canComment:l,onCommentAdded:g,onSectionRemoved:d,formPlacement:"after-section"})]}),j(Sd,{report:t,visitTimeDisplay:J,labels:f})]})]})]})});rc.displayName="DailyReportResolvedItem";var ly=({itemId:e})=>{let{labels:t}=B();return j("div",{...Pe,className:oy,children:j("p",{children:t.reportLoadFailed(e)})})};import{useCallback as lc,useId as yy,useMemo as dc,useRef as Ry}from"react";import{useCallback as nc,useLayoutEffect as oc,useMemo as ac,useRef as ni}from"react";var dy=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},cy=(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}},uy=(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}},my=(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"?cy(e.index,a,n.rowHeight,r.length):uy(e.index,a,_o(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:jr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},py=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=ce(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},ic=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=ni(null),a=ni(e),i=ni(r),s=nc(()=>{let c=t.current,p=c===null?-1:c.getScrollPosition(),b=c===null||!(p>0)?null:c.getScrollAnchor(),S=a.current,f=b===null?void 0:S[b.index],E=c===null?0:c.getViewportSize();o.current=b===null||f===void 0||!(E>0)?null:{reportHubId:f.reportHubId,index:b.index,offsetPx:b.offsetPx,lastVisibleIndex:jr(b,E,S.length,i.current),recordedAt:p}},[t]),d=ac(()=>({toIndex:(c,p)=>{let b=t.current;b!==null&&(b.scrollToIndex(c,p),s())},by:c=>{let p=t.current;p!==null&&(p.scrollBy(c),s())},resizeRow:(c,p)=>{let b=t.current;b!==null&&(b.updateItemSize(c,p),s())}}),[t,s]);oc(()=>{let c=a.current;a.current=e;let p=o.current,b=t.current;if(c===e||p===null||b===null||n())return;let S=my(p,b.getScrollPosition(),c,i.current,b.getViewportSize());if(S===null){o.current=null;return}let f=ce(e,S.reportHubId,S.index),E=f===-1?py(c,e,S):f;if(E===-1){o.current=null;return}if(E===S.index&&!dy(c,e,S.index,S.lastVisibleIndex)){o.current=S;return}b.scrollToIndex(E,{align:"top",offset:-S.offsetPx}),o.current={reportHubId:e[E].reportHubId,index:E,offsetPx:S.offsetPx,lastVisibleIndex:jr({index:E,offsetPx:S.offsetPx},b.getViewportSize(),e.length,r),recordedAt:b.getScrollPosition()}},[e,t,r,n]),oc(()=>{i.current=r},[r]);let m=nc(c=>{if(c.cause!=="clamp"){s();return}let p=o.current;p!==null&&(o.current={...p,recordedAt:p.recordedAt+c.delta})},[s]);return ac(()=>({handleRangeChange:s,handleScrollAdjust:m,scroller:d}),[s,m,d])};import{useCallback as fy}from"react";var by=20,sc=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>fy(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=by)=>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 gy}from"react/jsx-runtime";var Oo=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=Ry(null),s=lc(C=>(i.current=C,()=>{i.current=null}),[]),{handleRangeChange:d,handleScrollAdjust:m,scroller:c}=ic({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:p,...b}=qd({...a,containerRef:e,handleRef:i,scroller:c}),S=sc({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:c,itemsRef:r}),{labels:f}=B(),E=yy(),h=a.onSelect!==null,l=lc(C=>{p(C),d(),o(C)},[p,d,o]),g=dc(()=>({role:"list","aria-label":f.title,"aria-describedby":h?E:void 0}),[f.title,h,E]),T=dc(()=>h?gy("span",{id:E,className:"sr-only",children:f.listKeyboardHelp}):null,[h,E,f.listKeyboardHelp]);return{...b,handleRangeChange:l,handleScrollAdjust:m,attachVirtualScroll:s,handleRef:i,scroller:c,attachScrollContainer:S,contentProps:g,keyboardHelp:T}};import{Fragment as Ay,jsx as mt,jsxs as Cy}from"react/jsx-runtime";var uc={pointerDragInputs:wn,wheelSpeedMultiplier:xn,inertiaOptions:Jt(!1),enableKeyboardNavigation:!1},vy={...uc,inertiaOptions:Jt(!0)},cc="daily-report-detail-list",Ey=R("relative w-full",Rn,bn),Ty=R(We,"relative"),Iy=300,ai=e=>{let t=Oe(null),[r,n]=Mo(null),o=Bn(t),a=Qt(r),i=xe(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return mt("div",{ref:i,className:pn,children:mt("div",{className:fn,children:o===null?null:mt(xy,{...e,viewportHeight:o,reducedMotion:a})})})},xy=({dailyReportItems:e,rowSetSize:t,userId:r,selectedItemId:n,onSelectItem:o,scrollRestoreRef:a,viewportHeight:i,reducedMotion:s})=>{let[{initialScrollAnchor:d,restored:m}]=Mo(()=>{let v=a?.current;if(!v||v.anchorReportHubId!==(n??null))return{initialScrollAnchor:void 0,restored:!1};if(!v.topItem)return{initialScrollAnchor:void 0,restored:!0};let A=e.findIndex(N=>N.reportHubId===v.topItem?.reportHubId);return A!==-1?{initialScrollAnchor:{index:A,offsetPx:v.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:v.topItem.index,offsetPx:0},restored:!0}}),c=Oe(m),p=Oe(n??null),b=Oe(a?.current.measuredHeights??new Map),S=Oe(null),f=kn(),E=pa(),[h]=Mo(Vn),l=Oe(null),g=Oe(null),T=Oe(e),C=Oe(o);Sy(()=>{T.current=e,C.current=o},[e,o]);let P=Oe(null),[O,W]=Mo(0),M=Oe(null),V=e.length,G=t===void 0?V:t,H=xe(v=>v>=V?An:e[v],[e,V]),J=xe(v=>{let A=b.current.get(H(v).reportHubId);return A===void 0?ss:A},[H]),F=xe(v=>H(v).reportHubId,[H]),se=oi(()=>({kind:"measured",heightOf:J}),[J]),q=xe((v,A)=>{P.current={reportHubId:v,index:A},W(N=>N+1),C.current?.(v)},[]),K=xe((v,A)=>{if(V===0)return;let N=Math.max(0,v),z=Math.min(V-1,A);if(N>z)return;let me=new Set;for(let Ze=N;Ze<=z;Ze++){let et=H(Ze);if(et.businessDate&&me.add(et.businessDate),me.size>=os)break}me.forEach(Ze=>{E(Ze)})},[H,V,E]),ye=xe(v=>{if(V===0)return;let{renderingStartIndex:A,renderingEndIndex:N,visibleStartIndex:z}=v,me=H(z);me.businessDate&&h.setLabel(ie(me.businessDate)),K(A,N),K(N+1,N+Cn),K(A-Cn,A-1)},[H,V,K,h]),re=xe(()=>M.current!==null,[]),{cursor:_e,containerProps:Me,handleRangeChange:Q,handleScrollAdjust:je,attachVirtualScroll:Re,handleRef:oe,scroller:ue,attachScrollContainer:Ge,contentProps:Ye,keyboardHelp:bt,resolveSelectedIndex:yt,rememberSelection:Rt}=Oo({items:e,selectedId:n??null,onSelect:o===void 0?null:q,containerRef:S,rootRef:S,testId:cc,itemsRef:T,rowSizing:se,arrowAlign:"top",rowActivation:!0,isViewRevealPending:re,onRangeChange:ye}),Qe=xe((v,A)=>{if(oe.current===null)return!1;let N=T.current,z=A!==null&&A.reportHubId===v?ce(N,v,A.index):yt(N,v);return z===-1?!1:(c.current&&(c.current=!1,v===p.current)||A!==null&&A.reportHubId===v&&A.index===z||ue.toIndex(z,{align:"top"}),!0)},[oe,yt,ue]);wt(()=>{let v=P.current;P.current=null,M.current=null,n!=null&&(Qe(n,v)||(M.current=n))},[n,Qe]),wt(()=>{let v=M.current;v!==null&&Qe(v,null)&&(M.current=null)},[e,Qe]),wt(()=>{let v=a?.current;v&&(v.anchorReportHubId=n??null)},[n,a]),wt(()=>{P.current=null},[O]);let qe=Oe(null),Ve=xe(()=>{oe.current&&(qe.current=oe.current);let v=a?.current,A=qe.current;if(v&&A){let z=A.getScrollAnchor(),me=z?T.current[z.index]:void 0;z&&me&&(v.topItem={reportHubId:me.reportHubId,index:z.index,offsetPx:z.offsetPx})}let N=S.current;N&&(N.toggleAttribute(jt,!0),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{N.toggleAttribute(jt,!1),g.current=null},150))},[oe,a]),Xe=xe(v=>mt(Wn,{...v,store:h}),[h]);wt(()=>{let v=S.current;if(!v)return;let A=()=>{h.setWheelScrollActive(!0),l.current&&clearTimeout(l.current),l.current=window.setTimeout(()=>{h.setWheelScrollActive(!1),l.current=null},Dn)};return v.addEventListener("wheel",A,{passive:!0}),()=>{v.removeEventListener("wheel",A),l.current&&clearTimeout(l.current)}},[h]);let Le=Oe(null),I=xe(v=>{for(let A of v){let N=A.target.parentElement,z=N===null?null:Bt(N),me=N===null?null:Zt(N),Ze=A.borderBoxSize[0];if(z===null||me===null||Ze===void 0)continue;let et=Ze.blockSize+2*ht;if(b.current.get(z)===et)continue;let an=ce(T.current,z,me-1);an!==-1&&(b.current.set(z,et),ue.resizeRow(an,et))}},[ue]),w=xe(v=>{Le.current===null&&(Le.current=new ResizeObserver(I));let A=Le.current;return A.observe(v),()=>A.unobserve(v)},[I]);wt(()=>()=>{Le.current?.disconnect(),Le.current=null},[]),wt(()=>{V!==0&&K(0,Math.min(V-1,Cn))},[V,K]);let u=Oe(null),y=xe(v=>{let A=ce(T.current,v,null);A!==-1&&(u.current!==null&&clearTimeout(u.current),u.current=setTimeout(()=>{u.current=null;let N=ce(T.current,v,A);N!==-1&&ue.toIndex(N,{align:"bottom"})},Iy))},[ue]);wt(()=>()=>{u.current!==null&&clearTimeout(u.current)},[]);let _=xe(v=>{if(!C.current)return;let A=Et(v.target,S.current);if(A===null||ws(v.target,A))return;let N=xr(A,T.current);N!==null&&(Rt(N.reportHubId,N.index),q(N.reportHubId,N.index))},[q,Rt]),x=xe((v,A)=>mt(dt.Provider,{value:A,children:mt(tc,{item:v,observeRowHeight:w,onCommentAdded:y,userId:r,cursor:_e})},v.reportHubId),[w,y,r,_e]),L=oi(()=>({...Ln,renderThumbOverlay:Xe}),[Xe]),k=oi(()=>mt(lt.Provider,{value:G,children:mt(hy,{ref:Re,itemCount:V,getItem:H,getItemKey:F,getItemHeight:J,viewportSize:i,initialScrollAnchor:d,overscanCount:_n,scrollBarOptions:L,behaviorOptions:s?vy:uc,onRangeChange:Q,onScrollAdjust:je,onScroll:Ve,testId:cc,className:Ey,locale:f.locale,labels:f.labels,contentProps:Ye,children:x})}),[Re,G,V,H,F,J,i,s,d,L,Q,je,Ve,f.locale,f.labels,Ye,x]);return mt(Ay,{children:Cy("div",{ref:Ge,className:Ty,...Me,onClick:_,children:[bt,k]})})};import pc from"lucide-react/dist/esm/icons/refresh-cw.js";import{jsx as mc,jsxs as Dy}from"react/jsx-runtime";var qr=e=>10**String(e).length-1,Po=({text:e,widestText:t,ref:r})=>Dy("span",{ref:r,className:Pi,children:[mc("span",{"aria-hidden":"true",className:ki,children:t}),mc("span",{className:Hi,children:e})]});import{jsx as lr,jsxs as ko}from"react/jsx-runtime";var _y=(e,t,r)=>{if(r===null||r===0)return{text:e.streamProgressCount(t),widestText:e.streamProgressCount(qr(t))};let n=qr(Math.max(t,r));return{text:e.streamProgressRatio(t,r,Math.min(100,Math.round(t/r*100))),widestText:e.streamProgressRatio(n,n,100)}},Ly=({loadedCount:e,totalCount:t})=>{let{labels:r}=B(),{text:n,widestText:o}=_y(r,e,t);return ko("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:R(Ce,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[lr("span",{"aria-hidden":"true",className:"size-2 rounded-full bg-blue-500 motion-safe:animate-pulse dark:bg-blue-400"}),lr(Po,{text:n,widestText:o})]})},Xr=()=>{let e=Xs(),{labels:t}=B();return e.phase==="streaming"?lr(Ly,{loadedCount:e.loadedCount,totalCount:e.totalCount}):e.phase==="retrying"?ko("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:R(Ce,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[lr(pc,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?ko("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:R(Ce,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,lr("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>qn(),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?ko("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:[lr(pc,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as Vc,PanelGroup as XR,PanelResizeHandle as ZR}from"@aiquants/resize-panels";import{VirtualScroll as JR}from"@aiquants/virtualscroll";import{useCallback as at,useEffect as Wo,useLayoutEffect as mi,useMemo as Ko,useRef as br,useState as $o}from"react";import{useSyncExternalStore as wy}from"react";var fc="(max-width: 639px)",Ny=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(fc);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},Oy=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(fc).matches:!1,My=()=>!1,bc=()=>wy(Ny,Oy,My);import{SwipeCloseGuardContext as oR,useOverlayEscapeStack as aR,useSwipeGuardState as iR,useSwipeToDismissOverlay as sR,useTapClick as lR,useTransitionDisplay as dR}from"@aiquants/swipe-overlay";import{useCallback as Bo,useEffect as ur,useId as ci,useLayoutEffect as _c,useRef as ot,useState as Uo}from"react";import{createContext as Py,useMemo as ky}from"react";var yc=Object.freeze({id:null,indexHint:null}),Ho=Py(Object.freeze({selected:yc,settled:yc})),Zr=(e,t)=>{let{id:r,indexHint:n}=t;return ky(()=>{if(r===null)return null;let o=ce(e,r,n);return o===-1?null:e[o]},[e,r,n])};import Hy from"lucide-react/dist/esm/icons/check.js";import Fy from"lucide-react/dist/esm/icons/pencil.js";import By from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Uy,useCallback as zt,useContext as Vy,useDeferredValue as Wy,useEffect as ii,useId as vc,useLayoutEffect as si,useMemo as xc,useRef as rn,useState as Ec}from"react";import*as pt from"@radix-ui/react-tabs";import*as Ue from"react";import{jsx as Jr}from"react/jsx-runtime";var Rc=Ue.createContext(null),gc=e=>{let t=Ue.useContext(Rc);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},hc=(e,t)=>`${e}-trigger-${t}`,Sc=(e,t)=>`${e}-panel-${t}`,Qr=Ue.forwardRef(({value:e,children:t,...r},n)=>{let o=Ue.useId(),a=Ue.useMemo(()=>({baseId:o,value:e}),[o,e]);return Jr(pt.Root,{ref:n,value:e,...r,children:Jr(Rc,{value:a,children:t})})});Qr.displayName=pt.Root.displayName;var en=Ue.forwardRef(({className:e,...t},r)=>Jr(pt.List,{ref:r,className:R("inline-flex",e),...t}));en.displayName=pt.List.displayName;var tn=Ue.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=gc("TabsTrigger");return Jr(pt.Trigger,{ref:n,value:t,...r,id:hc(o,t),"aria-controls":Sc(o,t),className:R(`${Oi} ${X}`,e)})});tn.displayName=pt.Trigger.displayName;var dr=Ue.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=gc("TabsContent"),s=t===i;return Jr("div",{ref:o,role:"tabpanel",id:Sc(a,t),"aria-labelledby":hc(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})});dr.displayName="TabsContent";import{Fragment as nR,jsx as U,jsxs as nt}from"react/jsx-runtime";var Cc=R(Nt,"w-24 shrink-0"),Tc={field:"flex items-baseline",label:Cc,value:"flex-1"},Ky={field:"flex min-w-0 flex-1 items-baseline",label:Cc,value:"wrap-break-word min-w-0 flex-1"},zy={field:"flex flex-col gap-1",label:Nt,value:""},$y={field:"flex items-center gap-1",label:Nt,value:""},Ic=R("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",qo,hi,gi),jy=R("flex flex-col gap-1",Xo),Gy=R("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",X),Yy=500,li=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)})}},qy=(e,t,r,n,o,a)=>{let i=rn(null),s=e?.reportHubId;si(()=>{i.current=null},[s]),ii(()=>{n||(i.current=null)},[n]);let d=zt(async(m,c)=>{c||(i.current=m.reportHubId);try{await a(m.reportHubId,!m.isRead,m.date)}catch{}},[a]);return ii(()=>{if(!(r&&e&&!e.isRead&&!t)||i.current===e.reportHubId)return;let m=null,c=()=>{m!==null&&clearTimeout(m),m=o.isDwelling()?setTimeout(()=>d(e,!0),Yy):null};c();let p=o.subscribe(c);return()=>{p(),m!==null&&clearTimeout(m)}},[e,t,r,d,o]),{handleToggleRead:d}},di="article",Xy=["article","relations"],Zy=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},Jy=R("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",tt),Qy=9,eR=.875,tR=16,Ac=4*Math.ceil((2*ht+2*cn+2*Ei+Qy*eR*tR)/4),Dc=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=B(),a=vc(),i=vc(),[s,d]=Ec(di),{selected:m,settled:c}=Vy(Ho),p=Zr(e,m),b=Zr(e,Wy(c)),S=p===null?null:p.reportHubId,E=(b===null?null:b.reportHubId)===S,[h]=Ec(()=>li(E));return si(()=>{h.set(E)},[h,E]),U("aside",{"data-testid":"daily-report-side-pane","data-report-id":p?.reportHubId,"data-displayed-report-id":b?.reportHubId,"aria-busy":E?void 0:!0,className:Jy,children:b===null?U("div",{className:R("flex h-full flex-1 items-center justify-center text-center",Gt),children:U("p",{className:yn,children:o.selectPrompt})}):U(Fo,{item:b,headingId:a,authorId:i,activeTab:s,onActiveTabChange:d,autoMarkRead:t,isActive:!0,dwell:h,userId:r,onReportDeleted:n},b.reportHubId)})},Fo=Uy(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:d,onReportDeleted:m})=>{let{draftLabelName:c,labels:p,sourceTypeConfigs:b,headingLevel:S}=B(),{report:f,error:E,isLoading:h}=Ft(e.reportHubId,e.businessDate),l=Tt(),g=to(e.reportHubId),T=g==="editing"||g==="automatic",C=rn(null),P=rn(null),O=rn(!1),W=rn(!1),M=!!(d&&f?.userId===d),V=f?.labels.some(Q=>Q.name===c);ii(()=>{f!==null&&(M&&V&&g==="display"?l.open(e.reportHubId,rr(f),!0):!V&&g==="automatic"&&l.discard(e.reportHubId))},[f,M,V,g,l,e.reportHubId]);let G=xc(()=>f===null?void 0:()=>{O.current=!0,l.open(e.reportHubId,rr(f),!1)},[l,e.reportHubId,f]),H=zt(()=>{W.current=!0,l.dismiss(e.reportHubId)},[l,e.reportHubId]),J=zt(()=>{W.current=!0,l.discard(e.reportHubId)},[l,e.reportHubId]),F=zt(Q=>{Q===null||!O.current||(O.current=!1,Q.focus())},[]),se=zt(Q=>{Q===null||!W.current||(W.current=!1,Q.focus())},[]),q=zt(()=>{P.current?.focus({preventScroll:!0})},[]);si(()=>{T||!W.current||(W.current=!1,P.current?.focus())},[T]);let K=zt(()=>{setTimeout(()=>{let Q=C.current;Q!==null&&Q.scrollTo({top:Q.scrollHeight,behavior:ks(Q)})},100)},[]),ye=ie(e.businessDate),re=f===null?null:le(f.employeeName),_e=h||!f,Me=f===null?void 0:kt(f.sourceType,b);return nt(nR,{children:[nt("div",{className:jy,children:[U("dl",{className:"m-0",children:U(de,{label:p.businessDate,classNames:zy,children:U(He,{ref:P,level:S,id:t,tabIndex:-1,className:Gy,children:ye})})}),nt("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[U("dl",{className:"m-0",children:U(de,{label:p.author,classNames:$y,valueId:r,children:_e?U("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):re})}),Me?U(or,{config:Me,className:"ml-2"}):null]})]}),nt(Qr,{value:n,onValueChange:Q=>o(Zy(Q)),className:"flex min-h-0 flex-1 flex-col",children:[U("div",{className:Xo,children:U(en,{"aria-label":p.reportTabList,className:R(wi,"grid grid-cols-2 gap-1"),children:Xy.map(Q=>U(tn,{value:Q,children:Q==="article"?p.tabArticle:p.tabRelations},Q))})}),U(dr,{ref:C,value:"article",className:Ic,children:T?f?U(ho,{report:f,onCancel:H,onPublishSuccess:J,titleInputRef:F}):U("p",{className:Gt,children:p.loading}):U(rR,{report:f,sourceConfig:Me,isLoading:h,error:E,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:K,userId:d,onEdit:M?G:void 0,editButtonRef:se,onReportDeleted:m,onCommentSectionRemoved:q})}),U(dr,{value:"relations",className:Ic,children:U("p",{className:Gt,children:p.relationsEmpty})})]})]})});Fo.displayName="DailyReportSidePaneContent";var cr=({className:e="w-32"})=>U("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),rR=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:d,userId:m,onEdit:c,editButtonRef:p,onReportDeleted:b,onCommentSectionRemoved:S})=>{let{toggleStar:f,toggleRead:E,deleteReport:h}=Te(),{labels:l,headingLevel:g}=B(),T=xt[g],{handleToggleRead:C}=qy(e,r,a,i,s,E),P=e!==null&&In(e.sourceType,t),O=xc(()=>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 $m=50,jm=32,il=0,Gm=()=>(il+=1,il),Ym=1e3,qm=3e4,Xm=6,Zm=3e4,Xn=Symbol("read-stall"),Qm="/daily_report/api",Lr=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=_r();this.apiBasePath=t.apiBasePath??Qm,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??Zm,this.publishCoalesceMs=t.publishCoalesceMs??$m,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>=Xm){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(Ym*2**(this.consecutiveFailures-1),qm))}}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(Xn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Xn)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=al(),d=!1,m=!1;for(;;){let u=await this.readWithStallGuard(i);if(u===Xn)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),p=!1;for(let R of f){if(R.trim()==="")continue;let y;try{y=JSON.parse(R)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let T=os(y);if(T==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(T==="error"){d=!0;continue}let h=y;p=this.absorbChunkLine(h)||p,typeof h.total=="number"&&Number.isFinite(h.total)&&h.total!==this.state.totalCount&&this.publish({totalCount:h.total}),h.nextCursor&&(h.nextCursor.businessDate===null||is(h.nextCursor.businessDate))&&(this.lastCursor=h.nextCursor),h.isLast&&(m=!0)}if(p&&(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(Xn),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"&&Cn(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=Gm(),r=this.pendingItemsChange.build(this.state.itemsRevision,t);return this.pendingItemsChange=_r(),{loadedCount:this.itemMap.size,itemsRevision:t,itemsChanges:[...this.state.itemsChanges.slice(1-jm),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=nl({cursor:this.lastCursor,snapshot:this.lastCursor===null?null:this.lastSnapshot,forceRefresh:t}).toString();return`${this.apiBasePath}/${Tn}${r?`?${r}`:""}`}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 rp=6e4,ee=null,sl=!1,wr=new Set,Zn={loadedCount:0,itemsRevision:0,itemsChanges:[],totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},La=()=>{for(let e of wr)e()},wa=()=>{ee&&(ee.unsubscribe(),ee.client.dispose(),ee=null,La())},Nr=e=>{if(typeof window>"u")return;let t=e.apiBasePath??Tr.apiBasePath;if(ee&&(ee.userKey!==e.userKey||ee.apiBasePath!==t)&&(ee.userKey!==e.userKey&&Ir(),wa()),!ee){let r=new Lr({apiBasePath:t});ee={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(La)},np(),r.start(),La();return}Jn(ee)},Jn=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>rp&&e.client.refresh()},np=()=>{if(sl||typeof document>"u"||typeof window>"u")return;sl=!0;let e=()=>{ee&&Jn(ee)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Na=e=>{if(!(typeof window>"u")){if(!ee){Nr(e);return}if(ee.userKey!==e.userKey){Ir(),wa(),Nr(e);return}Jn(ee)}},Oa=()=>{typeof window>"u"||!ee||Jn(ee)},Mr=e=>{ee?.client.applyExternalUpsert(e)},eo=e=>{ee?.client.applyExternalRemoval(e)},dl=e=>ee===null?!1:ee.client.has(e),op=()=>ee===null?[]:ee.client.readItems(),Ma=()=>ee===null?0:ee.client.getState().itemsRevision,to=()=>{ee?.client.retry()},ro=()=>{ee?.client.resync()},Pa=(e={})=>{ee?.client.refresh(e)},cl=()=>ee?.userKey,Pr=e=>(wr.add(e),()=>wr.delete(e)),Qn=()=>ee?.client.getState()??Zn,ap=()=>Zn,ip=()=>Or(Pr,Qn,ap),no=(e,t)=>{let r=Zn,n=e(Zn);return()=>{let o=Qn();if(o===r)return n;let a=e(o);return r=o,t(n,a)||(n=a),n}},ul=no(({phase:e,isRevalidating:t,error:r,streamAnchor:n,loadedCount:o})=>({phase:e,isRevalidating:t,error:r,streamAnchor:n,hasItems:o>0}),(e,t)=>e.phase===t.phase&&e.isRevalidating===t.isRevalidating&&e.error===t.error&&e.streamAnchor===t.streamAnchor&&e.hasItems===t.hasItems),sp=ul(),oo=()=>Or(Pr,ul,()=>sp),ml=no(({phase:e,isRevalidating:t,loadedCount:r,totalCount:n})=>({phase:e,isRevalidating:t,loadedCount:r,totalCount:n}),(e,t)=>e.phase===t.phase&&e.isRevalidating===t.isRevalidating&&e.loadedCount===t.loadedCount&&e.totalCount===t.totalCount),lp=ml(),pl=()=>Or(Pr,ml,()=>lp),fl=no(({phase:e,loadedCount:t})=>({phase:e,hasItems:t>0,retryingCount:e==="retrying"?t:null}),(e,t)=>e.phase===t.phase&&e.hasItems===t.hasItems&&e.retryingCount===t.retryingCount),dp=fl(),yl=()=>Or(Pr,fl,()=>dp),bl=no(({phase:e,totalCount:t})=>({phase:e,totalCount:t}),(e,t)=>e.phase===t.phase&&e.totalCount===t.totalCount),cp=bl(),Rl=()=>Or(Pr,bl,()=>cp),gl=e=>e.phase==="complete"&&!e.isRevalidating,ll=e=>`${e.itemsRevision}:${gl(e)}`,hl=()=>{let[,e]=tp(0),t=Qn(),r=ll(t);return ep(()=>{let n=r,o=()=>{let a=ll(Qn());a!==n&&(n=a,Jm(()=>e(i=>i+1)))};return wr.add(o),o(),()=>{wr.delete(o)}},[]),{itemsRevision:t.itemsRevision,itemsChanges:t.itemsChanges,readItems:op,settled:gl(t)}};import.meta.hot?.dispose(wa);var zt=Jt(1,"daily-report-sse-connection"),fp=Object.freeze({kind:"resyncing"}),Sl={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},yp=1,El=da*3,bp=El+da,Ha=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=k(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=oo(),[d,m]=pp({generation:0,minAnchorRevision:1,anchored:!1}),u=d.generation>0&&!d.anchored,f=u&&a==="complete"&&!i?s:null,p=io(0),R=io(null),y=io(n);y.current=n;let T=io(0);T.current=o===null?0:o.revision,ka(()=>{d.anchored||o===null||o.revision<d.minAnchorRevision||(R.current=o.lastEventId,p.current=0,m({...d,anchored:!0}))},[d,o]),ka(()=>{if(!e||f===null)return;let{initialDelayMs:l,maxDelayMs:S,multiplier:x}=Sl,C=ao.random()*Math.min(S,l*x**p.current);zt.warn(`SSE resync: the ids rescan gave up (${f.message}); rescanning in ${Math.round(C)} ms`);let w=ao.setTimer(()=>{p.current+=1,ro()},C);return()=>ao.clearTimer(w)},[e,f]);let{status:h}=mp(e&&d.anchored?`${r}#${d.generation}`:null,{resolveUrl:({lastEventId:l})=>l===null?r:`${r}?${ls}=${encodeURIComponent(l)}`,initialLastEventId:R.current,withCredentials:!1,createEventSource:up,runtime:ao,backoff:Sl,healthyOpenMs:bp,nativeRetryLimit:yp,giveUpAfterFailures:"never",terminalEvents:ss,heartbeat:{staleAfterMs:El,onHeartbeat:null},events:{message:l=>{l.lastEventId!==""&&(Cn(l.lastEventId)?R.current=l.lastEventId:zt.warn("SSE event carried a malformed id; keeping the previous cursor:",l.lastEventId));try{let S=JSON.parse(l.data),x=ds.safeParse(S);if(!x.success){zt.error("SSE Validation Error:",x.error.flatten(),"raw message:",S);return}if(x.data.type==="connected"){zt.info("SSE Subscribe Ready");return}t(x.data)}catch(S){zt.error("SSE Parse Error",S)}}}});return ka(()=>{if(h.kind==="faulted"){zt.error("SSE connection faulted:",h.error);return}if(h.kind==="terminated")switch(h.terminalEvent){case"auth-required":y.current();return;case"forbidden":zt.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let l=T.current+1;m(S=>({generation:S.generation+1,minAnchorRevision:l,anchored:!1})),ro();return}}},[h]),e&&u?fp:h};import{createContext as Rp,useCallback as gp,useContext as hp,useSyncExternalStore as vl}from"react";var Tl=()=>{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)}}},Fa=Rp(null),xt=()=>{let e=hp(Fa);if(e===null)throw new Error("[daily-report] the draft store is read outside a DailyReportActionProvider");return e},Il=(e,t)=>gp(r=>e.subscribe(t,r),[e,t]),so=e=>{let t=xt(),r=()=>t.modeOf(e);return vl(Il(t,e),r,r)},xl=e=>{let t=xt(),r=()=>t.inputOf(e),n=vl(Il(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{useOverlayEscapeStack as Tp}from"@aiquants/swipe-overlay";import{createContext as Ip,useCallback as co,useContext as xp,useId as Dl,useLayoutEffect as _l,useMemo as Cp,useRef as uo,useState as Al}from"react";import{createPortal as Dp}from"react-dom";var kr=e=>e.isComposing||e.keyCode===229,lo=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 Sp={kind:"hold"},Ep=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),vp=(e,t)=>{let r=e.getAttribute("role");return r!==null&&Ep.has(r)&&e!==t&&e.contains(t)},$t=e=>e.key==="Escape"&&!e.defaultPrevented&&!kr(e),Cl=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||kr(e))return null;let r=e.target;if(!(de(r)&&t.contains(r)))return null;let n=Ks(t);if(n.length===0)return Sp;let{before:o,within:a,after:i}=Kn(t,r);return e.shiftKey?o.some(s=>!vp(s,r))?null:{kind:"wrap",element:n[n.length-1]}:a.length>0||i.length>0?null:{kind:"wrap",element:n[0]}};import{jsx as mo,jsxs as wl}from"react/jsx-runtime";var Ap=g("motion-safe:fade-in motion-safe:slide-in-from-bottom-2 flex w-fit min-w-0 max-w-full 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:animate-in motion-safe:duration-200 dark:border-red-500/60 dark:bg-red-700",Pt),_p="flex shrink-0 justify-center p-[8px]",Lp=g("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",Hi),wp=()=>{},Ll=Ip({notifyError:()=>{},registerNoticeHost:()=>wp}),po=()=>xp(Ll),Np=e=>{for(let t of e)if(!(t===null||!t.isConnected||!xr(t))&&(t.focus({preventScroll:!0}),t.ownerDocument.activeElement===t))return t;return null},Op=({notice:e,closeLabel:t,onDismiss:r})=>{let n=uo(null),o=uo(null),a=uo(null),i=Tp(),s=Dl(),d=Dl(),m=co(()=>{let p=n.current;p?.contains(p.ownerDocument.activeElement)&&Np([o.current,Gn(p.ownerDocument),p.closest("dialog")]),r()},[r]),u=p=>{if(a.current!==null)return;let R=p.relatedTarget;o.current=de(R)&&!p.currentTarget.contains(R)?R:null,a.current=i({id:s,onEscape:y=>$t(y)?(m(),!0):!1})},f=p=>{de(p.relatedTarget)&&p.currentTarget.contains(p.relatedTarget)||(a.current?.(),a.current=null,o.current=null)};return _l(()=>()=>{a.current?.(),a.current=null},[]),wl("div",{ref:n,role:"alert","data-testid":"daily-report-error-banner",className:Ap,onFocus:u,onBlur:f,children:[mo("span",{id:d,className:"min-w-0 font-medium",children:e.message}),mo("button",{type:"button","aria-label":t,"aria-describedby":d,onClick:m,className:Lp,children:"\u2715"})]})},Ba=({children:e})=>{let{onError:t,labels:r}=k(),[n,o]=Al(null),[a,i]=Al([]),s=uo(t);_l(()=>{s.current=t});let d=co(y=>{let T=s.current;if(T){T(y);return}o(y)},[]),m=co(y=>(i(T=>[...T,y]),()=>i(T=>T.filter(h=>h!==y))),[]),u=co(()=>o(null),[]),f=Cp(()=>({notifyError:d,registerNoticeHost:m}),[d,m]),p=a.at(-1),R=n===null?null:mo(Op,{notice:n,closeLabel:r.close,onDismiss:u});return wl(Ll.Provider,{value:f,children:[e,R!==null&&p!==void 0&&Dp(R,p),R!==null&&p===void 0&&mo("div",{"data-daily-report-notice-slot":"",className:_p,children:R})]})};import{useState as Mp}from"react";var Pp={items:[],held:new Map,revision:null,settled:!1},Nl=(e,t)=>{let r=0,n=e.length;for(;r<n;){let o=r+n>>1;Ht(e[o],t)<0?r=o+1:n=o}return r<e.length&&e[r].reportHubId===t.reportHubId?r:-1},Ol=(e,t,r)=>{let n=r,o=e.length;for(;n<o;){let a=n+o>>1;Ht(e[a],t)<=0?n=a+1:o=a}return n},kp=(e,t)=>e.businessDate===t.businessDate,Hp=(e,t)=>{if(sa(t)||t.sort(Ht),e.length===0||Ht(e[e.length-1],t[0])<0)return e.concat(t);let r=[],n=0;for(let o of t){let a=Ol(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()},Ml=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}},Pl=(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 sa(a)||a.sort(Ht),Ml({items:a,held:i,revision:t.itemsRevision,settled:r})},Fp=(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?[]:ol(t.itemsChanges,o);if(o===null||a===null)return Pl(e,t,r,n);let i=_r();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),p=[],R=new Set,y=[];for(let l of m)e.held.has(l.reportHubId)||Nl(e.items,l)===-1||(r||n.has(l.reportHubId)?R.add(l.reportHubId):f().set(l.reportHubId,{item:l,since:Number.NEGATIVE_INFINITY}));let T=(l,S)=>{let x=l.reportHubId,C=e.held.get(x);C!==void 0&&f().delete(x);let w=C===void 0?S:C.item,L=w===void 0?-1:Nl(e.items,w);if(n.has(x)){L!==-1&&R.add(x);return}if(L!==-1&&kp(e.items[L],l)){e.items[L].sourceType!==l.sourceType&&p.push({index:L,item:l});return}L!==-1&&R.add(x),y.push(l)};for(let{previous:l,next:S}of d)T(S,l);for(let l of s)T(l,void 0);let h=e.items;if(p.length>0){h=h.slice();for(let{index:l,item:S}of p)h[l]=S}return R.size>0&&(h=h.filter(l=>!R.has(l.reportHubId))),y.length>0&&(h=Hp(h,y)),Ml({items:h,held:u===null?e.held:u,revision:t.itemsRevision,settled:r})},kl=(e,t,r)=>{let[n,o]=Mp(()=>Pl(Pp,e,t,r));return(n.revision!==e.itemsRevision||n.settled!==t)&&o(a=>Fp(a,e,t,r)),[n,o]},fo=(e,t,r)=>{if(e.items.some(a=>a.reportHubId===t.reportHubId))return e;let n=e.items.slice();n.splice(Ol(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}},Hr=(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}},Hl=(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}},Fl=e=>({...e,revision:null});var Va=(e,t,r)=>{if(!Number.isFinite(e)||e<=0)throw fe("createExpiringLedger: ttlMs","a finite number greater than 0 (the time to live in ms)",e);let n=new Map,o=()=>{let a=t();for(let[i,s]of n){if(s.deadline>a)return;n.delete(i),r(i,s.value)}};return{add:(a,i)=>{o(),n.delete(a),n.set(a,{value:i,deadline:t()+e})},get:a=>(o(),n.get(a)?.value),remove:a=>{o();let i=n.get(a);if(i!==void 0)return n.delete(a),i.value},drain:()=>{let a=[...n.values()].map(i=>i.value);return n.clear(),a},size:()=>n.size}};var Ua=0,Wa=e=>{if(!Number.isSafeInteger(e)||e<=0)throw fe("drawTemporaryId: nowMs","a positive safe integer (whole milliseconds of the wall clock)",e);return Ua=Math.min(-e,Ua-1),Ua};import{jsx as Ka,jsxs as Qp}from"react/jsx-runtime";var ct=Jt(1,"daily-report-action-context"),Up=3e4,Wp=3e4,Kp=1e3,ja=class extends Error{constructor(t,r){super(`[daily-report] ${t} answered HTTP ${r}`),this.name="DailyReportActionHttpError",this.status=r}},zp=e=>{let t=Va(Up,e,()=>{});return{add:r=>t.add(r,!0),has:r=>t.get(r)===!0}},$p=e=>Va(Wp,e,(t,r)=>{r.unsubscribe(),ct.warn(`[SSE Queue] Expired: reportHubId=${t}, dropped=${r.messages.length} messages`)}),jp=e=>e.intent==="create"?null:e.reportHubId,Gp=(e,t)=>{let r=e;if(r.intent==="clearCache"||r.clientTempId!==t.clientTempId)return!1;let n=jp(t);return n===null||r.reportHubId===n},Ro=globalThis.__DailyReportActionsContext??Ul(null);globalThis.__DailyReportActionsContext=Ro;var go=globalThis.__DailyReportActionStateContext??Ul(null);globalThis.__DailyReportActionStateContext=go;var bo=(e,t)=>{let r=Vp(e);if(r===null)throw new Error(`[daily-report] ${t} must be used within a DailyReportActionProvider`);return r},xe=()=>bo(Ro,"useDailyReportActions"),ho=()=>bo(go,"useDailyReportActionState"),Yp=()=>{let e=bo(Ro,"useDailyReportActionContext"),t=bo(go,"useDailyReportActionContext");return $a(()=>({...e,...t}),[e,t])},jt=(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},qp=()=>({pendingAddCommentIds:{current:new Map},pendingDeleteCommentIds:{current:new Map},pendingStarUpdates:{current:new Map},pendingReadUpdates:{current:new Map},resolvedIdMap:{current:new Map}}),Xp=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)}),Zp=Object.freeze({kind:"idle"}),Wl=Bp(({isSseEnabled:e,onMessage:t,onStatus:r})=>{let n=Ha({isSseEnabled:e,onMessage:t});return za(()=>{r(n)},[n,r]),null});Wl.displayName="DailyReportSseConnectionHost";var Ga=({children:e,user:t,userId:r})=>{let{apiBasePath:n,draftLabelName:o,labels:a}=k(),{notifyError:i}=po(),[s]=Ct(qp),{pendingAddCommentIds:d,pendingDeleteCommentIds:m,pendingStarUpdates:u,pendingReadUpdates:f,resolvedIdMap:p}=s,[R,y]=Ct(0),[T]=Ct(Tl),[h,l]=Ct(!1),[S,x]=Ct(Zp),C=yo(!1),w=yo(new Map),L=yo(new Set),[V]=Ct(()=>zp(()=>performance.now())),[N]=Ct(()=>$p(()=>performance.now())),H=hl(),[K,O]=kl(H,H.settled,L.current),X=K.items,M=Bl(()=>cl()===(r??null),[r]),se=async()=>{ct.info("[DailyReportActionProvider] Refetching data without page reload..."),Pa(),y(c=>c+1),U.listeners.forEach(c=>{c(-1)})},Ee=async()=>{ct.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),Ir(),L.current.clear(),O(Fl);try{sessionStorage.clear()}catch{}try{let c=await fetch(`${n}/${vt.action}`,{method:"POST",body:_a({intent:"clearCache"})});if(!c.ok){let b=await c.json().catch(()=>null);ct.warn("[DailyReportActionProvider] Failed to clear server-side cache:",c.status,b)}}catch(c){ct.warn("[DailyReportActionProvider] Failed to clear server-side cache:",c)}M()&&(Pa({forceRefresh:!0}),y(c=>c+1),U.listeners.forEach(c=>{c(-1)}))},J=(c,b)=>{let v=N.get(c);if(v!==void 0){v.messages.push(b);return}let E;E={messages:[b],unsubscribe:Ms(c,()=>{if(N.get(c)===E&&Ge(c,{ignoreExpiry:!0})){N.remove(c),E.unsubscribe(),ct.info(`[SSE Queue] Replaying ${E.messages.length} messages for reportHubId=${c}`);for(let P of E.messages)Ae.current.handleSseMessage(P)}})},N.add(c,E)};za(()=>()=>{for(let c of N.drain())c.unsubscribe()},[N]);let Y=Bl((c,b)=>{b!==void 0&&Mr({reportHubId:c,businessDate:b})},[]),j=()=>{r&&(C.current=!0,l(c=>!c))};Vl(()=>{if(!r)return;let c=setTimeout(()=>{C.current||l(!0)},Ss);return()=>clearTimeout(c)},[r]);let ge=c=>{M()&&(L.current.add(c),eo(c),O(b=>Hr(b,c)),T.discard(c))};Vl(()=>{if(K.settled)for(let c of L.current)dl(c)||L.current.delete(c)},[K.settled,K.revision]);let Pe=c=>{if(M()&&!V.has(c.clientTempId))switch(c.type){case"comment-add":{let{comment:b,reportHubId:v}=c,E=Ge(v,{ignoreExpiry:!0});if(E){if(E.postedComments.some(W=>W.id===b.id))return;let A=typeof r=="string"&&b.userId===r,P={...b,userName:b.userName||(A?jt(t,a.unknownUser):a.unknownUser),createdAt:b.createdAt||new Date().toISOString(),isMine:A},Z={...E,postedComments:[...E.postedComments,P].sort((W,I)=>new Date(W.createdAt||0).getTime()-new Date(I.createdAt||0).getTime())};Ut(v,Z),va(v),y(W=>W+1)}else J(v,c);break}case"comment-delete":{let{commentId:b,reportHubId:v}=c,E=Ge(v,{ignoreExpiry:!0});if(E){let A={...E,postedComments:E.postedComments.filter(P=>P.id!==b)};Ut(v,A),va(v),y(P=>P+1)}else J(v,c);break}case"status-update":{let{statusType:b,value:v,reportHubId:E}=c,A=Ge(E,{ignoreExpiry:!0});if(b==="star")if(u.current.get(E)===v&&u.current.delete(E),A){let P={...A,isStarred:v};Ut(E,P),y(Z=>Z+1)}else J(E,c);else if(b==="read")if(f.current.get(E)===v&&f.current.delete(E),A){let P={...A,isRead:v};Ut(E,P),y(Z=>Z+1)}else J(E,c);break}case"report-delete":{let{reportHubId:b}=c;L.current.add(b),eo(b),O(E=>Hr(E,b)),T.discard(b),N.remove(b)?.unsubscribe();let v=Ge(b,{ignoreExpiry:!0});v?.date&&(Ea(b,v.date),y(E=>E+1));break}case"report-create":case"report-update":case"report-publish":{let{report:b}=c;Ps(b),(c.type==="report-create"||c.type==="report-publish")&&Y(b.reportHubId,b.date),y(v=>v+1);break}}},q=async(c,b,v={})=>{let{intent:E}=c,{lockedReportHubId:A}=v,P=A===void 0?null:ws(A);b.onOptimistic?.(),V.add(c.clientTempId);let Z=()=>{if(!M())throw ct.warn(`[executeAction] ${E} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${E}`)};try{let W=await fetch(`${n}/${vt.action}`,{method:"POST",body:_a(c),headers:{Accept:"application/json"}});if(W.status===404&&b.onGone!==void 0)return Z(),b.onGone();if(!W.ok)throw new ja(E,W.status);let I=rl(E,await W.json());if("mismatch"in I)throw new Error(`[daily-report] ${E} answered a body that is not its result (${I.mismatch})`);let{result:D}=I;if(!Gp(D,c))throw new Error(`[daily-report] ${E} answered another request`);return Z(),b.onSuccess(D)}catch(W){throw ct.error(`${E} failed:`,W),M()&&(b.onFailure?.(),Ae.current.notifyError({operation:E,message:a.operationFailed(E),cause:W})),W}finally{P?.()}},ve=(c,b,v)=>({reportHubId:c,clientTempId:v,businessDate:typeof b=="string"?b:null,operationTimestamp:Date.now()}),Ke={toggleSse:j,addComment:async(c,b,v)=>{let E=Wa(Date.now()),A=q({...ve(c,v,String(E)),intent:"addComment",content:b},{onOptimistic:()=>{d.current.has(c)||d.current.set(c,new Map),d.current.get(c)?.set(E,b),y(P=>P+1)},onSuccess:({newComment:P})=>{let Z=P.id;p.current.set(E,Z),d.current.get(c)?.delete(E);let W=Ge(c,{ignoreExpiry:!0});return W&&!W.postedComments.some(I=>I.id===Z)&&Ye(c,{postedComments:[...W.postedComments,{...P,isMine:!0,userName:jt(t,a.unknownUser)}]}),Z},onFailure:()=>{d.current.get(c)?.delete(E)}}).finally(()=>w.current.delete(E));w.current.set(E,A),await A},deleteComment:async(c,b,v)=>{m.current.has(c)||m.current.set(c,new Set),m.current.get(c)?.add(b),y(A=>A+1);let E=b;if(b<0){let A=p.current.get(b);if(A!==void 0)E=A;else{let P=w.current.get(b);if(!P)return;try{E=await P}catch{return}}}await q({...ve(c,v,crypto.randomUUID()),intent:"deleteComment",commentId:E},{onSuccess:()=>{let A=Ge(c,{ignoreExpiry:!0});A&&(Ye(c,{postedComments:A.postedComments.filter(P=>P.id!==E)}),Os(E)),m.current.get(c)?.delete(b)},onFailure:()=>{m.current.get(c)?.delete(b)}})},toggleStar:async(c,b,v)=>{await q({...ve(c,v,crypto.randomUUID()),intent:"toggleStar",value:b},{onOptimistic:()=>{Ye(c,{isStarred:b}),u.current.set(c,b),y(E=>E+1)},onSuccess:({updatedStatus:E})=>{Ge(c,{ignoreExpiry:!0})&&(Ye(c,{isStarred:E.isStarred}),y(A=>A+1)),u.current.delete(c)},onFailure:()=>{Ye(c,{isStarred:!b}),u.current.delete(c)}})},toggleRead:async(c,b,v)=>{await q({...ve(c,v,crypto.randomUUID()),intent:"toggleRead",value:b},{onOptimistic:()=>{Ye(c,{isRead:b}),f.current.set(c,b),y(E=>E+1)},onSuccess:({updatedStatus:E})=>{Ge(c,{ignoreExpiry:!0})&&(Ye(c,{isRead:E.isRead}),y(A=>A+1)),f.current.delete(c)},onFailure:()=>{Ye(c,{isRead:!b}),f.current.delete(c)}})},createReport:async c=>{let b=Wa(Date.now()),v=new Date().toISOString(),E={reportHubId:b,date:c,createdAt:v,author:jt(t,a.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:jt(t,a.unknownUser),updatedBy:jt(t,a.unknownUser),updatedAt:v,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:[]};Ls(E,Date.now()+3e5,!1),O(A=>fo(A,{reportHubId:b,businessDate:c},Number.NEGATIVE_INFINITY));try{let A=await q({intent:"create",clientTempId:String(b),businessDate:c,operationTimestamp:Date.now()},{onSuccess:W=>W.report}),P=A.reportHubId,Z=Ma();return Mr({reportHubId:P,businessDate:c}),Ns(P,Kp),Ut(P,A),y(W=>W+1),O(W=>fo(Hr(W,b),{reportHubId:P,businessDate:c},Z)),P}catch(A){throw ct.error("[createReport] Failed",A),O(P=>Hr(P,b)),A}},updateReport:async(c,b,v)=>{await q({...ve(c,v,crypto.randomUUID()),intent:"update",changes:{title:b.title,content:b.content}},{onSuccess:()=>{Ge(c,{ignoreExpiry:!0})&&(Ye(c,{subject:b.title,content:b.content}),y(A=>A+1))}},{lockedReportHubId:c})},publishReport:async(c,b)=>{let v=Ge(c,{ignoreExpiry:!0});await q({...ve(c,b,crypto.randomUUID()),intent:"publish"},{onOptimistic:()=>{v&&(Ye(c,{labels:v.labels.filter(E=>E.name!==o)}),y(E=>E+1))},onSuccess:({report:E})=>{E!==null&&(Ut(c,E),y(A=>A+1)),b!==void 0&&Mr({reportHubId:c,businessDate:b})},onFailure:()=>{v&&(Ye(c,{labels:v.labels}),y(E=>E+1))}})},deleteReport:async(c,b)=>{let v=X.find(A=>A.reportHubId===c);L.current.add(c),eo(c),O(A=>Hl(A,c));let E=()=>{Ea(c,b),T.discard(c)};try{await q({...ve(c,b,crypto.randomUUID()),intent:"delete"},{onSuccess:E,onGone:E},{lockedReportHubId:c})}catch{if(!M())return;L.current.delete(c);let A=v===void 0?b:v.businessDate,P=Ma();A!==void 0&&Mr({reportHubId:c,businessDate:A}),v&&O(Z=>fo(Z,v,P))}},removeStaleItem:ge,refetchData:se,clearCacheAndRefetch:Ee,handleSseMessage:Pe,notifyError:i},Ae=yo(Ke);za(()=>{Ae.current=Ke});let[ke]=Ct(()=>Xp(Ae)),gt=$a(()=>({...s,...ke.functions,user:t}),[s,ke,t]),ze=$a(()=>({version:R,items:X,isSseEnabled:h,sseStatus:S}),[R,X,h,S]);return Ka(Fa.Provider,{value:T,children:Ka(Ro.Provider,{value:gt,children:Qp(go.Provider,{value:ze,children:[Ka(Wl,{isSseEnabled:h,onMessage:ke.onSseMessage,onStatus:x}),e]})})})};import{jsx as ef}from"react/jsx-runtime";var Jp={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},Dt=Object.freeze({2:3,3:4,4:5,5:6}),Be=({level:e,...t})=>{let r=Jp[e];return ef(r,{...t})};import{memo as bd,useId as Yf,useMemo as qf,useRef as Xf}from"react";var Kl=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var qa="tile",Br=Kl[qa],tf=2,Fr=16,zl=5,$l=Br.maxWidth/tf,rf=zl*($l+Fr)-Fr,jl=e=>{let t=Math.min(zl,1+Math.floor((e+Fr)/($l+Fr)));return Math.floor((Math.min(e,rf)-(t-1)*Fr)/t)},Ya=`round(nearest, 100cqi * ${Br.maxHeight} / ${Br.maxWidth}, 1px)`,Gl=Object.freeze({aspectRatio:`${Br.maxWidth} / ${Br.maxHeight}`,height:Ya,contain:"strict"}),nf="--aqdr-lattice-block",Yl=Object.freeze({marginBlockEnd:`calc(round(up, ${Ya}, var(${nf})) - ${Ya})`});var of="download",af="thumbnail",sf="1",ar=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[of]:sf})}`;case"thumbnail":return`${n}?${new URLSearchParams({[af]:r.variant})}`}};import{createContext as lf,useContext as df}from"react";var Vr=lf(null),ir=()=>df(Vr)===!1?-1:void 0,ql=(e,t)=>{let{before:r,after:n}=Kn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as ff,useContext as yf,useLayoutEffect as bf,useMemo as Rf,useState as gf}from"react";import{flushSync as hf}from"react-dom";import{flushSync as cf}from"react-dom";var Xa=new WeakMap,Xl=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,uf=e=>{e.frame=null;let t=[...e.observations.values()].filter(Xl);t.length!==0&&cf(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},mf=(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=jl(o))}e.frame!==null||![...e.observations.values()].some(Xl)||(e.frame=e.view.requestAnimationFrame(()=>uf(e)))},pf=e=>{let t=Xa.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=>mf(n,o)),observations:new Map,frame:null};return Xa.set(e,n),n},Zl=(e,t)=>{let r=e.ownerDocument,n=pf(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(),Xa.delete(r)))}};import{jsx as Wr,jsxs as ed}from"react/jsx-runtime";var Ur="\u2026",Sf=Ur.codePointAt(0),So="data-attachment-file-name",Ef=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,vf=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,td=ff(null),rd=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},Ql=(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("")},Tf=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=rd(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${Ql(o,Ur,a,r)}${Ur}`;return r(n+i)<=t?n+i:`${Ql(n,Ur+i,t,r)}${Ur}${i}`},Jl=new WeakMap,nd=e=>{let t=Jl.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 Jl.set(e,n),n},If=(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},od=e=>{let t=new Set;for(let r of e.matchAll(Ef)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},xf=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:od(t.fontFamily),measure:If(nd(e.ownerDocument),r)}},Cf=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,Df=e=>{let t=new Set([Sf]);for(let r of e.querySelectorAll(`[${So}]`)){let n=r.getAttribute(So);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},Af=(e,t)=>{for(let r of e.split(",")){let n=vf.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},Za=new WeakMap,ad=e=>{let t=Za.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return Za.set(e,r),r},id=(e,t)=>{let r=xf(e.container.querySelector(`[${So}]`));e.fitted={trackWidth:t,nameFont:r};let n=ad(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=Lf(n)),e.applyFit({width:t,measure:r.measure})},_f=(e,t)=>{let r=t.map(o=>({families:od(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=Df(o.container);i.some(d=>Af(d.unicodeRange,s))&&(nd(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&hf(()=>{for(let[o,a]of n)id(o,a)})},Lf=e=>{let t=e.document.fonts,r=n=>{_f(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},wf=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=Zl(e,a=>id(r,a)),o=ad(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),Za.delete(o.document))}},sd=({containerRef:e,children:t})=>{let[r,n]=gf(null);return bf(()=>{let o=e.current;return wf(o,i=>{n(s=>Cf(s,i)?s:i)})},[e]),Wr(td,{value:r,children:t})},Kr=({fileName:e,className:t,testId:r})=>{let n=yf(td),o=Rf(()=>n===null?null:Tf(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=rd(e);return ed("span",{className:g("block min-w-0",t),title:e,"data-testid":r,[So]:e,children:[o===null?ed("span",{"aria-hidden":"true",className:"flex min-w-0",children:[Wr("span",{className:"truncate",children:a}),i!==""&&Wr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):Wr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),Wr("span",{className:"sr-only",children:e})]})};import kf from"lucide-react/dist/esm/icons/image-off.js";import{memo as Hf,useCallback as ei,useEffect as Ff,useLayoutEffect as Bf,useRef as ti,useState as Vf}from"react";var Eo=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),ld=Eo.queueWaitMs+Eo.readMs+Eo.renderMs+Eo.transferMarginMs;var Nf=Object.freeze({kind:"loaded"}),dd=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",d=null,m=null,u=null,f=null,p=null,R=M=>(M!==null&&n.clearTimeout(M),null),y=()=>{f?.(),f=null},T=()=>{p?.(),p=null},h=M=>M===null||M.kind==="loaded"?0:M.kind==="failing"?M.failedAttempts:i.maxAttempts,l=M=>{s="cooling",u=n.setTimeout(H,M)},S=()=>{o.abortInFlight(),T();let M=h(r.get(t))+1;if(M>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:M,retryAt:n.now()+i.retryDelayMs}),o.reset(),l(i.retryDelayMs)},x=M=>{if(s==="loading"){if(m=R(m),!M){S();return}s="done",r.set(t,Nf),T()}},C=()=>{m=null,x(!1)},w=()=>{s="loading",o.showActivity(!0),y(),m=n.setTimeout(C,i.loadTimeoutMs),o.grant()},L=()=>{d=null,s="queued",p=a.request(w)},V=()=>{d===null&&(d=n.setTimeout(L,i.settleMs))},N=M=>{if(o.showActivity(M),M){s==="watching"&&V();return}if(s==="queued"){T(),s="watching";return}d=R(d)},H=()=>{u=null,s="watching",o.showActivity(!1),f=n.observe(e,N)},K=()=>{let M=s==="loading";s="done",y(),d=R(d),m=R(m),u=R(u),o.showActivity(!1),M&&(o.abortInFlight(),p!==null&&o.reset()),T()},O=r.get(t);if(O?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:x,dispose:K};if(O?.kind==="exhausted"){if(n.now()-O.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:x,dispose:K};r.delete(t)}o.reset();let X=O?.kind==="failing"?O.retryAt-n.now():0;return X>0?l(X):H(),{settle:x,dispose:K}};var Of=e=>{if(!Number.isInteger(e)||e<=0)throw fe("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())}}}},cd=Of(2);var Mf=e=>{if(!Number.isInteger(e)||e<=0)throw fe("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)}}},Qa=Mf(1024);var Ja=new WeakMap,Pf=e=>{let t=Ja.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 Ja.set(e,a),a},ud=(e,t)=>{let r=e.ownerDocument,n=Pf(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(),Ja.delete(r)))}};import{jsx as zr,jsxs as Gf}from"react/jsx-runtime";var Uf={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},Wf="data-thumbnail-active",Kf="data-daily-report-attachment-preview",pd={[Kf]:""},zf=Object.freeze({settleMs:250,loadTimeoutMs:ld,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),md=e=>{let t=Qa.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},$f=()=>({limiter:cd,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:ud,tuning:zf}),jf=(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(Wf,o)}}),fd=Hf(({thumbnailUrl:e,unavailableLabel:t})=>{let r=ti(null),n=ti(null),o=ti(null),[a,i]=Vf(()=>md(e));a.url!==e&&i(md(e)),Bf(()=>{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]),Ff(()=>{let u=r.current,f=dd(u,e,Qa,$f(),jf(e,u,i,n));return o.current=f,()=>{o.current=null,f.dispose()}},[e]);let s=ei(u=>{u!==null&&(n.current=u)},[]),d=ei(()=>{i(u=>u.status==="granted"?{url:u.url,status:"loaded"}:u),o.current?.settle(!0)},[]),m=ei(()=>{o.current?.settle(!1)},[]);return zr("span",{className:"block",children:zr("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":Uf[a.status],style:Gl,className:"relative block w-full",children:zr("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"?Gf("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 ${En}`,"data-testid":"daily-report-attachment-thumbnail-unavailable",children:[zr(kf,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):zr("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 be,jsxs as rt}from"react/jsx-runtime";var yd=1024,ri=["B","KB","MB","GB"],Rd="text-slate-500 text-sm line-through dark:text-slate-400",Zf=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=yd&&r<ri.length-1;)t/=yd,r+=1;return r===0?`${t} ${ri[r]}`:`${t.toFixed(1)} ${ri[r]}`},gd=({attachment:e,labels:t,className:r})=>rt("span",{className:r,children:[Zf(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),ni=({href:e,children:t,...r})=>{let n=ir();return be("a",{href:e,...r,tabIndex:n,children:t})},hd=({downloadUrl:e,label:t,fileName:r})=>rt(ni,{href:e,className:g("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",Q),"data-testid":"daily-report-attachment-download",children:[t," ",be("span",{className:"sr-only",children:r})]}),Qf=bd(({attachment:e,apiBasePath:t,labels:r})=>{let n=be(fd,{thumbnailUrl:ar(t,e.id,{kind:"thumbnail",variant:qa}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return rt("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?rt("div",{className:"flex min-w-0 flex-col gap-2",children:[n,be(Kr,{fileName:e.fileName,className:Rd,testId:"daily-report-attachment-name"})]}):rt(ni,{href:ar(t,e.id,{kind:"inline"}),className:g("flex min-w-0 flex-col gap-2 rounded-lg",Q),"data-testid":"daily-report-attachment-link",...pd,children:[n,be(Kr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),rt("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:Yl,children:[be(gd,{attachment:e,labels:r,className:"truncate"}),!o&&be(hd,{downloadUrl:ar(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),Jf=bd(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return rt("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:[rt("div",{className:"flex min-w-0 flex-col",children:[n?be(Kr,{fileName:e.fileName,className:Rd,testId:"daily-report-attachment-name"}):be(ni,{href:ar(t,e.id,{kind:"inline"}),className:g("flex min-w-0 rounded-sm",Q),"data-testid":"daily-report-attachment-link",children:be(Kr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),be(gd,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&be(hd,{downloadUrl:ar(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),ey=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=Xf(null);return be(sd,{containerRef:o,children:be("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:be("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=>be(Qf,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},vo=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=k(),o=Yf(),{tileAttachments:a,rowAttachments:i}=qf(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:rt("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[be(Be,{level:Dt[n],id:o,className:g("m-0",kt),children:r.attachments}),rt("div",{className:"flex flex-col gap-4",children:[a.length>0&&be(ey,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&be("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>be(Jf,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as yy}from"@aiquants/swipe-overlay";import{memo as Dd,useCallback as Co,useEffect as Td,useId as by,useRef as Ad,useState as Ry}from"react";import{useCallback as vd,useMemo as ty,useRef as ry,useState as ny}from"react";var Sd=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw fe("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]},Ed=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 oi=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,addComment:i,deleteComment:s}=xe(),{version:d}=ho(),{labels:m}=k(),u=m.unknownUser,[f,p]=ny(null),R=vd(l=>e&&s(e.reportHubId,l,e.date),[e,s]),y=vd(l=>e&&t?i(e.reportHubId,l,e.date):Promise.resolve(),[e,t,i]),T=ry([]);return{uiComments:ty(()=>{if(!e)return[];let l=Sd(e.externalComments,e.postedComments,r,u),S=o.current.get(e.reportHubId);S?.size&&(l=l.filter(C=>!S.has(C.id)));let x=n.current.get(e.reportHubId);if(x?.size&&t){let C=new Set(l.map(L=>L.id)),w=jt(t,u);for(let[L,V]of x){if(S?.has(L)||C.has(L))continue;let N=a.current.get(L);N&&C.has(N)||l.some(H=>H.isMine&&H.content===V&&typeof H.id=="number"&&H.id>0)||l.push({id:L,authorName:w,content:V,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(l)===JSON.stringify(T.current)?T.current:(T.current=l,l)},[e,t,r,u,o,n,a,d]),handleAddComment:y,handleDeleteComment:R,pendingDeleteId:f,setPendingDeleteId:p,resolvedIdMap:a.current}};import{Fragment as oy,jsx as ay}from"react/jsx-runtime";var Te=({render:e})=>{let t=ir();return ay(oy,{children:e(t)})};import iy from"@heroicons/react/24/outline/TrashIcon.js";import{memo as sy,useId as ly,useRef as dy,useState as cy}from"react";import{jsx as At,jsxs as To}from"react/jsx-runtime";var ai="data-comment-id",Io="data-comment-delete-button",xo="data-comment-delete-slot",uy=g(Ne,Vi),my="relative flex h-5 items-center",py=g(_e,"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",Q),fy=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,ii=sy(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:d})=>{let[m,u]=cy(!1),{labels:f}=k(),p=ly(),R=dy(null),y=fy(e.id,o,d),T=()=>{let l=R.current;l!==null&&s(l),a(null),u(!0),typeof e.id=="number"&&n?.(e.id)},h=l=>{if(!y)return;let S=l.relatedTarget;de(S)&&l.currentTarget.contains(S)||a(null)};return To("li",{[ai]:e.id,"data-deleted":m?"true":void 0,className:g("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:[To("div",{className:"mb-1 flex items-center justify-between",children:[At("div",{className:g("font-semibold text-xs",Ed(e.color)),children:le(e.authorName)}),To("div",{className:"flex items-center gap-2",children:[e.createdAt&&At("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:ie(e.createdAt)}),e.isMine&&!e.isLegacy&&To("div",{[xo]:e.id,className:my,onBlur:h,children:[At(Te,{render:l=>At("button",{ref:R,type:"button",tabIndex:l,className:uy,title:f.commentDelete,"aria-label":f.commentDelete,"aria-expanded":y,"aria-controls":y?p:void 0,[Io]:e.id,onClick:()=>i(e.id,y),children:At(iy,{"aria-hidden":"true",className:y?Se.deletePending:Se.delete})})}),y&&At(Te,{render:l=>At("button",{id:p,type:"button",tabIndex:l,"data-delete-confirmation":!0,className:py,onClick:T,children:f.commentDeleteConfirm})})]})]})]}),At("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});ii.displayName="DailyReportPostedComment";import{Fragment as Cy,jsx as Ve,jsxs as si}from"react/jsx-runtime";var gy="data-daily-report-comment-section",hy="data-daily-report-comment-heading",Sy=g(it,Q),_d=(e,t)=>e>0||t,Ey=g("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",Q),vy=g("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",Q),Id=e=>e.querySelector(`[${Io}][aria-expanded="true"]`),Ty=(e,t,r)=>{let n=[...e.querySelectorAll(`[${Io}]`)].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(`[${ai}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return _d(i,r)?{kind:"heading"}:{kind:"report"}},Iy=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:d,onSectionRemoved:m})=>{let u=Ad(null),f=yy(),p=by(),R=o!==null,y=Co(()=>{let l=u.current,S=l===null?null:Id(l),x=S===null?null:S.closest(`[${xo}]`),C=l===null?null:Oe(l);a(null),S!==null&&x!==null&&C!==null&&x.contains(C)&&S.focus({preventScroll:!0})},[a]);Td(()=>{if(R)return f({id:p,onEscape:l=>$t(l)?(y(),!0):!1})},[R,f,p,y]),Td(()=>{let l=u.current;if(!R||l===null)return;let S=l.ownerDocument,x=C=>{let w=Id(l)?.closest(`[${xo}]`);w!=null&&de(C.target)&&w.contains(C.target)||a(null)};return S.addEventListener("pointerdown",x,!0),()=>S.removeEventListener("pointerdown",x,!0)},[R,a]);let T=Co((l,S)=>{S?y():a(l)},[y,a]),h=Co(l=>{let S=u.current;if(S===null)return;let x=Ty(S,l,s);if(x.kind==="report"){m();return}let C=x.kind==="trash"?x.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:Ve("ul",{ref:u,className:"space-y-2",children:e.map(l=>Ve(ii,{comment:l,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:T,onBeforeHide:h,resolvedIdMap:i},l.id))})},xd=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=k(),a=Ad(null);return _d(r.comments.length,r.canComment)?si("div",{[gy]:"",className:g("flex flex-col gap-2",e),children:[Ve(Be,{ref:a,level:Dt[o],tabIndex:-1,[hy]:"",className:Sy,children:n.comments}),Ve(Iy,{...r,headingRef:a}),t]}):null},Ld=Dd(({report:e,canComment:t,onSectionRemoved:r,formPlacement:n,sectionClassName:o,comments:a,onAddComment:i,onDeleteComment:s,pendingDeleteId:d,onPendingDeleteIdChange:m,resolvedIdMap:u})=>{let f=t?Ve(xy,{onAddComment:i}):null,p={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"?Ve(xd,{...p,children:f}):si(Cy,{children:[Ve(xd,{...p}),f&&Ve("div",{className:"mt-auto",children:f})]})});Ld.displayName="ReportCommentsView";var $r=Dd(({report:e,userId:t,canComment:r,onCommentAdded:n,onSectionRemoved:o,formPlacement:a,sectionClassName:i})=>{let{user:s}=xe(),{uiComments:d,handleAddComment:m,handleDeleteComment:u,pendingDeleteId:f,setPendingDeleteId:p,resolvedIdMap:R}=oi(e,s,t),y=Co(async T=>{await m(T),n?.()},[m,n]);return Ve(Ld,{report:e,canComment:r,onSectionRemoved:o,formPlacement:a,sectionClassName:i,comments:d,onAddComment:y,onDeleteComment:u,pendingDeleteId:f,onPendingDeleteIdChange:p,resolvedIdMap:R})});$r.displayName="ReportComments";var Cd="content",xy=({onAddComment:e})=>{let[t,r]=Ry(!1),{labels:n}=k();return si("form",{className:"flex gap-2",onSubmit:async a=>{a.preventDefault();let i=a.currentTarget,s=i.elements.namedItem(Cd);if(!(s instanceof Le(i).HTMLInputElement))return;let d=s.value.trim();if(d&&e){r(!0),i.reset();try{await e(d)}catch{s.value=d}finally{r(!1)}}},children:[Ve(Te,{render:a=>Ve("input",{type:"text",name:Cd,tabIndex:a,placeholder:n.commentPlaceholder,className:Ey,autoComplete:"off"})}),Ve(Te,{render:a=>Ve("button",{type:"submit",tabIndex:a,className:vy,disabled:t,children:n.commentSend})})]})};import{useState as My}from"react";import{Slot as Dy}from"@radix-ui/react-slot";import{cva as Ay}from"class-variance-authority";import*as wd from"react";import{jsx as Ly}from"react/jsx-runtime";var _y=Ay(`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 ${Q}`,{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"}}),ut=wd.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>Ly(n?Dy:"button",{className:g(_y({variant:t,size:r,className:e})),ref:a,...o}));ut.displayName="Button";import{jsx as wy}from"react/jsx-runtime";function Nd({className:e,type:t,...r}){return wy("input",{type:t,"data-slot":"input",className:g(`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 ${Q}`,e),...r})}import*as Od from"@radix-ui/react-label";import{jsx as Ny}from"react/jsx-runtime";function jr({className:e,...t}){return Ny(Od.Root,{"data-slot":"label",className:g("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 Oy}from"react/jsx-runtime";function Md({className:e,...t}){return Oy("textarea",{"data-slot":"textarea",className:g(`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 ${Q}`,e),...t})}import{jsx as qe,jsxs as Do}from"react/jsx-runtime";var sr=e=>({title:e.subject??"",content:e.content??""}),Py=e=>{e.preventDefault()},Ao=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=xe(),{labels:i}=k(),s=xt(),{title:d,content:m}=xl(e.reportHubId),[u,f]=My(!1),p=async()=>{f(!0);try{await o(e.reportHubId,{title:d,content:m},e.date)}catch{}finally{f(!1)}},R=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}`,T=`report-content-${e.reportHubId}`;return Do("form",{className:"space-y-4 p-1",onSubmit:Py,children:[Do("div",{className:"space-y-2",children:[qe(jr,{htmlFor:y,children:i.formTitle}),qe(Te,{render:h=>qe(Nd,{ref:n,id:y,value:d,onChange:l=>s.setInput(e.reportHubId,{title:l.target.value}),placeholder:i.formTitlePlaceholder,disabled:u,tabIndex:h})})]}),Do("div",{className:"space-y-2",children:[qe(jr,{htmlFor:T,children:i.formContent}),qe(Te,{render:h=>qe(Md,{id:T,value:m,onChange:l=>s.setInput(e.reportHubId,{content:l.target.value}),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:u,tabIndex:h})})]}),Do("div",{className:"flex justify-end gap-2",children:[t&&qe(Te,{render:h=>qe(ut,{type:"button",variant:"outline",onClick:t,disabled:u,tabIndex:h,children:i.formCancel})}),qe(Te,{render:h=>qe(ut,{type:"button",variant:"secondary",onClick:p,disabled:u,tabIndex:h,children:i.formSave})}),qe(Te,{render:h=>qe(ut,{type:"button",onClick:R,disabled:u,tabIndex:h,children:i.formPublish})})]})]})};import $y from"lucide-react/dist/esm/icons/check.js";import jy from"lucide-react/dist/esm/icons/pencil.js";import Gy from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as Pd}from"react/jsx-runtime";var Lo=24,kd=2,ky=20,_o=5,Hy=3,Fy=()=>{let e=Math.cos(2*Math.PI/_o)/Math.cos(Math.PI/_o),t=Array.from({length:2*_o},(p,R)=>{let y=-Math.PI/2+R*Math.PI/_o,T=R%2===0?1:e;return{x:T*Math.cos(y),y:T*Math.sin(y)}}),r=t.map(p=>p.x),n=t.map(p=>p.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],d=(ky-kd)/(a-o),m=Lo/2-d*(o+a)/2,u=Lo/2-d*(i+s)/2,f=p=>String(Number(p.toFixed(Hy)));return t.map(p=>`${f(m+d*p.x)},${f(u+d*p.y)}`).join(" ")},By=Fy(),lr=({filled:e})=>Pd("svg",{viewBox:`0 0 ${Lo} ${Lo}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:kd,strokeLinejoin:"round",className:e?Se.starOn:Se.starOff,children:Pd("polygon",{points:By})});import{Fragment as Vy,jsx as wo,jsxs as Uy}from"react/jsx-runtime";var dr=({config:e,id:t,className:r})=>wo("span",{id:t,className:g(Ki,e.badgeClassName,r),children:e.name===void 0?e.label:Uy(Vy,{children:[wo("span",{"aria-hidden":"true",children:wo("abbr",{title:e.name,children:e.label})}),wo("span",{className:"sr-only",children:e.name})]})});import{jsx as Hd}from"react/jsx-runtime";var No=24,Wy=6,cr=({className:e})=>Hd("svg",{viewBox:`0 0 ${No} ${No}`,"aria-hidden":"true",className:g(Se.read,e),children:Hd("circle",{cx:No/2,cy:No/2,r:Wy,fill:"currentColor"})});import{jsx as zy}from"react/jsx-runtime";var Ky=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,Gt=({text:e})=>Ky.test(e)?zy("time",{dateTime:e,children:e}):e;import{jsx as Ue,jsxs as Bd}from"react/jsx-runtime";var ce=({label:e,classNames:t,valueId:r,children:n})=>Bd("div",{className:t.field,children:[Ue("dt",{className:t.label,children:e}),Ue("dd",{id:r,className:g("m-0",t.value),children:n})]}),_t={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"},Fd=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return Bd("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:[Ue(ce,{label:r.author,classNames:_t,children:le(e.author)}),Ue(ce,{label:r.createdAt,classNames:_t,children:Ue(Gt,{text:ie(e.createdAt)})}),Ue(ce,{label:r.updatedBy,classNames:_t,children:le(e.updatedBy)}),Ue(ce,{label:r.updatedAt,classNames:_t,children:Ue(Gt,{text:ie(e.updatedAt)})}),Ue(ce,{label:r.businessDate,classNames:_t,children:Ue(Gt,{text:ie(e.date)})}),t!==null&&Ue(ce,{label:r.visitTime,classNames:_t,children:t}),n&&Ue(ce,{label:r.category,classNames:_t,children:n}),o&&Ue(ce,{label:r.creationCategory,classNames:_t,children:o})]})};import{jsx as ae,jsxs as Ud}from"react/jsx-runtime";var Oo={field:g(_e,"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:""},Yy={field:g(_e,"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:""},Vd={field:g(_e,"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:""},Wd=({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:p})=>{let R=r?p.starRemove:p.starAdd,y=t?p.markUnread:p.markRead,T=e.category?.trim(),h=e.creationCategory?.trim();return Ud("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[ae(vr,{id:f.attachments,count:e.attachments.length,label:p.attachments}),m?ae(dr,{id:f.source,config:m}):null,ae(Te,{render:l=>ae("button",{type:"button",onClick:a,tabIndex:l,className:Ne,title:R,"aria-label":R,"data-detail-star-button":e.reportHubId,children:ae(lr,{filled:r})})}),ae(Te,{render:l=>ae("button",{type:"button",onClick:o,tabIndex:l,className:Ne,title:y,"aria-label":y,"data-detail-read-button":e.reportHubId,children:t?ae($y,{className:Se.read}):ae(cr,{})})}),i&&ae(Te,{render:l=>ae("button",{ref:s,type:"button",onClick:i,tabIndex:l,"data-detail-edit-button":e.reportHubId,className:Ne,title:p.edit,"aria-label":p.edit,children:ae(jy,{className:Se.edit})})}),n&&ae(Te,{render:l=>ae("button",{type:"button",onClick:d,tabIndex:l,"data-detail-delete-button":e.reportHubId,className:Ne,title:p.deleteReport,"aria-label":p.deleteReport,children:ae(Gy,{className:Se.delete})})}),Ud("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[ae(ce,{label:p.id,classNames:Yy,children:e.reportHubId}),ae(ce,{label:p.businessDate,classNames:Oo,children:ae(Gt,{text:ie(e.date)})}),ae(ce,{label:p.author,classNames:Oo,children:le(e.employeeName)}),ae(ce,{label:p.visitTime,classNames:Oo,children:le(u)}),ae(ce,{label:p.updatedAt,classNames:Oo,children:ae(Gt,{text:ie(e.updatedAt)})}),T&&ae(ce,{label:p.category,classNames:Vd,children:T}),h&&ae(ce,{label:p.creationCategory,classNames:Vd,children:h})]})]})};import{useCallback as Tb,useContext as fc,useLayoutEffect as pi,useRef as yc}from"react";import{startTransition as pb,useCallback as te,useLayoutEffect as Yt,useMemo as uc,useRef as Nt,useState as Zr,useSyncExternalStore as fb}from"react";import{flushSync as mc}from"react-dom";var ur=e=>({owner:e,focusIndex:null}),li=Object.freeze({owner:null,focusIndex:null}),Kd=(e,t)=>{if(e.length===0)return li;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},zd=(e,t)=>{switch(t.kind){case"focusIn":return ur(t.row);case"focusOut":return t.to==="outside"?li:ur(e);case"pointerPress":return t.at==="outside"?li:ur(e);case"listChanged":{if(e===null)return ur(e);let r=me(t.items,e.reportHubId,e.index);return r===-1?Kd(t.items,e.index):ur(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?ur(e):Kd(t.items,t.selection.index)}};var qy=new Set(["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","ScrollLock","Shift","Super","Symbol","SymbolLock"]),Mo={capture:!0},Po=new WeakMap,Xy=e=>{let t=o=>{qy.has(o.key)||(n.last="keyboard")},r=()=>{n.last="pointer"},n={observers:0,last:null,detach:()=>{e.removeEventListener("keydown",t,Mo),e.removeEventListener("pointerdown",r,Mo)}};return e.addEventListener("keydown",t,Mo),e.addEventListener("pointerdown",r,Mo),n},$d=e=>{let t=Po.get(e),r=t===void 0?Xy(e):t;t===void 0&&Po.set(e,r),r.observers+=1;let n=!1;return()=>{n||(n=!0,r.observers-=1,!(r.observers>0)&&(r.detach(),Po.delete(e)))}},jd=e=>{let t=Po.get(e);return t===void 0?null:t.last};var ko=e=>e.matches(":focus-visible")&&jd(e.ownerDocument)!=="pointer";var Zy="data-daily-report-keyboard-focus",Lt={capture:!0},Gd=e=>{let t=$d(e.ownerDocument),r=s=>{e.toggleAttribute(Zy,de(s)&&ko(s))},n=s=>r(s.target),o=s=>{de(s.relatedTarget)&&e.contains(s.relatedTarget)||r(null)},a=()=>r(null);e.addEventListener("focusin",n,Lt),e.addEventListener("keydown",n,Lt),e.addEventListener("focusout",o,Lt),e.addEventListener("pointerdown",a,Lt);let i=Oe(e);return r(i!==null&&e.contains(i)?i:null),()=>{e.removeEventListener("focusin",n,Lt),e.removeEventListener("keydown",n,Lt),e.removeEventListener("focusout",o,Lt),e.removeEventListener("pointerdown",a,Lt),r(null),t()}};var Qy='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',Jy=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],eb=Jy.map(e=>`[role="${e}"]`).join(", "),tb=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),rb=new Set(["Enter"," "]),nb=new Map([["Home","exitBefore"],["End","exitAfter"]]),di=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return nb.get(e.key)??null;let r=tb.get(e.key);return r!==void 0?r:rb.has(e.key)&&t.rowActivation?"activate":null},Yd=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},qd=(e,t,r)=>{let n=di(e,r);if(n===null||e.defaultPrevented||kr(e)||t===null||!de(e.target)||!t.contains(e.target))return null;let o=It(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:Yd(e.target,Qy,t)||Yd(e.target,eb,t)?null:n};var Ho={kind:"stay"},Fo=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},Xd=e=>Math.floor(.875*e),wt=(e,t)=>({kind:"move",index:e,align:t}),Gr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",ob=({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},ab=({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},ib=(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 Ho;if(r==="top")return wt(n-1,"top");let m=s(n-1);return wt(n-1,Gr(i-m,m,a,-1))}case"next":return n===o-1?Ho:r==="top"?wt(n+1,"top"):wt(n+1,Gr(d,s(n+1),a,1));case"first":return wt(0,"top");case"last":return wt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(d>a)return{kind:"reveal",delta:Math.min(d-a,Xd(a))};if(n===o-1)return Ho;let m=ob(t);return wt(m.index,Gr(m.top,s(m.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,Xd(a))};if(n===0)return Ho;let m=ab(t);return wt(m.index,Gr(m.top,s(m.index),a,-1))}}},sb=({index:e,focusedRowTop:t,heightOf:r},n)=>tc(n,{index:e,offsetPx:-t},r),Jd=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let d=ib(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:sb(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}},ec=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Gr(r,n(e),t,1),tc=(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},Yr=(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:tc(t,s,i),heightOf:i}},Zd=1,rc=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=qr(o,n,t,r);return{start:Math.max(0,o.index-Zd),end:Math.min(t-1,a+Zd)}},qr=(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},nc=(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,Qd=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),oc=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(Qd(t,n,o))return t.reportHubId;if(Qd(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var ui=1,Xr=2,ci=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?ui:0)|(n===t||n===r?Xr:0),lb=e=>{if(Cr(e))return!0;let t=Oe(e);return t!==null&&e.contains(t)},db=(e,t)=>{let r=e.closest(`[${jn}]`);return r!==null&&r!==e&&Kt(r)===t&&Oe(e)===r},ac={capture:!0},ic=({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=>ci(r,l),p=l=>{let S=d.get(l);if(S===void 0)return;let x=(f(l)&Xr)!==0?"0":"-1";S.getAttribute("tabindex")!==x&&S.setAttribute("tabindex",x)},R=()=>{if(n===null)return;let l=n;n=null,p(l)},y=(l,S)=>{R();let x={...r};l(r);let C=r,w=new Set([x.selectedId,x.tabStopId,x.arrivingId,C.selectedId,C.tabStopId,C.arrivingId]);for(let L of w){if(L===null)continue;let V=ci(x,L),N=ci(C,L);if(V===N)continue;((V^N)&Xr)!==0&&(L===S?n=L:p(L));let H=s.get(L);if(H!==void 0)for(let K of[...H])K()}},T=l=>{let S=l.ownerDocument,x=n!==null&&!Cr(l);x?S.addEventListener("focusout",R,ac):R(),a=!0;try{l.focus({preventScroll:!0})}finally{a=!1,x&&S.removeEventListener("focusout",R,ac),R()}},h=l=>{let S=e();S!==null&&(o=null,lb(S)&&T(l))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:f,setTabStopId:l=>{y(S=>{S.tabStopId=l},null)},settleSelection:(l,S)=>{y(x=>{x.selectedId=l,x.tabStopId=S,x.arrivingId=null},null)},arrive:l=>{y(S=>{S.arrivingId=l},l)},subscribe:(l,S)=>{let x=s.get(l)??new Set;return x.add(S),s.set(l,x),()=>{x.delete(S),x.size===0&&s.get(l)===x&&s.delete(l)}},registerFocusTarget:(l,S)=>{if(d.set(l,S),p(l),o===l){h(S);return}i===null||i.reportHubId!==l||(Cr(S)||db(S,l))&&T(S)},unregisterFocusTarget:(l,S)=>{d.get(l)===S&&d.delete(l)},requestFocus:l=>{o=l;let S=d.get(l);S!==void 0&&h(S)},cancelFocusRequest:()=>{o=null},pendingFocusId:()=>o,isMovingFocus:()=>a,getFocusOwner:()=>i,setFocusOwner:l=>{i=l},restoreFocus:l=>{if(i===null||i.reportHubId!==l)return;let S=d.get(l);S===void 0||!Cr(S)||T(S)},holdBodiesOutside:l=>{m=l},isBodyHeldAt:l=>m!==null&&(l<m.start||l>m.end),registerHeldBody:(l,S,x)=>{let C={indexHint:S,release:x};return u.set(l,C),()=>{u.get(l)===C&&u.delete(l)}},releaseHeldBodiesWithin:(l,S)=>{if(l!==null)for(let[x,{indexHint:C,release:w}]of[...u]){let L=S(x,C);L>=l.start&&L<=l.end&&w()}}}};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}},mi=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),cb=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),sc=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),ub=new Map(Object.values(Je).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),lc=e=>{let t=ub.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},mb=(e,t,r)=>e==="row"||e==="page"?t+r:r,dc=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:lc(e)}),cc=(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",lc(r)):(e.pending=mb(e.axis,e.pending,r.amount),mi)}case"frame":{if(e.fence==="open")return mi;if(e.fence==="immediate")return e.fence="flush",cb;if(e.pending===0)return e.fence="open",mi;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?sc:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return sc}};var yb=Object.freeze({kind:"frame"}),bb=Object.freeze({kind:"keyup"}),Rb=Object.freeze({kind:"cancel"}),gb=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})}),hb=(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}},Sb=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),Eb=e=>{let t=Kt(e),r=rr(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},Bo=(e,t)=>{let r=te(a=>e.subscribe(t,a),[e,t]),n=te(()=>e.rowStateOf(t),[e,t]),o=fb(r,n,n);return{isCurrent:(o&ui)!==0,isTabStop:(o&Xr)!==0}},Vo=(e,t,r)=>{let[n,o]=Zr(()=>!e.isBodyHeldAt(r));return Yt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return pb(a),i},[e,t,r,n]),n},vb=e=>e==="first"||e==="last",pc=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:d,rowActivation:m})=>{let[u]=Zr(()=>ic({getContainer:()=>n.current,initialSelectedId:t})),f=Nt({items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m}),p=Nt(null),R=Nt(null),[y,T]=Zr(null),h=Nt(null),l=Nt(null),[S,x]=Zr(null),C=Nt(!1),w=Nt(null),[L,V]=Zr(0),N=uc(()=>({id:t,indexHint:t===null?null:$s(y,t)}),[t,y]),H=Nt(N);Yt(()=>{f.current={items:e,onSelect:r,rowSizing:s,arrowAlign:d,rowActivation:m},H.current=N},[e,r,s,d,m,N]);let K=te((c,b)=>{let v=R.current;if(v!==null&&v.items===c&&v.reportHubId===b)return v.index;let E=me(c,b,v!==null&&v.reportHubId===b?v.index:null);return E!==-1&&(R.current={items:c,reportHubId:b,index:E}),E},[]),O=te((c,b)=>{R.current={items:f.current.items,reportHubId:c,index:b},T(v=>v!==null&&v.reportHubId===c&&v.index===b?v:{reportHubId:c,index:b})},[]),X=te(c=>{let b=u.getFocusOwner();if(b===null)return null;let v=me(c,b.reportHubId,b.index);return v===-1?null:{reportHubId:b.reportHubId,index:v}},[u]),M=te(c=>{let b=f.current.items,v=c===null?null:{reportHubId:c,index:K(b,c)};return oc(b,X(b),v,p.current,w.current)},[K,X]),se=te(()=>{u.setTabStopId(M(u.getSelectedId()))},[u,M]),Ee=te(c=>{let b=u.getFocusOwner();b===c||b!==null&&c!==null&&b.reportHubId===c.reportHubId&&b.index===c.index||(u.setFocusOwner(c),C.current||se())},[u,se]),J=te(c=>{let b=zd(u.getFocusOwner(),c);Ee(b.owner),b.focusIndex!==null&&(h.current=b.focusIndex,u.requestFocus(b.owner.reportHubId))},[u,Ee]);Yt(()=>{u.settleSelection(t,M(t))},[u,t,e,L,M]),Yt(()=>{let c=o.current;if(c!==null)return Gd(c)},[o]),Yt(()=>{let c=n.current;if(c===null)return;let b=c.ownerDocument,v=E=>{let A=n.current,P=E.target;J({kind:"pointerPress",at:A!==null&&de(P)&&A.contains(P)?"inside":"outside"})};return b.addEventListener("pointerdown",v,{capture:!0}),()=>b.removeEventListener("pointerdown",v,{capture:!0})},[n,J]),Yt(()=>{let c=u.pendingFocusId();c!==null&&me(e,c,h.current)===-1&&u.cancelFocusRequest(),J({kind:"listChanged",items:e})},[u,e,J]);let Y=te(c=>{J({kind:"removed",reportHubId:c,selection:R.current,items:f.current.items})},[J]),j=te((c,b,v,E)=>{let{items:A,onSelect:P,rowSizing:Z,arrowAlign:W}=f.current,I=a.current;if(P===null||I===null)return null;let D=me(A,v.reportHubId,v.index);if(D===-1)return null;let B=Yr(I,D,A.length,Z);if(B===null)return null;let z=Jd(c,b,B,W),ne=A[z.index],$e=z.index!==D,at=$e||E&&vb(c)&&H.current.id!==ne.reportHubId;if($e){u.arrive(ne.reportHubId),w.current=ne.reportHubId,h.current=z.index,C.current=!0;try{u.requestFocus(ne.reportHubId)}finally{C.current=!1}}try{mc(()=>{at&&(u.pendingFocusId()===null&&u.settleSelection(ne.reportHubId,ne.reportHubId),P(ne.reportHubId,z.index)),z.alignment!==null&&i.toIndex(z.alignment.index,{align:z.alignment.align}),z.scrollDelta!==0&&i.by(z.scrollDelta),at&&(O(ne.reportHubId,z.index),V(oa=>oa+1));let Sr=rc(I,A.length,Z);u.holdBodiesOutside(Sr),u.releaseHeldBodiesWithin(Sr,(oa,bu)=>me(A,oa,bu))})}finally{u.holdBodiesOutside(null)}return $e?{reportHubId:ne.reportHubId,index:z.index}:{reportHubId:v.reportHubId,index:D}},[u,a,i,O]),ge=te(c=>{let{items:b,onSelect:v}=f.current;if(v===null)return;let E=me(b,c.reportHubId,c.index);E!==-1&&(v(c.reportHubId,E),O(c.reportHubId,E))},[O]),Pe=te(c=>{let b=n.current,v=b===null?null:Oe(b),E=b!==null&&v!==null&&b.contains(v)?Dr(It(v,b),f.current.items):null;return E===null?c.origin:E},[n]),q=te((c,b)=>{let v=Pe(c);if(b.axis==="activate"){ge(v);return}let E=hb(b.axis,b.amount),A=j(E.command,E.count,v,!1);A!==null&&(c.origin=A)},[Pe,ge,j]),ve=te(c=>{l.current=null,c.frame!==0&&c.view.cancelAnimationFrame(c.frame),x(null)},[]),Xe=te((c,b,v)=>{let{apply:E}=b;E!==null&&(b.flush?mc(()=>q(c,E)):q(c,E)),l.current===c&&(b.ended?ve(c):b.requestFrame&&(c.frame=c.view.requestAnimationFrame(v)))},[q,ve]),he=te((c,b,v)=>{Xe(c,cc(c.state,b),v)},[Xe]),pe=te(()=>{let c=l.current;c!==null&&(c.frame=0,he(c,yb,pe))},[he]),Ze=te(()=>{let c=l.current;c!==null&&he(c,bb,pe)},[he,pe]),Qe=te(()=>{let c=l.current;c!==null&&he(c,Rb,pe)},[he,pe]),yt=te((c,b,v)=>{x(H.current);let{state:E,effects:A}=dc(Je[c]),P={state:E,origin:b,view:v,frame:0};l.current=P,Xe(P,A,pe)},[Xe,pe]);Yt(()=>()=>{let c=l.current;l.current=null,c!==null&&c.frame!==0&&c.view.cancelAnimationFrame(c.frame)},[]);let bt=te(c=>{let b=l.current,v=b!==null&&c.repeat?di(c,f.current):null;if(b!==null&&v!==null&&v!=="exitBefore"&&v!=="exitAfter"&&Je[v].axis===b.state.axis){c.preventDefault(),he(b,gb[v],pe);return}let{items:E,onSelect:A,rowSizing:P,rowActivation:Z}=f.current,W=n.current,I=A===null?null:qd(lo(c),W,{rowActivation:Z});if(u.cancelFocusRequest(),Ze(),I===null||W===null)return;if(I==="exitBefore"||I==="exitAfter"){let z=ql(W,I==="exitBefore"?"before":"after");if(z===null)return;c.preventDefault(),z.focus();return}let D=Oe(W),B=Dr(It(D!==null&&W.contains(D)?D:c.target,W),E);if(B!==null){if(I!=="activate"){let z=a.current;if(z===null||Yr(z,B.index,E.length,P)===null)return}if(c.preventDefault(),c.repeat){yt(I,B,Le(W));return}I==="activate"?ge(B):j(I,1,B,!0)}},[u,n,a,pe,he,Ze,yt,ge,j]),Rt=te(()=>{Ze()},[Ze]),Ke=te(c=>{let b=n.current,v=c.target,E=It(v,b);if(J({kind:"focusIn",row:E===null?null:Eb(E)}),u.isMovingFocus())return;let A=a.current;if(b===null||A===null||!de(v)||!ko(v))return;let P=E===null?null:E.closest('[role="list"]');if(E===null||P===null)return;let Z=P.getBoundingClientRect(),W=E.getBoundingClientRect(),I=W.height<=Z.height?W:Sb(v.getBoundingClientRect(),St),D=nc(I,Z),B=A.getViewportSize();D===0||!(B>0&&Z.height>0)||i.by(D*B/Z.height)},[u,n,a,i,J]),Ae=te(c=>{let b=n.current,v=c.relatedTarget,E=de(v)?b?.contains(v)?"view":"outside":"nowhere";E!=="view"&&Qe(),J({kind:"focusOut",to:E})},[n,Qe,J]),ke=te(()=>{u.cancelFocusRequest(),Qe()},[u,Qe]),gt=te(c=>{p.current={visibleStartIndex:c.visibleStartIndex,visibleEndIndex:c.visibleEndIndex},w.current=null,se()},[se]),ze=uc(()=>({onKeyDown:bt,onKeyUp:Rt,onPointerDownCapture:ke,onWheelCapture:ke,onTouchStartCapture:ke,onFocus:Ke,onBlur:Ae}),[bt,Rt,ke,Ke,Ae]);return{cursor:u,containerProps:ze,handleRangeChange:gt,selection:N,settledSelection:S===null?N:S,resolveSelectedIndex:K,rememberSelection:O,focusAfterRemoval:Y}};import{jsx as fi}from"react/jsx-runtime";var Ib=g(Et,un,mn,cn,"h-full"),xb="h-full w-full",bc=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:d}=Bo(a,e),m=fc(dt),u=fc(lt),f=Vo(a,e,m),p=yc(null),R=yc(null),y=Tb(T=>(p.current=T,a.registerFocusTarget(e,T),()=>{p.current=null,a.unregisterFocusTarget(e,T)}),[a,e]);return pi(()=>{let T=p.current,h=T===null||!f?null:T.firstElementChild,l=h instanceof HTMLElement?h:null,S=R.current;S!==null&&S.body===l||(S!==null&&S.stop(),R.current=l===null?null:{body:l,stop:o(l)})}),pi(()=>()=>{R.current?.stop(),R.current=null},[]),pi(()=>{a.restoreFocus(e)},[a,e,n]),fi(Vr.Provider,{value:d,children:fi("div",{ref:y,className:Ib,"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:fi("div",{...He,className:xb})})})};import{jsx as $,jsxs as Ie}from"react/jsx-runtime";var Ab=g("flex w-full flex-col",tt,yn,Pt),_b=g(tt,Pt),Lb=g("rounded-2xl",Pt),wb=g("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",Pt),Ce="bg-slate-200 dark:bg-slate-700",Nb=(e,t)=>{let r=le(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},Ob=()=>Ie("div",{...He,className:_b,children:[Ie("div",{className:"mb-4 flex flex-wrap gap-2",children:[$("div",{className:g("h-6 w-20 rounded-full",Ce)}),$("div",{className:g("h-6 w-24 rounded-full",Ce)}),$("div",{className:g("h-6 w-24 rounded-full",Ce)}),$("div",{className:g("h-6 w-28 rounded-full",Ce)})]}),Ie("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Ie("div",{className:"space-y-4",children:[$("div",{className:g("h-5 w-40 rounded",Ce)}),$("div",{className:g("h-5 w-56 rounded",Ce)}),$("div",{className:g("h-24 rounded-xl",Ce)})]}),Ie("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[$("div",{className:g("mb-2 h-4 w-24 rounded",Ce)}),$("div",{className:g("mb-2 h-4 w-28 rounded",Ce)}),$("div",{className:g("h-4 w-32 rounded",Ce)})]})]}),Ie("div",{className:"space-y-4",children:[$("div",{className:g("h-4 w-24 rounded",Ce)}),Ie("div",{className:"flex flex-wrap gap-2",children:[$("div",{className:g("h-6 w-16 rounded-full",Ce)}),$("div",{className:g("h-6 w-16 rounded-full",Ce)}),$("div",{className:g("h-6 w-16 rounded-full",Ce)})]}),Ie("div",{className:"space-y-2",children:[$("div",{className:g("h-16 rounded-xl",Ce)}),$("div",{className:g("h-16 rounded-xl",Ce)})]})]})]}),Mb=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:d}=Wt(e.reportHubId,e.businessDate),{removeStaleItem:m}=xe(),{draftLabelName:u,sourceTypeConfigs:f}=k(),p=xt(),R=so(e.reportHubId),y=R==="editing"||R==="automatic",T=yi(!1),h=yi(!1),l=yi(!1);Rc(()=>{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 S=a?.labels.some(j=>j.name===u),x=n&&a?.userId===n,C=Uo(()=>a===null?void 0:()=>{T.current=!0,p.open(e.reportHubId,sr(a),!1)},[p,e.reportHubId,a]),w=mr(()=>{h.current=!0,p.dismiss(e.reportHubId)},[p,e.reportHubId]),L=mr(()=>{h.current=!0,p.discard(e.reportHubId)},[p,e.reportHubId]),V=mr(j=>{j===null||!T.current||(T.current=!1,j.focus())},[]),N=mr(j=>{j===null||!h.current||(h.current=!1,j.focus())},[]);Db(()=>{y||(h.current=!1)},[y]),Rc(()=>{a!==null&&(x&&S&&R==="display"?p.open(e.reportHubId,sr(a),!0):!S&&R==="automatic"&&p.discard(e.reportHubId))},[a,x,S,R,p,e.reportHubId]);let H=mr(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),K=Cb(),O=Uo(()=>({heading:`${K}-heading`,state:`${K}-state`,attachments:`${K}-attachments`,source:`${K}-source`}),[K]),X=a!==null&&a.attachments.length>0,M=a===null?void 0:Vt(a.sourceType,f),se=[O.state,...X?[O.attachments]:[],...M!==void 0?[O.source]:[]].join(" "),Ee=!i&&a!==null&&!y?{kind:"card",ids:O,describedBy:se}:{kind:"label",label:ie(e.businessDate)},J=!i&&a===null&&s,Y=i?"error":a===null?s?"loading":"missing":y?"editing":"resolved";return $(bc,{itemId:e.reportHubId,name:Ee,isBusy:J,bodyKind:Y,observeRowHeight:t,cursor:o,children:i?$(Pb,{itemId:e.reportHubId}):a?y?$("div",{...He,className:Lb,children:$(Ao,{report:a,onCancel:w,onPublishSuccess:L,titleInputRef:V})}):$(Sc,{item:e,report:a,sourceConfig:M,textIds:O,onCommentAdded:r,userId:n,onEdit:x?C:void 0,editButtonRef:N,onCommentSectionRemoved:H}):$(Ob,{})})},hc=gc(Mb),Sc=gc(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:d})=>{let{toggleStar:m,toggleRead:u,pendingStarUpdates:f,pendingReadUpdates:p,deleteReport:R}=xe(),{labels:y,headingLevel:T}=k(),h=Dt[T],l=Ln(t.sourceType,r),S=mr(()=>o?.(e.reportHubId),[o,e.reportHubId]),x=f.current.get(t.reportHubId),C=x===void 0?t.isStarred:x,w=p.current.get(t.reportHubId),L=w===void 0?t.isRead:w,V=!!(a&&t.userId===a),N=async()=>{try{await u(t.reportHubId,!L,t.date)}catch{}},H=async()=>{try{await m(t.reportHubId,!C,t.date)}catch{}},K=async()=>{confirm(y.confirmDelete)&&await R(t.reportHubId,t.date)},O=Uo(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
|
|
4
|
+
`).trim():"",[t.content]),X=Uo(()=>{let M=t.visitTimeFrom?.trim(),se=t.visitTimeTo?.trim();return M&&se?`${M} - ${se}`:M||se||null},[t.visitTimeFrom,t.visitTimeTo]);return Ie("div",{...He,onDoubleClick:i,className:Ab,children:[$(Be,{level:T,id:n.heading,className:"sr-only",children:`${ie(t.date)} ${le(t.employeeName)} ${le(t.subject)}`}),$("span",{id:n.state,className:"sr-only",children:y.rowState({isRead:L,isStarred:C})}),Ie("div",{className:"flex flex-col gap-4",children:[$(Wd,{report:t,sourceConfig:r,isRead:L,isStarred:C,isMine:V,onToggleRead:N,onToggleStar:H,onEdit:i,editButtonRef:s,onDelete:K,visitTimeDisplay:X,markerIds:n,labels:y}),Ie("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Ie("div",{className:"flex flex-col gap-4",children:[Ie("div",{className:"grid gap-4 sm:grid-cols-2",children:[Ie("div",{className:"flex flex-col gap-1",children:[$(Be,{level:h,className:it,children:y.customer}),$("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:le(t.customerName)})]}),Ie("div",{className:"flex flex-col gap-1",children:[$(Be,{level:h,className:it,children:y.subject}),$("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(t.subject)})]})]}),O&&Ie("div",{className:"flex flex-col gap-2",children:[$(Be,{level:h,className:it,children:y.content}),$("div",{className:g("whitespace-pre-wrap",fn),children:O})]}),t.interviewers.length>0&&Ie("div",{className:"flex flex-col gap-2",children:[$(Be,{level:h,className:it,children:y.interviewers}),$("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(M=>$("li",{className:g(_e,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:Nb(M,y)},JSON.stringify([M.name,M.affiliation])))})]}),$(vo,{attachments:t.attachments}),$($r,{report:t,userId:a,canComment:l,onCommentAdded:S,onSectionRemoved:d,formPlacement:"after-section"})]}),$(Fd,{report:t,visitTimeDisplay:X,labels:y})]})]})]})});Sc.displayName="DailyReportResolvedItem";var Pb=({itemId:e})=>{let{labels:t}=k();return $("div",{...He,className:wb,children:$("p",{children:t.reportLoadFailed(e)})})};import{useCallback as Cc,useId as Kb,useMemo as Dc,useRef as zb}from"react";import{useCallback as Ec,useLayoutEffect as vc,useMemo as Tc,useRef as bi}from"react";var kb=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},Hb=(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}},Fb=(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}},Bb=(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"?Hb(e.index,a,n.rowHeight,r.length):Fb(e.index,a,Fo(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:qr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},Vb=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=me(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},Ic=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=bi(null),a=bi(e),i=bi(r),s=Ec(()=>{let u=t.current,f=u===null?-1:u.getScrollPosition(),p=u===null||!(f>0)?null:u.getScrollAnchor(),R=a.current,y=p===null?void 0:R[p.index],T=u===null?0:u.getViewportSize();o.current=p===null||y===void 0||!(T>0)?null:{reportHubId:y.reportHubId,index:p.index,offsetPx:p.offsetPx,lastVisibleIndex:qr(p,T,R.length,i.current),recordedAt:f}},[t]),d=Tc(()=>({toIndex:(u,f)=>{let p=t.current;p!==null&&(p.scrollToIndex(u,f),s())},by:u=>{let f=t.current;f!==null&&(f.scrollBy(u),s())},resizeRow:(u,f)=>{let p=t.current;p!==null&&(p.updateItemSize(u,f),s())}}),[t,s]);vc(()=>{let u=a.current;a.current=e;let f=o.current,p=t.current;if(u===e||f===null||p===null||n())return;let R=Bb(f,p.getScrollPosition(),u,i.current,p.getViewportSize());if(R===null){o.current=null;return}let y=me(e,R.reportHubId,R.index),T=y===-1?Vb(u,e,R):y;if(T===-1){o.current=null;return}if(T===R.index&&!kb(u,e,R.index,R.lastVisibleIndex)){o.current=R;return}p.scrollToIndex(T,{align:"top",offset:-R.offsetPx}),o.current={reportHubId:e[T].reportHubId,index:T,offsetPx:R.offsetPx,lastVisibleIndex:qr({index:T,offsetPx:R.offsetPx},p.getViewportSize(),e.length,r),recordedAt:p.getScrollPosition()}},[e,t,r,n]),vc(()=>{i.current=r},[r]);let m=Ec(u=>{if(u.cause!=="clamp"){s();return}let f=o.current;f!==null&&(o.current={...f,recordedAt:f.recordedAt+u.delta})},[s]);return Tc(()=>({handleRangeChange:s,handleScrollAdjust:m,scroller:d}),[s,m,d])};import{useCallback as Ub}from"react";var Wb=20,xc=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>Ub(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=Wb)=>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 $b}from"react/jsx-runtime";var Wo=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=zb(null),s=Cc(C=>(i.current=C,()=>{i.current=null}),[]),{handleRangeChange:d,handleScrollAdjust:m,scroller:u}=Ic({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:f,...p}=pc({...a,containerRef:e,handleRef:i,scroller:u}),R=xc({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:u,itemsRef:r}),{labels:y}=k(),T=Kb(),h=a.onSelect!==null,l=Cc(C=>{f(C),d(),o(C)},[f,d,o]),S=Dc(()=>({role:"list","aria-label":y.title,"aria-describedby":h?T:void 0}),[y.title,h,T]),x=Dc(()=>h?$b("span",{id:T,className:"sr-only",children:y.listKeyboardHelp}):null,[h,T,y.listKeyboardHelp]);return{...p,handleRangeChange:l,handleScrollAdjust:m,attachVirtualScroll:s,handleRef:i,scroller:u,attachScrollContainer:R,contentProps:S,keyboardHelp:x}};import{Fragment as eR,jsx as mt,jsxs as Jb}from"react/jsx-runtime";var _c={pointerDragInputs:Fn,wheelSpeedMultiplier:Nn,inertiaOptions:nr(!1),enableKeyboardNavigation:!1},Yb={..._c,inertiaOptions:nr(!0)},Ac="daily-report-detail-list",qb=g("relative w-full",vn,Sn),Xb=g(je,"relative"),Zb=300,gi=e=>{let t=Me(null),[r,n]=Ko(null),o=zn(t),a=or(r),i=De(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return mt("div",{ref:i,className:gn,children:mt("div",{className:hn,children:o===null?null:mt(Qb,{...e,viewportHeight:o,reducedMotion:a})})})},Qb=({dailyReportItems:e,rowSetSize:t,userId:r,selectedItemId:n,onSelectItem:o,scrollRestoreRef:a,viewportHeight:i,reducedMotion:s})=>{let[{initialScrollAnchor:d,restored:m}]=Ko(()=>{let I=a?.current;if(!I||I.anchorReportHubId!==(n??null))return{initialScrollAnchor:void 0,restored:!1};if(!I.topItem)return{initialScrollAnchor:void 0,restored:!0};let D=e.findIndex(B=>B.reportHubId===I.topItem?.reportHubId);return D!==-1?{initialScrollAnchor:{index:D,offsetPx:I.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:I.topItem.index,offsetPx:0},restored:!0}}),u=Me(m),f=Me(n??null),p=Me(a?.current.measuredHeights??new Map),R=Me(null),y=Un(),T=Ia(),[h]=Ko(Yn),l=Me(null),S=Me(null),x=Me(e),C=Me(o);Gb(()=>{x.current=e,C.current=o},[e,o]);let w=Me(null),[L,V]=Ko(0),N=Me(null),H=e.length,K=t===void 0?H:t,O=De(I=>I>=H?Mn:e[I],[e,H]),X=De(I=>{let D=p.current.get(O(I).reportHubId);return D===void 0?Is:D},[O]),M=De(I=>O(I).reportHubId,[O]),se=Ri(()=>({kind:"measured",heightOf:X}),[X]),Ee=De((I,D)=>{w.current={reportHubId:I,index:D},V(B=>B+1),C.current?.(I)},[]),J=De((I,D)=>{if(H===0)return;let B=Math.max(0,I),z=Math.min(H-1,D);if(B>z)return;let ne=new Set;for(let $e=B;$e<=z;$e++){let at=O($e);if(at.businessDate&&ne.add(at.businessDate),ne.size>=Es)break}ne.forEach($e=>{T($e)})},[O,H,T]),Y=De(I=>{if(H===0)return;let{renderingStartIndex:D,renderingEndIndex:B,visibleStartIndex:z}=I,ne=O(z);ne.businessDate&&h.setLabel(ie(ne.businessDate)),J(D,B),J(B+1,B+On),J(D-On,D-1)},[O,H,J,h]),j=De(()=>N.current!==null,[]),{cursor:ge,containerProps:Pe,handleRangeChange:q,handleScrollAdjust:ve,attachVirtualScroll:Xe,handleRef:he,scroller:pe,attachScrollContainer:Ze,contentProps:Qe,keyboardHelp:yt,resolveSelectedIndex:bt,rememberSelection:Rt}=Wo({items:e,selectedId:n??null,onSelect:o===void 0?null:Ee,containerRef:R,rootRef:R,testId:Ac,itemsRef:x,rowSizing:se,arrowAlign:"top",rowActivation:!0,isViewRevealPending:j,onRangeChange:Y}),Ke=De((I,D)=>{if(he.current===null)return!1;let B=x.current,z=D!==null&&D.reportHubId===I?me(B,I,D.index):bt(B,I);return z===-1?!1:(u.current&&(u.current=!1,I===f.current)||D!==null&&D.reportHubId===I&&D.index===z||pe.toIndex(z,{align:"top"}),!0)},[he,bt,pe]);Ot(()=>{let I=w.current;w.current=null,N.current=null,n!=null&&(Ke(n,I)||(N.current=n))},[n,Ke]),Ot(()=>{let I=N.current;I!==null&&Ke(I,null)&&(N.current=null)},[e,Ke]),Ot(()=>{let I=a?.current;I&&(I.anchorReportHubId=n??null)},[n,a]),Ot(()=>{w.current=null},[L]);let Ae=Me(null),ke=De(()=>{he.current&&(Ae.current=he.current);let I=a?.current,D=Ae.current;if(I&&D){let z=D.getScrollAnchor(),ne=z?x.current[z.index]:void 0;z&&ne&&(I.topItem={reportHubId:ne.reportHubId,index:z.index,offsetPx:z.offsetPx})}let B=R.current;B&&(B.toggleAttribute(Zt,!0),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{B.toggleAttribute(Zt,!1),S.current=null},150))},[he,a]),gt=De(I=>mt(qn,{...I,store:h}),[h]);Ot(()=>{let I=R.current;if(!I)return;let D=()=>{h.setWheelScrollActive(!0),l.current&&clearTimeout(l.current),l.current=window.setTimeout(()=>{h.setWheelScrollActive(!1),l.current=null},Pn)};return I.addEventListener("wheel",D,{passive:!0}),()=>{I.removeEventListener("wheel",D),l.current&&clearTimeout(l.current)}},[h]);let ze=Me(null),c=De(I=>{for(let D of I){let B=D.target.parentElement,z=B===null?null:Kt(B),ne=B===null?null:rr(B),$e=D.borderBoxSize[0];if(z===null||ne===null||$e===void 0)continue;let at=$e.blockSize+2*St;if(p.current.get(z)===at)continue;let Sr=me(x.current,z,ne-1);Sr!==-1&&(p.current.set(z,at),pe.resizeRow(Sr,at))}},[pe]),b=De(I=>{ze.current===null&&(ze.current=new ResizeObserver(c));let D=ze.current;return D.observe(I),()=>D.unobserve(I)},[c]);Ot(()=>()=>{ze.current?.disconnect(),ze.current=null},[]),Ot(()=>{H!==0&&J(0,Math.min(H-1,On))},[H,J]);let v=Me(null),E=De(I=>{let D=me(x.current,I,null);D!==-1&&(v.current!==null&&clearTimeout(v.current),v.current=setTimeout(()=>{v.current=null;let B=me(x.current,I,D);B!==-1&&pe.toIndex(B,{align:"bottom"})},Zb))},[pe]);Ot(()=>()=>{v.current!==null&&clearTimeout(v.current)},[]);let A=De(I=>{if(!C.current)return;let D=It(I.target,R.current);if(D===null||Ys(I.target,D))return;let B=Dr(D,x.current);B!==null&&(Rt(B.reportHubId,B.index),Ee(B.reportHubId,B.index))},[Ee,Rt]),P=De((I,D)=>mt(dt.Provider,{value:D,children:mt(hc,{item:I,observeRowHeight:b,onCommentAdded:E,userId:r,cursor:ge})},I.reportHubId),[b,E,r,ge]),Z=Ri(()=>({...Hn,renderThumbOverlay:gt}),[gt]),W=Ri(()=>mt(lt.Provider,{value:K,children:mt(jb,{ref:Xe,itemCount:H,getItem:O,getItemKey:M,getItemHeight:X,viewportSize:i,initialScrollAnchor:d,overscanCount:kn,scrollBarOptions:Z,behaviorOptions:s?Yb:_c,onRangeChange:q,onScrollAdjust:ve,onScroll:ke,testId:Ac,className:qb,locale:y.locale,labels:y.labels,contentProps:Qe,children:P})}),[Xe,K,H,O,M,X,i,s,d,Z,q,ve,ke,y.locale,y.labels,Qe,P]);return mt(eR,{children:Jb("div",{ref:Ze,className:Xb,...Pe,onClick:A,children:[yt,W]})})};import wc from"lucide-react/dist/esm/icons/refresh-cw.js";import{createContext as rR,useContext as nR,useRef as oR}from"react";import{jsx as Lc,jsxs as tR}from"react/jsx-runtime";var Qr=e=>10**String(e).length-1,zo=({text:e,widestText:t,ref:r})=>tR("span",{ref:r,className:Qi,children:[Lc("span",{"aria-hidden":"true",className:Ji,children:t}),Lc("span",{className:es,children:e})]});import{jsx as qt,jsxs as $o}from"react/jsx-runtime";var hi=rR(!0),aR="inline-flex outline-none empty:not-focus:hidden",iR=(e,t,r)=>{if(r===null||r===0)return{text:e.streamProgressCount(t),widestText:e.streamProgressCount(Qr(t))};let n=Qr(Math.max(t,r));return{text:e.streamProgressRatio(t,r,Math.min(100,Math.round(t/r*100))),widestText:e.streamProgressRatio(n,n,100)}},sR=({labels:e,loadedCount:t,totalCount:r})=>{let{text:n,widestText:o}=iR(e,t,r);return $o("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:g(_e,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[qt("span",{"aria-hidden":"true",className:"size-2 rounded-full bg-blue-500 motion-safe:animate-pulse dark:bg-blue-400"}),qt(zo,{text:n,widestText:o})]})},lR=(e,t,r,n)=>e.phase==="streaming"?qt(sR,{labels:t,loadedCount:e.loadedCount,totalCount:e.totalCount}):e.phase==="retrying"?$o("span",{role:r?"status":void 0,"data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:g(_e,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[qt(wc,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?$o("span",{role:r?"status":void 0,"data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:g(_e,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,qt("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:n,className:g("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",Q),children:t.streamRetry})]}):e.isRevalidating?$o("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:[qt(wc,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null,Jr=()=>{let e=pl(),{labels:t}=k(),r=nR(hi),n=oR(null);return qt("span",{ref:n,tabIndex:-1,"data-daily-report-stream-status":"",className:aR,children:lR(e,t,r,()=>{n.current?.focus({preventScroll:!0}),to()})})};import{Panel as ou,PanelGroup as _g,PanelResizeHandle as Lg}from"@aiquants/resize-panels";import{VirtualScroll as wg}from"@aiquants/virtualscroll";import{useCallback as ot,useEffect as Zo,useLayoutEffect as Di,useMemo as Qo,useRef as hr,useState as ea}from"react";import{useSyncExternalStore as dR}from"react";var Nc="(max-width: 639px)",cR=()=>{},uR=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return cR;let t=window.matchMedia(Nc);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},mR=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(Nc).matches:!1,pR=()=>!1,Oc=()=>dR(uR,mR,pR);import{SwipeCloseGuardContext as kR,useOverlayEscapeStack as HR,useSwipeGuardState as FR,useSwipeToDismissOverlay as BR,useTapClick as VR,useTransitionDisplay as UR}from"@aiquants/swipe-overlay";import{useCallback as Yo,useEffect as yr,useId as Ii,useLayoutEffect as xi,useRef as et,useState as qo}from"react";import{createContext as fR,useMemo as yR}from"react";var Mc=Object.freeze({id:null,indexHint:null}),jo=fR(Object.freeze({selected:Mc,settled:Mc})),en=(e,t)=>{let{id:r,indexHint:n}=t;return yR(()=>{if(r===null)return null;let o=me(e,r,n);return o===-1?null:e[o]},[e,r,n])};import bR from"lucide-react/dist/esm/icons/check.js";import RR from"lucide-react/dist/esm/icons/pencil.js";import gR from"lucide-react/dist/esm/icons/trash-2.js";import{memo as hR,useCallback as Xt,useContext as SR,useDeferredValue as ER,useEffect as Si,useId as Bc,useLayoutEffect as Ei,useMemo as Kc,useRef as an,useState as Vc}from"react";import*as pt from"@radix-ui/react-tabs";import*as We from"react";import{jsx as tn}from"react/jsx-runtime";var Pc=We.createContext(null),kc=e=>{let t=We.useContext(Pc);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},Hc=(e,t)=>`${e}-trigger-${t}`,Fc=(e,t)=>`${e}-panel-${t}`,rn=We.forwardRef(({value:e,children:t,...r},n)=>{let o=We.useId(),a=We.useMemo(()=>({baseId:o,value:e}),[o,e]);return tn(pt.Root,{ref:n,value:e,...r,children:tn(Pc,{value:a,children:t})})});rn.displayName=pt.Root.displayName;var nn=We.forwardRef(({className:e,...t},r)=>tn(pt.List,{ref:r,className:g("inline-flex",e),...t}));nn.displayName=pt.List.displayName;var on=We.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=kc("TabsTrigger");return tn(pt.Trigger,{ref:n,value:t,...r,id:Hc(o,t),"aria-controls":Fc(o,t),className:g(`${Xi} ${Q}`,e)})});on.displayName=pt.Trigger.displayName;var pr=We.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=kc("TabsContent"),s=t===i;return tn("div",{ref:o,role:"tabpanel",id:Fc(a,t),"aria-labelledby":Hc(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:g(`mt-2 data-[state=inactive]:hidden ${Q}`,e),children:s?r:null})});pr.displayName="TabsContent";import{Fragment as PR,jsx as F,jsxs as nt}from"react/jsx-runtime";var zc=g(kt,"w-24 shrink-0"),Uc={field:"flex items-baseline",label:zc,value:"flex-1"},vR={field:"flex min-w-0 flex-1 items-baseline",label:zc,value:"wrap-break-word min-w-0 flex-1"},TR={field:"flex flex-col gap-1",label:kt,value:""},IR={field:"flex items-center gap-1",label:kt,value:""},Wc=g("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",aa,ki,Pi),xR=g("flex flex-col gap-1",ia),CR=g("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",Q),vi=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)})}},DR=(e,t,r,n,o,a)=>{let i=an(null),s=e?.reportHubId;Ei(()=>{i.current=null},[s]),Si(()=>{n||(i.current=null)},[n]);let d=Xt(async(m,u)=>{u||(i.current=m.reportHubId);try{await a(m.reportHubId,!m.isRead,m.date)}catch{}},[a]);return Si(()=>{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),500):null};u();let f=o.subscribe(u);return()=>{f(),m!==null&&clearTimeout(m)}},[e,t,r,d,o]),{handleToggleRead:d}},Ti="article",AR=["article","relations"],_R=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},LR=g("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",tt),wR=9,NR=.875,OR=16,$c=4*Math.ceil((2*St+2*pn+2*Bi+wR*NR*OR)/4),jc=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=k(),a=Bc(),i=Bc(),[s,d]=Vc(Ti),{selected:m,settled:u}=SR(jo),f=en(e,m),p=en(e,ER(u)),R=f===null?null:f.reportHubId,T=(p===null?null:p.reportHubId)===R,[h]=Vc(()=>vi(T));return Ei(()=>{h.set(T)},[h,T]),F("aside",{"data-testid":"daily-report-side-pane","data-report-id":f?.reportHubId,"data-displayed-report-id":p?.reportHubId,"aria-busy":T?void 0:!0,className:LR,children:p===null?F("div",{className:g("flex h-full flex-1 items-center justify-center text-center",Qt),children:F("p",{className:En,children:o.selectPrompt})}):F(Go,{item:p,headingId:a,authorId:i,activeTab:s,onActiveTabChange:d,autoMarkRead:t,isActive:!0,dwell:h,userId:r,onReportDeleted:n},p.reportHubId)})},Go=hR(({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:p,headingLevel:R}=k(),{report:y,error:T,isLoading:h}=Wt(e.reportHubId,e.businessDate),l=xt(),S=so(e.reportHubId),x=S==="editing"||S==="automatic",C=an(null),w=an(null),L=an(!1),V=an(!1),N=!!(d&&y?.userId===d),H=y?.labels.some(q=>q.name===u);Si(()=>{y!==null&&(N&&H&&S==="display"?l.open(e.reportHubId,sr(y),!0):!H&&S==="automatic"&&l.discard(e.reportHubId))},[y,N,H,S,l,e.reportHubId]);let K=Kc(()=>y===null?void 0:()=>{L.current=!0,l.open(e.reportHubId,sr(y),!1)},[l,e.reportHubId,y]),O=Xt(()=>{V.current=!0,l.dismiss(e.reportHubId)},[l,e.reportHubId]),X=Xt(()=>{V.current=!0,l.discard(e.reportHubId)},[l,e.reportHubId]),M=Xt(q=>{q===null||!L.current||(L.current=!1,q.focus())},[]),se=Xt(q=>{q===null||!V.current||(V.current=!1,q.focus())},[]),Ee=Xt(()=>{w.current?.focus({preventScroll:!0})},[]);Ei(()=>{x||!V.current||(V.current=!1,w.current?.focus())},[x]);let J=Xt(()=>{setTimeout(()=>{let q=C.current;q!==null&&q.scrollTo({top:q.scrollHeight,behavior:Js(q)})},100)},[]),Y=ie(e.businessDate),j=y===null?null:le(y.employeeName),ge=h||!y,Pe=y===null?void 0:Vt(y.sourceType,p);return nt(PR,{children:[nt("div",{className:xR,children:[F("dl",{className:"m-0",children:F(ce,{label:f.businessDate,classNames:TR,children:F(Be,{ref:w,level:R,id:t,tabIndex:-1,className:CR,children:Y})})}),nt("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(ce,{label:f.author,classNames:IR,valueId:r,children:ge?F("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):j})}),Pe?F(dr,{config:Pe,className:"ml-2"}):null]})]}),nt(rn,{value:n,onValueChange:q=>o(_R(q)),className:"flex min-h-0 flex-1 flex-col",children:[F("div",{className:ia,children:F(nn,{"aria-label":f.reportTabList,className:g(Yi,"grid grid-cols-2 gap-1"),children:AR.map(q=>F(on,{value:q,children:q==="article"?f.tabArticle:f.tabRelations},q))})}),F(pr,{ref:C,value:"article",className:Wc,children:x?y?F(Ao,{report:y,onCancel:O,onPublishSuccess:X,titleInputRef:M}):F("p",{className:Qt,children:f.loading}):F(MR,{report:y,sourceConfig:Pe,isLoading:h,error:T,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:J,userId:d,onEdit:N?K:void 0,editButtonRef:se,onReportDeleted:m,onCommentSectionRemoved:Ee})}),F(pr,{value:"relations",className:Wc,children:F("p",{className:Qt,children:f.relationsEmpty})})]})]})});Go.displayName="DailyReportSidePaneContent";var fr=({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}`}),MR=({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:p,onCommentSectionRemoved:R})=>{let{toggleStar:y,toggleRead:T,deleteReport:h}=xe(),{labels:l,headingLevel:S}=k(),x=Dt[S],{handleToggleRead:C}=DR(e,r,a,i,s,T),w=e!==null&&Ln(e.sourceType,t),L=Kc(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
|
|
5
5
|
`).replace(/<\/p>/gi,`
|
|
6
|
-
`).replace(/<[^>]+>/g,""):null,[e]),W=async H=>{try{await f(H.reportHubId,!H.isStarred,H.date)}catch{}},M=async H=>{if(confirm(l.confirmDelete)){try{await h(H.reportHubId,H.date)}catch{alert(l.deleteFailed);return}b(H.reportHubId)}};if(n)return U("p",{className:hr,children:l.reportLoadFailed(o.reportHubId)});let V=!e,G=!!(m&&e?.userId===m);return nt("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:c,children:[nt("div",{className:"flex items-start gap-2",children:[U("dl",{className:"m-0 flex min-w-0 flex-1",children:U(de,{label:l.subject,classNames:Ky,children:V?U(cr,{className:"w-3/4"}):U("span",{className:"text-sm",children:le(e?.subject)})})}),!V&&e&&nt("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[U("button",{type:"button",onClick:()=>W(e),className:we,title:e.isStarred?l.starRemove:l.starAdd,"aria-label":e.isStarred?l.starRemove:l.starAdd,"data-detail-star-button":e.reportHubId,children:U(nr,{filled:e.isStarred})}),U("button",{type:"button",onClick:()=>C(e,!1),className:we,title:e.isRead?l.markUnread:l.markRead,"aria-label":e.isRead?l.markUnread:l.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?U(Hy,{className:he.read}):U(ar,{})}),c&&U("button",{ref:p,type:"button",onClick:c,"data-detail-edit-button":e.reportHubId,className:we,title:l.edit,"aria-label":l.edit,children:U(Fy,{className:he.edit})}),G&&U("button",{type:"button",onClick:()=>M(e),"data-detail-delete-button":e.reportHubId,className:we,title:l.deleteReport,"aria-label":l.deleteReport,children:U(By,{className:he.delete})})]})]}),U("dl",{className:"m-0",children:U(de,{label:l.customer,classNames:Tc,children:V?U(cr,{className:"w-1/2"}):U("span",{className:"text-sm",children:le(e?.customerName)})})}),nt("div",{className:"flex flex-col gap-2",children:[U(He,{level:T,className:it,children:l.content}),U("div",{className:R("min-h-22",un),children:V?nt("div",{className:"space-y-2",children:[U(cr,{className:"w-full"}),U(cr,{className:"w-11/12"}),U(cr,{className:"w-4/5"})]}):O?U("div",{className:"whitespace-pre-wrap",children:O}):U("p",{className:"text-slate-500 dark:text-slate-400",children:l.contentEmpty})})]}),U("dl",{className:"m-0",children:U(de,{label:l.visitTime,classNames:Tc,children:V?U(cr,{className:"w-1/3"}):nt("span",{className:"text-sm",children:[le(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",le(e?.visitTimeTo)]})})}),e&&U(mo,{attachments:e.attachments}),e&&U(Wr,{report:e,userId:m,canComment:P,onCommentAdded:d,onSectionRemoved:S,formPlacement:"in-section",sectionClassName:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800"})]})};import{jsx as $t,jsxs as Lc}from"react/jsx-runtime";var cR="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]",uR={right:"var(--aqdr-overlay-right, 0px)"},mR="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",pR=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",Mi),fR=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),bR=50,wc=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=Uo(!1),[d,m]=Uo(!1),c=ot(null),p=ot(null),b=ot(null),S=ot(e),f=ot(!0),E=Zr(r,t),h=Bo(()=>{let C=o.current;if(C===null)return;let P=C.ownerDocument.body;b.current={body:P,overflow:P.style.overflow},P.style.overflow="hidden"},[o]),l=Bo(()=>{let C=b.current;C!==null&&(C.body.style.overflow=C.overflow,b.current=null)},[]);ur(()=>{if(f.current){f.current=!1,S.current=e;return}let C=!S.current;S.current=e,C&&e&&a!==null?s(!0):!e&&i&&(p.current=a,s(!1),l())},[e,a,i,l]);let g=e&&i&&E!==null;ur(()=>{if(g)m(!0);else{let C=setTimeout(()=>m(!1),300);return()=>clearTimeout(C)}},[g]),ur(()=>{if(e&&i&&a!==null&&!c.current){let C=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:C},"",window.location.href),c.current=C}else!(e&&i)&&c.current&&(c.current=null);return e&&i?h():l(),l},[e,i,a,h,l]),ur(()=>{let C=()=>{c.current&&(p.current=a,c.current=null,s(!1),n(null))};return window.addEventListener("popstate",C),()=>window.removeEventListener("popstate",C)},[a,n]);let T=Bo(()=>{e&&(p.current=a,s(!1),n(null),c.current&&(c.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:d,shouldShowOverlay:g,handleOverlayClose:T,lastClosedItemIdRef:p,selectedItem:E}},Nc=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=B(),s=ot(null),d=ci(),m=ci(),[c,p]=Uo(di),b=aR(),S=ci(),f=ot(!1),E=ot(e),h=ot(null),[l]=Uo(()=>li(e)),{isBlocked:g,requestBlock:T,reset:C}=iR(),P=dR(e,t),{overlayRef:O,overlayStyle:W,attemptClose:M,isSwiping:V}=sR({isOpen:e,onClose:r,isCloseBlocked:Bo(()=>g,[g]),skipWhenTextSelected:!0}),G=ot(M);_c(()=>{G.current=M,E.current=e,l.set(e)},[M,e,l]),ur(()=>{if(e)return b({id:S,onEscape:q=>Vr(q)&&G.current()})},[e,b,S]),_c(()=>{let q=s.current;if(q===null)return;if(e){if(f.current)return;q.showModal(),f.current=!0,q.ownerDocument.getElementById(d)?.focus();return}if(!f.current)return;f.current=!1;let K=Ne(q);K!==null&&q.contains(K)&&ya(K)&&K.blur(),q.close()},[e,d]),ur(()=>{e||C()},[e,C]);let H=lR(()=>M()),J=q=>{let K=po(q);if(Vr(K)){M()&&q.preventDefault();return}if(K.key==="Escape"){h.current=q.timeStamp;return}let ye=od(K,q.currentTarget);ye!==null&&(q.preventDefault(),ye.kind==="wrap"&&ye.element.focus())},F=q=>{q.preventDefault();let K=h.current;h.current=null,!(K!==null&&q.timeStamp-K<=bR)&&G.current()},se=q=>{let K=q.currentTarget;K.open||!E.current||(f.current=!1,!G.current()&&(K.showModal(),f.current=!0))};return P?Lc("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${d} ${m}`,tabIndex:-1,className:R(cR,e&&!V?"pointer-events-auto":"pointer-events-none"),style:uR,inert:!e,onKeyDown:J,onCancel:F,onClose:se,children:[$t("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:R(mR,e?"opacity-100":"opacity-0"),...H}),$t("div",{ref:O,"data-daily-report-overlay-panel":"",className:R(pR,e?"pointer-events-auto":"pointer-events-none"),style:W,children:Lc("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[$t(oR.Provider,{value:{isBlocked:g,requestBlock:T},children:$t("div",{"data-testid":"daily-report-side-pane","data-report-id":P.reportHubId,"data-displayed-report-id":P.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:$t(Fo,{item:P,headingId:d,authorId:m,activeTab:c,onActiveTabChange:p,autoMarkRead:n,isActive:e,dwell:l,userId:o,onReportDeleted:a},P.reportHubId)})}),$t("div",{className:"flex justify-start",children:$t("button",{type:"button","data-overlay-interactive":"true",className:fR,onClick:()=>M(),children:i.close})})]})})]}):null};import _R from"lucide-react/dist/esm/icons/check.js";import{createContext as LR,memo as Hc,useCallback as wR,useContext as pr,useEffect as NR,useId as nn,useMemo as Fc,useRef as OR}from"react";import{createContext as yR,createElement as RR,useLayoutEffect as gR,useMemo as hR,useRef as SR,useState as vR}from"react";var ER=6.75,TR=4,IR=1e-6,xR=e=>4*Math.ceil((2*ht+2*cn+TR+ER*e-IR)/4),Vo=yR(null),CR="data-daily-report-root-font-size-probe",AR={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},DR=e=>{let t=Ae(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])},Oc=()=>{let e=SR(null),[t,r]=vR(null);gR(()=>{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=xR(DR(o));d!==a&&(a=d,r(d))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=hR(()=>RR("div",{ref:e,"aria-hidden":!0,[CR]:"",style:AR}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as fr}from"react/jsx-runtime";var MR=R(St,ln,dn,sn),PR=R("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",tt,mn,vi),kR="min-w-24",HR="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",FR={touchAction:"manipulation"},BR=R("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",kR),UR=R("relative z-10",we),VR=R("flex h-full",tt),WR="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",mr="h-4 rounded bg-slate-200 dark:bg-slate-700",KR=()=>Y("div",{"data-skeleton":!0,...Pe,className:VR,children:fr("div",{className:WR,children:[fr("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:R(mr,"w-24")}),Y("div",{className:R(mr,"w-24")}),Y("div",{className:R(mr,"w-24")})]}),fr("div",{className:"space-y-2",children:[Y("div",{className:R(mr,"w-full")}),Y("div",{className:R(mr,"w-11/12")}),Y("div",{className:R(mr,"w-5/6")})]})]})}),zR=e=>{e.target===e.currentTarget&&e.preventDefault()},$R="h-full w-full",Bc=LR(!1),Mc=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=pr(dt),a=pr(lt),i=pr(Vo);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=Fc(()=>({height:i}),[i]),{isCurrent:d,isTabStop:m}=Lo(t,e),c=wo(t,e,o);return Y(Pr.Provider,{value:m,children:Y(Bc.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||!c?!0:void 0,"aria-current":r!==null&&d?"true":void 0,tabIndex:r===null?-1:void 0,className:MR,style:s,onMouseDown:zR,children:c?n:Y("div",{...Pe,className:$R})})})})},jR=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,GR=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(jR))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===is))return t;return r+=e.slice(n),o(),t},YR=({id:e})=>{let{labels:t}=B(),r=pr(dt),n=pr(lt);return Y("span",{id:e,hidden:!0,children:n===Cr?t.listRowPositionInUnknownTotal(r+1):t.listRowPosition(r+1,n)})},qR=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=pr(Bc);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:BR,children:o})},Pc=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=tr();return Y("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:UR,children:n})},Uc=Hc(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=B(),{toggleStar:i,toggleRead:s}=Te(),d=nn(),m=nn(),c=nn(),p=nn(),b=nn(),S=Fc(()=>GR(t.content??null),[t.content]),f=le(t.employeeName),E=ie(e.businessDate),h=W=>{W.currentTarget.focus({preventScroll:!0});let M=Ls(W.currentTarget);M!==null&&r(e.reportHubId,M)},l=async()=>{let W=!t.isStarred;try{await i(t.reportHubId,W,t.date)}catch{}},g=async()=>{let W=!t.isRead;try{await s(t.reportHubId,W,t.date)}catch{}},T=t.isStarred?o.starRemove:o.starAdd,C=t.isRead?o.markUnread:o.markRead,P=kt(t.sourceType,a),O=[d,c,...t.attachments.length>0?[p]:[],...P===void 0?[]:[b],m].join(" ");return fr("div",{"data-daily-report-card":!0,...Pe,style:FR,className:PR,children:[Y(YR,{id:d}),Y("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),fr(qR,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:O,onClick:h,children:[Y("span",{className:R(Ce,"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:E})})," ",Y("span",{className:R(Ce,"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})})]}),fr("div",{className:R(Ii,"ml-auto"),children:[Y(Sr,{id:p,count:t.attachments.length,label:o.attachments}),P?Y(or,{id:b,config:P}):null,Y(Pc,{label:T,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:l,children:Y(nr,{filled:t.isStarred})}),Y(Pc,{label:C,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:g,children:t.isRead?Y(_R,{className:he.read}):Y(ar,{})})]}),Y("div",{id:m,className:HR,children:S.length>0?S.map((W,M)=>Y("p",{className:"wrap-break-word line-clamp-1",children:W},M)):Y("p",{children:o.contentEmptyPreview})})]})});Uc.displayName="ListReportCard";var kc=(e,t)=>wR(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),ui=Hc(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=B(),{removeStaleItem:o}=Te(),{report:a,error:i,isLoading:s,isRefetching:d}=Ft(e.reportHubId,e.businessDate),m=OR(!1);NR(()=>{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 c=kc(r,e.reportHubId),p=kc(r,e.reportHubId),b=(S,f)=>Y(Mc,{reportHubId:e.reportHubId,cursor:r,cardless:{label:ie(e.businessDate),isBusy:f,focusTargetRef:c},children:S});return i?b(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?b(Y(KR,{}),!0):a?Y(Mc,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(Uc,{item:e,report:a,onSelect:t,focusTargetRef:p})}):b(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)});ui.displayName="ListReportItem";import{Fragment as pg,jsx as De,jsxs as zo}from"react/jsx-runtime";var Kc={pointerDragInputs:wn,inertiaOptions:Jt(!1),wheelSpeedMultiplier:xn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},QR={...Kc,inertiaOptions:Jt(!0)},eg=Object.freeze({value:360,unit:"pixels"}),tg=Object.freeze({value:160,unit:"pixels"}),rg=Object.freeze({value:Ac,unit:"pixels"}),ng=Object.freeze({value:520,unit:"pixels"}),og=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),ag=R("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",X),ig=R("relative w-full",Rn,bn),sg=R(We,"relative isolate overflow-hidden"),Wc="daily-report-list",lg=()=>!1,dg=e=>{let[t,r]=$o(!1);return mi(()=>{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<as)},a=new(Ae(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},pi=e=>{let t=br(null),[r,n]=$o(null),o=Bn(t),a=dg(t),{rowSlotHeight:i,remProbe:s}=Oc(),d=Qt(r),m=at(c=>(t.current=c,n(c),()=>{t.current=null,n(null)}),[]);return zo("div",{ref:m,className:pn,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:De(cg,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:d})]})},cg=({dailyReportItems:e,rowSetSize:t,autoMarkRead:r=!1,selectedReportHubId:n,onSelectItem:o,userId:a,scrollOffsetRef:i,rootRef:s,viewportHeight:d,rowSlotHeight:m,isContainerNarrow:c,reducedMotion:p})=>{let[b]=$o(()=>i?.current??0),S=br(null),{labels:f}=B(),E=kn(),[h]=$o(Vn),g=bc()||c,T=br(null),C=e.length,P=t===void 0?C:t,O=br(null),W=at(v=>o(v),[o]),M=at(v=>v<C?e[v]:An,[e,C]),V=at(v=>{let A=M(v.visibleStartIndex);A.reportHubId>0&&h.setLabel(ie(A.businessDate))},[M,h]),G=Ko(()=>({kind:"uniform",rowHeight:m}),[m]),H=br(e);mi(()=>{H.current=e},[e]);let{cursor:J,containerProps:F,handleRangeChange:se,handleScrollAdjust:q,attachVirtualScroll:K,handleRef:ye,scroller:re,attachScrollContainer:_e,contentProps:Me,keyboardHelp:Q,selection:je,settledSelection:Re,resolveSelectedIndex:oe,rememberSelection:ue,focusAfterRemoval:Ge}=Oo({items:e,selectedId:n,onSelect:W,containerRef:S,rootRef:s,testId:Wc,itemsRef:H,rowSizing:G,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:lg,onRangeChange:V}),{isMobileDetailOpen:Ye,setIsMobileDetailOpen:bt,isOverlayMounted:yt,shouldShowOverlay:Rt,handleOverlayClose:Qe,lastClosedItemIdRef:qe,selectedItem:Ve}=wc({isMobileLayout:g,selection:je,dailyReportItems:e,onSelectItem:o,rootRef:s}),Xe=Ko(()=>({selected:je,settled:Re}),[je,Re]);Wo(()=>{let v=S.current,A=()=>{h.setWheelScrollActive(!0),T.current&&clearTimeout(T.current),T.current=window.setTimeout(()=>{h.setWheelScrollActive(!1),T.current=null},Dn)};return v?.addEventListener("wheel",A,{passive:!0}),()=>{v?.removeEventListener("wheel",A),T.current&&clearTimeout(T.current)}},[h]),Wo(()=>{!C&&n!==null&&o(null)},[C,n,o]),Wo(()=>{if(Ye||qe.current===null)return;let v=qe.current;qe.current=null;let A=oe(e,v);if(A===-1)return;let N=ye.current;if(N!==null){let z=$r(N,A,e.length,G),me=z===null?"none":kd(z);me!=="none"&&re.toIndex(A,{align:me})}J.requestFocus(v)},[Ye,e,qe,J,oe,ye,G,re]),Wo(()=>{C>0&&h.setLabel(ie(e[0].businessDate))},[e,C,h]);let Le=at((v,A)=>{v<=0||(ue(v,A),o(v),g&&bt(!0))},[g,o,bt,ue]),I=at(()=>m,[m]),w=br(m);mi(()=>{let v=w.current;w.current=m;let A=ye.current;if(v===m||A===null)return;let N=A.getScrollPosition();N>0&&re.by(N*m/v-N)},[ye,m,re]);let u=at(v=>M(v).reportHubId,[M]),y=at((v,A)=>De(dt.Provider,{value:A,children:De(ui,{item:v,onSelect:Le,cursor:J})},v.reportHubId),[Le,J]),_=at(v=>{i&&(i.current=v);let A=S.current;A&&(A.toggleAttribute(jt,!0),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>{A.toggleAttribute(jt,!1),O.current=null},150))},[i]),x=at(v=>De(Wn,{...v,store:h}),[h]),L=Ko(()=>zo("div",{ref:_e,className:sg,...F,children:[Q,De(lt.Provider,{value:P,children:De(Vo.Provider,{value:m,children:De(JR,{ref:K,itemCount:C,getItem:M,getItemKey:u,getItemHeight:I,viewportSize:d,initialScrollOffset:b,overscanCount:_n,scrollBarOptions:{...Ln,renderThumbOverlay:x},behaviorOptions:p?QR:Kc,onRangeChange:se,onScrollAdjust:q,onScroll:_,testId:Wc,className:ig,locale:E.locale,labels:E.labels,contentProps:Me,children:y})})})]}),[_e,K,F,P,C,M,u,I,d,m,p,b,x,se,q,_,Q,Me,E.locale,E.labels,y]),k=Ko(()=>zo(XR,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[De(Vc,{id:"daily-report-list-panel",defaultSize:eg,minSize:tg,maxSize:ng,contentOverflow:"hidden",className:ug,children:L}),De(ZR,{id:"daily-report-list-handle",thickness:10,indicator:og,className:ag,"aria-label":f.resizeHandle}),De(Vc,{id:"daily-report-detail-panel",minSize:rg,contentOverflow:"hidden",className:mg,children:De(Dc,{dailyReportItems:e,autoMarkRead:r,userId:a,onReportDeleted:Ge})})]}),[L,f.resizeHandle,e,r,a,Ge]);return zo(pg,{children:[De("div",{className:fn,children:g?De("div",{className:We,children:L}):De(Ho.Provider,{value:Xe,children:k})}),yt&&De(Nc,{isOpen:Rt,selectedItem:Ve,onClose:Qe,autoMarkRead:g&&r,userId:a,onReportDeleted:Ge})]})},ug=R("flex min-h-0",Ri),mg=R("flex min-h-0 flex-1",St);import{useEffect as Zc,useLayoutEffect as Ng,useRef as Og}from"react";import Rg from"lucide-react/dist/esm/icons/plus.js";import gg from"lucide-react/dist/esm/icons/refresh-cw.js";import hg from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as qc,useMemo as Sg,useRef as bi,useState as Go}from"react";import{useSearchParams as vg}from"react-router";import{useEffect as fg,useRef as zc,useState as bg}from"react";var $c=(e,t,r=250)=>{let n=Qt(t),[o,a]=bg(e),i=zc(e),s=zc(!0);return fg(()=>{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=Ae(t),c=0,p=null,b=S=>{p===null&&(p=S);let f=Math.min(1,Math.max(0,(S-p)/r)),E=1-(1-f)**3,h=Math.round(d+(e-d)*E);i.current=h,a(h),f<1&&(c=m.requestAnimationFrame(b))};return c=m.requestAnimationFrame(b),()=>m.cancelAnimationFrame(c)},[e,r,n,t]),n?e:o};import*as on from"@radix-ui/react-switch";import*as Gc from"react";import{jsx as jc}from"react/jsx-runtime";var jo=Gc.forwardRef(({className:e,...t},r)=>jc(on.Root,{className:R(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${Ai} ${_i} ${X}`,e),...t,ref:r,children:jc(on.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${Di} ${Li}`})}));jo.displayName=on.Root.displayName;import{useSyncExternalStore as yg}from"react";var Yc=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)})}},fi=e=>yg(e.subscribe,e.get,e.get);import{Fragment as wg,jsx as te,jsxs as ft}from"react/jsx-runtime";var Eg="list",Tg=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},Ig=R(Ni,Fi,"ml-[8px] flex flex-wrap items-center gap-2"),Xc="relative h-4 w-4 p-0 after:absolute after:-inset-1",xg="flex items-center gap-2",Cg=({count:e})=>{let{labels:t}=B(),[r,n]=Go(null),o=$c(e,r);return te(Po,{ref:n,text:t.totalCount(o),widestText:t.totalCount(qr(Math.max(e,o)))})},Ag=({setSize:e})=>{let{labels:t}=B();return e===Cr?te("span",{children:t.totalCountLoading}):te(Cg,{count:e})},Dg=({selectionStore:e,dailyReportItems:t,rowSetSize:r,autoMarkRead:n,userId:o,scrollOffsetRef:a})=>{let i=fi(e);return te(pi,{dailyReportItems:t,rowSetSize:r,autoMarkRead:n,selectedReportHubId:i,onSelectItem:e.set,userId:o,scrollOffsetRef:a})},_g=({selectionStore:e,dailyReportItems:t,rowSetSize:r,userId:n,scrollRestoreRef:o})=>{let a=fi(e);return te(ai,{dailyReportItems:t,rowSetSize:r,userId:n,selectedItemId:a,onSelectItem:e.set,scrollRestoreRef:o})},Lg=({tabItems:e,actions:t})=>{let[r,n]=Go(Eg),{labels:o}=B();return ft(Qr,{value:r,onValueChange:a=>n(Tg(a)),className:R("@container/views",We),children:[ft("div",{className:R(Ig,Bi[r]),children:[te(en,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>te(tn,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>te(dr,{value:a,className:R("mt-0",We),children:i},a))]})},yi=({userId:e})=>{let[t,r]=Go(!1),{labels:n,renderHeader:o,showDevControls:a}=B(),{toggleSse:i,createReport:s,refetchData:d,clearCacheAndRefetch:m}=Te(),{isSseEnabled:c,items:p}=lo(),[b]=vg(),S=Os(p.length,Js()),f=bi(0),E=bi({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[h]=Go(()=>Yc(p.length===0?null:p[0].reportHubId)),l=bi(!1);qc(()=>{!l.current&&p.length>0&&(l.current=!0,h.get()===null&&h.set(p[0].reportHubId))},[p,h]);let g=async()=>{await d()},T=async()=>{await m()},C=async()=>{let M=b.get("businessDate")||Qo(),V=await s(M);h.set(V)};qc(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let P=W=>{r(W),localStorage.setItem("daily-report-auto-read",String(W))},O=Sg(()=>[{value:"list",label:n.tabList,content:te(Dg,{selectionStore:h,dailyReportItems:p,rowSetSize:S,autoMarkRead:t,userId:e,scrollOffsetRef:f})},{value:"tree",label:n.tabTree,content:te("div",{className:R("flex flex-1 items-center justify-center",Gt),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:te(_g,{selectionStore:h,dailyReportItems:p,rowSetSize:S,userId:e,scrollRestoreRef:E})}],[p,S,t,e,n,h]);return ft(wg,{children:[o({title:n.title,annotation:ft("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[te(Xr,{}),te(Ag,{setSize:S}),te("span",{children:n.debounce(qt)})]})}),te("div",{className:Rr,children:te("div",{className:gr,children:te(Lg,{tabItems:O,actions:ft("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[ft(ut,{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:[te(Rg,{className:"h-3 w-3"}),te("span",{children:n.createReport})]}),a&&ft("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(jo,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:c,onCheckedChange:i}),ft("div",{className:xg,"data-testid":"dev-icon-buttons",children:[te(ut,{variant:"ghost",size:"icon",onClick:g,className:R(Xc,"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(hg,{className:"size-3"})}),te(ut,{variant:"ghost",size:"icon",onClick:T,className:R(Xc,"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(gg,{className:"size-3"})})]})]}),ft("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[te(jo,{id:"auto-read-mode",checked:t,onCheckedChange:P}),te(Kr,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as eu,jsx as be,jsxs as Yo}from"react/jsx-runtime";var Jc=R(We,St),Qc=R("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 dark:text-slate-300",tt),Mg=()=>{let{labels:e,renderHeader:t}=B();return Yo(eu,{children:[t({title:e.title,annotation:be("span",{className:R("font-bold",hr),children:e.loadErrorBadge})}),be("div",{className:Rr,children:be("div",{className:gr,children:be("div",{className:Jc,children:Yo("div",{className:R(Qc,"border-red-200 dark:border-red-900"),children:[be("p",{className:R("font-medium",hr),children:e.loadError}),be("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>qn(),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})]})})})})]})},Pg=()=>{let{labels:e,renderHeader:t}=B();return Yo(eu,{children:[t({title:e.title,annotation:Yo("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[be(Xr,{}),be("span",{children:e.totalCountLoading}),be("span",{children:e.debounce(qt)})]})}),be("div",{className:Rr,children:be("div",{className:gr,children:be("div",{className:Jc,children:be("div",{className:Qc,children:e.loadingIds})})})})]})},kg=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=B(),o=Jn(),a=Og(n);Ng(()=>{a.current=n}),Zc(()=>{Lr({apiBasePath:r,userKey:t??null})},[r,t]),Zc(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.hasItems||o.phase==="complete";return be(La,{children:be(Ma,{user:e,userId:t,children:i?be(yi,{userId:t}):o.phase==="failed"?be(Mg,{}):be(Pg,{})},t??"anonymous")})},Hg=({config:e,...t})=>be(sa,{config:e,children:be(kg,{...t})});var Fg=new Set(Bs.filter(e=>e!=="clearCache")),Bg=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:d,nextUrl:m,text:c})=>{if(!n)return!1;if(!(r.pathname===m.pathname&&r.search===m.search&&r.hash===m.hash))return n;if(a){let S=a.get(ke.intent);if(typeof S=="string"&&Fg.has(S))return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||d!==void 0||c!==void 0?n:!1},Ug=e=>{let t=async r=>{Ta();let n=await r.serverLoader(),o=n.userId;return Ea({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{Ji as DAILY_REPORT_LABEL_CATALOGS,ra as DAILY_REPORT_LABEL_KEYS,Vu as DAILY_REPORT_LAYOUT_LATTICE_PX,Ma as DailyReportActionProvider,Sr as DailyReportAttachmentIndicator,sa as DailyReportConfigProvider,ai as DailyReportDetailList,La as DailyReportErrorProvider,Dr as DailyReportIdsStreamClient,Xr as DailyReportIdsStreamStatus,pi as DailyReportList,Hg as DailyReportPage,yi as DailyReportResolvedContent,Ea as bootstrapDailyReportIdsStreamSession,Ug as createDailyReportClientLoader,Bg as dailyReportShouldRevalidate,vr as defaultDailyReportClientConfig,Lr as ensureDailyReportIdsStreamSession,Ta as primeDailyReportIdsStreamSession,aa as resolveDailyReportLabels,kt as resolveSourceTypeConfig,Xn as resyncDailyReportIdsStream,Sp as useDailyReportActionContext,$a as useDailyReportComments,B as useDailyReportConfig,Ft as useDailyReportDetail,Vm as useDailyReportIdsStream,pa as useDailyReportPrefetch,Da as useDailyReportSseConnection};
|
|
6
|
+
`).replace(/<[^>]+>/g,""):null,[e]),V=async O=>{try{await y(O.reportHubId,!O.isStarred,O.date)}catch{}},N=async O=>{if(confirm(l.confirmDelete)){try{await h(O.reportHubId,O.date)}catch{alert(l.deleteFailed);return}p(O.reportHubId)}};if(n)return F("p",{className:Er,children:l.reportLoadFailed(o.reportHubId)});let H=!e,K=!!(m&&e?.userId===m);return nt("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:u,children:[nt("div",{className:"flex items-start gap-2",children:[F("dl",{className:"m-0 flex min-w-0 flex-1",children:F(ce,{label:l.subject,classNames:vR,children:H?F(fr,{className:"w-3/4"}):F("span",{className:"text-sm",children:le(e?.subject)})})}),!H&&e&&nt("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[F("button",{type:"button",onClick:()=>V(e),className:Ne,title:e.isStarred?l.starRemove:l.starAdd,"aria-label":e.isStarred?l.starRemove:l.starAdd,"data-detail-star-button":e.reportHubId,children:F(lr,{filled:e.isStarred})}),F("button",{type:"button",onClick:()=>C(e,!1),className:Ne,title:e.isRead?l.markUnread:l.markRead,"aria-label":e.isRead?l.markUnread:l.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?F(bR,{className:Se.read}):F(cr,{})}),u&&F("button",{ref:f,type:"button",onClick:u,"data-detail-edit-button":e.reportHubId,className:Ne,title:l.edit,"aria-label":l.edit,children:F(RR,{className:Se.edit})}),K&&F("button",{type:"button",onClick:()=>N(e),"data-detail-delete-button":e.reportHubId,className:Ne,title:l.deleteReport,"aria-label":l.deleteReport,children:F(gR,{className:Se.delete})})]})]}),F("dl",{className:"m-0",children:F(ce,{label:l.customer,classNames:Uc,children:H?F(fr,{className:"w-1/2"}):F("span",{className:"text-sm",children:le(e?.customerName)})})}),nt("div",{className:"flex flex-col gap-2",children:[F(Be,{level:x,className:it,children:l.content}),F("div",{className:g("min-h-22",fn),children:H?nt("div",{className:"space-y-2",children:[F(fr,{className:"w-full"}),F(fr,{className:"w-11/12"}),F(fr,{className:"w-4/5"})]}):L?F("div",{className:"whitespace-pre-wrap",children:L}):F("p",{className:"text-slate-500 dark:text-slate-400",children:l.contentEmpty})})]}),F("dl",{className:"m-0",children:F(ce,{label:l.visitTime,classNames:Uc,children:H?F(fr,{className:"w-1/3"}):nt("span",{className:"text-sm",children:[le(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",le(e?.visitTimeTo)]})})}),e&&F(vo,{attachments:e.attachments}),e&&F($r,{report:e,userId:m,canComment:w,onCommentAdded:d,onSectionRemoved:R,formPlacement:"in-section",sectionClassName:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800"})]})};import{jsx as Mt,jsxs as Gc}from"react/jsx-runtime";var WR="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]",KR={right:"var(--aqdr-overlay-right, 0px)"},zR="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",$R=g("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",Zi),jR=g("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",Q),GR="flex shrink-0 justify-center empty:hidden",YR=50,Yc=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=qo(!1),[d,m]=qo(!1),u=et(null),f=et(null),p=et(null),R=et(e),y=et(!0),T=en(r,t),h=Yo(()=>{let C=o.current;if(C===null)return;let w=C.ownerDocument.body;p.current={body:w,overflow:w.style.overflow},w.style.overflow="hidden"},[o]),l=Yo(()=>{let C=p.current;C!==null&&(C.body.style.overflow=C.overflow,p.current=null)},[]);yr(()=>{if(y.current){y.current=!1,R.current=e;return}let C=!R.current;R.current=e,C&&e&&a!==null?s(!0):!e&&i&&(f.current=a,s(!1),l())},[e,a,i,l]);let S=e&&i&&T!==null;yr(()=>{if(S)m(!0);else{let C=setTimeout(()=>m(!1),300);return()=>clearTimeout(C)}},[S]),yr(()=>{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?h():l(),l},[e,i,a,h,l]),yr(()=>{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 x=Yo(()=>{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:S,handleOverlayClose:x,lastClosedItemIdRef:f,selectedItem:T}},qc=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=k(),{registerNoticeHost:s}=po(),d=et(null),m=et(null),u=Ii(),f=Ii(),[p,R]=qo(Ti),y=HR(),T=Ii(),h=et(!1),l=et(e),S=et(null),[x]=qo(()=>vi(e)),{isBlocked:C,requestBlock:w,reset:L}=FR(),V=UR(e,t),{overlayRef:N,overlayStyle:H,attemptClose:K,isSwiping:O}=BR({isOpen:e,onClose:r,isCloseBlocked:Yo(()=>C,[C]),skipWhenTextSelected:!0}),X=et(K);xi(()=>{X.current=K,l.current=e,x.set(e)},[K,e,x]),yr(()=>{if(e)return y({id:T,onEscape:Y=>$t(Y)&&X.current()})},[e,y,T]),xi(()=>{let Y=d.current;if(Y===null)return;if(e){if(h.current)return;Y.showModal(),h.current=!0,Y.ownerDocument.getElementById(u)?.focus();return}if(!h.current)return;h.current=!1;let j=Oe(Y);j!==null&&Y.contains(j)&&xr(j)&&j.blur(),Y.close()},[e,u]),xi(()=>{let Y=m.current;if(!(!e||Y===null))return s(Y)},[e,s]),yr(()=>{e||L()},[e,L]);let M=VR(()=>K()),se=Y=>{let j=lo(Y);if($t(j)){K()&&Y.preventDefault();return}if(j.key==="Escape"){S.current=Y.timeStamp;return}let ge=Cl(j,Y.currentTarget);ge!==null&&(Y.preventDefault(),ge.kind==="wrap"&&ge.element.focus())},Ee=Y=>{Y.preventDefault();let j=S.current;S.current=null,!(j!==null&&Y.timeStamp-j<=YR)&&X.current()},J=Y=>{let j=Y.currentTarget;j.open||!l.current||(h.current=!1,!X.current()&&(j.showModal(),h.current=!0))};return V?Gc("dialog",{ref:d,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${u} ${f}`,tabIndex:-1,className:g(WR,e&&!O?"pointer-events-auto":"pointer-events-none"),style:KR,inert:!e,onKeyDown:se,onCancel:Ee,onClose:J,children:[Mt("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:g(zR,e?"opacity-100":"opacity-0"),...M}),Mt("div",{ref:N,"data-daily-report-overlay-panel":"",className:g($R,e?"pointer-events-auto":"pointer-events-none"),style:H,children:Gc("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Mt(kR.Provider,{value:{isBlocked:C,requestBlock:w},children:Mt("div",{"data-testid":"daily-report-side-pane","data-report-id":V.reportHubId,"data-displayed-report-id":V.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Mt(Go,{item:V,headingId:u,authorId:f,activeTab:p,onActiveTabChange:R,autoMarkRead:n,isActive:e,dwell:x,userId:o,onReportDeleted:a},V.reportHubId)})}),Mt("div",{ref:m,"data-daily-report-notice-slot":"","data-overlay-interactive":"true",className:GR}),Mt("div",{className:"flex justify-start",children:Mt("button",{type:"button","data-overlay-interactive":"true",className:jR,onClick:()=>K(),children:i.close})})]})})]}):null};import lg from"lucide-react/dist/esm/icons/check.js";import{createContext as dg,memo as eu,useCallback as cg,useContext as Rr,useEffect as ug,useId as sn,useMemo as tu,useRef as mg}from"react";import{createContext as qR,createElement as XR,useLayoutEffect as ZR,useMemo as QR,useRef as JR,useState as eg}from"react";var tg=6.75,rg=4,ng=1e-6,og=e=>4*Math.ceil((2*St+2*pn+rg+tg*e-ng)/4),Xo=qR(null),ag="data-daily-report-root-font-size-probe",ig={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},sg=e=>{let t=Le(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])},Xc=()=>{let e=JR(null),[t,r]=eg(null);ZR(()=>{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=og(sg(o));d!==a&&(a=d,r(d))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=QR(()=>XR("div",{ref:e,"aria-hidden":!0,[ag]:"",style:ig}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as G,jsxs as gr}from"react/jsx-runtime";var pg=g(Et,un,mn,cn),fg=g("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",tt,yn,Fi),yg="min-w-24",bg="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",Rg={touchAction:"manipulation"},gg=g("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",yg),hg=g("relative z-10",Ne),Sg=g("flex h-full",tt),Eg="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",br="h-4 rounded bg-slate-200 dark:bg-slate-700",vg=()=>G("div",{"data-skeleton":!0,...He,className:Sg,children:gr("div",{className:Eg,children:[gr("div",{className:"flex flex-wrap items-center gap-2",children:[G("div",{className:g(br,"w-24")}),G("div",{className:g(br,"w-24")}),G("div",{className:g(br,"w-24")})]}),gr("div",{className:"space-y-2",children:[G("div",{className:g(br,"w-full")}),G("div",{className:g(br,"w-11/12")}),G("div",{className:g(br,"w-5/6")})]})]})}),Tg=e=>{e.target===e.currentTarget&&e.preventDefault()},Ig="h-full w-full",ru=dg(!1),Zc=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=Rr(dt),a=Rr(lt),i=Rr(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=tu(()=>({height:i}),[i]),{isCurrent:d,isTabStop:m}=Bo(t,e),u=Vo(t,e,o);return G(Vr.Provider,{value:m,children:G(ru.Provider,{value:d,children:G("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:pg,style:s,onMouseDown:Tg,children:u?n:G("div",{...He,className:Ig})})})})},xg=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,Cg=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(xg))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===Ts))return t;return r+=e.slice(n),o(),t},Dg=({id:e})=>{let{labels:t}=k(),r=Rr(dt),n=Rr(lt);return G("span",{id:e,hidden:!0,children:n===Ar?t.listRowPositionInUnknownTotal(r+1):t.listRowPosition(r+1,n)})},Ag=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=Rr(ru);return G("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:gg,children:o})},Qc=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=ir();return G("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:hg,children:n})},nu=eu(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=k(),{toggleStar:i,toggleRead:s}=xe(),d=sn(),m=sn(),u=sn(),f=sn(),p=sn(),R=tu(()=>Cg(t.content??null),[t.content]),y=le(t.employeeName),T=ie(e.businessDate),h=V=>{V.currentTarget.focus({preventScroll:!0});let N=Gs(V.currentTarget);N!==null&&r(e.reportHubId,N)},l=async()=>{let V=!t.isStarred;try{await i(t.reportHubId,V,t.date)}catch{}},S=async()=>{let V=!t.isRead;try{await s(t.reportHubId,V,t.date)}catch{}},x=t.isStarred?o.starRemove:o.starAdd,C=t.isRead?o.markUnread:o.markRead,w=Vt(t.sourceType,a),L=[d,u,...t.attachments.length>0?[f]:[],...w===void 0?[]:[p],m].join(" ");return gr("div",{"data-daily-report-card":!0,...He,style:Rg,className:fg,children:[G(Dg,{id:d}),G("span",{id:u,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),gr(Ag,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:L,onClick:h,children:[G("span",{className:g(_e,"shrink-0 bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:G("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:T})})," ",G("span",{className:g(_e,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:G("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:y})})]}),gr("div",{className:g(Ui,"ml-auto"),children:[G(vr,{id:f,count:t.attachments.length,label:o.attachments}),w?G(dr,{id:p,config:w}):null,G(Qc,{label:x,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:l,children:G(lr,{filled:t.isStarred})}),G(Qc,{label:C,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:S,children:t.isRead?G(lg,{className:Se.read}):G(cr,{})})]}),G("div",{id:m,className:bg,children:R.length>0?R.map((V,N)=>G("p",{className:"wrap-break-word line-clamp-1",children:V},N)):G("p",{children:o.contentEmptyPreview})})]})});nu.displayName="ListReportCard";var Jc=(e,t)=>cg(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),Ci=eu(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=k(),{removeStaleItem:o}=xe(),{report:a,error:i,isLoading:s,isRefetching:d}=Wt(e.reportHubId,e.businessDate),m=mg(!1);ug(()=>{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=Jc(r,e.reportHubId),f=Jc(r,e.reportHubId),p=(R,y)=>G(Zc,{reportHubId:e.reportHubId,cursor:r,cardless:{label:ie(e.businessDate),isBusy:y,focusTargetRef:u},children:R});return i?p(G("div",{...He,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:G("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?p(G(vg,{}),!0):a?G(Zc,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:G(nu,{item:e,report:a,onSelect:t,focusTargetRef:f})}):p(G("div",{...He,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:G("p",{children:n.reportNotFound})}),!1)});Ci.displayName="ListReportItem";import{Fragment as jg,jsx as we,jsxs as Jo}from"react/jsx-runtime";var iu={pointerDragInputs:Fn,inertiaOptions:nr(!1),wheelSpeedMultiplier:Nn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},Ng={...iu,inertiaOptions:nr(!0)},Og=Object.freeze({value:360,unit:"pixels"}),Mg=Object.freeze({value:160,unit:"pixels"}),Pg=Object.freeze({value:$c,unit:"pixels"}),kg=Object.freeze({value:520,unit:"pixels"}),Hg=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),Fg=g("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",Q),Bg=g("relative w-full",vn,Sn),Vg=g(je,"relative isolate overflow-hidden"),au="daily-report-list",Ug=()=>!1,Wg=e=>{let[t,r]=ea(!1);return Di(()=>{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<vs)},a=new(Le(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},Ai=e=>{let t=hr(null),[r,n]=ea(null),o=zn(t),a=Wg(t),{rowSlotHeight:i,remProbe:s}=Xc(),d=or(r),m=ot(u=>(t.current=u,n(u),()=>{t.current=null,n(null)}),[]);return Jo("div",{ref:m,className:gn,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:we(Kg,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:d})]})},Kg=({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[p]=ea(()=>i?.current??0),R=hr(null),{labels:y}=k(),T=Un(),[h]=ea(Yn),S=Oc()||u,x=hr(null),C=e.length,w=t===void 0?C:t,L=hr(null),V=ot(I=>o(I),[o]),N=ot(I=>I<C?e[I]:Mn,[e,C]),H=ot(I=>{let D=N(I.visibleStartIndex);D.reportHubId>0&&h.setLabel(ie(D.businessDate))},[N,h]),K=Qo(()=>({kind:"uniform",rowHeight:m}),[m]),O=hr(e);Di(()=>{O.current=e},[e]);let{cursor:X,containerProps:M,handleRangeChange:se,handleScrollAdjust:Ee,attachVirtualScroll:J,handleRef:Y,scroller:j,attachScrollContainer:ge,contentProps:Pe,keyboardHelp:q,selection:ve,settledSelection:Xe,resolveSelectedIndex:he,rememberSelection:pe,focusAfterRemoval:Ze}=Wo({items:e,selectedId:n,onSelect:V,containerRef:R,rootRef:s,testId:au,itemsRef:O,rowSizing:K,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:Ug,onRangeChange:H}),{isMobileDetailOpen:Qe,setIsMobileDetailOpen:yt,isOverlayMounted:bt,shouldShowOverlay:Rt,handleOverlayClose:Ke,lastClosedItemIdRef:Ae,selectedItem:ke}=Yc({isMobileLayout:S,selection:ve,dailyReportItems:e,onSelectItem:o,rootRef:s}),gt=Qo(()=>({selected:ve,settled:Xe}),[ve,Xe]);Zo(()=>{let I=R.current,D=()=>{h.setWheelScrollActive(!0),x.current&&clearTimeout(x.current),x.current=window.setTimeout(()=>{h.setWheelScrollActive(!1),x.current=null},Pn)};return I?.addEventListener("wheel",D,{passive:!0}),()=>{I?.removeEventListener("wheel",D),x.current&&clearTimeout(x.current)}},[h]),Zo(()=>{!C&&n!==null&&o(null)},[C,n,o]),Zo(()=>{if(Qe||Ae.current===null)return;let I=Ae.current;Ae.current=null;let D=he(e,I);if(D===-1)return;let B=Y.current;if(B!==null){let z=Yr(B,D,e.length,K),ne=z===null?"none":ec(z);ne!=="none"&&j.toIndex(D,{align:ne})}X.requestFocus(I)},[Qe,e,Ae,X,he,Y,K,j]),Zo(()=>{C>0&&h.setLabel(ie(e[0].businessDate))},[e,C,h]);let ze=ot((I,D)=>{I<=0||(pe(I,D),o(I),S&&yt(!0))},[S,o,yt,pe]),c=ot(()=>m,[m]),b=hr(m);Di(()=>{let I=b.current;b.current=m;let D=Y.current;if(I===m||D===null)return;let B=D.getScrollPosition();B>0&&j.by(B*m/I-B)},[Y,m,j]);let v=ot(I=>N(I).reportHubId,[N]),E=ot((I,D)=>we(dt.Provider,{value:D,children:we(Ci,{item:I,onSelect:ze,cursor:X})},I.reportHubId),[ze,X]),A=ot(I=>{i&&(i.current=I);let D=R.current;D&&(D.toggleAttribute(Zt,!0),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{D.toggleAttribute(Zt,!1),L.current=null},150))},[i]),P=ot(I=>we(qn,{...I,store:h}),[h]),Z=Qo(()=>Jo("div",{ref:ge,className:Vg,...M,children:[q,we(lt.Provider,{value:w,children:we(Xo.Provider,{value:m,children:we(wg,{ref:J,itemCount:C,getItem:N,getItemKey:v,getItemHeight:c,viewportSize:d,initialScrollOffset:p,overscanCount:kn,scrollBarOptions:{...Hn,renderThumbOverlay:P},behaviorOptions:f?Ng:iu,onRangeChange:se,onScrollAdjust:Ee,onScroll:A,testId:au,className:Bg,locale:T.locale,labels:T.labels,contentProps:Pe,children:E})})})]}),[ge,J,M,w,C,N,v,c,d,m,f,p,P,se,Ee,A,q,Pe,T.locale,T.labels,E]),W=Qo(()=>Jo(_g,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[we(ou,{id:"daily-report-list-panel",defaultSize:Og,minSize:Mg,maxSize:kg,contentOverflow:"hidden",className:zg,children:Z}),we(Lg,{id:"daily-report-list-handle",thickness:10,indicator:Hg,className:Fg,"aria-label":y.resizeHandle}),we(ou,{id:"daily-report-detail-panel",minSize:Pg,contentOverflow:"hidden",className:$g,children:we(jc,{dailyReportItems:e,autoMarkRead:r,userId:a,onReportDeleted:Ze})})]}),[Z,y.resizeHandle,e,r,a,Ze]);return Jo(jg,{children:[we("div",{className:hn,children:S?we("div",{className:je,children:Z}):we(jo.Provider,{value:gt,children:W})}),bt&&we(qc,{isOpen:Rt,selectedItem:ke,onClose:Ke,autoMarkRead:S&&r,userId:a,onReportDeleted:Ze})]})},zg=g("flex min-h-0",Mi),$g=g("flex min-h-0 flex-1",Et);import{useCallback as uh,useEffect as fu,useLayoutEffect as Ni,useRef as na}from"react";import Xg from"lucide-react/dist/esm/icons/plus.js";import Zg from"lucide-react/dist/esm/icons/refresh-cw.js";import Qg from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as mu,useMemo as Jg,useRef as Li,useState as ra}from"react";import{useSearchParams as eh}from"react-router";import{useEffect as Gg,useRef as su,useState as Yg}from"react";var lu=(e,t,r=250)=>{let n=or(t),[o,a]=Yg(e),i=su(e),s=su(!0);return Gg(()=>{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=Le(t),u=0,f=null,p=R=>{f===null&&(f=R);let y=Math.min(1,Math.max(0,(R-f)/r)),T=1-(1-y)**3,h=Math.round(d+(e-d)*T);i.current=h,a(h),y<1&&(u=m.requestAnimationFrame(p))};return u=m.requestAnimationFrame(p),()=>m.cancelAnimationFrame(u)},[e,r,n,t]),n?e:o};import*as ln from"@radix-ui/react-switch";import*as cu from"react";import{jsx as du}from"react/jsx-runtime";var ta=cu.forwardRef(({className:e,...t},r)=>du(ln.Root,{className:g(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${zi} ${ji} ${Q}`,e),...t,ref:r,children:du(ln.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${$i} ${Gi}`})}));ta.displayName=ln.Root.displayName;import{useSyncExternalStore as qg}from"react";var uu=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)})}},_i=e=>qg(e.subscribe,e.get,e.get);import{Fragment as ch,jsx as re,jsxs as ft}from"react/jsx-runtime";var th="list",rh=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},nh=g(qi,ts,"ml-[8px] flex flex-wrap items-center gap-2"),pu="relative h-4 w-4 p-0 after:absolute after:-inset-1",oh="flex items-center gap-2",ah=({count:e})=>{let{labels:t}=k(),[r,n]=ra(null),o=lu(e,r);return re(zo,{ref:n,text:t.totalCount(o),widestText:t.totalCount(Qr(Math.max(e,o)))})},ih=({setSize:e})=>{let{labels:t}=k();return e===Ar?re("span",{children:t.totalCountLoading}):re(ah,{count:e})},sh=({selectionStore:e,dailyReportItems:t,rowSetSize:r,autoMarkRead:n,userId:o,scrollOffsetRef:a})=>{let i=_i(e);return re(Ai,{dailyReportItems:t,rowSetSize:r,autoMarkRead:n,selectedReportHubId:i,onSelectItem:e.set,userId:o,scrollOffsetRef:a})},lh=({selectionStore:e,dailyReportItems:t,rowSetSize:r,userId:n,scrollRestoreRef:o})=>{let a=_i(e);return re(gi,{dailyReportItems:t,rowSetSize:r,userId:n,selectedItemId:a,onSelectItem:e.set,scrollRestoreRef:o})},dh=({tabItems:e,actions:t})=>{let[r,n]=ra(th),{labels:o}=k();return ft(rn,{value:r,onValueChange:a=>n(rh(a)),className:g("@container/views",je),children:[ft("div",{className:g(nh,rs[r]),children:[re(nn,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>re(on,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>re(pr,{value:a,className:g("mt-0",je),children:i},a))]})},wi=({userId:e})=>{let[t,r]=ra(!1),{labels:n,renderHeader:o,showDevControls:a}=k(),{toggleSse:i,createReport:s,refetchData:d,clearCacheAndRefetch:m}=xe(),{isSseEnabled:u,items:f}=ho(),[p]=eh(),R=Xs(f.length,Rl()),y=Li(0),T=Li({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[h]=ra(()=>uu(f.length===0?null:f[0].reportHubId)),l=Li(!1);mu(()=>{!l.current&&f.length>0&&(l.current=!0,h.get()===null&&h.set(f[0].reportHubId))},[f,h]);let S=async()=>{await d()},x=async()=>{await m()},C=async()=>{let N=p.get("businessDate")||la(),H=await s(N);h.set(H)};mu(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let w=V=>{r(V),localStorage.setItem("daily-report-auto-read",String(V))},L=Jg(()=>[{value:"list",label:n.tabList,content:re(sh,{selectionStore:h,dailyReportItems:f,rowSetSize:R,autoMarkRead:t,userId:e,scrollOffsetRef:y})},{value:"tree",label:n.tabTree,content:re("div",{className:g("flex flex-1 items-center justify-center",Qt),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:re(lh,{selectionStore:h,dailyReportItems:f,rowSetSize:R,userId:e,scrollRestoreRef:T})}],[f,R,t,e,n,h]);return ft(ch,{children:[o({title:n.title,annotation:ft("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[re(Jr,{}),re(ih,{setSize:R}),re("span",{children:n.debounce(er)})]})}),re("div",{className:bn,children:re("div",{className:Rn,children:re(dh,{tabItems:L,actions:ft("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[ft(ut,{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:[re(Xg,{className:"h-3 w-3"}),re("span",{children:n.createReport})]}),a&&ft("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:[re("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),re(ta,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:u,onCheckedChange:i}),ft("div",{className:oh,"data-testid":"dev-icon-buttons",children:[re(ut,{variant:"ghost",size:"icon",onClick:S,className:g(pu,"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:re(Qg,{className:"size-3"})}),re(ut,{variant:"ghost",size:"icon",onClick:x,className:g(pu,"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:re(Zg,{className:"size-3"})})]})]}),ft("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[re(ta,{id:"auto-read-mode",checked:t,onCheckedChange:w}),re(jr,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as yu,jsx as Re,jsxs as dn}from"react/jsx-runtime";var mh=g(je,Et),ph=g("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 outline-none dark:text-slate-300",tt),fh=({isFailed:e,panelRef:t,onLeaveWithFocus:r})=>{let{labels:n,renderHeader:o}=k();Ni(()=>()=>{let i=t.current;i?.contains(i.ownerDocument.activeElement)&&r()},[t,r]);let a=()=>{t.current?.focus({preventScroll:!0}),to()};return dn(yu,{children:[o({title:n.title,annotation:e?Re("span",{className:g("font-bold",Er),children:n.loadErrorBadge}):dn("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[Re(Jr,{}),Re("span",{children:n.totalCountLoading}),Re("span",{children:n.debounce(er)})]})}),Re("div",{className:bn,children:Re("div",{className:Rn,children:Re("div",{className:mh,children:Re("div",{ref:t,tabIndex:-1,"data-testid":"daily-report-status-panel","data-phase":e?"failed":"loading",className:g(ph,e&&"border-red-200 dark:border-red-900"),children:e?dn(yu,{children:[Re("p",{className:g("font-medium",Er),children:n.loadError}),Re("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:a,className:g("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",Q),children:n.reload})]}):Re("p",{children:n.loadingIds})})})})})]})},yh=(e,t)=>e.retryingCount!==null?{status:t.streamRetrying(e.retryingCount),alert:""}:e.phase==="failed"?{status:"",alert:e.hasItems?t.streamFailed:t.loadError}:!e.hasItems&&(e.phase==="idle"||e.phase==="streaming")?{status:t.loadingIds,alert:""}:{status:"",alert:""},bh=({regionRef:e})=>{let{labels:t}=k(),{status:r,alert:n}=yh(yl(),t);return dn("div",{ref:e,tabIndex:-1,"data-testid":"daily-report-stream-announcer",className:"sr-only",children:[Re("p",{role:"status",children:r}),Re("p",{role:"alert",children:n})]})},Rh=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=k(),o=oo(),a=na(null),i=na(null),s=na(!1),d=uh(()=>{s.current=!0},[]),m=na(n);Ni(()=>{m.current=n}),fu(()=>{Nr({apiBasePath:r,userKey:t??null})},[r,t]),fu(()=>{o.phase==="auth-required"&&m.current()},[o.phase]);let u=o.hasItems||o.phase==="complete";return Ni(()=>{if(!s.current)return;s.current=!1;let f=i.current;if(!u||f===null)return;let p=Gn(f.ownerDocument);p===null?f.focus({preventScroll:!0}):p.focus({preventScroll:!0})}),dn(Ba,{children:[Re(bh,{regionRef:i}),Re(hi.Provider,{value:!1,children:Re(Ga,{user:e,userId:t,children:u?Re(wi,{userId:t}):Re(fh,{isFailed:o.phase==="failed",panelRef:a,onLeaveWithFocus:d})},t??"anonymous")})]})},gh=({config:e,...t})=>Re(ba,{config:e,children:Re(Rh,{...t})});var hh=new Set(tl.filter(e=>e!=="clearCache")),Sh=({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 R=a.get(Fe.intent);if(typeof R=="string"&&hh.has(R))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},Eh=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{ys as DAILY_REPORT_LABEL_CATALOGS,ua as DAILY_REPORT_LABEL_KEYS,om as DAILY_REPORT_LAYOUT_LATTICE_PX,Ga as DailyReportActionProvider,vr as DailyReportAttachmentIndicator,ba as DailyReportConfigProvider,gi as DailyReportDetailList,Ba as DailyReportErrorProvider,Lr as DailyReportIdsStreamClient,Jr as DailyReportIdsStreamStatus,Ai as DailyReportList,gh as DailyReportPage,wi as DailyReportResolvedContent,Na as bootstrapDailyReportIdsStreamSession,Eh as createDailyReportClientLoader,Sh as dailyReportShouldRevalidate,Tr as defaultDailyReportClientConfig,Nr as ensureDailyReportIdsStreamSession,Oa as primeDailyReportIdsStreamSession,fa as resolveDailyReportLabels,Vt as resolveSourceTypeConfig,ro as resyncDailyReportIdsStream,Yp as useDailyReportActionContext,oi as useDailyReportComments,k as useDailyReportConfig,Wt as useDailyReportDetail,ip as useDailyReportIdsStream,Ia as useDailyReportPrefetch,Ha as useDailyReportSseConnection};
|