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