1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["QuoteWysiwygModal-DLr7IwAN.js","vendor-vue-Cjp9t_ih.js","useBexioSync-BJTUzKRY.js","main-BdJZwHB3.js","vendor-axios-D5GkNzM3.js","main-B6oFSCqS.css","useFinanceAccess-BqaGTqKc.js","bexioApi-pFST8FO8.js","bexioConnectionTypes-D7IQpdYT.js","quotes-DC3R5fBD.js","QuotesService-WNkPlfrr.js","QuoteTemplate.vue_vue_type_style_index_0_lang-BWMuOt5Y.js","DocumentLogoBlock.vue_vue_type_script_setup_true_lang-CMRIpLS-.js","settings-D8obhUkK.js","useCompanyData-DPp_Kn-y.js","useLogoUpload-DRv0Fdgs.js","uploadError-C09RsPqh.js","vFileDrop-BwjqPmjZ.js","useNativeImageSrc-B_uABeDW.js","attachmentSrc-Br1ZSfjT.js","fetchImageBlob-B14iOCXA.js","useSettingsAccess-BVA724j5.js","DocumentLogoBlock-C4uKK763.css","positionBlockCopy-CnIuE1UG.js","DocumentCustomerSwitcher.vue_vue_type_style_index_0_scoped_7c6b47ba_lang-173_j_In.js","DocumentCustomerSwitcher-BTsxHeYL.css","formatUtils-BlqCcTBE.js","intlLocale-ChF_m2hD.js","DocumentLetterRecipient.vue_vue_type_script_setup_true_lang-mEuVFDjJ.js","vAutoresize-DhoXAJKW.js","useCustomerSearch-B0kaLi1e.js","useDocumentHeaderBasics-wTC-Jjln.js","documentTextPlaceholders-BwxLbid8.js","CustomerFormModal-BhWwKrqJ.js","TabBar-CIMAydFZ.js","AddressAutocompleteInput-CLy7tJVk.js","vPersonNameCase-DzrW1UMy.js","contactFormData-DtzdrdSk.js","CustomCategorySelect-Coify1Nd.js","CustomCategorySelect-BKxayq4X.css","CustomerSelect-BoxExYG2.js","customerSelectMatching-DE0z0Z_f.js","useAnchoredMenu-DgvrLeoe.js","CustomerSelect-eHnrtSj2.css","DefaultAdjustmentRowsEditor-BWieW2qH.js","documentAdjustmentLimits-CKLOWGmq.js","DefaultAdjustmentRowsEditor-DmYtWiPP.css","customerDefaultAdjustments-DmfbdTi1.js","CustomerFormModal-DTWMQqBJ.css","StatusTag-D4nscNcg.js","CustomerObjectSelect-CLArtLiC.js","useDropdownMenuPosition-BXscmsHj.js","projects-CAyEqhBQ.js","useCustomerInvoiceAddress-Ch6gY5HP.js","CustomerContactFormModal-BAZ1xVkt.js","CustomerContactFormModal-DKn0F_YU.css","PdfConfiguredFooter-BOuON1O6.js","mediaHub-B5rdiYgc.js","useGenericAttachments-BZSluHaQ.js","mediaEntityRoute-O4furGA0.js","mediaTag-tGeK4l1W.js","useDocumentEditorAccess-DLWmVB-h.js","PdfConfiguredFooter-CMFtY1KC.css","DocumentTotals-DqUcZDMJ.js","paymentFormatters-DNr1cAmw.js","calendarUtils-B9UPfXOC.js","approvalUtils-DW5OQl1b.js","sortableTouchDefaults-LBJiQ73X.js","documentTotals-D6Zsnqp_.css","headerFieldChoice-bQfKvJZs.js","DocumentLetterFooter.vue_vue_type_script_setup_true_lang-BLo6ktXD.js","RichTextField-C-2ltE7e.js","index-Cs5HvFfC.js","index-7Y5jPTDP.js","ColorPicker-DyLlPB40.js","RichTextField-DkjfLTEZ.css","SafeHtml.vue_vue_type_script_setup_true_lang-BIUatqxn.js","sanitize-Bd2y3d96.js","purify.es-BgtpMKW3.js","DocumentLetterFooter-UY11MCKs.css","steiger-C5_qKAe9.js","useSteigerCalculationDefaults-CwKIEloG.js","npkPrint.scss_vue_type_style_index_0_src_true_lang-RNqB5NTQ.js","protocolMeasurementRange-COGZsW-o.js","npkPrint-DXgJPaob.css","catalogUnits-B1_LeBKr.js","useQuoteEditAccess-HtEdmHoA.js","ImageViewerOverlay-B-b2bCYh.js","ImageViewerOverlay-CPb4ogyK.css","PdfViewerOverlay-CKhtbYi6.js","PdfBlobViewer-kjGYWGOH.js","pdf.worker.min-BnLFQ_Eh.js","PdfViewerOverlay-DcIZT7dq.css","articleNumber-DWtLwyTJ.js","QuoteTemplate-COjisG4B.css","DocumentDraftRecoveryBar.vue_vue_type_style_index_0_scoped_a1442f98_lang-D8803DFC.js","EmployeeAvatar-Dlv_JIqc.js","useMentionAutocomplete-QsgGeEwi.js","useCommentMentionMembers-BC9mJ_Es.js","usePdfExport-BXpwY8cn.js","usePinchZoom-D-GzjrOL.js","useDocumentPresentationProfiles-DMNFSJDU.js","DocumentDraftRecoveryBar-CqKSSBZk.css","useDocumentSenderSignature-C7s46SBC.js","SenderSetupModal.vue_vue_type_script_setup_true_lang-CAEkeRE7.js","useIbanInput-DFBfLCbZ.js","useLogoFileSelection-CEJuTqR9.js","BexioBadge-Cp2sRcn6.js","FooterSettingsModal.vue_vue_type_script_setup_true_lang-80wtmzBR.js","FooterBuilder.vue_vue_type_style_index_0_scoped_561aa9b1_lang-DPUycDM4.js","regieHeaderLayout-CfwhTJWm.js","headerFieldLabel-D5WD0-0S.js","requiredHeaderField-deXV1yx3.js","FooterBuilder-Dnl2WjhN.css","CatalogItemSelectorModal-vWtWo-Kt.js","document.types-DgE4lZgd.js","catalog-JjM5GRm3.js","regieRoles-DyXrvBGV.js","useCatalogBrowsePicker-U_mO7vOv.js","supplierConnect-CClKI5on.js","useSupplierCatalogBrowse-BcV7Qi5V.js","CatalogSourcePicker-BG-pRh47.js","ListViewBase-VSguVB7U.js","SkeletonLoader-GrHPPMe3.js","EmptyState-Cb0RSbzp.js","Pagination-RIWv73gs.js","CatalogSupplierEmptyCta-azfbAZ-N.js","ListItemBase-Djmcruxk.js","ListActionButton-BbZoDVrV.js","CatalogSupplierEmptyCta-B-sqBbuO.css","CatalogSourcePicker-D2OF8kEa.css","SupplierCatalogImage-B-h
1o2e2w.js","SupplierCatalogImage-BCmLKSFW.css","UnifiedPdfPreviewModal-auuDlSxv.css","CatalogItemSelectorModal-QGyjoEwI.css","MaterialFormModal.vue_vue_type_script_setup_true_lang-Bz0B-d7E.js","useAssignedSupplierCatalogs-CALFVm8H.js","serviceMaterials-DWMaU9E0.js","useSteigerLicense-CVZKD-Eo.js","MaterialFormModal-D_rSYQss.css","useCopyFeedback-B2Tv6rOX.js","DoughnutChart-aObu7u_Y.js","chartSetup-C7NVvKbC.js","cssColor-CYAcZETF.js","chartClick-wHchdFx6.js","DoughnutChart-CizJfBGM.css","useSteigerCalcAudit-rGMoHMI8.js","useSteigerCalcAudit-HsK6CtUE.css","timeAllowance-D_ZHwrRV.js","QuotePositionBulkPanel-CK1HT2vT.js","titleLabelNumber-D-75Nd1R.js","QuotePositionBulkPanel-BvOMfqn4.css","useCollapsibleState-BeEA1djX.js","CrbNpkCopyrightLink-DSre5EWr.js","CrbNpkCopyrightLink-dXIksp3g.css","ListSectionHeader-s3HYdVnv.js","DocumentEmailSendModal.vue_vue_type_script_setup_true_lang-BD7tDKnm.js","supportTicketFormat-DM0Vbpib.js","MarkdownEditor-Q3bg6Rbn.js","markdown-editor-D7wDin31.js","markdown-editor-CsNWSNib.css","MarkdownEditor-BNn-HJXa.css","SignatureManagerModal-Do8F1Y3n.js","SignatureManagerModal-BA6zgMUF.css","DocumentEmailSendModal-CjXvzk7g.css","StatusLabel-CsdFM2zJ.js","addendumGating-B-FhPioT.js","useQuoteWysiwygEditor-Bt7aZNGe.js","mailto-D_UEHoAN.js","useQuoteOutlineOps-C33-Ylmn.js","catalogItemPriceCalc-DhI7smt-.js","companyDefaultAdjustments-DCdqehbU.js","QuoteStatus-CMRZC09g.js","useDocumentDraftRecovery-DQ4N-EE4.js","PageHelperBanner-dPv1w-08.js","ActionOverflowMenu-DDhR-0ZN.js","projects-v154UJHz.js","AssignToModal-oxQzC3Tn.js","ProjectFormModal-DhTyWZJ-.js","CustomerObjectFormModal-CiNMG028.js","travelDistance-gIYlr1Jq.js","travelFlatRate-gHZ3eURg.js","useTravelDistanceRecompute-D6djzkxK.js","CustomerObjectFormModal-Bb2jRZuJ.css","useObjectAddressApply-eN-vPUGa.js","useCompanyRegieDefault-DZQWOcfW.js","projectStatusOptions-BJvOof9p.js","projectStatus-B6lx_zKP.js","ProjectFormModal-Dlv5VhGg.css","ServiceFormModal-Ayk8l8vh.js","useServiceFormAccess-Cz2sx0uI.js","CollapseSection-tGuSBPTi.js","useServicePlanAction-IH
1xuKDIk.js","servicePlanRoutes-BgcFjijI.js","plannerPanelUtils-ozoVPTBZ.js","installations-Bi0vuAFX.js","TeamRosterList-2JkVHUup.js","TeamRoleBadge-c7g1Tiqw.js","useRegieRoles-CCl5z0fz.js","useEntityTeam-DqOHfife.js","entityTeamEvents-DnBXY0w6.js","useProjectTeamMembership-DGVTaTy3.js","entityTeamRead-Cu_59XwR.js","StatusIndicator-IgMobI5O.js","resourceplanning-B-N6O-JA.js","calendarSaveErrors-B7UTNU-p.js","ScheduleGrid.scss_vue_type_style_index_0_src_true_lang-CleErvx_.js","TimeChangeRequestMarker-1GEGjadu.js","useTimeChangeRequestMarker-CN6i0xyu.js","TimeChangeRequestMarker-wU0rFZKl.css","ScheduleGrid-BPZnHGlp.css","useEntityColors-CfC6a68x.js","useServiceFormPlanning-DyZisfid.js","ServiceFormModal-eZ0j8rJt.css","PositionSelectionToggle.vue_vue_type_script_setup_true_lang-DJJYpCDe.js","PositionSelectionBar-CM2BDnpX.css","QuoteWysiwygModal-Dy_BQ26s.css"])))=>i.map(i=>d[i]); 2import{r as w,a as nt,c as D,w as H,o as ke,D as Ke,U as Ve,a9 as lt,d as L,Y as _e,k as i,m as c,u as o,p as V,y as t,v as f,x as I,F as N,n as K,l as j,t as oe,G as B,N as ae,M as Y,j as x,E as de,O as me,J as Pe,a2 as it,H as ot,B as dt,a6 as rt,i as Oe,W as ct,s as ut,L as mt}from"./vendor-vue-Cjp9t_ih.js";import{b as O,C as ne,z as pe,aR as kt,_ as U,ap as vt,al as bt,aa as ft,aC as pt,k as yt,ay as _t}from"./main-BdJZwHB3.js";import{T as ht}from"./TabBar-CIMAydFZ.js";import{A as ze}from"./ActionOverflowMenu-DDhR-0ZN.js";import{u as gt}from"./useCommentMentionMembers-BC9mJ_Es.js";import{u as Ct}from"./useCopyFeedback-B2Tv6rOX.js";import{C as xe,a as $t,c as It,e as We,t as Tt,n as Ge,g as Et,h as wt,p as Dt,i as At,b as St,r as Pt,k as Rt,l as Je,s as Ot,T as xt,m as Mt,o as Nt,q as Ft,d as Lt,f as Ut,u as jt,v as Bt,w as Me,j as qt,x as Kt,y as Vt,z as zt}from"./taskDetailFields-wnS8Hln2.js";import{t as ie}from"./taskBoards-DQIQwDWa.js";import{A as Ye,B as Wt,C as Gt,D as Jt,e as Yt,x as Ht,t as $e,E as Qt,c as Xt,F as Zt,G as es,H as ts,d as ss,v as He,r as as,R as ns,g as Qe,h as Xe,j as ls,k as is,I as os,l as ds,n as rs,o as cs,J as Ze,q as us,s as ms,y as ks,u as vs,w as bs,m as fs,K as ps,T as ys,f as _s,M as hs,L as gs,a as Cs,b as $s,N as Is,z as Ts}from"./useCanCreateTimeEntries-gKBQObFn.js";import{s as re,i as Es,a as ws}from"./taskDetailErrors-D_8fkwke.js";import{t as fe}from"./useTaskMoveCopy--27vycIV.js";import{u as Ds}from"./useServiceFormPlanning-DyZisfid.js";import{u as As,t as Ss}from"./useTaskJobTransfer-w2Wn8dA3.js";import{a as Ne}from"./useTimeEntryRefresh-BvYBUJWa.js";import{t as Ps,a as Rs,f as Te,B as Os}from"./taskTime-tSO56UO3.js";import{u as xs,t as Ms}from"./BoardCard-DeqqDOLf.js";import{T as Ns}from"./TaskMoveCopyDialog-BnpL51DY.js";import{T as Fs}from"./TaskCallComposer-CZNFcJNY.js";import{E as Ee}from"./EmployeeAvatar-Dlv_JIqc.js";import{u as Ls}from"./useMentionAutocomplete-QsgGeEwi.js";import{b as Us,c as js}from"./PostfachComposeModal-9RzSnyEm.js";import{u as Bs}from"./useGenericAttachments-BZSluHaQ.js";import{u as qs}from"./useNativeImageResolver-4KeIulex.js";import{I as Ks}from"./ImageViewerOverlay-B-b2bCYh.js";import{s as Vs}from"./settings-D8obhUkK.js";import{S as ce}from"./StatusTag-D4nscNcg.js";import{u as zs}from"./useSortable-CS-JaxlJ.js";import{l as Ws}from"./TaskTimelineControls-Dz5XGea2.js";import{C as Gs}from"./CustomerObjectSelect-CLArtLiC.js";import{_ as Js}from"./CustomerSelectWithCreate.vue_vue_type_script_setup_true_lang-B0bguUeb.js";import{A as Ys}from"./AssignToModal-oxQzC3Tn.js";import{_ as Hs}from"./MaterialFormModal.vue_vue_type_script_setup_true_lang-Bz0B-d7E.js";import{u as Qs,E as Xs}from"./EventComposer-htgFtwhV.js";import{p as Fe}from"./resourceplanning-B-N6O-JA.js";import{u as Zs}from"./useCurrentEmployee-CXoEachp.js";import{s as ea,b as ta,a as sa}from"./slotCreateRequest-DMCDAUF8.js";import{g as aa}from"./useCrewSlotCreate-DXeSvb0G.js";import{s as na,a as la}from"./calendarSaveErrors-B7UTNU-p.js";import{f as ia}from"./formatUtils-BlqCcTBE.js";import"./vendor-axios-D5GkNzM3.js";import"./taskBoardTypes-CuYrxRha.js";import"./projectMilestones-PSXzC1Xp.js";import"./usePostfachSend-BUkoFOVL.js";import"./usePostfachStatus-BfLtT8zJ.js";import"./taskTarget-CP8Pw7WA.js";import"./dateLocale-C17SodAy.js";import"./calendarUtils-B9UPfXOC.js";import"./approvalUtils-DW5OQl1b.js";import"./useQuoteEditAccess-HtEdmHoA.js";import"./taskCards-BOFn6UqI.js";import"./boardCard-DkjCZmEn.js";import"./taskMoveCopy-D4JK4d9j.js";import"./servicePlanRoutes-BgcFjijI.js";
2import"./useServicePlanAction-IHxuKDIk.js";import"./BoardCardFooter-Cq_zQUx4.js";import"./boardDates-B456Es3c.js";import"./useTaskCallForm-Dyvh4PsX.js";import"./dictation-DIrJgauA.js";import"./useNativeImageSrc-B_uABeDW.js";import"./attachmentSrc-Br1ZSfjT.js";import"./fetchImageBlob-B14iOCXA.js";import"./ListViewBase-VSguVB7U.js";import"./SkeletonLoader-GrHPPMe3.js";import"./EmptyState-Cb0RSbzp.js";import"./ListItemBase-Djmcruxk.js";import"./StatusIndicator-IgMobI5O.js";import"./useBaseComposable-FEfJQRya.js";import"./WorkAssignmentField-Copc3bdn.js";import"./projects-v154UJHz.js";import"./assignableServiceOrders-CMF_egmE.js";import"./sortableTouchDefaults-LBJiQ73X.js";import"./MarkdownEditor-Q3bg6Rbn.js";import"./index-Cs5HvFfC.js";import"./index-7Y5jPTDP.js";import"./markdown-editor-D7wDin31.js";import"./useTaskFormSubmit-BcJ2FfK5.js";import"./useImageEditor-jEsZJZYZ.js";import"./AttachmentManager-BeN4Xneg.js";import"./CustomerSelect-BoxExYG2.js";import"./customerSelectMatching-DE0z0Z_f.js";import"./useAnchoredMenu-DgvrLeoe.js";import"./tasksStore-D9-QP7pE.js";import"./useAttachmentCache-C9KSvoez.js";import"./pendingUploadFiles-rvwAjarQ.js";import"./employeeStore-DvDlRtYS.js";import"./useProjectTeam-ohXkhYz7.js";import"./useProjectTeamMembership-DGVTaTy3.js";import"./entityTeamEvents-DnBXY0w6.js";import"./useFinanceAccess-BqaGTqKc.js";import"./useEntityColors-CfC6a68x.js";import"./TaskTimelineGrid-Cn0t-ewI.js";import"./useDropdownMenuPosition-BXscmsHj.js";import"./CustomerFormModal-BhWwKrqJ.js";import"./AddressAutocompleteInput-CLy7tJVk.js";import"./vPersonNameCase-DzrW1UMy.js";import"./contactFormData-DtzdrdSk.js";import"./CustomCategorySelect-Coify1Nd.js";import"./DefaultAdjustmentRowsEditor-BWieW2qH.js";import"./documentAdjustmentLimits-CKLOWGmq.js";import"./customerDefaultAdjustments-DmfbdTi1.js";import"./CatalogSupplierEmptyCta-azfbAZ-N.js";import"./useSupplierCatalogBrowse-BcV7Qi5V.js";import"./ListActionButton-BbZoDVrV.js";import"./catalogUnits-B1_LeBKr.js";import"./useAssignedSupplierCatalogs-CALFVm8H.js";import"./steiger-C5_qKAe9.js";import"./useCatalogBrowsePicker-U_mO7vOv.js";import"./catalog-JjM5GRm3.js";import"./regieRoles-DyXrvBGV.js";import"./supplierConnect-CClKI5on.js";import"./useSteigerCalculationDefaults-CwKIEloG.js";import"./projects-CAyEqhBQ.js";import"./serviceMaterials-DWMaU9E0.js";import"./CatalogSourcePicker-BG-pRh47.js";import"./Pagination-RIWv73gs.js";import"./useSettingsAccess-BVA724j5.js";import"./document.types-DgE4lZgd.js";/* empty css */import"./useSteigerLicense-CVZKD-Eo.js";import"./useDismissGuard-CkuHGHhF.js";import"./useReferenceOptions-Mrj1o3_M.js";import"./useCustomerSearch-B0kaLi1e.js";import"./useDocumentHeaderBasics-wTC-Jjln.js";import"./documentTextPlaceholders-BwxLbid8.js";import"./projectStatus-B6lx_zKP.js";import"./MapsLinkButton-CE7lY9sn.js";import"./mapsUtils-BDoF5znj.js";import"./ReferencePicker-Cox3T281.js";import"./entityPageRoutes-CozBkEnA.js";import"./workTime-B4ZjDqTH.js";import"./planningDayWindows-BBkiIGZ9.js";import"./dayTemplate-EVwyKfTG.js";import"./intlLocale-ChF_m2hD.js";function oa(e){const{t:s}=O(),a=w(null);function d(p){const _=e.task();_&&(a.value={mode:p,source:{publicId:_.publicId,title:_.title,boardId:_.boardId,bucketId:_.bucketId}})}function n(){const p=e.task();if(!p)return[];const _=[];return p.canEdit&&_.push({key:"move",label:s("modules.tasks.board.cardMenu.move"),icon:"bi bi-arrow-right-square",testId:"task-detail-move",onClick:()=>d("move")}),_.push({key:"copy",label:s("modules.tasks.board.cardMenu.copy"),icon:"bi bi-copy",testId:"task-detail-copy",onClick:()=>d("copy")}),_}function l(){a.value=null}function v(p){a.value=null,p.mode==="move"&&e.reload(),e.onChanged(p.sourcePublicId)}return{request:a,menuItems:n,close:l,onDone:v}}const et=Symbol("taskDetailContext");function Q(){const e=nt(et,null);if(!e)throw new Error("TaskDetailPanel context missing â render inside TaskDetailPanel");return e}function da(e,s,a){if(!e.call)return e;const d=e.call.todos.map(n=>n.checklistItemId===s?{...n,done:a}:n);return{...e,call:{...e.call,todos:d}}}function ra(e){const{t:s}=O(),a=ne(),d=w(new Set),n=(y,g)=>`${y}|${g}`;function l(y,g){const h=new Set(d.value);g?h.add(y):h.delete(y),d.value=h}function v(y,g){return d.value.has(n(y,g))}function p(y,g){var h;((h=e.task.value)==null?void 0:h.publicId)===y&&(e.items.value=Jt(e.items.value,g))}async function _(y,g){var u;const h=(u=e.task.value)==null?void 0:u.publicId,k=Ye(y.id),m=n(y.id,g);if(!h||k===null||y.kind!=="COMMENT"||!Wt(g)||d.value.has(m))return!1;const r={...y,reactions:Gt(y.reactions,g)};p(h,r),l(m,!0);try{const b=await e.serial(()=>fe.toggleReaction(h,k,g),{stale:!0});return p(h,{...r,...b,reactions:(b==null?void 0:b.reactions)??r.reactions}),!0}catch(b){return console.error("Failed to toggle task comment reaction",h,k,b),p(h,y),a.error(re(b)??s("modules.tasks.detail.errors.reactionFailed")),!1}finally{l(m,!1)}}return{toggleReaction:_,isReactionPending:v}}function ca(e){const{t:s}=O(),a=ne(),{confirm:d}=pe();async function n(v,p=[]){var h,k;const _=(h=e.task.value)==null?void 0:h.publicId,y=v.trim();if(!_||!y)return!1;const g=p.length>0?p:void 0;e.posting.value=!0;try{const m=await e.serial(()=>ie.addComment(_,y,g),{stale:!0});return((k=e.task.value)==null?void 0:k.publicId)===_&&(e.items.value=[m,...e.items.value]),e.onChanged(_),!0}catch(m){return console.error("Failed to add task comment",_,m),a.error(re(m)??s("modules.tasks.detail.errors.commentFailed")),!1}finally{e.posting.value=!1}}async function l(v){var g;const p=(g=e.task.value)==null?void 0:g.publicId,_=Ye(v.id);if(!p||_===null||!v.canDelete)return!1;const y=s("modules.tasks.activity.deleteConfirm");if(!await d({message:y,variant:"danger"}))return!1;try{return await e.serial(()=>ie.deleteComment(p,_),{stale:!0}),e.items.value=e.items.value.filter(h=>h.id!==v.id),e.onChanged(p),!0}catch(h){return console.error("Failed to delete task comment",p,_,h),a.error(re(h)??s("modules.tasks.detail.errors.commentDeleteFailed")),!1}}return{addComment:n,deleteComment:l}}function ua(e){const s=w([]),a=w(!1),d=w(!1),n=w(!1),l=w(!1);let v=0;function p(){v+=1,s.value=[],a.value=!1,d.value=!1,n.value=!1}async function _(){var $;const u=($=e.task.value)==null?void 0:$.publicId;if(!u)return;const b=++v;a.value=!0,n.value=!1;try{const C=await ie.activity(u);if(b!==v)return;s.value=C,d.value=!0}catch(C){if(b!==v)return;console.error("Failed to load task activity",u,C),n.value=!0}finally{b===v&&(a.value=!1)}}const y=D(()=>
2{if(d.value)return Yt(s.value);const u=e.task.value;return u?u.commentCount+u.mailCount:0});function g(u){var $;const b=($=e.task.value)==null?void 0:$.publicId;b&&(s.value.some(C=>C.id===u.id)||(s.value=[u,...s.value]),e.onChanged(b))}async function h(){var b;const u=(b=e.task.value)==null?void 0:b.publicId;u&&(e.onChanged(u),await _())}function k(u,b,$){s.value=s.value.map(C=>C.id===u?da(C,b,$):C)}const m=ca({...e,items:s,posting:l}),r=ra({task:e.task,items:s,serial:e.serial});return{items:s,loading:a,loaded:d,loadFailed:n,posting:l,conversationTotal:y,reset:p,load:_,addLoggedCall:g,mailsChanged:h,markCallTodo:k,...m,...r}}function Le(e,s,a){e.value=e.value.map(d=>d.id===s?a:d)}function ma(e){const{items:s,write:a,stillShowing:d,currentId:n}=e;async function l(g,h){const k=n();Le(s,g.id,{...g,...h});const m=await a(r=>ie.updateChecklistItem(r,g.id,h));return d(k)&&Le(s,g.id,m??g),m!==null}function v(g){return l(g,{done:!g.done})}async function p(g,h){const k=h.trim();return!k||k===g.text?!1:l(g,{text:k})}async function _(g){const h=n(),k=s.value;s.value=k.filter(r=>r.id!==g.id);const m=await a(async r=>(await ie.deleteChecklistItem(r,g.id),!0));return!m&&d(h)&&(s.value=k),m===!0}async function y(g){const h=n(),k=s.value,m=new Map(k.map(b=>[b.id,b])),r=g.map(b=>m.get(b)).filter(b=>!!b);if(r.length!==k.length)return!1;s.value=r;const u=await a(b=>ie.reorderChecklist(b,g));return d(h)&&(s.value=u?[...u].sort((b,$)=>b.sortOrder-$.sortOrder):k),u!==null}return{toggle:v,rename:p,remove:_,reorder:y}}function ka(e){const{t:s}=O(),a=ne(),d=w([]);let n=null,l=0;H(()=>e.task.value,r=>{const u=(r==null?void 0:r.publicId)??null;u!==n&&(l=0),(u!==n||l===0)&&(d.value=r?[...r.checklist]:[]),n=u},{immediate:!0});const v=D(()=>d.value.filter(r=>r.done).length),p=D(()=>d.value.length),_=D(()=>d.value.length>=xe),y=()=>{var r;return(r=e.task.value)==null?void 0:r.publicId},g=r=>!!r&&y()===r;async function h(r){const u=y();if(!u)return null;l+=1;try{const b=await e.serial(()=>r(u),{stale:!0});return e.onChanged(u),b}catch(b){return console.error("Checklist write failed",u,b),a.error(re(b)??s("modules.tasks.detail.errors.checklistFailed")),null}finally{l=Math.max(0,l-1)}}async function k(r){const u=r.trim();if(!u)return!1;if(_.value)return a.warning(s("modules.tasks.detail.checklist.limit",{max:xe})),!1;const b=y(),$=await h(C=>ie.addChecklistItem(C,u));return $?(g(b)&&!d.value.some(C=>C.id===$.id)&&(d.value=[...d.value,$]),!0):!1}const m=ma({items:d,write:h,stillShowing:g,currentId:y});return{items:d,doneCount:v,totalCount:p,isFull:_,add:k,...m}}const va={SERVICE_ORDER:"modules.tasks.detail.convert.successServiceOrder",PROJECT:"modules.tasks.detail.convert.successProject"};function ba(e){const{t:s}=O(),a=ne(),{confirm:d}=pe(),n=w(null),l=As(e),v=Ht(),{offerPlanning:p}=Ds();async function _(k,m){var b,$;const r=($=(b=e.task.value)==null?void 0:b.contactName)==null?void 0:$.trim();return r?await d({title:s("modules.tasks.detail.convert.customerMissingTitle"),message:s("modules.tasks.detail.convert.customerFromContact",{name:r}),confirmLabel:s("modules.tasks.detail.convert.customerFromContactConfirm")})?y(k,{...m,createCustomer:!0}):!1:(a.warning(s("modules.tasks.detail.convert.customerRequired")),!1)}async function y(k,m){var r;try{const u=await e.serial(()=>ie.convert(k,m),{stale:!0});return((r=e.task.value)==null?void 0:r.publicId)===k&&e.apply(u.task),a.success(s(va[m.target])),l.report(u),e.onChanged(k),u.targetType==="SERVICE_ORDER"&&p(u.targetId),!0}catch(u){return Es(u)&&!m.createCustomer?_(k,m):(console.error("Failed to convert task",k,m,u),a.error(re(u)??s("modules.tasks.detail.convert.failed")),!1)}}async function g(k){const m=e.task.value,r=m==null?void 0:m.publicId;if(!m||!r||n.value)return!1;n.value=k;try{if(!m.customerId)return await _(r,{target:k});const u=await v.ask(m,k);return u===null?!1:await y(r,u.length>0?{target:k,bundle:u}:{target:k})}finally{n.value=null}}async function h(k,m){const r=await e.patch($t(k,m));return r&&(a.success(s("modules.tasks.detail.convert.assigned")),await l.offerAfterAssign()),r}return{converting:n,convert:g,assignJob:h,bundle:v}}
2function fa(e){let s=0,a=Promise.resolve(),d=0,n=!1;function l(p,_={}){const y=s;d+=1;const g=a.then(p),h=async()=>{y===s&&(d-=1,_.stale&&(n=!0),d===0&&n&&(n=!1,await e()))};return a=g.then(h,h),g}function v(){s+=1,a=Promise.resolve(),d=0,n=!1}return{run:l,reset:v,generation:()=>s}}const pa=["OPEN","IN_PROGRESS","IN_REVIEW","COMPLETED","CANCELLED"],ya=["LOW","MEDIUM","HIGH"],_a=["TASK","INQUIRY"],ha=["NONE","DAILY","WEEKLY","MONTHLY","YEARLY"];function Ie(e,s,a){return s.find(d=>d===e)??a}function Z(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function te(e){return typeof e=="string"?e:null}function Ue(e){return Array.isArray(e)?e.filter(s=>typeof s=="number"):[]}function ga(e){const s=e.trim().split(/\s+/).filter(Boolean);if(s.length===0)return"";const a=s[0].charAt(0),d=s.length>1?s[s.length-1].charAt(0):"";return(a+d).toUpperCase()}function Ca(e){if(Array.isArray(e.assignees))return e.assignees;const s=Z(e.assigneeById);if(s===null)return[];const a=te(e.assigneeByName)??"";return[{id:s,name:a,initials:ga(a)}]}function $a(e){return Array.isArray(e.checklist)?[...e.checklist].sort((s,a)=>s.sortOrder-a.sortOrder):[]}function Ia(e){const s=Ca(e),a=$a(e),d=Ue(e.assigneeIds);return{...e,id:Z(e.id)??0,publicId:te(e.publicId)??"",title:te(e.title)??"",description:te(e.description),status:Ie(e.status,pa,"OPEN"),priority:Ie(e.priority,ya,"MEDIUM"),type:Ie(e.type,_a,"TASK"),recurrence:Ie(e.recurrence,ha,"NONE"),boardId:Z(e.boardId),bucketId:Z(e.bucketId),sortOrder:Z(e.sortOrder),customerId:Z(e.customerId),customerObjectId:Z(e.customerObjectId),customerObjectLabel:te(e.customerObjectLabel),serviceOrderName:te(e.serviceOrderName),checklistOnCard:e.checklistOnCard===!0,milestoneId:Z(e.milestoneId),milestoneName:te(e.milestoneName),loggedMinutes:Z(e.loggedMinutes)??0,openMaterialCount:Z(e.openMaterialCount)??0,contactName:te(e.contactName),contactPhone:te(e.contactPhone),contactEmail:te(e.contactEmail),startDate:te(e.startDate),followUpAt:te(e.followUpAt),assignees:s,assigneeIds:d.length>0?d:s.map(n=>n.id),labelIds:Ue(e.labelIds),checklist:a,checklistDone:Z(e.checklistDone)??a.filter(n=>n.done).length,checklistTotal:Z(e.checklistTotal)??a.length,commentCount:Z(e.commentCount)??0,mailCount:Z(e.mailCount)??0,attachments:Array.isArray(e.attachments)?e.attachments:[],canEdit:e.canEdit===!0,canResolve:e.canResolve===!0,canDelete:e.canDelete===!0,etag:te(e.etag)}}function Ta(){const e=w(null),s=w(!1),a=w(!1);let d=null,n=0;function l(g){const h=Ia(g);e.value=h,d=h.etag}async function v(g,h=!1){const k=++n;h||(s.value=!0,a.value=!1);try{const m=await ie.getTask(g);return k!==n?!1:(l(m),!0)}catch(m){return k!==n||(console.error("Failed to load task",g,m),h||(e.value=null,a.value=!0)),!1}finally{k===n&&(s.value=!1)}}function p(){n+=1,e.value=null,d=null,s.value=!1,a.value=!1}async function _(){var h;const g=(h=e.value)==null?void 0:h.publicId;return g?v(g,!0):!1}function y(){e.value&&(e.value={...e.value})}return{task:e,loading:s,loadFailed:a,etag:()=>d,apply:l,load:v,reset:p,refresh:_,touch:y}}function Ea(e){const{t:s}=O(),a=ne(),{confirm:d}=pe(),n=Ta(),l=fa(()=>n.refresh()),v=w(!1);function p(){l.reset(),n.reset()}function _(m,r={}){return l.run(m,r)}async function y(m,r,u){if(ws(u)){a.warning(s("modules.tasks.detail.errors.conflict")),r&&await n.load(m,!0),e.onChanged(m);return}console.error("Failed to patch task",m,u),a.error(re(u)??s("modules.tasks.detail.errors.saveFailed")),r&&n.touch()}async function g(m,r,u){const b=()=>u===l.generation();v.value=b();try{const $=b()?n.etag()??void 0:void 0,C=await ie.patchTask(m,r,$);return b()&&n.apply(C),e.onChanged(m),!0}catch($){return await y(m,b(),$),!1}finally{v.value=!1}}function h(m){var b;const r=(b=n.task.value)==null?void 0:b.publicId;if(!r)return Promise.resolve(!1);const u=l.generation();return _(()=>g(r,m,u))}async function k(){var u;const m=(u=n.task.value)==null?void 0:u.publicId;if(!m)return!1;const r=s("modules.tasks.delete.confirm");if(!await d({message:r,variant:"danger"}))return!1;try{return await _(()=>fe.remove(m)),a.success(s("modules.tasks.detail.deleted")),e.onChanged(m),!0}catch(b){return console.error("Failed to delete task",m,b),a.error(re(b)??s("modules.tasks.detail.errors.deleteFailed")),!1}}return{task:n.task,loading:n.loading,loadFailed:n.loadFailed,saving:v,load:n.load,refresh:n.refresh,apply:n.apply,reset:p,serial:_,patch:h,remove:k}}const wa=["QUOTE","ORDER_CONFIRMATION","INVOICE","REGIE_REPORT","DOCUMENT"];function Da(e){return wa.filter(s=>s!=="DOCUMENT"||e)}function tt(e){return`modules.tasks.detail.documents.types.${e}`}const Aa=new Map([["QUOTE","bi-file-earmark-text"],["ORDER_CONFIRMATION","bi-file-earmark-check"],["INVOICE","bi-receipt"],["REGIE_REPORT","bi-clipboard-check"],["DOCUMENT","bi-file-earmark"]]);function Sa(e){return Aa.get(e)??"bi-file-earmark"}const Pa=new Map([["QUOTE",{prefix:"modules.quotes.status.",statuses:["DRAFT","SENT","ACCEPTED","DECLINED","CANCELLED"],lowerCase:!0}],["ORDER_CONFIRMATION",{prefix:"modules.orderConfirmation.status.",statuses:["DRAFT","ISSUED","SENT","CANCELLED"],lowerCase:!0}],["INVOICE",{prefix:"finance.status.",statuses:["DRAFT","OPEN","PARTIAL","PAID","OVER
2DUE","CANCELLED","WRITEOFF","ARCHIVED"]}],["REGIE_REPORT",{prefix:"regieReports.status.",statuses:["DRAFT","SUBMITTED","APPROVED","REJECTED","INVOICED"]}],["DOCUMENT",{prefix:"documents.status.",statuses:["INBOX","PROCESSING","NEEDS_REVIEW","CLASSIFIED","NEEDS_VERIFICATION","ARCHIVED"]}]]),Ra={prefix:"modules.customers.overview.status.",statuses:["PLANNED","IN_PROGRESS","COMPLETED","CANCELLED","ARCHIVED","DRAFT","SENT","ACCEPTED","DECLINED","ACTIVE","UNPAID","PARTIALLY_PAID","PAID"]};function je(e,s){return e.statuses.includes(s)?e.prefix+(e.lowerCase?s.toLowerCase():s):null}function Oa(e,s){if(!s)return null;const a=s.trim().toUpperCase(),d=Pa.get(e);return(d?je(d,a):null)??je(Ra,a)}const xa=[["info",["SENT","ISSUED","SUBMITTED","OPEN","ACTIVE","IN_PROGRESS","PROCESSING"]],["success",["ACCEPTED","APPROVED","INVOICED","PAID","COMPLETED","CLASSIFIED"]],["warning",["NEEDS_REVIEW","NEEDS_VERIFICATION","PARTIAL","PARTIALLY_PAID","UNPAID"]],["danger",["DECLINED","REJECTED","CANCELLED","WRITEOFF","OVERDUE"]]];function Ma(e){var a;if(!e)return"neutral";const s=e.trim().toUpperCase();return((a=xa.find(([,d])=>d.includes(s)))==null?void 0:a[0])??"neutral"}function ye(e){return`${e.docType}:${e.docId}`}function Ae(e,s){const a=ye(s);return e.some(d=>ye(d)===a)}function Na(e){var a,d;const s=((a=e.label)==null?void 0:a.trim())??"";return s&&s!==((d=e.number)==null?void 0:d.trim())?s:""}function Fa(e){return!!(e.customerId||e.projectId||e.serviceOrderId)}function Be(e){return Object.fromEntries(Object.entries(e??{}).filter(([,s])=>typeof s=="string"||typeof s=="number").map(([s,a])=>[s,String(a)]))}function La(e,s){if(!e.routeName)return null;const a=Be(e.routeQuery),d={name:e.routeName,params:Be(e.routeParams),...Object.keys(a).length>0?{query:a}:{}};return s(d)?d:null}function Ua(e){const{t:s}=O(),a=ne(),{confirm:d}=pe(),n=w(new Set),l=()=>{var k;return(k=e.task.value)==null?void 0:k.publicId},v=k=>l()===k;function p(k,m){const r=new Set(n.value);m?r.add(k):r.delete(k),n.value=r}function _(k){return n.value.has(ye(k))}async function y(k){const m=l(),r=ye(k);if(!m||n.value.has(r))return!1;if(Ae(e.links.value,k))return!0;p(r,!0);try{const u={docType:k.docType,docId:k.docId},b=await e.serial(()=>fe.linkDocument(m,u),{stale:!0});return v(m)&&!Ae(e.links.value,b)&&(e.links.value=[...e.links.value,b]),e.onChanged(m),!0}catch(u){return console.error("Failed to link document to task",m,r,u),a.error(re(u)??s("modules.tasks.detail.documents.errors.linkFailed")),!1}finally{p(r,!1)}}async function g(k){const m=l();if(!m)return!1;const r=k.number||k.label,u=s("modules.tasks.detail.documents.removeConfirm",{name:r});if(!await d({message:u,variant:"danger"}))return!1;try{return await e.serial(()=>fe.unlinkDocument(m,k.id),{stale:!0}),v(m)&&(e.links.value=e.links.value.filter(b=>b.id!==k.id)),e.onChanged(m),!0}catch(b){return console.error("Failed to unlink document from task",m,k.id,b),a.error(re(b)??s("modules.tasks.detail.documents.errors.unlinkFailed")),!1}}function h(){n.value=new Set}return{link:y,unlink:g,isLinking:_,resetLinking:h}}function ja(e){const s=w([]),a=w(!1),d=w(!1),n=w(!1),l=Ua({...e,links:s});let v=0;function p(){v+=1,s.value=[],a.value=!1,d.value=!1,n.value=!1,l.resetLinking()}async function _(){var r;const k=(r=e.task.value)==null?void 0:r.publicId;if(!k)return;const m=++v;a.value=!0,n.value=!1;try{const u=await fe.documentLinks(k);if(m!==v)return;s.value=Array.isArray(u)?u:[],d.value=!0}catch(u){if(m!==v)return;console.error("Failed to load task document links",k,u),n.value=!0}finally{m===v&&(a.value=!1)}}const{link:y,unlink:g,isLinking:h}=l;return{links:s,loading:a,loaded:d,loadFailed:n,reset:p,load:_,link:y,unlink:g,isLinking:h}}function Ba(e){const{t:s}=O(),a=ne(),{confirm:d}=pe(),n=w([]),l=w(!1),v=w(!1),p=w(null),_=D(()=>n.value.filter(u=>u.status!=="DELIVERED").length);async function y(){var b,$,C;const u=(b=e.task.value)==null?void 0:b.publicId;if(u){l.value=!0,v.value=!1;try{const T=await $e.list(u);(($=e.task.value)==null?void 0:$.publicId)===u&&(n.value=T)}catch(T){console.error("Failed to load task material",u,T),((C=e.task.value)==null?void 0:C.publicId)===u&&(v.value=!0)}finally{l.value=!1}}}function g(){n.value=[],v.value=!1}function h(u){e.refreshTask(),e.onChanged(u)}async function k(u){var $,C;const b=($=e.task.value)==null?void 0:$.publicId;if(!b)return!1;try{const T=await $e.add(b,Qt(u));return((C=e.task.value)==null?void 0:C.publicId)===b&&(n.value=[...n.value,T]),h(b),!0}catch(T){return console.error("Failed to add task material",b,T),a.error(s("modules.tasks.material.errors.addFailed")),!1}}
2async function m(u,b){var C;const $=(C=e.task.value)==null?void 0:C.publicId;if(!(!$||u.status===b||p.value!==null)){p.value=u.id;try{const T=await $e.update($,u.id,{status:b});n.value=n.value.map(R=>R.id===u.id?T:R),h($)}catch(T){console.error("Failed to change task material status",$,u.id,T),a.error(s("modules.tasks.material.errors.updateFailed"))}finally{p.value=null}}}async function r(u){var C;const b=(C=e.task.value)==null?void 0:C.publicId;if(!(!b||!await d({message:s("modules.tasks.material.deleteConfirm",{name:u.description}),variant:"danger"})))try{await $e.remove(b,u.id),n.value=n.value.filter(T=>T.id!==u.id),h(b)}catch(T){console.error("Failed to delete task material",b,u.id,T),a.error(s("modules.tasks.material.errors.deleteFailed"))}}return{items:n,loading:l,loadFailed:v,busyId:p,openCount:_,load:y,reset:g,add:k,setStatus:m,remove:r}}function qa(e){const{open:s}=kt(),a=w(null),d=w(!1),n=w(!1);let l=null;async function v(){var m,r,u;const k=(m=e.task.value)==null?void 0:m.publicId;if(k){d.value=!0,n.value=!1;try{const b=await Ss.list(k);if(((r=e.task.value)==null?void 0:r.publicId)!==k)return;a.value=b,l=k}catch(b){console.error("Failed to load task time entries",k,b),((u=e.task.value)==null?void 0:u.publicId)===k&&(n.value=!0)}finally{d.value=!1}}}function p(){a.value=null,n.value=!1,l=null}function _(){const k=e.task.value;k&&s("timeEntryForm",{mode:"create",prefill:Ps(k)})}function y(k){s("timeEntryForm",{mode:"edit",entryId:k})}async function g(k){var u;const m=e.task.value;if(!m)return;const r=l===m.publicId?((u=a.value)==null?void 0:u.entries.map(b=>b.id))??[]:[];Rs(k,m.id,r)&&(l===m.publicId&&await v(),await e.refreshTask(),e.onChanged(m.publicId))}const h=k=>void g(k);return ke(()=>Ne.forEach(k=>window.addEventListener(k,h))),Ke(()=>Ne.forEach(k=>window.removeEventListener(k,h))),{data:a,loading:d,loadFailed:n,load:v,reset:p,book:_,edit:y}}const Ka=["details","activity","attachments","time","material"];function Va(e){const{t:s}=O(),a=ne(),d=Ve(),{copy:n}=Ct();return async function(){var y;const v=(y=e.value)==null?void 0:y.publicId;if(!v)return;const p=d.resolve(Tt(v)).href,_=new URL(p,window.location.origin).toString();await n(v,_)?a.success(s("modules.tasks.detail.menu.linkCopied")):a.error(s("modules.tasks.detail.menu.copyFailed"))}}function za(e,s){const{t:a}=O();return D(()=>{const d=e();if(!d)return"";const n=s.value?It(d,We(s.value,d)):null;return n?`${d.name}${a("common.separatorDot")}${n}`:d.name})}function Wa(e){const s=w("details");H(s,d=>{d==="activity"&&e()});function a(d){const n=Ka.find(l=>l===d);n&&(s.value=n)}return{tab:s,selectTab:a}}function Ga(e,s){const a={task:e.task,serial:e.serial,onChanged:s},d=qa({...a,refreshTask:e.refresh}),n=Ba({...a,refreshTask:e.refresh}),l=ba({...a,apply:e.apply,patch:e.patch,afterTransfer:()=>{d.reset(),n.reset()}});return{checklist:ka(a),activity:ua(a),time:d,materials:n,convert:l,documents:ja(a)}}function Ja(e){const s=Ea({onChanged:e.onChanged}),{checklist:a,activity:d,time:n,materials:l,convert:v,documents:p}=Ga(s,e.onChanged),_=gt(),{tab:y,selectTab:g}=Wa(d.load);lt(et,{patch:s.patch,refreshTask:s.refresh,checklist:a,activity:d,convert:v,documents:p,time:n,materials:l,members:_.members,loadMembers:_.load}),H(e.publicId,$=>{s.reset(),d.reset(),p.reset(),n.reset(),l.reset(),y.value="details",$&&s.load($)},{immediate:!0}),H(()=>{var $;return($=s.task.value)==null?void 0:$.publicId},$=>{$&&p.load()});const h=D(()=>{var $;return((($=s.task.value)==null?void 0:$.attachments.length)??0)+p.links.value.length}),k=za(e.board,s.task),m=Va(s.task);async function r(){await s.remove()&&e.onClose()}function u(){const $=e.publicId();$&&s.load($)}function b(){var C;const $=(C=s.task.value)==null?void 0:C.publicId;$&&(s.refresh(),e.onChanged($))}return{task:s.task,loading:s.loading,loadFailed:s.loadFailed,activity:d,documents:p,attachmentTotal:h,tab:y,selectTab:g,contextLabel:k,copyLink:m,deleteTask:r,reload:u,onAttachmentUploaded:b}}function Ya(e){const s=xs(),a=w(!1);let d=0;H(e,async l=>{const v=++d;if(a.value=!1,!!l)try{const p=await Ms.isOnMyDay(l);v===d&&(a.value=p)}catch(p){console.warn("Could not read «Mein Tag» for the open card:",p)}},{immediate:!0});function n(){const l=e();return l?[s.menuItem(l,a.value,"task-detail")]:[]}return{serverValue:a,menuItems:n}}const Ha={class:"td-call","data-testid":"task-activity-call"},Qa={class:"td-call__card"},Xa={class:"td-call__head"},Za={class:"td-call__headline"},en={class:"td-call__meta"}
2,tn=["aria-label","title"],sn={key:0,class:"td-call__note"},an={key:1,class:"td-call__todos"},nn=["aria-pressed","aria-label","disabled","onClick"],ln={key:1,class:"bi bi-person-check td-call__task-icon","aria-hidden":"true"},on={class:"td-call__todo-meta"},dn=L({__name:"TaskActivityCallEntry",props:{item:{},timeText:{},canToggle:{type:Boolean}},emits:["delete","toggle-todo"],setup(e,{emit:s}){const a=e,d=s,{t:n,locale:l}=O(),v=()=>n("common.separatorDot"),p=D(()=>a.item.call??null),_=D(()=>{var k;return((k=p.value)==null?void 0:k.todos)??[]}),y=D(()=>Xt(p.value,n,v())),g=D(()=>[a.item.authorName,a.timeText].filter(Boolean).join(v()));function h(k){const m=k.target==="TASK"?[n("modules.tasks.call.todo.task"),k.assigneeName].filter(Boolean).join(v()):n("modules.tasks.call.todo.checklist"),r=k.dueDate?es(k.dueDate,l.value):null;return[m,r].filter(Boolean).join(v())}return(k,m)=>{var u;const r=_e("RouterLink");return i(),c("div",Ha,[o("span",{class:V(["td-call__icon",((u=p.value)==null?void 0:u.direction)==="OUT"?"td-call__icon--out":"td-call__icon--in"]),"aria-hidden":"true"},[o("i",{class:V(["bi",t(Zt)(p.value)])},null,2)],2),o("div",Qa,[o("div",Xa,[o("strong",Za,f(y.value),1),o("span",en,f(g.value),1),e.item.canDelete?(i(),c("button",{key:0,type:"button",class:"td-call__delete","aria-label":t(n)("modules.tasks.activity.deleteComment"),title:t(n)("modules.tasks.activity.deleteComment"),onClick:m[0]||(m[0]=b=>d("delete",e.item))},[...m[1]||(m[1]=[o("i",{class:"bi bi-trash","aria-hidden":"true"},null,-1)])],8,tn)):I("",!0)]),e.item.body?(i(),c("p",sn,f(e.item.body),1)):I("",!0),_.value.length?(i(),c("ul",an,[(i(!0),c(N,null,K(_.value,(b,$)=>(i(),c("li",{key:$,class:"td-call__todo"},[b.target==="CHECKLIST"?(i(),c("button",{key:0,type:"button",class:"td-call__check","aria-pressed":b.done,"aria-label":t(n)("modules.tasks.call.entry.toggleTodo"),disabled:!e.canToggle||b.checklistItemId===null,onClick:C=>d("toggle-todo",b)},[o("i",{class:V(["bi",b.done?"bi-check-square-fill":"bi-square"]),"aria-hidden":"true"},null,2)],8,nn)):(i(),c("i",ln)),o("span",{class:V(["td-call__todo-text",{"td-call__todo-text--done":b.done}])},f(b.text),3),o("span",on,f(h(b)),1),b.target==="TASK"&&b.taskPublicId?(i(),j(r,{key:2,class:"td-call__open",to:{name:"tasks-list",query:{task:b.taskPublicId}}},{default:oe(()=>[B(f(t(n)("modules.tasks.call.entry.openTask")),1)]),_:1},8,["to"])):I("",!0)]))),128))])):I("",!0)])])}}}),rn=U(dn,[["__scopeId","data-v-4a3968b5"]]),cn=["data-testid"],un=["title","aria-label"],mn={class:"td-mail-entry__card"},kn={class:"td-mail-entry__head"},vn={class:"td-mail-entry__who"},bn={class:"td-mail-entry__meta"},fn={class:"td-mail-entry__subject"},pn={key:0,class:"td-mail-entry__body"},yn={class:"td-mail-entry__actions"},_n=["aria-expanded"],hn=L({__name:"TaskActivityMailEntry",props:{mail:{},timeText:{},canOpenPostfach:{type:Boolean},canFileMail:{type:Boolean}},emits:["reply","unlink"],setup(e,{emit:s}){const a=e,d=s,{t:n}=O(),l=w(!1),v=D(()=>a.mail.direction==="INBOUND"),p=D(()=>v.value?n("modules.tasks.activity.mail.inbound"):n("modules.tasks.activity.mail.outbound")),_=D(()=>v.value?n("modules.tasks.activity.mail.from",{from:a.mail.from??""}):n("modules.tasks.activity.mail.to",{to:a.mail.to??""})),y=D(()=>ts(a.mail)),g=D(()=>l.value?a.mail.bodyText??a.mail.snippet??"":a.mail.snippet??""),h=D(()=>{const r=a.mail.postfachMessageId;return!r||!a.canOpenPostfach?null:{name:"mail-postfach",query:{message:r}}}),k=D(()=>a.canFileMail&&ss(a.mail)),m=D(()=>a.canFileMail&&a.mail.detachable===!0);return(r,u)=>{const b=_e("RouterLink");return i(),c("div",{class:"td-mail-entry","data-testid":`task-activity-mail-${e.mail.mailMessageId}`},[o("i",{class:V(["bi td-mail-entry__icon",v.value?"bi-envelope":"bi-send"]),title:p.value,role:"img","aria-label":p.value},null,10,un),o("div",mn,[o("div",kn,[o("strong",vn,f(_.value),1),o("span",bn,f(e.timeText),1)]),o("div",fn,f(e.mail.subject||t(n)("modules.tasks.activity.mail.noSubject")),1),g.value?(i(),c("p",pn,f(g.value),1)):I("",!0),o("div",yn,[y.value?(i(),c("button",{key:0,type:"button",class:"td-mail-entry__link","aria-expanded":l.value,onClick:u[0]||(u[0]=$=>l.value=!l.value)},f(l.value?t(n)("common.showLess"):t(n)("common.showMore")),9,_n)):I("",!0),h.value?(i(),j(b,{key:1,to:h.value,class:"td-mail-entry__link"},{default:oe(()=>[B(f(t(n)("modules.tasks.activity.mail.openInPostfach")),1)]),_:1},8,["to"])):I("",!0),k.value?(i(),c("button",{key:2,type:"button",class:"td-mail-entry__link","data-testid":"task-activity-mail-reply",onClick:u[1]||(u[1]=$=>d("reply",e.mail))},f(t(n)("mail.postfach.detail.reply")),1)):I("",!0),m.value?(i(),c("button",{key:3,type:"button",class:"td-mail-entry__link td-mail-entry__link--danger","data-testid":"task-activity-mail-unlink",onClick:u[2]||(u[2]=$=>d("unlink",e.mail))},f(t(n)("modules.tasks.mail.unlink")),1)):I("",!0)])])],8,cn)}}}),gn=U(hn,[["__scopeId","data-v-76de109b"]]),Cn=["aria-label"],$n=["aria-pressed","aria-label","t
2itle","disabled","onClick"],In={"aria-hidden":"true"},Tn={class:"td-reactions__count"},En=L({__name:"TaskReactionChips",props:{reactions:{},pending:{type:Function}},emits:["toggle"],setup(e,{emit:s}){const a=e,d=s,{t:n}=O(),l=D(()=>He(a.reactions));function v(p){const _=as(p.emoji),y=_?n(_):p.emoji;return n("modules.tasks.activity.reactions.chip",{name:y,count:p.count})}return(p,_)=>l.value.length>0?(i(),c("div",{key:0,class:"td-reactions",role:"group","aria-label":t(n)("modules.tasks.activity.reactions.title"),"data-testid":"task-comment-reactions"},[(i(!0),c(N,null,K(l.value,y=>(i(),c("button",{key:y.emoji,type:"button",class:V(["td-reactions__chip",{"td-reactions__chip--mine":y.mine}]),"aria-pressed":y.mine,"aria-label":v(y),title:v(y),disabled:e.pending(y.emoji),"data-testid":"task-comment-reaction",onClick:g=>d("toggle",y.emoji)},[o("span",In,f(y.emoji),1),o("span",Tn,f(y.count),1)],10,$n))),128))],8,Cn)):I("",!0)}}),wn=U(En,[["__scopeId","data-v-de7564b6"]]);function Re(e){const s=w(!1);function a(v){const p=v.target;e.value&&p instanceof Node&&e.value.contains(p)||(s.value=!1)}function d(){document.removeEventListener("pointerdown",a,!0)}H(s,v=>{v?document.addEventListener("pointerdown",a,!0):d()}),Ke(d);function n(){s.value=!s.value}function l(){s.value=!1}return{open:s,toggle:n,close:l}}const Dn=["aria-expanded","aria-label","title"],An=["aria-label"],Sn=["aria-pressed","aria-label","title","onClick"],Pn=L({__name:"TaskReactionPicker",props:{mine:{}},emits:["pick"],setup(e,{emit:s}){const a=s,{t:d}=O(),n=w(null),{open:l,toggle:v,close:p}=Re(n);function _(y){p(),a("pick",y)}return(y,g)=>(i(),c("span",{ref_key:"root",ref:n,class:"td-react-picker",onKeydown:g[1]||(g[1]=ae(Y((...h)=>t(p)&&t(p)(...h),["stop"]),["esc"]))},[o("button",{type:"button",class:"td-react-picker__trigger","aria-expanded":t(l),"aria-label":t(d)("modules.tasks.activity.reactions.add"),title:t(d)("modules.tasks.activity.reactions.add"),"data-testid":"task-comment-react",onClick:g[0]||(g[0]=(...h)=>t(v)&&t(v)(...h))},[...g[2]||(g[2]=[o("i",{class:"bi bi-emoji-smile","aria-hidden":"true"},null,-1)])],8,Dn),t(l)?(i(),c("span",{key:0,class:"td-react-picker__bar",role:"group","aria-label":t(d)("modules.tasks.activity.reactions.add")},[(i(!0),c(N,null,K(t(ns),h=>(i(),c("button",{key:h.emoji,type:"button",class:V(["td-react-picker__option",{"td-react-picker__option--mine":e.mine.includes(h.emoji)}]),"aria-pressed":e.mine.includes(h.emoji),"aria-label":t(d)(h.nameKey),title:t(d)(h.nameKey),"data-testid":"task-comment-react-option",onClick:k=>_(h.emoji)},f(h.emoji),11,Sn))),128))],8,An)):I("",!0)],544))}}),Rn=U(Pn,[["__scopeId","data-v-6d3612d0"]]),On={class:"td-entry__system"},xn={class:"td-entry__meta"},Mn={class:"td-entry__bubble"},Nn={class:"td-entry__head"},Fn={class:"td-entry__author"},Ln={class:"td-entry__meta"},Un={class:"td-entry__tools"},jn=["aria-label","title"],Bn={class:"td-entry__body"},qn={key:0,class:"td-entry__mention"},Kn=L({__name:"TaskActivityEntry",props:{item:{},memberNames:{},canOpenPostfach:{type:Boolean},reactionPending:{type:Function},canToggleChecklist:{type:Boolean},canFileMail:{type:Boolean}},emits:["delete","react","toggle-todo","reply-mail","unlink-mail"],setup(e,{emit:s}){const a=e,d=s,{t:n,locale:l}=O(),v=D(()=>a.item.authorName||n("modules.tasks.activity.system")),p=D(()=>{var u;const r=Qe(((u=a.item.mail)==null?void 0:u.sentAt)??a.item.createdAt,l.value);return r?n(Xe(r.day),{time:r.time,date:r.date}):""}),_=D(()=>n(ls(a.item.event,a.item.params),is(a.item.params,l.value,r=>n(r),a.item.event))),y=D(()=>[a.item.authorName,p.value].filter(Boolean).join(n("common.separatorDot"))),g=D(()=>os(a.item.body??"",a.memberNames)),h=D(()=>He(a.item.reactions).filter(r=>r.mine).map(r=>r.emoji));function k(r){var u;return((u=a.reactionPending)==null?void 0:u.call(a,r))??!1}function m(r){k(r)||d("react",a.item,r)}return(r,u)=>(i(),c("li",{class:V(["td-entry",`td-entry--${e.item.kind.toLowerCase()}`])},[e.item.kind==="SYSTEM"?(i(),c(N,{key:0},[u[5]||(u[5]=o("i",{class:"bi bi-clock-history td-entry__icon","aria-hidden":"true"},null,-1)),o("div",On,[o("span",null,f(_.value),1),o("span",xn,f(y.value),1)])],64)):e.item.kind==="COMMENT"?(i(),c(N,{key:1},[x(Ee,{name:v.value,"employee-id":e.item.authorId,size:"1.75rem"},null,8,["name","employee-id"]),o("div",Mn,[o("div",Nn,[o("strong",Fn,f(v.value),1),o("span",Ln,f(p.value),1),o("span",Un,[x(Rn,{mine:h.value,onPick:m}
2,null,8,["mine"]),e.item.canDelete?(i(),c("button",{key:0,type:"button",class:"td-entry__delete","aria-label":t(n)("modules.tasks.activity.deleteComment"),title:t(n)("modules.tasks.activity.deleteComment"),onClick:u[0]||(u[0]=b=>d("delete",e.item))},[...u[6]||(u[6]=[o("i",{class:"bi bi-trash","aria-hidden":"true"},null,-1)])],8,jn)):I("",!0)])]),o("p",Bn,[(i(!0),c(N,null,K(g.value,(b,$)=>(i(),c(N,{key:$},[b.mention?(i(),c("span",qn,f(b.text),1)):(i(),c(N,{key:1},[B(f(b.text),1)],64))],64))),128))]),x(wn,{reactions:e.item.reactions,pending:k,onToggle:m},null,8,["reactions"])])],64)):e.item.kind==="CALL"?(i(),j(rn,{key:2,item:e.item,"time-text":p.value,"can-toggle":e.canToggleChecklist,onDelete:u[1]||(u[1]=b=>d("delete",e.item)),onToggleTodo:u[2]||(u[2]=b=>d("toggle-todo",e.item,b))},null,8,["item","time-text","can-toggle"])):e.item.mail?(i(),j(gn,{key:3,mail:e.item.mail,"time-text":p.value,"can-open-postfach":e.canOpenPostfach,"can-file-mail":e.canFileMail??!1,onReply:u[3]||(u[3]=b=>d("reply-mail",b)),onUnlink:u[4]||(u[4]=b=>d("unlink-mail",b))},null,8,["mail","time-text","can-open-postfach","can-file-mail"])):I("",!0)],2))}}),Vn=U(Kn,[["__scopeId","data-v-a62c20a6"]]),zn={class:"td-composer__field"},Wn={key:0,class:"td-composer__mentions",role:"listbox"},Gn=["aria-selected","onMouseenter","onMousedown"],Jn=["disabled","placeholder","aria-label"],Yn={class:"td-composer__actions"},Hn={class:"td-composer__hint"},Qn=["disabled","aria-label"],Xn={key:0,class:"spinner-border spinner-border-sm",role:"status"},Zn={key:1,class:"bi bi-send","aria-hidden":"true"},el=L({__name:"TaskCommentComposer",props:{members:{},busy:{type:Boolean}},emits:["submit"],setup(e,{expose:s,emit:a}){const d=e,n=a,{t:l}=O(),v=w(""),p=w(null),_=Ls(()=>d.members),y=w(0);function g(){const b=p.value;b&&(_.detect(v.value,b.selectionStart??v.value.length),y.value=0)}async function h(b){const $=p.value;if(!$)return;const C=_.insert(v.value,$.selectionStart??v.value.length,b);v.value=C.text,await Pe(),$.focus(),$.setSelectionRange(C.caret,C.caret)}function k(b){if(!_.isOpen.value)return!1;const $=_.candidates.value.length-1;switch(b.key){case"ArrowDown":return y.value=y.value>=$?0:y.value+1,!0;case"ArrowUp":return y.value=y.value<=0?$:y.value-1,!0;case"Enter":case"Tab":return h(_.candidates.value[y.value]),!0;case"Escape":return _.detect("",0),!0;default:return!1}}function m(b){if(k(b)){b.preventDefault(),b.stopPropagation();return}b.key==="Enter"&&!b.shiftKey&&!b.isComposing&&(b.preventDefault(),r())}function r(){const b=v.value.trim();if(!b||d.busy)return;const $=_.collectMentionedIds(v.value);n("submit",b,ds($,rs(v.value,d.members)))}function u(){v.value="",_.reset()}return s({clear:u}),(b,$)=>(i(),c("form",{class:"td-composer",onSubmit:Y(r,["prevent"])},[o("div",zn,[t(_).isOpen.value?(i(),c("ul",Wn,[(i(!0),c(N,null,K(t(_).candidates.value,(C,T)=>(i(),c("li",{key:C.employeeId,class:V(["td-composer__mention",{"td-composer__mention--active":T===y.value}]),role:"option","aria-selected":T===y.value,onMouseenter:R=>y.value=T,onMousedown:Y(R=>h(C),["prevent"])},[x(Ee,{name:C.name,"employee-id":C.employeeId,size:"1.25rem"},null,8,["name","employee-id"]),o("span",null,f(C.name),1)],42,Gn))),128))])):I("",!0),de(o("textarea",{ref_key:"input",ref:p,"onUpdate:modelValue":$[0]||($[0]=C=>v.value=C),class:"td-composer__input",rows:"2",maxlength:"4000",disabled:e.busy,placeholder:t(l)("modules.tasks.activity.composer.placeholder"),"aria-label":t(l)("modules.tasks.activity.composer.placeholder"),"data-testid":"task-detail-comment-input",onInput:g,onClick:g,onKeydown:m},null,40,Jn),[[me,v.value]])]),o("div",Yn,[o("span",Hn,f(t(l)("modules.tasks.activity.composer.hint")),1),o("button",{type:"submit",class:"btn btn-sm btn-primary",disabled:e.busy||!v.value.trim(),"aria-label":t(l)("modules.tasks.activity.composer.send"),"data-testid":"task-detail-comment-send"},[e.busy?(i(),c("span",Xn)):(i(),c("i",Zn))],8,Qn)])],32))}}),tl=U(el,[["__scopeId","data-v-cc9cb4e4"]]),sl={class:"task-mail-pick","data-testid":"task-mail-pick"},al={key:0,class:"task-mail-pick__hint"},nl={key:0},ll=L({__name:"TaskMailPickModal",props:{show:{type:Boolean},saving:{type:Boolean},addresses:{}},emits:["close","pick"],setup(e,{emit:s}){const a=e,d=s,{t:n}=O(),l=cs(()=>a.addresses),v=D(()=>l.searchable.value&&l.primaryAddress.value!==null),p=D(()=>l.preferred.value>0&&!l.onlyContact.value?n("modules.tasks.mail.contactFirst",{addresses:a.addresses.join(", ")}):"");H(()=>a.show,y=>{y&&l.open()},{immediate:!0});function _(y){const g=l.find(y);g&&!a.saving&&d("pick",g)}return(y,g)=>(i(),j(vt,{show:e.show,title:t(n)("modules.tasks.mail.linkTitle"),subtitle:t(n)("modules.tasks.mail.linkIntro"),icon:"bi bi-link-45deg",size:"lg","full-screen-on-mobile":"",onClose:g[2]||(g[2]=h=>d("close"))},{body:oe(()=>[o("div",sl,[p.value||v.value?(i(),c("div",al,[p.value?(i(),c("span",nl,f(p.value),1)):I("",!0),v.value?(i(),c("button",{key:1,type:"button",class:"btn btn-sm btn-link task-mail-pick__filter","data-testid":"task-mail-pick-only-contact",onClick:g[0]||(g[0]=h=>t(l).toggleOnlyContact())},f(t(l).onlyContact.value?t(n)("modules.tasks.mail.showAll"):t(n)("modules.tasks.mail.onlyContact",{address:t(l).primaryAddress.value})),1)):I("",!0)])):I("",!0),x(Us,{items:t(l).items.value,loading:t(l).loading.value||e.saving,"error-key":t(l).errorKey.value,page:t(l).page.value,total:t(l).total.value,"total-pages":t(l).totalPages.value,query:t(l).query.value,searchable:t
2(l).searchable.value,"selected-id":null,onSelect:_,onSearch:t(l).search,onPage:t(l).load,onRefresh:t(l).refresh},null,8,["items","loading","error-key","page","total","total-pages","query","searchable","onSearch","onPage","onRefresh"])])]),footer:oe(()=>[o("button",{type:"button",class:"btn btn-outline-secondary",onClick:g[1]||(g[1]=h=>d("close"))},f(t(n)("common.cancel")),1)]),_:1},8,["show","title","subtitle"]))}}),il=U(ll,[["__scopeId","data-v-6fbafd84"]]),ol={class:"td-mail-actions","data-testid":"task-detail-mail-actions"},dl=["disabled"],rl=L({__name:"TaskDetailMailActions",props:{task:{},mail:{}},setup(e){const s=e,{t:a}=O(),d=D(()=>({linkType:"TASK",linkId:s.task.id,label:a("modules.tasks.mail.fileOnCard",{title:s.task.title})}));return(n,l)=>(i(),c("div",ol,[o("button",{type:"button",class:"btn btn-sm btn-outline-secondary","data-testid":"task-detail-mail-send",onClick:l[0]||(l[0]=v=>e.mail.openCompose())},[l[4]||(l[4]=o("i",{class:"bi bi-envelope-plus","aria-hidden":"true"},null,-1)),B(" "+f(t(a)("modules.tasks.mail.send")),1)]),o("button",{type:"button",class:"btn btn-sm btn-outline-secondary",disabled:e.mail.saving.value,"data-testid":"task-detail-mail-link",onClick:l[1]||(l[1]=v=>e.mail.openPicker())},[l[5]||(l[5]=o("i",{class:"bi bi-link-45deg","aria-hidden":"true"},null,-1)),B(" "+f(t(a)("modules.tasks.mail.link")),1)],8,dl),x(js,{show:e.mail.composeOpen.value,"reply-to":e.mail.replyTarget.value,draft:e.mail.draft.value,"fixed-link":d.value,sending:e.mail.sending.value,"error-key":e.mail.errorKey.value,onReply:e.mail.submitReply,onCompose:e.mail.submitCompose,onClose:l[2]||(l[2]=v=>e.mail.closeCompose())},null,8,["show","reply-to","draft","fixed-link","sending","error-key","onReply","onCompose"]),x(il,{show:e.mail.pickerOpen.value,saving:e.mail.saving.value,addresses:e.mail.correspondents.value,onPick:e.mail.link,onClose:l[3]||(l[3]=v=>e.mail.closePicker())},null,8,["show","saving","addresses","onPick"])]))}}),cl=U(rl,[["__scopeId","data-v-6530421d"]]),ul={class:"td-activity"},ml=["aria-label"],kl=["aria-pressed"],vl=["aria-pressed"],bl=["aria-pressed"],fl={key:3,class:"td-activity__state",role:"status"},pl={key:4,class:"td-activity__state",role:"alert"},yl={key:5,class:"td-activity__state"},_l={key:6,class:"td-activity__list","data-testid":"task-detail-activity"},hl=L({__name:"TaskDetailActivity",props:{task:{}},setup(e){const s=e,{t:a}=O(),d=ne(),n=bt(),{activity:l,checklist:v,members:p,loadMembers:_,refreshTask:y}=Q(),{items:g,loading:h,loaded:k,loadFailed:m,posting:r,load:u,addComment:b,deleteComment:$,toggleReaction:C,isReactionPending:T,addLoggedCall:R,markCallTodo:q,mailsChanged:ee}=l,{canOpenPostfach:ue}=Ze(),M=us(),S=D(()=>M.canFileMail(s.task.canEdit)),F=ms({card:()=>s.task,items:()=>g.value,onChanged:()=>{ee(),y()}}),W=w("comment"),ve=w(null),we=D(()=>p.value.map(se=>se.name)),he=D(()=>n.userId??null);ke(()=>{_()});async function X(se,G){var J;await b(se,G)&&((J=ve.value)==null||J.clear())}function ge(se){se.taskPublicId===s.task.publicId&&(R(se.item),d.success(a("modules.tasks.call.saved")),W.value="comment",y())}async function Ce(se,G){const J=v.items.value.find(De=>De.id===G.checklistItemId);if(!J)return;const be=!J.done;await v.toggle(J)&&q(se.id,J.id,be)}return(se,G)=>(i(),c("section",ul,[o("div",{class:"td-activity__modes",role:"group","aria-label":t(a)("modules.tasks.call.title")},[o("button",{type:"button",class:"td-activity__mode","aria-pressed":W.value==="comment",onClick:G[0]||(G[0]=J=>W.value="comment")},[G[4]||(G[4]=o("i",{class:"bi bi-chat-left-text","aria-hidden":"true"},null,-1)),B(" "+f(t(a)("modules.tasks.call.mode.comment")),1)],8,kl),o("button",{type:"button",class:"td-activity__mode","aria-pressed":W.value==="call","data-testid":"task-detail-mode-call","data-guide-anchor":"tasks.detail.logCall","data-guide-route":"tasks-list","data-guide-desc":"Karte ⺠Verlauf â «Anruf» erfassen: Ergebnis, Notiz und To-dos aus dem Gespräch","data-guide-feature":"tasks_list",onClick:G[1]||(G[1]=J=>W.value="call")},[G[5]||(G[5]=o("i",{class:"bi bi-telephone","aria-hidden":"true"},null,-1)),B(" "+f(t(a)("modules.tasks.call.mode.call")),1)],8,vl),o("button",{type:"button",class:"td-activity__mode","aria-pressed":W.value==="meeting","data-testid":"task-detail-mode-meeting",onClick:G[2]||(G[2]=J=>W.value="meeting")},[G[6]||(G[6]=o("i",{class:"bi bi-people","aria-hidden":"true"},null,-1)),B(" "+f(t(a)("modules.tasks.call.mode.meeting")),1)],8,bl)],8,ml),S.value?(i(),j(cl,{key:0,task:e.task,mail:t(F)},null,8,["task","mail"])):I("",!0),W.value==="comment"?(i(),j(tl,{key:1,ref_key:"composer",ref:ve,members:t(p),busy:t(r),onSubmit:X},null,8,["members","busy"])):(i(),j(Fs,{key:W.value,target:{kind:"card",taskPublicId:e.task.publicId},medium:W.value==="meeting"?"MEETING":"PHONE","medium-toggle":!1,members:t(p),"caller-id":he.value,contacts:e.task.contactName?[e.task.contactName]:[],"default-contact":e.task.contactName,onSaved:ge},null,8,["target","medium","members","caller-id","contacts","default-contact"])),t(h)&&t(g).length===0?(i(),c("p",fl,f(t(a)("common.loading")),1)):t(m)?(i(),c("div",pl,[o("span",null,f(t(a)("modules.tasks.detail.errors.activityFailed")),1),o("button",{type:"button",class:"btn btn-sm btn-outline-secondary",onClick:G[3]||(G[3]=(...J)=>t(u)&&t(u)(...J))},f(t(a)("common.retry")),1)])):t(k)&&t(g).length===0?(i(),c("p",yl,f(t(a)("modules.tasks.activity.empty")),1)):(i(),c("ul",_l,[(i(!0),c(N,null,K(t(g),J=>(i(),j(Vn,{key:J.id,item:J,"member-names":we.value,"can-open-postfach":t(ue),"can-toggle-checklist":e.task.canEdit,"can-file-mail":S.value,"reaction-pending":be=>t(T)(J.id,be),onDelete:t($),onReact:t(C),onToggleTodo:Ce,onReplyMail:t(F).openReply,onUnlinkMail:t(F).unlink},null,8,["item","member-names","can-open-postfach","can-toggle-checklist","can-file-mail","reaction-pending","onDelete","onReact","onReplyMail","onUnlinkMail"]))),128))]))]))}}),gl=U(hl,[["__scopeId","data-v-b2ed05e8"]]),Cl={class:"attachments-pane"},$l=["id","disabled"],Il={key:0,class:"fw-semibold ms-1"},Tl={key:2,class:"upload-section"},El=["for"],wl={class:"dropzone-content"},Dl={class:"mb-1"},Al={class:"text-muted"},Sl={key:3,class:"loading-state"},Pl={class:"spinner-border text-primary",role:"status"},Rl={class:"visually-hidden"},Ol={class:"mt-2 text-muted"},xl={key:4,class:"empty-state"},Ml={class:"mt-2 text-muted"},Nl={class:"text-muted small"},Fl={key:5,class:"uploading-indicator"},Ll={class:"spinner-border spinner-border-sm text-primary me-2",role:"status"},Ul={class:"visually-hidden"},jl={class:"text-muted"},Bl={key:6,class:"attachments-container"},ql={key:0,class:"section"},Kl={class:"section-title"},Vl={class:"image-grid"},zl={key:0,class:"upload-overlay"},Wl={key:0,class:"upload-progress"},Gl={class:"spinner-border spinner-border-sm text-white me-2",role:"status"},Jl={class:"visually-hidden"},Yl={key:1,class:"upload-pending"},Hl={key:2,class:"upload-failed"},Ql=["onClick"],Xl=["onClick"],Zl=["src","alt"],ei={key:1,class:"image-placeholder"},ti={key:1,class:"image-actions"},si=["title"],ai=["onClick","disabled","title"],ni={key:2,class:"image-actions"},li=["title"],ii={key:1,class:"section"},oi={class:"section-title"},di={class:"document-list"},ri={class:"document-icon"},ci={class:"document-info"},ui={class:"document-name-wrapper"},mi=["href","title","onClick"],ki=["title"],vi={key:2,class:"document-upload-status"},bi={key:0,class:"upload-status uploading"},fi={key:1,class:"upload-status pending"},pi={key:2,class:"upload-status failed"},yi={class:"document-type"},_i={class:"document-actions"},hi=["href","title","onClick"],gi=["onClick","title"],Ci=["onClick","disabled","title"],$i={key:7,class:"alert alert-danger mt-3",role:"alert"},Ii=L({__name:"AttachmentsPane",props:{entityType:{}
2,entityId:{},canManage:{type:Boolean},hideList:{type:Boolean,default:!1},validateFile:{type:Function,default:void 0}},emits:["uploaded","validation-error"],setup(e,{expose:s,emit:a}){const d=e,n=a,{t:l}=O(),{confirm:v}=pe(),{upload:p,list:_,remove:y}=Bs(),g=qs({thumbnails:!0}),{getResolvedUrl:h,resolveAttachments:k,openAttachment:m,viewingImageUrl:r,closeViewer:u}=g,b=w([]);H(b,A=>{A.length>0&&k(A)},{deep:!0});const $=w(!1),C=w(null),T=w(null),R=w(0),q=w(null),ee=D(()=>!q.value||q.value.quotaBytes===null?!1:q.value.remainingBytes!==null&&q.value.remainingBytes<=0),ue=D(()=>!q.value||q.value.percentUsed===null?!1:q.value.percentUsed>=90),M=async()=>{try{q.value=await Vs.getAttachmentQuota()}catch(A){console.error("Failed to load attachment quota:",A)}},S=w(new Map),F=D(()=>b.value.filter(A=>{var E;return(E=A.contentType)==null?void 0:E.startsWith("image/")})),W=D(()=>b.value.filter(A=>{var E;return!((E=A.contentType)!=null&&E.startsWith("image/"))})),ve=D(()=>`attachments-input-${d.entityType}-${d.entityId}`);async function we(){if(d.entityId){$.value=!0,C.value=null;try{b.value=await _(d.entityType,d.entityId)}catch(A){console.error("Failed to load attachments:",A),C.value=l("shared.attachmentsPane.loadError")}finally{$.value=!1}}}async function he(A){if(!(!d.entityId||A.length===0)){R.value=A.length,C.value=null;try{for(const E of Array.from(A)){const z=E.name+"_"+E.size;S.value.set(z,"pending");try{if(S.value.set(z,"uploading"),d.validateFile){const le=d.validateFile(E);if(le){n("validation-error",le),S.value.delete(z);continue}}const P=await p(d.entityType,d.entityId,E);b.value.push(P),n("uploaded",P),ft("document_uploaded",{entity_type:d.entityType,size_bytes:E.size}),S.value.set(z,"uploaded"),setTimeout(()=>{S.value.delete(z)},2e3)}catch(P){console.error(`Failed to upload ${E.name}:`,P),C.value=l("shared.attachmentsPane.uploadError",{filename:E.name}),S.value.set(z,"failed")}R.value--}}finally{R.value=0,M()}}}function X(A){for(const[E,z]of S.value.entries())if(typeof E=="string"&&E.startsWith(A.filename))return z;return null}async function ge(A){for(const[E]of S.value.entries())if(typeof E=="string"&&E.startsWith(A.filename)){S.value.delete(E);break}C.value=l("shared.attachmentsPane.retryNotAvailable")}async function Ce(A){if(!(!A.id||T.value!==null||!await v({message:l("shared.attachmentsPane.confirmDelete",{filename:A.filename}),variant:"danger"}))){T.value=A.id,C.value=null;try{await y(A.id),b.value=b.value.filter(z=>z.id!==A.id)}catch(z){console.error("Failed to delete attachment:",z),C.value=l("shared.attachmentsPane.deleteError")}finally{T.value=null}}}function se(A){const E=A.target;E.files&&E.files.length>0&&he(E.files),E.value=""}function G(A){var z;const E=(z=A.dataTransfer)==null?void 0:z.files;E&&E.length>0&&he(E)}function J(A){return A<1024?`${A} B`:A<1048576?`${(A/1024).toFixed(1)} KB`:A<1073741824?`${(A/1048576).toFixed(1)} MB`:`${(A/1073741824).toFixed(1)} GB`}function be(A,E=20){if(A.length<=E)return A;const z=A.split(".").pop()||"";return`${A.slice(0,-(z.length+1)).slice(0,E-z.length-4)+"..."}.${z}`}function De(A){return A?A.includes("pdf")?"bi bi-file-earmark-pdf text-danger":A.includes("word")||A.includes("document")?"bi bi-file-earmark-word text-primary":A.includes("excel")||A.includes("spreadsheet")?"bi bi-file-earmark-excel text-success":A.includes("zip")||A.includes("archive")?"bi bi-file-earmark-zip text-warning":"bi bi-file-earmark":"bi bi-file-earmark"}function at(A){const E=l("shared.attachmentsPane.documentTypeGeneric");return A?A.includes("pdf")?"PDF":A.includes("word")||A.includes("document")?"Word":A.includes("excel")||A.includes("spreadsheet")?"Excel":A.includes("zip")?"ZIP":E:E}return ke(()=>{we(),M()}),s({inputId:ve,uploadingCount:R}),(A,E)=>{const z=it("activatable");return i(),c("div",Cl,[e.canManage?(i(),c("input",{key:0,id:ve.value,type:"file",multiple:"",accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx",class:"file-input",disabled:R.value>0||ee.value,onChange:se},null,40,$l)):I("",!0),e.canManage&&q.value&&q.value.quotaBytes!==null&&(ee.value||ue.value)?(i(),c("div",{key:1,class:V(["alert mb-3",ee.value?"alert-warning":"alert-info"])},[o("i",{class:V(["bi me-1",ee.value?"bi-exclamation-triangle-fill":"bi-info-circle"])},null,2),B(" "+f(t(l)("shared.attachmentsPane.quotaUsed"))+" "+f(J(q.value.usedBytes))+" / "+f(J(q.value.quotaBytes))+" ",1),ee.value?(i(),c("span",Il,f(t(l)("common.enDash"))+" "+f(t(l)("shared.attachmentsPane.quotaExceeded")),1
2)):I("",!0)],2)):I("",!0),e.canManage?(i(),c("div",Tl,[o("label",{class:V(["upload-dropzone",{disabled:R.value>0||ee.value}]),for:ve.value,onDragover:E[0]||(E[0]=Y(()=>{},["prevent"])),onDrop:Y(G,["prevent"])},[o("div",wl,[E[2]||(E[2]=o("i",{class:"bi bi-cloud-upload fs-1 text-muted"},null,-1)),o("p",Dl,f(t(l)("shared.attachmentsPane.dropzoneTitle")),1),o("small",Al,f(t(l)("shared.attachmentsPane.dropzoneHint")),1)])],42,El)])):I("",!0),$.value&&b.value.length===0?(i(),c("div",Sl,[o("div",Pl,[o("span",Rl,f(t(l)("common.loading")),1)]),o("p",Ol,f(t(l)("common.loading")),1)])):b.value.length===0&&!e.hideList?(i(),c("div",xl,[E[3]||(E[3]=o("i",{class:"bi bi-folder2-open fs-1 text-muted"},null,-1)),o("p",Ml,f(t(l)("shared.attachmentsPane.emptyTitle")),1),o("p",Nl,[ot(A.$slots,"empty-description",{},()=>[B(f(t(l)("shared.attachmentsPane.emptyDescription")),1)],!0)])])):I("",!0),R.value>0?(i(),c("div",Fl,[o("div",Ll,[o("span",Ul,f(t(l)("common.upload")),1)]),o("span",jl,f(t(l)("shared.attachmentsPane.uploadingWithCount",{count:R.value})),1)])):I("",!0),b.value.length>0&&!e.hideList?(i(),c("div",Bl,[F.value.length>0?(i(),c("div",ql,[o("h4",Kl,[E[4]||(E[4]=o("i",{class:"bi bi-image me-2"},null,-1)),B(" "+f(t(l)("shared.attachmentsPane.photosSection"))+" ("+f(F.value.length)+") ",1)]),o("div",Vl,[(i(!0),c(N,null,K(F.value,P=>(i(),c("div",{key:P.id,class:"image-card"},[X(P)?(i(),c("div",zl,[X(P)==="uploading"?(i(),c("div",Wl,[o("div",Gl,[o("span",Jl,f(t(l)("common.upload")),1)]),o("span",null,f(t(l)("shared.attachmentsPane.uploadingInline")),1)])):X(P)==="pending"?(i(),c("div",Yl,[E[5]||(E[5]=o("i",{class:"bi bi-clock-history me-1"},null,-1)),o("span",null,f(t(l)("shared.attachmentsPane.uploadPending")),1)])):X(P)==="failed"?(i(),c("div",Hl,[E[6]||(E[6]=o("i",{class:"bi bi-exclamation-triangle me-1"},null,-1)),o("span",null,f(t(l)("shared.attachmentsPane.uploadFailed")),1),e.canManage?(i(),c("button",{key:0,onClick:Y(le=>ge(P),["stop"]),class:"btn btn-sm btn-outline-light mt-2"},f(t(l)("shared.attachmentsPane.uploadRetry")),9,Ql)):I("",!0)])):I("",!0)])):I("",!0),de((i(),c("div",{class:"image-preview",onClick:le=>t(m)(P)},[P.downloadUrl&&t(g).isResolved(P)?(i(),c("img",{key:0,src:t(h)(P),alt:P.filename,loading:"lazy"},null,8,Zl)):(i(),c("div",ei,[...E[7]||(E[7]=[o("i",{class:"bi bi-image"},null,-1)])]))],8,Xl)),[[z]]),e.canManage?(i(),c("div",ti,[o("span",{class:"filename",title:P.filename},f(be(P.filename)),9,si),o("button",{class:"btn btn-sm btn-outline-danger",onClick:Y(le=>Ce(P),["stop"]),disabled:T.value===P.id||X(P)==="uploading",title:t(l)("shared.attachmentsPane.deleteTitle")},[...E[8]||(E[8]=[o("i",{class:"bi bi-trash"},null,-1)])],8,ai)])):(i(),c("div",ni,[o("span",{class:"filename",title:P.filename},f(be(P.filename)),9,li)]))]))),128))])])):I("",!0),W.value.length>0?(i(),c("div",ii,[o("h4",oi,[E[9]||(E[9]=o("i",{class:"bi bi-file-earmark me-2"},null,-1)),B(" "+f(t(l)("shared.attachmentsPane.documentsSection"))+" ("+f(W.value.length)+") ",1)]),o("div",di,[(i(!0),c(N,null,K(W.value,P=>(i(),c("div",{key:P.id,class:V(["document-item",{"document-item--uploading":X(P)==="uploading"}])},[o("div",ri,[o("i",{class:V(De(P.contentType))},null,2)]),o("div",ci,[o("div",ui,[P.downloadUrl?(i(),c("a",{key:0,href:t(h)(P),target:"_blank",rel:"noopener noreferrer",class:"document-name",title:P.filename,onClick:Y(le=>t(m)(P),["prevent"])},f(P.filename),9,mi)):(i(),c("span",{key:1,class:"document-name document-name--no-url",title:P.filename},f(P.filename),9,ki)),X(P)?(i(),c("span",vi,[X(P)==="uploading"?(i(),c("span",bi,[E[10]||(E[10]=o("span",{class:"spinner-border spinner-border-sm me-1",role:"status"},null,-1)),B(" "+f(t(l)("shared.attachmentsPane.uploadingInline")),1)])):X(P)==="pending"?(i(),c("span",fi,[E[11]||(E[11]=o("i",{class:"bi bi-clock-history me-1"},null,-1)),B(" "+f(t(l)("shared.attachmentsPane.uploadPending")),1)])):X(P)==="failed"?(i(),c("span",pi,[E[12]||(E[12]=o("i",{class:"bi bi-exclamation-triangle me-1"},null,-1)),B(" "+f(t(l)("shared.attachmentsPane.uploadFailed")),1)])):I("",!0)])):I("",!0)]),o("span",yi,f(at(P.contentType)),1)]),o("div",_i,[P.downloadUrl?(i(),c("a",{key:0,href:t(h)(P),target:"_blank",rel:"noopener noreferrer",class:"btn btn-sm btn-outline-primary",title:t(l)("shared.attachmentsPane.downloadTitle"),onClick:Y(le=>t(m)(P),["prevent"])},[...E[13]||(E[13]=[o("i",{class:"bi bi-download"},null,-1)])],8,hi)):I("",!0),X(P)==="failed"&&e.canManage?(i(),c("button",{key:1,onClick:le=>ge(P),class:"btn btn-sm btn-outline-warning",title:t(l)("shared.attachmentsPane.retryUploadTitle")},[...E[14]||(E[14]=[o("i",{class:"bi bi-arrow-clockwise"},null,-1)])],8,gi)):I("",!0),e.canManage?(i(),c("button",{key:2,class:"btn btn-sm btn-outline-danger",onClick:le=>Ce(P),disabled:T.value===P.id||X(P)==="uploading",title:t(l)("shared.attachmentsPane.deleteTitle")},[...E[15]||(E[15]=[o("i",{class:"bi bi-trash"},null,-1)])],8,Ci)):I("",!0)])],2))),128))])])):I("",!0)])):I("",!0),C.value?(i(),c("div",$i,[B(f(C.value)+" ",1),o("button",{type:"button",class:"btn-close",onClick:E[1]||(E[1]=P=>C.value=null),"aria-label":"Close"}
2)])):I("",!0),x(Ks,{visible:!!t(r),src:t(r)??"",onClose:t(u)},null,8,["visible","src","onClose"])])}}}),Ti=U(Ii,[["__scopeId","data-v-59cca500"]]),Ei={class:"td-doc"},wi={class:"td-doc__text"},Di={class:"td-doc__title"},Ai={class:"td-doc__type"},Si={key:0,class:"td-doc__number"},Pi={key:0,class:"td-doc__label"},Ri=L({__name:"TaskDocumentInfo",props:{doc:{}},setup(e){const s=e,{t:a}=O(),d=D(()=>Na(s.doc)),n=D(()=>Ma(s.doc.status)),l=D(()=>{const v=Oa(s.doc.docType,s.doc.status);return v?a(v):s.doc.status??""});return(v,p)=>(i(),c("span",Ei,[o("i",{class:V(["bi td-doc__icon",t(Sa)(e.doc.docType)]),"aria-hidden":"true"},null,2),o("span",wi,[o("span",Di,[o("span",Ai,f(t(a)(t(tt)(e.doc.docType))),1),e.doc.number?(i(),c("strong",Si,f(e.doc.number),1)):I("",!0)]),d.value?(i(),c("span",Pi,f(d.value),1)):I("",!0)]),l.value?(i(),j(ce,{key:0,class:"td-doc__status",severity:n.value,label:l.value,size:"sm"},null,8,["severity","label"])):I("",!0)]))}}),Se=U(Ri,[["__scopeId","data-v-c1b4d2b5"]]),Oi=250;function xi(e){const s=w(e.initialType),a=w(""),d=w([]),n=w(!1),l=w(!1),v=w(!1);let p=0,_=null;function y(){_!==null&&clearTimeout(_),_=null}async function g(){y();const k=e.publicId();if(!k)return;const m=++p;n.value=!0,v.value=!1;try{const r=await fe.documentCandidates(k,s.value,a.value.trim());if(m!==p)return;d.value=Array.isArray(r)?r:[],l.value=!0}catch(r){if(m!==p)return;console.error("Failed to search documents for a task",k,s.value,r),d.value=[],v.value=!0}finally{m===p&&(n.value=!1)}}function h(){y(),_=setTimeout(()=>{_=null,g()},Oi)}return H(s,()=>void g()),H(a,h),dt(()=>{y(),p+=1}),{docType:s,query:a,results:d,searching:n,searched:l,failed:v,search:g}}const Mi=["aria-label"],Ni={class:"td-docpick__bar"},Fi=["aria-label"],Li=["value"],Ui=["disabled","placeholder","aria-label"],ji=["aria-label","title"],Bi={key:0,class:"td-docpick__state"},qi={key:1,class:"td-docpick__state",role:"status"},Ki={key:2,class:"td-docpick__state",role:"alert"},Vi={key:3,class:"td-docpick__state"},zi={key:4,class:"td-docpick__list"},Wi=["disabled","onClick"],Gi={key:0,class:"td-docpick__done"},Ji={key:1,class:"spinner-border spinner-border-sm td-docpick__busy",role:"status"},Yi={key:2,class:"bi bi-plus-lg td-docpick__add","aria-hidden":"true"},Hi=L({__name:"TaskDocumentPicker",props:{task:{},links:{},isLinking:{type:Function}},emits:["pick","close"],setup(e,{emit:s}){const a=e,d=s,{t:n}=O(),{documentManagementEnabled:l}=Ze(),v=D(()=>Da(l.value)),p=D(()=>Fa(a.task)),_=w(null),{docType:y,query:g,results:h,searching:k,searched:m,failed:r,search:u}=xi({publicId:()=>p.value?a.task.publicId:null,initialType:v.value[0]??"QUOTE"});function b($){return Ae(a.links,$)}return ke(()=>{var $;p.value&&(($=_.value)==null||$.focus(),u())}),($,C)=>(i(),c("div",{class:"td-docpick",role:"group","aria-label":t(n)("modules.tasks.detail.documents.link"),"data-testid":"task-detail-documents-picker",onKeydown:C[4]||(C[4]=ae(Y(T=>d("close"),["stop"]),["esc"]))},[o("div",Ni,[de(o("select",{"onUpdate:modelValue":C[0]||(C[0]=T=>Oe(y)?y.value=T:null),class:"form-select form-select-sm td-docpick__type","aria-label":t(n)("modules.tasks.detail.documents.typeLabel"),"data-testid":"task-detail-documents-type"},[(i(!0),c(N,null,K(v.value,T=>(i(),c("option",{key:T,value:T},f(t(n)(t(tt)(T))),9,Li))),128))],8,Fi),[[rt,t(y)]]),de(o("input",{ref_key:"searchEl",ref:_,"onUpdate:modelValue":C[1]||(C[1]=T=>Oe(g)?g.value=T:null),type:"search",class:"form-control form-control-sm td-docpick__search",maxlength:"100",disabled:!p.value,placeholder:t(n)("modules.tasks.detail.documents.searchPlaceholder"),"aria-label":t(n)("modules.tasks.detail.documents.searchPlaceholder"),"data-testid":"task-detail-documents-search"},null,8,Ui),[[me,t(g)]]),o("button",{type:"button",class:"td-docpick__close","aria-label":t(n)("common.close"),title:t(n)("common.close"),onClick:C[2]||(C[2]=T=>d("close"))},[...C[5]||(C[5]=[o("i",{class:"bi bi-x-lg","aria-hidden":"true"},null,-1)])],8,ji)]),p.value?t(k)&&t(h).length===0?(i(),c("p",qi,f(t(n)("common.loading")),1)):t(r)?(i(),c("div",Ki,[o("span",null,f(t(n)("modules.tasks.detail.documents.errors.searchFailed")),1),o("button",{type:"button",class:"btn btn-sm btn-outline-secondary",onClick:C[3]||(C[3]=(...T)=>t(u)&&t(u)(...T))},f(t(n)("common.retry")),1)])):t(m)&&t(h).length===0?(i(),c("p",Vi,f(t(n)("common.noResults")),1)):(i(),c("ul",zi,[(i(!0),c(N,null,K(t(h),T=>(i(),c("li",{key:t(ye)(T)},[o("button",{type:"button",class:"td-docpick__option",disabled:b(T)||e.isLinking(T),"data-testid":"task-detail-documents-candidate",onClick:R=>d("pick",T)},[x(Se,{doc:T},null,8,["doc"]),b(T)?(i(),c("span",Gi,[C[6]||(C[6]=o("i",{class:"bi bi-check-lg","aria-hidden":"true"},null,-1)),B(" "+f(t(n)("modules.tasks.detail.documents.linked")),1
2)])):e.isLinking(T)?(i(),c("span",Ji)):(i(),c("i",Yi))],8,Wi)]))),128))])):(i(),c("p",Bi,f(t(n)("modules.tasks.detail.documents.noScope")),1))],40,Mi))}}),Qi=U(Hi,[["__scopeId","data-v-7b5ed6c5"]]),Xi=["aria-label"],Zi={class:"td-docs__head"},eo={class:"td-docs__title"},to={key:1,class:"td-docs__state",role:"status"},so={key:2,class:"td-docs__state",role:"alert"},ao={key:3,class:"td-docs__state"},no={key:4,class:"td-docs__list"},lo={key:1,class:"td-docs__open td-docs__open--static","data-testid":"task-detail-document"},io=["aria-label","title","onClick"],oo=L({__name:"TaskDocumentLinks",props:{task:{}},setup(e){const{t:s}=O(),a=Ve(),{documents:d}=Q(),{links:n,loading:l,loadFailed:v,load:p,link:_,unlink:y,isLinking:g}=d,h=w(!1);function k(r){try{return a.resolve(r).matched.length>0}catch{return!1}}const m=D(()=>new Map(n.value.map(r=>[r.id,La(r,k)])));return(r,u)=>{const b=_e("RouterLink");return i(),c("section",{class:"td-docs","aria-label":t(s)("modules.tasks.detail.documents.title"),"data-testid":"task-detail-documents"},[o("header",Zi,[o("h3",eo,f(t(s)("modules.tasks.detail.documents.title")),1),e.task.canEdit&&!h.value?(i(),c("button",{key:0,type:"button",class:"btn btn-sm btn-outline-secondary td-docs__link","data-testid":"task-detail-documents-link",onClick:u[0]||(u[0]=$=>h.value=!0)},[u[3]||(u[3]=o("i",{class:"bi bi-link-45deg","aria-hidden":"true"},null,-1)),B(" "+f(t(s)("modules.tasks.detail.documents.link")),1)])):I("",!0)]),h.value?(i(),j(Qi,{key:0,task:e.task,links:t(n),"is-linking":t(g),onPick:t(_),onClose:u[1]||(u[1]=$=>h.value=!1)},null,8,["task","links","is-linking","onPick"])):I("",!0),t(l)&&t(n).length===0?(i(),c("p",to,f(t(s)("common.loading")),1)):t(v)?(i(),c("div",so,[o("span",null,f(t(s)("modules.tasks.detail.documents.errors.loadFailed")),1),o("button",{type:"button",class:"btn btn-sm btn-outline-secondary",onClick:u[2]||(u[2]=(...$)=>t(p)&&t(p)(...$))},f(t(s)("common.retry")),1)])):t(n).length===0?(i(),c("p",ao,f(t(s)("modules.tasks.detail.documents.empty")),1)):(i(),c("ul",no,[(i(!0),c(N,null,K(t(n),$=>(i(),c("li",{key:$.id,class:"td-docs__item"},[m.value.get($.id)?(i(),j(b,{key:0,to:m.value.get($.id),class:"td-docs__open",title:t(s)("modules.tasks.detail.documents.open"),"data-testid":"task-detail-document"},{default:oe(()=>[x(Se,{doc:$},null,8,["doc"]),u[4]||(u[4]=o("i",{class:"bi bi-arrow-right-short td-docs__arrow","aria-hidden":"true"},null,-1))]),_:2},1032,["to","title"])):(i(),c("span",lo,[x(Se,{doc:$},null,8,["doc"])])),e.task.canEdit?(i(),c("button",{key:2,type:"button",class:"td-docs__remove","aria-label":t(s)("modules.tasks.detail.documents.remove"),title:t(s)("modules.tasks.detail.documents.remove"),"data-testid":"task-detail-document-remove",onClick:C=>t(y)($)},[...u[5]||(u[5]=[o("i",{class:"bi bi-x-lg","aria-hidden":"true"},null,-1)])],8,io)):I("",!0)]))),128))]))],8,Xi)}}}),ro=U(oo,[["__scopeId","data-v-e7e169a3"]]),co={class:"td-attachments"},uo=L({__name:"TaskDetailAttachments",props:{task:{}},emits:["uploaded"],setup(e,{emit:s}){const a=s;return(d,n)=>(i(),c("div",co,[x(ro,{task:e.task},null,8,["task"]),x(Ti,{"entity-type":"TASK","entity-id":e.task.id,"can-manage":e.task.canEdit,onUploaded:n[0]||(n[0]=l=>a("uploaded"))},null,8,["entity-id","can-manage"])]))}}),mo=U(uo,[["__scopeId","data-v-4ae2d6c1"]]);function ko(e,s){const a=w(e());let d=0;H(e,l=>{d===0&&(a.value=l)});async function n(l){a.value=l,d+=1;try{return await s(l)}finally{d-=1,d===0&&(a.value=e())}}return{value:a,set:n}}const vo=["checked","disabled"],bo=L({__name:"TaskChecklistOnCardToggle",props:{checked:{type:Boolean},canEdit:{type:Boolean}},setup(e){const s=e,{t:a}=O(),{patch:d}=Q(),{value:n,set:l}=ko(()=>s.checked,p=>d({checklistOnCard:p}));async function v(p){const _=p.target;await l(_.checked),_.checked=n.value}return(p,_)=>(i(),c("label",{class:V(["td-oncard",{"td-oncard--disabled":!e.canEdit}])},[o("input",{type:"checkbox",class:"form-check-input td-oncard__box",checked:t(n),disabled:!e.canEdit,"data-testid":"task-detail-checklist-on-card",onChange:v},null,40,vo),o("span",null,f(t(a)("modules.tasks.detail.checklist.showOnCard")),1)],2))}}),fo=U(bo,[["__scopeId","data-v-36752408"]]),po={class:"td-checklist"},yo={class:"td-checklist__head"},_o={class:"td-checklist__title"},ho={key:0,class:"td-checklist__progress","data-testid":"task-detail-checklist-progress"},go=["data-id"],Co=["title"],$o=["disabled","aria-pressed","aria-label","onClick"],Io={key:0,class:"bi bi-check-lg","aria-hidden":"true"},To=["aria-label","onKeydown","onBlur"],Eo=["disabled","title","onClick"],wo=["aria-label","t
2itle","onClick"],Do=["placeholder","aria-label"],Ao=L({__name:"TaskDetailChecklist",props:{canEdit:{type:Boolean},onCard:{type:Boolean}},setup(e){const{t:s}=O(),{checklist:a}=Q(),{items:d,doneCount:n,totalCount:l,isFull:v,toggle:p,remove:_}=a,y=w(null),g=w(null),h=w(""),k=w(null),m=w(""),r=w(0),{initSortable:u,destroy:b}=zs({onReorder:async M=>{const S=M.map(Number).filter(F=>Number.isFinite(F));r.value+=1,await a.reorder(S)}});function $(M){b(),M&&d.value.length>1&&u(M,{handle:".td-checklist__handle",animation:150})}ke(()=>$(y.value)),H([y,()=>d.value.length],()=>$(y.value));const C=Ws({save:M=>a.add(M),onFailed:M=>{h.value.trim()||(h.value=M)}});function T(){var S;const M=h.value;M.trim()&&(h.value="",C.enqueue(M),(S=g.value)==null||S.focus())}async function R(M){var S,F;k.value=M.id,m.value=M.text,await Pe(),(F=(S=y.value)==null?void 0:S.querySelector(".td-checklist__edit"))==null||F.focus()}function q(M){k.value===M.id&&(k.value=null,a.rename(M,m.value))}function ee(){k.value=null}function ue(M){M.target.blur()}return(M,S)=>(i(),c("section",po,[o("header",yo,[o("h3",_o,f(t(s)("modules.tasks.detail.checklist.title")),1),t(l)>0?(i(),c("span",ho,f(t(s)("modules.tasks.detail.checklist.progress",{done:t(n),total:t(l)})),1)):I("",!0),x(fo,{checked:e.onCard,"can-edit":e.canEdit},null,8,["checked","can-edit"])]),(i(),c("ul",{ref_key:"listEl",ref:y,key:r.value,class:"td-checklist__list"},[(i(!0),c(N,null,K(t(d),F=>(i(),c("li",{key:F.id,"data-id":F.id,class:V(["td-checklist__item",{"td-checklist__item--done":F.done}])},[e.canEdit?(i(),c("span",{key:0,class:"td-checklist__handle",title:t(s)("modules.tasks.detail.checklist.dragHandle"),"aria-hidden":"true"},[...S[3]||(S[3]=[o("i",{class:"bi bi-grip-vertical"},null,-1)])],8,Co)):I("",!0),o("button",{type:"button",class:"td-checklist__circle",disabled:!e.canEdit,"aria-pressed":F.done,"aria-label":F.done?t(s)("modules.tasks.detail.checklist.markOpen"):t(s)("modules.tasks.detail.checklist.markDone"),onClick:W=>t(p)(F)},[F.done?(i(),c("i",Io)):I("",!0)],8,$o),k.value===F.id?de((i(),c("input",{key:1,"onUpdate:modelValue":S[0]||(S[0]=W=>m.value=W),type:"text",class:"form-control form-control-sm td-checklist__edit",maxlength:"500","aria-label":t(s)("modules.tasks.detail.checklist.rename"),onKeydown:[ae(Y(ue,["prevent"]),["enter"]),ae(Y(ee,["stop"]),["esc"])],onBlur:W=>q(F)},null,40,To)),[[me,m.value]]):(i(),c("button",{key:2,type:"button",class:"td-checklist__text",disabled:!e.canEdit,title:e.canEdit?t(s)("modules.tasks.detail.checklist.rename"):void 0,onClick:W=>R(F)},f(F.text),9,Eo)),e.canEdit?(i(),c("button",{key:3,type:"button",class:"td-checklist__delete","aria-label":t(s)("modules.tasks.detail.checklist.remove"),title:t(s)("modules.tasks.detail.checklist.remove"),onClick:W=>t(_)(F)},[...S[4]||(S[4]=[o("i",{class:"bi bi-trash","aria-hidden":"true"},null,-1)])],8,wo)):I("",!0)],10,go))),128))])),e.canEdit&&!t(v)?(i(),c("form",{key:0,class:"td-checklist__add",onSubmit:Y(T,["prevent"])},[S[5]||(S[5]=o("i",{class:"bi bi-plus-circle","aria-hidden":"true"},null,-1)),de(o("input",{ref_key:"newInput",ref:g,"onUpdate:modelValue":S[1]||(S[1]=F=>h.value=F),type:"text",class:"td-checklist__add-input",maxlength:"500",placeholder:t(s)("modules.tasks.detail.checklist.add"),"aria-label":t(s)("modules.tasks.detail.checklist.add"),"data-testid":"task-detail-checklist-add",onKeydown:S[2]||(S[2]=ae(Y(F=>h.value="",["stop"]),["esc"]))},null,40,Do),[[me,h.value]])],32)):I("",!0)]))}}),So=U(Ao,[["__scopeId","data-v-518260a5"]]),Po={class:"td-description"},Ro=["for"],Oo=["id","readonly","placeholder","onKeydown"],xo=L({__name:"TaskDetailDescription",props:{task:{}},setup(e){const s=e,{t:a}=O(),{patch:d}=Q(),n=D(()=>`task-detail-description-${s.task.publicId}`),l=w(s.task.description??""),v=w(!1);H(()=>s.task.description,y=>{v.value||(l.value=y??"")});function p(){v.value=!1;const y=Ge(l.value)===null?null:l.value.trimEnd();!s.task.canEdit||y===(s.task.description??null)||d({description:y})}function _(y){l.value=s.task.description??"",y.target.blur()}return(y,g)=>(i(),c("section",Po,[o("label",{class:"td-description__title",for:n.value},f(t(a)("common.description")),9,Ro),de(o("textarea",{id:n.value,"onUpdate:modelValue":g[0]||(g[0]=h=>l.value=h),class:"form-control form-control-sm td-description__input",rows:"4",readonly:!e.task.canEdit,placeholder:t(a)("modules.tasks.detail.descriptionPlaceholder"),"data-testid":"task-detail-description",onFocus:g[1]||(g[1]=h=>v.value=!0),onBlur:p,onKeydown:ae(Y(_,["stop"]),["esc"])},null,40,Oo),[[me,l.value]])]))}}),Mo=U(xo,[["__scopeId","data-v-a7994c8b"]]),No={class:"td-fields"},Fo={class:"td-fields__field"},Lo={class:"td-fields__label"},Uo=["value","disabled"],jo={key:0,value:""},Bo=["value"],qo={class:"td-fields__field"},Ko={class:"td-fields__label"},Vo=["value","disabled"],zo=["value"],Wo={class:"td-fields__field"},Go={class:"td-fields__label"},Jo=["value","disabled"],Yo={class:"td-fields__field"},Ho={class:"td-fields__label"},Qo=["value","disabled"],Xo={class:"td-fields__field"},Zo={class:"td-fields__label"},ed=["value","disabled"],td={class:"td-fields__field"},sd={class:"td-fields__label"},ad=["value","disabled"],nd=["value"],ld={class:"td-fields__field"},id={class:"td-fields__label"},od=["value","disabled"],dd=["value","disabled"],rd={class:"td-fields__field"},cd={class:"td-fields__label"},ud=["value","disabled"],md=["value"],kd=L({__name:"TaskDetailFields",props:{task:{},board:{}}
2,setup(e){const s=e,{t:a}=O(),{patch:d}=Q(),n=D(()=>Et(s.task,s.board)),l=D(()=>n.value?wt(s.board):[]),v=D(()=>n.value?We(s.task,s.board):null);function p(k){return k.target.value}function _(k){const m=Number(p(k));!s.board||!Number.isFinite(m)||m===v.value||d(Ft(s.board,m))}function y(k,m,r){const u=p(r);u!==m&&d({[k]:u})}function g(k,m,r){const u=Lt(p(r));u!==(m??null)&&d(k==="startDate"?{startDate:u}:{dueDate:u})}function h(k){const m=Ut(p(k));m!==(s.task.followUpAt??null)&&d({followUpAt:m})}return(k,m)=>(i(),c("section",No,[o("label",Fo,[o("span",Lo,f(t(a)("modules.tasks.detail.fields.bucket")),1),o("select",{class:"form-select form-select-sm",value:v.value??"",disabled:!e.task.canEdit||!n.value,"data-testid":"task-detail-bucket",onChange:_},[n.value?I("",!0):(i(),c("option",jo,f(t(a)("common.emDash")),1)),(i(!0),c(N,null,K(l.value,r=>(i(),c("option",{key:r.id,value:r.id},f(r.name),9,Bo))),128))],40,Uo)]),o("label",qo,[o("span",Ko,f(t(a)("modules.tasks.filter.priority.label")),1),o("select",{class:"form-select form-select-sm",value:e.task.priority,disabled:!e.task.canEdit,onChange:m[0]||(m[0]=r=>y("priority",e.task.priority,r))},[(i(!0),c(N,null,K(t(At),r=>(i(),c("option",{key:r,value:r},f(t(a)(t(Dt)(r))),9,zo))),128))],40,Vo)]),o("label",Wo,[o("span",Go,f(t(a)("modules.tasks.detail.fields.startDate")),1),o("input",{type:"date",class:"form-control form-control-sm",value:e.task.startDate??"",disabled:!e.task.canEdit,onChange:m[1]||(m[1]=r=>g("startDate",e.task.startDate,r))},null,40,Jo)]),o("label",Yo,[o("span",Ho,f(t(a)("modules.tasks.detail.fields.dueDate")),1),o("input",{type:"date",class:"form-control form-control-sm",value:e.task.dueDate??"",disabled:!e.task.canEdit,"data-testid":"task-detail-due",onChange:m[2]||(m[2]=r=>g("dueDate",e.task.dueDate,r))},null,40,Qo)]),o("label",Xo,[o("span",Zo,f(t(a)("modules.tasks.detail.fields.followUpAt")),1),o("input",{type:"datetime-local",class:"form-control form-control-sm",value:t(St)(e.task.followUpAt),disabled:!e.task.canEdit,"data-testid":"task-detail-follow-up",onChange:h},null,40,ed)]),o("label",td,[o("span",sd,f(t(a)("modules.tasks.detail.fields.recurrence")),1),o("select",{class:"form-select form-select-sm",value:e.task.recurrence,disabled:!e.task.canEdit,onChange:m[3]||(m[3]=r=>y("recurrence",e.task.recurrence,r))},[(i(!0),c(N,null,K(t(Rt),r=>(i(),c("option",{key:r,value:r},f(t(a)(t(Pt)(r))),9,nd))),128))],40,ad)]),o("label",ld,[o("span",id,f(t(a)("common.status")),1),o("select",{class:"form-select form-select-sm",value:e.task.status,disabled:!e.task.canEdit,"data-testid":"task-detail-status",onChange:m[4]||(m[4]=r=>y("status",e.task.status,r))},[(i(!0),c(N,null,K(t(xt),r=>(i(),c("option",{key:r,value:r,disabled:t(Je)(r)&&!e.task.canResolve&&r!==e.task.status},f(t(a)(t(Ot)(r))),9,dd))),128))],40,od)]),o("label",rd,[o("span",cd,f(t(a)("common.type")),1),o("select",{class:"form-select form-select-sm",value:e.task.type,disabled:!e.task.canEdit,"data-testid":"task-detail-type",onChange:m[5]||(m[5]=r=>y("type",e.task.type,r))},[(i(!0),c(N,null,K(t(Nt),r=>(i(),c("option",{key:r,value:r},f(t(a)(t(Mt)(r))),9,md))),128))],40,ud)])]))}}),vd=U(kd,[["__scopeId","data-v-8d88f4e1"]]);function st(e,s){const a=w([...e()]);let d=0;H(()=>e(),v=>{d===0&&(a.value=[...v])});async function n(v){a.value=v,d+=1;try{return await s(v)}finally{d-=1,d===0&&(a.value=[...e()])}}function l(v){return n(jt(a.value,v))}return{ids:a,toggle:l,commit:n}}const bd={key:0,class:"td-people__none"},fd=["title"],pd={class:"td-people__name"},yd=["aria-label","onClick"],_d=["aria-expanded"],hd={key:0},gd={key:2,class:"td-people__menu"},Cd=["placeholder","aria-label"],$d=["aria-label"],Id=["aria-selected"],Td=["onClick"],Ed={key:0,class:"td-people__empty"},wd=L({__name:"TaskDetailAssignees",props:{task:{}},setup(e){const s=e,{t:a}=O(),{patch:d,members:n,loadMembers:l}=Q(),v=w(null),p=w(null),_=w(""),{open:y,toggle:g,close:h}=Re(v),{ids:k,toggle:m}=st(()=>s.task.assigneeIds,C=>d({assigneeIds:C}));function r(C){m(C)}const u=D(()=>k.value.map(C=>{const T=s.task.assignees.find(q=>q.id===C);if(T)return T;const R=n.value.find(q=>q.employeeId===C);return{id:C,name:(R==null?void 0:R.name)??"",initials:""}})),b=D(()=>{const C=_.value.trim().toLowerCase();return C?n.value.filter(T=>T.name.toLowerCase().includes(C)):n.value});async function $(){var C;g(),y.value&&(_.value="",l(),await Pe(),(C=p.value)==null||C.focus())}return(C,T)=>(i(),c("div",{ref_key:"root",ref:v,class:"td-people",onKeydown:T[1]||(T[1]=ae(Y((...R)=>t(h)&&t(h)(...R),["stop"]),["esc"]))}
2,[T[4]||(T[4]=o("i",{class:"bi bi-person-plus td-people__icon","aria-hidden":"true"},null,-1)),u.value.length===0&&!e.task.canEdit?(i(),c("span",bd,f(t(a)("modules.tasks.detail.assignees.none")),1)):I("",!0),(i(!0),c(N,null,K(u.value,(R,q)=>(i(),c("span",{key:R.id,class:V(["td-people__chip",{"td-people__chip--primary":q===0&&u.value.length>1}]),title:q===0&&u.value.length>1?t(a)("modules.tasks.detail.assignees.primary"):void 0},[x(Ee,{name:R.name,"employee-id":R.id,size:"1.5rem"},null,8,["name","employee-id"]),o("span",pd,f(R.name),1),e.task.canEdit?(i(),c("button",{key:0,type:"button",class:"td-people__remove","aria-label":t(a)("modules.tasks.detail.assignees.remove",{name:R.name}),onClick:ee=>r(R.id)},[...T[2]||(T[2]=[o("i",{class:"bi bi-x","aria-hidden":"true"},null,-1)])],8,yd)):I("",!0)],10,fd))),128)),e.task.canEdit?(i(),c("button",{key:1,type:"button",class:"td-people__add","aria-expanded":t(y),"data-testid":"task-detail-assignees-add",onClick:$},[T[3]||(T[3]=o("i",{class:"bi bi-plus","aria-hidden":"true"},null,-1)),u.value.length===0?(i(),c("span",hd,f(t(a)("modules.tasks.detail.assignees.add")),1)):I("",!0)],8,_d)):I("",!0),t(y)?(i(),c("div",gd,[de(o("input",{ref_key:"search",ref:p,"onUpdate:modelValue":T[0]||(T[0]=R=>_.value=R),type:"search",class:"form-control form-control-sm",placeholder:t(a)("modules.tasks.detail.assignees.search"),"aria-label":t(a)("modules.tasks.detail.assignees.search")},null,8,Cd),[[me,_.value]]),o("ul",{class:"td-people__list",role:"listbox","aria-label":t(a)("modules.tasks.detail.assignees.title")},[(i(!0),c(N,null,K(b.value,R=>(i(),c("li",{key:R.employeeId,role:"option","aria-selected":t(k).includes(R.employeeId)},[o("button",{type:"button",class:"td-people__option",onClick:q=>r(R.employeeId)},[o("i",{class:V(["bi td-people__check",t(k).includes(R.employeeId)?"bi-check-square-fill":"bi-square"]),"aria-hidden":"true"},null,2),x(Ee,{name:R.name,"employee-id":R.employeeId,size:"1.25rem"},null,8,["name","employee-id"]),o("span",null,f(R.name),1)],8,Td)],8,Id))),128)),b.value.length===0?(i(),c("li",Ed,f(t(a)("common.noResults")),1)):I("",!0)],8,$d)])):I("",!0)],544))}}),Dd=U(wd,[["__scopeId","data-v-b3a4195d"]]),Ad=["aria-label","onClick"],Sd=["aria-expanded"],Pd={key:0},Rd=["aria-label"],Od=["aria-selected"],xd=["onClick"],Md=L({__name:"TaskDetailLabels",props:{task:{},board:{}},setup(e){const s=e,{t:a}=O(),{patch:d}=Q(),n=w(null),{open:l,toggle:v,close:p}=Re(n),_=st(()=>s.task.labelIds,k=>d({labelIds:k})),y=D(()=>{var k;return(((k=s.board)==null?void 0:k.labels)??[]).filter(m=>_.ids.value.includes(m.id))});function g(k){return _.ids.value.includes(k)}function h(k){s.task.canEdit&&_.toggle(k)}return(k,m)=>e.board&&(y.value.length>0||e.task.canEdit&&e.board.labels.length>0)?(i(),c("div",{key:0,ref_key:"root",ref:n,class:"td-labels",onKeydown:m[1]||(m[1]=ae(Y((...r)=>t(p)&&t(p)(...r),["stop"]),["esc"]))},[m[4]||(m[4]=o("i",{class:"bi bi-tag td-labels__icon","aria-hidden":"true"},null,-1)),(i(!0),c(N,null,K(y.value,r=>(i(),c("span",{key:r.id,class:"td-labels__chip"},[x(ce,{severity:r.color,label:r.name,size:"sm"},null,8,["severity","label"]),e.task.canEdit?(i(),c("button",{key:0,type:"button",class:"td-labels__remove","aria-label":t(a)("modules.tasks.detail.labels.remove",{name:r.name}),onClick:u=>h(r.id)},[...m[2]||(m[2]=[o("i",{class:"bi bi-x","aria-hidden":"true"},null,-1)])],8,Ad)):I("",!0)]))),128)),e.task.canEdit&&e.board.labels.length>0?(i(),c("button",{key:0,type:"button",class:"td-labels__add","aria-expanded":t(l),"data-testid":"task-detail-labels-add",onClick:m[0]||(m[0]=(...r)=>t(v)&&t(v)(...r))},[m[3]||(m[3]=o("i",{class:"bi bi-plus","aria-hidden":"true"},null,-1)),y.value.length===0?(i(),c("span",Pd,f(t(a)("modules.tasks.detail.labels.add")),1)):I("",!0)],8,Sd)):I("",!0),t(l)?(i(),c("ul",{key:1,class:"td-labels__menu",role:"listbox","aria-label":t(a)("modules.tasks.detail.labels.title")},[(i(!0),c(N,null,K(e.board.labels,r=>(i(),c("li",{key:r.id,role:"option","aria-selected":g(r.id)},[o("button",{type:"button",class:"td-labels__option",onClick:u=>h(r.id)},[o("i",{class:V(["bi td-labels__check",g(r.id)?"bi-check-square-fill":"bi-square"]),"aria-hidden":"true"},null,2),x(ce,{severity:r.color,label:r.name,size:"sm"},null,8,["severity","label"])],8,xd)],8,Od))),128))],8,Rd)):I("",!0)],544)):I("",!0)}}),Nd=U(Md,[["__scopeId","data-v-31168e61"]]),Fd={class:"td-header"},Ld={class:"td-header__title-row"}
2,Ud=["disabled","aria-pressed","aria-label","title"],jd={key:0,class:"bi bi-check-lg","aria-hidden":"true"},Bd=["readonly","aria-label","placeholder","onKeydown"],qd={key:0,class:"td-header__stamp"},Kd=L({__name:"TaskDetailHeader",props:{task:{},board:{}},setup(e){const s=e,{t:a,locale:d}=O(),{patch:n}=Q(),l=D(()=>Bt(s.task.status)),v=D(()=>{if(!s.task.canEdit)return!1;const r=Me(s.task.status);return!Je(r)||s.task.canResolve});function p(){v.value&&n({status:Me(s.task.status)})}const _=w(s.task.title);H(()=>s.task.title,r=>{_.value=r});function y(r){r.target.blur()}function g(){const r=_.value.replace(/\s+/g," ").trim();if(!(!s.task.canEdit||r===s.task.title)){if(!r){_.value=s.task.title;return}n({title:r})}}function h(r){_.value=s.task.title,y(r)}function k(r){const u=Qe(r,d.value);return u?a(Xe(u.day),{time:u.time,date:u.date}):null}const m=D(()=>{const r=k(s.task.createdAt),u=s.task.updatedAt!==s.task.createdAt?k(s.task.updatedAt):null,b=[];return r&&b.push(s.task.createdByName?a("modules.tasks.detail.stamp.created",{when:r,name:s.task.createdByName}):a("modules.tasks.detail.stamp.createdAnon",{when:r})),u&&b.push(s.task.updatedByName?a("modules.tasks.detail.stamp.changed",{when:u,name:s.task.updatedByName}):a("modules.tasks.detail.stamp.changedAnon",{when:u})),b.join(a("common.separatorDot"))});return(r,u)=>(i(),c("section",Fd,[o("div",Ld,[o("button",{type:"button",class:V(["td-header__circle",{"td-header__circle--done":l.value,"td-header__circle--progress":e.task.status==="IN_PROGRESS"}]),disabled:!v.value,"aria-pressed":l.value,"aria-label":l.value?t(a)("modules.tasks.detail.reopen"):t(a)("modules.tasks.detail.complete"),title:l.value?t(a)("modules.tasks.detail.reopen"):t(a)("modules.tasks.detail.complete"),"data-testid":"task-detail-complete",onClick:p},[l.value?(i(),c("i",jd)):I("",!0)],10,Ud),de(o("textarea",{"onUpdate:modelValue":u[0]||(u[0]=b=>_.value=b),class:V(["td-header__title",{"td-header__title--done":l.value}]),rows:"1",maxlength:"500",readonly:!e.task.canEdit,"aria-label":t(a)("modules.tasks.detail.titleLabel"),placeholder:t(a)("modules.tasks.detail.titlePlaceholder"),"data-testid":"task-detail-title",onKeydown:[ae(Y(y,["prevent"]),["enter"]),ae(Y(h,["stop"]),["esc"])],onBlur:g},null,42,Bd),[[me,_.value]])]),m.value?(i(),c("p",qd,f(m.value),1)):I("",!0),x(Nd,{task:e.task,board:e.board},null,8,["task","board"]),x(Dd,{task:e.task},null,8,["task"])]))}}),Vd=U(Kd,[["__scopeId","data-v-0df88e8d"]]),zd={class:"td-contact"},Wd={class:"td-contact__title"},Gd=["value","placeholder","aria-label","disabled"],Jd={class:"td-contact__pair"},Yd=["value","placeholder","aria-label","disabled"],Hd=["value","placeholder","aria-label","disabled"],Qd=L({__name:"TaskDetailContact",props:{task:{}},setup(e){const{t:s}=O(),{patch:a}=Q();function d(n,l,v){const p=Ge(v.target.value);p!==(l??null)&&a({[n]:p})}return(n,l)=>(i(),c("div",zd,[o("span",Wd,f(t(s)("modules.tasks.detail.links.contact")),1),o("input",{type:"text",class:"form-control form-control-sm",maxlength:"200",autocomplete:"off",value:e.task.contactName??"",placeholder:t(s)("modules.tasks.detail.links.contactName"),"aria-label":t(s)("modules.tasks.detail.links.contactName"),disabled:!e.task.canEdit,"data-testid":"task-detail-contact-name",onChange:l[0]||(l[0]=v=>d("contactName",e.task.contactName,v))},null,40,Gd),o("div",Jd,[o("input",{type:"tel",class:"form-control form-control-sm",maxlength:"60",autocomplete:"off",value:e.task.contactPhone??"",placeholder:t(s)("modules.tasks.detail.links.contactPhone"),"aria-label":t(s)("modules.tasks.detail.links.contactPhone"),disabled:!e.task.canEdit,onChange:l[1]||(l[1]=v=>d("contactPhone",e.task.contactPhone,v))},null,40,Yd),o("input",{type:"email",class:"form-control form-control-sm",maxlength:"320",autocomplete:"off",value:e.task.contactEmail??"",placeholder:t(s)("modules.tasks.detail.links.contactEmail"),"aria-label":t(s)("modules.tasks.detail.links.contactEmail"),disabled:!e.task.canEdit,onChange:l[2]||(l[2]=v=>d("contactEmail",e.task.contactEmail,v))},null,40,Hd)])]))}}),Xd=U(Qd,[["__scopeId","data-v-e134f181"]]),Zd={class:"td-bundle","data-testid":"task-bundle-dialog"},er={class:"td-bundle__hint"},tr={class:"td-bundle__list"},sr=["data-testid"],ar=["checked","onChange"],nr={class:"td-bundle__text"},lr={class:"td-bundle__title"},ir={key:0,class:"td-bundle__meta"},or={class:"td-bundle__count","data-testid":"task-bundle-count"},dr=L({__name:"TaskBundleDialog",props:{bundle:{}}
2,setup(e){const s=e,{t:a}=O(),d=D(()=>s.bundle.selected.value.length),n=D(()=>a(s.bundle.target.value==="PROJECT"?"modules.tasks.detail.actions.createProject":"modules.tasks.detail.actions.createServiceOrder"));function l(v){!v&&s.bundle.open.value&&s.bundle.cancel()}return(v,p)=>(i(),j(t(pt),{show:e.bundle.open.value,title:t(a)("modules.tasks.detail.bundle.title"),icon:"bi bi-collection","submit-label":n.value,"onUpdate:show":l,onSubmit:p[0]||(p[0]=_=>e.bundle.confirm())},{form:oe(()=>[o("div",Zd,[o("p",er,f(t(a)("modules.tasks.detail.bundle.intro")),1),o("ul",tr,[(i(!0),c(N,null,K(e.bundle.candidates.value,_=>(i(),c("li",{key:_.publicId},[o("label",{class:"td-bundle__row","data-testid":`task-bundle-card-${_.publicId}`},[o("input",{type:"checkbox",class:"form-check-input",checked:e.bundle.selected.value.includes(_.publicId),onChange:y=>e.bundle.toggle(_.publicId)},null,40,ar),o("span",nr,[o("span",lr,f(_.title),1),_.meta?(i(),c("span",ir,f(_.meta),1)):I("",!0)]),_.sameObject?(i(),j(ce,{key:0,severity:"info",size:"sm",label:t(a)("modules.tasks.detail.bundle.sameObject")},null,8,["label"])):I("",!0)],8,sr)]))),128))]),o("p",or,f(t(a)("modules.tasks.detail.bundle.selectedCount",{count:d.value},d.value)),1)])]),_:1},8,["show","title","submit-label"]))}}),rr=U(dr,[["__scopeId","data-v-eb83f2ff"]]),cr={key:0,class:"td-actions"},ur=["disabled"],mr={key:0,class:"spinner-border spinner-border-sm me-1",role:"status"},kr=["disabled"],vr={key:0,class:"spinner-border spinner-border-sm me-1",role:"status"},br=L({__name:"TaskDetailJobActions",props:{task:{}},setup(e){const s=ct(()=>yt(()=>import("./QuoteWysiwygModal-DLr7IwAN.js").then($=>$.c),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216]))),a=e,{t:d}=O(),n=ne(),{convert:l}=Q(),{converting:v}=l,{canCreateServiceOrder:p,canCreateProject:_,canAssign:y,canCreateQuote:g}=ks(()=>a.task),h=w(!1),k=w(!1),m=D(()=>p.value||_.value||y.value||g.value);function r($){l.convert($)}function u($){h.value=!1,l.assignJob($.kind==="project"?"PROJECT":"SERVICE_ORDER",$.id)}function b($,C){C!=null&&C.quiet||n.success(d("modules.quotes.messages.saved")),C!=null&&C.keepOpen||(k.value=!1)}return($,C)=>m.value?(i(),c("div",cr,[t(p)?(i(),c("button",{key:0,type:"button",class:"btn btn-sm btn-primary",disabled:t(v)!==null,"data-testid":"task-detail-convert-service-order",onClick:C[0]||(C[0]=T=>r("SERVICE_ORDER"))},[t(v)==="SERVICE_ORDER"?(i(),c("span",mr)):I("",!0),B(" "+f(t(d)("modules.tasks.detail.actions.createServiceOrder")),1)],8,ur)):I("",!0),t(_)?(i(),c("button",{key:1,type:"button",class:"btn btn-sm btn-outline-primary",disabled:t(v)!==null,"data-testid":"task-detail-convert-project",onClick:C[1]||(C[1]=T=>r("PROJECT"))},[t(v)==="PROJECT"?(i(),c("span",vr)):I("",!0),B(" "+f(t(d)("modules.tasks.detail.actions.createProject")),1)],8,kr)):I("",!0),t(y)?(i(),c("button",{key:2,type:"button",class:"btn btn-sm btn-outline-secondary","data-testid":"task-detail-assign-job",onClick:C[2]||(C[2]=T=>h.value=!0)},f(t(d)("modules.tasks.detail.actions.assignJob")),1)):I("",!0),t(g)?(i(),c("button",{key:3,type:"button",class:"btn btn-sm btn-outline-secondary","data-testid":"task-detail-create-quote",onClick:C[3]||(C[3]=T=>k.value=!0)},[C[7]||(C[7]=o("i",{class:"bi bi-file-earmark-plus me-1","aria-hidden":"true"},null,-1)),B(" "+f(t(d)("modules.tasks.detail.actions.createQuote")),1)])):I("",!0),h.value?(i(),j(Ys,{key:4,show:h.value,"onUpdate:show":C[4]||(C[4]=T=>h.value=T),onAssign:u},null,8,["show"])):I("",!0),t(l).bundle.open.value?(i(),j(rr,{key:5,bundle:t(l).bundle},null,8,["bundle"])):I("",!0),k.value?(i(),j(t(s),{key:6,show:k.value,"customer-id":e.task.customerId,"project-id":e.task.projectId??null,"service-id":e.task.serviceOrderId??null,"onUpdate:show":C[5]||(C[5]=T=>k.value=T),onSaved:b,onClose:C[6]||(C[6]=T=>k.value=!1)},null,8,["show","customer-id","project-id","service-id"])):I("",!0)])):I("",!0)}}),fr=U(br,[["__scopeId","data-v-3deb19fe"]]),pr={key:0,class:"td-milestone"},yr=["for"],_r=["id","value","disabled"],hr={value:""},gr=["value"],Cr={key:0,class:"td-milestone__hint",role:"alert"},$r={key:1,class:"td-milestone__hint"},Ir=L({__name:"TaskDetailMilestone",props:{task:{}}
2,setup(e){const s=e,{t:a}=O(),{patch:d}=Q(),{milestones:n,loading:l,loadFailed:v}=vs(()=>s.task.projectId),p=D(()=>`task-milestone-${s.task.publicId}`),_=D(()=>bs(fs(n.value,a("common.separatorDot")),{id:s.task.milestoneId,name:s.task.milestoneName}));function y(g){const h=g.target.value,k=h===""?null:Number(h);k!==(s.task.milestoneId??null)&&d({milestoneId:k})}return(g,h)=>e.task.projectId?(i(),c("div",pr,[o("label",{for:p.value,class:"td-milestone__label"},f(t(a)("modules.projects.milestones.columns.milestone")),9,yr),o("select",{id:p.value,class:"form-select form-select-sm",value:e.task.milestoneId??"",disabled:!e.task.canEdit||t(l),"data-testid":"task-detail-milestone",onChange:y},[o("option",hr,f(t(a)("modules.tasks.timeline.milestone.none")),1),(i(!0),c(N,null,K(_.value,k=>(i(),c("option",{key:k.id,value:k.id},f(k.label),9,gr))),128))],40,_r),t(v)?(i(),c("p",Cr,f(t(a)("modules.tasks.timeline.milestone.loadFailed")),1)):!t(l)&&_.value.length===0?(i(),c("p",$r,f(t(a)("modules.tasks.timeline.milestone.empty")),1)):I("",!0)])):I("",!0)}}),Tr=U(Ir,[["__scopeId","data-v-4027deed"]]),Er=["aria-label"],wr={class:"td-links__row"},Dr={class:"td-links__label"},Ar={class:"td-links__job-name"},Sr={key:1,class:"td-links__muted"},Pr={class:"td-links__row"},Rr={class:"td-links__label"},Or={key:0,class:"td-links__value"},xr={key:1,class:"td-links__row"},Mr={class:"td-links__label"},Nr={key:2,class:"td-links__row"},Fr={class:"td-links__label"},Lr={class:"td-links__value"},Ur=L({__name:"TaskDetailLinks",props:{task:{}},setup(e){const s=e,{t:a}=O(),{patch:d}=Q(),{canListCustomers:n}=_t(),l=D(()=>qt(s.task)),v=D(()=>l.value?l.value.name?l.value.name:a(l.value.kind==="PROJECT"?"common.project":"common.serviceOrder"):""),p=D(()=>Kt(s.task));function _(g){const h=zt(s.task,g);h&&d(h)}function y(g){g!==(s.task.customerObjectId??null)&&d({customerObjectId:g})}return(g,h)=>{const k=_e("RouterLink");return i(),c("section",{class:"td-links","aria-label":t(a)("modules.tasks.detail.links.title")},[o("div",wr,[o("span",Dr,f(t(a)("modules.tasks.detail.links.job")),1),l.value?(i(),j(k,{key:0,to:l.value.to,class:"td-links__job","data-testid":"task-detail-job"},{default:oe(()=>[o("i",{class:V(l.value.kind==="PROJECT"?"bi bi-folder2":"bi bi-tools"),"aria-hidden":"true"},null,2),o("span",Ar,f(v.value),1),h[0]||(h[0]=o("i",{class:"bi bi-arrow-right-short","aria-hidden":"true"},null,-1))]),_:1},8,["to"])):(i(),c("span",Sr,f(t(a)("modules.tasks.detail.links.noJob")),1))]),x(Tr,{task:e.task},null,8,["task"]),o("div",Pr,[o("span",Rr,f(t(a)("common.customer")),1),l.value||!t(n)?(i(),c("span",Or,f(e.task.customerName||t(a)("modules.tasks.detail.links.noCustomer")),1)):(i(),j(Js,{key:1,"model-value":e.task.customerId,disabled:!e.task.canEdit,placeholder:t(a)("modules.tasks.detail.links.noCustomer"),"onUpdate:modelValue":_},null,8,["model-value","disabled","placeholder"]))]),e.task.customerId&&t(n)?(i(),j(k,{key:0,to:{name:"customer-detail",params:{id:e.task.customerId},query:{tab:"tasks"}},class:"td-links__all","data-testid":"task-detail-customer-cards"},{default:oe(()=>[h[1]||(h[1]=o("i",{class:"bi bi-collection","aria-hidden":"true"},null,-1)),B(" "+f(t(a)("modules.tasks.detail.links.allCustomerCards")),1)]),_:1},8,["to"])):I("",!0),!l.value&&t(n)&&e.task.customerId?(i(),c("div",xr,[o("span",Mr,f(t(a)("modules.tasks.detail.links.object")),1),x(Gs,{"model-value":e.task.customerObjectId,"customer-id":e.task.customerId,"selected-object":p.value,disabled:!e.task.canEdit,"onUpdate:modelValue":y},null,8,["model-value","customer-id","selected-object","disabled"])])):e.task.customerObjectLabel?(i(),c("div",Nr,[o("span",Fr,f(t(a)("modules.tasks.detail.links.object")),1),o("span",Lr,f(e.task.customerObjectLabel),1)])):I("",!0),!l.value&&t(Vt)(e.task)?(i(),j(Xd,{key:3,task:e.task},null,8,["task"])):I("",!0),x(fr,{task:e.task},null,8,["task"])],8,Er)}}}),jr=U(Ur,[["__scopeId","data-v-de2fd56b"]]),Br={class:"td-material-row","data-testid":"task-detail-material-line"},qr={class:"td-material-row__main"},Kr={class:"td-material-row__what"},Vr={class:"td-material-row__meta"},zr={class:"td-material-row__tags"},Wr={key:0,class:"td-material-row__actions"},Gr=["disabled"],Jr=L({__name:"TaskMaterialRow",props:{item:{},canEdit:{type:Boolean},busy:{type:Boolean}},emits:["status","remove"],setup(e,{emit:s}){const a=e,d=s,{t:n,locale:l}=O(),v=D(()=>ps(a.item.status)),p=D(()=>[...ys.map(_=>({key:_,label:n(`modules.tasks.material.status.${_}`),icon:_===a.item.status?"bi bi-check2":"bi bi-dot",disabled:_===a.item.status,onClick:()=>d("status",_)})),{key:"delete",label:n("common.delete"),icon:"bi bi-trash",variant:"danger",testId:"task-detail-material-delete",onClick:()=>d("remove")}]);return(_,y)=>(i(),c("div",Br,[o("div",qr,[o("span",Kr,f(e.item.description),1),o("span",Vr,[B(f(t(n)("modules.tasks.material.quantity",{quantity:t(_s)(e.item.quantity,t(l)),unit:e.item.unit}))+" ",1),e.item.supplierName?(i(),c(N,{key:0},[B(f(t(n)("common.separatorDot"))+f(e.item.supplierName),1)],64)):I("",!0)]),o("span",zr,[x(ce,{size:"sm",severity:t(hs)[e.item.status],label:t(n)(`modules.tasks.material.status.${e.
2item.status}`)},null,8,["severity","label"]),e.item.transferredAt?(i(),j(ce,{key:0,size:"sm",severity:"neutral",icon:"bi-box-arrow-in-right",label:t(n)("modules.tasks.material.inJob")},null,8,["label"])):I("",!0)])]),e.canEdit?(i(),c("div",Wr,[v.value?(i(),c("button",{key:0,type:"button",class:"btn btn-sm btn-outline-secondary",disabled:e.busy,"data-testid":"task-detail-material-next",onClick:y[0]||(y[0]=g=>d("status",v.value))},f(t(n)(`modules.tasks.material.markAs.${v.value}`)),9,Gr)):I("",!0),x(ze,{items:p.value,size:"sm","trigger-icon":"bi bi-three-dots","aria-label":t(n)("common.moreActions"),disabled:e.busy},null,8,["items","aria-label","disabled"])])):I("",!0)]))}}),Yr=U(Jr,[["__scopeId","data-v-1d1399eb"]]),Hr=["aria-label"],Qr={class:"td-material__head"},Xr={class:"td-material__summary"},Zr={key:0,class:"td-material__state",role:"status"},ec={key:1,class:"td-material__state",role:"alert"},tc={key:2,class:"td-material__state"},sc={key:3,class:"td-material__list"},ac=L({__name:"TaskDetailMaterial",props:{task:{}},setup(e){const{t:s}=O(),{materials:a}=Q(),{items:d,loading:n,loadFailed:l,busyId:v,openCount:p,load:_,add:y,setStatus:g,remove:h}=a,k=w(!1);return ke(()=>void _()),(m,r)=>(i(),c("section",{class:"td-material","aria-label":t(s)("modules.tasks.material.title"),"data-testid":"task-detail-material"},[o("header",Qr,[o("span",Xr,f(t(s)("modules.tasks.material.summary",{open:t(p),total:t(d).length})),1),e.task.canEdit?(i(),c("button",{key:0,type:"button",class:"btn btn-sm btn-primary","data-testid":"task-detail-material-add",onClick:r[0]||(r[0]=u=>k.value=!0)},[r[3]||(r[3]=o("i",{class:"bi bi-box-seam","aria-hidden":"true"},null,-1)),B(" "+f(t(s)("modules.tasks.material.add")),1)])):I("",!0)]),t(n)&&t(d).length===0?(i(),c("p",Zr,f(t(s)("common.loading")),1)):t(l)?(i(),c("div",ec,[o("span",null,f(t(s)("modules.tasks.material.errors.loadFailed")),1),o("button",{type:"button",class:"btn btn-sm btn-outline-secondary",onClick:r[1]||(r[1]=(...u)=>t(_)&&t(_)(...u))},f(t(s)("common.retry")),1)])):t(d).length===0?(i(),c("p",tc,f(t(s)("modules.tasks.material.empty")),1)):(i(),c("ul",sc,[(i(!0),c(N,null,K(t(d),u=>(i(),c("li",{key:u.id},[x(Yr,{item:u,"can-edit":e.task.canEdit,busy:t(v)===u.id,onStatus:b=>t(g)(u,b),onRemove:b=>t(h)(u)},null,8,["item","can-edit","busy","onStatus","onRemove"])]))),128))])),k.value?(i(),j(Hs,{key:4,show:k.value,"onUpdate:show":r[2]||(r[2]=u=>k.value=u),onAdded:t(y)},null,8,["show","onAdded"])):I("",!0)],8,Hr))}}),nc=U(ac,[["__scopeId","data-v-ef9a5cde"]]);function lc(e){const{t:s}=O(),a=ne(),d=Qs(),{currentEmployeeId:n}=Zs(),l=aa(()=>{}),v=ut(null),p=w(!1),_=D(()=>d.value.includes("slot"));function y(){const m=e.task();!m||!_.value||(v.value=gs(m,n.value??null,new Date))}function g(){v.value=null}async function h(m,r){try{if((m.dates??[m.date]).length>1){const C=await Fe.bulkCreateSlots(ta(m,r));return a.success(s("calendar.toast.slotsCreated",{count:C.created})),!0}const b=await Fe.createSlot(sa(m,r)),$=na(b==null?void 0:b.warnings,s);return $?a.warning($):a.success(s("modules.tasks.termine.planned")),!0}catch(u){return console.error("[tasks] planning a Termin from the card failed",u),a.error(la(u,s)),!1}}async function k(m){const r=m.employeeId??n.value;if(!(!r||p.value)){p.value=!0;try{const u=ea(m,r);if(!(u.length>1?await l.create(m,u):await h(m,r)))return;v.value=null,await e.onPlanned()}finally{p.value=!1}}}return{canPlan:_,seed:v,saving:p,ownerEmployeeId:n,open:y,close:g,submit:k}}const ic=["aria-label"],oc={class:"td-termine__head"},dc={class:"td-termine__title"},rc={key:0,class:"td-termine__empty"},cc={key:1,class:"td-termine__list"},uc={class:"td-termine__text"},mc={class:"td-termine__when"},kc={class:"td-termine__who"},vc=L({__name:"TaskDetailTermine",props:{task:{}},setup(e){const s=e,{t:a,locale:d}=O(),{available:n,items:l,loading:v,load:p}=Cs(),{canPlan:_,seed:y,saving:g,ownerEmployeeId:h,open:k,close:m,submit:r}=lc({task:()=>s.task,onPlanned:()=>p(s.task.publicId)});return H(()=>s.task.publicId,u=>void p(u),{immediate:!0}),(u,b)=>{const $=_e("RouterLink");return t(n)&&(t(_)||t(l).length>0)?(i(),c("section",{key:0,class:"td-termine","aria-label":t(a)("modules.tasks.termine.title"),"data-testid":"task-detail-termine"},[o("header",oc,[o("h3",dc,f(t(a)("modules.tasks.termine.title")),1),t(_)?(i(),c("button",{key:0,t
2ype:"button",class:"btn btn-sm btn-outline-primary","data-testid":"task-detail-plan-termin",onClick:b[0]||(b[0]=(...C)=>t(k)&&t(k)(...C))},[b[1]||(b[1]=o("i",{class:"bi bi-calendar-plus me-1","aria-hidden":"true"},null,-1)),B(" "+f(t(a)("modules.tasks.termine.plan")),1)])):I("",!0)]),!t(v)&&t(l).length===0?(i(),c("p",rc,f(t(a)("modules.tasks.termine.empty")),1)):(i(),c("ul",cc,[(i(!0),c(N,null,K(t(l),C=>(i(),c("li",{key:C.id},[x($,{to:t(Is)(C.date),class:"td-termine__item",title:t(a)("modules.tasks.termine.openInCalendar"),"data-testid":"task-detail-termin"},{default:oe(()=>[b[2]||(b[2]=o("i",{class:"bi bi-calendar-event td-termine__icon","aria-hidden":"true"},null,-1)),o("span",uc,[o("span",mc,f(t($s)(C.date,C.startTime,C.endTime,t(d))),1),o("span",kc,f(C.employeeName),1)]),x(ce,{severity:C.countsAsWork?"info":"neutral",size:"sm",label:t(a)(C.countsAsWork?"modules.tasks.termine.einsatz":"modules.tasks.termine.termin")},null,8,["severity","label"])]),_:2},1032,["to","title"])]))),128))])),t(y)?(i(),j(Xs,{key:2,raised:"","initial-type":"slot",types:["slot"],"asks-for-employee":"","owner-employee-id":t(h)??null,"initial-date":t(y).date,"initial-start-time":t(y).startTime,"initial-end-time":t(y).endTime,"initial-title":t(y).title,"initial-slot":t(y).slot,saving:t(g),onSubmitSlot:t(r),onCancel:t(m)},null,8,["owner-employee-id","initial-date","initial-start-time","initial-end-time","initial-title","initial-slot","saving","onSubmitSlot","onCancel"])):I("",!0)],8,ic)):I("",!0)}}}),bc=U(vc,[["__scopeId","data-v-b8001cdb"]]),fc={class:"td-time-row"},pc={class:"td-time-row__main"},yc={class:"td-time-row__when"},_c={class:"td-time-row__who"},hc={key:0,class:"td-time-row__what"},gc={key:1,class:"td-time-row__type"},Cc={class:"td-time-row__side"},$c={class:"td-time-row__duration"},Ic=L({__name:"TaskTimeEntryRow",props:{entry:{}},setup(e){const{t:s}=O();return(a,d)=>(i(),c("div",fc,[o("div",pc,[o("span",yc,f(t(ia)(e.entry.date)),1),o("span",_c,f(e.entry.employeeName),1),e.entry.description?(i(),c("span",hc,f(e.entry.description),1)):I("",!0),e.entry.typeName?(i(),c("span",gc,f(e.entry.typeName),1)):I("",!0)]),o("div",Cc,[o("strong",$c,f(t(Te)(e.entry.minutes)),1),x(ce,{size:"sm",severity:t(Os)[e.entry.billingState],label:t(s)(`modules.tasks.time.state.${e.entry.billingState}`)},null,8,["severity","label"])])]))}}),qe=U(Ic,[["__scopeId","data-v-ae9a6a0f"]]),Tc=["aria-label"],Ec={class:"td-time__head"},wc={class:"td-time__totals"},Dc={class:"td-time__total"},Ac={class:"td-time__caption"},Sc={key:0,class:"td-time__billable"},Pc={key:0,class:"td-time__state",role:"status"},Rc={key:1,class:"td-time__state",role:"alert"},Oc={key:2,class:"td-time__state"},xc={key:3,class:"td-time__list"},Mc=["title","onClick"],Nc={key:1,class:"td-time__entry","data-testid":"task-detail-time-entry"},Fc={key:4,class:"td-time__hidden"},Lc=L({__name:"TaskDetailTime",props:{task:{}},setup(e){const{t:s}=O(),{canCreateEntries:a}=Ts(),{time:d}=Q(),{data:n,loading:l,loadFailed:v,load:p,book:_,edit:y}=d;return ke(()=>void p()),(g,h)=>{var k;return i(),c("section",{class:"td-time","aria-label":t(s)("modules.tasks.time.title"),"data-testid":"task-detail-time"},[o("header",Ec,[o("div",wc,[o("strong",Dc,f(t(Te)(((k=t(n))==null?void 0:k.totalMinutes)??e.task.loggedMinutes)),1),o("span",Ac,f(t(s)("modules.tasks.time.total")),1),t(n)&&t(n).billableMinutes>0?(i(),c("span",Sc,f(t(s)("modules.tasks.time.billable",{duration:t(Te)(t(n).billableMinutes)})),1)):I("",!0)]),t(a)?(i(),c("button",{key:0,type:"button",class:"btn btn-sm btn-primary","data-testid":"task-detail-time-book",onClick:h[0]||(h[0]=(...m)=>t(_)&&t(_)(...m))},[h[2]||(h[2]=o("i",{class:"bi bi-clock-history","aria-hidden":"true"},null,-1)),B(" "+f(t(s)("modules.tasks.time.book")),1)])):I("",!0)]),t(l)&&!t(n)?(i(),c("p",Pc,f(t(s)("common.loading")),1)):t(v)?(i(),c("div",Rc,[o("span",null,f(t(s)("modules.tasks.time.errors.loadFailed")),1),o("button",{type:"button",class:"btn btn-sm btn-outline-secondary",onClick:h[1]||(h[1]=(...m)=>t(p)&&t(p)(...m))},f(t(s)("common.retry")),1)])):t(n)&&t(n).entries.length===0?(i(),c("p",Oc,f(t(s)("modules.tasks.time.empty")),1)):t(n)?(i(),c("ul",xc,[(i(!0),c(N,null,K(t(n).entries,m=>(i(),c("li",{key:m.id,class:"td-time__item"}
2,[m.canEdit?(i(),c("button",{key:0,type:"button",class:"td-time__entry td-time__entry--action",title:t(s)("modules.tasks.time.edit"),"data-testid":"task-detail-time-entry",onClick:r=>t(y)(m.id)},[x(qe,{entry:m},null,8,["entry"])],8,Mc)):(i(),c("div",Nc,[x(qe,{entry:m},null,8,["entry"])]))]))),128))])):I("",!0),t(n)&&t(n).hiddenCount>0?(i(),c("p",Fc,f(t(s)("modules.tasks.time.hidden",{count:t(n).hiddenCount},t(n).hiddenCount)),1)):I("",!0)],8,Tc)}}}),Uc=U(Lc,[["__scopeId","data-v-7bbc5bad"]]),jc=["aria-label"],Bc={class:"task-detail__bar"},qc={class:"task-detail__context"},Kc=["aria-label","title"],Vc={key:0,class:"task-detail__state",role:"status"},zc={key:1,class:"task-detail__state",role:"alert"},Wc=L({__name:"TaskDetailPanel",props:{publicId:{},board:{}},emits:["close","changed"],setup(e,{emit:s}){const a=e,d=s,{t:n}=O(),{task:l,loading:v,loadFailed:p,activity:_,attachmentTotal:y,tab:g,selectTab:h,contextLabel:k,copyLink:m,deleteTask:r,reload:u,onAttachmentUploaded:b}=Ja({publicId:()=>a.publicId,board:()=>a.board,onChanged:M=>d("changed",M),onClose:()=>d("close")}),$=D(()=>{var M,S;return[{value:"details",label:n("modules.tasks.detail.tabs.details")},{value:"activity",label:n("modules.tasks.detail.tabs.activity"),badge:_.conversationTotal.value||void 0},{value:"attachments",label:n("modules.tasks.detail.tabs.attachments"),badge:y.value||void 0},{value:"time",label:n("modules.tasks.time.title"),badge:(M=l.value)!=null&&M.loggedMinutes?Te(l.value.loggedMinutes):void 0},{value:"material",label:n("modules.tasks.material.title"),badge:((S=l.value)==null?void 0:S.openMaterialCount)||void 0}]}),{request:C,menuItems:T,close:R,onDone:q}=oa({task:()=>l.value,onChanged:M=>d("changed",M),reload:u}),ee=Ya(()=>a.publicId),ue=D(()=>{var S;const M=[...ee.menuItems(),...T(),{key:"copy-link",label:n("modules.tasks.detail.menu.copyLink"),icon:"bi bi-link-45deg",onClick:m}];return(S=l.value)!=null&&S.canDelete&&M.push({key:"delete",label:n("common.delete"),icon:"bi bi-trash",variant:"danger",testId:"task-detail-delete",onClick:r}),M});return(M,S)=>(i(),j(mt,{name:"task-detail"},{default:oe(()=>[e.publicId?(i(),c("aside",{key:0,class:"task-detail",role:"dialog","aria-label":t(n)("modules.tasks.detail.panelLabel"),"data-testid":"task-detail-panel",onKeydown:S[2]||(S[2]=ae(F=>d("close"),["esc"]))},[o("header",Bc,[S[4]||(S[4]=o("i",{class:"bi bi-kanban task-detail__bar-icon","aria-hidden":"true"},null,-1)),o("span",qc,f(t(k)),1),t(l)?(i(),j(ze,{key:0,items:ue.value,size:"sm","trigger-icon":"bi bi-three-dots","aria-label":t(n)("common.moreActions")},null,8,["items","aria-label"])):I("",!0),o("button",{type:"button",class:"task-detail__close","aria-label":t(n)("common.close"),title:t(n)("common.close"),"data-testid":"task-detail-close",onClick:S[0]||(S[0]=F=>d("close"))},[...S[3]||(S[3]=[o("i",{class:"bi bi-x-lg","aria-hidden":"true"},null,-1)])],8,Kc)]),t(v)&&!t(l)?(i(),c("div",Vc,f(t(n)("common.loading")),1)):t(p)?(i(),c("div",zc,[o("p",null,f(t(n)("modules.tasks.detail.errors.loadFailed")),1),o("button",{type:"button",class:"btn btn-sm btn-outline-secondary",onClick:S[1]||(S[1]=(...F)=>t(u)&&t(u)(...F))},f(t(n)("common.retry")),1)])):t(l)?(i(),c(N,{key:2},[(i(),j(Vd,{key:`h-${t(l).publicId}`,task:t(l),board:e.board},null,8,["task","board"])),x(ht,{class:"task-detail__tabs",tabs:$.value,"model-value":t(g),"onUpdate:modelValue":t(h)},null,8,["tabs","model-value","onUpdate:modelValue"]),(i(),c("div",{key:`b-${t(l).publicId}`,class:"task-detail__body"},[t(g)==="details"?(i(),c(N,{key:0},[x(vd,{task:t(l),board:e.board},null,8,["task","board"]),x(jr,{task:t(l)},null,8,["task"]),x(bc,{task:t(l)},null,8,["task"]),x(Mo,{task:t(l)},null,8,["task"]),x(So,{"can-edit":t(l).canEdit,"on-card":t(l).checklistOnCard},null,8,["can-edit","on-card"])],64)):t(g)==="activity"?(i(),j(gl,{key:1,task:t(l)},null,8,["task"])):t(g)==="time"?(i(),j(Uc,{key:2,task:t(l)},null,8,["task"])):t(g)==="material"?(i(),j(nc,{key:3,task:t(l)},null,8,["task"])):t(l).id?(i(),j(mo,{key:4,task:t(l),onUploaded:t(b)},null,8,["task","onUploaded"])):I("",!0)]))],64)):I("",!0),x(Ns,{request:t(C),onClose:t(R),onDone:t(q)},null,8,["request","onClose","onDone"])],40,jc)):I("",!0)]),_:1}))}}),yk=U(Wc,[["__scopeId","data-v-62e9ca41"]]);export{yk as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.