bettertend/frontend/dist/assets/ContractsListView-Cj14_kTl.js

2 lines
27 KiB
JavaScript

import{_ as bt,F as ft,i as x,w as i,f as T,r as u,c as R,o as Ct,s as gt,v as yt,g as m,b as r,d as l,k as C,j as D,a as h,n as pt,t as g}from"./index-QAlcqU00.js";import{u as Ft,C as v,a as Vt,f as be,b as fe,c as _,d as Ce}from"./useContractManagement-OiJwK-RO.js";import{u as wt}from"./useFormAutoSave-BrW9Wl2Q.js";import{a as Tt,F as ht}from"./FPPageHeader-CFIwZZgQ.js";import{F as kt}from"./FPInput-D5RURom0.js";import{F as Dt}from"./FPCheckbox-DcRYwN3n.js";import{F as It}from"./FPSelect-j7n_x8eB.js";import{F as Ut}from"./FPStats-DOY0PQQF.js";import{F as xt}from"./FPTable-CWvngIYd.js";import{F as St}from"./FPModal-DMoPysvU.js";import{F as Pt}from"./FPBadge-DvOitM1C.js";import{F as Rt}from"./FPTabs-qq-Tmb7J.js";import{_ as _t}from"./FormRestoreNotification-2Wflg1mH.js";import"./FPCard-AB6NRXg5.js";const Nt={name:"ContractsListView",components:{FPLayout:ht,FPPageHeader:Tt,FPTable:xt,FPModal:St,FPButton:ft,FPInput:kt,FPSelect:It,FPCheckbox:Dt,FPBadge:Pt,FPStats:Ut,FPTabs:Rt,FormRestoreNotification:_t},setup(){const O=gt(),a=yt(),{contracts:N,loading:e,error:Q,contractStats:Z,loadContracts:y,saveContract:M,removeContract:B,renewContract:X,terminateContract:d,formatContractValue:F,isContractExpiringSoon:E,clearError:W}=Ft(),k=u("all"),V=u(!1),w=u("create"),I=u(null),o=u({}),c=u("basic"),{hasUnsavedChanges:b,lastSaveTime:Y,restoreFormData:ge,clearSavedData:$,hasSavedData:ye,getSavedDataInfo:pe,markUserInteraction:ee,finishInitialization:te}=wt(o,{storageKey:"atlas_contract_form_data",saveInterval:3e3,excludeFields:[]}),L=u(!1),ae=u(null),f=u({search:"",contractType:null,priority:null,vendor:null,startDate:null}),K=u(!1),z=u(null),q=u({}),J=u(!1),j=u(null),H=u({}),oe=u({page:1,size:10,total:0}),Fe=R(()=>w.value==="create"?"Create Contract":"Edit Contract"),Ve=R({get:()=>V.value&&w.value==="create",set:t=>{t||(V.value=!1)}}),we=R({get:()=>V.value&&w.value==="edit",set:t=>{t||(V.value=!1)}}),Te=R(()=>{let t=[...N.value];if(k.value!=="all"&&(t=t.filter(n=>n.status===k.value)),f.value.search){const n=f.value.search.toLowerCase();t=t.filter(s=>{var p,G,ue,ve;return((p=s.title)==null?void 0:p.toLowerCase().includes(n))||((G=s.contractNumber)==null?void 0:G.toLowerCase().includes(n))||((ue=s.vendorName)==null?void 0:ue.toLowerCase().includes(n))||((ve=s.description)==null?void 0:ve.toLowerCase().includes(n))})}return f.value.contractType&&(t=t.filter(n=>n.contractType===f.value.contractType)),f.value.priority&&(t=t.filter(n=>n.priority===f.value.priority)),f.value.vendor&&(t=t.filter(n=>n.vendorId===f.value.vendor)),t}),he=R(()=>{const t=Z.value;return[{label:"Total Contracts",value:t.total,color:"blue"},{label:"Active",value:t.active,color:"green"},{label:"Pending Approval",value:t.pendingApproval,color:"yellow"},{label:"Expired",value:t.expired,color:"red"},{label:"Total Value",value:me(t.totalValue),color:"purple"}]}),ke=[{key:"all",label:"All Contracts",count:N.value.length},{key:v.ACTIVE,label:"Active",count:0},{key:v.PENDING_APPROVAL,label:"Pending",count:0},{key:v.EXPIRED,label:"Expired",count:0},{key:v.TERMINATED,label:"Terminated",count:0}],S=[{key:"basic",label:"Basic Information",icon:"info"},{key:"details",label:"Details",icon:"document"}],De=Object.values(Vt).map(t=>({value:t,label:be(t)})),Ie=Object.values(v).map(t=>({value:t,label:fe(t)})),Ue=Object.values(_).map(t=>({value:t,label:Ce(t)})),xe=[{value:"USD",label:"USD - US Dollar"},{value:"EUR",label:"EUR - Euro"},{value:"GBP",label:"GBP - British Pound"},{value:"CAD",label:"CAD - Canadian Dollar"}],Se=[{value:"pending",label:"Pending Review"},{value:"approved",label:"Approved"},{value:"rejected",label:"Rejected"}],Pe=[{value:"budget",label:"Budget Constraints"},{value:"performance",label:"Performance Issues"},{value:"scope_change",label:"Scope Change"},{value:"vendor_request",label:"Vendor Request"},{value:"completion",label:"Project Completion"},{value:"other",label:"Other"}],Re=u([{value:1,label:"ACME Services"},{value:2,label:"TechCorp Solutions"},{value:3,label:"Global Maintenance Inc."}]),_e=[{key:"title",label:"Contract",sortable:!0},{key:"contractType",label:"Type",sortable:!0},{key:"status",label:"Status",sortable:!0},{key:"priority",label:"Priority",sortable:!0},{key:"vendor",label:"Vendor",sortable:!0},{key:"contractValue",label:"Value",sortable:!0},{key:"endDate",label:"End Date",sortable:!0},{key:"actions",label:"Actions",width:"200px"}],U=async()=>{try{await y()}catch(t){console.error("Failed to refresh contracts:",t)}},ne=()=>{w.value="create",I.value=null,o.value={currency:"USD",status:v.DRAFT,priority:_.MEDIUM,autoRenew:!1,renewalNotificationDays:30},c.value="basic",V.value=!0,$e(),setTimeout(()=>{te()},100)},le=t=>{w.value="edit",I.value=t,o.value={...t},c.value="basic",V.value=!0,setTimeout(()=>{te()},100)},A=()=>{V.value=!1,I.value=null,o.value={},c.value="basic",$()},Ne=A,Me=A,Ee=async()=>{var t;try{const n={...o.value},s=w.value==="edit"?(t=I.value)==null?void 0:t.id:null;await M(n,s)&&(A(),await U())}catch(n){console.error("Failed to save contract:",n)}},Ae=async t=>{try{const n=await M(t);return n&&(V.value=!1,await U()),n}catch(n){throw console.error("Failed to create contract:",n),n}},Oe=async()=>{var t;try{const n={...o.value},s=await M(n,(t=I.value)==null?void 0:t.id);return s&&(A(),await U()),s}catch(n){throw console.error("Failed to update contract:",n),n}},Be=async t=>{if(confirm(`Are you sure you want to delete contract ${t.contractNumber}?`))try{await B(t.id),await U()}catch(n){console.error("Failed to delete contract:",n)}},re=t=>{a.push(`/contracts/${t}`)},Le=t=>{w.value="create",I.value=null,o.value={...t,id:void 0,contractNumber:"",title:`Copy of ${t.title}`,status:v.DRAFT},c.value="basic",V.value=!0},ze=t=>{z.value=t,q.value={startDate:t.endDate,endDate:"",contractValue:t.contractValue,notes:""},K.value=!0},ie=()=>{K.value=!1,z.value=null,q.value={}},qe=async()=>{try{await se(z.value,q.value),ie(),await U()}catch(t){console.error("Failed to renew contract:",t)}},se=async(t,n)=>{try{return await X(t.id,n)}catch(s){throw console.error("Failed to renew contract:",s),s}},je=t=>{j.value=t,H.value={terminationDate:new Date().toISOString().split("T")[0],reason:"",notes:""},J.value=!0},de=()=>{J.value=!1,j.value=null,H.value={}},He=async()=>{try{await ce(j.value,H.value),de(),await U()}catch(t){console.error("Failed to terminate contract:",t)}},ce=async(t,n)=>{try{return await d(t.id,n)}catch(s){throw console.error("Failed to terminate contract:",s),s}},Ge=t=>{k.value=t,P()},P=async()=>{const t={search:f.value.search,filters:{status:k.value!=="all"?k.value:void 0,contractType:f.value.contractType,priority:f.value.priority,vendorId:f.value.vendor}};Object.keys(t.filters).forEach(n=>{t.filters[n]===void 0&&delete t.filters[n]});try{await y(t)}catch(n){console.error("Failed to apply filters:",n)}},Xe=async t=>{k.value=t,await P()},We=async t=>{f.value.search=t,await P()},Ye=()=>{f.value={search:"",contractType:null,priority:null,vendor:null,startDate:null},k.value="all",P()},Ke=(t,n)=>{console.log("Sort:",t,n)},Je=t=>{oe.value.page=t,P()},Qe=t=>{re(t.id)},Ze=t=>{c.value=t},$e=()=>{ye()&&(ae.value=pe(),L.value=!0)},et=()=>{ge()&&(L.value=!1,ee())},tt=()=>{L.value=!1,$()},at=R(()=>{if(!Y.value)return"";const t=new Date,n=Y.value,s=Math.floor((t-n)/(1e3*60));if(s<1)return"just now";if(s===1)return"1 minute ago";if(s<60)return`${s} minutes ago`;const p=Math.floor(s/60);return p===1?"1 hour ago":p<24?`${p} hours ago`:n.toLocaleDateString()}),ot=()=>{const t=S.findIndex(n=>n.key===c.value);t<S.length-1&&(c.value=S[t+1].key)},nt=()=>{const t=S.findIndex(n=>n.key===c.value);t>0&&(c.value=S[t-1].key)},lt=t=>[v.ACTIVE,v.EXPIRED].includes(t.status),rt=t=>[v.ACTIVE,v.PENDING_APPROVAL].includes(t.status),it=t=>E(t,30),st=(t,n="USD")=>F(t,n),dt=t=>t?new Date(t).toLocaleDateString():"N/A",me=t=>t?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(t):"$0",ct=(t,n)=>!t||t.length<=n?t:t.substring(0,n)+"...",mt=t=>({[v.ACTIVE]:"success",[v.EXPIRED]:"danger",[v.PENDING_APPROVAL]:"warning",[v.TERMINATED]:"danger",[v.DRAFT]:"neutral",[v.RENEWED]:"info"})[t]||"neutral",ut=t=>({[_.CRITICAL]:"danger",[_.HIGH]:"warning",[_.MEDIUM]:"info",[_.LOW]:"neutral"})[t]||"neutral",vt=t=>{if(!t)return"text-gray-500";const n=new Date(t),p=Math.ceil((n-new Date)/(1e3*60*60*24));return p<0?"text-red-600":p<=30?"text-orange-600":"text-gray-900"};return Ct(async()=>{try{await U();const{edit:t,create:n,vendorId:s}=O.query;t?setTimeout(()=>{const p=N.value.find(G=>G.id===parseInt(t));p&&le(p),a.replace({path:"/contracts"})},500):n==="true"&&setTimeout(()=>{s&&(o.value.vendorId=parseInt(s)),ne(),a.replace({path:"/contracts"})},500)}catch(t){console.error("Failed to initialize contracts view:",t)}}),{contracts:N,loading:e,error:Q,activeTab:k,showModal:V,showCreateModal:Ve,showEditModal:we,modalMode:w,modalTitle:Fe,editingContract:I,contractForm:o,activeFormTab:c,filters:f,pagination:oe,showRestoreNotification:L,showRenewalModalDialog:K,renewingContract:z,renewalForm:q,showTerminationModalDialog:J,terminatingContract:j,terminationForm:H,filteredContracts:Te,contractStatsForDisplay:he,statusTabs:ke,formTabs:S,contractTypeOptions:De,statusOptions:Ie,priorityOptions:Ue,currencyOptions:xe,renewalStatusOptions:Se,terminationReasonOptions:Pe,vendorOptions:Re,tableColumns:_e,refreshContracts:U,createContractAction:ne,editContract:le,closeModal:A,closeCreateModal:Ne,closeEditModal:Me,handleModalConfirm:Ee,handleCreateContract:Ae,handleEditContract:Oe,deleteContract:Be,viewContract:re,duplicateContract:Le,showRenewalModal:ze,closeRenewalModal:ie,handleRenewalConfirm:qe,renewContract:se,showTerminationModal:je,closeTerminationModal:de,handleTerminationConfirm:He,terminateContract:ce,handleTabChange:Ge,applySearchFilters:P,updateStatusFilter:Xe,updateSearch:We,clearFilters:Ye,handleSort:Ke,handlePageChange:Je,handleRowClick:Qe,handleFormTabChange:Ze,restoreFormData:et,dismissRestoreNotification:tt,markContractUserInteraction:ee,contractHasUnsavedChanges:b,contractSavedDataInfo:ae,contractLastSaveTime:Y,formatContractLastSaveTime:at,nextFormTab:ot,previousFormTab:nt,canRenewContract:lt,canTerminateContract:rt,isExpiringSoon:it,formatContractValue:st,formatDate:dt,formatCurrency:me,truncateText:ct,getStatusBadge:mt,getPriorityBadge:ut,getEndDateColor:vt,clearError:W,formatContractType:be,formatStatus:fe,formatPriority:Ce}}},Mt={class:"p-6"},Et={class:"mb-6 grid grid-cols-1 md:grid-cols-3 lg:grid-cols-6 gap-4"},At={class:"font-medium text-gray-900"},Ot={class:"text-sm text-gray-600 mt-1"},Bt={key:0,class:"text-sm text-gray-500 mt-1"},Lt={class:"text-sm text-gray-900"},zt={class:"text-sm text-gray-900"},qt={key:0,class:"text-xs text-orange-600 font-medium"},jt={key:1,class:"text-sm text-gray-400"},Ht={class:"flex items-center space-x-1"},Gt={class:"border-b border-gray-200 mb-6"},Xt={key:0,class:"space-y-6"},Wt={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Yt={key:1,class:"space-y-6"},Kt={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Jt={class:"space-y-4"},Qt={class:"flex items-center justify-between"},Zt={class:"flex items-center space-x-4"},$t={key:0,class:"flex items-center text-sm text-gray-500"},ea={key:0,class:"w-4 h-4 mr-2 text-amber-500 animate-pulse",fill:"currentColor",viewBox:"0 0 20 20"},ta={key:1,class:"w-4 h-4 mr-2 text-green-500",fill:"currentColor",viewBox:"0 0 20 20"},aa={key:2},oa={key:3},na={class:"flex space-x-3"},la={class:"space-y-6"},ra={class:"bg-blue-50 p-4 rounded-lg"},ia={class:"text-sm font-medium text-blue-900"},sa={class:"text-sm text-blue-700"},da={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ca={class:"space-y-6"},ma={class:"bg-red-50 p-4 rounded-lg"},ua={class:"text-sm font-medium text-red-900"},va={class:"text-sm text-red-700"},ba={class:"grid grid-cols-1 gap-6"};function fa(O,a,N,e,Q,Z){const y=T("FPButton"),M=T("FPStats"),B=T("FPTabs"),X=T("FPPageHeader"),d=T("FPInput"),F=T("FPSelect"),E=T("FPBadge"),W=T("FPTable"),k=T("FormRestoreNotification"),V=T("FPCheckbox"),w=T("FPModal"),I=T("FPLayout");return m(),x(I,null,{header:i(()=>[l(X,{title:"Contracts",description:"Manage and track service contracts, warranties, and vendor agreements",breadcrumbs:[{text:"Contracts",to:null}]},{actions:i(()=>[l(y,{variant:"outline",size:"sm",onClick:e.refreshContracts,"data-testid":"refresh-btn"},{default:i(()=>a[34]||(a[34]=[r("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),C(" Refresh ",-1)])),_:1,__:[34]},8,["onClick"]),l(y,{variant:"primary",size:"sm",onClick:e.createContractAction,"data-testid":"create-contract-btn"},{default:i(()=>a[35]||(a[35]=[r("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),C(" Create Contract ",-1)])),_:1,__:[35]},8,["onClick"])]),stats:i(()=>[l(M,{stats:e.contractStatsForDisplay},null,8,["stats"])]),tabs:i(()=>[l(B,{modelValue:e.activeTab,"onUpdate:modelValue":a[0]||(a[0]=o=>e.activeTab=o),tabs:e.statusTabs,onTabChange:e.handleTabChange},null,8,["modelValue","tabs","onTabChange"])]),_:1})]),default:i(()=>[r("div",Mt,[r("div",Et,[l(d,{modelValue:e.filters.search,"onUpdate:modelValue":a[1]||(a[1]=o=>e.filters.search=o),placeholder:"Search contracts...",onInput:e.applySearchFilters},{prepend:i(()=>a[36]||(a[36]=[r("svg",{class:"w-4 h-4 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)])),_:1},8,["modelValue","onInput"]),l(F,{modelValue:e.filters.contractType,"onUpdate:modelValue":[a[2]||(a[2]=o=>e.filters.contractType=o),e.applySearchFilters],placeholder:"Filter by Type",options:e.contractTypeOptions},null,8,["modelValue","options","onUpdate:modelValue"]),l(F,{modelValue:e.filters.priority,"onUpdate:modelValue":[a[3]||(a[3]=o=>e.filters.priority=o),e.applySearchFilters],placeholder:"Filter by Priority",options:e.priorityOptions},null,8,["modelValue","options","onUpdate:modelValue"]),l(F,{modelValue:e.filters.vendor,"onUpdate:modelValue":[a[4]||(a[4]=o=>e.filters.vendor=o),e.applySearchFilters],placeholder:"Filter by Vendor",options:e.vendorOptions},null,8,["modelValue","options","onUpdate:modelValue"]),l(d,{modelValue:e.filters.startDate,"onUpdate:modelValue":a[5]||(a[5]=o=>e.filters.startDate=o),type:"date",placeholder:"Start Date",onInput:e.applySearchFilters},null,8,["modelValue","onInput"]),l(y,{variant:"outline",size:"sm",onClick:e.clearFilters},{default:i(()=>a[37]||(a[37]=[C(" Clear Filters ",-1)])),_:1,__:[37]},8,["onClick"])]),l(W,{columns:e.tableColumns,data:e.filteredContracts,loading:e.loading,pagination:e.pagination,"empty-message":"No contracts found",onSortChange:e.handleSort,onPageChange:e.handlePageChange,onRowClick:e.handleRowClick},{"column-title":i(({row:o})=>[r("div",null,[r("h4",At,g(o.title),1),r("p",Ot,g(o.contractNumber),1),o.description?(m(),h("p",Bt,g(e.truncateText(o.description,60)),1)):D("",!0)])]),"column-status":i(({row:o})=>[l(E,{variant:e.getStatusBadge(o.status)},{default:i(()=>[C(g(e.formatStatus(o.status)),1)]),_:2},1032,["variant"])]),"column-contractType":i(({row:o})=>[l(E,{variant:"neutral"},{default:i(()=>[C(g(e.formatContractType(o.contractType)),1)]),_:2},1024)]),"column-priority":i(({row:o})=>[l(E,{variant:e.getPriorityBadge(o.priority)},{default:i(()=>[C(g(e.formatPriority(o.priority)),1)]),_:2},1032,["variant"])]),"column-vendor":i(({row:o})=>[r("div",Lt,g(o.vendorName||"N/A"),1)]),"column-contractValue":i(({row:o})=>[r("div",zt,g(e.formatContractValue(o.contractValue,o.currency)),1)]),"column-endDate":i(({row:o})=>[o.endDate?(m(),h("div",{key:0,class:pt(["text-sm",e.getEndDateColor(o.endDate)])},[C(g(e.formatDate(o.endDate))+" ",1),e.isExpiringSoon(o)?(m(),h("div",qt," Expires soon ")):D("",!0)],2)):(m(),h("span",jt,"No end date"))]),"row-actions":i(({row:o})=>[r("div",Ht,[l(y,{variant:"ghost",size:"sm",onClick:c=>e.viewContract(o.id)},{default:i(()=>a[38]||(a[38]=[C(" View ",-1)])),_:2,__:[38]},1032,["onClick"]),l(y,{variant:"ghost",size:"sm",onClick:c=>e.editContract(o)},{default:i(()=>a[39]||(a[39]=[C(" Edit ",-1)])),_:2,__:[39]},1032,["onClick"]),e.canRenewContract(o)?(m(),x(y,{key:0,variant:"ghost",size:"sm",onClick:c=>e.showRenewalModal(o)},{default:i(()=>a[40]||(a[40]=[C(" Renew ",-1)])),_:2,__:[40]},1032,["onClick"])):D("",!0),l(y,{variant:"ghost",size:"sm",onClick:c=>e.deleteContract(o),class:"text-red-600"},{default:i(()=>a[41]||(a[41]=[C(" Delete ",-1)])),_:2,__:[41]},1032,["onClick"])])]),_:1},8,["columns","data","loading","pagination","onSortChange","onPageChange","onRowClick"])]),l(w,{modelValue:e.showModal,"onUpdate:modelValue":a[24]||(a[24]=o=>e.showModal=o),title:e.modalTitle,size:"xl",persistent:"",onConfirm:e.handleModalConfirm,onCancel:e.closeModal},{footer:i(()=>[r("div",Qt,[r("div",Zt,[e.contractHasUnsavedChanges||e.contractLastSaveTime?(m(),h("div",$t,[e.contractHasUnsavedChanges?(m(),h("svg",ea,a[44]||(a[44]=[r("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z","clip-rule":"evenodd"},null,-1)]))):(m(),h("svg",ta,a[45]||(a[45]=[r("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)]))),e.contractHasUnsavedChanges?(m(),h("span",aa,"Auto-saving...")):e.contractLastSaveTime?(m(),h("span",oa,"Last saved "+g(e.formatContractLastSaveTime),1)):D("",!0)])):D("",!0),e.activeFormTab!=="basic"?(m(),x(y,{key:1,variant:"outline",size:"sm",onClick:e.previousFormTab},{default:i(()=>a[46]||(a[46]=[C(" ← Previous ",-1)])),_:1,__:[46]},8,["onClick"])):D("",!0)]),r("div",na,[l(y,{variant:"secondary",onClick:e.closeModal},{default:i(()=>a[47]||(a[47]=[C(" Cancel ",-1)])),_:1,__:[47]},8,["onClick"]),e.activeFormTab!=="details"?(m(),x(y,{key:0,variant:"primary",onClick:e.nextFormTab},{default:i(()=>a[48]||(a[48]=[C(" Next → ",-1)])),_:1,__:[48]},8,["onClick"])):(m(),x(y,{key:1,variant:"primary",loading:e.loading,onClick:O.handleSubmitContract},{default:i(()=>[C(g(e.modalMode==="create"?"Create Contract":"Update Contract"),1)]),_:1},8,["loading","onClick"]))])])]),default:i(()=>[r("div",Gt,[l(B,{modelValue:e.activeFormTab,"onUpdate:modelValue":a[6]||(a[6]=o=>e.activeFormTab=o),tabs:e.formTabs,onTabChange:e.handleFormTabChange},null,8,["modelValue","tabs","onTabChange"])]),l(k,{visible:e.showRestoreNotification,"saved-data-info":e.contractSavedDataInfo,onRestore:e.restoreFormData,onDismiss:e.dismissRestoreNotification},null,8,["visible","saved-data-info","onRestore","onDismiss"]),e.activeFormTab==="basic"?(m(),h("div",Xt,[r("div",Wt,[l(d,{modelValue:e.contractForm.contractNumber,"onUpdate:modelValue":a[7]||(a[7]=o=>e.contractForm.contractNumber=o),label:"Contract Number",placeholder:"e.g. CONT-001",required:"",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"]),l(d,{modelValue:e.contractForm.title,"onUpdate:modelValue":a[8]||(a[8]=o=>e.contractForm.title=o),label:"Contract Title",placeholder:"e.g. Annual Maintenance Agreement",required:"",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"]),l(F,{modelValue:e.contractForm.contractType,"onUpdate:modelValue":[a[9]||(a[9]=o=>e.contractForm.contractType=o),e.markContractUserInteraction],label:"Contract Type",options:e.contractTypeOptions,required:"",disabled:e.loading},null,8,["modelValue","options","disabled","onUpdate:modelValue"]),l(F,{modelValue:e.contractForm.status,"onUpdate:modelValue":[a[10]||(a[10]=o=>e.contractForm.status=o),e.markContractUserInteraction],label:"Status",options:e.statusOptions,required:"",disabled:e.loading},null,8,["modelValue","options","disabled","onUpdate:modelValue"]),l(F,{modelValue:e.contractForm.priority,"onUpdate:modelValue":[a[11]||(a[11]=o=>e.contractForm.priority=o),e.markContractUserInteraction],label:"Priority",options:e.priorityOptions,required:"",disabled:e.loading},null,8,["modelValue","options","disabled","onUpdate:modelValue"]),l(F,{modelValue:e.contractForm.vendorId,"onUpdate:modelValue":[a[12]||(a[12]=o=>e.contractForm.vendorId=o),e.markContractUserInteraction],label:"Vendor",options:e.vendorOptions,required:"",disabled:e.loading},null,8,["modelValue","options","disabled","onUpdate:modelValue"]),l(d,{modelValue:e.contractForm.startDate,"onUpdate:modelValue":a[13]||(a[13]=o=>e.contractForm.startDate=o),label:"Start Date",type:"date",required:"",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"]),l(d,{modelValue:e.contractForm.endDate,"onUpdate:modelValue":a[14]||(a[14]=o=>e.contractForm.endDate=o),label:"End Date",type:"date",required:"",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"]),l(d,{modelValue:e.contractForm.contractValue,"onUpdate:modelValue":a[15]||(a[15]=o=>e.contractForm.contractValue=o),label:"Contract Value",type:"number",min:"0",step:"0.01",placeholder:"0.00",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"]),l(F,{modelValue:e.contractForm.currency,"onUpdate:modelValue":[a[16]||(a[16]=o=>e.contractForm.currency=o),e.markContractUserInteraction],label:"Currency",options:e.currencyOptions,disabled:e.loading},null,8,["modelValue","options","disabled","onUpdate:modelValue"])]),l(d,{modelValue:e.contractForm.description,"onUpdate:modelValue":a[17]||(a[17]=o=>e.contractForm.description=o),label:"Description",placeholder:"Brief description of the contract...",rows:"4",disabled:e.loading,onInput:O.saveFormToStorage},null,8,["modelValue","disabled","onInput"]),a[42]||(a[42]=r("div",{class:"bg-blue-50 p-4 rounded-lg"},[r("h4",{class:"text-sm font-medium text-blue-900 mb-2"},"Contract Information"),r("ul",{class:"text-sm text-blue-800 space-y-1"},[r("li",null,"• Contract number should be unique and follow your organization's numbering system"),r("li",null,"• Start and end dates define the active period of the contract"),r("li",null,"• Priority helps with contract management and renewal planning"),r("li",null,"• Contract value is used for financial reporting and budget tracking")])],-1))])):D("",!0),e.activeFormTab==="details"?(m(),h("div",Yt,[r("div",Kt,[l(d,{modelValue:e.contractForm.paymentTerms,"onUpdate:modelValue":a[18]||(a[18]=o=>e.contractForm.paymentTerms=o),label:"Payment Terms",placeholder:"Describe payment terms and conditions...",rows:"3",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"]),l(d,{modelValue:e.contractForm.deliverables,"onUpdate:modelValue":a[19]||(a[19]=o=>e.contractForm.deliverables=o),label:"Deliverables",placeholder:"List expected deliverables and outcomes...",rows:"3",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"]),r("div",Jt,[a[43]||(a[43]=r("label",{class:"block text-sm font-medium text-gray-700"},"Renewal Settings",-1)),l(V,{modelValue:e.contractForm.autoRenew,"onUpdate:modelValue":[a[20]||(a[20]=o=>e.contractForm.autoRenew=o),e.markContractUserInteraction],label:"Auto-renew this contract",disabled:e.loading},null,8,["modelValue","disabled","onUpdate:modelValue"]),e.contractForm.autoRenew?(m(),x(d,{key:0,modelValue:e.contractForm.renewalNotificationDays,"onUpdate:modelValue":a[21]||(a[21]=o=>e.contractForm.renewalNotificationDays=o),label:"Renewal Notification (days before expiry)",type:"number",min:"1",max:"365",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"])):D("",!0),e.contractForm.autoRenew?(m(),x(F,{key:1,modelValue:e.contractForm.renewalStatus,"onUpdate:modelValue":[a[22]||(a[22]=o=>e.contractForm.renewalStatus=o),e.markContractUserInteraction],label:"Renewal Status",options:e.renewalStatusOptions,disabled:e.loading},null,8,["modelValue","options","disabled","onUpdate:modelValue"])):D("",!0)]),l(d,{modelValue:e.contractForm.notes,"onUpdate:modelValue":a[23]||(a[23]=o=>e.contractForm.notes=o),label:"Additional Notes",placeholder:"Any additional notes or comments...",rows:"4",disabled:e.loading,onInput:e.markContractUserInteraction},null,8,["modelValue","disabled","onInput"])])])):D("",!0)]),_:1},8,["modelValue","title","onConfirm","onCancel"]),l(w,{modelValue:e.showRenewalModalDialog,"onUpdate:modelValue":a[29]||(a[29]=o=>e.showRenewalModalDialog=o),title:"Renew Contract",size:"lg",onConfirm:e.handleRenewalConfirm,onCancel:e.closeRenewalModal},{default:i(()=>{var o,c;return[r("div",la,[r("div",ra,[r("h4",ia,"Renewing: "+g((o=e.renewingContract)==null?void 0:o.title),1),r("p",sa,"Contract "+g((c=e.renewingContract)==null?void 0:c.contractNumber),1)]),r("div",da,[l(d,{modelValue:e.renewalForm.startDate,"onUpdate:modelValue":a[25]||(a[25]=b=>e.renewalForm.startDate=b),label:"New Start Date",type:"date",required:"",disabled:e.loading},null,8,["modelValue","disabled"]),l(d,{modelValue:e.renewalForm.endDate,"onUpdate:modelValue":a[26]||(a[26]=b=>e.renewalForm.endDate=b),label:"New End Date",type:"date",required:"",disabled:e.loading},null,8,["modelValue","disabled"]),l(d,{modelValue:e.renewalForm.contractValue,"onUpdate:modelValue":a[27]||(a[27]=b=>e.renewalForm.contractValue=b),label:"New Contract Value",type:"number",min:"0",step:"0.01",disabled:e.loading},null,8,["modelValue","disabled"])]),l(d,{modelValue:e.renewalForm.notes,"onUpdate:modelValue":a[28]||(a[28]=b=>e.renewalForm.notes=b),label:"Renewal Notes",placeholder:"Notes about this renewal...",rows:"3",disabled:e.loading},null,8,["modelValue","disabled"])])]}),_:1},8,["modelValue","onConfirm","onCancel"]),l(w,{modelValue:e.showTerminationModalDialog,"onUpdate:modelValue":a[33]||(a[33]=o=>e.showTerminationModalDialog=o),title:"Terminate Contract",size:"lg",onConfirm:e.handleTerminationConfirm,onCancel:e.closeTerminationModal},{default:i(()=>{var o,c;return[r("div",ca,[r("div",ma,[r("h4",ua,"Terminating: "+g((o=e.terminatingContract)==null?void 0:o.title),1),r("p",va,"Contract "+g((c=e.terminatingContract)==null?void 0:c.contractNumber),1)]),r("div",ba,[l(d,{modelValue:e.terminationForm.terminationDate,"onUpdate:modelValue":a[30]||(a[30]=b=>e.terminationForm.terminationDate=b),label:"Termination Date",type:"date",required:"",disabled:e.loading},null,8,["modelValue","disabled"]),l(F,{modelValue:e.terminationForm.reason,"onUpdate:modelValue":a[31]||(a[31]=b=>e.terminationForm.reason=b),label:"Termination Reason",options:e.terminationReasonOptions,required:"",disabled:e.loading},null,8,["modelValue","options","disabled"]),l(d,{modelValue:e.terminationForm.notes,"onUpdate:modelValue":a[32]||(a[32]=b=>e.terminationForm.notes=b),label:"Termination Notes",placeholder:"Explain the reason for termination...",rows:"4",required:"",disabled:e.loading},null,8,["modelValue","disabled"])])])]}),_:1},8,["modelValue","onConfirm","onCancel"])]),_:1})}const Sa=bt(Nt,[["render",fa],["__scopeId","data-v-cbd6c5af"]]);export{Sa as default};