10 lines
7.5 KiB
JavaScript
10 lines
7.5 KiB
JavaScript
import{bJ as j,bK as J,bL as Q,a9 as W,bc as T,r as P,e as F,a7 as M,bM as Z,u as w,F as H,b3 as G,p as u,c as a,ah as K,j as p,bN as X,b5 as Y,b6 as ee,ae as I,b7 as O,b8 as R,b9 as se,J as te,bb as N,bd as ae,be as ne,H as $,ad as ie,bO as oe,Z as z,bp as L,bP as V,h as D,bQ as ce,O as re,$ as le,_ as de,bh as ue,a2 as me,T as fe,br as pe,bR as he,bS as ve,bT as be,S as ge,i as ye,w as _e,aU as Se,bU as Ae}from"./bundle.31c6ea9c.js";import{b as xe,u as q}from"./bundle.c17304ce.js";import{I as Ce}from"./bundle.756326ba.js";import{u as De}from"./bundle.4a6200f7.js";import{A as Ie}from"./bundle.565afbd2.js";/**
|
|
* Invoice Ninja (https://invoiceninja.com).
|
|
*
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
*
|
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
|
*
|
|
* @license https://www.elastic.co/licensing/elastic-license
|
|
*/function Ne(g){const{setErrors:r,isDefaultTerms:c,isDefaultFooter:h}=g,[l]=j(),s=J(),m=Q(),v=W(Z);return async f=>{r(void 0),T.processing(),await s(!0);let i="/api/v1/invoices/:id?";c?(i+="save_default_terms=true",h&&(i+="&save_default_footer=true")):h&&(i+="save_default_footer=true"),P("PUT",F(i,{id:f.id}),f).then(async()=>{(c||h)&&await m(),T.success("updated_invoice"),M(["products","invoices"]),l.get("action")==="add_tasks"&&M(["tasks"])}).catch(b=>{var t;if(((t=b.response)==null?void 0:t.status)===422){const d=b.response.data;d.errors.amount?T.error(d.errors.amount[0]):T.dismiss(),r(d)}}).finally(()=>v(void 0))}}function ke(g){var k,E;const[r]=w(),c=H(),h=G(),l=xe(),[s,m]=u.useState((E=(k=c==null?void 0:c.company_user)==null?void 0:k.react_settings)==null?void 0:E.common_actions),[v,f]=u.useState([]),{entity:i,visible:b,setVisible:t}=g,d=l[i],[_,S]=u.useState(""),y=()=>{var e;return N.isEqual((e=c==null?void 0:c.company_user)==null?void 0:e.react_settings.common_actions,s)},x=e=>{var n;return((n=d.find(({value:o})=>o===e))==null?void 0:n.label)||""},C=()=>{const e=N.cloneDeep(c);N.set(e,"company_user.react_settings.common_actions",s),P("PUT",F("/api/v1/company_users/:id",{id:e.id}),e).then(n=>{N.set(e,"company_user",n.data.data),M(["company_users"]),h(ae(e))})},U=e=>{const n=s==null?void 0:s[i].filter(o=>e!==o);n&&m(o=>o&&{...o,[i]:n})},B=e=>{var o;const n=ne(s==null?void 0:s[i],e.source.index,(o=e.destination)==null?void 0:o.index);m(A=>A&&{...A,[i]:n})};return u.useEffect(()=>{if(_){const e=d.find(({value:n})=>_===n);e&&m(n=>n?{...n,[i]:[...n[i],e.value]}:{[i]:[e.value]}),S("")}},[_]),u.useEffect(()=>{s&&s[i]?f(d.filter(({value:e})=>!s[i].some(n=>n===e))):f(d)},[s]),a(K,{title:`${r(`${i}s`)} ${r("actions")} ${r("preferences")}`,visible:b,onClose:()=>{var e;t(!1),m((e=c==null?void 0:c.company_user)==null?void 0:e.react_settings.common_actions)},overflowVisible:!0,children:p("div",{className:"flex flex-col space-y-4",children:[a(X,{value:_,onValueChange:e=>S(e),label:r("actions"),clearAfterSelection:!0,children:v.map(({label:e,value:n})=>a("option",{value:n,children:e},n))}),!!(s!=null&&s[i].length)&&p("span",{className:"font-medium",children:[r("selected")," ",r("actions"),":"]}),!!(s!=null&&s[i].length)&&a(Y,{onDragEnd:B,children:a(ee,{droppableId:"preference-actions",renderClone:(e,n,o)=>p("div",{className:"flex items-center justify-between text-sm",...e.draggableProps,...e.dragHandleProps,ref:e.innerRef,children:[p("div",{className:"flex items-center space-x-2",children:[a(I,{className:"cursor-pointer",element:O,size:25}),a("span",{className:"font-medium",children:x(s==null?void 0:s[i][o.source.index])})]}),a("div",{children:a(I,{className:"cursor-pointer",element:R,size:25})})]}),children:e=>p("div",{className:"flex flex-col",...e.droppableProps,ref:e.innerRef,children:[s==null?void 0:s[i].map((n,o)=>a(se,{draggableId:o.toString(),index:o,children:A=>u.createElement("div",{className:"flex items-center justify-between py-1.5",...A.draggableProps,ref:A.innerRef,key:o},p("div",{className:"flex items-center space-x-2",children:[a(I,{className:"cursor-pointer",element:O,size:25,onClick:()=>U(n)}),a("span",{className:"font-medium",children:x(n)})]}),a("div",{...A.dragHandleProps,children:a(I,{className:"cursor-pointer",element:R,size:25})}))},o)),e.placeholder]})})}),a(te,{onClick:()=>{C(),t(!1)},disabled:y(),disableWithoutIcon:!0,children:r("save")})]})})}function Ee(g){const[r]=w(),c=H(),h=q({dropdown:!1}),{invoice:l}=g,[s,m]=u.useState(!1),[v,f]=u.useState();return u.useEffect(()=>{var b,t,d;const i=(d=(t=(b=c==null?void 0:c.company_user)==null?void 0:b.react_settings)==null?void 0:t.common_actions)==null?void 0:d.invoice;if(i){const _=h.filter(S=>{var y;return i.includes((y=S(l))==null?void 0:y.key)}).sort((S,y)=>{var x,C;return i.indexOf(String((x=S(l))==null?void 0:x.key)??"")-i.indexOf(String((C=y(l))==null?void 0:C.key)??"")});f(_)}},[c,l]),p($,{children:[p("div",{className:"flex items-center space-x-4",children:[v==null?void 0:v.map((i,b)=>a("div",{children:i(l)},b)),a(ie,{width:"auto",message:r("quick_actions"),placement:"bottom",withoutArrow:!0,children:a("div",{children:a(I,{className:"cursor-pointer",element:oe,size:25,onClick:()=>m(!0)})})})]}),a(ke,{entity:"invoice",visible:s,setVisible:m})]})}function Te(g){const[r]=w(),c=z(),h=L(),{id:l}=V(),{invoice:s}=g,m=c("view_invoice")||c("edit_invoice")||h(s);return[{name:r("edit"),href:D("/invoices/:id/edit",{id:l})},{name:r("documents"),href:D("/invoices/:id/documents",{id:l}),enabled:m,formatName:()=>{var f;return a(ce,{numberOfDocuments:(f=s==null?void 0:s.documents)==null?void 0:f.length})}},{name:r("settings"),href:D("/invoices/:id/settings",{id:l})},{name:r("activity"),href:D("/invoices/:id/activity",{id:l})},{name:r("history"),href:D("/invoices/:id/history",{id:l})},{name:r("email_history"),href:D("/invoices/:id/email_history",{id:l})}]}ye.extend(_e);function Re(){const{documentTitle:g}=re("edit_invoice"),[r]=w(),{id:c}=V(),[h]=j(),l=z(),s=L(),m=q(),{data:v}=le({id:c,includeIsLocked:!0}),[f,i]=u.useState(),{calculateInvoiceSum:b}=De({client:f}),[t,d]=de(Se),[_,S]=u.useState(),[y,x]=u.useState(!1),[C,U]=u.useState(!1),B=Ne({setErrors:S,isDefaultTerms:y,isDefaultFooter:C}),k=Te({invoice:t}),E=[{name:r("invoices"),href:"/invoices"},{name:r("edit_invoice"),href:D("/invoices/:id/edit",{id:c})}];return u.useEffect(()=>{const n=h.get("action")&&t?t:v;if(n){const o=N.cloneDeep(n);o.line_items.map(A=>A._id=ue()),d(o),o!=null&&o.client&&i(o.client)}},[v]),u.useEffect(()=>{t&&b(t)},[t]),me({on:["App\\Events\\Invoice\\InvoiceWasPaid"],callback:({data:e})=>{var n,o;((n=Ae())==null?void 0:n.toString())!==e["x-socket-id"]&&((o=document.getElementById("invoiceUpdateBanner"))==null||o.classList.remove("hidden"))}}),p($,{children:[a(fe,{title:g,breadcrumbs:E,...(l("edit_invoice")||s(t))&&t&&{navigationTopRight:a(pe,{resource:t,actions:m,onSaveClick:()=>B(t),disableSaveButton:t&&(t.status_id===Ce.Cancelled||t.is_deleted),disableSaveButtonOnly:t.is_locked,cypressRef:"invoiceActionDropdown"})},aboveMainContainer:a(he,{id:"invoiceUpdateBanner",className:"hidden",variant:"orange",children:r("invoice_status_changed")}),children:(t==null?void 0:t.id)===c?p("div",{className:"space-y-2",children:[!!(t!=null&&t.is_locked)&&p("div",{className:"flex items-center justify-center h-10 w-full text-white",style:{backgroundColor:"#4DA6FF"},children:[r("locked_invoice"),"."]}),p("div",{className:"space-y-4",children:[a(ve,{tabs:k,rightSide:t&&a("div",{className:"flex items-center",children:a(Ee,{invoice:t})})}),a(be,{context:{invoice:t,setInvoice:d,errors:_,isDefaultTerms:y,setIsDefaultTerms:x,isDefaultFooter:C,setIsDefaultFooter:U,client:f}})]})]}):a("div",{className:"flex justify-center items-center",children:a(ge,{})})}),a(Ie,{invoice:t,setInvoice:d})]})}export{Re as default};
|