import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{t}from"./react-Augu_vA3.js";import{Dt as n,Si as r,V as i,Vt as a,mt as o,q as s,st as c,vn as l,zt as u}from"./forms-CL2ODv4X.js";import{t as d}from"./useTranslation-B_YCgyrR.js";import{t as f}from"./jsx-runtime-CTknu7_t.js";import{n as p}from"./Combobox-BFkUVwV6.js";import{t as m}from"./Modal-C4GWc9Ry.js";import{n as h}from"./useHasPermission-CRA8mdHC.js";import{t as g}from"./UserSelector-_oeo58Q1.js";import{l as _,t as v}from"./TagPillSelector-DwiD3DVR.js";import{t as y}from"./ClientSelector-BiA9XcyI.js";import{t as b}from"./useClientResolver-BIkkawS0.js";import{t as x}from"./projects-D3fUi0s5.js";var S=e(t()),C=e(f());function w(e){let[t]=d(),{data:s}=x(),[f,p]=(0,S.useState)(),[h,w]=(0,S.useState)(),[T,E]=(0,S.useState)(!1),D=r(),O=b(),k=(e,t)=>{w(void 0),p(n=>n&&{...n,[e]:t})};return(0,S.useEffect)(()=>{s&&p({...s,task_rate:D?.settings.default_task_rate||0})},[s]),(0,S.useEffect)(()=>{f?.client_id&&f.client_id.length>1&&O.find(f.client_id).then(e=>{e.settings.default_task_rate&&k(`task_rate`,e.settings.default_task_rate)})},[f?.client_id]),(0,C.jsx)(m,{title:t(`new_project`),size:`regular`,visible:e.visible,onClose:()=>{p(s),e.setVisible(!1)},children:f?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-5 gap-y-3`,children:[(0,C.jsx)(i,{label:t(`project_name`),value:f.name,onValueChange:e=>k(`name`,e),errorMessage:h?.errors.name}),(0,C.jsx)(y,{inputLabel:t(`client`),value:f.client_id,onChange:e=>k(`client_id`,e.id),clearButton:!0,onClearButtonClick:()=>k(`client_id`,``),errorMessage:h?.errors.client_id}),(0,C.jsx)(g,{inputLabel:t(`assigned_user`),value:f.assigned_user_id,onChange:e=>k(`assigned_user_id`,e.id),onClearButtonClick:()=>k(`assigned_user_id`,``),errorMessage:h?.errors.assigned_user_id}),(0,C.jsx)(v,{className:`col-span-2`,label:t(`tags`),entityType:_.project,value:f.tags||[],onChange:e=>k(`tags`,e),errorMessage:h?.errors.tags}),(0,C.jsx)(i,{label:t(`due_date`),type:`date`,value:f.due_date,onValueChange:e=>k(`due_date`,e),errorMessage:h?.errors.due_date}),(0,C.jsx)(i,{label:t(`budgeted_hours`),value:f.budgeted_hours,onValueChange:e=>k(`budgeted_hours`,e),errorMessage:h?.errors.budgeted_hours}),(0,C.jsx)(i,{label:t(`task_rate`),value:f.task_rate,onValueChange:e=>k(`task_rate`,e),errorMessage:h?.errors.task_rate}),(0,C.jsx)(i,{label:t(`public_notes`),element:`textarea`,value:f.public_notes,onValueChange:e=>k(`public_notes`,e),errorMessage:h?.errors.public_notes}),(0,C.jsx)(i,{label:t(`private_notes`),element:`textarea`,value:f.private_notes,onValueChange:e=>k(`private_notes`,e),errorMessage:h?.errors.private_notes})]}),(0,C.jsx)(c,{className:`flex self-end`,disableWithoutIcon:!0,disabled:!f||T,onClick:t=>{t.preventDefault(),T||(l.processing(),w(void 0),E(!0),u(`POST`,n(`/api/v1/projects`),f).then(t=>{l.success(`created_project`),a([`projects`]),window.dispatchEvent(new CustomEvent(`invalidate.combobox.queries`,{detail:{url:n(`/api/v1/projects`)}})),e.onProjectCreated(t.data.data),p(s),e.setVisible(!1)}).catch(e=>{e.response?.status===422&&(l.dismiss(),w(e.response.data))}).finally(()=>E(!1)))},children:t(`save`)})]}):(0,C.jsx)(o,{})})}function T(e){let[t]=d(),r=h(),[i,a]=(0,S.useState)(!1),o=e.clientId?`&client_id=${e.clientId}`:``;return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(w,{visible:i,setVisible:a,onProjectCreated:t=>e.onChange(t)}),(0,C.jsx)(p,{inputOptions:{label:e.inputLabel?.toString(),value:e.value??null},endpoint:n(`/api/v1/projects?status=active&filter_deleted_clients=true${o}`),entryOptions:{id:`id`,label:`name`,value:`id`},onChange:t=>t.resource?e.onChange(t.resource):null,readonly:e.readonly,onDismiss:e.onClearButtonClick,action:{label:t(`new_project`),onClick:()=>a(!0),visible:r(`create_project`)&&!e.withoutAction}}),(0,C.jsx)(s,{className:`mt-2`,children:e.errorMessage})]})}export{T as t};