import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{t}from"./react-Augu_vA3.js";import{Dt as n,K as r,V as i,Vt as a,Wt as o,ai as s,mt as c,q as l,qt as u,st as d,vn as f,zi as p,zt as m}from"./forms-CL2ODv4X.js";import{t as h}from"./useTranslation-B_YCgyrR.js";import{t as g}from"./LanguageSelector-CrQP2K22.js";import{t as _}from"./jsx-runtime-CTknu7_t.js";import{n as v}from"./Combobox-BFkUVwV6.js";import{t as y}from"./Modal-C4GWc9Ry.js";import{n as b}from"./useHasPermission-CRA8mdHC.js";import{n as x}from"./data-table-z0Fb_a7m.js";import{t as S}from"./TabGroup-CB9qeXk_.js";import{t as C}from"./CountrySelector-BCDLgkNR.js";import{t as w}from"./NumberInputField-DONpvZxK.js";import{t as T}from"./CurrencySelector-Dki6bhIn.js";import{n as E,o as D,t as O}from"./payment-term-filters-BcSUK-5b.js";import{r as k}from"./group-settings-NF6uoA1o.js";function A(e){let t=b();return o(`/api/v1/clients/create`,()=>m(`GET`,n(`/api/v1/clients/create`)).then(e=>e.data.data),{refetchOnWindowFocus:!!e.refetchOnWindowFocus,staleTime:1/0,enabled:t(`create_client`)})}function j(e){return o([`/api/v1/clients`,`per_page=500`,e],()=>m(`GET`,n(`/api/v1/clients?per_page=500&status=:status`,{status:e.status?.join(`,`)??`all`})).then(e=>e.data.data),{enabled:e.enabled??!0,staleTime:1/0})}function M({id:e,enabled:t}){return o([`/api/v1/clients`,e],()=>m(`GET`,n(`/api/v1/clients/:id?include=group_settings,activities.history`,{id:e})).then(e=>e.data.data),{enabled:t,staleTime:1/0})}var N={assign_group:`updated_group`,bulk_update:`updated_records`,clone:`cloned_client`};function P({onSuccess:e}={}){let t=u(),r=s(x);return async(i,o,s)=>{let{groupSettingsId:c,column:l,newValue:u}=s||{};return f.processing(),m(`POST`,n(`/api/v1/clients/bulk`),{action:o,ids:i,...c&&{group_settings_id:c},...l&&{column:l},...o===`bulk_update`&&{new_value:u}}).then(n=>{let i=N[o]||`${o}d_client`;f.success(i),e?.(n.data.data),r&&t.invalidateQueries([r]),a([`clients`]),o===`delete`&&a([`projects`])})}}var F=e(t()),I=p(),L=e(_());function R({label:e,value:t,onValueChange:n,errorMessage:i}){let{data:a}=k();return a?(0,L.jsx)(r,{label:e,value:t,onValueChange:n,errorMessage:i,customSelector:!0,withBlank:!0,children:a.map((e,t)=>(0,L.jsx)(`option`,{value:e.id,children:e.name},t))}):null}function z({isModalOpen:e,setIsModalOpen:t,onClientCreated:o}){let[s]=h(),[l,u]=(0,F.useState)(),[p,_]=(0,F.useState)(),[v,b]=(0,F.useState)([{first_name:``,last_name:``,email:``,phone:``,send_email:!1,cc_only:!1}]),{data:x}=A({refetchOnWindowFocus:!1}),{data:k}=D({}),j=(e,t)=>{_(void 0),u(n=>n&&(0,I.set)({...n},e,t))},M=(e,t)=>{_(void 0),u(n=>n&&(0,I.set)({...n},`settings`,{...n.settings,[e]:t}))},N=(e,t)=>{_(void 0);let n=v.findIndex(e=>e.contact_key===v[0].contact_key);(0,I.set)(v[n],t,e),b([...v])},P=e=>{t(e),_(void 0),u(void 0),b(()=>[{first_name:``,last_name:``,email:``,phone:``,send_email:!1,cc_only:!1}])},z=()=>{if((0,I.set)(l,`contacts`,v),f.processing(),_(void 0),!(l?.name!=``||v[0].first_name!=``||v[0].last_name!=``))return _({message:s(`please_enter_a_client_or_contact_name`),errors:{name:[s(`please_enter_a_client_or_contact_name`)]}}),f.error(),z;m(`POST`,n(`/api/v1/clients`),l).then(e=>{f.success(`created_client`),o&&o(e.data.data),P(!1),a([`clients`]),window.dispatchEvent(new CustomEvent(`invalidate.combobox.queries`,{detail:{url:n(`/api/v1/clients`)}}))}).catch(e=>{e.response?.status===422&&(_(e.response.data),f.dismiss())})};return(0,F.useEffect)(()=>{x&&e&&u({...x})},[x,e]),(0,L.jsx)(y,{title:s(`new_client`),visible:e,onClose:()=>P(!1),size:`extraSmall`,renderTransitionChildAsFragment:!0,overflowVisible:!0,withoutVerticalMargin:!0,withoutHorizontalPadding:!0,withoutBorderLine:!0,children:(0,L.jsxs)(`div`,{className:`flex flex-col`,children:[l?(0,L.jsxs)(S,{tabs:[s(`details`),s(`address`),s(`shipping`),s(`settings`)],width:`full`,withHorizontalPadding:!0,horizontalPaddingWidth:`1.5rem`,children:[(0,L.jsxs)(`div`,{className:`flex flex-col space-y-3 px-4 sm:px-6`,children:[(0,L.jsx)(i,{label:s(`name`),value:l?.name||``,onValueChange:e=>j(`name`,e),errorMessage:p?.errors.name||p?.errors.id}),(0,L.jsx)(i,{label:s(`vat_number`),value:l?.vat_number||``,onValueChange:e=>j(`vat_number`,e),errorMessage:p?.errors.vat_number}),(0,L.jsx)(i,{label:`${s(`contact`)} ${s(`first_name`)}`,value:v[0].first_name,onValueChange:e=>N(e,`first_name`),errorMessage:p?.errors.name}),(0,L.jsx)(i,{label:`${s(`contact`)} ${s(`last_name`)}`,value:v[0].last_name,onValueChange:e=>N(e,`last_name`),errorMessage:p?.errors.name}),(0,L.jsx)(i,{label:`${s(`contact`)} ${s(`email`)}`,value:v[0].email,onValueChange:e=>N(e,`email`),errorMessage:p?.errors[`contacts.0.email`]}),(0,L.jsx)(i,{label:`${s(`contact`)} ${s(`phone`)}`,value:v[0].phone,onValueChange:e=>N(e,`phone`),errorMessage:p?.errors[`contacts.0.phone`]}),(0,L.jsx)(T,{label:s(`currency`),value:l?.settings?.currency_id||``,onChange:e=>{let t=(0,I.cloneDeep)(l);(0,I.set)(t,`settings.currency_id`,e),u(t)},errorMessage:p?.errors[`settings.currency_id`],dismissable:!0})]}),(0,L.jsxs)(`div`,{className:`flex flex-col space-y-3 px-4 sm:px-6`,children:[(0,L.jsx)(i,{label:s(`billing_address1`),value:l?.address1||``,onValueChange:e=>j(`address1`,e),errorMessage:p?.errors.address1}),(0,L.jsx)(i,{label:s(`address2`),value:l?.address2||``,onValueChange:e=>j(`address2`,e),errorMessage:p?.errors.address2}),(0,L.jsx)(i,{label:s(`city`),value:l?.city||``,onValueChange:e=>j(`city`,e),errorMessage:p?.errors.city}),(0,L.jsx)(i,{label:s(`state`),value:l?.state||``,onValueChange:e=>j(`state`,e),errorMessage:p?.errors.state}),(0,L.jsx)(i,{label:s(`postal_code`),value:l?.postal_code||``,onValueChange:e=>j(`postal_code`,e),errorMessage:p?.errors.postal_code}),(0,L.jsx)(C,{label:s(`country`),value:l?.country_id||``,onChange:e=>j(`country_id`,e),errorMessage:p?.errors.country_id,dismissable:!0})]}),(0,L.jsxs)(`div`,{className:`flex flex-col space-y-3 px-4 sm:px-6`,children:[(0,L.jsx)(i,{label:s(`shipping_address1`),value:l?.shipping_address1||``,onValueChange:e=>j(`shipping_address1`,e),errorMessage:p?.errors.shipping_address1}),(0,L.jsx)(i,{label:s(`shipping_address2`),value:l?.shipping_address2||``,onValueChange:e=>j(`shipping_address2`,e),errorMessage:p?.errors.shipping_address2}),(0,L.jsx)(i,{label:s(`city`),value:l?.shipping_city||``,onValueChange:e=>j(`shipping_city`,e),errorMessage:p?.errors.shipping_city}),(0,L.jsx)(i,{label:s(`state`),value:l?.shipping_state||``,onValueChange:e=>j(`shipping_state`,e),errorMessage:p?.errors.shipping_state}),(0,L.jsx)(i,{label:s(`postal_code`),value:l?.shipping_postal_code||``,onValueChange:e=>j(`shipping_postal_code`,e),errorMessage:p?.errors.shipping_postal_code}),(0,L.jsx)(C,{label:s(`country`),value:l?.shipping_country_id||``,onChange:e=>j(`shipping_country_id`,e),errorMessage:p?.errors.shipping_country_id,dismissable:!0})]}),(0,L.jsxs)(`div`,{className:`flex flex-col space-y-3 px-4 sm:px-6`,children:[(0,L.jsx)(T,{label:s(`currency`),value:l?.settings?.currency_id||``,onChange:e=>M(`currency_id`,e),errorMessage:p?.errors[`settings.currency_id`]}),(0,L.jsx)(g,{label:s(`language`),value:l?.settings?.language_id||``,onChange:e=>M(`language_id`,e),errorMessage:p?.errors[`settings.language_id`]}),k&&(0,L.jsx)(r,{label:s(`payment_terms`),value:l?.settings?.payment_terms||``,errorMessage:p?.errors[`settings.payment_terms`],onValueChange:e=>M(`payment_terms`,e),withBlank:!0,customSelector:!0,children:k.data.data.filter(e=>E(e,l?.settings?.payment_terms)).filter(O).map((e,t)=>(0,L.jsx)(`option`,{value:e.num_days.toString(),children:e.name},t))}),k&&(0,L.jsx)(r,{label:s(`quote_valid_until`),value:l?.settings?.valid_until||``,onValueChange:e=>M(`valid_until`,e),errorMessage:p?.errors[`settings.valid_until`],withBlank:!0,customSelector:!0,children:k.data.data.filter(e=>E(e,l?.settings?.valid_until)).filter(O).map((e,t)=>(0,L.jsx)(`option`,{value:e.num_days.toString(),children:e.name},t))}),(0,L.jsx)(w,{label:s(`task_rate`),value:l?.settings?.default_task_rate||``,onValueChange:e=>M(`default_task_rate`,parseFloat(e)),errorMessage:p?.errors[`settings.default_task_rate`]}),(0,L.jsxs)(r,{label:s(`send_reminders`),value:l?.settings?.send_reminders===!0?`enabled`:l?.settings?.send_reminders===!1?`disabled`:``,onValueChange:e=>M(`send_reminders`,e===`enabled`||e===``&&``),withBlank:!0,errorMessage:p?.errors[`settings.send_reminders`],customSelector:!0,children:[(0,L.jsx)(`option`,{value:`enabled`,children:s(`enabled`)}),(0,L.jsx)(`option`,{value:`disabled`,children:s(`disabled`)})]}),(0,L.jsx)(R,{label:s(`group`),value:l?.group_settings_id||``,onValueChange:e=>j(`group_settings_id`,e),errorMessage:p?.errors.group_settings_id})]})]}):(0,L.jsx)(c,{}),(0,L.jsx)(`div`,{className:`flex justify-end mt-2 px-4 sm:px-6`,children:(0,L.jsx)(d,{behavior:`button`,onClick:z,children:s(`save`)})})]})})}function B(e){let[t]=h(),[r,i]=(0,F.useState)(!1),a=b(),{dropdownLabelFn:o}=e;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(z,{isModalOpen:r,setIsModalOpen:i,onClientCreated:t=>e.onChange(t)}),(0,L.jsx)(v,{inputOptions:{label:e.inputLabel?.toString(),value:e.value||null},endpoint:n(`/api/v1/clients`),readonly:e.readonly,onDismiss:e.onClearButtonClick,querySpecificEntry:`/api/v1/clients/:id`,initiallyVisible:e.initiallyVisible,entryOptions:{id:`id`,label:`display_name`,value:`id`,customSearchableValue:e=>{let t=[`first_name`,`last_name`,`email`,`phone`].map(t=>e.contacts.map(e=>e[t]).join(`,`)).filter(Boolean),n=[e.id_number,e.number,e.custom_value1,e.custom_value2,e.custom_value3,e.custom_value4].filter(Boolean);return[...t,...n].join(`,`)},dropdownLabelFn:o},onChange:t=>t.resource&&e.onChange(t.resource),staleTime:e.staleTime||1/0,sortBy:`display_name|asc`,exclude:e.exclude,action:{label:t(`new_client`),visible:!(e.withoutAction||!a(`create_client`)),onClick:()=>i(!0)},clearInputAfterSelection:e.clearInputAfterSelection},`client_selector`),(0,L.jsx)(l,{className:`mt-2`,children:e.errorMessage})]})}export{M as a,P as i,z as n,j as o,A as r,B as t};