Files
docker-invoiceninja/docker/app/public/bundle.56cf47c9.js
2024-10-19 18:17:42 +00:00

22 lines
7.0 KiB
JavaScript

import{bO as R,_ as M,p as o,b9 as S,bX as B,bY as q,f as T,j as s,H as _,c as l,bZ as O,e as j,m as A,b_ as z,bC as L,u as G,z as H,b$ as J,A as U,c0 as X,c1 as Y,c2 as Z,ab as K,ac as k,c3 as Q,af as ee,br as te,c4 as ne,b5 as w,c5 as F,J as le}from"./bundle.3e24044b.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 de(n){const{id:i}=R(),[e,m]=M(n),[c,b]=M(q),[u,h]=o.useState(),$=!0;return o.useEffect(()=>{if(e&&u&&!$){const r=S.isEqual(e,u);c.prevent!==!r&&b(C=>C&&{...C,prevent:!r})}},[e]),B(()=>{e&&e.id===i&&u&&(h(S.cloneDeep(e)),b(r=>r&&{...r,prevent:!1}))},900,[e==null?void 0:e.updated_at]),B(()=>{e&&e.id===i&&!u&&h(S.cloneDeep(e))},900,[e]),o.useEffect(()=>{e&&!i&&!u&&h(S.cloneDeep(e))},[e]),o.useEffect(()=>()=>{h(void 0),b(r=>r&&{...r,prevent:!1})},[]),[e,m]}function se(n){const{dateFormat:i}=T(),e=n.clientId?`&client_id=${n.clientId}`:"",m=n.clientStatus?`&client_status=${n.clientStatus}`:"";return s(_,{children:[l(O,{endpoint:j(`/api/v1/expenses?per_page=800${m}${e}`),inputOptions:{value:n.defaultValue??null,label:n.label},entryOptions:{id:"id",label:"number",value:"id",dropdownLabelFn:c=>s("div",{className:"flex space-x-1",children:[s("span",{children:["# ",c.number]}),c.date&&l("span",{children:"-"}),c.date&&l("span",{children:A(c.date,i)})]})},onChange:c=>n.onValueChange&&n.onValueChange(c),onDismiss:n.onClearButtonClick,sortBy:"created_at|desc",nullable:!0,clearInputAfterSelection:n.clearInputAfterSelection,exclude:n.exclude}),n.errorMessage&&l(z,{type:"danger",className:"mt-2",children:n.errorMessage})]})}function ae(n){const{dateFormat:i}=T(),e=n.clientId?`&client_id=${n.clientId}`:"",m=n.clientStatus?`&client_status=${n.clientStatus}`:"";return s(_,{children:[l(O,{endpoint:j(`/api/v1/tasks?per_page=800${m}${e}`),inputOptions:{value:n.defaultValue??null,label:n.label},entryOptions:{id:"id",label:"number",value:"id",dropdownLabelFn:c=>s("div",{className:"flex space-x-1",children:[s("span",{children:["# ",c.number]}),c.date&&l("span",{children:"-"}),c.date&&l("span",{children:A(c.date,i)})]})},onChange:c=>n.onValueChange&&n.onValueChange(c),onDismiss:n.onClearButtonClick,sortBy:"created_at|desc",nullable:!0,clearInputAfterSelection:n.clearInputAfterSelection,exclude:n.exclude}),n.errorMessage&&l(z,{type:"danger",className:"mt-2",children:n.errorMessage})]})}const ie=L.div`
display: flex;
align-items: center;
justify-content: center;
width: 50px;
height: 50px;
border-radius: 50%;
`,E=L.div`
background-color: ${n=>n.theme.color};
&:hover {
background-color: ${n=>n.theme.hoverColor};
}
`;function re(n){const[i]=G(),{invoice:e,setInvoice:m}=n,c=H(),b=J(),u=U(),{dateFormat:h}=T(),$=X({onlyAddToInvoice:!0}),{create:r}=Y({onlyAddToInvoice:!0}),P=Z({onlyAddToInvoice:!0}),[C,V]=o.useState(!1),[f,y]=o.useState([]),[p,I]=o.useState([]),[g,N]=o.useState([]),D=()=>{V(!1),N([])},W=()=>!g.length&&!f.filter(t=>!(e!=null&&e.line_items.find(a=>a.task_id===t.id))).length&&!p.filter(t=>!(e!=null&&e.line_items.find(a=>a.expense_id===t.id))).length;return o.useEffect(()=>{e&&(y([]),I([]),m(t=>t&&{...t,line_items:t.line_items.filter(a=>!f.find(d=>d.id===a.task_id)&&!p.find(d=>d.id===a.expense_id))}))},[e==null?void 0:e.client_id]),o.useEffect(()=>()=>{y([]),N([]),I([])},[]),s(_,{children:[e?l("div",{className:"fixed right-10 bottom-10",children:l(K,{placement:"top",message:i("add_item"),width:"auto",withoutArrow:!0,withoutWrapping:!0,children:l(ie,{onClick:()=>V(!0),style:{backgroundColor:u!=null&&u.dark_mode?c.$5:b},children:l(k,{element:Q,size:25,color:"white"})})})}):l(_,{}),s(ee,{size:"small",title:i("add_item"),visible:C,onClose:D,overflowVisible:!0,children:[s(te,{tabs:[i("products"),i("tasks"),i("expenses")],width:"full",children:[s("div",{className:"flex flex-col space-y-4 pt-4",children:[l(ne,{label:i("products"),onChange:t=>N(a=>[...a,t.resource]),withoutAction:!0,clearInputAfterSelection:!0}),s("div",{className:"flex flex-col max-h-96 overflow-y-auto",children:[g.map((t,a)=>s(E,{className:"flex items-center justify-between p-2",theme:{hoverColor:c.$5},children:[s("div",{className:"flex flex-col space-y-1",children:[l("span",{children:t.product_key}),l("span",{className:"text-xs",children:t.notes})]}),l("div",{className:"cursor-pointer",onClick:()=>N(d=>d.filter((x,v)=>v!==a)),children:l(k,{element:w,size:23})})]},`${t.id}${a}Products`)),!g.length&&l("span",{className:"text-center",children:i("no_items_selected")})]})]}),l("div",{className:"flex flex-col space-y-4 pt-4",children:e!=null&&e.client_id?s(_,{children:[l(ae,{label:i("tasks"),clientId:e==null?void 0:e.client_id,clientStatus:"uninvoiced",onValueChange:t=>y(a=>[...a,t.resource]),clearInputAfterSelection:!0,exclude:[...e.line_items.filter(t=>t.type_id===F.Task&&t.task_id).map(t=>t.task_id),...f.map(t=>t.id)]}),s("div",{className:"flex flex-col max-h-96 overflow-y-auto",children:[f.map((t,a)=>s(E,{className:"flex items-center justify-between p-2",theme:{hoverColor:c.$5},children:[s("div",{className:"flex space-x-1",children:[s("span",{children:["# ",t.number]}),t.date&&l("span",{children:"-"}),t.date&&l("span",{children:A(t.date,h)})]}),!(e!=null&&e.line_items.find(d=>d.task_id===t.id))&&l("div",{className:"cursor-pointer",onClick:()=>y(d=>d.filter((x,v)=>v!==a)),children:l(k,{element:w,size:23})})]},`${t.id}${a}Tasks`)),!f.length&&l("span",{className:"text-center",children:i("no_items_selected")})]})]}):s("span",{className:"text-center font-medium",children:[i("no_client_selected"),"."]})}),l("div",{className:"flex flex-col space-y-4 pt-4",children:e!=null&&e.client_id?s(_,{children:[l(se,{label:i("expenses"),clientId:e==null?void 0:e.client_id,clientStatus:"uninvoiced",onValueChange:t=>I(a=>[...a,t.resource]),clearInputAfterSelection:!0,exclude:[...e.line_items.filter(t=>t.type_id===F.Product&&t.expense_id).map(t=>t.expense_id),...p.map(t=>t.id)]}),s("div",{className:"flex flex-col max-h-96 overflow-y-auto",children:[p.map((t,a)=>s(E,{className:"flex items-center justify-between p-2",theme:{hoverColor:c.$5},children:[s("div",{className:"flex space-x-1",children:[s("span",{children:["# ",t.number]}),t.date&&l("span",{children:"-"}),t.date&&l("span",{children:A(t.date,h)})]}),!(e!=null&&e.line_items.find(d=>d.expense_id===t.id))&&l("div",{className:"cursor-pointer",onClick:()=>I(d=>d.filter((x,v)=>v!==a)),children:l(k,{element:w,size:23})})]},`${t.id}${a}Expenses`)),!p.length&&l("span",{className:"text-center",children:i("no_items_selected")})]})]}):s("span",{className:"text-center font-medium",children:[i("no_client_selected"),"."]})})]}),l("div",{className:"self-end",children:l(le,{behavior:"button",onClick:()=>{g.length&&P(g);const t=f.filter(d=>!(e!=null&&e.line_items.find(x=>x.task_id===d.id)));t.length&&$(t);const a=p.filter(d=>!(e!=null&&e.line_items.find(x=>x.expense_id===d.id)));a.length&&r(a),D()},disabled:W(),disableWithoutIcon:!0,children:i("add")})})]})]})}export{re as A,de as u};