@gisce/react-ooui 1.2.5 → 1.2.6-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/useSearch.d.ts.map +1 -1
- package/dist/react-ooui.es.js +72 -70
- package/dist/react-ooui.es.js.map +1 -1
- package/dist/react-ooui.umd.js +2 -2
- package/dist/react-ooui.umd.js.map +1 -1
- package/dist/widgets/views/SearchTree.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/useSearch.ts +1 -0
- package/src/widgets/views/SearchTree.tsx +2 -1
package/dist/react-ooui.umd.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
.ant-checkbox-checked .ant-checkbox-inner {
|
|
15
15
|
background-color: ${_r.colorPrimary};
|
|
16
16
|
}
|
|
17
|
-
`;var Re=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ko(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var kr=Ko,Wo=typeof Re=="object"&&Re&&Re.Object===Object&&Re,qo=Wo,Yo=qo,Go=typeof self=="object"&&self&&self.Object===Object&&self,Uo=Yo||Go||Function("return this")(),Vr=Uo,jo=Vr,zo=function(){return jo.Date.now()},Jo=zo,Zo=/\s/;function Xo(t){for(var r=t.length;r--&&Zo.test(t.charAt(r)););return r}var Qo=Xo,Ro=Qo,es=/^\s+/;function ts(t){return t&&t.slice(0,Ro(t)+1).replace(es,"")}var rs=ts,ns=Vr,os=ns.Symbol,Er=os,Mr=Er,Ir=Object.prototype,ss=Ir.hasOwnProperty,is=Ir.toString,mt=Mr?Mr.toStringTag:void 0;function as(t){var r=ss.call(t,mt),n=t[mt];try{t[mt]=void 0;var s=!0}catch{}var o=is.call(t);return s&&(r?t[mt]=n:delete t[mt]),o}var ls=as,cs=Object.prototype,ds=cs.toString;function us(t){return ds.call(t)}var fs=us,Ar=Er,hs=ls,ps=fs,gs="[object Null]",ms="[object Undefined]",$r=Ar?Ar.toStringTag:void 0;function ys(t){return t==null?t===void 0?ms:gs:$r&&$r in Object(t)?hs(t):ps(t)}var ws=ys;function vs(t){return t!=null&&typeof t=="object"}var Cs=vs,Ss=ws,bs=Cs,xs="[object Symbol]";function Ts(t){return typeof t=="symbol"||bs(t)&&Ss(t)==xs}var Fs=Ts,Os=rs,Lr=kr,_s=Fs,Nr=0/0,Ds=/^[-+]0x[0-9a-f]+$/i,ks=/^0b[01]+$/i,Vs=/^0o[0-7]+$/i,Es=parseInt;function Ms(t){if(typeof t=="number")return t;if(_s(t))return Nr;if(Lr(t)){var r=typeof t.valueOf=="function"?t.valueOf():t;t=Lr(r)?r+"":r}if(typeof t!="string")return t===0?t:+t;t=Os(t);var n=ks.test(t);return n||Vs.test(t)?Es(t.slice(2),n?2:8):Ds.test(t)?Nr:+t}var Is=Ms,As=kr,Gt=Jo,Pr=Is,$s="Expected a function",Ls=Math.max,Ns=Math.min;function Ps(t,r,n){var s,o,i,a,c,u,f=0,p=!1,d=!1,g=!0;if(typeof t!="function")throw new TypeError($s);r=Pr(r)||0,As(n)&&(p=!!n.leading,d="maxWait"in n,i=d?Ls(Pr(n.maxWait)||0,r):i,g="trailing"in n?!!n.trailing:g);function y(D){var N=s,S=o;return s=o=void 0,f=D,a=t.apply(S,N),a}function m(D){return f=D,c=setTimeout(v,r),p?y(D):a}function w(D){var N=D-u,S=D-f,x=r-N;return d?Ns(x,i-S):x}function C(D){var N=D-u,S=D-f;return u===void 0||N>=r||N<0||d&&S>=i}function v(){var D=Gt();if(C(D))return V(D);c=setTimeout(v,w(D))}function V(D){return c=void 0,g&&s?y(D):(s=o=void 0,a)}function _(){c!==void 0&&clearTimeout(c),f=0,s=u=o=c=void 0}function b(){return c===void 0?a:V(Gt())}function E(){var D=Gt(),N=C(D);if(s=arguments,o=this,u=D,N){if(c===void 0)return m(u);if(d)return clearTimeout(c),c=setTimeout(v,r),y(u)}return c===void 0&&(c=setTimeout(v,r)),a}return E.cancel=_,E.flush=b,E}var Bs=Ps;function Hs(t){const n=Buffer.from(t,"base64").length/1e3;return`${Math.round((n+Number.EPSILON)*100)/100} KB`}async function nt(t){const r=await no.fileTypeFromBuffer(Buffer.from(t,"base64"));return r||{mime:"text/plain",ext:"txt"}}const Br=t=>new Promise((r,n)=>{const s=new FileReader;s.readAsDataURL(t),s.onload=o=>r(o.target.result.split(",")[1]),s.onerror=o=>n(o)});function Tt(t,r){for(var n=atob(t),s=new Array(n.length),o=0;o<n.length;o++)s[o]=n.charCodeAt(o);var i=new Uint8Array(s),a=new Blob([i],{type:r+";base64"}),c=URL.createObjectURL(a);window.open(c)}const Hr=t=>{const{ooui:r}=t,{required:n,id:s}=r,o=qe(s);return o?e.jsx(o,{}):e.jsx(ge,{required:n,...t,children:e.jsx(Ks,{ooui:r})})},Ks=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o}=r,i=l.useRef(null),{t:a}=l.useContext(pe),c=d=>{s==null||s(d)};async function u(){const d=await nt(n),g=`data:${d==null?void 0:d.mime};base64,${n}`,y=document.createElement("a");y.href=g,y.download=`image.${d==null?void 0:d.ext}`,y.click()}async function f(d){d.stopPropagation(),d.preventDefault();const g=d.target.files[0],y=await Br(g);c(y)}function p(){c(void 0)}return e.jsxs(e.Fragment,{children:[e.jsxs(h.Row,{gutter:8,wrap:!1,justify:"center",children:[n&&e.jsx("img",{src:`data:image/*;base64,${n}`,style:{maxWidth:"100px"}}),e.jsx("input",{type:"file",id:"file",ref:i,accept:"image/*",style:{display:"none"},onChange:f})]}),e.jsx(h.Row,{gutter:8,wrap:!1,justify:"center",className:"pt-5",children:e.jsxs(h.Space,{children:[e.jsx(Le,{tooltip:a("uploadNewImage"),icon:e.jsx(B.FolderOpenOutlined,{}),disabled:o,onClick:()=>{i.current.click()}}),e.jsx(Le,{tooltip:a("download"),disabled:!n,onClick:u,icon:e.jsx(B.DownloadOutlined,{})}),e.jsx(Le,{tooltip:a("clear"),disabled:o||!n,onClick:p,icon:e.jsx(B.ClearOutlined,{})})]})})]})},Ws=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(ge,{required:n,...t,children:e.jsx(qs,{})})},qs=t=>{const{value:r,onChange:n}=t;if(!r)return null;try{JSON.parse(r)}catch(s){return console.log(s),null}return e.jsx(oo.GridUi,{inputJson:r,onChange:s=>{n&&n(s)}})},ot=t=>{const r=t.arch,n=t.fields,s=new se.Tree(n);return s.parse(r),s},Ys=(t,r,n)=>t.columns.map(o=>{const i=o.type,a=o.id,c=r==null?void 0:r[i];let u;return c&&(u=f=>c(f,a,o,n)),{key:a,dataIndex:a,title:o.label,render:u,sorter:(f,p)=>{var y,m;let d=f[a]||"",g=p[a]||"";return i==="many2one"&&(d=((y=f[a])==null?void 0:y.value)||"",g=((m=p[a])==null?void 0:m.value)||""),d<g?-1:d>g?1:0}}}),Kr=(t,r)=>r.map(s=>{const o={};return Object.keys(s).map(i=>{if(i==="id")o[i]=s[i];else{const a=t.findById(i);a instanceof se.Reference||a instanceof se.Selection?o[i]=s[i]:a instanceof se.Many2one?o[i]=s[i]&&Array.isArray(s[i])&&s[i].length===2&&{model:a.relation,id:s[i][0],value:s[i][1]}:a instanceof se.Boolean?o[i]=s[i]:a?o[i]=s[i]===!1?"":s[i]:o[i]=s[i]}}),o});function Ft(t){if(!t)return;const r={};return t.forEach(n=>{r[n.id]=n.colors}),r}function st({resultsToSort:t,sorter:r,fields:n}){if(!r)return t;const{id:s,desc:o}=r,i=o===!1?"ascend":"descend",a=n[s].type,c=(u,f)=>{var g,y;let p=u[s]||"",d=f[s]||"";return a==="many2one"&&(p=((g=u[s])==null?void 0:g[1])||"",d=((y=f[s])==null?void 0:y[1])||""),p===d?0:i==="ascend"?p>d?1:-1:p<d?1:-1};return t.sort(c)}const Ut=async t=>{var m;const{items:r,model:n,formView:s,treeView:o,context:i,currentView:a={}}=t,c=r.filter(w=>w.operation!=="original"),u=r.filter(w=>w.operation==="original").map(w=>w.id),f={form:s.fields,tree:o.fields};let p=[],d;if(a==="tree"&&(o==null?void 0:o.arch)){const w=(m=ot(o))==null?void 0:m.colors,C=await W.getHandler().readEvalUiObjects({model:n,ids:u,arch:o==null?void 0:o.arch,fields:o.fields,context:i,attrs:w&&{colors:w}});p=C[0],d=Ft(C[1])}else p=await W.getHandler().readObjects({model:n,ids:u,fields:f[a],context:i});const g=p.map(w=>{const C={};return Object.keys(w).forEach(v=>{(f[a].hasOwnProperty(v)||v==="id")&&(C[v]=w[v])}),C});return[r.map(w=>{const C=g.find(V=>V.id===w.id),v={...w};return a==="form"?v.values=C:a==="tree"&&(v.treeValues=C),v}).concat(c),d]},Gs=t=>{const r=t.filter(n=>n.id&&n.id<0).map(n=>n.id);return r.length===0?-1:Math.min(...r)-1},Us=(t,r)=>{const n={};return Object.keys(t).forEach(s=>{var o;r.hasOwnProperty(s)&&(r[s].type==="one2many"||r[s].type==="many2many")&&t[s]&&((o=t[s])==null?void 0:o.items)?n[s]=t[s].items.filter(i=>i.operation!=="pendingRemove"):n[s]=t[s]}),n},js=t=>{const{ooui:r}=t,{relation:n,context:s,views:o}=r,[i,a]=l.useState(!0),[c,u]=l.useState(),[f,p]=l.useState(new Map),d=l.useContext(_e),{getContext:g}=d||{};Qe.default(()=>{m()},[r]);const y=async w=>o&&o[w]?o[w]:await W.getHandler().getView({model:n,type:w,context:{...g==null?void 0:g(),...s}}),m=async()=>{a(!0),u(void 0);try{const w=await y("form"),C=await y("tree");f.set("form",w),f.set("tree",C),p(f)}catch(w){u(w)}finally{a(!1)}};return i?e.jsx(h.Spin,{}):c?e.jsx(h.Alert,{className:"mt-10",message:c,type:"error",banner:!0}):e.jsx(ge,{type:"array",...t,children:e.jsx(zs,{ooui:r,views:f})})},zs=t=>{const{value:r,views:n,ooui:s,onChange:o}=t,{items:i=[]}=r||{},[a,c]=l.useState(!1),[u,f]=l.useState(),[p,d]=l.useState(!1),[g,y]=l.useState(),{relation:m,context:w,readOnly:C,summaryField:v,titleField:V}=s,_=i.filter(S=>S.values),b=l.useContext(_e),{getContext:E}=b||{};Qe.default(()=>{N()},[i]);const D=S=>{o==null||o({items:S})};async function N(){c(!0),f(void 0);try{const[S]=await Ut({treeView:{fields:n.get("tree").fields,arch:n.get("tree").arch},formView:{fields:n.get("form").fields},model:m,items:i,context:{...E==null?void 0:E(),...w},currentView:"form"});D(S)}catch(S){f(S)}finally{c(!1)}}return u?e.jsx(h.Alert,{className:"mt-10",message:u,type:"error",banner:!0}):a?e.jsx(h.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(h.Timeline,{style:{padding:"1rem"},children:_.map((S,x)=>{var O,T;return e.jsx("div",{children:e.jsxs(h.Timeline.Item,{children:[e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{y(_.find(H=>S.id===H.id)),d(!0)},children:e.jsx("strong",{children:(O=S.values)==null?void 0:O[V]})}),e.jsx("br",{}),e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{y(_.find(H=>S.id===H.id)),d(!0)},children:(T=S.values)==null?void 0:T[v]})]},x)},x)})}),e.jsx(dt,{formView:n.get("form"),model:m,id:g==null?void 0:g.id,values:g==null?void 0:g.values,defaultValues:g==null?void 0:g.defaultValues,visible:p,onSubmitSucceed:()=>{d(!1)},parentContext:{...E==null?void 0:E(),...w},onCancel:()=>{d(!1)},readOnly:C,postSaveAction:N})]})},{useToken:Js}=h.theme,Zs=t=>{const{ooui:r}=t;return e.jsx(ge,{ooui:r,children:e.jsx(Xs,{ooui:r})})},Xs=t=>{const{token:r}=Js(),{ooui:n,value:s}=t,o=e.jsxs(e.Fragment,{children:[e.jsxs("span",{children:[n.label," "]}),n.tooltip&&e.jsx(h.Tooltip,{title:n.tooltip,children:e.jsx(B.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:r.colorPrimaryBg}})})]}),i=qe(n.icon);let a=s;n.selectionValues.size?a=n.selectionValues.get(s):Array.isArray(s)&&(a=s[1]);const c=e.jsx(h.Statistic,{title:o,prefix:i&&e.jsx(i,{}),suffix:n.suffix,value:a});return n.card?e.jsx(h.Card,{children:c}):c},Qs=(t,r)=>{if(!r)return t;const n={};return Object.keys(t).forEach(s=>{if(r[s]===void 0)n[s]=t[s];else if(!(t[s]===!1&&r[s].type!=="boolean"))if(r[s].type==="boolean"){const o=t[s];o===0?n[s]=!1:o===1?n[s]=!0:n[s]=t[s]}else n[s]=t[s]}),n},it=(t,r)=>Qs(t,r),jt=({source:t,target:r,fields:n})=>{const s={};return Object.keys(r).forEach(o=>{var a,c;if(n[o]?n[o].type==="one2many"||n[o].type==="many2many":!1){const u=JSON.stringify(t[o]),f=JSON.stringify(r[o]);if(u===f)return;(((c=(a=r[o])==null?void 0:a.items)==null?void 0:c.filter(d=>d.operation!=="original"))||[]).length>0&&(s[o]=r[o])}else if(Array.isArray(r[o]))if(t[o]===void 0)s[o]=r[o];else if(n[o].type==="many2one")if(Array.isArray(t[o])){const u=JSON.stringify(t[o]),f=JSON.stringify(r[o]);u!==f&&(s[o]=r[o])}else{const u=t[o],[f]=r[o];u!==f&&(s[o]=r[o])}else{const u=JSON.stringify(t[o]),f=JSON.stringify(r[o]);u!==f&&(s[o]=r[o])}else t[o]!==r[o]&&(r[o]===void 0?s[o]=null:s[o]=r[o])}),s},Rs=({changedFields:t,formOoui:r,types:n})=>t.map(o=>{var a;const i=(a=r==null?void 0:r.findById(o))==null?void 0:a.type;return n.includes(i)}).some(o=>o===!0),ei=({fieldsDomain:t,fields:r})=>{const n={};return Object.keys(r).forEach(s=>{n[s]=r[s],t[s]&&(n[s].domain=t[s])}),n},ti=t=>{const r={};return!t||!Array.isArray(t)||(t==null?void 0:t.length)===0?{}:(t.forEach(n=>{(n==null?void 0:n[1])==="="&&(r[n[0]]=n[2])}),r)},ri=({onChangeFieldActionArgs:t,values:r,parentValues:n={}})=>{const s={};return t.forEach(o=>{const i=o.split("");if(o==="True")s[o]=!0;else if(o==="False")s[o]=!1;else if(r[o])s[o]=r[o];else if(i[0]==="'"&&i[i.length-1]==="'"&&i.filter(a=>a==="'").length===2)s[o]=o.replace(/'/g,"");else if(i.includes("'"))s[o]=o;else if(o.indexOf("parent.")!==-1){const a=o.replace("parent.","");s[o]=n[a]||!1}else s[o]=!1}),s},Wr=t=>{const r={primary:[],secondary:[]};return t.forEach(n=>{!n||(r.primary=r.primary.concat(n.primary),r.secondary=r.secondary.concat(n.secondary))}),{primary:r.primary.filter(qr),secondary:r.secondary.filter(qr)}};function qr(t,r,n){return n.indexOf(t)===r}const at=({values:t,fields:r})=>{let n={};return Object.keys(t).forEach(s=>{const o=t[s];r[s]&&r[s].type==="many2one"&&o&&Array.isArray(o)&&o.length===2?n[s]=o[0]:n[s]=o}),n},zt=t=>{let r=0;for(let o=0;o<t.length;o++)r=t.charCodeAt(o)+((r<<5)-r);let n="#";for(let o=0;o<3;o++){var s=r>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n},Yr=t=>{const{ooui:r}=t;return e.jsx(ge,{type:"array",...t,children:e.jsx(ni,{ooui:r})})},ni=t=>{const{value:r,ooui:n,onChange:s}=t,{items:o=[]}=r||{},i=o.filter(D=>D.operation!=="pendingRemove").map(D=>D.id),[a,c]=l.useState([]),[u,f]=l.useState(),[p,d]=l.useState(!1),{relation:g,context:y,readOnly:m,field:w}=n,C=l.useContext(_e),{getContext:v}=C||{};Qe.default(()=>{_()},[o]);const V=D=>{s==null||s({items:D})};async function _(){d(!0);let D=[];try{if(m&&(D=[["id","in",i]]),n.domain){const x=await W.getHandler().evalDomain({domain:n.domain,values:at({fields:C==null?void 0:C.getFields(),values:C.getPlainValues()}),fields:C==null?void 0:C.getFields(),context:C.getContext()});D=[...D,...x]}const S=(await W.getHandler().search({model:g,params:D,fields:[w],context:{...v==null?void 0:v(),...y}})).map(x=>{const O=x[w];let T=O;return Array.isArray(O)&&(T=O[1]),{label:T,value:x.id}});c(S)}catch(N){f(N)}finally{d(!1)}}const b=D=>{const N=o.map(x=>D.includes(x.id)?x.operation=="pendingRemove"?{...x,operation:"pendingLink"}:x:{id:x.id,operation:"pendingRemove"}),S=N.map(x=>x.id);D.filter(x=>!S.includes(x)).map(x=>{N.push({id:x,operation:"pendingLink"})}),V(N)},E=D=>{const{label:N,closable:S,onClose:x}=D,O=T=>{T.preventDefault(),T.stopPropagation()};return e.jsx(h.Tag,{color:zt(N),onMouseDown:O,style:{margin:"5px"},closable:S,onClose:x,children:N})};return u?e.jsx(h.Alert,{className:"mt-10",message:u,type:"error",banner:!0}):e.jsx(e.Fragment,{children:e.jsx("div",{className:"flex flex-row",children:e.jsx(h.Select,{mode:"multiple",value:a.length?i:[],tagRender:E,bordered:!m,disabled:m,options:a,onChange:b,loading:p})})})},oi=t=>{switch(t){case"form":return ct;case"tree":return Ct;case"notebook":return vn;case"group":return rr;case"label":return gt;case"char":return qt;case"text":return Cn;case"button":return Wt;case"buttonGroup":return br;case"selection":return Yt;case"many2one":return dn;case"boolean":return Dr;case"integer":return vt;case"float":return Zt;case"progressbar":return Rr;case"date":return Fn;case"datetime":return On;case"one2many":case"one2many_list":case"many2many":return yn;case"separator":return Sn;case"reference":return _n;case"binary":return Dn;case"image":return Hr;case"url":return An;case"email":return $n;case"float_time":return wn;case"fiber_grid":return Ws;case"timeline":return js;case"indicator":return Zs;case"tags":return Yr;case"tag":return Wn;case"multicheckbox":return qn;case"markdown":return Yn;case"radio":return Gn;case"switch":return Un;case"steps":return jn;case"codeeditor":return zn;default:return}},si=t=>{const{ooui:r}=t,{type:n}=r,s=oi(n);return s?Pe.default.createElement(s,t):null},ii=({item:t,responsiveBehaviour:r})=>({gridColumnStart:"span "+(r?1:t.colspan)}),ai=({row:t,mustFillWithEmpties:r,numberOfColumns:n})=>{const s=[];let o=0;const i=a=>a+1===t.length&&o<n&&!r;return t.map((a,c)=>{if(o+=a.colspan,i(c)){const u=n-o;a.colspan=a.colspan+u,o+=u}if(s.push(a),i(c)){const u=n-o;for(let f=0;f<u;f+=1)s.push(new se.Label({string:""}))}}),s},li=({row:t,numberOfColumns:r})=>t.map(n=>(n._mustExpand&&(n.colspan=r),n)),ci=(t,r)=>{const n=t.map(s=>s instanceof se.Label&&s.fieldForLabel||s instanceof se.Container?"auto":"1fr");if(n.length<r){const s=r-n.length;for(let o=0;o<s;o++)n.push("1fr")}return n.join(" ")},di=(t,r)=>{const n=r?"1fr":"auto",s="auto";let o="";for(let i=0;i<t;i++)o+=i%2?n:s,i+1<t&&(o+=" ");return o},ui=t=>t.map(n=>n.reduce((s,o)=>s+o.colspan,0)).reduce((n,s)=>Math.max(n,s)),Jt=t=>{const{container:r,responsiveBehaviour:n}=t,{rows:s}=r;let{columns:o}=r;const i=ui(s);i<o&&(o=i);let a=!1,c=[];const u=s.map((d,g)=>{const y=d.filter(C=>!C.invisible),m=li({row:y,numberOfColumns:o});let w=m;return(g===0||!(d.length===1&&d.some(C=>C.type==="group")))&&(w=ai({row:m,numberOfColumns:o,mustFillWithEmpties:n}),c=c.concat(w)),w.map(C=>(C instanceof se.Label&&C.fieldForLabel&&(a=!0),e.jsx("div",{style:{...ii({item:C,responsiveBehaviour:n}),minWidth:0},children:si({ooui:C,responsiveBehaviour:n})},C.key)))}),f=s.length===1?ci(c,o):di(o,a),p={display:"grid",gridTemplateColumns:n?"auto":f,gap:"1rem",minHeight:0,minWidth:0};return e.jsx("div",{style:p,children:u})},{confirm:fi}=h.Modal,yt=({onOk:t,onCancel:r,lang:n})=>{fi({title:be("unsavedChanges",n),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmCloseWithoutSave",n),okText:be("closeWithoutSaving",n),onOk:t,onCancel:r,cancelText:be("cancel",n)})},{error:hi}=h.Modal,Gr=t=>{hi({title:be("formHasErrors",t),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:be("fillRequiredFields",t)})},{warning:pi}=h.Modal,gi=(t,r,n)=>{pi({title:t,icon:e.jsx(B.WarningOutlined,{}),centered:!0,content:r,onOk:n})},Ur=Pe.default.createContext(null),mi=t=>{const{children:r,setTitle:n}=t;return e.jsx(Ur.Provider,{value:{setTitle:n},children:r})},jr=t=>typeof t=="string"&&t==="true"||t==="false"?t==="true":t,yi=(t,r)=>{const n=xi(t),s=Si(n),o=bi(s,r);return[...Object.keys(o).map(c=>wi(c,o[c],r))].reduce((c,u)=>Array.isArray(u[0])?c.concat(u):[...c,u],[])},wi=(t,r,n)=>{var i;const s=t.split("#")[0],o=(i=n.findById(s))==null?void 0:i.type;if(o==="char"||o==="text"||o==="many2one"||o==="many2many"||o==="one2many")return[t,"ilike",r];if(o==="float"||o==="integer"||o==="float_time"||o==="progressbar"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r]}else if(o==="date"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r.format("YYYY-MM-DD")]}else if(o==="datetime"){const a=[];return r[0]&&a.push([s,">=",r[0]]),r[1]&&a.push([s,"<=",r[1]]),a}else return o==="selection"?[t,"in",r.map(a=>jr(a))]:[t,"=",jr(r)]},vi=t=>Object.keys(t).filter(r=>r.indexOf("#date")!==-1),Ci=t=>{const r={...t};return Object.keys(r).forEach(n=>(n.indexOf("#time")!==-1||n.indexOf("#date")!==-1)&&delete r[n]),r},Si=t=>{const r={...Ci(t)};return vi(t).forEach(s=>{const o=t[s],i=s.split("#")[0],a=i+"#time",c=t[a];let u,f;if(o[0]!==null&&(u=o[0].format("YYYY-MM-DD"),c&&c[0]!==null)){const d=c[0].format("HH:mm:ss");u=u+" "+d}if(o[1]!==null&&(f=o[1].format("YYYY-MM-DD"),c&&c[1]!==null)){const d=c[1].format("HH:mm:ss");f=f+" "+d}r[i+"#datetime"]=[u,f]}),r},bi=(t,r)=>{const n=Object.keys(t).filter(o=>{const i=r.findById(o);return i&&i.type==="date"});let s={...t};return n.forEach(o=>{delete s[o],t[o][0]!==null&&(s[o+"#from"]=t[o][0]),t[o][1]!==null&&(s[o+"#to"]=t[o][1])}),s},xi=t=>{const r={...t};return Object.keys(r).forEach(n=>(r[n]===void 0||r[n]===null||r[n]==="")&&delete r[n]),r},Ti=t=>{const r={};return t.forEach(n=>{Array.isArray(n)&&n[0]?r[n[0]]=!0:r[n]=!0}),Object.keys(r)},Ot=(t,r)=>{const n=[...t],s=Ti(t);return r.forEach(o=>{Array.isArray(o)&&o[0]?s.includes(o[0])||n.push(o):s.includes(o)||n.push(o)}),n},wt=80,zr=t=>{const{model:r,setSearchTreeNameSearch:n,setSelectedRowItems:s,setSearchParams:o,setSearchVisible:i,setTreeIsLoading:a,nameSearch:c,searchNameGetDoneRef:u,context:f,setActionViewTotalItems:p,treeView:d,formView:g,sorter:y,setSorter:m,setCurrentItemIndex:w,setResultsActionView:C,resultsActionView:v,domain:V,currentId:_,limit:b,setLimit:E,searchParams:D=[],setSearchValues:N}=t,[S,x]=l.useState(!1),[O,T]=l.useState(!1),[H,F]=l.useState(),[A,M]=l.useState(1),[L,k]=l.useState(0),[I,K]=l.useState(),[q,z]=l.useState([]),[Y,Z]=l.useState(void 0),J=l.useRef(b||wt),$=l.useRef([]),P=l.useCallback(oe=>{C==null||C([...oe]),z([...oe])},[]),ee=l.useCallback(()=>v||q,[v,q]),le=l.useCallback(async()=>{const oe=await W.getHandler().nameSearch({model:r,payload:c,limit:J.current,attrs:V,context:f});if(K(oe.length),p==null||p(oe.length),oe.length>0){const Se=oe.map(Ie=>Ie==null?void 0:Ie[0]),{colors:me}=ot(d),xe=await W.getHandler().readEvalUiObjects({model:r,ids:Se,arch:d==null?void 0:d.arch,fields:d.field_parent?{...d.fields,[d.field_parent]:{}}:d.fields,context:f,attrs:me&&{colors:me}}),Me=xe[0];$.current=[...Me],Z(Ft(xe[1]));const ke=Me.map(Ie=>Ie.id),He=y!==void 0?st({resultsToSort:Me,sorter:y,fields:{...d.fields,...g.fields}}):[...$.current];P(He),ke.length>0?w==null||w(0):w==null||w(void 0)}else P([]),w==null||w(void 0);x(!1),u.current=!0},[P,u,c,r,f,V,d,g,y,w,p]),ce=l.useCallback(async oe=>{const{params:Se,newOffset:me}=oe||{},xe=Ot(Se||D,V),{colors:Me}=ot(d),{totalItems:ke,results:He,attrsEvaluated:Ie}=await W.getHandler().searchForTree({params:xe,limit:J.current,offset:me||L,model:r,fields:d.field_parent?{...d.fields,[d.field_parent]:{}}:d.fields,context:f,attrs:Me&&{colors:Me}});Z(Ft(Ie)),$.current=[...He];const R=y!==void 0?st({resultsToSort:He,sorter:y,fields:{...d.fields,...g.fields}}):[...$.current];if(P(R),v&&R.length>0){const we=R.findIndex(Ve=>_===Ve.id);we===-1?w==null||w(0):w==null||w(we)}else w==null||w(void 0);x(!1);const de=await ke;K(de),p==null||p(de)},[w,v,P,_,r,f,V,d,g,y,p,b,L,D]),re=l.useCallback(async oe=>{try{x(!0),a==null||a(!0),c&&!u.current?await le():await ce(oe)}catch(Se){F(Se.message)}finally{T(!1),a==null||a(!1)}},[f,_,V,g,b,r,c,L,v,u,p,w,P,F,T,x,a,y,d]),X=l.useCallback(oe=>{m==null||m(oe);const Se=oe!==void 0?st({resultsToSort:ee(),sorter:oe,fields:{...d.fields,...g.fields}}):[...$.current];P(Se)},[m,ee,d,g,P]),ye=l.useCallback(oe=>{const{params:Se,searchValues:me,limit:xe,offset:Me}=oe;S||(n==null||n(void 0),s==null||s([]),N==null||N(me),o==null||o(Se),i==null||i(!1),T(!0),F(void 0),M(1),xe&&(J.current=xe,E==null||E(xe)),Me&&k(Me),re({params:Se,newOffset:Me}))},[S,n,s,o,i,T,F,M,E,k,re]),Ce=l.useCallback(oe=>{x(!0),M(oe),k((oe-1)*b)},[x,b,k,M]),Ee=l.useCallback(()=>{S||(n==null||n(void 0),o==null||o([]),N==null||N({}),F(void 0),k(0),M(1),E==null||E(b||wt))},[S,n,o,F,k,M,E,b]),fe=l.useCallback(async oe=>{const Se=oe[(d==null?void 0:d.field_parent)||"child_id"],me=await W.getHandler().readObjects({model:r,ids:Se,fields:d.field_parent?{...d.fields,[d.field_parent]:{}}:d.fields,context:f});return P([...ee(),...me]),Kr(ot(d),me)},[d,r,f,ee,P]);return{submit:ye,clear:Ee,fetchResults:re,tableRefreshing:S,searchFilterLoading:O,searchError:H,page:A,offset:L,limit:b,getResults:ee,requestPageChange:Ce,changeSort:X,fetchChildrenForRecord:fe,colorsForResults:Y,totalItems:I}},Be=Pe.default.createContext(null),Fi=t=>{const{children:r,currentView:n,title:s,setCurrentView:o,availableViews:i,formRef:a,searchTreeRef:c,onNewClicked:u,currentId:f,setCurrentId:p,setResults:d,results:g,currentItemIndex:y,setCurrentItemIndex:m,currentModel:w,sorter:C,setSorter:v,totalItems:V,setTotalItems:_,setSelectedRowItems:b,selectedRowItems:E,searchTreeNameSearch:D,setSearchTreeNameSearch:N,goToResourceId:S,limit:x}=t,[O,T]=l.useState(!1),[H,F]=l.useState(!1),[A,M]=l.useState(!1),[L,k]=l.useState(!0),[I,K]=l.useState(!0),[q,z]=l.useState([]),[Y,Z]=l.useState(!1),[J,$]=l.useState([]),[P,ee]=l.useState(!1),[le,ce]=l.useState(!0),[re,X]=l.useState(),[ye,Ce]=l.useState({}),[Ee,fe]=l.useState(x!==void 0?x:wt),[oe,Se]=l.useState(s);l.useEffect(()=>{g&&g.length>0&&!y&&(m==null||m(0),p==null||p(g[0].id))},[g]),l.useEffect(()=>{fe(x!==void 0?x:wt)},[x]),l.useEffect(()=>{i.length===1?X(i[0]):i.length>1&&X(i.filter(xe=>xe.view_id!==n.view_id)[0])},[i]),l.useEffect(()=>{(re==null?void 0:re.view_id)===n.view_id&&i.length>1&&X(i.filter(xe=>xe.view_id!==n.view_id)[0])},[n]);const me=async()=>{var xe;return await((xe=a.current)==null?void 0:xe.submitForm())};return e.jsx(Be.Provider,{value:{title:oe,currentView:n,setCurrentView:o,availableViews:i,formIsSaving:O,setFormIsSaving:T,formHasChanges:H,setFormHasChanges:F,formRef:a,searchTreeRef:c,onFormSave:me,onNewClicked:u,currentId:f,setCurrentId:p,currentItemIndex:y,setCurrentItemIndex:m,results:g,setResults:d,currentModel:w,removingItem:A,setRemovingItem:M,formIsLoading:L,setFormIsLoading:k,treeIsLoading:I,setTreeIsLoading:K,attachments:q,setAttachments:z,selectedRowItems:E,setSelectedRowItems:b,duplicatingItem:Y,setDuplicatingItem:Z,setSearchParams:$,searchParams:J,searchVisible:P,setSearchVisible:ee,sorter:C,setSorter:v,totalItems:V,setTotalItems:_,searchTreeNameSearch:D,setSearchTreeNameSearch:N,setGraphIsLoading:ce,graphIsLoading:le,previousView:re,setPreviousView:X,goToResourceId:S,searchValues:ye,setSearchValues:Ce,limit:Ee,setLimit:fe,setTitle:Se},children:r})},Ye=Pe.default.createContext(null),Oi=t=>{const{children:r,openAction:n,openRelate:s,openDefaultActionForModel:o,openShortcut:i,activeKey:a,onChangeTab:c,onRemoveTab:u,tabs:f}=t,[p,d]=l.useState(),[g,y]=l.useState();return e.jsx(Ye.Provider,{value:{openAction:n,openRelate:s,openDefaultActionForModel:o,activeKey:a,openShortcut:i,onChangeTab:c,onRemoveTab:u,tabs:f,currentId:g,currentView:p,setCurrentId:y,setCurrentView:d},children:r})},lt=Pe.default.createContext(null),Jr=async t=>{var r;for(let n=0;n<t.length;n++)await((r=t==null?void 0:t[n])==null?void 0:r.call(t))},_i=(t,r)=>{const{children:n,globalValues:s={}}=t,o=l.useRef(),i=l.useRef(),[a,c]=l.useState(!1),u=l.useContext(Ye),{openAction:f}=u||{},p=l.useRef([]),{t:d}=l.useContext(pe);l.useImperativeHandle(r,()=>({openActionModal:b}));const[g,y]=l.useState(!1),[m,w]=l.useState({context:{}});async function C(N){const{reportData:S,fields:x,values:O,context:T={}}=N,{context:H,model:F,datas:A={},report_name:M,type:L}=S;if(L!=="ir.actions.report.xml"){Ae(`${L} action not supported`);return}const{ids:k}=A||{};let I=k||[];const K=typeof H=="string"?se.parseContext({context:H,fields:x,values:O}):H;try{const q=await W.getHandler().createReport({model:F,name:M,datas:A,ids:I,context:{...T,...K}});c(!0),i.current=!0,o.current=setInterval(()=>{v(q)},1e3)}catch(q){i.current=!1,clearInterval(o.current),Ae(q),c(!1)}}async function v(N){let S;try{if(S=await W.getHandler().getReport({id:N}),S.state&&i.current===!0){i.current=!1,clearInterval(o.current),c(!1);const x=await nt(S.result);Tt(S.result,x.mime)}}catch(x){i.current=!1,clearInterval(o.current),c(!1),Ae(x.exception||x)}}async function V({actionData:N,fields:S,values:x,context:O,onRefreshParentValues:T}){const{type:H}=N;return p.current.push(T),H==="ir.actions.report.xml"?await C({reportData:N,fields:S,values:x,context:O}):H==="ir.actions.act_window"?await _({actionData:N,fields:S,values:x,context:O}):(Ae(`${H} action not supported`),{})}async function _({actionData:N,fields:S={},values:x={},context:O={}}){var M;let T=N;N.res_model||(T=(await W.getHandler().readObjects({model:"ir.actions.act_window",ids:[parseInt(N.id)],context:O}))[0]);const F={...typeof(T==null?void 0:T.context)=="string"?se.parseContext({context:T.context,fields:S,values:{...x,...s}}):T.context,...O};let A=[];if(T.domain&&(A=await W.getHandler().evalDomain({domain:T.domain,values:at({fields:S,values:{...x,...s}}),fields:S,context:F})),T.target==="new"){const L=await W.getHandler().getView({model:T.res_model,type:"form",id:((M=T==null?void 0:T.view_id)==null?void 0:M[0])||void 0,context:F});return b({domain:A,model:T.res_model,formView:L,context:F}),{}}else{const{initialView:L,views:k}=await Di({model:T.res_model,context:F,view_mode:T.view_mode,views:T.views});return f==null||f({target:"current",context:F,domain:A,model:T.res_model,views:k,title:T.name,initialView:L,action_id:T.id,action_type:T.type}),{closeParent:!0}}}function b({domain:N,model:S,formView:x,context:O,actionData:T}){g?E({domain:N,model:S,formView:x,context:O,actionData:T}):(w({domain:N,model:S,context:O,formView:x,actionData:T}),y(!0))}async function E({domain:N,model:S,formView:x,context:O,actionData:T}){w({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0}),y(!1),await new Promise(H=>setTimeout(H,300)),w({domain:N,model:S,context:O,formView:x,actionData:T}),y(!0)}async function D(){Jr(p.current),p.current=[],y(!1),w({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})}return e.jsx(e.Fragment,{children:e.jsx(lt.Provider,{value:{processAction:V,globalValues:s},children:e.jsxs(e.Fragment,{children:[n,e.jsx(h.Modal,{title:d("generatingReport"),open:a,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(h.Spin,{})}),e.jsx(dt,{buttonModal:!0,parentContext:m.context,model:m.model,formView:m.formView,visible:g,onSubmitSucceed:D,onCancel:()=>{Jr(p.current),p.current=[],y(!1),w({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})},showFooter:!1,actionDomain:m.domain,isMenuAction:(m==null?void 0:m.actionData)!==void 0,actionData:m==null?void 0:m.actionData})]})})})};async function Di({views:t,view_mode:r,model:n,context:s,view_id:o}){const i=[];let a;if(t)for(const c of t){const u=await W.getHandler().getView({model:n,type:c[1],id:c[0],context:s});i.push([u.view_id,c[1]])}else{const c=r.split(",");for(const u of c){const f=await W.getHandler().getView({model:n,type:u,context:s});i.push([f.view_id,u])}}if(t&&t.length>0){const[c,u]=t[0];a={id:c,type:u}}else if(o)a={id:o,type:r.split(",")[0]};else{const c=r.split(",")[0],[u]=i.find(([f,p])=>p===c);a={id:u,type:c}}return{views:i,initialView:a}}const Zr=l.forwardRef(_i),ki=({error:t,className:r})=>{let n,s="error";if(typeof t=="string"&&t.indexOf(" -- ")!==-1&&t.indexOf(`
|
|
17
|
+
`;var Re=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ko(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var kr=Ko,Wo=typeof Re=="object"&&Re&&Re.Object===Object&&Re,qo=Wo,Yo=qo,Go=typeof self=="object"&&self&&self.Object===Object&&self,Uo=Yo||Go||Function("return this")(),Vr=Uo,jo=Vr,zo=function(){return jo.Date.now()},Jo=zo,Zo=/\s/;function Xo(t){for(var r=t.length;r--&&Zo.test(t.charAt(r)););return r}var Qo=Xo,Ro=Qo,es=/^\s+/;function ts(t){return t&&t.slice(0,Ro(t)+1).replace(es,"")}var rs=ts,ns=Vr,os=ns.Symbol,Er=os,Mr=Er,Ir=Object.prototype,ss=Ir.hasOwnProperty,is=Ir.toString,mt=Mr?Mr.toStringTag:void 0;function as(t){var r=ss.call(t,mt),n=t[mt];try{t[mt]=void 0;var s=!0}catch{}var o=is.call(t);return s&&(r?t[mt]=n:delete t[mt]),o}var ls=as,cs=Object.prototype,ds=cs.toString;function us(t){return ds.call(t)}var fs=us,Ar=Er,hs=ls,ps=fs,gs="[object Null]",ms="[object Undefined]",$r=Ar?Ar.toStringTag:void 0;function ys(t){return t==null?t===void 0?ms:gs:$r&&$r in Object(t)?hs(t):ps(t)}var ws=ys;function vs(t){return t!=null&&typeof t=="object"}var Cs=vs,Ss=ws,bs=Cs,xs="[object Symbol]";function Ts(t){return typeof t=="symbol"||bs(t)&&Ss(t)==xs}var Fs=Ts,Os=rs,Lr=kr,_s=Fs,Nr=0/0,Ds=/^[-+]0x[0-9a-f]+$/i,ks=/^0b[01]+$/i,Vs=/^0o[0-7]+$/i,Es=parseInt;function Ms(t){if(typeof t=="number")return t;if(_s(t))return Nr;if(Lr(t)){var r=typeof t.valueOf=="function"?t.valueOf():t;t=Lr(r)?r+"":r}if(typeof t!="string")return t===0?t:+t;t=Os(t);var n=ks.test(t);return n||Vs.test(t)?Es(t.slice(2),n?2:8):Ds.test(t)?Nr:+t}var Is=Ms,As=kr,Gt=Jo,Pr=Is,$s="Expected a function",Ls=Math.max,Ns=Math.min;function Ps(t,r,n){var s,o,i,a,c,u,f=0,p=!1,d=!1,g=!0;if(typeof t!="function")throw new TypeError($s);r=Pr(r)||0,As(n)&&(p=!!n.leading,d="maxWait"in n,i=d?Ls(Pr(n.maxWait)||0,r):i,g="trailing"in n?!!n.trailing:g);function y(D){var N=s,S=o;return s=o=void 0,f=D,a=t.apply(S,N),a}function m(D){return f=D,c=setTimeout(v,r),p?y(D):a}function w(D){var N=D-u,S=D-f,x=r-N;return d?Ns(x,i-S):x}function C(D){var N=D-u,S=D-f;return u===void 0||N>=r||N<0||d&&S>=i}function v(){var D=Gt();if(C(D))return V(D);c=setTimeout(v,w(D))}function V(D){return c=void 0,g&&s?y(D):(s=o=void 0,a)}function _(){c!==void 0&&clearTimeout(c),f=0,s=u=o=c=void 0}function b(){return c===void 0?a:V(Gt())}function E(){var D=Gt(),N=C(D);if(s=arguments,o=this,u=D,N){if(c===void 0)return m(u);if(d)return clearTimeout(c),c=setTimeout(v,r),y(u)}return c===void 0&&(c=setTimeout(v,r)),a}return E.cancel=_,E.flush=b,E}var Bs=Ps;function Hs(t){const n=Buffer.from(t,"base64").length/1e3;return`${Math.round((n+Number.EPSILON)*100)/100} KB`}async function nt(t){const r=await no.fileTypeFromBuffer(Buffer.from(t,"base64"));return r||{mime:"text/plain",ext:"txt"}}const Br=t=>new Promise((r,n)=>{const s=new FileReader;s.readAsDataURL(t),s.onload=o=>r(o.target.result.split(",")[1]),s.onerror=o=>n(o)});function Tt(t,r){for(var n=atob(t),s=new Array(n.length),o=0;o<n.length;o++)s[o]=n.charCodeAt(o);var i=new Uint8Array(s),a=new Blob([i],{type:r+";base64"}),c=URL.createObjectURL(a);window.open(c)}const Hr=t=>{const{ooui:r}=t,{required:n,id:s}=r,o=qe(s);return o?e.jsx(o,{}):e.jsx(ge,{required:n,...t,children:e.jsx(Ks,{ooui:r})})},Ks=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o}=r,i=l.useRef(null),{t:a}=l.useContext(pe),c=d=>{s==null||s(d)};async function u(){const d=await nt(n),g=`data:${d==null?void 0:d.mime};base64,${n}`,y=document.createElement("a");y.href=g,y.download=`image.${d==null?void 0:d.ext}`,y.click()}async function f(d){d.stopPropagation(),d.preventDefault();const g=d.target.files[0],y=await Br(g);c(y)}function p(){c(void 0)}return e.jsxs(e.Fragment,{children:[e.jsxs(h.Row,{gutter:8,wrap:!1,justify:"center",children:[n&&e.jsx("img",{src:`data:image/*;base64,${n}`,style:{maxWidth:"100px"}}),e.jsx("input",{type:"file",id:"file",ref:i,accept:"image/*",style:{display:"none"},onChange:f})]}),e.jsx(h.Row,{gutter:8,wrap:!1,justify:"center",className:"pt-5",children:e.jsxs(h.Space,{children:[e.jsx(Le,{tooltip:a("uploadNewImage"),icon:e.jsx(B.FolderOpenOutlined,{}),disabled:o,onClick:()=>{i.current.click()}}),e.jsx(Le,{tooltip:a("download"),disabled:!n,onClick:u,icon:e.jsx(B.DownloadOutlined,{})}),e.jsx(Le,{tooltip:a("clear"),disabled:o||!n,onClick:p,icon:e.jsx(B.ClearOutlined,{})})]})})]})},Ws=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(ge,{required:n,...t,children:e.jsx(qs,{})})},qs=t=>{const{value:r,onChange:n}=t;if(!r)return null;try{JSON.parse(r)}catch(s){return console.log(s),null}return e.jsx(oo.GridUi,{inputJson:r,onChange:s=>{n&&n(s)}})},ot=t=>{const r=t.arch,n=t.fields,s=new se.Tree(n);return s.parse(r),s},Ys=(t,r,n)=>t.columns.map(o=>{const i=o.type,a=o.id,c=r==null?void 0:r[i];let u;return c&&(u=f=>c(f,a,o,n)),{key:a,dataIndex:a,title:o.label,render:u,sorter:(f,p)=>{var y,m;let d=f[a]||"",g=p[a]||"";return i==="many2one"&&(d=((y=f[a])==null?void 0:y.value)||"",g=((m=p[a])==null?void 0:m.value)||""),d<g?-1:d>g?1:0}}}),Kr=(t,r)=>r.map(s=>{const o={};return Object.keys(s).map(i=>{if(i==="id")o[i]=s[i];else{const a=t.findById(i);a instanceof se.Reference||a instanceof se.Selection?o[i]=s[i]:a instanceof se.Many2one?o[i]=s[i]&&Array.isArray(s[i])&&s[i].length===2&&{model:a.relation,id:s[i][0],value:s[i][1]}:a instanceof se.Boolean?o[i]=s[i]:a?o[i]=s[i]===!1?"":s[i]:o[i]=s[i]}}),o});function Ft(t){if(!t)return;const r={};return t.forEach(n=>{r[n.id]=n.colors}),r}function st({resultsToSort:t,sorter:r,fields:n}){if(!r)return t;const{id:s,desc:o}=r,i=o===!1?"ascend":"descend",a=n[s].type,c=(u,f)=>{var g,y;let p=u[s]||"",d=f[s]||"";return a==="many2one"&&(p=((g=u[s])==null?void 0:g[1])||"",d=((y=f[s])==null?void 0:y[1])||""),p===d?0:i==="ascend"?p>d?1:-1:p<d?1:-1};return t.sort(c)}const Ut=async t=>{var m;const{items:r,model:n,formView:s,treeView:o,context:i,currentView:a={}}=t,c=r.filter(w=>w.operation!=="original"),u=r.filter(w=>w.operation==="original").map(w=>w.id),f={form:s.fields,tree:o.fields};let p=[],d;if(a==="tree"&&(o==null?void 0:o.arch)){const w=(m=ot(o))==null?void 0:m.colors,C=await W.getHandler().readEvalUiObjects({model:n,ids:u,arch:o==null?void 0:o.arch,fields:o.fields,context:i,attrs:w&&{colors:w}});p=C[0],d=Ft(C[1])}else p=await W.getHandler().readObjects({model:n,ids:u,fields:f[a],context:i});const g=p.map(w=>{const C={};return Object.keys(w).forEach(v=>{(f[a].hasOwnProperty(v)||v==="id")&&(C[v]=w[v])}),C});return[r.map(w=>{const C=g.find(V=>V.id===w.id),v={...w};return a==="form"?v.values=C:a==="tree"&&(v.treeValues=C),v}).concat(c),d]},Gs=t=>{const r=t.filter(n=>n.id&&n.id<0).map(n=>n.id);return r.length===0?-1:Math.min(...r)-1},Us=(t,r)=>{const n={};return Object.keys(t).forEach(s=>{var o;r.hasOwnProperty(s)&&(r[s].type==="one2many"||r[s].type==="many2many")&&t[s]&&((o=t[s])==null?void 0:o.items)?n[s]=t[s].items.filter(i=>i.operation!=="pendingRemove"):n[s]=t[s]}),n},js=t=>{const{ooui:r}=t,{relation:n,context:s,views:o}=r,[i,a]=l.useState(!0),[c,u]=l.useState(),[f,p]=l.useState(new Map),d=l.useContext(_e),{getContext:g}=d||{};Qe.default(()=>{m()},[r]);const y=async w=>o&&o[w]?o[w]:await W.getHandler().getView({model:n,type:w,context:{...g==null?void 0:g(),...s}}),m=async()=>{a(!0),u(void 0);try{const w=await y("form"),C=await y("tree");f.set("form",w),f.set("tree",C),p(f)}catch(w){u(w)}finally{a(!1)}};return i?e.jsx(h.Spin,{}):c?e.jsx(h.Alert,{className:"mt-10",message:c,type:"error",banner:!0}):e.jsx(ge,{type:"array",...t,children:e.jsx(zs,{ooui:r,views:f})})},zs=t=>{const{value:r,views:n,ooui:s,onChange:o}=t,{items:i=[]}=r||{},[a,c]=l.useState(!1),[u,f]=l.useState(),[p,d]=l.useState(!1),[g,y]=l.useState(),{relation:m,context:w,readOnly:C,summaryField:v,titleField:V}=s,_=i.filter(S=>S.values),b=l.useContext(_e),{getContext:E}=b||{};Qe.default(()=>{N()},[i]);const D=S=>{o==null||o({items:S})};async function N(){c(!0),f(void 0);try{const[S]=await Ut({treeView:{fields:n.get("tree").fields,arch:n.get("tree").arch},formView:{fields:n.get("form").fields},model:m,items:i,context:{...E==null?void 0:E(),...w},currentView:"form"});D(S)}catch(S){f(S)}finally{c(!1)}}return u?e.jsx(h.Alert,{className:"mt-10",message:u,type:"error",banner:!0}):a?e.jsx(h.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(h.Timeline,{style:{padding:"1rem"},children:_.map((S,x)=>{var O,T;return e.jsx("div",{children:e.jsxs(h.Timeline.Item,{children:[e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{y(_.find(H=>S.id===H.id)),d(!0)},children:e.jsx("strong",{children:(O=S.values)==null?void 0:O[V]})}),e.jsx("br",{}),e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{y(_.find(H=>S.id===H.id)),d(!0)},children:(T=S.values)==null?void 0:T[v]})]},x)},x)})}),e.jsx(dt,{formView:n.get("form"),model:m,id:g==null?void 0:g.id,values:g==null?void 0:g.values,defaultValues:g==null?void 0:g.defaultValues,visible:p,onSubmitSucceed:()=>{d(!1)},parentContext:{...E==null?void 0:E(),...w},onCancel:()=>{d(!1)},readOnly:C,postSaveAction:N})]})},{useToken:Js}=h.theme,Zs=t=>{const{ooui:r}=t;return e.jsx(ge,{ooui:r,children:e.jsx(Xs,{ooui:r})})},Xs=t=>{const{token:r}=Js(),{ooui:n,value:s}=t,o=e.jsxs(e.Fragment,{children:[e.jsxs("span",{children:[n.label," "]}),n.tooltip&&e.jsx(h.Tooltip,{title:n.tooltip,children:e.jsx(B.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:r.colorPrimaryBg}})})]}),i=qe(n.icon);let a=s;n.selectionValues.size?a=n.selectionValues.get(s):Array.isArray(s)&&(a=s[1]);const c=e.jsx(h.Statistic,{title:o,prefix:i&&e.jsx(i,{}),suffix:n.suffix,value:a});return n.card?e.jsx(h.Card,{children:c}):c},Qs=(t,r)=>{if(!r)return t;const n={};return Object.keys(t).forEach(s=>{if(r[s]===void 0)n[s]=t[s];else if(!(t[s]===!1&&r[s].type!=="boolean"))if(r[s].type==="boolean"){const o=t[s];o===0?n[s]=!1:o===1?n[s]=!0:n[s]=t[s]}else n[s]=t[s]}),n},it=(t,r)=>Qs(t,r),jt=({source:t,target:r,fields:n})=>{const s={};return Object.keys(r).forEach(o=>{var a,c;if(n[o]?n[o].type==="one2many"||n[o].type==="many2many":!1){const u=JSON.stringify(t[o]),f=JSON.stringify(r[o]);if(u===f)return;(((c=(a=r[o])==null?void 0:a.items)==null?void 0:c.filter(d=>d.operation!=="original"))||[]).length>0&&(s[o]=r[o])}else if(Array.isArray(r[o]))if(t[o]===void 0)s[o]=r[o];else if(n[o].type==="many2one")if(Array.isArray(t[o])){const u=JSON.stringify(t[o]),f=JSON.stringify(r[o]);u!==f&&(s[o]=r[o])}else{const u=t[o],[f]=r[o];u!==f&&(s[o]=r[o])}else{const u=JSON.stringify(t[o]),f=JSON.stringify(r[o]);u!==f&&(s[o]=r[o])}else t[o]!==r[o]&&(r[o]===void 0?s[o]=null:s[o]=r[o])}),s},Rs=({changedFields:t,formOoui:r,types:n})=>t.map(o=>{var a;const i=(a=r==null?void 0:r.findById(o))==null?void 0:a.type;return n.includes(i)}).some(o=>o===!0),ei=({fieldsDomain:t,fields:r})=>{const n={};return Object.keys(r).forEach(s=>{n[s]=r[s],t[s]&&(n[s].domain=t[s])}),n},ti=t=>{const r={};return!t||!Array.isArray(t)||(t==null?void 0:t.length)===0?{}:(t.forEach(n=>{(n==null?void 0:n[1])==="="&&(r[n[0]]=n[2])}),r)},ri=({onChangeFieldActionArgs:t,values:r,parentValues:n={}})=>{const s={};return t.forEach(o=>{const i=o.split("");if(o==="True")s[o]=!0;else if(o==="False")s[o]=!1;else if(r[o])s[o]=r[o];else if(i[0]==="'"&&i[i.length-1]==="'"&&i.filter(a=>a==="'").length===2)s[o]=o.replace(/'/g,"");else if(i.includes("'"))s[o]=o;else if(o.indexOf("parent.")!==-1){const a=o.replace("parent.","");s[o]=n[a]||!1}else s[o]=!1}),s},Wr=t=>{const r={primary:[],secondary:[]};return t.forEach(n=>{!n||(r.primary=r.primary.concat(n.primary),r.secondary=r.secondary.concat(n.secondary))}),{primary:r.primary.filter(qr),secondary:r.secondary.filter(qr)}};function qr(t,r,n){return n.indexOf(t)===r}const at=({values:t,fields:r})=>{let n={};return Object.keys(t).forEach(s=>{const o=t[s];r[s]&&r[s].type==="many2one"&&o&&Array.isArray(o)&&o.length===2?n[s]=o[0]:n[s]=o}),n},zt=t=>{let r=0;for(let o=0;o<t.length;o++)r=t.charCodeAt(o)+((r<<5)-r);let n="#";for(let o=0;o<3;o++){var s=r>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n},Yr=t=>{const{ooui:r}=t;return e.jsx(ge,{type:"array",...t,children:e.jsx(ni,{ooui:r})})},ni=t=>{const{value:r,ooui:n,onChange:s}=t,{items:o=[]}=r||{},i=o.filter(D=>D.operation!=="pendingRemove").map(D=>D.id),[a,c]=l.useState([]),[u,f]=l.useState(),[p,d]=l.useState(!1),{relation:g,context:y,readOnly:m,field:w}=n,C=l.useContext(_e),{getContext:v}=C||{};Qe.default(()=>{_()},[o]);const V=D=>{s==null||s({items:D})};async function _(){d(!0);let D=[];try{if(m&&(D=[["id","in",i]]),n.domain){const x=await W.getHandler().evalDomain({domain:n.domain,values:at({fields:C==null?void 0:C.getFields(),values:C.getPlainValues()}),fields:C==null?void 0:C.getFields(),context:C.getContext()});D=[...D,...x]}const S=(await W.getHandler().search({model:g,params:D,fields:[w],context:{...v==null?void 0:v(),...y}})).map(x=>{const O=x[w];let T=O;return Array.isArray(O)&&(T=O[1]),{label:T,value:x.id}});c(S)}catch(N){f(N)}finally{d(!1)}}const b=D=>{const N=o.map(x=>D.includes(x.id)?x.operation=="pendingRemove"?{...x,operation:"pendingLink"}:x:{id:x.id,operation:"pendingRemove"}),S=N.map(x=>x.id);D.filter(x=>!S.includes(x)).map(x=>{N.push({id:x,operation:"pendingLink"})}),V(N)},E=D=>{const{label:N,closable:S,onClose:x}=D,O=T=>{T.preventDefault(),T.stopPropagation()};return e.jsx(h.Tag,{color:zt(N),onMouseDown:O,style:{margin:"5px"},closable:S,onClose:x,children:N})};return u?e.jsx(h.Alert,{className:"mt-10",message:u,type:"error",banner:!0}):e.jsx(e.Fragment,{children:e.jsx("div",{className:"flex flex-row",children:e.jsx(h.Select,{mode:"multiple",value:a.length?i:[],tagRender:E,bordered:!m,disabled:m,options:a,onChange:b,loading:p})})})},oi=t=>{switch(t){case"form":return ct;case"tree":return Ct;case"notebook":return vn;case"group":return rr;case"label":return gt;case"char":return qt;case"text":return Cn;case"button":return Wt;case"buttonGroup":return br;case"selection":return Yt;case"many2one":return dn;case"boolean":return Dr;case"integer":return vt;case"float":return Zt;case"progressbar":return Rr;case"date":return Fn;case"datetime":return On;case"one2many":case"one2many_list":case"many2many":return yn;case"separator":return Sn;case"reference":return _n;case"binary":return Dn;case"image":return Hr;case"url":return An;case"email":return $n;case"float_time":return wn;case"fiber_grid":return Ws;case"timeline":return js;case"indicator":return Zs;case"tags":return Yr;case"tag":return Wn;case"multicheckbox":return qn;case"markdown":return Yn;case"radio":return Gn;case"switch":return Un;case"steps":return jn;case"codeeditor":return zn;default:return}},si=t=>{const{ooui:r}=t,{type:n}=r,s=oi(n);return s?Pe.default.createElement(s,t):null},ii=({item:t,responsiveBehaviour:r})=>({gridColumnStart:"span "+(r?1:t.colspan)}),ai=({row:t,mustFillWithEmpties:r,numberOfColumns:n})=>{const s=[];let o=0;const i=a=>a+1===t.length&&o<n&&!r;return t.map((a,c)=>{if(o+=a.colspan,i(c)){const u=n-o;a.colspan=a.colspan+u,o+=u}if(s.push(a),i(c)){const u=n-o;for(let f=0;f<u;f+=1)s.push(new se.Label({string:""}))}}),s},li=({row:t,numberOfColumns:r})=>t.map(n=>(n._mustExpand&&(n.colspan=r),n)),ci=(t,r)=>{const n=t.map(s=>s instanceof se.Label&&s.fieldForLabel||s instanceof se.Container?"auto":"1fr");if(n.length<r){const s=r-n.length;for(let o=0;o<s;o++)n.push("1fr")}return n.join(" ")},di=(t,r)=>{const n=r?"1fr":"auto",s="auto";let o="";for(let i=0;i<t;i++)o+=i%2?n:s,i+1<t&&(o+=" ");return o},ui=t=>t.map(n=>n.reduce((s,o)=>s+o.colspan,0)).reduce((n,s)=>Math.max(n,s)),Jt=t=>{const{container:r,responsiveBehaviour:n}=t,{rows:s}=r;let{columns:o}=r;const i=ui(s);i<o&&(o=i);let a=!1,c=[];const u=s.map((d,g)=>{const y=d.filter(C=>!C.invisible),m=li({row:y,numberOfColumns:o});let w=m;return(g===0||!(d.length===1&&d.some(C=>C.type==="group")))&&(w=ai({row:m,numberOfColumns:o,mustFillWithEmpties:n}),c=c.concat(w)),w.map(C=>(C instanceof se.Label&&C.fieldForLabel&&(a=!0),e.jsx("div",{style:{...ii({item:C,responsiveBehaviour:n}),minWidth:0},children:si({ooui:C,responsiveBehaviour:n})},C.key)))}),f=s.length===1?ci(c,o):di(o,a),p={display:"grid",gridTemplateColumns:n?"auto":f,gap:"1rem",minHeight:0,minWidth:0};return e.jsx("div",{style:p,children:u})},{confirm:fi}=h.Modal,yt=({onOk:t,onCancel:r,lang:n})=>{fi({title:be("unsavedChanges",n),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmCloseWithoutSave",n),okText:be("closeWithoutSaving",n),onOk:t,onCancel:r,cancelText:be("cancel",n)})},{error:hi}=h.Modal,Gr=t=>{hi({title:be("formHasErrors",t),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:be("fillRequiredFields",t)})},{warning:pi}=h.Modal,gi=(t,r,n)=>{pi({title:t,icon:e.jsx(B.WarningOutlined,{}),centered:!0,content:r,onOk:n})},Ur=Pe.default.createContext(null),mi=t=>{const{children:r,setTitle:n}=t;return e.jsx(Ur.Provider,{value:{setTitle:n},children:r})},jr=t=>typeof t=="string"&&t==="true"||t==="false"?t==="true":t,yi=(t,r)=>{const n=xi(t),s=Si(n),o=bi(s,r);return[...Object.keys(o).map(c=>wi(c,o[c],r))].reduce((c,u)=>Array.isArray(u[0])?c.concat(u):[...c,u],[])},wi=(t,r,n)=>{var i;const s=t.split("#")[0],o=(i=n.findById(s))==null?void 0:i.type;if(o==="char"||o==="text"||o==="many2one"||o==="many2many"||o==="one2many")return[t,"ilike",r];if(o==="float"||o==="integer"||o==="float_time"||o==="progressbar"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r]}else if(o==="date"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r.format("YYYY-MM-DD")]}else if(o==="datetime"){const a=[];return r[0]&&a.push([s,">=",r[0]]),r[1]&&a.push([s,"<=",r[1]]),a}else return o==="selection"?[t,"in",r.map(a=>jr(a))]:[t,"=",jr(r)]},vi=t=>Object.keys(t).filter(r=>r.indexOf("#date")!==-1),Ci=t=>{const r={...t};return Object.keys(r).forEach(n=>(n.indexOf("#time")!==-1||n.indexOf("#date")!==-1)&&delete r[n]),r},Si=t=>{const r={...Ci(t)};return vi(t).forEach(s=>{const o=t[s],i=s.split("#")[0],a=i+"#time",c=t[a];let u,f;if(o[0]!==null&&(u=o[0].format("YYYY-MM-DD"),c&&c[0]!==null)){const d=c[0].format("HH:mm:ss");u=u+" "+d}if(o[1]!==null&&(f=o[1].format("YYYY-MM-DD"),c&&c[1]!==null)){const d=c[1].format("HH:mm:ss");f=f+" "+d}r[i+"#datetime"]=[u,f]}),r},bi=(t,r)=>{const n=Object.keys(t).filter(o=>{const i=r.findById(o);return i&&i.type==="date"});let s={...t};return n.forEach(o=>{delete s[o],t[o][0]!==null&&(s[o+"#from"]=t[o][0]),t[o][1]!==null&&(s[o+"#to"]=t[o][1])}),s},xi=t=>{const r={...t};return Object.keys(r).forEach(n=>(r[n]===void 0||r[n]===null||r[n]==="")&&delete r[n]),r},Ti=t=>{const r={};return t.forEach(n=>{Array.isArray(n)&&n[0]?r[n[0]]=!0:r[n]=!0}),Object.keys(r)},Ot=(t,r)=>{const n=[...t],s=Ti(t);return r.forEach(o=>{Array.isArray(o)&&o[0]?s.includes(o[0])||n.push(o):s.includes(o)||n.push(o)}),n},wt=80,zr=t=>{const{model:r,setSearchTreeNameSearch:n,setSelectedRowItems:s,setSearchParams:o,setSearchVisible:i,setTreeIsLoading:a,nameSearch:c,searchNameGetDoneRef:u,context:f,setActionViewTotalItems:p,treeView:d,formView:g,sorter:y,setSorter:m,setCurrentItemIndex:w,setResultsActionView:C,resultsActionView:v,domain:V,currentId:_,limit:b,setLimit:E,searchParams:D=[],setSearchValues:N}=t,[S,x]=l.useState(!1),[O,T]=l.useState(!1),[H,F]=l.useState(),[A,M]=l.useState(1),[L,k]=l.useState(0),[I,K]=l.useState(),[q,z]=l.useState([]),[Y,Z]=l.useState(void 0),J=l.useRef(b||wt),$=l.useRef([]),P=l.useCallback(oe=>{C==null||C([...oe]),z([...oe])},[]),ee=l.useCallback(()=>v||q,[v,q]),le=l.useCallback(async()=>{const oe=await W.getHandler().nameSearch({model:r,payload:c,limit:J.current,attrs:V,context:f});if(K(oe.length),p==null||p(oe.length),oe.length>0){const Se=oe.map(Ie=>Ie==null?void 0:Ie[0]),{colors:me}=ot(d),xe=await W.getHandler().readEvalUiObjects({model:r,ids:Se,arch:d==null?void 0:d.arch,fields:d.field_parent?{...d.fields,[d.field_parent]:{}}:d.fields,context:f,attrs:me&&{colors:me}}),Me=xe[0];$.current=[...Me],Z(Ft(xe[1]));const ke=Me.map(Ie=>Ie.id),He=y!==void 0?st({resultsToSort:Me,sorter:y,fields:{...d.fields,...g.fields}}):[...$.current];P(He),ke.length>0?w==null||w(0):w==null||w(void 0)}else P([]),w==null||w(void 0);x(!1),u.current=!0},[P,u,c,r,f,V,d,g,y,w,p]),ce=l.useCallback(async oe=>{const{params:Se,newOffset:me}=oe||{},xe=Ot(Se||D,V),{colors:Me}=ot(d),{totalItems:ke,results:He,attrsEvaluated:Ie}=await W.getHandler().searchForTree({params:xe,limit:J.current,offset:me||L,model:r,fields:d.field_parent?{...d.fields,[d.field_parent]:{}}:d.fields,context:f,attrs:Me&&{colors:Me}});Z(Ft(Ie)),$.current=[...He];const R=y!==void 0?st({resultsToSort:He,sorter:y,fields:{...d.fields,...g.fields}}):[...$.current];if(P(R),v&&R.length>0){const we=R.findIndex(Ve=>_===Ve.id);we===-1?w==null||w(0):w==null||w(we)}else w==null||w(void 0);x(!1);const de=await ke;K(de),p==null||p(de)},[w,v,P,_,r,f,V,d,g,y,p,b,L,D]),re=l.useCallback(async oe=>{try{x(!0),a==null||a(!0),c&&!u.current?await le():await ce(oe)}catch(Se){F(Se.message)}finally{T(!1),a==null||a(!1)}},[f,_,V,g,b,r,c,L,v,u,p,w,P,F,T,x,a,y,d]),X=l.useCallback(oe=>{if(JSON.stringify(oe)===JSON.stringify(y))return;m==null||m(oe);const Se=oe!==void 0?st({resultsToSort:ee(),sorter:oe,fields:{...d.fields,...g.fields}}):[...$.current];P(Se)},[m,ee,d,g,P]),ye=l.useCallback(oe=>{const{params:Se,searchValues:me,limit:xe,offset:Me}=oe;S||(n==null||n(void 0),s==null||s([]),N==null||N(me),o==null||o(Se),i==null||i(!1),T(!0),F(void 0),M(1),xe&&(J.current=xe,E==null||E(xe)),Me&&k(Me),re({params:Se,newOffset:Me}))},[S,n,s,o,i,T,F,M,E,k,re]),Ce=l.useCallback(oe=>{x(!0),M(oe),k((oe-1)*b)},[x,b,k,M]),Ee=l.useCallback(()=>{S||(n==null||n(void 0),o==null||o([]),N==null||N({}),F(void 0),k(0),M(1),E==null||E(b||wt))},[S,n,o,F,k,M,E,b]),fe=l.useCallback(async oe=>{const Se=oe[(d==null?void 0:d.field_parent)||"child_id"],me=await W.getHandler().readObjects({model:r,ids:Se,fields:d.field_parent?{...d.fields,[d.field_parent]:{}}:d.fields,context:f});return P([...ee(),...me]),Kr(ot(d),me)},[d,r,f,ee,P]);return{submit:ye,clear:Ee,fetchResults:re,tableRefreshing:S,searchFilterLoading:O,searchError:H,page:A,offset:L,limit:b,getResults:ee,requestPageChange:Ce,changeSort:X,fetchChildrenForRecord:fe,colorsForResults:Y,totalItems:I}},Be=Pe.default.createContext(null),Fi=t=>{const{children:r,currentView:n,title:s,setCurrentView:o,availableViews:i,formRef:a,searchTreeRef:c,onNewClicked:u,currentId:f,setCurrentId:p,setResults:d,results:g,currentItemIndex:y,setCurrentItemIndex:m,currentModel:w,sorter:C,setSorter:v,totalItems:V,setTotalItems:_,setSelectedRowItems:b,selectedRowItems:E,searchTreeNameSearch:D,setSearchTreeNameSearch:N,goToResourceId:S,limit:x}=t,[O,T]=l.useState(!1),[H,F]=l.useState(!1),[A,M]=l.useState(!1),[L,k]=l.useState(!0),[I,K]=l.useState(!0),[q,z]=l.useState([]),[Y,Z]=l.useState(!1),[J,$]=l.useState([]),[P,ee]=l.useState(!1),[le,ce]=l.useState(!0),[re,X]=l.useState(),[ye,Ce]=l.useState({}),[Ee,fe]=l.useState(x!==void 0?x:wt),[oe,Se]=l.useState(s);l.useEffect(()=>{g&&g.length>0&&!y&&(m==null||m(0),p==null||p(g[0].id))},[g]),l.useEffect(()=>{fe(x!==void 0?x:wt)},[x]),l.useEffect(()=>{i.length===1?X(i[0]):i.length>1&&X(i.filter(xe=>xe.view_id!==n.view_id)[0])},[i]),l.useEffect(()=>{(re==null?void 0:re.view_id)===n.view_id&&i.length>1&&X(i.filter(xe=>xe.view_id!==n.view_id)[0])},[n]);const me=async()=>{var xe;return await((xe=a.current)==null?void 0:xe.submitForm())};return e.jsx(Be.Provider,{value:{title:oe,currentView:n,setCurrentView:o,availableViews:i,formIsSaving:O,setFormIsSaving:T,formHasChanges:H,setFormHasChanges:F,formRef:a,searchTreeRef:c,onFormSave:me,onNewClicked:u,currentId:f,setCurrentId:p,currentItemIndex:y,setCurrentItemIndex:m,results:g,setResults:d,currentModel:w,removingItem:A,setRemovingItem:M,formIsLoading:L,setFormIsLoading:k,treeIsLoading:I,setTreeIsLoading:K,attachments:q,setAttachments:z,selectedRowItems:E,setSelectedRowItems:b,duplicatingItem:Y,setDuplicatingItem:Z,setSearchParams:$,searchParams:J,searchVisible:P,setSearchVisible:ee,sorter:C,setSorter:v,totalItems:V,setTotalItems:_,searchTreeNameSearch:D,setSearchTreeNameSearch:N,setGraphIsLoading:ce,graphIsLoading:le,previousView:re,setPreviousView:X,goToResourceId:S,searchValues:ye,setSearchValues:Ce,limit:Ee,setLimit:fe,setTitle:Se},children:r})},Ye=Pe.default.createContext(null),Oi=t=>{const{children:r,openAction:n,openRelate:s,openDefaultActionForModel:o,openShortcut:i,activeKey:a,onChangeTab:c,onRemoveTab:u,tabs:f}=t,[p,d]=l.useState(),[g,y]=l.useState();return e.jsx(Ye.Provider,{value:{openAction:n,openRelate:s,openDefaultActionForModel:o,activeKey:a,openShortcut:i,onChangeTab:c,onRemoveTab:u,tabs:f,currentId:g,currentView:p,setCurrentId:y,setCurrentView:d},children:r})},lt=Pe.default.createContext(null),Jr=async t=>{var r;for(let n=0;n<t.length;n++)await((r=t==null?void 0:t[n])==null?void 0:r.call(t))},_i=(t,r)=>{const{children:n,globalValues:s={}}=t,o=l.useRef(),i=l.useRef(),[a,c]=l.useState(!1),u=l.useContext(Ye),{openAction:f}=u||{},p=l.useRef([]),{t:d}=l.useContext(pe);l.useImperativeHandle(r,()=>({openActionModal:b}));const[g,y]=l.useState(!1),[m,w]=l.useState({context:{}});async function C(N){const{reportData:S,fields:x,values:O,context:T={}}=N,{context:H,model:F,datas:A={},report_name:M,type:L}=S;if(L!=="ir.actions.report.xml"){Ae(`${L} action not supported`);return}const{ids:k}=A||{};let I=k||[];const K=typeof H=="string"?se.parseContext({context:H,fields:x,values:O}):H;try{const q=await W.getHandler().createReport({model:F,name:M,datas:A,ids:I,context:{...T,...K}});c(!0),i.current=!0,o.current=setInterval(()=>{v(q)},1e3)}catch(q){i.current=!1,clearInterval(o.current),Ae(q),c(!1)}}async function v(N){let S;try{if(S=await W.getHandler().getReport({id:N}),S.state&&i.current===!0){i.current=!1,clearInterval(o.current),c(!1);const x=await nt(S.result);Tt(S.result,x.mime)}}catch(x){i.current=!1,clearInterval(o.current),c(!1),Ae(x.exception||x)}}async function V({actionData:N,fields:S,values:x,context:O,onRefreshParentValues:T}){const{type:H}=N;return p.current.push(T),H==="ir.actions.report.xml"?await C({reportData:N,fields:S,values:x,context:O}):H==="ir.actions.act_window"?await _({actionData:N,fields:S,values:x,context:O}):(Ae(`${H} action not supported`),{})}async function _({actionData:N,fields:S={},values:x={},context:O={}}){var M;let T=N;N.res_model||(T=(await W.getHandler().readObjects({model:"ir.actions.act_window",ids:[parseInt(N.id)],context:O}))[0]);const F={...typeof(T==null?void 0:T.context)=="string"?se.parseContext({context:T.context,fields:S,values:{...x,...s}}):T.context,...O};let A=[];if(T.domain&&(A=await W.getHandler().evalDomain({domain:T.domain,values:at({fields:S,values:{...x,...s}}),fields:S,context:F})),T.target==="new"){const L=await W.getHandler().getView({model:T.res_model,type:"form",id:((M=T==null?void 0:T.view_id)==null?void 0:M[0])||void 0,context:F});return b({domain:A,model:T.res_model,formView:L,context:F}),{}}else{const{initialView:L,views:k}=await Di({model:T.res_model,context:F,view_mode:T.view_mode,views:T.views});return f==null||f({target:"current",context:F,domain:A,model:T.res_model,views:k,title:T.name,initialView:L,action_id:T.id,action_type:T.type}),{closeParent:!0}}}function b({domain:N,model:S,formView:x,context:O,actionData:T}){g?E({domain:N,model:S,formView:x,context:O,actionData:T}):(w({domain:N,model:S,context:O,formView:x,actionData:T}),y(!0))}async function E({domain:N,model:S,formView:x,context:O,actionData:T}){w({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0}),y(!1),await new Promise(H=>setTimeout(H,300)),w({domain:N,model:S,context:O,formView:x,actionData:T}),y(!0)}async function D(){Jr(p.current),p.current=[],y(!1),w({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})}return e.jsx(e.Fragment,{children:e.jsx(lt.Provider,{value:{processAction:V,globalValues:s},children:e.jsxs(e.Fragment,{children:[n,e.jsx(h.Modal,{title:d("generatingReport"),open:a,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(h.Spin,{})}),e.jsx(dt,{buttonModal:!0,parentContext:m.context,model:m.model,formView:m.formView,visible:g,onSubmitSucceed:D,onCancel:()=>{Jr(p.current),p.current=[],y(!1),w({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})},showFooter:!1,actionDomain:m.domain,isMenuAction:(m==null?void 0:m.actionData)!==void 0,actionData:m==null?void 0:m.actionData})]})})})};async function Di({views:t,view_mode:r,model:n,context:s,view_id:o}){const i=[];let a;if(t)for(const c of t){const u=await W.getHandler().getView({model:n,type:c[1],id:c[0],context:s});i.push([u.view_id,c[1]])}else{const c=r.split(",");for(const u of c){const f=await W.getHandler().getView({model:n,type:u,context:s});i.push([f.view_id,u])}}if(t&&t.length>0){const[c,u]=t[0];a={id:c,type:u}}else if(o)a={id:o,type:r.split(",")[0]};else{const c=r.split(",")[0],[u]=i.find(([f,p])=>p===c);a={id:u,type:c}}return{views:i,initialView:a}}const Zr=l.forwardRef(_i),ki=({error:t,className:r})=>{let n,s="error";if(typeof t=="string"&&t.indexOf(" -- ")!==-1&&t.indexOf(`
|
|
18
18
|
|
|
19
19
|
`)!==-1){const{message:o,type:i,title:a}=Tr(t);n=e.jsx(Pt.Interweave,{content:`${a}<br />${o}`}),s=i}else n=t.message?JSON.stringify(t.message):JSON.stringify(t);return e.jsx(h.Alert,{className:r,message:n,type:s,banner:!0})},Vi=800;function Ei(t,r){const{model:n,id:s,onCancel:o,onSubmitSucceed:i,showFooter:a=!1,getDataFromAction:c=!1,onFieldsChange:u,onSubmitError:f,readOnly:p=!1,mustClearAfterSave:d=!1,submitMode:g="api",values:y,formView:m,postSaveAction:w,insideButtonModal:C=!1,parentContext:v={},actionDomain:V,visible:_=!0,rootForm:b=!1,defaultValues:E,forcedValues:D={}}=t,{t:N,lang:S}=l.useContext(pe),[x,O]=l.useState(!1),[T,H]=l.useState(),[F,A]=l.useState(),[M]=h.Form.useForm(),[L,k]=l.useState(),[I,K]=l.useState(),q=l.useContext(Ur),[z,Y]=l.useState(),[Z,J]=l.useState(!1),$=l.useRef(),P=l.useRef({}),ee=l.useRef({}),le=l.useRef(!1),ce=l.useRef(!1),re=z<Vi,X=l.useContext(_e),{activeId:ye,getPlainValues:Ce}=X||{},Ee=l.useContext(Be),{setFormIsSaving:fe=void 0,setFormHasChanges:oe=void 0,setCurrentId:Se=void 0,setFormIsLoading:me=void 0,setAttachments:xe=void 0,title:Me=void 0,setTitle:ke=void 0}=(b?Ee:{})||{},He=l.useContext(lt),{processAction:Ie,globalValues:R}=He||{};l.useImperativeHandle(r,()=>({submitForm:Lt,getFields:Fe,getValues:De,getPlainValues:Ge,getContext:Ue,fetchValues:ze,cancelUnsavedChanges:Xe,clearAndReload:()=>{$.current=void 0,A(void 0),je()}})),l.useEffect(()=>{if(H(void 0),!(!n&&!m)){if(!_){$.current=void 0,A(void 0);return}(s===void 0&&I||s!==void 0&&I&&s<0)&&($.current=void 0,A(void 0)),je()}},[s,n,y,m,_]),l.useEffect(()=>{Z&&(dr({elementHasLostFocus:!0}),J(!1))},[Z]);const de=(j,U,te)=>{oe==null||oe(!1),fe==null||fe(!1),i==null||i(j,U,te),Se==null||Se(j)},we=()=>{fe==null||fe(!1),o==null||o()},Ve=j=>{fe==null||fe(!1),f==null||f(j)};function ae(){return s||$.current}function Fe(){return I}function De(){const j={...ie(I),...Q()};for(const U in j)j[U]===void 0&&delete j[U];return j}function Ge(){const j=De(),U=Fe();let te={};return Object.keys(j).forEach(ne=>{const Oe=j[ne];U[ne]&&U[ne].type==="many2one"&&Oe&&Array.isArray(Oe)&&Oe.length===2?te[ne]=Oe[0]:U[ne]&&(U[ne].type==="one2many"||U[ne].type==="many2many")&&Oe&&Oe.items?te[ne]=Oe.items.filter(tt=>tt.operation!=="pendingRemove").map(tt=>tt.id):te[ne]=Oe}),te}function Ke(){const j={...ie(I)};for(const U in j)j[U]===void 0&&delete j[U];return j}function Ue(){return{...v,...F==null?void 0:F.context}}function Q(){return{id:ae(),active_id:ae(),active_ids:[ae()],parent_id:ye,...R}}const ue=async j=>{const U=ae()?F==null?void 0:F.context:{};return await W.getHandler().defaultGet({model:n,fields:j,context:{...v,...U},extraValues:E})},Te=()=>Object.keys(jt({source:P.current,target:ie(I),fields:I})).length!==0,ie=j=>{const U=M.getFieldsValue(!0);return it(U,j)},ve=(j,U)=>{$t({values:{...it(M.getFieldsValue(!0),I),[j]:U},fields:I,reset:!1})},he=j=>M.getFieldsValue(!0)[j];async function $e(){try{return await M.validateFields(),!1}catch{return h.message.error(N("fillRequiredFields")),!0}}const je=async()=>{H(void 0),me==null||me(!0);let j;try{m?j={arch:m.arch,fields:m.fields}:j=await nc();const{fields:U,arch:te}=j;K(U),k(te),await ze({fields:U,arch:te})}catch(U){H(U!=null&&U.message?U.message+U.stack:U),me==null||me(!1)}},ze=async j=>{let U,te,ne,Oe;me==null||me(!0),H(void 0),j?(te=j.fields,ne=j.arch):(te=I,ne=L),y?U=y:{values:U,defaultGetCalled:Oe}=await oc({fields:te,arch:ne}),V&&(U={...ti(V),...U}),P.current=it(U,te),$t({values:U,fields:te,reset:!0,isDefaultGet:Oe}),Nt({fields:te,arch:ne,values:U}),me==null||me(!1),oe==null||oe(!1),Oe&&J(!0)},Xe=async()=>new Promise(async j=>{Te()?yt({lang:S,onOk:()=>{we==null||we(),j(!0)},onCancel:()=>{j(!1)}}):(we==null||we(),j(!0))}),nc=async()=>{if(c){const j=await W.getHandler().getActionStringForModel(n);return(await W.getHandler().getViewsForAction({action:j,context:v})).views.get("form")}return await W.getHandler().getView({model:n,type:"form",context:v})},$t=({values:j,fields:U,reset:te,isDefaultGet:ne=!1})=>{const tt={...te?{}:M.getFieldsValue(!0),...j},ur=it(tt,U),yc=Object.keys(U).map(fr=>{const wc=ur[fr]!==void 0?ur[fr]:void 0;return{name:fr,touched:!1,value:wc}});ne||(ee.current=ur),M.setFields(yc)},oc=async({fields:j,arch:U})=>{let te={},ne=!1;if(ae()){te=(await W.getHandler().readObjects({model:n,ids:[ae()],fields:j,context:v}))[0];const Oe=await W.getHandler().search({params:[["res_model","=",n],["res_id","=",ae()]],fields:["id","name"],context:Ue(),model:"ir.attachment"});xe==null||xe(Oe)}else xe==null||xe([]),te=await ue(j),ne=!0;return{values:te,defaultGetCalled:ne}},sc=async j=>{const{callOnSubmitSucceed:U=!0}=j||{};if(ae()){const te=jt({source:P.current,target:ie(I),fields:I});await W.getHandler().update({model:n,id:ae(),values:{...te,...D},fields:I,context:{...v,...F==null?void 0:F.context}}),P.current=ie(I)}else{const te=ie(I),ne=await W.getHandler().create({model:n,values:{...te,...D},fields:I,context:{...v,...F==null?void 0:F.context}});$.current=ne,P.current=te}w&&await w([ae()]),!C&&U&&(de==null||de(ae(),De(),Ke()))},ic=async j=>{const{callOnSubmitSucceed:U=!0}=j||{};!C&&U&&(de==null||de(ae(),De(),Ke()))},Lt=async j=>{let U=!1;const{callOnSubmitSucceed:te=!0}=j||{};if(ce.current=!0,H(void 0),!Te()&&ae()&&te)return ce.current=!1,oe==null||oe(!1),we==null||we(),{succeed:!0,id:ae()};if(await $e())return ce.current=!1,Gr(S),{succeed:!1,id:ae()};O(!0),fe==null||fe(!0);try{g==="api"?await sc(j):await ic(j),d&&($.current=void 0,$t({values:{},fields:I,reset:!0})),await ze(),U=!0,h.message.success(N("savedRegisters"))}catch(ne){ce.current=!1,O(!1),fe==null||fe(!1),Ve==null||Ve(ne),h.message.error(N("errorWhileSavingForm")),H(ne!=null&&ne.message?ne.message:ne)}finally{ce.current=!1,fe==null||fe(!1),O(!1)}return{succeed:U,id:ae()}},Nt=({fields:j,arch:U,values:te})=>{var Oe;const ne=new se.Form(j);ne.parse(U,{readOnly:p,values:Us({...te,...Q()},j)}),A(ne),ne.string&&ne.string!==Me&&(ke==null||ke(ne.string)),q&&ne.string&&((Oe=q.setTitle)==null||Oe.call(q,ne.string))},dr=async({elementHasLostFocus:j=!1})=>{if(ce.current)return;const U=jt({source:ee.current,target:ie(I),fields:I}),te=Object.keys(U);if(te.length!==0){if(Rs({changedFields:te,formOoui:F,types:["text","codeeditor","email","url","char","float","float_time","integer","many2one"]})&&j!==!0)return;{const ne=it(M.getFieldsValue(!0),I);ee.current=ne,u==null||u(ne),oe==null||oe(!0),lc(te)}}},ac=Bs(dr,100),lc=async j=>{try{for(let U=0;U<j.length;U+=1){const te=j[U];await cc(te)}}catch(U){Ae(U)}},cc=async j=>{const U=F==null?void 0:F.onChangeFields[j];if(!U){Nt({fields:I,arch:L,values:ie(I)});return}const te=ri({values:{...ie(I),context:{...v,...F==null?void 0:F.context}},parentValues:Ce==null?void 0:Ce(),onChangeFieldActionArgs:U.args}),ne=await W.getHandler().executeOnChange({model:n,action:U.method,ids:ae()?[ae()]:[],payload:te,fields:I});if(ne.value){const Oe={...ie(I),...ne.value};Nt({fields:I,arch:L,values:Oe}),$t({values:Oe,fields:I,reset:!1})}if(ne.warning&&ne.warning.title&&ne.warning.message&&!le.current){const{title:Oe,message:tt}=ne.warning;le.current=!0,gi(Oe,tt,()=>{le.current=!1})}if(ne.domain&&Object.keys(ne.domain).length>0){const Oe=ei({fieldsDomain:ne.domain,fields:I});Nt({fields:Oe,arch:L,values:ie(Oe)}),K(Oe)}};async function dc({action:j,context:U}){const te=await W.getHandler().execute({model:n,action:j,payload:[ae()],context:{...U,...F==null?void 0:F.context,...v}});if(typeof te=="object"&&te!==null&&Object.keys(te).length===0&&C)de==null||de(ae(),De(),Ke());else if(te.type&&te.type==="ir.actions.act_window_close")de==null||de(ae(),De(),Ke());else if(te.type){let ne={};te.context&&(ne=se.parseContext({context:te.context,fields:I,values:De()})),await Jn({actionData:te,context:{...U,...ne}})}else await ze()}async function uc({action:j}){const U=await W.getHandler().executeWorkflow({model:n,action:j,payload:ae()});U.type&&U.type==="ir.actions.act_window_close"?de==null||de(ae(),De(),Ke()):await ze()}async function fc({action:j,context:U}){const te=(await W.getHandler().readObjects({model:"ir.actions.actions",ids:[parseInt(j)],context:v}))[0];await Jn({actionData:te,context:U})}async function Jn({actionData:j,context:U}){const{closeParent:te}=await(Ie==null?void 0:Ie({actionData:j,fields:I,values:De(),context:{...v,...F==null?void 0:F.context,...U},onRefreshParentValues:()=>{ze()}}))||{};!b&&te&&(de==null||de(ae(),De(),Ke()))}function hc(){dr({elementHasLostFocus:!0})}async function pc({type:j,action:U,context:te}){if(j==="cancel"){we==null||we();return}if(await $e()){Gr(S);return}try{(Te()||ae()===void 0)&&await Lt({callOnSubmitSucceed:!1}),j==="object"?await dc({action:U,context:te}):j==="workflow"?await uc({action:U}):j==="action"&&await fc({action:U,context:te})}catch(ne){Ae(ne)}}const gc=()=>!F&&!T?e.jsx(h.Spin,{}):!n&&!m||!_?null:e.jsx(e.Fragment,{children:e.jsx(xo,{getValues:De,getPlainValues:Ge,getFields:Fe,domain:V,activeId:s,activeModel:n,setFieldValue:ve,getFieldValue:he,executeButtonAction:pc,getContext:Ue,submitForm:Lt,fetchValues:ze,formHasChanges:Te,elementHasLostFocus:hc,children:e.jsx(h.Form,{form:M,onFieldsChange:()=>{ac({elementHasLostFocus:!1})},component:!1,children:F&&e.jsx(Jt,{container:F.container,responsiveBehaviour:re})})})}),mc=()=>e.jsxs(e.Fragment,{children:[e.jsx(h.Divider,{}),e.jsx(h.Row,{justify:"end",children:e.jsxs(h.Space,{children:[e.jsx(h.Button,{icon:e.jsx(B.CloseOutlined,{}),disabled:x,onClick:async()=>{await Xe()},children:"Cancel"}),e.jsx(h.Button,{disabled:x||p,loading:x,icon:e.jsx(B.CheckOutlined,{}),onClick:async()=>{await Lt()},type:"primary",children:"OK"})]})})]});return _?e.jsx(Ht.default,{bounds:!0,onResize:j=>{var U;Y((U=j.bounds)==null?void 0:U.width)},children:({measureRef:j})=>e.jsxs("div",{className:"pb-2",ref:j,children:[T&&e.jsx(ki,{className:"mt-5 mb-10",error:T}),gc(),a&&mc()]})}):null}const ct=l.forwardRef(Ei),dt=t=>{const{visible:r,id:n,title:s,buttonModal:o=!1,onCancel:i,isMenuAction:a=!1,actionData:c,...u}=t,{modalWidth:f}=xt(),[p,d]=l.useState(s),[g,y]=l.useState(!1),[m,w]=l.useState();l.useEffect(()=>{a&&C()},[c,a]);async function C(){const{action_id:_,res_id:b,action_type:E,view_id:D}=c,N=await W.getHandler().isShortcutFavorite({action_id:_,action_type:E,view_id:D,res_id:b||!1});y(N!==!1),N!==!1&&w(N)}async function v(){if(g&&m)await W.getHandler().removeFavourite({shortcut_id:m});else{const{action_id:_,res_id:b,action_type:E,view_id:D}=c;await W.getHandler().addFavourite({action_id:_,action_type:E,view_id:D,res_id:b||!1})}y(!g)}function V(){return e.jsxs(h.Row,{align:"middle",children:[e.jsx(h.Col,{children:e.jsx(h.Button,{type:g?"primary":"default",icon:g?e.jsx(B.StarFilled,{style:{color:"white"}}):e.jsx(B.StarOutlined,{}),style:{width:30},onClick:v})}),e.jsx(h.Col,{style:{paddingLeft:10},children:p})]})}return e.jsx(mi,{setTitle:d,children:e.jsx(h.Modal,{title:a?V():p,centered:!0,width:f,open:r,footer:null,destroyOnClose:!0,onCancel:i,maskClosable:!1,children:e.jsx(ct,{id:n,showFooter:!0,insideButtonModal:o,onCancel:i,...u})})})},Mi=t=>e.jsx(ge,{...t,layout:"vertical",children:e.jsx(h.DatePicker.RangePicker,{allowEmpty:[!0,!0],format:"DD/MM/YYYY"})}),Ii=t=>{const{ooui:r,showLabel:n=!1}=t,{label:s,id:o}=r,i=[new se.Field({name:o+"#date",label:""}),new se.Field({name:o+"#time",label:""})];return e.jsxs(e.Fragment,{children:[n&&e.jsx(gt,{ooui:new se.Label({name:o+"_label",string:s,help:r.tooltip,fieldForLabel:o}),align:"left"}),e.jsxs(h.Row,{align:"bottom",className:"p-0",children:[e.jsx(h.Col,{className:"mr-2",children:e.jsx(ge,{...t,ooui:i[0],showLabel:!1,children:e.jsx(h.DatePicker.RangePicker,{className:"w-60",allowEmpty:[!0,!0],format:"DD/MM/YYYY"})})}),e.jsx(h.Col,{children:e.jsx(ge,{...t,ooui:i[1],showLabel:!1,children:e.jsx(h.TimePicker.RangePicker,{className:"w-60",allowEmpty:[!0,!0],format:"HH:mm"})})})]})]})},{useToken:Ai}=h.theme,Zt=t=>{const{ooui:r}=t,{id:n,decimalDigits:s,readOnly:o,required:i}=r,{token:a}=Ai(),c=i&&!o?{backgroundColor:a.colorPrimaryBg}:void 0,u=l.useContext(_e),{elementHasLostFocus:f}=u||{};return e.jsx(ge,{required:i,type:"number",...t,children:e.jsx(h.InputNumber,{disabled:o,className:"w-full",style:c,id:n,precision:s,formatter:p=>`${p}`.replace(/[^0-9\.\-]+/g,""),defaultValue:0,decimalSeparator:".",onBlur:f})})},{useToken:$i}=h.theme,vt=t=>{const{ooui:r,onChange:n}=t,{id:s,readOnly:o,required:i}=r,{token:a}=$i(),c=i&&!o?{backgroundColor:a.colorPrimaryBg}:void 0,u=l.useContext(_e),{elementHasLostFocus:f}=u||{};return e.jsx(ge,{required:i,type:"number",...t,children:e.jsx(h.InputNumber,{id:s,className:"w-full ",disabled:o,formatter:p=>`${p}`.replace(/[^0-9\-]+/g,""),onChange:p=>{const d=p;n==null||n(d)},defaultValue:0,onBlur:f,precision:0,style:c})})};function Li(t){const{ooui:r,showLabel:n}=t,{id:s,label:o,tooltip:i}=r,a=r instanceof se.Integer?vt:Zt,c=u=>e.jsx(a,{ooui:{...r,id:s+u,label:"",tooltip:void 0},layout:"vertical"});return e.jsxs(e.Fragment,{children:[n&&e.jsx(gt,{ooui:new se.Label({name:s+"_label",string:o,help:i,fieldForLabel:s}),align:"left"}),e.jsxs(h.Row,{align:"bottom",className:"mt-0",wrap:!1,children:[e.jsx(h.Col,{children:c("#from")}),e.jsx(h.Col,{className:"pb-1",children:e.jsx("span",{className:"pl-2 pr-2 h-full",children:" - "})}),e.jsx(h.Col,{children:c("#to")})]})]})}const{defaultAlgorithm:Ni,defaultSeed:Pi}=h.theme,Bi=Ni(Pi),{Option:Hi}=h.Select,Ki=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(ge,{required:n,type:"any",...t,children:e.jsx(Wi,{...t})})},Wi=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,required:a}=r,c=Array.from(o.entries()),u=c&&c.length&&c.filter(d=>{const[g]=d;return s?!s.includes(g):!0}).map(d=>{const[g,y]=d;return e.jsx(Hi,{value:y,children:y},g)}),f=a&&!i?qi:h.Select;function p(d){const g=d.map(y=>{const m=c.find(([w,C])=>y===C);return m&&m[0]});if(g.length===0){n==null||n(void 0);return}n==null||n(g)}return e.jsx(f,{disabled:i,onChange:p,value:s==null?void 0:s.map(d=>o.get(d)),mode:"multiple",showArrow:!0,children:u})},qi=pt.default(h.Select)`
|
|
20
20
|
&.ant-select:not(.ant-select-customize-input) .ant-select-selector {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
.ant-progress-text {
|
|
29
29
|
display: none;
|
|
30
30
|
}
|
|
31
|
-
`,tn=t=>{const{visible:r,onCancel:n,items:s=[],onItemClicked:o}=t,{t:i}=l.useContext(pe);return e.jsx(h.Modal,{title:i("selectAction"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:n,maskClosable:!1,children:e.jsx(h.Space,{direction:"vertical",className:"w-full",children:s.map(a=>e.jsx(h.Button,{className:"w-full",onClick:()=>{o(a)},children:a.name}))})})},Qt=t=>{var S,x;const{id:r,model:n,context:s={}}=t,[o,i]=l.useState(!1),[a,c]=l.useState(!1),[u,f]=l.useState(!1),[p,d]=l.useState(),[g,y]=l.useState(),{t:m}=l.useContext(pe),w=l.useContext(Ye),{openRelate:C}=w||{},v=l.useContext(lt),{processAction:V}=v||{};if(!r)return null;async function _(){f(!0);try{const O=await W.getHandler().getView({model:n,type:"form",context:s});d(O);const{fields:T,arch:H}=O,F=(await W.getHandler().readObjects({model:n,ids:[r],fields:T,context:s}))[0];y({...it(F,T),active_id:r}),f(!1)}catch(O){f(!1),Ae(O);return}}function b(){var T;if(u)return e.jsx(h.Menu,{children:e.jsx("div",{style:{padding:15},children:e.jsx(h.Spin,{})})});if(!p||!p.toolbar)return e.jsx(h.Menu,{});const O=(T=p==null?void 0:p.toolbar)==null?void 0:T.relate.map(H=>e.jsx(h.Menu.Item,{children:H.name},H.id));return e.jsx(h.Menu,{onClick:E,children:[e.jsx(h.Menu.Item,{disabled:!p.toolbar.action||p.toolbar.action.length===0,icon:e.jsx(B.ThunderboltOutlined,{}),children:m("action")},"action"),e.jsx(h.Menu.Item,{disabled:!p.toolbar.print||p.toolbar.print.length===0,icon:e.jsx(B.PrinterOutlined,{}),children:m("report")},"print"),e.jsx(h.Menu.Divider,{}),e.jsx(h.Menu.ItemGroup,{title:e.jsxs(e.Fragment,{children:[e.jsx(B.EnterOutlined,{})," ",e.jsxs("span",{children:[" ",m("related")]})]}),children:O})]})}function E(O){if(O.key==="action")i(!0);else if(O.key==="print")c(!0);else{const T=p.toolbar.relate.find(H=>H.id===parseInt(O.key));if(!T)return;C({relateData:T,values:g,fields:p.fields,action_id:T.id,action_type:T.type})}}function D(O){i(!1),V==null||V({actionData:O,values:g,fields:p.fields,context:{active_id:r,active_ids:[r]}})}function N(O){c(!1),V==null||V({actionData:{...O,datas:{...O.datas||{},ids:[r]}},values:g,fields:p.fields})}return e.jsxs(e.Fragment,{children:[e.jsx(h.Dropdown,{overlay:b(),trigger:["click"],children:e.jsx(B.RightCircleOutlined,{style:{color:"rgba(0,0,0,.45)"},onClick:O=>{O.preventDefault(),_()}})}),e.jsx(tn,{visible:o,items:(S=p==null?void 0:p.toolbar)==null?void 0:S.action,onItemClicked:D,onCancel:()=>i(!1)}),e.jsx(tn,{visible:a,items:(x=p==null?void 0:p.toolbar)==null?void 0:x.print,onItemClicked:N,onCancel:()=>c(!1)})]})},Xi=t=>{const{m2oField:r}=t;return r?e.jsxs(h.Space,{children:[e.jsx(e.Fragment,{children:r.value}),e.jsx(Qt,{id:r.id,model:r.model})]}):e.jsx(e.Fragment,{})},Qi=t=>{const{value:r,context:n,selectionValues:s}=t,[o,i]=l.useState(),[a,c]=l.useState(!1),[u,f]=r?r.split(","):[],p=parseInt(f),d=l.useCallback(async()=>{if(!r||r&&o)return;c(!0);const y=await W.getHandler().execute({action:"name_get",payload:[p],model:u,context:n});i(y[0][1]),c(!1)},[r,o]);if(l.useEffect(()=>{d()},[r]),!r&&!a)return e.jsx(e.Fragment,{});if(a)return e.jsx(B.LoadingOutlined,{});const g=s.get(u);return e.jsxs(h.Space,{children:[e.jsx(e.Fragment,{children:`${g}:`}),e.jsx(e.Fragment,{children:o}),e.jsx(Qt,{id:p,model:u})]})};var rn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){var n=1e3,s=6e4,o=36e5,i="millisecond",a="second",c="minute",u="hour",f="day",p="week",d="month",g="quarter",y="year",m="date",w="Invalid Date",C=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,V={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var A=["th","st","nd","rd"],M=F%100;return"["+F+(A[(M-20)%10]||A[M]||A[0])+"]"}},_=function(F,A,M){var L=String(F);return!L||L.length>=A?F:""+Array(A+1-L.length).join(M)+F},b={s:_,z:function(F){var A=-F.utcOffset(),M=Math.abs(A),L=Math.floor(M/60),k=M%60;return(A<=0?"+":"-")+_(L,2,"0")+":"+_(k,2,"0")},m:function F(A,M){if(A.date()<M.date())return-F(M,A);var L=12*(M.year()-A.year())+(M.month()-A.month()),k=A.clone().add(L,d),I=M-k<0,K=A.clone().add(L+(I?-1:1),d);return+(-(L+(M-k)/(I?k-K:K-k))||0)},a:function(F){return F<0?Math.ceil(F)||0:Math.floor(F)},p:function(F){return{M:d,y,w:p,d:f,D:m,h:u,m:c,s:a,ms:i,Q:g}[F]||String(F||"").toLowerCase().replace(/s$/,"")},u:function(F){return F===void 0}},E="en",D={};D[E]=V;var N=function(F){return F instanceof T},S=function F(A,M,L){var k;if(!A)return E;if(typeof A=="string"){var I=A.toLowerCase();D[I]&&(k=I),M&&(D[I]=M,k=I);var K=A.split("-");if(!k&&K.length>1)return F(K[0])}else{var q=A.name;D[q]=A,k=q}return!L&&k&&(E=k),k||!L&&E},x=function(F,A){if(N(F))return F.clone();var M=typeof A=="object"?A:{};return M.date=F,M.args=arguments,new T(M)},O=b;O.l=S,O.i=N,O.w=function(F,A){return x(F,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var T=function(){function F(M){this.$L=S(M.locale,null,!0),this.parse(M)}var A=F.prototype;return A.parse=function(M){this.$d=function(L){var k=L.date,I=L.utc;if(k===null)return new Date(NaN);if(O.u(k))return new Date;if(k instanceof Date)return new Date(k);if(typeof k=="string"&&!/Z$/i.test(k)){var K=k.match(C);if(K){var q=K[2]-1||0,z=(K[7]||"0").substring(0,3);return I?new Date(Date.UTC(K[1],q,K[3]||1,K[4]||0,K[5]||0,K[6]||0,z)):new Date(K[1],q,K[3]||1,K[4]||0,K[5]||0,K[6]||0,z)}}return new Date(k)}(M),this.$x=M.x||{},this.init()},A.init=function(){var M=this.$d;this.$y=M.getFullYear(),this.$M=M.getMonth(),this.$D=M.getDate(),this.$W=M.getDay(),this.$H=M.getHours(),this.$m=M.getMinutes(),this.$s=M.getSeconds(),this.$ms=M.getMilliseconds()},A.$utils=function(){return O},A.isValid=function(){return this.$d.toString()!==w},A.isSame=function(M,L){var k=x(M);return this.startOf(L)<=k&&k<=this.endOf(L)},A.isAfter=function(M,L){return x(M)<this.startOf(L)},A.isBefore=function(M,L){return this.endOf(L)<x(M)},A.$g=function(M,L,k){return O.u(M)?this[L]:this.set(k,M)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(M,L){var k=this,I=!!O.u(L)||L,K=O.p(M),q=function(le,ce){var re=O.w(k.$u?Date.UTC(k.$y,ce,le):new Date(k.$y,ce,le),k);return I?re:re.endOf(f)},z=function(le,ce){return O.w(k.toDate()[le].apply(k.toDate("s"),(I?[0,0,0,0]:[23,59,59,999]).slice(ce)),k)},Y=this.$W,Z=this.$M,J=this.$D,$="set"+(this.$u?"UTC":"");switch(K){case y:return I?q(1,0):q(31,11);case d:return I?q(1,Z):q(0,Z+1);case p:var P=this.$locale().weekStart||0,ee=(Y<P?Y+7:Y)-P;return q(I?J-ee:J+(6-ee),Z);case f:case m:return z($+"Hours",0);case u:return z($+"Minutes",1);case c:return z($+"Seconds",2);case a:return z($+"Milliseconds",3);default:return this.clone()}},A.endOf=function(M){return this.startOf(M,!1)},A.$set=function(M,L){var k,I=O.p(M),K="set"+(this.$u?"UTC":""),q=(k={},k[f]=K+"Date",k[m]=K+"Date",k[d]=K+"Month",k[y]=K+"FullYear",k[u]=K+"Hours",k[c]=K+"Minutes",k[a]=K+"Seconds",k[i]=K+"Milliseconds",k)[I],z=I===f?this.$D+(L-this.$W):L;if(I===d||I===y){var Y=this.clone().set(m,1);Y.$d[q](z),Y.init(),this.$d=Y.set(m,Math.min(this.$D,Y.daysInMonth())).$d}else q&&this.$d[q](z);return this.init(),this},A.set=function(M,L){return this.clone().$set(M,L)},A.get=function(M){return this[O.p(M)]()},A.add=function(M,L){var k,I=this;M=Number(M);var K=O.p(L),q=function(Z){var J=x(I);return O.w(J.date(J.date()+Math.round(Z*M)),I)};if(K===d)return this.set(d,this.$M+M);if(K===y)return this.set(y,this.$y+M);if(K===f)return q(1);if(K===p)return q(7);var z=(k={},k[c]=s,k[u]=o,k[a]=n,k)[K]||1,Y=this.$d.getTime()+M*z;return O.w(Y,this)},A.subtract=function(M,L){return this.add(-1*M,L)},A.format=function(M){var L=this,k=this.$locale();if(!this.isValid())return k.invalidDate||w;var I=M||"YYYY-MM-DDTHH:mm:ssZ",K=O.z(this),q=this.$H,z=this.$m,Y=this.$M,Z=k.weekdays,J=k.months,$=function(ce,re,X,ye){return ce&&(ce[re]||ce(L,I))||X[re].slice(0,ye)},P=function(ce){return O.s(q%12||12,ce,"0")},ee=k.meridiem||function(ce,re,X){var ye=ce<12?"AM":"PM";return X?ye.toLowerCase():ye},le={YY:String(this.$y).slice(-2),YYYY:O.s(this.$y,4,"0"),M:Y+1,MM:O.s(Y+1,2,"0"),MMM:$(k.monthsShort,Y,J,3),MMMM:$(J,Y),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:$(k.weekdaysMin,this.$W,Z,2),ddd:$(k.weekdaysShort,this.$W,Z,3),dddd:Z[this.$W],H:String(q),HH:O.s(q,2,"0"),h:P(1),hh:P(2),a:ee(q,z,!0),A:ee(q,z,!1),m:String(z),mm:O.s(z,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:K};return I.replace(v,function(ce,re){return re||le[ce]||K.replace(":","")})},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(M,L,k){var I,K=O.p(L),q=x(M),z=(q.utcOffset()-this.utcOffset())*s,Y=this-q,Z=O.m(this,q);return Z=(I={},I[y]=Z/12,I[d]=Z,I[g]=Z/3,I[p]=(Y-z)/6048e5,I[f]=(Y-z)/864e5,I[u]=Y/o,I[c]=Y/s,I[a]=Y/n,I)[K]||Y,k?Z:O.a(Z)},A.daysInMonth=function(){return this.endOf(d).$D},A.$locale=function(){return D[this.$L]},A.locale=function(M,L){if(!M)return this.$L;var k=this.clone(),I=S(M,L,!0);return I&&(k.$L=I),k},A.clone=function(){return O.w(this.$d,this)},A.toDate=function(){return new Date(this.valueOf())},A.toJSON=function(){return this.isValid()?this.toISOString():null},A.toISOString=function(){return this.$d.toISOString()},A.toString=function(){return this.$d.toUTCString()},F}(),H=T.prototype;return x.prototype=H,[["$ms",i],["$s",a],["$m",c],["$H",u],["$W",f],["$M",d],["$y",y],["$D",m]].forEach(function(F){H[F[1]]=function(A){return this.$g(A,F[0],F[1])}}),x.extend=function(F,A){return F.$i||(F(A,T,x),F.$i=!0),x},x.locale=S,x.isDayjs=N,x.unix=function(F){return x(1e3*F)},x.en=D[E],x.Ls=D,x.p={},x})})(rn);const et=rn.exports,Ri=t=>{console.log("Avatar Props",t);const{ooui:r,value:n}=t;if(!n)return null;let s=n;r.selectionValues.size?s=r.selectionValues.get(n):Array.isArray(n)&&(s=n[1]);const o=s.toString().split(" ").filter(a=>a.length>1).slice(0,3).map(a=>a[0].toUpperCase()).join(""),i=zt(s);return e.jsx(h.Tooltip,{title:s,children:e.jsx(h.Avatar,{alt:s,style:{backgroundColor:i},children:o})})};var nn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){return function(n,s){s.prototype.weekday=function(o){var i=this.$locale().weekStart||0,a=this.$W,c=(a<i?a+7:a)-i;return this.$utils().u(o)?c:this.subtract(c,"day").add(o,"day")}}})})(nn);const ea=nn.exports;var on={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){return function(n,s,o){var i=s.prototype,a=function(d){return d&&(d.indexOf?d:d.s)},c=function(d,g,y,m,w){var C=d.name?d:d.$locale(),v=a(C[g]),V=a(C[y]),_=v||V.map(function(E){return E.slice(0,m)});if(!w)return _;var b=C.weekStart;return _.map(function(E,D){return _[(D+(b||0))%7]})},u=function(){return o.Ls[o.locale()]},f=function(d,g){return d.formats[g]||function(y){return y.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(m,w,C){return w||C.slice(1)})}(d.formats[g.toUpperCase()])},p=function(){var d=this;return{months:function(g){return g?g.format("MMMM"):c(d,"months")},monthsShort:function(g){return g?g.format("MMM"):c(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(g){return g?g.format("dddd"):c(d,"weekdays")},weekdaysMin:function(g){return g?g.format("dd"):c(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(g){return g?g.format("ddd"):c(d,"weekdaysShort","weekdays",3)},longDateFormat:function(g){return f(d.$locale(),g)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return p.bind(this)()},o.localeData=function(){var d=u();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(g){return f(d,g)},meridiem:d.meridiem,ordinal:d.ordinal}},o.months=function(){return c(u(),"months")},o.monthsShort=function(){return c(u(),"monthsShort","months",3)},o.weekdays=function(d){return c(u(),"weekdays",null,null,d)},o.weekdaysShort=function(d){return c(u(),"weekdaysShort","weekdays",3,d)},o.weekdaysMin=function(d){return c(u(),"weekdaysMin","weekdays",2,d)}}})})(on);const ta=on.exports,{useToken:ra}=h.theme;et.extend(ea),et.extend(ta);const Ze={date:{placeholder:"__/__/____",dateDisplayFormat:"DD/MM/YYYY",dateInternalFormat:"YYYY-MM-DD"},time:{placeholder:"__/__/____ __:__:__",dateDisplayFormat:"DD/MM/YYYY HH:mm:ss",dateInternalFormat:"YYYY-MM-DD HH:mm:ss"}},sn=t=>{const{ooui:r,showTime:n=!1}=t,{required:s}=r;return e.jsx(ge,{required:s,...t,children:e.jsx(na,{ooui:r,showTime:n})})},na=t=>{const{value:r,onChange:n,ooui:s,showTime:o}=t,{id:i,readOnly:a,required:c}=s,{token:u}=ra(),f=c&&!a?{backgroundColor:u.colorPrimaryBg}:void 0,p=o?"time":"date",d=m=>{n==null||n(m)},g=m=>{if(m===null){d(void 0);return}d(m.format(Ze[p].dateInternalFormat))},y=r?et(r,Ze[p].dateInternalFormat):void 0;return e.jsx(h.DatePicker,{style:{width:"100%",...f},placeholder:o?Ze.time.placeholder:Ze.date.placeholder,disabled:a,id:i,picker:"date",showTime:o,format:Ze[p].dateDisplayFormat,value:y,onChange:g})},oa=t=>e.jsx("div",{style:{display:"flex",justifyContent:"center",alignContent:"center"},children:e.jsx(h.Checkbox,{checked:t,disabled:!0})}),sa=t=>e.jsx(Xi,{m2oField:t}),ia=t=>e.jsx(Pt.Interweave,{content:t==null?void 0:t.replace(/(?:\r\n|\r|\n)/g,"<br>")}),aa=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=et(t,Ze.date.dateInternalFormat).format(Ze.date.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},la=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=et(t,Ze.time.dateInternalFormat).format(Ze.time.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},an=t=>{const r=Array.isArray(t==null?void 0:t.items)?t==null?void 0:t.items.length:0;return e.jsx(e.Fragment,{children:`( ${r} )`})},ca=t=>e.jsx(en,{value:t}),da=t=>e.jsx(e.Fragment,{children:Qr(t)}),ln=t=>e.jsx("div",{style:{textAlign:"right"},children:t}),ua=t=>e.jsx("img",{src:`data:image/*;base64,${t}`,style:{maxWidth:"50px",padding:"5px"}}),fa=(t,r,n,s)=>e.jsx(e.Fragment,{children:t?e.jsx(h.Tag,{color:n.colors[t],children:n.selectionValues.get(t)}):null}),ha=(t,r,n,s)=>e.jsx(e.Fragment,{children:n.selectionValues.get(t)}),pa=(t,r,n,s)=>e.jsx(e.Fragment,{children:e.jsx(Qi,{value:t,selectionValues:n.selectionValues,context:s})}),ga=(t,r,n,s)=>e.jsx(Ri,{ooui:n,value:t});function Ct(t){const{page:r=1,limit:n,total:s,treeView:o,results:i,onRequestPageChange:a,loading:c,onRowClicked:u,showPagination:f=!0,rowSelection:p,scrollY:d,colorsForResults:g={},onChangeSort:y,sorter:m,onFetchChildrenForRecord:w,childField:C,rootTree:v=!1,context:V}=t,[_,b]=l.useState([]),[E,D]=l.useState([]),N=l.useRef(!1),S=l.useRef(null),{t:x}=l.useContext(pe),O=l.useRef(n),T=l.useContext(Be),{title:H=void 0,setTitle:F=void 0}=(v?T:{})||{};l.useEffect(()=>{S.current=ot(o);const z=Ys(S.current,{boolean:oa,many2one:sa,text:ia,one2many:an,many2many:an,progressbar:ca,float_time:da,image:ua,integer:ln,float:ln,reference:pa,tag:fa,selection:ha,date:aa,datetime:la,avatar:ga},V);D(z),S.current.string&&H!==S.current.string&&(F==null||F(S.current.string))},[o]),l.useEffect(()=>{N.current=!1;const z=Kr(S.current,i);b(z),O.current=n},[i]);const A=(r-1)*O.current+1,M=A-1+_.length,L=s===void 0?null:s===0?x("no_results"):x("summary").replace("{from}",A==null?void 0:A.toString()).replace("{to}",M==null?void 0:M.toString()).replace("{total}",s==null?void 0:s.toString()),k=()=>!f||o.isExpandable||c?null:s===void 0?e.jsx(h.Spin,{className:"pb-4"}):e.jsxs(h.Row,{align:"bottom",className:"pb-4",children:[e.jsx(h.Col,{span:12,children:e.jsx(h.Pagination,{total:s,pageSize:O.current===0?s:O.current,current:r,showSizeChanger:!1,onChange:a})}),e.jsx(h.Col,{span:12,className:"text-right",children:L})]});function I(){var $;const Y=S.current.columns.filter(P=>P.sum!==void 0).map(P=>({label:P.sum,field:P.id}));if(!Y||Y.length===0)return null;let Z=[],J=(($=p==null?void 0:p.selectedRowKeys)==null?void 0:$.length)>0?_.filter(P=>p==null?void 0:p.selectedRowKeys.includes(P.id)):_;return Y.forEach(P=>{const ee=J.reduce((le,ce)=>ce[P.field]&&!isNaN(ce[P.field])?le+ce[P.field]:le,0);Z.push(`${P.label}: ${Math.round(ee*100)/100}`)}),e.jsx("div",{className:"p-1 pb-0 pl-2 mt-2 ",children:Z.join(", ")})}let K,q=d;if(S.current!==null){K=zi(E,_,600);const Y=S.current;d&&Y.columns.some(Z=>Z.sum!==void 0)&&(q=d-30)}return S.current===null?e.jsx(h.Spin,{style:{padding:"2rem"}}):e.jsxs("div",{children:[k(),e.jsx(ro.Table,{height:q,columns:K.columns,dataSource:_,loading:c,loadingComponent:e.jsx(h.Spin,{}),onRowStyle:z=>{if(g[z.id])return{color:g[z.id]}},onRowDoubleClick:u,onRowSelectionChange:p==null?void 0:p.onChange,onChangeSort:y,sorter:m,expandableOpts:w?{expandIcon:B.PlusSquareOutlined,collapseIcon:B.MinusSquareOutlined,loadingIcon:B.LoadingOutlined,onFetchChildrenForRecord:w,childField:C}:void 0}),I()]})}function ma(t,r){const{model:n,formView:s,treeView:o,onRowClicked:i,nameSearch:a,treeScrollY:c,domain:u=[],visible:f=!0,rootTree:p=!1,parentContext:d={},onChangeSelectedRowKeys:g}=t,[y,m]=l.useState(!1),[w,C]=l.useState(!1),v=l.useRef(!1),[V,_]=l.useState(),[b,E]=l.useState(),[D,N]=l.useState(),[S,x]=l.useState(),[O,T]=l.useState(200),H=l.useRef(),{height:F}=xt(),A=l.useContext(lt),{processAction:M}=A||{},L=l.useContext(Be),{setResults:k=void 0,setCurrentItemIndex:I=void 0,currentId:K=void 0,results:q=void 0,selectedRowItems:z=void 0,setSelectedRowItems:Y=void 0,searchParams:Z=[],setSearchParams:J=void 0,searchVisible:$=!0,setSearchVisible:P=void 0,sorter:ee=void 0,setSorter:le=void 0,setTotalItems:ce=void 0,setSearchTreeNameSearch:re=void 0,setTreeIsLoading:X=void 0,searchValues:ye={},setSearchValues:Ce=void 0,limit:Ee=wt,setLimit:fe=void 0}=(p?L:{})||{},{submit:oe,clear:Se,fetchResults:me,tableRefreshing:xe,searchFilterLoading:Me,searchError:ke,page:He,offset:Ie,getResults:R,requestPageChange:de,changeSort:we,fetchChildrenForRecord:Ve,colorsForResults:ae,totalItems:Fe}=zr({model:V,setSearchTreeNameSearch:re,setSelectedRowItems:Y,setSearchParams:J,setSearchValues:Ce,searchParams:Z,setSearchVisible:P,setTreeIsLoading:X,nameSearch:a,searchNameGetDoneRef:v,context:d,formView:D,treeView:b,sorter:ee,setSorter:le,setCurrentItemIndex:I,setResultsActionView:k,resultsActionView:q,domain:u,currentId:K,setActionViewTotalItems:ce,limit:Ee,setLimit:fe});l.useImperativeHandle(r,()=>({refreshResults:()=>{v.current=!1,me()},getFields:()=>b==null?void 0:b.fields,getDomain:()=>u})),l.useEffect(()=>{!w||f&&(v.current=!1,me())},[He,Ie,w,f,a]);const De=async()=>{C(!1),m(!0),x(void 0),X==null||X(!0);try{await Ge(),C(!0)}catch(he){x(he)}finally{m(!1),X==null||X(!1)}},Ge=async()=>{_(n);let he=s;s||(he=await W.getHandler().getView({model:n,type:"form",context:d}));let $e=o;o||($e=await W.getHandler().getView({model:n,type:"tree",context:d})),N(he),E($e)};l.useEffect(()=>{De()},[n]);const Ke=he=>{fe==null||fe(he)},Ue=async he=>{const{id:$e}=he;H.current||(H.current=await W.getHandler().treeButOpen({id:b.view_id,model:V,context:d}));const je=H.current[0][2];await(M==null?void 0:M({actionData:je,fields:b.fields,values:{active_id:$e,...he},context:d}))},Q=async he=>{const{id:$e}=he;if(b!=null&&b.isExpandable){try{await Ue(he)}catch(je){Ae(je)}return}i({id:$e,model:V,formView:D,treeView:b})};function ue(he){const $e=R().filter(je=>he.includes(je.id));Y==null||Y($e),g==null||g(he)}function Te(){return b!=null&&b.isExpandable?F-160:F-(O+210)}const ie=()=>!b||!D?null:e.jsxs(e.Fragment,{children:[e.jsx(Xt,{fields:{...b.fields,...D.fields},searchFields:Wr([D.search_fields,b.search_fields]),formXml:D.arch,onClear:Se,limit:Ee,offset:Ie,isSearching:Me,onSubmit:oe,onLimitChange:Ke,setSearchFilterHeight:T,searchError:ke,searchVisible:$,searchValues:ye}),e.jsx(Ct,{context:d,total:Fe,limit:Ee,page:He,treeView:b,results:R(),onRequestPageChange:de,loading:xe,onRowClicked:Q,scrollY:c||Te(),colorsForResults:ae,rowSelection:{selectedRowKeys:z==null?void 0:z.map(he=>he.id),onChange:ue},sorter:ee,onChangeSort:we,onFetchChildrenForRecord:b.isExpandable?Ve:void 0,childField:b.field_parent,rootTree:p})]}),ve=S||ke;return ve?e.jsx(h.Alert,{className:"mt-10",message:ve,type:"error",banner:!0}):e.jsx("div",{style:f?{}:{display:"none"},children:y?e.jsx(h.Spin,{}):ie()})}const Rt=l.forwardRef(ma),er=t=>{const{visible:r,onCloseModal:n,onSelectValues:s,model:o,nameSearch:i,domain:a,context:c={}}=t,[u,f]=l.useState(!1),{modalWidth:p,modalHeight:d}=xt(),{t:g}=l.useContext(pe),[y,m]=l.useState([]),w=async()=>{await new Promise(_=>setTimeout(_,5)),n()},C=async _=>{const{id:b}=_;s([b])};function v(){if(y.length===0){w();return}s(y)}const V=()=>e.jsxs(e.Fragment,{children:[e.jsx(Rt,{model:o,nameSearch:i,onRowClicked:C,treeScrollY:d*.3,domain:a,parentContext:c,onChangeSelectedRowKeys:_=>{m(_)}}),e.jsx(h.Divider,{}),e.jsx(h.Row,{justify:"end",children:e.jsxs(h.Space,{children:[e.jsx(h.Button,{icon:e.jsx(B.FileAddOutlined,{}),onClick:()=>{f(!0)},children:g("new")}),e.jsx(h.Button,{icon:e.jsx(B.CheckOutlined,{}),onClick:()=>{v()},type:"primary",children:g("ok")}),e.jsx(h.Button,{icon:e.jsx(B.CloseOutlined,{}),onClick:w,children:g("cancel")})]})})]});return e.jsxs(e.Fragment,{children:[e.jsx(h.Modal,{title:g("search"),centered:!0,width:p,open:r&&!u,closable:!0,onCancel:w,footer:null,destroyOnClose:!0,maskClosable:!1,children:V()}),e.jsx(dt,{model:o,visible:u,parentContext:c,onSubmitSucceed:_=>{f(!1),w(),s([_])},onCancel:()=>{f(!1),w()}})]})},{error:ya}=h.Modal,_t=t=>{ya({title:"Error",icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:t})},{defaultAlgorithm:wa,defaultSeed:va}=h.theme,cn=wa(va),dn=t=>{const{ooui:r}=t,{required:n}=r,s=async(o,i)=>{if(!i)throw new Error;if(!Array.isArray(i))throw new Error;if(Array.isArray(i)&&!i[0])throw new Error};return e.jsx(ge,{required:n,type:"array",validator:s,...t,children:e.jsx(un,{ooui:r})})},un=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,relation:i,readOnly:a,context:c,id:u,domain:f}=s,p=o&&!a?{backgroundColor:cn.colorPrimaryBg}:void 0,[d,g]=l.useState(!1),[y,m]=l.useState(!1),[w,C]=l.useState(!1),[v,V]=l.useState(),_=l.useRef(!1),[b,E]=l.useState(""),D=l.useRef(),N=l.useContext(_e),{domain:S,getValues:x,getFields:O,getContext:T,elementHasLostFocus:H}=N||{},F=l.useRef([]),[A,M]=l.useState([]),L=r&&r[0]||void 0,k=r&&r[1]||"";l.useEffect(()=>{!Array.isArray(r)&&r&&Y(r)},[r]),l.useEffect(()=>{L&&k.length===0?Y(L):L&&k.length>0?E(k):!L&&!k&&E(D.current||"")},[r]);const I=P=>{n==null||n(P),H==null||H()},K=P=>{D.current=P.target.value,I([void 0,""])},q=async()=>{if(!w&&b!==k){if(await new Promise(P=>setTimeout(P,100)),_.current){I([void 0,""]);return}C(!0);try{if(F.current&&F.current.length>0)z(D.current);else{const P=await W.getHandler().nameSearch({model:i,payload:D.current,context:{...T==null?void 0:T(),...c}});P.length===1?(D.current=void 0,I(P[0])):z(D.current)}}catch(P){_t(P)}finally{C(!1)}}},z=async P=>{if(await Z(),F.current&&F.current.length>0){const ee=await W.getHandler().searchAllIds({params:F.current,model:i,context:{...T==null?void 0:T(),...c},totalItems:2});ee.length===1?Y(ee[0]):(V(P),g(!0));return}V(P),g(!0)},Y=async P=>{C(!0);try{const ee=await W.getHandler().execute({action:"name_get",payload:[P],model:i,context:{...T==null?void 0:T(),...c}});I([P,ee[0][1]])}catch(ee){_t(ee)}finally{C(!1)}};async function Z(){f&&(F.current=await W.getHandler().evalDomain({domain:f,values:at({fields:O(),values:x()}),fields:O(),context:T()})),S&&S.length>0&&(F.current=F.current.concat(se.transformDomainForChildWidget({domain:S,widgetFieldName:u}))),M(F.current)}async function J(P){P.keyCode===13?(P.preventDefault(),P.stopPropagation(),await q()):P.code==="Backspace"&&L!==void 0&&(P.preventDefault(),P.stopPropagation(),I([void 0,""]))}const $=o&&!a?Ca:h.Input;return e.jsxs(h.Row,{gutter:8,wrap:!1,children:[e.jsx(h.Col,{flex:"auto",children:e.jsx($,{type:"text",value:b,disabled:a,onChange:K,style:p,onBlur:q,onKeyDown:J,suffix:e.jsx(Qt,{id:L,model:i,context:{...T==null?void 0:T(),...c}})})}),e.jsx(h.Col,{flex:"32px",style:{paddingRight:0},children:e.jsx(h.Button,{icon:e.jsx(B.FolderOpenOutlined,{}),disabled:L===void 0||k===""||b===void 0,onClick:()=>{m(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(h.Col,{flex:"32px",style:{paddingLeft:0},children:e.jsx(h.Button,{icon:w?e.jsx(B.LoadingOutlined,{}):e.jsx(B.SearchOutlined,{}),disabled:a||w,onClick:()=>{_.current=!0,z(k)},style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},tabIndex:-1})}),e.jsx(er,{model:i,domain:A,context:{...T==null?void 0:T(),...c},visible:d,nameSearch:L?void 0:v,onSelectValues:P=>{g(!1),Y(P[0]),_.current=!1,D.current=void 0},onCloseModal:()=>{g(!1),_.current=!1}}),e.jsx(dt,{model:i,parentContext:{...T==null?void 0:T(),...c},id:r&&r[0],visible:y,onSubmitSucceed:P=>{m(!1),Y(P)},onCancel:()=>{m(!1)},mustClearAfterSave:!0,readOnly:a})]})},Ca=pt.default(h.Input)`
|
|
31
|
+
`,tn=t=>{const{visible:r,onCancel:n,items:s=[],onItemClicked:o}=t,{t:i}=l.useContext(pe);return e.jsx(h.Modal,{title:i("selectAction"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:n,maskClosable:!1,children:e.jsx(h.Space,{direction:"vertical",className:"w-full",children:s.map(a=>e.jsx(h.Button,{className:"w-full",onClick:()=>{o(a)},children:a.name}))})})},Qt=t=>{var S,x;const{id:r,model:n,context:s={}}=t,[o,i]=l.useState(!1),[a,c]=l.useState(!1),[u,f]=l.useState(!1),[p,d]=l.useState(),[g,y]=l.useState(),{t:m}=l.useContext(pe),w=l.useContext(Ye),{openRelate:C}=w||{},v=l.useContext(lt),{processAction:V}=v||{};if(!r)return null;async function _(){f(!0);try{const O=await W.getHandler().getView({model:n,type:"form",context:s});d(O);const{fields:T,arch:H}=O,F=(await W.getHandler().readObjects({model:n,ids:[r],fields:T,context:s}))[0];y({...it(F,T),active_id:r}),f(!1)}catch(O){f(!1),Ae(O);return}}function b(){var T;if(u)return e.jsx(h.Menu,{children:e.jsx("div",{style:{padding:15},children:e.jsx(h.Spin,{})})});if(!p||!p.toolbar)return e.jsx(h.Menu,{});const O=(T=p==null?void 0:p.toolbar)==null?void 0:T.relate.map(H=>e.jsx(h.Menu.Item,{children:H.name},H.id));return e.jsx(h.Menu,{onClick:E,children:[e.jsx(h.Menu.Item,{disabled:!p.toolbar.action||p.toolbar.action.length===0,icon:e.jsx(B.ThunderboltOutlined,{}),children:m("action")},"action"),e.jsx(h.Menu.Item,{disabled:!p.toolbar.print||p.toolbar.print.length===0,icon:e.jsx(B.PrinterOutlined,{}),children:m("report")},"print"),e.jsx(h.Menu.Divider,{}),e.jsx(h.Menu.ItemGroup,{title:e.jsxs(e.Fragment,{children:[e.jsx(B.EnterOutlined,{})," ",e.jsxs("span",{children:[" ",m("related")]})]}),children:O})]})}function E(O){if(O.key==="action")i(!0);else if(O.key==="print")c(!0);else{const T=p.toolbar.relate.find(H=>H.id===parseInt(O.key));if(!T)return;C({relateData:T,values:g,fields:p.fields,action_id:T.id,action_type:T.type})}}function D(O){i(!1),V==null||V({actionData:O,values:g,fields:p.fields,context:{active_id:r,active_ids:[r]}})}function N(O){c(!1),V==null||V({actionData:{...O,datas:{...O.datas||{},ids:[r]}},values:g,fields:p.fields})}return e.jsxs(e.Fragment,{children:[e.jsx(h.Dropdown,{overlay:b(),trigger:["click"],children:e.jsx(B.RightCircleOutlined,{style:{color:"rgba(0,0,0,.45)"},onClick:O=>{O.preventDefault(),_()}})}),e.jsx(tn,{visible:o,items:(S=p==null?void 0:p.toolbar)==null?void 0:S.action,onItemClicked:D,onCancel:()=>i(!1)}),e.jsx(tn,{visible:a,items:(x=p==null?void 0:p.toolbar)==null?void 0:x.print,onItemClicked:N,onCancel:()=>c(!1)})]})},Xi=t=>{const{m2oField:r}=t;return r?e.jsxs(h.Space,{children:[e.jsx(e.Fragment,{children:r.value}),e.jsx(Qt,{id:r.id,model:r.model})]}):e.jsx(e.Fragment,{})},Qi=t=>{const{value:r,context:n,selectionValues:s}=t,[o,i]=l.useState(),[a,c]=l.useState(!1),[u,f]=r?r.split(","):[],p=parseInt(f),d=l.useCallback(async()=>{if(!r||r&&o)return;c(!0);const y=await W.getHandler().execute({action:"name_get",payload:[p],model:u,context:n});i(y[0][1]),c(!1)},[r,o]);if(l.useEffect(()=>{d()},[r]),!r&&!a)return e.jsx(e.Fragment,{});if(a)return e.jsx(B.LoadingOutlined,{});const g=s.get(u);return e.jsxs(h.Space,{children:[e.jsx(e.Fragment,{children:`${g}:`}),e.jsx(e.Fragment,{children:o}),e.jsx(Qt,{id:p,model:u})]})};var rn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){var n=1e3,s=6e4,o=36e5,i="millisecond",a="second",c="minute",u="hour",f="day",p="week",d="month",g="quarter",y="year",m="date",w="Invalid Date",C=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,V={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var A=["th","st","nd","rd"],M=F%100;return"["+F+(A[(M-20)%10]||A[M]||A[0])+"]"}},_=function(F,A,M){var L=String(F);return!L||L.length>=A?F:""+Array(A+1-L.length).join(M)+F},b={s:_,z:function(F){var A=-F.utcOffset(),M=Math.abs(A),L=Math.floor(M/60),k=M%60;return(A<=0?"+":"-")+_(L,2,"0")+":"+_(k,2,"0")},m:function F(A,M){if(A.date()<M.date())return-F(M,A);var L=12*(M.year()-A.year())+(M.month()-A.month()),k=A.clone().add(L,d),I=M-k<0,K=A.clone().add(L+(I?-1:1),d);return+(-(L+(M-k)/(I?k-K:K-k))||0)},a:function(F){return F<0?Math.ceil(F)||0:Math.floor(F)},p:function(F){return{M:d,y,w:p,d:f,D:m,h:u,m:c,s:a,ms:i,Q:g}[F]||String(F||"").toLowerCase().replace(/s$/,"")},u:function(F){return F===void 0}},E="en",D={};D[E]=V;var N=function(F){return F instanceof T},S=function F(A,M,L){var k;if(!A)return E;if(typeof A=="string"){var I=A.toLowerCase();D[I]&&(k=I),M&&(D[I]=M,k=I);var K=A.split("-");if(!k&&K.length>1)return F(K[0])}else{var q=A.name;D[q]=A,k=q}return!L&&k&&(E=k),k||!L&&E},x=function(F,A){if(N(F))return F.clone();var M=typeof A=="object"?A:{};return M.date=F,M.args=arguments,new T(M)},O=b;O.l=S,O.i=N,O.w=function(F,A){return x(F,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var T=function(){function F(M){this.$L=S(M.locale,null,!0),this.parse(M)}var A=F.prototype;return A.parse=function(M){this.$d=function(L){var k=L.date,I=L.utc;if(k===null)return new Date(NaN);if(O.u(k))return new Date;if(k instanceof Date)return new Date(k);if(typeof k=="string"&&!/Z$/i.test(k)){var K=k.match(C);if(K){var q=K[2]-1||0,z=(K[7]||"0").substring(0,3);return I?new Date(Date.UTC(K[1],q,K[3]||1,K[4]||0,K[5]||0,K[6]||0,z)):new Date(K[1],q,K[3]||1,K[4]||0,K[5]||0,K[6]||0,z)}}return new Date(k)}(M),this.$x=M.x||{},this.init()},A.init=function(){var M=this.$d;this.$y=M.getFullYear(),this.$M=M.getMonth(),this.$D=M.getDate(),this.$W=M.getDay(),this.$H=M.getHours(),this.$m=M.getMinutes(),this.$s=M.getSeconds(),this.$ms=M.getMilliseconds()},A.$utils=function(){return O},A.isValid=function(){return this.$d.toString()!==w},A.isSame=function(M,L){var k=x(M);return this.startOf(L)<=k&&k<=this.endOf(L)},A.isAfter=function(M,L){return x(M)<this.startOf(L)},A.isBefore=function(M,L){return this.endOf(L)<x(M)},A.$g=function(M,L,k){return O.u(M)?this[L]:this.set(k,M)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(M,L){var k=this,I=!!O.u(L)||L,K=O.p(M),q=function(le,ce){var re=O.w(k.$u?Date.UTC(k.$y,ce,le):new Date(k.$y,ce,le),k);return I?re:re.endOf(f)},z=function(le,ce){return O.w(k.toDate()[le].apply(k.toDate("s"),(I?[0,0,0,0]:[23,59,59,999]).slice(ce)),k)},Y=this.$W,Z=this.$M,J=this.$D,$="set"+(this.$u?"UTC":"");switch(K){case y:return I?q(1,0):q(31,11);case d:return I?q(1,Z):q(0,Z+1);case p:var P=this.$locale().weekStart||0,ee=(Y<P?Y+7:Y)-P;return q(I?J-ee:J+(6-ee),Z);case f:case m:return z($+"Hours",0);case u:return z($+"Minutes",1);case c:return z($+"Seconds",2);case a:return z($+"Milliseconds",3);default:return this.clone()}},A.endOf=function(M){return this.startOf(M,!1)},A.$set=function(M,L){var k,I=O.p(M),K="set"+(this.$u?"UTC":""),q=(k={},k[f]=K+"Date",k[m]=K+"Date",k[d]=K+"Month",k[y]=K+"FullYear",k[u]=K+"Hours",k[c]=K+"Minutes",k[a]=K+"Seconds",k[i]=K+"Milliseconds",k)[I],z=I===f?this.$D+(L-this.$W):L;if(I===d||I===y){var Y=this.clone().set(m,1);Y.$d[q](z),Y.init(),this.$d=Y.set(m,Math.min(this.$D,Y.daysInMonth())).$d}else q&&this.$d[q](z);return this.init(),this},A.set=function(M,L){return this.clone().$set(M,L)},A.get=function(M){return this[O.p(M)]()},A.add=function(M,L){var k,I=this;M=Number(M);var K=O.p(L),q=function(Z){var J=x(I);return O.w(J.date(J.date()+Math.round(Z*M)),I)};if(K===d)return this.set(d,this.$M+M);if(K===y)return this.set(y,this.$y+M);if(K===f)return q(1);if(K===p)return q(7);var z=(k={},k[c]=s,k[u]=o,k[a]=n,k)[K]||1,Y=this.$d.getTime()+M*z;return O.w(Y,this)},A.subtract=function(M,L){return this.add(-1*M,L)},A.format=function(M){var L=this,k=this.$locale();if(!this.isValid())return k.invalidDate||w;var I=M||"YYYY-MM-DDTHH:mm:ssZ",K=O.z(this),q=this.$H,z=this.$m,Y=this.$M,Z=k.weekdays,J=k.months,$=function(ce,re,X,ye){return ce&&(ce[re]||ce(L,I))||X[re].slice(0,ye)},P=function(ce){return O.s(q%12||12,ce,"0")},ee=k.meridiem||function(ce,re,X){var ye=ce<12?"AM":"PM";return X?ye.toLowerCase():ye},le={YY:String(this.$y).slice(-2),YYYY:O.s(this.$y,4,"0"),M:Y+1,MM:O.s(Y+1,2,"0"),MMM:$(k.monthsShort,Y,J,3),MMMM:$(J,Y),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:$(k.weekdaysMin,this.$W,Z,2),ddd:$(k.weekdaysShort,this.$W,Z,3),dddd:Z[this.$W],H:String(q),HH:O.s(q,2,"0"),h:P(1),hh:P(2),a:ee(q,z,!0),A:ee(q,z,!1),m:String(z),mm:O.s(z,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:K};return I.replace(v,function(ce,re){return re||le[ce]||K.replace(":","")})},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(M,L,k){var I,K=O.p(L),q=x(M),z=(q.utcOffset()-this.utcOffset())*s,Y=this-q,Z=O.m(this,q);return Z=(I={},I[y]=Z/12,I[d]=Z,I[g]=Z/3,I[p]=(Y-z)/6048e5,I[f]=(Y-z)/864e5,I[u]=Y/o,I[c]=Y/s,I[a]=Y/n,I)[K]||Y,k?Z:O.a(Z)},A.daysInMonth=function(){return this.endOf(d).$D},A.$locale=function(){return D[this.$L]},A.locale=function(M,L){if(!M)return this.$L;var k=this.clone(),I=S(M,L,!0);return I&&(k.$L=I),k},A.clone=function(){return O.w(this.$d,this)},A.toDate=function(){return new Date(this.valueOf())},A.toJSON=function(){return this.isValid()?this.toISOString():null},A.toISOString=function(){return this.$d.toISOString()},A.toString=function(){return this.$d.toUTCString()},F}(),H=T.prototype;return x.prototype=H,[["$ms",i],["$s",a],["$m",c],["$H",u],["$W",f],["$M",d],["$y",y],["$D",m]].forEach(function(F){H[F[1]]=function(A){return this.$g(A,F[0],F[1])}}),x.extend=function(F,A){return F.$i||(F(A,T,x),F.$i=!0),x},x.locale=S,x.isDayjs=N,x.unix=function(F){return x(1e3*F)},x.en=D[E],x.Ls=D,x.p={},x})})(rn);const et=rn.exports,Ri=t=>{console.log("Avatar Props",t);const{ooui:r,value:n}=t;if(!n)return null;let s=n;r.selectionValues.size?s=r.selectionValues.get(n):Array.isArray(n)&&(s=n[1]);const o=s.toString().split(" ").filter(a=>a.length>1).slice(0,3).map(a=>a[0].toUpperCase()).join(""),i=zt(s);return e.jsx(h.Tooltip,{title:s,children:e.jsx(h.Avatar,{alt:s,style:{backgroundColor:i},children:o})})};var nn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){return function(n,s){s.prototype.weekday=function(o){var i=this.$locale().weekStart||0,a=this.$W,c=(a<i?a+7:a)-i;return this.$utils().u(o)?c:this.subtract(c,"day").add(o,"day")}}})})(nn);const ea=nn.exports;var on={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){return function(n,s,o){var i=s.prototype,a=function(d){return d&&(d.indexOf?d:d.s)},c=function(d,g,y,m,w){var C=d.name?d:d.$locale(),v=a(C[g]),V=a(C[y]),_=v||V.map(function(E){return E.slice(0,m)});if(!w)return _;var b=C.weekStart;return _.map(function(E,D){return _[(D+(b||0))%7]})},u=function(){return o.Ls[o.locale()]},f=function(d,g){return d.formats[g]||function(y){return y.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(m,w,C){return w||C.slice(1)})}(d.formats[g.toUpperCase()])},p=function(){var d=this;return{months:function(g){return g?g.format("MMMM"):c(d,"months")},monthsShort:function(g){return g?g.format("MMM"):c(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(g){return g?g.format("dddd"):c(d,"weekdays")},weekdaysMin:function(g){return g?g.format("dd"):c(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(g){return g?g.format("ddd"):c(d,"weekdaysShort","weekdays",3)},longDateFormat:function(g){return f(d.$locale(),g)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return p.bind(this)()},o.localeData=function(){var d=u();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(g){return f(d,g)},meridiem:d.meridiem,ordinal:d.ordinal}},o.months=function(){return c(u(),"months")},o.monthsShort=function(){return c(u(),"monthsShort","months",3)},o.weekdays=function(d){return c(u(),"weekdays",null,null,d)},o.weekdaysShort=function(d){return c(u(),"weekdaysShort","weekdays",3,d)},o.weekdaysMin=function(d){return c(u(),"weekdaysMin","weekdays",2,d)}}})})(on);const ta=on.exports,{useToken:ra}=h.theme;et.extend(ea),et.extend(ta);const Ze={date:{placeholder:"__/__/____",dateDisplayFormat:"DD/MM/YYYY",dateInternalFormat:"YYYY-MM-DD"},time:{placeholder:"__/__/____ __:__:__",dateDisplayFormat:"DD/MM/YYYY HH:mm:ss",dateInternalFormat:"YYYY-MM-DD HH:mm:ss"}},sn=t=>{const{ooui:r,showTime:n=!1}=t,{required:s}=r;return e.jsx(ge,{required:s,...t,children:e.jsx(na,{ooui:r,showTime:n})})},na=t=>{const{value:r,onChange:n,ooui:s,showTime:o}=t,{id:i,readOnly:a,required:c}=s,{token:u}=ra(),f=c&&!a?{backgroundColor:u.colorPrimaryBg}:void 0,p=o?"time":"date",d=m=>{n==null||n(m)},g=m=>{if(m===null){d(void 0);return}d(m.format(Ze[p].dateInternalFormat))},y=r?et(r,Ze[p].dateInternalFormat):void 0;return e.jsx(h.DatePicker,{style:{width:"100%",...f},placeholder:o?Ze.time.placeholder:Ze.date.placeholder,disabled:a,id:i,picker:"date",showTime:o,format:Ze[p].dateDisplayFormat,value:y,onChange:g})},oa=t=>e.jsx("div",{style:{display:"flex",justifyContent:"center",alignContent:"center"},children:e.jsx(h.Checkbox,{checked:t,disabled:!0})}),sa=t=>e.jsx(Xi,{m2oField:t}),ia=t=>e.jsx(Pt.Interweave,{content:t==null?void 0:t.replace(/(?:\r\n|\r|\n)/g,"<br>")}),aa=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=et(t,Ze.date.dateInternalFormat).format(Ze.date.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},la=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=et(t,Ze.time.dateInternalFormat).format(Ze.time.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},an=t=>{const r=Array.isArray(t==null?void 0:t.items)?t==null?void 0:t.items.length:0;return e.jsx(e.Fragment,{children:`( ${r} )`})},ca=t=>e.jsx(en,{value:t}),da=t=>e.jsx(e.Fragment,{children:Qr(t)}),ln=t=>e.jsx("div",{style:{textAlign:"right"},children:t}),ua=t=>e.jsx("img",{src:`data:image/*;base64,${t}`,style:{maxWidth:"50px",padding:"5px"}}),fa=(t,r,n,s)=>e.jsx(e.Fragment,{children:t?e.jsx(h.Tag,{color:n.colors[t],children:n.selectionValues.get(t)}):null}),ha=(t,r,n,s)=>e.jsx(e.Fragment,{children:n.selectionValues.get(t)}),pa=(t,r,n,s)=>e.jsx(e.Fragment,{children:e.jsx(Qi,{value:t,selectionValues:n.selectionValues,context:s})}),ga=(t,r,n,s)=>e.jsx(Ri,{ooui:n,value:t});function Ct(t){const{page:r=1,limit:n,total:s,treeView:o,results:i,onRequestPageChange:a,loading:c,onRowClicked:u,showPagination:f=!0,rowSelection:p,scrollY:d,colorsForResults:g={},onChangeSort:y,sorter:m,onFetchChildrenForRecord:w,childField:C,rootTree:v=!1,context:V}=t,[_,b]=l.useState([]),[E,D]=l.useState([]),N=l.useRef(!1),S=l.useRef(null),{t:x}=l.useContext(pe),O=l.useRef(n),T=l.useContext(Be),{title:H=void 0,setTitle:F=void 0}=(v?T:{})||{};l.useEffect(()=>{S.current=ot(o);const z=Ys(S.current,{boolean:oa,many2one:sa,text:ia,one2many:an,many2many:an,progressbar:ca,float_time:da,image:ua,integer:ln,float:ln,reference:pa,tag:fa,selection:ha,date:aa,datetime:la,avatar:ga},V);D(z),S.current.string&&H!==S.current.string&&(F==null||F(S.current.string))},[o]),l.useEffect(()=>{N.current=!1;const z=Kr(S.current,i);b(z),O.current=n},[i]);const A=(r-1)*O.current+1,M=A-1+_.length,L=s===void 0?null:s===0?x("no_results"):x("summary").replace("{from}",A==null?void 0:A.toString()).replace("{to}",M==null?void 0:M.toString()).replace("{total}",s==null?void 0:s.toString()),k=()=>!f||o.isExpandable||c?null:s===void 0?e.jsx(h.Spin,{className:"pb-4"}):e.jsxs(h.Row,{align:"bottom",className:"pb-4",children:[e.jsx(h.Col,{span:12,children:e.jsx(h.Pagination,{total:s,pageSize:O.current===0?s:O.current,current:r,showSizeChanger:!1,onChange:a})}),e.jsx(h.Col,{span:12,className:"text-right",children:L})]});function I(){var $;const Y=S.current.columns.filter(P=>P.sum!==void 0).map(P=>({label:P.sum,field:P.id}));if(!Y||Y.length===0)return null;let Z=[],J=(($=p==null?void 0:p.selectedRowKeys)==null?void 0:$.length)>0?_.filter(P=>p==null?void 0:p.selectedRowKeys.includes(P.id)):_;return Y.forEach(P=>{const ee=J.reduce((le,ce)=>ce[P.field]&&!isNaN(ce[P.field])?le+ce[P.field]:le,0);Z.push(`${P.label}: ${Math.round(ee*100)/100}`)}),e.jsx("div",{className:"p-1 pb-0 pl-2 mt-2 ",children:Z.join(", ")})}let K,q=d;if(S.current!==null){K=zi(E,_,600);const Y=S.current;d&&Y.columns.some(Z=>Z.sum!==void 0)&&(q=d-30)}return S.current===null?e.jsx(h.Spin,{style:{padding:"2rem"}}):e.jsxs("div",{children:[k(),e.jsx(ro.Table,{height:q,columns:K.columns,dataSource:_,loading:c,loadingComponent:e.jsx(h.Spin,{}),onRowStyle:z=>{if(g[z.id])return{color:g[z.id]}},onRowDoubleClick:u,onRowSelectionChange:p==null?void 0:p.onChange,onChangeSort:y,sorter:m,expandableOpts:w?{expandIcon:B.PlusSquareOutlined,collapseIcon:B.MinusSquareOutlined,loadingIcon:B.LoadingOutlined,onFetchChildrenForRecord:w,childField:C}:void 0}),I()]})}function ma(t,r){const{model:n,formView:s,treeView:o,onRowClicked:i,nameSearch:a,treeScrollY:c,domain:u=[],visible:f=!0,rootTree:p=!1,parentContext:d={},onChangeSelectedRowKeys:g}=t,[y,m]=l.useState(!1),[w,C]=l.useState(!1),v=l.useRef(!1),[V,_]=l.useState(),[b,E]=l.useState(),[D,N]=l.useState(),[S,x]=l.useState(),[O,T]=l.useState(200),H=l.useRef(),{height:F}=xt(),A=l.useContext(lt),{processAction:M}=A||{},L=l.useContext(Be),{setResults:k=void 0,setCurrentItemIndex:I=void 0,currentId:K=void 0,results:q=void 0,selectedRowItems:z=void 0,setSelectedRowItems:Y=void 0,searchParams:Z=[],setSearchParams:J=void 0,searchVisible:$=!0,setSearchVisible:P=void 0,sorter:ee=void 0,setSorter:le=void 0,setTotalItems:ce=void 0,setSearchTreeNameSearch:re=void 0,setTreeIsLoading:X=void 0,searchValues:ye={},setSearchValues:Ce=void 0,limit:Ee=wt,setLimit:fe=void 0}=(p?L:{})||{},{submit:oe,clear:Se,fetchResults:me,tableRefreshing:xe,searchFilterLoading:Me,searchError:ke,page:He,offset:Ie,getResults:R,requestPageChange:de,changeSort:we,fetchChildrenForRecord:Ve,colorsForResults:ae,totalItems:Fe}=zr({model:V,setSearchTreeNameSearch:re,setSelectedRowItems:Y,setSearchParams:J,setSearchValues:Ce,searchParams:Z,setSearchVisible:P,setTreeIsLoading:X,nameSearch:a,searchNameGetDoneRef:v,context:d,formView:D,treeView:b,sorter:ee,setSorter:le,setCurrentItemIndex:I,setResultsActionView:k,resultsActionView:q,domain:u,currentId:K,setActionViewTotalItems:ce,limit:Ee,setLimit:fe});l.useImperativeHandle(r,()=>({refreshResults:()=>{v.current=!1,me()},getFields:()=>b==null?void 0:b.fields,getDomain:()=>u})),l.useEffect(()=>{!w||f&&(v.current=!1,me())},[He,Ie,w,f,a]);const De=async()=>{C(!1),m(!0),x(void 0),X==null||X(!0);try{await Ge(),C(!0)}catch(he){x(he)}finally{m(!1),X==null||X(!1)}},Ge=async()=>{_(n);let he=s;s||(he=await W.getHandler().getView({model:n,type:"form",context:d}));let $e=o;o||($e=await W.getHandler().getView({model:n,type:"tree",context:d})),N(he),E($e)};l.useEffect(()=>{De()},[n]);const Ke=he=>{fe==null||fe(he)},Ue=async he=>{const{id:$e}=he;H.current||(H.current=await W.getHandler().treeButOpen({id:b.view_id,model:V,context:d}));const je=H.current[0][2];await(M==null?void 0:M({actionData:je,fields:b.fields,values:{active_id:$e,...he},context:d}))},Q=async he=>{const{id:$e}=he;if(b!=null&&b.isExpandable){try{await Ue(he)}catch(je){Ae(je)}return}i({id:$e,model:V,formView:D,treeView:b})};function ue(he){const $e=R().filter(je=>he.includes(je.id));Y==null||Y($e),g==null||g(he)}function Te(){return b!=null&&b.isExpandable?F-160:F-(O+210)}const ie=()=>!b||!D?null:e.jsxs(e.Fragment,{children:[e.jsx(Xt,{fields:{...b.fields,...D.fields},searchFields:Wr([D.search_fields,b.search_fields]),formXml:D.arch,onClear:Se,limit:Ee,offset:Ie,isSearching:Me,onSubmit:oe,onLimitChange:Ke,setSearchFilterHeight:T,searchError:ke,searchVisible:$,searchValues:ye}),xe&&e.jsx(h.Spin,{}),e.jsx(Ct,{context:d,total:Fe,limit:Ee,page:He,treeView:b,results:R(),onRequestPageChange:de,loading:!1,onRowClicked:Q,scrollY:c||Te(),colorsForResults:ae,rowSelection:{selectedRowKeys:z==null?void 0:z.map(he=>he.id),onChange:ue},sorter:ee,onChangeSort:we,onFetchChildrenForRecord:b.isExpandable?Ve:void 0,childField:b.field_parent,rootTree:p})]}),ve=S||ke;return ve?e.jsx(h.Alert,{className:"mt-10",message:ve,type:"error",banner:!0}):e.jsx("div",{style:f?{}:{display:"none"},children:y?e.jsx(h.Spin,{}):ie()})}const Rt=l.forwardRef(ma),er=t=>{const{visible:r,onCloseModal:n,onSelectValues:s,model:o,nameSearch:i,domain:a,context:c={}}=t,[u,f]=l.useState(!1),{modalWidth:p,modalHeight:d}=xt(),{t:g}=l.useContext(pe),[y,m]=l.useState([]),w=async()=>{await new Promise(_=>setTimeout(_,5)),n()},C=async _=>{const{id:b}=_;s([b])};function v(){if(y.length===0){w();return}s(y)}const V=()=>e.jsxs(e.Fragment,{children:[e.jsx(Rt,{model:o,nameSearch:i,onRowClicked:C,treeScrollY:d*.3,domain:a,parentContext:c,onChangeSelectedRowKeys:_=>{m(_)}}),e.jsx(h.Divider,{}),e.jsx(h.Row,{justify:"end",children:e.jsxs(h.Space,{children:[e.jsx(h.Button,{icon:e.jsx(B.FileAddOutlined,{}),onClick:()=>{f(!0)},children:g("new")}),e.jsx(h.Button,{icon:e.jsx(B.CheckOutlined,{}),onClick:()=>{v()},type:"primary",children:g("ok")}),e.jsx(h.Button,{icon:e.jsx(B.CloseOutlined,{}),onClick:w,children:g("cancel")})]})})]});return e.jsxs(e.Fragment,{children:[e.jsx(h.Modal,{title:g("search"),centered:!0,width:p,open:r&&!u,closable:!0,onCancel:w,footer:null,destroyOnClose:!0,maskClosable:!1,children:V()}),e.jsx(dt,{model:o,visible:u,parentContext:c,onSubmitSucceed:_=>{f(!1),w(),s([_])},onCancel:()=>{f(!1),w()}})]})},{error:ya}=h.Modal,_t=t=>{ya({title:"Error",icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:t})},{defaultAlgorithm:wa,defaultSeed:va}=h.theme,cn=wa(va),dn=t=>{const{ooui:r}=t,{required:n}=r,s=async(o,i)=>{if(!i)throw new Error;if(!Array.isArray(i))throw new Error;if(Array.isArray(i)&&!i[0])throw new Error};return e.jsx(ge,{required:n,type:"array",validator:s,...t,children:e.jsx(un,{ooui:r})})},un=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,relation:i,readOnly:a,context:c,id:u,domain:f}=s,p=o&&!a?{backgroundColor:cn.colorPrimaryBg}:void 0,[d,g]=l.useState(!1),[y,m]=l.useState(!1),[w,C]=l.useState(!1),[v,V]=l.useState(),_=l.useRef(!1),[b,E]=l.useState(""),D=l.useRef(),N=l.useContext(_e),{domain:S,getValues:x,getFields:O,getContext:T,elementHasLostFocus:H}=N||{},F=l.useRef([]),[A,M]=l.useState([]),L=r&&r[0]||void 0,k=r&&r[1]||"";l.useEffect(()=>{!Array.isArray(r)&&r&&Y(r)},[r]),l.useEffect(()=>{L&&k.length===0?Y(L):L&&k.length>0?E(k):!L&&!k&&E(D.current||"")},[r]);const I=P=>{n==null||n(P),H==null||H()},K=P=>{D.current=P.target.value,I([void 0,""])},q=async()=>{if(!w&&b!==k){if(await new Promise(P=>setTimeout(P,100)),_.current){I([void 0,""]);return}C(!0);try{if(F.current&&F.current.length>0)z(D.current);else{const P=await W.getHandler().nameSearch({model:i,payload:D.current,context:{...T==null?void 0:T(),...c}});P.length===1?(D.current=void 0,I(P[0])):z(D.current)}}catch(P){_t(P)}finally{C(!1)}}},z=async P=>{if(await Z(),F.current&&F.current.length>0){const ee=await W.getHandler().searchAllIds({params:F.current,model:i,context:{...T==null?void 0:T(),...c},totalItems:2});ee.length===1?Y(ee[0]):(V(P),g(!0));return}V(P),g(!0)},Y=async P=>{C(!0);try{const ee=await W.getHandler().execute({action:"name_get",payload:[P],model:i,context:{...T==null?void 0:T(),...c}});I([P,ee[0][1]])}catch(ee){_t(ee)}finally{C(!1)}};async function Z(){f&&(F.current=await W.getHandler().evalDomain({domain:f,values:at({fields:O(),values:x()}),fields:O(),context:T()})),S&&S.length>0&&(F.current=F.current.concat(se.transformDomainForChildWidget({domain:S,widgetFieldName:u}))),M(F.current)}async function J(P){P.keyCode===13?(P.preventDefault(),P.stopPropagation(),await q()):P.code==="Backspace"&&L!==void 0&&(P.preventDefault(),P.stopPropagation(),I([void 0,""]))}const $=o&&!a?Ca:h.Input;return e.jsxs(h.Row,{gutter:8,wrap:!1,children:[e.jsx(h.Col,{flex:"auto",children:e.jsx($,{type:"text",value:b,disabled:a,onChange:K,style:p,onBlur:q,onKeyDown:J,suffix:e.jsx(Qt,{id:L,model:i,context:{...T==null?void 0:T(),...c}})})}),e.jsx(h.Col,{flex:"32px",style:{paddingRight:0},children:e.jsx(h.Button,{icon:e.jsx(B.FolderOpenOutlined,{}),disabled:L===void 0||k===""||b===void 0,onClick:()=>{m(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(h.Col,{flex:"32px",style:{paddingLeft:0},children:e.jsx(h.Button,{icon:w?e.jsx(B.LoadingOutlined,{}):e.jsx(B.SearchOutlined,{}),disabled:a||w,onClick:()=>{_.current=!0,z(k)},style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},tabIndex:-1})}),e.jsx(er,{model:i,domain:A,context:{...T==null?void 0:T(),...c},visible:d,nameSearch:L?void 0:v,onSelectValues:P=>{g(!1),Y(P[0]),_.current=!1,D.current=void 0},onCloseModal:()=>{g(!1),_.current=!1}}),e.jsx(dt,{model:i,parentContext:{...T==null?void 0:T(),...c},id:r&&r[0],visible:y,onSubmitSucceed:P=>{m(!1),Y(P)},onCancel:()=>{m(!1)},mustClearAfterSave:!0,readOnly:a})]})},Ca=pt.default(h.Input)`
|
|
32
32
|
.ant-input {
|
|
33
33
|
background-color: ${cn.colorPrimaryBg};
|
|
34
34
|
}
|