@gisce/react-ooui 1.2.7-rc.0 → 1.2.7-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/react-ooui.umd.js
CHANGED
|
@@ -32,6 +32,6 @@
|
|
|
32
32
|
.ant-input {
|
|
33
33
|
background-color: ${cn.colorPrimaryBg};
|
|
34
34
|
}
|
|
35
|
-
`,fn=Pe.default.createContext(null),xa=({children:t,initialView:r})=>{const[n,s]=l.useState(r),[o,i]=l.useState(0),[a,c]=l.useState(!1);return e.jsx(fn.Provider,{value:{currentView:n,setCurrentView:s,itemIndex:o,setItemIndex:i,manualTriggerChange:a,setManualTriggerChange:c},children:t})},{getValueForOperator:hn}=se.graphProcessor,Dt=.7,kt=30,pn=t=>{const{model:r,domain:n,context:s,colorCondition:o,totalDomain:i,showPercent:a=!1,icon:c,suffix:f,field:u,operator:p,manualIds:d}=t,[g,S]=l.useState(!1),[y,m]=l.useState(),[w,v]=l.useState(),[O,D]=l.useState(),[b,E]=l.useState(0),[k,A]=l.useState(0),[C,x]=l.useState(),[_,T]=l.useState(),[P,F]=l.useState();l.useEffect(()=>{L()},[r,o]);async function $({domain:M,isTotal:I}){if(I)return await V({domain:M});if(u&&p){const B=d||await Y.getHandler().searchAllIds({params:M,model:r,context:s}),W=await Y.getHandler().readObjects({model:r,ids:B,fieldsToRetrieve:[u],context:s});return hn({values:W.map(U=>U[u]),operator:p})}else return d?d.length:await Y.getHandler().searchCount({model:r,params:M,context:s})}async function V({domain:M}){if(u&&p){const I=await Y.getHandler().searchAllIds({params:M,model:r,context:s}),B=await Y.getHandler().readObjects({model:r,ids:I,fieldsToRetrieve:[u],context:s});return hn({values:B.map(W=>W[u]),operator:p})}else return await Y.getHandler().searchCount({model:r,params:M,context:s})}async function L(){S(!0);let M,I;try{const B=await $({domain:n,isTotal:!1});if(m(B),i){const W=await Y.getHandler().evalDomain({domain:i,values:{},context:s});M=await $({domain:W,isTotal:!0}),D(M)}if(M?(I=Math.round(B/M*100*100)/100,v(I)):v(0),o){const W=await Y.getHandler().parseCondition({condition:o,values:{value:B,percent:I},context:s});x(W)}if(c)if(c.indexOf(":")!==-1){const W=await Y.getHandler().parseCondition({condition:c,values:{value:B,percent:I},context:s});T(W)}else T(c)}catch(B){F(JSON.stringify(B))}S(!1)}return P?e.jsx(h.Alert,{className:"mt-10",message:P,type:"error",banner:!0}):g?e.jsx("div",{style:{padding:"1rem"},children:e.jsx(K.LoadingOutlined,{style:{height:"12px"}})}):e.jsx(Ht.default,{bounds:!0,onResize:M=>{var I,B;E((I=M.bounds)==null?void 0:I.height),A((B=M.bounds)==null?void 0:B.width)},children:({measureRef:M})=>a?e.jsx(Fa,{value:y,total:O,percent:w,measureRef:M,height:b,width:k,color:C,icon:_,suffix:f}):e.jsx(Ta,{value:y,total:O,measureRef:M,height:b,width:k,color:C,icon:_,suffix:f})})};function gn(t,r){const s=document.createElement("canvas").getContext("2d");return s.font=r||getComputedStyle(document.body).font,s.measureText(t).width}function Ta({measureRef:t,width:r,height:n,total:s,value:o,color:i,icon:a,suffix:c}){let f=n*Dt<kt?kt:n*Dt;const u=o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0});let p=s?`${u}/${s}`:`${u}`;c&&(p+=" "+c);let d=gn(p,`bold ${Math.floor(f*1.03)}px sans-serif`);a&&(d=d*2),d>=r*.85&&(f=r*.85/d*f);const g=a&&We(a);return e.jsx("div",{ref:t,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:e.jsxs(Kt.default,{style:{fontSize:f,margin:0,color:i},children:[g&&e.jsx(g,{style:{fontSize:f*.7}}),g?` ${p}`:p]})})}function Fa({measureRef:t,height:r,width:n,percent:s,total:o,value:i,color:a,icon:c,suffix:f}){const u=r*.65;let p=u*Dt<kt?kt:u*Dt;const d=i==null?void 0:i.toLocaleString("es-ES",{useGrouping:!0});let g=o?`${d}/${o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0})}`:`${d}`;f&&(g+=" "+f);const S=`${s==null?void 0:s.toLocaleString("es-ES",{useGrouping:!0})}%`;let y=gn(S,`bold ${Math.floor(p*1.03)}px sans-serif`);c&&(y=y*1.5);const m=c&&We(c);return(y>=n*.85||p*2<u)&&(p=n*.85/y*p),e.jsx("div",{ref:t,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",flexDirection:"column",padding:"0.2rem"},children:e.jsxs(h.Row,{align:"middle",children:[m&&e.jsx(h.Col,{style:{fontSize:p*1,color:a,paddingRight:"10px"},children:e.jsx(m,{})}),e.jsxs(h.Col,{children:[e.jsx(Kt.default,{style:{fontSize:p*.8,margin:0,color:a},children:m?` ${s}%`:`${s}%`}),e.jsx(Kt.default,{style:{fontSize:p*.4,margin:0,color:a,textAlign:"center"},children:g})]})]})})}const tr=t=>r=>{const n=r.value.toLocaleString("es-ES",{useGrouping:!0});return{name:t==="pie"?r.x:r.type,value:n}},Mt=t=>{if(typeof t=="string"&&Oa(t))return parseFloat(t).toLocaleString("es-ES",{useGrouping:!0});if(_a(t))return t.toLocaleString("es-ES",{useGrouping:!0});if(Da(t)){const r=ka(t);return r===null?t:Ze(t,Vt.input[r]).format(Vt.output[r])}else return t},Oa=t=>/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/.test(t),_a=t=>typeof t=="number"&&!isNaN(t),mn={default:{padding:"auto",xAxis:{tickCount:5,label:{formatter:Mt}},yAxis:{label:{formatter:Mt}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:tr("default")}},pie:{appendPadding:10,radius:.9,label:{type:"inner",offset:"-30%",content:({percent:t})=>`${(t*100).toFixed(0)}%`,style:{fontSize:14,textAlign:"center"}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:tr("pie")},interactions:[{type:"element-active"}]},barGrouped:{isGroup:!0,legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:tr("barGrouped")},xAxis:{label:{formatter:Mt}},yAxis:{label:{formatter:Mt}},label:{position:"middle",layout:[{type:"interval-adjust-position"},{type:"interval-hide-overlap"},{type:"adjust-color"}]}}};function Da(t){return typeof t!="string"||t===void 0?!1:new Date(t).toString()!=="Invalid Date"}const Vt={input:{hours:"YYYY-MM-DD HH:mm",days:"YYYY-MM-DD",weeks:"YYYY-[W]WW",months:"YYYY-MM",years:"YYYY"},output:{hours:"DD/MM/YYYY HH:mm",days:"DD/MM/YYYY",weeks:"[W]WW/YYYY",months:"MM/YYYY",years:"YYYY"}};function ka(t){for(const r in Vt.input)if(Ze(t,Vt.input[r],!0).isValid())return r;return null}const{processGraphData:Ma}=se.graphProcessor,{getFieldsToRetrieve:Va}=se.graphFieldUtils,Ea=t=>{const{model:r,domain:n=[],context:s={},xml:o,limit:i,uninformedString:a,manualIds:c}=t,[f,u]=l.useState(!1),[p,d]=l.useState(),[g,S]=l.useState(),[y,m]=l.useState(),[w,v]=l.useState("line");return et.default(()=>{(async()=>{u(!0),d(void 0);const O=se.parseGraph(o);v(O.type||"line");const D=Va({ooui:O});let b,E;try{({values:b,fields:E}=await $a({model:r,domain:n,context:s,limit:i,order:O.timerange?O.x.name:null,fields:D,manualIds:c}))}catch(k){d("Error fetching graph data values: "+JSON.stringify(k)),u(!1);return}try{if(!b||!E){d("No values or fields returned"),u(!1);return}m(b);const k=Ma({ooui:O,values:b,fields:E,options:{uninformedString:a}});S(k)}catch(k){d("Error processing graph data: "+k),u(!1);return}u(!1)})()},[o,r,i,s,n]),{loading:f,error:p,type:w,values:g,evaluatedEntries:y}};async function Ia({model:t,context:r,fields:n}){return await Y.getHandler().getFields({model:t,context:r,fields:n})}async function $a({fields:t,model:r,domain:n,context:s,order:o,limit:i,manualIds:a}){const c=await Ia({model:r,context:s,fields:t});if(a){let u=await Y.getHandler().readObjects({model:r,ids:a,fieldsToRetrieve:t,context:s});return o&&(u=[...u].sort((p,d)=>p[o]-d[o])),{values:u,fields:c}}return{values:await Y.getHandler().search({model:r,params:n,fields:t,context:s,limit:i,order:o}),fields:c}}const Aa={line:Bt.Line,bar:Bt.Column,pie:Bt.Pie},La=t=>{var v;const{model:r,domain:n,context:s,xml:o,limit:i,manualIds:a}=t,{t:c}=l.useContext(ge),{error:f,loading:u,values:p,type:d,evaluatedEntries:g}=Ea({model:r,xml:o,limit:i,domain:n,context:s,uninformedString:c("uninformed"),manualIds:a});if(f)return e.jsx(h.Alert,{message:f,type:"error",banner:!0});if(u)return e.jsx(h.Spin,{});if(!p)return e.jsx(h.Alert,{message:"No data to display",type:"info"});const{data:S,isGroup:y,isStack:m}=p,w=Aa[d];return w?e.jsxs("div",{style:{padding:"1rem"},children:[e.jsx("p",{style:{textAlign:"right"},children:`${c("totalRegisters")} ${(v=g==null?void 0:g.length)==null?void 0:v.toLocaleString("es-ES",{useGrouping:!0})}`}),e.jsx(w,{...Na({type:d,data:S,isGroup:y,isStack:m})})]}):e.jsx(e.Fragment,{children:`Unknown graph type: ${d}`})};function Na(t){const{type:r,data:n,isGroup:s,isStack:o}=t;let i=mn[r];return i||(i=mn.default),i.data=n,r==="pie"?(i.colorField="x",i.angleField="value"):(i.xField="x",i.yField="value",i.seriesField="type",i.isGroup=s,o&&(i.isStack=!0,i.groupField="stacked")),i}const Pa=(t,r)=>{const{view_id:n,model:s,context:o,domain:i,limit:a,manualIds:c}=t,[f,u]=l.useState(!1),[p,d]=l.useState(),[g,S]=l.useState(),y=l.useContext(Be),{setGraphIsLoading:m=void 0}=y||{};l.useImperativeHandle(r,()=>({refresh:()=>{w()}})),l.useEffect(()=>{w()},[n]);async function w(){u(!0),m==null||m(!0);try{const v=await Y.getHandler().getView({model:s,id:n,type:"graph",context:o});S(v.arch);const O=se.parseGraph(v.arch);d(O)}catch(v){return console.error(v),e.jsx(e.Fragment,{children:JSON.stringify(v)})}u(!1),m==null||m(!1)}if(f)return e.jsx("div",{style:{width:"100%",display:"flex",height:"20%",justifyContent:"center",alignContent:"center",padding:"1rem"},children:e.jsx(K.LoadingOutlined,{style:{height:"12px"}})});if(!p)return null;switch(p.type){case"indicatorField":case"indicator":{const v=p,O=v.type==="indicatorField"?{field:v.field,operator:v.operator}:{};return e.jsx(pn,{showPercent:v.showPercent,totalDomain:v.totalDomain,colorCondition:v.color,model:s,context:o,domain:i,icon:v.icon,suffix:v.suffix,manualIds:c,...O})}case"line":case"bar":case"pie":return e.jsx(La,{model:s,context:o,domain:i,xml:g,limit:a,manualIds:c});default:return e.jsx(e.Fragment,{children:`Graph ${p.type} not implemented`})}},Et=l.forwardRef(Pa),{confirm:Ba}=h.Modal,Ha=({onOk:t,lang:r})=>{Ba({title:be("removeItems",r),icon:e.jsx(K.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmRemove",r),okText:be("yesConfirmRemove",r),onOk:t,cancelText:be("cancel",r)})},{confirm:Ka}=h.Modal,Ya=({onOk:t,lang:r})=>{Ka({title:be("unlinkItems",r),icon:e.jsx(K.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmUnlink",r),okText:be("yesConfirmUnlink",r),onOk:t,cancelText:be("cancel",r)})},{useToken:Wa}=h.theme,qa=t=>{const{title:r,readOnly:n,onCreateItem:s,onToggleViewMode:o,mode:i,onDelete:a,totalItems:c,currentItemIndex:f,onPreviousItem:u,onNextItem:p,isMany2Many:d,onSearchItem:g,selectedRowKeys:S,showCreateButton:y,showToggleButton:m}=t,{token:w}=Wa();function v(){return e.jsx("div",{className:"inline-block w-3"})}function O(){return e.jsx("div",{className:"flex flex-grow h-8 text-white",style:{borderRadius:w.borderRadius,backgroundColor:w.colorPrimaryActive},children:e.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:e.jsx("span",{className:"pl-2 font-bold",children:r})})})}function D(){return e.jsx(Le,{tooltip:d?"Unlink":"Delete",icon:d?e.jsx(K.ApiOutlined,{}):e.jsx(K.DeleteOutlined,{}),onClick:a,disabled:c===0||n||i!=="form"&&S.length===0})}function b(){let k="_";return c===0?k="_":k=(f+1).toString(),e.jsxs("span",{className:"pl-1 pr-1",children:["(",k,"/",c,")"]})}function E(){return e.jsxs(e.Fragment,{children:[v(),e.jsx(Le,{tooltip:"Previous item",icon:e.jsx(K.LeftOutlined,{}),onClick:u}),b(),e.jsx(Le,{tooltip:"Next item",icon:e.jsx(K.RightOutlined,{}),onClick:p})]})}return e.jsxs("div",{className:"flex mb-2",children:[O(),e.jsxs("div",{className:"flex-none h-8 pl-2",children:[i!=="graph"&&y&&e.jsx(Le,{tooltip:"Create new item",icon:e.jsx(K.FileAddOutlined,{}),disabled:n,onClick:s}),d&&y&&e.jsx(Le,{tooltip:"Search existing item",icon:e.jsx(K.SearchOutlined,{}),disabled:n,onClick:g}),i!=="graph"&&v(),i!=="graph"&&D(),i==="form"&&E(),v(),m&&e.jsx(Le,{tooltip:"Toggle view mode",icon:e.jsx(K.AlignLeftOutlined,{}),onClick:o})]})]})},Ua={form:se.Form,tree:se.Tree,graph:Et};function Ga(t){const r=t.map(s=>s.id);return t.filter((s,o)=>{const{id:i}=s;return!r.includes(i,o+1)})}const ja=t=>{var Ge;const{value:r,onChange:n,ooui:s,views:o}=t,{items:i=[]}=r||{},{currentView:a,setCurrentView:c,itemIndex:f,setItemIndex:u}=l.useContext(fn),p=l.useContext(_e),{activeId:d,getFields:g,getValues:S,getContext:y,domain:m}=p||{},{lang:w,t:v}=l.useContext(ge),[O,D]=l.useState(!1),[b,E]=l.useState(!1),[k,A]=l.useState(),[C,x]=l.useState(!1),[_,T]=l.useState(!1),[P,F]=l.useState(),[$,V]=l.useState([]),[L,M]=l.useState(!1),I=l.useRef([]),[B,W]=l.useState(),U=l.useRef(),[q,Z]=l.useState(void 0),{readOnly:J,relation:N,context:H,domain:R}=s,ie=s.type==="many2many",{id:ae}=s,ee=i.filter(Q=>(Q.values||Q.treeValues)&&Q.operation!=="pendingRemove"),X=l.useRef();l.useEffect(()=>{if(X.current!==a){X.current=a,pe();return}pe()},[i,a]);const pe=l.useCallback(()=>{(a==="form"&&i.some(Q=>!Q.values)||a==="tree"&&i.some(Q=>!Q.treeValues))&&De()},[i,a]);l.useEffect(()=>{oe()},[m]);const ye=Q=>{var fe,Te;n==null||n({fields:((fe=o.get("form"))==null?void 0:fe.fields)||((Te=o.get("tree"))==null?void 0:Te.fields),items:Ga(Q)})},De=async()=>{await de(),f>ee.length-1&&f!==0&&u(0)},de=async Q=>{var fe,Te,le;E(!0),D(!1),A(void 0);try{const[Se,he]=await Gt({treeView:{arch:(fe=o.get("tree"))==null?void 0:fe.arch,fields:(Te=o.get("tree"))==null?void 0:Te.fields},formView:{fields:((le=o.get("form"))==null?void 0:le.fields)||{}},model:N,items:i,context:{...y==null?void 0:y(),...H},currentView:Q||a});return U.current||(U.current=Se.map(Ae=>Ae.id)),(a||Q)==="tree"&&he&&Z(he),ye(Se),Se}catch(Se){A(Se)}finally{E(!1)}};async function oe(){R&&(I.current=await Y.getHandler().evalDomain({domain:R,values:lt({fields:g(),values:S()}),fields:g(),context:y()})),m&&m.length>0&&(I.current=I.current.concat(se.transformDomainForChildWidget({domain:m,widgetFieldName:ae})))}const Ce=()=>{const Q=Array.from(o.keys()),fe=Q[(Q.indexOf(a)+1)%Q.length];a==="form"?Me(()=>{c(fe)}):c(fe)},we=()=>{f>0&&(a==="form"?Me(()=>{u(f-1)}):u(f-1))},xe=()=>{const Q=ee.length;f<Q-1&&(a==="form"?Me(()=>{u(f+1)}):u(f+1))},Ee=async()=>{const Q=ee[f].id,fe=(await Y.getHandler().readObjects({model:N,ids:[Q],fields:o.get("form").fields,context:{...y==null?void 0:y(),...H}}))[0],Te=(await Y.getHandler().readObjects({model:N,ids:[Q],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...H}}))[0],le=i.map(Se=>Se.id===Q?{...Se,operation:"original",values:fe,treeValues:Te}:Se);ye(le)},Me=Q=>{O?wt({lang:w,onOk:()=>{Ee(),Q(),D(!1)}}):Q()},He=()=>{if(ie){Ya({lang:w,onOk:()=>{a==="form"?ue():ve()}});return}Ha({lang:w,onOk:()=>{a==="form"?ue():ve()}})},Ie=async()=>{const{inv_field:Q}=s;let fe;Q&&d&&(fe={[Q]:d}),a==="form"?Me(()=>{M(!0),F({defaultValues:fe}),x(!0)}):(M(!0),F({defaultValues:fe}),x(!0))},te=async()=>{a==="form"?Me(()=>{T(!0)}):T(!0)},ue=async()=>{E(!0),D(!1),A(void 0);try{if(ee[f].id>0){const Q=i.map(fe=>fe.id===ee[f].id?{...fe,operation:"pendingRemove"}:fe);ye(Q)}else ye(i.filter(Q=>Q.id!==ee[f].id))}catch(Q){A(Q)}u(0),E(!1)},ve=async()=>{const Q=ee.filter(fe=>$.includes(fe.id));E(!0),D(!1),A(void 0);try{const fe=Q.map(le=>le.id),Te=i.filter(le=>!(fe.includes(le.id)&&le.id<0)).map(le=>fe.includes(le.id)?{...le,operation:"pendingRemove"}:le);ye(Te)}catch(fe){A(fe)}u(0),E(!1)},Ve=(Q,fe,Te)=>{let le;if(Q)le=i.map(Se=>Se.id===Q?{id:Q,operation:Q>0?"pendingUpdate":"pendingCreate",values:{...Te,id:Q},treeValues:{...Te,id:Q}}:Se);else{const Se=js(i);le=i.concat({id:Se,operation:"pendingCreate",values:{...Te,id:Se},treeValues:{...Te,id:Se}})}ye(le),L||x(!1)},ce=async Q=>{const{id:fe}=Q;let Te=i;const le=i.find(Se=>Se.id===fe);(le==null?void 0:le.values)===void 0&&(Te=await de("form")),F(Te.find(Se=>Se.id===fe)),M(!1),x(!0)},Fe=async Q=>{E(!0);let fe=i;const Te=Q.filter(le=>!i.find(Se=>Se.id===le));try{for(const le of Te){const Se=(await Y.getHandler().readObjects({model:N,ids:[le],fields:o.get("form").fields,context:{...y==null?void 0:y(),...H}}))[0],he=(await Y.getHandler().readObjects({model:N,ids:[le],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...H}}))[0];fe.push({id:le,operation:"pendingLink",values:Se,treeValues:he})}ye(fe)}catch(le){A(le)}finally{E(!1)}};function ke(){const Q=Ua[a];if(a==="graph")return se.parseGraph(o.get("graph").arch).string;{const fe=new Q(o.get(a).fields);return fe.parse(o.get(a).arch),fe.string}}const Ue=()=>{var fe,Te,le,Se;if(a==="form")return ee.length===0?v("noCurrentEntries"):a!==X.current&&i.some(he=>!he.values)?e.jsx(h.Spin,{}):e.jsx(dt,{formView:o.get("form"),values:(fe=ee[f])==null?void 0:fe.values,parentContext:{...y==null?void 0:y(),...H},model:N,id:(Te=ee[f])==null?void 0:Te.id,submitMode:"values",onFieldsChange:he=>{var ze;const Ae=(ze=ee[f])==null?void 0:ze.id,je=i.map(Re=>Re.id===Ae?{...Re,operation:Re.operation==="original"?"pendingUpdate":Re.operation,values:{...he,id:Ae},treeValues:{...he,id:Ae}}:Re);ye(je),D(!0)},readOnly:J});let Q=[];if(ee.some(he=>he.treeValues)&&(Q=B?it({resultsToSort:ee.map(he=>he.treeValues),sorter:B,fields:{...o.get("tree").fields,...((le=o.get("form"))==null?void 0:le.fields)||{}}}):ee.map(he=>he.treeValues)),a==="tree")return e.jsx(Ct,{total:ee.length,limit:ee.length,treeView:o.get("tree"),results:Q,loading:b,onRowClicked:((Se=o.get("form"))==null?void 0:Se.fields)!==void 0?ce:void 0,showPagination:!1,rowSelection:{selectedRowKeys:$,onChange:V},sorter:B,onChangeSort:W,context:{...y==null?void 0:y(),...H},colorsForResults:q});if(a==="graph"){const he=[[`${s.inv_field}`,"=",d]];return e.jsx(Et,{view_id:o.get("graph").view_id,model:s.relation,domain:he,context:{...y==null?void 0:y(),...H},limit:0})}};if(k)return e.jsx(h.Alert,{className:"mt-10",message:k,type:"error",banner:!0});const Ke=L;return b?e.jsx(h.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(qa,{mode:a,title:ke(),readOnly:J,isMany2Many:ie,formHasChanges:O,totalItems:ee.length,currentItemIndex:f,onDelete:He,onCreateItem:Ie,onToggleViewMode:Ce,onPreviousItem:we,onNextItem:xe,onSearchItem:te,selectedRowKeys:$,showCreateButton:((Ge=o.get("form"))==null?void 0:Ge.fields)!==void 0,showToggleButton:o.size>1}),Ue(),e.jsx(ut,{formView:o.get("form"),model:N,id:P==null?void 0:P.id,submitMode:"values",values:P==null?void 0:P.values,defaultValues:P==null?void 0:P.defaultValues,visible:C,onSubmitSucceed:Ve,parentContext:{...y==null?void 0:y(),...H},onCancel:()=>{M(!1),x(!1)},readOnly:J,mustClearAfterSave:Ke}),e.jsx(er,{domain:I.current,model:N,context:{...y==null?void 0:y(),...H},visible:_,onSelectValues:async Q=>{T(!1),Fe(Q)},onCloseModal:()=>{T(!1)}})]})},yn=t=>{const{ooui:r}=t,{mode:n,relation:s,views:o,required:i,context:a}=r;let c;const[f,u]=l.useState(!0),[p,d]=l.useState(),[g,S]=l.useState(new Map),y=l.useContext(_e),{getContext:m}=y||{};et.default(()=>{v()},[r]);const w=async D=>o&&o[D]?o[D]:await Y.getHandler().getView({model:s,type:D,context:{...m==null?void 0:m(),...a}}),v=async()=>{u(!0),d(void 0);try{if(n&&n.length>0){for(const D of n){const b=await w(D);g.set(D,b)}S(g)}else{const D=await w("form"),b=await w("tree");g.set("form",D),g.set("tree",b),S(g)}}catch(D){d(JSON.stringify(D))}finally{u(!1)}};if(n&&n.length>0?c=n[0]:c="tree",f)return e.jsx(h.Spin,{});if(p)return e.jsx(h.Alert,{className:"mt-10",message:p,type:"error",banner:!0});const O=async(D,b)=>{if(!b)throw new Error;if(!b.items)throw new Error;if(!Array.isArray(b.items))throw new Error;if(b.items.length===0)throw new Error};return e.jsx(xa,{initialView:c,children:e.jsx(me,{required:i,type:"array",validator:O,...t,children:e.jsx(ja,{ooui:r,views:g})})})},{useToken:za}=h.theme,wn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"number",...t,children:e.jsx(Ja,{ooui:r})})},Ja=t=>{const{ooui:r,value:n,onChange:s}=t,{id:o,readOnly:i,required:a}=r,{token:c}=za(),f=a&&!i?{backgroundColor:c.colorPrimaryBg}:void 0,u=l.useRef(),[p,d]=l.useState(),g=l.useContext(_e),{elementHasLostFocus:S}=g||{};l.useEffect(()=>{d(Qr(n))},[n]);const y=v=>{s==null||s(v)};function m(v){u.current=v.target.value,d(v.target.value)}async function w(){y(Xi(p)),await new Promise(v=>setTimeout(v,300)),S==null||S()}return e.jsx(h.Input,{value:p,disabled:i,className:"w-full",style:f,id:o,placeholder:"00:00",onChange:m,onBlur:w})};function rr(t){const{ooui:r,showLabel:n=!0,responsiveBehaviour:s}=t,o=We(r.icon||"");return e.jsx(e.Fragment,{children:(r.label||o)&&n?e.jsx(hr.FieldSet,{label:r.label,icon:o,children:e.jsx(Jt,{container:r.container,responsiveBehaviour:s})}):e.jsx(Jt,{container:r.container,responsiveBehaviour:s})})}const{TabPane:Za}=h.Tabs;function vn(t){const{ooui:r,responsiveBehaviour:n}=t,s=r.pages;function o(i){if(i){const a=We(i);return a&&e.jsx(a,{})}}return e.jsx(h.Tabs,{defaultActiveKey:"1",tabPosition:r.tabPosition,children:s.filter(i=>!i.invisible).map(i=>e.jsx(Za,{tab:e.jsxs(e.Fragment,{children:[o(i.icon)," ",i.label]}),children:e.jsx(rr,{ooui:i,showLabel:!1,responsiveBehaviour:n})},i.label))})}const{useToken:Xa}=h.theme,{TextArea:nr}=h.Input,Sn=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o,height:i,translatable:a}=r,{token:c}=Xa(),f=o&&!s?{backgroundColor:c.colorPrimaryBg}:void 0,u=l.useContext(_e),{elementHasLostFocus:p}=u||{};return e.jsx(me,{required:o,...t,children:a?e.jsx(Qa,{field:n,height:i,requiredStyle:f}):e.jsx(nr,{disabled:s||a,style:{height:i?i+"px":"100%",...f},rows:4,onBlur:p})})},Qa=({value:t,field:r,requiredStyle:n,onChange:s,height:o})=>{const i=l.useContext(_e),{activeId:a,activeModel:c,fetchValues:f,formHasChanges:u,elementHasLostFocus:p}=i||{},[d,g]=l.useState(!1),{t:S}=l.useContext(ge);return a?e.jsxs(e.Fragment,{children:[e.jsx("div",{onClick:()=>{if(u!=null&&u()){Je(S("saveBeforeTranslate"));return}d||g(!0)},children:e.jsx(nr,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",cursor:"pointer",...n},id:r,disabled:!0,rows:4,onBlur:p})}),e.jsx(Fr,{id:a,model:c,field:r,visible:d,onCloseModal:()=>{g(!1)},onSubmitSucceed:()=>{g(!1),f==null||f()}})]}):e.jsxs(e.Fragment,{children:[e.jsx(h.Row,{gutter:8,wrap:!1,children:e.jsx(nr,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",...n},id:r,rows:4,onBlur:p})}),e.jsx(h.Row,{justify:"end",style:{paddingTop:5},children:e.jsx(Le,{tooltip:S("translate"),icon:e.jsx(K.TranslationOutlined,{}),onClick:async()=>{u!=null&&u()?Je(S("saveBeforeTranslate")):Je(S("enterTextBeforeTranslate"))},children:S("translate")})})]})},Cn=t=>{const{ooui:r}=t,{label:n,icon:s}=r,o=We(s||"");return e.jsx(h.Divider,{orientation:"left",className:"text-sm",children:(o||n)&&e.jsxs(h.Space,{children:[o?e.jsx(o,{}):null,n]})})},Ra=({model:t,context:r,locale:n,selectedRegistersToExport:s,domain:o,limit:i,onClose:a})=>{const c=l.useRef({}),f=l.useRef(new Map),u=l.useCallback(async w=>{if(w.selectedKeys===void 0||w.selectedKeys.length===0){Je(be("selectAtLeastOneField",n));return}let v=o;w.registersAmount==="selected"&&(s==null?void 0:s.length)!==0&&(v=[["id","in",s==null?void 0:s.map(b=>b.id)]]);const{datas:O}=await Y.getHandler().exportData({model:t,fields:sl({keys:w.selectedKeys,fields:c.current}),domain:v,limit:w.registersAmount==="all"?0:i,context:r,format:w.exportType});a(),await new Promise(b=>setTimeout(b,200));const D=await ot(O);Tt(O,D.mime)},[n,t,o,i,r,a]),p=l.useCallback(async()=>{const w=await Y.getHandler().getFields({model:t,context:r,fields:[]});return c.current["/"]=w,bn({fields:w})},[t,r,c]),d=l.useCallback(async w=>{const O=sr(w,c.current)[or(w)],D=O.relation,b=await Y.getHandler().getFields({model:D,context:r,fields:[]});for(const[E,k]of Object.entries(b))b[E].string=tl({parentTitle:O.string,title:k.string});return c.current[w]=b,bn({fields:b,parentKey:w})},[c.current,t,r]),g=l.useCallback(async()=>{const w=await rl({model:t,context:r}),v=await ol({predefinedExports:w,fields:c.current,onGetFieldChilds:d});return{predefinedExports:w.map(D=>({...D,fields:D.fields.map(b=>{const E=or(b.key),A=sr(b.key,c.current)[E];return{key:b.key,title:A.string}})})),keysWithChilds:v}},[c.current]),S=l.useCallback(async w=>{const v=await m("ir.exports"),O=await m("ir.exports.line"),D=await Y.getHandler().create({model:"ir.exports",values:{name:w.name,resource:t},fields:v,context:r});return await Promise.all(w.fields.map(async b=>await Y.getHandler().create({model:"ir.exports.line",values:{name:b.key,export_id:D},fields:O,context:r}))),{...w,id:D}},[]),y=l.useCallback(async w=>{await Y.getHandler().delete({model:"ir.exports",ids:[w.id]})},[]),m=l.useCallback(async w=>{if(f.current.has(w))return f.current.get(w);const v=Y.getHandler().getFields({model:w,context:r,fields:[]});f.current.set(w,v)},[f,r]);return{onGetFields:p,onGetFieldChilds:d,onExport:u,onGetPredefinedExports:g,onSavePredefinedExport:S,onRemovePredefinedExport:y}},bn=({fields:t,parentKey:r})=>{const n=[];for(const s of Object.keys(t)){const o=t[s];if(o.relation&&o.is_function===!0)continue;const i=xn(o);n.push({key:el({key:s,parentKey:r}),title:o.string,tooltip:o.help,required:o.required,isLeaf:!i})}return n},xn=t=>t.type==="many2one"||t.type==="one2many"||t.type==="many2many",el=({parentKey:t,key:r})=>`${t?t+"/":""}${r}`,bt=t=>t.indexOf("/")===-1?t:t.split("/").slice(0,-1).join("/"),or=t=>{if(t.indexOf("/")===-1)return t;const r=t.split("/");return r[r.length-1]},sr=(t,r)=>t.indexOf("/")===-1?r["/"]:r[bt(t)],tl=({title:t,parentTitle:r})=>`${r?r+" \u2192 ":""}${t}`,rl=async({model:t,context:r})=>{const n=await Y.getHandler().search({model:"ir.exports",params:[["resource","=",t]],context:r}),s=n.flatMap(i=>i.export_fields),o=await Y.getHandler().readObjects({model:"ir.exports.line",ids:s,context:r});return n.map(i=>({id:i.id,name:i.name,fields:i.export_fields.map(a=>({key:o.find(f=>f.id===a).name}))}))},nl=({fields:t,keys:r})=>il([...new Set(r.filter(n=>{var s,o,i;if(n.indexOf("/")===-1)return!((s=t["/"])!=null&&s[n]);{const a=bt(n);console.log({key:n,parentKey:a,fields:t});const c=(o=t==null?void 0:t[bt(n)])==null?void 0:o[n];return console.log({exists:c}),!((i=t==null?void 0:t[bt(n)])!=null&&i[n])}}).map(n=>bt(n)))]),ol=async({predefinedExports:t,fields:r,onGetFieldChilds:n})=>{const s=t.flatMap(a=>a.fields.map(c=>c.key)),o=nl({fields:r,keys:s}),i=[];for(const a of o)i.push({key:a,childs:await n(a)});return i},sl=({keys:t,fields:r})=>t.map(n=>{const s=or(n),i=sr(n,r)[s];return xn(i)?`${n}/id`:n}),il=t=>{const r=new Map,n=[];for(const s of t){const o=s.split("/");let i="";for(const a of o){const c=i?`${i}/${a}`:a;r.has(c)||(n.push(c),r.set(c,!0)),i=c}}return n.sort((s,o)=>{const i=s.split("/").length,a=o.split("/").length;return i-a}),n},Tn=t=>{const{visible:r,locale:n,onClose:s,model:o,context:i,selectedRegistersToExport:a,totalRegisters:c,domain:f,limit:u,visibleRegisters:p}=t,{onExport:d,onGetFieldChilds:g,onGetFields:S,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:w}=Ra({model:o,context:i,domain:f,limit:u,selectedRegistersToExport:a,onClose:s,locale:n});return e.jsx(hr.ExportModal,{visible:r,locale:n,onSucceed:d,onCancel:s,selectedRegistersToExport:a&&a.length&&a.length>0?a.length:void 0,totalRegisters:c,onGetFieldChilds:g,onGetFields:S,visibleRegisters:p,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:w})},Fn=t=>{const{ooui:r}=t;return e.jsx(sn,{ooui:r})},On=t=>{const{ooui:r}=t;return e.jsx(sn,{ooui:r,showTime:!0})};var _n={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Qe,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},s=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,o=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,c={},f=function(m){return(m=+m)+(m>68?1900:2e3)},u=function(m){return function(w){this[m]=+w}},p=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(w){if(!w||w==="Z")return 0;var v=w.match(/([+-]|\d\d)/g),O=60*v[1]+(+v[2]||0);return O===0?0:v[0]==="+"?-O:O}(m)}],d=function(m){var w=c[m];return w&&(w.indexOf?w:w.s.concat(w.f))},g=function(m,w){var v,O=c.meridiem;if(O){for(var D=1;D<=24;D+=1)if(m.indexOf(O(D,0,w))>-1){v=D>12;break}}else v=m===(w?"pm":"PM");return v},S={A:[a,function(m){this.afternoon=g(m,!1)}],a:[a,function(m){this.afternoon=g(m,!0)}],S:[/\d/,function(m){this.milliseconds=100*+m}],SS:[o,function(m){this.milliseconds=10*+m}],SSS:[/\d{3}/,function(m){this.milliseconds=+m}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[o,u("day")],Do:[a,function(m){var w=c.ordinal,v=m.match(/\d+/);if(this.day=v[0],w)for(var O=1;O<=31;O+=1)w(O).replace(/\[|\]/g,"")===m&&(this.day=O)}],M:[i,u("month")],MM:[o,u("month")],MMM:[a,function(m){var w=d("months"),v=(d("monthsShort")||w.map(function(O){return O.slice(0,3)})).indexOf(m)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(m){var w=d("months").indexOf(m)+1;if(w<1)throw new Error;this.month=w%12||w}],Y:[/[+-]?\d+/,u("year")],YY:[o,function(m){this.year=f(m)}],YYYY:[/\d{4}/,u("year")],Z:p,ZZ:p};function y(m){var w,v;w=m,v=c&&c.formats;for(var O=(m=w.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(x,_,T){var P=T&&T.toUpperCase();return _||v[T]||n[T]||v[P].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(F,$,V){return $||V.slice(1)})})).match(s),D=O.length,b=0;b<D;b+=1){var E=O[b],k=S[E],A=k&&k[0],C=k&&k[1];O[b]=C?{regex:A,parser:C}:E.replace(/^\[|\]$/g,"")}return function(x){for(var _={},T=0,P=0;T<D;T+=1){var F=O[T];if(typeof F=="string")P+=F.length;else{var $=F.regex,V=F.parser,L=x.slice(P),M=$.exec(L)[0];V.call(_,M),x=x.replace(M,"")}}return function(I){var B=I.afternoon;if(B!==void 0){var W=I.hours;B?W<12&&(I.hours+=12):W===12&&(I.hours=0),delete I.afternoon}}(_),_}}return function(m,w,v){v.p.customParseFormat=!0,m&&m.parseTwoDigitYear&&(f=m.parseTwoDigitYear);var O=w.prototype,D=O.parse;O.parse=function(b){var E=b.date,k=b.utc,A=b.args;this.$u=k;var C=A[1];if(typeof C=="string"){var x=A[2]===!0,_=A[3]===!0,T=x||_,P=A[2];_&&(P=A[2]),c=this.$locale(),!x&&P&&(c=v.Ls[P]),this.$d=function(L,M,I){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*L);var B=y(M)(L),W=B.year,U=B.month,q=B.day,Z=B.hours,J=B.minutes,N=B.seconds,H=B.milliseconds,R=B.zone,ie=new Date,ae=q||(W||U?1:ie.getDate()),ee=W||ie.getFullYear(),X=0;W&&!U||(X=U>0?U-1:ie.getMonth());var pe=Z||0,ye=J||0,De=N||0,de=H||0;return R?new Date(Date.UTC(ee,X,ae,pe,ye,De,de+60*R.offset*1e3)):I?new Date(Date.UTC(ee,X,ae,pe,ye,De,de)):new Date(ee,X,ae,pe,ye,De,de)}catch{return new Date("")}}(E,C,k),this.init(),P&&P!==!0&&(this.$L=this.locale(P).$L),T&&E!=this.format(C)&&(this.$d=new Date("")),c={}}else if(C instanceof Array)for(var F=C.length,$=1;$<=F;$+=1){A[1]=C[$-1];var V=v.apply(this,A);if(V.isValid()){this.$d=V.$d,this.$L=V.$L,this.init();break}$===F&&(this.$d=new Date(""))}else D.call(this,b)}}})})(_n);const al=_n.exports;Ze.extend(al);const Dn=t=>{const{ooui:r}=t;return e.jsx(me,{...t,children:e.jsx(ll,{ooui:r})})},ll=t=>{const r=(n,s)=>{t.onChange&&t.onChange(s)};return e.jsx(h.TimePicker,{onChange:r,value:t.value?Ze(t.value,"HH:mm:ss"):void 0})},kn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(cl,{ooui:r})})},cl=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,selectionValues:i,readOnly:a}=s,c=r==null?void 0:r.split(","),[f,u]=l.useState([]),[p,d]=l.useState();return l.useEffect(()=>{if(!r){d(void 0),u([]);return}const g=r&&c&&c[0],S=r&&c&&c[1]&&parseInt(c[1]);u([S,void 0]),d(g)},[r]),e.jsxs(h.Row,{gutter:8,wrap:!1,children:[e.jsx(h.Col,{flex:"1",children:e.jsx(Or,{ooui:new se.Selection({name:"model_selection",selection:i,readonly:a,required:o}),onChange:g=>{d(g);let S=f[0]||0;g!==p&&(u([]),S=0);const y=`${g},${S}`;y!==r&&(n==null||n(y))},value:p})}),e.jsx(h.Col,{flex:"3",children:e.jsx(un,{ooui:new se.Many2one({name:"object_value",relation:p,readonly:a,required:o}),value:f,onChange:g=>{u(g);const S=`${p},${g[0]||0}`;S!==r&&(n==null||n(S))}})})]})},{useToken:dl}=h.theme,Mn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(ul,{ooui:r})})},ul=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o,required:i,filenameField:a}=r,{token:c}=dl(),f=i&&!o?{backgroundColor:c.colorPrimaryBg}:void 0,u=l.useRef(null),{setFieldValue:p,getFieldValue:d}=l.useContext(_e)||{},{t:g}=l.useContext(ge),S=n?Ys(n):"",y=D=>{s==null||s(D)};async function m(){const D=await ot(n),b=`data:${D==null?void 0:D.mime};base64,${n}`,E=document.createElement("a"),k=d(a),A=d("name");E.href=b,E.download=k||A,E.click()}async function w(){const D=await ot(n);Tt(n,D.mime)}async function v(D){D.stopPropagation(),D.preventDefault();const b=D.target.files[0],E=await Br(b);y(E),a&&p(a,b.name)}function O(){p(a,void 0),y(void 0)}return e.jsxs(h.Row,{gutter:8,children:[e.jsxs(h.Col,{style:{paddingBottom:5},children:[e.jsx("input",{type:"file",id:"file",ref:u,style:{display:"none"},onChange:v}),e.jsx(h.Input,{type:"text",disabled:!0,style:f,value:S})]}),e.jsx(h.Col,{children:e.jsxs(h.Space,{children:[e.jsx(h.Button,{icon:e.jsx(K.FolderOpenOutlined,{}),disabled:o,onClick:()=>{u.current.click()},children:"Select"}),e.jsx(h.Button,{icon:e.jsx(K.EyeOutlined,{}),disabled:!n,onClick:w,children:g("open")}),e.jsx(Le,{tooltip:g("download"),disabled:!n,onClick:m,icon:e.jsx(K.DownloadOutlined,{})}),e.jsx(Le,{tooltip:g("clear"),disabled:o||!n,onClick:O,icon:e.jsx(K.ClearOutlined,{})})]})})]})},ir={tree:e.jsx(K.TableOutlined,{}),form:e.jsx(K.FormOutlined,{}),graph:e.jsx(K.AreaChartOutlined,{}),calendar:e.jsx(K.CalendarOutlined,{})};function Vn(t){return t?(ir==null?void 0:ir[t.type])||e.jsx(K.FormOutlined,{}):e.jsx(K.FormOutlined,{})}function ar(t){const{currentView:r,availableViews:n,onChangeView:s,disabled:o=!1,formHasChanges:i=!1,previousView:a}=t,{t:c,lang:f}=l.useContext(ge);function u(){const g=n.map((S,y)=>e.jsx(h.Menu.Item,{children:e.jsxs(h.Row,{wrap:!1,children:[e.jsx(h.Col,{flex:"none",style:{paddingRight:20},children:Vn(S)}),e.jsx(h.Col,{flex:"auto",style:{paddingRight:20},children:S.type.charAt(0).toUpperCase()+S.type.slice(1)}),e.jsx(h.Col,{flex:"none",children:e.jsx(K.CheckOutlined,{style:{opacity:r.view_id===S.view_id?1:0}})})]})},S.view_id||y));return e.jsx(h.Menu,{onClick:d,children:e.jsx(h.Menu.ItemGroup,{title:c("viewAs"),children:g})})}function p(g){if(i){wt({lang:f,onOk:()=>{g()}});return}g()}function d(g){p(()=>{const S=n.find(y=>y.view_id===parseInt(g.key));s(S)})}return e.jsxs("div",{style:{display:"flex"},children:[e.jsx(Le,{tooltip:a?c("viewAs")+" "+c(a.type):"",icon:Vn(a),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:()=>{d({key:a==null?void 0:a.view_id})},disabled:o||n.length===1}),e.jsx(h.Dropdown,{overlay:u(),disabled:o||n.length===1,children:e.jsx(h.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:e.jsx(K.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:g=>g.preventDefault()})})]})}function ft(t){const{icon:r,tooltip:n,items:s=[],onItemClick:o,label:i,disabled:a=!1}=t;function c(){const u=s==null?void 0:s.map((p,d)=>p.name==="divider"?e.jsx(h.Menu.Divider,{},"divider"+d):e.jsx(h.Menu.Item,{children:p.name},p.id));return e.jsx(h.Menu,{onClick:f,children:e.jsx(h.Menu.ItemGroup,{title:n,children:u})})}function f(u){const p=s.find(d=>isNaN(u.key)?d.id===u.key:d.id===parseInt(u.key));o(p)}return e.jsx(h.Dropdown,{overlay:c(),disabled:a||!s||s.length===0,children:e.jsxs(h.Button,{children:[r," ",i," ",e.jsx(K.DownOutlined,{})]})})}function Ne(t){const{onClick:r,disabled:n=!1,loading:s=!1,tooltip:o,icon:i,label:a,type:c="default"}=t,f=s?e.jsx(K.LoadingOutlined,{}):i;return e.jsxs(Le,{type:c,tooltip:o,onClick:r,disabled:n,children:[f,a]})}function En(t){const{disabled:r=!1}=t,{formHasChanges:n,onNewClicked:s}=l.useContext(Be),{t:o,lang:i}=l.useContext(ge),a=()=>{if(n){wt({lang:i,onOk:()=>{s()}});return}s()};return e.jsx(Ne,{icon:e.jsx(K.FileAddOutlined,{}),tooltip:o("new"),onClick:a,disabled:r})}const{confirm:fl}=h.Modal,hl=({onOk:t,onCancel:r,lang:n})=>{fl({title:be("unsavedChanges",n),icon:e.jsx(K.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmRefreshWithoutSave",n),okText:be("discardAndRefresh",n),cancelText:be("cancel",n),onOk:t,onCancel:r})};async function In(t,r,n){const s=(await Y.getHandler().getLogInfo({model:t,ids:[r]}))[0],{create_date:o,create_uid:i,id:a,write_date:c,write_uid:f}=s;Je(e.jsxs("div",{children:["ID: "+a," ",e.jsx("br",{}),n("createdBy")+": "+i[1]," ",e.jsx("br",{}),n("creationDate")+": "+o," ",e.jsx("br",{}),n("lastUpdatedBy")+": "+f[1]," ",e.jsx("br",{}),n("lastUpdatedDate")+": "+c]}))}const pl=t=>{const{numberOfAttachments:r,disabled:n}=t,{t:s,lang:o}=l.useContext(ge),[i,a]=l.useState(!1),c=e.jsxs(h.Button,{disabled:n,children:[e.jsx(K.LinkOutlined,{}),`(${r})`,e.jsx(K.DownOutlined,{style:{fontSize:12}})]});return n?c:e.jsx(h.Popover,{onVisibleChange:f=>a(f),visible:i,placement:"bottom",content:gl(t,a,o),title:s("attachments"),arrowContent:null,children:c})},gl=(t,r,n)=>{const{attachments:s=[],loading:o,onAddNewAttachment:i,onopenAttachmentLink:a,onOpenAttachmentDetail:c,onListAllAttachments:f}=t;return o?e.jsx(h.Spin,{style:{padding:20}}):e.jsxs(e.Fragment,{children:[e.jsxs("a",{style:{display:"block",paddingBottom:5},href:"#",onClick:()=>{r(!1),f()},children:[e.jsx(K.TableOutlined,{})," ",be("listAllAttachments",n)]}),e.jsxs("a",{style:{display:"block"},href:"#",onClick:()=>{r(!1),i()},children:[e.jsx(K.FileAddOutlined,{})," ",be("addNewAttachment",n)]}),s.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("li",{className:"ant-dropdown-menu-item-divider"}),s.map(u=>{const p=u.link?K.LinkOutlined:K.DownloadOutlined;return e.jsxs(h.Row,{style:{paddingTop:4,paddingBottom:4},wrap:!1,align:"middle",children:[e.jsx(h.Col,{flex:"auto",children:u.name}),e.jsx(h.Col,{flex:"25px",style:{textAlign:"center"},children:(u.datas_fname||u.link)&&e.jsx(h.Tooltip,{title:u.link?be("openAttachmentLink",n):be("download",n),children:e.jsx(p,{style:{cursor:"pointer"},onClick:()=>{r(!1),a(u)}})})}),e.jsx(h.Col,{flex:"25px",style:{textAlign:"center"},children:e.jsx(h.Tooltip,{title:be("openAttachment",n),children:e.jsx(K.FormOutlined,{style:{cursor:"pointer"},onClick:()=>{r(!1),c(u)}})})})]},u.id)})]})]})};function ml(t){const{attachments:r,disabled:n=!1,onAddNewAttachment:s,onListAllAttachments:o,onViewAttachmentDetails:i}=t,{formRef:a}=l.useContext(Be),[c,f]=l.useState(!1),[u,p]=l.useState([]),[d,g]=l.useState(!1),{t:S}=l.useContext(ge),y=l.useCallback(async()=>{f(!0);try{const v=await Y.getHandler().readObjects({model:"ir.attachment",ids:r.map(O=>O.id),fieldsToRetrieve:["name","datas_fname","link"],context:a.current.getContext()});p(v.map(O=>({id:O.id,name:O.name,datas_fname:O.datas_fname,link:O.link})))}catch(v){$e(v)}f(!1)},r),m=l.useCallback(async v=>{if(v.link){window.open(v.link);return}g(!0);let O;try{O=(await Y.getHandler().readObjects({model:"ir.attachment",ids:[v.id],context:a.current.getContext()}))[0]}catch(D){$e(D)}if(g(!1),!!O)if(O.datas){const D=await ot(O.datas);Tt(O.datas,D.mime)}else i(O)},[]),w=l.useCallback(async v=>{i(v)},[]);return l.useEffect(()=>{y()},[y]),e.jsxs(e.Fragment,{children:[e.jsx(pl,{numberOfAttachments:r.length,attachments:u,disabled:n,loading:c,onAddNewAttachment:s,onListAllAttachments:o,onopenAttachmentLink:m,onOpenAttachmentDetail:w}),e.jsx(h.Modal,{title:S("downloadingAttachment"),open:d,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(h.Spin,{})})]})}function $n({toolbar:t}){const{availableViews:r,currentView:n,setCurrentView:s,onFormSave:o,formHasChanges:i,formIsSaving:a,currentId:c,results:f,setCurrentItemIndex:u,currentItemIndex:p,setCurrentId:d,currentModel:g,setRemovingItem:S,removingItem:y,duplicatingItem:m,setDuplicatingItem:w,setResults:v,formIsLoading:O,attachments:D,formRef:b,setFormHasChanges:E,previousView:k,setPreviousView:A,goToResourceId:C}=l.useContext(Be),{t:x,lang:_}=l.useContext(ge),T=l.useContext(ct),{processAction:P}=T||{},F=l.useContext(qe),{openRelate:$,openDefaultActionForModel:V}=F||{};function L(N){if(i){hl({lang:_,onOk:()=>{N()}});return}N()}function M(N){if(i){wt({lang:_,onOk:()=>{N()}});return}N()}function I(){f&&f.length>p+1?(u==null||u(p+1),d==null||d(f[p+1].id)):f&&p+1===f.length&&(u==null||u(0),d==null||d(f[0].id))}function B(){f&&p>0?(u==null||u(p-1),d==null||d(f[p-1].id)):f&&p===0&&(u==null||u(f.length-1),d==null||d(f[f.length-1].id))}function W(){nt({confirmMessage:x("confirmRemoveItem"),lang:_,onOk:()=>{U()}})}async function U(){try{S==null||S(!0),await Y.getHandler().delete({model:g,ids:[c]});const N=f==null?void 0:f.filter(R=>R.id!==c);v==null||v(N);let H=0;p>0&&p<=f.length-1&&(H=p-1),N!=null&&N[H]?(d==null||d(N==null?void 0:N[H].id),u==null||u(H)):(d==null||d(void 0),u==null||u(void 0))}catch(N){_t(JSON.stringify(N))}finally{S==null||S(!1)}}async function q(){try{w==null||w(!0);const N=await Y.getHandler().duplicate({id:c,model:g,context:b.current.getContext()});N&&await(C==null?void 0:C(N))}catch(N){_t(JSON.stringify(N))}finally{w==null||w(!1)}}const Z=a||y||O||m;function J(N){P==null||P({actionData:N,values:b.current.getValues(),fields:b.current.getFields(),context:b.current.getContext(),onRefreshParentValues:()=>{b.current.fetchValues()}})}return n?e.jsxs(h.Space,{wrap:!0,children:[O&&e.jsxs(e.Fragment,{children:[e.jsx(h.Spin,{}),ht(),ht()]}),e.jsx(En,{disabled:a||O||y||m}),e.jsx(Ne,{icon:e.jsx(K.SaveOutlined,{}),tooltip:x("save"),disabled:!i||Z,loading:a,onClick:o}),e.jsx(Ne,{icon:e.jsx(K.CopyOutlined,{}),tooltip:x("duplicate"),disabled:i||a||c===void 0||m||O,loading:m,onClick:q}),e.jsx(Ne,{icon:e.jsx(K.DeleteOutlined,{}),tooltip:x("delete"),disabled:a||c===void 0||y||m||O,loading:y,onClick:W}),ht(),e.jsx(Ne,{icon:e.jsx(K.InfoCircleOutlined,{}),tooltip:x("showLogs"),disabled:a||c===void 0||y||m||O,loading:!1,onClick:()=>{In(g,c,x)}}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:x("refresh"),disabled:a||c===void 0||y||m||O,loading:!1,onClick:()=>{L(()=>{b.current.fetchValues()})}}),ht(),e.jsx(ar,{currentView:n,previousView:k,availableViews:r,onChangeView:N=>{A==null||A(n),E==null||E(!1),s==null||s(N)},disabled:Z,formHasChanges:i}),ht(),e.jsxs(h.Space,{children:[e.jsx(Ne,{icon:e.jsx(K.LeftOutlined,{}),tooltip:x("previous"),disabled:Z,loading:!1,onClick:()=>{M(B)}}),e.jsx(Ne,{icon:e.jsx(K.RightOutlined,{}),tooltip:x("next"),disabled:Z,loading:!1,onClick:()=>{M(I)}})]}),ht(),e.jsx(ft,{icon:e.jsx(K.ThunderboltOutlined,{}),disabled:Z,tooltip:x("actions"),items:t==null?void 0:t.action,onItemClick:async N=>{!N||!(await pt({onFormSave:o})).succeed||J(N)}}),e.jsx(ft,{icon:e.jsx(K.PrinterOutlined,{}),disabled:Z,tooltip:x("reports"),items:t==null?void 0:t.print,onItemClick:async N=>{if(!N)return;const H=await pt({onFormSave:o});!H.succeed||J({...N,datas:{...N.datas||{},ids:[H.currentId]}})}}),e.jsx(ft,{icon:e.jsx(K.EnterOutlined,{}),disabled:Z,tooltip:x("related"),items:t==null?void 0:t.relate,onItemClick:async N=>{!N||!(await pt({onFormSave:o})).succeed||$({relateData:N,values:b.current.getValues(),fields:b.current.getFields(),action_id:N.id,action_type:N.type})}}),e.jsx(ml,{disabled:Z,attachments:D,onAddNewAttachment:async()=>{const N=await pt({onFormSave:o});if(!N.succeed)return;const H=N.currentId,R=g;V({model:"ir.attachment",values:{selection_associated_object:`${R},${H}`},forced_values:{res_model:R,res_id:H},initialViewType:"form"})},onListAllAttachments:async()=>{const N=await pt({onFormSave:o});if(!N.succeed)return;const H=N.currentId;V({model:"ir.attachment",domain:[["res_model","=",`${g}`],["res_id","=",`${H}`]],initialViewType:"tree"})},onViewAttachmentDetails:async N=>{!(await pt({onFormSave:o})).succeed||V({model:"ir.attachment",res_id:N.id,initialViewType:"form"})}})]}):null}function ht(){return e.jsx("div",{className:"inline-block w-2"})}async function pt({onFormSave:t}){const r=await(t==null?void 0:t());return r!=null&&r.succeed?{succeed:!0,currentId:r.id}:{succeed:!1,currentId:void 0}}const{useToken:yl}=h.theme,An=t=>{const{ooui:r,value:n,onChange:s,valueValidator:o,linkPrefix:i=""}=t,{id:a,readOnly:c,required:f}=r,{token:u}=yl(),p=f&&!c?{backgroundColor:u.colorPrimaryBg}:void 0,d=l.useContext(_e),{elementHasLostFocus:g}=d||{},[S,y]=l.useState(!1),[m,w]=l.useState(!1);l.useEffect(()=>{c&&!S&&w(!1),!n&&!c&&(y(!0),w(!0))},[S,c]);const v=O=>{s==null||s(O.target.value)};return e.jsxs(h.Row,{gutter:8,wrap:!1,align:"middle",children:[c?null:e.jsx(h.Col,{flex:"32px",children:S?e.jsx(h.Button,{icon:e.jsx(K.CheckOutlined,{}),onClick:()=>{o(n)&&(y(!1),w(!1))},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1}):e.jsx(h.Button,{icon:e.jsx(K.EditOutlined,{}),onClick:()=>{y(!0),w(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(h.Col,{flex:"auto",children:m?e.jsx(h.Input,{style:{borderTopLeftRadius:0,borderBottomLeftRadius:0,...p},id:a,onChange:v,value:n,onBlur:()=>{o(n)&&(y(!1),w(!1),g==null||g())}}):e.jsx("a",{href:`${i}${n}`,style:{color:u.colorPrimary,paddingRight:15},target:"_blank",children:n})})]})},Ln=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(An,{ooui:r,valueValidator:s=>s?po.default(s):!1})})},Nn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(An,{ooui:r,linkPrefix:"mailto:",valueValidator:s=>s?go.default(s):!1})})},wl=t=>{const{visible:r,onIdSubmitted:n,onCancel:s,isSearching:o}=t,{t:i}=l.useContext(ge);function a(c){n(c.id)}return e.jsx(h.Modal,{title:i("goToResourceId"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:s,maskClosable:!1,children:e.jsxs(h.Form,{layout:"vertical",onFinish:a,autoComplete:"off",children:[e.jsx(h.Form.Item,{name:"id",label:i("searchId"),rules:[{required:!0,type:"number"}],children:e.jsx(h.InputNumber,{style:{width:"100%"},autoFocus:!0})}),e.jsx(h.Row,{align:"middle",justify:"end",children:e.jsx(h.Col,{children:e.jsxs(h.Space,{children:[e.jsx(h.Button,{icon:e.jsx(K.CloseOutlined,{}),htmlType:"button",onClick:s,disabled:o,children:i("cancel")}),e.jsx(h.Button,{loading:o,style:{marginLeft:15},icon:e.jsx(K.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:o,children:i("ok")})]})})})]})})},{useToken:vl}=h.theme;function Pn(t){const{badgeNumber:r=0,...n}=t,{token:s}=vl();return e.jsxs("div",{style:{position:"relative"},children:[r>0&&e.jsx("div",{style:{position:"absolute",left:-10,top:-10,zIndex:2},children:e.jsx("span",{style:{display:"inline-block",minWidth:"22px",padding:"2px",borderRadius:"50%",fontSize:"12px",textAlign:"center",background:s.colorPrimaryHover,color:s.colorPrimaryBg},children:r})}),e.jsx(Le,{...n,style:{width:46,zIndex:0}})]})}function Sl({refreshGraph:t}){const{t:r}=l.useContext(ge),{availableViews:n,currentView:s,setCurrentView:o,searchParams:i,searchVisible:a,setSearchVisible:c,graphIsLoading:f,previousView:u,setPreviousView:p}=l.useContext(Be);return e.jsxs(h.Space,{wrap:!0,children:[e.jsx(Pn,{icon:e.jsx(K.FilterOutlined,{style:{color:a?"white":void 0}}),tooltip:r("advanced_search"),type:a?"primary":"default",onClick:()=>{c==null||c(!a)},disabled:f,badgeNumber:i==null?void 0:i.length}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:r("refresh"),disabled:f,loading:!1,onClick:()=>{t()}}),e.jsx(ar,{currentView:s,availableViews:n,onChangeView:d=>{p==null||p(s),o==null||o(d)},disabled:!1,previousView:u})]})}const{useToken:Cl}=h.theme,{Title:bl,Text:It}=h.Typography;function $t(t){const{title:r,children:n}=t,{title:s,currentView:o,currentId:i,currentItemIndex:a,results:c,totalItems:f,selectedRowItems:u}=l.useContext(Be),{t:p}=l.useContext(ge),{token:d}=Cl();function g(){if((o==null?void 0:o.type)==="form")return i?f===0?e.jsxs(e.Fragment,{children:[p("editingDocument")," (id:"," ",e.jsx(It,{copyable:{icon:e.jsx(K.CopyOutlined,{style:{color:"red"}})},children:i}),")"]}):e.jsxs(e.Fragment,{children:[p("register")," ",a===void 0?1:a+1," /"," ",c.length," ",p("of")," ",f," - ",p("editingDocument")," (id:"," ",e.jsx(It,{copyable:!0,children:i}),")"]}):"";if((o==null?void 0:o.type)==="tree"&&u){if(u.length===1)return e.jsxs(e.Fragment,{children:["1 ",p("selectedRegisters")," - (id:"," ",e.jsx(It,{copyable:!0,children:u[0].id}),")"]});if(u.length>1)return e.jsxs(e.Fragment,{children:[u.length," ",p("selectedRegisters"),e.jsx(It,{copyable:{text:u.map(S=>S.id).join(", ")}})]})}return null}return e.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[e.jsxs(h.Row,{className:"shadow-md",style:{padding:"1em",borderRadius:d.borderRadius,backgroundColor:d.colorPrimaryBg},align:"middle",children:[e.jsxs(h.Col,{flex:2,children:[e.jsx(bl,{level:3,style:{marginBottom:0},children:r||s}),g()]}),e.jsx(h.Col,{flex:3,children:e.jsx(h.Row,{justify:"end",children:n})})]}),e.jsx("div",{className:"pb-5"})]})}const xl=t=>{const{viewData:r,visible:n,model:s,context:o,domain:i,formView:a,treeView:c}=t,f=l.useRef(),u=l.useContext(Be),{setResults:p=void 0,setCurrentItemIndex:d=void 0,currentId:g=void 0,results:S=void 0,setSelectedRowItems:y=void 0,setSearchParams:m=void 0,searchVisible:w=!0,setSearchVisible:v=void 0,sorter:O=void 0,setSorter:D=void 0,setTotalItems:b=void 0,setSearchTreeNameSearch:E=void 0,setTreeIsLoading:k=void 0,limit:A,setLimit:C,searchParams:x,searchValues:_,setSearchValues:T,currentView:P}=u||{},[F,$]=l.useState(!0);l.useEffect(()=>{var W;(W=f.current)==null||W.refresh()},[x]),l.useEffect(()=>{r.view_id!==P.view_id&&$(!0)},[P]);const{clear:V,searchFilterLoading:L,searchError:M,offset:I,tableRefreshing:B}=zr({model:s,setSearchTreeNameSearch:E,setSelectedRowItems:y,searchParams:x,setSearchValues:T,setSearchParams:m,setSearchVisible:v,setTreeIsLoading:k,context:o,formView:a,treeView:c,sorter:O,setSorter:D,setCurrentItemIndex:d,setResultsActionView:p,resultsActionView:S,domain:i,currentId:g,setActionViewTotalItems:b,limit:A,setLimit:C});return!n||!r?null:e.jsxs(e.Fragment,{children:[e.jsx($t,{title:r.name,children:e.jsx(Sl,{refreshGraph:()=>{f.current.refresh()}})}),e.jsx(Xt,{fields:{...c.fields,...a.fields},searchFields:Yr([a.search_fields,c.search_fields]),formXml:a.arch,limit:A,onClear:V,offset:I,isSearching:L,onSubmit:W=>{$(!1),m==null||m(W.params),v==null||v(!1)},searchError:M,searchVisible:w,searchValues:_,showLimitOptions:!1}),B?e.jsx(h.Spin,{}):e.jsx(Et,{ref:f,view_id:r.view_id,model:s,context:o,domain:Ot(x||[],i),limit:F?A:void 0,manualIds:F?S==null?void 0:S.map(W=>W.id):void 0})]})},Tl=t=>{const{visible:r,formRef:n,model:s,currentId:o,domain:i,formView:a,context:c,defaultValues:f,forcedValues:u,results:p,setResults:d,setCurrentItemIndex:g}=t;return r?e.jsxs(e.Fragment,{children:[e.jsx($t,{children:e.jsx($n,{toolbar:a==null?void 0:a.toolbar})}),e.jsx(dt,{rootForm:!0,ref:n,model:s,defaultValues:f,forcedValues:u,formView:a,actionDomain:i,id:o,parentContext:c,onSubmitSucceed:(S,y)=>{p.findIndex(w=>w.id===S)===-1&&(p.push(y),d(p),g(p.length-1))}})]}):null};function Fl(t){const{onSearch:r,disabled:n=!1,searchText:s}=t,{t:o}=l.useContext(ge),[i]=h.Form.useForm(),[a,c]=l.useState(!1);function f(p){r(p.search)}l.useEffect(()=>{i.setFieldsValue({search:s})},[s]);function u(){c(!1),i.setFieldsValue({search:void 0}),r(void 0)}return e.jsx(h.Form,{form:i,onFinish:f,autoComplete:"off",children:e.jsxs(h.Row,{align:"middle",justify:"end",children:[e.jsx(h.Col,{children:e.jsx(h.Form.Item,{name:"search",noStyle:!0,children:e.jsx(h.Input,{autoFocus:!0,disabled:n,onChange:p=>{c(p.target.value.length>0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},suffix:(a||s&&s.length>0)&&e.jsx(h.Tooltip,{title:o("clear"),children:e.jsx(K.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:u})})})})}),e.jsx(h.Col,{children:e.jsx(h.Button,{htmlType:"submit",disabled:n,style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},children:o("search")})})]})})}const Bn=Pe.default.createContext({previewFeatures:!1});function Ol(t){var Z;const{availableViews:r,currentView:n,setCurrentView:s,selectedRowItems:o,setRemovingItem:i,removingItem:a,duplicatingItem:c,setDuplicatingItem:f,currentModel:u,searchTreeRef:p,setCurrentId:d,setCurrentItemIndex:g,searchParams:S,searchVisible:y,setSearchVisible:m,setSearchTreeNameSearch:w,searchTreeNameSearch:v,treeIsLoading:O,setPreviousView:D,previousView:b,results:E,limit:k,totalItems:A}=l.useContext(Be),{parentContext:C={},treeExpandable:x,toolbar:_}=t,{previewFeatures:T}=l.useContext(Bn),{t:P,lang:F}=l.useContext(ge),$=l.useContext(ct),{processAction:V}=$||{},[L,M]=l.useState(!1),I=v!==void 0&&v.trim().length>0;function B(){nt({confirmMessage:P("confirmRemove"),lang:F,onOk:()=>{W()}})}async function W(){var J;try{i==null||i(!0),await Y.getHandler().delete({model:u,ids:o.map(N=>N.id)}),d==null||d(void 0),g==null||g(void 0),(J=p==null?void 0:p.current)==null||J.refreshResults()}catch(N){$e(N)}finally{i==null||i(!1)}}async function U(){var J;try{f==null||f(!0);const N=o[0].id;await Y.getHandler().duplicate({id:N,model:u,context:{...C}})&&((J=p==null?void 0:p.current)==null||J.refreshResults())}catch(N){$e(N)}finally{f==null||f(!1)}}function q(J){V==null||V({actionData:J,values:{active_id:o==null?void 0:o.map(N=>N.id)[0],active_ids:o==null?void 0:o.map(N=>N.id)},fields:{},context:{...C,active_id:o==null?void 0:o.map(N=>N.id)[0],active_ids:o==null?void 0:o.map(N=>N.id)},onRefreshParentValues:()=>{var N;(N=p==null?void 0:p.current)==null||N.refreshResults()}})}return e.jsxs(h.Space,{wrap:!0,children:[O&&e.jsxs(e.Fragment,{children:[e.jsx(h.Spin,{}),tt(),tt()]}),x?null:e.jsxs(e.Fragment,{children:[e.jsx(Fl,{disabled:c||a||O,searchText:v,onSearch:J=>{J&&J.trim().length>0?w==null||w(J):w==null||w(void 0)}}),!x&&e.jsx(Pn,{icon:e.jsx(K.FilterOutlined,{style:{color:y?"white":void 0}}),tooltip:P("advanced_search"),type:y?"primary":"default",onClick:()=>{m==null||m(!y)},disabled:c||a||O,badgeNumber:S==null?void 0:S.length}),tt(),e.jsx(En,{disabled:O}),e.jsx(Ne,{icon:e.jsx(K.CopyOutlined,{}),tooltip:P("duplicate"),disabled:!o||(o==null?void 0:o.length)!==1||c||O,loading:c,onClick:U}),e.jsx(Ne,{icon:e.jsx(K.DeleteOutlined,{}),tooltip:P("delete"),disabled:!(o&&(o==null?void 0:o.length)>0)||O,loading:a,onClick:B}),tt()]}),e.jsx(Ne,{icon:e.jsx(K.InfoCircleOutlined,{}),tooltip:P("showLogs"),disabled:!(o&&(o==null?void 0:o.length)>0)||O,loading:!1,onClick:()=>{In(u,o[0].id,P)}}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:P("refresh"),disabled:c||a||O,loading:!1,onClick:()=>{var J;(J=p==null?void 0:p.current)==null||J.refreshResults()}}),!x&&e.jsxs(e.Fragment,{children:[tt(),e.jsx(ar,{currentView:n,availableViews:r,onChangeView:J=>{D==null||D(n),s==null||s(J)},previousView:b,disabled:O})]}),tt(),e.jsx(ft,{icon:e.jsx(K.ThunderboltOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||O,tooltip:P("actions"),items:_==null?void 0:_.action,onItemClick:J=>{!J||q(J)}}),e.jsx(ft,{icon:e.jsx(K.PrinterOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||O,tooltip:P("reports"),items:_==null?void 0:_.print,onItemClick:J=>{!J||q({...J,datas:{...J.datas||{},ids:o.map(N=>N.id)}})}}),T&&e.jsxs(e.Fragment,{children:[tt(),e.jsx(ft,{icon:e.jsx(wr.default,{component:()=>e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-database-export",width:"1em",height:"1em",viewBox:"0 0 24 24",strokeWidth:"1.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),e.jsx("ellipse",{cx:"12",cy:"6",rx:"8",ry:"3"}),e.jsx("path",{d:"M4 6v6c0 1.657 3.582 3 8 3a19.84 19.84 0 0 0 3.302 -.267m4.698 -2.733v-6"}),e.jsx("path",{d:"M4 12v6c0 1.599 3.335 2.905 7.538 2.995m8.462 -6.995v-2m-6 7h7m-3 -3l3 3l-3 3"})]})}),tooltip:P("export"),items:[{id:"print_screen",name:P("printScreen")},{id:"export",name:P("advancedExport")}],onItemClick:J=>{if(J.id==="print_screen"){let N=(o==null?void 0:o.map(H=>H.id))||[];N.length===0&&(N=(E==null?void 0:E.map(H=>H.id))||[]),q({id:-1,model:u,report_name:"printscreen.list",type:"ir.actions.report.xml",datas:{model:u,ids:N}});return}M(!0)},disabled:c||a||O||I}),e.jsx(Tn,{visible:L,locale:F,onClose:()=>M(!1),model:u,domain:Ot(((Z=p==null?void 0:p.current)==null?void 0:Z.getDomain())||[],S||[]),limit:k,totalRegisters:A||0,selectedRegistersToExport:o,visibleRegisters:(E==null?void 0:E.length)||0,context:C})]})]})}function tt(){return e.jsx("div",{className:"inline-block w-2"})}const _l=t=>{const{visible:r,searchTreeRef:n,model:s,context:o,formView:i,treeView:a,domain:c,setCurrentItemIndex:f,results:u,setCurrentId:p,setCurrentView:d,availableViews:g,searchTreeNameSearch:S}=t,{currentView:y,setPreviousView:m}=l.useContext(Be);return r?e.jsxs(e.Fragment,{children:[e.jsx($t,{children:e.jsx(Ol,{toolbar:a==null?void 0:a.toolbar,parentContext:o,treeExpandable:(a==null?void 0:a.isExpandable)||!1})}),e.jsx(Rt,{ref:n,rootTree:!0,model:s,parentContext:o,nameSearch:S,formView:i,treeView:a,domain:c,onRowClicked:w=>{const{id:v}=w;p(v);const O=u.findIndex(b=>b.id===v);m==null||m(y),f(O);const D=g.find(b=>b.type==="form");d(D)}})]}):null},lr=Pe.default.createContext(null),Dl=t=>{const[r,n]=l.useState(!1),[s,o]=l.useState(!1),{children:i,dashboardRef:a,openAction:c}=t;return e.jsx(lr.Provider,{value:{isLoading:r,setIsLoading:n,dashboardRef:a,openAction:c,moveItemsEnabled:s,setMoveItemsEnabled:o},children:i})};function kl(){const{isLoading:t,dashboardRef:r,moveItemsEnabled:n,setMoveItemsEnabled:s}=l.useContext(lr),{t:o}=l.useContext(ge);return e.jsxs(h.Space,{wrap:!0,children:[e.jsx(Ne,{icon:e.jsx(K.BorderOuterOutlined,{style:{color:n?"white":void 0}}),type:n?"primary":"default",tooltip:o("moveDashboard"),disabled:t,loading:!1,onClick:()=>{s(!n)}}),Ml(),e.jsx(Ne,{icon:e.jsx(K.SettingOutlined,{}),tooltip:o("configDashboard"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.configDashboard()}}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:o("refresh"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.refresh()}})]})}function Ml(){return e.jsx("div",{className:"inline-block w-2"})}const Vl=t=>{const{dashboardData:r}=t,n=l.useRef(),s=l.useContext(qe),{openShortcut:o}=s||{};return r?e.jsxs(Dl,{dashboardRef:n,openAction:i=>{o(i)},children:[e.jsx($t,{children:e.jsx(kl,{})}),e.jsx(Wn,{ref:n,model:r.model,id:r.id,context:r==null?void 0:r.context,configAction:r==null?void 0:r.configAction})]}):null};async function El(t){const r=await Promise.all(t.map(async s=>{try{return await s.promise}catch(o){return console.error(`Error for ${s.viewTuple}:`,o),null}}));return t.map((s,o)=>({...s,info:r[o]})).filter(s=>s.info!==null)}function Il(t,r){const{domain:n,model:s,context:o,views:i,title:a,setCanWeClose:c,tabKey:f,initialView:u,formDefaultValues:p,formForcedValues:d={},res_id:g=!1,action_id:S,action_type:y,treeExpandable:m=!1,limit:w}=t,[v,O]=l.useState(),[D,b]=l.useState([]),[E,k]=l.useState(!0),A=g||void 0,[C,x]=l.useState(A),[_,T]=l.useState([]),[P,F]=l.useState(),[$,V]=l.useState([]),[L,M]=l.useState(),[I,B]=l.useState(0),[W,U]=l.useState(!1),[q,Z]=l.useState(!1),[J,N]=l.useState(),{t:H}=l.useContext(ge),R=l.useRef(),ie=l.useRef(),ae=l.useContext(qe),{setCurrentView:ee,setCurrentId:X,tabs:pe,activeKey:ye,openAction:De,onRemoveTab:de}=ae||{};co.useHotkeys("ctrl+g,command+g",te=>{te.preventDefault(),Ee()},[ye,pe,v,P,$]);function oe(te){x(te),X==null||X(te)}function Ce(te){O(te),ee==null||ee(te)}l.useImperativeHandle(r,()=>({canWeClose:xe}));const we=async()=>{k(!0);const te=[],ue=[];for(const ce of i){const[Fe,ke]=ce;ke!=="dashboard"?ue.push({viewTuple:ce,promise:Y.getHandler().getView({model:s,type:ke,id:Fe,context:o})}):ue.push({viewTuple:ce})}const ve=await El(ue);for(const ce of ve){if(!ce)continue;const[,Fe]=ce.viewTuple;let ke=ce.info;switch(Fe){case"dashboard":{const Ue=i.find(Ge=>{const[,Q]=Ge;return Q==="form"});let Ke;Ue&&(Ke={action_id:S,action_type:y,name:a,res_id:o.active_id,res_model:s,view_id:Ue[0],view_type:Ue[1]}),te.push({type:"dashboard",id:o.active_id,model:s,context:o,configAction:Ke});break}case"form":{te.push({...ke,type:Fe});break}case"tree":{te.push({...ke,isExpandable:m,type:Fe});break}case"graph":{te.push({...ke,type:Fe});break}}}let Ve;!u&&te.find(ce=>ce.type==="tree")?Ve=te.find(Fe=>Fe.type==="tree"):u?Ve=te.find(Fe=>u.id?Fe.type===u.type&&Fe.view_id===u.id:Fe.type===u.type):Ve=te.find(Fe=>Fe.type==="form"),Ve||($e(`Error determining the first view to show for model ${s}.
|
|
35
|
+
`,fn=Pe.default.createContext(null),xa=({children:t,initialView:r})=>{const[n,s]=l.useState(r),[o,i]=l.useState(0),[a,c]=l.useState(!1);return e.jsx(fn.Provider,{value:{currentView:n,setCurrentView:s,itemIndex:o,setItemIndex:i,manualTriggerChange:a,setManualTriggerChange:c},children:t})},{getValueForOperator:hn}=se.graphProcessor,Dt=.7,kt=30,pn=t=>{const{model:r,domain:n,context:s,colorCondition:o,totalDomain:i,showPercent:a=!1,icon:c,suffix:f,field:u,operator:p,manualIds:d}=t,[g,S]=l.useState(!1),[y,m]=l.useState(),[w,v]=l.useState(),[O,D]=l.useState(),[b,E]=l.useState(0),[k,A]=l.useState(0),[C,x]=l.useState(),[_,T]=l.useState(),[P,F]=l.useState();l.useEffect(()=>{L()},[r,o]);async function $({domain:M,isTotal:I}){if(I)return await V({domain:M});if(u&&p){const B=d||await Y.getHandler().searchAllIds({params:M,model:r,context:s}),W=await Y.getHandler().readObjects({model:r,ids:B,fieldsToRetrieve:[u],context:s});return hn({values:W.map(U=>U[u]),operator:p})}else return d?d.length:await Y.getHandler().searchCount({model:r,params:M,context:s})}async function V({domain:M}){if(u&&p){const I=await Y.getHandler().searchAllIds({params:M,model:r,context:s}),B=await Y.getHandler().readObjects({model:r,ids:I,fieldsToRetrieve:[u],context:s});return hn({values:B.map(W=>W[u]),operator:p})}else return await Y.getHandler().searchCount({model:r,params:M,context:s})}async function L(){S(!0);let M,I;try{const B=await $({domain:n,isTotal:!1});if(m(B),i){const W=await Y.getHandler().evalDomain({domain:i,values:{},context:s});M=await $({domain:W,isTotal:!0}),D(M)}if(M?(I=Math.round(B/M*100*100)/100,v(I)):v(0),o){const W=await Y.getHandler().parseCondition({condition:o,values:{value:B,percent:I},context:s});x(W)}if(c)if(c.indexOf(":")!==-1){const W=await Y.getHandler().parseCondition({condition:c,values:{value:B,percent:I},context:s});T(W)}else T(c)}catch(B){F(JSON.stringify(B))}S(!1)}return P?e.jsx(h.Alert,{className:"mt-10",message:P,type:"error",banner:!0}):g?e.jsx("div",{style:{padding:"1rem"},children:e.jsx(K.LoadingOutlined,{style:{height:"12px"}})}):e.jsx(Ht.default,{bounds:!0,onResize:M=>{var I,B;E((I=M.bounds)==null?void 0:I.height),A((B=M.bounds)==null?void 0:B.width)},children:({measureRef:M})=>a?e.jsx(Fa,{value:y,total:O,percent:w,measureRef:M,height:b,width:k,color:C,icon:_,suffix:f}):e.jsx(Ta,{value:y,total:O,measureRef:M,height:b,width:k,color:C,icon:_,suffix:f})})};function gn(t,r){const s=document.createElement("canvas").getContext("2d");return s.font=r||getComputedStyle(document.body).font,s.measureText(t).width}function Ta({measureRef:t,width:r,height:n,total:s,value:o,color:i,icon:a,suffix:c}){let f=n*Dt<kt?kt:n*Dt;const u=o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0});let p=s?`${u}/${s}`:`${u}`;c&&(p+=" "+c);let d=gn(p,`bold ${Math.floor(f*1.03)}px sans-serif`);a&&(d=d*2),d>=r*.85&&(f=r*.85/d*f);const g=a&&We(a);return e.jsx("div",{ref:t,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:e.jsxs(Kt.default,{style:{fontSize:f,margin:0,color:i},children:[g&&e.jsx(g,{style:{fontSize:f*.7}}),g?` ${p}`:p]})})}function Fa({measureRef:t,height:r,width:n,percent:s,total:o,value:i,color:a,icon:c,suffix:f}){const u=r*.65;let p=u*Dt<kt?kt:u*Dt;const d=i==null?void 0:i.toLocaleString("es-ES",{useGrouping:!0});let g=o?`${d}/${o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0})}`:`${d}`;f&&(g+=" "+f);const S=`${s==null?void 0:s.toLocaleString("es-ES",{useGrouping:!0})}%`;let y=gn(S,`bold ${Math.floor(p*1.03)}px sans-serif`);c&&(y=y*1.5);const m=c&&We(c);return(y>=n*.85||p*2<u)&&(p=n*.85/y*p),e.jsx("div",{ref:t,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",flexDirection:"column",padding:"0.2rem"},children:e.jsxs(h.Row,{align:"middle",children:[m&&e.jsx(h.Col,{style:{fontSize:p*1,color:a,paddingRight:"10px"},children:e.jsx(m,{})}),e.jsxs(h.Col,{children:[e.jsx(Kt.default,{style:{fontSize:p*.8,margin:0,color:a},children:m?` ${s}%`:`${s}%`}),e.jsx(Kt.default,{style:{fontSize:p*.4,margin:0,color:a,textAlign:"center"},children:g})]})]})})}const tr=t=>r=>{const n=r.value.toLocaleString("es-ES",{useGrouping:!0});return{name:t==="pie"?r.x:r.type,value:n}},Mt=t=>{if(typeof t=="string"&&Oa(t))return parseFloat(t).toLocaleString("es-ES",{useGrouping:!0});if(_a(t))return t.toLocaleString("es-ES",{useGrouping:!0});if(Da(t)){const r=ka(t);return r===null?t:Ze(t,Vt.input[r]).format(Vt.output[r])}else return t},Oa=t=>/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/.test(t),_a=t=>typeof t=="number"&&!isNaN(t),mn={default:{padding:"auto",xAxis:{tickCount:5,label:{formatter:Mt}},yAxis:{label:{formatter:Mt}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:tr("default")}},pie:{appendPadding:10,radius:.9,label:{type:"inner",offset:"-30%",content:({percent:t})=>`${(t*100).toFixed(0)}%`,style:{fontSize:14,textAlign:"center"}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:tr("pie")},interactions:[{type:"element-active"}]},barGrouped:{isGroup:!0,legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:tr("barGrouped")},xAxis:{label:{formatter:Mt}},yAxis:{label:{formatter:Mt}},label:{position:"middle",layout:[{type:"interval-adjust-position"},{type:"interval-hide-overlap"},{type:"adjust-color"}]}}};function Da(t){return typeof t!="string"||t===void 0?!1:new Date(t).toString()!=="Invalid Date"}const Vt={input:{hours:"YYYY-MM-DD HH:mm",days:"YYYY-MM-DD",weeks:"YYYY-[W]WW",months:"YYYY-MM",years:"YYYY"},output:{hours:"DD/MM/YYYY HH:mm",days:"DD/MM/YYYY",weeks:"[W]WW/YYYY",months:"MM/YYYY",years:"YYYY"}};function ka(t){for(const r in Vt.input)if(Ze(t,Vt.input[r],!0).isValid())return r;return null}const{processGraphData:Ma}=se.graphProcessor,{getFieldsToRetrieve:Va}=se.graphFieldUtils,Ea=t=>{const{model:r,domain:n=[],context:s={},xml:o,limit:i,uninformedString:a,manualIds:c}=t,[f,u]=l.useState(!1),[p,d]=l.useState(),[g,S]=l.useState(),[y,m]=l.useState(),[w,v]=l.useState("line");return et.default(()=>{(async()=>{u(!0),d(void 0);const O=se.parseGraph(o);v(O.type||"line");const D=Va({ooui:O});let b,E;try{({values:b,fields:E}=await $a({model:r,domain:n,context:s,limit:i,order:O.timerange?O.x.name:null,fields:D,manualIds:c}))}catch(k){d("Error fetching graph data values: "+JSON.stringify(k)),u(!1);return}try{if(!b||!E){d("No values or fields returned"),u(!1);return}m(b);const k=Ma({ooui:O,values:b,fields:E,options:{uninformedString:a}});S(k)}catch(k){d("Error processing graph data: "+k),u(!1);return}u(!1)})()},[o,r,i,s,n]),{loading:f,error:p,type:w,values:g,evaluatedEntries:y}};async function Ia({model:t,context:r,fields:n}){return await Y.getHandler().getFields({model:t,context:r,fields:n})}async function $a({fields:t,model:r,domain:n,context:s,order:o,limit:i,manualIds:a}){const c=await Ia({model:r,context:s,fields:t});if(a){let u=await Y.getHandler().readObjects({model:r,ids:a,fieldsToRetrieve:t,context:s});return o&&(u=[...u].sort((p,d)=>p[o]-d[o])),{values:u,fields:c}}return{values:await Y.getHandler().search({model:r,params:n,fields:t,context:s,limit:i,order:o}),fields:c}}const Aa={line:Bt.Line,bar:Bt.Column,pie:Bt.Pie},La=t=>{var v;const{model:r,domain:n,context:s,xml:o,limit:i,manualIds:a}=t,{t:c}=l.useContext(ge),{error:f,loading:u,values:p,type:d,evaluatedEntries:g}=Ea({model:r,xml:o,limit:i,domain:n,context:s,uninformedString:c("uninformed"),manualIds:a});if(f)return e.jsx(h.Alert,{message:f,type:"error",banner:!0});if(u)return e.jsx(h.Spin,{});if(!p)return e.jsx(h.Alert,{message:"No data to display",type:"info"});const{data:S,isGroup:y,isStack:m}=p,w=Aa[d];return w?e.jsxs("div",{style:{padding:"1rem"},children:[e.jsx("p",{style:{textAlign:"right"},children:`${c("totalRegisters")} ${(v=g==null?void 0:g.length)==null?void 0:v.toLocaleString("es-ES",{useGrouping:!0})}`}),e.jsx(w,{...Na({type:d,data:S,isGroup:y,isStack:m})})]}):e.jsx(e.Fragment,{children:`Unknown graph type: ${d}`})};function Na(t){const{type:r,data:n,isGroup:s,isStack:o}=t;let i=mn[r];return i||(i=mn.default),i.data=n,r==="pie"?(i.colorField="x",i.angleField="value"):(i.xField="x",i.yField="value",i.seriesField="type",i.isGroup=s,o&&(i.isStack=!0,i.groupField="stacked")),i}const Pa=(t,r)=>{const{view_id:n,model:s,context:o,domain:i,limit:a,manualIds:c}=t,[f,u]=l.useState(!1),[p,d]=l.useState(),[g,S]=l.useState(),y=l.useContext(Be),{setGraphIsLoading:m=void 0}=y||{};l.useImperativeHandle(r,()=>({refresh:()=>{w()}})),l.useEffect(()=>{w()},[n]);async function w(){u(!0),m==null||m(!0);try{const v=await Y.getHandler().getView({model:s,id:n,type:"graph",context:o});S(v.arch);const O=se.parseGraph(v.arch);d(O)}catch(v){return console.error(v),e.jsx(e.Fragment,{children:JSON.stringify(v)})}u(!1),m==null||m(!1)}if(f)return e.jsx("div",{style:{width:"100%",display:"flex",height:"20%",justifyContent:"center",alignContent:"center",padding:"1rem"},children:e.jsx(K.LoadingOutlined,{style:{height:"12px"}})});if(!p)return null;switch(p.type){case"indicatorField":case"indicator":{const v=p,O=v.type==="indicatorField"?{field:v.field,operator:v.operator}:{};return e.jsx(pn,{showPercent:v.showPercent,totalDomain:v.totalDomain,colorCondition:v.color,model:s,context:o,domain:i,icon:v.icon,suffix:v.suffix,manualIds:c,...O})}case"line":case"bar":case"pie":return e.jsx(La,{model:s,context:o,domain:i,xml:g,limit:a,manualIds:c});default:return e.jsx(e.Fragment,{children:`Graph ${p.type} not implemented`})}},Et=l.forwardRef(Pa),{confirm:Ba}=h.Modal,Ha=({onOk:t,lang:r})=>{Ba({title:be("removeItems",r),icon:e.jsx(K.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmRemove",r),okText:be("yesConfirmRemove",r),onOk:t,cancelText:be("cancel",r)})},{confirm:Ka}=h.Modal,Ya=({onOk:t,lang:r})=>{Ka({title:be("unlinkItems",r),icon:e.jsx(K.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmUnlink",r),okText:be("yesConfirmUnlink",r),onOk:t,cancelText:be("cancel",r)})},{useToken:Wa}=h.theme,qa=t=>{const{title:r,readOnly:n,onCreateItem:s,onToggleViewMode:o,mode:i,onDelete:a,totalItems:c,currentItemIndex:f,onPreviousItem:u,onNextItem:p,isMany2Many:d,onSearchItem:g,selectedRowKeys:S,showCreateButton:y,showToggleButton:m}=t,{token:w}=Wa();function v(){return e.jsx("div",{className:"inline-block w-3"})}function O(){return e.jsx("div",{className:"flex flex-grow h-8 text-white",style:{borderRadius:w.borderRadius,backgroundColor:w.colorPrimaryActive},children:e.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:e.jsx("span",{className:"pl-2 font-bold",children:r})})})}function D(){return e.jsx(Le,{tooltip:d?"Unlink":"Delete",icon:d?e.jsx(K.ApiOutlined,{}):e.jsx(K.DeleteOutlined,{}),onClick:a,disabled:c===0||n||i!=="form"&&S.length===0})}function b(){let k="_";return c===0?k="_":k=(f+1).toString(),e.jsxs("span",{className:"pl-1 pr-1",children:["(",k,"/",c,")"]})}function E(){return e.jsxs(e.Fragment,{children:[v(),e.jsx(Le,{tooltip:"Previous item",icon:e.jsx(K.LeftOutlined,{}),onClick:u}),b(),e.jsx(Le,{tooltip:"Next item",icon:e.jsx(K.RightOutlined,{}),onClick:p})]})}return e.jsxs("div",{className:"flex mb-2",children:[O(),e.jsxs("div",{className:"flex-none h-8 pl-2",children:[i!=="graph"&&y&&e.jsx(Le,{tooltip:"Create new item",icon:e.jsx(K.FileAddOutlined,{}),disabled:n,onClick:s}),d&&y&&e.jsx(Le,{tooltip:"Search existing item",icon:e.jsx(K.SearchOutlined,{}),disabled:n,onClick:g}),i!=="graph"&&v(),i!=="graph"&&D(),i==="form"&&E(),v(),m&&e.jsx(Le,{tooltip:"Toggle view mode",icon:e.jsx(K.AlignLeftOutlined,{}),onClick:o})]})]})},Ua={form:se.Form,tree:se.Tree,graph:Et};function Ga(t){const r=t.map(s=>s.id);return t.filter((s,o)=>{const{id:i}=s;return!r.includes(i,o+1)})}const ja=t=>{var Ge;const{value:r,onChange:n,ooui:s,views:o}=t,{items:i=[]}=r||{},{currentView:a,setCurrentView:c,itemIndex:f,setItemIndex:u}=l.useContext(fn),p=l.useContext(_e),{activeId:d,getFields:g,getValues:S,getContext:y,domain:m}=p||{},{lang:w,t:v}=l.useContext(ge),[O,D]=l.useState(!1),[b,E]=l.useState(!1),[k,A]=l.useState(),[C,x]=l.useState(!1),[_,T]=l.useState(!1),[P,F]=l.useState(),[$,V]=l.useState([]),[L,M]=l.useState(!1),I=l.useRef([]),[B,W]=l.useState(),U=l.useRef(),[q,Z]=l.useState(void 0),{readOnly:J,relation:N,context:H,domain:R}=s,ie=s.type==="many2many",{id:ae}=s,ee=i.filter(Q=>(Q.values||Q.treeValues)&&Q.operation!=="pendingRemove"),X=l.useRef();l.useEffect(()=>{if(X.current!==a){X.current=a,pe();return}pe()},[i,a]);const pe=l.useCallback(()=>{(a==="form"&&i.some(Q=>!Q.values)||a==="tree"&&i.some(Q=>!Q.treeValues))&&De()},[i,a]);l.useEffect(()=>{oe()},[m]);const ye=Q=>{var fe,Te;n==null||n({fields:((fe=o.get("form"))==null?void 0:fe.fields)||((Te=o.get("tree"))==null?void 0:Te.fields),items:Ga(Q)})},De=async()=>{await de(),f>ee.length-1&&f!==0&&u(0)},de=async Q=>{var fe,Te,le;E(!0),D(!1),A(void 0);try{const[Se,he]=await Gt({treeView:{arch:(fe=o.get("tree"))==null?void 0:fe.arch,fields:(Te=o.get("tree"))==null?void 0:Te.fields},formView:{fields:((le=o.get("form"))==null?void 0:le.fields)||{}},model:N,items:i,context:{...y==null?void 0:y(),...H},currentView:Q||a});return U.current||(U.current=Se.map(Ae=>Ae.id)),(a||Q)==="tree"&&he&&Z(he),ye(Se),Se}catch(Se){A(Se)}finally{E(!1)}};async function oe(){R&&(I.current=await Y.getHandler().evalDomain({domain:R,values:lt({fields:g(),values:S()}),fields:g(),context:y()})),m&&m.length>0&&(I.current=I.current.concat(se.transformDomainForChildWidget({domain:m,widgetFieldName:ae})))}const Ce=()=>{const Q=Array.from(o.keys()),fe=Q[(Q.indexOf(a)+1)%Q.length];a==="form"?Me(()=>{c(fe)}):c(fe)},we=()=>{f>0&&(a==="form"?Me(()=>{u(f-1)}):u(f-1))},xe=()=>{const Q=ee.length;f<Q-1&&(a==="form"?Me(()=>{u(f+1)}):u(f+1))},Ee=async()=>{const Q=ee[f].id,fe=(await Y.getHandler().readObjects({model:N,ids:[Q],fields:o.get("form").fields,context:{...y==null?void 0:y(),...H}}))[0],Te=(await Y.getHandler().readObjects({model:N,ids:[Q],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...H}}))[0],le=i.map(Se=>Se.id===Q?{...Se,operation:"original",values:fe,treeValues:Te}:Se);ye(le)},Me=Q=>{O?wt({lang:w,onOk:()=>{Ee(),Q(),D(!1)}}):Q()},He=()=>{if(ie){Ya({lang:w,onOk:()=>{a==="form"?ue():ve()}});return}Ha({lang:w,onOk:()=>{a==="form"?ue():ve()}})},Ie=async()=>{const{inv_field:Q}=s;let fe;Q&&d&&(fe={[Q]:d}),a==="form"?Me(()=>{M(!0),F({defaultValues:fe}),x(!0)}):(M(!0),F({defaultValues:fe}),x(!0))},te=async()=>{a==="form"?Me(()=>{T(!0)}):T(!0)},ue=async()=>{E(!0),D(!1),A(void 0);try{if(ee[f].id>0){const Q=i.map(fe=>fe.id===ee[f].id?{...fe,operation:"pendingRemove"}:fe);ye(Q)}else ye(i.filter(Q=>Q.id!==ee[f].id))}catch(Q){A(Q)}u(0),E(!1)},ve=async()=>{const Q=ee.filter(fe=>$.includes(fe.id));E(!0),D(!1),A(void 0);try{const fe=Q.map(le=>le.id),Te=i.filter(le=>!(fe.includes(le.id)&&le.id<0)).map(le=>fe.includes(le.id)?{...le,operation:"pendingRemove"}:le);ye(Te)}catch(fe){A(fe)}u(0),E(!1)},Ve=(Q,fe,Te)=>{let le;if(Q)le=i.map(Se=>Se.id===Q?{id:Q,operation:Q>0?"pendingUpdate":"pendingCreate",values:{...Te,id:Q},treeValues:{...Te,id:Q}}:Se);else{const Se=js(i);le=i.concat({id:Se,operation:"pendingCreate",values:{...Te,id:Se},treeValues:{...Te,id:Se}})}ye(le),L||x(!1)},ce=async Q=>{const{id:fe}=Q;let Te=i;const le=i.find(Se=>Se.id===fe);(le==null?void 0:le.values)===void 0&&(Te=await de("form")),F(Te.find(Se=>Se.id===fe)),M(!1),x(!0)},Fe=async Q=>{E(!0);let fe=i;const Te=Q.filter(le=>!i.find(Se=>Se.id===le));try{for(const le of Te){const Se=(await Y.getHandler().readObjects({model:N,ids:[le],fields:o.get("form").fields,context:{...y==null?void 0:y(),...H}}))[0],he=(await Y.getHandler().readObjects({model:N,ids:[le],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...H}}))[0];fe.push({id:le,operation:"pendingLink",values:Se,treeValues:he})}ye(fe)}catch(le){A(le)}finally{E(!1)}};function ke(){const Q=Ua[a];if(a==="graph")return se.parseGraph(o.get("graph").arch).string;{const fe=new Q(o.get(a).fields);return fe.parse(o.get(a).arch),fe.string}}const Ue=()=>{var fe,Te,le,Se;if(a==="form")return ee.length===0?v("noCurrentEntries"):a!==X.current&&i.some(he=>!he.values)?e.jsx(h.Spin,{}):e.jsx(dt,{formView:o.get("form"),values:(fe=ee[f])==null?void 0:fe.values,parentContext:{...y==null?void 0:y(),...H},model:N,id:(Te=ee[f])==null?void 0:Te.id,submitMode:"values",onFieldsChange:he=>{var ze;const Ae=(ze=ee[f])==null?void 0:ze.id,je=i.map(Re=>Re.id===Ae?{...Re,operation:Re.operation==="original"?"pendingUpdate":Re.operation,values:{...he,id:Ae},treeValues:{...he,id:Ae}}:Re);ye(je),D(!0)},readOnly:J});let Q=[];if(ee.some(he=>he.treeValues)&&(Q=B?it({resultsToSort:ee.map(he=>he.treeValues),sorter:B,fields:{...o.get("tree").fields,...((le=o.get("form"))==null?void 0:le.fields)||{}}}):ee.map(he=>he.treeValues)),a==="tree")return e.jsx(Ct,{total:ee.length,limit:ee.length,treeView:o.get("tree"),results:Q,loading:b,onRowClicked:((Se=o.get("form"))==null?void 0:Se.fields)!==void 0?ce:void 0,showPagination:!1,rowSelection:{selectedRowKeys:$,onChange:V},sorter:B,onChangeSort:W,context:{...y==null?void 0:y(),...H},colorsForResults:q});if(a==="graph"){const he=[[`${s.inv_field}`,"=",d]];return e.jsx(Et,{view_id:o.get("graph").view_id,model:s.relation,domain:he,context:{...y==null?void 0:y(),...H},limit:0})}};if(k)return e.jsx(h.Alert,{className:"mt-10",message:k,type:"error",banner:!0});const Ke=L;return b?e.jsx(h.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(qa,{mode:a,title:ke(),readOnly:J,isMany2Many:ie,formHasChanges:O,totalItems:ee.length,currentItemIndex:f,onDelete:He,onCreateItem:Ie,onToggleViewMode:Ce,onPreviousItem:we,onNextItem:xe,onSearchItem:te,selectedRowKeys:$,showCreateButton:((Ge=o.get("form"))==null?void 0:Ge.fields)!==void 0,showToggleButton:o.size>1}),Ue(),e.jsx(ut,{formView:o.get("form"),model:N,id:P==null?void 0:P.id,submitMode:"values",values:P==null?void 0:P.values,defaultValues:P==null?void 0:P.defaultValues,visible:C,onSubmitSucceed:Ve,parentContext:{...y==null?void 0:y(),...H},onCancel:()=>{M(!1),x(!1)},readOnly:J,mustClearAfterSave:Ke}),e.jsx(er,{domain:I.current,model:N,context:{...y==null?void 0:y(),...H},visible:_,onSelectValues:async Q=>{T(!1),Fe(Q)},onCloseModal:()=>{T(!1)}})]})},yn=t=>{const{ooui:r}=t,{mode:n,relation:s,views:o,required:i,context:a}=r;let c;const[f,u]=l.useState(!0),[p,d]=l.useState(),[g,S]=l.useState(new Map),y=l.useContext(_e),{getContext:m}=y||{};et.default(()=>{v()},[r]);const w=async D=>o&&o[D]?o[D]:await Y.getHandler().getView({model:s,type:D,context:{...m==null?void 0:m(),...a}}),v=async()=>{u(!0),d(void 0);try{if(n&&n.length>0){for(const D of n){const b=await w(D);g.set(D,b)}S(g)}else{const D=await w("form"),b=await w("tree");g.set("form",D),g.set("tree",b),S(g)}}catch(D){d(JSON.stringify(D))}finally{u(!1)}};if(n&&n.length>0?c=n[0]:c="tree",f)return e.jsx(h.Spin,{});if(p)return e.jsx(h.Alert,{className:"mt-10",message:p,type:"error",banner:!0});const O=async(D,b)=>{if(!b)throw new Error;if(!b.items)throw new Error;if(!Array.isArray(b.items))throw new Error;if(b.items.length===0)throw new Error};return e.jsx(xa,{initialView:c,children:e.jsx(me,{required:i,type:"array",validator:O,...t,children:e.jsx(ja,{ooui:r,views:g})})})},{useToken:za}=h.theme,wn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"number",...t,children:e.jsx(Ja,{ooui:r})})},Ja=t=>{const{ooui:r,value:n,onChange:s}=t,{id:o,readOnly:i,required:a}=r,{token:c}=za(),f=a&&!i?{backgroundColor:c.colorPrimaryBg}:void 0,u=l.useRef(),[p,d]=l.useState(),g=l.useContext(_e),{elementHasLostFocus:S}=g||{};l.useEffect(()=>{d(Qr(n))},[n]);const y=v=>{s==null||s(v)};function m(v){u.current=v.target.value,d(v.target.value)}async function w(){y(Xi(p)),await new Promise(v=>setTimeout(v,300)),S==null||S()}return e.jsx(h.Input,{value:p,disabled:i,className:"w-full",style:f,id:o,placeholder:"00:00",onChange:m,onBlur:w})};function rr(t){const{ooui:r,showLabel:n=!0,responsiveBehaviour:s}=t,o=We(r.icon||"");return e.jsx(e.Fragment,{children:(r.label||o)&&n?e.jsx(hr.FieldSet,{label:r.label,icon:o,children:e.jsx(Jt,{container:r.container,responsiveBehaviour:s})}):e.jsx(Jt,{container:r.container,responsiveBehaviour:s})})}const{TabPane:Za}=h.Tabs;function vn(t){const{ooui:r,responsiveBehaviour:n}=t,s=r.pages;function o(i){if(i){const a=We(i);return a&&e.jsx(a,{})}}return e.jsx(h.Tabs,{defaultActiveKey:"1",tabPosition:r.tabPosition,children:s.filter(i=>!i.invisible).map(i=>e.jsx(Za,{tab:e.jsxs(e.Fragment,{children:[o(i.icon)," ",i.label]}),children:e.jsx(rr,{ooui:i,showLabel:!1,responsiveBehaviour:n})},i.label))})}const{useToken:Xa}=h.theme,{TextArea:nr}=h.Input,Sn=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o,height:i,translatable:a}=r,{token:c}=Xa(),f=o&&!s?{backgroundColor:c.colorPrimaryBg}:void 0,u=l.useContext(_e),{elementHasLostFocus:p}=u||{};return e.jsx(me,{required:o,...t,children:a?e.jsx(Qa,{field:n,height:i,requiredStyle:f}):e.jsx(nr,{disabled:s||a,style:{minHeight:i?i+"px":"100%",...f},rows:4,onBlur:p})})},Qa=({value:t,field:r,requiredStyle:n,onChange:s,height:o})=>{const i=l.useContext(_e),{activeId:a,activeModel:c,fetchValues:f,formHasChanges:u,elementHasLostFocus:p}=i||{},[d,g]=l.useState(!1),{t:S}=l.useContext(ge);return a?e.jsxs(e.Fragment,{children:[e.jsx("div",{onClick:()=>{if(u!=null&&u()){Je(S("saveBeforeTranslate"));return}d||g(!0)},children:e.jsx(nr,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",cursor:"pointer",...n},id:r,disabled:!0,rows:4,onBlur:p})}),e.jsx(Fr,{id:a,model:c,field:r,visible:d,onCloseModal:()=>{g(!1)},onSubmitSucceed:()=>{g(!1),f==null||f()}})]}):e.jsxs(e.Fragment,{children:[e.jsx(h.Row,{gutter:8,wrap:!1,children:e.jsx(nr,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",...n},id:r,rows:4,onBlur:p})}),e.jsx(h.Row,{justify:"end",style:{paddingTop:5},children:e.jsx(Le,{tooltip:S("translate"),icon:e.jsx(K.TranslationOutlined,{}),onClick:async()=>{u!=null&&u()?Je(S("saveBeforeTranslate")):Je(S("enterTextBeforeTranslate"))},children:S("translate")})})]})},Cn=t=>{const{ooui:r}=t,{label:n,icon:s}=r,o=We(s||"");return e.jsx(h.Divider,{orientation:"left",className:"text-sm",children:(o||n)&&e.jsxs(h.Space,{children:[o?e.jsx(o,{}):null,n]})})},Ra=({model:t,context:r,locale:n,selectedRegistersToExport:s,domain:o,limit:i,onClose:a})=>{const c=l.useRef({}),f=l.useRef(new Map),u=l.useCallback(async w=>{if(w.selectedKeys===void 0||w.selectedKeys.length===0){Je(be("selectAtLeastOneField",n));return}let v=o;w.registersAmount==="selected"&&(s==null?void 0:s.length)!==0&&(v=[["id","in",s==null?void 0:s.map(b=>b.id)]]);const{datas:O}=await Y.getHandler().exportData({model:t,fields:sl({keys:w.selectedKeys,fields:c.current}),domain:v,limit:w.registersAmount==="all"?0:i,context:r,format:w.exportType});a(),await new Promise(b=>setTimeout(b,200));const D=await ot(O);Tt(O,D.mime)},[n,t,o,i,r,a]),p=l.useCallback(async()=>{const w=await Y.getHandler().getFields({model:t,context:r,fields:[]});return c.current["/"]=w,bn({fields:w})},[t,r,c]),d=l.useCallback(async w=>{const O=sr(w,c.current)[or(w)],D=O.relation,b=await Y.getHandler().getFields({model:D,context:r,fields:[]});for(const[E,k]of Object.entries(b))b[E].string=tl({parentTitle:O.string,title:k.string});return c.current[w]=b,bn({fields:b,parentKey:w})},[c.current,t,r]),g=l.useCallback(async()=>{const w=await rl({model:t,context:r}),v=await ol({predefinedExports:w,fields:c.current,onGetFieldChilds:d});return{predefinedExports:w.map(D=>({...D,fields:D.fields.map(b=>{const E=or(b.key),A=sr(b.key,c.current)[E];return{key:b.key,title:A.string}})})),keysWithChilds:v}},[c.current]),S=l.useCallback(async w=>{const v=await m("ir.exports"),O=await m("ir.exports.line"),D=await Y.getHandler().create({model:"ir.exports",values:{name:w.name,resource:t},fields:v,context:r});return await Promise.all(w.fields.map(async b=>await Y.getHandler().create({model:"ir.exports.line",values:{name:b.key,export_id:D},fields:O,context:r}))),{...w,id:D}},[]),y=l.useCallback(async w=>{await Y.getHandler().delete({model:"ir.exports",ids:[w.id]})},[]),m=l.useCallback(async w=>{if(f.current.has(w))return f.current.get(w);const v=Y.getHandler().getFields({model:w,context:r,fields:[]});f.current.set(w,v)},[f,r]);return{onGetFields:p,onGetFieldChilds:d,onExport:u,onGetPredefinedExports:g,onSavePredefinedExport:S,onRemovePredefinedExport:y}},bn=({fields:t,parentKey:r})=>{const n=[];for(const s of Object.keys(t)){const o=t[s];if(o.relation&&o.is_function===!0)continue;const i=xn(o);n.push({key:el({key:s,parentKey:r}),title:o.string,tooltip:o.help,required:o.required,isLeaf:!i})}return n},xn=t=>t.type==="many2one"||t.type==="one2many"||t.type==="many2many",el=({parentKey:t,key:r})=>`${t?t+"/":""}${r}`,bt=t=>t.indexOf("/")===-1?t:t.split("/").slice(0,-1).join("/"),or=t=>{if(t.indexOf("/")===-1)return t;const r=t.split("/");return r[r.length-1]},sr=(t,r)=>t.indexOf("/")===-1?r["/"]:r[bt(t)],tl=({title:t,parentTitle:r})=>`${r?r+" \u2192 ":""}${t}`,rl=async({model:t,context:r})=>{const n=await Y.getHandler().search({model:"ir.exports",params:[["resource","=",t]],context:r}),s=n.flatMap(i=>i.export_fields),o=await Y.getHandler().readObjects({model:"ir.exports.line",ids:s,context:r});return n.map(i=>({id:i.id,name:i.name,fields:i.export_fields.map(a=>({key:o.find(f=>f.id===a).name}))}))},nl=({fields:t,keys:r})=>il([...new Set(r.filter(n=>{var s,o,i;if(n.indexOf("/")===-1)return!((s=t["/"])!=null&&s[n]);{const a=bt(n);console.log({key:n,parentKey:a,fields:t});const c=(o=t==null?void 0:t[bt(n)])==null?void 0:o[n];return console.log({exists:c}),!((i=t==null?void 0:t[bt(n)])!=null&&i[n])}}).map(n=>bt(n)))]),ol=async({predefinedExports:t,fields:r,onGetFieldChilds:n})=>{const s=t.flatMap(a=>a.fields.map(c=>c.key)),o=nl({fields:r,keys:s}),i=[];for(const a of o)i.push({key:a,childs:await n(a)});return i},sl=({keys:t,fields:r})=>t.map(n=>{const s=or(n),i=sr(n,r)[s];return xn(i)?`${n}/id`:n}),il=t=>{const r=new Map,n=[];for(const s of t){const o=s.split("/");let i="";for(const a of o){const c=i?`${i}/${a}`:a;r.has(c)||(n.push(c),r.set(c,!0)),i=c}}return n.sort((s,o)=>{const i=s.split("/").length,a=o.split("/").length;return i-a}),n},Tn=t=>{const{visible:r,locale:n,onClose:s,model:o,context:i,selectedRegistersToExport:a,totalRegisters:c,domain:f,limit:u,visibleRegisters:p}=t,{onExport:d,onGetFieldChilds:g,onGetFields:S,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:w}=Ra({model:o,context:i,domain:f,limit:u,selectedRegistersToExport:a,onClose:s,locale:n});return e.jsx(hr.ExportModal,{visible:r,locale:n,onSucceed:d,onCancel:s,selectedRegistersToExport:a&&a.length&&a.length>0?a.length:void 0,totalRegisters:c,onGetFieldChilds:g,onGetFields:S,visibleRegisters:p,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:w})},Fn=t=>{const{ooui:r}=t;return e.jsx(sn,{ooui:r})},On=t=>{const{ooui:r}=t;return e.jsx(sn,{ooui:r,showTime:!0})};var _n={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Qe,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},s=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,o=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,c={},f=function(m){return(m=+m)+(m>68?1900:2e3)},u=function(m){return function(w){this[m]=+w}},p=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(w){if(!w||w==="Z")return 0;var v=w.match(/([+-]|\d\d)/g),O=60*v[1]+(+v[2]||0);return O===0?0:v[0]==="+"?-O:O}(m)}],d=function(m){var w=c[m];return w&&(w.indexOf?w:w.s.concat(w.f))},g=function(m,w){var v,O=c.meridiem;if(O){for(var D=1;D<=24;D+=1)if(m.indexOf(O(D,0,w))>-1){v=D>12;break}}else v=m===(w?"pm":"PM");return v},S={A:[a,function(m){this.afternoon=g(m,!1)}],a:[a,function(m){this.afternoon=g(m,!0)}],S:[/\d/,function(m){this.milliseconds=100*+m}],SS:[o,function(m){this.milliseconds=10*+m}],SSS:[/\d{3}/,function(m){this.milliseconds=+m}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[o,u("day")],Do:[a,function(m){var w=c.ordinal,v=m.match(/\d+/);if(this.day=v[0],w)for(var O=1;O<=31;O+=1)w(O).replace(/\[|\]/g,"")===m&&(this.day=O)}],M:[i,u("month")],MM:[o,u("month")],MMM:[a,function(m){var w=d("months"),v=(d("monthsShort")||w.map(function(O){return O.slice(0,3)})).indexOf(m)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(m){var w=d("months").indexOf(m)+1;if(w<1)throw new Error;this.month=w%12||w}],Y:[/[+-]?\d+/,u("year")],YY:[o,function(m){this.year=f(m)}],YYYY:[/\d{4}/,u("year")],Z:p,ZZ:p};function y(m){var w,v;w=m,v=c&&c.formats;for(var O=(m=w.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(x,_,T){var P=T&&T.toUpperCase();return _||v[T]||n[T]||v[P].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(F,$,V){return $||V.slice(1)})})).match(s),D=O.length,b=0;b<D;b+=1){var E=O[b],k=S[E],A=k&&k[0],C=k&&k[1];O[b]=C?{regex:A,parser:C}:E.replace(/^\[|\]$/g,"")}return function(x){for(var _={},T=0,P=0;T<D;T+=1){var F=O[T];if(typeof F=="string")P+=F.length;else{var $=F.regex,V=F.parser,L=x.slice(P),M=$.exec(L)[0];V.call(_,M),x=x.replace(M,"")}}return function(I){var B=I.afternoon;if(B!==void 0){var W=I.hours;B?W<12&&(I.hours+=12):W===12&&(I.hours=0),delete I.afternoon}}(_),_}}return function(m,w,v){v.p.customParseFormat=!0,m&&m.parseTwoDigitYear&&(f=m.parseTwoDigitYear);var O=w.prototype,D=O.parse;O.parse=function(b){var E=b.date,k=b.utc,A=b.args;this.$u=k;var C=A[1];if(typeof C=="string"){var x=A[2]===!0,_=A[3]===!0,T=x||_,P=A[2];_&&(P=A[2]),c=this.$locale(),!x&&P&&(c=v.Ls[P]),this.$d=function(L,M,I){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*L);var B=y(M)(L),W=B.year,U=B.month,q=B.day,Z=B.hours,J=B.minutes,N=B.seconds,H=B.milliseconds,R=B.zone,ie=new Date,ae=q||(W||U?1:ie.getDate()),ee=W||ie.getFullYear(),X=0;W&&!U||(X=U>0?U-1:ie.getMonth());var pe=Z||0,ye=J||0,De=N||0,de=H||0;return R?new Date(Date.UTC(ee,X,ae,pe,ye,De,de+60*R.offset*1e3)):I?new Date(Date.UTC(ee,X,ae,pe,ye,De,de)):new Date(ee,X,ae,pe,ye,De,de)}catch{return new Date("")}}(E,C,k),this.init(),P&&P!==!0&&(this.$L=this.locale(P).$L),T&&E!=this.format(C)&&(this.$d=new Date("")),c={}}else if(C instanceof Array)for(var F=C.length,$=1;$<=F;$+=1){A[1]=C[$-1];var V=v.apply(this,A);if(V.isValid()){this.$d=V.$d,this.$L=V.$L,this.init();break}$===F&&(this.$d=new Date(""))}else D.call(this,b)}}})})(_n);const al=_n.exports;Ze.extend(al);const Dn=t=>{const{ooui:r}=t;return e.jsx(me,{...t,children:e.jsx(ll,{ooui:r})})},ll=t=>{const r=(n,s)=>{t.onChange&&t.onChange(s)};return e.jsx(h.TimePicker,{onChange:r,value:t.value?Ze(t.value,"HH:mm:ss"):void 0})},kn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(cl,{ooui:r})})},cl=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,selectionValues:i,readOnly:a}=s,c=r==null?void 0:r.split(","),[f,u]=l.useState([]),[p,d]=l.useState();return l.useEffect(()=>{if(!r){d(void 0),u([]);return}const g=r&&c&&c[0],S=r&&c&&c[1]&&parseInt(c[1]);u([S,void 0]),d(g)},[r]),e.jsxs(h.Row,{gutter:8,wrap:!1,children:[e.jsx(h.Col,{flex:"1",children:e.jsx(Or,{ooui:new se.Selection({name:"model_selection",selection:i,readonly:a,required:o}),onChange:g=>{d(g);let S=f[0]||0;g!==p&&(u([]),S=0);const y=`${g},${S}`;y!==r&&(n==null||n(y))},value:p})}),e.jsx(h.Col,{flex:"3",children:e.jsx(un,{ooui:new se.Many2one({name:"object_value",relation:p,readonly:a,required:o}),value:f,onChange:g=>{u(g);const S=`${p},${g[0]||0}`;S!==r&&(n==null||n(S))}})})]})},{useToken:dl}=h.theme,Mn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(ul,{ooui:r})})},ul=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o,required:i,filenameField:a}=r,{token:c}=dl(),f=i&&!o?{backgroundColor:c.colorPrimaryBg}:void 0,u=l.useRef(null),{setFieldValue:p,getFieldValue:d}=l.useContext(_e)||{},{t:g}=l.useContext(ge),S=n?Ys(n):"",y=D=>{s==null||s(D)};async function m(){const D=await ot(n),b=`data:${D==null?void 0:D.mime};base64,${n}`,E=document.createElement("a"),k=d(a),A=d("name");E.href=b,E.download=k||A,E.click()}async function w(){const D=await ot(n);Tt(n,D.mime)}async function v(D){D.stopPropagation(),D.preventDefault();const b=D.target.files[0],E=await Br(b);y(E),a&&p(a,b.name)}function O(){p(a,void 0),y(void 0)}return e.jsxs(h.Row,{gutter:8,children:[e.jsxs(h.Col,{style:{paddingBottom:5},children:[e.jsx("input",{type:"file",id:"file",ref:u,style:{display:"none"},onChange:v}),e.jsx(h.Input,{type:"text",disabled:!0,style:f,value:S})]}),e.jsx(h.Col,{children:e.jsxs(h.Space,{children:[e.jsx(h.Button,{icon:e.jsx(K.FolderOpenOutlined,{}),disabled:o,onClick:()=>{u.current.click()},children:"Select"}),e.jsx(h.Button,{icon:e.jsx(K.EyeOutlined,{}),disabled:!n,onClick:w,children:g("open")}),e.jsx(Le,{tooltip:g("download"),disabled:!n,onClick:m,icon:e.jsx(K.DownloadOutlined,{})}),e.jsx(Le,{tooltip:g("clear"),disabled:o||!n,onClick:O,icon:e.jsx(K.ClearOutlined,{})})]})})]})},ir={tree:e.jsx(K.TableOutlined,{}),form:e.jsx(K.FormOutlined,{}),graph:e.jsx(K.AreaChartOutlined,{}),calendar:e.jsx(K.CalendarOutlined,{})};function Vn(t){return t?(ir==null?void 0:ir[t.type])||e.jsx(K.FormOutlined,{}):e.jsx(K.FormOutlined,{})}function ar(t){const{currentView:r,availableViews:n,onChangeView:s,disabled:o=!1,formHasChanges:i=!1,previousView:a}=t,{t:c,lang:f}=l.useContext(ge);function u(){const g=n.map((S,y)=>e.jsx(h.Menu.Item,{children:e.jsxs(h.Row,{wrap:!1,children:[e.jsx(h.Col,{flex:"none",style:{paddingRight:20},children:Vn(S)}),e.jsx(h.Col,{flex:"auto",style:{paddingRight:20},children:S.type.charAt(0).toUpperCase()+S.type.slice(1)}),e.jsx(h.Col,{flex:"none",children:e.jsx(K.CheckOutlined,{style:{opacity:r.view_id===S.view_id?1:0}})})]})},S.view_id||y));return e.jsx(h.Menu,{onClick:d,children:e.jsx(h.Menu.ItemGroup,{title:c("viewAs"),children:g})})}function p(g){if(i){wt({lang:f,onOk:()=>{g()}});return}g()}function d(g){p(()=>{const S=n.find(y=>y.view_id===parseInt(g.key));s(S)})}return e.jsxs("div",{style:{display:"flex"},children:[e.jsx(Le,{tooltip:a?c("viewAs")+" "+c(a.type):"",icon:Vn(a),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:()=>{d({key:a==null?void 0:a.view_id})},disabled:o||n.length===1}),e.jsx(h.Dropdown,{overlay:u(),disabled:o||n.length===1,children:e.jsx(h.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:e.jsx(K.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:g=>g.preventDefault()})})]})}function ft(t){const{icon:r,tooltip:n,items:s=[],onItemClick:o,label:i,disabled:a=!1}=t;function c(){const u=s==null?void 0:s.map((p,d)=>p.name==="divider"?e.jsx(h.Menu.Divider,{},"divider"+d):e.jsx(h.Menu.Item,{children:p.name},p.id));return e.jsx(h.Menu,{onClick:f,children:e.jsx(h.Menu.ItemGroup,{title:n,children:u})})}function f(u){const p=s.find(d=>isNaN(u.key)?d.id===u.key:d.id===parseInt(u.key));o(p)}return e.jsx(h.Dropdown,{overlay:c(),disabled:a||!s||s.length===0,children:e.jsxs(h.Button,{children:[r," ",i," ",e.jsx(K.DownOutlined,{})]})})}function Ne(t){const{onClick:r,disabled:n=!1,loading:s=!1,tooltip:o,icon:i,label:a,type:c="default"}=t,f=s?e.jsx(K.LoadingOutlined,{}):i;return e.jsxs(Le,{type:c,tooltip:o,onClick:r,disabled:n,children:[f,a]})}function En(t){const{disabled:r=!1}=t,{formHasChanges:n,onNewClicked:s}=l.useContext(Be),{t:o,lang:i}=l.useContext(ge),a=()=>{if(n){wt({lang:i,onOk:()=>{s()}});return}s()};return e.jsx(Ne,{icon:e.jsx(K.FileAddOutlined,{}),tooltip:o("new"),onClick:a,disabled:r})}const{confirm:fl}=h.Modal,hl=({onOk:t,onCancel:r,lang:n})=>{fl({title:be("unsavedChanges",n),icon:e.jsx(K.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmRefreshWithoutSave",n),okText:be("discardAndRefresh",n),cancelText:be("cancel",n),onOk:t,onCancel:r})};async function In(t,r,n){const s=(await Y.getHandler().getLogInfo({model:t,ids:[r]}))[0],{create_date:o,create_uid:i,id:a,write_date:c,write_uid:f}=s;Je(e.jsxs("div",{children:["ID: "+a," ",e.jsx("br",{}),n("createdBy")+": "+i[1]," ",e.jsx("br",{}),n("creationDate")+": "+o," ",e.jsx("br",{}),n("lastUpdatedBy")+": "+f[1]," ",e.jsx("br",{}),n("lastUpdatedDate")+": "+c]}))}const pl=t=>{const{numberOfAttachments:r,disabled:n}=t,{t:s,lang:o}=l.useContext(ge),[i,a]=l.useState(!1),c=e.jsxs(h.Button,{disabled:n,children:[e.jsx(K.LinkOutlined,{}),`(${r})`,e.jsx(K.DownOutlined,{style:{fontSize:12}})]});return n?c:e.jsx(h.Popover,{onVisibleChange:f=>a(f),visible:i,placement:"bottom",content:gl(t,a,o),title:s("attachments"),arrowContent:null,children:c})},gl=(t,r,n)=>{const{attachments:s=[],loading:o,onAddNewAttachment:i,onopenAttachmentLink:a,onOpenAttachmentDetail:c,onListAllAttachments:f}=t;return o?e.jsx(h.Spin,{style:{padding:20}}):e.jsxs(e.Fragment,{children:[e.jsxs("a",{style:{display:"block",paddingBottom:5},href:"#",onClick:()=>{r(!1),f()},children:[e.jsx(K.TableOutlined,{})," ",be("listAllAttachments",n)]}),e.jsxs("a",{style:{display:"block"},href:"#",onClick:()=>{r(!1),i()},children:[e.jsx(K.FileAddOutlined,{})," ",be("addNewAttachment",n)]}),s.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("li",{className:"ant-dropdown-menu-item-divider"}),s.map(u=>{const p=u.link?K.LinkOutlined:K.DownloadOutlined;return e.jsxs(h.Row,{style:{paddingTop:4,paddingBottom:4},wrap:!1,align:"middle",children:[e.jsx(h.Col,{flex:"auto",children:u.name}),e.jsx(h.Col,{flex:"25px",style:{textAlign:"center"},children:(u.datas_fname||u.link)&&e.jsx(h.Tooltip,{title:u.link?be("openAttachmentLink",n):be("download",n),children:e.jsx(p,{style:{cursor:"pointer"},onClick:()=>{r(!1),a(u)}})})}),e.jsx(h.Col,{flex:"25px",style:{textAlign:"center"},children:e.jsx(h.Tooltip,{title:be("openAttachment",n),children:e.jsx(K.FormOutlined,{style:{cursor:"pointer"},onClick:()=>{r(!1),c(u)}})})})]},u.id)})]})]})};function ml(t){const{attachments:r,disabled:n=!1,onAddNewAttachment:s,onListAllAttachments:o,onViewAttachmentDetails:i}=t,{formRef:a}=l.useContext(Be),[c,f]=l.useState(!1),[u,p]=l.useState([]),[d,g]=l.useState(!1),{t:S}=l.useContext(ge),y=l.useCallback(async()=>{f(!0);try{const v=await Y.getHandler().readObjects({model:"ir.attachment",ids:r.map(O=>O.id),fieldsToRetrieve:["name","datas_fname","link"],context:a.current.getContext()});p(v.map(O=>({id:O.id,name:O.name,datas_fname:O.datas_fname,link:O.link})))}catch(v){$e(v)}f(!1)},r),m=l.useCallback(async v=>{if(v.link){window.open(v.link);return}g(!0);let O;try{O=(await Y.getHandler().readObjects({model:"ir.attachment",ids:[v.id],context:a.current.getContext()}))[0]}catch(D){$e(D)}if(g(!1),!!O)if(O.datas){const D=await ot(O.datas);Tt(O.datas,D.mime)}else i(O)},[]),w=l.useCallback(async v=>{i(v)},[]);return l.useEffect(()=>{y()},[y]),e.jsxs(e.Fragment,{children:[e.jsx(pl,{numberOfAttachments:r.length,attachments:u,disabled:n,loading:c,onAddNewAttachment:s,onListAllAttachments:o,onopenAttachmentLink:m,onOpenAttachmentDetail:w}),e.jsx(h.Modal,{title:S("downloadingAttachment"),open:d,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(h.Spin,{})})]})}function $n({toolbar:t}){const{availableViews:r,currentView:n,setCurrentView:s,onFormSave:o,formHasChanges:i,formIsSaving:a,currentId:c,results:f,setCurrentItemIndex:u,currentItemIndex:p,setCurrentId:d,currentModel:g,setRemovingItem:S,removingItem:y,duplicatingItem:m,setDuplicatingItem:w,setResults:v,formIsLoading:O,attachments:D,formRef:b,setFormHasChanges:E,previousView:k,setPreviousView:A,goToResourceId:C}=l.useContext(Be),{t:x,lang:_}=l.useContext(ge),T=l.useContext(ct),{processAction:P}=T||{},F=l.useContext(qe),{openRelate:$,openDefaultActionForModel:V}=F||{};function L(N){if(i){hl({lang:_,onOk:()=>{N()}});return}N()}function M(N){if(i){wt({lang:_,onOk:()=>{N()}});return}N()}function I(){f&&f.length>p+1?(u==null||u(p+1),d==null||d(f[p+1].id)):f&&p+1===f.length&&(u==null||u(0),d==null||d(f[0].id))}function B(){f&&p>0?(u==null||u(p-1),d==null||d(f[p-1].id)):f&&p===0&&(u==null||u(f.length-1),d==null||d(f[f.length-1].id))}function W(){nt({confirmMessage:x("confirmRemoveItem"),lang:_,onOk:()=>{U()}})}async function U(){try{S==null||S(!0),await Y.getHandler().delete({model:g,ids:[c]});const N=f==null?void 0:f.filter(R=>R.id!==c);v==null||v(N);let H=0;p>0&&p<=f.length-1&&(H=p-1),N!=null&&N[H]?(d==null||d(N==null?void 0:N[H].id),u==null||u(H)):(d==null||d(void 0),u==null||u(void 0))}catch(N){_t(JSON.stringify(N))}finally{S==null||S(!1)}}async function q(){try{w==null||w(!0);const N=await Y.getHandler().duplicate({id:c,model:g,context:b.current.getContext()});N&&await(C==null?void 0:C(N))}catch(N){_t(JSON.stringify(N))}finally{w==null||w(!1)}}const Z=a||y||O||m;function J(N){P==null||P({actionData:N,values:b.current.getValues(),fields:b.current.getFields(),context:b.current.getContext(),onRefreshParentValues:()=>{b.current.fetchValues()}})}return n?e.jsxs(h.Space,{wrap:!0,children:[O&&e.jsxs(e.Fragment,{children:[e.jsx(h.Spin,{}),ht(),ht()]}),e.jsx(En,{disabled:a||O||y||m}),e.jsx(Ne,{icon:e.jsx(K.SaveOutlined,{}),tooltip:x("save"),disabled:!i||Z,loading:a,onClick:o}),e.jsx(Ne,{icon:e.jsx(K.CopyOutlined,{}),tooltip:x("duplicate"),disabled:i||a||c===void 0||m||O,loading:m,onClick:q}),e.jsx(Ne,{icon:e.jsx(K.DeleteOutlined,{}),tooltip:x("delete"),disabled:a||c===void 0||y||m||O,loading:y,onClick:W}),ht(),e.jsx(Ne,{icon:e.jsx(K.InfoCircleOutlined,{}),tooltip:x("showLogs"),disabled:a||c===void 0||y||m||O,loading:!1,onClick:()=>{In(g,c,x)}}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:x("refresh"),disabled:a||c===void 0||y||m||O,loading:!1,onClick:()=>{L(()=>{b.current.fetchValues()})}}),ht(),e.jsx(ar,{currentView:n,previousView:k,availableViews:r,onChangeView:N=>{A==null||A(n),E==null||E(!1),s==null||s(N)},disabled:Z,formHasChanges:i}),ht(),e.jsxs(h.Space,{children:[e.jsx(Ne,{icon:e.jsx(K.LeftOutlined,{}),tooltip:x("previous"),disabled:Z,loading:!1,onClick:()=>{M(B)}}),e.jsx(Ne,{icon:e.jsx(K.RightOutlined,{}),tooltip:x("next"),disabled:Z,loading:!1,onClick:()=>{M(I)}})]}),ht(),e.jsx(ft,{icon:e.jsx(K.ThunderboltOutlined,{}),disabled:Z,tooltip:x("actions"),items:t==null?void 0:t.action,onItemClick:async N=>{!N||!(await pt({onFormSave:o})).succeed||J(N)}}),e.jsx(ft,{icon:e.jsx(K.PrinterOutlined,{}),disabled:Z,tooltip:x("reports"),items:t==null?void 0:t.print,onItemClick:async N=>{if(!N)return;const H=await pt({onFormSave:o});!H.succeed||J({...N,datas:{...N.datas||{},ids:[H.currentId]}})}}),e.jsx(ft,{icon:e.jsx(K.EnterOutlined,{}),disabled:Z,tooltip:x("related"),items:t==null?void 0:t.relate,onItemClick:async N=>{!N||!(await pt({onFormSave:o})).succeed||$({relateData:N,values:b.current.getValues(),fields:b.current.getFields(),action_id:N.id,action_type:N.type})}}),e.jsx(ml,{disabled:Z,attachments:D,onAddNewAttachment:async()=>{const N=await pt({onFormSave:o});if(!N.succeed)return;const H=N.currentId,R=g;V({model:"ir.attachment",values:{selection_associated_object:`${R},${H}`},forced_values:{res_model:R,res_id:H},initialViewType:"form"})},onListAllAttachments:async()=>{const N=await pt({onFormSave:o});if(!N.succeed)return;const H=N.currentId;V({model:"ir.attachment",domain:[["res_model","=",`${g}`],["res_id","=",`${H}`]],initialViewType:"tree"})},onViewAttachmentDetails:async N=>{!(await pt({onFormSave:o})).succeed||V({model:"ir.attachment",res_id:N.id,initialViewType:"form"})}})]}):null}function ht(){return e.jsx("div",{className:"inline-block w-2"})}async function pt({onFormSave:t}){const r=await(t==null?void 0:t());return r!=null&&r.succeed?{succeed:!0,currentId:r.id}:{succeed:!1,currentId:void 0}}const{useToken:yl}=h.theme,An=t=>{const{ooui:r,value:n,onChange:s,valueValidator:o,linkPrefix:i=""}=t,{id:a,readOnly:c,required:f}=r,{token:u}=yl(),p=f&&!c?{backgroundColor:u.colorPrimaryBg}:void 0,d=l.useContext(_e),{elementHasLostFocus:g}=d||{},[S,y]=l.useState(!1),[m,w]=l.useState(!1);l.useEffect(()=>{c&&!S&&w(!1),!n&&!c&&(y(!0),w(!0))},[S,c]);const v=O=>{s==null||s(O.target.value)};return e.jsxs(h.Row,{gutter:8,wrap:!1,align:"middle",children:[c?null:e.jsx(h.Col,{flex:"32px",children:S?e.jsx(h.Button,{icon:e.jsx(K.CheckOutlined,{}),onClick:()=>{o(n)&&(y(!1),w(!1))},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1}):e.jsx(h.Button,{icon:e.jsx(K.EditOutlined,{}),onClick:()=>{y(!0),w(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(h.Col,{flex:"auto",children:m?e.jsx(h.Input,{style:{borderTopLeftRadius:0,borderBottomLeftRadius:0,...p},id:a,onChange:v,value:n,onBlur:()=>{o(n)&&(y(!1),w(!1),g==null||g())}}):e.jsx("a",{href:`${i}${n}`,style:{color:u.colorPrimary,paddingRight:15},target:"_blank",children:n})})]})},Ln=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(An,{ooui:r,valueValidator:s=>s?po.default(s):!1})})},Nn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(An,{ooui:r,linkPrefix:"mailto:",valueValidator:s=>s?go.default(s):!1})})},wl=t=>{const{visible:r,onIdSubmitted:n,onCancel:s,isSearching:o}=t,{t:i}=l.useContext(ge);function a(c){n(c.id)}return e.jsx(h.Modal,{title:i("goToResourceId"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:s,maskClosable:!1,children:e.jsxs(h.Form,{layout:"vertical",onFinish:a,autoComplete:"off",children:[e.jsx(h.Form.Item,{name:"id",label:i("searchId"),rules:[{required:!0,type:"number"}],children:e.jsx(h.InputNumber,{style:{width:"100%"},autoFocus:!0})}),e.jsx(h.Row,{align:"middle",justify:"end",children:e.jsx(h.Col,{children:e.jsxs(h.Space,{children:[e.jsx(h.Button,{icon:e.jsx(K.CloseOutlined,{}),htmlType:"button",onClick:s,disabled:o,children:i("cancel")}),e.jsx(h.Button,{loading:o,style:{marginLeft:15},icon:e.jsx(K.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:o,children:i("ok")})]})})})]})})},{useToken:vl}=h.theme;function Pn(t){const{badgeNumber:r=0,...n}=t,{token:s}=vl();return e.jsxs("div",{style:{position:"relative"},children:[r>0&&e.jsx("div",{style:{position:"absolute",left:-10,top:-10,zIndex:2},children:e.jsx("span",{style:{display:"inline-block",minWidth:"22px",padding:"2px",borderRadius:"50%",fontSize:"12px",textAlign:"center",background:s.colorPrimaryHover,color:s.colorPrimaryBg},children:r})}),e.jsx(Le,{...n,style:{width:46,zIndex:0}})]})}function Sl({refreshGraph:t}){const{t:r}=l.useContext(ge),{availableViews:n,currentView:s,setCurrentView:o,searchParams:i,searchVisible:a,setSearchVisible:c,graphIsLoading:f,previousView:u,setPreviousView:p}=l.useContext(Be);return e.jsxs(h.Space,{wrap:!0,children:[e.jsx(Pn,{icon:e.jsx(K.FilterOutlined,{style:{color:a?"white":void 0}}),tooltip:r("advanced_search"),type:a?"primary":"default",onClick:()=>{c==null||c(!a)},disabled:f,badgeNumber:i==null?void 0:i.length}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:r("refresh"),disabled:f,loading:!1,onClick:()=>{t()}}),e.jsx(ar,{currentView:s,availableViews:n,onChangeView:d=>{p==null||p(s),o==null||o(d)},disabled:!1,previousView:u})]})}const{useToken:Cl}=h.theme,{Title:bl,Text:It}=h.Typography;function $t(t){const{title:r,children:n}=t,{title:s,currentView:o,currentId:i,currentItemIndex:a,results:c,totalItems:f,selectedRowItems:u}=l.useContext(Be),{t:p}=l.useContext(ge),{token:d}=Cl();function g(){if((o==null?void 0:o.type)==="form")return i?f===0?e.jsxs(e.Fragment,{children:[p("editingDocument")," (id:"," ",e.jsx(It,{copyable:{icon:e.jsx(K.CopyOutlined,{style:{color:"red"}})},children:i}),")"]}):e.jsxs(e.Fragment,{children:[p("register")," ",a===void 0?1:a+1," /"," ",c.length," ",p("of")," ",f," - ",p("editingDocument")," (id:"," ",e.jsx(It,{copyable:!0,children:i}),")"]}):"";if((o==null?void 0:o.type)==="tree"&&u){if(u.length===1)return e.jsxs(e.Fragment,{children:["1 ",p("selectedRegisters")," - (id:"," ",e.jsx(It,{copyable:!0,children:u[0].id}),")"]});if(u.length>1)return e.jsxs(e.Fragment,{children:[u.length," ",p("selectedRegisters"),e.jsx(It,{copyable:{text:u.map(S=>S.id).join(", ")}})]})}return null}return e.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[e.jsxs(h.Row,{className:"shadow-md",style:{padding:"1em",borderRadius:d.borderRadius,backgroundColor:d.colorPrimaryBg},align:"middle",children:[e.jsxs(h.Col,{flex:2,children:[e.jsx(bl,{level:3,style:{marginBottom:0},children:r||s}),g()]}),e.jsx(h.Col,{flex:3,children:e.jsx(h.Row,{justify:"end",children:n})})]}),e.jsx("div",{className:"pb-5"})]})}const xl=t=>{const{viewData:r,visible:n,model:s,context:o,domain:i,formView:a,treeView:c}=t,f=l.useRef(),u=l.useContext(Be),{setResults:p=void 0,setCurrentItemIndex:d=void 0,currentId:g=void 0,results:S=void 0,setSelectedRowItems:y=void 0,setSearchParams:m=void 0,searchVisible:w=!0,setSearchVisible:v=void 0,sorter:O=void 0,setSorter:D=void 0,setTotalItems:b=void 0,setSearchTreeNameSearch:E=void 0,setTreeIsLoading:k=void 0,limit:A,setLimit:C,searchParams:x,searchValues:_,setSearchValues:T,currentView:P}=u||{},[F,$]=l.useState(!0);l.useEffect(()=>{var W;(W=f.current)==null||W.refresh()},[x]),l.useEffect(()=>{r.view_id!==P.view_id&&$(!0)},[P]);const{clear:V,searchFilterLoading:L,searchError:M,offset:I,tableRefreshing:B}=zr({model:s,setSearchTreeNameSearch:E,setSelectedRowItems:y,searchParams:x,setSearchValues:T,setSearchParams:m,setSearchVisible:v,setTreeIsLoading:k,context:o,formView:a,treeView:c,sorter:O,setSorter:D,setCurrentItemIndex:d,setResultsActionView:p,resultsActionView:S,domain:i,currentId:g,setActionViewTotalItems:b,limit:A,setLimit:C});return!n||!r?null:e.jsxs(e.Fragment,{children:[e.jsx($t,{title:r.name,children:e.jsx(Sl,{refreshGraph:()=>{f.current.refresh()}})}),e.jsx(Xt,{fields:{...c.fields,...a.fields},searchFields:Yr([a.search_fields,c.search_fields]),formXml:a.arch,limit:A,onClear:V,offset:I,isSearching:L,onSubmit:W=>{$(!1),m==null||m(W.params),v==null||v(!1)},searchError:M,searchVisible:w,searchValues:_,showLimitOptions:!1}),B?e.jsx(h.Spin,{}):e.jsx(Et,{ref:f,view_id:r.view_id,model:s,context:o,domain:Ot(x||[],i),limit:F?A:void 0,manualIds:F?S==null?void 0:S.map(W=>W.id):void 0})]})},Tl=t=>{const{visible:r,formRef:n,model:s,currentId:o,domain:i,formView:a,context:c,defaultValues:f,forcedValues:u,results:p,setResults:d,setCurrentItemIndex:g}=t;return r?e.jsxs(e.Fragment,{children:[e.jsx($t,{children:e.jsx($n,{toolbar:a==null?void 0:a.toolbar})}),e.jsx(dt,{rootForm:!0,ref:n,model:s,defaultValues:f,forcedValues:u,formView:a,actionDomain:i,id:o,parentContext:c,onSubmitSucceed:(S,y)=>{p.findIndex(w=>w.id===S)===-1&&(p.push(y),d(p),g(p.length-1))}})]}):null};function Fl(t){const{onSearch:r,disabled:n=!1,searchText:s}=t,{t:o}=l.useContext(ge),[i]=h.Form.useForm(),[a,c]=l.useState(!1);function f(p){r(p.search)}l.useEffect(()=>{i.setFieldsValue({search:s})},[s]);function u(){c(!1),i.setFieldsValue({search:void 0}),r(void 0)}return e.jsx(h.Form,{form:i,onFinish:f,autoComplete:"off",children:e.jsxs(h.Row,{align:"middle",justify:"end",children:[e.jsx(h.Col,{children:e.jsx(h.Form.Item,{name:"search",noStyle:!0,children:e.jsx(h.Input,{autoFocus:!0,disabled:n,onChange:p=>{c(p.target.value.length>0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},suffix:(a||s&&s.length>0)&&e.jsx(h.Tooltip,{title:o("clear"),children:e.jsx(K.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:u})})})})}),e.jsx(h.Col,{children:e.jsx(h.Button,{htmlType:"submit",disabled:n,style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},children:o("search")})})]})})}const Bn=Pe.default.createContext({previewFeatures:!1});function Ol(t){var Z;const{availableViews:r,currentView:n,setCurrentView:s,selectedRowItems:o,setRemovingItem:i,removingItem:a,duplicatingItem:c,setDuplicatingItem:f,currentModel:u,searchTreeRef:p,setCurrentId:d,setCurrentItemIndex:g,searchParams:S,searchVisible:y,setSearchVisible:m,setSearchTreeNameSearch:w,searchTreeNameSearch:v,treeIsLoading:O,setPreviousView:D,previousView:b,results:E,limit:k,totalItems:A}=l.useContext(Be),{parentContext:C={},treeExpandable:x,toolbar:_}=t,{previewFeatures:T}=l.useContext(Bn),{t:P,lang:F}=l.useContext(ge),$=l.useContext(ct),{processAction:V}=$||{},[L,M]=l.useState(!1),I=v!==void 0&&v.trim().length>0;function B(){nt({confirmMessage:P("confirmRemove"),lang:F,onOk:()=>{W()}})}async function W(){var J;try{i==null||i(!0),await Y.getHandler().delete({model:u,ids:o.map(N=>N.id)}),d==null||d(void 0),g==null||g(void 0),(J=p==null?void 0:p.current)==null||J.refreshResults()}catch(N){$e(N)}finally{i==null||i(!1)}}async function U(){var J;try{f==null||f(!0);const N=o[0].id;await Y.getHandler().duplicate({id:N,model:u,context:{...C}})&&((J=p==null?void 0:p.current)==null||J.refreshResults())}catch(N){$e(N)}finally{f==null||f(!1)}}function q(J){V==null||V({actionData:J,values:{active_id:o==null?void 0:o.map(N=>N.id)[0],active_ids:o==null?void 0:o.map(N=>N.id)},fields:{},context:{...C,active_id:o==null?void 0:o.map(N=>N.id)[0],active_ids:o==null?void 0:o.map(N=>N.id)},onRefreshParentValues:()=>{var N;(N=p==null?void 0:p.current)==null||N.refreshResults()}})}return e.jsxs(h.Space,{wrap:!0,children:[O&&e.jsxs(e.Fragment,{children:[e.jsx(h.Spin,{}),tt(),tt()]}),x?null:e.jsxs(e.Fragment,{children:[e.jsx(Fl,{disabled:c||a||O,searchText:v,onSearch:J=>{J&&J.trim().length>0?w==null||w(J):w==null||w(void 0)}}),!x&&e.jsx(Pn,{icon:e.jsx(K.FilterOutlined,{style:{color:y?"white":void 0}}),tooltip:P("advanced_search"),type:y?"primary":"default",onClick:()=>{m==null||m(!y)},disabled:c||a||O,badgeNumber:S==null?void 0:S.length}),tt(),e.jsx(En,{disabled:O}),e.jsx(Ne,{icon:e.jsx(K.CopyOutlined,{}),tooltip:P("duplicate"),disabled:!o||(o==null?void 0:o.length)!==1||c||O,loading:c,onClick:U}),e.jsx(Ne,{icon:e.jsx(K.DeleteOutlined,{}),tooltip:P("delete"),disabled:!(o&&(o==null?void 0:o.length)>0)||O,loading:a,onClick:B}),tt()]}),e.jsx(Ne,{icon:e.jsx(K.InfoCircleOutlined,{}),tooltip:P("showLogs"),disabled:!(o&&(o==null?void 0:o.length)>0)||O,loading:!1,onClick:()=>{In(u,o[0].id,P)}}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:P("refresh"),disabled:c||a||O,loading:!1,onClick:()=>{var J;(J=p==null?void 0:p.current)==null||J.refreshResults()}}),!x&&e.jsxs(e.Fragment,{children:[tt(),e.jsx(ar,{currentView:n,availableViews:r,onChangeView:J=>{D==null||D(n),s==null||s(J)},previousView:b,disabled:O})]}),tt(),e.jsx(ft,{icon:e.jsx(K.ThunderboltOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||O,tooltip:P("actions"),items:_==null?void 0:_.action,onItemClick:J=>{!J||q(J)}}),e.jsx(ft,{icon:e.jsx(K.PrinterOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||O,tooltip:P("reports"),items:_==null?void 0:_.print,onItemClick:J=>{!J||q({...J,datas:{...J.datas||{},ids:o.map(N=>N.id)}})}}),T&&e.jsxs(e.Fragment,{children:[tt(),e.jsx(ft,{icon:e.jsx(wr.default,{component:()=>e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-database-export",width:"1em",height:"1em",viewBox:"0 0 24 24",strokeWidth:"1.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),e.jsx("ellipse",{cx:"12",cy:"6",rx:"8",ry:"3"}),e.jsx("path",{d:"M4 6v6c0 1.657 3.582 3 8 3a19.84 19.84 0 0 0 3.302 -.267m4.698 -2.733v-6"}),e.jsx("path",{d:"M4 12v6c0 1.599 3.335 2.905 7.538 2.995m8.462 -6.995v-2m-6 7h7m-3 -3l3 3l-3 3"})]})}),tooltip:P("export"),items:[{id:"print_screen",name:P("printScreen")},{id:"export",name:P("advancedExport")}],onItemClick:J=>{if(J.id==="print_screen"){let N=(o==null?void 0:o.map(H=>H.id))||[];N.length===0&&(N=(E==null?void 0:E.map(H=>H.id))||[]),q({id:-1,model:u,report_name:"printscreen.list",type:"ir.actions.report.xml",datas:{model:u,ids:N}});return}M(!0)},disabled:c||a||O||I}),e.jsx(Tn,{visible:L,locale:F,onClose:()=>M(!1),model:u,domain:Ot(((Z=p==null?void 0:p.current)==null?void 0:Z.getDomain())||[],S||[]),limit:k,totalRegisters:A||0,selectedRegistersToExport:o,visibleRegisters:(E==null?void 0:E.length)||0,context:C})]})]})}function tt(){return e.jsx("div",{className:"inline-block w-2"})}const _l=t=>{const{visible:r,searchTreeRef:n,model:s,context:o,formView:i,treeView:a,domain:c,setCurrentItemIndex:f,results:u,setCurrentId:p,setCurrentView:d,availableViews:g,searchTreeNameSearch:S}=t,{currentView:y,setPreviousView:m}=l.useContext(Be);return r?e.jsxs(e.Fragment,{children:[e.jsx($t,{children:e.jsx(Ol,{toolbar:a==null?void 0:a.toolbar,parentContext:o,treeExpandable:(a==null?void 0:a.isExpandable)||!1})}),e.jsx(Rt,{ref:n,rootTree:!0,model:s,parentContext:o,nameSearch:S,formView:i,treeView:a,domain:c,onRowClicked:w=>{const{id:v}=w;p(v);const O=u.findIndex(b=>b.id===v);m==null||m(y),f(O);const D=g.find(b=>b.type==="form");d(D)}})]}):null},lr=Pe.default.createContext(null),Dl=t=>{const[r,n]=l.useState(!1),[s,o]=l.useState(!1),{children:i,dashboardRef:a,openAction:c}=t;return e.jsx(lr.Provider,{value:{isLoading:r,setIsLoading:n,dashboardRef:a,openAction:c,moveItemsEnabled:s,setMoveItemsEnabled:o},children:i})};function kl(){const{isLoading:t,dashboardRef:r,moveItemsEnabled:n,setMoveItemsEnabled:s}=l.useContext(lr),{t:o}=l.useContext(ge);return e.jsxs(h.Space,{wrap:!0,children:[e.jsx(Ne,{icon:e.jsx(K.BorderOuterOutlined,{style:{color:n?"white":void 0}}),type:n?"primary":"default",tooltip:o("moveDashboard"),disabled:t,loading:!1,onClick:()=>{s(!n)}}),Ml(),e.jsx(Ne,{icon:e.jsx(K.SettingOutlined,{}),tooltip:o("configDashboard"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.configDashboard()}}),e.jsx(Ne,{icon:e.jsx(K.ReloadOutlined,{}),tooltip:o("refresh"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.refresh()}})]})}function Ml(){return e.jsx("div",{className:"inline-block w-2"})}const Vl=t=>{const{dashboardData:r}=t,n=l.useRef(),s=l.useContext(qe),{openShortcut:o}=s||{};return r?e.jsxs(Dl,{dashboardRef:n,openAction:i=>{o(i)},children:[e.jsx($t,{children:e.jsx(kl,{})}),e.jsx(Wn,{ref:n,model:r.model,id:r.id,context:r==null?void 0:r.context,configAction:r==null?void 0:r.configAction})]}):null};async function El(t){const r=await Promise.all(t.map(async s=>{try{return await s.promise}catch(o){return console.error(`Error for ${s.viewTuple}:`,o),null}}));return t.map((s,o)=>({...s,info:r[o]})).filter(s=>s.info!==null)}function Il(t,r){const{domain:n,model:s,context:o,views:i,title:a,setCanWeClose:c,tabKey:f,initialView:u,formDefaultValues:p,formForcedValues:d={},res_id:g=!1,action_id:S,action_type:y,treeExpandable:m=!1,limit:w}=t,[v,O]=l.useState(),[D,b]=l.useState([]),[E,k]=l.useState(!0),A=g||void 0,[C,x]=l.useState(A),[_,T]=l.useState([]),[P,F]=l.useState(),[$,V]=l.useState([]),[L,M]=l.useState(),[I,B]=l.useState(0),[W,U]=l.useState(!1),[q,Z]=l.useState(!1),[J,N]=l.useState(),{t:H}=l.useContext(ge),R=l.useRef(),ie=l.useRef(),ae=l.useContext(qe),{setCurrentView:ee,setCurrentId:X,tabs:pe,activeKey:ye,openAction:De,onRemoveTab:de}=ae||{};co.useHotkeys("ctrl+g,command+g",te=>{te.preventDefault(),Ee()},[ye,pe,v,P,$]);function oe(te){x(te),X==null||X(te)}function Ce(te){O(te),ee==null||ee(te)}l.useImperativeHandle(r,()=>({canWeClose:xe}));const we=async()=>{k(!0);const te=[],ue=[];for(const ce of i){const[Fe,ke]=ce;ke!=="dashboard"?ue.push({viewTuple:ce,promise:Y.getHandler().getView({model:s,type:ke,id:Fe,context:o})}):ue.push({viewTuple:ce})}const ve=await El(ue);for(const ce of ve){if(!ce)continue;const[,Fe]=ce.viewTuple;let ke=ce.info;switch(Fe){case"dashboard":{const Ue=i.find(Ge=>{const[,Q]=Ge;return Q==="form"});let Ke;Ue&&(Ke={action_id:S,action_type:y,name:a,res_id:o.active_id,res_model:s,view_id:Ue[0],view_type:Ue[1]}),te.push({type:"dashboard",id:o.active_id,model:s,context:o,configAction:Ke});break}case"form":{te.push({...ke,type:Fe});break}case"tree":{te.push({...ke,isExpandable:m,type:Fe});break}case"graph":{te.push({...ke,type:Fe});break}}}let Ve;!u&&te.find(ce=>ce.type==="tree")?Ve=te.find(Fe=>Fe.type==="tree"):u?Ve=te.find(Fe=>u.id?Fe.type===u.type&&Fe.view_id===u.id:Fe.type===u.type):Ve=te.find(Fe=>Fe.type==="form"),Ve||($e(`Error determining the first view to show for model ${s}.
|
|
36
36
|
Please, make sure the view ids on the fields_view_get responses are the same as the ones defined in the action`),de==null||de(f)),Ce(Ve),b(te),k(!1)};c({tabKey:f,canWeClose:xe}),l.useEffect(()=>{const te=D.find(ve=>ve.type==="tree"),ue=D.find(ve=>u.id?ve.type===u.type&&ve.view_id===u.id:ve.type===u.type);Ce(ue||te),g?X==null||X(A):(oe(void 0),F(void 0)),we()},[s,i,g]),l.useEffect(()=>{ye===f&&(X==null||X(C),ee==null||ee(v))},[pe,ye]);async function xe(){return v&&v.type==="form"?await R.current.cancelUnsavedChanges():!0}async function Ee(){ye===f&&(v.type==="form"&&!await R.current.cancelUnsavedChanges()||U(!0))}async function Me(te){var ce;Z(!0);const ue=$.findIndex(Fe=>Fe.id===te);let ve;if(ue===-1){try{ve=(ce=await Y.getHandler().readObjects({model:s,ids:[te],context:o}))==null?void 0:ce[0]}catch{}if(!ve){Z(!1),U(!1),Je(H("idNotFound"));return}}else ve=$[ue];Z(!1),U(!1);const Ve=i.find(Fe=>Fe[1]==="form");De({domain:[],context:o,model:s,views:i,title:a,target:"current",initialView:{id:Ve==null?void 0:Ve[0],type:"form"},action_id:S,action_type:y,res_id:te})}function He(){return D.map(te=>{switch(te.type){case"form":return e.jsx(Tl,{formRef:R,currentId:C,visible:v.type===te.type&&v.view_id===te.view_id,formView:te,model:s,context:o,domain:n,defaultValues:p,forcedValues:d,results:$,setResults:V,setCurrentItemIndex:F},`${te.type}-${te.view_id}`);case"tree":return e.jsx(_l,{visible:v.type===te.type&&v.view_id===te.view_id,limit:w,model:s,context:o,domain:n,formView:D.find(ue=>ue.type==="form"),treeView:te,searchTreeRef:ie,searchTreeNameSearch:J,availableViews:D,results:$,setCurrentItemIndex:F,setCurrentId:oe,setCurrentView:Ce},`${te.type}-${te.view_id}`);case"graph":return e.jsx(xl,{visible:v.type===te.type&&v.view_id===te.view_id,viewData:te,model:s,context:o,domain:n,treeView:D.find(ue=>ue.type==="tree"),formView:D.find(ue=>ue.type==="form")},`${te.type}-${te.view_id}`);case"dashboard":return e.jsx(Vl,{dashboardData:te},`${te.type}-${te.view_id}`)}})}function Ie(){if(C===void 0&&v.type==="form")R.current.clearAndReload();else{oe(void 0);const te=D.find(ue=>ue.type==="form");Ce(te)}}return E?e.jsx(h.Spin,{}):v?e.jsxs(_i,{title:a,currentView:v,setCurrentView:Ce,availableViews:D,formRef:R,searchTreeRef:ie,onNewClicked:Ie,currentId:C,setCurrentId:oe,setCurrentItemIndex:F,currentItemIndex:P,results:$,setResults:V,currentModel:s,sorter:L,setSorter:M,totalItems:I,setTotalItems:B,selectedRowItems:_,setSelectedRowItems:T,setSearchTreeNameSearch:N,searchTreeNameSearch:J,goToResourceId:Me,limit:w,children:[He(),e.jsx(wl,{visible:W,onIdSubmitted:Me,isSearching:q,onCancel:()=>{U(!1)}})]}):null}const Hn=l.forwardRef(Il);async function $l({actionId:t,rootContext:r={},globalValues:n={}}){const s="ir.actions.act_window",o=`${s},${t}`,i=await Y.getHandler().getActionData({action:o,context:r}),a=se.parseContext({context:i.context,values:n,fields:{}}),c=i.domain?await Y.getHandler().evalDomain({domain:i.domain,values:n,context:{...r,...a}}):[],{res_model:f,views:u,name:p,limit:d,view_type:g}=i,S=g==="tree",y=[];for(const O of u){const[D,b]=O;if(D)y.push(O);else{const{view_id:E}=await Y.getHandler().getView({model:f,type:b,id:D,context:{...r,...a}});y.push([E,b])}}const[m,w]=y[0],v={id:m,type:w};return{title:p,actionId:t,actionType:s,key:gr.v4(),views:u,model:f,context:{...r,...a},domain:c,initialView:v,limit:d,treeExpandable:S}}const _c="",Al=pr.WidthProvider(pr.Responsive),Kn=t=>{const{children:r=[],onPositionItemsChanged:n}=t,s=Pe.default.Children.map(r,o=>{const{parms:i,id:a}=o.props;return e.jsx("div",{"data-grid":i,children:o},a)});return e.jsx(Al,{className:"layout",cols:{lg:12,md:10,sm:6,xs:4,xxs:2},draggableHandle:".draggable-head",rowHeight:30,onLayoutChange:o=>{n==null||n(o.map(i=>({id:parseInt(i.i.replace(".$",""),10),x:i.x,y:i.y,w:i.w,h:i.h})))},children:s})},{useToken:Ll}=h.theme,{Text:Nl}=h.Typography,Yn=t=>{const{title:r,children:n,action:s,openAction:o}=t,{token:i}=Ll();return e.jsxs("div",{className:"shadow-md",style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid #eee",backgroundColor:"white",borderRadius:i.borderRadius},children:[e.jsxs(h.Row,{align:"middle",style:{borderBottom:"1px solid #ddd",backgroundColor:i.colorPrimaryBg},wrap:!1,children:[e.jsx(h.Col,{flex:"auto",className:"draggable-head",style:{fontWeight:"bold",padding:"0.5rem",cursor:"grab",overflow:"hidden"},children:e.jsx(Nl,{ellipsis:!0,children:r})}),s&&e.jsx(h.Col,{flex:"25px",style:{padding:"0.5rem"},children:e.jsx(h.Row,{justify:"end",align:"middle",children:e.jsx(K.ExportOutlined,{style:{cursor:"pointer"},onClick:()=>{o==null||o(s)}})})})]}),n]})},Pl=80;function Bl(t){const{action:r,model:n,view_id:s,onRowClicked:o,domain:i=[],visible:a=!0,parentContext:c={}}=t,[f,u]=l.useState(!1),[p,d]=l.useState(!1),[g,S]=l.useState(),[y,m]=l.useState(),[w,v]=l.useState(),[O,D]=l.useState(1),[b,E]=l.useState(0),k=l.useRef(Pl),A=l.useRef([]),[C,x]=l.useState(0),[_,T]=l.useState([]),[P,F]=l.useState(void 0),[$,V]=l.useState(),[L,M]=l.useState(),[I,B]=l.useState(),[W,U]=l.useState(!1),q=l.useRef([]),Z=X=>{U(!0),D(X),E((X-1)*k.current)},J=async()=>{const X=q.current.length>0?q.current:i,pe=Ot(A.current,X),{colors:ye}=st(y),{totalItems:De,results:de,attrsEvaluated:oe}=await Y.getHandler().searchForTree({params:pe,limit:k.current,offset:b,model:g,fields:y.fields,context:c,attrs:ye&&{colors:ye}});F(Ft(oe));const Ce=it({resultsToSort:de,sorter:$,fields:{...y.fields,...w.fields}});U(!1),T(Ce);const we=await De;x(we)},N=async()=>{try{U(!0),await J()}catch(X){M(JSON.stringify(X))}};l.useEffect(()=>{!p||a&&N()},[O,b,p,a]);const H=async X=>{d(!1),u(!0),B(void 0);try{X==="action"?await R():await ie(),d(!0)}catch(pe){B(pe)}finally{u(!1)}},R=async()=>{const X=await Y.getHandler().getViewsForAction({action:r,context:c});q.current=X.domain,v(X.views.get("form")),m(X.views.get("tree")),S(X.model),k.current=X.limit},ie=async()=>{S(n);const X=await Y.getHandler().getView({model:n,type:"form",context:c});v(X);const pe=await Y.getHandler().getView({model:n,type:"tree",id:s,context:c});m(pe)};l.useEffect(()=>{r?H("action"):n&&H("model")},[r,n]);const ae=X=>{const{id:pe}=X;o({id:pe,model:g,treeView:y})},ee=()=>!y||!w?null:e.jsxs("div",{style:{overflowY:"scroll"},children:[L&&e.jsx(h.Alert,{className:"mt-10",message:L,type:"error",banner:!0}),e.jsx(Ct,{showPagination:!1,total:C,limit:k.current,page:O,treeView:y,results:_,onRequestPageChange:Z,loading:W,onRowClicked:ae,colorsForResults:P,sorter:$,onChangeSort:X=>{V==null||V(X);const pe=it({resultsToSort:_,sorter:X,fields:{...y.fields,...w.fields}});T(pe)},context:c})]});return I?e.jsx(h.Alert,{className:"mt-10",message:I,type:"error",banner:!0}):f?e.jsx(h.Spin,{style:{padding:"2rem"}}):ee()}const Hl=t=>{const{model:r}=t,[n,s]=l.useState();l.useEffect(()=>{o()},[r]);async function o(){const i=await Y.getHandler().search({params:[],model:r,limit:1});i.length>0&&s(i[0].id)}return e.jsx("div",{style:{padding:"0.5rem",overflowY:"scroll"},children:e.jsx(dt,{...t,model:r,id:n,readOnly:!0})})},cr="line_ids";function Kl(t,r){const{model:n,context:s={},id:o,configAction:i}=t,[a,c]=l.useState([]),[f,u]=l.useState(!1),[p,d]=l.useState(),{setIsLoading:g,openAction:S,moveItemsEnabled:y}=l.useContext(lr),m=l.useRef(),w=l.useRef();l.useEffect(()=>{v()},[n,o,s]),l.useImperativeHandle(r,()=>({refresh:()=>{v()},configDashboard:A}));async function v(){u(!0),g(!0),d(void 0);try{const C=await O(),x=await b(C),_=C.fields[cr].relation,T=x[cr].items;w.current=C.fields;const P=await D({items:T,model:_,context:s}),F=await E(P);c(F),u(!1),g(!1)}catch(C){d(JSON.stringify(C))}}async function O(){return await Y.getHandler().getView({model:n,type:"form",context:s})}async function D({items:C,model:x,context:_}){m.current=(await Y.getHandler().getView({model:x,type:"form",context:_})).fields;const[T]=await Gt({treeView:{fields:m.current},formView:{fields:m.current},model:x,items:C,context:_,currentView:"form"});return T}async function b(C){return(await Y.getHandler().readObjects({model:n,ids:[o],fields:C.fields,context:s}))[0]}async function E(C){const x=[];for(const _ of C){const{values:T}=_;if(T.action_id&&T.action_id.length>0){const P=parseInt(T.action_id[0],10),F=await $l({actionId:P,rootContext:s});x.push({..._,actionData:F})}}return x}async function k(C){if(!y)return;const x=C.filter(F=>{const $=a.find(L=>L.id===F.id);if(!$)return!1;if(!$.position)return!0;const V={...JSON.parse($.position.replace(/'/g,'"')),id:$.id};return JSON.stringify(F)!==JSON.stringify(V)});if(x.length===0)return;const T=a.filter(F=>x.map($=>$.id).includes(F.id)).map(F=>{const $={...x.find(V=>V.id===F.id)};return delete $.id,{...F},{...F,operation:"pendingUpdate",values:{...F.values,position:JSON.stringify($).replace(/"/g,"'")}}}),P={fields:m.current,items:T};await Y.getHandler().update({model:n,id:o,values:{[cr]:P},fields:w.current,context:s})}async function A(){S(i)}return p?(console.log(p),e.jsx(h.Alert,{className:"mt-10 mb-20",message:p,type:"error",banner:!0})):f?e.jsx(K.LoadingOutlined,{}):e.jsx(Kn,{onPositionItemsChanged:k,children:a.map((C,x)=>{const{actionData:_,values:T}=C,{position:P,id:F}=T,{actionId:$,actionType:V,key:L,title:M,views:I,model:B,context:W,domain:U,initialView:q,limit:Z}=_;let J={};try{J=JSON.parse(P.replace(/'/g,'"'))}catch{J={x:x*2,y:0,w:2,h:3}}let N=null;if((q==null?void 0:q.type)==="graph")N=e.jsx(Et,{view_id:I.filter(ie=>ie[1]==="graph")[0][0],model:B,context:W,domain:U,limit:Z});else if((q==null?void 0:q.type)==="form")N=e.jsx(Hl,{model:B,actionDomain:U});else if((q==null?void 0:q.type)==="tree")N=e.jsx(Bl,{model:B,domain:U,view_id:I.filter(ie=>ie[1]==="tree")[0][0],onRowClicked:ie=>{const ae=I.find(ee=>{const[,X]=ee;return X==="form"});if(ae){const[ee,X]=ae,{actionId:pe,actionType:ye,title:De,model:de}=_,oe={action_id:pe,action_type:ye,name:De,res_id:ie.id,res_model:de,view_id:ee,view_type:X};S(oe)}}});else if(q!==void 0){const ie=q&&Array.isArray(q.id)?{...q,id:q.id[0]}:q;N=e.jsx(Hn,{action_id:$,action_type:V,tabKey:L,title:M,views:I,model:B,context:W,domain:U,setCanWeClose:()=>{},initialView:ie,limit:Z})}let H;const R=I.find(ie=>{const[,ae]=ie;return ae==="tree"});if(R){const[ie,ae]=R,{actionId:ee,actionType:X,title:pe,model:ye}=_;H={action_id:ee,action_type:X,name:pe,res_id:!1,res_model:ye,view_id:ie,view_type:ae}}return e.jsx(Yn,{id:F,title:M,parms:J,action:H,openAction:S,children:N},F)})})}const Wn=l.forwardRef(Kl),qn=t=>e.jsx(me,{...t,children:e.jsx(Yl,{...t})}),Yl=t=>{const{ooui:r,value:n}=t;if(!n)return null;const s=r.colors==="auto"?zt(n):r.colors[n];return e.jsx(h.Tag,{color:s,children:r.selectionValues.get(n)})},Un=t=>{const{ooui:r}=t;return e.jsx(me,{type:"array",...t,children:e.jsx(Wl,{ooui:r})})},Wl=t=>{const{value:r,ooui:n,onChange:s}=t,{items:o=[]}=r||{},i=o.filter(C=>C.operation!=="pendingRemove").map(C=>C.id),[a,c]=l.useState([]),[f,u]=l.useState(),[p,d]=l.useState(!1),{relation:g,context:S,readOnly:y,field:m,columns:w}=n,v=l.useContext(_e),{getContext:O}=v||{};et.default(()=>{b()},[o]);const D=C=>{s==null||s({items:C})};async function b(){d(!0);let C=[];if(n.domain){const x=await Y.getHandler().evalDomain({domain:n.domain,values:lt({fields:v==null?void 0:v.getFields(),values:v.getPlainValues()}),fields:v==null?void 0:v.getFields(),context:v.getContext()});C=[...C,...x]}try{const _=(await Y.getHandler().search({model:g,params:C,fields:[m],context:{...O==null?void 0:O(),...S}})).map(T=>{const P=T[m];let F=P;return Array.isArray(P)&&(F=P[1]),{label:F,value:T.id}});c(_)}catch(x){u(x)}finally{d(!1)}if(f)return e.jsx(h.Alert,{className:"mt-10",message:f,type:"error",banner:!0})}const E=()=>{A(a.map(C=>C.value))},k=()=>{A([])},A=C=>{const x=o.map(T=>C.includes(T.id)?T.operation=="pendingRemove"?{...T,operation:"original"}:T:{id:T.id,operation:"pendingRemove"}),_=x.map(T=>T.id);C.filter(T=>!_.includes(T)).map(T=>{x.push({id:T,operation:"pendingLink"})}),D(x)};return p&&a.length===0?e.jsx(h.Spin,{}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"flex flex-row",children:[e.jsx(h.Checkbox.Group,{value:a.length?i:[],disabled:y,onChange:A,style:{width:"100%"},children:e.jsx(h.Row,{children:a.map(C=>e.jsx(h.Col,{span:Math.floor(24/w),children:e.jsx(h.Checkbox,{value:C.value,children:C.label})}))})}),!y&&e.jsxs(h.Space,{children:[e.jsx(h.Button,{onClick:E,disabled:i.length==a.length,children:"Check all"}),e.jsx(h.Button,{onClick:k,disabled:i.length===0,children:"Uncheck all"})]})]})})},Gn=t=>e.jsx(me,{...t,children:e.jsx(ql,{...t})}),ql=t=>{const{value:r,ooui:n}=t;return e.jsx("div",{style:{height:n.height?n.height+"px":"100%",overflow:"auto"},children:e.jsx(mo.default,{children:r,className:"ant-typography"})})},jn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(Ul,{...t})})},Ul=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,direction:a}=r,c=Array.from(o.entries()),f=c&&c.length&&c.map(u=>{const[p,d]=u;return e.jsx(h.Radio,{value:p,children:d},p)});return e.jsx(h.Radio.Group,{disabled:i,onChange:n,value:s,children:e.jsx(h.Space,{direction:a,children:f})})},zn=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o}=r;return e.jsx(me,{...t,valuePropName:"checked",children:e.jsx(Gl,{id:n,readOnly:s,required:o})})},Gl=t=>{const{required:r,readOnly:n,...s}=t;return e.jsx("div",{className:"flex flex-row",children:e.jsx(h.Switch,{disabled:n,...s})})},Jn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(jl,{...t})})},jl=t=>{const{ooui:r,value:n}=t,{selectionValues:s,errorField:o}=r,i=l.useContext(_e),a=Array.from(s.entries()),c=a.map(p=>p[0]).indexOf(n);let f="process",u="";return o&&(u=i.getFieldValue(o),u&&(f="error")),e.jsx(h.Steps,{current:c,status:f,children:a.map((p,d)=>e.jsx(h.Steps.Step,{title:p[1],description:d===c&&f==="error"?u:null}))})},Zn=t=>{const{ooui:r}=t,{lang:n,height:s}=r,o=l.useContext(_e),{elementHasLostFocus:i}=o||{},a=c=>{c.onDidBlurEditorWidget(i)};return e.jsx(me,{...t,children:e.jsx(yo.default,{defaultLanguage:n||"",height:s||300,onMount:a})})},{Content:zl}=h.Layout,{Title:Jl}=h.Typography;function Zl(){const{t}=l.useContext(ge);return e.jsx(zl,{className:"m-5 select-none",children:e.jsx(Jl,{level:5,children:t("welcome")})})}function Xl(t,r){const{children:n,globalValues:s={},rootContext:o={},lang:i}=t,[a,c]=l.useState("welcome"),[f,u]=l.useState([{title:be("welcome",i),key:"welcome",closable:!0,content:e.jsx(Zl,{})}]),p=l.useRef(new Map),d=l.useRef();l.useImperativeHandle(r,()=>({retrieveAndOpenAction:y,openShortcut:v}));function g(b){if(b===a){const E=f.findIndex(k=>k.key===b);f[E-1]&&c(f[E-1].key),f[E+1]&&c(f[E+1].key)}u(f.filter(E=>E.key!==b)),p.current.delete(b)}function S({tabKey:b,canWeClose:E}){p.current.set(b,E)}async function y({action:b,values:E,forced_values:k,initialViewType:A,res_id:C,domain:x=[]}){const _=await Y.getHandler().getActionData({action:b,context:o});if(_.type==="ir.actions.wizard"){$e("Action type not supported");return}const[T,P]=b.split(","),F=parseInt(P),$=se.parseContext({context:_.context,values:s,fields:{}}),V=_.domain?await Y.getHandler().evalDomain({domain:_.domain,values:s,context:{...o,...$}}):[],{res_model:L,views:M,name:I,target:B,view_type:W,limit:U}=_,q=W==="tree",Z=[];for(const N of M){const[H,R]=N;if(H)Z.push(N);else if(R==="dashboard")Z.push([void 0,"dashboard"]);else{const{view_id:ie}=await Y.getHandler().getView({model:L,type:R,id:H,context:{...o,...$}});Z.push([ie,R])}}let J;if(A){const[N,H]=Z.find(([R,ie])=>ie===A);J={id:N,type:H}}else{const[N,H]=Z[0];J={id:N,type:H}}D({domain:[...V,...x],context:{...o,...$},model:L,views:Z,title:I,target:B,initialView:J,action_type:T,action_id:F,values:E,forced_values:k,res_id:C,treeExpandable:q,limit:U})}function m({title:b,content:E,key:k,action:A}){let C=[...f];f.length===1&&f[0].key==="welcome"&&(C=[...f.filter(x=>x.key!=="welcome")]),u([...C,{title:b,key:k,closable:!0,content:E,action:A}]),c(k)}async function w({relateData:b,fields:E,values:k,action_id:A,action_type:C}){const{res_model:x,context:_,domain:T,views:P,target:F,string:$,limit:V}=b,[L,M]=P[0],I={id:L,type:M},B=se.parseContext({context:_,values:{...k,...s},fields:E}),W=T?await Y.getHandler().evalDomain({domain:T,values:lt({fields:E,values:{...k,...s}}),fields:E,context:{...o,...B}}):[];D({model:x,target:F,views:P,context:{...o,...B},domain:W,title:$,initialView:I,action_id:A,action_type:C,limit:V})}async function v(b){const{action_id:E,action_type:k,res_id:A,view_id:C}=b,x=`${k},${E}`,_=await Y.getHandler().getActionData({action:x,context:o}),T=se.parseContext({context:_.context,values:s,fields:{}}),P=_.domain?await Y.getHandler().evalDomain({domain:_.domain,values:s,context:{...o,...T}}):[],{res_model:F,views:$,name:V,target:L,view_type:M,limit:I}=_,B=M==="tree",W=[];for(const J of $){const[N,H]=J;if(N)W.push(J);else if(H==="dashboard")W.push([void 0,"dashboard"]);else{const{view_id:R}=await Y.getHandler().getView({model:F,type:H,id:N,context:{...o,...T}});W.push([R,H])}}let U,q;if(C==null){const J=W.find(N=>N[0]===void 0);U=void 0,q=J[1]}else[U,q]=W.find(J=>J[0]===void 0?!1:J[0]===C);const Z={id:U,type:q};D({domain:P,context:{...o,...T},model:F,views:W,title:V,target:L,initialView:Z,action_id:E,action_type:k,res_id:A,treeExpandable:B,limit:I})}async function O({model:b,values:E,forced_values:k,initialViewType:A,res_id:C,domain:x}){const _=await Y.getHandler().getActionStringForModel(b);await y({action:_,values:E,forced_values:k,initialViewType:A,res_id:C,domain:x})}async function D({domain:b,context:E,model:k,views:A,title:C,target:x,initialView:_,action_id:T,action_type:P,res_id:F,values:$,forced_values:V,treeExpandable:L=!1,limit:M}){const I=gr.v4();if(x!=="current"){const B=await Y.getHandler().getView({model:k,type:"form",id:_.type==="form"?_.id:void 0,context:{...o,...E}});d.current.openActionModal({domain:b,model:k,formView:B,context:{...o,...E},actionData:{action_id:T,action_type:P,res_id:F,view_id:B.view_id}})}else{const B=_&&Array.isArray(_.id)?{..._,id:_.id[0]}:_;m({title:C,action:{id:T,type:P},content:e.jsx(Hn,{action_id:T,action_type:P,tabKey:I,title:C,views:A,model:k,context:{...o,...E},domain:b,setCanWeClose:S,initialView:B,res_id:F,formDefaultValues:$,formForcedValues:V,treeExpandable:L,limit:M}),key:I})}}return e.jsx(xo,{lang:i,children:e.jsx(Di,{openShortcut:v,openAction:D,openRelate:w,openDefaultActionForModel:O,tabs:f,activeKey:a,onRemoveTab:async b=>{const E=p.current.get(b);(await(E==null?void 0:E())||a==="welcome")&&g(b)},onChangeTab:b=>{c(b)},children:e.jsx(Zr,{ref:d,globalValues:s,children:n})})})}const Ql=l.forwardRef(Xl),{useToken:Rl}=h.theme;function ec(t){const{label:r,onClose:n,tabKey:s,isActive:o,onSelected:i}=t,{token:a}=Rl(),c=o?a.colorBgContainer:a.colorPrimaryBg;return e.jsxs("div",{onClick:()=>{!o&&i(s)},style:{cursor:"pointer",height:40,paddingTop:7,paddingBottom:5,paddingLeft:10,paddingRight:10,backgroundColor:c,display:"inline-flex",flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",borderTopLeftRadius:a.borderRadius,borderTopRightRadius:a.borderRadius,marginLeft:2},children:[e.jsx("div",{style:{color:a.colorPrimaryActive,userSelect:"none",height:40,display:"flex",justifyContent:"center",alignItems:"center",paddingLeft:5,paddingRight:5,marginBottom:2,fontWeight:o?500:"normal"},children:r}),e.jsx("div",{style:{paddingLeft:5,height:40,display:"flex",justifyContent:"center",alignItems:"center"},children:e.jsx(K.CloseOutlined,{style:{color:a.colorPrimaryActive},onClick:f=>{f.stopPropagation(),n(s)}})})]})}function tc(){const t=l.useContext(qe),{activeKey:r,tabs:n,onRemoveTab:s,onChangeTab:o}=t||{};return e.jsx(e.Fragment,{children:n.map(i=>e.jsx(ec,{tabKey:i.key,label:i.title,onClose:s,isActive:r===i.key,onSelected:o},i.key))})}function rc(t){const{tab:r}=t,n=l.useContext(qe),{activeKey:s}=n||{},o={display:"none"};return e.jsx("div",{style:r.key!==s?o:void 0,children:r.content})}const nc=Pe.default.memo(rc,()=>!0);function oc(){const t=l.useContext(qe),{tabs:r}=t||{},n=(r==null?void 0:r.map(s=>e.jsx(nc,{tab:s},s.key)))||null;return e.jsx(e.Fragment,{children:n})}const{useToken:sc}=h.theme,ic=t=>{const{onRetrieveShortcuts:r,onCheckIsFavourite:n,onAddFavourite:s,onRemoveFavourite:o}=t,[i,a]=l.useState(!1),[c,f]=l.useState(!1),[u,p]=l.useState([]),[d,g]=l.useState(!0),[S,y]=l.useState(),{t:m}=l.useContext(ge)||{},{token:w}=sc(),v=l.useContext(qe),{openShortcut:O,tabs:D,activeKey:b,currentView:E,currentId:k,openDefaultActionForModel:A}=v||{};l.useEffect(()=>{C()},[]),l.useEffect(()=>{T()},[D,b,E,k]);async function C(){try{g(!0);const L=await r();p(L)}catch(L){$e(L)}finally{g(!1)}}function x(L){const{key:M}=L,I=u.find(B=>B.id===Number(M));(I==null?void 0:I.action_type)!=="ir.actions.wizard"&&(I&&O(I),f(!1))}function _(L){L&&C(),f(L)}async function T(){if(!E)return;const L=D.find(q=>q.key===b),{id:M,type:I}=(L==null?void 0:L.action)||{};if(!M||!I){a(!1);return}const B=E.view_id;let W=!1;E.type==="form"&&(W=k||!1);const U=await n({action_id:M,action_type:I,view_id:B,res_id:W});U!==!1&&y(U),a(U!==!1)}async function P(){f(!1),A==null||A({model:"ir.ui.view_sc"})}const F=e.jsxs(h.Menu,{onClick:x,children:[e.jsxs("div",{style:{width:300,padding:5,display:"flex"},children:[e.jsx("div",{style:{paddingLeft:15,color:"#ccc"},children:m==null?void 0:m("favorites").toUpperCase()}),e.jsx("div",{style:{flexGrow:1,paddingLeft:10},children:e.jsx(h.Tooltip,{title:m==null?void 0:m("edit_favorites"),children:e.jsx(K.EditOutlined,{style:{color:w.colorPrimary,cursor:"pointer"},onClick:P})})})]}),e.jsx(h.Menu.Divider,{}),d?e.jsx(h.Spin,{style:{padding:"1rem"}}):u.length>0?e.jsx(e.Fragment,{children:u.map(L=>e.jsx(h.Menu.Item,{children:e.jsx($,{title:L.name,type:L.view_type})},L.id))}):e.jsx("div",{style:{width:300,padding:5,paddingLeft:15},children:m==null?void 0:m("no_favorites")})]});function $({title:L,type:M}){const I=M==="tree"?e.jsx(K.TableOutlined,{}):e.jsx(K.FormOutlined,{});return e.jsxs(h.Row,{wrap:!1,children:[e.jsx(h.Col,{flex:"none",style:{paddingRight:20},children:I}),e.jsx(h.Col,{flex:"auto",children:L})]})}async function V(){if(i&&S)await o(S);else{if(!E)return;const L=D.find(U=>U.key===b),{id:M,type:I}=(L==null?void 0:L.action)||{},B=E.view_id;let W=!1;if(!M||!I){a(!1);return}E.type==="form"&&(W=k||!1),await s({action_id:M,action_type:I,view_id:B,res_id:W})}await C(),a(!i)}return e.jsxs(e.Fragment,{children:[e.jsx(h.Button,{type:i?"primary":"default",icon:i?e.jsx(K.StarFilled,{style:{color:"white"}}):e.jsx(K.StarOutlined,{}),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:V}),e.jsx(h.Dropdown,{overlay:F,onVisibleChange:_,open:c,children:e.jsx(h.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:e.jsx(K.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:L=>L.preventDefault()})})]})};G.ActionBar=$n,G.Binary=Mn,G.Boolean=Dr,G.Button=Yt,G.ButtonGroup=br,G.Char=Wt,G.CodeEditor=Zn,G.ConfigContext=Bn,G.ConnectionProvider=Y,G.ContentRootProvider=Zr,G.CurrentTabContent=oc,G.Dashboard=Wn,G.DashboardGrid=Kn,G.DashboardGridItem=Yn,G.Date=Fn,G.DateTime=On,G.Email=Nn,G.ExportModal=Tn,G.FavouriteButton=ic,G.Float=Zt,G.FloatTime=wn,G.Form=dt,G.FormModal=ut,G.GraphIndicator=pn,G.Group=rr,G.Image=Hr,G.Integer=St,G.Label=mt,G.Many2one=dn,G.Markdown=Gn,G.MultiCheckbox=Un,G.Notebook=vn,G.One2many=yn,G.ProgressBar=Rr,G.Radio=jn,G.Reference=kn,G.RootView=Ql,G.SearchFilter=Xt,G.SearchModal=er,G.SearchTree=Rt,G.Selection=qt,G.Separator=Cn,G.Steps=Jn,G.Switch=zn,G.TabSelector=tc,G.Tag=qn,G.Tags=qr,G.Text=Sn,G.Time=Dn,G.Tree=Ct,G.Url=Ln,G.iconMapper=We,G.showConfirmDialog=nt,Object.defineProperties(G,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
37
37
|
//# sourceMappingURL=react-ooui.umd.js.map
|