@aiquants/daily-report 0.22.1 → 0.23.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/dist/client.js CHANGED
@@ -1,7 +1,5 @@
1
- "use strict";var fa=Object.create;var Ut=Object.defineProperty;var ba=Object.getOwnPropertyDescriptor;var ga=Object.getOwnPropertyNames;var ya=Object.getPrototypeOf,ha=Object.prototype.hasOwnProperty;var Ra=(e,t)=>{for(var r in t)Ut(e,r,{get:t[r],enumerable:!0})},Wr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of ga(t))!ha.call(e,a)&&a!==r&&Ut(e,a,{get:()=>t[a],enumerable:!(n=ba(t,a))||n.enumerable});return e};var ae=(e,t,r)=>(r=e!=null?fa(ya(e)):{},Wr(t||!e||!e.__esModule?Ut(r,"default",{value:e,enumerable:!0}):r,e)),va=e=>Wr(Ut({},"__esModule",{value:!0}),e);var zo={};Ra(zo,{BusinessDayThumbOverlay:()=>it,CONTENT_DRAG_POINTER_INPUTS:()=>St,DAILY_REPORT_FETCH_DEBOUNCE_MS:()=>$e,DAILY_REPORT_LABEL_CATALOGS:()=>lr,DAILY_REPORT_LABEL_KEYS:()=>Vt,DEFAULT_ITEM_HEIGHT:()=>Wt,DailyReportActionProvider:()=>Hr,DailyReportAttachmentIndicator:()=>dt,DailyReportAttachmentList:()=>ct,DailyReportCache:()=>M,DailyReportCommentForm:()=>mt,DailyReportCommentList:()=>ut,DailyReportConfigProvider:()=>dr,DailyReportDetailList:()=>Br,DailyReportEditForm:()=>_t,DailyReportErrorProvider:()=>Or,DailyReportIdsStreamClient:()=>Ct,DailyReportIdsStreamStatus:()=>Ot,DailyReportList:()=>Vr,DailyReportLoadError:()=>ia,DailyReportLoading:()=>la,DailyReportPage:()=>$o,DailyReportPostedComment:()=>ur,DailyReportResolvedContent:()=>zr,EMPTY_DETAIL:()=>Oa,EMPTY_ITEM:()=>ht,FAST_SCROLL_INERTIA_OPTIONS:()=>gt,FAST_SCROLL_WHEEL_MULTIPLIER:()=>bt,ITEM_CONTAINER_HEIGHT:()=>qe,ITEM_VERTICAL_PADDING:()=>ft,MAX_PREVIEW_LINES:()=>gr,PREFETCH_LOOKAHEAD:()=>yt,PREFETCH_MAX_DATES:()=>br,SCROLL_BAR_WIDTH:()=>xt,SSE_INITIAL_CONNECT_DEFER_MS:()=>fr,TAP_SCROLL_CIRCLE_OPTIONS:()=>Dt,UnreadIndicator:()=>rt,VIRTUAL_SCROLL_OVERSCAN_COUNT:()=>vt,WHEEL_RESET_TIMEOUT_MS:()=>Rt,acquireMutationLock:()=>Xe,applyBroadcastReportUpdate:()=>xr,applyDailyReportServerUpdates:()=>He,bootstrapDailyReportIdsStreamSession:()=>Nr,clearDailyReportCache:()=>Je,createDailyReportClientLoader:()=>jo,dailyReportShouldRevalidate:()=>Vo,defaultDailyReportClientConfig:()=>zt,deleteDailyReportCache:()=>wt,ensureDailyReportIdsStreamSession:()=>It,getCachedReport:()=>be,getDailyReportIdsStreamSessionUserKey:()=>Ar,primeDailyReportIdsStreamSession:()=>Lr,refreshDailyReportIdsStream:()=>er,registerRecentDeletion:()=>Rr,releaseMutationLock:()=>Qe,removeDailyReportIdsStreamItem:()=>Tt,resetDailyReportIdsStreamSessionForTesting:()=>mo,resolveDailyReportLabels:()=>jt,resolveSourceTypeConfig:()=>Ue,resyncDailyReportIdsStream:()=>Zt,retryDailyReportIdsStream:()=>Et,subscribeCacheReady:()=>vr,updateDailyReportCache:()=>ge,upsertDailyReportIdsStreamItem:()=>Ze,useAnimatedNumber:()=>nt,useDailyReportActionContext:()=>ye,useDailyReportComments:()=>Lt,useDailyReportConfig:()=>U,useDailyReportDetail:()=>Ve,useDailyReportErrorSurface:()=>_r,useDailyReportIdsStream:()=>_e,useDailyReportPrefetch:()=>Sr,useDailyReportSseConnection:()=>Pr,useDynamicViewportHeight:()=>At,writeCache:()=>hr});module.exports=va(zo);var $t=require("react/jsx-runtime"),it=({orientation:e,thumbCenter:t,label:r,isDragging:n,isTapScrollActive:a,isWheelScrollActive:o})=>r.trim()&&(n||a||o)?(0,$t.jsx)("div",{className:"pointer-events-none absolute flex items-center",style:e==="vertical"?{top:t,left:-16,transform:"translate(-100%, -50%)"}:{left:t,top:-16,transform:"translate(-50%, -100%)"},children:(0,$t.jsx)("div",{className:"rounded-full border border-slate-200 bg-white px-3 py-1 text-slate-700 text-xs shadow-md shadow-slate-400/30 dark:border-slate-700 dark:bg-slate-900/90 dark:text-slate-100",children:(0,$t.jsx)("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:r.trim()})})}):null;var Gr=ae(require("lucide-react/dist/esm/icons/paperclip.js")),lt=require("react/jsx-runtime"),xa=2,dt=({count:e,label:t})=>e<=0?null:(0,lt.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-0.5 rounded px-1 py-0.5 text-slate-500 dark:text-slate-400",title:`${t}: ${e}`,role:"img","aria-label":`${t}: ${e}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":e,children:[(0,lt.jsx)(Gr.default,{className:"h-3.5 w-3.5","aria-hidden":"true"}),e>=xa&&(0,lt.jsx)("span",{className:"font-semibold text-[10px] leading-none",children:e})]});var tn=require("@aiquants/virtualscroll"),We=require("react");var Se=require("@aiquants/virtualscroll"),Jr=["id","businessDate","author","visitTime","createdAt","updatedAt","updatedBy","category","categoryInfo","creationCategory","customer","subject","content","interviewers","comments","attachments","attachmentMissing","attachmentDownload","tabArticle","tabRelations","relationsEmpty","title","tabList","tabTree","tabDetailList","treeComingSoon","totalCountLoading","createReport","createReportTitle","devControls","devSseToggle","devReload","devClearCache","autoRead","autoReadTitle","loadErrorBadge","loadError","reload","loadingIds","streamFailed","streamRetry","streamRevalidating","listEmpty","selectPrompt","loading","reportNotFound","contentEmpty","contentEmptyPreview","confirmDelete","deleteFailed","starAdd","starRemove","markRead","markUnread","deleteReport","resizeHandle","overlayBackdrop","overlayDialog","close","formTitle","formTitlePlaceholder","formContent","formContentPlaceholder","formCancel","formSave","formPublish","commentPlaceholder","commentSend","commentDelete","commentDeleteConfirm","unknownUser","sourceInternal"],Xr=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed"],Vt=[...Se.VIRTUAL_SCROLL_LABEL_KEYS,...Jr,...Xr];var Da=Object.freeze({en:"en-US",ja:"ja-JP"}),pe=(e,t)=>t.toLocaleString(Da[e]),Sa=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"}),wa=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"}),ir=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",categoryInfo:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",tabArticle:"Overview",tabRelations:"Related",relationsEmpty:"No related view configured yet.",title:"Daily Reports",tabList:"\u{1F4C4} List",tabTree:"\u{1F333} Tree",tabDetailList:"\u{1F4CB} DetailList",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",listEmpty:"No data",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",resizeHandle:"Resize the border between the report list and the detail pane",overlayBackdrop:"Tap the background to close",overlayDialog:"Report details",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 ${wa[e]}. Please try again later.`}),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",categoryInfo:"\u533A\u5206\u60C5\u5831",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",tabArticle:"\u6982\u8981",tabRelations:"\u95A2\u9023",relationsEmpty:"\u95A2\u9023\u30D3\u30E5\u30FC\u306F\u307E\u3060\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",title:"\u65E5\u5831",tabList:"\u{1F4C4} \u4E00\u89A7",tabTree:"\u{1F333} \u30C4\u30EA\u30FC",tabDetailList:"\u{1F4CB} \u8A73\u7D30\u4E00\u89A7",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",listEmpty:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",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",resizeHandle:"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30CF\u30F3\u30C9\u30EB",overlayBackdrop:"\u80CC\u666F\u3092\u30BF\u30C3\u30D7\u3057\u3066\u9589\u3058\u308B",overlayDialog:"\u65E5\u5831\u8A73\u7D30",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=>`${Sa[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`})}),lr=Object.freeze({en:Object.freeze({...Se.VIRTUAL_SCROLL_LABEL_CATALOGS.en,...ir.en}),ja:Object.freeze({...Se.VIRTUAL_SCROLL_LABEL_CATALOGS.ja,...ir.ja})}),sr=e=>typeof e=="string"?JSON.stringify(e):e===null?"null":typeof e,Ca=e=>{let t={},r=!1;for(let n of Se.VIRTUAL_SCROLL_LABEL_KEYS){let a=Object.hasOwn(e,n)?e[n]:void 0;a!==void 0&&(t[n]=a,r=!0)}return r?t:void 0},qr=(e,t,r)=>{e[t]=r},jt=(e,t)=>{let r=(0,Se.resolveVirtualScrollLocale)(e);if(t===void 0)return lr[r];if(t===null||typeof t!="object")throw new RangeError(`[daily-report] labels must be an object; got ${sr(t)}`);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw new RangeError(`[daily-report] labels must be a plain object (prototype Object.prototype or null); got ${Array.isArray(t)?"an array":"an object with a non-plain prototype"}`);for(let s of Object.keys(t))if(!Vt.includes(s))throw new RangeError(`[daily-report] labels.${s} is not a known label key; expected one of ${Vt.join(", ")}`);let o={...(0,Se.resolveVirtualScrollLabels)(r,Ca(t)),...ir[r]};for(let s of Jr){let u=Object.hasOwn(t,s)?t[s]:void 0;if(u!==void 0){if(typeof u!="string"||u.trim()==="")throw new RangeError(`[daily-report] labels.${s} must be a non-blank string; got ${sr(u)}`);qr(o,s,u)}}for(let s of Xr){let u=Object.hasOwn(t,s)?t[s]:void 0;if(u!==void 0){if(typeof u!="function")throw new RangeError(`[daily-report] labels.${s} must be a function; got ${sr(u)}`);qr(o,s,u)}}return Object.freeze(o)},Qr=e=>{let t={};for(let r of Se.VIRTUAL_SCROLL_LABEL_KEYS)t[r]=e[r];return Object.freeze(t)};var Ye=require("react/jsx-runtime"),Ia=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Ta=({title:e,annotation:t})=>(0,Ye.jsxs)("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[(0,Ye.jsx)("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?(0,Ye.jsx)("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),zt=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Ta,showDevControls:!1}),Zr=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","onError","onSessionExpired"];var en=Object.freeze({fieldLabels:"config.labels (the same 21 keys)",title:"config.labels.title"}),Ea=e=>{for(let t of Object.keys(e))if(!Zr.includes(t))throw Object.hasOwn(en,t)?new RangeError(`[daily-report] config.${t} was removed in 0.21.0; use ${en[t]}`):new RangeError(`[daily-report] config.${t} is not a known config key; expected one of ${Zr.join(", ")}`)},rn=e=>{if(Ea(e),typeof e.onSessionExpired!="function")throw new TypeError("[daily-report] config.onSessionExpired must be a function (the host decides the navigation on session expiry)");let t=(0,tn.resolveVirtualScrollLocale)(e.locale),r=jt(t,e.labels),n=zt;return{apiBasePath:e.apiBasePath===void 0?n.apiBasePath:e.apiBasePath,ssePath:e.ssePath===void 0?n.ssePath:e.ssePath,draftLabelName:e.draftLabelName===void 0?n.draftLabelName:e.draftLabelName,locale:t,labels:r,sourceTypeConfigs:e.sourceTypeConfigs===void 0?Ia(r):e.sourceTypeConfigs,renderHeader:e.renderHeader===void 0?n.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?n.showDevControls:e.showDevControls,onError:e.onError,onSessionExpired:e.onSessionExpired}},ka=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},nn=(0,We.createContext)(rn({onSessionExpired:ka})),dr=({config:e,children:t})=>{let r=(0,We.useMemo)(()=>rn(e),[e]);return(0,Ye.jsx)(nn.Provider,{value:r,children:t})},U=()=>(0,We.useContext)(nn),Ue=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(a=>a.toLowerCase()===r);return n?t[n]:void 0};var we=require("react/jsx-runtime"),an=1024,cr=["B","KB","MB","GB"],Na=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=an&&r<cr.length-1;)t/=an,r+=1;return r===0?`${t} ${cr[r]}`:`${t.toFixed(1)} ${cr[r]}`},ct=({attachments:e})=>{let{apiBasePath:t,labels:r}=U();return e.length===0?null:(0,we.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[(0,we.jsx)("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:r.attachments}),(0,we.jsx)("ul",{className:"flex flex-col gap-1.5",children:e.map(n=>{let a=`${t}/attachment/${n.id}`,o=Na(n.fileSize),s=n.state==="absent";return(0,we.jsxs)("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 px-3 py-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":n.state,children:[(0,we.jsxs)("div",{className:"flex min-w-0 flex-col",children:[s?(0,we.jsx)("span",{className:"truncate text-slate-400 text-sm line-through dark:text-slate-500","data-testid":"daily-report-attachment-name",children:n.fileName}):(0,we.jsx)("a",{href:a,className:"truncate text-blue-600 text-sm hover:underline dark:text-blue-400","data-testid":"daily-report-attachment-link",children:n.fileName}),(0,we.jsxs)("span",{className:"text-[10px] text-slate-400 dark:text-slate-500",children:[o??"\u2014",s&&` \xB7 ${r.attachmentMissing}`]})]}),!s&&(0,we.jsx)("a",{href:`${a}?download=1`,className:"ml-auto shrink-0 text-[10px] text-slate-500 hover:text-slate-700 hover:underline dark:text-slate-400 dark:hover:text-slate-200","data-testid":"daily-report-attachment-download",children:r.attachmentDownload})]},n.id)})})]})};var cn=ae(require("@heroicons/react/24/outline/TrashIcon.js")),un=require("react");var on=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw new RangeError(`[daily-report] mergeComments: unknownAuthorName must be a non-blank string; got ${typeof n=="string"?JSON.stringify(n):typeof n}`);let a=e.map((s,u)=>({id:`legacy-${u}`,authorName:s.name||n,content:s.text||"",isMine:!1,color:s.color||void 0,isLegacy:!0})),o=t.map(s=>({id:s.id,authorName:s.userName||n,content:s.content??"",createdAt:s.createdAt??"",isMine:r?s.userId===r:s.isMine,isLegacy:!1}));return[...a,...o]},sn=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 le=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},de=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?de(e.toISOString()):String(e);let t=e.trim();if(t==="")return"-";let r=t.match(/^(\d{4})[-/](\d{2})[-/](\d{2})$/);if(r)return`${r[1]}-${r[2]}-${r[3]}`;let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let a=n.getFullYear(),o=String(n.getMonth()+1).padStart(2,"0"),s=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let p=String(n.getHours()).padStart(2,"0"),b=String(n.getMinutes()).padStart(2,"0"),l=String(n.getSeconds()).padStart(2,"0");return`${a}-${o}-${s}T${p}:${b}:${l}`}return`${a}-${o}-${s}`};var ln=require("clsx"),dn=require("tailwind-merge");function J(...e){return(0,dn.twMerge)((0,ln.clsx)(e))}var ve=require("react/jsx-runtime"),La=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,ur=({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:a,onPendingDeleteIdChange:o,onTrashClick:s,resolvedIdMap:u})=>{let[p,b]=(0,un.useState)(!1),{labels:l}=U(),f=La(e.id,a,u),R=c=>{c.stopPropagation(),c.preventDefault(),o(null),b(!0),typeof e.id=="number"&&n(e.id)};return(0,ve.jsxs)("li",{"data-comment-id":e.id,"data-deleted":p?"true":void 0,className:J("group relative rounded-xl border border-slate-200 bg-white p-3 dark:border-slate-700 dark:bg-slate-900/70",e.isMine&&"border-blue-200 bg-blue-50 dark:border-blue-800/70 dark:bg-blue-950/40",p&&"hidden",f?"z-50":"z-0 hover:z-10"),children:[(0,ve.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,ve.jsx)("div",{className:J("font-semibold text-xs",sn(e.color)),children:le(e.authorName)}),(0,ve.jsxs)("div",{className:"flex items-center gap-2",children:[e.createdAt&&(0,ve.jsx)("div",{className:"text-[10px] text-slate-400",children:de(e.createdAt)}),e.isMine&&!e.isLegacy&&(0,ve.jsxs)("div",{className:"relative",children:[(0,ve.jsx)("button",{type:"button",className:J("transition-colors",f?"text-red-500":"text-slate-400 hover:text-red-500"),title:l.commentDelete,"aria-label":l.commentDelete,onClick:c=>s(c,e.id),children:(0,ve.jsx)(cn.default,{className:"h-4 w-4"})}),f&&(0,ve.jsx)("button",{type:"button","data-delete-confirmation":!0,className:"fade-in zoom-in-95 absolute top-full right-0 z-20 mt-1 animate-in whitespace-nowrap rounded-md bg-red-600 px-3 py-1.5 font-bold text-white text-xs shadow-lg duration-200 hover:bg-red-700 active:scale-95",onClick:R,children:l.commentDeleteConfirm})]})]})]}),(0,ve.jsx)("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-relaxed dark:text-slate-200",children:e.content})]})};var Ne=require("react");var ke=require("react/jsx-runtime"),Aa=(e,t)=>{let r=(0,Ne.useRef)(null);return(0,Ne.useEffect)(()=>{if(e===null)return;let a=o=>{o.target.closest("[data-delete-confirmation]")||t(null)};return document.addEventListener("mousedown",a),document.addEventListener("touchstart",a),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("touchstart",a)}},[e,t]),(0,Ne.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]),{handleTrashClick:(0,Ne.useCallback)((a,o)=>{a.stopPropagation(),a.preventDefault(),e!==o&&(t(o),r.current&&clearTimeout(r.current),r.current=window.setTimeout(()=>{t(null),r.current=null},5e3))},[e,t])}},ut=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:a,onPendingDeleteIdChange:o,resolvedIdMap:s})=>{let{handleTrashClick:u}=Aa(a,o);return e.length===0?null:(0,ke.jsx)("ul",{className:"mb-3 space-y-2",children:e.map(p=>(0,ke.jsx)(ur,{comment:p,reportHubId:t,businessDate:r,onOptimisticDelete:n||(()=>{}),pendingDeleteId:a,onPendingDeleteIdChange:o,onTrashClick:u,resolvedIdMap:s},p.id))})},mt=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,a]=(0,Ne.useState)(!1),o=(0,Ne.useRef)(null),{labels:s}=U();return(0,ke.jsxs)("form",{className:"flex gap-2",ref:o,onSubmit:async p=>{p.preventDefault();let l=new FormData(p.currentTarget).get("content")?.trim();if(l&&r){a(!0),o.current?.reset();try{await r(l)}catch{if(o.current){let f=o.current.elements.namedItem("content");f&&(f.value=l)}}finally{a(!1)}}},children:[(0,ke.jsx)("input",{type:"hidden",name:"intent",value:"addComment"}),(0,ke.jsx)("input",{type:"hidden",name:"reportHubId",value:e}),(0,ke.jsx)("input",{type:"hidden",name:"businessDate",value:t}),(0,ke.jsx)("input",{type:"text",name:"content",placeholder:s.commentPlaceholder,className:"flex-1 rounded-lg border border-slate-300 bg-slate-50 px-3 py-2 text-sm focus:border-blue-500 focus:bg-white focus:outline-none dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200",autoComplete:"off"}),(0,ke.jsx)("button",{type:"submit",className:"rounded-lg bg-blue-600 px-4 py-2 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",disabled:n,children:s.commentSend})]})};var Kn=require("@aiquants/virtualscroll"),Yn=ae(require("lucide-react/dist/esm/icons/check.js")),Fr=ae(require("lucide-react/dist/esm/icons/star.js")),Wn=ae(require("lucide-react/dist/esm/icons/trash-2.js")),O=require("react");var V=require("react");var mn=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 Kt=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,pn=e=>{for(let t=1;t<e.length;t++)if(Kt(e[t-1],e[t])>0)return!1;return!0},mr=(e,t)=>{let r=e.filter(o=>o.reportHubId!==t.reportHubId),n=0,a=r.length;for(;n<a;){let o=n+a>>1;Kt(r[o],t)<=0?n=o+1:a=o}return r.splice(n,0,t),r};var Ge=(e,t,r=console)=>{let n=a=>typeof a=="string"?[`${t} ${a}`]:[t,a];return{debug:(a,...o)=>{e<=0&&r.debug(...n(a),...o)},info:(a,...o)=>{e<=1&&r.info(...n(a),...o)},warn:(a,...o)=>{e<=2&&r.warn(...n(a),...o)},error:(a,...o)=>{e<=3&&r.error(...n(a),...o)}}};var xe=require("react");var Pa=/^\d{4}-\d{2}-\d{2}$/,_a=/^\d{4}\/\d{2}\/\d{2}$/,Yt=e=>e<10?`0${e}`:`${e}`,fn=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=Yt(e.getMonth()+1),n=Yt(e.getDate());return`${t}-${r}-${n}`},pr=(e=new Date)=>Number.isNaN(e.getTime())?pr(new Date):`${e.getFullYear()}-${Yt(e.getMonth()+1)}-${Yt(e.getDate())}`,pt=e=>{if(e==null)return null;if(e instanceof Date)return fn(e);let t=e.trim();if(t==="")return null;if(Pa.test(t))return t;if(_a.test(t))return t.replaceAll("/","-");let r=new Date(t);return fn(r)};var bn=require("@aiquants/virtualscroll"),$e=120,fr=1e3,Wt=160,ft=6,qe=Wt-ft,bt=.8,gt={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},yt=20,br=6,ht={reportHubId:-1,businessDate:null},Oa={report:null,error:null,isLoading:!1,isRefetching:!1},Rt=240,vt=15,xt=8,gr=3,Dt={enabled:!0,renderVisual:bn.tapScrollCircleSampleVisual,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8},St=["pen","touch"];var yn=Ge(1,"use-daily-report"),hn=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},yr=hn("__DAILY_REPORT_CACHE_TTL__",3e5),Ma=hn("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),M={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{M.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=pt(e.date),a=n?this.lists.get(n):null;if(a&&n){let s=a.data.some(u=>u.reportHubId===e.reportHubId)?a.data.map(u=>u.reportHubId===e.reportHubId?e:u):[e,...a.data];this.lists.set(n,{...a,data:s})}}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()){yn.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Ma))}},delete(e,t){this.reports.delete(e);let r=pt(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(a=>a.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(o=>o.id)),a=t.postedComments.filter(o=>!n.has(o.id)&&o.isMine&&Date.now()-new Date(o.createdAt||0).getTime()<1e4);a.length>0&&(r={...r,postedComments:[...r.postedComments,...a].sort((o,s)=>new Date(o.createdAt||0).getTime()-new Date(s.createdAt||0).getTime())})}return r},cacheMany(e,t,r){this.prune();let n=Date.now(),a=n+yr;for(let[s,u]of this.recentDeletes)n-u>1e4&&this.recentDeletes.delete(s);let o=e.map(s=>{if(this.locks.has(s.reportHubId))return s;let u=this.lastMutations.get(s.reportHubId);if(u&&r>0&&u>r)return this.reports.get(s.reportHubId)?.data??s;let p=this.reports.get(s.reportHubId)?.data,b=this.merge(s,p);return this.set(b,a,!1),b});return t&&this.lists.set(t,{data:o,expiresAt:a}),o}},hr=(e,t,r=!0)=>M.set(e,t,r),be=(e,t)=>M.getReport(e,t?.ignoreExpiry),ge=(e,t)=>M.update(e,t),wt=(e,t)=>M.delete(e,t),Je=()=>{M.clear(),Gt.clear()},Xe=e=>{M.locks.add(e),M.lastMutations.set(e,Date.now())},Qe=e=>{M.locks.delete(e),M.lastMutations.set(e,Date.now())},Rr=e=>M.recentDeletes.set(e,Date.now()),vr=(e,t)=>{let r=n=>{n===e&&t()};return M.listeners.add(r),()=>{M.listeners.delete(r)}},He=(e,t)=>{M.prune(),M.set(t,Date.now()+yr)},xr=e=>{M.prune();let t=M.getReport(e.reportHubId,!0),r=new Map;for(let a of t?.postedComments??[])r.set(a.id,a.isMine??!1);let n=(e.postedComments??[]).map(a=>({...a,isMine:r.get(a.id)??!1}));M.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+yr)},Ha=async(e,t)=>{let r=M.getReport(t);if(r)return r;let n=M.pendingReports.get(t);if(n)return n;let a=Date.now(),o=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);let u=s.report;return M.cacheMany([u],null,a)[0]}).finally(()=>M.pendingReports.delete(t));return M.pendingReports.set(t,o),o},Gt=new Map,Fa=1e4,Ba=(e,t)=>{let r=Gt.get(t),n=Date.now();if(r&&n-r.at<Fa)return r.inFlight;let a=Dr(e,t,{forceRefresh:!0}),o={at:n,inFlight:a};return Gt.set(t,o),a.finally(()=>{Gt.get(t)===o&&(o.inFlight=null)}).catch(()=>{}),a},Dr=async(e,t,r={})=>{let n=r.forceRefresh?null:M.getList(t);if(n)return n;let a=M.pendingLists.get(t);if(a)return a;let o=Date.now(),s=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(u=>u.ok?u.json():Promise.reject(`HTTP ${u.status}`)).then(u=>{if(u.error)throw new Error(u.error.message);return M.cacheMany(u.reports??[],t,o)}).finally(()=>M.pendingLists.delete(t));return M.pendingLists.set(t,s),s},Ve=(e,t)=>{let{apiBasePath:r}=U(),[n,a]=(0,xe.useState)(()=>M.getReport(e)),[o,s]=(0,xe.useState)(null),[u,p]=(0,xe.useState)(!1),[b,l]=(0,xe.useState)(!1),f=(0,xe.useRef)({id:e,token:0});return(0,xe.useEffect)(()=>{let R=c=>{if(c===e){let A=M.getReport(e,!0);a(A)}};return M.listeners.add(R),()=>{M.listeners.delete(R)}},[e]),(0,xe.useEffect)(()=>{let R=pt(t),c=(f.current.token||0)+1;if(f.current={id:e,token:c},e<=0){a(null),s(e===0?new Error("Invalid ID"):null),p(!1),l(!1);return}let A=M.getReport(e,!0),D=!1;if(A)D=!M.isValid(M.reports.get(e)?.expiresAt??0);else if(R){let N=M.getList(R,!0)?.find(j=>j.reportHubId===e);N&&(A=N,D=!M.isValid(M.lists.get(R)?.expiresAt??0))}if(a(A),A&&!D){s(null),p(!1),l(!1);return}p(!A),l(!0);let w=setTimeout(async()=>{if(f.current.token===c)try{let S=null;if(R){let N=M.getList(R)!==null;if(S=(await Dr(r,R)).find(B=>B.reportHubId===e)??null,!S&&N){let B=await Ba(r,R);B&&(S=B.find($=>$.reportHubId===e)??null)}}else S=await Ha(r,e);f.current.token===c&&(a(S),s(null))}catch(S){f.current.token===c&&s(S instanceof Error?S:new Error("Load failed"))}finally{f.current.token===c&&(p(!1),l(!1))}},A?$e:0);return()=>clearTimeout(w)},[e,t,r]),{report:n,error:o,isLoading:u,isRefetching:b}},Sr=()=>{let{apiBasePath:e}=U();return(0,xe.useCallback)(t=>{let r=pt(t);r&&!M.getList(r)&&Dr(e,r).catch(n=>yn.warn("Prefetch error",r,n))},[e])};var kt=require("@aiquants/sse"),Tn=require("@aiquants/sse/client"),En=require("@aiquants/sse/react"),Ce=require("react");var y=require("zod"),Rn=["auth-required","forbidden","resync-required"],wr=15e3,vn="lastEventId",Ua=/^\d{1,15}-\d{1,15}$/,qt=e=>Ua.test(e),$a=y.z.object({name:y.z.string().nullish(),affiliation:y.z.string().nullish()}),Va=y.z.object({name:y.z.string().nullish(),text:y.z.string().nullish(),color:y.z.string().nullish()}),ja=y.z.object({id:y.z.number(),name:y.z.string().nullish(),color:y.z.string().nullish()}),xn=y.z.object({id:y.z.number(),userId:y.z.string().nullish(),userName:y.z.string().nullish(),content:y.z.string().nullish(),createdAt:y.z.string().nullish(),isMine:y.z.boolean()}),za=y.z.object({id:y.z.string(),fileName:y.z.string(),fileType:y.z.string().nullable(),fileSize:y.z.number().nullable(),createdAt:y.z.string().nullable(),state:y.z.enum(["present","absent","unknown"])}),Cr=y.z.object({reportHubId:y.z.number(),date:y.z.string().nullish(),createdAt:y.z.string().nullish(),author:y.z.string().nullish(),userId:y.z.string().nullish(),sourceType:y.z.string().nullish(),employeeName:y.z.string().nullish(),updatedBy:y.z.string().nullish(),updatedAt:y.z.string().nullish(),category:y.z.string().nullish(),creationCategory:y.z.string().nullish(),visitTimeFrom:y.z.string().nullish(),visitTimeTo:y.z.string().nullish(),customerName:y.z.string().nullish(),interviewers:y.z.array($a),subject:y.z.string().nullish(),content:y.z.string().nullish(),externalComments:y.z.array(Va),isRead:y.z.boolean(),isStarred:y.z.boolean(),labels:y.z.array(ja),postedComments:y.z.array(xn),attachments:y.z.array(za).default([])}),Ka=y.z.object({type:y.z.literal("connected")}),Ya=y.z.object({type:y.z.literal("status-update"),reportHubId:y.z.number(),statusType:y.z.enum(["star","read"]),value:y.z.boolean(),clientTempId:y.z.string(),recipientRawUserId:y.z.number().optional()}),Ir=y.z.string().optional(),Wa=y.z.object({type:y.z.literal("comment-add"),reportHubId:y.z.number(),comment:xn,clientTempId:y.z.string(),recipientRawUserId:y.z.number().optional(),sourceType:Ir}),Ga=y.z.object({type:y.z.literal("comment-delete"),reportHubId:y.z.number(),commentId:y.z.number(),clientTempId:y.z.string(),recipientRawUserId:y.z.number().optional(),sourceType:Ir}),qa=y.z.object({type:y.z.literal("report-create"),reportHubId:y.z.number(),report:Cr,clientTempId:y.z.string(),recipientRawUserId:y.z.number().optional()}),Ja=y.z.object({type:y.z.literal("report-update"),reportHubId:y.z.number(),report:Cr,clientTempId:y.z.string(),recipientRawUserId:y.z.number().optional()}),Xa=y.z.object({type:y.z.literal("report-publish"),reportHubId:y.z.number(),report:Cr,clientTempId:y.z.string(),recipientRawUserId:y.z.number().optional()}),Qa=y.z.object({type:y.z.literal("report-delete"),reportHubId:y.z.number(),clientTempId:y.z.string(),sourceType:Ir}),Dn=y.z.discriminatedUnion("type",[Ka,Ya,Wa,Ga,qa,Ja,Xa,Qa]);var wn=require("react");var Za=50,eo=1e3,to=3e4,ro=6,no=3e4,Jt=Symbol("read-stall"),ao="/daily_report/api",oo=/^\d{4}-\d{2}-\d{2}$/,Ct=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,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=0;this.apiBasePath=t.apiBasePath??ao,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??no,this.publishCoalesceMs=t.publishCoalesceMs??Za,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};(!r||r.businessDate!==n.businessDate||r.sourceType!==n.sourceType)&&(this.itemMap.set(t.reportHubId,n),this.publishItems())}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.itemMap.delete(t)&&this.publishItems())}dispose(){this.disposed=!0,this.loopGeneration+=1,this.activeAbortController?.abort(),this.cancelScheduledPublishItems(),this.wakeRetryWait?.(),typeof window<"u"&&window.removeEventListener("online",this.handleOnline),this.listeners.clear()}async runStreamLoop(t){let r=++this.loopGeneration;for(this.activeAbortController?.abort(),this.wakeRetryWait?.(),this.lastCursor===null&&(this.activeSeenIds=new Set,this.externalRemovalTombstones.clear(),this.lastSnapshot=null),t.forceRefresh&&(this.pendingForceRefresh=!1),this.publish({phase:t.revalidate?this.state.phase:"streaming",isRevalidating:t.revalidate,error:null});!this.disposed&&r===this.loopGeneration;){let n=await this.streamOnce(t.forceRefresh);if(this.disposed||r!==this.loopGeneration)return;if(n.kind==="complete"){this.pruneUnseenItems(),this.consecutiveFailures=0,this.cancelScheduledPublishItems(),this.lastItemsPublishAt=Date.now(),this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size}),this.pendingForceRefresh&&!this.disposed&&(this.pendingForceRefresh=!1,this.lastCursor=null,this.runStreamLoop({revalidate:!0,forceRefresh:!0}));return}if(n.kind==="aborted")return;if(n.kind==="auth-required"){this.publish({phase:"auth-required",isRevalidating:!1});return}if(this.consecutiveFailures+=1,this.consecutiveFailures>=ro){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(eo*2**(this.consecutiveFailures-1),to))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.itemMap.delete(r)}async streamOnce(t){let r=new AbortController;this.activeAbortController=r;try{let n=this.fetchFn(this.buildStreamUrl(t),{signal:r.signal,headers:{Accept:"application/x-ndjson"},cache:"no-store"}),a=null,o=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(f=>{a=this.setTimeoutFn(()=>f(Jt),this.readStallTimeoutMs*3)})]).finally(()=>{a!==null&&this.clearTimeoutFn(a)});if(o===Jt)return r.abort(),n.catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no response headers within timeout")};if(o.status===401||o.status===403)return{kind:"auth-required"};if(!(o.ok&&o.body))return{kind:"retryable",error:new Error(`ids stream HTTP ${o.status}`)};let s=o.body.getReader(),u=new TextDecoder,p="",b=!1,l=!1;for(;;){let f=await this.readWithStallGuard(s);if(f===Jt)return r.abort(),s.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let{done:R,value:c}=f;if(R)break;let A=(p+u.decode(c,{stream:!0})).split(`
2
- `);p=A.pop()??"";let D=!1;for(let T of A){if(T.trim()==="")continue;let w;try{w=JSON.parse(T)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let S=mn(w);if(S==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(S==="error"){b=!0;continue}let N=w;D=this.absorbChunkLine(N)||D,typeof N.total=="number"&&Number.isFinite(N.total)&&N.total!==this.state.totalCount&&this.publish({totalCount:N.total}),N.nextCursor&&(N.nextCursor.businessDate===null||oo.test(N.nextCursor.businessDate))&&(this.lastCursor=N.nextCursor),N.isLast&&(l=!0)}D&&(this.consecutiveFailures=0,this.schedulePublishItems())}return b?{kind:"retryable",error:new Error("Stream interrupted by server error")}:l?{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(a=>{r=this.setTimeoutFn(()=>a(Jt),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 a of t.items){if(!a||typeof a.reportHubId!="number"||this.externalRemovalTombstones.has(a.reportHubId))continue;r||this.activeSeenIds?.add(a.reportHubId);let o=this.itemMap.get(a.reportHubId);(!o||o.businessDate!==a.businessDate||o.sourceType!==a.sourceType)&&(this.itemMap.set(a.reportHubId,a),n=!0)}return n}absorbStreamAnchor(t){if(t!==null&&!(typeof t=="string"&&qt(t))){this.warn(`[DailyReportIdsStream] ids stream carried a malformed streamAnchor: ${String(t)}`);return}this.streamAnchorRevision+=1,this.publish({streamAnchor:{lastEventId:t,revision:this.streamAnchorRevision}})}publishItems(){this.lastItemsPublishAt=Date.now(),this.publish({items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size})}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=Date.now()-this.lastItemsPublishAt;if(t>=this.publishCoalesceMs){this.publishItems();return}this.publishCoalesceTimer===null&&(this.publishCoalesceTimer=this.setTimeoutFn(()=>{this.publishCoalesceTimer=null,this.publishItems()},this.publishCoalesceMs-t))}cancelScheduledPublishItems(){this.publishCoalesceTimer!==null&&(this.clearTimeoutFn(this.publishCoalesceTimer),this.publishCoalesceTimer=null)}publish(t){this.state={...this.state,...t};for(let r of this.listeners)r()}buildStreamUrl(t){let r=new URLSearchParams;this.lastCursor&&(r.set("cursor_report_hub_id",String(this.lastCursor.reportHubId)),this.lastCursor.businessDate!==null&&r.set("cursor_business_date",this.lastCursor.businessDate),this.lastSnapshot!==null&&r.set("cursor_snapshot",this.lastSnapshot)),t&&r.set("forceRefresh","true");let n=r.toString();return`${this.apiBasePath}/ids-stream${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,a=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===a&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=a,n=this.setTimeoutFn(a,t)})}};var Tr={},so=6e4,Z=null,Sn=!1,Er=new Set,Cn={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},kr=()=>{for(let e of Er)e()},Xt=()=>{Z&&(Z.unsubscribe(),Z.client.dispose(),Z=null,kr())},It=e=>{if(typeof window>"u")return;let t=e.apiBasePath??zt.apiBasePath;if(Z&&(Z.userKey!==e.userKey||Z.apiBasePath!==t)&&(Z.userKey!==e.userKey&&Je(),Xt()),!Z){let r=new Ct({apiBasePath:t});Z={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(kr)},io(),r.start(),kr();return}Qt(Z)},Qt=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>so&&e.client.refresh()},io=()=>{if(Sn||typeof document>"u"||typeof window>"u")return;Sn=!0;let e=()=>{Z&&Qt(Z)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Nr=e=>{if(!(typeof window>"u")){if(!Z){It(e);return}if(Z.userKey!==e.userKey){Je(),Xt(),It(e);return}Qt(Z)}},Lr=()=>{typeof window>"u"||!Z||Qt(Z)},Ze=e=>{Z?.client.applyExternalUpsert(e)},Tt=e=>{Z?.client.applyExternalRemoval(e)},Et=()=>{Z?.client.retry()},Zt=()=>{Z?.client.resync()},er=(e={})=>{Z?.client.refresh(e)},Ar=()=>Z?.userKey,lo=e=>(Er.add(e),()=>Er.delete(e)),co=()=>Z?.client.getState()??Cn,uo=()=>Cn,_e=()=>(0,wn.useSyncExternalStore)(lo,co,uo),mo=()=>{Xt()};typeof Tr<"u"&&Tr.hot&&Tr.hot.dispose(()=>{Xt()});var je=Ge(1,"daily-report-sse-connection"),po=Object.freeze({kind:"resyncing"}),In={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},fo=1,kn=wr*3,bo=kn+wr,Pr=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=U(),{streamAnchor:a,phase:o,isRevalidating:s,error:u}=_e(),[p,b]=(0,Ce.useState)({generation:0,minAnchorRevision:1,anchored:!1}),l=p.generation>0&&!p.anchored,f=l&&o==="complete"&&!s?u:null,R=(0,Ce.useRef)(0),c=(0,Ce.useRef)(null),A=(0,Ce.useRef)(n);A.current=n;let D=(0,Ce.useRef)(0);D.current=a===null?0:a.revision,(0,Ce.useEffect)(()=>{p.anchored||a===null||a.revision<p.minAnchorRevision||(c.current=a.lastEventId,R.current=0,b({...p,anchored:!0}))},[p,a]),(0,Ce.useEffect)(()=>{if(!e||f===null)return;let{initialDelayMs:w,maxDelayMs:S,multiplier:N}=In,j=kt.systemSseRuntime.random()*Math.min(S,w*N**R.current);je.warn(`SSE resync: the ids rescan gave up (${f.message}); rescanning in ${Math.round(j)} ms`);let B=kt.systemSseRuntime.setTimer(()=>{R.current+=1,Zt()},j);return()=>kt.systemSseRuntime.clearTimer(B)},[e,f]);let{status:T}=(0,En.useReopeningEventSource)(e&&p.anchored?`${r}#${p.generation}`:null,{resolveUrl:({lastEventId:w})=>w===null?r:`${r}?${vn}=${encodeURIComponent(w)}`,initialLastEventId:c.current,withCredentials:!1,createEventSource:Tn.createBrowserEventSource,runtime:kt.systemSseRuntime,backoff:In,healthyOpenMs:bo,nativeRetryLimit:fo,giveUpAfterFailures:"never",terminalEvents:Rn,heartbeat:{staleAfterMs:kn,onHeartbeat:null},events:{message:w=>{w.lastEventId!==""&&(qt(w.lastEventId)?c.current=w.lastEventId:je.warn("SSE event carried a malformed id; keeping the previous cursor:",w.lastEventId));try{let S=JSON.parse(w.data),N=Dn.safeParse(S);if(!N.success){je.error("SSE Validation Error:",N.error.flatten(),"raw message:",S);return}if(N.data.type==="connected"){je.info("SSE Subscribe Ready");return}t(N.data)}catch(S){je.error("SSE Parse Error",S)}}}});return(0,Ce.useEffect)(()=>{if(T.kind==="faulted"){je.error("SSE connection faulted:",T.error);return}if(T.kind==="terminated")switch(T.terminalEvent){case"auth-required":A.current();return;case"forbidden":je.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let w=D.current+1;b(S=>({generation:S.generation+1,minAnchorRevision:w,anchored:!1})),Zt();return}}},[T]),e&&l?po:T};var se=require("react");var et=require("react/jsx-runtime"),go=8e3,Nn=(0,se.createContext)({notifyError:()=>{}}),_r=()=>(0,se.useContext)(Nn),Or=({children:e})=>{let{onError:t,labels:r}=U(),[n,a]=(0,se.useState)(null),o=(0,se.useRef)(t);o.current=t;let s=(0,se.useRef)(null),u=(0,se.useCallback)(l=>{let f=o.current;if(f){f(l);return}a(l)},[]),p=(0,se.useCallback)(()=>{s.current!==null&&(clearTimeout(s.current),s.current=null),a(null)},[]);(0,se.useEffect)(()=>{if(n)return s.current=setTimeout(()=>a(null),go),()=>{s.current!==null&&(clearTimeout(s.current),s.current=null)}},[n]);let b=(0,se.useMemo)(()=>({notifyError:u}),[u]);return(0,et.jsxs)(Nn.Provider,{value:b,children:[e,n&&(0,et.jsxs)("div",{role:"alert","data-testid":"daily-report-error-banner",className:"fade-in slide-in-from-bottom-2 fixed inset-x-0 bottom-4 z-[100] mx-auto flex w-fit max-w-[92vw] animate-in items-center gap-3 rounded-lg border border-red-300 bg-red-600 px-4 py-2.5 text-sm text-white shadow-lg duration-200 dark:border-red-500/60 dark:bg-red-700",children:[(0,et.jsx)("span",{className:"font-medium",children:n.message}),(0,et.jsx)("button",{type:"button","aria-label":r.close,onClick:p,className:"shrink-0 rounded px-1.5 py-0.5 font-bold text-white/90 transition-colors hover:bg-red-700 hover:text-white dark:hover:bg-red-800",children:"\u2715"})]})]})};var Ln=require("react/jsx-runtime"),Le=Ge(1,"daily-report-action-context"),yo=Object.freeze([]),Mr=globalThis.__DailyReportActionContext??(0,V.createContext)(null);globalThis.__DailyReportActionContext=Mr;var ye=()=>{let e=(0,V.useContext)(Mr);if(!e)throw new Error("useDailyReportActionContext must be used within a DailyReportActionProvider");return e},Nt=(e,t)=>{if(!e)return t;if(e.displayName?.trim())return e.displayName;if(e.name){let r=`${e.name.familyName??""} ${e.name.givenName??""}`.trim();if(r)return r}return e.emails?.[0]?.value??t},Hr=({children:e,user:t,initialItems:r=yo,userId:n})=>{let{apiBasePath:a,draftLabelName:o,labels:s}=U(),{notifyError:u}=_r(),p=(0,V.useRef)(u);p.current=u;let b=(0,V.useRef)(new Map),l=(0,V.useRef)(new Map),f=(0,V.useRef)(new Map),R=(0,V.useRef)(new Map),c=(0,V.useRef)(new Map),[A,D]=(0,V.useState)(0),[T,w]=(0,V.useState)(r),[S,N]=(0,V.useState)(!1),j=(0,V.useRef)(!1),B=(0,V.useRef)(new Map),$=(0,V.useRef)(new Set),E=(0,V.useRef)(new Set),L=(0,V.useRef)(new Set),H=_e(),F=(0,V.useRef)(!1);F.current=H.phase==="complete"&&!H.isRevalidating;let W=(0,V.useCallback)(()=>Ar()===(n??null),[n]),ce=(0,V.useCallback)(async()=>{Le.info("[DailyReportActionProvider] Refetching data without page reload..."),er(),D(g=>g+1),M.listeners.forEach(g=>{g(-1)})},[]),Ee=(0,V.useCallback)(async()=>{Le.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),Je(),E.current.clear();try{sessionStorage.clear()}catch{}try{let g=new FormData;g.append("intent","clearCache");let m=await fetch(`${a}/action`,{method:"POST",body:g});if(!m.ok){let v=await m.json().catch(()=>null);Le.warn("[DailyReportActionProvider] Failed to clear server-side cache:",m.status,v)}}catch(g){Le.warn("[DailyReportActionProvider] Failed to clear server-side cache:",g)}W()&&(er({forceRefresh:!0}),D(g=>g+1),M.listeners.forEach(g=>{g(-1)}))},[a,W]),oe=(0,V.useRef)(new Map),Re=(0,V.useRef)(()=>{}),re=(0,V.useCallback)((g,m)=>{let v=oe.current,h=v.get(g);if(h){h.messages.push(m);return}let x={messages:[m],unsubscribe:()=>{},timer:setTimeout(()=>{let I=v.get(g);I&&(I.unsubscribe(),v.delete(g),Le.warn(`[SSE Queue] Expired: reportHubId=${g}, dropped=${I.messages.length} messages`))},3e4)};x.unsubscribe=vr(g,()=>{let I=v.get(g);if(I&&be(g,{ignoreExpiry:!0})){I.unsubscribe(),clearTimeout(I.timer),v.delete(g),Le.info(`[SSE Queue] Replaying ${I.messages.length} messages for reportHubId=${g}`);for(let _ of I.messages)Re.current(_)}}),v.set(g,x)},[]),ue=g=>{L.current.add(g),setTimeout(()=>{L.current.delete(g)},3e4)},ee=(0,V.useCallback)(g=>!!g&&L.current.has(g),[]),ie=(0,V.useCallback)((g,m)=>{m!==void 0&&Ze({reportHubId:g,businessDate:m??null}),w(v=>{let h=v.find(I=>I.reportHubId===g),x=m??h?.businessDate??null;return mr(v,{reportHubId:g,businessDate:x,sourceType:h?.sourceType})})},[]),Pe=()=>{n&&(j.current=!0,N(g=>!g))};(0,V.useEffect)(()=>{if(!n)return;let g=setTimeout(()=>{j.current||N(!0)},fr);return()=>clearTimeout(g)},[n]);let me=(0,V.useCallback)(g=>{W()&&(E.current.add(g),Tt(g),w(m=>m.filter(v=>v.reportHubId!==g)))},[W]),[k,z]=(0,V.useState)(r);if(r!==k){z(r);let g=new Map;for(let h of r)E.current.has(h.reportHubId)||g.set(h.reportHubId,h);let m=F.current;for(let h of T)g.has(h.reportHubId)||E.current.has(h.reportHubId)||m&&h.reportHubId>0||g.set(h.reportHubId,h);let v=Array.from(g.values());pn(v)||v.sort(Kt),w(v)}(0,V.useEffect)(()=>{if(F.current){let g=new Set(r.map(m=>m.reportHubId));for(let m of E.current)g.has(m)||E.current.delete(m)}},[r]);let X=(0,V.useCallback)(g=>{if(W()&&!ee(g.clientTempId))switch(g.type){case"comment-add":{let{comment:m,reportHubId:v}=g,h=be(v,{ignoreExpiry:!0});if(h){if(h.postedComments.some(Q=>Q.id===m.id))return;let x=!1,I=b.current.get(v);if(I){for(let[Q,fe]of I.entries())if(fe===m.content){I.delete(Q),c.current.set(Q,m.id),x=!0;break}}let _={...m,userName:m.userName||(x?Nt(t,s.unknownUser):s.unknownUser),createdAt:m.createdAt||new Date().toISOString(),isMine:x},G={...h,postedComments:[...h.postedComments,_].sort((Q,fe)=>new Date(Q.createdAt||0).getTime()-new Date(fe.createdAt||0).getTime())};He(v,G),Xe(v),Qe(v),D(Q=>Q+1)}else re(v,g);break}case"comment-delete":{let{commentId:m,reportHubId:v}=g,h=be(v,{ignoreExpiry:!0});if(h){let x={...h,postedComments:h.postedComments.filter(I=>I.id!==m)};He(v,x),Xe(v),Qe(v),D(I=>I+1)}else re(v,g);break}case"status-update":{let{statusType:m,value:v,reportHubId:h}=g,x=be(h,{ignoreExpiry:!0});if(m==="star")if(f.current.get(h)===v&&f.current.delete(h),x){let I={...x,isStarred:v};He(h,I),D(_=>_+1)}else re(h,g);else if(m==="read")if(R.current.get(h)===v&&R.current.delete(h),x){let I={...x,isRead:v};He(h,I),D(_=>_+1)}else re(h,g);break}case"report-delete":{let{reportHubId:m}=g;$.current.delete(m),E.current.add(m),Tt(m);let v=oe.current.get(m);v&&(v.unsubscribe(),clearTimeout(v.timer),oe.current.delete(m));let h=be(m,{ignoreExpiry:!0});h?.date&&(wt(m,h.date),D(x=>x+1)),w(x=>x.filter(I=>I.reportHubId!==m));break}case"report-create":case"report-update":case"report-publish":{let{report:m}=g;xr(m),(g.type==="report-create"||g.type==="report-publish")&&($.current.add(m.reportHubId),ie(m.reportHubId,m.date)),D(v=>v+1);break}}},[ee,W,ie,t,re,s.unknownUser]);Re.current=X,(0,V.useEffect)(()=>()=>{for(let g of oe.current.values())g.unsubscribe(),clearTimeout(g.timer);oe.current.clear()},[]);let te=Pr({isSseEnabled:S,onMessage:X}),P=async(g,m,v,h,x,I)=>{I?.skipLock||Xe(g),x.onOptimistic?.();let _=h.clientTempId||crypto.randomUUID();ue(_);let G=new FormData;G.append("intent",m),G.append("reportHubId",String(g)),G.append("businessDate",v),G.append("operationTimestamp",String(Date.now())),G.append("clientTempId",_);for(let[Q,fe]of Object.entries(h))Q!=="clientTempId"&&G.append(Q,fe);try{let Q=await fetch(`${a}/action`,{method:"POST",body:G,headers:{Accept:"application/json"}});if(!Q.ok){let Yr=new Error(`Failed to ${m}`);throw Object.assign(Yr,{status:Q.status}),Yr}let fe=await Q.json();if(fe.status!=="OK"||m!=="create"&&String(fe.reportHubId)!==String(g))throw new Error(`Invalid response for ${m}`);if(typeof fe.clientTempId!="string"||fe.clientTempId!==_)throw new Error(`Invalid clientTempId for ${m}`);if(!W())throw Le.warn(`[executeAction] ${m} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${m}`);return await x.onSuccess?.(fe)}catch(Q){throw Le.error(`${m} failed:`,Q),W()&&(x.onFailure?.(),p.current({operation:m,message:s.operationFailed(m),cause:Q})),Q}finally{I?.keepLock||I?.skipLock||Qe(g)}},K=async(g,m,v)=>{let h=Number(g),x=-1*Date.now(),I=P(h,"addComment",v,{content:m,clientTempId:String(x)},{onOptimistic:()=>{b.current.has(h)||b.current.set(h,new Map),b.current.get(h)?.set(x,m),D(_=>_+1)},onSuccess:_=>{if(!_.newComment)throw new Error("No new comment returned");let G=_.newComment.id;c.current.set(x,G),b.current.get(h)?.delete(x);let Q=be(h,{ignoreExpiry:!0});return Q&&!Q.postedComments.some(fe=>fe.id===G)&&ge(h,{postedComments:[...Q.postedComments,{..._.newComment,id:G,isMine:!0,userName:Nt(t,s.unknownUser)}],updatedAt:_.updatedAt}),G},onFailure:()=>{b.current.get(h)?.delete(x)}},{skipLock:!0}).finally(()=>B.current.delete(x));B.current.set(x,I),await I},ne=async(g,m,v)=>{let h=Number(g);l.current.has(h)||l.current.set(h,new Set),l.current.get(h)?.add(m),D(I=>I+1);let x=m;if(m<0){let I=c.current.get(m);if(I!==void 0)x=I;else{let _=B.current.get(m);if(!_)return;try{x=await _}catch{return}}}await P(h,"deleteComment",v,{commentId:String(x)},{onSuccess:I=>{let _=typeof I.deletedCommentId=="string"?Number(I.deletedCommentId):x,G=be(h,{ignoreExpiry:!0});G&&(ge(h,{postedComments:G.postedComments.filter(Q=>Q.id!==_),updatedAt:I.updatedAt}),Rr(_)),l.current.get(h)?.delete(m)},onFailure:()=>{l.current.get(h)?.delete(m)}},{skipLock:!0})},Be=async(g,m,v)=>{let h=Number(g);await P(h,"toggleStar",v,{isStarred:String(m)},{onOptimistic:()=>{ge(h,{isStarred:m}),f.current.set(h,m),D(x=>x+1)},onSuccess:x=>{x.updatedStatus&&typeof x.updatedStatus.isStarred=="boolean"&&be(h,{ignoreExpiry:!0})&&(ge(h,{isStarred:x.updatedStatus.isStarred,updatedAt:x.updatedAt}),D(_=>_+1)),f.current.delete(h)},onFailure:()=>{ge(h,{isStarred:!m}),f.current.delete(h)}},{skipLock:!0})},st=async(g,m,v)=>{let h=Number(g);await P(h,"toggleRead",v,{isRead:String(m)},{onOptimistic:()=>{ge(h,{isRead:m}),R.current.set(h,m),D(x=>x+1)},onSuccess:x=>{x.updatedStatus&&typeof x.updatedStatus.isRead=="boolean"&&be(h,{ignoreExpiry:!0})&&(ge(h,{isRead:x.updatedStatus.isRead,updatedAt:x.updatedAt}),D(_=>_+1)),R.current.delete(h)},onFailure:()=>{ge(h,{isRead:!m}),R.current.delete(h)}},{skipLock:!0})},Kr=(0,V.useRef)(st);Kr.current=st;let da=(0,V.useCallback)((g,m,v)=>Kr.current(g,m,v),[]),ca=async g=>{let m=-1*Date.now(),v=new Date().toISOString(),h={reportHubId:m,date:g,createdAt:v,author:Nt(t,s.unknownUser),userId:t?.id??"unknown",sourceType:"Internal",employeeName:Nt(t,s.unknownUser),updatedBy:Nt(t,s.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:[]};hr(h,Date.now()+3e5,!1),w(x=>[{reportHubId:m,businessDate:g},...x]);try{let x=await P(0,"create",g,{clientTempId:String(m)},{onSuccess:_=>_});if(x.clientTempId&&x.clientTempId!==String(m))throw Le.warn(`[createReport] ID mismatch. req=${m}, res=${x.clientTempId}`),new Error("Optimistic ID mismatch");let I=Number(x.reportHubId);return Ze({reportHubId:I,businessDate:g}),Xe(I),x.report&&(He(I,x.report),D(_=>_+1)),w(_=>_.some(G=>G.reportHubId===I)?_.filter(G=>G.reportHubId!==m):_.map(G=>G.reportHubId===m?{...G,reportHubId:I}:G)),setTimeout(()=>Qe(I),1e3),I}catch(x){throw Le.error("[createReport] Failed or mismatched",x),w(I=>I.filter(_=>_.reportHubId!==m)),x}},ua=async(g,m,v)=>{let h=Number(g);await P(h,"update",v,{...m.title&&{title:m.title},...m.content&&{content:m.content}},{onSuccess:()=>{let x=be(h,{ignoreExpiry:!0});x&&(ge(h,{subject:m.title??x.subject,content:m.content??x.content}),D(I=>I+1))}})},ma=async(g,m)=>{let v=Number(g),h=be(v,{ignoreExpiry:!0}),x=h?.labels||[];await P(v,"publish",m,{},{onOptimistic:()=>{if(h){let I=h.labels.filter(_=>_.name!==o);ge(v,{labels:I}),D(_=>_+1)}},onSuccess:I=>{I.report&&(He(v,I.report),D(_=>_+1)),Ze({reportHubId:v,businessDate:m})},onFailure:()=>{ge(v,{labels:x}),D(I=>I+1)}},{skipLock:!0})},pa=async(g,m)=>{let v=Number(g),h=T.find(x=>x.reportHubId===v);E.current.add(v),Tt(v),w(x=>x.filter(I=>I.reportHubId!==v));try{await P(v,"delete",m,{},{onSuccess:x=>{wt(v,m)}})}catch(x){if(x.status===404){wt(v,m);return}if(!W())return;E.current.delete(v),Ze({reportHubId:v,businessDate:h?.businessDate??m}),h&&w(_=>_.some(G=>G.reportHubId===v)?_:mr(_,h))}};return(0,Ln.jsx)(Mr.Provider,{value:{user:t,pendingAddCommentIds:b,pendingDeleteCommentIds:l,pendingStarUpdates:f,pendingReadUpdates:R,resolvedIdMap:c,version:A,items:T,isSseEnabled:S,toggleSse:Pe,sseStatus:te,addComment:K,deleteComment:ne,toggleStar:Be,toggleRead:da,createReport:ca,updateReport:ua,publishReport:ma,deleteReport:pa,removeStaleItem:me,refetchData:ce,clearCacheAndRefetch:Ee},children:e})};var Oe=require("react");var Lt=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:a,resolvedIdMap:o,version:s,addComment:u,deleteComment:p}=ye(),{labels:b}=U(),l=b.unknownUser,[f,R]=(0,Oe.useState)(null),c=(0,Oe.useCallback)(w=>e&&p(e.reportHubId,w,e.date??""),[e,p]),A=(0,Oe.useCallback)(w=>e&&t?u(e.reportHubId,w,e.date??""):Promise.resolve(),[e,t,u]),D=(0,Oe.useRef)([]);return{uiComments:(0,Oe.useMemo)(()=>{if(!e)return[];let w=on(e.externalComments,e.postedComments,r,l),S=a.current.get(e.reportHubId);S?.size&&(w=w.filter(j=>!S.has(j.id)));let N=n.current.get(e.reportHubId);if(N?.size&&t){let j=new Set(w.map($=>$.id)),B=t.displayName?.trim()||(t.name?`${t.name.familyName??""} ${t.name.givenName??""}`.trim():"")||t.emails?.[0]?.value||l;for(let[$,E]of N){if(S?.has($)||j.has($))continue;let L=o.current.get($);L&&j.has(L)||w.some(H=>H.isMine&&H.content===E&&typeof H.id=="number"&&H.id>0)||w.push({id:$,authorName:B,content:E,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(w)===JSON.stringify(D.current)?D.current:(D.current=w,w)},[e,t,r,l,a,n,o,s]),handleAddComment:A,handleDeleteComment:c,pendingDeleteId:f,setPendingDeleteId:R,resolvedIdMap:o.current}};var An=require("@aiquants/virtualscroll"),Pn=require("react");var tr=()=>{let{locale:e,labels:t}=U(),r=Qr(t),n=(0,Pn.useRef)(null),a=n.current;return a!==null&&An.VIRTUAL_SCROLL_LABEL_KEYS.every(o=>a[o]===r[o])?{locale:e,labels:a}:(n.current=r,{locale:e,labels:r})};var tt=require("react"),At=(e,t)=>{let{enableMutationObserver:r=!1,bottomGap:n=4,minFallbackHeight:a=240}=t??{},[o,s]=(0,tt.useState)(600),u=(0,tt.useCallback)(()=>{if(typeof window>"u")return;let p=e.current;if(!p||p.offsetParent===null&&window.getComputedStyle(p).position!=="fixed")return;let b=F=>Number.parseFloat(F)||0,{top:l}=p.getBoundingClientRect(),f=p.parentElement?.getBoundingClientRect(),R=window.getComputedStyle(document.documentElement),c=b(R.getPropertyValue("--footer-height")),A=b(R.getPropertyValue("--header-height")),D=b(R.getPropertyValue("--scrollbar-height")),T=window.getComputedStyle(p),w=b(T.marginBottom),S=b(T.paddingBottom),N=window.innerHeight-c-D-n,j=f?Math.min(f.bottom,N):N,B=f?Math.max(f.top,A):A,$=Math.max(l,B),E=j-$-w-S,L=Number.isFinite(E)?Math.floor(E):0,H=L>0?L:a;H>0&&Number.isFinite(H)&&s(F=>Math.abs(F-H)>1?H:F)},[n,e,a]);return(0,tt.useEffect)(()=>{if(typeof window>"u")return;let p=null,b=null,l=null,f=null,R=()=>{p!==null&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{u()})};R(),b=window.setTimeout(()=>{R()},150);let c=e.current;return typeof ResizeObserver<"u"&&c&&(l=new ResizeObserver(()=>{R()}),l.observe(c),c.parentElement&&l.observe(c.parentElement)),r&&typeof MutationObserver<"u"&&(f=new MutationObserver(()=>{R()}),f.observe(document.documentElement,{attributes:!0,attributeFilter:["style"]})),window.addEventListener("resize",R),()=>{p!==null&&window.cancelAnimationFrame(p),b!==null&&window.clearTimeout(b),window.removeEventListener("resize",R),l?.disconnect(),f?.disconnect()}},[r,u,e]),{viewportHeight:o,updateViewportHeight:u}};var Fe=require("react");var _n=require("@radix-ui/react-slot"),On=require("class-variance-authority"),Mn=ae(require("react"));var Hn=require("react/jsx-runtime"),ho=(0,On.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Me=Mn.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...a},o)=>(0,Hn.jsx)(n?_n.Slot:"button",{className:J(ho({variant:t,size:r,className:e})),ref:o,...a}));Me.displayName="Button";var Bn=require("react/jsx-runtime");function Fn({className:e,type:t,...r}){return(0,Bn.jsx)("input",{type:t,"data-slot":"input",className:J("flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...r})}var Un=ae(require("@radix-ui/react-label"));var $n=require("react/jsx-runtime");function Pt({className:e,...t}){return(0,$n.jsx)(Un.Root,{"data-slot":"label",className:J("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...t})}var jn=require("react/jsx-runtime");function Vn({className:e,...t}){return(0,jn.jsx)("textarea",{"data-slot":"textarea",className:J("flex min-h-15 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...t})}var he=require("react/jsx-runtime"),_t=({report:e,onCancel:t,onPublishSuccess:r})=>{let{updateReport:n,publishReport:a}=ye(),{labels:o}=U(),[s,u]=(0,Fe.useState)(e.subject??""),[p,b]=(0,Fe.useState)(e.content??""),[l,f]=(0,Fe.useState)(!1),R=(0,Fe.useRef)(e.reportHubId);(0,Fe.useEffect)(()=>{e.reportHubId!==R.current&&(u(e.subject??""),b(e.content??""),R.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let c=async()=>{f(!0);try{await n(e.reportHubId,{title:s,content:p},e.date??"")}catch{}finally{f(!1)}},A=async()=>{f(!0);try{await n(e.reportHubId,{title:s,content:p},e.date??""),await a(e.reportHubId,e.date??""),r?.()}catch{}finally{f(!1)}};return(0,he.jsxs)("div",{className:"space-y-6 p-1",children:[(0,he.jsxs)("div",{className:"space-y-2",children:[(0,he.jsx)(Pt,{htmlFor:`report-title-${e.reportHubId}`,children:o.formTitle}),(0,he.jsx)(Fn,{id:`report-title-${e.reportHubId}`,value:s,onChange:D=>u(D.target.value),placeholder:o.formTitlePlaceholder,disabled:l})]}),(0,he.jsxs)("div",{className:"space-y-2",children:[(0,he.jsx)(Pt,{htmlFor:`report-content-${e.reportHubId}`,children:o.formContent}),(0,he.jsx)(Vn,{id:`report-content-${e.reportHubId}`,value:p,onChange:D=>b(D.target.value),placeholder:o.formContentPlaceholder,className:"min-h-50",disabled:l})]}),(0,he.jsxs)("div",{className:"flex justify-end gap-2",children:[t&&(0,he.jsx)(Me,{variant:"outline",onClick:t,disabled:l,children:o.formCancel}),(0,he.jsx)(Me,{variant:"secondary",onClick:c,disabled:l,children:o.formSave}),(0,he.jsx)(Me,{onClick:A,disabled:l,children:o.formPublish})]})]})};var zn=require("react/jsx-runtime"),rt=({className:e})=>(0,zn.jsx)("span",{className:J("text-blue-500",e),children:"\u25CF"});var d=require("react/jsx-runtime"),Ro=(e,t,r)=>{(0,O.useEffect)(()=>{let n=e.current;if(!n)return;let a=new ResizeObserver(()=>{r(t,n.offsetHeight)});return a.observe(n),()=>a.disconnect()},[t,r,e])},vo=({itemId:e,index:t,setSize:r,onHeightMeasured:n,children:a})=>{let o=(0,O.useRef)(null);return Ro(o,e,n),(0,d.jsx)("div",{ref:o,className:"px-2 pb-3","data-daily-report-button":e,role:"listitem","aria-posinset":t+1,"aria-setsize":r,children:a})},xo=(e,t)=>e.affiliation?.trim()?t.interviewerWithAffiliation(e.name??"",e.affiliation):e.name??"",Br=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:a})=>{let[{initialScrollAnchor:o,restored:s}]=(0,O.useState)(()=>{let k=a?.current;if(!k||k.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!k.topItem)return{initialScrollAnchor:void 0,restored:!0};let z=e.findIndex(X=>X.reportHubId===k.topItem?.reportHubId);return z!==-1?{initialScrollAnchor:{index:z,offsetPx:k.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:k.topItem.index,offsetPx:0},restored:!0}}),u=(0,O.useRef)(s),p=(0,O.useRef)(r??null),b=(0,O.useRef)(a?.current.measuredHeights??new Map),l=(0,O.useRef)(null),f=(0,O.useRef)(null),{labels:R}=U(),c=tr(),{viewportHeight:A,updateViewportHeight:D}=At(l,{enableMutationObserver:!0}),T=Sr(),[w,S]=(0,O.useState)(""),[N,j]=(0,O.useState)(!1),B=(0,O.useRef)(null),$=(0,O.useRef)(null),E=(0,O.useRef)(e);E.current=e;let L=(0,O.useRef)(null);(0,O.useEffect)(()=>{if(r!=null&&f.current){let k=e.findIndex(z=>z.reportHubId===r);if(k!==-1){if(L.current?.id===r&&L.current?.index===k)return;if(u.current&&(u.current=!1,(r??null)===p.current)){L.current={id:r,index:k};return}f.current.scrollToIndex(k,{align:"top"}),L.current={id:r,index:k}}}else L.current=null},[r,e]),(0,O.useEffect)(()=>{let k=a?.current;k&&(k.anchorReportHubId=r??null)},[r,a]);let H=(0,O.useRef)(n);H.current=n,(0,O.useEffect)(()=>{if(f.current){let k=document.querySelector('[data-testid="daily-report-detail-list"]');if(k){let z=f.current,X=Object.assign({},z,{findReportIndex:te=>E.current.findIndex(P=>P.reportHubId===te),getReportItem:te=>E.current[te],selectItem:te=>H.current?.(te)});k.__virtualScroll=X}}});let F=e.length,W=(0,O.useCallback)(k=>k>=F?ht:e[k],[e,F]),ce=(0,O.useCallback)((k,z)=>{if(F===0)return;let X=Math.max(0,k),te=Math.min(F-1,z);if(X>te)return;let P=new Set;for(let K=X;K<=te;K++){let ne=W(K);if(ne.businessDate&&P.add(ne.businessDate),P.size>=br)break}P.forEach(K=>{T(K)})},[W,F,T]),Ee=(0,O.useCallback)(({renderingStartIndex:k,renderingEndIndex:z,visibleStartIndex:X})=>{if(F===0)return;let te=W(X);te?.businessDate&&S(de(te.businessDate)),ce(k,z),ce(z+1,z+yt),ce(k-yt,k-1)},[W,F,ce]),oe=(0,O.useRef)(null),Re=(0,O.useCallback)(()=>{f.current&&(oe.current=f.current);let k=a?.current,z=f.current??oe.current;if(k&&z){let te=z.getScrollAnchor(),P=te?E.current[te.index]:void 0;te&&P&&(k.topItem={reportHubId:P.reportHubId,index:te.index,offsetPx:te.offsetPx})}let X=l.current;X&&(X.dataset.scrolling!=="true"&&(X.dataset.scrolling="true"),$.current&&clearTimeout($.current),$.current=setTimeout(()=>{X&&delete X.dataset.scrolling,$.current=null},150))},[a]),re=(0,O.useCallback)(k=>(0,d.jsx)(it,{...k,label:w,isWheelScrollActive:N}),[w,N]);(0,O.useEffect)(()=>{let k=l.current;if(!k)return;let z=()=>{j(!0),B.current&&clearTimeout(B.current),B.current=window.setTimeout(()=>{j(!1),B.current=null},Rt)};return k.addEventListener("wheel",z,{passive:!0}),()=>{k.removeEventListener("wheel",z),B.current&&clearTimeout(B.current)}},[]);let ue=(0,O.useCallback)((k,z)=>{if(b.current.get(k)!==z&&(b.current.set(k,z),f.current)){let X=E.current.findIndex(te=>te.reportHubId===k);X!==-1&&f.current.updateItemSize(X,z)}},[]),ee=(0,O.useCallback)(k=>{let z=W(k);return b.current.get(z.reportHubId)||350},[W]),ie=(0,O.useCallback)(k=>W(k).reportHubId,[W]);(0,O.useEffect)(()=>{F>=0&&D()},[F,D]),(0,O.useEffect)(()=>{F!==0&&ce(0,Math.min(F-1,yt))},[F,ce]);let Pe=(0,O.useCallback)(k=>{let z=E.current.findIndex(X=>X.reportHubId===k);z>=0&&setTimeout(()=>f.current?.scrollToIndex(z,{align:"bottom"}),300)},[]),me=(0,O.useCallback)((k,z)=>(0,d.jsx)(So,{item:k,index:z,setSize:F,onHeightMeasured:ue,onCommentAdded:Pe,userId:t},k.reportHubId),[ue,Pe,t,F]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{ref:l,className:"flex min-h-0 flex-1 flex-col",children:(0,d.jsx)(Kn.VirtualScroll,{ref:f,itemCount:F,getItem:W,getItemKey:ie,getItemHeight:ee,viewportSize:A,initialScrollAnchor:o,overscanCount:vt,scrollBarOptions:{width:xt,tapScrollCircleOptions:Dt,renderThumbOverlay:re},behaviorOptions:{pointerDragInputs:St,wheelSpeedMultiplier:bt,inertiaOptions:gt,enableKeyboardNavigation:!1},onRangeChange:Ee,onScroll:Re,testId:"daily-report-detail-list",className:"relative w-full",locale:c.locale,labels:c.labels,contentProps:{role:"list","aria-label":R.title},children:me})}),F===0&&(0,d.jsx)("div",{className:"py-8 text-center",children:(0,d.jsx)("p",{className:"text-slate-500",children:R.listEmpty})})]})},Do=()=>(0,d.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900/70",children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[(0,d.jsx)("div",{className:"h-6 w-20 rounded-full bg-slate-200"}),(0,d.jsx)("div",{className:"h-6 w-24 rounded-full bg-slate-200"}),(0,d.jsx)("div",{className:"h-6 w-24 rounded-full bg-slate-200"}),(0,d.jsx)("div",{className:"h-6 w-28 rounded-full bg-slate-200"})]}),(0,d.jsxs)("div",{className:"mb-3 grid gap-3 md:grid-cols-[minmax(0,1fr)_220px]",children:[(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"h-5 w-40 rounded bg-slate-200"}),(0,d.jsx)("div",{className:"h-5 w-56 rounded bg-slate-200"}),(0,d.jsx)("div",{className:"h-24 rounded-lg bg-slate-200"})]}),(0,d.jsxs)("div",{className:"rounded-xl bg-slate-100 p-3",children:[(0,d.jsx)("div",{className:"mb-2 h-4 w-24 rounded bg-slate-200"}),(0,d.jsx)("div",{className:"mb-2 h-4 w-28 rounded bg-slate-200"}),(0,d.jsx)("div",{className:"h-4 w-32 rounded bg-slate-200"})]})]}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"h-4 w-24 rounded bg-slate-200"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("div",{className:"h-6 w-16 rounded-full bg-slate-200"}),(0,d.jsx)("div",{className:"h-6 w-16 rounded-full bg-slate-200"}),(0,d.jsx)("div",{className:"h-6 w-16 rounded-full bg-slate-200"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("div",{className:"h-16 rounded-lg bg-slate-200"}),(0,d.jsx)("div",{className:"h-16 rounded-lg bg-slate-200"})]})]})]}),So=({item:e,index:t,setSize:r,onHeightMeasured:n,onCommentAdded:a,userId:o})=>{let{report:s,error:u,isLoading:p,isRefetching:b}=Ve(e.reportHubId,e.businessDate),{removeStaleItem:l}=ye(),{draftLabelName:f}=U(),[R,c]=(0,O.useState)(!1),[A,D]=(0,O.useState)(!1),T=(0,O.useRef)(!1),w=(0,O.useRef)(!1);b&&(w.current=!0),(0,O.useEffect)(()=>{!(s||p||b||u)&&w.current&&e.reportHubId>0&&l(e.reportHubId)},[s,p,b,u,e.reportHubId,l]);let S=s?.labels.some(j=>j.name===f),N=o&&s?.userId===o;return(0,O.useEffect)(()=>{s&&N&&S&&!R&&!A?(c(!0),T.current=!0):s&&!S&&R&&T.current&&(c(!1),T.current=!1)},[s,N,S,R,A]),(0,d.jsx)(vo,{itemId:e.reportHubId,index:t,setSize:r,onHeightMeasured:n,children:u?(0,d.jsx)(To,{itemId:e.reportHubId}):s?R?(0,d.jsx)(_t,{report:s,onCancel:()=>{c(!1),D(!0)},onPublishSuccess:()=>{c(!1)}}):(0,d.jsx)(Io,{item:e,report:s,onCommentAdded:a,userId:o,onDoubleClick:N?()=>c(!0):void 0}):(0,d.jsx)(Do,{})})},wo=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:a,onToggleStar:o,onDelete:s,itemSourceType:u,visitTimeDisplay:p,categoryLabel:b,labels:l})=>{let{sourceTypeConfigs:f}=U();return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs",children:[(0,d.jsx)(dt,{count:e.attachments.length,label:l.attachments}),(()=>{let R=u??e?.sourceType,c=Ue(R,f);return c?(0,d.jsx)("span",{className:J("inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",c.badgeClassName),children:c.label}):null})(),(0,d.jsx)("button",{type:"button",onClick:o,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 focus:outline-none dark:hover:bg-slate-700",title:r?l.starRemove:l.starAdd,"data-detail-star-button":e.reportHubId,children:r?(0,d.jsx)(Fr.default,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"}):(0,d.jsx)(Fr.default,{className:"h-3.5 w-3.5 text-slate-300 dark:text-slate-500"})}),(0,d.jsx)("button",{type:"button",onClick:a,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 focus:outline-none dark:hover:bg-slate-700",title:t?l.markUnread:l.markRead,"data-detail-read-button":e.reportHubId,children:t?(0,d.jsx)(Yn.default,{className:"h-3.5 w-3.5 text-blue-500"}):(0,d.jsx)(rt,{className:"text-xs"})}),n&&(0,d.jsx)("button",{type:"button",onClick:s,"data-detail-delete-button":e.reportHubId,className:"text-lg leading-none transition-transform focus:outline-none active:scale-125",title:l.deleteReport,children:(0,d.jsx)(Wn.default,{className:"h-4 w-4 text-slate-300 hover:text-red-500"})}),(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-blue-50 px-3 py-1 font-semibold text-blue-700 text-xs",children:[(0,d.jsx)("span",{className:"text-[10px] text-blue-500 uppercase tracking-wide",children:l.id}),e.reportHubId]}),(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[(0,d.jsx)("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:l.businessDate}),de(e.date)]}),(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[(0,d.jsx)("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:l.author}),le(e.employeeName)]}),(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[(0,d.jsx)("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:l.visitTime}),p||"-"]}),(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-slate-100 px-3 py-1",children:[(0,d.jsx)("span",{className:"text-[10px] text-slate-400 uppercase tracking-wide",children:l.updatedAt}),de(e.updatedAt)]}),b&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-amber-100 px-3 py-1 text-amber-700",children:[(0,d.jsx)("span",{className:"text-[10px] text-amber-500 uppercase tracking-wide",children:l.category}),b]})]})},Co=({report:e,visitTimeDisplay:t,categoryLabel:r,labels:n})=>(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-xl bg-slate-100 p-4 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.author}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(e.author)})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.createdAt}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:de(e.createdAt)})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.updatedBy}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(e.updatedBy)})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.updatedAt}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:de(e.updatedAt)})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.businessDate}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:de(e.date)})]}),t&&(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.visitTime}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:t})]}),r&&(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-[10px] text-slate-500 uppercase tracking-wide dark:text-slate-400",children:n.categoryInfo}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:r})]})]}),Io=({item:e,report:t,onCommentAdded:r,userId:n,onDoubleClick:a})=>{let o=(0,O.useRef)(null),{toggleStar:s,toggleRead:u,pendingStarUpdates:p,pendingReadUpdates:b,deleteReport:l,user:f}=ye(),{uiComments:R,handleAddComment:c,handleDeleteComment:A,pendingDeleteId:D,setPendingDeleteId:T,resolvedIdMap:w}=Lt(t,f,n),{labels:S,sourceTypeConfigs:N}=U(),j=e.sourceType??t?.sourceType,B=Ue(j,N),$=j?j.toLowerCase()!=="internal":!1,E=B?.allowComment??!$,L=async ee=>{await c(ee),r?.(e.reportHubId)},H=p.current.has(t.reportHubId)?p.current.get(t.reportHubId)??!1:t.isStarred,F=b.current.has(t.reportHubId)?b.current.get(t.reportHubId)??!1:t.isRead,W=!!(n&&t.userId===n),ce=async()=>{try{await u(t.reportHubId,!F,t.date??"")}catch{}},Ee=async()=>{try{await s(t.reportHubId,!H,t.date??"")}catch{}},oe=async()=>{confirm(S.confirmDelete)&&await l(t.reportHubId,t.date??"")},Re=(0,O.useMemo)(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
3
- `).trim():"",[t.content]),re=(0,O.useMemo)(()=>{let ee=t.visitTimeFrom?.trim(),ie=t.visitTimeTo?.trim();return ee&&ie?`${ee} - ${ie}`:ee||ie||""},[t.visitTimeFrom,t.visitTimeTo]),ue=(0,O.useMemo)(()=>{let ee=[];return t.category?.trim()&&ee.push(`${S.category}: ${t.category}`),t.creationCategory?.trim()&&ee.push(`${S.creationCategory}: ${t.creationCategory}`),ee.join(" / ")},[t.category,t.creationCategory,S.category,S.creationCategory]);return(0,d.jsx)("div",{onDoubleClick:a,className:`flex h-full w-full flex-col rounded-2xl border bg-white p-4 shadow-sm transition-all duration-200 hover:-translate-y-0.5 hover:border-blue-300 hover:shadow-lg dark:border-slate-700 dark:bg-slate-900/70 ${F?"":"border-l-4 border-l-blue-500"}`,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(wo,{report:t,itemSourceType:e.sourceType,isRead:F,isStarred:H,isMine:W,onToggleRead:ce,onToggleStar:Ee,onDelete:oe,visitTimeDisplay:re,categoryLabel:ue,labels:S}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.customer}),(0,d.jsx)("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:le(t.customerName)})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.subject}),(0,d.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(t.subject)})]})]}),Re&&(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.content}),(0,d.jsx)("div",{className:"whitespace-pre-wrap rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-relaxed dark:bg-slate-800/60 dark:text-slate-200",children:Re})]}),t.interviewers.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.interviewers}),(0,d.jsx)("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(ee=>(0,d.jsx)("li",{className:"rounded-full bg-slate-100 px-3 py-1 text-slate-600 text-xs",children:xo(ee,S)},`${ee.name}-${ee.affiliation||""}`))})]}),(0,d.jsx)(ct,{attachments:t.attachments}),R.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("span",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide",children:S.comments}),(0,d.jsx)(ut,{comments:R,reportHubId:t.reportHubId,businessDate:t.date??"",onDeleteComment:A,pendingDeleteId:D,onPendingDeleteIdChange:T,resolvedIdMap:w})]}),E&&(0,d.jsx)("div",{className:"mt-auto",ref:o,children:(0,d.jsx)(mt,{reportHubId:t.reportHubId,businessDate:t.date??"",onAddComment:L})})]}),(0,d.jsx)(Co,{report:t,visitTimeDisplay:re,categoryLabel:ue,labels:S})]})]})})},To=({itemId:e})=>{let{labels:t}=U();return(0,d.jsx)("div",{className:"rounded-2xl border border-red-200 bg-red-50 p-4 text-red-700 text-sm",children:(0,d.jsx)("p",{children:t.reportLoadFailed(e)})})};var Ur=ae(require("lucide-react/dist/esm/icons/refresh-cw.js"));var ze=require("react"),nt=(e,t=250)=>{let[r,n]=(0,ze.useState)(e),a=(0,ze.useRef)(e),o=(0,ze.useRef)(!0);return(0,ze.useEffect)(()=>{if(o.current){o.current=!1,a.current=e,n(e);return}let s=a.current;if(s===e)return;let u=null,p=null,b=l=>{p===null&&(p=l);let f=Math.min(1,Math.max(0,(l-p)/t)),R=1-(1-f)**3,c=Math.round(s+(e-s)*R);a.current=c,n(c),f<1&&(u=requestAnimationFrame(b))};return u=requestAnimationFrame(b),()=>{u!==null&&cancelAnimationFrame(u)}},[e,t]),r};var Ae=require("react/jsx-runtime"),Ot=()=>{let e=_e(),{labels:t}=U(),r=nt(e.loadedCount),n=nt(e.totalCount??0);if(e.phase==="streaming"){let a=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return(0,Ae.jsxs)("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:"inline-flex items-center gap-1.5 rounded-full bg-blue-100 px-2 py-0.5 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300",children:[(0,Ae.jsx)("span",{"aria-hidden":"true",className:"h-1.5 w-1.5 animate-pulse rounded-full bg-blue-500 dark:bg-blue-400"}),a!==null?t.streamProgressRatio(r,n,a):t.streamProgressCount(r)]})}return e.phase==="retrying"?(0,Ae.jsxs)("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:"inline-flex items-center gap-1.5 rounded-full bg-amber-100 px-2 py-0.5 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300",children:[(0,Ae.jsx)(Ur.default,{"aria-hidden":"true",className:"h-3 w-3 animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?(0,Ae.jsxs)("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:"inline-flex items-center gap-1.5 rounded-full bg-rose-100 px-2 py-0.5 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300",children:[t.streamFailed,(0,Ae.jsx)("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Et(),className:"rounded bg-rose-200 px-1.5 py-0.5 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",children:t.streamRetry})]}):e.isRevalidating?(0,Ae.jsxs)("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"revalidating",className:"inline-flex items-center gap-1 text-slate-400 text-xs dark:text-slate-500",children:[(0,Ae.jsx)(Ur.default,{"aria-hidden":"true",className:"h-3 w-3 animate-spin"}),t.streamRevalidating]}):null};var Ke=require("@aiquants/resize-panels"),Te=require("@aiquants/swipe-overlay"),Xn=require("@aiquants/virtualscroll"),Qn=ae(require("lucide-react/dist/esm/icons/check.js")),$r=ae(require("lucide-react/dist/esm/icons/star.js")),Zn=ae(require("lucide-react/dist/esm/icons/trash-2.js")),C=require("react");var Gn=require("react"),qn="(max-width: 639px)",Eo=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(qn);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},ko=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(qn).matches:!1,No=()=>!1,Jn=()=>(0,Gn.useSyncExternalStore)(Eo,ko,No);var Ie=ae(require("@radix-ui/react-tabs")),rr=ae(require("react"));var ar=require("react/jsx-runtime"),nr=Ie.Root,Mt=rr.forwardRef(({className:e,...t},r)=>(0,ar.jsx)(Ie.List,{ref:r,className:J("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));Mt.displayName=Ie.List.displayName;var Ht=rr.forwardRef(({className:e,...t},r)=>(0,ar.jsx)(Ie.Trigger,{ref:r,className:J("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 font-medium text-sm ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-2xs",e),...t}));Ht.displayName=Ie.Trigger.displayName;var at=rr.forwardRef(({className:e,...t},r)=>(0,ar.jsx)(Ie.Content,{ref:r,className:J("data-[state=inactive]:hidden","mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));at.displayName=Ie.Content.displayName;var i=require("react/jsx-runtime"),Lo={pointerDragInputs:St,inertiaOptions:gt,wheelSpeedMultiplier:bt,enableKeyboardNavigation:!1},Ao={top:ft,bottom:ft},Po=(e,t,r,n)=>{let[a,o]=(0,C.useState)(!1),[s,u]=(0,C.useState)(!1),p=(0,C.useRef)(null),b=(0,C.useRef)(null),l=(0,C.useRef)(null),f=(0,C.useRef)(e),R=(0,C.useRef)(!0),c=(0,C.useMemo)(()=>t===null?null:r.find(T=>T.reportHubId===t)??null,[r,t]);(0,C.useEffect)(()=>{if(R.current){R.current=!1,f.current=e;return}let T=!f.current;f.current=e,T&&e&&t!==null?o(!0):!e&&a&&(o(!1),l.current!==null&&(document.body.style.overflow=l.current,l.current=null))},[e,t,a]);let A=e&&a&&c!==null;(0,C.useEffect)(()=>{if(A)u(!0);else{let T=setTimeout(()=>u(!1),300);return()=>clearTimeout(T)}},[A]),(0,C.useEffect)(()=>{if(!(typeof window>"u")){if(e&&a&&t!==null&&!p.current){let T=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:T},"",window.location.href),p.current=T}else!(e&&a)&&p.current&&(p.current=null);return e&&a?(l.current=document.body.style.overflow,document.body.style.overflow="hidden"):l.current!==null&&(document.body.style.overflow=l.current,l.current=null),()=>{l.current!==null&&(document.body.style.overflow=l.current)}}},[e,a,t]),(0,C.useEffect)(()=>{if(typeof window>"u")return;let T=()=>{p.current&&(b.current=t,p.current=null,o(!1),n(null))};return window.addEventListener("popstate",T),()=>window.removeEventListener("popstate",T)},[t,n]);let D=(0,C.useCallback)(()=>{e&&(b.current=t,o(!1),n(null),p.current&&typeof window<"u"&&(p.current=null,window.history.back()))},[e,t,n]);return{isMobileDetailOpen:a,setIsMobileDetailOpen:o,isOverlayMounted:s,shouldShowOverlay:A,handleOverlayClose:D,lastClosedItemIdRef:b,selectedItem:c}},_o=(e,t,r,n,a)=>{let o=(0,C.useRef)(null),s=(0,C.useRef)(void 0);s.current!==e?.reportHubId&&(s.current=e?.reportHubId,o.current=null),(0,C.useEffect)(()=>{n||(o.current=null)},[n]);let u=(0,C.useCallback)(async(p=!1)=>{if(!e)return;p||(o.current=e.reportHubId);let b=!e.isRead;try{await a(e.reportHubId,b,e.date??"")}catch{}},[e,a]);return(0,C.useEffect)(()=>{if(r&&e&&!e.isRead&&!t){if(o.current===e.reportHubId)return;let p=setTimeout(()=>u(!0),500);return()=>clearTimeout(p)}},[e,t,r,u]),{handleToggleRead:u}},Vr=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:a,scrollOffsetRef:o})=>{let[s]=(0,C.useState)(()=>o?.current??0),u=(0,C.useRef)(null),p=(0,C.useRef)(null),{labels:b}=U(),l=tr(),{viewportHeight:f,updateViewportHeight:R}=At(u),[c,A]=(0,C.useState)(""),[D,T]=(0,C.useState)(!1),w=Jn(),S=(0,C.useRef)(null),[N,j]=(0,C.useState)(!1);(0,C.useEffect)(()=>{if(typeof window>"u"||typeof ResizeObserver>"u")return;let P=S.current;if(!P)return;let K=new ResizeObserver(ne=>{for(let Be of ne)if(Be.target===P){let st=Be.contentRect.width;j(st>0&&st<460)}});return K.observe(P),()=>K.disconnect()},[]);let B=w||N,$=(0,C.useRef)(null),E=e.length,L=(0,C.useRef)(null),{isMobileDetailOpen:H,setIsMobileDetailOpen:F,isOverlayMounted:W,shouldShowOverlay:ce,handleOverlayClose:Ee,lastClosedItemIdRef:oe,selectedItem:Re}=Po(B,r,e,n),re=(0,C.useMemo)(()=>Number.isFinite(f)&&f>0?{height:f}:void 0,[f]);(0,C.useEffect)(()=>{if(typeof window>"u")return;let P=()=>requestAnimationFrame(R);window.addEventListener("resize",P),R();let K=u.current,ne=()=>{T(!0),$.current&&clearTimeout($.current),$.current=window.setTimeout(()=>{T(!1),$.current=null},Rt)};return K?.addEventListener("wheel",ne,{passive:!0}),()=>{window.removeEventListener("resize",P),K?.removeEventListener("wheel",ne),$.current&&clearTimeout($.current)}},[R]),(0,C.useEffect)(()=>{!E&&r!==null&&n(null)},[E,r,n]),(0,C.useEffect)(()=>{if(B||H||oe.current===null)return;let P=oe.current;oe.current=null;let K=e.findIndex(ne=>ne.reportHubId===P);K>=0&&(p.current?.scrollToIndex(K),requestAnimationFrame(()=>{document.querySelector(`[data-testid="daily-report-list"] [data-daily-report-button="${P}"]`)?.focus()}))},[H,B,e,oe]),(0,C.useEffect)(()=>{E>0&&A(P=>{let K=de(e[0]?.businessDate);return P===K?P:K})},[e,E]);let ue=(0,C.useRef)(e);ue.current=e,(0,C.useEffect)(()=>{if(p.current){let P=document.querySelector('[data-testid="daily-report-list"]');P&&(P.__virtualScroll={...p.current,findReportIndex:K=>ue.current.findIndex(ne=>ne.reportHubId===K),getReportIds:(K=20)=>ue.current.slice(0,K).map(ne=>ne.reportHubId)})}});let ee=(0,C.useCallback)(P=>{P<=0||(n(P),B&&F(!0))},[B,n,F]),ie=(0,C.useCallback)(P=>P<E?e[P]:ht,[e,E]),Pe=(0,C.useCallback)(()=>Wt,[]),me=(0,C.useCallback)((P,K)=>(0,i.jsx)(ta,{item:P,index:K,setSize:E,isActive:P.reportHubId===r,onSelect:ee},P.reportHubId),[E,r,ee]),k=(0,C.useCallback)(P=>{let K=ie(P.visibleStartIndex);K?.reportHubId>0&&A(ne=>{let Be=de(K.businessDate);return ne===Be?ne:Be})},[ie]),z=(0,C.useCallback)(P=>{o&&(o.current=P);let K=u.current;K&&(K.dataset.scrolling!=="true"&&(K.dataset.scrolling="true"),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{K&&delete K.dataset.scrolling,L.current=null},150))},[o]),X=(0,C.useCallback)(P=>(0,i.jsx)(it,{...P,label:c,isWheelScrollActive:D}),[c,D]),te=(0,C.useMemo)(()=>(0,i.jsx)("div",{ref:u,className:"isolate flex h-full min-h-0 w-full overflow-hidden",style:re,children:(0,i.jsx)(Xn.VirtualScroll,{ref:p,itemCount:E,getItem:ie,getItemHeight:Pe,viewportSize:f,initialScrollOffset:s,overscanCount:vt,scrollBarOptions:{width:xt,tapScrollCircleOptions:Dt,renderThumbOverlay:X},behaviorOptions:Lo,onRangeChange:k,onScroll:z,contentInsets:Ao,testId:"daily-report-list",className:"relative w-full",locale:l.locale,labels:l.labels,contentProps:{role:"list","aria-label":b.title},children:me})}),[re,E,ie,Pe,f,s,X,k,z,b.title,l.locale,l.labels,me]);return(0,i.jsxs)("div",{ref:S,className:"h-full min-h-0 w-full","data-testid":"daily-report-root",children:[B?(0,i.jsx)("div",{className:"flex h-full min-h-0",children:te}):(0,i.jsxs)(Ke.PanelGroup,{direction:"horizontal",className:"flex h-full min-h-0","data-testid":"daily-report-panel-group",children:[(0,i.jsx)(Ke.Panel,{id:"daily-report-list-panel",defaultSize:{value:360,unit:"pixels"},minSize:{value:160,unit:"pixels"},maxSize:{value:520,unit:"pixels"},contentOverflow:"hidden",className:"flex min-h-0",children:te}),(0,i.jsx)(Ke.PanelResizeHandle,{id:"daily-report-list-handle",thickness:10,indicator:{visible:!0,thickness:6,length:32,barThickness:2,barLength:16},className:"cursor-col-resize rounded transition-colors hover:bg-slate-200/60 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-1 dark:hover:bg-slate-700/60","aria-label":b.resizeHandle}),(0,i.jsx)(Ke.Panel,{id:"daily-report-detail-panel",minSize:{value:160,unit:"pixels"},contentOverflow:"hidden",className:"flex min-h-0 flex-1 pl-1.5",children:(0,i.jsx)(ea,{dailyReportItems:e,selectedItem:Re,autoMarkRead:t,isActive:r!==null,userId:a})})]}),E===0&&(0,i.jsx)("div",{className:"py-8 text-center",children:(0,i.jsx)("p",{className:"text-slate-500",children:b.listEmpty})}),W&&(0,i.jsx)(Ho,{isOpen:ce,selectedItem:Re,onClose:Ee,autoMarkRead:B&&t,userId:a})]})},Oo=e=>(0,i.jsx)("div",{...e,className:"px-2 pb-3",style:{height:qe},children:(0,i.jsxs)("div",{"data-skeleton":!0,className:"flex h-full animate-pulse flex-col justify-between rounded-2xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900/70",children:[(0,i.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-3",children:[(0,i.jsx)("div",{className:"h-4 w-24 rounded bg-slate-200"}),(0,i.jsx)("div",{className:"h-4 w-24 rounded bg-slate-200"}),(0,i.jsx)("div",{className:"h-4 w-24 rounded bg-slate-200"})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("div",{className:"h-4 w-full rounded bg-slate-200"}),(0,i.jsx)("div",{className:"h-4 w-11/12 rounded bg-slate-200"}),(0,i.jsx)("div",{className:"h-4 w-5/6 rounded bg-slate-200"})]})]})}),ea=({dailyReportItems:e,selectedItem:t,heightStyle:r,autoMarkRead:n=!1,isActive:a=!0,userId:o})=>{let[s,u]=(0,C.useState)("article"),[p,b]=(0,C.useState)(!1),{draftLabelName:l,labels:f,sourceTypeConfigs:R}=U(),{report:c,error:A,isLoading:D}=Ve(t?.reportHubId??-1,t?.businessDate??null),T=(0,C.useRef)(null),w=(0,C.useRef)(null),S=(0,C.useRef)(!1);(0,C.useEffect)(()=>{if(!c)return;let H=c.labels.some(F=>F.name===l);c.reportHubId!==w.current?(w.current=c.reportHubId,H?(b(!0),S.current=!0):(b(!1),S.current=!1)):!H&&p&&S.current&&(b(!1),S.current=!1)},[c,p,l]);let N=!!(o&&c?.userId===o),j=(0,C.useCallback)(()=>{setTimeout(()=>{T.current&&T.current.scrollTo({top:T.current.scrollHeight,behavior:"smooth"})},100)},[]);if(e&&(e.length===0||!t))return(0,i.jsx)("aside",{className:"hidden h-full min-h-0 min-w-0 flex-1 gap-3 rounded-2xl border border-slate-200 bg-white p-4 shadow-sm sm:flex dark:border-slate-700 dark:bg-slate-900/70",style:r,children:(0,i.jsx)("div",{className:"flex h-full flex-1 items-center justify-center rounded-xl border border-slate-300 border-dashed bg-slate-50 p-4 text-center text-slate-500 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:(0,i.jsx)("p",{children:f.selectPrompt})})});let B=de(c?.date??t?.businessDate),$=c?.employeeName||c?.author?le(c.employeeName??c.author):"",E=D||!c,L=(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"space-y-1",children:[(0,i.jsx)("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:f.businessDate}),(0,i.jsx)("div",{className:"text-slate-900 text-sm dark:text-slate-100",children:B}),(0,i.jsxs)("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[(0,i.jsxs)("span",{children:[f.author,":"]}),E?(0,i.jsx)("div",{"data-skeleton":!0,className:"h-3 w-24 animate-pulse rounded bg-slate-200 dark:bg-slate-700"}):(0,i.jsx)("span",{children:$}),(()=>{let H=c?.sourceType,F=H?R?.[H]:void 0;return F?(0,i.jsx)("span",{className:J("ml-2 inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",F.badgeClassName),children:F.label}):null})()]})]}),(0,i.jsxs)(nr,{value:s,onValueChange:H=>u(H),className:"flex min-h-0 flex-1 flex-col",children:[(0,i.jsx)(Mt,{className:"grid grid-cols-2 gap-1 rounded-md bg-slate-100 p-1 text-xs dark:bg-slate-800",children:["article","relations"].map(H=>(0,i.jsx)(Ht,{value:H,className:"rounded-md px-2 py-1 font-medium text-slate-600 transition-colors data-[state=active]:bg-white data-[state=active]:text-slate-900 data-[state=active]:shadow-sm dark:text-slate-200 dark:data-[state=active]:bg-slate-900/70 dark:data-[state=active]:text-slate-100",children:H==="article"?f.tabArticle:f.tabRelations},H))}),(0,i.jsx)(at,{ref:T,value:"article",className:"scrollbar-thin flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-3 text-sm",children:p?c?(0,i.jsx)(_t,{report:c,onCancel:()=>b(!1),onPublishSuccess:()=>b(!1)}):(0,i.jsx)("p",{className:"rounded-lg border border-slate-300 border-dashed bg-slate-50 p-4 text-slate-600 dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:f.loading}):t&&(0,i.jsx)(Mo,{report:c,isLoading:D,error:A,selectedItem:t,autoMarkRead:n,isActive:a,onCommentAdded:j,userId:o,onDoubleClick:N?()=>b(!0):void 0})}),(0,i.jsx)(at,{value:"relations",className:"scrollbar-thin flex-1 touch-pan-y overflow-y-auto pt-3 text-sm",children:(0,i.jsx)("p",{className:"rounded-lg border border-slate-300 border-dashed bg-slate-50 p-4 text-slate-600 dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",children:f.relationsEmpty})})]})]});return e?(0,i.jsx)("aside",{"data-testid":"daily-report-side-pane","data-report-id":t?.reportHubId,className:"hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-3 rounded-2xl border border-slate-200 bg-white p-4 shadow-sm sm:flex dark:border-slate-700 dark:bg-slate-900/70",style:r,children:L}):(0,i.jsx)("div",{"data-testid":"daily-report-side-pane","data-report-id":t?.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-3 overflow-hidden",children:L})},ot=({className:e="w-32"})=>(0,i.jsx)("div",{"data-skeleton":!0,className:`h-4 animate-pulse rounded bg-slate-200 dark:bg-slate-700 ${e}`}),Mo=({report:e,isLoading:t,error:r,selectedItem:n,autoMarkRead:a=!1,isActive:o=!0,onCommentAdded:s,userId:u,onDoubleClick:p})=>{let{toggleStar:b,toggleRead:l,deleteReport:f,user:R}=ye(),{labels:c,sourceTypeConfigs:A}=U(),{uiComments:D,handleAddComment:T,handleDeleteComment:w,pendingDeleteId:S,setPendingDeleteId:N,resolvedIdMap:j}=Lt(e,R,u),{handleToggleRead:B}=_o(e,t,a,o,l),$=n.sourceType??e?.sourceType,E=Ue($,A),L=$?$.toLowerCase()!=="internal":!1,H=E?.allowComment??!L,F=(0,C.useRef)(null),W=(0,C.useRef)(D.length);(0,C.useEffect)(()=>{let me=e?.reportHubId??null;if(me!==F.current){F.current=me,W.current=D.length;return}D.length>W.current&&s?.(),W.current=D.length},[D.length,e?.reportHubId,s]);let ce=async me=>{await T(me)},Ee=(0,C.useMemo)(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
1
+ "use strict";var md=Object.create;var Zr=Object.defineProperty;var pd=Object.getOwnPropertyDescriptor;var fd=Object.getOwnPropertyNames;var bd=Object.getPrototypeOf,yd=Object.prototype.hasOwnProperty;var gd=(e,t)=>{for(var r in t)Zr(e,r,{get:t[r],enumerable:!0})},Ra=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of fd(t))!yd.call(e,o)&&o!==r&&Zr(e,o,{get:()=>t[o],enumerable:!(n=pd(t,o))||n.enumerable});return e};var Te=(e,t,r)=>(r=e!=null?md(bd(e)):{},Ra(t||!e||!e.__esModule?Zr(r,"default",{value:e,enumerable:!0}):r,e)),Rd=e=>Ra(Zr({},"__esModule",{value:!0}),e);var Ip={};gd(Ip,{DAILY_REPORT_LABEL_CATALOGS:()=>Ao,DAILY_REPORT_LABEL_KEYS:()=>dn,DEFAULT_ITEM_HEIGHT:()=>Qa,DailyReportActionProvider:()=>zn,DailyReportAttachmentIndicator:()=>tr,DailyReportConfigProvider:()=>un,DailyReportDetailList:()=>Ro,DailyReportErrorProvider:()=>$n,DailyReportIdsStreamClient:()=>cr,DailyReportIdsStreamStatus:()=>vr,DailyReportList:()=>Eo,DailyReportPage:()=>ld,DailyReportResolvedContent:()=>Io,TAP_SCROLL_CIRCLE_OPTIONS:()=>wo,bootstrapDailyReportIdsStreamSession:()=>Bn,createDailyReportClientLoader:()=>cd,dailyReportShouldRevalidate:()=>dd,defaultDailyReportClientConfig:()=>or,ensureDailyReportIdsStreamSession:()=>ur,primeDailyReportIdsStreamSession:()=>Un,resolveDailyReportLabels:()=>cn,resolveSourceTypeConfig:()=>Dt,resyncDailyReportIdsStream:()=>Nr,useDailyReportActionContext:()=>_e,useDailyReportComments:()=>pr,useDailyReportConfig:()=>V,useDailyReportDetail:()=>_t,useDailyReportIdsStream:()=>mt,useDailyReportPrefetch:()=>En,useDailyReportSseConnection:()=>Kn});module.exports=Rd(Ip);var Ua=Te(require("lucide-react/dist/esm/icons/paperclip.js"));var hd="data-daily-report-row-surface",ze={[hd]:""},Zt="data-daily-report-scrolling",Qr=8,Qt="p-[8px]",ha="contain-size contain-layout contain-style",Sa="contain-layout contain-style",va="contain-strict",ae="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",Ta="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",Ea="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",en="rounded-[calc(var(--radius-2xl)+8px)]",tn="outline-none [&:focus-visible>:where([data-daily-report-row-surface])]:outline-2 [&:focus-visible>:where([data-daily-report-row-surface])]:outline-offset-4 [&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-600 dark:[&: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]",xa="has-[>[data-daily-report-button]:focus-visible]:outline-2 has-[>[data-daily-report-button]:focus-visible]:outline-offset-4 has-[>[data-daily-report-button]:focus-visible]:outline-blue-600 dark: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",At="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",Ia=16,er="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",rn="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",nn="motion-safe:transition-[translate] motion-safe:duration-200 hover:border-blue-300 hover:shadow-lg motion-safe:hover:-translate-y-[2px] [[data-daily-report-scrolling]_&]:transition-none [[data-daily-report-scrolling]_&]:hover:translate-none [[data-daily-report-scrolling]_&]:hover:shadow-sm",He=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${ae}`,Ca="-mx-1",La="flex items-center gap-1",Me="inline-flex h-6 items-center rounded-full px-3",Aa="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Da="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",Lt="size-4",xe={starOff:`${Lt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${Lt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${Lt} text-blue-600 dark:text-blue-400`,delete:`${Lt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${Lt} text-red-600 dark:text-red-400`,edit:`${Lt} text-slate-500 dark:text-slate-400`},_a="h-6 w-10 border-4 border-solid",wa="size-4 data-[state=checked]:translate-x-4",Na="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]",Oa="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var Ma="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",ka="rounded-xl border border-solid p-[3px]",Pa="inline-flex h-6 items-center justify-center whitespace-nowrap rounded-lg border-b-2 border-solid border-transparent px-2 font-medium text-slate-600 text-xs dark:text-slate-300 data-[state=active]:border-blue-600 data-[state=active]:bg-white data-[state=active]:text-slate-900 dark:data-[state=active]:border-blue-400 dark:data-[state=active]:bg-slate-950 dark:data-[state=active]:text-slate-100 forced-colors:data-[state=active]:border-[Highlight] disabled:pointer-events-none disabled:opacity-50",Ha="bg-slate-50 dark:bg-slate-950",ut="flex min-h-0 flex-1 flex-col",on="flex min-h-0 flex-1 flex-col overflow-clip contain-size",an="pointer-events-none absolute inset-x-0 top-0 py-4 text-center text-slate-500",Fa="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",Ba={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},Ut="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",Rt=`m-0 ${Ut}`,sn="[&_.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";var Cr=require("react/jsx-runtime"),Sd=2,tr=({id:e,count:t,label:r})=>t<=0?null:(0,Cr.jsxs)("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:[(0,Cr.jsx)(Ua.default,{className:Lt,"aria-hidden":"true"}),t>=Sd&&(0,Cr.jsx)("span",{className:"font-semibold text-xs leading-4",children:t})]});var Il=require("@aiquants/virtualscroll"),B=require("react");var he=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},ge=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?ge(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 l=String(n.getHours()).padStart(2,"0"),c=String(n.getMinutes()).padStart(2,"0"),y=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${l}:${c}:${y}`}return`${o}-${a}-${i}`};var ja=require("@aiquants/virtualscroll"),nr=require("react");var vd=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,Ae=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${vd(r)}`),Va=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),ln=(e,t,r)=>Ae(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);var ot=require("@aiquants/virtualscroll");var Ka=["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","listEmpty","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"],$a=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState"],dn=[...ot.VIRTUAL_SCROLL_LABEL_KEYS,...Ka,...$a];var Td=Object.freeze({en:"en-US",ja:"ja-JP"}),Fe=(e,t)=>t.toLocaleString(Td[e]),Ed=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"}),xd=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"}),Lo=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",listEmpty:"No data",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: ${Fe("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${Fe("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${Fe("en",e)} / ${Fe("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${Fe("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${Fe("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${Fe("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${xd[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`}),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",listEmpty:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",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: ${Fe("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${Fe("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${Fe("ja",e)} / ${Fe("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${Fe("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${Fe("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${Fe("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Ed[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":""}`})}),Ao=Object.freeze({en:Object.freeze({...ot.VIRTUAL_SCROLL_LABEL_CATALOGS.en,...Lo.en}),ja:Object.freeze({...ot.VIRTUAL_SCROLL_LABEL_CATALOGS.ja,...Lo.ja})}),Id=e=>{let t={},r=!1;for(let n of ot.VIRTUAL_SCROLL_LABEL_KEYS){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},Wa=(e,t,r)=>{e[t]=r},cn=(e,t)=>{let r=(0,ot.resolveVirtualScrollLocale)(e);if(t===void 0)return Ao[r];if(t===null||typeof t!="object")throw Ae("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw Ae("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!dn.includes(i))throw ln("labels key",i,dn);let a={...(0,ot.resolveVirtualScrollLabels)(r,Id(t)),...Lo[r]};for(let i of Ka){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw Ae(`labels.${i}`,"a non-blank string",s);Wa(a,i,s)}}for(let i of $a){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw Ae(`labels.${i}`,"a function",s);Wa(a,i,s)}}return Object.freeze(a)},za=e=>{let t={};for(let r of ot.VIRTUAL_SCROLL_LABEL_KEYS)t[r]=e[r];return Object.freeze(t)};var rr=require("react/jsx-runtime"),Cd=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Ld=({title:e,annotation:t})=>(0,rr.jsxs)("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[(0,rr.jsx)("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?(0,rr.jsx)("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),or=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Ld,showDevControls:!1,headingLevel:3}),Ga=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Ad=e=>{for(let t of Object.keys(e))if(!Ga.includes(t))throw ln("config key",t,Ga)},Dd=[2,3,4,5],_d=e=>{if(e===void 0)return or.headingLevel;let t=Dd.find(r=>r===e);if(t===void 0)throw Ae("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},wd=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw Ae(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},Ya=e=>{Ad(e);let t=e.onSessionExpired;if(t===void 0)throw Va("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw Ae("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=(0,ja.resolveVirtualScrollLocale)(e.locale),n=cn(r,e.labels),o=or;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?Cd(n):wd(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:_d(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},Nd=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},qa=(0,nr.createContext)(Ya({onSessionExpired:Nd})),un=({config:e,children:t})=>{let r=(0,nr.useMemo)(()=>Ya(e),[e]);return(0,rr.jsx)(qa.Provider,{value:r,children:t})},V=()=>(0,nr.useContext)(qa),Dt=(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},mn=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";var ht=require("react");var Od=/^\d{4}-\d{2}-\d{2}$/,Md=/^\d{4}\/\d{2}\/\d{2}$/,pn=e=>e<10?`0${e}`:`${e}`,Xa=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=pn(e.getMonth()+1),n=pn(e.getDate());return`${t}-${r}-${n}`},Do=(e=new Date)=>Number.isNaN(e.getTime())?Do(new Date):`${e.getFullYear()}-${pn(e.getMonth()+1)}-${pn(e.getDate())}`,Vt=e=>{if(e==null)return null;if(e instanceof Date)return Xa(e);let t=e.trim();if(t==="")return null;if(Od.test(t))return t;if(Md.test(t))return t.replaceAll("/","-");let r=new Date(t);return Xa(r)};var ar=(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)}}};var Ja=require("@aiquants/virtualscroll"),ir=120,Za=1e3,Qa=160,fn=.8,_o={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},bn=20,ei=6,yn={reportHubId:-1,businessDate:null};var gn=240,Rn=15,kd=8,ti=460,ri=3,wo={enabled:!0,renderVisual:Ja.tapScrollCircleSampleVisual,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},hn={width:kd,tapScrollCircleOptions:wo,enableArrowButtonTabStops:!1},Sn=["pen","touch"];var ai=ar(1,"use-daily-report"),ii=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Oo=ii("__DAILY_REPORT_CACHE_TTL__",3e5),Pd=ii("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),X={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{X.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=Vt(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()){ai.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Pd))}},delete(e,t){this.reports.delete(e);let r=Vt(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+Oo;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let s=this.lastMutations.get(i.reportHubId);if(s&&r>0&&s>r)return this.reports.get(i.reportHubId)?.data??i;let l=this.reports.get(i.reportHubId)?.data,c=this.merge(i,l);return this.set(c,o,!1),c});return t&&this.lists.set(t,{data:a,expiresAt:o}),a}},si=(e,t,r=!0)=>X.set(e,t,r),Je=(e,t)=>X.getReport(e,t?.ignoreExpiry),Ze=(e,t)=>X.update(e,t),Tn=(e,t)=>X.delete(e,t),Lr=()=>{X.clear(),vn.clear()},Ar=e=>{X.locks.add(e),X.lastMutations.set(e,Date.now())},Dr=e=>{X.locks.delete(e),X.lastMutations.set(e,Date.now())},li=e=>X.recentDeletes.set(e,Date.now()),di=(e,t)=>{let r=n=>{n===e&&t()};return X.listeners.add(r),()=>{X.listeners.delete(r)}},Wt=(e,t)=>{X.prune(),X.set(t,Date.now()+Oo)},ci=e=>{X.prune();let t=X.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}));X.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Oo)},Hd=async(e,t)=>{let r=X.getReport(t);if(r)return r;let n=X.pendingReports.get(t);if(n)return n;let o=Date.now(),a=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(i=>i.ok?i.json():Promise.reject(`HTTP ${i.status}`)).then(i=>{if(i.error)throw new Error(i.error.message);let s=i.report;return X.cacheMany([s],null,o)[0]}).finally(()=>X.pendingReports.delete(t));return X.pendingReports.set(t,a),a},vn=new Map,Fd=1e4,Bd=(e,t)=>{let r=vn.get(t),n=Date.now();if(r&&n-r.at<Fd)return r.inFlight;let o=Mo(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return vn.set(t,a),o.finally(()=>{vn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},Mo=async(e,t,r={})=>{let n=r.forceRefresh?null:X.getList(t);if(n)return n;let o=X.pendingLists.get(t);if(o)return o;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);return X.cacheMany(s.reports??[],t,a)}).finally(()=>X.pendingLists.delete(t));return X.pendingLists.set(t,i),i},No=(e,t)=>{let r=X.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!X.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=X.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:!X.isValid(n.expiresAt)}},ni=(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}=No(e,Vt(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},sr=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,_t=(e,t)=>{let{apiBasePath:r}=V(),[n,o]=(0,ht.useState)(()=>ni(e,t)),a=(0,ht.useRef)({id:e,token:0}),i=n;return n.id!==e&&(i=ni(e,t),o(i)),(0,ht.useEffect)(()=>{let s=Vt(t),l=c=>{c===e&&o(sr(e,{report:No(e,s).report}))};return X.listeners.add(l),()=>{X.listeners.delete(l)}},[e,t]),(0,ht.useEffect)(()=>{let s=Vt(t),l=(a.current.token||0)+1;if(a.current={id:e,token:l},e<=0)return;let{report:c,isStale:y}=No(e,s);if(c&&!y){o(sr(e,{report:c,error:null,isLoading:!1,isRefetching:!1}));return}o(sr(e,{report:c,isLoading:!c,isRefetching:!0}));let R=setTimeout(async()=>{if(a.current.token===l)try{let T=null;if(s){let C=X.getList(s)!==null;if(T=(await Mo(r,s)).find(g=>g.reportHubId===e)??null,!T&&C){let g=await Bd(r,s);g&&(T=g.find(b=>b.reportHubId===e)??null)}}else T=await Hd(r,e);a.current.token===l&&o(sr(e,{report:T,error:null}))}catch(T){a.current.token===l&&o(sr(e,{error:T instanceof Error?T:new Error("Load failed")}))}finally{a.current.token===l&&o(sr(e,{isLoading:!1,isRefetching:!1}))}},c?ir:0);return()=>clearTimeout(R)},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},En=()=>{let{apiBasePath:e}=V();return(0,ht.useCallback)(t=>{let r=Vt(t);r&&!X.getList(r)&&Mo(e,r).catch(n=>ai.warn("Prefetch error",r,n))},[e])};var ui=require("@aiquants/virtualscroll"),mi=require("react");var xn=()=>{let{locale:e,labels:t}=V(),r=za(t),n=(0,mi.useRef)(null),o=n.current;return o!==null&&ui.VIRTUAL_SCROLL_LABEL_KEYS.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};var In=require("react"),Ud=e=>e.getBoundingClientRect().height,Cn=e=>{let[t,r]=(0,In.useState)(null);return(0,In.useLayoutEffect)(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useDynamicViewportHeight needs viewRef attached to the view's root");let o=null,a=l=>{l!==o&&(o=l,r(l))},i=l=>{for(let c of l)a(c.borderBoxSize[0].blockSize)};a(Ud(n));let s=new ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var pi=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,ve=(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 yi=Object.freeze({visibilityProperty:!0}),fi=new Set(["auto","scroll"]),bi=new Set(["","true","plaintext-only"]),gi=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=vi(n)?n.host:null}return!1},Vd=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(yi))return!0;return!1},Ri=e=>e.localName==="area"?Vd(e):e.checkVisibility(yi),Wd=e=>{let t=e.getAttribute("contenteditable");if(t===null||!bi.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(bi.has(o))return!1;if(o==="false")return!0}return!0},Kd=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&&Ri(n)&&(r=n)}return r===e},$d=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&&fi.has(a.overflowX)||n&&fi.has(a.overflowY)},zd=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 Wd(e)}},Gd=/^[\t\n\f\r ]*[+-]?\d/,jd=e=>{let t=e.getAttribute("tabindex");return t!==null&&Gd.test(t)?e.tabIndex:null},hi=(e,t)=>{for(let r of Po(e))if(t(r)||hi(r,t))return!0;return!1},Ln=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=Yd(e,t);return t.set(e,n),n},Yd=(e,t)=>{if(!Ho(e))return"none";let r=jd(e),n=r===null&&zd(e),o=r===null&&!n&&$d(e);return!(r!==null||n||o)||e.matches(":disabled")||gi(e)||!Ri(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?Kd(e)?"sequential":"programmatic":"sequential":hi(e,a=>Ln(a,t)==="sequential")?"none":"sequential"},ko=(e,t)=>{for(let r of Po(e))t(r),ko(r,t)},Po=e=>{if(Ee(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 An=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return ko(e,l=>{Ln(l,a)==="sequential"&&n.push(l)}),{before:r,within:n,after:o};let i=!1,s=(l,c)=>{for(let y of Po(l)){let h=y===t;!h&&Ln(y,a)==="sequential"&&(c?n.push(y):i?o.push(y):r.push(y)),s(y,c||h),h&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},Si=e=>{let t=[],r=new Map;return ko(e,n=>{Ln(n,r)==="sequential"&&t.push(n)}),t},Ee=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,Ho=e=>"focus"in e&&"blur"in e,qd=e=>e.nodeType===e.DOCUMENT_NODE,vi=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Be=e=>{let t=e.getRootNode();if(vi(t)){let r=t.activeElement;return r===null?Be(t.host):r}return qd(t)?t.activeElement:null},Dn=e=>{let t=Be(e);return t===null||t===t.ownerDocument.body||gi(t)},Kt=e=>{let t=e.ownerDocument.defaultView;if(t===null)throw new Error("[daily-report] the element belongs to a document without a window");return t};var _n="data-daily-report-row",Ti=`[role="listitem"][${_n}]`,Xd='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',Jd=/^[1-9]\d*$/,Ei=e=>{if(e===null||!Jd.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},wt=(e,t)=>{if(t===null||!Ee(e))return null;let r=e.closest(Ti);return r===null||r===t||!t.contains(r)?null:r},$t=e=>Ei(e.getAttribute(_n)),lr=e=>Ei(e.getAttribute("aria-posinset")),xi=e=>{let t=e.closest(Ti),r=t===null?null:lr(t);return r===null?null:r-1},_r=(e,t)=>{if(e===null)return null;let r=$t(e);if(r===null)return null;let n=lr(e),o=ve(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},Ii=(e,t)=>{if(!Ee(e))return!1;let r=e.closest(Xd);return r!==null&&r!==t&&t.contains(r)};var Fo=require("react"),Nt=(0,Fo.createContext)(0),Ot=(0,Fo.createContext)(-1);var Ci=require("clsx"),Li=require("tailwind-merge");function v(...e){return(0,Li.twMerge)((0,Ci.clsx)(e))}var zt=require("react");var Ai="(prefers-reduced-motion: reduce)",Di=e=>Kt(e).matchMedia(Ai).matches?"instant":"smooth",Zd=Object.freeze({..._o,startVelocityThreshold:Number.POSITIVE_INFINITY}),dr=e=>e?Zd:_o,Qd=()=>!1,wn=e=>{let t=(0,zt.useMemo)(()=>e===null?null:Kt(e).matchMedia(Ai),[e]),r=(0,zt.useCallback)(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=(0,zt.useCallback)(()=>t===null?!1:t.matches,[t]);return(0,zt.useSyncExternalStore)(r,n,Qd)};var _i=require("react");var Nn=require("react/jsx-runtime"),On=()=>{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)})}},Mn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=(0,_i.useSyncExternalStore)(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?(0,Nn.jsx)("div",{className:"pointer-events-none absolute flex items-center",style:e==="vertical"?{top:t,left:-16,transform:"translate(-100%, -50%)"}:{left:t,top:-16,transform:"translate(-50%, -100%)"},children:(0,Nn.jsx)("div",{className:v(Aa,"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:(0,Nn.jsx)("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};var le=require("react");var J=require("react");var wi=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 kn=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Ni=e=>{for(let t=1;t<e.length;t++)if(kn(e[t-1],e[t])>0)return!1;return!0},Bo=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,o=r.length;for(;n<o;){let a=n+o>>1;kn(r[a],t)<=0?n=a+1:o=a}return r.splice(n,0,t),r};var Or=require("@aiquants/sse"),Wi=require("@aiquants/sse/client"),Ki=require("@aiquants/sse/react"),at=require("react");var I=require("zod"),Oi=["auth-required","forbidden","resync-required"],Uo=15e3,Mi="lastEventId",ec=/^\d{1,15}-\d{1,15}$/,Pn=e=>ec.test(e),tc=I.z.object({name:I.z.string().nullish(),affiliation:I.z.string().nullish()}),rc=I.z.object({name:I.z.string().nullish(),text:I.z.string().nullish(),color:I.z.string().nullish()}),nc=I.z.object({id:I.z.number(),name:I.z.string().nullish(),color:I.z.string().nullish()}),ki=I.z.object({id:I.z.number(),userId:I.z.string().nullish(),userName:I.z.string().nullish(),content:I.z.string().nullish(),createdAt:I.z.string().nullish(),isMine:I.z.boolean()}),oc=I.z.object({id:I.z.string(),fileName:I.z.string(),fileType:I.z.string().nullable(),fileSize:I.z.number().nullable(),createdAt:I.z.string().nullable(),state:I.z.enum(["present","absent","unknown"]),hasThumbnail:I.z.boolean().default(!1)}),Vo=I.z.object({reportHubId:I.z.number(),date:I.z.string().nullish(),createdAt:I.z.string().nullish(),author:I.z.string().nullish(),userId:I.z.string().nullish(),sourceType:I.z.string().nullish(),employeeName:I.z.string().nullish(),updatedBy:I.z.string().nullish(),updatedAt:I.z.string().nullish(),category:I.z.string().nullish(),creationCategory:I.z.string().nullish(),visitTimeFrom:I.z.string().nullish(),visitTimeTo:I.z.string().nullish(),customerName:I.z.string().nullish(),interviewers:I.z.array(tc),subject:I.z.string().nullish(),content:I.z.string().nullish(),externalComments:I.z.array(rc),isRead:I.z.boolean(),isStarred:I.z.boolean(),labels:I.z.array(nc),postedComments:I.z.array(ki),attachments:I.z.array(oc).default([])}),ac=I.z.object({type:I.z.literal("connected")}),ic=I.z.object({type:I.z.literal("status-update"),reportHubId:I.z.number(),statusType:I.z.enum(["star","read"]),value:I.z.boolean(),clientTempId:I.z.string(),recipientRawUserId:I.z.number().optional()}),Wo=I.z.string().optional(),sc=I.z.object({type:I.z.literal("comment-add"),reportHubId:I.z.number(),comment:ki,clientTempId:I.z.string(),recipientRawUserId:I.z.number().optional(),sourceType:Wo}),lc=I.z.object({type:I.z.literal("comment-delete"),reportHubId:I.z.number(),commentId:I.z.number(),clientTempId:I.z.string(),recipientRawUserId:I.z.number().optional(),sourceType:Wo}),dc=I.z.object({type:I.z.literal("report-create"),reportHubId:I.z.number(),report:Vo,clientTempId:I.z.string(),recipientRawUserId:I.z.number().optional()}),cc=I.z.object({type:I.z.literal("report-update"),reportHubId:I.z.number(),report:Vo,clientTempId:I.z.string(),recipientRawUserId:I.z.number().optional()}),uc=I.z.object({type:I.z.literal("report-publish"),reportHubId:I.z.number(),report:Vo,clientTempId:I.z.string(),recipientRawUserId:I.z.number().optional()}),mc=I.z.object({type:I.z.literal("report-delete"),reportHubId:I.z.number(),clientTempId:I.z.string(),sourceType:Wo}),Pi=I.z.discriminatedUnion("type",[ac,ic,sc,lc,dc,cc,uc,mc]);var Fi=require("react");var pc=50,fc=1e3,bc=3e4,yc=6,gc=3e4,Hn=Symbol("read-stall"),Rc="/daily_report/api",hc=/^\d{4}-\d{2}-\d{2}$/,cr=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,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=0;this.apiBasePath=t.apiBasePath??Rc,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??gc,this.publishCoalesceMs=t.publishCoalesceMs??pc,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};(!r||r.businessDate!==n.businessDate||r.sourceType!==n.sourceType)&&(this.itemMap.set(t.reportHubId,n),this.publishItems())}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.itemMap.delete(t)&&this.publishItems())}dispose(){this.disposed=!0,this.loopGeneration+=1,this.activeAbortController?.abort(),this.cancelScheduledPublishItems(),this.wakeRetryWait?.(),typeof window<"u"&&window.removeEventListener("online",this.handleOnline),this.listeners.clear()}async runStreamLoop(t){let r=++this.loopGeneration;for(this.activeAbortController?.abort(),this.wakeRetryWait?.(),this.lastCursor===null&&(this.activeSeenIds=new Set,this.externalRemovalTombstones.clear(),this.lastSnapshot=null),t.forceRefresh&&(this.pendingForceRefresh=!1),this.publish({phase:t.revalidate?this.state.phase:"streaming",isRevalidating:t.revalidate,error:null});!this.disposed&&r===this.loopGeneration;){let n=await this.streamOnce(t.forceRefresh);if(this.disposed||r!==this.loopGeneration)return;if(n.kind==="complete"){this.pruneUnseenItems(),this.consecutiveFailures=0,this.cancelScheduledPublishItems(),this.lastItemsPublishAt=Date.now(),this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size}),this.pendingForceRefresh&&!this.disposed&&(this.pendingForceRefresh=!1,this.lastCursor=null,this.runStreamLoop({revalidate:!0,forceRefresh:!0}));return}if(n.kind==="aborted")return;if(n.kind==="auth-required"){this.publish({phase:"auth-required",isRevalidating:!1});return}if(this.consecutiveFailures+=1,this.consecutiveFailures>=yc){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(fc*2**(this.consecutiveFailures-1),bc))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.itemMap.delete(r)}async streamOnce(t){let r=new AbortController;this.activeAbortController=r;try{let n=this.fetchFn(this.buildStreamUrl(t),{signal:r.signal,headers:{Accept:"application/x-ndjson"},cache:"no-store"}),o=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(h=>{o=this.setTimeoutFn(()=>h(Hn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Hn)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=new TextDecoder,l="",c=!1,y=!1;for(;;){let h=await this.readWithStallGuard(i);if(h===Hn)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let{done:R,value:T}=h;if(R)break;let C=(l+s.decode(T,{stream:!0})).split(`
2
+ `);l=C.pop()??"";let u=!1;for(let g of C){if(g.trim()==="")continue;let b;try{b=JSON.parse(g)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let A=wi(b);if(A==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(A==="error"){c=!0;continue}let _=b;u=this.absorbChunkLine(_)||u,typeof _.total=="number"&&Number.isFinite(_.total)&&_.total!==this.state.totalCount&&this.publish({totalCount:_.total}),_.nextCursor&&(_.nextCursor.businessDate===null||hc.test(_.nextCursor.businessDate))&&(this.lastCursor=_.nextCursor),_.isLast&&(y=!0)}u&&(this.consecutiveFailures=0,this.schedulePublishItems())}return c?{kind:"retryable",error:new Error("Stream interrupted by server error")}:y?{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(Hn),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){if(!o||typeof o.reportHubId!="number"||this.externalRemovalTombstones.has(o.reportHubId))continue;r||this.activeSeenIds?.add(o.reportHubId);let a=this.itemMap.get(o.reportHubId);(!a||a.businessDate!==o.businessDate||a.sourceType!==o.sourceType)&&(this.itemMap.set(o.reportHubId,o),n=!0)}return n}absorbStreamAnchor(t){if(t!==null&&!(typeof t=="string"&&Pn(t))){this.warn(`[DailyReportIdsStream] ids stream carried a malformed streamAnchor: ${String(t)}`);return}this.streamAnchorRevision+=1,this.publish({streamAnchor:{lastEventId:t,revision:this.streamAnchorRevision}})}publishItems(){this.lastItemsPublishAt=Date.now(),this.publish({items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size})}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=Date.now()-this.lastItemsPublishAt;if(t>=this.publishCoalesceMs){this.publishItems();return}this.publishCoalesceTimer===null&&(this.publishCoalesceTimer=this.setTimeoutFn(()=>{this.publishCoalesceTimer=null,this.publishItems()},this.publishCoalesceMs-t))}cancelScheduledPublishItems(){this.publishCoalesceTimer!==null&&(this.clearTimeoutFn(this.publishCoalesceTimer),this.publishCoalesceTimer=null)}publish(t){this.state={...this.state,...t};for(let r of this.listeners)r()}buildStreamUrl(t){let r=new URLSearchParams;this.lastCursor&&(r.set("cursor_report_hub_id",String(this.lastCursor.reportHubId)),this.lastCursor.businessDate!==null&&r.set("cursor_business_date",this.lastCursor.businessDate),this.lastSnapshot!==null&&r.set("cursor_snapshot",this.lastSnapshot)),t&&r.set("forceRefresh","true");let n=r.toString();return`${this.apiBasePath}/ids-stream${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,o=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===o&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=o,n=this.setTimeoutFn(o,t)})}};var Ko={},Sc=6e4,ue=null,Hi=!1,$o=new Set,Bi={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},zo=()=>{for(let e of $o)e()},Go=()=>{ue&&(ue.unsubscribe(),ue.client.dispose(),ue=null,zo())},ur=e=>{if(typeof window>"u")return;let t=e.apiBasePath??or.apiBasePath;if(ue&&(ue.userKey!==e.userKey||ue.apiBasePath!==t)&&(ue.userKey!==e.userKey&&Lr(),Go()),!ue){let r=new cr({apiBasePath:t});ue={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(zo)},vc(),r.start(),zo();return}Fn(ue)},Fn=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>Sc&&e.client.refresh()},vc=()=>{if(Hi||typeof document>"u"||typeof window>"u")return;Hi=!0;let e=()=>{ue&&Fn(ue)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Bn=e=>{if(!(typeof window>"u")){if(!ue){ur(e);return}if(ue.userKey!==e.userKey){Lr(),Go(),ur(e);return}Fn(ue)}},Un=()=>{typeof window>"u"||!ue||Fn(ue)},wr=e=>{ue?.client.applyExternalUpsert(e)},Vn=e=>{ue?.client.applyExternalRemoval(e)},Wn=()=>{ue?.client.retry()},Nr=()=>{ue?.client.resync()},jo=(e={})=>{ue?.client.refresh(e)},Ui=()=>ue?.userKey,Tc=e=>($o.add(e),()=>$o.delete(e)),Ec=()=>ue?.client.getState()??Bi,xc=()=>Bi,mt=()=>(0,Fi.useSyncExternalStore)(Tc,Ec,xc);typeof Ko<"u"&&Ko.hot&&Ko.hot.dispose(()=>{Go()});var Gt=ar(1,"daily-report-sse-connection"),Ic=Object.freeze({kind:"resyncing"}),Vi={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},Cc=1,$i=Uo*3,Lc=$i+Uo,Kn=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=V(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=mt(),[l,c]=(0,at.useState)({generation:0,minAnchorRevision:1,anchored:!1}),y=l.generation>0&&!l.anchored,h=y&&a==="complete"&&!i?s:null,R=(0,at.useRef)(0),T=(0,at.useRef)(null),C=(0,at.useRef)(n);C.current=n;let u=(0,at.useRef)(0);u.current=o===null?0:o.revision,(0,at.useEffect)(()=>{l.anchored||o===null||o.revision<l.minAnchorRevision||(T.current=o.lastEventId,R.current=0,c({...l,anchored:!0}))},[l,o]),(0,at.useEffect)(()=>{if(!e||h===null)return;let{initialDelayMs:b,maxDelayMs:A,multiplier:_}=Vi,D=Or.systemSseRuntime.random()*Math.min(A,b*_**R.current);Gt.warn(`SSE resync: the ids rescan gave up (${h.message}); rescanning in ${Math.round(D)} ms`);let O=Or.systemSseRuntime.setTimer(()=>{R.current+=1,Nr()},D);return()=>Or.systemSseRuntime.clearTimer(O)},[e,h]);let{status:g}=(0,Ki.useReopeningEventSource)(e&&l.anchored?`${r}#${l.generation}`:null,{resolveUrl:({lastEventId:b})=>b===null?r:`${r}?${Mi}=${encodeURIComponent(b)}`,initialLastEventId:T.current,withCredentials:!1,createEventSource:Wi.createBrowserEventSource,runtime:Or.systemSseRuntime,backoff:Vi,healthyOpenMs:Lc,nativeRetryLimit:Cc,giveUpAfterFailures:"never",terminalEvents:Oi,heartbeat:{staleAfterMs:$i,onHeartbeat:null},events:{message:b=>{b.lastEventId!==""&&(Pn(b.lastEventId)?T.current=b.lastEventId:Gt.warn("SSE event carried a malformed id; keeping the previous cursor:",b.lastEventId));try{let A=JSON.parse(b.data),_=Pi.safeParse(A);if(!_.success){Gt.error("SSE Validation Error:",_.error.flatten(),"raw message:",A);return}if(_.data.type==="connected"){Gt.info("SSE Subscribe Ready");return}t(_.data)}catch(A){Gt.error("SSE Parse Error",A)}}}});return(0,at.useEffect)(()=>{if(g.kind==="faulted"){Gt.error("SSE connection faulted:",g.error);return}if(g.kind==="terminated")switch(g.terminalEvent){case"auth-required":C.current();return;case"forbidden":Gt.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let b=u.current+1;c(A=>({generation:A.generation+1,minAnchorRevision:b,anchored:!1})),Nr();return}}},[g]),e&&y?Ic:g};var De=require("react");var mr=require("react/jsx-runtime"),Ac=8e3,Dc="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",_c=v("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",Ea),zi=(0,De.createContext)({notifyError:()=>{}}),Gi=()=>(0,De.useContext)(zi),$n=({children:e})=>{let{onError:t,labels:r}=V(),[n,o]=(0,De.useState)(null),a=(0,De.useRef)(t);a.current=t;let i=(0,De.useRef)(null),s=(0,De.useCallback)(y=>{let h=a.current;if(h){h(y);return}o(y)},[]),l=(0,De.useCallback)(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);(0,De.useEffect)(()=>{if(n)return i.current=setTimeout(()=>o(null),Ac),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let c=(0,De.useMemo)(()=>({notifyError:s}),[s]);return(0,mr.jsxs)(zi.Provider,{value:c,children:[e,n&&(0,mr.jsxs)("div",{role:"alert","data-testid":"daily-report-error-banner",className:Dc,children:[(0,mr.jsx)("span",{className:"font-medium",children:n.message}),(0,mr.jsx)("button",{type:"button","aria-label":r.close,onClick:l,className:_c,children:"\u2715"})]})]})};var ji=require("react/jsx-runtime"),pt=ar(1,"daily-report-action-context"),wc=Object.freeze([]),Yo=globalThis.__DailyReportActionContext??(0,J.createContext)(null);globalThis.__DailyReportActionContext=Yo;var _e=()=>{let e=(0,J.useContext)(Yo);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},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},zn=({children:e,user:t,initialItems:r=wc,userId:n})=>{let{apiBasePath:o,draftLabelName:a,labels:i}=V(),{notifyError:s}=Gi(),l=(0,J.useRef)(s);l.current=s;let c=(0,J.useRef)(new Map),y=(0,J.useRef)(new Map),h=(0,J.useRef)(new Map),R=(0,J.useRef)(new Map),T=(0,J.useRef)(new Map),[C,u]=(0,J.useState)(0),[g,b]=(0,J.useState)(r),[A,_]=(0,J.useState)(!1),D=(0,J.useRef)(!1),O=(0,J.useRef)(new Map),F=(0,J.useRef)(new Set),W=(0,J.useRef)(new Set),q=(0,J.useRef)(new Set),ne=mt(),z=(0,J.useRef)(!1);z.current=ne.phase==="complete"&&!ne.isRevalidating;let K=(0,J.useCallback)(()=>Ui()===(n??null),[n]),oe=(0,J.useCallback)(async()=>{pt.info("[DailyReportActionProvider] Refetching data without page reload..."),jo(),u(p=>p+1),X.listeners.forEach(p=>{p(-1)})},[]),G=(0,J.useCallback)(async()=>{pt.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),Lr(),W.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let f=await fetch(`${o}/action`,{method:"POST",body:p});if(!f.ok){let x=await f.json().catch(()=>null);pt.warn("[DailyReportActionProvider] Failed to clear server-side cache:",f.status,x)}}catch(p){pt.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}K()&&(jo({forceRefresh:!0}),u(p=>p+1),X.listeners.forEach(p=>{p(-1)}))},[o,K]),me=(0,J.useRef)(new Map),$=(0,J.useRef)(()=>{}),j=(0,J.useCallback)((p,f)=>{let x=me.current,d=x.get(p);if(d){d.messages.push(f);return}let m={messages:[f],unsubscribe:()=>{},timer:setTimeout(()=>{let S=x.get(p);S&&(S.unsubscribe(),x.delete(p),pt.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${S.messages.length} messages`))},3e4)};m.unsubscribe=di(p,()=>{let S=x.get(p);if(S&&Je(p,{ignoreExpiry:!0})){S.unsubscribe(),clearTimeout(S.timer),x.delete(p),pt.info(`[SSE Queue] Replaying ${S.messages.length} messages for reportHubId=${p}`);for(let L of S.messages)$.current(L)}}),x.set(p,m)},[]),fe=p=>{q.current.add(p),setTimeout(()=>{q.current.delete(p)},3e4)},be=(0,J.useCallback)(p=>!!p&&q.current.has(p),[]),U=(0,J.useCallback)((p,f)=>{f!==void 0&&wr({reportHubId:p,businessDate:f??null}),b(x=>{let d=x.find(S=>S.reportHubId===p),m=f??d?.businessDate??null;return Bo(x,{reportHubId:p,businessDate:m,sourceType:d?.sourceType})})},[]),ce=()=>{n&&(D.current=!0,_(p=>!p))};(0,J.useEffect)(()=>{if(!n)return;let p=setTimeout(()=>{D.current||_(!0)},Za);return()=>clearTimeout(p)},[n]);let Oe=(0,J.useCallback)(p=>{K()&&(W.current.add(p),Vn(p),b(f=>f.filter(x=>x.reportHubId!==p)))},[K]),[qe,ke]=(0,J.useState)(r);if(r!==qe){ke(r);let p=new Map;for(let d of r)W.current.has(d.reportHubId)||p.set(d.reportHubId,d);let f=z.current;for(let d of g)p.has(d.reportHubId)||W.current.has(d.reportHubId)||f&&d.reportHubId>0||p.set(d.reportHubId,d);let x=Array.from(p.values());Ni(x)||x.sort(kn),b(x)}(0,J.useEffect)(()=>{if(z.current){let p=new Set(r.map(f=>f.reportHubId));for(let f of W.current)p.has(f)||W.current.delete(f)}},[r]);let Ce=(0,J.useCallback)(p=>{if(K()&&!be(p.clientTempId))switch(p.type){case"comment-add":{let{comment:f,reportHubId:x}=p,d=Je(x,{ignoreExpiry:!0});if(d){if(d.postedComments.some(P=>P.id===f.id))return;let m=!1,S=c.current.get(x);if(S){for(let[P,re]of S.entries())if(re===f.content){S.delete(P),T.current.set(P,f.id),m=!0;break}}let L={...f,userName:f.userName||(m?jt(t,i.unknownUser):i.unknownUser),createdAt:f.createdAt||new Date().toISOString(),isMine:m},M={...d,postedComments:[...d.postedComments,L].sort((P,re)=>new Date(P.createdAt||0).getTime()-new Date(re.createdAt||0).getTime())};Wt(x,M),Ar(x),Dr(x),u(P=>P+1)}else j(x,p);break}case"comment-delete":{let{commentId:f,reportHubId:x}=p,d=Je(x,{ignoreExpiry:!0});if(d){let m={...d,postedComments:d.postedComments.filter(S=>S.id!==f)};Wt(x,m),Ar(x),Dr(x),u(S=>S+1)}else j(x,p);break}case"status-update":{let{statusType:f,value:x,reportHubId:d}=p,m=Je(d,{ignoreExpiry:!0});if(f==="star")if(h.current.get(d)===x&&h.current.delete(d),m){let S={...m,isStarred:x};Wt(d,S),u(L=>L+1)}else j(d,p);else if(f==="read")if(R.current.get(d)===x&&R.current.delete(d),m){let S={...m,isRead:x};Wt(d,S),u(L=>L+1)}else j(d,p);break}case"report-delete":{let{reportHubId:f}=p;F.current.delete(f),W.current.add(f),Vn(f);let x=me.current.get(f);x&&(x.unsubscribe(),clearTimeout(x.timer),me.current.delete(f));let d=Je(f,{ignoreExpiry:!0});d?.date&&(Tn(f,d.date),u(m=>m+1)),b(m=>m.filter(S=>S.reportHubId!==f));break}case"report-create":case"report-update":case"report-publish":{let{report:f}=p;ci(f),(p.type==="report-create"||p.type==="report-publish")&&(F.current.add(f.reportHubId),U(f.reportHubId,f.date)),u(x=>x+1);break}}},[be,K,U,t,j,i.unknownUser]);$.current=Ce,(0,J.useEffect)(()=>()=>{for(let p of me.current.values())p.unsubscribe(),clearTimeout(p.timer);me.current.clear()},[]);let rt=Kn({isSseEnabled:A,onMessage:Ce}),ye=async(p,f,x,d,m,S)=>{S?.skipLock||Ar(p),m.onOptimistic?.();let L=d.clientTempId||crypto.randomUUID();fe(L);let M=new FormData;M.append("intent",f),M.append("reportHubId",String(p)),typeof x=="string"&&M.append("businessDate",x),M.append("operationTimestamp",String(Date.now())),M.append("clientTempId",L);for(let[P,re]of Object.entries(d))P!=="clientTempId"&&M.append(P,re);try{let P=await fetch(`${o}/action`,{method:"POST",body:M,headers:{Accept:"application/json"}});if(!P.ok){let ct=new Error(`Failed to ${f}`);throw Object.assign(ct,{status:P.status}),ct}let re=await P.json();if(re.status!=="OK"||f!=="create"&&String(re.reportHubId)!==String(p))throw new Error(`Invalid response for ${f}`);if(typeof re.clientTempId!="string"||re.clientTempId!==L)throw new Error(`Invalid clientTempId for ${f}`);if(!K())throw pt.warn(`[executeAction] ${f} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${f}`);return await m.onSuccess?.(re)}catch(P){throw pt.error(`${f} failed:`,P),K()&&(m.onFailure?.(),l.current({operation:f,message:i.operationFailed(f),cause:P})),P}finally{S?.keepLock||S?.skipLock||Dr(p)}},Ct=async(p,f,x)=>{let d=Number(p),m=-1*Date.now(),S=ye(d,"addComment",x,{content:f,clientTempId:String(m)},{onOptimistic:()=>{c.current.has(d)||c.current.set(d,new Map),c.current.get(d)?.set(m,f),u(L=>L+1)},onSuccess:L=>{if(!L.newComment)throw new Error("No new comment returned");let M=L.newComment.id;T.current.set(m,M),c.current.get(d)?.delete(m);let P=Je(d,{ignoreExpiry:!0});return P&&!P.postedComments.some(re=>re.id===M)&&Ze(d,{postedComments:[...P.postedComments,{...L.newComment,id:M,isMine:!0,userName:jt(t,i.unknownUser)}],updatedAt:L.updatedAt}),M},onFailure:()=>{c.current.get(d)?.delete(m)}},{skipLock:!0}).finally(()=>O.current.delete(m));O.current.set(m,S),await S},yt=async(p,f,x)=>{let d=Number(p);y.current.has(d)||y.current.set(d,new Set),y.current.get(d)?.add(f),u(S=>S+1);let m=f;if(f<0){let S=T.current.get(f);if(S!==void 0)m=S;else{let L=O.current.get(f);if(!L)return;try{m=await L}catch{return}}}await ye(d,"deleteComment",x,{commentId:String(m)},{onSuccess:S=>{let L=typeof S.deletedCommentId=="string"?Number(S.deletedCommentId):m,M=Je(d,{ignoreExpiry:!0});M&&(Ze(d,{postedComments:M.postedComments.filter(P=>P.id!==L),updatedAt:S.updatedAt}),li(L)),y.current.get(d)?.delete(f)},onFailure:()=>{y.current.get(d)?.delete(f)}},{skipLock:!0})},dt=async(p,f,x)=>{let d=Number(p);await ye(d,"toggleStar",x,{isStarred:String(f)},{onOptimistic:()=>{Ze(d,{isStarred:f}),h.current.set(d,f),u(m=>m+1)},onSuccess:m=>{m.updatedStatus&&typeof m.updatedStatus.isStarred=="boolean"&&Je(d,{ignoreExpiry:!0})&&(Ze(d,{isStarred:m.updatedStatus.isStarred,updatedAt:m.updatedAt}),u(L=>L+1)),h.current.delete(d)},onFailure:()=>{Ze(d,{isStarred:!f}),h.current.delete(d)}},{skipLock:!0})},nt=async(p,f,x)=>{let d=Number(p);await ye(d,"toggleRead",x,{isRead:String(f)},{onOptimistic:()=>{Ze(d,{isRead:f}),R.current.set(d,f),u(m=>m+1)},onSuccess:m=>{m.updatedStatus&&typeof m.updatedStatus.isRead=="boolean"&&Je(d,{ignoreExpiry:!0})&&(Ze(d,{isRead:m.updatedStatus.isRead,updatedAt:m.updatedAt}),u(L=>L+1)),R.current.delete(d)},onFailure:()=>{Ze(d,{isRead:!f}),R.current.delete(d)}},{skipLock:!0})},Pe=(0,J.useRef)(nt);Pe.current=nt;let Xe=(0,J.useCallback)((p,f,x)=>Pe.current(p,f,x),[]),gt=async p=>{let f=-1*Date.now(),x=new Date().toISOString(),d={reportHubId:f,date:p,createdAt:x,author:jt(t,i.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:jt(t,i.unknownUser),updatedBy:jt(t,i.unknownUser),updatedAt:x,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:a,color:"#9ca3af"}],postedComments:[],attachments:[]};si(d,Date.now()+3e5,!1),b(m=>[{reportHubId:f,businessDate:p},...m]);try{let m=await ye(0,"create",p,{clientTempId:String(f)},{onSuccess:L=>L});if(m.clientTempId&&m.clientTempId!==String(f))throw pt.warn(`[createReport] ID mismatch. req=${f}, res=${m.clientTempId}`),new Error("Optimistic ID mismatch");let S=Number(m.reportHubId);return wr({reportHubId:S,businessDate:p}),Ar(S),m.report&&(Wt(S,m.report),u(L=>L+1)),b(L=>L.some(M=>M.reportHubId===S)?L.filter(M=>M.reportHubId!==f):L.map(M=>M.reportHubId===f?{...M,reportHubId:S}:M)),setTimeout(()=>Dr(S),1e3),S}catch(m){throw pt.error("[createReport] Failed or mismatched",m),b(S=>S.filter(L=>L.reportHubId!==f)),m}},$e=async(p,f,x)=>{let d=Number(p);await ye(d,"update",x,{...f.title&&{title:f.title},...f.content&&{content:f.content}},{onSuccess:()=>{let m=Je(d,{ignoreExpiry:!0});m&&(Ze(d,{subject:f.title??m.subject,content:f.content??m.content}),u(S=>S+1))}})},E=async(p,f)=>{let x=Number(p),d=Je(x,{ignoreExpiry:!0}),m=d?.labels||[];await ye(x,"publish",f,{},{onOptimistic:()=>{if(d){let S=d.labels.filter(L=>L.name!==a);Ze(x,{labels:S}),u(L=>L+1)}},onSuccess:S=>{S.report&&(Wt(x,S.report),u(L=>L+1)),f!==void 0&&wr({reportHubId:x,businessDate:f})},onFailure:()=>{Ze(x,{labels:m}),u(S=>S+1)}},{skipLock:!0})},w=async(p,f)=>{let x=Number(p),d=g.find(m=>m.reportHubId===x);W.current.add(x),Vn(x),b(m=>m.filter(S=>S.reportHubId!==x));try{await ye(x,"delete",f,{},{onSuccess:m=>{Tn(x,f)}})}catch(m){if(m.status===404){Tn(x,f);return}if(!K())return;W.current.delete(x);let L=d===void 0?f:d.businessDate;L!==void 0&&wr({reportHubId:x,businessDate:L}),d&&b(M=>M.some(P=>P.reportHubId===x)?M:Bo(M,d))}};return(0,ji.jsx)(Yo.Provider,{value:{user:t,pendingAddCommentIds:c,pendingDeleteCommentIds:y,pendingStarUpdates:h,pendingReadUpdates:R,resolvedIdMap:T,version:C,items:g,isSseEnabled:A,toggleSse:ce,sseStatus:rt,addComment:Ct,deleteComment:yt,toggleStar:dt,toggleRead:Xe,createReport:gt,updateReport:$e,publishReport:E,deleteReport:w,removeStaleItem:Oe,refetchData:oe,clearCacheAndRefetch:G},children:e})};var St=require("react");var Yi=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw Ae("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]},qi=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 pr=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:l}=_e(),{labels:c}=V(),y=c.unknownUser,[h,R]=(0,St.useState)(null),T=(0,St.useCallback)(b=>e&&l(e.reportHubId,b,e.date),[e,l]),C=(0,St.useCallback)(b=>e&&t?s(e.reportHubId,b,e.date):Promise.resolve(),[e,t,s]),u=(0,St.useRef)([]);return{uiComments:(0,St.useMemo)(()=>{if(!e)return[];let b=Yi(e.externalComments,e.postedComments,r,y),A=o.current.get(e.reportHubId);A?.size&&(b=b.filter(D=>!A.has(D.id)));let _=n.current.get(e.reportHubId);if(_?.size&&t){let D=new Set(b.map(F=>F.id)),O=jt(t,y);for(let[F,W]of _){if(A?.has(F)||D.has(F))continue;let q=a.current.get(F);q&&D.has(q)||b.some(ne=>ne.isMine&&ne.content===W&&typeof ne.id=="number"&&ne.id>0)||b.push({id:F,authorName:O,content:W,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(b)===JSON.stringify(u.current)?u.current:(u.current=b,b)},[e,t,r,y,o,n,a,i]),handleAddComment:C,handleDeleteComment:T,pendingDeleteId:h,setPendingDeleteId:R,resolvedIdMap:a.current}};var Xi=require("react/jsx-runtime"),Nc={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},fr=Object.freeze({2:3,3:4,4:5,5:6}),Ge=({level:e,...t})=>{let r=Nc[e];return(0,Xi.jsx)(r,{...t})};var Tt=require("react");var Ji=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var qo="tile",Mr=Ji[qo],Oc=2,kr=16,Zi=5,Qi=Mr.maxWidth/Oc,zf=Zi*(Qi+kr)-kr,es=e=>{let t=Math.min(Zi,1+Math.floor((e+kr)/(Qi+kr)));return(e-(t-1)*kr)/t},ts=Object.freeze({aspectRatio:`${Mr.maxWidth} / ${Mr.maxHeight}`,height:`round(nearest, 100cqi * ${Mr.maxHeight} / ${Mr.maxWidth}, 1px)`,contain:"strict"});var Mc="download",kc="thumbnail",Pc="1",br=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[Mc]:Pc})}`;case"thumbnail":return`${n}?${new URLSearchParams({[kc]:r.variant})}`}};var Gn=require("react");var Pr=(0,Gn.createContext)(null),yr=()=>(0,Gn.useContext)(Pr)===!1?-1:void 0,rs=(e,t)=>{let{before:r,after:n}=An(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};var ft=require("react"),ls=require("react-dom");var ns=require("react-dom");var Xo=new WeakMap,os=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,Hc=e=>{e.frame=null;let t=[...e.observations.values()].filter(os);t.length!==0&&(0,ns.flushSync)(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Fc=(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=es(o))}e.frame!==null||![...e.observations.values()].some(os)||(e.frame=e.view.requestAnimationFrame(()=>Hc(e)))},Bc=e=>{let t=Xo.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=>Fc(n,o)),observations:new Map,frame:null};return Xo.set(e,n),n},as=(e,t)=>{let r=e.ownerDocument,n=Bc(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(),Xo.delete(r)))}};var vt=require("react/jsx-runtime"),Hr="\u2026",Uc=Hr.codePointAt(0),jn="data-attachment-file-name",Vc=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,Wc=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,ds=(0,ft.createContext)(null),cs=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},is=(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("")},Kc=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=cs(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${is(o,Hr,a,r)}${Hr}`;return r(n+i)<=t?n+i:`${is(n,Hr+i,t,r)}${Hr}${i}`},ss=new WeakMap,us=e=>{let t=ss.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 ss.set(e,n),n},$c=(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},ms=e=>{let t=new Set;for(let r of e.matchAll(Vc)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},zc=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:ms(t.fontFamily),measure:$c(us(e.ownerDocument),r)}},Gc=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,jc=e=>{let t=new Set([Uc]);for(let r of e.querySelectorAll(`[${jn}]`)){let n=r.getAttribute(jn);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},Yc=(e,t)=>{for(let r of e.split(",")){let n=Wc.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 l of t)if(l>=i&&l<=s)return!0}return!1},Jo=new WeakMap,ps=e=>{let t=Jo.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return Jo.set(e,r),r},fs=(e,t)=>{let r=zc(e.grid.querySelector(`[${jn}]`));e.fitted={trackWidth:t,nameFont:r};let n=ps(e.grid.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=Xc(n)),e.applyFit({width:t,measure:r.measure})},qc=(e,t)=>{let r=t.map(o=>({families:ms(o.family),unicodeRange:o.unicodeRange})),n=[];for(let o of e.registrations){let{fitted:a}=o;if(a===null)continue;let i=r.filter(l=>Array.from(l.families).some(c=>a.nameFont.families.has(c)));if(i.length===0)continue;let s=jc(o.grid);i.some(l=>Yc(l.unicodeRange,s))&&(us(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&(0,ls.flushSync)(()=>{for(let[o,a]of n)fs(o,a)})},Xc=e=>{let t=e.document.fonts,r=n=>{qc(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},Jc=(e,t)=>{let r={grid:e,applyFit:t,fitted:null},n=as(e,a=>fs(r,a)),o=ps(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),Jo.delete(o.document))}},bs=({gridRef:e,children:t})=>{let[r,n]=(0,ft.useState)(null);return(0,ft.useLayoutEffect)(()=>{let o=e.current;return Jc(o,i=>{n(s=>Gc(s,i)?s:i)})},[e]),(0,vt.jsx)(ds,{value:r,children:t})},Fr=({fileName:e,className:t,testId:r})=>{let n=(0,ft.useContext)(ds),o=(0,ft.useMemo)(()=>n===null?null:Kc(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=cs(e);return(0,vt.jsxs)("span",{className:v("block min-w-0",t),title:e,"data-testid":r,[jn]:e,children:[o===null?(0,vt.jsxs)("span",{"aria-hidden":"true",className:"flex min-w-0",children:[(0,vt.jsx)("span",{className:"truncate",children:a}),i!==""&&(0,vt.jsx)("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):(0,vt.jsx)("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),(0,vt.jsx)("span",{className:"sr-only",children:e})]})};var vs=Te(require("lucide-react/dist/esm/icons/image-off.js")),we=require("react");var Yn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),ys=Yn.queueWaitMs+Yn.readMs+Yn.renderMs+Yn.transferMarginMs;var Zc=Object.freeze({kind:"loaded"}),gs=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",l=null,c=null,y=null,h=null,R=null,T=G=>(G!==null&&n.clearTimeout(G),null),C=()=>{h?.(),h=null},u=()=>{R?.(),R=null},g=G=>G===null||G.kind==="loaded"?0:G.kind==="failing"?G.failedAttempts:i.maxAttempts,b=G=>{s="cooling",y=n.setTimeout(ne,G)},A=()=>{o.abortInFlight(),u();let G=g(r.get(t))+1;if(G>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:G,retryAt:n.now()+i.retryDelayMs}),o.reset(),b(i.retryDelayMs)},_=G=>{if(s==="loading"){if(c=T(c),!G){A();return}s="done",r.set(t,Zc),u()}},D=()=>{c=null,_(!1)},O=()=>{s="loading",o.showActivity(!0),C(),c=n.setTimeout(D,i.loadTimeoutMs),o.grant()},F=()=>{l=null,s="queued",R=a.request(O)},W=()=>{l===null&&(l=n.setTimeout(F,i.settleMs))},q=G=>{if(o.showActivity(G),G){s==="watching"&&W();return}if(s==="queued"){u(),s="watching";return}l=T(l)},ne=()=>{y=null,s="watching",o.showActivity(!1),h=n.observe(e,q)},z=()=>{let G=s==="loading";s="done",C(),l=T(l),c=T(c),y=T(y),o.showActivity(!1),G&&(o.abortInFlight(),R!==null&&o.reset()),u()},K=r.get(t);if(K?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:_,dispose:z};if(K?.kind==="exhausted"){if(n.now()-K.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:_,dispose:z};r.delete(t)}o.reset();let oe=K?.kind==="failing"?K.retryAt-n.now():0;return oe>0?b(oe):ne(),{settle:_,dispose:z}};var Qc=e=>{if(!Number.isInteger(e)||e<=0)throw Ae("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())}}}},Rs=Qc(2);var eu=e=>{if(!Number.isInteger(e)||e<=0)throw Ae("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)}}},Zo=eu(1024);var Qo=new WeakMap,tu=e=>{let t=Qo.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 Qo.set(e,a),a},hs=(e,t)=>{let r=e.ownerDocument,n=tu(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(),Qo.delete(r)))}};var Mt=require("react/jsx-runtime"),ru={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},nu="data-thumbnail-active",ou="data-daily-report-attachment-preview",Ts={[ou]:""},au=Object.freeze({settleMs:250,loadTimeoutMs:ys,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),Ss=e=>{let t=Zo.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},iu=()=>({limiter:Rs,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:hs,tuning:au}),su=(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(nu,o)}}),Es=(0,we.memo)(({thumbnailUrl:e,unavailableLabel:t})=>{let r=(0,we.useRef)(null),n=(0,we.useRef)(null),o=(0,we.useRef)(null),[a,i]=(0,we.useState)(()=>Ss(e));a.url!==e&&i(Ss(e)),(0,we.useLayoutEffect)(()=>{if(a.status==="failed")return;let y=n.current,h=a.status==="idle"?null:a.url;y.getAttribute("src")!==h&&(h===null?y.removeAttribute("src"):y.setAttribute("src",h))},[a]),(0,we.useEffect)(()=>{let y=r.current,h=gs(y,e,Zo,iu(),su(e,y,i,n));return o.current=h,()=>{o.current=null,h.dispose()}},[e]);let s=(0,we.useCallback)(y=>{y!==null&&(n.current=y)},[]),l=(0,we.useCallback)(()=>{i(y=>y.status==="granted"?{url:y.url,status:"loaded"}:y),o.current?.settle(!0)},[]),c=(0,we.useCallback)(()=>{o.current?.settle(!1)},[]);return(0,Mt.jsx)("span",{className:"@container block",children:(0,Mt.jsx)("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":ru[a.status],style:ts,className:"relative block w-full",children:(0,Mt.jsx)("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"?(0,Mt.jsxs)("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","data-testid":"daily-report-attachment-thumbnail-unavailable",children:[(0,Mt.jsx)(vs.default,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):(0,Mt.jsx)("img",{ref:s,alt:"",decoding:"async",fetchPriority:"low",draggable:!1,onLoad:l,onError:c,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"})})})})});var ie=require("react/jsx-runtime"),xs=1024,ea=["B","KB","MB","GB"],Is="text-slate-500 text-sm line-through dark:text-slate-400",lu=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=xs&&r<ea.length-1;)t/=xs,r+=1;return r===0?`${t} ${ea[r]}`:`${t.toFixed(1)} ${ea[r]}`},Cs=({attachment:e,labels:t,className:r})=>(0,ie.jsxs)("span",{className:r,children:[lu(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),ta=({href:e,children:t,...r})=>{let n=yr();return(0,ie.jsx)("a",{href:e,...r,tabIndex:n,children:t})},Ls=({downloadUrl:e,label:t,fileName:r})=>(0,ie.jsxs)(ta,{href:e,className:v("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",ae),"data-testid":"daily-report-attachment-download",children:[t," ",(0,ie.jsx)("span",{className:"sr-only",children:r})]}),du=(0,Tt.memo)(({attachment:e,apiBasePath:t,labels:r})=>{let n=(0,ie.jsx)(Es,{thumbnailUrl:br(t,e.id,{kind:"thumbnail",variant:qo}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return(0,ie.jsxs)("li",{className:"flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?(0,ie.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[n,(0,ie.jsx)(Fr,{fileName:e.fileName,className:Is,testId:"daily-report-attachment-name"})]}):(0,ie.jsxs)(ta,{href:br(t,e.id,{kind:"inline"}),className:v("flex min-w-0 flex-col gap-2 rounded-lg",ae),"data-testid":"daily-report-attachment-link",...Ts,children:[n,(0,ie.jsx)(Fr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),(0,ie.jsxs)("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",children:[(0,ie.jsx)(Cs,{attachment:e,labels:r,className:"truncate"}),!o&&(0,ie.jsx)(Ls,{downloadUrl:br(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),cu=(0,Tt.memo)(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return(0,ie.jsxs)("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:[(0,ie.jsxs)("div",{className:"flex min-w-0 flex-col",children:[n?(0,ie.jsx)(Fr,{fileName:e.fileName,className:Is,testId:"daily-report-attachment-name"}):(0,ie.jsx)(ta,{href:br(t,e.id,{kind:"inline"}),className:v("flex min-w-0 rounded-sm",ae),"data-testid":"daily-report-attachment-link",children:(0,ie.jsx)(Fr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),(0,ie.jsx)(Cs,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&(0,ie.jsx)(Ls,{downloadUrl:br(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),uu=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=(0,Tt.useRef)(null);return(0,ie.jsx)(bs,{gridRef:o,children:(0,ie.jsx)("ul",{ref:o,"aria-labelledby":t,className:"grid 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=>(0,ie.jsx)(du,{attachment:a,apiBasePath:r,labels:n},a.id))})})},qn=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=V(),o=(0,Tt.useId)(),{tileAttachments:a,rowAttachments:i}=(0,Tt.useMemo)(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:(0,ie.jsxs)("div",{className:"@container flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[(0,ie.jsx)(Ge,{level:fr[n],id:o,className:v("m-0",Ut),children:r.attachments}),(0,ie.jsxs)("div",{className:"flex flex-col gap-4",children:[a.length>0&&(0,ie.jsx)(uu,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&(0,ie.jsx)("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>(0,ie.jsx)(cu,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};var ws=require("@aiquants/swipe-overlay"),Ve=require("react");var Br=e=>e.isComposing||e.keyCode===229,Xn=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 mu={kind:"hold"},pu=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),fu=(e,t)=>{let r=e.getAttribute("role");return r!==null&&pu.has(r)&&e!==t&&e.contains(t)},Ur=e=>e.key==="Escape"&&!e.defaultPrevented&&!Br(e),As=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||Br(e))return null;let r=e.target;if(!(Ee(r)&&t.contains(r)))return null;let n=Si(t);if(n.length===0)return mu;let{before:o,within:a,after:i}=An(t,r);return e.shiftKey?o.some(s=>!fu(s,r))?null:{kind:"wrap",element:n[n.length-1]}:a.length>0||i.length>0?null:{kind:"wrap",element:n[0]}};var Jn=require("react/jsx-runtime"),Le=({render:e})=>{let t=yr();return(0,Jn.jsx)(Jn.Fragment,{children:e(t)})};var Ds=Te(require("@heroicons/react/24/outline/TrashIcon.js")),kt=require("react");var Ue=require("react/jsx-runtime"),Zn="data-comment-delete-button",Qn="data-comment-delete-slot",bu=v(He,Ca),yu="relative flex h-5 items-center",gu=v(Me,"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",ae),Ru=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,ra=(0,kt.memo)(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:l})=>{let[c,y]=(0,kt.useState)(!1),{labels:h}=V(),R=(0,kt.useId)(),T=(0,kt.useRef)(null),C=Ru(e.id,o,l),u=()=>{let b=T.current;b!==null&&s(b),a(null),y(!0),typeof e.id=="number"&&n?.(e.id)},g=b=>{if(!C)return;let A=b.relatedTarget;Ee(A)&&b.currentTarget.contains(A)||a(null)};return(0,Ue.jsxs)("li",{"data-comment-id":e.id,"data-deleted":c?"true":void 0,className:v("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",c&&"hidden",C?"z-50":"z-0 hover:z-10"),children:[(0,Ue.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,Ue.jsx)("div",{className:v("font-semibold text-xs",qi(e.color)),children:he(e.authorName)}),(0,Ue.jsxs)("div",{className:"flex items-center gap-2",children:[e.createdAt&&(0,Ue.jsx)("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:ge(e.createdAt)}),e.isMine&&!e.isLegacy&&(0,Ue.jsxs)("div",{[Qn]:e.id,className:yu,onBlur:g,children:[(0,Ue.jsx)(Le,{render:b=>(0,Ue.jsx)("button",{ref:T,type:"button",tabIndex:b,className:bu,title:h.commentDelete,"aria-label":h.commentDelete,"aria-expanded":C,"aria-controls":C?R:void 0,[Zn]:e.id,onClick:()=>i(e.id,C),children:(0,Ue.jsx)(Ds.default,{"aria-hidden":"true",className:C?xe.deletePending:xe.delete})})}),C&&(0,Ue.jsx)(Le,{render:b=>(0,Ue.jsx)("button",{id:R,type:"button",tabIndex:b,"data-delete-confirmation":!0,className:gu,onClick:u,children:h.commentDeleteConfirm})})]})]})]}),(0,Ue.jsx)("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});ra.displayName="DailyReportPostedComment";var Qe=require("react/jsx-runtime"),Ns="data-daily-report-comment-section",Os="data-daily-report-comment-heading",eo={[Ns]:""},to={[Os]:""},ro=v(Rt,ae),hu=v("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",ae),Su=v("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",ae),_s=e=>e.querySelector(`[${Zn}][aria-expanded="true"]`),vu=(e,t)=>{let r=[...e.querySelectorAll(`[${Zn}]`)].filter(a=>a===t||a.closest("[data-deleted]")===null),n=r.indexOf(t),o=r.at(n+1);return o!==void 0?o:n>0?r[n-1]:e.closest(`[${Ns}]`)?.querySelector(`[${Os}]`)??null},no=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i})=>{let s=(0,Ve.useRef)(null),l=(0,ws.useOverlayEscapeStack)(),c=(0,Ve.useId)(),y=o!==null,h=(0,Ve.useCallback)(()=>{let C=s.current,u=C===null?null:_s(C),g=u===null?null:u.closest(`[${Qn}]`),b=C===null?null:Be(C);a(null),u!==null&&g!==null&&b!==null&&g.contains(b)&&u.focus({preventScroll:!0})},[a]);(0,Ve.useEffect)(()=>{if(y)return l({id:c,onEscape:C=>Ur(C)?(h(),!0):!1})},[y,l,c,h]),(0,Ve.useEffect)(()=>{let C=s.current;if(!y||C===null)return;let u=C.ownerDocument,g=b=>{let A=_s(C)?.closest(`[${Qn}]`);A!=null&&Ee(b.target)&&A.contains(b.target)||a(null)};return u.addEventListener("pointerdown",g,!0),()=>u.removeEventListener("pointerdown",g,!0)},[y,a]);let R=(0,Ve.useCallback)((C,u)=>{u?h():a(C)},[h,a]),T=(0,Ve.useCallback)(C=>{let u=s.current;u!==null&&vu(u,C)?.focus({preventScroll:!0})},[]);return e.length===0?null:(0,Qe.jsx)("ul",{ref:s,className:"space-y-2",children:e.map(C=>(0,Qe.jsx)(ra,{comment:C,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:R,onBeforeHide:T,resolvedIdMap:i},C.id))})},oo=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=(0,Ve.useState)(!1),a=(0,Ve.useRef)(null),{labels:i}=V();return(0,Qe.jsxs)("form",{className:"flex gap-2",ref:a,onSubmit:async l=>{l.preventDefault();let y=new FormData(l.currentTarget).get("content")?.trim();if(y&&r){o(!0),a.current?.reset();try{await r(y)}catch{if(a.current){let h=a.current.elements.namedItem("content");h&&(h.value=y)}}finally{o(!1)}}},children:[(0,Qe.jsx)("input",{type:"hidden",name:"intent",value:"addComment"}),(0,Qe.jsx)("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&(0,Qe.jsx)("input",{type:"hidden",name:"businessDate",value:t}),(0,Qe.jsx)(Le,{render:l=>(0,Qe.jsx)("input",{type:"text",name:"content",tabIndex:l,placeholder:i.commentPlaceholder,className:hu,autoComplete:"off"})}),(0,Qe.jsx)(Le,{render:l=>(0,Qe.jsx)("button",{type:"submit",tabIndex:l,className:Su,disabled:n,children:i.commentSend})})]})};var Pt=require("react");var Ms=require("@radix-ui/react-slot"),ks=require("class-variance-authority"),Ps=Te(require("react"));var Hs=require("react/jsx-runtime"),Tu=(0,ks.cva)(`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 ${ae}`,{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"}}),Et=Ps.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>(0,Hs.jsx)(n?Ms.Slot:"button",{className:v(Tu({variant:t,size:r,className:e})),ref:a,...o}));Et.displayName="Button";var Bs=require("react/jsx-runtime");function Fs({className:e,type:t,...r}){return(0,Bs.jsx)("input",{type:t,"data-slot":"input",className:v(`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 ${ae}`,e),...r})}var Us=Te(require("@radix-ui/react-label"));var Vs=require("react/jsx-runtime");function Vr({className:e,...t}){return(0,Vs.jsx)(Us.Root,{"data-slot":"label",className:v("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})}var Ks=require("react/jsx-runtime");function Ws({className:e,...t}){return(0,Ks.jsx)("textarea",{"data-slot":"textarea",className:v(`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 ${ae}`,e),...t})}var Ie=require("react/jsx-runtime"),Eu=e=>{e.preventDefault()},ao=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=_e(),{labels:i}=V(),[s,l]=(0,Pt.useState)(e.subject??""),[c,y]=(0,Pt.useState)(e.content??""),[h,R]=(0,Pt.useState)(!1),T=(0,Pt.useRef)(e.reportHubId);(0,Pt.useEffect)(()=>{e.reportHubId!==T.current&&(l(e.subject??""),y(e.content??""),T.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let C=async()=>{R(!0);try{await o(e.reportHubId,{title:s,content:c},e.date)}catch{}finally{R(!1)}},u=async()=>{R(!0);try{await o(e.reportHubId,{title:s,content:c},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{R(!1)}},g=`report-title-${e.reportHubId}`,b=`report-content-${e.reportHubId}`;return(0,Ie.jsxs)("form",{className:"space-y-4 p-1",onSubmit:Eu,children:[(0,Ie.jsxs)("div",{className:"space-y-2",children:[(0,Ie.jsx)(Vr,{htmlFor:g,children:i.formTitle}),(0,Ie.jsx)(Le,{render:A=>(0,Ie.jsx)(Fs,{ref:n,id:g,value:s,onChange:_=>l(_.target.value),placeholder:i.formTitlePlaceholder,disabled:h,tabIndex:A})})]}),(0,Ie.jsxs)("div",{className:"space-y-2",children:[(0,Ie.jsx)(Vr,{htmlFor:b,children:i.formContent}),(0,Ie.jsx)(Le,{render:A=>(0,Ie.jsx)(Ws,{id:b,value:c,onChange:_=>y(_.target.value),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:h,tabIndex:A})})]}),(0,Ie.jsxs)("div",{className:"flex justify-end gap-2",children:[t&&(0,Ie.jsx)(Le,{render:A=>(0,Ie.jsx)(Et,{type:"button",variant:"outline",onClick:t,disabled:h,tabIndex:A,children:i.formCancel})}),(0,Ie.jsx)(Le,{render:A=>(0,Ie.jsx)(Et,{type:"button",variant:"secondary",onClick:C,disabled:h,tabIndex:A,children:i.formSave})}),(0,Ie.jsx)(Le,{render:A=>(0,Ie.jsx)(Et,{type:"button",onClick:u,disabled:h,tabIndex:A,children:i.formPublish})})]})]})};var Ys=Te(require("lucide-react/dist/esm/icons/check.js")),qs=Te(require("lucide-react/dist/esm/icons/pencil.js")),Xs=Te(require("lucide-react/dist/esm/icons/trash-2.js"));var na=require("react/jsx-runtime"),so=24,$s=2,xu=20,io=5,Iu=3,Cu=()=>{let e=Math.cos(2*Math.PI/io)/Math.cos(Math.PI/io),t=Array.from({length:2*io},(R,T)=>{let C=-Math.PI/2+T*Math.PI/io,u=T%2===0?1:e;return{x:u*Math.cos(C),y:u*Math.sin(C)}}),r=t.map(R=>R.x),n=t.map(R=>R.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],l=(xu-$s)/(a-o),c=so/2-l*(o+a)/2,y=so/2-l*(i+s)/2,h=R=>String(Number(R.toFixed(Iu)));return t.map(R=>`${h(c+l*R.x)},${h(y+l*R.y)}`).join(" ")},Lu=Cu(),gr=({filled:e})=>(0,na.jsx)("svg",{viewBox:`0 0 ${so} ${so}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:$s,strokeLinejoin:"round",className:e?xe.starOn:xe.starOff,children:(0,na.jsx)("polygon",{points:Lu})});var xt=require("react/jsx-runtime"),Rr=({config:e,id:t,className:r})=>(0,xt.jsx)("span",{id:t,className:v(Da,e.badgeClassName,r),children:e.name===void 0?e.label:(0,xt.jsxs)(xt.Fragment,{children:[(0,xt.jsx)("span",{"aria-hidden":"true",children:(0,xt.jsx)("abbr",{title:e.name,children:e.label})}),(0,xt.jsx)("span",{className:"sr-only",children:e.name})]})});var oa=require("react/jsx-runtime"),lo=24,Au=6,hr=({className:e})=>(0,oa.jsx)("svg",{viewBox:`0 0 ${lo} ${lo}`,"aria-hidden":"true",className:v(xe.read,e),children:(0,oa.jsx)("circle",{cx:lo/2,cy:lo/2,r:Au,fill:"currentColor"})});var We=require("react/jsx-runtime"),Se=({label:e,classNames:t,valueId:r,children:n})=>(0,We.jsxs)("div",{className:t.field,children:[(0,We.jsx)("dt",{className:t.label,children:e}),(0,We.jsx)("dd",{id:r,className:v("m-0",t.value),children:n})]}),Ht={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"},zs=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return(0,We.jsxs)("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:[(0,We.jsx)(Se,{label:r.author,classNames:Ht,children:he(e.author)}),(0,We.jsx)(Se,{label:r.createdAt,classNames:Ht,children:ge(e.createdAt)}),(0,We.jsx)(Se,{label:r.updatedBy,classNames:Ht,children:he(e.updatedBy)}),(0,We.jsx)(Se,{label:r.updatedAt,classNames:Ht,children:ge(e.updatedAt)}),(0,We.jsx)(Se,{label:r.businessDate,classNames:Ht,children:ge(e.date)}),t!==null&&(0,We.jsx)(Se,{label:r.visitTime,classNames:Ht,children:t}),n&&(0,We.jsx)(Se,{label:r.category,classNames:Ht,children:n}),o&&(0,We.jsx)(Se,{label:r.creationCategory,classNames:Ht,children:o})]})};var se=require("react/jsx-runtime"),co={field:v(Me,"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:""},Du={field:v(Me,"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:""},Gs={field:v(Me,"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:""},_u=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,js=({text:e})=>_u.test(e)?(0,se.jsx)("time",{dateTime:e,children:e}):e,Js=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:l,sourceConfig:c,visitTimeDisplay:y,markerIds:h,labels:R})=>{let T=r?R.starRemove:R.starAdd,C=t?R.markUnread:R.markRead,u=e.category?.trim(),g=e.creationCategory?.trim();return(0,se.jsxs)("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[(0,se.jsx)(tr,{id:h.attachments,count:e.attachments.length,label:R.attachments}),c?(0,se.jsx)(Rr,{id:h.source,config:c}):null,(0,se.jsx)(Le,{render:b=>(0,se.jsx)("button",{type:"button",onClick:a,tabIndex:b,className:He,title:T,"aria-label":T,"data-detail-star-button":e.reportHubId,children:(0,se.jsx)(gr,{filled:r})})}),(0,se.jsx)(Le,{render:b=>(0,se.jsx)("button",{type:"button",onClick:o,tabIndex:b,className:He,title:C,"aria-label":C,"data-detail-read-button":e.reportHubId,children:t?(0,se.jsx)(Ys.default,{className:xe.read}):(0,se.jsx)(hr,{})})}),i&&(0,se.jsx)(Le,{render:b=>(0,se.jsx)("button",{ref:s,type:"button",onClick:i,tabIndex:b,"data-detail-edit-button":e.reportHubId,className:He,title:R.edit,"aria-label":R.edit,children:(0,se.jsx)(qs.default,{className:xe.edit})})}),n&&(0,se.jsx)(Le,{render:b=>(0,se.jsx)("button",{type:"button",onClick:l,tabIndex:b,"data-detail-delete-button":e.reportHubId,className:He,title:R.deleteReport,"aria-label":R.deleteReport,children:(0,se.jsx)(Xs.default,{className:xe.delete})})}),(0,se.jsxs)("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[(0,se.jsx)(Se,{label:R.id,classNames:Du,children:e.reportHubId}),(0,se.jsx)(Se,{label:R.businessDate,classNames:co,children:(0,se.jsx)(js,{text:ge(e.date)})}),(0,se.jsx)(Se,{label:R.author,classNames:co,children:he(e.employeeName)}),(0,se.jsx)(Se,{label:R.visitTime,classNames:co,children:he(y)}),(0,se.jsx)(Se,{label:R.updatedAt,classNames:co,children:(0,se.jsx)(js,{text:ge(e.updatedAt)})}),u&&(0,se.jsx)(Se,{label:R.category,classNames:Gs,children:u}),g&&(0,se.jsx)(Se,{label:R.creationCategory,classNames:Gs,children:g})]})]})};var Yt=require("react");var H=require("react"),ca=require("react-dom");var Sr=e=>({owner:e,focusIndex:null}),aa=Object.freeze({owner:null,focusIndex:null}),Zs=(e,t)=>{if(e.length===0)return aa;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},Qs=(e,t)=>{switch(t.kind){case"focusIn":return Sr(t.row);case"focusOut":return t.to==="outside"?aa:Sr(e);case"pointerPress":return t.at==="outside"?aa:Sr(e);case"listChanged":{if(e===null)return Sr(e);let r=ve(t.items,e.reportHubId,e.index);return r===-1?Zs(t.items,e.index):Sr(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?Sr(e):Zs(t.items,t.selection.index)}};var uo=e=>e.matches(":focus-visible");var wu="data-daily-report-keyboard-focus",Ft={capture:!0},el=e=>{let t=i=>{e.toggleAttribute(wu,Ee(i)&&uo(i))},r=i=>t(i.target),n=i=>{Ee(i.relatedTarget)&&e.contains(i.relatedTarget)||t(null)},o=()=>t(null);e.addEventListener("focusin",r,Ft),e.addEventListener("keydown",r,Ft),e.addEventListener("focusout",n,Ft),e.addEventListener("pointerdown",o,Ft);let a=Be(e);return t(a!==null&&e.contains(a)?a:null),()=>{e.removeEventListener("focusin",r,Ft),e.removeEventListener("keydown",r,Ft),e.removeEventListener("focusout",n,Ft),e.removeEventListener("pointerdown",o,Ft),t(null)}};var Nu='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',Ou=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],Mu=Ou.map(e=>`[role="${e}"]`).join(", "),ku=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),Pu=new Set(["Enter"," "]),Hu=new Map([["Home","exitBefore"],["End","exitAfter"]]),ia=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return Hu.get(e.key)??null;let r=ku.get(e.key);return r!==void 0?r:Pu.has(e.key)&&t.rowActivation?"activate":null},tl=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},rl=(e,t,r)=>{let n=ia(e,r);if(n===null||e.defaultPrevented||Br(e)||t===null||!Ee(e.target)||!t.contains(e.target))return null;let o=wt(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:tl(e.target,Nu,t)||tl(e.target,Mu,t)?null:n};var mo={kind:"stay"},nl=e=>Math.floor(.875*e),Bt=(e,t)=>({kind:"move",index:e,align:t}),Wr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",Fu=({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 l=e+1;l<t;l++){let c=o(l);if(a+=c,a>r)break;s={index:l,top:i},i+=c}return s},Bu=({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 l=n(s);if(a-=l,o+=l,o>t)break;i={index:s,top:a}}return i},Uu=(e,t,r)=>{let{index:n,count:o,viewport:a,focusedRowTop:i,heightOf:s}=t,l=i+s(n);switch(e){case"previous":{if(n===0)return mo;if(r==="top")return Bt(n-1,"top");let c=s(n-1);return Bt(n-1,Wr(i-c,c,a,-1))}case"next":return n===o-1?mo:r==="top"?Bt(n+1,"top"):Bt(n+1,Wr(l,s(n+1),a,1));case"first":return Bt(0,"top");case"last":return Bt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(l>a)return{kind:"reveal",delta:Math.min(l-a,nl(a))};if(n===o-1)return mo;let c=Fu(t);return Bt(c.index,Wr(c.top,s(c.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,nl(a))};if(n===0)return mo;let c=Bu(t);return Bt(c.index,Wr(c.top,s(c.index),a,-1))}}},Vu=({index:e,focusedRowTop:t,heightOf:r},n)=>{let o=t;for(let a=e;a<n;a++)o+=r(a);for(let a=n;a<e;a++)o-=r(a);return o},il=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let l=Uu(e,o,n);if(l.kind==="stay")break;l.kind==="reveal"?(i+=l.delta,o={...o,focusedRowTop:o.focusedRowTop-l.delta}):l.align==="none"?o={...o,index:l.index,focusedRowTop:Vu(o,l.index)}:(a={index:l.index,align:l.align},i=0,o={...o,index:l.index,focusedRowTop:l.align==="top"?0:o.viewport-o.heightOf(l.index)})}return{index:o.index,alignment:a,scrollDelta:i}},sl=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Wr(r,n(e),t,1),Wu=(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},Kr=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;if(n.kind==="uniform"){let{rowHeight:s}=n;return{index:t,count:r,viewport:o,focusedRowTop:t*s-a,heightOf:()=>s}}let i=e.getScrollAnchor();return i===null?null:{index:t,count:r,viewport:o,focusedRowTop:Wu(t,i,n.heightOf),heightOf:n.heightOf}},ol=1,ll=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=r.kind==="uniform"?()=>r.rowHeight:r.heightOf,i=o.index,s=a(i)-o.offsetPx;for(;s<n&&i<t-1;)i+=1,s+=a(i);return{start:Math.max(0,o.index-ol),end:Math.min(t-1,i+ol)}},dl=(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,al=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),cl=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(al(t,n,o))return t.reportHubId;if(al(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var la=1,$r=2,sa=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?la:0)|(n===t||n===r?$r:0),Ku=e=>{if(Dn(e))return!0;let t=Be(e);return t!==null&&e.contains(t)},$u=(e,t)=>{let r=e.closest(`[${_n}]`);return r!==null&&r!==e&&$t(r)===t&&Be(e)===r},ul=({getContainer:e,initialSelectedId:t})=>{let r={selectedId:t,tabStopId:t,arrivingId:null},n=null,o=!1,a=null,i=new Map,s=new Map,l=null,c=new Map,y=u=>sa(r,u),h=u=>{let g=s.get(u);if(g===void 0)return;let b=(y(u)&$r)!==0?"0":"-1";g.getAttribute("tabindex")!==b&&g.setAttribute("tabindex",b)},R=u=>{let g={...r};u(r);let b=r,A=new Set([g.selectedId,g.tabStopId,g.arrivingId,b.selectedId,b.tabStopId,b.arrivingId]);for(let _ of A){if(_===null)continue;let D=sa(g,_),O=sa(b,_);if(D===O)continue;((D^O)&$r)!==0&&h(_);let F=i.get(_);if(F!==void 0)for(let W of[...F])W()}},T=u=>{o=!0;try{u.focus({preventScroll:!0})}finally{o=!1}},C=u=>{let g=e();g!==null&&(n=null,Ku(g)&&T(u))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:y,setTabStopId:u=>{R(g=>{g.tabStopId=u})},settleSelection:(u,g)=>{R(b=>{b.selectedId=u,b.tabStopId=g,b.arrivingId=null})},arrive:u=>{R(g=>{g.arrivingId=u})},subscribe:(u,g)=>{let b=i.get(u)??new Set;return b.add(g),i.set(u,b),()=>{b.delete(g),b.size===0&&i.get(u)===b&&i.delete(u)}},registerFocusTarget:(u,g)=>{if(s.set(u,g),h(u),n===u){C(g);return}a===null||a.reportHubId!==u||(Dn(g)||$u(g,u))&&T(g)},unregisterFocusTarget:(u,g)=>{s.get(u)===g&&s.delete(u)},requestFocus:u=>{n=u;let g=s.get(u);g!==void 0&&C(g)},cancelFocusRequest:()=>{n=null},pendingFocusId:()=>n,isMovingFocus:()=>o,getFocusOwner:()=>a,setFocusOwner:u=>{a=u},restoreFocus:u=>{if(a===null||a.reportHubId!==u)return;let g=s.get(u);g===void 0||!Dn(g)||T(g)},holdBodiesOutside:u=>{l=u},isBodyHeldAt:u=>l!==null&&(u<l.start||u>l.end),registerHeldBody:(u,g,b)=>{let A={indexHint:g,release:b};return c.set(u,A),()=>{c.get(u)===A&&c.delete(u)}},releaseHeldBodiesWithin:(u,g)=>{if(u!==null)for(let[b,{indexHint:A,release:_}]of[...c]){let D=g(b,A);D>=u.start&&D<=u.end&&_()}}}};var it={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}},da=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),zu=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),ml=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Gu=new Map(Object.values(it).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),pl=e=>{let t=Gu.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},ju=(e,t,r)=>e==="row"||e==="page"?t+r:r,fl=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:pl(e)}),bl=(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",pl(r)):(e.pending=ju(e.axis,e.pending,r.amount),da)}case"frame":{if(e.fence==="open")return da;if(e.fence==="immediate")return e.fence="flush",zu;if(e.pending===0)return e.fence="open",da;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?ml:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return ml}};var Yu=Object.freeze({kind:"frame"}),qu=Object.freeze({kind:"keyup"}),Xu=Object.freeze({kind:"cancel"}),Ju=Object.freeze({previous:Object.freeze({kind:"repeat",step:it.previous}),next:Object.freeze({kind:"repeat",step:it.next}),pageBackward:Object.freeze({kind:"repeat",step:it.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:it.pageForward}),first:Object.freeze({kind:"repeat",step:it.first}),last:Object.freeze({kind:"repeat",step:it.last}),activate:Object.freeze({kind:"repeat",step:it.activate})}),Zu=(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}},Qu=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),em=e=>{let t=$t(e),r=lr(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},po=(e,t)=>{let r=(0,H.useCallback)(a=>e.subscribe(t,a),[e,t]),n=(0,H.useCallback)(()=>e.rowStateOf(t),[e,t]),o=(0,H.useSyncExternalStore)(r,n,n);return{isCurrent:(o&la)!==0,isTabStop:(o&$r)!==0}},fo=(e,t,r)=>{let[n,o]=(0,H.useState)(()=>!e.isBodyHeldAt(r));return(0,H.useLayoutEffect)(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return(0,H.startTransition)(a),i},[e,t,r,n]),n},yl=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,rowSizing:i,arrowAlign:s,rowActivation:l})=>{let[c]=(0,H.useState)(()=>ul({getContainer:()=>n.current,initialSelectedId:t})),y=(0,H.useRef)({items:e,onSelect:r,rowSizing:i,arrowAlign:s,rowActivation:l}),h=(0,H.useRef)(null),R=(0,H.useRef)(null),[T,C]=(0,H.useState)(null),u=(0,H.useRef)(null),g=(0,H.useRef)(null),[b,A]=(0,H.useState)(null),_=(0,H.useRef)(!1),D=(0,H.useRef)(null),[O,F]=(0,H.useState)(0),W=(0,H.useMemo)(()=>({id:t,indexHint:t===null?null:pi(T,t)}),[t,T]),q=(0,H.useRef)(W);(0,H.useLayoutEffect)(()=>{y.current={items:e,onSelect:r,rowSizing:i,arrowAlign:s,rowActivation:l},q.current=W},[e,r,i,s,l,W]);let ne=(0,H.useCallback)((E,w)=>{let p=R.current;if(p!==null&&p.items===E&&p.reportHubId===w)return p.index;let f=ve(E,w,p!==null&&p.reportHubId===w?p.index:null);return f!==-1&&(R.current={items:E,reportHubId:w,index:f}),f},[]),z=(0,H.useCallback)((E,w)=>{R.current={items:y.current.items,reportHubId:E,index:w},C(p=>p!==null&&p.reportHubId===E&&p.index===w?p:{reportHubId:E,index:w})},[]),K=(0,H.useCallback)(E=>{let w=c.getFocusOwner();if(w===null)return null;let p=ve(E,w.reportHubId,w.index);return p===-1?null:{reportHubId:w.reportHubId,index:p}},[c]),oe=(0,H.useCallback)(E=>{let w=y.current.items,p=E===null?null:{reportHubId:E,index:ne(w,E)};return cl(w,K(w),p,h.current,D.current)},[ne,K]),G=(0,H.useCallback)(()=>{c.setTabStopId(oe(c.getSelectedId()))},[c,oe]),me=(0,H.useCallback)(E=>{let w=c.getFocusOwner();w===E||w!==null&&E!==null&&w.reportHubId===E.reportHubId&&w.index===E.index||(c.setFocusOwner(E),_.current||G())},[c,G]),$=(0,H.useCallback)(E=>{let w=Qs(c.getFocusOwner(),E);me(w.owner),w.focusIndex!==null&&(u.current=w.focusIndex,c.requestFocus(w.owner.reportHubId))},[c,me]);(0,H.useLayoutEffect)(()=>{c.settleSelection(t,oe(t))},[c,t,e,O,oe]),(0,H.useLayoutEffect)(()=>{let E=o.current;if(E!==null)return el(E)},[o]),(0,H.useLayoutEffect)(()=>{let E=n.current;if(E===null)return;let w=E.ownerDocument,p=f=>{let x=n.current,d=f.target;$({kind:"pointerPress",at:x!==null&&Ee(d)&&x.contains(d)?"inside":"outside"})};return w.addEventListener("pointerdown",p,{capture:!0}),()=>w.removeEventListener("pointerdown",p,{capture:!0})},[n,$]),(0,H.useLayoutEffect)(()=>{let E=c.pendingFocusId();E!==null&&ve(e,E,u.current)===-1&&c.cancelFocusRequest(),$({kind:"listChanged",items:e})},[c,e,$]);let j=(0,H.useCallback)(E=>{$({kind:"removed",reportHubId:E,selection:R.current,items:y.current.items})},[$]),fe=(0,H.useCallback)((E,w,p)=>{let{items:f,onSelect:x,rowSizing:d,arrowAlign:m}=y.current,S=a.current;if(x===null||S===null)return null;let L=ve(f,p.reportHubId,p.index);if(L===-1)return null;let M=Kr(S,L,f.length,d);if(M===null)return null;let P=il(E,w,M,m),re=f[P.index],ct=P.index!==L;if(ct){c.arrive(re.reportHubId),D.current=re.reportHubId,u.current=P.index,_.current=!0;try{c.requestFocus(re.reportHubId)}finally{_.current=!1}}try{(0,ca.flushSync)(()=>{ct&&(c.pendingFocusId()===null&&c.settleSelection(re.reportHubId,re.reportHubId),x(re.reportHubId,P.index)),P.alignment!==null&&S.scrollToIndex(P.alignment.index,{align:P.alignment.align}),P.scrollDelta!==0&&S.scrollBy(P.scrollDelta),ct&&(z(re.reportHubId,P.index),F(Co=>Co+1));let ga=ll(S,f.length,d);c.holdBodiesOutside(ga),c.releaseHeldBodiesWithin(ga,(Co,ud)=>ve(f,Co,ud))})}finally{c.holdBodiesOutside(null)}return ct?{reportHubId:re.reportHubId,index:P.index}:{reportHubId:p.reportHubId,index:L}},[c,a,z]),be=(0,H.useCallback)(E=>{let{items:w,onSelect:p}=y.current;if(p===null)return;let f=ve(w,E.reportHubId,E.index);f!==-1&&(p(E.reportHubId,f),z(E.reportHubId,f))},[z]),U=(0,H.useCallback)(E=>{let w=n.current,p=w===null?null:Be(w),f=w!==null&&p!==null&&w.contains(p)?_r(wt(p,w),y.current.items):null;return f===null?E.origin:f},[n]),ce=(0,H.useCallback)((E,w)=>{let p=U(E);if(w.axis==="activate"){be(p);return}let f=Zu(w.axis,w.amount),x=fe(f.command,f.count,p);x!==null&&(E.origin=x)},[U,be,fe]),Oe=(0,H.useCallback)(E=>{g.current=null,E.frame!==0&&E.view.cancelAnimationFrame(E.frame),A(null)},[]),qe=(0,H.useCallback)((E,w,p)=>{let{apply:f}=w;f!==null&&(w.flush?(0,ca.flushSync)(()=>ce(E,f)):ce(E,f)),g.current===E&&(w.ended?Oe(E):w.requestFrame&&(E.frame=E.view.requestAnimationFrame(p)))},[ce,Oe]),ke=(0,H.useCallback)((E,w,p)=>{qe(E,bl(E.state,w),p)},[qe]),Ce=(0,H.useCallback)(()=>{let E=g.current;E!==null&&(E.frame=0,ke(E,Yu,Ce))},[ke]),rt=(0,H.useCallback)(()=>{let E=g.current;E!==null&&ke(E,qu,Ce)},[ke,Ce]),ye=(0,H.useCallback)(()=>{let E=g.current;E!==null&&ke(E,Xu,Ce)},[ke,Ce]),Ct=(0,H.useCallback)((E,w,p)=>{A(q.current);let{state:f,effects:x}=fl(it[E]),d={state:f,origin:w,view:p,frame:0};g.current=d,qe(d,x,Ce)},[qe,Ce]);(0,H.useLayoutEffect)(()=>()=>{let E=g.current;g.current=null,E!==null&&E.frame!==0&&E.view.cancelAnimationFrame(E.frame)},[]);let yt=(0,H.useCallback)(E=>{let w=g.current,p=w!==null&&E.repeat?ia(E,y.current):null;if(w!==null&&p!==null&&p!=="exitBefore"&&p!=="exitAfter"&&it[p].axis===w.state.axis){E.preventDefault(),ke(w,Ju[p],Ce);return}let{items:f,onSelect:x,rowSizing:d,rowActivation:m}=y.current,S=n.current,L=x===null?null:rl(Xn(E),S,{rowActivation:m});if(c.cancelFocusRequest(),rt(),L===null||S===null)return;if(L==="exitBefore"||L==="exitAfter"){let re=rs(S,L==="exitBefore"?"before":"after");if(re===null)return;E.preventDefault(),re.focus();return}let M=Be(S),P=_r(wt(M!==null&&S.contains(M)?M:E.target,S),f);if(P!==null){if(L!=="activate"){let re=a.current;if(re===null||Kr(re,P.index,f.length,d)===null)return}if(E.preventDefault(),E.repeat){Ct(L,P,Kt(S));return}L==="activate"?be(P):fe(L,1,P)}},[c,n,a,Ce,ke,rt,Ct,be,fe]),dt=(0,H.useCallback)(()=>{rt()},[rt]),nt=(0,H.useCallback)(E=>{let w=n.current,p=E.target,f=wt(p,w);if($({kind:"focusIn",row:f===null?null:em(f)}),c.isMovingFocus())return;let x=a.current;if(w===null||x===null||!Ee(p)||!uo(p))return;let d=f===null?null:f.closest('[role="list"]');if(f===null||d===null)return;let m=d.getBoundingClientRect(),S=f.getBoundingClientRect(),L=S.height<=m.height?S:Qu(p.getBoundingClientRect(),Qr),M=dl(L,m),P=x.getViewportSize();M===0||!(P>0&&m.height>0)||x.scrollBy(M*P/m.height)},[c,n,a,$]),Pe=(0,H.useCallback)(E=>{let w=n.current,p=E.relatedTarget,f=Ee(p)?w?.contains(p)?"view":"outside":"nowhere";f!=="view"&&ye(),$({kind:"focusOut",to:f})},[n,ye,$]),Xe=(0,H.useCallback)(()=>{c.cancelFocusRequest(),ye()},[c,ye]),gt=(0,H.useCallback)(E=>{h.current={visibleStartIndex:E.visibleStartIndex,visibleEndIndex:E.visibleEndIndex},D.current=null,G()},[G]),$e=(0,H.useMemo)(()=>({onKeyDown:yt,onKeyUp:dt,onPointerDownCapture:Xe,onWheelCapture:Xe,onTouchStartCapture:Xe,onFocus:nt,onBlur:Pe}),[yt,dt,Xe,nt,Pe]);return{cursor:c,containerProps:$e,handleRangeChange:gt,selection:W,settledSelection:b===null?W:b,resolveSelectedIndex:ne,rememberSelection:z,focusAfterRemoval:j}};var bo=require("react/jsx-runtime"),gl=v(Qt,en,tn,Sa),tm=v(gl,"h-full"),rm="h-full w-full",Rl=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:l}=po(a,e),c=(0,Yt.useContext)(Ot),y=(0,Yt.useContext)(Nt),h=fo(a,e,c),R=(0,Yt.useCallback)(T=>{let C=o(T);return a.registerFocusTarget(e,T),()=>{a.unregisterFocusTarget(e,T),C()}},[a,e,o]);return(0,Yt.useLayoutEffect)(()=>{a.restoreFocus(e)},[a,e,n]),(0,bo.jsx)(Pr.Provider,{value:l,children:(0,bo.jsx)("div",{ref:R,className:h?gl:tm,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":c+1,"aria-setsize":y,"aria-labelledby":h&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":h&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!h?!0:void 0,"aria-current":s?"true":void 0,children:h?i:(0,bo.jsx)("div",{...ze,className:rm})})})};var k=require("react/jsx-runtime"),nm=v("flex h-full w-full flex-col",At,nn),om=At,Ne="bg-slate-200 dark:bg-slate-700",am=(e,t)=>{let r=he(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},im=()=>(0,k.jsxs)("div",{...ze,className:om,children:[(0,k.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[(0,k.jsx)("div",{className:v("h-6 w-20 rounded-full",Ne)}),(0,k.jsx)("div",{className:v("h-6 w-24 rounded-full",Ne)}),(0,k.jsx)("div",{className:v("h-6 w-24 rounded-full",Ne)}),(0,k.jsx)("div",{className:v("h-6 w-28 rounded-full",Ne)})]}),(0,k.jsxs)("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[(0,k.jsxs)("div",{className:"space-y-4",children:[(0,k.jsx)("div",{className:v("h-5 w-40 rounded",Ne)}),(0,k.jsx)("div",{className:v("h-5 w-56 rounded",Ne)}),(0,k.jsx)("div",{className:v("h-24 rounded-xl",Ne)})]}),(0,k.jsxs)("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[(0,k.jsx)("div",{className:v("mb-2 h-4 w-24 rounded",Ne)}),(0,k.jsx)("div",{className:v("mb-2 h-4 w-28 rounded",Ne)}),(0,k.jsx)("div",{className:v("h-4 w-32 rounded",Ne)})]})]}),(0,k.jsxs)("div",{className:"space-y-4",children:[(0,k.jsx)("div",{className:v("h-4 w-24 rounded",Ne)}),(0,k.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,k.jsx)("div",{className:v("h-6 w-16 rounded-full",Ne)}),(0,k.jsx)("div",{className:v("h-6 w-16 rounded-full",Ne)}),(0,k.jsx)("div",{className:v("h-6 w-16 rounded-full",Ne)})]}),(0,k.jsxs)("div",{className:"space-y-2",children:[(0,k.jsx)("div",{className:v("h-16 rounded-xl",Ne)}),(0,k.jsx)("div",{className:v("h-16 rounded-xl",Ne)})]})]})]}),sm=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:l}=_t(e.reportHubId,e.businessDate),{removeStaleItem:c}=_e(),{draftLabelName:y,sourceTypeConfigs:h}=V(),[R,T]=(0,le.useState)(!1),[C,u]=(0,le.useState)(!1),g=(0,le.useRef)(!1),b=(0,le.useRef)(!1),A=(0,le.useRef)(!1),_=(0,le.useRef)(!1);(0,le.useEffect)(()=>{if(l){_.current=!0;return}!(a||s||i)&&_.current&&e.reportHubId>0&&c(e.reportHubId)},[a,s,l,i,e.reportHubId,c]);let D=a?.labels.some(U=>U.name===y),O=n&&a?.userId===n,F=(0,le.useCallback)(()=>{b.current=!0,g.current=!1,T(!0)},[]),W=(0,le.useCallback)(()=>{A.current=!0,T(!1),u(!0)},[]),q=(0,le.useCallback)(()=>{A.current=!0,T(!1)},[]),ne=(0,le.useCallback)(U=>{U===null||!b.current||(b.current=!1,U.focus())},[]),z=(0,le.useCallback)(U=>{U===null||!A.current||(A.current=!1,U.focus())},[]);(0,le.useLayoutEffect)(()=>{R||(A.current=!1)},[R]),(0,le.useEffect)(()=>{a&&O&&D&&!R&&!C?(T(!0),g.current=!0):a&&!D&&R&&g.current&&(T(!1),g.current=!1)},[a,O,D,R,C]);let K=(0,le.useId)(),oe=(0,le.useMemo)(()=>({heading:`${K}-heading`,state:`${K}-state`,attachments:`${K}-attachments`,source:`${K}-source`}),[K]),G=a!==null&&a.attachments.length>0,me=a===null?void 0:Dt(a.sourceType,h),$=[oe.state,...G?[oe.attachments]:[],...me!==void 0?[oe.source]:[]].join(" "),j=!i&&a!==null&&!R?{kind:"card",ids:oe,describedBy:$}:{kind:"label",label:ge(e.businessDate)},fe=!i&&a===null&&s,be=i?"error":a===null?s?"loading":"missing":R?"editing":"resolved";return(0,k.jsx)(Rl,{itemId:e.reportHubId,name:j,isBusy:fe,bodyKind:be,observeRowHeight:t,cursor:o,children:i?(0,k.jsx)(lm,{itemId:e.reportHubId}):a?R?(0,k.jsx)("div",{...ze,className:"rounded-2xl",children:(0,k.jsx)(ao,{report:a,onCancel:W,onPublishSuccess:q,titleInputRef:ne})}):(0,k.jsx)(Sl,{item:e,report:a,sourceConfig:me,textIds:oe,onCommentAdded:r,userId:n,onEdit:O?F:void 0,editButtonRef:z}):(0,k.jsx)(im,{})})},hl=(0,le.memo)(sm),Sl=(0,le.memo)(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s})=>{let l=(0,le.useRef)(null),{toggleStar:c,toggleRead:y,pendingStarUpdates:h,pendingReadUpdates:R,deleteReport:T,user:C}=_e(),{uiComments:u,handleAddComment:g,handleDeleteComment:b,pendingDeleteId:A,setPendingDeleteId:_,resolvedIdMap:D}=pr(t,C,a),{labels:O,headingLevel:F}=V(),W=fr[F],q=mn(t.sourceType,r),ne=async ce=>{await g(ce),o?.(e.reportHubId)},z=h.current.get(t.reportHubId),K=z===void 0?t.isStarred:z,oe=R.current.get(t.reportHubId),G=oe===void 0?t.isRead:oe,me=!!(a&&t.userId===a),$=async()=>{try{await y(t.reportHubId,!G,t.date)}catch{}},j=async()=>{try{await c(t.reportHubId,!K,t.date)}catch{}},fe=async()=>{confirm(O.confirmDelete)&&await T(t.reportHubId,t.date)},be=(0,le.useMemo)(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
3
+ `).trim():"",[t.content]),U=(0,le.useMemo)(()=>{let ce=t.visitTimeFrom?.trim(),Oe=t.visitTimeTo?.trim();return ce&&Oe?`${ce} - ${Oe}`:ce||Oe||null},[t.visitTimeFrom,t.visitTimeTo]);return(0,k.jsxs)("div",{...ze,onDoubleClick:i,className:nm,children:[(0,k.jsx)(Ge,{level:F,id:n.heading,className:"sr-only",children:`${ge(t.date)} ${he(t.employeeName)} ${he(t.subject)}`}),(0,k.jsx)("span",{id:n.state,className:"sr-only",children:O.rowState({isRead:G,isStarred:K})}),(0,k.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,k.jsx)(Js,{report:t,sourceConfig:r,isRead:G,isStarred:K,isMine:me,onToggleRead:$,onToggleStar:j,onEdit:i,editButtonRef:s,onDelete:fe,visitTimeDisplay:U,markerIds:n,labels:O}),(0,k.jsxs)("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[(0,k.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,k.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,k.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,k.jsx)(Ge,{level:W,className:Rt,children:O.customer}),(0,k.jsx)("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:he(t.customerName)})]}),(0,k.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,k.jsx)(Ge,{level:W,className:Rt,children:O.subject}),(0,k.jsx)("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:he(t.subject)})]})]}),be&&(0,k.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,k.jsx)(Ge,{level:W,className:Rt,children:O.content}),(0,k.jsx)("div",{className:v("whitespace-pre-wrap",rn),children:be})]}),t.interviewers.length>0&&(0,k.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,k.jsx)(Ge,{level:W,className:Rt,children:O.interviewers}),(0,k.jsx)("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(ce=>(0,k.jsx)("li",{className:v(Me,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:am(ce,O)},JSON.stringify([ce.name,ce.affiliation])))})]}),(0,k.jsx)(qn,{attachments:t.attachments}),(u.length>0||q)&&(0,k.jsxs)("div",{...eo,className:"flex flex-col gap-2",children:[(0,k.jsx)(Ge,{level:W,tabIndex:-1,...to,className:ro,children:O.comments}),(0,k.jsx)(no,{comments:u,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:b,pendingDeleteId:A,onPendingDeleteIdChange:_,resolvedIdMap:D})]}),q&&(0,k.jsx)("div",{className:"mt-auto",ref:l,children:(0,k.jsx)(oo,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:ne})})]}),(0,k.jsx)(zs,{report:t,visitTimeDisplay:U,labels:O})]})]})]})});Sl.displayName="DailyReportResolvedItem";var lm=({itemId:e})=>{let{labels:t}=V();return(0,k.jsx)("div",{...ze,className:"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:(0,k.jsx)("p",{children:t.reportLoadFailed(e)})})};var qt=require("react");var st=require("react");var dm=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},cm=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=ve(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},vl=({items:e,handleRef:t,isRevealPending:r})=>{let n=(0,st.useRef)(null),o=(0,st.useRef)(e),a=(0,st.useRef)(r);(0,st.useLayoutEffect)(()=>{a.current=r},[r]);let i=(0,st.useCallback)(s=>{let l=t.current,c=l===null||!(l.getScrollPosition()>0)?null:l.getScrollAnchor(),y=c===null?void 0:o.current[c.index];n.current=c===null||y===void 0?null:{reportHubId:y.reportHubId,index:c.index,offsetPx:c.offsetPx,lastVisibleIndex:Math.max(c.index,s.visibleEndIndex)}},[t]);return(0,st.useLayoutEffect)(()=>{let s=o.current;o.current=e;let l=n.current,c=t.current;if(s===e||l===null||c===null||a.current())return;let y=ve(e,l.reportHubId,l.index),h=y===-1?cm(s,e,l):y;if(h===-1){n.current=null;return}h===l.index&&!dm(s,e,l.index,l.lastVisibleIndex)||(c.scrollToIndex(h,{align:"top",offset:-l.offsetPx}),n.current={reportHubId:e[h].reportHubId,index:h,offsetPx:l.offsetPx,lastVisibleIndex:l.lastVisibleIndex+(h-l.index)})},[e,t]),(0,st.useMemo)(()=>({handleRangeChange:i}),[i])};var Tl=require("react/jsx-runtime"),yo=({isViewRevealPending:e,onRangeChange:t,...r})=>{let{handleRangeChange:n,...o}=yl(r),{labels:a}=V(),i=(0,qt.useId)(),s=r.onSelect!==null,{handleRangeChange:l}=vl({items:r.items,handleRef:r.handleRef,isRevealPending:e}),c=(0,qt.useCallback)(R=>{n(R),l(R),t(R)},[n,l,t]),y=(0,qt.useMemo)(()=>({role:"list","aria-label":a.title,"aria-describedby":s?i:void 0}),[a.title,s,i]),h=(0,qt.useMemo)(()=>s?(0,Tl.jsx)("span",{id:i,className:"sr-only",children:a.listKeyboardHelp}):null,[s,i,a.listKeyboardHelp]);return{...o,handleRangeChange:c,contentProps:y,keyboardHelp:h}};var El=require("react"),um=20,go=({hostTestId:e,scrollContainerRef:t,handleRef:r,itemsRef:n})=>(0,El.useCallback)(o=>{t.current=o;let a=o.querySelector(`[data-testid="${e}"]`);return a!==null&&Object.defineProperty(a,"__virtualScroll",{configurable:!0,get:()=>{let i=r.current;if(i!==null)return{...i,findReportIndex:s=>n.current.findIndex(l=>l.reportHubId===s),getReportItem:s=>n.current[s],getReportIds:(s=um)=>n.current.slice(0,s).map(l=>l.reportHubId)}}}),()=>{a!==null&&delete a.__virtualScroll,t.current=null}},[e,t,r,n]);var Ke=require("react/jsx-runtime"),Cl={pointerDragInputs:Sn,wheelSpeedMultiplier:fn,inertiaOptions:dr(!1),enableKeyboardNavigation:!1},mm={...Cl,inertiaOptions:dr(!0)},xl="daily-report-detail-list",pm=v("relative w-full",sn),fm=v(ut,"relative"),bm=300,ym=350,Ro=e=>{let t=(0,B.useRef)(null),[r,n]=(0,B.useState)(null),o=Cn(t),a=wn(r),i=(0,B.useCallback)(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return(0,Ke.jsx)("div",{ref:i,className:on,children:o===null?null:(0,Ke.jsx)(gm,{...e,viewportHeight:o,reducedMotion:a})})},gm=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:o,viewportHeight:a,reducedMotion:i})=>{let[{initialScrollAnchor:s,restored:l}]=(0,B.useState)(()=>{let d=o?.current;if(!d||d.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!d.topItem)return{initialScrollAnchor:void 0,restored:!0};let m=e.findIndex(S=>S.reportHubId===d.topItem?.reportHubId);return m!==-1?{initialScrollAnchor:{index:m,offsetPx:d.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:d.topItem.index,offsetPx:0},restored:!0}}),c=(0,B.useRef)(l),y=(0,B.useRef)(r??null),h=(0,B.useRef)(o?.current.measuredHeights??new Map),R=(0,B.useRef)(null),T=(0,B.useRef)(null),{labels:C}=V(),u=xn(),g=En(),[b]=(0,B.useState)(On),A=(0,B.useRef)(null),_=(0,B.useRef)(null),D=(0,B.useRef)(e),O=(0,B.useRef)(n);(0,B.useLayoutEffect)(()=>{D.current=e,O.current=n},[e,n]);let F=(0,B.useRef)(null),[W,q]=(0,B.useState)(0),ne=(0,B.useRef)(null),z=e.length,K=(0,B.useCallback)(d=>d>=z?yn:e[d],[e,z]),oe=(0,B.useCallback)(d=>{let m=h.current.get(K(d).reportHubId);return m===void 0?ym:m},[K]),G=(0,B.useCallback)(d=>K(d).reportHubId,[K]),me=(0,B.useMemo)(()=>({kind:"measured",heightOf:oe}),[oe]),$=(0,B.useCallback)((d,m)=>{F.current={reportHubId:d,index:m},q(S=>S+1),O.current?.(d)},[]),j=(0,B.useCallback)((d,m)=>{if(z===0)return;let S=Math.max(0,d),L=Math.min(z-1,m);if(S>L)return;let M=new Set;for(let P=S;P<=L;P++){let re=K(P);if(re.businessDate&&M.add(re.businessDate),M.size>=ei)break}M.forEach(P=>{g(P)})},[K,z,g]),fe=(0,B.useCallback)(d=>{if(z===0)return;let{renderingStartIndex:m,renderingEndIndex:S,visibleStartIndex:L}=d,M=K(L);M.businessDate&&b.setLabel(ge(M.businessDate)),j(m,S),j(S+1,S+bn),j(m-bn,m-1)},[K,z,j,b]),be=(0,B.useCallback)(()=>ne.current!==null,[]),{cursor:U,containerProps:ce,handleRangeChange:Oe,contentProps:qe,keyboardHelp:ke,resolveSelectedIndex:Ce,rememberSelection:rt}=yo({items:e,selectedId:r??null,onSelect:n===void 0?null:$,containerRef:R,rootRef:R,handleRef:T,rowSizing:me,arrowAlign:"top",rowActivation:!0,isViewRevealPending:be,onRangeChange:fe}),ye=(0,B.useCallback)((d,m)=>{let S=T.current;if(S===null)return!1;let L=D.current,M=m!==null&&m.reportHubId===d?ve(L,d,m.index):Ce(L,d);return M===-1?!1:(c.current&&(c.current=!1,d===y.current)||m!==null&&m.reportHubId===d&&m.index===M||S.scrollToIndex(M,{align:"top"}),!0)},[Ce]);(0,B.useEffect)(()=>{let d=F.current;F.current=null,ne.current=null,r!=null&&(ye(r,d)||(ne.current=r))},[r,ye]),(0,B.useEffect)(()=>{let d=ne.current;d!==null&&ye(d,null)&&(ne.current=null)},[e,ye]),(0,B.useEffect)(()=>{let d=o?.current;d&&(d.anchorReportHubId=r??null)},[r,o]),(0,B.useEffect)(()=>{F.current=null},[W]);let Ct=go({hostTestId:xl,scrollContainerRef:R,handleRef:T,itemsRef:D}),yt=(0,B.useRef)(null),dt=(0,B.useCallback)(()=>{T.current&&(yt.current=T.current);let d=o?.current,m=yt.current;if(d&&m){let L=m.getScrollAnchor(),M=L?D.current[L.index]:void 0;L&&M&&(d.topItem={reportHubId:M.reportHubId,index:L.index,offsetPx:L.offsetPx})}let S=R.current;S&&(S.toggleAttribute(Zt,!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{S.toggleAttribute(Zt,!1),_.current=null},150))},[o]),nt=(0,B.useCallback)(d=>(0,Ke.jsx)(Mn,{...d,store:b}),[b]);(0,B.useEffect)(()=>{let d=R.current;if(!d)return;let m=()=>{b.setWheelScrollActive(!0),A.current&&clearTimeout(A.current),A.current=window.setTimeout(()=>{b.setWheelScrollActive(!1),A.current=null},gn)};return d.addEventListener("wheel",m,{passive:!0}),()=>{d.removeEventListener("wheel",m),A.current&&clearTimeout(A.current)}},[b]);let Pe=(0,B.useRef)(null),Xe=(0,B.useCallback)(d=>{for(let m of d){let S=$t(m.target),L=lr(m.target),M=m.borderBoxSize[0];if(S===null||L===null||M===void 0)continue;let P=M.blockSize;if(h.current.get(S)===P)continue;let re=ve(D.current,S,L-1);if(re===-1)continue;h.current.set(S,P);let ct=T.current;ct!==null&&ct.updateItemSize(re,P)}},[]),gt=(0,B.useCallback)(d=>{Pe.current===null&&(Pe.current=new ResizeObserver(Xe));let m=Pe.current;return m.observe(d),()=>m.unobserve(d)},[Xe]);(0,B.useEffect)(()=>()=>{Pe.current?.disconnect(),Pe.current=null},[]),(0,B.useEffect)(()=>{z!==0&&j(0,Math.min(z-1,bn))},[z,j]);let $e=(0,B.useRef)(null),E=(0,B.useCallback)(d=>{let m=ve(D.current,d,null);m!==-1&&($e.current!==null&&clearTimeout($e.current),$e.current=setTimeout(()=>{$e.current=null;let S=ve(D.current,d,m);S!==-1&&T.current?.scrollToIndex(S,{align:"bottom"})},bm))},[]);(0,B.useEffect)(()=>()=>{$e.current!==null&&clearTimeout($e.current)},[]);let w=(0,B.useCallback)(d=>{if(!O.current)return;let m=wt(d.target,R.current);if(m===null||Ii(d.target,m))return;let S=_r(m,D.current);S!==null&&(rt(S.reportHubId,S.index),$(S.reportHubId,S.index))},[$,rt]),p=(0,B.useCallback)((d,m)=>(0,Ke.jsx)(Ot.Provider,{value:m,children:(0,Ke.jsx)(hl,{item:d,observeRowHeight:gt,onCommentAdded:E,userId:t,cursor:U})},d.reportHubId),[gt,E,t,U]),f=(0,B.useMemo)(()=>({...hn,renderThumbOverlay:nt}),[nt]),x=(0,B.useMemo)(()=>(0,Ke.jsx)(Nt.Provider,{value:z,children:(0,Ke.jsx)(Il.VirtualScroll,{ref:T,itemCount:z,getItem:K,getItemKey:G,getItemHeight:oe,viewportSize:a,initialScrollAnchor:s,overscanCount:Rn,scrollBarOptions:f,behaviorOptions:i?mm:Cl,onRangeChange:Oe,onScroll:dt,testId:xl,className:pm,locale:u.locale,labels:u.labels,contentProps:qe,children:p})}),[z,K,G,oe,a,i,s,f,Oe,dt,u.locale,u.labels,qe,p]);return(0,Ke.jsx)(Ke.Fragment,{children:(0,Ke.jsxs)("div",{ref:Ct,className:fm,...ce,onClick:w,children:[ke,x,z===0&&(0,Ke.jsx)("p",{className:an,children:C.listEmpty})]})})};var ua=Te(require("lucide-react/dist/esm/icons/refresh-cw.js"));var Xt=require("react"),zr=(e,t=250)=>{let[r,n]=(0,Xt.useState)(e),o=(0,Xt.useRef)(e),a=(0,Xt.useRef)(!0);return(0,Xt.useEffect)(()=>{if(a.current){a.current=!1,o.current=e,n(e);return}let i=o.current;if(i===e)return;let s=null,l=null,c=y=>{l===null&&(l=y);let h=Math.min(1,Math.max(0,(y-l)/t)),R=1-(1-h)**3,T=Math.round(i+(e-i)*R);o.current=T,n(T),h<1&&(s=requestAnimationFrame(c))};return s=requestAnimationFrame(c),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};var bt=require("react/jsx-runtime"),vr=()=>{let e=mt(),{labels:t}=V(),r=zr(e.loadedCount),n=zr(e.totalCount??0);if(e.phase==="streaming"){let o=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return(0,bt.jsxs)("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:v(Me,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[(0,bt.jsx)("span",{"aria-hidden":"true",className:"size-2 rounded-full bg-blue-500 motion-safe:animate-pulse dark:bg-blue-400"}),o!==null?t.streamProgressRatio(r,n,o):t.streamProgressCount(r)]})}return e.phase==="retrying"?(0,bt.jsxs)("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:v(Me,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[(0,bt.jsx)(ua.default,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?(0,bt.jsxs)("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:v(Me,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,(0,bt.jsx)("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Wn(),className:v("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",ae),children:t.streamRetry})]}):e.isRevalidating?(0,bt.jsxs)("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:[(0,bt.jsx)(ua.default,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};var Jt=require("@aiquants/resize-panels"),Ql=require("@aiquants/virtualscroll"),Q=require("react");var Ll=require("react"),Al="(max-width: 639px)",Rm=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(Al);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},hm=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(Al).matches:!1,Sm=()=>!1,Dl=()=>(0,Ll.useSyncExternalStore)(Rm,hm,Sm);var et=require("@aiquants/swipe-overlay"),te=require("react");var ho=require("react");var _l=Object.freeze({id:null,indexHint:null}),So=(0,ho.createContext)(Object.freeze({selected:_l,settled:_l})),Gr=(e,t)=>{let{id:r,indexHint:n}=t;return(0,ho.useMemo)(()=>{if(r===null)return null;let o=ve(e,r,n);return o===-1?null:e[o]},[e,r,n])};var Hl=Te(require("lucide-react/dist/esm/icons/check.js")),Fl=Te(require("lucide-react/dist/esm/icons/pencil.js")),Bl=Te(require("lucide-react/dist/esm/icons/trash-2.js")),Z=require("react");var It=Te(require("@radix-ui/react-tabs")),je=Te(require("react"));var Tr=require("react/jsx-runtime"),wl=je.createContext(null),Nl=e=>{let t=je.useContext(wl);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},Ol=(e,t)=>`${e}-trigger-${t}`,Ml=(e,t)=>`${e}-panel-${t}`,jr=je.forwardRef(({value:e,children:t,...r},n)=>{let o=je.useId(),a=je.useMemo(()=>({baseId:o,value:e}),[o,e]);return(0,Tr.jsx)(It.Root,{ref:n,value:e,...r,children:(0,Tr.jsx)(wl,{value:a,children:t})})});jr.displayName=It.Root.displayName;var Yr=je.forwardRef(({className:e,...t},r)=>(0,Tr.jsx)(It.List,{ref:r,className:v("inline-flex",e),...t}));Yr.displayName=It.List.displayName;var qr=je.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=Nl("TabsTrigger");return(0,Tr.jsx)(It.Trigger,{ref:n,value:t,...r,id:Ol(o,t),"aria-controls":Ml(o,t),className:v(`${Pa} ${ae}`,e)})});qr.displayName=It.Trigger.displayName;var Er=je.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=Nl("TabsContent"),s=t===i;return(0,Tr.jsx)("div",{ref:o,role:"tabpanel",id:Ml(a,t),"aria-labelledby":Ol(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:v(`mt-2 data-[state=inactive]:hidden ${ae}`,e),children:s?r:null})});Er.displayName="TabsContent";var N=require("react/jsx-runtime"),Ul=v(Ut,"w-24 shrink-0"),kl={field:"flex items-baseline",label:Ul,value:"flex-1"},vm={field:"flex min-w-0 flex-1 items-baseline",label:Ul,value:"wrap-break-word min-w-0 flex-1"},Tm={field:"flex flex-col gap-1",label:Ut,value:""},Em={field:"flex items-center gap-1",label:Ut,value:""},Pl=v("scrollbar-thin flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm [scrollbar-gutter:stable]",Ta,va),xm=v("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",ae),Im=500,ma=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)})}},Cm=(e,t,r,n,o,a)=>{let i=(0,Z.useRef)(null),s=e?.reportHubId;(0,Z.useLayoutEffect)(()=>{i.current=null},[s]),(0,Z.useEffect)(()=>{n||(i.current=null)},[n]);let l=(0,Z.useCallback)(async(c,y)=>{y||(i.current=c.reportHubId);try{await a(c.reportHubId,!c.isRead,c.date)}catch{}},[a]);return(0,Z.useEffect)(()=>{if(!(r&&e&&!e.isRead&&!t)||i.current===e.reportHubId)return;let c=null,y=()=>{c!==null&&clearTimeout(c),c=o.isDwelling()?setTimeout(()=>l(e,!0),Im):null};y();let h=o.subscribe(y);return()=>{h(),c!==null&&clearTimeout(c)}},[e,t,r,l,o]),{handleToggleRead:l}},pa="article",Lm=["article","relations"],Am=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},Dm=v("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",At),Vl=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=V(),a=(0,Z.useId)(),i=(0,Z.useId)(),[s,l]=(0,Z.useState)(pa),{selected:c,settled:y}=(0,Z.useContext)(So),h=Gr(e,c),R=Gr(e,(0,Z.useDeferredValue)(y)),T=h===null?null:h.reportHubId,u=(R===null?null:R.reportHubId)===T,[g]=(0,Z.useState)(()=>ma(u));return(0,Z.useLayoutEffect)(()=>{g.set(u)},[g,u]),(0,N.jsx)("aside",{"data-testid":"daily-report-side-pane","data-report-id":h?.reportHubId,"data-displayed-report-id":R?.reportHubId,"aria-busy":u?void 0:!0,className:Dm,children:R===null?(0,N.jsx)("div",{className:v("flex h-full flex-1 items-center justify-center text-center",er),children:(0,N.jsx)("p",{children:o.selectPrompt})}):(0,N.jsx)(vo,{item:R,headingId:a,authorId:i,activeTab:s,onActiveTabChange:l,autoMarkRead:t,isActive:!0,dwell:g,userId:r,onReportDeleted:n},R.reportHubId)})},vo=(0,Z.memo)(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:l,onReportDeleted:c})=>{let[y,h]=(0,Z.useState)(!1),{draftLabelName:R,labels:T,sourceTypeConfigs:C,headingLevel:u}=V(),{report:g,error:b,isLoading:A}=_t(e.reportHubId,e.businessDate),_=(0,Z.useRef)(null),D=(0,Z.useRef)(null),O=(0,Z.useRef)(null),F=(0,Z.useRef)(!1),W=(0,Z.useRef)(!1),q=(0,Z.useRef)(!1);(0,Z.useEffect)(()=>{if(!g)return;let U=g.labels.some(ce=>ce.name===R);g.reportHubId!==O.current?(O.current=g.reportHubId,U?(h(!0),F.current=!0):(h(!1),F.current=!1)):!U&&y&&F.current&&(h(!1),F.current=!1)},[g,y,R]);let ne=!!(l&&g?.userId===l),z=(0,Z.useCallback)(()=>{W.current=!0,F.current=!1,h(!0)},[]),K=(0,Z.useCallback)(()=>{q.current=!0,h(!1)},[]),oe=(0,Z.useCallback)(U=>{U===null||!W.current||(W.current=!1,U.focus())},[]),G=(0,Z.useCallback)(U=>{U===null||!q.current||(q.current=!1,U.focus())},[]);(0,Z.useLayoutEffect)(()=>{y||!q.current||(q.current=!1,D.current?.focus())},[y]);let me=(0,Z.useCallback)(()=>{setTimeout(()=>{let U=_.current;U!==null&&U.scrollTo({top:U.scrollHeight,behavior:Di(U)})},100)},[]),$=ge(e.businessDate),j=g===null?null:he(g.employeeName),fe=A||!g,be=g===null?void 0:Dt(g.sourceType,C);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,N.jsx)("dl",{className:"m-0",children:(0,N.jsx)(Se,{label:T.businessDate,classNames:Tm,children:(0,N.jsx)(Ge,{ref:D,level:u,id:t,tabIndex:-1,className:xm,children:$})})}),(0,N.jsxs)("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[(0,N.jsx)("dl",{className:"m-0",children:(0,N.jsx)(Se,{label:T.author,classNames:Em,valueId:r,children:fe?(0,N.jsx)("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):j})}),be?(0,N.jsx)(Rr,{config:be,className:"ml-2"}):null]})]}),(0,N.jsxs)(jr,{value:n,onValueChange:U=>o(Am(U)),className:"flex min-h-0 flex-1 flex-col",children:[(0,N.jsx)(Yr,{"aria-label":T.reportTabList,className:v(Ma,"grid grid-cols-2 gap-1"),children:Lm.map(U=>(0,N.jsx)(qr,{value:U,children:U==="article"?T.tabArticle:T.tabRelations},U))}),(0,N.jsx)(Er,{ref:_,value:"article",className:Pl,children:y?g?(0,N.jsx)(ao,{report:g,onCancel:K,onPublishSuccess:K,titleInputRef:oe}):(0,N.jsx)("p",{className:er,children:T.loading}):(0,N.jsx)(_m,{report:g,sourceConfig:be,isLoading:A,error:b,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:me,userId:l,onEdit:ne?z:void 0,editButtonRef:G,onReportDeleted:c})}),(0,N.jsx)(Er,{value:"relations",className:Pl,children:(0,N.jsx)("p",{className:er,children:T.relationsEmpty})})]})]})});vo.displayName="DailyReportSidePaneContent";var xr=({className:e="w-32"})=>(0,N.jsx)("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),_m=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:l,userId:c,onEdit:y,editButtonRef:h,onReportDeleted:R})=>{let{toggleStar:T,toggleRead:C,deleteReport:u,user:g}=_e(),{labels:b,headingLevel:A}=V(),_=fr[A],{uiComments:D,handleAddComment:O,handleDeleteComment:F,pendingDeleteId:W,setPendingDeleteId:q,resolvedIdMap:ne}=pr(e,g,c),{handleToggleRead:z}=Cm(e,r,a,i,s,C),K=e!==null&&mn(e.sourceType,t),oe=async U=>{await O(U),l?.()},G=(0,Z.useMemo)(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
4
4
  `).replace(/<\/p>/gi,`
5
- `).replace(/<[^>]+>/g,""):null,[e]),oe=async()=>{if(!e)return;let me=!e.isStarred;try{await b(e.reportHubId,me,e.date??"")}catch{}},Re=async()=>{if(e&&confirm(c.confirmDelete))try{await f(e.reportHubId,e.date??"")}catch{alert(c.deleteFailed)}};if(r)return(0,i.jsx)("p",{className:"text-red-500",children:c.reportLoadFailed(n.reportHubId)});let re=!e,ue=e?.isStarred??!1,ee=e?.isRead??!1,ie=!!(u&&e?.userId===u),Pe=D.length>0;return(0,i.jsxs)("div",{className:"relative space-y-4 text-slate-700 dark:text-slate-200",onDoubleClick:p,children:[!re&&e&&(0,i.jsxs)("div",{className:"absolute top-0 right-2 z-10 flex items-center justify-end gap-3",children:[(0,i.jsx)("button",{type:"button",onClick:()=>B(!1),className:"rounded text-lg leading-none transition-transform focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 active:scale-95",title:ee?c.markUnread:c.markRead,"data-detail-read-button":e.reportHubId,children:ee?(0,i.jsx)("span",{className:"text-slate-300 hover:text-blue-500",children:"\u2713"}):(0,i.jsx)(rt,{className:"hover:text-blue-600"})}),(0,i.jsx)("button",{type:"button",onClick:oe,className:"rounded text-lg leading-none transition-transform focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 active:scale-95",title:ue?c.starRemove:c.starAdd,"data-detail-star-button":e.reportHubId,children:ue?(0,i.jsx)("span",{className:"text-yellow-400",children:"\u2605"}):(0,i.jsx)("span",{className:"text-slate-300 hover:text-yellow-400",children:"\u2606"})}),ie&&(0,i.jsx)("button",{type:"button",onClick:Re,"data-detail-delete-button":e.reportHubId,className:"rounded text-lg leading-none transition-transform focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 active:scale-95",title:c.deleteReport,children:(0,i.jsx)(Zn.default,{className:"h-4 w-4 text-slate-300 hover:text-red-500"})})]}),(0,i.jsxs)("div",{className:"flex items-baseline",children:[(0,i.jsx)("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:c.subject}),(0,i.jsx)("div",{className:"flex-1 pr-20",children:re?(0,i.jsx)(ot,{className:"w-3/4"}):(0,i.jsx)("span",{className:"fade-in animate-in text-sm duration-500",children:le(e?.subject)})})]}),(0,i.jsxs)("div",{className:"flex items-baseline",children:[(0,i.jsx)("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:c.customer}),(0,i.jsx)("div",{className:"flex-1",children:re?(0,i.jsx)(ot,{className:"w-1/2"}):(0,i.jsx)("span",{className:"fade-in animate-in text-sm duration-500",children:le(e?.customerName)})})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:c.content}),(0,i.jsx)("div",{className:"min-h-22 rounded-lg bg-slate-50 p-3 text-sm leading-relaxed dark:bg-slate-800/40",children:re?(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(ot,{className:"w-full"}),(0,i.jsx)(ot,{className:"w-11/12"}),(0,i.jsx)(ot,{className:"w-4/5"})]}):Ee?(0,i.jsx)("div",{className:"fade-in animate-in whitespace-pre-wrap duration-500",children:Ee}):(0,i.jsx)("p",{className:"fade-in animate-in text-slate-500 duration-500 dark:text-slate-400",children:c.contentEmpty})})]}),(0,i.jsxs)("div",{className:"flex items-baseline",children:[(0,i.jsx)("span",{className:"w-24 shrink-0 font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:c.visitTime}),(0,i.jsx)("div",{className:"flex-1",children:re?(0,i.jsx)(ot,{className:"w-1/3"}):(0,i.jsxs)("span",{className:"fade-in animate-in text-sm duration-500",children:[le(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",le(e?.visitTimeTo)]})})]}),e&&(0,i.jsx)(ct,{attachments:e.attachments}),e&&(0,i.jsxs)("div",{className:"fade-in animate-in space-y-2 border-slate-100 border-t pt-4 duration-500 dark:border-slate-800",children:[(0,i.jsx)("div",{className:"font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-300",children:c.comments}),Pe&&(0,i.jsx)(ut,{comments:D,reportHubId:e.reportHubId,businessDate:e.date??"",onDeleteComment:w,pendingDeleteId:S,onPendingDeleteIdChange:N,resolvedIdMap:j}),H&&(0,i.jsx)(mt,{reportHubId:e.reportHubId,businessDate:e.date??"",onAddComment:ce})]})]})},Ho=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:a})=>{let{labels:o}=U(),s=(0,C.useRef)(null),u=(0,C.useRef)(null),{isBlocked:p,requestBlock:b,reset:l}=(0,Te.useSwipeGuardState)(),{report:f,error:R,isLoading:c}=Ve(t?.reportHubId??-1,t?.businessDate??null),D=(0,Te.useTransitionDisplay)(e,t?{item:t,detail:{report:f,error:R,isLoading:c}}:null)?.item??null,{overlayRef:T,overlayStyle:w,attemptClose:S,isSwiping:N}=(0,Te.useSwipeToDismissOverlay)({isOpen:e,onClose:r,isCloseBlocked:(0,C.useCallback)(()=>p,[p]),skipWhenTextSelected:!0}),j=(0,Te.useTapClick)(()=>S());return(0,C.useEffect)(()=>{e?requestAnimationFrame(()=>u.current?.focus()):(s.current?.contains(document.activeElement)&&document.activeElement.blur(),l())},[e,l]),D?(0,i.jsxs)("div",{ref:s,"data-daily-report-mobile-overlay":"true",className:`fixed top-0 bottom-0 left-0 z-[100] flex touch-manipulation transition-[visibility] duration-200 ${e?"visible":"invisible"} ${e&&!N?"pointer-events-auto":"pointer-events-none"}`,style:{right:"var(--aqdr-overlay-right, 0px)",transition:"right 0.5s, visibility 0.2s"},"aria-hidden":!e,children:[(0,i.jsx)("button",{type:"button","aria-label":o.overlayBackdrop,className:`absolute inset-0 touch-manipulation bg-slate-900/50 transition-opacity duration-200 focus:outline-none ${e?"opacity-100":"opacity-0"}`,...j}),(0,i.jsx)("aside",{role:"dialog","aria-modal":"true","aria-label":o.overlayDialog,className:`relative ml-auto flex h-full w-full max-w-full transform touch-none bg-white shadow-xl transition-transform duration-200 ease-out dark:bg-slate-900/95 ${e?"pointer-events-auto":"pointer-events-none"}`,ref:T,onKeyDown:B=>{B.key==="Escape"&&(B.preventDefault(),S())},style:w,children:(0,i.jsxs)("div",{className:"flex h-full w-full flex-col gap-3 p-4",children:[(0,i.jsx)(Te.SwipeCloseGuardContext.Provider,{value:{isBlocked:p,requestBlock:b},children:(0,i.jsx)(ea,{selectedItem:D,autoMarkRead:n,isActive:e,userId:a})}),(0,i.jsx)("div",{className:"mt-2 flex justify-start",children:(0,i.jsx)("button",{type:"button",ref:u,"data-overlay-interactive":"true",className:"touch-manipulation rounded-full border border-slate-300 px-4 py-2 font-medium text-slate-600 text-sm shadow-sm transition-colors hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",onClick:()=>S(),children:o.close})})]})})]}):null},Fo=e=>e?e.replace(/<br\s*\/?\s*>/gi,`
6
- `).replace(/<\/p>/gi,`
7
- `).replace(/<[^>]+>/g,"").split(/\r?\n/).map(t=>t.replace(/\u3000/g," ").trim()).filter(t=>t.length>0).slice(0,gr):[],ta=(0,C.memo)(({item:e,index:t,setSize:r,isActive:n,onSelect:a})=>{let{labels:o,sourceTypeConfigs:s}=U(),{toggleStar:u,toggleRead:p,removeStaleItem:b}=ye(),{report:l,error:f,isLoading:R,isRefetching:c}=Ve(e.reportHubId,e.businessDate),A={role:"listitem","aria-posinset":t+1,"aria-setsize":r},D=(0,C.useRef)(!1);c&&(D.current=!0),(0,C.useEffect)(()=>{!(l||R||c||f)&&D.current&&e.reportHubId>0&&b(e.reportHubId)},[l,R,c,f,e.reportHubId,b]);let T=(0,Te.useTapClick)(()=>a(e.reportHubId));if(f)return(0,i.jsx)("div",{...A,className:"px-2 pb-3",style:{height:qe},children:(0,i.jsx)("div",{className:"flex h-full items-center justify-center rounded-2xl border border-red-200 bg-red-50 p-4 text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:(0,i.jsx)("p",{children:o.reportSummaryLoadFailed(e.reportHubId)})})});if(R)return(0,i.jsx)(Oo,{...A});if(!l)return(0,i.jsx)("div",{...A,className:"px-2 pb-3",style:{height:qe},children:(0,i.jsx)("div",{className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 bg-slate-50 p-4 text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:(0,i.jsx)("p",{children:o.reportNotFound})})});let w=Fo(l.content??null).map((E,L)=>({line:E,key:`${e.reportHubId}-line-${L}`})),S=le(l.employeeName??l.author),N=de(l.date),j=async E=>{E.stopPropagation();let L=!l.isStarred;try{await u(l.reportHubId,L,l.date??"")}catch{}},B=async E=>{E.stopPropagation();let L=!l.isRead;try{await p(l.reportHubId,L,l.date??"")}catch{}},$=E=>{E.stopPropagation()};return(0,i.jsx)("div",{...A,className:"px-2 pb-3",style:{height:qe},children:(0,i.jsxs)("div",{"data-daily-report-button":e.reportHubId,className:`flex h-full w-full in-[[data-scrolling]]:transform-none cursor-pointer select-none flex-col rounded-2xl border in-[[data-scrolling]]:border-slate-200 bg-white p-4 text-left in-[[data-scrolling]]:shadow-sm shadow-sm in-[[data-scrolling]]:transition-none transition-[transform,border-color,box-shadow] duration-200 hover:-translate-y-0.5 hover:border-blue-300 hover:shadow-lg dark:bg-slate-900/70 ${n?"border-blue-300 shadow-md ring-2 ring-blue-200 dark:border-blue-500/70 dark:ring-blue-500/40":"border-slate-200 dark:border-slate-700"}`,style:{touchAction:"manipulation"},role:"button",tabIndex:0,"aria-current":n?"true":void 0,"aria-pressed":n,"aria-label":`${N} ${S}`,...T,children:[(0,i.jsxs)("div",{className:"mb-3 flex items-center gap-3 text-slate-600 text-sm",children:[(0,i.jsx)("span",{className:"inline-flex shrink-0 items-center rounded-full bg-slate-100 px-3 py-1 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200",children:(0,i.jsx)("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:N})}),(0,i.jsx)("span",{className:"inline-flex min-w-0 max-w-full items-center rounded-full bg-slate-100 px-3 py-1 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200",children:(0,i.jsx)("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:S})}),(0,i.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[(0,i.jsx)(dt,{count:l.attachments.length,label:o.attachments}),(()=>{let E=e.sourceType??l?.sourceType,L=Ue(E,s);return L?(0,i.jsx)("span",{className:J("inline-flex shrink-0 items-center rounded px-2 py-0.5 font-semibold text-[10px] tracking-wide",L.badgeClassName),children:L.label}):null})(),(0,i.jsx)("button",{type:"button",title:l.isStarred?o.starRemove:o.starAdd,"aria-label":l.isStarred?o.starRemove:o.starAdd,"aria-pressed":l.isStarred,"data-list-star-button":e.reportHubId,onClick:j,onPointerDown:$,onPointerUp:$,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 dark:hover:bg-slate-700",children:l.isStarred?(0,i.jsx)($r.default,{className:"h-3.5 w-3.5 fill-yellow-400 text-yellow-400"}):(0,i.jsx)($r.default,{className:"h-3.5 w-3.5 text-slate-300 dark:text-slate-500"})}),(0,i.jsx)("button",{type:"button",title:l.isRead?o.markUnread:o.markRead,"aria-label":l.isRead?o.markUnread:o.markRead,"aria-pressed":l.isRead,"data-list-read-button":e.reportHubId,onClick:B,onPointerDown:$,onPointerUp:$,className:"flex h-6 w-6 items-center justify-center rounded-full transition-colors hover:bg-slate-200 dark:hover:bg-slate-700",children:l.isRead?(0,i.jsx)(Qn.default,{className:"h-3.5 w-3.5 text-blue-500"}):(0,i.jsx)(rt,{className:"text-xs"})})]})]}),(0,i.jsx)("div",{className:"space-y-1 text-slate-700 text-sm leading-relaxed dark:text-slate-200",children:w.length>0?w.map(({line:E,key:L})=>(0,i.jsx)("p",{className:"wrap-break-word line-clamp-1",children:E},L)):(0,i.jsx)("p",{children:o.contentEmptyPreview})})]})})});ta.displayName="ListReportItem";var Bt=require("react");var na=ae(require("lucide-react/dist/esm/icons/plus.js")),aa=ae(require("lucide-react/dist/esm/icons/refresh-cw.js")),oa=ae(require("lucide-react/dist/esm/icons/rotate-cw.js")),De=require("react"),sa=require("react-router");var Ft=ae(require("@radix-ui/react-switch")),ra=ae(require("react"));var jr=require("react/jsx-runtime"),or=ra.forwardRef(({className:e,...t},r)=>(0,jr.jsx)(Ft.Root,{className:J("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:r,children:(0,jr.jsx)(Ft.Thumb,{className:J("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));or.displayName=Ft.Root.displayName;var Y=require("react/jsx-runtime"),Bo="px-2 py-1 font-medium text-slate-600 text-xs transition-colors rounded-sm data-[state=active]:bg-white data-[state=active]:text-slate-900 data-[state=active]:shadow-xs dark:text-slate-300 dark:data-[state=active]:bg-slate-800 dark:data-[state=active]:text-slate-100",zr=({userId:e})=>{let[t,r]=(0,De.useState)(!1),{labels:n,renderHeader:a,showDevControls:o}=U(),{isSseEnabled:s,toggleSse:u,createReport:p,items:b,refetchData:l,clearCacheAndRefetch:f}=ye(),[R]=(0,sa.useSearchParams)(),c=nt(b.length),A=(0,De.useRef)(0),D=(0,De.useRef)({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[T,w]=(0,De.useState)(()=>b.length===0?null:b[0].reportHubId),S=(0,De.useRef)(!1);(0,De.useEffect)(()=>{!S.current&&b.length>0&&(S.current=!0,w(L=>L??b[0].reportHubId))},[b]);let N=async()=>{await l()},j=async()=>{await f()},B=async()=>{let H=R.get("businessDate")||pr(),F=await p(H);w(F)};(0,De.useEffect)(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let $=L=>{r(L),localStorage.setItem("daily-report-auto-read",String(L))},E=(0,De.useMemo)(()=>[{value:"list",label:n.tabList,content:(0,Y.jsx)(Vr,{dailyReportItems:b,autoMarkRead:t,selectedReportHubId:T,onSelectItem:w,userId:e,scrollOffsetRef:A})},{value:"tree",label:n.tabTree,content:(0,Y.jsx)("div",{className:"flex flex-1 items-center justify-center rounded-lg border border-slate-300 border-dashed bg-white p-6 text-slate-500 transition-colors dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:(0,Y.jsx)(Br,{dailyReportItems:b,userId:e,selectedItemId:T,onSelectItem:w,scrollRestoreRef:D})}],[b,t,T,e,n]);return(0,Y.jsxs)(Y.Fragment,{children:[a({title:n.title,annotation:(0,Y.jsxs)("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[(0,Y.jsx)(Ot,{}),(0,Y.jsx)("span",{className:"tabular-nums",children:n.totalCount(c)}),(0,Y.jsx)("span",{children:n.debounce($e)})]})}),(0,Y.jsx)("div",{className:"h-full bg-slate-50 dark:bg-slate-950",children:(0,Y.jsx)("div",{className:"flex h-full w-full max-w-6xl flex-1 flex-col p-1",children:(0,Y.jsxs)(nr,{defaultValue:"list",className:"flex h-full flex-1 flex-col",children:[(0,Y.jsxs)("div",{className:"flex items-center justify-between gap-1.5 rounded-md border border-slate-200/80 bg-slate-100/60 p-0.5 transition-colors dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",children:[(0,Y.jsx)(Mt,{className:"scrollbar-none flex h-auto touch-pan-x flex-nowrap gap-0.5 overflow-x-auto overflow-y-hidden bg-transparent p-0",children:E.map(({value:L,label:H})=>(0,Y.jsx)(Ht,{value:L,className:Bo,children:H},L))}),(0,Y.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5 px-1",children:[(0,Y.jsxs)(Me,{size:"sm",onClick:B,className:"flex h-6 items-center gap-1 rounded bg-amber-600 px-2 font-medium text-[11px] text-white shadow-xs hover:bg-amber-700 dark:bg-amber-600 dark:hover:bg-amber-700",title:n.createReportTitle,children:[(0,Y.jsx)(na.default,{className:"h-3 w-3"}),(0,Y.jsx)("span",{children:n.createReport})]}),o&&(0,Y.jsxs)("div",{className:"hidden h-5.5 items-center gap-1 rounded border border-amber-300/70 bg-amber-50/60 px-1 text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:n.devControls,"data-testid":"dev-controls-toolbox",children:[(0,Y.jsx)("span",{className:"select-none font-bold font-mono text-[9px] text-amber-800 uppercase dark:text-amber-200",children:"dev"}),(0,Y.jsx)("div",{className:"-mx-0.5 flex items-center",title:n.devSseToggle,children:(0,Y.jsx)(or,{id:"sse-mode",checked:s,onCheckedChange:u,className:"origin-center scale-50"})}),(0,Y.jsx)(Me,{variant:"ghost",size:"icon",onClick:N,className:"h-4 w-4 p-0 text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100",title:n.devReload,"data-testid":"dev-reload-btn",children:(0,Y.jsx)(oa.default,{className:"h-2.5 w-2.5"})}),(0,Y.jsx)(Me,{variant:"ghost",size:"icon",onClick:j,className:"h-4 w-4 p-0 text-amber-800 hover:bg-amber-200/60 hover:text-amber-950 dark:text-amber-300 dark:hover:bg-amber-800/60 dark:hover:text-amber-100",title:n.devClearCache,"data-testid":"dev-clear-cache-btn",children:(0,Y.jsx)(aa.default,{className:"h-2.5 w-2.5"})})]}),(0,Y.jsxs)("div",{className:"flex items-center gap-0.5 pl-0.5",title:n.autoReadTitle,children:[(0,Y.jsx)(or,{id:"auto-read-mode",checked:t,onCheckedChange:$,className:"origin-center scale-50"}),(0,Y.jsx)(Pt,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-[10px] text-slate-500 dark:text-slate-400",children:n.autoRead})]})]})]}),E.map(({value:L,content:H})=>(0,Y.jsx)(at,{value:L,className:"mt-0 flex h-full min-h-0 flex-1 flex-col",children:H},L))]})})})]})};var q=require("react/jsx-runtime"),ia=()=>{let{labels:e,renderHeader:t}=U();return(0,q.jsxs)(q.Fragment,{children:[t({title:e.title,annotation:(0,q.jsx)("span",{className:"font-bold text-red-500",children:e.loadErrorBadge})}),(0,q.jsx)("div",{className:"h-full bg-slate-50 p-2",children:(0,q.jsx)("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-6",children:(0,q.jsxs)("div",{className:"flex h-full flex-1 flex-col items-center justify-center gap-4 rounded-lg border border-red-200 bg-white p-4 text-slate-500 shadow-sm dark:border-red-900 dark:bg-slate-900/70 dark:text-slate-400",children:[(0,q.jsx)("p",{className:"font-medium text-red-600",children:e.loadError}),(0,q.jsx)("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Et(),className:"rounded bg-slate-100 px-4 py-2 text-slate-700 text-sm hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700",children:e.reload})]})})})]})},la=()=>{let{labels:e,renderHeader:t}=U();return(0,q.jsxs)(q.Fragment,{children:[t({title:e.title,annotation:(0,q.jsxs)("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[(0,q.jsx)(Ot,{}),(0,q.jsx)("span",{children:e.totalCountLoading}),(0,q.jsx)("span",{children:e.debounce($e)})]})}),(0,q.jsx)("div",{className:"h-full bg-slate-50 p-2",children:(0,q.jsx)("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-6",children:(0,q.jsx)("div",{className:"flex h-full flex-1 items-center justify-center rounded-lg border border-slate-200 bg-white text-slate-500 shadow-sm dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:e.loadingIds})})})]})},Uo=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=U(),a=_e(),o=(0,Bt.useRef)(n);o.current=n,(0,Bt.useEffect)(()=>{It({apiBasePath:r,userKey:t??null})},[r,t]),(0,Bt.useEffect)(()=>{a.phase==="auth-required"&&o.current()},[a.phase]);let s=a.items.length>0||a.phase==="complete";return(0,q.jsx)(Or,{children:(0,q.jsx)(Hr,{user:e,initialItems:a.items,userId:t,children:s?(0,q.jsx)(zr,{userId:t}):a.phase==="failed"?(0,q.jsx)(ia,{}):(0,q.jsx)(la,{})},t??"anonymous")})},$o=({config:e,...t})=>(0,q.jsx)(dr,{config:e,children:(0,q.jsx)(Uo,{...t})});var Vo=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:a,formData:o,formEncType:s,formMethod:u,json:p,nextUrl:b,text:l})=>{if(!n)return!1;if(!(r.pathname===b.pathname&&r.search===b.search&&r.hash===b.hash))return n;if(o){let c=o.get("intent");if(c==="toggleRead"||c==="toggleStar"||c==="addComment"||c==="deleteComment"||c==="create"||c==="update"||c==="publish"||c==="delete")return!1}return e!==void 0||t!==void 0||a!==void 0||o!==void 0||s!==void 0||u!==void 0||p!==void 0||l!==void 0?n:!1},jo=e=>{let t=async r=>{Lr();let n=await r.serverLoader(),a=n.userId;return Nr({apiBasePath:e?.apiBasePath,userKey:typeof a=="string"?a:null}),n};return t.hydrate=!0,t};0&&(module.exports={BusinessDayThumbOverlay,CONTENT_DRAG_POINTER_INPUTS,DAILY_REPORT_FETCH_DEBOUNCE_MS,DAILY_REPORT_LABEL_CATALOGS,DAILY_REPORT_LABEL_KEYS,DEFAULT_ITEM_HEIGHT,DailyReportActionProvider,DailyReportAttachmentIndicator,DailyReportAttachmentList,DailyReportCache,DailyReportCommentForm,DailyReportCommentList,DailyReportConfigProvider,DailyReportDetailList,DailyReportEditForm,DailyReportErrorProvider,DailyReportIdsStreamClient,DailyReportIdsStreamStatus,DailyReportList,DailyReportLoadError,DailyReportLoading,DailyReportPage,DailyReportPostedComment,DailyReportResolvedContent,EMPTY_DETAIL,EMPTY_ITEM,FAST_SCROLL_INERTIA_OPTIONS,FAST_SCROLL_WHEEL_MULTIPLIER,ITEM_CONTAINER_HEIGHT,ITEM_VERTICAL_PADDING,MAX_PREVIEW_LINES,PREFETCH_LOOKAHEAD,PREFETCH_MAX_DATES,SCROLL_BAR_WIDTH,SSE_INITIAL_CONNECT_DEFER_MS,TAP_SCROLL_CIRCLE_OPTIONS,UnreadIndicator,VIRTUAL_SCROLL_OVERSCAN_COUNT,WHEEL_RESET_TIMEOUT_MS,acquireMutationLock,applyBroadcastReportUpdate,applyDailyReportServerUpdates,bootstrapDailyReportIdsStreamSession,clearDailyReportCache,createDailyReportClientLoader,dailyReportShouldRevalidate,defaultDailyReportClientConfig,deleteDailyReportCache,ensureDailyReportIdsStreamSession,getCachedReport,getDailyReportIdsStreamSessionUserKey,primeDailyReportIdsStreamSession,refreshDailyReportIdsStream,registerRecentDeletion,releaseMutationLock,removeDailyReportIdsStreamItem,resetDailyReportIdsStreamSessionForTesting,resolveDailyReportLabels,resolveSourceTypeConfig,resyncDailyReportIdsStream,retryDailyReportIdsStream,subscribeCacheReady,updateDailyReportCache,upsertDailyReportIdsStreamItem,useAnimatedNumber,useDailyReportActionContext,useDailyReportComments,useDailyReportConfig,useDailyReportDetail,useDailyReportErrorSurface,useDailyReportIdsStream,useDailyReportPrefetch,useDailyReportSseConnection,useDynamicViewportHeight,writeCache});
5
+ `).replace(/<[^>]+>/g,""):null,[e]),me=async U=>{try{await T(U.reportHubId,!U.isStarred,U.date)}catch{}},$=async U=>{if(confirm(b.confirmDelete)){try{await u(U.reportHubId,U.date)}catch{alert(b.deleteFailed);return}R(U.reportHubId)}};if(n)return(0,N.jsx)("p",{className:"text-red-500",children:b.reportLoadFailed(o.reportHubId)});let j=!e,fe=!!(c&&e?.userId===c),be=D.length>0;return(0,N.jsxs)("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:y,children:[(0,N.jsxs)("div",{className:"flex items-start gap-2",children:[(0,N.jsx)("dl",{className:"m-0 flex min-w-0 flex-1",children:(0,N.jsx)(Se,{label:b.subject,classNames:vm,children:j?(0,N.jsx)(xr,{className:"w-3/4"}):(0,N.jsx)("span",{className:"text-sm",children:he(e?.subject)})})}),!j&&e&&(0,N.jsxs)("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[(0,N.jsx)("button",{type:"button",onClick:()=>me(e),className:He,title:e.isStarred?b.starRemove:b.starAdd,"aria-label":e.isStarred?b.starRemove:b.starAdd,"data-detail-star-button":e.reportHubId,children:(0,N.jsx)(gr,{filled:e.isStarred})}),(0,N.jsx)("button",{type:"button",onClick:()=>z(e,!1),className:He,title:e.isRead?b.markUnread:b.markRead,"aria-label":e.isRead?b.markUnread:b.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?(0,N.jsx)(Hl.default,{className:xe.read}):(0,N.jsx)(hr,{})}),y&&(0,N.jsx)("button",{ref:h,type:"button",onClick:y,"data-detail-edit-button":e.reportHubId,className:He,title:b.edit,"aria-label":b.edit,children:(0,N.jsx)(Fl.default,{className:xe.edit})}),fe&&(0,N.jsx)("button",{type:"button",onClick:()=>$(e),"data-detail-delete-button":e.reportHubId,className:He,title:b.deleteReport,"aria-label":b.deleteReport,children:(0,N.jsx)(Bl.default,{className:xe.delete})})]})]}),(0,N.jsx)("dl",{className:"m-0",children:(0,N.jsx)(Se,{label:b.customer,classNames:kl,children:j?(0,N.jsx)(xr,{className:"w-1/2"}):(0,N.jsx)("span",{className:"text-sm",children:he(e?.customerName)})})}),(0,N.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,N.jsx)(Ge,{level:_,className:Rt,children:b.content}),(0,N.jsx)("div",{className:v("min-h-22",rn),children:j?(0,N.jsxs)("div",{className:"space-y-2",children:[(0,N.jsx)(xr,{className:"w-full"}),(0,N.jsx)(xr,{className:"w-11/12"}),(0,N.jsx)(xr,{className:"w-4/5"})]}):G?(0,N.jsx)("div",{className:"whitespace-pre-wrap",children:G}):(0,N.jsx)("p",{className:"text-slate-500 dark:text-slate-400",children:b.contentEmpty})})]}),(0,N.jsx)("dl",{className:"m-0",children:(0,N.jsx)(Se,{label:b.visitTime,classNames:kl,children:j?(0,N.jsx)(xr,{className:"w-1/3"}):(0,N.jsxs)("span",{className:"text-sm",children:[he(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",he(e?.visitTimeTo)]})})}),e&&(0,N.jsx)(qn,{attachments:e.attachments}),e&&(0,N.jsxs)("div",{...eo,className:"flex flex-col gap-2 border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:[(0,N.jsx)(Ge,{level:_,tabIndex:-1,...to,className:ro,children:b.comments}),be&&(0,N.jsx)(no,{comments:D,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:F,pendingDeleteId:W,onPendingDeleteIdChange:q,resolvedIdMap:ne}),K&&(0,N.jsx)(oo,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:oe})]})]})};var lt=require("react/jsx-runtime"),wm="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]",Nm={right:"var(--aqdr-overlay-right, 0px)"},Om="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",Mm="relative ml-auto flex h-full w-full max-w-full touch-none bg-white shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out dark:bg-slate-900",km=v("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",ae),Pm=50,Wl=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=(0,te.useState)(!1),[l,c]=(0,te.useState)(!1),y=(0,te.useRef)(null),h=(0,te.useRef)(null),R=(0,te.useRef)(null),T=(0,te.useRef)(e),C=(0,te.useRef)(!0),u=Gr(r,t),g=(0,te.useCallback)(()=>{let D=o.current;if(D===null)return;let O=D.ownerDocument.body;R.current={body:O,overflow:O.style.overflow},O.style.overflow="hidden"},[o]),b=(0,te.useCallback)(()=>{let D=R.current;D!==null&&(D.body.style.overflow=D.overflow,R.current=null)},[]);(0,te.useEffect)(()=>{if(C.current){C.current=!1,T.current=e;return}let D=!T.current;T.current=e,D&&e&&a!==null?s(!0):!e&&i&&(h.current=a,s(!1),b())},[e,a,i,b]);let A=e&&i&&u!==null;(0,te.useEffect)(()=>{if(A)c(!0);else{let D=setTimeout(()=>c(!1),300);return()=>clearTimeout(D)}},[A]),(0,te.useEffect)(()=>{if(e&&i&&a!==null&&!y.current){let D=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:D},"",window.location.href),y.current=D}else!(e&&i)&&y.current&&(y.current=null);return e&&i?g():b(),b},[e,i,a,g,b]),(0,te.useEffect)(()=>{let D=()=>{y.current&&(h.current=a,y.current=null,s(!1),n(null))};return window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[a,n]);let _=(0,te.useCallback)(()=>{e&&(h.current=a,s(!1),n(null),y.current&&(y.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:l,shouldShowOverlay:A,handleOverlayClose:_,lastClosedItemIdRef:h,selectedItem:u}},Kl=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=V(),s=(0,te.useRef)(null),l=(0,te.useId)(),c=(0,te.useId)(),[y,h]=(0,te.useState)(pa),R=(0,et.useOverlayEscapeStack)(),T=(0,te.useId)(),C=(0,te.useRef)(!1),u=(0,te.useRef)(e),g=(0,te.useRef)(null),[b]=(0,te.useState)(()=>ma(e)),{isBlocked:A,requestBlock:_,reset:D}=(0,et.useSwipeGuardState)(),O=(0,et.useTransitionDisplay)(e,t),{overlayRef:F,overlayStyle:W,attemptClose:q,isSwiping:ne}=(0,et.useSwipeToDismissOverlay)({isOpen:e,onClose:r,isCloseBlocked:(0,te.useCallback)(()=>A,[A]),skipWhenTextSelected:!0}),z=(0,te.useRef)(q);(0,te.useLayoutEffect)(()=>{z.current=q,u.current=e,b.set(e)},[q,e,b]),(0,te.useEffect)(()=>{if(e)return R({id:T,onEscape:$=>Ur($)&&z.current()})},[e,R,T]),(0,te.useLayoutEffect)(()=>{let $=s.current;if($===null)return;if(e){if(C.current)return;$.showModal(),C.current=!0,$.ownerDocument.getElementById(l)?.focus();return}if(!C.current)return;C.current=!1;let j=Be($);j!==null&&$.contains(j)&&Ho(j)&&j.blur(),$.close()},[e,l]),(0,te.useEffect)(()=>{e||D()},[e,D]);let K=(0,et.useTapClick)(()=>q()),oe=$=>{let j=Xn($);if(Ur(j)){q()&&$.preventDefault();return}if(j.key==="Escape"){g.current=$.timeStamp;return}let fe=As(j,$.currentTarget);fe!==null&&($.preventDefault(),fe.kind==="wrap"&&fe.element.focus())},G=$=>{$.preventDefault();let j=g.current;g.current=null,!(j!==null&&$.timeStamp-j<=Pm)&&z.current()},me=$=>{let j=$.currentTarget;j.open||!u.current||(C.current=!1,!z.current()&&(j.showModal(),C.current=!0))};return O?(0,lt.jsxs)("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${l} ${c}`,tabIndex:-1,className:v(wm,e&&!ne?"pointer-events-auto":"pointer-events-none"),style:Nm,inert:!e,onKeyDown:oe,onCancel:G,onClose:me,children:[(0,lt.jsx)("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:v(Om,e?"opacity-100":"opacity-0"),...K}),(0,lt.jsx)("div",{ref:F,"data-daily-report-overlay-panel":"",className:v(Mm,e?"pointer-events-auto":"pointer-events-none"),style:W,children:(0,lt.jsxs)("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[(0,lt.jsx)(et.SwipeCloseGuardContext.Provider,{value:{isBlocked:A,requestBlock:_},children:(0,lt.jsx)("div",{"data-testid":"daily-report-side-pane","data-report-id":O.reportHubId,"data-displayed-report-id":O.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:(0,lt.jsx)(vo,{item:O,headingId:l,authorId:c,activeTab:y,onActiveTabChange:h,autoMarkRead:n,isActive:e,dwell:b,userId:o,onReportDeleted:a},O.reportHubId)})}),(0,lt.jsx)("div",{className:"flex justify-start",children:(0,lt.jsx)("button",{type:"button","data-overlay-interactive":"true",className:km,onClick:()=>q(),children:i.close})})]})})]}):null};var Yl=Te(require("lucide-react/dist/esm/icons/check.js")),pe=require("react");var tt=require("react");var Hm=6.75,Fm=4,Bm=1e-6,Um=e=>Math.ceil(2*Qr+2*Ia+Fm+Hm*e-Bm),To=(0,tt.createContext)(null),Vm="data-daily-report-root-font-size-probe",Wm={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},Km=e=>{let t=Kt(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])},$l=()=>{let e=(0,tt.useRef)(null),[t,r]=(0,tt.useState)(null);(0,tt.useLayoutEffect)(()=>{let o=e.current;if(o===null)throw new Error("[daily-report] useListRowSlotHeight needs the List to render remProbe");let a=null,i=()=>{let l=Um(Km(o));l!==a&&(a=l,r(l))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=(0,tt.useMemo)(()=>(0,tt.createElement)("div",{ref:e,"aria-hidden":!0,[Vm]:"",style:Wm}),[]);return{rowSlotHeight:t,remProbe:n}};var Y=require("react/jsx-runtime"),$m=v(Qt,en,tn,ha),zm=v("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",At,nn,xa),Gm="min-w-24",jm="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",Ym={touchAction:"manipulation"},qm=v("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",Gm),Xm=v("relative z-10",He),Jm=v("flex h-full",At),Zm="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",Ir="h-4 rounded bg-slate-200 dark:bg-slate-700",Qm=()=>(0,Y.jsx)("div",{"data-skeleton":!0,...ze,className:Jm,children:(0,Y.jsxs)("div",{className:Zm,children:[(0,Y.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,Y.jsx)("div",{className:v(Ir,"w-24")}),(0,Y.jsx)("div",{className:v(Ir,"w-24")}),(0,Y.jsx)("div",{className:v(Ir,"w-24")})]}),(0,Y.jsxs)("div",{className:"space-y-2",children:[(0,Y.jsx)("div",{className:v(Ir,"w-full")}),(0,Y.jsx)("div",{className:v(Ir,"w-11/12")}),(0,Y.jsx)("div",{className:v(Ir,"w-5/6")})]})]})}),ep=e=>{e.target===e.currentTarget&&e.preventDefault()},tp="h-full w-full",ql=(0,pe.createContext)(!1),zl=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=(0,pe.useContext)(Ot),a=(0,pe.useContext)(Nt),i=(0,pe.useContext)(To);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=(0,pe.useMemo)(()=>({height:i}),[i]),{isCurrent:l,isTabStop:c}=po(t,e),y=fo(t,e,o);return(0,Y.jsx)(Pr.Provider,{value:c,children:(0,Y.jsx)(ql.Provider,{value:l,children:(0,Y.jsx)("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||!y?!0:void 0,"aria-current":r!==null&&l?"true":void 0,tabIndex:r===null?-1:void 0,className:$m,style:s,onMouseDown:ep,children:y?n:(0,Y.jsx)("div",{...ze,className:tp})})})})},rp=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,np=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(rp))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===ri))return t;return r+=e.slice(n),o(),t},op=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=(0,pe.useContext)(ql);return(0,Y.jsx)("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:qm,children:o})},Gl=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=yr();return(0,Y.jsx)("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:Xm,children:n})},Xl=(0,pe.memo)(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=V(),{toggleStar:i,toggleRead:s}=_e(),l=(0,pe.useId)(),c=(0,pe.useId)(),y=(0,pe.useId)(),h=(0,pe.useId)(),R=(0,pe.useMemo)(()=>np(t.content??null),[t.content]),T=he(t.employeeName),C=ge(e.businessDate),u=F=>{F.currentTarget.focus({preventScroll:!0});let W=xi(F.currentTarget);W!==null&&r(e.reportHubId,W)},g=async()=>{let F=!t.isStarred;try{await i(t.reportHubId,F,t.date)}catch{}},b=async()=>{let F=!t.isRead;try{await s(t.reportHubId,F,t.date)}catch{}},A=t.isStarred?o.starRemove:o.starAdd,_=t.isRead?o.markUnread:o.markRead,D=Dt(t.sourceType,a),O=[c,...t.attachments.length>0?[y]:[],...D===void 0?[]:[h],l].join(" ");return(0,Y.jsxs)("div",{"data-daily-report-card":!0,...ze,style:Ym,className:zm,children:[(0,Y.jsx)("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),(0,Y.jsxs)(op,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:O,onClick:u,children:[(0,Y.jsx)("span",{className:v(Me,"shrink-0 bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:(0,Y.jsx)("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:C})})," ",(0,Y.jsx)("span",{className:v(Me,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:(0,Y.jsx)("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:T})})]}),(0,Y.jsxs)("div",{className:v(La,"ml-auto"),children:[(0,Y.jsx)(tr,{id:y,count:t.attachments.length,label:o.attachments}),D?(0,Y.jsx)(Rr,{id:h,config:D}):null,(0,Y.jsx)(Gl,{label:A,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:g,children:(0,Y.jsx)(gr,{filled:t.isStarred})}),(0,Y.jsx)(Gl,{label:_,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:b,children:t.isRead?(0,Y.jsx)(Yl.default,{className:xe.read}):(0,Y.jsx)(hr,{})})]}),(0,Y.jsx)("div",{id:l,className:jm,children:R.length>0?R.map((F,W)=>(0,Y.jsx)("p",{className:"wrap-break-word line-clamp-1",children:F},W)):(0,Y.jsx)("p",{children:o.contentEmptyPreview})})]})});Xl.displayName="ListReportCard";var jl=(e,t)=>(0,pe.useCallback)(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),fa=(0,pe.memo)(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=V(),{removeStaleItem:o}=_e(),{report:a,error:i,isLoading:s,isRefetching:l}=_t(e.reportHubId,e.businessDate),c=(0,pe.useRef)(!1);(0,pe.useEffect)(()=>{if(l){c.current=!0;return}!(a||s||i)&&c.current&&e.reportHubId>0&&o(e.reportHubId)},[a,s,l,i,e.reportHubId,o]);let y=jl(r,e.reportHubId),h=jl(r,e.reportHubId),R=(T,C)=>(0,Y.jsx)(zl,{reportHubId:e.reportHubId,cursor:r,cardless:{label:ge(e.businessDate),isBusy:C,focusTargetRef:y},children:T});return i?R((0,Y.jsx)("div",{...ze,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:(0,Y.jsx)("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?R((0,Y.jsx)(Qm,{}),!0):a?(0,Y.jsx)(zl,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:(0,Y.jsx)(Xl,{item:e,report:a,onSelect:t,focusTargetRef:h})}):R((0,Y.jsx)("div",{...ze,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:(0,Y.jsx)("p",{children:n.reportNotFound})}),!1)});fa.displayName="ListReportItem";var Re=require("react/jsx-runtime"),ed={pointerDragInputs:Sn,inertiaOptions:dr(!1),wheelSpeedMultiplier:fn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},ap={...ed,inertiaOptions:dr(!0)},ip=Object.freeze({value:360,unit:"pixels"}),Jl=Object.freeze({value:160,unit:"pixels"}),sp=Object.freeze({value:520,unit:"pixels"}),lp=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),dp=v("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",ae),cp=v("relative w-full",sn),up=v(ut,"relative isolate overflow-hidden"),Zl="daily-report-list",mp=()=>!1,Eo=e=>{let t=(0,Q.useRef)(null),[r,n]=(0,Q.useState)(null),o=Cn(t),{rowSlotHeight:a,remProbe:i}=$l(),s=wn(r),l=(0,Q.useCallback)(c=>(t.current=c,n(c),()=>{t.current=null,n(null)}),[]);return(0,Re.jsxs)("div",{ref:l,className:on,"data-testid":"daily-report-root",children:[i,o===null||a===null?null:(0,Re.jsx)(pp,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:a,reducedMotion:s})]})},pp=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:o,scrollOffsetRef:a,rootRef:i,viewportHeight:s,rowSlotHeight:l,reducedMotion:c})=>{let[y]=(0,Q.useState)(()=>a?.current??0),h=(0,Q.useRef)(null),R=(0,Q.useRef)(null),{labels:T}=V(),C=xn(),[u]=(0,Q.useState)(On),g=Dl(),[b,A]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{if(typeof window>"u"||typeof ResizeObserver>"u")return;let d=i.current;if(!d)return;let m=new ResizeObserver(S=>{for(let L of S)if(L.target===d){let M=L.contentRect.width;A(M>0&&M<ti)}});return m.observe(d),()=>m.disconnect()},[i]);let _=g||b,D=(0,Q.useRef)(null),O=e.length,F=(0,Q.useRef)(null),W=(0,Q.useCallback)(d=>n(d),[n]),q=(0,Q.useCallback)(d=>d<O?e[d]:yn,[e,O]),ne=(0,Q.useCallback)(d=>{let m=q(d.visibleStartIndex);m.reportHubId>0&&u.setLabel(ge(m.businessDate))},[q,u]),z=(0,Q.useMemo)(()=>({kind:"uniform",rowHeight:l}),[l]),{cursor:K,containerProps:oe,handleRangeChange:G,contentProps:me,keyboardHelp:$,selection:j,settledSelection:fe,resolveSelectedIndex:be,rememberSelection:U,focusAfterRemoval:ce}=yo({items:e,selectedId:r,onSelect:W,containerRef:h,rootRef:i,handleRef:R,rowSizing:z,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:mp,onRangeChange:ne}),{isMobileDetailOpen:Oe,setIsMobileDetailOpen:qe,isOverlayMounted:ke,shouldShowOverlay:Ce,handleOverlayClose:rt,lastClosedItemIdRef:ye,selectedItem:Ct}=Wl({isMobileLayout:_,selection:j,dailyReportItems:e,onSelectItem:n,rootRef:i}),yt=(0,Q.useMemo)(()=>({selected:j,settled:fe}),[j,fe]),dt=(0,Q.useRef)(e);(0,Q.useLayoutEffect)(()=>{dt.current=e},[e]);let nt=go({hostTestId:Zl,scrollContainerRef:h,handleRef:R,itemsRef:dt});(0,Q.useEffect)(()=>{let d=h.current,m=()=>{u.setWheelScrollActive(!0),D.current&&clearTimeout(D.current),D.current=window.setTimeout(()=>{u.setWheelScrollActive(!1),D.current=null},gn)};return d?.addEventListener("wheel",m,{passive:!0}),()=>{d?.removeEventListener("wheel",m),D.current&&clearTimeout(D.current)}},[u]),(0,Q.useEffect)(()=>{!O&&r!==null&&n(null)},[O,r,n]),(0,Q.useEffect)(()=>{if(Oe||ye.current===null)return;let d=ye.current;ye.current=null;let m=be(e,d);if(m===-1)return;let S=R.current;if(S!==null){let L=Kr(S,m,e.length,z),M=L===null?"none":sl(L);M!=="none"&&S.scrollToIndex(m,{align:M})}K.requestFocus(d)},[Oe,e,ye,K,be,z]),(0,Q.useEffect)(()=>{O>0&&u.setLabel(ge(e[0].businessDate))},[e,O,u]);let Pe=(0,Q.useCallback)((d,m)=>{d<=0||(U(d,m),n(d),_&&qe(!0))},[_,n,qe,U]),Xe=(0,Q.useCallback)(()=>l,[l]),gt=(0,Q.useRef)(l);(0,Q.useLayoutEffect)(()=>{let d=gt.current;gt.current=l;let m=R.current;if(d===l||m===null)return;let S=m.getScrollPosition();S>0&&m.scrollBy(S*l/d-S)},[l]);let $e=(0,Q.useCallback)(d=>q(d).reportHubId,[q]),E=(0,Q.useCallback)((d,m)=>(0,Re.jsx)(Ot.Provider,{value:m,children:(0,Re.jsx)(fa,{item:d,onSelect:Pe,cursor:K})},d.reportHubId),[Pe,K]),w=(0,Q.useCallback)(d=>{a&&(a.current=d);let m=h.current;m&&(m.toggleAttribute(Zt,!0),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>{m.toggleAttribute(Zt,!1),F.current=null},150))},[a]),p=(0,Q.useCallback)(d=>(0,Re.jsx)(Mn,{...d,store:u}),[u]),f=(0,Q.useMemo)(()=>(0,Re.jsxs)("div",{ref:nt,className:up,...oe,children:[$,(0,Re.jsx)(Nt.Provider,{value:O,children:(0,Re.jsx)(To.Provider,{value:l,children:(0,Re.jsx)(Ql.VirtualScroll,{ref:R,itemCount:O,getItem:q,getItemKey:$e,getItemHeight:Xe,viewportSize:s,initialScrollOffset:y,overscanCount:Rn,scrollBarOptions:{...hn,renderThumbOverlay:p},behaviorOptions:c?ap:ed,onRangeChange:G,onScroll:w,testId:Zl,className:cp,locale:C.locale,labels:C.labels,contentProps:me,children:E})})}),O===0&&(0,Re.jsx)("p",{className:an,children:T.listEmpty})]}),[nt,oe,O,q,$e,Xe,s,l,c,y,p,G,w,$,me,C.locale,C.labels,E,T.listEmpty]),x=(0,Q.useMemo)(()=>(0,Re.jsxs)(Jt.PanelGroup,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[(0,Re.jsx)(Jt.Panel,{id:"daily-report-list-panel",defaultSize:ip,minSize:Jl,maxSize:sp,contentOverflow:"hidden",className:"flex min-h-0",children:f}),(0,Re.jsx)(Jt.PanelResizeHandle,{id:"daily-report-list-handle",thickness:10,indicator:lp,className:dp,"aria-label":T.resizeHandle}),(0,Re.jsx)(Jt.Panel,{id:"daily-report-detail-panel",minSize:Jl,contentOverflow:"hidden",className:fp,children:(0,Re.jsx)(Vl,{dailyReportItems:e,autoMarkRead:t,userId:o,onReportDeleted:ce})})]}),[f,T.resizeHandle,e,t,o,ce]);return(0,Re.jsxs)(Re.Fragment,{children:[_?(0,Re.jsx)("div",{className:ut,children:f}):(0,Re.jsx)(So.Provider,{value:yt,children:x}),ke&&(0,Re.jsx)(Kl,{isOpen:Ce,selectedItem:Ct,onClose:rt,autoMarkRead:_&&t,userId:o,onReportDeleted:ce})]})},fp=v("flex min-h-0 flex-1",Qt);var Jr=require("react");var od=Te(require("lucide-react/dist/esm/icons/plus.js")),ad=Te(require("lucide-react/dist/esm/icons/refresh-cw.js")),id=Te(require("lucide-react/dist/esm/icons/rotate-cw.js")),Ye=require("react"),sd=require("react-router");var Xr=Te(require("@radix-ui/react-switch")),td=Te(require("react"));var ba=require("react/jsx-runtime"),xo=td.forwardRef(({className:e,...t},r)=>(0,ba.jsx)(Xr.Root,{className:v(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${_a} ${Na} ${ae}`,e),...t,ref:r,children:(0,ba.jsx)(Xr.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${wa} ${Oa}`})}));xo.displayName=Xr.Root.displayName;var rd=require("react"),nd=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)})}},ya=e=>(0,rd.useSyncExternalStore)(e.subscribe,e.get,e.get);var ee=require("react/jsx-runtime"),bp="list",yp=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},gp=v(ka,Fa,"ml-[8px] flex flex-wrap items-center gap-2"),Rp=({count:e})=>{let{labels:t}=V(),r=zr(e);return(0,ee.jsx)("span",{className:"tabular-nums",children:t.totalCount(r)})},hp=({selectionStore:e,dailyReportItems:t,autoMarkRead:r,userId:n,scrollOffsetRef:o})=>{let a=ya(e);return(0,ee.jsx)(Eo,{dailyReportItems:t,autoMarkRead:r,selectedReportHubId:a,onSelectItem:e.set,userId:n,scrollOffsetRef:o})},Sp=({selectionStore:e,dailyReportItems:t,userId:r,scrollRestoreRef:n})=>{let o=ya(e);return(0,ee.jsx)(Ro,{dailyReportItems:t,userId:r,selectedItemId:o,onSelectItem:e.set,scrollRestoreRef:n})},vp=({tabItems:e,actions:t})=>{let[r,n]=(0,Ye.useState)(bp),{labels:o}=V();return(0,ee.jsxs)(jr,{value:r,onValueChange:a=>n(yp(a)),className:v("@container/views",ut),children:[(0,ee.jsxs)("div",{className:v(gp,Ba[r]),children:[(0,ee.jsx)(Yr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>(0,ee.jsx)(qr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>(0,ee.jsx)(Er,{value:a,className:v("mt-0",ut),children:i},a))]})},Io=({userId:e})=>{let[t,r]=(0,Ye.useState)(!1),{labels:n,renderHeader:o,showDevControls:a}=V(),{isSseEnabled:i,toggleSse:s,createReport:l,items:c,refetchData:y,clearCacheAndRefetch:h}=_e(),[R]=(0,sd.useSearchParams)(),T=(0,Ye.useRef)(0),C=(0,Ye.useRef)({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[u]=(0,Ye.useState)(()=>nd(c.length===0?null:c[0].reportHubId)),g=(0,Ye.useRef)(!1);(0,Ye.useEffect)(()=>{!g.current&&c.length>0&&(g.current=!0,u.get()===null&&u.set(c[0].reportHubId))},[c,u]);let b=async()=>{await y()},A=async()=>{await h()},_=async()=>{let W=R.get("businessDate")||Do(),q=await l(W);u.set(q)};(0,Ye.useEffect)(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let D=F=>{r(F),localStorage.setItem("daily-report-auto-read",String(F))},O=(0,Ye.useMemo)(()=>[{value:"list",label:n.tabList,content:(0,ee.jsx)(hp,{selectionStore:u,dailyReportItems:c,autoMarkRead:t,userId:e,scrollOffsetRef:T})},{value:"tree",label:n.tabTree,content:(0,ee.jsx)("div",{className:v("flex flex-1 items-center justify-center",er),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:(0,ee.jsx)(Sp,{selectionStore:u,dailyReportItems:c,userId:e,scrollRestoreRef:C})}],[c,t,e,n,u]);return(0,ee.jsxs)(ee.Fragment,{children:[o({title:n.title,annotation:(0,ee.jsxs)("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[(0,ee.jsx)(vr,{}),(0,ee.jsx)(Rp,{count:c.length}),(0,ee.jsx)("span",{children:n.debounce(ir)})]})}),(0,ee.jsx)("div",{className:v(ut,Ha),children:(0,ee.jsx)("div",{className:v(ut,"mx-auto w-full max-w-6xl px-[4px] pt-[4px]"),children:(0,ee.jsx)(vp,{tabItems:O,actions:(0,ee.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[(0,ee.jsxs)(Et,{size:"sm",onClick:_,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:[(0,ee.jsx)(od.default,{className:"h-3 w-3"}),(0,ee.jsx)("span",{children:n.createReport})]}),a&&(0,ee.jsxs)("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:[(0,ee.jsx)("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),(0,ee.jsx)("div",{className:"flex items-center",title:n.devSseToggle,children:(0,ee.jsx)(xo,{id:"sse-mode",checked:i,onCheckedChange:s})}),(0,ee.jsx)(Et,{variant:"ghost",size:"icon",onClick:b,className:"h-4 w-4 p-0 text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100",title:n.devReload,"data-testid":"dev-reload-btn",children:(0,ee.jsx)(id.default,{className:"size-3"})}),(0,ee.jsx)(Et,{variant:"ghost",size:"icon",onClick:A,className:"h-4 w-4 p-0 text-amber-800 hover:bg-amber-200/60 hover:text-amber-950 dark:text-amber-300 dark:hover:bg-amber-800/60 dark:hover:text-amber-100",title:n.devClearCache,"data-testid":"dev-clear-cache-btn",children:(0,ee.jsx)(ad.default,{className:"size-3"})})]}),(0,ee.jsxs)("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[(0,ee.jsx)(xo,{id:"auto-read-mode",checked:t,onCheckedChange:D}),(0,ee.jsx)(Vr,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};var de=require("react/jsx-runtime"),Tp=()=>{let{labels:e,renderHeader:t}=V();return(0,de.jsxs)(de.Fragment,{children:[t({title:e.title,annotation:(0,de.jsx)("span",{className:"font-bold text-red-500",children:e.loadErrorBadge})}),(0,de.jsx)("div",{className:"h-full bg-slate-50 p-2",children:(0,de.jsx)("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-4",children:(0,de.jsxs)("div",{className:"flex h-full flex-1 flex-col items-center justify-center gap-4 rounded-lg border border-red-200 border-solid bg-white p-[15px] text-slate-500 shadow-sm dark:border-red-900 dark:bg-slate-900/70 dark:text-slate-400",children:[(0,de.jsx)("p",{className:"font-medium text-red-600",children:e.loadError}),(0,de.jsx)("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Wn(),className:v("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",ae),children:e.reload})]})})})]})},Ep=()=>{let{labels:e,renderHeader:t}=V();return(0,de.jsxs)(de.Fragment,{children:[t({title:e.title,annotation:(0,de.jsxs)("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[(0,de.jsx)(vr,{}),(0,de.jsx)("span",{children:e.totalCountLoading}),(0,de.jsx)("span",{children:e.debounce(ir)})]})}),(0,de.jsx)("div",{className:"h-full bg-slate-50 p-2",children:(0,de.jsx)("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-4",children:(0,de.jsx)("div",{className:"flex h-full flex-1 items-center justify-center rounded-lg border border-slate-200 border-solid bg-white text-slate-500 shadow-sm dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:e.loadingIds})})})]})},xp=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=V(),o=mt(),a=(0,Jr.useRef)(n);a.current=n,(0,Jr.useEffect)(()=>{ur({apiBasePath:r,userKey:t??null})},[r,t]),(0,Jr.useEffect)(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.items.length>0||o.phase==="complete";return(0,de.jsx)($n,{children:(0,de.jsx)(zn,{user:e,initialItems:o.items,userId:t,children:i?(0,de.jsx)(Io,{userId:t}):o.phase==="failed"?(0,de.jsx)(Tp,{}):(0,de.jsx)(Ep,{})},t??"anonymous")})},ld=({config:e,...t})=>(0,de.jsx)(un,{config:e,children:(0,de.jsx)(xp,{...t})});var dd=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:l,nextUrl:c,text:y})=>{if(!n)return!1;if(!(r.pathname===c.pathname&&r.search===c.search&&r.hash===c.hash))return n;if(a){let T=a.get("intent");if(T==="toggleRead"||T==="toggleStar"||T==="addComment"||T==="deleteComment"||T==="create"||T==="update"||T==="publish"||T==="delete")return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||l!==void 0||y!==void 0?n:!1},cd=e=>{let t=async r=>{Un();let n=await r.serverLoader(),o=n.userId;return Bn({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};0&&(module.exports={DAILY_REPORT_LABEL_CATALOGS,DAILY_REPORT_LABEL_KEYS,DEFAULT_ITEM_HEIGHT,DailyReportActionProvider,DailyReportAttachmentIndicator,DailyReportConfigProvider,DailyReportDetailList,DailyReportErrorProvider,DailyReportIdsStreamClient,DailyReportIdsStreamStatus,DailyReportList,DailyReportPage,DailyReportResolvedContent,TAP_SCROLL_CIRCLE_OPTIONS,bootstrapDailyReportIdsStreamSession,createDailyReportClientLoader,dailyReportShouldRevalidate,defaultDailyReportClientConfig,ensureDailyReportIdsStreamSession,primeDailyReportIdsStreamSession,resolveDailyReportLabels,resolveSourceTypeConfig,resyncDailyReportIdsStream,useDailyReportActionContext,useDailyReportComments,useDailyReportConfig,useDailyReportDetail,useDailyReportIdsStream,useDailyReportPrefetch,useDailyReportSseConnection});