@gisce/react-ooui 2.0.0-rc.7 → 2.0.0-rc.8

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.
@@ -1,26 +1,26 @@
1
- (function(G,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("react"),require("antd"),require("@gisce/ooui"),require("@ant-design/icons"),require("interweave"),require("react/jsx-runtime"),require("@tabler/icons-react"),require("antd/lib/input/TextArea"),require("styled-components"),require("react-measure"),require("antd/lib/typography/Title"),require("@ant-design/plots"),require("use-deep-compare-effect"),require("@gisce/react-formiga-table"),require("file-type-buffer-browser"),require("antd/lib/_util/colors"),require("@gisce/fiber-diagram"),require("@gisce/react-formiga-components"),require("validator/lib/isURL"),require("validator/lib/isEmail"),require("react-hotkeys-hook"),require("react-markdown"),require("@monaco-editor/react"),require("md5"),require("react-grid-layout"),require("react-grid-layout/css/styles.css"),require("uuid")):typeof define=="function"&&define.amd?define(["exports","react","antd","@gisce/ooui","@ant-design/icons","interweave","react/jsx-runtime","@tabler/icons-react","antd/lib/input/TextArea","styled-components","react-measure","antd/lib/typography/Title","@ant-design/plots","use-deep-compare-effect","@gisce/react-formiga-table","file-type-buffer-browser","antd/lib/_util/colors","@gisce/fiber-diagram","@gisce/react-formiga-components","validator/lib/isURL","validator/lib/isEmail","react-hotkeys-hook","react-markdown","@monaco-editor/react","md5","react-grid-layout","react-grid-layout/css/styles.css","uuid"],l):(G=typeof globalThis<"u"?globalThis:G||self,l(G["react-ooui"]={},G.React,G.antd,G.ooui,G.AntIcons,G.interweave,G.jsxRuntime,G.TablerIcons,G.TextArea$1,G.styled,G.Measure,G.Title$3,G.plots,G.useDeepCompareEffect,G.reactFormigaTable,G.fileTypeBufferBrowser,G.colors,G.fiberDiagram,G.reactFormigaComponents,G.isURL,G.isEmail,G.reactHotkeysHook,G.ReactMarkdown,G.Editor,G.md5,G.reactGridLayout,null,G.uuid))})(this,function(G,l,p,ie,H,Ht,e,ho,po,go,mo,yo,Kt,vo,wo,Co,mr,So,yr,bo,xo,To,Fo,Oo,_o,vr,Uc,wr){"use strict";const Ue=t=>t&&typeof t=="object"&&"default"in t?t:{default:t};function Cr(t){if(t&&t.__esModule)return t;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,s.get?s:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const Be=Ue(l),Sr=Cr(H),br=Ue(H),xr=Cr(ho),Do=Ue(po),mt=Ue(go),Yt=Ue(mo),Wt=Ue(yo),et=Ue(vo),ko=Ue(bo),Mo=Ue(xo),Vo=Ue(Fo),Eo=Ue(Oo),Io=Ue(_o),{Text:$o,Title:Ao}=p.Typography,{useToken:Lo}=p.theme,No={left:"justify-start",center:"justify-center",right:"justify-end"},yt=t=>{const{ooui:r,align:n,responsiveBehaviour:s}=t,{label:o,tooltip:i,fieldForLabel:a,labelSize:c,labelType:h}=r,f=a!==null&&o.length>1?o+" :":o,g=n||(a?s?"left":"right":"left"),{token:w}=Lo(),y=c===void 0?$o:Ao;return e.jsxs("div",{className:`flex flex-row items-center pb-1 pt-1 ${No[g]}`,children:[i&&e.jsx(p.Tooltip,{title:i,children:e.jsx(H.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:w.colorPrimary}})}),e.jsx("span",{className:"pr-2",children:e.jsx(y,{level:c,type:h,children:e.jsx(Ht.Interweave,{content:f})})})]})},Po={ca_ES:{true:"S\xED",false:"No",simple_search:"B\xFAsqueda simple",advanced_search:"B\xFAsqueda avan\xE7ada",search:"Buscar",parameters:"Par\xE0metres",limit:"Limit",first:"Primer",no_results:"No hi ha resultats",summary:"Mostrant resultats des de {from} fins {to} d'un total de {total} registres",welcome:"Benvingut",attachments:"Adjunts",addNewAttachment:"Afegir nou adjunt",listAllAttachments:"Veure tots els adjunts",viewAs:"Veure com",confirmRemoveItem:"Est\xE0s segur de volguer eliminar aquest item?",save:"Desar",delete:"Eliminar",refresh:"Refrescar",previous:"Anterior",next:"Seg\xFCent",actions:"Accions",reports:"Informes",related:"Relacionat",new:"Nou",fillRequiredField:"Siusplau, omple aquest camp obligatori",fillRequiredFields:"Siusplau, omple tots els camps obligatoris",generatingReport:"Generant informe...",confirmation:"Confirmaci\xF3",ok:"D'acord",cancel:"Cancel\xB7lar",formHasErrors:"El formulari t\xE9 errors",unsavedChanges:"Hi ha canvis sense guardar",confirmRefreshWithoutSave:"Est\xE0s segur de volguer refrescar la p\xE0gina sense guardar els canvis?",discardAndRefresh:"Descarta els canvis i refresca",removeItems:"Elimina el registre/s",confirmRemove:"Est\xE0s segur de volguer eliminar els registre/s seleccionats?",yesConfirmRemove:"S\xED, elimina",unlinkItems:"Desenlla\xE7a registre/s",confirmUnlink:"Est\xE0s segur de volguer desenlla\xE7ar els registre/s seleccionats?",yesConfirmUnlink:"S\xED, desenlla\xE7a",confirmCloseWithoutSave:"Est\xE0s segur de volguer tancar aquesta finestra sense guardar?",closeWithoutSaving:"Tancar sense guardar",action:"Acci\xF3",report:"Informe",selectAction:"Selecciona una acci\xF3",download:"Descarrega",clear:"Neteja",open:"Obre",uploadNewImage:"Puja una nova imatge",noCurrentEntries:"No hi ha registres",duplicate:"Duplicar",downloadingAttachment:"Descarregant adjunt...",tree:"llista",form:"formulari",favorites:"Els meus favorits",edit_favorites:"Edita els favorits",no_favorites:"No tens favorits guardats",register:"Registre",of:"de",editingDocument:"Editant document",showLogs:"Veure logs",createdBy:"Creat per l'usuari",creationDate:"Data creaci\xF3",lastUpdatedBy:"\xDAltima modificaci\xF3 per",lastUpdatedDate:"Data \xFAltima modificaci\xF3",goToResourceId:"V\xE9s al recurs amb ID",searchId:"ID de cerca:",idNotFound:"No es troba aquesta id de recurs per l'objecte",selectedRegisters:"registres seleccionats",translate:"Tradu\xEFr",enterTextBeforeTranslate:"Introdueix algun text al camp abans d'afegir traduccions",saveBeforeTranslate:"Heu de desar el registre abans d'afegir les traduccions",configDashboard:"Configurar panell",moveDashboard:"Moure items del panell",openAttachment:"Veure detall de l'adjunt",openAttachmentLink:"Obrir enlla\xE7 de l'adjunt",uninformed:"Sense informar",totalRegisters:"Registres totals:",export:"Exportar",selectAtLeastOneField:"Selecciona almenys un camp per a l'exportaci\xF3",printScreen:"Imprimir pantalla",advancedExport:"Exportaci\xF3 avan\xE7ada",savedRegisters:"Registre guardat correctament",errorWhileSavingForm:"Error en guardar el formulari",autor:"Autor"},en_US:{true:"Yes",false:"No",simple_search:"Simple search",advanced_search:"Advanced search",search:"Search",parameters:"Parameters",limit:"Limit",first:"First",no_results:"No results",summary:"Showing registers from {from} to {to} of {total} registers",welcome:"Welcome",attachments:"Attachments",addNewAttachment:"Add new attachment",listAllAttachments:"View all the attachments",viewAs:"View as",confirmRemoveItem:"Are you sure to remove this item?",save:"Save",delete:"Delete",refresh:"Refresh",previous:"Previous",next:"Next",actions:"Actions",reports:"Reports",related:"Related",new:"New",fillRequiredField:"Please fill this required field",fillRequiredFields:"Please fill all the required fields",generatingReport:"Generating report...",confirmation:"Confirmation",ok:"OK",cancel:"Cancel",formHasErrors:"Form has errors",unsavedChanges:"There are unsaved changes",confirmRefreshWithoutSave:"Do you really want to refresh this window without saving?",discardAndRefresh:"Discard changes and refresh",removeItems:"Remove item/s",confirmRemove:"Are you sure you want to remove the selected item/s?",yesConfirmRemove:"Yes, remove",unlinkItems:"Unlink item/s",confirmUnlink:"Are you sure you want to unlink the selected item/s?",yesConfirmUnlink:"Yes, unlink",confirmCloseWithoutSave:"Do you really want to close this window without saving?",closeWithoutSaving:"Close without saving",action:"Action",report:"Report",selectAction:"Select an action",download:"Download",clear:"Clear",open:"Open",uploadNewImage:"Upload new image",noCurrentEntries:"No current entries",duplicate:"Duplicate",downloadingAttachment:"Downloading attachment...",tree:"list",form:"form",favorites:"My shortcuts",edit_favorites:"Edit shortcuts",no_favorites:"You don't have any shortcuts saved yet",register:"Register",of:"of",editingDocument:"Editing document",showLogs:"Show logs",createdBy:"Created by user",creationDate:"Creation date",lastUpdatedBy:"Last modified by",lastUpdatedDate:"Date of last modification",goToResourceId:"Go to resource ID",searchId:"Search ID:",idNotFound:"Resource ID does not exist for this object!",selectedRegisters:"selected registers",translate:"Translate",enterTextBeforeTranslate:"Enter some text to the related field before adding translations",saveBeforeTranslate:"You must save the record before adding translations",configDashboard:"Setup dashboard",moveDashboard:"Move dashboard items",openAttachment:"Open attachment detail",openAttachmentLink:"Open attachment link",uninformed:"Uninformed",totalRegisters:"Total registers:",export:"Export",selectAtLeastOneField:"Select at least one field for the export",printScreen:"Print screen",advancedExport:"Advanced export",savedRegisters:"Record successfully saved",errorWhileSavingForm:"Error while saving form",author:"Author"},es_ES:{true:"S\xED",false:"No",simple_search:"B\xFAsqueda simple",advanced_search:"B\xFAsqueda avanzada",search:"Buscar",parameters:"Parametros",limit:"L\xEDmite",first:"Primero",no_results:"No hay resultados",summary:"Mostrando resultado desde {from} hasta {to} de un total de {total} registros",welcome:"Bienvenido",attachments:"Adjuntos",addNewAttachment:"A\xF1adir nuevo adjunto",listAllAttachments:"Ver todos los adjuntos",viewAs:"Ver c\xF3mo",confirmRemoveItem:"Est\xE1s seguro de querer eliminar \xE9ste registro?",save:"Guardar",delete:"Eliminar",refresh:"Refrescar",previous:"Anterior",next:"Siguiente",actions:"Acciones",reports:"Informes",related:"Relacionado",new:"Nuevo",fillRequiredField:"Por favor, rellena \xE9ste campo obligatorio",fillRequiredFields:"Por favor, rellena todos los campos obligatorios",generatingReport:"Generando informe...",confirmation:"Confirmaci\xF3m",ok:"De acuerdo",cancel:"Cancelar",formHasErrors:"El formulario tiene errores",unsavedChanges:"Hay cambios sin guardar",confirmRefreshWithoutSave:"Est\xE1s seguro de querer refrescar la p\xE1gina sin guardar los cambios?",discardAndRefresh:"Descarta los cambios y refresca",removeItems:"Eliminar el registro/s",confirmRemove:"Est\xE1s seguro de querer eliminar los registro/s seleccionados?",yesConfirmRemove:"S\xED, elimina",unlinkItems:"Desenlaza registro/s",confirmUnlink:"Est\xE1s seguro de querer desenlazar los registro/s seleccionados?",yesConfirmUnlink:"S\xED, desenlaza",confirmCloseWithoutSave:"Est\xE1s seguro de querer cerrar \xE9sta ventana sin cerrar?",closeWithoutSaving:"Cerrar sin guardar",action:"Acci\xF3n",report:"Informe",selectAction:"Selecciona una acci\xF3n",download:"Descarga",clear:"Limpiar",open:"Abrir",uploadNewImage:"Subir una nueva im\xE1gen",noCurrentEntries:"No hay registros",duplicate:"Duplicar",downloadingAttachment:"Descargando adjunto...",tree:"lista",form:"formulario",favorites:"Mis favoritos",edit_favorites:"Edita los favoritos",no_favorites:"No tienes favoritos guardados",register:"Registro",of:"de",editingDocument:"Editando documento",showLogs:"Ver logs",createdBy:"Creado por el usuario",creationDate:"Fecha creaci\xF3n",lastUpdatedBy:"\xDAltima modificaci\xF3n por",lastUpdatedDate:"Fecha \xFAltima modificaci\xF3n",goToResourceId:"Ir al recurso con ID",searchId:"ID de b\xFAsqueda:",idNotFound:"No se encuentra \xE9sta ID de recursos para el objeto",selectedRegisters:"registros seleccionados",translate:"Traducir",enterTextBeforeTranslate:"Introduce algun texto en el campo antes de a\xF1adir traducciones",saveBeforeTranslate:"Tienes que guardar el registro antes de a\xF1adir las traducciones",configDashboard:"Configurar panel",moveDashboard:"Mover items del panel",openAttachment:"Ver detalle del adjunto",openAttachmentLink:"Abrir enlace del adjunto",uninformed:"Sin informar",totalRegisters:"Registros totales:",export:"Exportar",selectAtLeastOneField:"Selecciona al menos un campo para la exportaci\xF3n",printScreen:"Imprimir pantalla",advancedExport:"Exportaci\xF3n avanzada",savedRegisters:"Registro guardado correctamente",errorWhileSavingForm:"Error al guardar el formulario",author:"Autor"}},ge=Be.default.createContext(null),Bo=t=>{const{children:r,lang:n}=t;function s(o){return be(o,n)}return e.jsx(ge.Provider,{value:{lang:n,t:s},children:r})},be=(t,r)=>{var s;return((s=Po[r])==null?void 0:s[t])||t};function me({ooui:t,children:r,layout:n="horizontal",valuePropName:s,showLabel:o=!1,alignLabel:i="left",required:a=!1,type:c,validator:h}){const{id:d,label:f,tooltip:u}=t,{t:g}=l.useContext(ge),w=a?[{required:!0,message:g("fillRequiredField"),type:c,validator:h}]:void 0,y=()=>e.jsx(p.Form.Item,{className:"mb-0",name:d,valuePropName:s,rules:w,children:r});if(!o)return y();const m=e.jsx(yt,{ooui:new ie.Label({name:d+"_label",string:f,help:u,fieldForLabel:d}),align:i});return n==="horizontal"?(()=>e.jsxs(p.Row,{align:"middle",className:"pb-1 pt-1",children:[e.jsx(p.Col,{className:"ml-2",flex:"7rem",children:e.jsx("div",{className:"flex flex-col items-end",children:m})}),e.jsx(p.Col,{flex:"auto",children:y()})]}))():(()=>e.jsxs(e.Fragment,{children:[m,y()]}))()}const{confirm:Ho}=p.Modal,ot=({onOk:t,confirmMessage:r,lang:n})=>{Ho({title:be("confirmation",n),icon:e.jsx(H.ExclamationCircleOutlined,{}),centered:!0,content:r,okText:be("ok",n),cancelText:be("cancel",n),onOk:t})},Ve=Be.default.createContext(null),Ko=t=>{const{children:r,activeId:n,activeModel:s,setFieldValue:o,getFieldValue:i,executeButtonAction:a,getContext:c,getValues:h,getPlainValues:d,domain:f,submitForm:u,fetchValues:g,formHasChanges:w,elementHasLostFocus:y,getFields:m}=t;return e.jsx(Ve.Provider,{value:{domain:f,getValues:h,getPlainValues:d,getFields:m,activeId:n,activeModel:s,setFieldValue:o,getFieldValue:i,executeButtonAction:a,getContext:c,submitForm:u,fetchValues:g,formHasChanges:w,elementHasLostFocus:y},children:r})},Tr={"terp-purchase":"ShoppingCart","terp-graph":"PieChart","terp-crm":"Contacts","terp-hr":"Friends","terp-account":"BuildingBank","terp-project":"Checklist","terp-administration":"Adjustments","terp-partner":"Team","terp-mrp":"Build","terp-product":"Shopping",STOCK_JUSTIFY_FILL:"UnorderedList",STOCK_INDENT:"IndentIncrease",STOCK_HELP:"Question",STOCK_GO_UP:"ArrowUp",STOCK_SORT_DESCENDING:"SortDescending",STOCK_ADD:"Plus",STOCK_GOTO_LAST:"FastForward",STOCK_FIND:"Search",STOCK_PROPERTIES:"Control",STOCK_DIALOG_INFO:"Info",STOCK_FLOPPY:"Usb",STOCK_JUSTIFY_CENTER:"AlignCenter",STOCK_GO_BACK:"ArrowLeft",STOCK_UNDERLINE:"Underline",STOCK_BOLD:"Bold",STOCK_APPLY:"Check",STOCK_ZOOM_OUT:"ZoomOut",STOCK_STRIKETHROUGH:"Strikethrough",STOCK_MEDIA_REWIND:"Backward",STOCK_PRINT:"Printer",STOCK_NO:"Close",STOCK_GOTO_FIRST:"FastBackward",STOCK_CLOSE:"Close",STOCK_REMOVE:"Minus",STOCK_CUT:"Scissor",STOCK_DIALOG_AUTHENTICATION:"Safety",STOCK_ZOOM_FIT:"Expand",STOCK_JUMP_TO:"Select",STOCK_HARDDISK:"Hdd",STOCK_SAVE_AS:"Save",STOCK_UNDO:"Undo",STOCK_JUSTIFY_RIGHT:"AlignRight",STOCK_DIALOG_ERROR:"CloseCircle",STOCK_INDEX:"Profile",STOCK_GOTO_BOTTOM:"VerticalAlignBottom",STOCK_MEDIA_NEXT:"StepForward",STOCK_REDO:"Redo",STOCK_COPY:"Copy",STOCK_MEDIA_PAUSE:"Pause",STOCK_GO_FORWARD:"ArrowRight",STOCK_UNDELETE:"Undo",STOCK_EXECUTE:"Setting",STOCK_SAVE:"Save",STOCK_DIALOG_QUESTION:"QuestionCircle",STOCK_SORT_ASCENDING:"SortAscending",STOCK_REFRESH:"Reload",STOCK_MEDIA_FORWARD:"Forward",STOCK_STOP:"Border",STOCK_PRINT_PREVIEW:"Printer",STOCK_HOME:"Home",STOCK_PASTE:"CarryOut",STOCK_ZOOM_100:"ZoomIn",STOCK_FIND_AND_REPLACE:"FileSearch",STOCK_DIALOG_WARNING:"Warning",STOCK_ZOOM_IN:"ZoomIn",STOCK_CONVERT:"Export",STOCK_ITALIC:"Italic",STOCK_YES:"Check",STOCK_MEDIA_PLAY:"PlayCircle",STOCK_MEDIA_RECORD:"VideoCamera",STOCK_MEDIA_PREVIOUS:"StepBackward",STOCK_NEW:"FileAdd",STOCK_CANCEL:"Close",STOCK_DISCONNECT:"Api",STOCK_JUSTIFY_LEFT:"AlignLeft",STOCK_FILE:"File",STOCK_QUIT:"Logout",STOCK_EDIT:"Edit",STOCK_CONNECT:"Api",STOCK_GO_DOWN:"CaretDown",STOCK_NETWORK:"Apartment",STOCK_OK:"Check",STOCK_GOTO_TOP:"VerticalAlignTop",STOCK_ABOUT:"Star",STOCK_COLOR_PICKER:"Aim",STOCK_SELECT_FONT:"FontSize",STOCK_DELETE:"Delete",STOCK_DND:"FileText",STOCK_CLEAR:"CloseSquare",STOCK_UNINDENT:"AlignLeft",STOCK_PREFERENCES:"Setting"},Ge=(t,r)=>(t.indexOf("gtk-")!==-1&&(t=`STOCK_${t.replace("gtk-","").replace(/\-/g,"_").toUpperCase()}`),Tr.hasOwnProperty(t)?Fr(Tr[t],r):Fr(t,r));function Yo(t){return`${t.split("-").map(r=>r.replace(/\w\S*/g,n=>n.charAt(0).toUpperCase()+n.slice(1).toLowerCase())).join("")}`}function Fr(t,r){let n=t.charAt(0).toUpperCase()+t.slice(1);n.indexOf("-")!==-1&&(n=Yo(n));const s=`${n}Outlined`;if(Sr[s])return()=>Be.default.createElement(Sr[s],{...r});const o=`Icon${n}`;if(xr[o]){const i=()=>{var c;return Be.default.createElement(xr[o],{fill:"transparent",size:((c=r==null?void 0:r.style)==null?void 0:c.fontSize)||17})};return()=>Be.default.createElement(br.default,{component:i,...r})}}const qt=t=>{const{ooui:r}=t,{id:n,label:s,activated:o,buttonType:i,confirmMessage:a,icon:c,context:h,readOnly:d}=r,f=l.useContext(Ve),{executeButtonAction:u}=f||{},[g,w]=l.useState(!1),{lang:y}=l.useContext(ge);async function m(){w(!0),await u({type:i,action:n,context:h}),w(!1)}function v(){if(a){ot({confirmMessage:a,lang:y,onOk:()=>{m()}});return}m()}function C(){if(g)return e.jsx(H.LoadingOutlined,{});if(c){const F=Ge(c);return F&&e.jsx(F,{})}}return e.jsx(me,{ooui:r,children:e.jsx(p.Button,{block:!0,disabled:!o||d,onClick:v,icon:C(),type:r.primary?"primary":"default",danger:r.danger,style:{whiteSpace:"normal",height:"auto"},children:s})})},Or=t=>{const{ooui:r}=t,{defaultButton:n,secondaryButtons:s}=r,{id:o,caption:i,activated:a,buttonType:c,confirmMessage:h,icon:d,primary:f,danger:u,context:g,readOnly:w}=n||{},y=l.useContext(Ve),{executeButtonAction:m}=y||{},[v,C]=l.useState(!1),{lang:F}=l.useContext(ge);function E(){if(v)return e.jsx(H.LoadingOutlined,{});if(d){const k=Ge(d);return k&&e.jsx(k,{})}}async function S(){c&&o&&(C(!0),await m({type:c,action:o,context:g}),C(!1))}function V(){if(h){ot({confirmMessage:h,lang:F,onOk:()=>{S()}});return}S()}if(r.buttons.length===0)return null;if(r.buttons.length>1)return e.jsx(me,{ooui:new ie.Field({ooui:r}),children:e.jsxs(p.Dropdown.Button,{disabled:!a||w,onClick:V,icon:e.jsx(H.DownOutlined,{}),type:f?"primary":void 0,overlay:e.jsx(Wo,{ooui:s,executeButtonAction:m,lang:F}),children:[E(),i]})});if(n)return e.jsx(qt,{ooui:n})},Wo=t=>{const{ooui:r,executeButtonAction:n,lang:s}=t;if(!r)return null;const o=r.map(i=>{const{id:a,caption:c,activated:h,buttonType:d,confirmMessage:f,icon:u,context:g,readOnly:w,danger:y}=i,[m,v]=l.useState(!1);async function C(){v(!0),await n({type:d,action:a,context:g}),v(!1)}function F(){if(f){ot({confirmMessage:f,lang:s,onOk:()=>{C()}});return}C()}function E(){if(m)return e.jsx(H.LoadingOutlined,{});if(u){const S=Ge(u);return S&&e.jsx(S,{})}}return e.jsx(p.Menu.Item,{disabled:!h||w,onClick:F,icon:E(),danger:y,children:c})});return e.jsx(p.Menu,{children:o})},qo=.7;function _r(){const{innerWidth:t,innerHeight:r}=window;return{width:t,height:r}}function Ot(){const[t,r]=l.useState(_r());return l.useEffect(()=>{function n(){r(_r())}return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),{modalWidth:t.width*qo,modalHeight:t.height,width:t.width,height:t.height}}class K{static init(r){K.handler=r}static getHandler(){if(!K.handler)throw"Must call init() first with a valid ConnectionProvider instance";return K.handler}}const Dr=t=>{let r,n,s;if(typeof t=="string"&&t.indexOf(" -- ")!==-1&&t.indexOf(`
1
+ (function(U,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("react"),require("antd"),require("@gisce/ooui"),require("@ant-design/icons"),require("interweave"),require("react/jsx-runtime"),require("@tabler/icons-react"),require("antd/lib/input/TextArea"),require("styled-components"),require("react-measure"),require("antd/lib/typography/Title"),require("@ant-design/plots"),require("use-deep-compare-effect"),require("@gisce/react-formiga-table"),require("file-type-buffer-browser"),require("antd/lib/_util/colors"),require("@gisce/fiber-diagram"),require("@gisce/react-formiga-components"),require("validator/lib/isURL"),require("validator/lib/isEmail"),require("react-hotkeys-hook"),require("react-markdown"),require("@monaco-editor/react"),require("md5"),require("react-grid-layout"),require("react-grid-layout/css/styles.css"),require("uuid")):typeof define=="function"&&define.amd?define(["exports","react","antd","@gisce/ooui","@ant-design/icons","interweave","react/jsx-runtime","@tabler/icons-react","antd/lib/input/TextArea","styled-components","react-measure","antd/lib/typography/Title","@ant-design/plots","use-deep-compare-effect","@gisce/react-formiga-table","file-type-buffer-browser","antd/lib/_util/colors","@gisce/fiber-diagram","@gisce/react-formiga-components","validator/lib/isURL","validator/lib/isEmail","react-hotkeys-hook","react-markdown","@monaco-editor/react","md5","react-grid-layout","react-grid-layout/css/styles.css","uuid"],l):(U=typeof globalThis<"u"?globalThis:U||self,l(U["react-ooui"]={},U.React,U.antd,U.ooui,U.AntIcons,U.interweave,U.jsxRuntime,U.TablerIcons,U.TextArea$1,U.styled,U.Measure,U.Title$3,U.plots,U.useDeepCompareEffect,U.reactFormigaTable,U.fileTypeBufferBrowser,U.colors,U.fiberDiagram,U.reactFormigaComponents,U.isURL,U.isEmail,U.reactHotkeysHook,U.ReactMarkdown,U.Editor,U.md5,U.reactGridLayout,null,U.uuid))})(this,function(U,l,p,se,B,Kt,e,ho,po,go,mo,yo,Yt,vo,wo,So,yr,Co,vr,bo,xo,To,Fo,Oo,_o,wr,Uc,Sr){"use strict";const je=t=>t&&typeof t=="object"&&"default"in t?t:{default:t};function Cr(t){if(t&&t.__esModule)return t;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,s.get?s:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const Ke=je(l),br=Cr(B),xr=je(B),Tr=Cr(ho),Do=je(po),yt=je(go),Wt=je(mo),qt=je(yo),tt=je(vo),ko=je(bo),Mo=je(xo),Vo=je(Fo),Eo=je(Oo),Io=je(_o),{Text:Ao,Title:$o}=p.Typography,{useToken:Lo}=p.theme,No={left:"justify-start",center:"justify-center",right:"justify-end"},vt=t=>{const{ooui:r,align:n,responsiveBehaviour:s}=t,{label:o,tooltip:i,fieldForLabel:a,labelSize:c,labelType:h}=r,f=a!==null&&o.length>1?o+" :":o,g=n||(a?s?"left":"right":"left"),{token:w}=Lo(),y=c===void 0?Ao:$o;return e.jsxs("div",{className:`flex flex-row items-center pb-1 pt-1 ${No[g]}`,children:[i&&e.jsx(p.Tooltip,{title:i,children:e.jsx(B.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:w.colorPrimary}})}),e.jsx("span",{className:"pr-2",children:e.jsx(y,{level:c,type:h,children:e.jsx(Kt.Interweave,{content:f})})})]})},Po={ca_ES:{true:"S\xED",false:"No",simple_search:"B\xFAsqueda simple",advanced_search:"B\xFAsqueda avan\xE7ada",search:"Buscar",parameters:"Par\xE0metres",limit:"Limit",first:"Primer",no_results:"No hi ha resultats",summary:"Mostrant resultats des de {from} fins {to} d'un total de {total} registres",welcome:"Benvingut",attachments:"Adjunts",addNewAttachment:"Afegir nou adjunt",listAllAttachments:"Veure tots els adjunts",viewAs:"Veure com",confirmRemoveItem:"Est\xE0s segur de volguer eliminar aquest item?",save:"Desar",delete:"Eliminar",refresh:"Refrescar",previous:"Anterior",next:"Seg\xFCent",actions:"Accions",reports:"Informes",related:"Relacionat",new:"Nou",fillRequiredField:"Siusplau, omple aquest camp obligatori",fillRequiredFields:"Siusplau, omple tots els camps obligatoris",generatingReport:"Generant informe...",confirmation:"Confirmaci\xF3",ok:"D'acord",cancel:"Cancel\xB7lar",formHasErrors:"El formulari t\xE9 errors",unsavedChanges:"Hi ha canvis sense guardar",confirmRefreshWithoutSave:"Est\xE0s segur de volguer refrescar la p\xE0gina sense guardar els canvis?",discardAndRefresh:"Descarta els canvis i refresca",removeItems:"Elimina el registre/s",confirmRemove:"Est\xE0s segur de volguer eliminar els registre/s seleccionats?",yesConfirmRemove:"S\xED, elimina",unlinkItems:"Desenlla\xE7a registre/s",confirmUnlink:"Est\xE0s segur de volguer desenlla\xE7ar els registre/s seleccionats?",yesConfirmUnlink:"S\xED, desenlla\xE7a",confirmCloseWithoutSave:"Est\xE0s segur de volguer tancar aquesta finestra sense guardar?",closeWithoutSaving:"Tancar sense guardar",action:"Acci\xF3",report:"Informe",selectAction:"Selecciona una acci\xF3",download:"Descarrega",clear:"Neteja",open:"Obre",uploadNewImage:"Puja una nova imatge",noCurrentEntries:"No hi ha registres",duplicate:"Duplicar",downloadingAttachment:"Descarregant adjunt...",tree:"llista",form:"formulari",favorites:"Els meus favorits",edit_favorites:"Edita els favorits",no_favorites:"No tens favorits guardats",register:"Registre",of:"de",editingDocument:"Editant document",showLogs:"Veure logs",createdBy:"Creat per l'usuari",creationDate:"Data creaci\xF3",lastUpdatedBy:"\xDAltima modificaci\xF3 per",lastUpdatedDate:"Data \xFAltima modificaci\xF3",goToResourceId:"V\xE9s al recurs amb ID",searchId:"ID de cerca:",idNotFound:"No es troba aquesta id de recurs per l'objecte",selectedRegisters:"registres seleccionats",translate:"Tradu\xEFr",enterTextBeforeTranslate:"Introdueix algun text al camp abans d'afegir traduccions",saveBeforeTranslate:"Heu de desar el registre abans d'afegir les traduccions",configDashboard:"Configurar panell",moveDashboard:"Moure items del panell",openAttachment:"Veure detall de l'adjunt",openAttachmentLink:"Obrir enlla\xE7 de l'adjunt",uninformed:"Sense informar",totalRegisters:"Registres totals:",export:"Exportar",selectAtLeastOneField:"Selecciona almenys un camp per a l'exportaci\xF3",printScreen:"Imprimir pantalla",advancedExport:"Exportaci\xF3 avan\xE7ada",savedRegisters:"Registre guardat correctament",errorWhileSavingForm:"Error en guardar el formulari",autor:"Autor",recordsSelected:"Hi ha {numberOfSelectedRows} registres seleccionats en aquesta p\xE0gina.",selectAllRecords:"Seleccionar tots els {totalRecords} registres.",allRecordsSelected:"Hi ha {totalRecords} registres seleccionats."},en_US:{true:"Yes",false:"No",simple_search:"Simple search",advanced_search:"Advanced search",search:"Search",parameters:"Parameters",limit:"Limit",first:"First",no_results:"No results",summary:"Showing registers from {from} to {to} of {total} registers",welcome:"Welcome",attachments:"Attachments",addNewAttachment:"Add new attachment",listAllAttachments:"View all the attachments",viewAs:"View as",confirmRemoveItem:"Are you sure to remove this item?",save:"Save",delete:"Delete",refresh:"Refresh",previous:"Previous",next:"Next",actions:"Actions",reports:"Reports",related:"Related",new:"New",fillRequiredField:"Please fill this required field",fillRequiredFields:"Please fill all the required fields",generatingReport:"Generating report...",confirmation:"Confirmation",ok:"OK",cancel:"Cancel",formHasErrors:"Form has errors",unsavedChanges:"There are unsaved changes",confirmRefreshWithoutSave:"Do you really want to refresh this window without saving?",discardAndRefresh:"Discard changes and refresh",removeItems:"Remove item/s",confirmRemove:"Are you sure you want to remove the selected item/s?",yesConfirmRemove:"Yes, remove",unlinkItems:"Unlink item/s",confirmUnlink:"Are you sure you want to unlink the selected item/s?",yesConfirmUnlink:"Yes, unlink",confirmCloseWithoutSave:"Do you really want to close this window without saving?",closeWithoutSaving:"Close without saving",action:"Action",report:"Report",selectAction:"Select an action",download:"Download",clear:"Clear",open:"Open",uploadNewImage:"Upload new image",noCurrentEntries:"No current entries",duplicate:"Duplicate",downloadingAttachment:"Downloading attachment...",tree:"list",form:"form",favorites:"My shortcuts",edit_favorites:"Edit shortcuts",no_favorites:"You don't have any shortcuts saved yet",register:"Register",of:"of",editingDocument:"Editing document",showLogs:"Show logs",createdBy:"Created by user",creationDate:"Creation date",lastUpdatedBy:"Last modified by",lastUpdatedDate:"Date of last modification",goToResourceId:"Go to resource ID",searchId:"Search ID:",idNotFound:"Resource ID does not exist for this object!",selectedRegisters:"selected registers",translate:"Translate",enterTextBeforeTranslate:"Enter some text to the related field before adding translations",saveBeforeTranslate:"You must save the record before adding translations",configDashboard:"Setup dashboard",moveDashboard:"Move dashboard items",openAttachment:"Open attachment detail",openAttachmentLink:"Open attachment link",uninformed:"Uninformed",totalRegisters:"Total registers:",export:"Export",selectAtLeastOneField:"Select at least one field for the export",printScreen:"Print screen",advancedExport:"Advanced export",savedRegisters:"Record successfully saved",errorWhileSavingForm:"Error while saving form",author:"Author",recordsSelected:"Hi ha {numberOfSelectedRows} registres seleccionats en aquesta p\xE0gina.",selectAllRecords:"Seleccionar tots els {totalRecords} registres.",allRecordsSelected:"Hi ha {totalRecords} registres seleccionats."},es_ES:{true:"S\xED",false:"No",simple_search:"B\xFAsqueda simple",advanced_search:"B\xFAsqueda avanzada",search:"Buscar",parameters:"Parametros",limit:"L\xEDmite",first:"Primero",no_results:"No hay resultados",summary:"Mostrando resultado desde {from} hasta {to} de un total de {total} registros",welcome:"Bienvenido",attachments:"Adjuntos",addNewAttachment:"A\xF1adir nuevo adjunto",listAllAttachments:"Ver todos los adjuntos",viewAs:"Ver c\xF3mo",confirmRemoveItem:"Est\xE1s seguro de querer eliminar \xE9ste registro?",save:"Guardar",delete:"Eliminar",refresh:"Refrescar",previous:"Anterior",next:"Siguiente",actions:"Acciones",reports:"Informes",related:"Relacionado",new:"Nuevo",fillRequiredField:"Por favor, rellena \xE9ste campo obligatorio",fillRequiredFields:"Por favor, rellena todos los campos obligatorios",generatingReport:"Generando informe...",confirmation:"Confirmaci\xF3m",ok:"De acuerdo",cancel:"Cancelar",formHasErrors:"El formulario tiene errores",unsavedChanges:"Hay cambios sin guardar",confirmRefreshWithoutSave:"Est\xE1s seguro de querer refrescar la p\xE1gina sin guardar los cambios?",discardAndRefresh:"Descarta los cambios y refresca",removeItems:"Eliminar el registro/s",confirmRemove:"Est\xE1s seguro de querer eliminar los registro/s seleccionados?",yesConfirmRemove:"S\xED, elimina",unlinkItems:"Desenlaza registro/s",confirmUnlink:"Est\xE1s seguro de querer desenlazar los registro/s seleccionados?",yesConfirmUnlink:"S\xED, desenlaza",confirmCloseWithoutSave:"Est\xE1s seguro de querer cerrar \xE9sta ventana sin cerrar?",closeWithoutSaving:"Cerrar sin guardar",action:"Acci\xF3n",report:"Informe",selectAction:"Selecciona una acci\xF3n",download:"Descarga",clear:"Limpiar",open:"Abrir",uploadNewImage:"Subir una nueva im\xE1gen",noCurrentEntries:"No hay registros",duplicate:"Duplicar",downloadingAttachment:"Descargando adjunto...",tree:"lista",form:"formulario",favorites:"Mis favoritos",edit_favorites:"Edita los favoritos",no_favorites:"No tienes favoritos guardados",register:"Registro",of:"de",editingDocument:"Editando documento",showLogs:"Ver logs",createdBy:"Creado por el usuario",creationDate:"Fecha creaci\xF3n",lastUpdatedBy:"\xDAltima modificaci\xF3n por",lastUpdatedDate:"Fecha \xFAltima modificaci\xF3n",goToResourceId:"Ir al recurso con ID",searchId:"ID de b\xFAsqueda:",idNotFound:"No se encuentra \xE9sta ID de recursos para el objeto",selectedRegisters:"registros seleccionados",translate:"Traducir",enterTextBeforeTranslate:"Introduce algun texto en el campo antes de a\xF1adir traducciones",saveBeforeTranslate:"Tienes que guardar el registro antes de a\xF1adir las traducciones",configDashboard:"Configurar panel",moveDashboard:"Mover items del panel",openAttachment:"Ver detalle del adjunto",openAttachmentLink:"Abrir enlace del adjunto",uninformed:"Sin informar",totalRegisters:"Registros totales:",export:"Exportar",selectAtLeastOneField:"Selecciona al menos un campo para la exportaci\xF3n",printScreen:"Imprimir pantalla",advancedExport:"Exportaci\xF3n avanzada",savedRegisters:"Registro guardado correctamente",errorWhileSavingForm:"Error al guardar el formulario",author:"Autor",recordsSelected:"Hay {numberOfSelectedRows} registros seleccionados en \xE9sta p\xE1gina.",selectAllRecords:"Seleccionar todos los {totalRecords} registros.",allRecordsSelected:"Hay {totalRecords} registros seleccionados."}},ge=Ke.default.createContext(null),Bo=t=>{const{children:r,lang:n}=t;function s(o){return xe(o,n)}return e.jsx(ge.Provider,{value:{lang:n,t:s},children:r})},xe=(t,r)=>{var s;return((s=Po[r])==null?void 0:s[t])||t};function me({ooui:t,children:r,layout:n="horizontal",valuePropName:s,showLabel:o=!1,alignLabel:i="left",required:a=!1,type:c,validator:h}){const{id:d,label:f,tooltip:u}=t,{t:g}=l.useContext(ge),w=a?[{required:!0,message:g("fillRequiredField"),type:c,validator:h}]:void 0,y=()=>e.jsx(p.Form.Item,{className:"mb-0",name:d,valuePropName:s,rules:w,children:r});if(!o)return y();const m=e.jsx(vt,{ooui:new se.Label({name:d+"_label",string:f,help:u,fieldForLabel:d}),align:i});return n==="horizontal"?(()=>e.jsxs(p.Row,{align:"middle",className:"pb-1 pt-1",children:[e.jsx(p.Col,{className:"ml-2",flex:"7rem",children:e.jsx("div",{className:"flex flex-col items-end",children:m})}),e.jsx(p.Col,{flex:"auto",children:y()})]}))():(()=>e.jsxs(e.Fragment,{children:[m,y()]}))()}const{confirm:Ho}=p.Modal,ot=({onOk:t,confirmMessage:r,lang:n})=>{Ho({title:xe("confirmation",n),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:r,okText:xe("ok",n),cancelText:xe("cancel",n),onOk:t})},De=Ke.default.createContext(null),Ko=t=>{const{children:r,activeId:n,activeModel:s,setFieldValue:o,getFieldValue:i,executeButtonAction:a,getContext:c,getValues:h,getPlainValues:d,domain:f,submitForm:u,fetchValues:g,formHasChanges:w,elementHasLostFocus:y,getFields:m}=t;return e.jsx(De.Provider,{value:{domain:f,getValues:h,getPlainValues:d,getFields:m,activeId:n,activeModel:s,setFieldValue:o,getFieldValue:i,executeButtonAction:a,getContext:c,submitForm:u,fetchValues:g,formHasChanges:w,elementHasLostFocus:y},children:r})},Fr={"terp-purchase":"ShoppingCart","terp-graph":"PieChart","terp-crm":"Contacts","terp-hr":"Friends","terp-account":"BuildingBank","terp-project":"Checklist","terp-administration":"Adjustments","terp-partner":"Team","terp-mrp":"Build","terp-product":"Shopping",STOCK_JUSTIFY_FILL:"UnorderedList",STOCK_INDENT:"IndentIncrease",STOCK_HELP:"Question",STOCK_GO_UP:"ArrowUp",STOCK_SORT_DESCENDING:"SortDescending",STOCK_ADD:"Plus",STOCK_GOTO_LAST:"FastForward",STOCK_FIND:"Search",STOCK_PROPERTIES:"Control",STOCK_DIALOG_INFO:"Info",STOCK_FLOPPY:"Usb",STOCK_JUSTIFY_CENTER:"AlignCenter",STOCK_GO_BACK:"ArrowLeft",STOCK_UNDERLINE:"Underline",STOCK_BOLD:"Bold",STOCK_APPLY:"Check",STOCK_ZOOM_OUT:"ZoomOut",STOCK_STRIKETHROUGH:"Strikethrough",STOCK_MEDIA_REWIND:"Backward",STOCK_PRINT:"Printer",STOCK_NO:"Close",STOCK_GOTO_FIRST:"FastBackward",STOCK_CLOSE:"Close",STOCK_REMOVE:"Minus",STOCK_CUT:"Scissor",STOCK_DIALOG_AUTHENTICATION:"Safety",STOCK_ZOOM_FIT:"Expand",STOCK_JUMP_TO:"Select",STOCK_HARDDISK:"Hdd",STOCK_SAVE_AS:"Save",STOCK_UNDO:"Undo",STOCK_JUSTIFY_RIGHT:"AlignRight",STOCK_DIALOG_ERROR:"CloseCircle",STOCK_INDEX:"Profile",STOCK_GOTO_BOTTOM:"VerticalAlignBottom",STOCK_MEDIA_NEXT:"StepForward",STOCK_REDO:"Redo",STOCK_COPY:"Copy",STOCK_MEDIA_PAUSE:"Pause",STOCK_GO_FORWARD:"ArrowRight",STOCK_UNDELETE:"Undo",STOCK_EXECUTE:"Setting",STOCK_SAVE:"Save",STOCK_DIALOG_QUESTION:"QuestionCircle",STOCK_SORT_ASCENDING:"SortAscending",STOCK_REFRESH:"Reload",STOCK_MEDIA_FORWARD:"Forward",STOCK_STOP:"Border",STOCK_PRINT_PREVIEW:"Printer",STOCK_HOME:"Home",STOCK_PASTE:"CarryOut",STOCK_ZOOM_100:"ZoomIn",STOCK_FIND_AND_REPLACE:"FileSearch",STOCK_DIALOG_WARNING:"Warning",STOCK_ZOOM_IN:"ZoomIn",STOCK_CONVERT:"Export",STOCK_ITALIC:"Italic",STOCK_YES:"Check",STOCK_MEDIA_PLAY:"PlayCircle",STOCK_MEDIA_RECORD:"VideoCamera",STOCK_MEDIA_PREVIOUS:"StepBackward",STOCK_NEW:"FileAdd",STOCK_CANCEL:"Close",STOCK_DISCONNECT:"Api",STOCK_JUSTIFY_LEFT:"AlignLeft",STOCK_FILE:"File",STOCK_QUIT:"Logout",STOCK_EDIT:"Edit",STOCK_CONNECT:"Api",STOCK_GO_DOWN:"CaretDown",STOCK_NETWORK:"Apartment",STOCK_OK:"Check",STOCK_GOTO_TOP:"VerticalAlignTop",STOCK_ABOUT:"Star",STOCK_COLOR_PICKER:"Aim",STOCK_SELECT_FONT:"FontSize",STOCK_DELETE:"Delete",STOCK_DND:"FileText",STOCK_CLEAR:"CloseSquare",STOCK_UNINDENT:"AlignLeft",STOCK_PREFERENCES:"Setting"},Je=(t,r)=>(t.indexOf("gtk-")!==-1&&(t=`STOCK_${t.replace("gtk-","").replace(/\-/g,"_").toUpperCase()}`),Fr.hasOwnProperty(t)?Or(Fr[t],r):Or(t,r));function Yo(t){return`${t.split("-").map(r=>r.replace(/\w\S*/g,n=>n.charAt(0).toUpperCase()+n.slice(1).toLowerCase())).join("")}`}function Or(t,r){let n=t.charAt(0).toUpperCase()+t.slice(1);n.indexOf("-")!==-1&&(n=Yo(n));const s=`${n}Outlined`;if(br[s])return()=>Ke.default.createElement(br[s],{...r});const o=`Icon${n}`;if(Tr[o]){const i=()=>{var c;return Ke.default.createElement(Tr[o],{fill:"transparent",size:((c=r==null?void 0:r.style)==null?void 0:c.fontSize)||17})};return()=>Ke.default.createElement(xr.default,{component:i,...r})}}const Ut=t=>{const{ooui:r}=t,{id:n,label:s,activated:o,buttonType:i,confirmMessage:a,icon:c,context:h,readOnly:d}=r,f=l.useContext(De),{executeButtonAction:u}=f||{},[g,w]=l.useState(!1),{lang:y}=l.useContext(ge);async function m(){w(!0),await u({type:i,action:n,context:h}),w(!1)}function v(){if(a){ot({confirmMessage:a,lang:y,onOk:()=>{m()}});return}m()}function S(){if(g)return e.jsx(B.LoadingOutlined,{});if(c){const T=Je(c);return T&&e.jsx(T,{})}}return e.jsx(me,{ooui:r,children:e.jsx(p.Button,{block:!0,disabled:!o||d,onClick:v,icon:S(),type:r.primary?"primary":"default",danger:r.danger,style:{whiteSpace:"normal",height:"auto"},children:s})})},_r=t=>{const{ooui:r}=t,{defaultButton:n,secondaryButtons:s}=r,{id:o,caption:i,activated:a,buttonType:c,confirmMessage:h,icon:d,primary:f,danger:u,context:g,readOnly:w}=n||{},y=l.useContext(De),{executeButtonAction:m}=y||{},[v,S]=l.useState(!1),{lang:T}=l.useContext(ge);function V(){if(v)return e.jsx(B.LoadingOutlined,{});if(d){const D=Je(d);return D&&e.jsx(D,{})}}async function b(){c&&o&&(S(!0),await m({type:c,action:o,context:g}),S(!1))}function E(){if(h){ot({confirmMessage:h,lang:T,onOk:()=>{b()}});return}b()}if(r.buttons.length===0)return null;if(r.buttons.length>1)return e.jsx(me,{ooui:new se.Field({ooui:r}),children:e.jsxs(p.Dropdown.Button,{disabled:!a||w,onClick:E,icon:e.jsx(B.DownOutlined,{}),type:f?"primary":void 0,overlay:e.jsx(Wo,{ooui:s,executeButtonAction:m,lang:T}),children:[V(),i]})});if(n)return e.jsx(Ut,{ooui:n})},Wo=t=>{const{ooui:r,executeButtonAction:n,lang:s}=t;if(!r)return null;const o=r.map(i=>{const{id:a,caption:c,activated:h,buttonType:d,confirmMessage:f,icon:u,context:g,readOnly:w,danger:y}=i,[m,v]=l.useState(!1);async function S(){v(!0),await n({type:d,action:a,context:g}),v(!1)}function T(){if(f){ot({confirmMessage:f,lang:s,onOk:()=>{S()}});return}S()}function V(){if(m)return e.jsx(B.LoadingOutlined,{});if(u){const b=Je(u);return b&&e.jsx(b,{})}}return e.jsx(p.Menu.Item,{disabled:!h||w,onClick:T,icon:V(),danger:y,children:c})});return e.jsx(p.Menu,{children:o})},qo=.7;function Dr(){const{innerWidth:t,innerHeight:r}=window;return{width:t,height:r}}function Dt(){const[t,r]=l.useState(Dr());return l.useEffect(()=>{function n(){r(Dr())}return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),{modalWidth:t.width*qo,modalHeight:t.height,width:t.width,height:t.height}}class K{static init(r){K.handler=r}static getHandler(){if(!K.handler)throw"Must call init() first with a valid ConnectionProvider instance";return K.handler}}const kr=t=>{let r,n,s;if(typeof t=="string"&&t.indexOf(" -- ")!==-1&&t.indexOf(`
2
2
 
3
3
  `)!==-1){const o=t.split(`
4
4
 
5
- `);r=o[1].replace(/\n/g,"<br />");const i=o[0].split(" -- ");n=i[0],s=i[1]}else r=t,n="error",s="Error";return{type:n,message:r,title:s}},{error:Uo,warning:Go}=p.Modal,Le=t=>{const{message:r,type:n,title:s}=Dr(t),o=n==="error"?e.jsx(H.ExclamationCircleOutlined,{}):e.jsx(H.WarningOutlined,{});(n==="error"?Uo:Go)({title:s,icon:o,centered:!0,content:r})},kr=t=>{const{visible:r,onCloseModal:n,model:s,id:o,field:i,onSubmitSucceed:a}=t,{modalWidth:c}=Ot(),{t:h}=l.useContext(ge),[d,f]=l.useState([]),[u,g]=l.useState(!1),[w,y]=l.useState(!1),[m,v]=l.useState({}),C=l.useRef();l.useEffect(()=>{r?F():v({})},[r]);async function F(){g(!0);try{const x=await E();await S(x)}catch(x){Le(x)}g(!1)}async function E(){const T=(await K.getHandler().search({params:[["translatable","=","1"]],fields:["code","name"],model:"res.lang"})).map(b=>({code:b.code,name:b.name}));return f==null||f(T),T}async function S(x){const T={};for(const b of x){const _=(await K.getHandler().readObjects({model:s,ids:[o],fieldsToRetrieve:[i],context:{lang:b.code}}))[0];T[b.code]=_[i]||""}C.current=T,v(T)}function V(){return d.map((x,T)=>e.jsxs(p.Row,{style:{paddingBottom:20},children:[e.jsx(p.Col,{flex:"8rem",style:{paddingRight:10},children:x.name}),e.jsx(p.Col,{flex:"auto",children:e.jsx(Do.default,{rows:4,value:m[x.code]||"",onChange:b=>{v({...m,[x.code]:b.target.value})},disabled:w})})]},T))}async function k(){y(!0);try{for(const x of Object.keys(m))m[x]!==C.current[x]&&await K.getHandler().update({model:s,id:o,values:{[i]:m[x]},context:{lang:x},fields:{}})}catch(x){Le(x)}y(!1),a()}function L(){return u?e.jsx(p.Spin,{}):e.jsxs(e.Fragment,{children:[V(),e.jsx(p.Divider,{}),e.jsx(p.Row,{justify:"end",children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(H.CloseOutlined,{}),onClick:n,disabled:w,children:h("cancel")}),e.jsx(p.Button,{icon:w?e.jsx(H.LoadingOutlined,{}):e.jsx(H.CheckOutlined,{}),disabled:w,onClick:k,style:{marginLeft:15},type:"primary",children:h("ok")})]})})]})}return e.jsx(p.Modal,{title:h("translate"),centered:!0,width:c,open:r,closable:!0,onCancel:n,footer:null,destroyOnClose:!0,maskClosable:!1,children:L()})};function He(t){const{tooltip:r,...n}=t;return e.jsx(p.Tooltip,{title:r,children:e.jsx(p.Button,{...n})})}const{info:jo}=p.Modal,Xe=t=>{jo({title:"",centered:!0,content:t})},{useToken:zo}=p.theme,Ut=t=>{const{ooui:r,isSearchField:n=!1}=t,{id:s,readOnly:o,isPassword:i,required:a,translatable:c}=r,{token:h}=zo(),d=a&&!o?{backgroundColor:h.colorPrimaryBg}:void 0,f=l.useContext(Ve),{elementHasLostFocus:u}=f||{};let g=e.jsx(p.Input,{disabled:o||c&&!n,id:s,style:d,maxLength:r.size,onBlur:u});return i&&(g=e.jsx(p.Input.Password,{disabled:o,id:s,onBlur:u})),c&&!o&&!n&&(g=e.jsx(Jo,{field:s,requiredStyle:d})),e.jsx(me,{required:a,...t,children:g})},Jo=({value:t,field:r,requiredStyle:n,onChange:s})=>{const o=l.useContext(Ve),{activeId:i,activeModel:a,fetchValues:c,formHasChanges:h,elementHasLostFocus:d}=o||{},[f,u]=l.useState(!1),{t:g}=l.useContext(ge);return i?e.jsxs(e.Fragment,{children:[e.jsx("div",{onClick:()=>{if(h!=null&&h()){Xe(g("saveBeforeTranslate"));return}f||u(!0)},children:e.jsx(p.Input,{value:t,disabled:!0,id:r,onChange:w=>{s==null||s(w.target.value)},onBlur:d,style:{cursor:"pointer",pointerEvents:"none",...n}})}),e.jsx(kr,{id:i,model:a,field:r,visible:f,onCloseModal:()=>{u(!1)},onSubmitSucceed:()=>{u(!1),c==null||c()}})]}):e.jsx(e.Fragment,{children:e.jsxs(p.Row,{gutter:8,wrap:!1,children:[e.jsx(p.Col,{flex:"auto",children:e.jsx(p.Input,{value:t,id:r,style:n,onChange:w=>{s==null||s(w.target.value)},onBlur:d})}),e.jsx(p.Col,{flex:"32px",children:e.jsx(He,{tooltip:g("translate"),icon:e.jsx(H.TranslationOutlined,{}),onClick:async()=>{h!=null&&h()?Xe(g("saveBeforeTranslate")):Xe(g("enterTextBeforeTranslate"))},children:g("translate")})})]})})},{defaultAlgorithm:Zo,defaultSeed:Xo}=p.theme,Qo=Zo(Xo),{Option:Ro}=p.Select,Gt=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(Mr,{...t})})},Mr=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,required:a}=r,c=Array.from(o.entries()),h=c&&c.length&&c.map(f=>{const[u,g]=f;return e.jsx(Ro,{value:u,children:g},u)}),d=a&&!i?es:p.Select;return e.jsx(d,{disabled:i,onChange:n,value:s,optionFilterProp:"children",filterOption:(f,u)=>u.children.toLowerCase().indexOf(f.toLowerCase())>=0,showSearch:!0,children:h})},es=mt.default(p.Select)`
5
+ `);r=o[1].replace(/\n/g,"<br />");const i=o[0].split(" -- ");n=i[0],s=i[1]}else r=t,n="error",s="Error";return{type:n,message:r,title:s}},{error:Uo,warning:Go}=p.Modal,Ne=t=>{const{message:r,type:n,title:s}=kr(t),o=n==="error"?e.jsx(B.ExclamationCircleOutlined,{}):e.jsx(B.WarningOutlined,{});(n==="error"?Uo:Go)({title:s,icon:o,centered:!0,content:r})},Mr=t=>{const{visible:r,onCloseModal:n,model:s,id:o,field:i,onSubmitSucceed:a}=t,{modalWidth:c}=Dt(),{t:h}=l.useContext(ge),[d,f]=l.useState([]),[u,g]=l.useState(!1),[w,y]=l.useState(!1),[m,v]=l.useState({}),S=l.useRef();l.useEffect(()=>{r?T():v({})},[r]);async function T(){g(!0);try{const x=await V();await b(x)}catch(x){Ne(x)}g(!1)}async function V(){const F=(await K.getHandler().search({params:[["translatable","=","1"]],fields:["code","name"],model:"res.lang"})).map(O=>({code:O.code,name:O.name}));return f==null||f(F),F}async function b(x){const F={};for(const O of x){const C=(await K.getHandler().readObjects({model:s,ids:[o],fieldsToRetrieve:[i],context:{lang:O.code}}))[0];F[O.code]=C[i]||""}S.current=F,v(F)}function E(){return d.map((x,F)=>e.jsxs(p.Row,{style:{paddingBottom:20},children:[e.jsx(p.Col,{flex:"8rem",style:{paddingRight:10},children:x.name}),e.jsx(p.Col,{flex:"auto",children:e.jsx(Do.default,{rows:4,value:m[x.code]||"",onChange:O=>{v({...m,[x.code]:O.target.value})},disabled:w})})]},F))}async function D(){y(!0);try{for(const x of Object.keys(m))m[x]!==S.current[x]&&await K.getHandler().update({model:s,id:o,values:{[i]:m[x]},context:{lang:x},fields:{}})}catch(x){Ne(x)}y(!1),a()}function L(){return u?e.jsx(p.Spin,{}):e.jsxs(e.Fragment,{children:[E(),e.jsx(p.Divider,{}),e.jsx(p.Row,{justify:"end",children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(B.CloseOutlined,{}),onClick:n,disabled:w,children:h("cancel")}),e.jsx(p.Button,{icon:w?e.jsx(B.LoadingOutlined,{}):e.jsx(B.CheckOutlined,{}),disabled:w,onClick:D,style:{marginLeft:15},type:"primary",children:h("ok")})]})})]})}return e.jsx(p.Modal,{title:h("translate"),centered:!0,width:c,open:r,closable:!0,onCancel:n,footer:null,destroyOnClose:!0,maskClosable:!1,children:L()})};function Ye(t){const{tooltip:r,...n}=t;return e.jsx(p.Tooltip,{title:r,children:e.jsx(p.Button,{...n})})}const{info:jo}=p.Modal,Qe=t=>{jo({title:"",centered:!0,content:t})},{useToken:zo}=p.theme,Gt=t=>{const{ooui:r,isSearchField:n=!1}=t,{id:s,readOnly:o,isPassword:i,required:a,translatable:c}=r,{token:h}=zo(),d=a&&!o?{backgroundColor:h.colorPrimaryBg}:void 0,f=l.useContext(De),{elementHasLostFocus:u}=f||{};let g=e.jsx(p.Input,{disabled:o||c&&!n,id:s,style:d,maxLength:r.size,onBlur:u});return i&&(g=e.jsx(p.Input.Password,{disabled:o,id:s,onBlur:u})),c&&!o&&!n&&(g=e.jsx(Jo,{field:s,requiredStyle:d})),e.jsx(me,{required:a,...t,children:g})},Jo=({value:t,field:r,requiredStyle:n,onChange:s})=>{const o=l.useContext(De),{activeId:i,activeModel:a,fetchValues:c,formHasChanges:h,elementHasLostFocus:d}=o||{},[f,u]=l.useState(!1),{t:g}=l.useContext(ge);return i?e.jsxs(e.Fragment,{children:[e.jsx("div",{onClick:()=>{if(h!=null&&h()){Qe(g("saveBeforeTranslate"));return}f||u(!0)},children:e.jsx(p.Input,{value:t,disabled:!0,id:r,onChange:w=>{s==null||s(w.target.value)},onBlur:d,style:{cursor:"pointer",pointerEvents:"none",...n}})}),e.jsx(Mr,{id:i,model:a,field:r,visible:f,onCloseModal:()=>{u(!1)},onSubmitSucceed:()=>{u(!1),c==null||c()}})]}):e.jsx(e.Fragment,{children:e.jsxs(p.Row,{gutter:8,wrap:!1,children:[e.jsx(p.Col,{flex:"auto",children:e.jsx(p.Input,{value:t,id:r,style:n,onChange:w=>{s==null||s(w.target.value)},onBlur:d})}),e.jsx(p.Col,{flex:"32px",children:e.jsx(Ye,{tooltip:g("translate"),icon:e.jsx(B.TranslationOutlined,{}),onClick:async()=>{h!=null&&h()?Qe(g("saveBeforeTranslate")):Qe(g("enterTextBeforeTranslate"))},children:g("translate")})})]})})},{defaultAlgorithm:Zo,defaultSeed:Xo}=p.theme,Qo=Zo(Xo),{Option:Ro}=p.Select,jt=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(Vr,{...t})})},Vr=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,required:a}=r,c=Array.from(o.entries()),h=c&&c.length&&c.map(f=>{const[u,g]=f;return e.jsx(Ro,{value:u,children:g},u)}),d=a&&!i?es:p.Select;return e.jsx(d,{disabled:i,onChange:n,value:s,optionFilterProp:"children",filterOption:(f,u)=>u.children.toLowerCase().indexOf(f.toLowerCase())>=0,showSearch:!0,children:h})},es=yt.default(p.Select)`
6
6
  &.ant-select:not(.ant-select-customize-input) .ant-select-selector {
7
7
  background-color: ${Qo.colorPrimaryBg};
8
8
  }
9
- `,{defaultAlgorithm:ts,defaultSeed:rs}=p.theme,Vr=ts(rs),Er=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o}=r;return e.jsx(me,{...t,valuePropName:"checked",children:e.jsx(ns,{id:n,readOnly:s,required:o})})},ns=t=>{const{required:r,readOnly:n,...s}=t,o=r&&!n?os:p.Checkbox;return e.jsx("div",{className:"flex flex-row",children:e.jsx(o,{disabled:n,...s})})},os=mt.default(p.Checkbox)`
9
+ `,{defaultAlgorithm:ts,defaultSeed:rs}=p.theme,Er=ts(rs),Ir=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o}=r;return e.jsx(me,{...t,valuePropName:"checked",children:e.jsx(ns,{id:n,readOnly:s,required:o})})},ns=t=>{const{required:r,readOnly:n,...s}=t,o=r&&!n?os:p.Checkbox;return e.jsx("div",{className:"flex flex-row",children:e.jsx(o,{disabled:n,...s})})},os=yt.default(p.Checkbox)`
10
10
  .ant-checkbox-inner {
11
- background-color: ${Vr.colorPrimaryBg};
11
+ background-color: ${Er.colorPrimaryBg};
12
12
  }
13
13
 
14
14
  .ant-checkbox-checked .ant-checkbox-inner {
15
- background-color: ${Vr.colorPrimary};
15
+ background-color: ${Er.colorPrimary};
16
16
  }
17
- `;var Qe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ss(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var Ir=ss,is=typeof Qe=="object"&&Qe&&Qe.Object===Object&&Qe,as=is,ls=as,cs=typeof self=="object"&&self&&self.Object===Object&&self,ds=ls||cs||Function("return this")(),$r=ds,us=$r,fs=function(){return us.Date.now()},hs=fs,ps=/\s/;function gs(t){for(var r=t.length;r--&&ps.test(t.charAt(r)););return r}var ms=gs,ys=ms,vs=/^\s+/;function ws(t){return t&&t.slice(0,ys(t)+1).replace(vs,"")}var Cs=ws,Ss=$r,bs=Ss.Symbol,Ar=bs,Lr=Ar,Nr=Object.prototype,xs=Nr.hasOwnProperty,Ts=Nr.toString,vt=Lr?Lr.toStringTag:void 0;function Fs(t){var r=xs.call(t,vt),n=t[vt];try{t[vt]=void 0;var s=!0}catch{}var o=Ts.call(t);return s&&(r?t[vt]=n:delete t[vt]),o}var Os=Fs,_s=Object.prototype,Ds=_s.toString;function ks(t){return Ds.call(t)}var Ms=ks,Pr=Ar,Vs=Os,Es=Ms,Is="[object Null]",$s="[object Undefined]",Br=Pr?Pr.toStringTag:void 0;function As(t){return t==null?t===void 0?$s:Is:Br&&Br in Object(t)?Vs(t):Es(t)}var Ls=As;function Ns(t){return t!=null&&typeof t=="object"}var Ps=Ns,Bs=Ls,Hs=Ps,Ks="[object Symbol]";function Ys(t){return typeof t=="symbol"||Hs(t)&&Bs(t)==Ks}var Ws=Ys,qs=Cs,Hr=Ir,Us=Ws,Kr=0/0,Gs=/^[-+]0x[0-9a-f]+$/i,js=/^0b[01]+$/i,zs=/^0o[0-7]+$/i,Js=parseInt;function Zs(t){if(typeof t=="number")return t;if(Us(t))return Kr;if(Hr(t)){var r=typeof t.valueOf=="function"?t.valueOf():t;t=Hr(r)?r+"":r}if(typeof t!="string")return t===0?t:+t;t=qs(t);var n=js.test(t);return n||zs.test(t)?Js(t.slice(2),n?2:8):Gs.test(t)?Kr:+t}var Xs=Zs,Qs=Ir,jt=hs,Yr=Xs,Rs="Expected a function",ei=Math.max,ti=Math.min;function ri(t,r,n){var s,o,i,a,c,h,d=0,f=!1,u=!1,g=!0;if(typeof t!="function")throw new TypeError(Rs);r=Yr(r)||0,Qs(n)&&(f=!!n.leading,u="maxWait"in n,i=u?ei(Yr(n.maxWait)||0,r):i,g="trailing"in n?!!n.trailing:g);function w(k){var L=s,x=o;return s=o=void 0,d=k,a=t.apply(x,L),a}function y(k){return d=k,c=setTimeout(C,r),f?w(k):a}function m(k){var L=k-h,x=k-d,T=r-L;return u?ti(T,i-x):T}function v(k){var L=k-h,x=k-d;return h===void 0||L>=r||L<0||u&&x>=i}function C(){var k=jt();if(v(k))return F(k);c=setTimeout(C,m(k))}function F(k){return c=void 0,g&&s?w(k):(s=o=void 0,a)}function E(){c!==void 0&&clearTimeout(c),d=0,s=h=o=c=void 0}function S(){return c===void 0?a:F(jt())}function V(){var k=jt(),L=v(k);if(s=arguments,o=this,h=k,L){if(c===void 0)return y(h);if(u)return clearTimeout(c),c=setTimeout(C,r),w(h)}return c===void 0&&(c=setTimeout(C,r)),a}return V.cancel=E,V.flush=S,V}var ni=ri;function oi(t){const n=Buffer.from(t,"base64").length/1e3;return`${Math.round((n+Number.EPSILON)*100)/100} KB`}async function st(t){const r=await Co.fileTypeFromBuffer(Buffer.from(t,"base64"));return r||{mime:"text/plain",ext:"txt"}}const Wr=t=>new Promise((r,n)=>{const s=new FileReader;s.readAsDataURL(t),s.onload=o=>r(o.target.result.split(",")[1]),s.onerror=o=>n(o)});function _t(t,r){for(var n=atob(t),s=new Array(n.length),o=0;o<n.length;o++)s[o]=n.charCodeAt(o);var i=new Uint8Array(s),a=new Blob([i],{type:r+";base64"}),c=URL.createObjectURL(a);window.open(c)}const qr=t=>{const{ooui:r}=t,{required:n,id:s}=r,o=Ge(s);return o?e.jsx(o,{}):e.jsx(me,{required:n,...t,children:e.jsx(si,{ooui:r})})},si=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o}=r,i=l.useRef(null),{t:a}=l.useContext(ge),c=u=>{s==null||s(u)};async function h(){const u=await st(n),g=`data:${u==null?void 0:u.mime};base64,${n}`,w=document.createElement("a");w.href=g,w.download=`image.${u==null?void 0:u.ext}`,w.click()}async function d(u){u.stopPropagation(),u.preventDefault();const g=u.target.files[0],w=await Wr(g);c(w)}function f(){c(void 0)}return e.jsxs(e.Fragment,{children:[e.jsxs(p.Row,{gutter:8,wrap:!1,justify:"center",children:[n&&e.jsx("img",{src:`data:image/*;base64,${n}`,style:{maxWidth:"100px"}}),e.jsx("input",{type:"file",id:"file",ref:i,accept:"image/*",style:{display:"none"},onChange:d})]}),e.jsx(p.Row,{gutter:8,wrap:!1,justify:"center",className:"pt-5",children:e.jsxs(p.Space,{children:[e.jsx(He,{tooltip:a("uploadNewImage"),icon:e.jsx(H.FolderOpenOutlined,{}),disabled:o,onClick:()=>{i.current.click()}}),e.jsx(He,{tooltip:a("download"),disabled:!n,onClick:h,icon:e.jsx(H.DownloadOutlined,{})}),e.jsx(He,{tooltip:a("clear"),disabled:o||!n,onClick:f,icon:e.jsx(H.ClearOutlined,{})})]})})]})},ii=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(ai,{})})},ai=t=>{const{value:r,onChange:n}=t;if(!r)return null;try{JSON.parse(r)}catch(s){return console.log(s),null}return e.jsx(So.GridUi,{inputJson:r,onChange:s=>{n&&n(s)}})},it=t=>{const r=t.arch,n=t.fields,s=new ie.Tree(n);return s.parse(r),s},li=(t,r,n)=>t.columns.map(o=>{const i=o.type,a=o.id,c=r==null?void 0:r[i];let h;return c&&(h=d=>c(d,a,o,n)),{key:a,dataIndex:a,title:o.label,render:h,sorter:(d,f)=>{var w,y;let u=d[a]||"",g=f[a]||"";return i==="many2one"&&(u=((w=d[a])==null?void 0:w.value)||"",g=((y=f[a])==null?void 0:y.value)||""),u<g?-1:u>g?1:0}}}),Ur=(t,r)=>r.map(s=>{const o={};return Object.keys(s).map(i=>{if(i==="id")o[i]=s[i];else{const a=t.findById(i);a instanceof ie.Reference||a instanceof ie.Selection?o[i]=s[i]:a instanceof ie.Many2one?o[i]=s[i]&&Array.isArray(s[i])&&s[i].length===2&&{model:a.relation,id:s[i][0],value:s[i][1]}:a instanceof ie.Boolean?o[i]=s[i]:a?o[i]=s[i]===!1?"":s[i]:o[i]=s[i]}}),o});function Dt(t){return jr(t,"colors")}function Gr(t){return jr(t,"status")}function jr(t,r){if(!t)return;const n={};return t.forEach(s=>{n[s.id]=s[r]}),n}function at({resultsToSort:t,sorter:r,fields:n}){if(!r)return t;const{id:s,desc:o}=r,i=o===!1?"ascend":"descend",a=n[s].type,c=(h,d)=>{var g,w;let f=h[s]||"",u=d[s]||"";return a==="many2one"&&(f=((g=h[s])==null?void 0:g[1])||"",u=((w=d[s])==null?void 0:w[1])||""),f===u?0:i==="ascend"?f>u?1:-1:f<u?1:-1};return t.sort(c)}function ci(t){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&t[r]!==void 0)return!0;return!1}const zt=async t=>{var y;const{items:r,model:n,formView:s,treeView:o,context:i,currentView:a={}}=t,c=r.filter(m=>m.operation!=="original"),h=r.filter(m=>m.operation==="original").map(m=>m.id),d={form:s.fields,tree:o.fields};let f=[],u;if(a==="tree"&&(o==null?void 0:o.arch)){const m=(y=it(o))==null?void 0:y.colors,v=await K.getHandler().readEvalUiObjects({model:n,ids:h,arch:o==null?void 0:o.arch,fields:o.fields,context:i,attrs:m&&{colors:m}});f=v[0],u=Dt(v[1])}else f=await K.getHandler().readObjects({model:n,ids:h,fields:d[a],context:i});const g=f.map(m=>{const v={};return Object.keys(m).forEach(C=>{(d[a].hasOwnProperty(C)||C==="id")&&(v[C]=m[C])}),v});return[r.map(m=>{const v=g.find(F=>F.id===m.id),C={...m};return a==="form"?C.values=v:a==="tree"&&(C.treeValues=v),C}).concat(c),u]},di=t=>{const r=t.filter(n=>n.id&&n.id<0).map(n=>n.id);return r.length===0?-1:Math.min(...r)-1},ui=(t,r)=>{const n={};return Object.keys(t).forEach(s=>{var o;r.hasOwnProperty(s)&&(r[s].type==="one2many"||r[s].type==="many2many")&&t[s]&&((o=t[s])==null?void 0:o.items)?n[s]=t[s].items.filter(i=>i.operation!=="pendingRemove"):n[s]=t[s]}),n},fi=t=>{const{ooui:r}=t,{relation:n,context:s,views:o}=r,[i,a]=l.useState(!0),[c,h]=l.useState(),[d,f]=l.useState(new Map),u=l.useContext(Ve),{getContext:g}=u||{};et.default(()=>{y()},[r]);const w=async m=>o&&o[m]?o[m]:await K.getHandler().getView({model:n,type:m,context:{...g==null?void 0:g(),...s}}),y=async()=>{a(!0),h(void 0);try{const m=await w("form"),v=await w("tree");d.set("form",m),d.set("tree",v),f(d)}catch(m){h(m)}finally{a(!1)}};return i?e.jsx(p.Spin,{}):c?e.jsx(p.Alert,{className:"mt-10",message:c,type:"error",banner:!0}):e.jsx(me,{type:"array",...t,children:e.jsx(hi,{ooui:r,views:d})})},hi=t=>{const{value:r,views:n,ooui:s,onChange:o}=t,{items:i=[]}=r||{},[a,c]=l.useState(!1),[h,d]=l.useState(),[f,u]=l.useState(!1),[g,w]=l.useState(),{relation:y,context:m,readOnly:v,summaryField:C,titleField:F}=s,E=i.filter(x=>x.values),S=l.useContext(Ve),{getContext:V}=S||{};et.default(()=>{L()},[i]);const k=x=>{o==null||o({items:x})};async function L(){c(!0),d(void 0);try{const[x]=await zt({treeView:{fields:n.get("tree").fields,arch:n.get("tree").arch},formView:{fields:n.get("form").fields},model:y,items:i,context:{...V==null?void 0:V(),...m},currentView:"form"});k(x)}catch(x){d(x)}finally{c(!1)}}return h?e.jsx(p.Alert,{className:"mt-10",message:h,type:"error",banner:!0}):a?e.jsx(p.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(p.Timeline,{style:{padding:"1rem"},children:E.map((x,T)=>{var b,_;return e.jsx("div",{children:e.jsxs(p.Timeline.Item,{children:[e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{w(E.find(N=>x.id===N.id)),u(!0)},children:e.jsx("strong",{children:(b=x.values)==null?void 0:b[F]})}),e.jsx("br",{}),e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{w(E.find(N=>x.id===N.id)),u(!0)},children:(_=x.values)==null?void 0:_[C]})]},T)},T)})}),e.jsx(ft,{formView:n.get("form"),model:y,id:g==null?void 0:g.id,values:g==null?void 0:g.values,defaultValues:g==null?void 0:g.defaultValues,visible:f,onSubmitSucceed:()=>{u(!1)},parentContext:{...V==null?void 0:V(),...m},onCancel:()=>{u(!1)},readOnly:v,postSaveAction:L})]})},{useToken:pi}=p.theme,gi=t=>{const{ooui:r}=t;return e.jsx(me,{ooui:r,children:e.jsx(mi,{ooui:r})})},mi=t=>{const{token:r}=pi(),{ooui:n,value:s}=t,o=e.jsxs(e.Fragment,{children:[e.jsxs("span",{children:[n.label," "]}),n.tooltip&&e.jsx(p.Tooltip,{title:n.tooltip,children:e.jsx(H.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:r.colorPrimaryBg}})})]}),i=Ge(n.icon);let a=s;n.selectionValues.size?a=n.selectionValues.get(s):Array.isArray(s)&&(a=s[1]);const c=e.jsx(p.Statistic,{title:o,prefix:i&&e.jsx(i,{}),suffix:n.suffix,value:a});return n.card?e.jsx(p.Card,{children:c}):c},yi=(t,r)=>{if(!r)return t;const n={};return Object.keys(t).forEach(s=>{if(r[s]===void 0)n[s]=t[s];else if(!(t[s]===!1&&r[s].type!=="boolean"))if(r[s].type==="boolean"){const o=t[s];o===0?n[s]=!1:o===1?n[s]=!0:n[s]=t[s]}else n[s]=t[s]}),n},lt=(t,r)=>yi(t,r),Jt=({source:t,target:r,fields:n})=>{const s={};return Object.keys(r).forEach(o=>{var a,c;if(n[o]?n[o].type==="one2many"||n[o].type==="many2many":!1){const h=JSON.stringify(t[o]),d=JSON.stringify(r[o]);if(h===d)return;(((c=(a=r[o])==null?void 0:a.items)==null?void 0:c.filter(u=>u.operation!=="original"))||[]).length>0&&(s[o]=r[o])}else if(Array.isArray(r[o]))if(t[o]===void 0)s[o]=r[o];else if(n[o].type==="many2one")if(Array.isArray(t[o])){const h=JSON.stringify(t[o]),d=JSON.stringify(r[o]);h!==d&&(s[o]=r[o])}else{const h=t[o],[d]=r[o];h!==d&&(s[o]=r[o])}else{const h=JSON.stringify(t[o]),d=JSON.stringify(r[o]);h!==d&&(s[o]=r[o])}else t[o]!==r[o]&&(r[o]===void 0?s[o]=null:s[o]=r[o])}),s},vi=({changedFields:t,formOoui:r,types:n})=>t.map(o=>{var a;const i=(a=r==null?void 0:r.findById(o))==null?void 0:a.type;return n.includes(i)}).some(o=>o===!0),wi=({fieldsDomain:t,fields:r})=>{const n={};return Object.keys(r).forEach(s=>{n[s]=r[s],t[s]&&(n[s].domain=t[s])}),n},Ci=t=>{const r={};return!t||!Array.isArray(t)||(t==null?void 0:t.length)===0?{}:(t.forEach(n=>{(n==null?void 0:n[1])==="="&&(r[n[0]]=n[2])}),r)},Si=({onChangeFieldActionArgs:t,values:r,parentValues:n={}})=>{const s={};return t.forEach(o=>{const i=o.split("");if(o==="True")s[o]=!0;else if(o==="False")s[o]=!1;else if(r[o])s[o]=r[o];else if(i[0]==="'"&&i[i.length-1]==="'"&&i.filter(a=>a==="'").length===2)s[o]=o.replace(/'/g,"");else if(i.includes("'"))s[o]=o;else if(o.indexOf("parent.")!==-1){const a=o.replace("parent.","");s[o]=n[a]||!1}else s[o]=!1}),s},zr=t=>{const r={primary:[],secondary:[]};return t.forEach(n=>{!n||(r.primary=r.primary.concat(n.primary),r.secondary=r.secondary.concat(n.secondary))}),{primary:r.primary.filter(Jr),secondary:r.secondary.filter(Jr)}};function Jr(t,r,n){return n.indexOf(t)===r}const ct=({values:t,fields:r})=>{let n={};return Object.keys(t).forEach(s=>{const o=t[s];r[s]&&r[s].type==="many2one"&&o&&Array.isArray(o)&&o.length===2?n[s]=o[0]:n[s]=o}),n},kt=t=>{let r=0;t=t.toString().padEnd(10,"0");for(let o=0;o<t.length;o++)r=t.charCodeAt(o)+((r<<5)-r);let n="#";for(let o=0;o<3;o++){var s=r>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n},bi=(t,r)=>t.replace(/\{([^}]+)\}/g,(n,s)=>r[s]!==void 0?r[s]:n),Zr=t=>e.jsx(me,{...t,children:e.jsx(Xr,{...t})}),Xr=t=>{const{ooui:r,value:n}=t;let s=n,o=n;if(r.selectionValues.size?s=r.selectionValues.get(n):Array.isArray(n)&&(o=n[0],s=n[1]),!n)return null;const i=r.colors==="auto"?kt(o):r.colors[o]||kt(o);return e.jsx(Qr,{color:i,children:s})},Qr=t=>{let{color:r}=t,n={};return!mr.isPresetStatusColor(t.color)&&!mr.isPresetColor(t.color)&&(n={color:r,borderColor:r,borderStyle:"solid",borderWidth:"1px"},r=`${r}20`),e.jsx(p.Tag,{...t,style:n,color:r,children:t.children})},Rr=t=>{const{ooui:r}=t;return e.jsx(me,{type:"array",...t,children:e.jsx(xi,{ooui:r})})},xi=t=>{const{value:r,ooui:n,onChange:s}=t,{items:o=[]}=r||{},i=o.filter(k=>k.operation!=="pendingRemove").map(k=>k.id),[a,c]=l.useState([]),[h,d]=l.useState(),[f,u]=l.useState(!1),{relation:g,context:w,readOnly:y,field:m}=n,v=l.useContext(Ve),{getContext:C}=v||{};et.default(()=>{E()},[o]);const F=k=>{s==null||s({items:k})};async function E(){u(!0);let k=[];try{if(y&&(k=[["id","in",i]]),n.domain){const T=await K.getHandler().evalDomain({domain:n.domain,values:ct({fields:v==null?void 0:v.getFields(),values:v.getPlainValues()}),fields:v==null?void 0:v.getFields(),context:v.getContext()});k=[...k,...T]}const x=(await K.getHandler().search({model:g,params:k,fields:[m],context:{...C==null?void 0:C(),...w}})).map(T=>{const b=T[m];let _=b;return Array.isArray(b)&&(_=b[1]),{label:_,value:T.id}});c(x)}catch(L){d(L)}finally{u(!1)}}const S=k=>{const L=o.map(T=>k.includes(T.id)?T.operation=="pendingRemove"?{...T,operation:"pendingLink"}:T:{id:T.id,operation:"pendingRemove"}),x=L.map(T=>T.id);k.filter(T=>!x.includes(T)).map(T=>{L.push({id:T,operation:"pendingLink"})}),F(L)},V=k=>{const{label:L,closable:x,onClose:T}=k,b=N=>{N.preventDefault(),N.stopPropagation()},_=kt(L);return e.jsx(Qr,{color:_,onMouseDown:b,closable:x,onClose:T,closeIcon:e.jsx("span",{style:{color:_},children:"X"}),children:L})};return h?e.jsx(p.Alert,{className:"mt-10",message:h,type:"error",banner:!0}):e.jsx(e.Fragment,{children:e.jsx("div",{className:"flex flex-row",children:e.jsx(p.Select,{mode:"multiple",value:a.length?i:[],tagRender:V,bordered:!y,disabled:y,options:a,onChange:S,loading:f})})})},Ti=t=>{switch(t){case"form":return ut;case"tree":return bt;case"notebook":return Dn;case"group":return nr;case"label":return yt;case"char":return Ut;case"text":return kn;case"button":return qt;case"buttonGroup":return Or;case"selection":return Gt;case"many2one":return wn;case"boolean":return Er;case"integer":return St;case"float":return Xt;case"progressbar":return cn;case"date":return $n;case"datetime":return An;case"time":return Nn;case"one2many":case"one2many_list":case"many2many":return On;case"separator":return Mn;case"reference":return Pn;case"binary":return Bn;case"image":return qr;case"url":return Un;case"email":return Gn;case"float_time":return _n;case"fiber_grid":return ii;case"timeline":return fi;case"indicator":return gi;case"tags":return Rr;case"tag":return Zr;case"multicheckbox":return Qn;case"markdown":return Rn;case"radio":return eo;case"switch":return to;case"steps":return ro;case"codeeditor":return no;case"comments_timeline":return so;default:return}},Fi=t=>{const{ooui:r}=t,{type:n}=r,s=Ti(n);return s?Be.default.createElement(s,t):null},Oi=({item:t,responsiveBehaviour:r})=>({gridColumnStart:"span "+(r?1:t.colspan)}),_i=({row:t,mustFillWithEmpties:r,numberOfColumns:n})=>{const s=[];let o=0;const i=a=>a+1===t.length&&o<n&&!r;return t.map((a,c)=>{if(o+=a.colspan,i(c)){const h=n-o;a.colspan=a.colspan+h,o+=h}if(s.push(a),i(c)){const h=n-o;for(let d=0;d<h;d+=1)s.push(new ie.Label({string:""}))}}),s},Di=({row:t,numberOfColumns:r})=>t.map(n=>(n._mustExpand&&(n.colspan=r),n)),ki=(t,r)=>{const n=t.map(s=>s instanceof ie.Label&&s.fieldForLabel||s instanceof ie.Container?"auto":"1fr");if(n.length<r){const s=r-n.length;for(let o=0;o<s;o++)n.push("1fr")}return n.join(" ")},Mi=(t,r)=>{const n=r?"1fr":"auto",s="auto";let o="";for(let i=0;i<t;i++)o+=i%2?n:s,i+1<t&&(o+=" ");return o},Vi=t=>t.map(n=>n.reduce((s,o)=>s+o.colspan,0)).reduce((n,s)=>Math.max(n,s)),Zt=t=>{const{container:r,responsiveBehaviour:n}=t,{rows:s}=r;let{columns:o}=r;const i=Vi(s);i<o&&(o=i);let a=!1,c=[];const h=s.map((u,g)=>{const w=u.filter(v=>!v.invisible),y=Di({row:w,numberOfColumns:o});let m=y;return(g===0||!(u.length===1&&u.some(v=>v.type==="group")))&&(m=_i({row:y,numberOfColumns:o,mustFillWithEmpties:n}),c=c.concat(m)),m.map(v=>(v instanceof ie.Label&&v.fieldForLabel&&(a=!0),e.jsx("div",{style:{...Oi({item:v,responsiveBehaviour:n}),minWidth:0},children:Fi({ooui:v,responsiveBehaviour:n})},v.key)))}),d=s.length===1?ki(c,o):Mi(o,a),f={display:"grid",gridTemplateColumns:n?"auto":d,gap:"1rem",minHeight:0,minWidth:0};return e.jsx("div",{style:f,children:h})},{confirm:Ei}=p.Modal,wt=({onOk:t,onCancel:r,lang:n})=>{Ei({title:be("unsavedChanges",n),icon:e.jsx(H.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmCloseWithoutSave",n),okText:be("closeWithoutSaving",n),onOk:t,onCancel:r,cancelText:be("cancel",n)})},{error:Ii}=p.Modal,en=t=>{Ii({title:be("formHasErrors",t),icon:e.jsx(H.ExclamationCircleOutlined,{}),centered:!0,content:be("fillRequiredFields",t)})},{warning:$i}=p.Modal,Ai=(t,r,n)=>{$i({title:t,icon:e.jsx(H.WarningOutlined,{}),centered:!0,content:r,onOk:n})},tn=Be.default.createContext(null),Li=t=>{const{children:r,setTitle:n}=t;return e.jsx(tn.Provider,{value:{setTitle:n},children:r})},rn=t=>typeof t=="string"&&t==="true"||t==="false"?t==="true":t,Ni=(t,r)=>{const n=Wi(t),s=Ki(n),o=Yi(s,r);return[...Object.keys(o).map(c=>Pi(c,o[c],r))].reduce((c,h)=>Array.isArray(h[0])?c.concat(h):[...c,h],[])},Pi=(t,r,n)=>{var i;const s=t.split("#")[0],o=(i=n.findById(s))==null?void 0:i.type;if(o==="char"||o==="text"||o==="many2one"||o==="many2many"||o==="one2many")return[t,"ilike",r];if(o==="float"||o==="integer"||o==="float_time"||o==="progressbar"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r]}else if(o==="date"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r.format("YYYY-MM-DD")]}else if(o==="datetime"){const a=[];return r[0]&&a.push([s,">=",r[0]]),r[1]&&a.push([s,"<=",r[1]]),a}else return o==="selection"?[t,"in",r.map(a=>rn(a))]:[t,"=",rn(r)]},Bi=t=>Object.keys(t).filter(r=>r.indexOf("#date")!==-1),Hi=t=>{const r={...t};return Object.keys(r).forEach(n=>(n.indexOf("#time")!==-1||n.indexOf("#date")!==-1)&&delete r[n]),r},Ki=t=>{const r={...Hi(t)};return Bi(t).forEach(s=>{const o=t[s],i=s.split("#")[0],a=i+"#time",c=t[a];let h,d;if(o[0]!==null&&(h=o[0].format("YYYY-MM-DD"),c&&c[0]!==null)){const u=c[0].format("HH:mm:ss");h=h+" "+u}if(o[1]!==null&&(d=o[1].format("YYYY-MM-DD"),c&&c[1]!==null)){const u=c[1].format("HH:mm:ss");d=d+" "+u}r[i+"#datetime"]=[h,d]}),r},Yi=(t,r)=>{const n=Object.keys(t).filter(o=>{const i=r.findById(o);return i&&i.type==="date"});let s={...t};return n.forEach(o=>{delete s[o],t[o][0]!==null&&(s[o+"#from"]=t[o][0]),t[o][1]!==null&&(s[o+"#to"]=t[o][1])}),s},Wi=t=>{const r={...t};return Object.keys(r).forEach(n=>(r[n]===void 0||r[n]===null||r[n]==="")&&delete r[n]),r},qi=t=>{const r={};return t.forEach(n=>{Array.isArray(n)&&n[0]?r[n[0]]=!0:r[n]=!0}),Object.keys(r)},Mt=(t,r)=>{const n=[...t],s=qi(t);return r.forEach(o=>{Array.isArray(o)&&o[0]?s.includes(o[0])||n.push(o):s.includes(o)||n.push(o)}),n},Ct=80,nn=t=>{const{model:r,setSearchTreeNameSearch:n,setSelectedRowItems:s,setSearchParams:o,setSearchVisible:i,setTreeIsLoading:a,nameSearch:c,searchNameGetDoneRef:h,context:d,setActionViewTotalItems:f,treeView:u,formView:g,sorter:w,setSorter:y,setCurrentItemIndex:m,setResultsActionView:v,resultsActionView:C,domain:F,currentId:E,limit:S,setLimit:V,searchParams:k=[],setSearchValues:L}=t,[x,T]=l.useState(!1),[b,_]=l.useState(!1),[N,A]=l.useState(),[O,I]=l.useState(1),[$,M]=l.useState(0),[B,D]=l.useState(),[W,j]=l.useState([]),[z,X]=l.useState(void 0),[q,P]=l.useState(void 0),Y=l.useRef(S||Ct),te=l.useRef([]),re=l.useCallback(ae=>{v==null||v([...ae]),j([...ae])},[]),ne=l.useCallback(()=>C||W,[C,W]),Q=l.useCallback(async()=>{const ae=await K.getHandler().nameSearch({model:r,payload:c,limit:Y.current,attrs:F,context:d});if(D(ae.length),f==null||f(ae.length),ae.length>0){const de=ae.map(ke=>ke==null?void 0:ke[0]),{colors:$e,status:ve}=it(u),De={};$e&&(De.colors=$e),ve&&(De.status=ve);const Ye=await K.getHandler().readEvalUiObjects({model:r,ids:de,arch:u==null?void 0:u.arch,fields:u.field_parent?{...u.fields,[u.field_parent]:{}}:u.fields,context:d,attrs:De}),ee=Ye[0];te.current=[...ee],X(Dt(Ye[1])),P(Gr(Ye[1]));const Fe=ee.map(ke=>ke.id),_e=w!==void 0?at({resultsToSort:ee,sorter:w,fields:{...u.fields,...g.fields}}):[...te.current];re(_e),Fe.length>0?m==null||m(0):m==null||m(void 0)}else re([]),m==null||m(void 0);T(!1),h.current=!0},[re,h,c,r,d,F,u,g,w,m,f]),Z=l.useCallback(async ae=>{const{params:de,newOffset:$e}=ae||{},ve=Mt(de||k,F),{colors:De,status:Ye}=it(u),ee={};De&&(ee.colors=De),Ye&&(ee.status=Ye);const{totalItems:Fe,results:_e,attrsEvaluated:ke}=await K.getHandler().searchForTree({params:ve,limit:Y.current,offset:$e||$,model:r,fields:u.field_parent?{...u.fields,[u.field_parent]:{}}:u.fields,context:d,attrs:ee});X(Dt(ke)),P(Gr(ke)),te.current=[..._e];const ce=w!==void 0?at({resultsToSort:_e,sorter:w,fields:{...u.fields,...g.fields}}):[...te.current];if(re(ce),C&&ce.length>0){const Pe=ce.findIndex(fe=>E===fe.id);Pe===-1?m==null||m(0):m==null||m(Pe)}else m==null||m(void 0);T(!1);const he=await Fe;D(he),f==null||f(he)},[m,C,re,E,r,d,F,u,g,w,f,S,$,k]),ue=l.useCallback(async ae=>{try{T(!0),a==null||a(!0),c&&!h.current?await Q():await Z(ae)}catch(de){A(de.message)}finally{s==null||s([]),_(!1),a==null||a(!1)}},[d,E,F,g,S,r,c,$,C,h,f,m,re,A,_,T,a,w,u]),we=l.useCallback(ae=>{if(JSON.stringify(ae)===JSON.stringify(w))return;y==null||y(ae);const de=ae!==void 0?at({resultsToSort:ne(),sorter:ae,fields:{...u.fields,...g.fields}}):[...te.current];re(de)},[y,ne,u,g,re]),Ee=l.useCallback(ae=>{const{params:de,searchValues:$e,limit:ve,offset:De}=ae;x||(n==null||n(void 0),s==null||s([]),L==null||L($e),o==null||o(de),i==null||i(!1),_(!0),A(void 0),I(1),ve&&(Y.current=ve,V==null||V(ve)),De&&M(De),ue({params:de,newOffset:De}))},[x,n,s,o,i,_,A,I,V,M,ue]),Oe=l.useCallback(ae=>{T(!0),I(ae),M((ae-1)*S)},[T,S,M,I]),Ie=l.useCallback(()=>{x||(n==null||n(void 0),o==null||o([]),L==null||L({}),A(void 0),M(0),I(1),V==null||V(S||Ct))},[x,n,o,A,M,I,V,S]),Ne=l.useCallback(async ae=>{const de=ae[(u==null?void 0:u.field_parent)||"child_id"],$e=await K.getHandler().readObjects({model:r,ids:de,fields:u.field_parent?{...u.fields,[u.field_parent]:{}}:u.fields,context:d});return re([...ne(),...$e]),Ur(it(u),$e)},[u,r,d,ne,re]);return{submit:Ee,clear:Ie,fetchResults:ue,tableRefreshing:x,searchFilterLoading:b,searchError:N,page:O,offset:$,limit:S,getResults:ne,requestPageChange:Oe,changeSort:we,fetchChildrenForRecord:Ne,colorsForResults:z,statusForResults:q,totalItems:B}},We=Be.default.createContext(null),Ui=t=>{const{children:r,currentView:n,title:s,setCurrentView:o,availableViews:i,formRef:a,searchTreeRef:c,onNewClicked:h,currentId:d,setCurrentId:f,setResults:u,results:g,currentItemIndex:w,setCurrentItemIndex:y,currentModel:m,sorter:v,setSorter:C,totalItems:F,setTotalItems:E,setSelectedRowItems:S,selectedRowItems:V,searchTreeNameSearch:k,setSearchTreeNameSearch:L,goToResourceId:x,limit:T}=t,[b,_]=l.useState(!1),[N,A]=l.useState(!1),[O,I]=l.useState(!1),[$,M]=l.useState(!0),[B,D]=l.useState(!0),[W,j]=l.useState([]),[z,X]=l.useState(!1),[q,P]=l.useState([]),[Y,te]=l.useState(!1),[re,ne]=l.useState(!0),[Q,Z]=l.useState(),[ue,we]=l.useState({}),[Ee,Oe]=l.useState(T!==void 0?T:Ct),[Ie,Ne]=l.useState(s);l.useEffect(()=>{g&&g.length>0&&!w&&(y==null||y(0),f==null||f(g[0].id))},[g]),l.useEffect(()=>{Oe(T!==void 0?T:Ct)},[T]),l.useEffect(()=>{i.length===1?Z(i[0]):i.length>1&&Z(i.filter(de=>de.view_id!==n.view_id)[0])},[i]),l.useEffect(()=>{(Q==null?void 0:Q.view_id)===n.view_id&&i.length>1&&Z(i.filter(de=>de.view_id!==n.view_id)[0])},[n]);const ae=async()=>{var de;return await((de=a.current)==null?void 0:de.submitForm())};return e.jsx(We.Provider,{value:{title:Ie,currentView:n,setCurrentView:o,availableViews:i,formIsSaving:b,setFormIsSaving:_,formHasChanges:N,setFormHasChanges:A,formRef:a,searchTreeRef:c,onFormSave:ae,onNewClicked:h,currentId:d,setCurrentId:f,currentItemIndex:w,setCurrentItemIndex:y,results:g,setResults:u,currentModel:m,removingItem:O,setRemovingItem:I,formIsLoading:$,setFormIsLoading:M,treeIsLoading:B,setTreeIsLoading:D,attachments:W,setAttachments:j,selectedRowItems:V,setSelectedRowItems:S,duplicatingItem:z,setDuplicatingItem:X,setSearchParams:P,searchParams:q,searchVisible:Y,setSearchVisible:te,sorter:v,setSorter:C,totalItems:F,setTotalItems:E,searchTreeNameSearch:k,setSearchTreeNameSearch:L,setGraphIsLoading:ne,graphIsLoading:re,previousView:Q,setPreviousView:Z,goToResourceId:x,searchValues:ue,setSearchValues:we,limit:Ee,setLimit:Oe,setTitle:Ne},children:r})},ze=Be.default.createContext(null),Gi=t=>{const{children:r,openAction:n,openRelate:s,openDefaultActionForModel:o,openShortcut:i,activeKey:a,onChangeTab:c,onRemoveTab:h,tabs:d}=t,[f,u]=l.useState(),[g,w]=l.useState();return e.jsx(ze.Provider,{value:{openAction:n,openRelate:s,openDefaultActionForModel:o,activeKey:a,openShortcut:i,onChangeTab:c,onRemoveTab:h,tabs:d,currentId:g,currentView:f,setCurrentId:w,setCurrentView:u},children:r})},dt=Be.default.createContext(null),on=async t=>{var r;for(let n=0;n<t.length;n++)await((r=t==null?void 0:t[n])==null?void 0:r.call(t))},ji=(t,r)=>{const{children:n,globalValues:s={}}=t,o=l.useRef(),i=l.useRef(),[a,c]=l.useState(!1),h=l.useContext(ze),{openAction:d}=h||{},f=l.useRef([]),{t:u}=l.useContext(ge);l.useImperativeHandle(r,()=>({openActionModal:S}));const[g,w]=l.useState(!1),[y,m]=l.useState({context:{}});async function v(L){const{reportData:x,fields:T,values:b,context:_={}}=L,{context:N,model:A,datas:O={},report_name:I,type:$}=x;if($!=="ir.actions.report.xml"){Le(`${$} action not supported`);return}const{ids:M}=O||{};let B=M||[];const D=typeof N=="string"?ie.parseContext({context:N,fields:T,values:b}):N;try{const W=await K.getHandler().createReport({model:A,name:I,datas:O,ids:B,context:{..._,...D}});c(!0),i.current=!0,o.current=setInterval(()=>{C(W)},1e3)}catch(W){i.current=!1,clearInterval(o.current),Le(W),c(!1)}}async function C(L){let x;try{if(x=await K.getHandler().getReport({id:L}),x.state&&i.current===!0){i.current=!1,clearInterval(o.current),c(!1);const T=await st(x.result);_t(x.result,T.mime)}}catch(T){i.current=!1,clearInterval(o.current),c(!1),Le(T.exception||T)}}async function F({actionData:L,fields:x,values:T,context:b,onRefreshParentValues:_}){const{type:N}=L;if(f.current.push(_),N==="ir.actions.report.xml")return await v({reportData:L,fields:x,values:T,context:b});if(N==="ir.actions.act_window")return await E({actionData:L,fields:x,values:T,context:b});if(N==="ir.actions.act_url")window.open(bi(L.url,{...T,context:b}),"_blank");else return Le(`${N} action not supported`),{}}async function E({actionData:L,fields:x={},values:T={},context:b={}}){var I;let _=L;L.res_model||(_=(await K.getHandler().readObjects({model:"ir.actions.act_window",ids:[parseInt(L.id)],context:b}))[0]);const N=typeof(_==null?void 0:_.context)=="string"?ie.parseContext({context:_.context,fields:x,values:{...T,...s}}):_.context,A={...b,...N};let O=[];if(_.domain&&(O=await K.getHandler().evalDomain({domain:_.domain,values:ct({fields:x,values:{...T,...s}}),fields:x,context:A})),_.target==="new"){const $=await K.getHandler().getView({model:_.res_model,type:"form",id:((I=_==null?void 0:_.view_id)==null?void 0:I[0])||void 0,context:A});return S({domain:O,model:_.res_model,formView:$,context:A}),{}}else{const{initialView:$,views:M}=await zi({model:_.res_model,context:A,view_mode:_.view_mode,views:_.views});return d==null||d({target:"current",context:A,domain:O,model:_.res_model,views:M,title:_.name,initialView:$,action_id:_.id,action_type:_.type}),{closeParent:!0}}}function S({domain:L,model:x,formView:T,context:b,actionData:_}){g?V({domain:L,model:x,formView:T,context:b,actionData:_}):(m({domain:L,model:x,context:b,formView:T,actionData:_}),w(!0))}async function V({domain:L,model:x,formView:T,context:b,actionData:_}){m({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0}),w(!1),await new Promise(N=>setTimeout(N,300)),m({domain:L,model:x,context:b,formView:T,actionData:_}),w(!0)}async function k(){on(f.current),f.current=[],w(!1),m({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})}return e.jsx(e.Fragment,{children:e.jsx(dt.Provider,{value:{processAction:F,globalValues:s},children:e.jsxs(e.Fragment,{children:[n,e.jsx(p.Modal,{title:u("generatingReport"),open:a,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(p.Spin,{})}),e.jsx(ft,{buttonModal:!0,parentContext:y.context,model:y.model,formView:y.formView,visible:g,onSubmitSucceed:k,onCancel:()=>{on(f.current),f.current=[],w(!1),m({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})},showFooter:!1,actionDomain:y.domain,isMenuAction:(y==null?void 0:y.actionData)!==void 0,actionData:y==null?void 0:y.actionData})]})})})};async function zi({views:t,view_mode:r,model:n,context:s,view_id:o}){const i=[];let a;if(t)for(const c of t){const h=await K.getHandler().getView({model:n,type:c[1],id:c[0],context:s});i.push([h.view_id,c[1]])}else{const c=r.split(",");for(const h of c){const d=await K.getHandler().getView({model:n,type:h,context:s});i.push([d.view_id,h])}}if(t&&t.length>0){const[c,h]=t[0];a={id:c,type:h}}else if(o)a={id:o,type:r.split(",")[0]};else{const c=r.split(",")[0],[h]=i.find(([d,f])=>f===c);a={id:h,type:c}}return{views:i,initialView:a}}const sn=l.forwardRef(ji),Ji=({error:t,className:r})=>{let n,s="error";if(typeof t=="string"&&t.indexOf(" -- ")!==-1&&t.indexOf(`
17
+ `;var Re=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ss(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var Ar=ss,is=typeof Re=="object"&&Re&&Re.Object===Object&&Re,as=is,ls=as,cs=typeof self=="object"&&self&&self.Object===Object&&self,ds=ls||cs||Function("return this")(),$r=ds,us=$r,fs=function(){return us.Date.now()},hs=fs,ps=/\s/;function gs(t){for(var r=t.length;r--&&ps.test(t.charAt(r)););return r}var ms=gs,ys=ms,vs=/^\s+/;function ws(t){return t&&t.slice(0,ys(t)+1).replace(vs,"")}var Ss=ws,Cs=$r,bs=Cs.Symbol,Lr=bs,Nr=Lr,Pr=Object.prototype,xs=Pr.hasOwnProperty,Ts=Pr.toString,wt=Nr?Nr.toStringTag:void 0;function Fs(t){var r=xs.call(t,wt),n=t[wt];try{t[wt]=void 0;var s=!0}catch{}var o=Ts.call(t);return s&&(r?t[wt]=n:delete t[wt]),o}var Os=Fs,_s=Object.prototype,Ds=_s.toString;function ks(t){return Ds.call(t)}var Ms=ks,Br=Lr,Vs=Os,Es=Ms,Is="[object Null]",As="[object Undefined]",Hr=Br?Br.toStringTag:void 0;function $s(t){return t==null?t===void 0?As:Is:Hr&&Hr in Object(t)?Vs(t):Es(t)}var Ls=$s;function Ns(t){return t!=null&&typeof t=="object"}var Ps=Ns,Bs=Ls,Hs=Ps,Ks="[object Symbol]";function Ys(t){return typeof t=="symbol"||Hs(t)&&Bs(t)==Ks}var Ws=Ys,qs=Ss,Kr=Ar,Us=Ws,Yr=0/0,Gs=/^[-+]0x[0-9a-f]+$/i,js=/^0b[01]+$/i,zs=/^0o[0-7]+$/i,Js=parseInt;function Zs(t){if(typeof t=="number")return t;if(Us(t))return Yr;if(Kr(t)){var r=typeof t.valueOf=="function"?t.valueOf():t;t=Kr(r)?r+"":r}if(typeof t!="string")return t===0?t:+t;t=qs(t);var n=js.test(t);return n||zs.test(t)?Js(t.slice(2),n?2:8):Gs.test(t)?Yr:+t}var Xs=Zs,Qs=Ar,zt=hs,Wr=Xs,Rs="Expected a function",ei=Math.max,ti=Math.min;function ri(t,r,n){var s,o,i,a,c,h,d=0,f=!1,u=!1,g=!0;if(typeof t!="function")throw new TypeError(Rs);r=Wr(r)||0,Qs(n)&&(f=!!n.leading,u="maxWait"in n,i=u?ei(Wr(n.maxWait)||0,r):i,g="trailing"in n?!!n.trailing:g);function w(D){var L=s,x=o;return s=o=void 0,d=D,a=t.apply(x,L),a}function y(D){return d=D,c=setTimeout(S,r),f?w(D):a}function m(D){var L=D-h,x=D-d,F=r-L;return u?ti(F,i-x):F}function v(D){var L=D-h,x=D-d;return h===void 0||L>=r||L<0||u&&x>=i}function S(){var D=zt();if(v(D))return T(D);c=setTimeout(S,m(D))}function T(D){return c=void 0,g&&s?w(D):(s=o=void 0,a)}function V(){c!==void 0&&clearTimeout(c),d=0,s=h=o=c=void 0}function b(){return c===void 0?a:T(zt())}function E(){var D=zt(),L=v(D);if(s=arguments,o=this,h=D,L){if(c===void 0)return y(h);if(u)return clearTimeout(c),c=setTimeout(S,r),w(h)}return c===void 0&&(c=setTimeout(S,r)),a}return E.cancel=V,E.flush=b,E}var ni=ri;function oi(t){const n=Buffer.from(t,"base64").length/1e3;return`${Math.round((n+Number.EPSILON)*100)/100} KB`}async function st(t){const r=await So.fileTypeFromBuffer(Buffer.from(t,"base64"));return r||{mime:"text/plain",ext:"txt"}}const qr=t=>new Promise((r,n)=>{const s=new FileReader;s.readAsDataURL(t),s.onload=o=>r(o.target.result.split(",")[1]),s.onerror=o=>n(o)});function kt(t,r){for(var n=atob(t),s=new Array(n.length),o=0;o<n.length;o++)s[o]=n.charCodeAt(o);var i=new Uint8Array(s),a=new Blob([i],{type:r+";base64"}),c=URL.createObjectURL(a);window.open(c)}const Ur=t=>{const{ooui:r}=t,{required:n,id:s}=r,o=Je(s);return o?e.jsx(o,{}):e.jsx(me,{required:n,...t,children:e.jsx(si,{ooui:r})})},si=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o}=r,i=l.useRef(null),{t:a}=l.useContext(ge),c=u=>{s==null||s(u)};async function h(){const u=await st(n),g=`data:${u==null?void 0:u.mime};base64,${n}`,w=document.createElement("a");w.href=g,w.download=`image.${u==null?void 0:u.ext}`,w.click()}async function d(u){u.stopPropagation(),u.preventDefault();const g=u.target.files[0],w=await qr(g);c(w)}function f(){c(void 0)}return e.jsxs(e.Fragment,{children:[e.jsxs(p.Row,{gutter:8,wrap:!1,justify:"center",children:[n&&e.jsx("img",{src:`data:image/*;base64,${n}`,style:{maxWidth:"100px"}}),e.jsx("input",{type:"file",id:"file",ref:i,accept:"image/*",style:{display:"none"},onChange:d})]}),e.jsx(p.Row,{gutter:8,wrap:!1,justify:"center",className:"pt-5",children:e.jsxs(p.Space,{children:[e.jsx(Ye,{tooltip:a("uploadNewImage"),icon:e.jsx(B.FolderOpenOutlined,{}),disabled:o,onClick:()=>{i.current.click()}}),e.jsx(Ye,{tooltip:a("download"),disabled:!n,onClick:h,icon:e.jsx(B.DownloadOutlined,{})}),e.jsx(Ye,{tooltip:a("clear"),disabled:o||!n,onClick:f,icon:e.jsx(B.ClearOutlined,{})})]})})]})},ii=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(ai,{})})},ai=t=>{const{value:r,onChange:n}=t;if(!r)return null;try{JSON.parse(r)}catch(s){return console.log(s),null}return e.jsx(Co.GridUi,{inputJson:r,onChange:s=>{n&&n(s)}})},it=t=>{const r=t.arch,n=t.fields,s=new se.Tree(n);return s.parse(r),s},li=(t,r,n)=>t.columns.map(o=>{const i=o.type,a=o.id,c=r==null?void 0:r[i];let h;return c&&(h=d=>c(d,a,o,n)),{key:a,dataIndex:a,title:o.label,render:h,sorter:(d,f)=>{var w,y;let u=d[a]||"",g=f[a]||"";return i==="many2one"&&(u=((w=d[a])==null?void 0:w.value)||"",g=((y=f[a])==null?void 0:y.value)||""),u<g?-1:u>g?1:0}}}),Gr=(t,r)=>r.map(s=>{const o={};return Object.keys(s).map(i=>{if(i==="id")o[i]=s[i];else{const a=t.findById(i);a instanceof se.Reference||a instanceof se.Selection?o[i]=s[i]:a instanceof se.Many2one?o[i]=s[i]&&Array.isArray(s[i])&&s[i].length===2&&{model:a.relation,id:s[i][0],value:s[i][1]}:a instanceof se.Boolean?o[i]=s[i]:a?o[i]=s[i]===!1?"":s[i]:o[i]=s[i]}}),o});function Mt(t){return zr(t,"colors")}function jr(t){return zr(t,"status")}function zr(t,r){if(!t)return;const n={};return t.forEach(s=>{n[s.id]=s[r]}),n}function at({resultsToSort:t,sorter:r,fields:n}){if(!r)return t;const{id:s,desc:o}=r,i=o===!1?"ascend":"descend",a=n[s].type,c=(h,d)=>{var g,w;let f=h[s]||"",u=d[s]||"";return a==="many2one"&&(f=((g=h[s])==null?void 0:g[1])||"",u=((w=d[s])==null?void 0:w[1])||""),f===u?0:i==="ascend"?f>u?1:-1:f<u?1:-1};return t.sort(c)}function ci(t){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&t[r]!==void 0)return!0;return!1}const Jt=async t=>{var y;const{items:r,model:n,formView:s,treeView:o,context:i,currentView:a={}}=t,c=r.filter(m=>m.operation!=="original"),h=r.filter(m=>m.operation==="original").map(m=>m.id),d={form:s.fields,tree:o.fields};let f=[],u;if(a==="tree"&&(o==null?void 0:o.arch)){const m=(y=it(o))==null?void 0:y.colors,v=await K.getHandler().readEvalUiObjects({model:n,ids:h,arch:o==null?void 0:o.arch,fields:o.fields,context:i,attrs:m&&{colors:m}});f=v[0],u=Mt(v[1])}else f=await K.getHandler().readObjects({model:n,ids:h,fields:d[a],context:i});const g=f.map(m=>{const v={};return Object.keys(m).forEach(S=>{(d[a].hasOwnProperty(S)||S==="id")&&(v[S]=m[S])}),v});return[r.map(m=>{const v=g.find(T=>T.id===m.id),S={...m};return a==="form"?S.values=v:a==="tree"&&(S.treeValues=v),S}).concat(c),u]},di=t=>{const r=t.filter(n=>n.id&&n.id<0).map(n=>n.id);return r.length===0?-1:Math.min(...r)-1},ui=(t,r)=>{const n={};return Object.keys(t).forEach(s=>{var o;r.hasOwnProperty(s)&&(r[s].type==="one2many"||r[s].type==="many2many")&&t[s]&&((o=t[s])==null?void 0:o.items)?n[s]=t[s].items.filter(i=>i.operation!=="pendingRemove"):n[s]=t[s]}),n},fi=t=>{const{ooui:r}=t,{relation:n,context:s,views:o}=r,[i,a]=l.useState(!0),[c,h]=l.useState(),[d,f]=l.useState(new Map),u=l.useContext(De),{getContext:g}=u||{};tt.default(()=>{y()},[r]);const w=async m=>o&&o[m]?o[m]:await K.getHandler().getView({model:n,type:m,context:{...g==null?void 0:g(),...s}}),y=async()=>{a(!0),h(void 0);try{const m=await w("form"),v=await w("tree");d.set("form",m),d.set("tree",v),f(d)}catch(m){h(m)}finally{a(!1)}};return i?e.jsx(p.Spin,{}):c?e.jsx(p.Alert,{className:"mt-10",message:c,type:"error",banner:!0}):e.jsx(me,{type:"array",...t,children:e.jsx(hi,{ooui:r,views:d})})},hi=t=>{const{value:r,views:n,ooui:s,onChange:o}=t,{items:i=[]}=r||{},[a,c]=l.useState(!1),[h,d]=l.useState(),[f,u]=l.useState(!1),[g,w]=l.useState(),{relation:y,context:m,readOnly:v,summaryField:S,titleField:T}=s,V=i.filter(x=>x.values),b=l.useContext(De),{getContext:E}=b||{};tt.default(()=>{L()},[i]);const D=x=>{o==null||o({items:x})};async function L(){c(!0),d(void 0);try{const[x]=await Jt({treeView:{fields:n.get("tree").fields,arch:n.get("tree").arch},formView:{fields:n.get("form").fields},model:y,items:i,context:{...E==null?void 0:E(),...m},currentView:"form"});D(x)}catch(x){d(x)}finally{c(!1)}}return h?e.jsx(p.Alert,{className:"mt-10",message:h,type:"error",banner:!0}):a?e.jsx(p.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(p.Timeline,{style:{padding:"1rem"},children:V.map((x,F)=>{var O,C;return e.jsx("div",{children:e.jsxs(p.Timeline.Item,{children:[e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{w(V.find(P=>x.id===P.id)),u(!0)},children:e.jsx("strong",{children:(O=x.values)==null?void 0:O[T]})}),e.jsx("br",{}),e.jsx("div",{style:{display:"inline-block",cursor:"pointer"},onClick:()=>{w(V.find(P=>x.id===P.id)),u(!0)},children:(C=x.values)==null?void 0:C[S]})]},F)},F)})}),e.jsx(ft,{formView:n.get("form"),model:y,id:g==null?void 0:g.id,values:g==null?void 0:g.values,defaultValues:g==null?void 0:g.defaultValues,visible:f,onSubmitSucceed:()=>{u(!1)},parentContext:{...E==null?void 0:E(),...m},onCancel:()=>{u(!1)},readOnly:v,postSaveAction:L})]})},{useToken:pi}=p.theme,gi=t=>{const{ooui:r}=t;return e.jsx(me,{ooui:r,children:e.jsx(mi,{ooui:r})})},mi=t=>{const{token:r}=pi(),{ooui:n,value:s}=t,o=e.jsxs(e.Fragment,{children:[e.jsxs("span",{children:[n.label," "]}),n.tooltip&&e.jsx(p.Tooltip,{title:n.tooltip,children:e.jsx(B.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:r.colorPrimaryBg}})})]}),i=Je(n.icon);let a=s;n.selectionValues.size?a=n.selectionValues.get(s):Array.isArray(s)&&(a=s[1]);const c=e.jsx(p.Statistic,{title:o,prefix:i&&e.jsx(i,{}),suffix:n.suffix,value:a});return n.card?e.jsx(p.Card,{children:c}):c},yi=(t,r)=>{if(!r)return t;const n={};return Object.keys(t).forEach(s=>{if(r[s]===void 0)n[s]=t[s];else if(!(t[s]===!1&&r[s].type!=="boolean"))if(r[s].type==="boolean"){const o=t[s];o===0?n[s]=!1:o===1?n[s]=!0:n[s]=t[s]}else n[s]=t[s]}),n},lt=(t,r)=>yi(t,r),Zt=({source:t,target:r,fields:n})=>{const s={};return Object.keys(r).forEach(o=>{var a,c;if(n[o]?n[o].type==="one2many"||n[o].type==="many2many":!1){const h=JSON.stringify(t[o]),d=JSON.stringify(r[o]);if(h===d)return;(((c=(a=r[o])==null?void 0:a.items)==null?void 0:c.filter(u=>u.operation!=="original"))||[]).length>0&&(s[o]=r[o])}else if(Array.isArray(r[o]))if(t[o]===void 0)s[o]=r[o];else if(n[o].type==="many2one")if(Array.isArray(t[o])){const h=JSON.stringify(t[o]),d=JSON.stringify(r[o]);h!==d&&(s[o]=r[o])}else{const h=t[o],[d]=r[o];h!==d&&(s[o]=r[o])}else{const h=JSON.stringify(t[o]),d=JSON.stringify(r[o]);h!==d&&(s[o]=r[o])}else t[o]!==r[o]&&(r[o]===void 0?s[o]=null:s[o]=r[o])}),s},vi=({changedFields:t,formOoui:r,types:n})=>t.map(o=>{var a;const i=(a=r==null?void 0:r.findById(o))==null?void 0:a.type;return n.includes(i)}).some(o=>o===!0),wi=({fieldsDomain:t,fields:r})=>{const n={};return Object.keys(r).forEach(s=>{n[s]=r[s],t[s]&&(n[s].domain=t[s])}),n},Si=t=>{const r={};return!t||!Array.isArray(t)||(t==null?void 0:t.length)===0?{}:(t.forEach(n=>{(n==null?void 0:n[1])==="="&&(r[n[0]]=n[2])}),r)},Ci=({onChangeFieldActionArgs:t,values:r,parentValues:n={}})=>{const s={};return t.forEach(o=>{const i=o.split("");if(o==="True")s[o]=!0;else if(o==="False")s[o]=!1;else if(r[o])s[o]=r[o];else if(i[0]==="'"&&i[i.length-1]==="'"&&i.filter(a=>a==="'").length===2)s[o]=o.replace(/'/g,"");else if(i.includes("'"))s[o]=o;else if(o.indexOf("parent.")!==-1){const a=o.replace("parent.","");s[o]=n[a]||!1}else s[o]=!1}),s},Jr=t=>{const r={primary:[],secondary:[]};return t.forEach(n=>{!n||(r.primary=r.primary.concat(n.primary),r.secondary=r.secondary.concat(n.secondary))}),{primary:r.primary.filter(Zr),secondary:r.secondary.filter(Zr)}};function Zr(t,r,n){return n.indexOf(t)===r}const ct=({values:t,fields:r})=>{let n={};return Object.keys(t).forEach(s=>{const o=t[s];r[s]&&r[s].type==="many2one"&&o&&Array.isArray(o)&&o.length===2?n[s]=o[0]:n[s]=o}),n},Vt=t=>{let r=0;t=t.toString().padEnd(10,"0");for(let o=0;o<t.length;o++)r=t.charCodeAt(o)+((r<<5)-r);let n="#";for(let o=0;o<3;o++){var s=r>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n},bi=(t,r)=>t.replace(/\{([^}]+)\}/g,(n,s)=>r[s]!==void 0?r[s]:n),Xr=t=>e.jsx(me,{...t,children:e.jsx(Qr,{...t})}),Qr=t=>{const{ooui:r,value:n}=t;let s=n,o=n;if(r.selectionValues.size?s=r.selectionValues.get(n):Array.isArray(n)&&(o=n[0],s=n[1]),!n)return null;const i=r.colors==="auto"?Vt(o):r.colors[o]||Vt(o);return e.jsx(Rr,{color:i,children:s})},Rr=t=>{let{color:r}=t,n={};return!yr.isPresetStatusColor(t.color)&&!yr.isPresetColor(t.color)&&(n={color:r,borderColor:r,borderStyle:"solid",borderWidth:"1px"},r=`${r}20`),e.jsx(p.Tag,{...t,style:n,color:r,children:t.children})},en=t=>{const{ooui:r}=t;return e.jsx(me,{type:"array",...t,children:e.jsx(xi,{ooui:r})})},xi=t=>{const{value:r,ooui:n,onChange:s}=t,{items:o=[]}=r||{},i=o.filter(D=>D.operation!=="pendingRemove").map(D=>D.id),[a,c]=l.useState([]),[h,d]=l.useState(),[f,u]=l.useState(!1),{relation:g,context:w,readOnly:y,field:m}=n,v=l.useContext(De),{getContext:S}=v||{};tt.default(()=>{V()},[o]);const T=D=>{s==null||s({items:D})};async function V(){u(!0);let D=[];try{if(y&&(D=[["id","in",i]]),n.domain){const F=await K.getHandler().evalDomain({domain:n.domain,values:ct({fields:v==null?void 0:v.getFields(),values:v.getPlainValues()}),fields:v==null?void 0:v.getFields(),context:v.getContext()});D=[...D,...F]}const x=(await K.getHandler().search({model:g,params:D,fields:[m],context:{...S==null?void 0:S(),...w}})).map(F=>{const O=F[m];let C=O;return Array.isArray(O)&&(C=O[1]),{label:C,value:F.id}});c(x)}catch(L){d(L)}finally{u(!1)}}const b=D=>{const L=o.map(F=>D.includes(F.id)?F.operation=="pendingRemove"?{...F,operation:"pendingLink"}:F:{id:F.id,operation:"pendingRemove"}),x=L.map(F=>F.id);D.filter(F=>!x.includes(F)).map(F=>{L.push({id:F,operation:"pendingLink"})}),T(L)},E=D=>{const{label:L,closable:x,onClose:F}=D,O=P=>{P.preventDefault(),P.stopPropagation()},C=Vt(L);return e.jsx(Rr,{color:C,onMouseDown:O,closable:x,onClose:F,closeIcon:e.jsx("span",{style:{color:C},children:"X"}),children:L})};return h?e.jsx(p.Alert,{className:"mt-10",message:h,type:"error",banner:!0}):e.jsx(e.Fragment,{children:e.jsx("div",{className:"flex flex-row",children:e.jsx(p.Select,{mode:"multiple",value:a.length?i:[],tagRender:E,bordered:!y,disabled:y,options:a,onChange:b,loading:f})})})},Ti=t=>{switch(t){case"form":return ut;case"tree":return Tt;case"notebook":return kn;case"group":return or;case"label":return vt;case"char":return Gt;case"text":return Mn;case"button":return Ut;case"buttonGroup":return _r;case"selection":return jt;case"many2one":return Sn;case"boolean":return Ir;case"integer":return xt;case"float":return Qt;case"progressbar":return dn;case"date":return $n;case"datetime":return Ln;case"time":return Pn;case"one2many":case"one2many_list":case"many2many":return _n;case"separator":return Vn;case"reference":return Bn;case"binary":return Hn;case"image":return Ur;case"url":return Gn;case"email":return jn;case"float_time":return Dn;case"fiber_grid":return ii;case"timeline":return fi;case"indicator":return gi;case"tags":return en;case"tag":return Xr;case"multicheckbox":return Rn;case"markdown":return eo;case"radio":return to;case"switch":return ro;case"steps":return no;case"codeeditor":return oo;case"comments_timeline":return io;default:return}},Fi=t=>{const{ooui:r}=t,{type:n}=r,s=Ti(n);return s?Ke.default.createElement(s,t):null},Oi=({item:t,responsiveBehaviour:r})=>({gridColumnStart:"span "+(r?1:t.colspan)}),_i=({row:t,mustFillWithEmpties:r,numberOfColumns:n})=>{const s=[];let o=0;const i=a=>a+1===t.length&&o<n&&!r;return t.map((a,c)=>{if(o+=a.colspan,i(c)){const h=n-o;a.colspan=a.colspan+h,o+=h}if(s.push(a),i(c)){const h=n-o;for(let d=0;d<h;d+=1)s.push(new se.Label({string:""}))}}),s},Di=({row:t,numberOfColumns:r})=>t.map(n=>(n._mustExpand&&(n.colspan=r),n)),ki=(t,r)=>{const n=t.map(s=>s instanceof se.Label&&s.fieldForLabel||s instanceof se.Container?"auto":"1fr");if(n.length<r){const s=r-n.length;for(let o=0;o<s;o++)n.push("1fr")}return n.join(" ")},Mi=(t,r)=>{const n=r?"1fr":"auto",s="auto";let o="";for(let i=0;i<t;i++)o+=i%2?n:s,i+1<t&&(o+=" ");return o},Vi=t=>t.map(n=>n.reduce((s,o)=>s+o.colspan,0)).reduce((n,s)=>Math.max(n,s)),Xt=t=>{const{container:r,responsiveBehaviour:n}=t,{rows:s}=r;let{columns:o}=r;const i=Vi(s);i<o&&(o=i);let a=!1,c=[];const h=s.map((u,g)=>{const w=u.filter(v=>!v.invisible),y=Di({row:w,numberOfColumns:o});let m=y;return(g===0||!(u.length===1&&u.some(v=>v.type==="group")))&&(m=_i({row:y,numberOfColumns:o,mustFillWithEmpties:n}),c=c.concat(m)),m.map(v=>(v instanceof se.Label&&v.fieldForLabel&&(a=!0),e.jsx("div",{style:{...Oi({item:v,responsiveBehaviour:n}),minWidth:0},children:Fi({ooui:v,responsiveBehaviour:n})},v.key)))}),d=s.length===1?ki(c,o):Mi(o,a),f={display:"grid",gridTemplateColumns:n?"auto":d,gap:"1rem",minHeight:0,minWidth:0};return e.jsx("div",{style:f,children:h})},{confirm:Ei}=p.Modal,St=({onOk:t,onCancel:r,lang:n})=>{Ei({title:xe("unsavedChanges",n),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:xe("confirmCloseWithoutSave",n),okText:xe("closeWithoutSaving",n),onOk:t,onCancel:r,cancelText:xe("cancel",n)})},{error:Ii}=p.Modal,tn=t=>{Ii({title:xe("formHasErrors",t),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:xe("fillRequiredFields",t)})},{warning:Ai}=p.Modal,$i=(t,r,n)=>{Ai({title:t,icon:e.jsx(B.WarningOutlined,{}),centered:!0,content:r,onOk:n})},rn=Ke.default.createContext(null),Li=t=>{const{children:r,setTitle:n}=t;return e.jsx(rn.Provider,{value:{setTitle:n},children:r})},nn=t=>typeof t=="string"&&t==="true"||t==="false"?t==="true":t,Ni=(t,r)=>{const n=Wi(t),s=Ki(n),o=Yi(s,r);return[...Object.keys(o).map(c=>Pi(c,o[c],r))].reduce((c,h)=>Array.isArray(h[0])?c.concat(h):[...c,h],[])},Pi=(t,r,n)=>{var i;const s=t.split("#")[0],o=(i=n.findById(s))==null?void 0:i.type;if(o==="char"||o==="text"||o==="many2one"||o==="many2many"||o==="one2many")return[t,"ilike",r];if(o==="float"||o==="integer"||o==="float_time"||o==="progressbar"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r]}else if(o==="date"){const a=t.indexOf("#from")!==-1?">=":"<=";return[s,a,r.format("YYYY-MM-DD")]}else if(o==="datetime"){const a=[];return r[0]&&a.push([s,">=",r[0]]),r[1]&&a.push([s,"<=",r[1]]),a}else return o==="selection"?[t,"in",r.map(a=>nn(a))]:[t,"=",nn(r)]},Bi=t=>Object.keys(t).filter(r=>r.indexOf("#date")!==-1),Hi=t=>{const r={...t};return Object.keys(r).forEach(n=>(n.indexOf("#time")!==-1||n.indexOf("#date")!==-1)&&delete r[n]),r},Ki=t=>{const r={...Hi(t)};return Bi(t).forEach(s=>{const o=t[s],i=s.split("#")[0],a=i+"#time",c=t[a];let h,d;if(o[0]!==null&&(h=o[0].format("YYYY-MM-DD"),c&&c[0]!==null)){const u=c[0].format("HH:mm:ss");h=h+" "+u}if(o[1]!==null&&(d=o[1].format("YYYY-MM-DD"),c&&c[1]!==null)){const u=c[1].format("HH:mm:ss");d=d+" "+u}r[i+"#datetime"]=[h,d]}),r},Yi=(t,r)=>{const n=Object.keys(t).filter(o=>{const i=r.findById(o);return i&&i.type==="date"});let s={...t};return n.forEach(o=>{delete s[o],t[o][0]!==null&&(s[o+"#from"]=t[o][0]),t[o][1]!==null&&(s[o+"#to"]=t[o][1])}),s},Wi=t=>{const r={...t};return Object.keys(r).forEach(n=>(r[n]===void 0||r[n]===null||r[n]==="")&&delete r[n]),r},qi=t=>{const r={};return t.forEach(n=>{Array.isArray(n)&&n[0]?r[n[0]]=!0:r[n]=!0}),Object.keys(r)},Ct=(t,r)=>{const n=[...t],s=qi(t);return r.forEach(o=>{Array.isArray(o)&&o[0]?s.includes(o[0])||n.push(o):s.includes(o)||n.push(o)}),n},bt=80,on=t=>{const{model:r,setSearchTreeNameSearch:n,setSelectedRowItems:s,setSearchParams:o,setSearchVisible:i,setTreeIsLoading:a,nameSearch:c,searchNameGetDoneRef:h,context:d,setActionViewTotalItems:f,treeView:u,formView:g,sorter:w,setSorter:y,setCurrentItemIndex:m,setResultsActionView:v,resultsActionView:S,domain:T,currentId:V,limit:b,setLimit:E,searchParams:D=[],setSearchValues:L}=t,[x,F]=l.useState(!1),[O,C]=l.useState(!1),[P,I]=l.useState(),[_,$]=l.useState(1),[A,M]=l.useState(0),[N,k]=l.useState(),[W,z]=l.useState([]),[j,G]=l.useState(void 0),[Z,H]=l.useState(void 0),Y=l.useRef(b||bt),R=l.useRef([]),re=l.useCallback(ie=>{v==null||v([...ie]),z([...ie])},[]),ce=l.useCallback(()=>S||W,[S,W]),X=l.useCallback(async()=>{const ie=await K.getHandler().nameSearch({model:r,payload:c,limit:Y.current,attrs:T,context:d});if(k(ie.length),f==null||f(ie.length),ie.length>0){const Me=ie.map(ae=>ae==null?void 0:ae[0]),{colors:ve,status:Ve}=it(u),Ae={};ve&&(Ae.colors=ve),Ve&&(Ae.status=Ve);const te=await K.getHandler().readEvalUiObjects({model:r,ids:Me,arch:u==null?void 0:u.arch,fields:u.field_parent?{...u.fields,[u.field_parent]:{}}:u.fields,context:d,attrs:Ae}),Se=te[0];R.current=[...Se],G(Mt(te[1])),H(jr(te[1]));const _e=Se.map(ae=>ae.id),Ie=w!==void 0?at({resultsToSort:Se,sorter:w,fields:{...u.fields,...g.fields}}):[...R.current];re(Ie),_e.length>0?m==null||m(0):m==null||m(void 0)}else re([]),m==null||m(void 0);F(!1),h.current=!0},[re,h,c,r,d,T,u,g,w,m,f]),Q=l.useCallback(async ie=>{const{params:Me,newOffset:ve}=ie||{},Ve=Ct(Me||D,T),{colors:Ae,status:te}=it(u),Se={};Ae&&(Se.colors=Ae),te&&(Se.status=te);const{totalItems:_e,results:Ie,attrsEvaluated:ae}=await K.getHandler().searchForTree({params:Ve,limit:Y.current,offset:ve||A,model:r,fields:u.field_parent?{...u.fields,[u.field_parent]:{}}:u.fields,context:d,attrs:Se});G(Mt(ae)),H(jr(ae)),R.current=[...Ie];const fe=w!==void 0?at({resultsToSort:Ie,sorter:w,fields:{...u.fields,...g.fields}}):[...R.current];if(re(fe),S&&fe.length>0){const de=fe.findIndex(ze=>V===ze.id);de===-1?m==null||m(0):m==null||m(de)}else m==null||m(void 0);F(!1);const Be=await _e;k(Be),f==null||f(Be)},[m,S,re,V,r,d,T,u,g,w,f,b,A,D]),ue=l.useCallback(async ie=>{try{F(!0),a==null||a(!0),c&&!h.current?await X():await Q(ie)}catch(Me){I(Me.message)}finally{s==null||s([]),C(!1),a==null||a(!1)}},[d,V,T,g,b,r,c,A,S,h,f,m,re,I,C,F,a,w,u]),he=l.useCallback(ie=>{if(JSON.stringify(ie)===JSON.stringify(w))return;y==null||y(ie);const Me=ie!==void 0?at({resultsToSort:ce(),sorter:ie,fields:{...u.fields,...g.fields}}):[...R.current];re(Me)},[y,ce,u,g,re]),ke=l.useCallback(ie=>{const{params:Me,searchValues:ve,limit:Ve,offset:Ae}=ie;x||(n==null||n(void 0),s==null||s([]),L==null||L(ve),o==null||o(Me),i==null||i(!1),C(!0),I(void 0),$(1),Ve&&(Y.current=Ve,E==null||E(Ve)),Ae&&M(Ae),ue({params:Me,newOffset:Ae}))},[x,n,s,o,i,C,I,$,E,M,ue]),Fe=l.useCallback(ie=>{F(!0),$(ie),M((ie-1)*b)},[F,b,M,$]),Ee=l.useCallback(()=>{x||(n==null||n(void 0),o==null||o([]),L==null||L({}),I(void 0),M(0),$(1),E==null||E(b||bt))},[x,n,o,I,M,$,E,b]),Pe=l.useCallback(async ie=>{const Me=ie[(u==null?void 0:u.field_parent)||"child_id"],ve=await K.getHandler().readObjects({model:r,ids:Me,fields:u.field_parent?{...u.fields,[u.field_parent]:{}}:u.fields,context:d});return re([...ce(),...ve]),Gr(it(u),ve)},[u,r,d,ce,re]),we=l.useCallback(async()=>await K.getHandler().searchAllIds({params:Ct(D,T),model:r,context:d,totalItems:N}),[r,d,N,D,T]);return{submit:ke,clear:Ee,fetchResults:ue,tableRefreshing:x,searchFilterLoading:O,searchError:P,page:_,offset:A,limit:b,getResults:ce,requestPageChange:Fe,changeSort:he,fetchChildrenForRecord:Pe,colorsForResults:j,statusForResults:Z,totalItems:N,getAllIds:we}},qe=Ke.default.createContext(null),Ui=t=>{const{children:r,currentView:n,title:s,setCurrentView:o,availableViews:i,formRef:a,searchTreeRef:c,onNewClicked:h,currentId:d,setCurrentId:f,setResults:u,results:g,currentItemIndex:w,setCurrentItemIndex:y,currentModel:m,sorter:v,setSorter:S,totalItems:T,setTotalItems:V,setSelectedRowItems:b,selectedRowItems:E,searchTreeNameSearch:D,setSearchTreeNameSearch:L,goToResourceId:x,limit:F}=t,[O,C]=l.useState(!1),[P,I]=l.useState(!1),[_,$]=l.useState(!1),[A,M]=l.useState(!0),[N,k]=l.useState(!0),[W,z]=l.useState([]),[j,G]=l.useState(!1),[Z,H]=l.useState([]),[Y,R]=l.useState(!1),[re,ce]=l.useState(!0),[X,Q]=l.useState(),[ue,he]=l.useState({}),[ke,Fe]=l.useState(F!==void 0?F:bt),[Ee,Pe]=l.useState(s);l.useEffect(()=>{g&&g.length>0&&!w&&(y==null||y(0),f==null||f(g[0].id))},[g]),l.useEffect(()=>{Fe(F!==void 0?F:bt)},[F]),l.useEffect(()=>{i.length===1?Q(i[0]):i.length>1&&Q(i.filter(ie=>ie.view_id!==n.view_id)[0])},[i]),l.useEffect(()=>{(X==null?void 0:X.view_id)===n.view_id&&i.length>1&&Q(i.filter(ie=>ie.view_id!==n.view_id)[0])},[n]);const we=async()=>{var ie;return await((ie=a.current)==null?void 0:ie.submitForm())};return e.jsx(qe.Provider,{value:{title:Ee,currentView:n,setCurrentView:o,availableViews:i,formIsSaving:O,setFormIsSaving:C,formHasChanges:P,setFormHasChanges:I,formRef:a,searchTreeRef:c,onFormSave:we,onNewClicked:h,currentId:d,setCurrentId:f,currentItemIndex:w,setCurrentItemIndex:y,results:g,setResults:u,currentModel:m,removingItem:_,setRemovingItem:$,formIsLoading:A,setFormIsLoading:M,treeIsLoading:N,setTreeIsLoading:k,attachments:W,setAttachments:z,selectedRowItems:E,setSelectedRowItems:b,duplicatingItem:j,setDuplicatingItem:G,setSearchParams:H,searchParams:Z,searchVisible:Y,setSearchVisible:R,sorter:v,setSorter:S,totalItems:T,setTotalItems:V,searchTreeNameSearch:D,setSearchTreeNameSearch:L,setGraphIsLoading:ce,graphIsLoading:re,previousView:X,setPreviousView:Q,goToResourceId:x,searchValues:ue,setSearchValues:he,limit:ke,setLimit:Fe,setTitle:Pe},children:r})},Xe=Ke.default.createContext(null),Gi=t=>{const{children:r,openAction:n,openRelate:s,openDefaultActionForModel:o,openShortcut:i,activeKey:a,onChangeTab:c,onRemoveTab:h,tabs:d}=t,[f,u]=l.useState(),[g,w]=l.useState();return e.jsx(Xe.Provider,{value:{openAction:n,openRelate:s,openDefaultActionForModel:o,activeKey:a,openShortcut:i,onChangeTab:c,onRemoveTab:h,tabs:d,currentId:g,currentView:f,setCurrentId:w,setCurrentView:u},children:r})},dt=Ke.default.createContext(null),sn=async t=>{var r;for(let n=0;n<t.length;n++)await((r=t==null?void 0:t[n])==null?void 0:r.call(t))},ji=(t,r)=>{const{children:n,globalValues:s={}}=t,o=l.useRef(),i=l.useRef(),[a,c]=l.useState(!1),h=l.useContext(Xe),{openAction:d}=h||{},f=l.useRef([]),{t:u}=l.useContext(ge);l.useImperativeHandle(r,()=>({openActionModal:b}));const[g,w]=l.useState(!1),[y,m]=l.useState({context:{}});async function v(L){const{reportData:x,fields:F,values:O,context:C={}}=L,{context:P,model:I,datas:_={},report_name:$,type:A}=x;if(A!=="ir.actions.report.xml"){Ne(`${A} action not supported`);return}const{ids:M}=_||{};let N=M||[];const k=typeof P=="string"?se.parseContext({context:P,fields:F,values:O}):P;try{const W=await K.getHandler().createReport({model:I,name:$,datas:_,ids:N,context:{...C,...k}});c(!0),i.current=!0,o.current=setInterval(()=>{S(W)},1e3)}catch(W){i.current=!1,clearInterval(o.current),Ne(W),c(!1)}}async function S(L){let x;try{if(x=await K.getHandler().getReport({id:L}),x.state&&i.current===!0){i.current=!1,clearInterval(o.current),c(!1);const F=await st(x.result);kt(x.result,F.mime)}}catch(F){i.current=!1,clearInterval(o.current),c(!1),Ne(F.exception||F)}}async function T({actionData:L,fields:x,values:F,context:O,onRefreshParentValues:C}){const{type:P}=L;if(f.current.push(C),P==="ir.actions.report.xml")return await v({reportData:L,fields:x,values:F,context:O});if(P==="ir.actions.act_window")return await V({actionData:L,fields:x,values:F,context:O});if(P==="ir.actions.act_url")window.open(bi(L.url,{...F,context:O}),"_blank");else return Ne(`${P} action not supported`),{}}async function V({actionData:L,fields:x={},values:F={},context:O={}}){var $;let C=L;L.res_model||(C=(await K.getHandler().readObjects({model:"ir.actions.act_window",ids:[parseInt(L.id)],context:O}))[0]);const P=typeof(C==null?void 0:C.context)=="string"?se.parseContext({context:C.context,fields:x,values:{...F,...s}}):C.context,I={...O,...P};let _=[];if(C.domain&&(_=await K.getHandler().evalDomain({domain:C.domain,values:ct({fields:x,values:{...F,...s}}),fields:x,context:I})),C.target==="new"){const A=await K.getHandler().getView({model:C.res_model,type:"form",id:(($=C==null?void 0:C.view_id)==null?void 0:$[0])||void 0,context:I});return b({domain:_,model:C.res_model,formView:A,context:I}),{}}else{const{initialView:A,views:M}=await zi({model:C.res_model,context:I,view_mode:C.view_mode,views:C.views});return d==null||d({target:"current",context:I,domain:_,model:C.res_model,views:M,title:C.name,initialView:A,action_id:C.id,action_type:C.type}),{closeParent:!0}}}function b({domain:L,model:x,formView:F,context:O,actionData:C}){g?E({domain:L,model:x,formView:F,context:O,actionData:C}):(m({domain:L,model:x,context:O,formView:F,actionData:C}),w(!0))}async function E({domain:L,model:x,formView:F,context:O,actionData:C}){m({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0}),w(!1),await new Promise(P=>setTimeout(P,300)),m({domain:L,model:x,context:O,formView:F,actionData:C}),w(!0)}async function D(){sn(f.current),f.current=[],w(!1),m({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})}return e.jsx(e.Fragment,{children:e.jsx(dt.Provider,{value:{processAction:T,globalValues:s},children:e.jsxs(e.Fragment,{children:[n,e.jsx(p.Modal,{title:u("generatingReport"),open:a,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(p.Spin,{})}),e.jsx(ft,{buttonModal:!0,parentContext:y.context,model:y.model,formView:y.formView,visible:g,onSubmitSucceed:D,onCancel:()=>{sn(f.current),f.current=[],w(!1),m({domain:void 0,model:void 0,context:{},formView:void 0,actionData:void 0})},showFooter:!1,actionDomain:y.domain,isMenuAction:(y==null?void 0:y.actionData)!==void 0,actionData:y==null?void 0:y.actionData})]})})})};async function zi({views:t,view_mode:r,model:n,context:s,view_id:o}){const i=[];let a;if(t)for(const c of t){const h=await K.getHandler().getView({model:n,type:c[1],id:c[0],context:s});i.push([h.view_id,c[1]])}else{const c=r.split(",");for(const h of c){const d=await K.getHandler().getView({model:n,type:h,context:s});i.push([d.view_id,h])}}if(t&&t.length>0){const[c,h]=t[0];a={id:c,type:h}}else if(o)a={id:o,type:r.split(",")[0]};else{const c=r.split(",")[0],[h]=i.find(([d,f])=>f===c);a={id:h,type:c}}return{views:i,initialView:a}}const an=l.forwardRef(ji),Ji=({error:t,className:r})=>{let n,s="error";if(typeof t=="string"&&t.indexOf(" -- ")!==-1&&t.indexOf(`
18
18
 
19
- `)!==-1){const{message:o,type:i,title:a}=Dr(t);n=e.jsx(Ht.Interweave,{content:`${a}<br />${o}`}),s=i}else n=t.message?JSON.stringify(t.message):JSON.stringify(t);return e.jsx(p.Alert,{className:r,message:n,type:s,banner:!0})},Zi=800;function Xi(t,r){const{model:n,id:s,onCancel:o,onSubmitSucceed:i,showFooter:a=!1,getDataFromAction:c=!1,onFieldsChange:h,onSubmitError:d,readOnly:f=!1,mustClearAfterSave:u=!1,submitMode:g="api",values:w,formView:y,postSaveAction:m,insideButtonModal:v=!1,parentContext:C={},actionDomain:F,visible:E=!0,rootForm:S=!1,defaultValues:V,forcedValues:k={},parentWidth:L}=t,{t:x,lang:T}=l.useContext(ge),[b,_]=l.useState(!1),[N,A]=l.useState(),[O,I]=l.useState(),[$]=p.Form.useForm(),[M,B]=l.useState(),[D,W]=l.useState(),j=l.useContext(tn),[z,X]=l.useState(),[q,P]=l.useState(!1),Y=l.useRef(),te=l.useRef({}),re=l.useRef({}),ne=l.useRef(!1),Q=l.useRef(!1),Z=l.useRef(!1),we=(L!==void 0?L:z)<Zi,Ee=l.useContext(Ve),{activeId:Oe,getPlainValues:Ie}=Ee||{},Ne=l.useContext(We),{setFormIsSaving:ae=void 0,setFormHasChanges:de=void 0,setCurrentId:$e=void 0,setFormIsLoading:ve=void 0,setAttachments:De=void 0,title:Ye=void 0,setTitle:ee=void 0}=(S?Ne:{})||{},Fe=l.useContext(dt),{processAction:_e,globalValues:ke}=Fe||{};l.useImperativeHandle(r,()=>({submitForm:Bt,getFields:Je,getValues:Ae,getPlainValues:R,getContext:Ce,fetchValues:nt,cancelUnsavedChanges:co,clearAndReload:()=>{Y.current=void 0,I(void 0),lo()}})),l.useEffect(()=>{if(A(void 0),!(!n&&!y)){if(!E){Y.current=void 0,I(void 0);return}(s===void 0&&D||s!==void 0&&D&&s<0)&&(Y.current=void 0,I(void 0)),lo()}},[s,n,w,y,E]),l.useEffect(()=>{q&&(fr({elementHasLostFocus:!0}),P(!1))},[q]);const ce=(U,J,oe,se)=>{de==null||de(!1),ae==null||ae(!1),i==null||i(U,J,oe,se),$e==null||$e(U)},he=()=>{ae==null||ae(!1),o==null||o()},Pe=U=>{ae==null||ae(!1),d==null||d(U)};function fe(){return s||Y.current}function Je(){return D}function Ae(){const U={...Me(D),...Se()};for(const J in U)U[J]===void 0&&delete U[J];return U}function R(){const U=Ae(),J=Je();let oe={};return Object.keys(U).forEach(se=>{const pe=U[se];J[se]&&J[se].type==="many2one"&&pe&&Array.isArray(pe)&&pe.length===2?oe[se]=pe[0]:J[se]&&(J[se].type==="one2many"||J[se].type==="many2many")&&pe&&pe.items?oe[se]=pe.items.filter(qe=>qe.operation!=="pendingRemove").map(qe=>qe.id):oe[se]=pe}),oe}function le(){const U={...Me(D)};for(const J in U)U[J]===void 0&&delete U[J];return U}function Ce(){return{...C,...O==null?void 0:O.context}}function ye(){return fe()?{active_id:fe(),active_ids:[fe()]}:{}}function Se(){return{id:fe(),active_id:fe(),active_ids:[fe()],parent_id:Oe,...ke}}const xe=async U=>{const J=fe()?O==null?void 0:O.context:{};return await K.getHandler().defaultGet({model:n,fields:U,context:{...C,...J},extraValues:V})},Te=()=>Object.keys(Jt({source:te.current,target:Me(D),fields:D})).length!==0,Me=U=>{const J=$.getFieldsValue(!0);return lt(J,U)},Ze=(U,J)=>{Tt({values:{...lt($.getFieldsValue(!0),D),[U]:J},fields:D,reset:!1})},rt=U=>$.getFieldsValue(!0)[U];async function ao(){try{return await $.validateFields(),!1}catch{return p.message.error(x("fillRequiredFields")),!0}}const lo=async()=>{A(void 0),ve==null||ve(!0);let U;try{y?U={arch:y.arch,fields:y.fields}:U=await Mc();const{fields:J,arch:oe}=U;W(J),B(oe),await nt({fields:J,arch:oe})}catch(J){A(J!=null&&J.message?J.message+J.stack:J),ve==null||ve(!1)}},nt=async U=>{let J,oe,se,pe;ve==null||ve(!0),A(void 0),U!=null&&U.fields?(oe=U.fields,se=U.arch):(oe=D,se=M),w&&(U==null?void 0:U.forceRefresh)!==!0?J=w:{values:J,defaultGetCalled:pe}=await Vc({fields:oe,arch:se}),F&&(J={...Ci(F),...J}),te.current=lt(J,oe),Tt({values:J,fields:oe,reset:!0,isDefaultGet:pe}),Ft({fields:oe,arch:se,values:J}),ve==null||ve(!1),de==null||de(!1),pe&&P(!0)},co=async()=>new Promise(async U=>{Te()?wt({lang:T,onOk:()=>{he==null||he(),U(!0)},onCancel:()=>{U(!1)}}):(he==null||he(),U(!0))}),Mc=async()=>{if(c){const U=await K.getHandler().getActionStringForModel(n);return(await K.getHandler().getViewsForAction({action:U,context:C})).views.get("form")}return await K.getHandler().getView({model:n,type:"form",context:C})},Tt=({values:U,fields:J,reset:oe,isDefaultGet:se=!1})=>{const qe={...oe?{}:$.getFieldsValue(!0),...U},pr=lt(qe,J),Wc=Object.keys(J).map(gr=>{const qc=pr[gr]!==void 0?pr[gr]:void 0;return{name:gr,touched:!1,value:qc}});se||(re.current=pr),$.setFields(Wc)},Vc=async({fields:U,arch:J})=>{let oe={},se=!1;if(fe()){oe=(await K.getHandler().readObjects({model:n,ids:[fe()],fields:U,context:C}))[0];const pe=await K.getHandler().search({params:[["res_model","=",n],["res_id","=",fe()]],fields:["id","name"],context:Ce(),model:"ir.attachment"});De==null||De(pe)}else De==null||De([]),oe=await xe(U),se=!0;return{values:oe,defaultGetCalled:se}},uo=async U=>{const{callOnSubmitSucceed:J=!0}=U||{};if(fe()){const oe=Jt({source:te.current,target:Me(D),fields:D});await K.getHandler().update({model:n,id:fe(),values:{...oe,...k},fields:D,context:{...C,...O==null?void 0:O.context}}),te.current=Me(D)}else{const oe=Me(D),se=await K.getHandler().create({model:n,values:{...oe,...k},fields:D,context:{...C,...O==null?void 0:O.context}});Y.current=se,te.current=oe}m&&await m([fe()]),!v&&J&&(ce==null||ce(fe(),Ae(),le()))},Ec=async U=>{const{callOnSubmitSucceed:J=!0}=U||{};!v&&J&&(ce==null||ce(fe(),Ae(),le()))},Bt=async U=>{let J=!1;const{callOnSubmitSucceed:oe=!0}=U||{};if(Q.current=!0,A(void 0),Z.current&&!Te()&&fe()&&oe){Q.current=!1,de==null||de(!1),ce==null||ce(fe(),Ae(),le(),Z.current),Z.current=!1;const se=fe();return u&&(Y.current=void 0,Tt({values:{},fields:D,reset:!0})),{succeed:!0,id:se}}if(!Te()&&fe()&&oe)return Q.current=!1,de==null||de(!1),he==null||he(),{succeed:!0,id:fe()};if(await ao())return Q.current=!1,en(T),{succeed:!1,id:fe()};_(!0),ae==null||ae(!0);try{g==="api"?await uo(U):await Ec(U),u&&(Y.current=void 0,Tt({values:{},fields:D,reset:!0})),await nt({forceRefresh:!0}),J=!0,p.message.success(x("savedRegisters"))}catch(se){Q.current=!1,_(!1),ae==null||ae(!1),Pe==null||Pe(se),p.message.error(x("errorWhileSavingForm")),A(se!=null&&se.message?se.message:se)}finally{Q.current=!1,ae==null||ae(!1),_(!1)}return{succeed:J,id:fe()}},Ft=({fields:U,arch:J,values:oe,operationInProgress:se=!1})=>{var qe;const pe=new ie.Form(U);pe.parse(J,{readOnly:f||se,values:ui({...oe,...Se()},U)}),I(pe),pe.string&&pe.string!==Ye&&(ee==null||ee(pe.string)),j&&pe.string&&((qe=j.setTitle)==null||qe.call(j,pe.string))},fr=async({elementHasLostFocus:U=!1})=>{if(Q.current)return;const J=Jt({source:re.current,target:Me(D),fields:D}),oe=Object.keys(J);if(oe.length!==0){if(vi({changedFields:oe,formOoui:O,types:["text","codeeditor","email","url","char","float","float_time","integer","many2one"]})&&U!==!0)return;{const se=lt($.getFieldsValue(!0),D);re.current=se,h==null||h(se),de==null||de(!0),$c(oe)}}},Ic=ni(fr,100),$c=async U=>{try{for(let J=0;J<U.length;J+=1){const oe=U[J];await Ac(oe)}}catch(J){Le(J)}},Ac=async U=>{const J=O==null?void 0:O.onChangeFields[U];if(!J){Ft({fields:D,arch:M,values:Me(D)});return}const oe=Si({values:{...Me(D),context:{...C,...O==null?void 0:O.context}},parentValues:Ie==null?void 0:Ie(),onChangeFieldActionArgs:J.args}),se=await K.getHandler().executeOnChange({model:n,action:J.method,ids:fe()?[fe()]:[],payload:oe,fields:D});if(se.value){const pe={...Me(D),...se.value};Ft({fields:D,arch:M,values:pe}),Tt({values:pe,fields:D,reset:!1})}if(se.warning&&se.warning.title&&se.warning.message&&!ne.current){const{title:pe,message:qe}=se.warning;ne.current=!0,Ai(pe,qe,()=>{ne.current=!1})}if(se.domain&&Object.keys(se.domain).length>0){const pe=wi({fieldsDomain:se.domain,fields:D});Ft({fields:pe,arch:M,values:Me(pe)}),W(pe)}};async function Lc({action:U,context:J}){const oe=await K.getHandler().execute({model:n,action:U,payload:[fe()],context:{...O==null?void 0:O.context,...C,...J}});if(typeof oe=="object"&&oe!==null&&Object.keys(oe).length===0&&v)ce==null||ce(fe(),Ae(),le());else if(oe.type&&oe.type==="ir.actions.act_window_close")ce==null||ce(fe(),Ae(),le());else if(oe.type){let se={};oe.context&&(se=ie.parseContext({context:oe.context,fields:D,values:Ae()})),await fo({actionData:oe,context:{...J,...se}})}else await nt({forceRefresh:!0})}async function Nc({action:U}){const J=await K.getHandler().executeWorkflow({model:n,action:U,payload:fe()});J.type&&J.type==="ir.actions.act_window_close"?ce==null||ce(fe(),Ae(),le()):await nt({forceRefresh:!0})}async function Pc({action:U,context:J}){const oe=(await K.getHandler().readObjects({model:"ir.actions.actions",ids:[parseInt(U)],context:C}))[0];await fo({actionData:oe,context:J})}async function fo({actionData:U,context:J}){const{closeParent:oe}=await(_e==null?void 0:_e({actionData:U,fields:D,values:Ae(),context:{...C,...O==null?void 0:O.context,...J},onRefreshParentValues:()=>{nt({forceRefresh:!0})}}))||{};!S&&oe&&(ce==null||ce(fe(),Ae(),le()))}function Bc(){fr({elementHasLostFocus:!0})}function hr(U){Ft({fields:D,arch:M,values:Me(D),operationInProgress:U})}async function Hc({type:U,action:J,context:oe}){if(U==="cancel"){he==null||he();return}if(await ao()){en(T);return}let se=!1;try{(Te()||fe()===void 0)&&(se=!0,hr(!0),g==="2many"?(await uo({callOnSubmitSucceed:!1}),Z.current=!0):await Bt({callOnSubmitSucceed:!1}));const pe=Z.current?ye():{},qe={...oe,...pe};U==="object"?await Lc({action:J,context:qe}):U==="workflow"?await Nc({action:J}):U==="action"&&await Pc({action:J,context:qe}),se&&hr(!1)}catch(pe){se&&hr(!1),Le(pe)}}const Kc=()=>!O&&!N?e.jsx(p.Spin,{}):!n&&!y||!E?null:e.jsx(e.Fragment,{children:e.jsx(Ko,{getValues:Ae,getPlainValues:R,getFields:Je,domain:F,activeId:s,activeModel:n,setFieldValue:Ze,getFieldValue:rt,executeButtonAction:Hc,getContext:Ce,submitForm:Bt,fetchValues:nt,formHasChanges:Te,elementHasLostFocus:Bc,children:e.jsx(p.Form,{form:$,onFieldsChange:()=>{Ic({elementHasLostFocus:!1})},component:!1,children:O&&e.jsx(Zt,{container:O.container,responsiveBehaviour:we})})})}),Yc=()=>e.jsxs(e.Fragment,{children:[e.jsx(p.Divider,{}),e.jsx(p.Row,{justify:"end",children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(H.CloseOutlined,{}),disabled:b,onClick:async()=>{await co()},children:"Cancel"}),e.jsx(p.Button,{disabled:b||f,loading:b,icon:e.jsx(H.CheckOutlined,{}),onClick:async()=>{await Bt()},type:"primary",children:"OK"})]})})]});return E?e.jsx(Yt.default,{bounds:!0,onResize:U=>{var J;X((J=U.bounds)==null?void 0:J.width)},children:({measureRef:U})=>e.jsxs("div",{className:"pb-2",ref:U,children:[N&&e.jsx(Ji,{className:"mt-5 mb-10",error:N}),Kc(),a&&Yc()]})}):null}const ut=l.forwardRef(Xi),ft=t=>{const{visible:r,id:n,title:s,buttonModal:o=!1,onCancel:i,isMenuAction:a=!1,actionData:c,...h}=t,{modalWidth:d}=Ot(),[f,u]=l.useState(s),[g,w]=l.useState(!1),[y,m]=l.useState();l.useEffect(()=>{a&&v()},[c,a]);async function v(){const{action_id:S,res_id:V,action_type:k,view_id:L}=c,x=await K.getHandler().isShortcutFavorite({action_id:S,action_type:k,view_id:L,res_id:V||!1});w(x!==!1),x!==!1&&m(x)}async function C(){if(g&&y)await K.getHandler().removeFavourite({shortcut_id:y});else{const{action_id:S,res_id:V,action_type:k,view_id:L}=c;await K.getHandler().addFavourite({action_id:S,action_type:k,view_id:L,res_id:V||!1})}w(!g)}function F(){return e.jsxs(p.Row,{align:"middle",children:[e.jsx(p.Col,{children:e.jsx(p.Button,{type:g?"primary":"default",icon:g?e.jsx(H.StarFilled,{style:{color:"white"}}):e.jsx(H.StarOutlined,{}),style:{width:30},onClick:C})}),e.jsx(p.Col,{style:{paddingLeft:10},children:f})]})}const E=d*.95;return e.jsx(Li,{setTitle:u,children:e.jsx(p.Modal,{title:a?F():f,centered:!0,width:d,open:r,footer:null,destroyOnClose:!0,onCancel:i,maskClosable:!1,children:e.jsx(ut,{id:n,showFooter:!0,insideButtonModal:o,onCancel:i,parentWidth:E,...h})})})},Qi=t=>e.jsx(me,{...t,layout:"vertical",children:e.jsx(p.DatePicker.RangePicker,{allowEmpty:[!0,!0],format:"DD/MM/YYYY"})}),Ri=t=>{const{ooui:r,showLabel:n=!1}=t,{label:s,id:o}=r,i=[new ie.Field({name:o+"#date",label:""}),new ie.Field({name:o+"#time",label:""})];return e.jsxs(e.Fragment,{children:[n&&e.jsx(yt,{ooui:new ie.Label({name:o+"_label",string:s,help:r.tooltip,fieldForLabel:o}),align:"left"}),e.jsxs(p.Row,{align:"bottom",className:"p-0",children:[e.jsx(p.Col,{className:"mr-2",children:e.jsx(me,{...t,ooui:i[0],showLabel:!1,children:e.jsx(p.DatePicker.RangePicker,{className:"w-60",allowEmpty:[!0,!0],format:"DD/MM/YYYY"})})}),e.jsx(p.Col,{children:e.jsx(me,{...t,ooui:i[1],showLabel:!1,children:e.jsx(p.TimePicker.RangePicker,{className:"w-60",allowEmpty:[!0,!0],format:"HH:mm"})})})]})]})},{useToken:ea}=p.theme,Xt=t=>{const{ooui:r}=t,{id:n,decimalDigits:s,readOnly:o,required:i}=r,{token:a}=ea(),c=i&&!o?{backgroundColor:a.colorPrimaryBg}:void 0,h=l.useContext(Ve),{elementHasLostFocus:d}=h||{};return e.jsx(me,{required:i,type:"number",...t,children:e.jsx(p.InputNumber,{disabled:o,className:"w-full",style:c,id:n,precision:s,formatter:f=>`${f}`.replace(/[^0-9\.\-]+/g,""),defaultValue:0,decimalSeparator:".",onBlur:d})})},{useToken:ta}=p.theme,St=t=>{const{ooui:r,onChange:n}=t,{id:s,readOnly:o,required:i}=r,{token:a}=ta(),c=i&&!o?{backgroundColor:a.colorPrimaryBg}:void 0,h=l.useContext(Ve),{elementHasLostFocus:d}=h||{};return e.jsx(me,{required:i,type:"number",...t,children:e.jsx(p.InputNumber,{id:s,className:"w-full ",disabled:o,formatter:f=>f===void 0?"":typeof f=="string"&&!isNaN(parseFloat(f))?`${Math.trunc(parseFloat(f))}`.replace(/[^0-9\-]+/g,""):typeof f=="number"?`${Math.trunc(f)}`.replace(/[^0-9\-]+/g,""):"",onChange:f=>{const u=f;n==null||n(u)},defaultValue:0,onBlur:d,precision:0,style:c})})};function ra(t){const{ooui:r,showLabel:n}=t,{id:s,label:o,tooltip:i}=r,a=r instanceof ie.Integer?St:Xt,c=h=>e.jsx(a,{ooui:{...r,id:s+h,label:"",tooltip:void 0},layout:"vertical"});return e.jsxs(e.Fragment,{children:[n&&e.jsx(yt,{ooui:new ie.Label({name:s+"_label",string:o,help:i,fieldForLabel:s}),align:"left"}),e.jsxs(p.Row,{align:"bottom",className:"mt-0",wrap:!1,children:[e.jsx(p.Col,{children:c("#from")}),e.jsx(p.Col,{className:"pb-1",children:e.jsx("span",{className:"pl-2 pr-2 h-full",children:" - "})}),e.jsx(p.Col,{children:c("#to")})]})]})}const{defaultAlgorithm:na,defaultSeed:oa}=p.theme,sa=na(oa),{Option:ia}=p.Select,aa=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(la,{...t})})},la=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,required:a}=r,c=Array.from(o.entries()),h=c&&c.length&&c.filter(u=>{const[g]=u;return s?!s.includes(g):!0}).map(u=>{const[g,w]=u;return e.jsx(ia,{value:w,children:w},g)}),d=a&&!i?ca:p.Select;function f(u){const g=u.map(w=>{const y=c.find(([m,v])=>w===v);return y&&y[0]});if(g.length===0){n==null||n(void 0);return}n==null||n(g)}return e.jsx(d,{disabled:i,onChange:f,value:s==null?void 0:s.map(u=>o.get(u)),mode:"multiple",showArrow:!0,children:h})},ca=mt.default(p.Select)`
19
+ `)!==-1){const{message:o,type:i,title:a}=kr(t);n=e.jsx(Kt.Interweave,{content:`${a}<br />${o}`}),s=i}else n=t.message?JSON.stringify(t.message):JSON.stringify(t);return e.jsx(p.Alert,{className:r,message:n,type:s,banner:!0})},Zi=800;function Xi(t,r){const{model:n,id:s,onCancel:o,onSubmitSucceed:i,showFooter:a=!1,getDataFromAction:c=!1,onFieldsChange:h,onSubmitError:d,readOnly:f=!1,mustClearAfterSave:u=!1,submitMode:g="api",values:w,formView:y,postSaveAction:m,insideButtonModal:v=!1,parentContext:S={},actionDomain:T,visible:V=!0,rootForm:b=!1,defaultValues:E,forcedValues:D={},parentWidth:L}=t,{t:x,lang:F}=l.useContext(ge),[O,C]=l.useState(!1),[P,I]=l.useState(),[_,$]=l.useState(),[A]=p.Form.useForm(),[M,N]=l.useState(),[k,W]=l.useState(),z=l.useContext(rn),[j,G]=l.useState(),[Z,H]=l.useState(!1),Y=l.useRef(),R=l.useRef({}),re=l.useRef({}),ce=l.useRef(!1),X=l.useRef(!1),Q=l.useRef(!1),he=(L!==void 0?L:j)<Zi,ke=l.useContext(De),{activeId:Fe,getPlainValues:Ee}=ke||{},Pe=l.useContext(qe),{setFormIsSaving:we=void 0,setFormHasChanges:ie=void 0,setCurrentId:Me=void 0,setFormIsLoading:ve=void 0,setAttachments:Ve=void 0,title:Ae=void 0,setTitle:te=void 0}=(b?Pe:{})||{},Se=l.useContext(dt),{processAction:_e,globalValues:Ie}=Se||{};l.useImperativeHandle(r,()=>({submitForm:Ht,getFields:ze,getValues:$e,getPlainValues:ee,getContext:Ce,fetchValues:nt,cancelUnsavedChanges:co,clearAndReload:()=>{Y.current=void 0,$(void 0),lo()}})),l.useEffect(()=>{if(I(void 0),!(!n&&!y)){if(!V){Y.current=void 0,$(void 0);return}(s===void 0&&k||s!==void 0&&k&&s<0)&&(Y.current=void 0,$(void 0)),lo()}},[s,n,w,y,V]),l.useEffect(()=>{Z&&(hr({elementHasLostFocus:!0}),H(!1))},[Z]);const ae=(q,J,ne,oe)=>{ie==null||ie(!1),we==null||we(!1),i==null||i(q,J,ne,oe),Me==null||Me(q)},fe=()=>{we==null||we(!1),o==null||o()},Be=q=>{we==null||we(!1),d==null||d(q)};function de(){return s||Y.current}function ze(){return k}function $e(){const q={...He(k),...be()};for(const J in q)q[J]===void 0&&delete q[J];return q}function ee(){const q=$e(),J=ze();let ne={};return Object.keys(q).forEach(oe=>{const pe=q[oe];J[oe]&&J[oe].type==="many2one"&&pe&&Array.isArray(pe)&&pe.length===2?ne[oe]=pe[0]:J[oe]&&(J[oe].type==="one2many"||J[oe].type==="many2many")&&pe&&pe.items?ne[oe]=pe.items.filter(Ge=>Ge.operation!=="pendingRemove").map(Ge=>Ge.id):ne[oe]=pe}),ne}function le(){const q={...He(k)};for(const J in q)q[J]===void 0&&delete q[J];return q}function Ce(){return{...S,..._==null?void 0:_.context}}function ye(){return de()?{active_id:de(),active_ids:[de()]}:{}}function be(){return{id:de(),active_id:de(),active_ids:[de()],parent_id:Fe,...Ie}}const Te=async q=>{const J=de()?_==null?void 0:_.context:{};return await K.getHandler().defaultGet({model:n,fields:q,context:{...S,...J},extraValues:E})},Ue=()=>Object.keys(Zt({source:R.current,target:He(k),fields:k})).length!==0,He=q=>{const J=A.getFieldsValue(!0);return lt(J,q)},Oe=(q,J)=>{Ot({values:{...lt(A.getFieldsValue(!0),k),[q]:J},fields:k,reset:!1})},Le=q=>A.getFieldsValue(!0)[q];async function mt(){try{return await A.validateFields(),!1}catch{return p.message.error(x("fillRequiredFields")),!0}}const lo=async()=>{I(void 0),ve==null||ve(!0);let q;try{y?q={arch:y.arch,fields:y.fields}:q=await Mc();const{fields:J,arch:ne}=q;W(J),N(ne),await nt({fields:J,arch:ne})}catch(J){I(J!=null&&J.message?J.message+J.stack:J),ve==null||ve(!1)}},nt=async q=>{let J,ne,oe,pe;ve==null||ve(!0),I(void 0),q!=null&&q.fields?(ne=q.fields,oe=q.arch):(ne=k,oe=M),w&&(q==null?void 0:q.forceRefresh)!==!0?J=w:{values:J,defaultGetCalled:pe}=await Vc({fields:ne,arch:oe}),T&&(J={...Si(T),...J}),R.current=lt(J,ne),Ot({values:J,fields:ne,reset:!0,isDefaultGet:pe}),_t({fields:ne,arch:oe,values:J}),ve==null||ve(!1),ie==null||ie(!1),pe&&H(!0)},co=async()=>new Promise(async q=>{Ue()?St({lang:F,onOk:()=>{fe==null||fe(),q(!0)},onCancel:()=>{q(!1)}}):(fe==null||fe(),q(!0))}),Mc=async()=>{if(c){const q=await K.getHandler().getActionStringForModel(n);return(await K.getHandler().getViewsForAction({action:q,context:S})).views.get("form")}return await K.getHandler().getView({model:n,type:"form",context:S})},Ot=({values:q,fields:J,reset:ne,isDefaultGet:oe=!1})=>{const Ge={...ne?{}:A.getFieldsValue(!0),...q},gr=lt(Ge,J),Wc=Object.keys(J).map(mr=>{const qc=gr[mr]!==void 0?gr[mr]:void 0;return{name:mr,touched:!1,value:qc}});oe||(re.current=gr),A.setFields(Wc)},Vc=async({fields:q,arch:J})=>{let ne={},oe=!1;if(de()){ne=(await K.getHandler().readObjects({model:n,ids:[de()],fields:q,context:S}))[0];const pe=await K.getHandler().search({params:[["res_model","=",n],["res_id","=",de()]],fields:["id","name"],context:Ce(),model:"ir.attachment"});Ve==null||Ve(pe)}else Ve==null||Ve([]),ne=await Te(q),oe=!0;return{values:ne,defaultGetCalled:oe}},uo=async q=>{const{callOnSubmitSucceed:J=!0}=q||{};if(de()){const ne=Zt({source:R.current,target:He(k),fields:k});await K.getHandler().update({model:n,id:de(),values:{...ne,...D},fields:k,context:{...S,..._==null?void 0:_.context}}),R.current=He(k)}else{const ne=He(k),oe=await K.getHandler().create({model:n,values:{...ne,...D},fields:k,context:{...S,..._==null?void 0:_.context}});Y.current=oe,R.current=ne}m&&await m([de()]),!v&&J&&(ae==null||ae(de(),$e(),le()))},Ec=async q=>{const{callOnSubmitSucceed:J=!0}=q||{};!v&&J&&(ae==null||ae(de(),$e(),le()))},Ht=async q=>{let J=!1;const{callOnSubmitSucceed:ne=!0}=q||{};if(X.current=!0,I(void 0),Q.current&&!Ue()&&de()&&ne){X.current=!1,ie==null||ie(!1),ae==null||ae(de(),$e(),le(),Q.current),Q.current=!1;const oe=de();return u&&(Y.current=void 0,Ot({values:{},fields:k,reset:!0})),{succeed:!0,id:oe}}if(!Ue()&&de()&&ne)return X.current=!1,ie==null||ie(!1),fe==null||fe(),{succeed:!0,id:de()};if(await mt())return X.current=!1,tn(F),{succeed:!1,id:de()};C(!0),we==null||we(!0);try{g==="api"?await uo(q):await Ec(q),u&&(Y.current=void 0,Ot({values:{},fields:k,reset:!0})),await nt({forceRefresh:!0}),J=!0,p.message.success(x("savedRegisters"))}catch(oe){X.current=!1,C(!1),we==null||we(!1),Be==null||Be(oe),p.message.error(x("errorWhileSavingForm")),I(oe!=null&&oe.message?oe.message:oe)}finally{X.current=!1,we==null||we(!1),C(!1)}return{succeed:J,id:de()}},_t=({fields:q,arch:J,values:ne,operationInProgress:oe=!1})=>{var Ge;const pe=new se.Form(q);pe.parse(J,{readOnly:f||oe,values:ui({...ne,...be()},q)}),$(pe),pe.string&&pe.string!==Ae&&(te==null||te(pe.string)),z&&pe.string&&((Ge=z.setTitle)==null||Ge.call(z,pe.string))},hr=async({elementHasLostFocus:q=!1})=>{if(X.current)return;const J=Zt({source:re.current,target:He(k),fields:k}),ne=Object.keys(J);if(ne.length!==0){if(vi({changedFields:ne,formOoui:_,types:["text","codeeditor","email","url","char","float","float_time","integer","many2one"]})&&q!==!0)return;{const oe=lt(A.getFieldsValue(!0),k);re.current=oe,h==null||h(oe),ie==null||ie(!0),Ac(ne)}}},Ic=ni(hr,100),Ac=async q=>{try{for(let J=0;J<q.length;J+=1){const ne=q[J];await $c(ne)}}catch(J){Ne(J)}},$c=async q=>{const J=_==null?void 0:_.onChangeFields[q];if(!J){_t({fields:k,arch:M,values:He(k)});return}const ne=Ci({values:{...He(k),context:{...S,..._==null?void 0:_.context}},parentValues:Ee==null?void 0:Ee(),onChangeFieldActionArgs:J.args}),oe=await K.getHandler().executeOnChange({model:n,action:J.method,ids:de()?[de()]:[],payload:ne,fields:k});if(oe.value){const pe={...He(k),...oe.value};_t({fields:k,arch:M,values:pe}),Ot({values:pe,fields:k,reset:!1})}if(oe.warning&&oe.warning.title&&oe.warning.message&&!ce.current){const{title:pe,message:Ge}=oe.warning;ce.current=!0,$i(pe,Ge,()=>{ce.current=!1})}if(oe.domain&&Object.keys(oe.domain).length>0){const pe=wi({fieldsDomain:oe.domain,fields:k});_t({fields:pe,arch:M,values:He(pe)}),W(pe)}};async function Lc({action:q,context:J}){const ne=await K.getHandler().execute({model:n,action:q,payload:[de()],context:{..._==null?void 0:_.context,...S,...J}});if(typeof ne=="object"&&ne!==null&&Object.keys(ne).length===0&&v)ae==null||ae(de(),$e(),le());else if(ne.type&&ne.type==="ir.actions.act_window_close")ae==null||ae(de(),$e(),le());else if(ne.type){let oe={};ne.context&&(oe=se.parseContext({context:ne.context,fields:k,values:$e()})),await fo({actionData:ne,context:{...J,...oe}})}else await nt({forceRefresh:!0})}async function Nc({action:q}){const J=await K.getHandler().executeWorkflow({model:n,action:q,payload:de()});J.type&&J.type==="ir.actions.act_window_close"?ae==null||ae(de(),$e(),le()):await nt({forceRefresh:!0})}async function Pc({action:q,context:J}){const ne=(await K.getHandler().readObjects({model:"ir.actions.actions",ids:[parseInt(q)],context:S}))[0];await fo({actionData:ne,context:J})}async function fo({actionData:q,context:J}){const{closeParent:ne}=await(_e==null?void 0:_e({actionData:q,fields:k,values:$e(),context:{...S,..._==null?void 0:_.context,...J},onRefreshParentValues:()=>{nt({forceRefresh:!0})}}))||{};!b&&ne&&(ae==null||ae(de(),$e(),le()))}function Bc(){hr({elementHasLostFocus:!0})}function pr(q){_t({fields:k,arch:M,values:He(k),operationInProgress:q})}async function Hc({type:q,action:J,context:ne}){if(q==="cancel"){fe==null||fe();return}if(await mt()){tn(F);return}let oe=!1;try{(Ue()||de()===void 0)&&(oe=!0,pr(!0),g==="2many"?(await uo({callOnSubmitSucceed:!1}),Q.current=!0):await Ht({callOnSubmitSucceed:!1}));const pe=Q.current?ye():{},Ge={...ne,...pe};q==="object"?await Lc({action:J,context:Ge}):q==="workflow"?await Nc({action:J}):q==="action"&&await Pc({action:J,context:Ge}),oe&&pr(!1)}catch(pe){oe&&pr(!1),Ne(pe)}}const Kc=()=>!_&&!P?e.jsx(p.Spin,{}):!n&&!y||!V?null:e.jsx(e.Fragment,{children:e.jsx(Ko,{getValues:$e,getPlainValues:ee,getFields:ze,domain:T,activeId:s,activeModel:n,setFieldValue:Oe,getFieldValue:Le,executeButtonAction:Hc,getContext:Ce,submitForm:Ht,fetchValues:nt,formHasChanges:Ue,elementHasLostFocus:Bc,children:e.jsx(p.Form,{form:A,onFieldsChange:()=>{Ic({elementHasLostFocus:!1})},component:!1,children:_&&e.jsx(Xt,{container:_.container,responsiveBehaviour:he})})})}),Yc=()=>e.jsxs(e.Fragment,{children:[e.jsx(p.Divider,{}),e.jsx(p.Row,{justify:"end",children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(B.CloseOutlined,{}),disabled:O,onClick:async()=>{await co()},children:"Cancel"}),e.jsx(p.Button,{disabled:O||f,loading:O,icon:e.jsx(B.CheckOutlined,{}),onClick:async()=>{await Ht()},type:"primary",children:"OK"})]})})]});return V?e.jsx(Wt.default,{bounds:!0,onResize:q=>{var J;G((J=q.bounds)==null?void 0:J.width)},children:({measureRef:q})=>e.jsxs("div",{className:"pb-2",ref:q,children:[P&&e.jsx(Ji,{className:"mt-5 mb-10",error:P}),Kc(),a&&Yc()]})}):null}const ut=l.forwardRef(Xi),ft=t=>{const{visible:r,id:n,title:s,buttonModal:o=!1,onCancel:i,isMenuAction:a=!1,actionData:c,...h}=t,{modalWidth:d}=Dt(),[f,u]=l.useState(s),[g,w]=l.useState(!1),[y,m]=l.useState();l.useEffect(()=>{a&&v()},[c,a]);async function v(){const{action_id:b,res_id:E,action_type:D,view_id:L}=c,x=await K.getHandler().isShortcutFavorite({action_id:b,action_type:D,view_id:L,res_id:E||!1});w(x!==!1),x!==!1&&m(x)}async function S(){if(g&&y)await K.getHandler().removeFavourite({shortcut_id:y});else{const{action_id:b,res_id:E,action_type:D,view_id:L}=c;await K.getHandler().addFavourite({action_id:b,action_type:D,view_id:L,res_id:E||!1})}w(!g)}function T(){return e.jsxs(p.Row,{align:"middle",children:[e.jsx(p.Col,{children:e.jsx(p.Button,{type:g?"primary":"default",icon:g?e.jsx(B.StarFilled,{style:{color:"white"}}):e.jsx(B.StarOutlined,{}),style:{width:30},onClick:S})}),e.jsx(p.Col,{style:{paddingLeft:10},children:f})]})}const V=d*.95;return e.jsx(Li,{setTitle:u,children:e.jsx(p.Modal,{title:a?T():f,centered:!0,width:d,open:r,footer:null,destroyOnClose:!0,onCancel:i,maskClosable:!1,children:e.jsx(ut,{id:n,showFooter:!0,insideButtonModal:o,onCancel:i,parentWidth:V,...h})})})},Qi=t=>e.jsx(me,{...t,layout:"vertical",children:e.jsx(p.DatePicker.RangePicker,{allowEmpty:[!0,!0],format:"DD/MM/YYYY"})}),Ri=t=>{const{ooui:r,showLabel:n=!1}=t,{label:s,id:o}=r,i=[new se.Field({name:o+"#date",label:""}),new se.Field({name:o+"#time",label:""})];return e.jsxs(e.Fragment,{children:[n&&e.jsx(vt,{ooui:new se.Label({name:o+"_label",string:s,help:r.tooltip,fieldForLabel:o}),align:"left"}),e.jsxs(p.Row,{align:"bottom",className:"p-0",children:[e.jsx(p.Col,{className:"mr-2",children:e.jsx(me,{...t,ooui:i[0],showLabel:!1,children:e.jsx(p.DatePicker.RangePicker,{className:"w-60",allowEmpty:[!0,!0],format:"DD/MM/YYYY"})})}),e.jsx(p.Col,{children:e.jsx(me,{...t,ooui:i[1],showLabel:!1,children:e.jsx(p.TimePicker.RangePicker,{className:"w-60",allowEmpty:[!0,!0],format:"HH:mm"})})})]})]})},{useToken:ea}=p.theme,Qt=t=>{const{ooui:r}=t,{id:n,decimalDigits:s,readOnly:o,required:i}=r,{token:a}=ea(),c=i&&!o?{backgroundColor:a.colorPrimaryBg}:void 0,h=l.useContext(De),{elementHasLostFocus:d}=h||{};return e.jsx(me,{required:i,type:"number",...t,children:e.jsx(p.InputNumber,{disabled:o,className:"w-full",style:c,id:n,precision:s,formatter:f=>`${f}`.replace(/[^0-9\.\-]+/g,""),defaultValue:0,decimalSeparator:".",onBlur:d})})},{useToken:ta}=p.theme,xt=t=>{const{ooui:r,onChange:n}=t,{id:s,readOnly:o,required:i}=r,{token:a}=ta(),c=i&&!o?{backgroundColor:a.colorPrimaryBg}:void 0,h=l.useContext(De),{elementHasLostFocus:d}=h||{};return e.jsx(me,{required:i,type:"number",...t,children:e.jsx(p.InputNumber,{id:s,className:"w-full ",disabled:o,formatter:f=>f===void 0?"":typeof f=="string"&&!isNaN(parseFloat(f))?`${Math.trunc(parseFloat(f))}`.replace(/[^0-9\-]+/g,""):typeof f=="number"?`${Math.trunc(f)}`.replace(/[^0-9\-]+/g,""):"",onChange:f=>{const u=f;n==null||n(u)},defaultValue:0,onBlur:d,precision:0,style:c})})};function ra(t){const{ooui:r,showLabel:n}=t,{id:s,label:o,tooltip:i}=r,a=r instanceof se.Integer?xt:Qt,c=h=>e.jsx(a,{ooui:{...r,id:s+h,label:"",tooltip:void 0},layout:"vertical"});return e.jsxs(e.Fragment,{children:[n&&e.jsx(vt,{ooui:new se.Label({name:s+"_label",string:o,help:i,fieldForLabel:s}),align:"left"}),e.jsxs(p.Row,{align:"bottom",className:"mt-0",wrap:!1,children:[e.jsx(p.Col,{children:c("#from")}),e.jsx(p.Col,{className:"pb-1",children:e.jsx("span",{className:"pl-2 pr-2 h-full",children:" - "})}),e.jsx(p.Col,{children:c("#to")})]})]})}const{defaultAlgorithm:na,defaultSeed:oa}=p.theme,sa=na(oa),{Option:ia}=p.Select,aa=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(la,{...t})})},la=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,required:a}=r,c=Array.from(o.entries()),h=c&&c.length&&c.filter(u=>{const[g]=u;return s?!s.includes(g):!0}).map(u=>{const[g,w]=u;return e.jsx(ia,{value:w,children:w},g)}),d=a&&!i?ca:p.Select;function f(u){const g=u.map(w=>{const y=c.find(([m,v])=>w===v);return y&&y[0]});if(g.length===0){n==null||n(void 0);return}n==null||n(g)}return e.jsx(d,{disabled:i,onChange:f,value:s==null?void 0:s.map(u=>o.get(u)),mode:"multiple",showArrow:!0,children:h})},ca=yt.default(p.Select)`
20
20
  &.ant-select:not(.ant-select-customize-input) .ant-select-selector {
21
21
  background-color: ${sa.colorPrimaryBg};
22
22
  }
23
- `;function da(t){const{field:r}=t;r.readOnly=!1,r.required=!1;const{t:n}=l.useContext(ge);switch(r.type){case ie.SearchFieldTypes.boolean:{const o=new ie.Selection({name:r._id,string:r.label,selection:[["true",n("true")],["false",n("false")]]});return e.jsx(Gt,{layout:"vertical",ooui:o,showLabel:!0})}case ie.SearchFieldTypes.float:case ie.SearchFieldTypes.progressbar:case ie.SearchFieldTypes.float_time:case ie.SearchFieldTypes.integer:return e.jsx(ra,{ooui:r,showLabel:!0});case ie.SearchFieldTypes.date:return e.jsx(Qi,{ooui:r,layout:"vertical",showLabel:!0});case ie.SearchFieldTypes.datetime:return e.jsx(Ri,{ooui:r,layout:"vertical",showLabel:!0});case ie.SearchFieldTypes.selection:return e.jsx(aa,{layout:"vertical",ooui:r,showLabel:!0});default:return e.jsx(Ut,{ooui:r,layout:"vertical",showLabel:!0,isSearchField:!0})}}function ua(t){const{onAdvancedFilterToggle:r,advancedFilter:n,onClear:s,isSearching:o}=t,{t:i}=l.useContext(ge);return e.jsxs(p.Row,{children:[e.jsx(p.Col,{span:12,className:"text-left pt-4 pb-2 pl-2",children:e.jsxs("a",{className:"text-xs",onClick:r,children:[n?e.jsx(H.UpOutlined,{className:"pr-1"}):e.jsx(H.DownOutlined,{className:"pr-1"}),i(n?"simple_search":"advanced_search")]})}),e.jsxs(p.Col,{span:12,className:"text-right pb-2",children:[e.jsx(p.Button,{className:"mr-5",icon:e.jsx(H.ClearOutlined,{}),onClick:s,children:i("clear")}),e.jsx(p.Button,{icon:e.jsx(H.SearchOutlined,{}),loading:o,className:"mr-2",type:"primary",htmlType:"submit",children:i("search")})]})]})}function fa(t){const{onLimitChange:r}=t,{t:n}=l.useContext(ge),s=new ie.Integer({name:"limit"}),o=new ie.Integer({name:"offset"});return e.jsxs("div",{className:"pl-2 pt-2",children:[e.jsx(p.Row,{children:n("parameters")},"count_params"),e.jsxs(p.Space,{align:"center",children:[n("limit")+" :",e.jsx(St,{ooui:s,onChange:i=>{r==null||r(i)}}),n("first")+" :",e.jsx(St,{ooui:o})]})]})}const{useToken:ha}=p.theme;function Qt(t){const{fields:r,searchFields:n={primary:[],secondary:[]},onClear:s,onSubmit:o,isSearching:i,offset:a,limit:c,onLimitChange:h,searchVisible:d,setSearchFilterHeight:f,searchError:u,searchValues:g,showLimitOptions:w=!0}=t,[y,m]=l.useState(),[v,C]=l.useState(),[F,E]=l.useState(!1),S=l.useRef(),{token:V}=ha(),[k]=p.Form.useForm();l.useEffect(()=>{k.setFieldsValue(g)},[g]);const L=()=>{if(!v)return;const b=F?v:y,_=b==null?void 0:b.rows;return _==null?void 0:_.map((N,A)=>e.jsx(p.Row,{children:N.map((O,I)=>e.jsx(p.Col,{xs:24,className:"p-2",xl:6,children:e.jsx(da,{field:O})},I))},A))};et.default(()=>{E(!1),S.current=new ie.SearchFilter(n,r),S.current.parse(),m(S.current._simpleSearchContainer),C(S.current._advancedSearchContainer)},[r,n]);const x=L(),T=b=>{var O;const{limit:_,offset:N}=b;delete b.offset,delete b.limit;const A=Ni(b,(O=S.current)==null?void 0:O._advancedSearchContainer);o({params:A,offset:N,limit:_,searchValues:b})};return e.jsx(Yt.default,{bounds:!0,onResize:b=>{var _;f==null||f((_=b.bounds)==null?void 0:_.height)},children:({measureRef:b})=>e.jsx("div",{ref:b,children:e.jsxs("div",{style:{display:d?"block":"none"},children:[e.jsxs(p.Form,{className:"p-3 shadow-md",style:{borderRadius:V.borderRadius},form:k,onFinish:T,initialValues:{offset:a,limit:c},children:[x,F&&w&&e.jsx(fa,{onLimitChange:h}),e.jsx(ua,{advancedFilter:F,onAdvancedFilterToggle:()=>{E(!F)},onClear:()=>{k.resetFields(),s()},isSearching:i})]}),u&&e.jsx(p.Alert,{className:"mt-10",message:u,type:"error",banner:!0}),e.jsx("div",{className:"pb-5"})]})})})}const an=(t,r="14px -apple-system")=>{const s=document.createElement("canvas").getContext("2d");s.font=r;const o=s.measureText(t);return Math.round((o.width+80)*1.5)},pa=(t,r,n=500)=>{if(t.length===0)return{columns:t};const s=t.map(i=>Object.assign(i,{width:an(i.title)}));r.map(i=>{s.map((a,c)=>{const h=a.width,d=i[a.key]||"";let f=an(d);f<h&&(f=h),f>n&&(f=n),s[c].width=f})});const o=s.map(i=>i.width).reduce((i,a)=>i+a);return{columns:s,source:r,tableWidth:o}};function ga(t){if(!!t)try{if(t.includes(":")){const r=t.trim().split(":");return Math.round((parseInt(r[0])+parseInt(r[1])/60)*1e4)/1e4}else return parseFloat(t.trim())}catch{return 0}}function ln(t){if(t===void 0)return;let r,n=Math.floor(Math.abs(t)),s=Math.round(Math.abs(t)%1*100)/100;s>=1?(n=n+1,s=0):s=s*60;const o=n.toLocaleString("en-US",{minimumIntegerDigits:2,maximumFractionDigits:0,useGrouping:!1}),i=s.toLocaleString("en-US",{minimumIntegerDigits:2,maximumFractionDigits:0,useGrouping:!1});return r=`${o}:${i}`,t<0&&(r="-"+r),r}const cn=t=>e.jsx(me,{...t,children:e.jsx(dn,{})}),dn=({value:t})=>{const r=`${(t||0).toLocaleString("en-US",{minimumIntegerDigits:1,maximumFractionDigits:4,useGrouping:!1})}%`;return e.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center"},children:[e.jsx(ma,{percent:t}),e.jsx("div",{style:{flexGrow:1,paddingLeft:10},children:r})]})},ma=mt.default(p.Progress)`
23
+ `;function da(t){const{field:r}=t;r.readOnly=!1,r.required=!1;const{t:n}=l.useContext(ge);switch(r.type){case se.SearchFieldTypes.boolean:{const o=new se.Selection({name:r._id,string:r.label,selection:[["true",n("true")],["false",n("false")]]});return e.jsx(jt,{layout:"vertical",ooui:o,showLabel:!0})}case se.SearchFieldTypes.float:case se.SearchFieldTypes.progressbar:case se.SearchFieldTypes.float_time:case se.SearchFieldTypes.integer:return e.jsx(ra,{ooui:r,showLabel:!0});case se.SearchFieldTypes.date:return e.jsx(Qi,{ooui:r,layout:"vertical",showLabel:!0});case se.SearchFieldTypes.datetime:return e.jsx(Ri,{ooui:r,layout:"vertical",showLabel:!0});case se.SearchFieldTypes.selection:return e.jsx(aa,{layout:"vertical",ooui:r,showLabel:!0});default:return e.jsx(Gt,{ooui:r,layout:"vertical",showLabel:!0,isSearchField:!0})}}function ua(t){const{onAdvancedFilterToggle:r,advancedFilter:n,onClear:s,isSearching:o}=t,{t:i}=l.useContext(ge);return e.jsxs(p.Row,{children:[e.jsx(p.Col,{span:12,className:"text-left pt-4 pb-2 pl-2",children:e.jsxs("a",{className:"text-xs",onClick:r,children:[n?e.jsx(B.UpOutlined,{className:"pr-1"}):e.jsx(B.DownOutlined,{className:"pr-1"}),i(n?"simple_search":"advanced_search")]})}),e.jsxs(p.Col,{span:12,className:"text-right pb-2",children:[e.jsx(p.Button,{className:"mr-5",icon:e.jsx(B.ClearOutlined,{}),onClick:s,children:i("clear")}),e.jsx(p.Button,{icon:e.jsx(B.SearchOutlined,{}),loading:o,className:"mr-2",type:"primary",htmlType:"submit",children:i("search")})]})]})}function fa(t){const{onLimitChange:r}=t,{t:n}=l.useContext(ge),s=new se.Integer({name:"limit"}),o=new se.Integer({name:"offset"});return e.jsxs("div",{className:"pl-2 pt-2",children:[e.jsx(p.Row,{children:n("parameters")},"count_params"),e.jsxs(p.Space,{align:"center",children:[n("limit")+" :",e.jsx(xt,{ooui:s,onChange:i=>{r==null||r(i)}}),n("first")+" :",e.jsx(xt,{ooui:o})]})]})}const{useToken:ha}=p.theme;function Rt(t){const{fields:r,searchFields:n={primary:[],secondary:[]},onClear:s,onSubmit:o,isSearching:i,offset:a,limit:c,onLimitChange:h,searchVisible:d,setSearchFilterHeight:f,searchError:u,searchValues:g,showLimitOptions:w=!0}=t,[y,m]=l.useState(),[v,S]=l.useState(),[T,V]=l.useState(!1),b=l.useRef(),{token:E}=ha(),[D]=p.Form.useForm();l.useEffect(()=>{D.setFieldsValue(g)},[g]);const L=()=>{if(!v)return;const O=T?v:y,C=O==null?void 0:O.rows;return C==null?void 0:C.map((P,I)=>e.jsx(p.Row,{children:P.map((_,$)=>e.jsx(p.Col,{xs:24,className:"p-2",xl:6,children:e.jsx(da,{field:_})},$))},I))};tt.default(()=>{V(!1),b.current=new se.SearchFilter(n,r),b.current.parse(),m(b.current._simpleSearchContainer),S(b.current._advancedSearchContainer)},[r,n]);const x=L(),F=O=>{var _;const{limit:C,offset:P}=O;delete O.offset,delete O.limit;const I=Ni(O,(_=b.current)==null?void 0:_._advancedSearchContainer);o({params:I,offset:P,limit:C,searchValues:O})};return e.jsx(Wt.default,{bounds:!0,onResize:O=>{var C;f==null||f((C=O.bounds)==null?void 0:C.height)},children:({measureRef:O})=>e.jsx("div",{ref:O,children:e.jsxs("div",{style:{display:d?"block":"none"},children:[e.jsxs(p.Form,{className:"p-3 shadow-md",style:{borderRadius:E.borderRadius},form:D,onFinish:F,initialValues:{offset:a,limit:c},children:[x,T&&w&&e.jsx(fa,{onLimitChange:h}),e.jsx(ua,{advancedFilter:T,onAdvancedFilterToggle:()=>{V(!T)},onClear:()=>{D.resetFields(),s()},isSearching:i})]}),u&&e.jsx(p.Alert,{className:"mt-10",message:u,type:"error",banner:!0}),e.jsx("div",{className:"pb-5"})]})})})}const ln=(t,r="14px -apple-system")=>{const s=document.createElement("canvas").getContext("2d");s.font=r;const o=s.measureText(t);return Math.round((o.width+80)*1.5)},pa=(t,r,n=500)=>{if(t.length===0)return{columns:t};const s=t.map(i=>Object.assign(i,{width:ln(i.title)}));r.map(i=>{s.map((a,c)=>{const h=a.width,d=i[a.key]||"";let f=ln(d);f<h&&(f=h),f>n&&(f=n),s[c].width=f})});const o=s.map(i=>i.width).reduce((i,a)=>i+a);return{columns:s,source:r,tableWidth:o}};function ga(t){if(!!t)try{if(t.includes(":")){const r=t.trim().split(":");return Math.round((parseInt(r[0])+parseInt(r[1])/60)*1e4)/1e4}else return parseFloat(t.trim())}catch{return 0}}function cn(t){if(t===void 0)return;let r,n=Math.floor(Math.abs(t)),s=Math.round(Math.abs(t)%1*100)/100;s>=1?(n=n+1,s=0):s=s*60;const o=n.toLocaleString("en-US",{minimumIntegerDigits:2,maximumFractionDigits:0,useGrouping:!1}),i=s.toLocaleString("en-US",{minimumIntegerDigits:2,maximumFractionDigits:0,useGrouping:!1});return r=`${o}:${i}`,t<0&&(r="-"+r),r}const dn=t=>e.jsx(me,{...t,children:e.jsx(un,{})}),un=({value:t})=>{const r=`${(t||0).toLocaleString("en-US",{minimumIntegerDigits:1,maximumFractionDigits:4,useGrouping:!1})}%`;return e.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center"},children:[e.jsx(ma,{percent:t}),e.jsx("div",{style:{flexGrow:1,paddingLeft:10},children:r})]})},ma=yt.default(p.Progress)`
24
24
  .ant-progress-outer {
25
25
  margin-right: 0px;
26
26
  padding-right: 0px;
@@ -28,11 +28,11 @@
28
28
  .ant-progress-text {
29
29
  display: none;
30
30
  }
31
- `,un=t=>{const{visible:r,onCancel:n,items:s=[],onItemClicked:o}=t,{t:i}=l.useContext(ge);return e.jsx(p.Modal,{title:i("selectAction"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:n,maskClosable:!1,children:e.jsx(p.Space,{direction:"vertical",className:"w-full",children:s.map(a=>e.jsx(p.Button,{className:"w-full",onClick:()=>{o(a)},children:a.name}))})})},Rt=t=>{var x,T;const{id:r,model:n,context:s={}}=t,[o,i]=l.useState(!1),[a,c]=l.useState(!1),[h,d]=l.useState(!1),[f,u]=l.useState(),[g,w]=l.useState(),{t:y}=l.useContext(ge),m=l.useContext(ze),{openRelate:v}=m||{},C=l.useContext(dt),{processAction:F}=C||{};if(!r)return null;async function E(){var b,_,N,A,O;d(!0);try{const I=await K.getHandler().getView({model:n,type:"form",context:s});u(I);let $=[];const{toolbar:M}=I;(b=M.action)==null||b.filter(D=>D.hasOwnProperty("context")).map(D=>$.push(...ie.parseContextFields(D.context))),(_=M.action)==null||_.filter(D=>D.hasOwnProperty("domain")).map(D=>$.push(...ie.parseDomainFields(D.domain))),(N=M.relate)==null||N.filter(D=>D.hasOwnProperty("context")).map(D=>$.push(...ie.parseContextFields(D.context))),(A=M.relate)==null||A.filter(D=>D.hasOwnProperty("domain")).map(D=>$.push(...ie.parseDomainFields(D.domain))),(O=M.print)==null||O.filter(D=>D.hasOwnProperty("context")).map(D=>$.push(...ie.parseContextFields(D.context))),$=$.filter(D=>Object.keys(I.fields).indexOf(D)>-1);let B={};$.length>0&&(B=(await K.getHandler().readObjects({model:n,ids:[r],fieldsToRetrieve:$,context:s}))[0]),B={...lt(B,$),active_id:r},w(B),d(!1)}catch(I){d(!1),Le(I);return}}function S(){var _;if(h)return e.jsx(p.Menu,{children:e.jsx("div",{style:{padding:15},children:e.jsx(p.Spin,{})})});if(!f||!f.toolbar)return e.jsx(p.Menu,{});const b=(_=f==null?void 0:f.toolbar)==null?void 0:_.relate.map(N=>e.jsx(p.Menu.Item,{children:N.name},N.id));return e.jsx(p.Menu,{onClick:V,children:[e.jsx(p.Menu.Item,{disabled:!f.toolbar.action||f.toolbar.action.length===0,icon:e.jsx(H.ThunderboltOutlined,{}),children:y("action")},"action"),e.jsx(p.Menu.Item,{disabled:!f.toolbar.print||f.toolbar.print.length===0,icon:e.jsx(H.PrinterOutlined,{}),children:y("report")},"print"),e.jsx(p.Menu.Divider,{}),e.jsx(p.Menu.ItemGroup,{title:e.jsxs(e.Fragment,{children:[e.jsx(H.EnterOutlined,{})," ",e.jsxs("span",{children:[" ",y("related")]})]}),children:b})]})}function V(b){if(b.key==="action")i(!0);else if(b.key==="print")c(!0);else{const _=f.toolbar.relate.find(N=>N.id===parseInt(b.key));if(!_)return;v({relateData:_,values:g,fields:f.fields,action_id:_.id,action_type:_.type})}}function k(b){i(!1),F==null||F({actionData:b,values:g,fields:f.fields,context:{active_id:r,active_ids:[r]}})}function L(b){c(!1),F==null||F({actionData:{...b,datas:{...b.datas||{},ids:[r]}},values:g,fields:f.fields})}return e.jsxs(e.Fragment,{children:[e.jsx(p.Dropdown,{overlay:S(),trigger:["click"],children:e.jsx(H.RightCircleOutlined,{style:{color:"rgba(0,0,0,.45)"},onClick:b=>{b.preventDefault(),E()}})}),e.jsx(un,{visible:o,items:(x=f==null?void 0:f.toolbar)==null?void 0:x.action,onItemClicked:k,onCancel:()=>i(!1)}),e.jsx(un,{visible:a,items:(T=f==null?void 0:f.toolbar)==null?void 0:T.print,onItemClicked:L,onCancel:()=>c(!1)})]})},ya=t=>{const{m2oField:r}=t;return r?e.jsxs(p.Space,{children:[e.jsx(e.Fragment,{children:r.value}),e.jsx(Rt,{id:r.id,model:r.model})]}):e.jsx(e.Fragment,{})},va=t=>{const{value:r,context:n,selectionValues:s}=t,[o,i]=l.useState(),[a,c]=l.useState(!1),[h,d]=r?r.split(","):[],f=parseInt(d),u=l.useCallback(async()=>{if(!r||r&&o)return;c(!0);const w=await K.getHandler().execute({action:"name_get",payload:[f],model:h,context:n});i(w[0][1]),c(!1)},[r,o]);if(l.useEffect(()=>{u()},[r]),!r&&!a)return e.jsx(e.Fragment,{});if(a)return e.jsx(H.LoadingOutlined,{});const g=s.get(h);return e.jsxs(p.Space,{children:[e.jsx(e.Fragment,{children:`${g}:`}),e.jsx(e.Fragment,{children:o}),e.jsx(Rt,{id:f,model:h})]})};var fn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Qe,function(){var n=1e3,s=6e4,o=36e5,i="millisecond",a="second",c="minute",h="hour",d="day",f="week",u="month",g="quarter",w="year",y="date",m="Invalid Date",v=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,C=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,F={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(A){var O=["th","st","nd","rd"],I=A%100;return"["+A+(O[(I-20)%10]||O[I]||O[0])+"]"}},E=function(A,O,I){var $=String(A);return!$||$.length>=O?A:""+Array(O+1-$.length).join(I)+A},S={s:E,z:function(A){var O=-A.utcOffset(),I=Math.abs(O),$=Math.floor(I/60),M=I%60;return(O<=0?"+":"-")+E($,2,"0")+":"+E(M,2,"0")},m:function A(O,I){if(O.date()<I.date())return-A(I,O);var $=12*(I.year()-O.year())+(I.month()-O.month()),M=O.clone().add($,u),B=I-M<0,D=O.clone().add($+(B?-1:1),u);return+(-($+(I-M)/(B?M-D:D-M))||0)},a:function(A){return A<0?Math.ceil(A)||0:Math.floor(A)},p:function(A){return{M:u,y:w,w:f,d,D:y,h,m:c,s:a,ms:i,Q:g}[A]||String(A||"").toLowerCase().replace(/s$/,"")},u:function(A){return A===void 0}},V="en",k={};k[V]=F;var L=function(A){return A instanceof _},x=function A(O,I,$){var M;if(!O)return V;if(typeof O=="string"){var B=O.toLowerCase();k[B]&&(M=B),I&&(k[B]=I,M=B);var D=O.split("-");if(!M&&D.length>1)return A(D[0])}else{var W=O.name;k[W]=O,M=W}return!$&&M&&(V=M),M||!$&&V},T=function(A,O){if(L(A))return A.clone();var I=typeof O=="object"?O:{};return I.date=A,I.args=arguments,new _(I)},b=S;b.l=x,b.i=L,b.w=function(A,O){return T(A,{locale:O.$L,utc:O.$u,x:O.$x,$offset:O.$offset})};var _=function(){function A(I){this.$L=x(I.locale,null,!0),this.parse(I)}var O=A.prototype;return O.parse=function(I){this.$d=function($){var M=$.date,B=$.utc;if(M===null)return new Date(NaN);if(b.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var D=M.match(v);if(D){var W=D[2]-1||0,j=(D[7]||"0").substring(0,3);return B?new Date(Date.UTC(D[1],W,D[3]||1,D[4]||0,D[5]||0,D[6]||0,j)):new Date(D[1],W,D[3]||1,D[4]||0,D[5]||0,D[6]||0,j)}}return new Date(M)}(I),this.$x=I.x||{},this.init()},O.init=function(){var I=this.$d;this.$y=I.getFullYear(),this.$M=I.getMonth(),this.$D=I.getDate(),this.$W=I.getDay(),this.$H=I.getHours(),this.$m=I.getMinutes(),this.$s=I.getSeconds(),this.$ms=I.getMilliseconds()},O.$utils=function(){return b},O.isValid=function(){return this.$d.toString()!==m},O.isSame=function(I,$){var M=T(I);return this.startOf($)<=M&&M<=this.endOf($)},O.isAfter=function(I,$){return T(I)<this.startOf($)},O.isBefore=function(I,$){return this.endOf($)<T(I)},O.$g=function(I,$,M){return b.u(I)?this[$]:this.set(M,I)},O.unix=function(){return Math.floor(this.valueOf()/1e3)},O.valueOf=function(){return this.$d.getTime()},O.startOf=function(I,$){var M=this,B=!!b.u($)||$,D=b.p(I),W=function(re,ne){var Q=b.w(M.$u?Date.UTC(M.$y,ne,re):new Date(M.$y,ne,re),M);return B?Q:Q.endOf(d)},j=function(re,ne){return b.w(M.toDate()[re].apply(M.toDate("s"),(B?[0,0,0,0]:[23,59,59,999]).slice(ne)),M)},z=this.$W,X=this.$M,q=this.$D,P="set"+(this.$u?"UTC":"");switch(D){case w:return B?W(1,0):W(31,11);case u:return B?W(1,X):W(0,X+1);case f:var Y=this.$locale().weekStart||0,te=(z<Y?z+7:z)-Y;return W(B?q-te:q+(6-te),X);case d:case y:return j(P+"Hours",0);case h:return j(P+"Minutes",1);case c:return j(P+"Seconds",2);case a:return j(P+"Milliseconds",3);default:return this.clone()}},O.endOf=function(I){return this.startOf(I,!1)},O.$set=function(I,$){var M,B=b.p(I),D="set"+(this.$u?"UTC":""),W=(M={},M[d]=D+"Date",M[y]=D+"Date",M[u]=D+"Month",M[w]=D+"FullYear",M[h]=D+"Hours",M[c]=D+"Minutes",M[a]=D+"Seconds",M[i]=D+"Milliseconds",M)[B],j=B===d?this.$D+($-this.$W):$;if(B===u||B===w){var z=this.clone().set(y,1);z.$d[W](j),z.init(),this.$d=z.set(y,Math.min(this.$D,z.daysInMonth())).$d}else W&&this.$d[W](j);return this.init(),this},O.set=function(I,$){return this.clone().$set(I,$)},O.get=function(I){return this[b.p(I)]()},O.add=function(I,$){var M,B=this;I=Number(I);var D=b.p($),W=function(X){var q=T(B);return b.w(q.date(q.date()+Math.round(X*I)),B)};if(D===u)return this.set(u,this.$M+I);if(D===w)return this.set(w,this.$y+I);if(D===d)return W(1);if(D===f)return W(7);var j=(M={},M[c]=s,M[h]=o,M[a]=n,M)[D]||1,z=this.$d.getTime()+I*j;return b.w(z,this)},O.subtract=function(I,$){return this.add(-1*I,$)},O.format=function(I){var $=this,M=this.$locale();if(!this.isValid())return M.invalidDate||m;var B=I||"YYYY-MM-DDTHH:mm:ssZ",D=b.z(this),W=this.$H,j=this.$m,z=this.$M,X=M.weekdays,q=M.months,P=function(ne,Q,Z,ue){return ne&&(ne[Q]||ne($,B))||Z[Q].slice(0,ue)},Y=function(ne){return b.s(W%12||12,ne,"0")},te=M.meridiem||function(ne,Q,Z){var ue=ne<12?"AM":"PM";return Z?ue.toLowerCase():ue},re={YY:String(this.$y).slice(-2),YYYY:b.s(this.$y,4,"0"),M:z+1,MM:b.s(z+1,2,"0"),MMM:P(M.monthsShort,z,q,3),MMMM:P(q,z),D:this.$D,DD:b.s(this.$D,2,"0"),d:String(this.$W),dd:P(M.weekdaysMin,this.$W,X,2),ddd:P(M.weekdaysShort,this.$W,X,3),dddd:X[this.$W],H:String(W),HH:b.s(W,2,"0"),h:Y(1),hh:Y(2),a:te(W,j,!0),A:te(W,j,!1),m:String(j),mm:b.s(j,2,"0"),s:String(this.$s),ss:b.s(this.$s,2,"0"),SSS:b.s(this.$ms,3,"0"),Z:D};return B.replace(C,function(ne,Q){return Q||re[ne]||D.replace(":","")})},O.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},O.diff=function(I,$,M){var B,D=b.p($),W=T(I),j=(W.utcOffset()-this.utcOffset())*s,z=this-W,X=b.m(this,W);return X=(B={},B[w]=X/12,B[u]=X,B[g]=X/3,B[f]=(z-j)/6048e5,B[d]=(z-j)/864e5,B[h]=z/o,B[c]=z/s,B[a]=z/n,B)[D]||z,M?X:b.a(X)},O.daysInMonth=function(){return this.endOf(u).$D},O.$locale=function(){return k[this.$L]},O.locale=function(I,$){if(!I)return this.$L;var M=this.clone(),B=x(I,$,!0);return B&&(M.$L=B),M},O.clone=function(){return b.w(this.$d,this)},O.toDate=function(){return new Date(this.valueOf())},O.toJSON=function(){return this.isValid()?this.toISOString():null},O.toISOString=function(){return this.$d.toISOString()},O.toString=function(){return this.$d.toUTCString()},A}(),N=_.prototype;return T.prototype=N,[["$ms",i],["$s",a],["$m",c],["$H",h],["$W",d],["$M",u],["$y",w],["$D",y]].forEach(function(A){N[A[1]]=function(O){return this.$g(O,A[0],A[1])}}),T.extend=function(A,O){return A.$i||(A(O,_,T),A.$i=!0),T},T.locale=x,T.isDayjs=L,T.unix=function(A){return T(1e3*A)},T.en=k[V],T.Ls=k,T.p={},T})})(fn);const je=fn.exports,wa=t=>{const{ooui:r,value:n}=t;if(!n)return null;let s=n;r.selectionValues.size?s=r.selectionValues.get(n):Array.isArray(n)&&(s=n[1]);const o=s.toString().split(" ").filter(a=>a.length>1).slice(0,3).map(a=>a[0].toUpperCase()).join(""),i=kt(s);return e.jsx(p.Tooltip,{title:s,children:e.jsx(p.Avatar,{alt:s,style:{backgroundColor:i},children:o})})};var hn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Qe,function(){return function(n,s){s.prototype.weekday=function(o){var i=this.$locale().weekStart||0,a=this.$W,c=(a<i?a+7:a)-i;return this.$utils().u(o)?c:this.subtract(c,"day").add(o,"day")}}})})(hn);const Ca=hn.exports;var pn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Qe,function(){return function(n,s,o){var i=s.prototype,a=function(u){return u&&(u.indexOf?u:u.s)},c=function(u,g,w,y,m){var v=u.name?u:u.$locale(),C=a(v[g]),F=a(v[w]),E=C||F.map(function(V){return V.slice(0,y)});if(!m)return E;var S=v.weekStart;return E.map(function(V,k){return E[(k+(S||0))%7]})},h=function(){return o.Ls[o.locale()]},d=function(u,g){return u.formats[g]||function(w){return w.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(y,m,v){return m||v.slice(1)})}(u.formats[g.toUpperCase()])},f=function(){var u=this;return{months:function(g){return g?g.format("MMMM"):c(u,"months")},monthsShort:function(g){return g?g.format("MMM"):c(u,"monthsShort","months",3)},firstDayOfWeek:function(){return u.$locale().weekStart||0},weekdays:function(g){return g?g.format("dddd"):c(u,"weekdays")},weekdaysMin:function(g){return g?g.format("dd"):c(u,"weekdaysMin","weekdays",2)},weekdaysShort:function(g){return g?g.format("ddd"):c(u,"weekdaysShort","weekdays",3)},longDateFormat:function(g){return d(u.$locale(),g)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return f.bind(this)()},o.localeData=function(){var u=h();return{firstDayOfWeek:function(){return u.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(g){return d(u,g)},meridiem:u.meridiem,ordinal:u.ordinal}},o.months=function(){return c(h(),"months")},o.monthsShort=function(){return c(h(),"monthsShort","months",3)},o.weekdays=function(u){return c(h(),"weekdays",null,null,u)},o.weekdaysShort=function(u){return c(h(),"weekdaysShort","weekdays",3,u)},o.weekdaysMin=function(u){return c(h(),"weekdaysMin","weekdays",2,u)}}})})(pn);const Sa=pn.exports,{useToken:ba}=p.theme;je.extend(Ca),je.extend(Sa);const Re={date:{placeholder:"__/__/____",dateDisplayFormat:"DD/MM/YYYY",dateInternalFormat:"YYYY-MM-DD"},time:{placeholder:"__/__/____ __:__:__",dateDisplayFormat:"DD/MM/YYYY HH:mm:ss",dateInternalFormat:"YYYY-MM-DD HH:mm:ss"}},gn=t=>{const{ooui:r,showTime:n=!1}=t,{required:s}=r;return e.jsx(me,{required:s,...t,children:e.jsx(xa,{ooui:r,showTime:n})})},xa=t=>{const{value:r,onChange:n,ooui:s,showTime:o}=t,{id:i,readOnly:a,required:c}=s,{token:h}=ba(),d=c&&!a?{backgroundColor:h.colorPrimaryBg}:void 0,f=o?"time":"date",u=y=>{n==null||n(y)},g=y=>{if(y===null){u(void 0);return}u(y.format(Re[f].dateInternalFormat))},w=r?je(r,Re[f].dateInternalFormat):void 0;return e.jsx(p.DatePicker,{style:{width:"100%",...d},placeholder:o?Re.time.placeholder:Re.date.placeholder,disabled:a,id:i,picker:"date",showTime:o,format:Re[f].dateDisplayFormat,value:w,onChange:g})},Ta=t=>e.jsx("div",{style:{display:"flex",justifyContent:"center",alignContent:"center"},children:e.jsx(p.Checkbox,{checked:t,disabled:!0})}),Fa=t=>e.jsx(ya,{m2oField:t}),Oa=t=>e.jsx(Ht.Interweave,{content:t==null?void 0:t.toString().replace(/(?:\r\n|\r|\n)/g,"<br>")}),_a=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=je(t,Re.date.dateInternalFormat).format(Re.date.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},Da=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=je(t,Re.time.dateInternalFormat).format(Re.time.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},mn=t=>{const r=Array.isArray(t==null?void 0:t.items)?t==null?void 0:t.items.length:0;return e.jsx(e.Fragment,{children:`( ${r} )`})},ka=t=>e.jsx(dn,{value:t}),Ma=t=>e.jsx(e.Fragment,{children:ln(t)}),yn=t=>e.jsx("div",{style:{textAlign:"right"},children:t}),Va=t=>e.jsx("img",{src:`data:image/*;base64,${t}`,style:{maxWidth:"50px",padding:"5px"}}),Ea=(t,r,n,s)=>e.jsx(Xr,{ooui:n,value:t}),Ia=(t,r,n,s)=>e.jsx(e.Fragment,{children:n.selectionValues.get(t)}),$a=(t,r,n,s)=>e.jsx(e.Fragment,{children:e.jsx(va,{value:t,selectionValues:n.selectionValues,context:s})}),Aa=(t,r,n,s)=>e.jsx(wa,{ooui:n,value:t});function bt(t){var X;const{page:r=1,limit:n,total:s,treeView:o,results:i,onRequestPageChange:a,loading:c,onRowClicked:h,showPagination:d=!0,rowSelection:f,scrollY:u,colorsForResults:g={},statusForResults:w={},onChangeSort:y,sorter:m,onFetchChildrenForRecord:v,childField:C,rootTree:F=!1,context:E,readonly:S}=t,[V,k]=l.useState([]),[L,x]=l.useState([]),T=l.useRef(!1),b=l.useRef(null),{t:_}=l.useContext(ge),N=l.useRef(n),A=l.useContext(We),{title:O=void 0,setTitle:I=void 0}=(F?A:{})||{};l.useEffect(()=>{b.current=it(o);const q=li(b.current,{boolean:Ta,many2one:Fa,text:Oa,one2many:mn,many2many:mn,progressbar:ka,float_time:Ma,image:Va,integer:yn,float:yn,reference:$a,tag:Ea,selection:Ia,date:_a,datetime:Da,avatar:Aa},E);x(q),b.current.string&&O!==b.current.string&&(I==null||I(b.current.string))},[o]),l.useEffect(()=>{T.current=!1;const q=Ur(b.current,i);k(q),N.current=n},[i]);const $=(r-1)*N.current+1,M=$-1+V.length,B=s===void 0?null:s===0?_("no_results"):_("summary").replace("{from}",$==null?void 0:$.toString()).replace("{to}",M==null?void 0:M.toString()).replace("{total}",s==null?void 0:s.toString()),D=()=>!d||o.isExpandable||c?null:s===void 0?e.jsx(p.Spin,{className:"pb-4"}):e.jsxs(p.Row,{align:"bottom",className:"pb-4",children:[e.jsx(p.Col,{span:12,children:e.jsx(p.Pagination,{total:s,pageSize:N.current===0?s:N.current,current:r,showSizeChanger:!1,onChange:a})}),e.jsx(p.Col,{span:12,className:"text-right",children:B})]});function W(){var re;const P=b.current.columns.filter(ne=>ne.sum!==void 0).map(ne=>({label:ne.sum,field:ne.id}));if(!P||P.length===0)return null;let Y=[],te=((re=f==null?void 0:f.selectedRowKeys)==null?void 0:re.length)>0?V.filter(ne=>f==null?void 0:f.selectedRowKeys.includes(ne.id)):V;return P.forEach(ne=>{const Q=te.reduce((Z,ue)=>ue[ne.field]&&!isNaN(ue[ne.field])?Z+ue[ne.field]:Z,0);Y.push(`${ne.label}: ${Math.round(Q*100)/100}`)}),e.jsx("div",{className:"p-1 pb-0 pl-2 mt-2 ",children:Y.join(", ")})}let j,z=u;if(b.current!==null){j=pa(L,V,600);const P=b.current;u&&P.columns.some(Y=>Y.sum!==void 0)&&(z=u-30)}return b.current===null||!j||((X=j.columns)==null?void 0:X.length)===0?e.jsx(p.Spin,{style:{padding:"2rem"}}):e.jsxs("div",{children:[D(),e.jsx(wo.Table,{height:z,columns:j.columns,dataSource:V,loading:c,loadingComponent:e.jsx(p.Spin,{}),onRowStyle:q=>{if(g[q.id])return{color:g[q.id]}},onRowStatus:ci(w)?q=>{if(w[q.id])return e.jsx(p.Badge,{color:w[q.id]})}:void 0,onRowDoubleClick:h,selectionRowKeys:f==null?void 0:f.selectedRowKeys,onRowSelectionChange:f==null?void 0:f.onChange,onChangeSort:y,sorter:m,readonly:S,expandableOpts:v?{expandIcon:H.PlusSquareOutlined,collapseIcon:H.MinusSquareOutlined,loadingIcon:H.LoadingOutlined,onFetchChildrenForRecord:v,childField:C}:void 0}),W()]})}function La(t,r){const{model:n,formView:s,treeView:o,onRowClicked:i,nameSearch:a,treeScrollY:c,domain:h=[],visible:d=!0,rootTree:f=!1,parentContext:u={},onChangeSelectedRowKeys:g}=t,[w,y]=l.useState(!1),[m,v]=l.useState(!1),C=l.useRef(!1),[F,E]=l.useState(),[S,V]=l.useState(),[k,L]=l.useState(),[x,T]=l.useState(),[b,_]=l.useState(200),N=l.useRef(),{height:A}=Ot(),O=l.useContext(dt),{processAction:I}=O||{},$=l.useContext(We),{setResults:M=void 0,setCurrentItemIndex:B=void 0,currentId:D=void 0,results:W=void 0,selectedRowItems:j=void 0,setSelectedRowItems:z=void 0,searchParams:X=[],setSearchParams:q=void 0,searchVisible:P=!0,setSearchVisible:Y=void 0,sorter:te=void 0,setSorter:re=void 0,setTotalItems:ne=void 0,setSearchTreeNameSearch:Q=void 0,setTreeIsLoading:Z=void 0,searchValues:ue={},setSearchValues:we=void 0,limit:Ee=Ct,setLimit:Oe=void 0}=(f?$:{})||{},{submit:Ie,clear:Ne,fetchResults:ae,tableRefreshing:de,searchFilterLoading:$e,searchError:ve,page:De,offset:Ye,getResults:ee,requestPageChange:Fe,changeSort:_e,fetchChildrenForRecord:ke,colorsForResults:ce,statusForResults:he,totalItems:Pe}=nn({model:F,setSearchTreeNameSearch:Q,setSelectedRowItems:Ce,setSearchParams:q,setSearchValues:we,searchParams:X,setSearchVisible:Y,setTreeIsLoading:Z,nameSearch:a,searchNameGetDoneRef:C,context:u,formView:k,treeView:S,sorter:te,setSorter:re,setCurrentItemIndex:B,setResultsActionView:M,resultsActionView:W,domain:h,currentId:D,setActionViewTotalItems:ne,limit:Ee,setLimit:Oe});l.useImperativeHandle(r,()=>({refreshResults:()=>{C.current=!1,ae()},getFields:()=>S==null?void 0:S.fields,getDomain:()=>h})),l.useEffect(()=>{!m||d&&(C.current=!1,ae())},[De,Ye,m,d,a]);const fe=async()=>{v(!1),y(!0),T(void 0),Z==null||Z(!0);try{await Je(),v(!0)}catch(Te){T(Te),Z==null||Z(!1)}finally{y(!1)}},Je=async()=>{E(n);let Te=s;s||(Te=await K.getHandler().getView({model:n,type:"form",context:u}));let Me=o;o||(Me=await K.getHandler().getView({model:n,type:"tree",context:u})),L(Te),V(Me)};l.useEffect(()=>{fe()},[n]);const Ae=Te=>{Oe==null||Oe(Te)},R=async Te=>{const{id:Me}=Te;N.current||(N.current=await K.getHandler().treeButOpen({id:S.view_id,model:F,context:u}));const Ze=N.current[0][2];await(I==null?void 0:I({actionData:Ze,fields:S.fields,values:{active_id:Me,...Te},context:u}))},le=async Te=>{const{id:Me}=Te;if(S!=null&&S.isExpandable){try{await R(Te)}catch(Ze){Le(Ze)}return}i({id:Me,model:F,formView:k,treeView:S})};function Ce(Te){const Me=ee().filter(Ze=>Te.includes(Ze.id));z==null||z(Me),g==null||g(Te)}function ye(){return S!=null&&S.isExpandable?A-160:A-(b+210)}const Se=()=>!S||!k?null:e.jsxs(e.Fragment,{children:[e.jsx(Qt,{fields:{...k.fields,...S.fields},searchFields:zr([k.search_fields,S.search_fields]),onClear:Ne,limit:Ee,offset:Ye,isSearching:$e,onSubmit:Ie,onLimitChange:Ae,setSearchFilterHeight:_,searchError:ve,searchVisible:P,searchValues:ue}),e.jsx(bt,{context:u,total:Pe,limit:Ee,page:De,treeView:S,results:ee(),onRequestPageChange:Fe,loading:de,onRowClicked:le,scrollY:c||ye(),colorsForResults:ce,statusForResults:he,rowSelection:{selectedRowKeys:j==null?void 0:j.map(Te=>Te.id),onChange:Ce},sorter:te,onChangeSort:_e,onFetchChildrenForRecord:S.isExpandable?ke:void 0,childField:S.field_parent,rootTree:f})]}),xe=x||ve;return xe?e.jsx(p.Alert,{className:"mt-10",message:xe,type:"error",banner:!0}):e.jsx("div",{style:d?{}:{display:"none"},children:w?e.jsx(p.Spin,{}):Se()})}const er=l.forwardRef(La),tr=t=>{const{visible:r,onCloseModal:n,onSelectValues:s,model:o,nameSearch:i,domain:a,context:c={}}=t,[h,d]=l.useState(!1),{modalWidth:f,modalHeight:u}=Ot(),{t:g}=l.useContext(ge),[w,y]=l.useState([]),m=async()=>{await new Promise(E=>setTimeout(E,5)),n()},v=async E=>{const{id:S}=E;s([S])};function C(){if(w.length===0){m();return}s(w)}const F=()=>e.jsxs(e.Fragment,{children:[e.jsx(er,{model:o,nameSearch:i,onRowClicked:v,treeScrollY:u*.3,domain:a,parentContext:c,onChangeSelectedRowKeys:E=>{y(E)}}),e.jsx(p.Divider,{}),e.jsx(p.Row,{justify:"end",children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(H.FileAddOutlined,{}),onClick:()=>{d(!0)},children:g("new")}),e.jsx(p.Button,{icon:e.jsx(H.CheckOutlined,{}),onClick:()=>{C()},type:"primary",children:g("ok")}),e.jsx(p.Button,{icon:e.jsx(H.CloseOutlined,{}),onClick:m,children:g("cancel")})]})})]});return e.jsxs(e.Fragment,{children:[e.jsx(p.Modal,{title:g("search"),centered:!0,width:f,open:r&&!h,closable:!0,onCancel:m,footer:null,destroyOnClose:!0,maskClosable:!1,children:F()}),e.jsx(ft,{model:o,visible:h,parentContext:c,onSubmitSucceed:E=>{d(!1),m(),s([E])},onCancel:()=>{d(!1),m()}})]})},{error:Na}=p.Modal,Vt=t=>{Na({title:"Error",icon:e.jsx(H.ExclamationCircleOutlined,{}),centered:!0,content:t})},{defaultAlgorithm:Pa,defaultSeed:Ba}=p.theme,vn=Pa(Ba),wn=t=>{const{ooui:r}=t,{required:n}=r,s=async(o,i)=>{if(!i)throw new Error;if(!Array.isArray(i))throw new Error;if(Array.isArray(i)&&!i[0])throw new Error};return e.jsx(me,{required:n,type:"array",validator:s,...t,children:e.jsx(Cn,{ooui:r})})},Cn=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,relation:i,readOnly:a,context:c,id:h,domain:d}=s,f=o&&!a?{backgroundColor:vn.colorPrimaryBg}:void 0,[u,g]=l.useState(!1),[w,y]=l.useState(!1),[m,v]=l.useState(!1),[C,F]=l.useState(),E=l.useRef(!1),[S,V]=l.useState(""),k=l.useRef(),L=l.useContext(Ve),{domain:x,getValues:T,getFields:b,getContext:_,elementHasLostFocus:N}=L||{},A=l.useRef([]),[O,I]=l.useState([]),$=r&&r[0]||void 0,M=r&&r[1]||"";l.useEffect(()=>{!Array.isArray(r)&&r&&z(r)},[r]),l.useEffect(()=>{$&&M.length===0?z($):$&&M.length>0?V(M):!$&&!M&&V(k.current||"")},[r]);const B=Y=>{n==null||n(Y),N==null||N()},D=Y=>{k.current=Y.target.value,B([void 0,""])},W=async()=>{if(!m&&S!==M){if(await new Promise(Y=>setTimeout(Y,100)),E.current){B([void 0,""]);return}v(!0);try{if(A.current&&A.current.length>0)j(k.current);else{const Y=await K.getHandler().nameSearch({model:i,payload:k.current,context:{..._==null?void 0:_(),...c}});Y.length===1?(k.current=void 0,B(Y[0])):j(k.current)}}catch(Y){Vt(Y)}finally{v(!1)}}},j=async Y=>{if(await X(),A.current&&A.current.length>0){const te=await K.getHandler().searchAllIds({params:A.current,model:i,context:{..._==null?void 0:_(),...c},totalItems:2});te.length===1?z(te[0]):(F(Y),g(!0));return}F(Y),g(!0)},z=async Y=>{v(!0);try{const te=await K.getHandler().execute({action:"name_get",payload:[Y],model:i,context:{..._==null?void 0:_(),...c}});B([Y,te[0][1]])}catch(te){Vt(te)}finally{v(!1)}};async function X(){d&&(A.current=await K.getHandler().evalDomain({domain:d,values:ct({fields:b(),values:T()}),fields:b(),context:_()})),x&&x.length>0&&(A.current=A.current.concat(ie.transformDomainForChildWidget({domain:x,widgetFieldName:h}))),I(A.current)}async function q(Y){Y.keyCode===13?(Y.preventDefault(),Y.stopPropagation(),await W()):Y.code==="Backspace"&&$!==void 0&&(Y.preventDefault(),Y.stopPropagation(),B([void 0,""]))}const P=o&&!a?Ha:p.Input;return e.jsxs(p.Row,{gutter:8,wrap:!1,children:[e.jsx(p.Col,{flex:"auto",children:e.jsx(P,{type:"text",value:S,disabled:a,onChange:D,style:f,onBlur:W,onKeyDown:q,suffix:e.jsx(Rt,{id:$,model:i,context:{..._==null?void 0:_(),...c}})})}),e.jsx(p.Col,{flex:"32px",style:{paddingRight:0},children:e.jsx(p.Button,{icon:e.jsx(H.FolderOpenOutlined,{}),disabled:$===void 0||M===""||S===void 0,onClick:()=>{y(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(p.Col,{flex:"32px",style:{paddingLeft:0},children:e.jsx(p.Button,{icon:m?e.jsx(H.LoadingOutlined,{}):e.jsx(H.SearchOutlined,{}),disabled:a||m,onClick:()=>{E.current=!0,j(M)},style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},tabIndex:-1})}),e.jsx(tr,{model:i,domain:O,context:{..._==null?void 0:_(),...c},visible:u,nameSearch:$?void 0:C,onSelectValues:Y=>{g(!1),z(Y[0]),E.current=!1,k.current=void 0},onCloseModal:()=>{g(!1),E.current=!1}}),e.jsx(ft,{model:i,parentContext:{..._==null?void 0:_(),...c},id:r&&r[0],visible:w,onSubmitSucceed:Y=>{y(!1),z(Y)},onCancel:()=>{y(!1)},mustClearAfterSave:!0,readOnly:a})]})},Ha=mt.default(p.Input)`
31
+ `,fn=t=>{const{visible:r,onCancel:n,items:s=[],onItemClicked:o}=t,{t:i}=l.useContext(ge);return e.jsx(p.Modal,{title:i("selectAction"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:n,maskClosable:!1,children:e.jsx(p.Space,{direction:"vertical",className:"w-full",children:s.map(a=>e.jsx(p.Button,{className:"w-full",onClick:()=>{o(a)},children:a.name}))})})},er=t=>{var x,F;const{id:r,model:n,context:s={}}=t,[o,i]=l.useState(!1),[a,c]=l.useState(!1),[h,d]=l.useState(!1),[f,u]=l.useState(),[g,w]=l.useState(),{t:y}=l.useContext(ge),m=l.useContext(Xe),{openRelate:v}=m||{},S=l.useContext(dt),{processAction:T}=S||{};if(!r)return null;async function V(){var O,C,P,I,_;d(!0);try{const $=await K.getHandler().getView({model:n,type:"form",context:s});u($);let A=[];const{toolbar:M}=$;(O=M.action)==null||O.filter(k=>k.hasOwnProperty("context")).map(k=>A.push(...se.parseContextFields(k.context))),(C=M.action)==null||C.filter(k=>k.hasOwnProperty("domain")).map(k=>A.push(...se.parseDomainFields(k.domain))),(P=M.relate)==null||P.filter(k=>k.hasOwnProperty("context")).map(k=>A.push(...se.parseContextFields(k.context))),(I=M.relate)==null||I.filter(k=>k.hasOwnProperty("domain")).map(k=>A.push(...se.parseDomainFields(k.domain))),(_=M.print)==null||_.filter(k=>k.hasOwnProperty("context")).map(k=>A.push(...se.parseContextFields(k.context))),A=A.filter(k=>Object.keys($.fields).indexOf(k)>-1);let N={};A.length>0&&(N=(await K.getHandler().readObjects({model:n,ids:[r],fieldsToRetrieve:A,context:s}))[0]),N={...lt(N,A),active_id:r},w(N),d(!1)}catch($){d(!1),Ne($);return}}function b(){var C;if(h)return e.jsx(p.Menu,{children:e.jsx("div",{style:{padding:15},children:e.jsx(p.Spin,{})})});if(!f||!f.toolbar)return e.jsx(p.Menu,{});const O=(C=f==null?void 0:f.toolbar)==null?void 0:C.relate.map(P=>e.jsx(p.Menu.Item,{children:P.name},P.id));return e.jsx(p.Menu,{onClick:E,children:[e.jsx(p.Menu.Item,{disabled:!f.toolbar.action||f.toolbar.action.length===0,icon:e.jsx(B.ThunderboltOutlined,{}),children:y("action")},"action"),e.jsx(p.Menu.Item,{disabled:!f.toolbar.print||f.toolbar.print.length===0,icon:e.jsx(B.PrinterOutlined,{}),children:y("report")},"print"),e.jsx(p.Menu.Divider,{}),e.jsx(p.Menu.ItemGroup,{title:e.jsxs(e.Fragment,{children:[e.jsx(B.EnterOutlined,{})," ",e.jsxs("span",{children:[" ",y("related")]})]}),children:O})]})}function E(O){if(O.key==="action")i(!0);else if(O.key==="print")c(!0);else{const C=f.toolbar.relate.find(P=>P.id===parseInt(O.key));if(!C)return;v({relateData:C,values:g,fields:f.fields,action_id:C.id,action_type:C.type})}}function D(O){i(!1),T==null||T({actionData:O,values:g,fields:f.fields,context:{active_id:r,active_ids:[r]}})}function L(O){c(!1),T==null||T({actionData:{...O,datas:{...O.datas||{},ids:[r]}},values:g,fields:f.fields})}return e.jsxs(e.Fragment,{children:[e.jsx(p.Dropdown,{overlay:b(),trigger:["click"],children:e.jsx(B.RightCircleOutlined,{style:{color:"rgba(0,0,0,.45)"},onClick:O=>{O.preventDefault(),V()}})}),e.jsx(fn,{visible:o,items:(x=f==null?void 0:f.toolbar)==null?void 0:x.action,onItemClicked:D,onCancel:()=>i(!1)}),e.jsx(fn,{visible:a,items:(F=f==null?void 0:f.toolbar)==null?void 0:F.print,onItemClicked:L,onCancel:()=>c(!1)})]})},ya=t=>{const{m2oField:r}=t;return r?e.jsxs(p.Space,{children:[e.jsx(e.Fragment,{children:r.value}),e.jsx(er,{id:r.id,model:r.model})]}):e.jsx(e.Fragment,{})},va=t=>{const{value:r,context:n,selectionValues:s}=t,[o,i]=l.useState(),[a,c]=l.useState(!1),[h,d]=r?r.split(","):[],f=parseInt(d),u=l.useCallback(async()=>{if(!r||r&&o)return;c(!0);const w=await K.getHandler().execute({action:"name_get",payload:[f],model:h,context:n});i(w[0][1]),c(!1)},[r,o]);if(l.useEffect(()=>{u()},[r]),!r&&!a)return e.jsx(e.Fragment,{});if(a)return e.jsx(B.LoadingOutlined,{});const g=s.get(h);return e.jsxs(p.Space,{children:[e.jsx(e.Fragment,{children:`${g}:`}),e.jsx(e.Fragment,{children:o}),e.jsx(er,{id:f,model:h})]})};var hn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){var n=1e3,s=6e4,o=36e5,i="millisecond",a="second",c="minute",h="hour",d="day",f="week",u="month",g="quarter",w="year",y="date",m="Invalid Date",v=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,S=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,T={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(I){var _=["th","st","nd","rd"],$=I%100;return"["+I+(_[($-20)%10]||_[$]||_[0])+"]"}},V=function(I,_,$){var A=String(I);return!A||A.length>=_?I:""+Array(_+1-A.length).join($)+I},b={s:V,z:function(I){var _=-I.utcOffset(),$=Math.abs(_),A=Math.floor($/60),M=$%60;return(_<=0?"+":"-")+V(A,2,"0")+":"+V(M,2,"0")},m:function I(_,$){if(_.date()<$.date())return-I($,_);var A=12*($.year()-_.year())+($.month()-_.month()),M=_.clone().add(A,u),N=$-M<0,k=_.clone().add(A+(N?-1:1),u);return+(-(A+($-M)/(N?M-k:k-M))||0)},a:function(I){return I<0?Math.ceil(I)||0:Math.floor(I)},p:function(I){return{M:u,y:w,w:f,d,D:y,h,m:c,s:a,ms:i,Q:g}[I]||String(I||"").toLowerCase().replace(/s$/,"")},u:function(I){return I===void 0}},E="en",D={};D[E]=T;var L=function(I){return I instanceof C},x=function I(_,$,A){var M;if(!_)return E;if(typeof _=="string"){var N=_.toLowerCase();D[N]&&(M=N),$&&(D[N]=$,M=N);var k=_.split("-");if(!M&&k.length>1)return I(k[0])}else{var W=_.name;D[W]=_,M=W}return!A&&M&&(E=M),M||!A&&E},F=function(I,_){if(L(I))return I.clone();var $=typeof _=="object"?_:{};return $.date=I,$.args=arguments,new C($)},O=b;O.l=x,O.i=L,O.w=function(I,_){return F(I,{locale:_.$L,utc:_.$u,x:_.$x,$offset:_.$offset})};var C=function(){function I($){this.$L=x($.locale,null,!0),this.parse($)}var _=I.prototype;return _.parse=function($){this.$d=function(A){var M=A.date,N=A.utc;if(M===null)return new Date(NaN);if(O.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var k=M.match(v);if(k){var W=k[2]-1||0,z=(k[7]||"0").substring(0,3);return N?new Date(Date.UTC(k[1],W,k[3]||1,k[4]||0,k[5]||0,k[6]||0,z)):new Date(k[1],W,k[3]||1,k[4]||0,k[5]||0,k[6]||0,z)}}return new Date(M)}($),this.$x=$.x||{},this.init()},_.init=function(){var $=this.$d;this.$y=$.getFullYear(),this.$M=$.getMonth(),this.$D=$.getDate(),this.$W=$.getDay(),this.$H=$.getHours(),this.$m=$.getMinutes(),this.$s=$.getSeconds(),this.$ms=$.getMilliseconds()},_.$utils=function(){return O},_.isValid=function(){return this.$d.toString()!==m},_.isSame=function($,A){var M=F($);return this.startOf(A)<=M&&M<=this.endOf(A)},_.isAfter=function($,A){return F($)<this.startOf(A)},_.isBefore=function($,A){return this.endOf(A)<F($)},_.$g=function($,A,M){return O.u($)?this[A]:this.set(M,$)},_.unix=function(){return Math.floor(this.valueOf()/1e3)},_.valueOf=function(){return this.$d.getTime()},_.startOf=function($,A){var M=this,N=!!O.u(A)||A,k=O.p($),W=function(re,ce){var X=O.w(M.$u?Date.UTC(M.$y,ce,re):new Date(M.$y,ce,re),M);return N?X:X.endOf(d)},z=function(re,ce){return O.w(M.toDate()[re].apply(M.toDate("s"),(N?[0,0,0,0]:[23,59,59,999]).slice(ce)),M)},j=this.$W,G=this.$M,Z=this.$D,H="set"+(this.$u?"UTC":"");switch(k){case w:return N?W(1,0):W(31,11);case u:return N?W(1,G):W(0,G+1);case f:var Y=this.$locale().weekStart||0,R=(j<Y?j+7:j)-Y;return W(N?Z-R:Z+(6-R),G);case d:case y:return z(H+"Hours",0);case h:return z(H+"Minutes",1);case c:return z(H+"Seconds",2);case a:return z(H+"Milliseconds",3);default:return this.clone()}},_.endOf=function($){return this.startOf($,!1)},_.$set=function($,A){var M,N=O.p($),k="set"+(this.$u?"UTC":""),W=(M={},M[d]=k+"Date",M[y]=k+"Date",M[u]=k+"Month",M[w]=k+"FullYear",M[h]=k+"Hours",M[c]=k+"Minutes",M[a]=k+"Seconds",M[i]=k+"Milliseconds",M)[N],z=N===d?this.$D+(A-this.$W):A;if(N===u||N===w){var j=this.clone().set(y,1);j.$d[W](z),j.init(),this.$d=j.set(y,Math.min(this.$D,j.daysInMonth())).$d}else W&&this.$d[W](z);return this.init(),this},_.set=function($,A){return this.clone().$set($,A)},_.get=function($){return this[O.p($)]()},_.add=function($,A){var M,N=this;$=Number($);var k=O.p(A),W=function(G){var Z=F(N);return O.w(Z.date(Z.date()+Math.round(G*$)),N)};if(k===u)return this.set(u,this.$M+$);if(k===w)return this.set(w,this.$y+$);if(k===d)return W(1);if(k===f)return W(7);var z=(M={},M[c]=s,M[h]=o,M[a]=n,M)[k]||1,j=this.$d.getTime()+$*z;return O.w(j,this)},_.subtract=function($,A){return this.add(-1*$,A)},_.format=function($){var A=this,M=this.$locale();if(!this.isValid())return M.invalidDate||m;var N=$||"YYYY-MM-DDTHH:mm:ssZ",k=O.z(this),W=this.$H,z=this.$m,j=this.$M,G=M.weekdays,Z=M.months,H=function(ce,X,Q,ue){return ce&&(ce[X]||ce(A,N))||Q[X].slice(0,ue)},Y=function(ce){return O.s(W%12||12,ce,"0")},R=M.meridiem||function(ce,X,Q){var ue=ce<12?"AM":"PM";return Q?ue.toLowerCase():ue},re={YY:String(this.$y).slice(-2),YYYY:O.s(this.$y,4,"0"),M:j+1,MM:O.s(j+1,2,"0"),MMM:H(M.monthsShort,j,Z,3),MMMM:H(Z,j),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:H(M.weekdaysMin,this.$W,G,2),ddd:H(M.weekdaysShort,this.$W,G,3),dddd:G[this.$W],H:String(W),HH:O.s(W,2,"0"),h:Y(1),hh:Y(2),a:R(W,z,!0),A:R(W,z,!1),m:String(z),mm:O.s(z,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:k};return N.replace(S,function(ce,X){return X||re[ce]||k.replace(":","")})},_.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},_.diff=function($,A,M){var N,k=O.p(A),W=F($),z=(W.utcOffset()-this.utcOffset())*s,j=this-W,G=O.m(this,W);return G=(N={},N[w]=G/12,N[u]=G,N[g]=G/3,N[f]=(j-z)/6048e5,N[d]=(j-z)/864e5,N[h]=j/o,N[c]=j/s,N[a]=j/n,N)[k]||j,M?G:O.a(G)},_.daysInMonth=function(){return this.endOf(u).$D},_.$locale=function(){return D[this.$L]},_.locale=function($,A){if(!$)return this.$L;var M=this.clone(),N=x($,A,!0);return N&&(M.$L=N),M},_.clone=function(){return O.w(this.$d,this)},_.toDate=function(){return new Date(this.valueOf())},_.toJSON=function(){return this.isValid()?this.toISOString():null},_.toISOString=function(){return this.$d.toISOString()},_.toString=function(){return this.$d.toUTCString()},I}(),P=C.prototype;return F.prototype=P,[["$ms",i],["$s",a],["$m",c],["$H",h],["$W",d],["$M",u],["$y",w],["$D",y]].forEach(function(I){P[I[1]]=function(_){return this.$g(_,I[0],I[1])}}),F.extend=function(I,_){return I.$i||(I(_,C,F),I.$i=!0),F},F.locale=x,F.isDayjs=L,F.unix=function(I){return F(1e3*I)},F.en=D[E],F.Ls=D,F.p={},F})})(hn);const Ze=hn.exports,wa=t=>{const{ooui:r,value:n}=t;if(!n)return null;let s=n;r.selectionValues.size?s=r.selectionValues.get(n):Array.isArray(n)&&(s=n[1]);const o=s.toString().split(" ").filter(a=>a.length>1).slice(0,3).map(a=>a[0].toUpperCase()).join(""),i=Vt(s);return e.jsx(p.Tooltip,{title:s,children:e.jsx(p.Avatar,{alt:s,style:{backgroundColor:i},children:o})})};var pn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){return function(n,s){s.prototype.weekday=function(o){var i=this.$locale().weekStart||0,a=this.$W,c=(a<i?a+7:a)-i;return this.$utils().u(o)?c:this.subtract(c,"day").add(o,"day")}}})})(pn);const Sa=pn.exports;var gn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){return function(n,s,o){var i=s.prototype,a=function(u){return u&&(u.indexOf?u:u.s)},c=function(u,g,w,y,m){var v=u.name?u:u.$locale(),S=a(v[g]),T=a(v[w]),V=S||T.map(function(E){return E.slice(0,y)});if(!m)return V;var b=v.weekStart;return V.map(function(E,D){return V[(D+(b||0))%7]})},h=function(){return o.Ls[o.locale()]},d=function(u,g){return u.formats[g]||function(w){return w.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(y,m,v){return m||v.slice(1)})}(u.formats[g.toUpperCase()])},f=function(){var u=this;return{months:function(g){return g?g.format("MMMM"):c(u,"months")},monthsShort:function(g){return g?g.format("MMM"):c(u,"monthsShort","months",3)},firstDayOfWeek:function(){return u.$locale().weekStart||0},weekdays:function(g){return g?g.format("dddd"):c(u,"weekdays")},weekdaysMin:function(g){return g?g.format("dd"):c(u,"weekdaysMin","weekdays",2)},weekdaysShort:function(g){return g?g.format("ddd"):c(u,"weekdaysShort","weekdays",3)},longDateFormat:function(g){return d(u.$locale(),g)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return f.bind(this)()},o.localeData=function(){var u=h();return{firstDayOfWeek:function(){return u.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(g){return d(u,g)},meridiem:u.meridiem,ordinal:u.ordinal}},o.months=function(){return c(h(),"months")},o.monthsShort=function(){return c(h(),"monthsShort","months",3)},o.weekdays=function(u){return c(h(),"weekdays",null,null,u)},o.weekdaysShort=function(u){return c(h(),"weekdaysShort","weekdays",3,u)},o.weekdaysMin=function(u){return c(h(),"weekdaysMin","weekdays",2,u)}}})})(gn);const Ca=gn.exports,{useToken:ba}=p.theme;Ze.extend(Sa),Ze.extend(Ca);const et={date:{placeholder:"__/__/____",dateDisplayFormat:"DD/MM/YYYY",dateInternalFormat:"YYYY-MM-DD"},time:{placeholder:"__/__/____ __:__:__",dateDisplayFormat:"DD/MM/YYYY HH:mm:ss",dateInternalFormat:"YYYY-MM-DD HH:mm:ss"}},mn=t=>{const{ooui:r,showTime:n=!1}=t,{required:s}=r;return e.jsx(me,{required:s,...t,children:e.jsx(xa,{ooui:r,showTime:n})})},xa=t=>{const{value:r,onChange:n,ooui:s,showTime:o}=t,{id:i,readOnly:a,required:c}=s,{token:h}=ba(),d=c&&!a?{backgroundColor:h.colorPrimaryBg}:void 0,f=o?"time":"date",u=y=>{n==null||n(y)},g=y=>{if(y===null){u(void 0);return}u(y.format(et[f].dateInternalFormat))},w=r?Ze(r,et[f].dateInternalFormat):void 0;return e.jsx(p.DatePicker,{style:{width:"100%",...d},placeholder:o?et.time.placeholder:et.date.placeholder,disabled:a,id:i,picker:"date",showTime:o,format:et[f].dateDisplayFormat,value:w,onChange:g})},Ta=t=>e.jsx("div",{style:{display:"flex",justifyContent:"center",alignContent:"center"},children:e.jsx(p.Checkbox,{checked:t,disabled:!0})}),Fa=t=>e.jsx(ya,{m2oField:t}),Oa=t=>e.jsx(Kt.Interweave,{content:t==null?void 0:t.toString().replace(/(?:\r\n|\r|\n)/g,"<br>")}),_a=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=Ze(t,et.date.dateInternalFormat).format(et.date.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},Da=t=>{if(!t||t&&t.length===0)return e.jsx(e.Fragment,{});const r=Ze(t,et.time.dateInternalFormat).format(et.time.dateDisplayFormat);return e.jsx(e.Fragment,{children:r})},yn=t=>{const r=Array.isArray(t==null?void 0:t.items)?t==null?void 0:t.items.length:0;return e.jsx(e.Fragment,{children:`( ${r} )`})},ka=t=>e.jsx(un,{value:t}),Ma=t=>e.jsx(e.Fragment,{children:cn(t)}),vn=t=>e.jsx("div",{style:{textAlign:"right"},children:t}),Va=t=>e.jsx("img",{src:`data:image/*;base64,${t}`,style:{maxWidth:"50px",padding:"5px"}}),Ea=(t,r,n,s)=>e.jsx(Qr,{ooui:n,value:t}),Ia=(t,r,n,s)=>e.jsx(e.Fragment,{children:n.selectionValues.get(t)}),Aa=(t,r,n,s)=>e.jsx(e.Fragment,{children:e.jsx(va,{value:t,selectionValues:n.selectionValues,context:s})}),$a=(t,r,n,s)=>e.jsx(wa,{ooui:n,value:t});function Tt(t){var Z;const{page:r=1,limit:n,total:s,treeView:o,results:i,onRequestPageChange:a,loading:c,onRowClicked:h,showPagination:d=!0,rowSelection:f,scrollY:u,colorsForResults:g={},statusForResults:w={},onChangeSort:y,sorter:m,onFetchChildrenForRecord:v,childField:S,rootTree:T=!1,context:V,readonly:b,onSelectAllRecords:E}=t,[D,L]=l.useState([]),[x,F]=l.useState([]),O=l.useRef(!1),C=l.useRef(null),{t:P}=l.useContext(ge),I=l.useRef(n),_=l.useContext(qe),{title:$=void 0,setTitle:A=void 0}=(T?_:{})||{};l.useEffect(()=>{C.current=it(o);const H=li(C.current,{boolean:Ta,many2one:Fa,text:Oa,one2many:yn,many2many:yn,progressbar:ka,float_time:Ma,image:Va,integer:vn,float:vn,reference:Aa,tag:Ea,selection:Ia,date:_a,datetime:Da,avatar:$a},V);F(H),C.current.string&&$!==C.current.string&&(A==null||A(C.current.string))},[o]),l.useEffect(()=>{O.current=!1;const H=Gr(C.current,i);L(H),I.current=n},[i]);const M=(r-1)*I.current+1,N=M-1+D.length,k=s===void 0?null:s===0?P("no_results"):P("summary").replace("{from}",M==null?void 0:M.toString()).replace("{to}",N==null?void 0:N.toString()).replace("{total}",s==null?void 0:s.toString()),W=()=>!d||o.isExpandable||c?null:s===void 0?e.jsx(p.Spin,{className:"pb-4"}):e.jsxs(p.Row,{align:"bottom",className:"pb-4",children:[e.jsx(p.Col,{span:12,children:e.jsx(p.Pagination,{total:s,pageSize:I.current===0?s:I.current,current:r,showSizeChanger:!1,onChange:a})}),e.jsx(p.Col,{span:12,className:"text-right",children:k})]});function z(){var ce;const Y=C.current.columns.filter(X=>X.sum!==void 0).map(X=>({label:X.sum,field:X.id}));if(!Y||Y.length===0)return null;let R=[],re=((ce=f==null?void 0:f.selectedRowKeys)==null?void 0:ce.length)>0?D.filter(X=>f==null?void 0:f.selectedRowKeys.includes(X.id)):D;return Y.forEach(X=>{const Q=re.reduce((ue,he)=>he[X.field]&&!isNaN(he[X.field])?ue+he[X.field]:ue,0);R.push(`${X.label}: ${Math.round(Q*100)/100}`)}),e.jsx("div",{className:"p-1 pb-0 pl-2 mt-2 ",children:R.join(", ")})}let j,G=u;if(C.current!==null){j=pa(x,D,600);const Y=C.current;u&&Y.columns.some(R=>R.sum!==void 0)&&(G=u-30)}return C.current===null||!j||((Z=j.columns)==null?void 0:Z.length)===0?e.jsx(p.Spin,{style:{padding:"2rem"}}):e.jsxs("div",{children:[W(),e.jsx(wo.Table,{height:G,columns:j.columns,dataSource:D,loading:c,loadingComponent:e.jsx(p.Spin,{}),onRowStyle:H=>{if(g[H.id])return{color:g[H.id]}},onRowStatus:ci(w)?H=>{if(w[H.id])return e.jsx(p.Badge,{color:w[H.id]})}:void 0,onRowDoubleClick:h,selectionRowKeys:f==null?void 0:f.selectedRowKeys,onRowSelectionChange:f==null?void 0:f.onChange,onChangeSort:y,sorter:m,readonly:b,expandableOpts:v?{expandIcon:B.PlusSquareOutlined,collapseIcon:B.MinusSquareOutlined,loadingIcon:B.LoadingOutlined,onFetchChildrenForRecord:v,childField:S}:void 0,onSelectAllRecords:E,totalItems:s||0,translations:{recordsSelected:P("recordsSelected"),selectAllRecords:P("selectAllRecords"),allRecordsSelected:P("allRecordsSelected")}}),z()]})}function La(t,r){const{model:n,formView:s,treeView:o,onRowClicked:i,nameSearch:a,treeScrollY:c,domain:h=[],visible:d=!0,rootTree:f=!1,parentContext:u={},onChangeSelectedRowKeys:g}=t,[w,y]=l.useState(!1),[m,v]=l.useState(!1),S=l.useRef(!1),[T,V]=l.useState(),[b,E]=l.useState(),[D,L]=l.useState(),[x,F]=l.useState(),[O,C]=l.useState(200),P=l.useRef(),{height:I}=Dt(),_=l.useContext(dt),{processAction:$}=_||{},A=l.useContext(qe),{setResults:M=void 0,setCurrentItemIndex:N=void 0,currentId:k=void 0,results:W=void 0,selectedRowItems:z=void 0,setSelectedRowItems:j=void 0,searchParams:G=[],setSearchParams:Z=void 0,searchVisible:H=!0,setSearchVisible:Y=void 0,sorter:R=void 0,setSorter:re=void 0,setTotalItems:ce=void 0,setSearchTreeNameSearch:X=void 0,setTreeIsLoading:Q=void 0,searchValues:ue={},setSearchValues:he=void 0,limit:ke=bt,setLimit:Fe=void 0}=(f?A:{})||{},{submit:Ee,clear:Pe,fetchResults:we,tableRefreshing:ie,searchFilterLoading:Me,searchError:ve,page:Ve,offset:Ae,getResults:te,requestPageChange:Se,changeSort:_e,fetchChildrenForRecord:Ie,colorsForResults:ae,statusForResults:fe,totalItems:Be,getAllIds:de}=on({model:T,setSearchTreeNameSearch:X,setSelectedRowItems:ye,setSearchParams:Z,setSearchValues:he,searchParams:G,setSearchVisible:Y,setTreeIsLoading:Q,nameSearch:a,searchNameGetDoneRef:S,context:u,formView:D,treeView:b,sorter:R,setSorter:re,setCurrentItemIndex:N,setResultsActionView:M,resultsActionView:W,domain:h,currentId:k,setActionViewTotalItems:ce,limit:ke,setLimit:Fe});l.useImperativeHandle(r,()=>({refreshResults:()=>{S.current=!1,we()},getFields:()=>b==null?void 0:b.fields,getDomain:()=>h})),l.useEffect(()=>{!m||d&&(S.current=!1,we())},[Ve,Ae,m,d,a]);const ze=async()=>{v(!1),y(!0),F(void 0),Q==null||Q(!0);try{await $e(),v(!0)}catch(Oe){F(Oe),Q==null||Q(!1)}finally{y(!1)}},$e=async()=>{V(n);let Oe=s;s||(Oe=await K.getHandler().getView({model:n,type:"form",context:u}));let Le=o;o||(Le=await K.getHandler().getView({model:n,type:"tree",context:u})),L(Oe),E(Le)};l.useEffect(()=>{ze()},[n]);const ee=Oe=>{Fe==null||Fe(Oe)},le=async Oe=>{const{id:Le}=Oe;P.current||(P.current=await K.getHandler().treeButOpen({id:b.view_id,model:T,context:u}));const mt=P.current[0][2];await($==null?void 0:$({actionData:mt,fields:b.fields,values:{active_id:Le,...Oe},context:u}))},Ce=async Oe=>{const{id:Le}=Oe;if(b!=null&&b.isExpandable){try{await le(Oe)}catch(mt){Ne(mt)}return}i({id:Le,model:T,formView:D,treeView:b})};function ye(Oe){j==null||j(Oe.map(Le=>({id:Le}))),g==null||g(Oe)}async function be(){const Oe=await de();j==null||j(Oe.map(Le=>({id:Le}))),g==null||g(Oe)}function Te(){return b!=null&&b.isExpandable?I-160:I-(O+210)}const Ue=()=>!b||!D?null:e.jsxs(e.Fragment,{children:[e.jsx(Rt,{fields:{...D.fields,...b.fields},searchFields:Jr([D.search_fields,b.search_fields]),onClear:Pe,limit:ke,offset:Ae,isSearching:Me,onSubmit:Ee,onLimitChange:ee,setSearchFilterHeight:C,searchError:ve,searchVisible:H,searchValues:ue}),e.jsx(Tt,{context:u,total:Be,limit:ke,page:Ve,treeView:b,results:te(),onRequestPageChange:Se,loading:ie,onRowClicked:Ce,scrollY:c||Te(),colorsForResults:ae,statusForResults:fe,rowSelection:{selectedRowKeys:z==null?void 0:z.map(Oe=>Oe.id),onChange:ye},sorter:R,onChangeSort:_e,onFetchChildrenForRecord:b.isExpandable?Ie:void 0,childField:b.field_parent,rootTree:f,onSelectAllRecords:be})]}),He=x||ve;return He?e.jsx(p.Alert,{className:"mt-10",message:He,type:"error",banner:!0}):e.jsx("div",{style:d?{}:{display:"none"},children:w?e.jsx(p.Spin,{}):Ue()})}const tr=l.forwardRef(La),rr=t=>{const{visible:r,onCloseModal:n,onSelectValues:s,model:o,nameSearch:i,domain:a,context:c={}}=t,[h,d]=l.useState(!1),{modalWidth:f,modalHeight:u}=Dt(),{t:g}=l.useContext(ge),[w,y]=l.useState([]),m=async()=>{await new Promise(V=>setTimeout(V,5)),n()},v=async V=>{const{id:b}=V;s([b])};function S(){if(w.length===0){m();return}s(w)}const T=()=>e.jsxs(e.Fragment,{children:[e.jsx(tr,{model:o,nameSearch:i,onRowClicked:v,treeScrollY:u*.3,domain:a,parentContext:c,onChangeSelectedRowKeys:V=>{y(V)}}),e.jsx(p.Divider,{}),e.jsx(p.Row,{justify:"end",children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(B.FileAddOutlined,{}),onClick:()=>{d(!0)},children:g("new")}),e.jsx(p.Button,{icon:e.jsx(B.CheckOutlined,{}),onClick:()=>{S()},type:"primary",children:g("ok")}),e.jsx(p.Button,{icon:e.jsx(B.CloseOutlined,{}),onClick:m,children:g("cancel")})]})})]});return e.jsxs(e.Fragment,{children:[e.jsx(p.Modal,{title:g("search"),centered:!0,width:f,open:r&&!h,closable:!0,onCancel:m,footer:null,destroyOnClose:!0,maskClosable:!1,children:T()}),e.jsx(ft,{model:o,visible:h,parentContext:c,onSubmitSucceed:V=>{d(!1),m(),s([V])},onCancel:()=>{d(!1),m()}})]})},{error:Na}=p.Modal,Et=t=>{Na({title:"Error",icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:t})},{defaultAlgorithm:Pa,defaultSeed:Ba}=p.theme,wn=Pa(Ba),Sn=t=>{const{ooui:r}=t,{required:n}=r,s=async(o,i)=>{if(!i)throw new Error;if(!Array.isArray(i))throw new Error;if(Array.isArray(i)&&!i[0])throw new Error};return e.jsx(me,{required:n,type:"array",validator:s,...t,children:e.jsx(Cn,{ooui:r})})},Cn=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,relation:i,readOnly:a,context:c,id:h,domain:d}=s,f=o&&!a?{backgroundColor:wn.colorPrimaryBg}:void 0,[u,g]=l.useState(!1),[w,y]=l.useState(!1),[m,v]=l.useState(!1),[S,T]=l.useState(),V=l.useRef(!1),[b,E]=l.useState(""),D=l.useRef(),L=l.useContext(De),{domain:x,getValues:F,getFields:O,getContext:C,elementHasLostFocus:P}=L||{},I=l.useRef([]),[_,$]=l.useState([]),A=r&&r[0]||void 0,M=r&&r[1]||"";l.useEffect(()=>{!Array.isArray(r)&&r&&j(r)},[r]),l.useEffect(()=>{A&&M.length===0?j(A):A&&M.length>0?E(M):!A&&!M&&E(D.current||"")},[r]);const N=Y=>{n==null||n(Y),P==null||P()},k=Y=>{D.current=Y.target.value,N([void 0,""])},W=async()=>{if(!m&&b!==M){if(await new Promise(Y=>setTimeout(Y,100)),V.current){N([void 0,""]);return}v(!0);try{if(I.current&&I.current.length>0)z(D.current);else{const Y=await K.getHandler().nameSearch({model:i,payload:D.current,context:{...C==null?void 0:C(),...c}});Y.length===1?(D.current=void 0,N(Y[0])):z(D.current)}}catch(Y){Et(Y)}finally{v(!1)}}},z=async Y=>{if(await G(),I.current&&I.current.length>0){const R=await K.getHandler().searchAllIds({params:I.current,model:i,context:{...C==null?void 0:C(),...c},totalItems:2});R.length===1?j(R[0]):(T(Y),g(!0));return}T(Y),g(!0)},j=async Y=>{v(!0);try{const R=await K.getHandler().execute({action:"name_get",payload:[Y],model:i,context:{...C==null?void 0:C(),...c}});N([Y,R[0][1]])}catch(R){Et(R)}finally{v(!1)}};async function G(){d&&(I.current=await K.getHandler().evalDomain({domain:d,values:ct({fields:O(),values:F()}),fields:O(),context:C()})),x&&x.length>0&&(I.current=I.current.concat(se.transformDomainForChildWidget({domain:x,widgetFieldName:h}))),$(I.current)}async function Z(Y){Y.keyCode===13?(Y.preventDefault(),Y.stopPropagation(),await W()):Y.code==="Backspace"&&A!==void 0&&(Y.preventDefault(),Y.stopPropagation(),N([void 0,""]))}const H=o&&!a?Ha:p.Input;return e.jsxs(p.Row,{gutter:8,wrap:!1,children:[e.jsx(p.Col,{flex:"auto",children:e.jsx(H,{type:"text",value:b,disabled:a,onChange:k,style:f,onBlur:W,onKeyDown:Z,suffix:e.jsx(er,{id:A,model:i,context:{...C==null?void 0:C(),...c}})})}),e.jsx(p.Col,{flex:"32px",style:{paddingRight:0},children:e.jsx(p.Button,{icon:e.jsx(B.FolderOpenOutlined,{}),disabled:A===void 0||M===""||b===void 0,onClick:()=>{y(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(p.Col,{flex:"32px",style:{paddingLeft:0},children:e.jsx(p.Button,{icon:m?e.jsx(B.LoadingOutlined,{}):e.jsx(B.SearchOutlined,{}),disabled:a||m,onClick:()=>{V.current=!0,z(M)},style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},tabIndex:-1})}),e.jsx(rr,{model:i,domain:_,context:{...C==null?void 0:C(),...c},visible:u,nameSearch:A?void 0:S,onSelectValues:Y=>{g(!1),j(Y[0]),V.current=!1,D.current=void 0},onCloseModal:()=>{g(!1),V.current=!1}}),e.jsx(ft,{model:i,parentContext:{...C==null?void 0:C(),...c},id:r&&r[0],visible:w,onSubmitSucceed:Y=>{y(!1),j(Y)},onCancel:()=>{y(!1)},mustClearAfterSave:!0,readOnly:a})]})},Ha=yt.default(p.Input)`
32
32
  .ant-input {
33
- background-color: ${vn.colorPrimaryBg};
33
+ background-color: ${wn.colorPrimaryBg};
34
34
  }
35
- `,Sn=Be.default.createContext(null),Ka=({children:t,initialView:r})=>{const[n,s]=l.useState(r),[o,i]=l.useState(0),[a,c]=l.useState(!1);return e.jsx(Sn.Provider,{value:{currentView:n,setCurrentView:s,itemIndex:o,setItemIndex:i,manualTriggerChange:a,setManualTriggerChange:c},children:t})},{getValueForOperator:bn}=ie.graphProcessor,Et=.7,It=30,xn=t=>{const{model:r,domain:n,context:s,colorCondition:o,totalDomain:i,showPercent:a=!1,icon:c,suffix:h,field:d,operator:f,manualIds:u}=t,[g,w]=l.useState(!1),[y,m]=l.useState(),[v,C]=l.useState(),[F,E]=l.useState(),[S,V]=l.useState(0),[k,L]=l.useState(0),[x,T]=l.useState(),[b,_]=l.useState(),[N,A]=l.useState();l.useEffect(()=>{$()},[r,o]);async function O({domain:M,isTotal:B}){if(B)return await I({domain:M});if(d&&f){const D=u||await K.getHandler().searchAllIds({params:M,model:r,context:s}),W=await K.getHandler().readObjects({model:r,ids:D,fieldsToRetrieve:[d],context:s});return bn({values:W.map(j=>j[d]),operator:f})}else return u?u.length:await K.getHandler().searchCount({model:r,params:M,context:s})}async function I({domain:M}){if(d&&f){const B=await K.getHandler().searchAllIds({params:M,model:r,context:s}),D=await K.getHandler().readObjects({model:r,ids:B,fieldsToRetrieve:[d],context:s});return bn({values:D.map(W=>W[d]),operator:f})}else return await K.getHandler().searchCount({model:r,params:M,context:s})}async function $(){w(!0);let M,B;try{const D=await O({domain:n,isTotal:!1});if(m(D),i){const W=await K.getHandler().evalDomain({domain:i,values:{},context:s});M=await O({domain:W,isTotal:!0}),E(M)}if(M?(B=Math.round(D/M*100*100)/100,C(B)):C(0),o){const W=await K.getHandler().parseCondition({condition:o,values:{value:D,percent:B},context:s});T(W)}if(c)if(c.indexOf(":")!==-1){const W=await K.getHandler().parseCondition({condition:c,values:{value:D,percent:B},context:s});_(W)}else _(c)}catch(D){A(JSON.stringify(D))}w(!1)}return N?e.jsx(p.Alert,{className:"mt-10",message:N,type:"error",banner:!0}):g?e.jsx("div",{style:{padding:"1rem"},children:e.jsx(H.LoadingOutlined,{style:{height:"12px"}})}):e.jsx(Yt.default,{bounds:!0,onResize:M=>{var B,D;V((B=M.bounds)==null?void 0:B.height),L((D=M.bounds)==null?void 0:D.width)},children:({measureRef:M})=>a?e.jsx(Wa,{value:y,total:F,percent:v,measureRef:M,height:S,width:k,color:x,icon:b,suffix:h}):e.jsx(Ya,{value:y,total:F,measureRef:M,height:S,width:k,color:x,icon:b,suffix:h})})};function Tn(t,r){const s=document.createElement("canvas").getContext("2d");return s.font=r||getComputedStyle(document.body).font,s.measureText(t).width}function Ya({measureRef:t,width:r,height:n,total:s,value:o,color:i,icon:a,suffix:c}){let h=n*Et<It?It:n*Et;const d=o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0});let f=s?`${d}/${s}`:`${d}`;c&&(f+=" "+c);let u=Tn(f,`bold ${Math.floor(h*1.03)}px sans-serif`);a&&(u=u*2),u>=r*.85&&(h=r*.85/u*h);const g=a&&Ge(a,{style:{fontSize:h*.7}});return e.jsx("div",{ref:t,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:e.jsxs(Wt.default,{style:{fontSize:h,margin:0,color:i},children:[g&&e.jsx(g,{style:{fontSize:h*.7}}),g?` ${f}`:f]})})}function Wa({measureRef:t,height:r,width:n,percent:s,total:o,value:i,color:a,icon:c,suffix:h}){const d=r*.65;let f=d*Et<It?It:d*Et;const u=i==null?void 0:i.toLocaleString("es-ES",{useGrouping:!0});let g=o?`${u}/${o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0})}`:`${u}`;h&&(g+=" "+h);const w=`${s==null?void 0:s.toLocaleString("es-ES",{useGrouping:!0})}%`;let y=Tn(w,`bold ${Math.floor(f*1.03)}px sans-serif`);c&&(y=y*1.5),(y>=n*.85||f*2<d)&&(f=n*.85/y*f);const m=c&&Ge(c,{style:{fontSize:f}});return 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(p.Row,{align:"middle",children:[m&&e.jsx(p.Col,{style:{fontSize:f*1,color:a,paddingRight:"10px"},children:e.jsx(m,{})}),e.jsxs(p.Col,{children:[e.jsx(Wt.default,{style:{fontSize:f*.8,margin:0,color:a},children:m?` ${s}%`:`${s}%`}),e.jsx(Wt.default,{style:{fontSize:f*.4,margin:0,color:a,textAlign:"center"},children:g})]})]})})}const rr=t=>r=>{const n=r.value.toLocaleString("es-ES",{useGrouping:!0});return{name:t==="pie"?r.x:r.type,value:n}},$t=t=>{if(typeof t=="string"&&qa(t))return parseFloat(t).toLocaleString("es-ES",{useGrouping:!0});if(Ua(t))return t.toLocaleString("es-ES",{useGrouping:!0});if(Ga(t)){const r=ja(t);return r===null?t:je(t,At.input[r]).format(At.output[r])}else return t},qa=t=>/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/.test(t),Ua=t=>typeof t=="number"&&!isNaN(t),Fn={default:{padding:"auto",xAxis:{tickCount:5,label:{formatter:$t}},yAxis:{label:{formatter:$t}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:rr("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:rr("pie")},interactions:[{type:"element-active"}]},barGrouped:{isGroup:!0,legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:rr("barGrouped")},xAxis:{label:{formatter:$t}},yAxis:{label:{formatter:$t}},label:{position:"middle",layout:[{type:"interval-adjust-position"},{type:"interval-hide-overlap"},{type:"adjust-color"}]}}};function Ga(t){return typeof t!="string"||t===void 0?!1:new Date(t).toString()!=="Invalid Date"}const At={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 ja(t){for(const r in At.input)if(je(t,At.input[r],!0).isValid())return r;return null}const{processGraphData:za}=ie.graphProcessor,{getFieldsToRetrieve:Ja}=ie.graphFieldUtils,Za=t=>{const{model:r,domain:n=[],context:s={},xml:o,limit:i,uninformedString:a,manualIds:c}=t,[h,d]=l.useState(!1),[f,u]=l.useState(),[g,w]=l.useState(),[y,m]=l.useState(),[v,C]=l.useState("line");return et.default(()=>{(async()=>{d(!0),u(void 0);const F=ie.parseGraph(o);C(F.type||"line");const E=Ja({ooui:F});let S,V;try{({values:S,fields:V}=await Qa({model:r,domain:n,context:s,limit:i,order:F.timerange?F.x.name:null,fields:E,manualIds:c}))}catch(k){u("Error fetching graph data values: "+JSON.stringify(k)),d(!1);return}try{if(!S||!V){u("No values or fields returned"),d(!1);return}m(S);const k=za({ooui:F,values:S,fields:V,options:{uninformedString:a}});w(k)}catch(k){u("Error processing graph data: "+k),d(!1);return}d(!1)})()},[o,r,i,s,n]),{loading:h,error:f,type:v,values:g,evaluatedEntries:y}};async function Xa({model:t,context:r,fields:n}){return await K.getHandler().getFields({model:t,context:r,fields:n})}async function Qa({fields:t,model:r,domain:n,context:s,order:o,limit:i,manualIds:a}){const c=await Xa({model:r,context:s,fields:t});if(a){let d=await K.getHandler().readObjects({model:r,ids:a,fieldsToRetrieve:t,context:s});return o&&(d=[...d].sort((f,u)=>f[o]-u[o])),{values:d,fields:c}}return{values:await K.getHandler().search({model:r,params:n,fields:t,context:s,limit:i,order:o}),fields:c}}const Ra={line:Kt.Line,bar:Kt.Column,pie:Kt.Pie},el=t=>{var C;const{model:r,domain:n,context:s,xml:o,limit:i,manualIds:a}=t,{t:c}=l.useContext(ge),{error:h,loading:d,values:f,type:u,evaluatedEntries:g}=Za({model:r,xml:o,limit:i,domain:n,context:s,uninformedString:c("uninformed"),manualIds:a});if(h)return e.jsx(p.Alert,{message:h,type:"error",banner:!0});if(d)return e.jsx(p.Spin,{});if(!f)return e.jsx(p.Alert,{message:"No data to display",type:"info"});const{data:w,isGroup:y,isStack:m}=f,v=Ra[u];return v?e.jsxs("div",{style:{padding:"1rem"},children:[e.jsx("p",{style:{textAlign:"right"},children:`${c("totalRegisters")} ${(C=g==null?void 0:g.length)==null?void 0:C.toLocaleString("es-ES",{useGrouping:!0})}`}),e.jsx(v,{...tl({type:u,data:w,isGroup:y,isStack:m})})]}):e.jsx(e.Fragment,{children:`Unknown graph type: ${u}`})};function tl(t){const{type:r,data:n,isGroup:s,isStack:o}=t;let i=Fn[r];return i||(i=Fn.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 rl=(t,r)=>{const{view_id:n,model:s,context:o,domain:i,limit:a,manualIds:c}=t,[h,d]=l.useState(!1),[f,u]=l.useState(),[g,w]=l.useState(),y=l.useContext(We),{setGraphIsLoading:m=void 0}=y||{};l.useImperativeHandle(r,()=>({refresh:()=>{v()}})),l.useEffect(()=>{v()},[n]);async function v(){d(!0),m==null||m(!0);try{const C=await K.getHandler().getView({model:s,id:n,type:"graph",context:o});w(C.arch);const F=ie.parseGraph(C.arch);u(F)}catch(C){return console.error(C),e.jsx(e.Fragment,{children:JSON.stringify(C)})}d(!1),m==null||m(!1)}if(h)return e.jsx("div",{style:{width:"100%",display:"flex",height:"20%",justifyContent:"center",alignContent:"center",padding:"1rem"},children:e.jsx(H.LoadingOutlined,{style:{height:"12px"}})});if(!f)return null;switch(f.type){case"indicatorField":case"indicator":{const C=f,F=C.type==="indicatorField"?{field:C.field,operator:C.operator}:{};return e.jsx(xn,{showPercent:C.showPercent,totalDomain:C.totalDomain,colorCondition:C.color,model:s,context:o,domain:i,icon:C.icon,suffix:C.suffix,manualIds:c,...F})}case"line":case"bar":case"pie":return e.jsx(el,{model:s,context:o,domain:i,xml:g,limit:a,manualIds:c});default:return e.jsx(e.Fragment,{children:`Graph ${f.type} not implemented`})}},Lt=l.forwardRef(rl),{confirm:nl}=p.Modal,ol=({onOk:t,lang:r})=>{nl({title:be("removeItems",r),icon:e.jsx(H.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmRemove",r),okText:be("yesConfirmRemove",r),onOk:t,cancelText:be("cancel",r)})},{confirm:sl}=p.Modal,il=({onOk:t,lang:r})=>{sl({title:be("unlinkItems",r),icon:e.jsx(H.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmUnlink",r),okText:be("yesConfirmUnlink",r),onOk:t,cancelText:be("cancel",r)})},{useToken:al}=p.theme,ll=t=>{const{title:r,readOnly:n,onCreateItem:s,onToggleViewMode:o,mode:i,onDelete:a,totalItems:c,currentItemIndex:h,onPreviousItem:d,onNextItem:f,isMany2Many:u,onSearchItem:g,selectedRowKeys:w,showCreateButton:y,showToggleButton:m}=t,{token:v}=al();function C(){return e.jsx("div",{className:"inline-block w-3"})}function F(){return e.jsx("div",{className:"flex flex-grow h-8 text-white",style:{borderRadius:v.borderRadius,backgroundColor:v.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 E(){return e.jsx(He,{tooltip:u?"Unlink":"Delete",icon:u?e.jsx(H.ApiOutlined,{}):e.jsx(H.DeleteOutlined,{}),onClick:a,disabled:c===0||n||i!=="form"&&w.length===0})}function S(){let k="_";return c===0?k="_":k=(h+1).toString(),e.jsxs("span",{className:"pl-1 pr-1",children:["(",k,"/",c,")"]})}function V(){return e.jsxs(e.Fragment,{children:[C(),e.jsx(He,{tooltip:"Previous item",icon:e.jsx(H.LeftOutlined,{}),onClick:d}),S(),e.jsx(He,{tooltip:"Next item",icon:e.jsx(H.RightOutlined,{}),onClick:f})]})}return e.jsxs("div",{className:"flex mb-2",children:[F(),e.jsxs("div",{className:"flex-none h-8 pl-2",children:[i!=="graph"&&y&&e.jsx(He,{tooltip:"Create new item",icon:e.jsx(H.FileAddOutlined,{}),disabled:n,onClick:s}),u&&y&&e.jsx(He,{tooltip:"Search existing item",icon:e.jsx(H.SearchOutlined,{}),disabled:n,onClick:g}),i!=="graph"&&C(),i!=="graph"&&E(),i==="form"&&V(),C(),m&&e.jsx(He,{tooltip:"Toggle view mode",icon:e.jsx(H.AlignLeftOutlined,{}),onClick:o})]})]})},cl={form:ie.Form,tree:ie.Tree,graph:Lt};function dl(t){const r=t.map(s=>s.id);return t.filter((s,o)=>{const{id:i}=s;return!r.includes(i,o+1)})}const ul=t=>{var Ae;const{value:r,onChange:n,ooui:s,views:o}=t,{items:i=[]}=r||{},{currentView:a,setCurrentView:c,itemIndex:h,setItemIndex:d}=l.useContext(Sn),f=l.useContext(Ve),{activeId:u,getFields:g,getValues:w,getContext:y,domain:m}=f||{},{lang:v,t:C}=l.useContext(ge),[F,E]=l.useState(!1),[S,V]=l.useState(!1),[k,L]=l.useState(),[x,T]=l.useState(!1),[b,_]=l.useState(!1),[N,A]=l.useState(),[O,I]=l.useState([]),[$,M]=l.useState(!1),B=l.useRef([]),[D,W]=l.useState(),j=l.useRef(),[z,X]=l.useState(void 0),{readOnly:q,relation:P,context:Y,domain:te}=s,re=s.type==="many2many",{id:ne}=s,Q=i.filter(R=>(R.values||R.treeValues)&&R.operation!=="pendingRemove"),Z=l.useRef();l.useEffect(()=>{if(Z.current!==a){Z.current=a,ue();return}ue()},[i,a]);const ue=l.useCallback(()=>{(a==="form"&&i.some(R=>!R.values)||a==="tree"&&i.some(R=>!R.treeValues))&&Ee()},[i,a]);l.useEffect(()=>{Ie()},[m]);const we=R=>{var le,Ce;n==null||n({fields:((le=o.get("form"))==null?void 0:le.fields)||((Ce=o.get("tree"))==null?void 0:Ce.fields),items:dl(R)})},Ee=async()=>{await Oe(),h>Q.length-1&&h!==0&&d(0)},Oe=async R=>{var le,Ce,ye;V(!0),E(!1),L(void 0);try{const[Se,xe]=await zt({treeView:{arch:(le=o.get("tree"))==null?void 0:le.arch,fields:(Ce=o.get("tree"))==null?void 0:Ce.fields},formView:{fields:((ye=o.get("form"))==null?void 0:ye.fields)||{}},model:P,items:i,context:{...y==null?void 0:y(),...Y},currentView:R||a});return j.current||(j.current=Se.map(Te=>Te.id)),(a||R)==="tree"&&xe&&X(xe),we(Se),Se}catch(Se){L(Se)}finally{V(!1)}};async function Ie(){te&&(B.current=await K.getHandler().evalDomain({domain:te,values:ct({fields:g(),values:w()}),fields:g(),context:y()})),m&&m.length>0&&(B.current=B.current.concat(ie.transformDomainForChildWidget({domain:m,widgetFieldName:ne})))}const Ne=()=>{const R=Array.from(o.keys()),le=R[(R.indexOf(a)+1)%R.length];a==="form"?ve(()=>{c(le)}):c(le)},ae=()=>{h>0&&(a==="form"?ve(()=>{d(h-1)}):d(h-1))},de=()=>{const R=Q.length;h<R-1&&(a==="form"?ve(()=>{d(h+1)}):d(h+1))},$e=async()=>{const R=Q[h].id,le=(await K.getHandler().readObjects({model:P,ids:[R],fields:o.get("form").fields,context:{...y==null?void 0:y(),...Y}}))[0],Ce=(await K.getHandler().readObjects({model:P,ids:[R],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...Y}}))[0],ye=i.map(Se=>Se.id===R?{...Se,operation:"original",values:le,treeValues:Ce}:Se);we(ye)},ve=R=>{F?wt({lang:v,onOk:()=>{$e(),R(),E(!1)}}):R()},De=()=>{if(re){il({lang:v,onOk:()=>{a==="form"?Fe():_e()}});return}ol({lang:v,onOk:()=>{a==="form"?Fe():_e()}})},Ye=async()=>{const{inv_field:R}=s;let le;R&&u&&(le={[R]:u}),a==="form"?ve(()=>{M(!0),A({defaultValues:le}),T(!0)}):(M(!0),A({defaultValues:le}),T(!0))},ee=async()=>{a==="form"?ve(()=>{_(!0)}):_(!0)},Fe=async()=>{V(!0),E(!1),L(void 0);try{if(Q[h].id>0){const R=i.map(le=>le.id===Q[h].id?{...le,operation:"pendingRemove"}:le);we(R)}else we(i.filter(R=>R.id!==Q[h].id))}catch(R){L(R)}d(0),V(!1)},_e=async()=>{const R=Q.filter(le=>O.includes(le.id));V(!0),E(!1),L(void 0);try{const le=R.map(ye=>ye.id),Ce=i.filter(ye=>!(le.includes(ye.id)&&ye.id<0)).map(ye=>le.includes(ye.id)?{...ye,operation:"pendingRemove"}:ye);we(Ce)}catch(le){L(le)}d(0),V(!1)},ke=(R,le,Ce,ye=!1)=>{let Se;if(ye)Se=i.concat({id:R,operation:"pendingLink",values:{...Ce,id:R},treeValues:{...Ce,id:R}});else if(R)Se=i.map(xe=>xe.id===R?{id:R,operation:R>0?"pendingUpdate":"pendingCreate",values:{...Ce,id:R},treeValues:{...Ce,id:R}}:xe);else{const xe=di(i);Se=i.concat({id:xe,operation:"pendingCreate",values:{...Ce,id:xe},treeValues:{...Ce,id:xe}})}we(Se),$||T(!1)},ce=async R=>{const{id:le}=R;let Ce=i;const ye=i.find(Se=>Se.id===le);(ye==null?void 0:ye.values)===void 0&&(Ce=await Oe("form")),A(Ce.find(Se=>Se.id===le)),M(!1),T(!0)},he=async R=>{V(!0);let le=i;const Ce=R.filter(ye=>!i.find(Se=>Se.id===ye));try{for(const ye of Ce){const Se=(await K.getHandler().readObjects({model:P,ids:[ye],fields:o.get("form").fields,context:{...y==null?void 0:y(),...Y}}))[0],xe=(await K.getHandler().readObjects({model:P,ids:[ye],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...Y}}))[0];le.push({id:ye,operation:"pendingLink",values:Se,treeValues:xe})}we(le)}catch(ye){L(ye)}finally{V(!1)}};function Pe(){const R=cl[a];if(a==="graph")return ie.parseGraph(o.get("graph").arch).string;{const le=new R(o.get(a).fields);return le.parse(o.get(a).arch),le.string}}const fe=()=>{var le,Ce,ye,Se;if(a==="form")return Q.length===0?C("noCurrentEntries"):a!==Z.current&&i.some(xe=>!xe.values)?e.jsx(p.Spin,{}):e.jsx(ut,{formView:o.get("form"),values:(le=Q[h])==null?void 0:le.values,parentContext:{...y==null?void 0:y(),...Y},model:P,id:(Ce=Q[h])==null?void 0:Ce.id,submitMode:"values",onFieldsChange:xe=>{var Ze;const Te=(Ze=Q[h])==null?void 0:Ze.id,Me=i.map(rt=>rt.id===Te?{...rt,operation:rt.operation==="original"?"pendingUpdate":rt.operation,values:{...xe,id:Te},treeValues:{...xe,id:Te}}:rt);we(Me),E(!0)},readOnly:q});let R=[];if(Q.some(xe=>xe.treeValues)&&(R=D?at({resultsToSort:Q.map(xe=>xe.treeValues),sorter:D,fields:{...o.get("tree").fields,...((ye=o.get("form"))==null?void 0:ye.fields)||{}}}):Q.map(xe=>xe.treeValues)),a==="tree")return e.jsx(bt,{total:Q.length,limit:Q.length,treeView:o.get("tree"),results:R,loading:S,onRowClicked:((Se=o.get("form"))==null?void 0:Se.fields)!==void 0?ce:void 0,showPagination:!1,rowSelection:{selectedRowKeys:O,onChange:I},sorter:D,onChangeSort:W,context:{...y==null?void 0:y(),...Y},colorsForResults:z,readonly:q});if(a==="graph"){const xe=[[`${s.inv_field}`,"=",u]];return e.jsx(Lt,{view_id:o.get("graph").view_id,model:s.relation,domain:xe,context:{...y==null?void 0:y(),...Y},limit:0})}};if(k)return e.jsx(p.Alert,{className:"mt-10",message:k,type:"error",banner:!0});const Je=$;return S?e.jsx(p.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(ll,{mode:a,title:Pe(),readOnly:q,isMany2Many:re,formHasChanges:F,totalItems:Q.length,currentItemIndex:h,onDelete:De,onCreateItem:Ye,onToggleViewMode:Ne,onPreviousItem:ae,onNextItem:de,onSearchItem:ee,selectedRowKeys:O,showCreateButton:((Ae=o.get("form"))==null?void 0:Ae.fields)!==void 0,showToggleButton:o.size>1}),fe(),e.jsx(ft,{formView:o.get("form"),model:P,id:N==null?void 0:N.id,submitMode:"2many",values:N==null?void 0:N.values,defaultValues:N==null?void 0:N.defaultValues,visible:x,onSubmitSucceed:ke,parentContext:{...y==null?void 0:y(),...Y},onCancel:()=>{M(!1),T(!1)},readOnly:q,mustClearAfterSave:Je}),e.jsx(tr,{domain:B.current,model:P,context:{...y==null?void 0:y(),...Y},visible:b,onSelectValues:async R=>{_(!1),he(R)},onCloseModal:()=>{_(!1)}})]})},On=t=>{const{ooui:r}=t,{mode:n,relation:s,views:o,required:i,context:a}=r;let c;const[h,d]=l.useState(!0),[f,u]=l.useState(),[g,w]=l.useState(new Map),y=l.useContext(Ve),{getContext:m}=y||{};et.default(()=>{C()},[r]);const v=async E=>o&&o[E]?o[E]:await K.getHandler().getView({model:s,type:E,context:{...m==null?void 0:m(),...a}}),C=async()=>{d(!0),u(void 0);try{if(n&&n.length>0){for(const E of n){const S=await v(E);g.set(E,S)}w(g)}else{const E=await v("form"),S=await v("tree");g.set("form",E),g.set("tree",S),w(g)}}catch(E){u(JSON.stringify(E))}finally{d(!1)}};if(n&&n.length>0?c=n[0]:c="tree",h)return e.jsx(p.Spin,{});if(f)return e.jsx(p.Alert,{className:"mt-10",message:f,type:"error",banner:!0});const F=async(E,S)=>{if(!S)throw new Error;if(!S.items)throw new Error;if(!Array.isArray(S.items))throw new Error;if(S.items.length===0)throw new Error};return e.jsx(Ka,{initialView:c,children:e.jsx(me,{required:i,type:"array",validator:F,...t,children:e.jsx(ul,{ooui:r,views:g})})})},{useToken:fl}=p.theme,_n=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"number",...t,children:e.jsx(hl,{ooui:r})})},hl=t=>{const{ooui:r,value:n,onChange:s}=t,{id:o,readOnly:i,required:a}=r,{token:c}=fl(),h=a&&!i?{backgroundColor:c.colorPrimaryBg}:void 0,d=l.useRef(),[f,u]=l.useState(),g=l.useContext(Ve),{elementHasLostFocus:w}=g||{};l.useEffect(()=>{u(ln(n))},[n]);const y=C=>{s==null||s(C)};function m(C){d.current=C.target.value,u(C.target.value)}async function v(){y(ga(f)),await new Promise(C=>setTimeout(C,300)),w==null||w()}return e.jsx(p.Input,{value:f,disabled:i,className:"w-full",style:h,id:o,placeholder:"00:00",onChange:m,onBlur:v})};function nr(t){const{ooui:r,showLabel:n=!0,responsiveBehaviour:s}=t,o=Ge(r.icon||"");return e.jsx(e.Fragment,{children:(r.label||o)&&n?e.jsx(yr.FieldSet,{label:r.label,icon:o,children:e.jsx(Zt,{container:r.container,responsiveBehaviour:s})}):e.jsx(Zt,{container:r.container,responsiveBehaviour:s})})}const{TabPane:pl}=p.Tabs;function Dn(t){const{ooui:r,responsiveBehaviour:n}=t,s=r.pages;function o(i){if(i){const a=Ge(i);return a&&e.jsx(a,{})}}return e.jsx(p.Tabs,{defaultActiveKey:"1",tabPosition:r.tabPosition,children:s.filter(i=>!i.invisible).map(i=>e.jsx(pl,{tab:e.jsxs(e.Fragment,{children:[o(i.icon)," ",i.label]}),children:e.jsx(nr,{ooui:i,showLabel:!1,responsiveBehaviour:n})},i.label))})}const{useToken:gl}=p.theme,{TextArea:or}=p.Input,kn=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o,height:i,translatable:a}=r,{token:c}=gl(),h=o&&!s?{backgroundColor:c.colorPrimaryBg}:void 0,d=l.useContext(Ve),{elementHasLostFocus:f}=d||{};return e.jsx(me,{required:o,...t,children:a?e.jsx(ml,{field:n,height:i,requiredStyle:h}):e.jsx(or,{disabled:s||a,style:{minHeight:i?i+"px":"100%",...h},rows:4,onBlur:f})})},ml=({value:t,field:r,requiredStyle:n,onChange:s,height:o})=>{const i=l.useContext(Ve),{activeId:a,activeModel:c,fetchValues:h,formHasChanges:d,elementHasLostFocus:f}=i||{},[u,g]=l.useState(!1),{t:w}=l.useContext(ge);return a?e.jsxs(e.Fragment,{children:[e.jsx("div",{onClick:()=>{if(d!=null&&d()){Xe(w("saveBeforeTranslate"));return}u||g(!0)},children:e.jsx(or,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",cursor:"pointer",pointerEvents:"none",...n},id:r,disabled:!0,rows:4,onBlur:f})}),e.jsx(kr,{id:a,model:c,field:r,visible:u,onCloseModal:()=>{g(!1)},onSubmitSucceed:()=>{g(!1),h==null||h()}})]}):e.jsxs(e.Fragment,{children:[e.jsx(p.Row,{gutter:8,wrap:!1,children:e.jsx(or,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",...n},id:r,rows:4,onBlur:f})}),e.jsx(p.Row,{justify:"end",style:{paddingTop:5},children:e.jsx(He,{tooltip:w("translate"),icon:e.jsx(H.TranslationOutlined,{}),onClick:async()=>{d!=null&&d()?Xe(w("saveBeforeTranslate")):Xe(w("enterTextBeforeTranslate"))},children:w("translate")})})]})},Mn=t=>{const{ooui:r}=t,{label:n,icon:s}=r,o=Ge(s||"");return e.jsx(p.Divider,{orientation:"left",className:"text-sm",children:(o||n)&&e.jsxs(p.Space,{children:[o?e.jsx(o,{}):null,n]})})},yl=({model:t,context:r,locale:n,selectedRegistersToExport:s,domain:o,limit:i,onClose:a})=>{const c=l.useRef({}),h=l.useRef(new Map),d=l.useCallback(async v=>{if(v.selectedKeys===void 0||v.selectedKeys.length===0){Xe(be("selectAtLeastOneField",n));return}let C=o;v.registersAmount==="selected"&&(s==null?void 0:s.length)!==0&&(C=[["id","in",s==null?void 0:s.map(S=>S.id)]]);const{datas:F}=await K.getHandler().exportData({model:t,fields:xl({keys:v.selectedKeys,fields:c.current}),domain:C,limit:v.registersAmount==="all"?0:i,context:r,format:v.exportType});a(),await new Promise(S=>setTimeout(S,200));const E=await st(F);_t(F,E.mime)},[n,t,o,i,r,a]),f=l.useCallback(async()=>{const v=await K.getHandler().getFields({model:t,context:r,fields:[]});return c.current["/"]=v,Vn({fields:v})},[t,r,c]),u=l.useCallback(async v=>{const F=ir(v,c.current)[sr(v)],E=F.relation,S=await K.getHandler().getFields({model:E,context:r,fields:[]});for(const[V,k]of Object.entries(S))S[V].string=wl({parentTitle:F.string,title:k.string});return c.current[v]=S,Vn({fields:S,parentKey:v})},[c.current,t,r]),g=l.useCallback(async()=>{const v=await Cl({model:t,context:r}),C=await bl({predefinedExports:v,fields:c.current,onGetFieldChilds:u});return{predefinedExports:v.map(E=>({...E,fields:E.fields.map(S=>{const V=sr(S.key),L=ir(S.key,c.current)[V];return{key:S.key,title:L.string}})})),keysWithChilds:C}},[c.current]),w=l.useCallback(async v=>{const C=await m("ir.exports"),F=await m("ir.exports.line"),E=await K.getHandler().create({model:"ir.exports",values:{name:v.name,resource:t},fields:C,context:r});return await Promise.all(v.fields.map(async S=>await K.getHandler().create({model:"ir.exports.line",values:{name:S.key,export_id:E},fields:F,context:r}))),{...v,id:E}},[]),y=l.useCallback(async v=>{await K.getHandler().deleteObjects({model:"ir.exports",ids:[v.id]})},[]),m=l.useCallback(async v=>{if(h.current.has(v))return h.current.get(v);const C=K.getHandler().getFields({model:v,context:r,fields:[]});h.current.set(v,C)},[h,r]);return{onGetFields:f,onGetFieldChilds:u,onExport:d,onGetPredefinedExports:g,onSavePredefinedExport:w,onRemovePredefinedExport:y}},Vn=({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=En(o);n.push({key:vl({key:s,parentKey:r}),title:o.string,tooltip:o.help,required:o.required,isLeaf:!i})}return n},En=t=>t.type==="many2one"||t.type==="one2many"||t.type==="many2many",vl=({parentKey:t,key:r})=>`${t?t+"/":""}${r}`,xt=t=>t.indexOf("/")===-1?t:t.split("/").slice(0,-1).join("/"),sr=t=>{if(t.indexOf("/")===-1)return t;const r=t.split("/");return r[r.length-1]},ir=(t,r)=>t.indexOf("/")===-1?r["/"]:r[xt(t)],wl=({title:t,parentTitle:r})=>`${r?r+" \u2192 ":""}${t}`,Cl=async({model:t,context:r})=>{const n=await K.getHandler().search({model:"ir.exports",params:[["resource","=",t]],context:r}),s=n.flatMap(i=>i.export_fields),o=await K.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(h=>h.id===a).name}))}))},Sl=({fields:t,keys:r})=>Tl([...new Set(r.filter(n=>{var s,o,i;if(n.indexOf("/")===-1)return!((s=t["/"])!=null&&s[n]);{const a=xt(n);console.log({key:n,parentKey:a,fields:t});const c=(o=t==null?void 0:t[xt(n)])==null?void 0:o[n];return console.log({exists:c}),!((i=t==null?void 0:t[xt(n)])!=null&&i[n])}}).map(n=>xt(n)))]),bl=async({predefinedExports:t,fields:r,onGetFieldChilds:n})=>{const s=t.flatMap(a=>a.fields.map(c=>c.key)),o=Sl({fields:r,keys:s}),i=[];for(const a of o)i.push({key:a,childs:await n(a)});return i},xl=({keys:t,fields:r})=>t.map(n=>{const s=sr(n),i=ir(n,r)[s];return En(i)?`${n}/id`:n}),Tl=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},In=t=>{const{visible:r,locale:n,onClose:s,model:o,context:i,selectedRegistersToExport:a,totalRegisters:c,domain:h,limit:d,visibleRegisters:f}=t,{onExport:u,onGetFieldChilds:g,onGetFields:w,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:v}=yl({model:o,context:i,domain:h,limit:d,selectedRegistersToExport:a,onClose:s,locale:n});return e.jsx(yr.ExportModal,{visible:r,locale:n,onSucceed:u,onCancel:s,selectedRegistersToExport:a&&a.length&&a.length>0?a.length:void 0,totalRegisters:c,onGetFieldChilds:g,onGetFields:w,visibleRegisters:f,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:v})},$n=t=>{const{ooui:r}=t;return e.jsx(gn,{ooui:r})},An=t=>{const{ooui:r}=t;return e.jsx(gn,{ooui:r,showTime:!0})};var Ln={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={},h=function(m){return(m=+m)+(m>68?1900:2e3)},d=function(m){return function(v){this[m]=+v}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(v){if(!v||v==="Z")return 0;var C=v.match(/([+-]|\d\d)/g),F=60*C[1]+(+C[2]||0);return F===0?0:C[0]==="+"?-F:F}(m)}],u=function(m){var v=c[m];return v&&(v.indexOf?v:v.s.concat(v.f))},g=function(m,v){var C,F=c.meridiem;if(F){for(var E=1;E<=24;E+=1)if(m.indexOf(F(E,0,v))>-1){C=E>12;break}}else C=m===(v?"pm":"PM");return C},w={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,d("seconds")],ss:[i,d("seconds")],m:[i,d("minutes")],mm:[i,d("minutes")],H:[i,d("hours")],h:[i,d("hours")],HH:[i,d("hours")],hh:[i,d("hours")],D:[i,d("day")],DD:[o,d("day")],Do:[a,function(m){var v=c.ordinal,C=m.match(/\d+/);if(this.day=C[0],v)for(var F=1;F<=31;F+=1)v(F).replace(/\[|\]/g,"")===m&&(this.day=F)}],M:[i,d("month")],MM:[o,d("month")],MMM:[a,function(m){var v=u("months"),C=(u("monthsShort")||v.map(function(F){return F.slice(0,3)})).indexOf(m)+1;if(C<1)throw new Error;this.month=C%12||C}],MMMM:[a,function(m){var v=u("months").indexOf(m)+1;if(v<1)throw new Error;this.month=v%12||v}],Y:[/[+-]?\d+/,d("year")],YY:[o,function(m){this.year=h(m)}],YYYY:[/\d{4}/,d("year")],Z:f,ZZ:f};function y(m){var v,C;v=m,C=c&&c.formats;for(var F=(m=v.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(T,b,_){var N=_&&_.toUpperCase();return b||C[_]||n[_]||C[N].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(A,O,I){return O||I.slice(1)})})).match(s),E=F.length,S=0;S<E;S+=1){var V=F[S],k=w[V],L=k&&k[0],x=k&&k[1];F[S]=x?{regex:L,parser:x}:V.replace(/^\[|\]$/g,"")}return function(T){for(var b={},_=0,N=0;_<E;_+=1){var A=F[_];if(typeof A=="string")N+=A.length;else{var O=A.regex,I=A.parser,$=T.slice(N),M=O.exec($)[0];I.call(b,M),T=T.replace(M,"")}}return function(B){var D=B.afternoon;if(D!==void 0){var W=B.hours;D?W<12&&(B.hours+=12):W===12&&(B.hours=0),delete B.afternoon}}(b),b}}return function(m,v,C){C.p.customParseFormat=!0,m&&m.parseTwoDigitYear&&(h=m.parseTwoDigitYear);var F=v.prototype,E=F.parse;F.parse=function(S){var V=S.date,k=S.utc,L=S.args;this.$u=k;var x=L[1];if(typeof x=="string"){var T=L[2]===!0,b=L[3]===!0,_=T||b,N=L[2];b&&(N=L[2]),c=this.$locale(),!T&&N&&(c=C.Ls[N]),this.$d=function($,M,B){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*$);var D=y(M)($),W=D.year,j=D.month,z=D.day,X=D.hours,q=D.minutes,P=D.seconds,Y=D.milliseconds,te=D.zone,re=new Date,ne=z||(W||j?1:re.getDate()),Q=W||re.getFullYear(),Z=0;W&&!j||(Z=j>0?j-1:re.getMonth());var ue=X||0,we=q||0,Ee=P||0,Oe=Y||0;return te?new Date(Date.UTC(Q,Z,ne,ue,we,Ee,Oe+60*te.offset*1e3)):B?new Date(Date.UTC(Q,Z,ne,ue,we,Ee,Oe)):new Date(Q,Z,ne,ue,we,Ee,Oe)}catch{return new Date("")}}(V,x,k),this.init(),N&&N!==!0&&(this.$L=this.locale(N).$L),_&&V!=this.format(x)&&(this.$d=new Date("")),c={}}else if(x instanceof Array)for(var A=x.length,O=1;O<=A;O+=1){L[1]=x[O-1];var I=C.apply(this,L);if(I.isValid()){this.$d=I.$d,this.$L=I.$L,this.init();break}O===A&&(this.$d=new Date(""))}else E.call(this,S)}}})})(Ln);const Fl=Ln.exports;je.extend(Fl);const Nn=t=>{const{ooui:r}=t;return e.jsx(me,{...t,children:e.jsx(Ol,{ooui:r})})},Ol=t=>{const r=(n,s)=>{t.onChange&&t.onChange(s)};return e.jsx(p.TimePicker,{onChange:r,value:t.value?je(t.value,"HH:mm:ss"):void 0})},Pn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(_l,{ooui:r})})},_l=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,selectionValues:i,readOnly:a}=s,c=r==null?void 0:r.split(","),[h,d]=l.useState([]),[f,u]=l.useState();return l.useEffect(()=>{if(!r){u(void 0),d([]);return}const g=r&&c&&c[0],w=r&&c&&c[1]&&parseInt(c[1]);d([w,void 0]),u(g)},[r]),e.jsxs(p.Row,{gutter:8,wrap:!1,children:[e.jsx(p.Col,{flex:"1",children:e.jsx(Mr,{ooui:new ie.Selection({name:"model_selection",selection:i,readonly:a,required:o}),onChange:g=>{u(g);let w=h[0]||0;g!==f&&(d([]),w=0);const y=`${g},${w}`;y!==r&&(n==null||n(y))},value:f})}),e.jsx(p.Col,{flex:"3",children:e.jsx(Cn,{ooui:new ie.Many2one({name:"object_value",relation:f,readonly:a,required:o}),value:h,onChange:g=>{d(g);const w=`${f},${g[0]||0}`;w!==r&&(n==null||n(w))}})})]})},{useToken:Dl}=p.theme,Bn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(kl,{ooui:r})})},kl=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o,required:i,filenameField:a}=r,{token:c}=Dl(),h=i&&!o?{backgroundColor:c.colorPrimaryBg}:void 0,d=l.useRef(null),{setFieldValue:f,getFieldValue:u}=l.useContext(Ve)||{},{t:g}=l.useContext(ge),w=n?oi(n):"",y=E=>{s==null||s(E)};async function m(){const E=await st(n),S=`data:${E==null?void 0:E.mime};base64,${n}`,V=document.createElement("a"),k=u(a),L=u("name");V.href=S,V.download=k||L,V.click()}async function v(){const E=await st(n);_t(n,E.mime)}async function C(E){E.stopPropagation(),E.preventDefault();const S=E.target.files[0],V=await Wr(S);y(V),a&&f(a,S.name)}function F(){f(a,void 0),y(void 0)}return e.jsxs(p.Row,{gutter:8,children:[e.jsxs(p.Col,{style:{paddingBottom:5},children:[e.jsx("input",{type:"file",id:"file",ref:d,style:{display:"none"},onChange:C}),e.jsx(p.Input,{type:"text",disabled:!0,style:h,value:w})]}),e.jsx(p.Col,{children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(H.FolderOpenOutlined,{}),disabled:o,onClick:()=>{d.current.click()},children:"Select"}),e.jsx(p.Button,{icon:e.jsx(H.EyeOutlined,{}),disabled:!n,onClick:v,children:g("open")}),e.jsx(He,{tooltip:g("download"),disabled:!n,onClick:m,icon:e.jsx(H.DownloadOutlined,{})}),e.jsx(He,{tooltip:g("clear"),disabled:o||!n,onClick:F,icon:e.jsx(H.ClearOutlined,{})})]})})]})},ar={tree:e.jsx(H.TableOutlined,{}),form:e.jsx(H.FormOutlined,{}),graph:e.jsx(H.AreaChartOutlined,{}),calendar:e.jsx(H.CalendarOutlined,{})};function Hn(t){return t?(ar==null?void 0:ar[t.type])||e.jsx(H.FormOutlined,{}):e.jsx(H.FormOutlined,{})}function lr(t){const{currentView:r,availableViews:n,onChangeView:s,disabled:o=!1,formHasChanges:i=!1,previousView:a}=t,{t:c,lang:h}=l.useContext(ge);function d(){const g=n.map((w,y)=>e.jsx(p.Menu.Item,{children:e.jsxs(p.Row,{wrap:!1,children:[e.jsx(p.Col,{flex:"none",style:{paddingRight:20},children:Hn(w)}),e.jsx(p.Col,{flex:"auto",style:{paddingRight:20},children:w.type.charAt(0).toUpperCase()+w.type.slice(1)}),e.jsx(p.Col,{flex:"none",children:e.jsx(H.CheckOutlined,{style:{opacity:r.view_id===w.view_id?1:0}})})]})},w.view_id||y));return e.jsx(p.Menu,{onClick:u,children:e.jsx(p.Menu.ItemGroup,{title:c("viewAs"),children:g})})}function f(g){if(i){wt({lang:h,onOk:()=>{g()}});return}g()}function u(g){f(()=>{const w=n.find(y=>y.view_id===parseInt(g.key));s(w)})}return e.jsxs("div",{style:{display:"flex"},children:[e.jsx(He,{tooltip:a?c("viewAs")+" "+c(a.type):"",icon:Hn(a),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:()=>{u({key:a==null?void 0:a.view_id})},disabled:o||n.length===1}),e.jsx(p.Dropdown,{overlay:d(),disabled:o||n.length===1,children:e.jsx(p.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:e.jsx(H.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:g=>g.preventDefault()})})]})}function ht(t){const{icon:r,tooltip:n,items:s=[],onItemClick:o,label:i,disabled:a=!1}=t;function c(){const d=s==null?void 0:s.map((f,u)=>f.name==="divider"?e.jsx(p.Menu.Divider,{},"divider"+u):e.jsx(p.Menu.Item,{children:f.name},f.id));return e.jsx(p.Menu,{onClick:h,children:e.jsx(p.Menu.ItemGroup,{title:n,children:d})})}function h(d){const f=s.find(u=>isNaN(d.key)?u.id===d.key:u.id===parseInt(d.key));o(f)}return e.jsx(p.Dropdown,{overlay:c(),disabled:a||!s||s.length===0,children:e.jsxs(p.Button,{children:[r," ",i," ",e.jsx(H.DownOutlined,{})]})})}function Ke(t){const{onClick:r,disabled:n=!1,loading:s=!1,tooltip:o,icon:i,label:a,type:c="default"}=t,h=s?e.jsx(H.LoadingOutlined,{}):i;return e.jsxs(He,{type:c,tooltip:o,onClick:r,disabled:n,children:[h,a]})}function Kn(t){const{disabled:r=!1}=t,{formHasChanges:n,onNewClicked:s}=l.useContext(We),{t:o,lang:i}=l.useContext(ge),a=()=>{if(n){wt({lang:i,onOk:()=>{s()}});return}s()};return e.jsx(Ke,{icon:e.jsx(H.FileAddOutlined,{}),tooltip:o("new"),onClick:a,disabled:r})}const{confirm:Ml}=p.Modal,Vl=({onOk:t,onCancel:r,lang:n})=>{Ml({title:be("unsavedChanges",n),icon:e.jsx(H.ExclamationCircleOutlined,{}),centered:!0,content:be("confirmRefreshWithoutSave",n),okText:be("discardAndRefresh",n),cancelText:be("cancel",n),onOk:t,onCancel:r})};async function Yn(t,r,n){const s=(await K.getHandler().getLogInfo({model:t,ids:[r]}))[0],{create_date:o,create_uid:i,id:a,write_date:c,write_uid:h}=s;Xe(e.jsxs("div",{children:["ID: "+a," ",e.jsx("br",{}),n("createdBy")+": "+i[1]," ",e.jsx("br",{}),n("creationDate")+": "+o," ",e.jsx("br",{}),n("lastUpdatedBy")+": "+h[1]," ",e.jsx("br",{}),n("lastUpdatedDate")+": "+c]}))}const El=t=>{const{numberOfAttachments:r,disabled:n}=t,{t:s,lang:o}=l.useContext(ge),[i,a]=l.useState(!1),c=e.jsxs(p.Button,{disabled:n,children:[e.jsx(H.LinkOutlined,{}),`(${r})`,e.jsx(H.DownOutlined,{style:{fontSize:12}})]});return n?c:e.jsx(p.Popover,{onVisibleChange:h=>a(h),visible:i,placement:"bottom",content:Il(t,a,o),title:s("attachments"),arrowContent:null,children:c})},Il=(t,r,n)=>{const{attachments:s=[],loading:o,onAddNewAttachment:i,onopenAttachmentLink:a,onOpenAttachmentDetail:c,onListAllAttachments:h}=t;return o?e.jsx(p.Spin,{style:{padding:20}}):e.jsxs(e.Fragment,{children:[e.jsxs("a",{style:{display:"block",paddingBottom:5},href:"#",onClick:()=>{r(!1),h()},children:[e.jsx(H.TableOutlined,{})," ",be("listAllAttachments",n)]}),e.jsxs("a",{style:{display:"block"},href:"#",onClick:()=>{r(!1),i()},children:[e.jsx(H.FileAddOutlined,{})," ",be("addNewAttachment",n)]}),s.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("li",{className:"ant-dropdown-menu-item-divider"}),s.map(d=>{const f=d.link?H.LinkOutlined:H.DownloadOutlined;return e.jsxs(p.Row,{style:{paddingTop:4,paddingBottom:4},wrap:!1,align:"middle",children:[e.jsx(p.Col,{flex:"auto",children:d.name}),e.jsx(p.Col,{flex:"25px",style:{textAlign:"center"},children:(d.datas_fname||d.link)&&e.jsx(p.Tooltip,{title:d.link?be("openAttachmentLink",n):be("download",n),children:e.jsx(f,{style:{cursor:"pointer"},onClick:()=>{r(!1),a(d)}})})}),e.jsx(p.Col,{flex:"25px",style:{textAlign:"center"},children:e.jsx(p.Tooltip,{title:be("openAttachment",n),children:e.jsx(H.FormOutlined,{style:{cursor:"pointer"},onClick:()=>{r(!1),c(d)}})})})]},d.id)})]})]})};function $l(t){const{attachments:r,disabled:n=!1,onAddNewAttachment:s,onListAllAttachments:o,onViewAttachmentDetails:i}=t,{formRef:a}=l.useContext(We),[c,h]=l.useState(!1),[d,f]=l.useState([]),[u,g]=l.useState(!1),{t:w}=l.useContext(ge),y=l.useCallback(async()=>{h(!0);try{const C=await K.getHandler().readObjects({model:"ir.attachment",ids:r.map(F=>F.id),fieldsToRetrieve:["name","datas_fname","link"],context:a.current.getContext()});f(C.map(F=>({id:F.id,name:F.name,datas_fname:F.datas_fname,link:F.link})))}catch(C){Le(C)}h(!1)},r),m=l.useCallback(async C=>{if(C.link){window.open(C.link);return}g(!0);let F;try{F=(await K.getHandler().readObjects({model:"ir.attachment",ids:[C.id],context:a.current.getContext()}))[0]}catch(E){Le(E)}if(g(!1),!!F)if(F.datas){const E=await st(F.datas);_t(F.datas,E.mime)}else i(F)},[]),v=l.useCallback(async C=>{i(C)},[]);return l.useEffect(()=>{y()},[y]),e.jsxs(e.Fragment,{children:[e.jsx(El,{numberOfAttachments:r.length,attachments:d,disabled:n,loading:c,onAddNewAttachment:s,onListAllAttachments:o,onopenAttachmentLink:m,onOpenAttachmentDetail:v}),e.jsx(p.Modal,{title:w("downloadingAttachment"),open:u,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(p.Spin,{})})]})}function Wn({toolbar:t}){const{availableViews:r,currentView:n,setCurrentView:s,onFormSave:o,formHasChanges:i,formIsSaving:a,currentId:c,results:h,setCurrentItemIndex:d,currentItemIndex:f,setCurrentId:u,currentModel:g,setRemovingItem:w,removingItem:y,duplicatingItem:m,setDuplicatingItem:v,setResults:C,formIsLoading:F,attachments:E,formRef:S,setFormHasChanges:V,previousView:k,setPreviousView:L,goToResourceId:x}=l.useContext(We),{t:T,lang:b}=l.useContext(ge),_=l.useContext(dt),{processAction:N}=_||{},A=l.useContext(ze),{openRelate:O,openDefaultActionForModel:I}=A||{};function $(P){if(i){Vl({lang:b,onOk:()=>{P()}});return}P()}function M(P){if(i){wt({lang:b,onOk:()=>{P()}});return}P()}function B(){h&&h.length>f+1?(d==null||d(f+1),u==null||u(h[f+1].id)):h&&f+1===h.length&&(d==null||d(0),u==null||u(h[0].id))}function D(){h&&f>0?(d==null||d(f-1),u==null||u(h[f-1].id)):h&&f===0&&(d==null||d(h.length-1),u==null||u(h[h.length-1].id))}function W(){ot({confirmMessage:T("confirmRemoveItem"),lang:b,onOk:()=>{j()}})}async function j(){try{w==null||w(!0),await K.getHandler().deleteObjects({model:g,ids:[c]});const P=h==null?void 0:h.filter(te=>te.id!==c);C==null||C(P);let Y=0;f>0&&f<=h.length-1&&(Y=f-1),P!=null&&P[Y]?(u==null||u(P==null?void 0:P[Y].id),d==null||d(Y)):(u==null||u(void 0),d==null||d(void 0))}catch(P){Vt(JSON.stringify(P))}finally{w==null||w(!1)}}async function z(){try{v==null||v(!0);const P=await K.getHandler().duplicate({id:c,model:g,context:S.current.getContext()});P&&await(x==null?void 0:x(P))}catch(P){Vt(JSON.stringify(P))}finally{v==null||v(!1)}}const X=a||y||F||m;function q(P){N==null||N({actionData:P,values:S.current.getValues(),fields:S.current.getFields(),context:S.current.getContext(),onRefreshParentValues:()=>{S.current.fetchValues()}})}return n?e.jsxs(p.Space,{wrap:!0,children:[F&&e.jsxs(e.Fragment,{children:[e.jsx(p.Spin,{}),pt(),pt()]}),e.jsx(Kn,{disabled:a||F||y||m}),e.jsx(Ke,{icon:e.jsx(H.SaveOutlined,{}),tooltip:T("save"),disabled:!i||X,loading:a,onClick:o}),e.jsx(Ke,{icon:e.jsx(H.CopyOutlined,{}),tooltip:T("duplicate"),disabled:i||a||c===void 0||m||F,loading:m,onClick:z}),e.jsx(Ke,{icon:e.jsx(H.DeleteOutlined,{}),tooltip:T("delete"),disabled:a||c===void 0||y||m||F,loading:y,onClick:W}),pt(),e.jsx(Ke,{icon:e.jsx(H.InfoCircleOutlined,{}),tooltip:T("showLogs"),disabled:a||c===void 0||y||m||F,loading:!1,onClick:()=>{Yn(g,c,T)}}),e.jsx(Ke,{icon:e.jsx(H.ReloadOutlined,{}),tooltip:T("refresh"),disabled:a||c===void 0||y||m||F,loading:!1,onClick:()=>{$(()=>{S.current.fetchValues()})}}),pt(),e.jsx(lr,{currentView:n,previousView:k,availableViews:r,onChangeView:P=>{L==null||L(n),V==null||V(!1),s==null||s(P)},disabled:X,formHasChanges:i}),pt(),e.jsxs(p.Space,{children:[e.jsx(Ke,{icon:e.jsx(H.LeftOutlined,{}),tooltip:T("previous"),disabled:X,loading:!1,onClick:()=>{M(D)}}),e.jsx(Ke,{icon:e.jsx(H.RightOutlined,{}),tooltip:T("next"),disabled:X,loading:!1,onClick:()=>{M(B)}})]}),pt(),e.jsx(ht,{icon:e.jsx(H.ThunderboltOutlined,{}),disabled:X,tooltip:T("actions"),items:t==null?void 0:t.action,onItemClick:async P=>{!P||!(await gt({onFormSave:o})).succeed||q(P)}}),e.jsx(ht,{icon:e.jsx(H.PrinterOutlined,{}),disabled:X,tooltip:T("reports"),items:t==null?void 0:t.print,onItemClick:async P=>{if(!P)return;const Y=await gt({onFormSave:o});!Y.succeed||q({...P,datas:{...P.datas||{},ids:[Y.currentId]}})}}),e.jsx(ht,{icon:e.jsx(H.EnterOutlined,{}),disabled:X,tooltip:T("related"),items:t==null?void 0:t.relate,onItemClick:async P=>{!P||!(await gt({onFormSave:o})).succeed||O({relateData:P,values:S.current.getValues(),fields:S.current.getFields(),action_id:P.id,action_type:P.type})}}),e.jsx($l,{disabled:X,attachments:E,onAddNewAttachment:async()=>{const P=await gt({onFormSave:o});if(!P.succeed)return;const Y=P.currentId,te=g;I({model:"ir.attachment",values:{selection_associated_object:`${te},${Y}`},forced_values:{res_model:te,res_id:Y},initialViewType:"form"})},onListAllAttachments:async()=>{const P=await gt({onFormSave:o});if(!P.succeed)return;const Y=P.currentId;I({model:"ir.attachment",domain:[["res_model","=",`${g}`],["res_id","=",`${Y}`]],initialViewType:"tree"})},onViewAttachmentDetails:async P=>{!(await gt({onFormSave:o})).succeed||I({model:"ir.attachment",res_id:P.id,initialViewType:"form"})}})]}):null}function pt(){return e.jsx("div",{className:"inline-block w-2"})}async function gt({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:Al}=p.theme,qn=t=>{const{ooui:r,value:n,onChange:s,valueValidator:o,linkPrefix:i=""}=t,{id:a,readOnly:c,required:h}=r,{token:d}=Al(),f=h&&!c?{backgroundColor:d.colorPrimaryBg}:void 0,u=l.useContext(Ve),{elementHasLostFocus:g}=u||{},[w,y]=l.useState(!1),[m,v]=l.useState(!1);l.useEffect(()=>{c&&!w&&v(!1),!n&&!c&&(y(!0),v(!0))},[w,c]);const C=F=>{s==null||s(F.target.value)};return e.jsxs(p.Row,{gutter:8,wrap:!1,align:"middle",children:[c?null:e.jsx(p.Col,{flex:"32px",children:w?e.jsx(p.Button,{icon:e.jsx(H.CheckOutlined,{}),onClick:()=>{o(n)&&(y(!1),v(!1))},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1}):e.jsx(p.Button,{icon:e.jsx(H.EditOutlined,{}),onClick:()=>{y(!0),v(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(p.Col,{flex:"auto",children:m?e.jsx(p.Input,{style:{borderTopLeftRadius:0,borderBottomLeftRadius:0,...f},id:a,onChange:C,value:n,onBlur:()=>{o(n)&&(y(!1),v(!1),g==null||g())}}):e.jsx("a",{href:`${i}${n}`,style:{color:d.colorPrimary,paddingRight:15},target:"_blank",children:n})})]})},Un=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(qn,{ooui:r,valueValidator:s=>s?ko.default(s):!1})})},Gn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(qn,{ooui:r,linkPrefix:"mailto:",valueValidator:s=>s?Mo.default(s):!1})})},Ll=t=>{const{visible:r,onIdSubmitted:n,onCancel:s,isSearching:o}=t,{t:i}=l.useContext(ge),a=l.useRef();function c(h){n(h.id)}return e.jsx(p.Modal,{title:i("goToResourceId"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:s,maskClosable:!1,afterOpenChange:h=>{var d;return h&&((d=a.current)==null?void 0:d.focus())},children:e.jsxs(p.Form,{layout:"vertical",onFinish:c,autoComplete:"off",children:[e.jsx(p.Form.Item,{name:"id",label:i("searchId"),rules:[{required:!0,type:"number"}],children:e.jsx(p.InputNumber,{style:{width:"100%"},autoFocus:!0,ref:a})}),e.jsx(p.Row,{align:"middle",justify:"end",children:e.jsx(p.Col,{children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(H.CloseOutlined,{}),htmlType:"button",onClick:s,disabled:o,children:i("cancel")}),e.jsx(p.Button,{loading:o,style:{marginLeft:15},icon:e.jsx(H.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:o,children:i("ok")})]})})})]})})},{useToken:Nl}=p.theme;function jn(t){const{badgeNumber:r=0,...n}=t,{token:s}=Nl();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(He,{...n,style:{width:46,zIndex:0}})]})}function Pl({refreshGraph:t}){const{t:r}=l.useContext(ge),{availableViews:n,currentView:s,setCurrentView:o,searchParams:i,searchVisible:a,setSearchVisible:c,graphIsLoading:h,previousView:d,setPreviousView:f}=l.useContext(We);return e.jsxs(p.Space,{wrap:!0,children:[e.jsx(jn,{icon:e.jsx(H.FilterOutlined,{style:{color:a?"white":void 0}}),tooltip:r("advanced_search"),type:a?"primary":"default",onClick:()=>{c==null||c(!a)},disabled:h,badgeNumber:i==null?void 0:i.length}),e.jsx(Ke,{icon:e.jsx(H.ReloadOutlined,{}),tooltip:r("refresh"),disabled:h,loading:!1,onClick:()=>{t()}}),e.jsx(lr,{currentView:s,availableViews:n,onChangeView:u=>{f==null||f(s),o==null||o(u)},disabled:!1,previousView:d})]})}const{useToken:Bl}=p.theme,{Title:Hl,Text:Nt}=p.Typography;function Pt(t){const{title:r,children:n}=t,{title:s,currentView:o,currentId:i,currentItemIndex:a,results:c,totalItems:h,selectedRowItems:d}=l.useContext(We),{t:f}=l.useContext(ge),{token:u}=Bl();function g(){if((o==null?void 0:o.type)==="form")return i?h===0?e.jsxs(e.Fragment,{children:[f("editingDocument")," (id:"," ",e.jsx(Nt,{copyable:{icon:e.jsx(H.CopyOutlined,{style:{color:"red"}})},children:i}),")"]}):e.jsxs(e.Fragment,{children:[f("register")," ",a===void 0?1:a+1," /"," ",c.length," ",f("of")," ",h," - ",f("editingDocument")," (id:"," ",e.jsx(Nt,{copyable:!0,children:i}),")"]}):"";if((o==null?void 0:o.type)==="tree"&&d){if(d.length===1)return e.jsxs(e.Fragment,{children:["1 ",f("selectedRegisters")," - (id:"," ",e.jsx(Nt,{copyable:!0,children:d[0].id}),")"]});if(d.length>1)return e.jsxs(e.Fragment,{children:[d.length," ",f("selectedRegisters"),e.jsx(Nt,{copyable:{text:d.map(w=>w.id).join(", ")}})]})}return null}return e.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[e.jsxs(p.Row,{className:"shadow-md",style:{padding:"1em",borderRadius:u.borderRadius,backgroundColor:u.colorPrimaryBg},align:"middle",children:[e.jsxs(p.Col,{flex:2,children:[e.jsx(Hl,{level:3,style:{marginBottom:0},children:r||s}),g()]}),e.jsx(p.Col,{flex:3,children:e.jsx(p.Row,{justify:"end",children:n})})]}),e.jsx("div",{className:"pb-5"})]})}const Kl=t=>{const{viewData:r,visible:n,model:s,context:o,domain:i,formView:a,treeView:c}=t,h=l.useRef(),d=l.useContext(We),{setResults:f=void 0,setCurrentItemIndex:u=void 0,currentId:g=void 0,results:w=void 0,setSelectedRowItems:y=void 0,setSearchParams:m=void 0,searchVisible:v=!0,setSearchVisible:C=void 0,sorter:F=void 0,setSorter:E=void 0,setTotalItems:S=void 0,setSearchTreeNameSearch:V=void 0,setTreeIsLoading:k=void 0,limit:L,setLimit:x,searchParams:T,searchValues:b,setSearchValues:_,currentView:N}=d||{},[A,O]=l.useState(!0);l.useEffect(()=>{var W;(W=h.current)==null||W.refresh()},[T]),l.useEffect(()=>{r.view_id!==N.view_id&&O(!0)},[N]);const{clear:I,searchFilterLoading:$,searchError:M,offset:B,tableRefreshing:D}=nn({model:s,setSearchTreeNameSearch:V,setSelectedRowItems:y,searchParams:T,setSearchValues:_,setSearchParams:m,setSearchVisible:C,setTreeIsLoading:k,context:o,formView:a,treeView:c,sorter:F,setSorter:E,setCurrentItemIndex:u,setResultsActionView:f,resultsActionView:w,domain:i,currentId:g,setActionViewTotalItems:S,limit:L,setLimit:x});return!n||!r?null:e.jsxs(e.Fragment,{children:[e.jsx(Pt,{title:r.name,children:e.jsx(Pl,{refreshGraph:()=>{h.current.refresh()}})}),e.jsx(Qt,{fields:{...c.fields,...a.fields},searchFields:zr([a.search_fields,c.search_fields]),limit:L,onClear:I,offset:B,isSearching:$,onSubmit:W=>{O(!1),m==null||m(W.params),C==null||C(!1)},searchError:M,searchVisible:v,searchValues:b,showLimitOptions:!1}),D?e.jsx(p.Spin,{}):e.jsx(Lt,{ref:h,view_id:r.view_id,model:s,context:o,domain:Mt(T||[],i),limit:A?L:void 0,manualIds:A?w==null?void 0:w.map(W=>W.id):void 0})]})},Yl=t=>{const{visible:r,formRef:n,model:s,currentId:o,domain:i,formView:a,context:c,defaultValues:h,forcedValues:d,results:f,setResults:u,setCurrentItemIndex:g}=t;return r?e.jsxs(e.Fragment,{children:[e.jsx(Pt,{children:e.jsx(Wn,{toolbar:a==null?void 0:a.toolbar})}),e.jsx(ut,{rootForm:!0,ref:n,model:s,defaultValues:h,forcedValues:d,formView:a,actionDomain:i,id:o,parentContext:c,onSubmitSucceed:(w,y)=>{f.findIndex(v=>v.id===w)===-1&&(f.push(y),u(f),g(f.length-1))}})]}):null};function Wl(t){const{onSearch:r,disabled:n=!1,searchText:s}=t,{t:o}=l.useContext(ge),[i]=p.Form.useForm(),[a,c]=l.useState(!1);function h(f){r(f.search)}l.useEffect(()=>{i.setFieldsValue({search:s})},[s]);function d(){c(!1),i.setFieldsValue({search:void 0}),r(void 0)}return e.jsx(p.Form,{form:i,onFinish:h,autoComplete:"off",children:e.jsxs(p.Row,{align:"middle",justify:"end",children:[e.jsx(p.Col,{children:e.jsx(p.Form.Item,{name:"search",noStyle:!0,children:e.jsx(p.Input,{autoFocus:!0,disabled:n,onChange:f=>{c(f.target.value.length>0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},suffix:(a||s&&s.length>0)&&e.jsx(p.Tooltip,{title:o("clear"),children:e.jsx(H.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:d})})})})}),e.jsx(p.Col,{children:e.jsx(p.Button,{htmlType:"submit",disabled:n,style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},children:o("search")})})]})})}const zn=Be.default.createContext({previewFeatures:!1});function ql(t){var X;const{availableViews:r,currentView:n,setCurrentView:s,selectedRowItems:o,setRemovingItem:i,removingItem:a,duplicatingItem:c,setDuplicatingItem:h,currentModel:d,searchTreeRef:f,setCurrentId:u,setCurrentItemIndex:g,searchParams:w,searchVisible:y,setSearchVisible:m,setSearchTreeNameSearch:v,searchTreeNameSearch:C,treeIsLoading:F,setPreviousView:E,previousView:S,results:V,limit:k,totalItems:L}=l.useContext(We),{parentContext:x={},treeExpandable:T,toolbar:b}=t,{previewFeatures:_}=l.useContext(zn),{t:N,lang:A}=l.useContext(ge),O=l.useContext(dt),{processAction:I}=O||{},[$,M]=l.useState(!1),B=C!==void 0&&C.trim().length>0;function D(){ot({confirmMessage:N("confirmRemove"),lang:A,onOk:()=>{W()}})}async function W(){var q;try{i==null||i(!0),await K.getHandler().deleteObjects({model:d,ids:o.map(P=>P.id)}),u==null||u(void 0),g==null||g(void 0),(q=f==null?void 0:f.current)==null||q.refreshResults()}catch(P){Le(P)}finally{i==null||i(!1)}}async function j(){var q;try{h==null||h(!0);const P=o[0].id;await K.getHandler().duplicate({id:P,model:d,context:{...x}})&&((q=f==null?void 0:f.current)==null||q.refreshResults())}catch(P){Le(P)}finally{h==null||h(!1)}}function z(q){I==null||I({actionData:q,values:{active_id:o==null?void 0:o.map(P=>P.id)[0],active_ids:o==null?void 0:o.map(P=>P.id)},fields:{},context:{...x,active_id:o==null?void 0:o.map(P=>P.id)[0],active_ids:o==null?void 0:o.map(P=>P.id)},onRefreshParentValues:()=>{var P;(P=f==null?void 0:f.current)==null||P.refreshResults()}})}return e.jsxs(p.Space,{wrap:!0,children:[F&&e.jsxs(e.Fragment,{children:[e.jsx(p.Spin,{}),tt(),tt()]}),T?null:e.jsxs(e.Fragment,{children:[e.jsx(Wl,{disabled:c||a||F,searchText:C,onSearch:q=>{q&&q.trim().length>0?v==null||v(q):v==null||v(void 0)}}),!T&&e.jsx(jn,{icon:e.jsx(H.FilterOutlined,{style:{color:y?"white":void 0}}),tooltip:N("advanced_search"),type:y?"primary":"default",onClick:()=>{m==null||m(!y)},disabled:c||a||F,badgeNumber:w==null?void 0:w.length}),tt(),e.jsx(Kn,{disabled:F}),e.jsx(Ke,{icon:e.jsx(H.CopyOutlined,{}),tooltip:N("duplicate"),disabled:!o||(o==null?void 0:o.length)!==1||c||F,loading:c,onClick:j}),e.jsx(Ke,{icon:e.jsx(H.DeleteOutlined,{}),tooltip:N("delete"),disabled:!(o&&(o==null?void 0:o.length)>0)||F,loading:a,onClick:D}),tt()]}),e.jsx(Ke,{icon:e.jsx(H.InfoCircleOutlined,{}),tooltip:N("showLogs"),disabled:!(o&&(o==null?void 0:o.length)>0)||F,loading:!1,onClick:()=>{Yn(d,o[0].id,N)}}),e.jsx(Ke,{icon:e.jsx(H.ReloadOutlined,{}),tooltip:N("refresh"),disabled:c||a||F,loading:!1,onClick:()=>{var q;(q=f==null?void 0:f.current)==null||q.refreshResults()}}),!T&&e.jsxs(e.Fragment,{children:[tt(),e.jsx(lr,{currentView:n,availableViews:r,onChangeView:q=>{E==null||E(n),s==null||s(q)},previousView:S,disabled:F})]}),tt(),e.jsx(ht,{icon:e.jsx(H.ThunderboltOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||F,tooltip:N("actions"),items:b==null?void 0:b.action,onItemClick:q=>{!q||z(q)}}),e.jsx(ht,{icon:e.jsx(H.PrinterOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||F,tooltip:N("reports"),items:b==null?void 0:b.print,onItemClick:q=>{!q||z({...q,datas:{...q.datas||{},ids:o.map(P=>P.id)}})}}),_&&e.jsxs(e.Fragment,{children:[tt(),e.jsx(ht,{icon:e.jsx(br.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:N("export"),items:[{id:"print_screen",name:N("printScreen")},{id:"export",name:N("advancedExport")}],onItemClick:q=>{if(q.id==="print_screen"){let P=(o==null?void 0:o.map(Y=>Y.id))||[];P.length===0&&(P=(V==null?void 0:V.map(Y=>Y.id))||[]),z({id:-1,model:d,report_name:"printscreen.list",type:"ir.actions.report.xml",datas:{model:d,ids:P}});return}M(!0)},disabled:c||a||F||B}),e.jsx(In,{visible:$,locale:A,onClose:()=>M(!1),model:d,domain:Mt(((X=f==null?void 0:f.current)==null?void 0:X.getDomain())||[],w||[]),limit:k,totalRegisters:L||0,selectedRegistersToExport:o,visibleRegisters:(V==null?void 0:V.length)||0,context:x})]})]})}function tt(){return e.jsx("div",{className:"inline-block w-2"})}const Ul=t=>{const{visible:r,searchTreeRef:n,model:s,context:o,formView:i,treeView:a,domain:c,setCurrentItemIndex:h,results:d,setCurrentId:f,setCurrentView:u,availableViews:g,searchTreeNameSearch:w}=t,{currentView:y,setPreviousView:m}=l.useContext(We);return r?e.jsxs(e.Fragment,{children:[e.jsx(Pt,{children:e.jsx(ql,{toolbar:a==null?void 0:a.toolbar,parentContext:o,treeExpandable:(a==null?void 0:a.isExpandable)||!1})}),e.jsx(er,{ref:n,rootTree:!0,model:s,parentContext:o,nameSearch:w,formView:i,treeView:a,domain:c,onRowClicked:v=>{const{id:C}=v;f(C);const F=d.findIndex(S=>S.id===C);m==null||m(y),h(F);const E=g.find(S=>S.type==="form");u(E)}})]}):null},cr=Be.default.createContext(null),Gl=t=>{const[r,n]=l.useState(!1),[s,o]=l.useState(!1),{children:i,dashboardRef:a,openAction:c}=t;return e.jsx(cr.Provider,{value:{isLoading:r,setIsLoading:n,dashboardRef:a,openAction:c,moveItemsEnabled:s,setMoveItemsEnabled:o},children:i})};function jl(){const{isLoading:t,dashboardRef:r,moveItemsEnabled:n,setMoveItemsEnabled:s}=l.useContext(cr),{t:o}=l.useContext(ge);return e.jsxs(p.Space,{wrap:!0,children:[e.jsx(Ke,{icon:e.jsx(H.BorderOuterOutlined,{style:{color:n?"white":void 0}}),type:n?"primary":"default",tooltip:o("moveDashboard"),disabled:t,loading:!1,onClick:()=>{s(!n)}}),zl(),e.jsx(Ke,{icon:e.jsx(H.SettingOutlined,{}),tooltip:o("configDashboard"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.configDashboard()}}),e.jsx(Ke,{icon:e.jsx(H.ReloadOutlined,{}),tooltip:o("refresh"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.refresh()}})]})}function zl(){return e.jsx("div",{className:"inline-block w-2"})}const Jl=t=>{const{dashboardData:r}=t,n=l.useRef(),s=l.useContext(ze),{openShortcut:o}=s||{};return r?e.jsxs(Gl,{dashboardRef:n,openAction:i=>{o(i)},children:[e.jsx(Pt,{children:e.jsx(jl,{})}),e.jsx(Xn,{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 Zl(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 Xl(t,r){const{domain:n,model:s,context:o,views:i,title:a,setCanWeClose:c,tabKey:h,initialView:d,formDefaultValues:f,formForcedValues:u={},res_id:g=!1,action_id:w,action_type:y,treeExpandable:m=!1,limit:v}=t,[C,F]=l.useState(),[E,S]=l.useState([]),[V,k]=l.useState(!0),L=g||void 0,[x,T]=l.useState(L),[b,_]=l.useState([]),[N,A]=l.useState(),[O,I]=l.useState([]),[$,M]=l.useState(),[B,D]=l.useState(0),[W,j]=l.useState(!1),[z,X]=l.useState(!1),[q,P]=l.useState(),{t:Y}=l.useContext(ge)||{},te=l.useRef(),re=l.useRef(),ne=l.useContext(ze),{setCurrentView:Q,setCurrentId:Z,tabs:ue,activeKey:we,openAction:Ee,onRemoveTab:Oe}=ne||{};To.useHotkeys("ctrl+g,command+g",ee=>{ee.preventDefault(),$e()},[we,ue,C,N,O]);function Ie(ee){T(ee),Z==null||Z(ee)}function Ne(ee){F(ee),Q==null||Q(ee)}l.useImperativeHandle(r,()=>({canWeClose:de}));const ae=async()=>{k(!0);const ee=[],Fe=[];for(const ce of i){const[he,Pe]=ce;Pe!=="dashboard"?Fe.push({viewTuple:ce,promise:K.getHandler().getView({model:s,type:Pe,id:he,context:o})}):Fe.push({viewTuple:ce})}const _e=await Zl(Fe);for(const ce of _e){if(!ce)continue;const[,he]=ce.viewTuple;let Pe=ce.info;switch(he){case"dashboard":{const fe=i.find(Ae=>{const[,R]=Ae;return R==="form"});let Je;fe&&(Je={action_id:w,action_type:y,name:a,res_id:o.active_id,res_model:s,view_id:fe[0],view_type:fe[1]}),ee.push({type:"dashboard",id:o.active_id,model:s,context:o,configAction:Je});break}case"form":{ee.push({...Pe,type:he});break}case"tree":{ee.push({...Pe,isExpandable:m,type:he});break}case"graph":{ee.push({...Pe,type:he});break}}}let ke;!d&&ee.find(ce=>ce.type==="tree")?ke=ee.find(he=>he.type==="tree"):d?ke=ee.find(he=>d.id?he.type===d.type&&he.view_id===d.id:he.type===d.type):ke=ee.find(he=>he.type==="form"),ke||(Le(`Error determining the first view to show for model ${s}.
36
- Please, make sure the view ids on the fields_view_get responses are the same as the ones defined in the action`),Oe==null||Oe(h)),Ne(ke),S(ee),k(!1)};c({tabKey:h,canWeClose:de}),l.useEffect(()=>{const ee=E.find(_e=>_e.type==="tree"),Fe=E.find(_e=>d.id?_e.type===d.type&&_e.view_id===d.id:_e.type===d.type);Ne(Fe||ee),g?Z==null||Z(L):(Ie(void 0),A(void 0)),ae()},[s,i,g]),l.useEffect(()=>{we===h&&(Z==null||Z(x),Q==null||Q(C))},[ue,we]);async function de(){return C&&C.type==="form"?await te.current.cancelUnsavedChanges():!0}async function $e(){we===h&&(C.type==="form"&&!await te.current.cancelUnsavedChanges()||j(!0))}async function ve(ee){var ce;X(!0);const Fe=O.findIndex(he=>he.id===ee);let _e;if(Fe===-1){try{_e=(ce=await K.getHandler().readObjects({model:s,ids:[ee],context:o}))==null?void 0:ce[0]}catch{}if(!_e){X(!1),j(!1),Xe(Y("idNotFound"));return}}else _e=O[Fe];X(!1),j(!1);const ke=i.find(he=>he[1]==="form");Ee({domain:[],context:o,model:s,views:i,title:a,target:"current",initialView:{id:ke==null?void 0:ke[0],type:"form"},action_id:w,action_type:y,res_id:ee})}function De(){return E.map(ee=>{switch(ee.type){case"form":return e.jsx(Yl,{formRef:te,currentId:x,visible:C.type===ee.type&&C.view_id===ee.view_id,formView:ee,model:s,context:o,domain:n,defaultValues:f,forcedValues:u,results:O,setResults:I,setCurrentItemIndex:A},`${ee.type}-${ee.view_id}`);case"tree":return e.jsx(Ul,{visible:C.type===ee.type&&C.view_id===ee.view_id,limit:v,model:s,context:o,domain:n,formView:E.find(Fe=>Fe.type==="form"),treeView:ee,searchTreeRef:re,searchTreeNameSearch:q,availableViews:E,results:O,setCurrentItemIndex:A,setCurrentId:Ie,setCurrentView:Ne},`${ee.type}-${ee.view_id}`);case"graph":return e.jsx(Kl,{visible:C.type===ee.type&&C.view_id===ee.view_id,viewData:ee,model:s,context:o,domain:n,treeView:E.find(Fe=>Fe.type==="tree"),formView:E.find(Fe=>Fe.type==="form")},`${ee.type}-${ee.view_id}`);case"dashboard":return e.jsx(Jl,{dashboardData:ee},`${ee.type}-${ee.view_id}`)}})}function Ye(){if(x===void 0&&C.type==="form")te.current.clearAndReload();else{Ie(void 0);const ee=E.find(Fe=>Fe.type==="form");Ne(ee)}}return V?e.jsx(p.Spin,{}):C?e.jsxs(Ui,{title:a,currentView:C,setCurrentView:Ne,availableViews:E,formRef:te,searchTreeRef:re,onNewClicked:Ye,currentId:x,setCurrentId:Ie,setCurrentItemIndex:A,currentItemIndex:N,results:O,setResults:I,currentModel:s,sorter:$,setSorter:M,totalItems:B,setTotalItems:D,selectedRowItems:b,setSelectedRowItems:_,setSearchTreeNameSearch:P,searchTreeNameSearch:q,goToResourceId:ve,limit:v,children:[De(),e.jsx(Ll,{visible:W,onIdSubmitted:ve,isSearching:z,onCancel:()=>{j(!1)}})]}):null}const dr=l.forwardRef(Xl);async function Ql({actionId:t,rootContext:r={},globalValues:n={}}){const s="ir.actions.act_window",o=`${s},${t}`,i=await K.getHandler().getActionData({action:o,context:r}),a=ie.parseContext({context:i.context,values:n,fields:{}}),c=i.domain?await K.getHandler().evalDomain({domain:i.domain,values:n,context:{...r,...a}}):[],{res_model:h,views:d,name:f,limit:u,view_type:g}=i,w=g==="tree",y=[];for(const F of d){const[E,S]=F;if(E)y.push(F);else{const{view_id:V}=await K.getHandler().getView({model:h,type:S,id:E,context:{...r,...a}});y.push([V,S])}}const[m,v]=y[0],C={id:m,type:v};return{title:f,actionId:t,actionType:s,key:wr.v4(),views:d,model:h,context:{...r,...a},domain:c,initialView:C,limit:u,treeExpandable:w}}const Jc="",Rl=vr.WidthProvider(vr.Responsive),Jn=t=>{const{children:r=[],onPositionItemsChanged:n}=t,s=Be.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(Rl,{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:ec}=p.theme,{Text:tc}=p.Typography,Zn=t=>{const{title:r,children:n,action:s,openAction:o}=t,{token:i}=ec();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(p.Row,{align:"middle",style:{borderBottom:"1px solid #ddd",backgroundColor:i.colorPrimaryBg},wrap:!1,children:[e.jsx(p.Col,{flex:"auto",className:"draggable-head",style:{fontWeight:"bold",padding:"0.5rem",cursor:"grab",overflow:"hidden"},children:e.jsx(tc,{ellipsis:!0,children:r})}),s&&e.jsx(p.Col,{flex:"25px",style:{padding:"0.5rem"},children:e.jsx(p.Row,{justify:"end",align:"middle",children:e.jsx(H.ExportOutlined,{style:{cursor:"pointer"},onClick:()=>{o==null||o(s)}})})})]}),n]})},rc=80;function nc(t){const{action:r,model:n,view_id:s,onRowClicked:o,domain:i=[],visible:a=!0,parentContext:c={}}=t,[h,d]=l.useState(!1),[f,u]=l.useState(!1),[g,w]=l.useState(),[y,m]=l.useState(),[v,C]=l.useState(),[F,E]=l.useState(1),[S,V]=l.useState(0),k=l.useRef(rc),L=l.useRef([]),[x,T]=l.useState(0),[b,_]=l.useState([]),[N,A]=l.useState(void 0),[O,I]=l.useState(),[$,M]=l.useState(),[B,D]=l.useState(),[W,j]=l.useState(!1),z=l.useRef([]),X=Z=>{j(!0),E(Z),V((Z-1)*k.current)},q=async()=>{const Z=z.current.length>0?z.current:i,ue=Mt(L.current,Z),{colors:we}=it(y),{totalItems:Ee,results:Oe,attrsEvaluated:Ie}=await K.getHandler().searchForTree({params:ue,limit:k.current,offset:S,model:g,fields:y.fields,context:c,attrs:we&&{colors:we}});A(Dt(Ie));const Ne=at({resultsToSort:Oe,sorter:O,fields:{...y.fields,...v.fields}});j(!1),_(Ne);const ae=await Ee;T(ae)},P=async()=>{try{j(!0),await q()}catch(Z){M(JSON.stringify(Z))}};l.useEffect(()=>{!f||a&&P()},[F,S,f,a]);const Y=async Z=>{u(!1),d(!0),D(void 0);try{Z==="action"?await te():await re(),u(!0)}catch(ue){D(ue)}finally{d(!1)}},te=async()=>{const Z=await K.getHandler().getViewsForAction({action:r,context:c});z.current=Z.domain,C(Z.views.get("form")),m(Z.views.get("tree")),w(Z.model),k.current=Z.limit},re=async()=>{w(n);const Z=await K.getHandler().getView({model:n,type:"form",context:c});C(Z);const ue=await K.getHandler().getView({model:n,type:"tree",id:s,context:c});m(ue)};l.useEffect(()=>{r?Y("action"):n&&Y("model")},[r,n]);const ne=Z=>{const{id:ue}=Z;o({id:ue,model:g,treeView:y})},Q=()=>!y||!v?null:e.jsxs("div",{style:{overflowY:"scroll"},children:[$&&e.jsx(p.Alert,{className:"mt-10",message:$,type:"error",banner:!0}),e.jsx(bt,{showPagination:!1,total:x,limit:k.current,page:F,treeView:y,results:b,onRequestPageChange:X,loading:W,onRowClicked:ne,colorsForResults:N,sorter:O,onChangeSort:Z=>{I==null||I(Z);const ue=at({resultsToSort:b,sorter:Z,fields:{...y.fields,...v.fields}});_(ue)},context:c})]});return B?e.jsx(p.Alert,{className:"mt-10",message:B,type:"error",banner:!0}):h?e.jsx(p.Spin,{style:{padding:"2rem"}}):Q()}const oc=t=>{const{model:r}=t,[n,s]=l.useState();l.useEffect(()=>{o()},[r]);async function o(){const i=await K.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(ut,{...t,model:r,id:n,readOnly:!0})})},ur="line_ids";function sc(t,r){const{model:n,context:s={},id:o,configAction:i}=t,[a,c]=l.useState([]),[h,d]=l.useState(!1),[f,u]=l.useState(),{setIsLoading:g,openAction:w,moveItemsEnabled:y}=l.useContext(cr),m=l.useRef(),v=l.useRef();l.useEffect(()=>{C()},[n,o,s]),l.useImperativeHandle(r,()=>({refresh:()=>{C()},configDashboard:L}));async function C(){d(!0),g(!0),u(void 0);try{const x=await F(),T=await S(x),b=x.fields[ur].relation,_=T[ur].items;v.current=x.fields;const N=await E({items:_,model:b,context:s}),A=await V(N);c(A),d(!1),g(!1)}catch(x){u(JSON.stringify(x))}}async function F(){return await K.getHandler().getView({model:n,type:"form",context:s})}async function E({items:x,model:T,context:b}){m.current=(await K.getHandler().getView({model:T,type:"form",context:b})).fields;const[_]=await zt({treeView:{fields:m.current},formView:{fields:m.current},model:T,items:x,context:b,currentView:"form"});return _}async function S(x){return(await K.getHandler().readObjects({model:n,ids:[o],fields:x.fields,context:s}))[0]}async function V(x){const T=[];for(const b of x){const{values:_}=b;if(_.action_id&&_.action_id.length>0){const N=parseInt(_.action_id[0],10),A=await Ql({actionId:N,rootContext:s});T.push({...b,actionData:A})}}return T}async function k(x){if(!y)return;const T=x.filter(A=>{const O=a.find($=>$.id===A.id);if(!O)return!1;if(!O.position)return!0;const I={...JSON.parse(O.position.replace(/'/g,'"')),id:O.id};return JSON.stringify(A)!==JSON.stringify(I)});if(T.length===0)return;const _=a.filter(A=>T.map(O=>O.id).includes(A.id)).map(A=>{const O={...T.find(I=>I.id===A.id)};return delete O.id,{...A},{...A,operation:"pendingUpdate",values:{...A.values,position:JSON.stringify(O).replace(/"/g,"'")}}}),N={fields:m.current,items:_};await K.getHandler().update({model:n,id:o,values:{[ur]:N},fields:v.current,context:s})}async function L(){w(i)}return f?(console.log(f),e.jsx(p.Alert,{className:"mt-10 mb-20",message:f,type:"error",banner:!0})):h?e.jsx(H.LoadingOutlined,{}):e.jsx(Jn,{onPositionItemsChanged:k,children:a.map((x,T)=>{const{actionData:b,values:_}=x,{position:N,id:A}=_,{actionId:O,actionType:I,key:$,title:M,views:B,model:D,context:W,domain:j,initialView:z,limit:X}=b;let q={};try{q=JSON.parse(N.replace(/'/g,'"'))}catch{q={x:T*2,y:0,w:2,h:3}}let P=null;if((z==null?void 0:z.type)==="graph")P=e.jsx(Lt,{view_id:B.filter(re=>re[1]==="graph")[0][0],model:D,context:W,domain:j,limit:X});else if((z==null?void 0:z.type)==="form")P=e.jsx(oc,{model:D,actionDomain:j});else if((z==null?void 0:z.type)==="tree")P=e.jsx(nc,{model:D,domain:j,view_id:B.filter(re=>re[1]==="tree")[0][0],onRowClicked:re=>{const ne=B.find(Q=>{const[,Z]=Q;return Z==="form"});if(ne){const[Q,Z]=ne,{actionId:ue,actionType:we,title:Ee,model:Oe}=b,Ie={action_id:ue,action_type:we,name:Ee,res_id:re.id,res_model:Oe,view_id:Q,view_type:Z};w(Ie)}}});else if(z!==void 0){const re=z&&Array.isArray(z.id)?{...z,id:z.id[0]}:z;P=e.jsx(dr,{action_id:O,action_type:I,tabKey:$,title:M,views:B,model:D,context:W,domain:j,setCanWeClose:()=>{},initialView:re,limit:X})}let Y;const te=B.find(re=>{const[,ne]=re;return ne==="tree"});if(te){const[re,ne]=te,{actionId:Q,actionType:Z,title:ue,model:we}=b;Y={action_id:Q,action_type:Z,name:ue,res_id:!1,res_model:we,view_id:re,view_type:ne}}return e.jsx(Zn,{id:A,title:M,parms:q,action:Y,openAction:w,children:P},A)})})}const Xn=l.forwardRef(sc),Qn=t=>{const{ooui:r}=t;return e.jsx(me,{type:"array",...t,children:e.jsx(ic,{ooui:r})})},ic=t=>{const{value:r,ooui:n,onChange:s}=t,{items:o=[]}=r||{},i=o.filter(x=>x.operation!=="pendingRemove").map(x=>x.id),[a,c]=l.useState([]),[h,d]=l.useState(),[f,u]=l.useState(!1),{relation:g,context:w,readOnly:y,field:m,columns:v}=n,C=l.useContext(Ve),{getContext:F}=C||{};et.default(()=>{S()},[o]);const E=x=>{s==null||s({items:x})};async function S(){u(!0);let x=[];if(n.domain){const T=await K.getHandler().evalDomain({domain:n.domain,values:ct({fields:C==null?void 0:C.getFields(),values:C.getPlainValues()}),fields:C==null?void 0:C.getFields(),context:C.getContext()});x=[...x,...T]}try{const b=(await K.getHandler().search({model:g,params:x,fields:[m],context:{...F==null?void 0:F(),...w}})).map(_=>{const N=_[m];let A=N;return Array.isArray(N)&&(A=N[1]),{label:A,value:_.id}});c(b)}catch(T){d(T)}finally{u(!1)}if(h)return e.jsx(p.Alert,{className:"mt-10",message:h,type:"error",banner:!0})}const V=()=>{L(a.map(x=>x.value))},k=()=>{L([])},L=x=>{const T=o.map(_=>x.includes(_.id)?_.operation=="pendingRemove"?{..._,operation:"original"}:_:{id:_.id,operation:"pendingRemove"}),b=T.map(_=>_.id);x.filter(_=>!b.includes(_)).map(_=>{T.push({id:_,operation:"pendingLink"})}),E(T)};return f&&a.length===0?e.jsx(p.Spin,{}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"flex flex-row",children:[e.jsx(p.Checkbox.Group,{value:a.length?i:[],disabled:y,onChange:L,style:{width:"100%"},children:e.jsx(p.Row,{children:a.map(x=>e.jsx(p.Col,{span:Math.floor(24/v),children:e.jsx(p.Checkbox,{value:x.value,children:x.label})}))})}),!y&&e.jsxs(p.Space,{children:[e.jsx(p.Button,{onClick:V,disabled:i.length==a.length,children:"Check all"}),e.jsx(p.Button,{onClick:k,disabled:i.length===0,children:"Uncheck all"})]})]})})},Rn=t=>e.jsx(me,{...t,children:e.jsx(ac,{...t})}),ac=t=>{const{value:r,ooui:n}=t;return e.jsx("div",{style:{height:n.height?n.height+"px":"100%",overflow:"auto"},children:e.jsx(Vo.default,{children:r,className:"ant-typography"})})},eo=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(lc,{...t})})},lc=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,direction:a}=r,c=Array.from(o.entries()),h=c&&c.length&&c.map(d=>{const[f,u]=d;return e.jsx(p.Radio,{value:f,children:u},f)});return e.jsx(p.Radio.Group,{disabled:i,onChange:n,value:s,children:e.jsx(p.Space,{direction:a,children:h})})},to=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o}=r;return e.jsx(me,{...t,valuePropName:"checked",children:e.jsx(cc,{id:n,readOnly:s,required:o})})},cc=t=>{const{required:r,readOnly:n,...s}=t;return e.jsx("div",{className:"flex flex-row",children:e.jsx(p.Switch,{disabled:n,...s})})},ro=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(dc,{...t})})},dc=t=>{const{ooui:r,value:n}=t,{selectionValues:s,errorField:o}=r,i=l.useContext(Ve),a=Array.from(s.entries()),c=a.map(f=>f[0]).indexOf(n);let h="process",d="";return o&&(d=i.getFieldValue(o),d&&(h="error")),e.jsx(p.Steps,{current:c,status:h,children:a.map((f,u)=>e.jsx(p.Steps.Step,{title:f[1],description:u===c&&h==="error"?d:null}))})},no=t=>{const{ooui:r}=t,{lang:n,height:s}=r,o=l.useContext(Ve),{elementHasLostFocus:i}=o||{},a=c=>{c.onDidBlurEditorWidget(i)};return e.jsx(me,{...t,children:e.jsx(Eo.default,{defaultLanguage:n||"",height:s||300,onMount:a})})};var oo={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Qe,function(){return function(n,s,o){n=n||{};var i=s.prototype,a={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function c(d,f,u,g){return i.fromToBase(d,f,u,g)}o.en.relativeTime=a,i.fromToBase=function(d,f,u,g,w){for(var y,m,v,C=u.$locale().relativeTime||a,F=n.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],E=F.length,S=0;S<E;S+=1){var V=F[S];V.d&&(y=g?o(d).diff(u,V.d,!0):u.diff(d,V.d,!0));var k=(n.rounding||Math.round)(Math.abs(y));if(v=y>0,k<=V.r||!V.r){k<=1&&S>0&&(V=F[S-1]);var L=C[V.l];w&&(k=w(""+k)),m=typeof L=="string"?L.replace("%d",k):L(k,f,V.l,v);break}}if(f)return m;var x=v?C.future:C.past;return typeof x=="function"?x(m):x.replace("%s",m)},i.to=function(d,f){return c(d,f,this,!0)},i.from=function(d,f){return c(d,f,this)};var h=function(d){return d.$u?o.utc():o()};i.toNow=function(d){return this.to(h(this),d)},i.fromNow=function(d){return this.from(h(this),d)}}})})(oo);const uc=oo.exports,{Meta:fc}=p.Card,{Text:hc}=p.Typography;je.extend(uc);const pc=({email:t,size:r=40,theme:n=""})=>{const s=`https://www.gravatar.com/avatar/${Io.default(t)}?s=${r}&d=${n}`;return e.jsx(p.Avatar,{src:s,size:r})};function gc({text:t}){const r=t.split(`
37
- `);return e.jsx("div",{children:r.map((n,s)=>e.jsxs(Be.default.Fragment,{children:[n,s!==r.length-1&&e.jsx("br",{})]},s))})}const mc=t=>{const{data:r,style:n}=t,{t:s}=l.useContext(ge);return e.jsxs(p.Card,{style:{...n,textAlign:"start"},children:[e.jsx(fc,{avatar:e.jsx(pc,{email:r.email,theme:"mp"}),title:r.author,description:e.jsxs(p.Space,{direction:"horizontal",children:[e.jsx("span",{title:r.date,children:je(r.date).fromNow()}),r.isAuthor&&e.jsx(p.Tag,{color:"blue",children:s("author")})]}),style:{marginBottom:"5px"}}),e.jsx(hc,{children:e.jsx(gc,{text:r.text})})]},r.id)},yc=t=>{const{value:r}=t,n=(r||[]).map(s=>{if(s.type==="action")return{children:`${s.event.date} - ${s.event.action}`};if(s.type==="comment")return{color:"gray",position:s.event.isSender?"left":"right",label:s.event.date,children:e.jsx(mc,{data:s.event})}});return e.jsx(p.Timeline,{mode:"alternate",items:n})},so=t=>e.jsx(me,{...t,children:e.jsx(yc,{})}),{Content:vc}=p.Layout,{Title:wc}=p.Typography;function Cc(){const{t}=l.useContext(ge);return e.jsx(vc,{className:"m-5 select-none",children:e.jsx(wc,{level:5,children:t("welcome")})})}function Sc(t,r){const{children:n,globalValues:s={},rootContext:o={},lang:i}=t,[a,c]=l.useState("welcome"),[h,d]=l.useState([{title:be("welcome",i),key:"welcome",closable:!0,content:e.jsx(Cc,{})}]),f=l.useRef(new Map),u=l.useRef();l.useImperativeHandle(r,()=>({retrieveAndOpenAction:y,openShortcut:C}));function g(S){if(S===a){const V=h.findIndex(k=>k.key===S);h[V-1]&&c(h[V-1].key),h[V+1]&&c(h[V+1].key)}d(h.filter(V=>V.key!==S)),f.current.delete(S)}function w({tabKey:S,canWeClose:V}){f.current.set(S,V)}async function y({action:S,values:V,forced_values:k,initialViewType:L,res_id:x,domain:T=[]}){const b=await K.getHandler().getActionData({action:S,context:o});if(b.type==="ir.actions.wizard"){Le("Action type not supported");return}const[_,N]=S.split(","),A=parseInt(N),O=ie.parseContext({context:b.context,values:s,fields:{}}),I=b.domain?await K.getHandler().evalDomain({domain:b.domain,values:s,context:{...o,...O}}):[],{res_model:$,views:M,name:B,target:D,view_type:W,limit:j}=b,z=W==="tree",X=[];for(const P of M){const[Y,te]=P;if(Y)X.push(P);else if(te==="dashboard")X.push([void 0,"dashboard"]);else{const{view_id:re}=await K.getHandler().getView({model:$,type:te,id:Y,context:{...o,...O}});X.push([re,te])}}let q;if(L){const[P,Y]=X.find(([te,re])=>re===L);q={id:P,type:Y}}else{const[P,Y]=X[0];q={id:P,type:Y}}E({domain:[...I,...T],context:{...o,...O},model:$,views:X,title:B,target:D,initialView:q,action_type:_,action_id:A,values:V,forced_values:k,res_id:x,treeExpandable:z,limit:j})}function m({title:S,content:V,key:k,action:L}){let x=[...h];h.length===1&&h[0].key==="welcome"&&(x=[...h.filter(T=>T.key!=="welcome")]),d([...x,{title:S,key:k,closable:!0,content:V,action:L}]),c(k)}async function v({relateData:S,fields:V,values:k,action_id:L,action_type:x}){const{res_model:T,context:b,domain:_,views:N,target:A,string:O,limit:I}=S,[$,M]=N[0],B={id:$,type:M},D=ie.parseContext({context:b,values:{...k,...s},fields:V}),W=_?await K.getHandler().evalDomain({domain:_,values:ct({fields:V,values:{...k,...s}}),fields:V,context:{...o,...D}}):[];E({model:T,target:A,views:N,context:{...o,...D},domain:W,title:O,initialView:B,action_id:L,action_type:x,limit:I})}async function C(S){const{action_id:V,action_type:k,res_id:L,view_id:x}=S,T=`${k},${V}`,b=await K.getHandler().getActionData({action:T,context:o}),_=ie.parseContext({context:b.context,values:s,fields:{}}),N=b.domain?await K.getHandler().evalDomain({domain:b.domain,values:s,context:{...o,..._}}):[],{res_model:A,views:O,name:I,target:$,view_type:M,limit:B}=b,D=M==="tree",W=[];for(const q of O){const[P,Y]=q;if(P)W.push(q);else if(Y==="dashboard")W.push([void 0,"dashboard"]);else{const{view_id:te}=await K.getHandler().getView({model:A,type:Y,id:P,context:{...o,..._}});W.push([te,Y])}}let j,z;if(x==null){const q=W.find(P=>P[0]===void 0);j=void 0,z=q[1]}else[j,z]=W.find(q=>q[0]===void 0?!1:q[0]===x);const X={id:j,type:z};E({domain:N,context:{...o,..._},model:A,views:W,title:I,target:$,initialView:X,action_id:V,action_type:k,res_id:L,treeExpandable:D,limit:B})}async function F({model:S,values:V,forced_values:k,initialViewType:L,res_id:x,domain:T}){const b=await K.getHandler().getActionStringForModel(S);await y({action:b,values:V,forced_values:k,initialViewType:L,res_id:x,domain:T})}async function E({domain:S,context:V,model:k,views:L,title:x,target:T,initialView:b,action_id:_,action_type:N,res_id:A,values:O,forced_values:I,treeExpandable:$=!1,limit:M}){const B=wr.v4();if(T!=="current"){const D=await K.getHandler().getView({model:k,type:"form",id:b.type==="form"?b.id:void 0,context:{...o,...V}});u.current.openActionModal({domain:S,model:k,formView:D,context:{...o,...V},actionData:{action_id:_,action_type:N,res_id:A,view_id:D.view_id}})}else{const D=b&&Array.isArray(b.id)?{...b,id:b.id[0]}:b;m({title:x,action:{id:_,type:N},content:e.jsx(dr,{action_id:_,action_type:N,tabKey:B,title:x,views:L,model:k,context:{...o,...V},domain:S,setCanWeClose:w,initialView:D,res_id:A,formDefaultValues:O,formForcedValues:I,treeExpandable:$,limit:M}),key:B})}}return e.jsx(Bo,{lang:i,children:e.jsx(Gi,{openShortcut:C,openAction:E,openRelate:v,openDefaultActionForModel:F,tabs:h,activeKey:a,onRemoveTab:async S=>{const V=f.current.get(S);(await(V==null?void 0:V())||a==="welcome")&&g(S)},onChangeTab:S=>{c(S)},children:e.jsx(sn,{ref:u,globalValues:s,children:n})})})}const bc=l.forwardRef(Sc),{useToken:xc}=p.theme;function io(t){const{label:r,onClose:n,tabKey:s,isActive:o,onSelected:i}=t,{token:a}=xc(),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(H.CloseOutlined,{style:{color:a.colorPrimaryActive},onClick:h=>{h.stopPropagation(),n(s)}})})]})}function Tc(){const t=l.useContext(ze),{activeKey:r,tabs:n,onRemoveTab:s,onChangeTab:o}=t||{};return e.jsx(e.Fragment,{children:n.map(i=>e.jsx(io,{tabKey:i.key,label:i.title,onClose:s,isActive:r===i.key,onSelected:o},i.key))})}function Fc(t){const{tab:r}=t,n=l.useContext(ze),{activeKey:s}=n||{},o={display:"none"};return e.jsx("div",{style:r.key!==s?o:void 0,children:r.content})}const Oc=Be.default.memo(Fc,()=>!0);function _c(){const t=l.useContext(ze),{tabs:r}=t||{},n=(r==null?void 0:r.map(s=>e.jsx(Oc,{tab:s},s.key)))||null;return e.jsx(e.Fragment,{children:n})}const{useToken:Dc}=p.theme,kc=t=>{const{onRetrieveShortcuts:r,onCheckIsFavourite:n,onAddFavourite:s,onRemoveFavourite:o}=t,[i,a]=l.useState(!1),[c,h]=l.useState(!1),[d,f]=l.useState([]),[u,g]=l.useState(!0),[w,y]=l.useState(),{t:m}=l.useContext(ge)||{},{token:v}=Dc(),C=l.useContext(ze),{openShortcut:F,tabs:E,activeKey:S,currentView:V,currentId:k,openDefaultActionForModel:L}=C||{};l.useEffect(()=>{x()},[]),l.useEffect(()=>{_()},[E,S,V,k]);async function x(){try{g(!0);const $=await r();f($)}catch($){Le($)}finally{g(!1)}}function T($){const{key:M}=$,B=d.find(D=>D.id===Number(M));(B==null?void 0:B.action_type)!=="ir.actions.wizard"&&(B&&F(B),h(!1))}function b($){$&&x(),h($)}async function _(){if(!V)return;const $=E.find(z=>z.key===S),{id:M,type:B}=($==null?void 0:$.action)||{};if(!M||!B){a(!1);return}const D=V.view_id;let W=!1;V.type==="form"&&(W=k||!1);const j=await n({action_id:M,action_type:B,view_id:D,res_id:W});j!==!1&&y(j),a(j!==!1)}async function N(){h(!1),L==null||L({model:"ir.ui.view_sc"})}const A=e.jsxs(p.Menu,{onClick:T,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(p.Tooltip,{title:m==null?void 0:m("edit_favorites"),children:e.jsx(H.EditOutlined,{style:{color:v.colorPrimary,cursor:"pointer"},onClick:N})})})]}),e.jsx(p.Menu.Divider,{}),u?e.jsx(p.Spin,{style:{padding:"1rem"}}):d.length>0?e.jsx(e.Fragment,{children:d.map($=>e.jsx(p.Menu.Item,{children:e.jsx(O,{title:$.name,type:$.view_type})},$.id))}):e.jsx("div",{style:{width:300,padding:5,paddingLeft:15},children:m==null?void 0:m("no_favorites")})]});function O({title:$,type:M}){const B=M==="tree"?e.jsx(H.TableOutlined,{}):e.jsx(H.FormOutlined,{});return e.jsxs(p.Row,{wrap:!1,children:[e.jsx(p.Col,{flex:"none",style:{paddingRight:20},children:B}),e.jsx(p.Col,{flex:"auto",children:$})]})}async function I(){if(i&&w)await o(w);else{if(!V)return;const $=E.find(j=>j.key===S),{id:M,type:B}=($==null?void 0:$.action)||{},D=V.view_id;let W=!1;if(!M||!B){a(!1);return}V.type==="form"&&(W=k||!1),await s({action_id:M,action_type:B,view_id:D,res_id:W})}await x(),a(!i)}return e.jsxs(e.Fragment,{children:[e.jsx(p.Button,{type:i?"primary":"default",icon:i?e.jsx(H.StarFilled,{style:{color:"white"}}):e.jsx(H.StarOutlined,{}),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:I}),e.jsx(p.Dropdown,{overlay:A,onVisibleChange:b,open:c,children:e.jsx(p.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:e.jsx(H.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:$=>$.preventDefault()})})]})};G.ActionBar=Wn,G.ActionView=dr,G.Binary=Bn,G.Boolean=Er,G.Button=qt,G.ButtonGroup=Or,G.Char=Ut,G.CodeEditor=no,G.CommentsTimelineField=so,G.ConfigContext=zn,G.ConnectionProvider=K,G.ContentRootProvider=sn,G.CurrentTabContent=_c,G.Dashboard=Xn,G.DashboardGrid=Jn,G.DashboardGridItem=Zn,G.Date=$n,G.DateTime=An,G.Email=Gn,G.ExportModal=In,G.FavouriteButton=kc,G.Float=Xt,G.FloatTime=_n,G.Form=ut,G.FormModal=ft,G.GraphIndicator=xn,G.Group=nr,G.Image=qr,G.Integer=St,G.Label=yt,G.Many2one=wn,G.Markdown=Rn,G.MultiCheckbox=Qn,G.Notebook=Dn,G.One2many=On,G.ProgressBar=cn,G.Radio=eo,G.Reference=Pn,G.RootView=bc,G.SearchFilter=Qt,G.SearchModal=tr,G.SearchTree=er,G.Selection=Gt,G.Separator=Mn,G.Steps=ro,G.Switch=to,G.Tab=io,G.TabSelector=Tc,G.Tag=Zr,G.Tags=Rr,G.Text=kn,G.Time=Nn,G.Tree=bt,G.Url=Un,G.iconMapper=Ge,G.showConfirmDialog=ot,Object.defineProperties(G,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
35
+ `,bn=Ke.default.createContext(null),Ka=({children:t,initialView:r})=>{const[n,s]=l.useState(r),[o,i]=l.useState(0),[a,c]=l.useState(!1);return e.jsx(bn.Provider,{value:{currentView:n,setCurrentView:s,itemIndex:o,setItemIndex:i,manualTriggerChange:a,setManualTriggerChange:c},children:t})},{getValueForOperator:xn}=se.graphProcessor,It=.7,At=30,Tn=t=>{const{model:r,domain:n,context:s,colorCondition:o,totalDomain:i,showPercent:a=!1,icon:c,suffix:h,field:d,operator:f,manualIds:u}=t,[g,w]=l.useState(!1),[y,m]=l.useState(),[v,S]=l.useState(),[T,V]=l.useState(),[b,E]=l.useState(0),[D,L]=l.useState(0),[x,F]=l.useState(),[O,C]=l.useState(),[P,I]=l.useState();l.useEffect(()=>{A()},[r,o]);async function _({domain:M,isTotal:N}){if(N)return await $({domain:M});if(d&&f){const k=u||await K.getHandler().searchAllIds({params:M,model:r,context:s}),W=await K.getHandler().readObjects({model:r,ids:k,fieldsToRetrieve:[d],context:s});return xn({values:W.map(z=>z[d]),operator:f})}else return u?u.length:await K.getHandler().searchCount({model:r,params:M,context:s})}async function $({domain:M}){if(d&&f){const N=await K.getHandler().searchAllIds({params:M,model:r,context:s}),k=await K.getHandler().readObjects({model:r,ids:N,fieldsToRetrieve:[d],context:s});return xn({values:k.map(W=>W[d]),operator:f})}else return await K.getHandler().searchCount({model:r,params:M,context:s})}async function A(){w(!0);let M,N;try{const k=await _({domain:n,isTotal:!1});if(m(k),i){const W=await K.getHandler().evalDomain({domain:i,values:{},context:s});M=await _({domain:W,isTotal:!0}),V(M)}if(M?(N=Math.round(k/M*100*100)/100,S(N)):S(0),o){const W=await K.getHandler().parseCondition({condition:o,values:{value:k,percent:N},context:s});F(W)}if(c)if(c.indexOf(":")!==-1){const W=await K.getHandler().parseCondition({condition:c,values:{value:k,percent:N},context:s});C(W)}else C(c)}catch(k){I(JSON.stringify(k))}w(!1)}return P?e.jsx(p.Alert,{className:"mt-10",message:P,type:"error",banner:!0}):g?e.jsx("div",{style:{padding:"1rem"},children:e.jsx(B.LoadingOutlined,{style:{height:"12px"}})}):e.jsx(Wt.default,{bounds:!0,onResize:M=>{var N,k;E((N=M.bounds)==null?void 0:N.height),L((k=M.bounds)==null?void 0:k.width)},children:({measureRef:M})=>a?e.jsx(Wa,{value:y,total:T,percent:v,measureRef:M,height:b,width:D,color:x,icon:O,suffix:h}):e.jsx(Ya,{value:y,total:T,measureRef:M,height:b,width:D,color:x,icon:O,suffix:h})})};function Fn(t,r){const s=document.createElement("canvas").getContext("2d");return s.font=r||getComputedStyle(document.body).font,s.measureText(t).width}function Ya({measureRef:t,width:r,height:n,total:s,value:o,color:i,icon:a,suffix:c}){let h=n*It<At?At:n*It;const d=o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0});let f=s?`${d}/${s}`:`${d}`;c&&(f+=" "+c);let u=Fn(f,`bold ${Math.floor(h*1.03)}px sans-serif`);a&&(u=u*2),u>=r*.85&&(h=r*.85/u*h);const g=a&&Je(a,{style:{fontSize:h*.7}});return e.jsx("div",{ref:t,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:e.jsxs(qt.default,{style:{fontSize:h,margin:0,color:i},children:[g&&e.jsx(g,{style:{fontSize:h*.7}}),g?` ${f}`:f]})})}function Wa({measureRef:t,height:r,width:n,percent:s,total:o,value:i,color:a,icon:c,suffix:h}){const d=r*.65;let f=d*It<At?At:d*It;const u=i==null?void 0:i.toLocaleString("es-ES",{useGrouping:!0});let g=o?`${u}/${o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0})}`:`${u}`;h&&(g+=" "+h);const w=`${s==null?void 0:s.toLocaleString("es-ES",{useGrouping:!0})}%`;let y=Fn(w,`bold ${Math.floor(f*1.03)}px sans-serif`);c&&(y=y*1.5),(y>=n*.85||f*2<d)&&(f=n*.85/y*f);const m=c&&Je(c,{style:{fontSize:f}});return 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(p.Row,{align:"middle",children:[m&&e.jsx(p.Col,{style:{fontSize:f*1,color:a,paddingRight:"10px"},children:e.jsx(m,{})}),e.jsxs(p.Col,{children:[e.jsx(qt.default,{style:{fontSize:f*.8,margin:0,color:a},children:m?` ${s}%`:`${s}%`}),e.jsx(qt.default,{style:{fontSize:f*.4,margin:0,color:a,textAlign:"center"},children:g})]})]})})}const nr=t=>r=>{const n=r.value.toLocaleString("es-ES",{useGrouping:!0});return{name:t==="pie"?r.x:r.type,value:n}},$t=t=>{if(typeof t=="string"&&qa(t))return parseFloat(t).toLocaleString("es-ES",{useGrouping:!0});if(Ua(t))return t.toLocaleString("es-ES",{useGrouping:!0});if(Ga(t)){const r=ja(t);return r===null?t:Ze(t,Lt.input[r]).format(Lt.output[r])}else return t},qa=t=>/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/.test(t),Ua=t=>typeof t=="number"&&!isNaN(t),On={default:{padding:"auto",xAxis:{tickCount:5,label:{formatter:$t}},yAxis:{label:{formatter:$t}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:nr("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:nr("pie")},interactions:[{type:"element-active"}]},barGrouped:{isGroup:!0,legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:nr("barGrouped")},xAxis:{label:{formatter:$t}},yAxis:{label:{formatter:$t}},label:{position:"middle",layout:[{type:"interval-adjust-position"},{type:"interval-hide-overlap"},{type:"adjust-color"}]}}};function Ga(t){return typeof t!="string"||t===void 0?!1:new Date(t).toString()!=="Invalid Date"}const Lt={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 ja(t){for(const r in Lt.input)if(Ze(t,Lt.input[r],!0).isValid())return r;return null}const{processGraphData:za}=se.graphProcessor,{getFieldsToRetrieve:Ja}=se.graphFieldUtils,Za=t=>{const{model:r,domain:n=[],context:s={},xml:o,limit:i,uninformedString:a,manualIds:c}=t,[h,d]=l.useState(!1),[f,u]=l.useState(),[g,w]=l.useState(),[y,m]=l.useState(),[v,S]=l.useState("line");return tt.default(()=>{(async()=>{d(!0),u(void 0);const T=se.parseGraph(o);S(T.type||"line");const V=Ja({ooui:T});let b,E;try{({values:b,fields:E}=await Qa({model:r,domain:n,context:s,limit:i,order:T.timerange?T.x.name:null,fields:V,manualIds:c}))}catch(D){u("Error fetching graph data values: "+JSON.stringify(D)),d(!1);return}try{if(!b||!E){u("No values or fields returned"),d(!1);return}m(b);const D=za({ooui:T,values:b,fields:E,options:{uninformedString:a}});w(D)}catch(D){u("Error processing graph data: "+D),d(!1);return}d(!1)})()},[o,r,i,s,n]),{loading:h,error:f,type:v,values:g,evaluatedEntries:y}};async function Xa({model:t,context:r,fields:n}){return await K.getHandler().getFields({model:t,context:r,fields:n})}async function Qa({fields:t,model:r,domain:n,context:s,order:o,limit:i,manualIds:a}){const c=await Xa({model:r,context:s,fields:t});if(a){let d=await K.getHandler().readObjects({model:r,ids:a,fieldsToRetrieve:t,context:s});return o&&(d=[...d].sort((f,u)=>f[o]-u[o])),{values:d,fields:c}}return{values:await K.getHandler().search({model:r,params:n,fields:t,context:s,limit:i,order:o}),fields:c}}const Ra={line:Yt.Line,bar:Yt.Column,pie:Yt.Pie},el=t=>{var S;const{model:r,domain:n,context:s,xml:o,limit:i,manualIds:a}=t,{t:c}=l.useContext(ge),{error:h,loading:d,values:f,type:u,evaluatedEntries:g}=Za({model:r,xml:o,limit:i,domain:n,context:s,uninformedString:c("uninformed"),manualIds:a});if(h)return e.jsx(p.Alert,{message:h,type:"error",banner:!0});if(d)return e.jsx(p.Spin,{});if(!f)return e.jsx(p.Alert,{message:"No data to display",type:"info"});const{data:w,isGroup:y,isStack:m}=f,v=Ra[u];return v?e.jsxs("div",{style:{padding:"1rem"},children:[e.jsx("p",{style:{textAlign:"right"},children:`${c("totalRegisters")} ${(S=g==null?void 0:g.length)==null?void 0:S.toLocaleString("es-ES",{useGrouping:!0})}`}),e.jsx(v,{...tl({type:u,data:w,isGroup:y,isStack:m})})]}):e.jsx(e.Fragment,{children:`Unknown graph type: ${u}`})};function tl(t){const{type:r,data:n,isGroup:s,isStack:o}=t;let i=On[r];return i||(i=On.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 rl=(t,r)=>{const{view_id:n,model:s,context:o,domain:i,limit:a,manualIds:c}=t,[h,d]=l.useState(!1),[f,u]=l.useState(),[g,w]=l.useState(),y=l.useContext(qe),{setGraphIsLoading:m=void 0}=y||{};l.useImperativeHandle(r,()=>({refresh:()=>{v()}})),l.useEffect(()=>{v()},[n]);async function v(){d(!0),m==null||m(!0);try{const S=await K.getHandler().getView({model:s,id:n,type:"graph",context:o});w(S.arch);const T=se.parseGraph(S.arch);u(T)}catch(S){return console.error(S),e.jsx(e.Fragment,{children:JSON.stringify(S)})}d(!1),m==null||m(!1)}if(h)return e.jsx("div",{style:{width:"100%",display:"flex",height:"20%",justifyContent:"center",alignContent:"center",padding:"1rem"},children:e.jsx(B.LoadingOutlined,{style:{height:"12px"}})});if(!f)return null;switch(f.type){case"indicatorField":case"indicator":{const S=f,T=S.type==="indicatorField"?{field:S.field,operator:S.operator}:{};return e.jsx(Tn,{showPercent:S.showPercent,totalDomain:S.totalDomain,colorCondition:S.color,model:s,context:o,domain:i,icon:S.icon,suffix:S.suffix,manualIds:c,...T})}case"line":case"bar":case"pie":return e.jsx(el,{model:s,context:o,domain:i,xml:g,limit:a,manualIds:c});default:return e.jsx(e.Fragment,{children:`Graph ${f.type} not implemented`})}},Nt=l.forwardRef(rl),{confirm:nl}=p.Modal,ol=({onOk:t,lang:r})=>{nl({title:xe("removeItems",r),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:xe("confirmRemove",r),okText:xe("yesConfirmRemove",r),onOk:t,cancelText:xe("cancel",r)})},{confirm:sl}=p.Modal,il=({onOk:t,lang:r})=>{sl({title:xe("unlinkItems",r),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:xe("confirmUnlink",r),okText:xe("yesConfirmUnlink",r),onOk:t,cancelText:xe("cancel",r)})},{useToken:al}=p.theme,ll=t=>{const{title:r,readOnly:n,onCreateItem:s,onToggleViewMode:o,mode:i,onDelete:a,totalItems:c,currentItemIndex:h,onPreviousItem:d,onNextItem:f,isMany2Many:u,onSearchItem:g,selectedRowKeys:w,showCreateButton:y,showToggleButton:m}=t,{token:v}=al();function S(){return e.jsx("div",{className:"inline-block w-3"})}function T(){return e.jsx("div",{className:"flex flex-grow h-8 text-white",style:{borderRadius:v.borderRadius,backgroundColor:v.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 V(){return e.jsx(Ye,{tooltip:u?"Unlink":"Delete",icon:u?e.jsx(B.ApiOutlined,{}):e.jsx(B.DeleteOutlined,{}),onClick:a,disabled:c===0||n||i!=="form"&&w.length===0})}function b(){let D="_";return c===0?D="_":D=(h+1).toString(),e.jsxs("span",{className:"pl-1 pr-1",children:["(",D,"/",c,")"]})}function E(){return e.jsxs(e.Fragment,{children:[S(),e.jsx(Ye,{tooltip:"Previous item",icon:e.jsx(B.LeftOutlined,{}),onClick:d}),b(),e.jsx(Ye,{tooltip:"Next item",icon:e.jsx(B.RightOutlined,{}),onClick:f})]})}return e.jsxs("div",{className:"flex mb-2",children:[T(),e.jsxs("div",{className:"flex-none h-8 pl-2",children:[i!=="graph"&&y&&e.jsx(Ye,{tooltip:"Create new item",icon:e.jsx(B.FileAddOutlined,{}),disabled:n,onClick:s}),u&&y&&e.jsx(Ye,{tooltip:"Search existing item",icon:e.jsx(B.SearchOutlined,{}),disabled:n,onClick:g}),i!=="graph"&&S(),i!=="graph"&&V(),i==="form"&&E(),S(),m&&e.jsx(Ye,{tooltip:"Toggle view mode",icon:e.jsx(B.AlignLeftOutlined,{}),onClick:o})]})]})},cl={form:se.Form,tree:se.Tree,graph:Nt};function dl(t){const r=t.map(s=>s.id);return t.filter((s,o)=>{const{id:i}=s;return!r.includes(i,o+1)})}const ul=t=>{var $e;const{value:r,onChange:n,ooui:s,views:o}=t,{items:i=[]}=r||{},{currentView:a,setCurrentView:c,itemIndex:h,setItemIndex:d}=l.useContext(bn),f=l.useContext(De),{activeId:u,getFields:g,getValues:w,getContext:y,domain:m}=f||{},{lang:v,t:S}=l.useContext(ge),[T,V]=l.useState(!1),[b,E]=l.useState(!1),[D,L]=l.useState(),[x,F]=l.useState(!1),[O,C]=l.useState(!1),[P,I]=l.useState(),[_,$]=l.useState([]),[A,M]=l.useState(!1),N=l.useRef([]),[k,W]=l.useState(),z=l.useRef(),[j,G]=l.useState(void 0),{readOnly:Z,relation:H,context:Y,domain:R}=s,re=s.type==="many2many",{id:ce}=s,X=i.filter(ee=>(ee.values||ee.treeValues)&&ee.operation!=="pendingRemove"),Q=l.useRef();l.useEffect(()=>{if(Q.current!==a){Q.current=a,ue();return}ue()},[i,a]);const ue=l.useCallback(()=>{(a==="form"&&i.some(ee=>!ee.values)||a==="tree"&&i.some(ee=>!ee.treeValues))&&ke()},[i,a]);l.useEffect(()=>{Ee()},[m]);const he=ee=>{var le,Ce;n==null||n({fields:((le=o.get("form"))==null?void 0:le.fields)||((Ce=o.get("tree"))==null?void 0:Ce.fields),items:dl(ee)})},ke=async()=>{await Fe(),h>X.length-1&&h!==0&&d(0)},Fe=async ee=>{var le,Ce,ye;E(!0),V(!1),L(void 0);try{const[be,Te]=await Jt({treeView:{arch:(le=o.get("tree"))==null?void 0:le.arch,fields:(Ce=o.get("tree"))==null?void 0:Ce.fields},formView:{fields:((ye=o.get("form"))==null?void 0:ye.fields)||{}},model:H,items:i,context:{...y==null?void 0:y(),...Y},currentView:ee||a});return z.current||(z.current=be.map(Ue=>Ue.id)),(a||ee)==="tree"&&Te&&G(Te),he(be),be}catch(be){L(be)}finally{E(!1)}};async function Ee(){R&&(N.current=await K.getHandler().evalDomain({domain:R,values:ct({fields:g(),values:w()}),fields:g(),context:y()})),m&&m.length>0&&(N.current=N.current.concat(se.transformDomainForChildWidget({domain:m,widgetFieldName:ce})))}const Pe=()=>{const ee=Array.from(o.keys()),le=ee[(ee.indexOf(a)+1)%ee.length];a==="form"?ve(()=>{c(le)}):c(le)},we=()=>{h>0&&(a==="form"?ve(()=>{d(h-1)}):d(h-1))},ie=()=>{const ee=X.length;h<ee-1&&(a==="form"?ve(()=>{d(h+1)}):d(h+1))},Me=async()=>{const ee=X[h].id,le=(await K.getHandler().readObjects({model:H,ids:[ee],fields:o.get("form").fields,context:{...y==null?void 0:y(),...Y}}))[0],Ce=(await K.getHandler().readObjects({model:H,ids:[ee],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...Y}}))[0],ye=i.map(be=>be.id===ee?{...be,operation:"original",values:le,treeValues:Ce}:be);he(ye)},ve=ee=>{T?St({lang:v,onOk:()=>{Me(),ee(),V(!1)}}):ee()},Ve=()=>{if(re){il({lang:v,onOk:()=>{a==="form"?Se():_e()}});return}ol({lang:v,onOk:()=>{a==="form"?Se():_e()}})},Ae=async()=>{const{inv_field:ee}=s;let le;ee&&u&&(le={[ee]:u}),a==="form"?ve(()=>{M(!0),I({defaultValues:le}),F(!0)}):(M(!0),I({defaultValues:le}),F(!0))},te=async()=>{a==="form"?ve(()=>{C(!0)}):C(!0)},Se=async()=>{E(!0),V(!1),L(void 0);try{if(X[h].id>0){const ee=i.map(le=>le.id===X[h].id?{...le,operation:"pendingRemove"}:le);he(ee)}else he(i.filter(ee=>ee.id!==X[h].id))}catch(ee){L(ee)}d(0),E(!1)},_e=async()=>{const ee=X.filter(le=>_.includes(le.id));E(!0),V(!1),L(void 0);try{const le=ee.map(ye=>ye.id),Ce=i.filter(ye=>!(le.includes(ye.id)&&ye.id<0)).map(ye=>le.includes(ye.id)?{...ye,operation:"pendingRemove"}:ye);he(Ce)}catch(le){L(le)}d(0),E(!1)},Ie=(ee,le,Ce,ye=!1)=>{let be;if(ye)be=i.concat({id:ee,operation:"pendingLink",values:{...Ce,id:ee},treeValues:{...Ce,id:ee}});else if(ee)be=i.map(Te=>Te.id===ee?{id:ee,operation:ee>0?"pendingUpdate":"pendingCreate",values:{...Ce,id:ee},treeValues:{...Ce,id:ee}}:Te);else{const Te=di(i);be=i.concat({id:Te,operation:"pendingCreate",values:{...Ce,id:Te},treeValues:{...Ce,id:Te}})}he(be),A||F(!1)},ae=async ee=>{const{id:le}=ee;let Ce=i;const ye=i.find(be=>be.id===le);(ye==null?void 0:ye.values)===void 0&&(Ce=await Fe("form")),I(Ce.find(be=>be.id===le)),M(!1),F(!0)},fe=async ee=>{E(!0);let le=i;const Ce=ee.filter(ye=>!i.find(be=>be.id===ye));try{for(const ye of Ce){const be=(await K.getHandler().readObjects({model:H,ids:[ye],fields:o.get("form").fields,context:{...y==null?void 0:y(),...Y}}))[0],Te=(await K.getHandler().readObjects({model:H,ids:[ye],fields:o.get("tree").fields,context:{...y==null?void 0:y(),...Y}}))[0];le.push({id:ye,operation:"pendingLink",values:be,treeValues:Te})}he(le)}catch(ye){L(ye)}finally{E(!1)}};function Be(){const ee=cl[a];if(a==="graph")return se.parseGraph(o.get("graph").arch).string;{const le=new ee(o.get(a).fields);return le.parse(o.get(a).arch),le.string}}const de=()=>{var le,Ce,ye,be;if(a==="form")return X.length===0?S("noCurrentEntries"):a!==Q.current&&i.some(Te=>!Te.values)?e.jsx(p.Spin,{}):e.jsx(ut,{formView:o.get("form"),values:(le=X[h])==null?void 0:le.values,parentContext:{...y==null?void 0:y(),...Y},model:H,id:(Ce=X[h])==null?void 0:Ce.id,submitMode:"values",onFieldsChange:Te=>{var Oe;const Ue=(Oe=X[h])==null?void 0:Oe.id,He=i.map(Le=>Le.id===Ue?{...Le,operation:Le.operation==="original"?"pendingUpdate":Le.operation,values:{...Te,id:Ue},treeValues:{...Te,id:Ue}}:Le);he(He),V(!0)},readOnly:Z});let ee=[];if(X.some(Te=>Te.treeValues)&&(ee=k?at({resultsToSort:X.map(Te=>Te.treeValues),sorter:k,fields:{...o.get("tree").fields,...((ye=o.get("form"))==null?void 0:ye.fields)||{}}}):X.map(Te=>Te.treeValues)),a==="tree")return e.jsx(Tt,{total:X.length,limit:X.length,treeView:o.get("tree"),results:ee,loading:b,onRowClicked:((be=o.get("form"))==null?void 0:be.fields)!==void 0?ae:void 0,showPagination:!1,rowSelection:{selectedRowKeys:_,onChange:$},sorter:k,onChangeSort:W,context:{...y==null?void 0:y(),...Y},colorsForResults:j,readonly:Z});if(a==="graph"){const Te=[[`${s.inv_field}`,"=",u]];return e.jsx(Nt,{view_id:o.get("graph").view_id,model:s.relation,domain:Te,context:{...y==null?void 0:y(),...Y},limit:0})}};if(D)return e.jsx(p.Alert,{className:"mt-10",message:D,type:"error",banner:!0});const ze=A;return b?e.jsx(p.Spin,{}):e.jsxs(e.Fragment,{children:[e.jsx(ll,{mode:a,title:Be(),readOnly:Z,isMany2Many:re,formHasChanges:T,totalItems:X.length,currentItemIndex:h,onDelete:Ve,onCreateItem:Ae,onToggleViewMode:Pe,onPreviousItem:we,onNextItem:ie,onSearchItem:te,selectedRowKeys:_,showCreateButton:(($e=o.get("form"))==null?void 0:$e.fields)!==void 0,showToggleButton:o.size>1}),de(),e.jsx(ft,{formView:o.get("form"),model:H,id:P==null?void 0:P.id,submitMode:"2many",values:P==null?void 0:P.values,defaultValues:P==null?void 0:P.defaultValues,visible:x,onSubmitSucceed:Ie,parentContext:{...y==null?void 0:y(),...Y},onCancel:()=>{M(!1),F(!1)},readOnly:Z,mustClearAfterSave:ze}),e.jsx(rr,{domain:N.current,model:H,context:{...y==null?void 0:y(),...Y},visible:O,onSelectValues:async ee=>{C(!1),fe(ee)},onCloseModal:()=>{C(!1)}})]})},_n=t=>{const{ooui:r}=t,{mode:n,relation:s,views:o,required:i,context:a}=r;let c;const[h,d]=l.useState(!0),[f,u]=l.useState(),[g,w]=l.useState(new Map),y=l.useContext(De),{getContext:m}=y||{};tt.default(()=>{S()},[r]);const v=async V=>o&&o[V]?o[V]:await K.getHandler().getView({model:s,type:V,context:{...m==null?void 0:m(),...a}}),S=async()=>{d(!0),u(void 0);try{if(n&&n.length>0){for(const V of n){const b=await v(V);g.set(V,b)}w(g)}else{const V=await v("form"),b=await v("tree");g.set("form",V),g.set("tree",b),w(g)}}catch(V){u(JSON.stringify(V))}finally{d(!1)}};if(n&&n.length>0?c=n[0]:c="tree",h)return e.jsx(p.Spin,{});if(f)return e.jsx(p.Alert,{className:"mt-10",message:f,type:"error",banner:!0});const T=async(V,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(Ka,{initialView:c,children:e.jsx(me,{required:i,type:"array",validator:T,...t,children:e.jsx(ul,{ooui:r,views:g})})})},{useToken:fl}=p.theme,Dn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"number",...t,children:e.jsx(hl,{ooui:r})})},hl=t=>{const{ooui:r,value:n,onChange:s}=t,{id:o,readOnly:i,required:a}=r,{token:c}=fl(),h=a&&!i?{backgroundColor:c.colorPrimaryBg}:void 0,d=l.useRef(),[f,u]=l.useState(),g=l.useContext(De),{elementHasLostFocus:w}=g||{};l.useEffect(()=>{u(cn(n))},[n]);const y=S=>{s==null||s(S)};function m(S){d.current=S.target.value,u(S.target.value)}async function v(){y(ga(f)),await new Promise(S=>setTimeout(S,300)),w==null||w()}return e.jsx(p.Input,{value:f,disabled:i,className:"w-full",style:h,id:o,placeholder:"00:00",onChange:m,onBlur:v})};function or(t){const{ooui:r,showLabel:n=!0,responsiveBehaviour:s}=t,o=Je(r.icon||"");return e.jsx(e.Fragment,{children:(r.label||o)&&n?e.jsx(vr.FieldSet,{label:r.label,icon:o,children:e.jsx(Xt,{container:r.container,responsiveBehaviour:s})}):e.jsx(Xt,{container:r.container,responsiveBehaviour:s})})}const{TabPane:pl}=p.Tabs;function kn(t){const{ooui:r,responsiveBehaviour:n}=t,s=r.pages;function o(i){if(i){const a=Je(i);return a&&e.jsx(a,{})}}return e.jsx(p.Tabs,{defaultActiveKey:"1",tabPosition:r.tabPosition,children:s.filter(i=>!i.invisible).map(i=>e.jsx(pl,{tab:e.jsxs(e.Fragment,{children:[o(i.icon)," ",i.label]}),children:e.jsx(or,{ooui:i,showLabel:!1,responsiveBehaviour:n})},i.label))})}const{useToken:gl}=p.theme,{TextArea:sr}=p.Input,Mn=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o,height:i,translatable:a}=r,{token:c}=gl(),h=o&&!s?{backgroundColor:c.colorPrimaryBg}:void 0,d=l.useContext(De),{elementHasLostFocus:f}=d||{};return e.jsx(me,{required:o,...t,children:a?e.jsx(ml,{field:n,height:i,requiredStyle:h}):e.jsx(sr,{disabled:s||a,style:{minHeight:i?i+"px":"100%",...h},rows:4,onBlur:f})})},ml=({value:t,field:r,requiredStyle:n,onChange:s,height:o})=>{const i=l.useContext(De),{activeId:a,activeModel:c,fetchValues:h,formHasChanges:d,elementHasLostFocus:f}=i||{},[u,g]=l.useState(!1),{t:w}=l.useContext(ge);return a?e.jsxs(e.Fragment,{children:[e.jsx("div",{onClick:()=>{if(d!=null&&d()){Qe(w("saveBeforeTranslate"));return}u||g(!0)},children:e.jsx(sr,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",cursor:"pointer",pointerEvents:"none",...n},id:r,disabled:!0,rows:4,onBlur:f})}),e.jsx(Mr,{id:a,model:c,field:r,visible:u,onCloseModal:()=>{g(!1)},onSubmitSucceed:()=>{g(!1),h==null||h()}})]}):e.jsxs(e.Fragment,{children:[e.jsx(p.Row,{gutter:8,wrap:!1,children:e.jsx(sr,{value:t,onChange:y=>{s==null||s(y.target.value)},style:{height:o?o+"px":"100%",...n},id:r,rows:4,onBlur:f})}),e.jsx(p.Row,{justify:"end",style:{paddingTop:5},children:e.jsx(Ye,{tooltip:w("translate"),icon:e.jsx(B.TranslationOutlined,{}),onClick:async()=>{d!=null&&d()?Qe(w("saveBeforeTranslate")):Qe(w("enterTextBeforeTranslate"))},children:w("translate")})})]})},Vn=t=>{const{ooui:r}=t,{label:n,icon:s}=r,o=Je(s||"");return e.jsx(p.Divider,{orientation:"left",className:"text-sm",children:(o||n)&&e.jsxs(p.Space,{children:[o?e.jsx(o,{}):null,n]})})},yl=({model:t,context:r,locale:n,selectedRegistersToExport:s,domain:o,limit:i,onClose:a})=>{const c=l.useRef({}),h=l.useRef(new Map),d=l.useCallback(async v=>{if(v.selectedKeys===void 0||v.selectedKeys.length===0){Qe(xe("selectAtLeastOneField",n));return}let S=o;v.registersAmount==="selected"&&(s==null?void 0:s.length)!==0&&(S=[["id","in",s==null?void 0:s.map(b=>b.id)]]);const{datas:T}=await K.getHandler().exportData({model:t,fields:xl({keys:v.selectedKeys,fields:c.current}),domain:S,limit:v.registersAmount==="all"?0:i,context:r,format:v.exportType});a(),await new Promise(b=>setTimeout(b,200));const V=await st(T);kt(T,V.mime)},[n,t,o,i,r,a]),f=l.useCallback(async()=>{const v=await K.getHandler().getFields({model:t,context:r,fields:[]});return c.current["/"]=v,En({fields:v})},[t,r,c]),u=l.useCallback(async v=>{const T=ar(v,c.current)[ir(v)],V=T.relation,b=await K.getHandler().getFields({model:V,context:r,fields:[]});for(const[E,D]of Object.entries(b))b[E].string=wl({parentTitle:T.string,title:D.string});return c.current[v]=b,En({fields:b,parentKey:v})},[c.current,t,r]),g=l.useCallback(async()=>{const v=await Sl({model:t,context:r}),S=await bl({predefinedExports:v,fields:c.current,onGetFieldChilds:u});return{predefinedExports:v.map(V=>({...V,fields:V.fields.map(b=>{const E=ir(b.key),L=ar(b.key,c.current)[E];return{key:b.key,title:L.string}})})),keysWithChilds:S}},[c.current]),w=l.useCallback(async v=>{const S=await m("ir.exports"),T=await m("ir.exports.line"),V=await K.getHandler().create({model:"ir.exports",values:{name:v.name,resource:t},fields:S,context:r});return await Promise.all(v.fields.map(async b=>await K.getHandler().create({model:"ir.exports.line",values:{name:b.key,export_id:V},fields:T,context:r}))),{...v,id:V}},[]),y=l.useCallback(async v=>{await K.getHandler().deleteObjects({model:"ir.exports",ids:[v.id]})},[]),m=l.useCallback(async v=>{if(h.current.has(v))return h.current.get(v);const S=K.getHandler().getFields({model:v,context:r,fields:[]});h.current.set(v,S)},[h,r]);return{onGetFields:f,onGetFieldChilds:u,onExport:d,onGetPredefinedExports:g,onSavePredefinedExport:w,onRemovePredefinedExport:y}},En=({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=In(o);n.push({key:vl({key:s,parentKey:r}),title:o.string,tooltip:o.help,required:o.required,isLeaf:!i})}return n},In=t=>t.type==="many2one"||t.type==="one2many"||t.type==="many2many",vl=({parentKey:t,key:r})=>`${t?t+"/":""}${r}`,Ft=t=>t.indexOf("/")===-1?t:t.split("/").slice(0,-1).join("/"),ir=t=>{if(t.indexOf("/")===-1)return t;const r=t.split("/");return r[r.length-1]},ar=(t,r)=>t.indexOf("/")===-1?r["/"]:r[Ft(t)],wl=({title:t,parentTitle:r})=>`${r?r+" \u2192 ":""}${t}`,Sl=async({model:t,context:r})=>{const n=await K.getHandler().search({model:"ir.exports",params:[["resource","=",t]],context:r}),s=n.flatMap(i=>i.export_fields),o=await K.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(h=>h.id===a).name}))}))},Cl=({fields:t,keys:r})=>Tl([...new Set(r.filter(n=>{var s,o,i;if(n.indexOf("/")===-1)return!((s=t["/"])!=null&&s[n]);{const a=Ft(n);console.log({key:n,parentKey:a,fields:t});const c=(o=t==null?void 0:t[Ft(n)])==null?void 0:o[n];return console.log({exists:c}),!((i=t==null?void 0:t[Ft(n)])!=null&&i[n])}}).map(n=>Ft(n)))]),bl=async({predefinedExports:t,fields:r,onGetFieldChilds:n})=>{const s=t.flatMap(a=>a.fields.map(c=>c.key)),o=Cl({fields:r,keys:s}),i=[];for(const a of o)i.push({key:a,childs:await n(a)});return i},xl=({keys:t,fields:r})=>t.map(n=>{const s=ir(n),i=ar(n,r)[s];return In(i)?`${n}/id`:n}),Tl=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},An=t=>{const{visible:r,locale:n,onClose:s,model:o,context:i,selectedRegistersToExport:a,totalRegisters:c,domain:h,limit:d,visibleRegisters:f}=t,{onExport:u,onGetFieldChilds:g,onGetFields:w,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:v}=yl({model:o,context:i,domain:h,limit:d,selectedRegistersToExport:a,onClose:s,locale:n});return e.jsx(vr.ExportModal,{visible:r,locale:n,onSucceed:u,onCancel:s,selectedRegistersToExport:a&&a.length&&a.length>0?a.length:void 0,totalRegisters:c,onGetFieldChilds:g,onGetFields:w,visibleRegisters:f,onGetPredefinedExports:y,onSavePredefinedExport:m,onRemovePredefinedExport:v})},$n=t=>{const{ooui:r}=t;return e.jsx(mn,{ooui:r})},Ln=t=>{const{ooui:r}=t;return e.jsx(mn,{ooui:r,showTime:!0})};var Nn={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,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={},h=function(m){return(m=+m)+(m>68?1900:2e3)},d=function(m){return function(v){this[m]=+v}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(v){if(!v||v==="Z")return 0;var S=v.match(/([+-]|\d\d)/g),T=60*S[1]+(+S[2]||0);return T===0?0:S[0]==="+"?-T:T}(m)}],u=function(m){var v=c[m];return v&&(v.indexOf?v:v.s.concat(v.f))},g=function(m,v){var S,T=c.meridiem;if(T){for(var V=1;V<=24;V+=1)if(m.indexOf(T(V,0,v))>-1){S=V>12;break}}else S=m===(v?"pm":"PM");return S},w={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,d("seconds")],ss:[i,d("seconds")],m:[i,d("minutes")],mm:[i,d("minutes")],H:[i,d("hours")],h:[i,d("hours")],HH:[i,d("hours")],hh:[i,d("hours")],D:[i,d("day")],DD:[o,d("day")],Do:[a,function(m){var v=c.ordinal,S=m.match(/\d+/);if(this.day=S[0],v)for(var T=1;T<=31;T+=1)v(T).replace(/\[|\]/g,"")===m&&(this.day=T)}],M:[i,d("month")],MM:[o,d("month")],MMM:[a,function(m){var v=u("months"),S=(u("monthsShort")||v.map(function(T){return T.slice(0,3)})).indexOf(m)+1;if(S<1)throw new Error;this.month=S%12||S}],MMMM:[a,function(m){var v=u("months").indexOf(m)+1;if(v<1)throw new Error;this.month=v%12||v}],Y:[/[+-]?\d+/,d("year")],YY:[o,function(m){this.year=h(m)}],YYYY:[/\d{4}/,d("year")],Z:f,ZZ:f};function y(m){var v,S;v=m,S=c&&c.formats;for(var T=(m=v.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(F,O,C){var P=C&&C.toUpperCase();return O||S[C]||n[C]||S[P].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(I,_,$){return _||$.slice(1)})})).match(s),V=T.length,b=0;b<V;b+=1){var E=T[b],D=w[E],L=D&&D[0],x=D&&D[1];T[b]=x?{regex:L,parser:x}:E.replace(/^\[|\]$/g,"")}return function(F){for(var O={},C=0,P=0;C<V;C+=1){var I=T[C];if(typeof I=="string")P+=I.length;else{var _=I.regex,$=I.parser,A=F.slice(P),M=_.exec(A)[0];$.call(O,M),F=F.replace(M,"")}}return function(N){var k=N.afternoon;if(k!==void 0){var W=N.hours;k?W<12&&(N.hours+=12):W===12&&(N.hours=0),delete N.afternoon}}(O),O}}return function(m,v,S){S.p.customParseFormat=!0,m&&m.parseTwoDigitYear&&(h=m.parseTwoDigitYear);var T=v.prototype,V=T.parse;T.parse=function(b){var E=b.date,D=b.utc,L=b.args;this.$u=D;var x=L[1];if(typeof x=="string"){var F=L[2]===!0,O=L[3]===!0,C=F||O,P=L[2];O&&(P=L[2]),c=this.$locale(),!F&&P&&(c=S.Ls[P]),this.$d=function(A,M,N){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*A);var k=y(M)(A),W=k.year,z=k.month,j=k.day,G=k.hours,Z=k.minutes,H=k.seconds,Y=k.milliseconds,R=k.zone,re=new Date,ce=j||(W||z?1:re.getDate()),X=W||re.getFullYear(),Q=0;W&&!z||(Q=z>0?z-1:re.getMonth());var ue=G||0,he=Z||0,ke=H||0,Fe=Y||0;return R?new Date(Date.UTC(X,Q,ce,ue,he,ke,Fe+60*R.offset*1e3)):N?new Date(Date.UTC(X,Q,ce,ue,he,ke,Fe)):new Date(X,Q,ce,ue,he,ke,Fe)}catch{return new Date("")}}(E,x,D),this.init(),P&&P!==!0&&(this.$L=this.locale(P).$L),C&&E!=this.format(x)&&(this.$d=new Date("")),c={}}else if(x instanceof Array)for(var I=x.length,_=1;_<=I;_+=1){L[1]=x[_-1];var $=S.apply(this,L);if($.isValid()){this.$d=$.$d,this.$L=$.$L,this.init();break}_===I&&(this.$d=new Date(""))}else V.call(this,b)}}})})(Nn);const Fl=Nn.exports;Ze.extend(Fl);const Pn=t=>{const{ooui:r}=t;return e.jsx(me,{...t,children:e.jsx(Ol,{ooui:r})})},Ol=t=>{const r=(n,s)=>{t.onChange&&t.onChange(s)};return e.jsx(p.TimePicker,{onChange:r,value:t.value?Ze(t.value,"HH:mm:ss"):void 0})},Bn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(_l,{ooui:r})})},_l=t=>{const{value:r,onChange:n,ooui:s}=t,{required:o,selectionValues:i,readOnly:a}=s,c=r==null?void 0:r.split(","),[h,d]=l.useState([]),[f,u]=l.useState();return l.useEffect(()=>{if(!r){u(void 0),d([]);return}const g=r&&c&&c[0],w=r&&c&&c[1]&&parseInt(c[1]);d([w,void 0]),u(g)},[r]),e.jsxs(p.Row,{gutter:8,wrap:!1,children:[e.jsx(p.Col,{flex:"1",children:e.jsx(Vr,{ooui:new se.Selection({name:"model_selection",selection:i,readonly:a,required:o}),onChange:g=>{u(g);let w=h[0]||0;g!==f&&(d([]),w=0);const y=`${g},${w}`;y!==r&&(n==null||n(y))},value:f})}),e.jsx(p.Col,{flex:"3",children:e.jsx(Cn,{ooui:new se.Many2one({name:"object_value",relation:f,readonly:a,required:o}),value:h,onChange:g=>{d(g);const w=`${f},${g[0]||0}`;w!==r&&(n==null||n(w))}})})]})},{useToken:Dl}=p.theme,Hn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(kl,{ooui:r})})},kl=t=>{const{ooui:r,value:n,onChange:s}=t,{readOnly:o,required:i,filenameField:a}=r,{token:c}=Dl(),h=i&&!o?{backgroundColor:c.colorPrimaryBg}:void 0,d=l.useRef(null),{setFieldValue:f,getFieldValue:u}=l.useContext(De)||{},{t:g}=l.useContext(ge),w=n?oi(n):"",y=V=>{s==null||s(V)};async function m(){const V=await st(n),b=`data:${V==null?void 0:V.mime};base64,${n}`,E=document.createElement("a"),D=u(a),L=u("name");E.href=b,E.download=D||L,E.click()}async function v(){const V=await st(n);kt(n,V.mime)}async function S(V){V.stopPropagation(),V.preventDefault();const b=V.target.files[0],E=await qr(b);y(E),a&&f(a,b.name)}function T(){f(a,void 0),y(void 0)}return e.jsxs(p.Row,{gutter:8,children:[e.jsxs(p.Col,{style:{paddingBottom:5},children:[e.jsx("input",{type:"file",id:"file",ref:d,style:{display:"none"},onChange:S}),e.jsx(p.Input,{type:"text",disabled:!0,style:h,value:w})]}),e.jsx(p.Col,{children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(B.FolderOpenOutlined,{}),disabled:o,onClick:()=>{d.current.click()},children:"Select"}),e.jsx(p.Button,{icon:e.jsx(B.EyeOutlined,{}),disabled:!n,onClick:v,children:g("open")}),e.jsx(Ye,{tooltip:g("download"),disabled:!n,onClick:m,icon:e.jsx(B.DownloadOutlined,{})}),e.jsx(Ye,{tooltip:g("clear"),disabled:o||!n,onClick:T,icon:e.jsx(B.ClearOutlined,{})})]})})]})},lr={tree:e.jsx(B.TableOutlined,{}),form:e.jsx(B.FormOutlined,{}),graph:e.jsx(B.AreaChartOutlined,{}),calendar:e.jsx(B.CalendarOutlined,{})};function Kn(t){return t?(lr==null?void 0:lr[t.type])||e.jsx(B.FormOutlined,{}):e.jsx(B.FormOutlined,{})}function cr(t){const{currentView:r,availableViews:n,onChangeView:s,disabled:o=!1,formHasChanges:i=!1,previousView:a}=t,{t:c,lang:h}=l.useContext(ge);function d(){const g=n.map((w,y)=>e.jsx(p.Menu.Item,{children:e.jsxs(p.Row,{wrap:!1,children:[e.jsx(p.Col,{flex:"none",style:{paddingRight:20},children:Kn(w)}),e.jsx(p.Col,{flex:"auto",style:{paddingRight:20},children:w.type.charAt(0).toUpperCase()+w.type.slice(1)}),e.jsx(p.Col,{flex:"none",children:e.jsx(B.CheckOutlined,{style:{opacity:r.view_id===w.view_id?1:0}})})]})},w.view_id||y));return e.jsx(p.Menu,{onClick:u,children:e.jsx(p.Menu.ItemGroup,{title:c("viewAs"),children:g})})}function f(g){if(i){St({lang:h,onOk:()=>{g()}});return}g()}function u(g){f(()=>{const w=n.find(y=>y.view_id===parseInt(g.key));s(w)})}return e.jsxs("div",{style:{display:"flex"},children:[e.jsx(Ye,{tooltip:a?c("viewAs")+" "+c(a.type):"",icon:Kn(a),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:()=>{u({key:a==null?void 0:a.view_id})},disabled:o||n.length===1}),e.jsx(p.Dropdown,{overlay:d(),disabled:o||n.length===1,children:e.jsx(p.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:e.jsx(B.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:g=>g.preventDefault()})})]})}function ht(t){const{icon:r,tooltip:n,items:s=[],onItemClick:o,label:i,disabled:a=!1}=t;function c(){const d=s==null?void 0:s.map((f,u)=>f.name==="divider"?e.jsx(p.Menu.Divider,{},"divider"+u):e.jsx(p.Menu.Item,{children:f.name},f.id));return e.jsx(p.Menu,{onClick:h,children:e.jsx(p.Menu.ItemGroup,{title:n,children:d})})}function h(d){const f=s.find(u=>isNaN(d.key)?u.id===d.key:u.id===parseInt(d.key));o(f)}return e.jsx(p.Dropdown,{overlay:c(),disabled:a||!s||s.length===0,children:e.jsxs(p.Button,{children:[r," ",i," ",e.jsx(B.DownOutlined,{})]})})}function We(t){const{onClick:r,disabled:n=!1,loading:s=!1,tooltip:o,icon:i,label:a,type:c="default"}=t,h=s?e.jsx(B.LoadingOutlined,{}):i;return e.jsxs(Ye,{type:c,tooltip:o,onClick:r,disabled:n,children:[h,a]})}function Yn(t){const{disabled:r=!1}=t,{formHasChanges:n,onNewClicked:s}=l.useContext(qe),{t:o,lang:i}=l.useContext(ge),a=()=>{if(n){St({lang:i,onOk:()=>{s()}});return}s()};return e.jsx(We,{icon:e.jsx(B.FileAddOutlined,{}),tooltip:o("new"),onClick:a,disabled:r})}const{confirm:Ml}=p.Modal,Vl=({onOk:t,onCancel:r,lang:n})=>{Ml({title:xe("unsavedChanges",n),icon:e.jsx(B.ExclamationCircleOutlined,{}),centered:!0,content:xe("confirmRefreshWithoutSave",n),okText:xe("discardAndRefresh",n),cancelText:xe("cancel",n),onOk:t,onCancel:r})};async function Wn(t,r,n){const s=(await K.getHandler().getLogInfo({model:t,ids:[r]}))[0],{create_date:o,create_uid:i,id:a,write_date:c,write_uid:h}=s;Qe(e.jsxs("div",{children:["ID: "+a," ",e.jsx("br",{}),n("createdBy")+": "+i[1]," ",e.jsx("br",{}),n("creationDate")+": "+o," ",e.jsx("br",{}),n("lastUpdatedBy")+": "+h[1]," ",e.jsx("br",{}),n("lastUpdatedDate")+": "+c]}))}const El=t=>{const{numberOfAttachments:r,disabled:n}=t,{t:s,lang:o}=l.useContext(ge),[i,a]=l.useState(!1),c=e.jsxs(p.Button,{disabled:n,children:[e.jsx(B.LinkOutlined,{}),`(${r})`,e.jsx(B.DownOutlined,{style:{fontSize:12}})]});return n?c:e.jsx(p.Popover,{onVisibleChange:h=>a(h),visible:i,placement:"bottom",content:Il(t,a,o),title:s("attachments"),arrowContent:null,children:c})},Il=(t,r,n)=>{const{attachments:s=[],loading:o,onAddNewAttachment:i,onopenAttachmentLink:a,onOpenAttachmentDetail:c,onListAllAttachments:h}=t;return o?e.jsx(p.Spin,{style:{padding:20}}):e.jsxs(e.Fragment,{children:[e.jsxs("a",{style:{display:"block",paddingBottom:5},href:"#",onClick:()=>{r(!1),h()},children:[e.jsx(B.TableOutlined,{})," ",xe("listAllAttachments",n)]}),e.jsxs("a",{style:{display:"block"},href:"#",onClick:()=>{r(!1),i()},children:[e.jsx(B.FileAddOutlined,{})," ",xe("addNewAttachment",n)]}),s.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("li",{className:"ant-dropdown-menu-item-divider"}),s.map(d=>{const f=d.link?B.LinkOutlined:B.DownloadOutlined;return e.jsxs(p.Row,{style:{paddingTop:4,paddingBottom:4},wrap:!1,align:"middle",children:[e.jsx(p.Col,{flex:"auto",children:d.name}),e.jsx(p.Col,{flex:"25px",style:{textAlign:"center"},children:(d.datas_fname||d.link)&&e.jsx(p.Tooltip,{title:d.link?xe("openAttachmentLink",n):xe("download",n),children:e.jsx(f,{style:{cursor:"pointer"},onClick:()=>{r(!1),a(d)}})})}),e.jsx(p.Col,{flex:"25px",style:{textAlign:"center"},children:e.jsx(p.Tooltip,{title:xe("openAttachment",n),children:e.jsx(B.FormOutlined,{style:{cursor:"pointer"},onClick:()=>{r(!1),c(d)}})})})]},d.id)})]})]})};function Al(t){const{attachments:r,disabled:n=!1,onAddNewAttachment:s,onListAllAttachments:o,onViewAttachmentDetails:i}=t,{formRef:a}=l.useContext(qe),[c,h]=l.useState(!1),[d,f]=l.useState([]),[u,g]=l.useState(!1),{t:w}=l.useContext(ge),y=l.useCallback(async()=>{h(!0);try{const S=await K.getHandler().readObjects({model:"ir.attachment",ids:r.map(T=>T.id),fieldsToRetrieve:["name","datas_fname","link"],context:a.current.getContext()});f(S.map(T=>({id:T.id,name:T.name,datas_fname:T.datas_fname,link:T.link})))}catch(S){Ne(S)}h(!1)},r),m=l.useCallback(async S=>{if(S.link){window.open(S.link);return}g(!0);let T;try{T=(await K.getHandler().readObjects({model:"ir.attachment",ids:[S.id],context:a.current.getContext()}))[0]}catch(V){Ne(V)}if(g(!1),!!T)if(T.datas){const V=await st(T.datas);kt(T.datas,V.mime)}else i(T)},[]),v=l.useCallback(async S=>{i(S)},[]);return l.useEffect(()=>{y()},[y]),e.jsxs(e.Fragment,{children:[e.jsx(El,{numberOfAttachments:r.length,attachments:d,disabled:n,loading:c,onAddNewAttachment:s,onListAllAttachments:o,onopenAttachmentLink:m,onOpenAttachmentDetail:v}),e.jsx(p.Modal,{title:w("downloadingAttachment"),open:u,footer:null,closable:!1,centered:!0,maskClosable:!1,children:e.jsx(p.Spin,{})})]})}function qn({toolbar:t}){const{availableViews:r,currentView:n,setCurrentView:s,onFormSave:o,formHasChanges:i,formIsSaving:a,currentId:c,results:h,setCurrentItemIndex:d,currentItemIndex:f,setCurrentId:u,currentModel:g,setRemovingItem:w,removingItem:y,duplicatingItem:m,setDuplicatingItem:v,setResults:S,formIsLoading:T,attachments:V,formRef:b,setFormHasChanges:E,previousView:D,setPreviousView:L,goToResourceId:x}=l.useContext(qe),{t:F,lang:O}=l.useContext(ge),C=l.useContext(dt),{processAction:P}=C||{},I=l.useContext(Xe),{openRelate:_,openDefaultActionForModel:$}=I||{};function A(H){if(i){Vl({lang:O,onOk:()=>{H()}});return}H()}function M(H){if(i){St({lang:O,onOk:()=>{H()}});return}H()}function N(){h&&h.length>f+1?(d==null||d(f+1),u==null||u(h[f+1].id)):h&&f+1===h.length&&(d==null||d(0),u==null||u(h[0].id))}function k(){h&&f>0?(d==null||d(f-1),u==null||u(h[f-1].id)):h&&f===0&&(d==null||d(h.length-1),u==null||u(h[h.length-1].id))}function W(){ot({confirmMessage:F("confirmRemoveItem"),lang:O,onOk:()=>{z()}})}async function z(){try{w==null||w(!0),await K.getHandler().deleteObjects({model:g,ids:[c]});const H=h==null?void 0:h.filter(R=>R.id!==c);S==null||S(H);let Y=0;f>0&&f<=h.length-1&&(Y=f-1),H!=null&&H[Y]?(u==null||u(H==null?void 0:H[Y].id),d==null||d(Y)):(u==null||u(void 0),d==null||d(void 0))}catch(H){Et(JSON.stringify(H))}finally{w==null||w(!1)}}async function j(){try{v==null||v(!0);const H=await K.getHandler().duplicate({id:c,model:g,context:b.current.getContext()});H&&await(x==null?void 0:x(H))}catch(H){Et(JSON.stringify(H))}finally{v==null||v(!1)}}const G=a||y||T||m;function Z(H){P==null||P({actionData:H,values:b.current.getValues(),fields:b.current.getFields(),context:b.current.getContext(),onRefreshParentValues:()=>{b.current.fetchValues()}})}return n?e.jsxs(p.Space,{wrap:!0,children:[T&&e.jsxs(e.Fragment,{children:[e.jsx(p.Spin,{}),pt(),pt()]}),e.jsx(Yn,{disabled:a||T||y||m}),e.jsx(We,{icon:e.jsx(B.SaveOutlined,{}),tooltip:F("save"),disabled:!i||G,loading:a,onClick:o}),e.jsx(We,{icon:e.jsx(B.CopyOutlined,{}),tooltip:F("duplicate"),disabled:i||a||c===void 0||m||T,loading:m,onClick:j}),e.jsx(We,{icon:e.jsx(B.DeleteOutlined,{}),tooltip:F("delete"),disabled:a||c===void 0||y||m||T,loading:y,onClick:W}),pt(),e.jsx(We,{icon:e.jsx(B.InfoCircleOutlined,{}),tooltip:F("showLogs"),disabled:a||c===void 0||y||m||T,loading:!1,onClick:()=>{Wn(g,c,F)}}),e.jsx(We,{icon:e.jsx(B.ReloadOutlined,{}),tooltip:F("refresh"),disabled:a||c===void 0||y||m||T,loading:!1,onClick:()=>{A(()=>{b.current.fetchValues()})}}),pt(),e.jsx(cr,{currentView:n,previousView:D,availableViews:r,onChangeView:H=>{L==null||L(n),E==null||E(!1),s==null||s(H)},disabled:G,formHasChanges:i}),pt(),e.jsxs(p.Space,{children:[e.jsx(We,{icon:e.jsx(B.LeftOutlined,{}),tooltip:F("previous"),disabled:G,loading:!1,onClick:()=>{M(k)}}),e.jsx(We,{icon:e.jsx(B.RightOutlined,{}),tooltip:F("next"),disabled:G,loading:!1,onClick:()=>{M(N)}})]}),pt(),e.jsx(ht,{icon:e.jsx(B.ThunderboltOutlined,{}),disabled:G,tooltip:F("actions"),items:t==null?void 0:t.action,onItemClick:async H=>{!H||!(await gt({onFormSave:o})).succeed||Z(H)}}),e.jsx(ht,{icon:e.jsx(B.PrinterOutlined,{}),disabled:G,tooltip:F("reports"),items:t==null?void 0:t.print,onItemClick:async H=>{if(!H)return;const Y=await gt({onFormSave:o});!Y.succeed||Z({...H,datas:{...H.datas||{},ids:[Y.currentId]}})}}),e.jsx(ht,{icon:e.jsx(B.EnterOutlined,{}),disabled:G,tooltip:F("related"),items:t==null?void 0:t.relate,onItemClick:async H=>{!H||!(await gt({onFormSave:o})).succeed||_({relateData:H,values:b.current.getValues(),fields:b.current.getFields(),action_id:H.id,action_type:H.type})}}),e.jsx(Al,{disabled:G,attachments:V,onAddNewAttachment:async()=>{const H=await gt({onFormSave:o});if(!H.succeed)return;const Y=H.currentId,R=g;$({model:"ir.attachment",values:{selection_associated_object:`${R},${Y}`},forced_values:{res_model:R,res_id:Y},initialViewType:"form"})},onListAllAttachments:async()=>{const H=await gt({onFormSave:o});if(!H.succeed)return;const Y=H.currentId;$({model:"ir.attachment",domain:[["res_model","=",`${g}`],["res_id","=",`${Y}`]],initialViewType:"tree"})},onViewAttachmentDetails:async H=>{!(await gt({onFormSave:o})).succeed||$({model:"ir.attachment",res_id:H.id,initialViewType:"form"})}})]}):null}function pt(){return e.jsx("div",{className:"inline-block w-2"})}async function gt({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:$l}=p.theme,Un=t=>{const{ooui:r,value:n,onChange:s,valueValidator:o,linkPrefix:i=""}=t,{id:a,readOnly:c,required:h}=r,{token:d}=$l(),f=h&&!c?{backgroundColor:d.colorPrimaryBg}:void 0,u=l.useContext(De),{elementHasLostFocus:g}=u||{},[w,y]=l.useState(!1),[m,v]=l.useState(!1);l.useEffect(()=>{c&&!w&&v(!1),!n&&!c&&(y(!0),v(!0))},[w,c]);const S=T=>{s==null||s(T.target.value)};return e.jsxs(p.Row,{gutter:8,wrap:!1,align:"middle",children:[c?null:e.jsx(p.Col,{flex:"32px",children:w?e.jsx(p.Button,{icon:e.jsx(B.CheckOutlined,{}),onClick:()=>{o(n)&&(y(!1),v(!1))},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1}):e.jsx(p.Button,{icon:e.jsx(B.EditOutlined,{}),onClick:()=>{y(!0),v(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),e.jsx(p.Col,{flex:"auto",children:m?e.jsx(p.Input,{style:{borderTopLeftRadius:0,borderBottomLeftRadius:0,...f},id:a,onChange:S,value:n,onBlur:()=>{o(n)&&(y(!1),v(!1),g==null||g())}}):e.jsx("a",{href:`${i}${n}`,style:{color:d.colorPrimary,paddingRight:15},target:"_blank",children:n})})]})},Gn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(Un,{ooui:r,valueValidator:s=>s?ko.default(s):!1})})},jn=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,...t,children:e.jsx(Un,{ooui:r,linkPrefix:"mailto:",valueValidator:s=>s?Mo.default(s):!1})})},Ll=t=>{const{visible:r,onIdSubmitted:n,onCancel:s,isSearching:o}=t,{t:i}=l.useContext(ge),a=l.useRef();function c(h){n(h.id)}return e.jsx(p.Modal,{title:i("goToResourceId"),centered:!0,open:r,footer:null,destroyOnClose:!0,onCancel:s,maskClosable:!1,afterOpenChange:h=>{var d;return h&&((d=a.current)==null?void 0:d.focus())},children:e.jsxs(p.Form,{layout:"vertical",onFinish:c,autoComplete:"off",children:[e.jsx(p.Form.Item,{name:"id",label:i("searchId"),rules:[{required:!0,type:"number"}],children:e.jsx(p.InputNumber,{style:{width:"100%"},autoFocus:!0,ref:a})}),e.jsx(p.Row,{align:"middle",justify:"end",children:e.jsx(p.Col,{children:e.jsxs(p.Space,{children:[e.jsx(p.Button,{icon:e.jsx(B.CloseOutlined,{}),htmlType:"button",onClick:s,disabled:o,children:i("cancel")}),e.jsx(p.Button,{loading:o,style:{marginLeft:15},icon:e.jsx(B.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:o,children:i("ok")})]})})})]})})},{useToken:Nl}=p.theme;function zn(t){const{badgeNumber:r=0,...n}=t,{token:s}=Nl();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(Ye,{...n,style:{width:46,zIndex:0}})]})}function Pl({refreshGraph:t}){const{t:r}=l.useContext(ge),{availableViews:n,currentView:s,setCurrentView:o,searchParams:i,searchVisible:a,setSearchVisible:c,graphIsLoading:h,previousView:d,setPreviousView:f}=l.useContext(qe);return e.jsxs(p.Space,{wrap:!0,children:[e.jsx(zn,{icon:e.jsx(B.FilterOutlined,{style:{color:a?"white":void 0}}),tooltip:r("advanced_search"),type:a?"primary":"default",onClick:()=>{c==null||c(!a)},disabled:h,badgeNumber:i==null?void 0:i.length}),e.jsx(We,{icon:e.jsx(B.ReloadOutlined,{}),tooltip:r("refresh"),disabled:h,loading:!1,onClick:()=>{t()}}),e.jsx(cr,{currentView:s,availableViews:n,onChangeView:u=>{f==null||f(s),o==null||o(u)},disabled:!1,previousView:d})]})}const{useToken:Bl}=p.theme,{Title:Hl,Text:Pt}=p.Typography;function Bt(t){const{title:r,children:n}=t,{title:s,currentView:o,currentId:i,currentItemIndex:a,results:c,totalItems:h,selectedRowItems:d}=l.useContext(qe),{t:f}=l.useContext(ge),{token:u}=Bl();function g(){if((o==null?void 0:o.type)==="form")return i?h===0?e.jsxs(e.Fragment,{children:[f("editingDocument")," (id:"," ",e.jsx(Pt,{copyable:{icon:e.jsx(B.CopyOutlined,{style:{color:"red"}})},children:i}),")"]}):e.jsxs(e.Fragment,{children:[f("register")," ",a===void 0?1:a+1," /"," ",c.length," ",f("of")," ",h," - ",f("editingDocument")," (id:"," ",e.jsx(Pt,{copyable:!0,children:i}),")"]}):"";if((o==null?void 0:o.type)==="tree"&&d){if(d.length===1)return e.jsxs(e.Fragment,{children:["1 ",f("selectedRegisters")," - (id:"," ",e.jsx(Pt,{copyable:!0,children:d[0].id}),")"]});if(d.length>1)return e.jsxs(e.Fragment,{children:[d.length," ",f("selectedRegisters"),e.jsx(Pt,{copyable:{text:d.map(w=>w.id).join(", ")}})]})}return null}return e.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[e.jsxs(p.Row,{className:"shadow-md",style:{padding:"1em",borderRadius:u.borderRadius,backgroundColor:u.colorPrimaryBg},align:"middle",children:[e.jsxs(p.Col,{flex:2,children:[e.jsx(Hl,{level:3,style:{marginBottom:0},children:r||s}),g()]}),e.jsx(p.Col,{flex:3,children:e.jsx(p.Row,{justify:"end",children:n})})]}),e.jsx("div",{className:"pb-5"})]})}const Kl=t=>{const{viewData:r,visible:n,model:s,context:o,domain:i,formView:a,treeView:c}=t,h=l.useRef(),d=l.useContext(qe),{setResults:f=void 0,setCurrentItemIndex:u=void 0,currentId:g=void 0,results:w=void 0,setSelectedRowItems:y=void 0,setSearchParams:m=void 0,searchVisible:v=!0,setSearchVisible:S=void 0,sorter:T=void 0,setSorter:V=void 0,setTotalItems:b=void 0,setSearchTreeNameSearch:E=void 0,setTreeIsLoading:D=void 0,limit:L,setLimit:x,searchParams:F,searchValues:O,setSearchValues:C,currentView:P}=d||{},[I,_]=l.useState(!0);l.useEffect(()=>{var W;(W=h.current)==null||W.refresh()},[F]),l.useEffect(()=>{r.view_id!==P.view_id&&_(!0)},[P]);const{clear:$,searchFilterLoading:A,searchError:M,offset:N,tableRefreshing:k}=on({model:s,setSearchTreeNameSearch:E,setSelectedRowItems:y,searchParams:F,setSearchValues:C,setSearchParams:m,setSearchVisible:S,setTreeIsLoading:D,context:o,formView:a,treeView:c,sorter:T,setSorter:V,setCurrentItemIndex:u,setResultsActionView:f,resultsActionView:w,domain:i,currentId:g,setActionViewTotalItems:b,limit:L,setLimit:x});return!n||!r?null:e.jsxs(e.Fragment,{children:[e.jsx(Bt,{title:r.name,children:e.jsx(Pl,{refreshGraph:()=>{h.current.refresh()}})}),e.jsx(Rt,{fields:{...c.fields,...a.fields},searchFields:Jr([a.search_fields,c.search_fields]),limit:L,onClear:$,offset:N,isSearching:A,onSubmit:W=>{_(!1),m==null||m(W.params),S==null||S(!1)},searchError:M,searchVisible:v,searchValues:O,showLimitOptions:!1}),k?e.jsx(p.Spin,{}):e.jsx(Nt,{ref:h,view_id:r.view_id,model:s,context:o,domain:Ct(F||[],i),limit:I?L:void 0,manualIds:I?w==null?void 0:w.map(W=>W.id):void 0})]})},Yl=t=>{const{visible:r,formRef:n,model:s,currentId:o,domain:i,formView:a,context:c,defaultValues:h,forcedValues:d,results:f,setResults:u,setCurrentItemIndex:g}=t;return r?e.jsxs(e.Fragment,{children:[e.jsx(Bt,{children:e.jsx(qn,{toolbar:a==null?void 0:a.toolbar})}),e.jsx(ut,{rootForm:!0,ref:n,model:s,defaultValues:h,forcedValues:d,formView:a,actionDomain:i,id:o,parentContext:c,onSubmitSucceed:(w,y)=>{f.findIndex(v=>v.id===w)===-1&&(f.push(y),u(f),g(f.length-1))}})]}):null};function Wl(t){const{onSearch:r,disabled:n=!1,searchText:s}=t,{t:o}=l.useContext(ge),[i]=p.Form.useForm(),[a,c]=l.useState(!1);function h(f){r(f.search)}l.useEffect(()=>{i.setFieldsValue({search:s})},[s]);function d(){c(!1),i.setFieldsValue({search:void 0}),r(void 0)}return e.jsx(p.Form,{form:i,onFinish:h,autoComplete:"off",children:e.jsxs(p.Row,{align:"middle",justify:"end",children:[e.jsx(p.Col,{children:e.jsx(p.Form.Item,{name:"search",noStyle:!0,children:e.jsx(p.Input,{autoFocus:!0,disabled:n,onChange:f=>{c(f.target.value.length>0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},suffix:(a||s&&s.length>0)&&e.jsx(p.Tooltip,{title:o("clear"),children:e.jsx(B.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:d})})})})}),e.jsx(p.Col,{children:e.jsx(p.Button,{htmlType:"submit",disabled:n,style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},children:o("search")})})]})})}const Jn=Ke.default.createContext({previewFeatures:!1});function ql(t){var j;const{availableViews:r,currentView:n,setCurrentView:s,selectedRowItems:o,setRemovingItem:i,removingItem:a,duplicatingItem:c,setDuplicatingItem:h,currentModel:d,searchTreeRef:f,setCurrentId:u,setCurrentItemIndex:g,searchParams:w,searchVisible:y,setSearchVisible:m,setSearchTreeNameSearch:v,searchTreeNameSearch:S,treeIsLoading:T,setPreviousView:V,previousView:b,results:E,limit:D,totalItems:L}=l.useContext(qe),{parentContext:x={},treeExpandable:F,toolbar:O}=t;l.useContext(Jn);const{t:C,lang:P}=l.useContext(ge),I=l.useContext(dt),{processAction:_}=I||{},[$,A]=l.useState(!1),M=S!==void 0&&S.trim().length>0;function N(){ot({confirmMessage:C("confirmRemove"),lang:P,onOk:()=>{k()}})}async function k(){var G;try{i==null||i(!0),await K.getHandler().deleteObjects({model:d,ids:o.map(Z=>Z.id)}),u==null||u(void 0),g==null||g(void 0),(G=f==null?void 0:f.current)==null||G.refreshResults()}catch(Z){Ne(Z)}finally{i==null||i(!1)}}async function W(){var G;try{h==null||h(!0);const Z=o[0].id;await K.getHandler().duplicate({id:Z,model:d,context:{...x}})&&((G=f==null?void 0:f.current)==null||G.refreshResults())}catch(Z){Ne(Z)}finally{h==null||h(!1)}}function z(G){_==null||_({actionData:G,values:{active_id:o==null?void 0:o.map(Z=>Z.id)[0],active_ids:o==null?void 0:o.map(Z=>Z.id)},fields:{},context:{...x,active_id:o==null?void 0:o.map(Z=>Z.id)[0],active_ids:o==null?void 0:o.map(Z=>Z.id)},onRefreshParentValues:()=>{var Z;(Z=f==null?void 0:f.current)==null||Z.refreshResults()}})}return e.jsxs(p.Space,{wrap:!0,children:[T&&e.jsxs(e.Fragment,{children:[e.jsx(p.Spin,{}),rt(),rt()]}),F?null:e.jsxs(e.Fragment,{children:[e.jsx(Wl,{disabled:c||a||T,searchText:S,onSearch:G=>{G&&G.trim().length>0?v==null||v(G):v==null||v(void 0)}}),!F&&e.jsx(zn,{icon:e.jsx(B.FilterOutlined,{style:{color:y?"white":void 0}}),tooltip:C("advanced_search"),type:y?"primary":"default",onClick:()=>{m==null||m(!y)},disabled:c||a||T,badgeNumber:w==null?void 0:w.length}),rt(),e.jsx(Yn,{disabled:T}),e.jsx(We,{icon:e.jsx(B.CopyOutlined,{}),tooltip:C("duplicate"),disabled:!o||(o==null?void 0:o.length)!==1||c||T,loading:c,onClick:W}),e.jsx(We,{icon:e.jsx(B.DeleteOutlined,{}),tooltip:C("delete"),disabled:!(o&&(o==null?void 0:o.length)>0)||T,loading:a,onClick:N}),rt()]}),e.jsx(We,{icon:e.jsx(B.InfoCircleOutlined,{}),tooltip:C("showLogs"),disabled:!(o&&(o==null?void 0:o.length)>0)||T,loading:!1,onClick:()=>{Wn(d,o[0].id,C)}}),e.jsx(We,{icon:e.jsx(B.ReloadOutlined,{}),tooltip:C("refresh"),disabled:c||a||T,loading:!1,onClick:()=>{var G;(G=f==null?void 0:f.current)==null||G.refreshResults()}}),!F&&e.jsxs(e.Fragment,{children:[rt(),e.jsx(cr,{currentView:n,availableViews:r,onChangeView:G=>{V==null||V(n),s==null||s(G)},previousView:b,disabled:T})]}),rt(),e.jsx(ht,{icon:e.jsx(B.ThunderboltOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||T,tooltip:C("actions"),items:O==null?void 0:O.action,onItemClick:G=>{!G||z(G)}}),e.jsx(ht,{icon:e.jsx(B.PrinterOutlined,{}),disabled:!(o&&(o==null?void 0:o.length)>0)||T,tooltip:C("reports"),items:O==null?void 0:O.print,onItemClick:G=>{!G||z({...G,datas:{...G.datas||{},ids:o.map(Z=>Z.id)}})}}),rt(),e.jsx(ht,{icon:e.jsx(xr.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:C("export"),items:[{id:"print_screen",name:C("printScreen")},{id:"export",name:C("advancedExport")}],onItemClick:G=>{if(G.id==="print_screen"){let Z=(o==null?void 0:o.map(H=>H.id))||[];Z.length===0&&(Z=(E==null?void 0:E.map(H=>H.id))||[]),z({id:-1,model:d,report_name:"printscreen.list",type:"ir.actions.report.xml",datas:{model:d,ids:Z}});return}A(!0)},disabled:c||a||T||M}),e.jsx(An,{visible:$,locale:P,onClose:()=>A(!1),model:d,domain:Ct(((j=f==null?void 0:f.current)==null?void 0:j.getDomain())||[],w||[]),limit:D,totalRegisters:L||0,selectedRegistersToExport:o,visibleRegisters:(E==null?void 0:E.length)||0,context:x})]})}function rt(){return e.jsx("div",{className:"inline-block w-2"})}const Ul=t=>{const{visible:r,searchTreeRef:n,model:s,context:o,formView:i,treeView:a,domain:c,setCurrentItemIndex:h,results:d,setCurrentId:f,setCurrentView:u,availableViews:g,searchTreeNameSearch:w}=t,{currentView:y,setPreviousView:m}=l.useContext(qe);return r?e.jsxs(e.Fragment,{children:[e.jsx(Bt,{children:e.jsx(ql,{toolbar:a==null?void 0:a.toolbar,parentContext:o,treeExpandable:(a==null?void 0:a.isExpandable)||!1})}),e.jsx(tr,{ref:n,rootTree:!0,model:s,parentContext:o,nameSearch:w,formView:i,treeView:a,domain:c,onRowClicked:v=>{const{id:S}=v;f(S);const T=d.findIndex(b=>b.id===S);m==null||m(y),h(T);const V=g.find(b=>b.type==="form");u(V)}})]}):null},dr=Ke.default.createContext(null),Gl=t=>{const[r,n]=l.useState(!1),[s,o]=l.useState(!1),{children:i,dashboardRef:a,openAction:c}=t;return e.jsx(dr.Provider,{value:{isLoading:r,setIsLoading:n,dashboardRef:a,openAction:c,moveItemsEnabled:s,setMoveItemsEnabled:o},children:i})};function jl(){const{isLoading:t,dashboardRef:r,moveItemsEnabled:n,setMoveItemsEnabled:s}=l.useContext(dr),{t:o}=l.useContext(ge);return e.jsxs(p.Space,{wrap:!0,children:[e.jsx(We,{icon:e.jsx(B.BorderOuterOutlined,{style:{color:n?"white":void 0}}),type:n?"primary":"default",tooltip:o("moveDashboard"),disabled:t,loading:!1,onClick:()=>{s(!n)}}),zl(),e.jsx(We,{icon:e.jsx(B.SettingOutlined,{}),tooltip:o("configDashboard"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.configDashboard()}}),e.jsx(We,{icon:e.jsx(B.ReloadOutlined,{}),tooltip:o("refresh"),disabled:t,loading:!1,onClick:()=>{r==null||r.current.refresh()}})]})}function zl(){return e.jsx("div",{className:"inline-block w-2"})}const Jl=t=>{const{dashboardData:r}=t,n=l.useRef(),s=l.useContext(Xe),{openShortcut:o}=s||{};return r?e.jsxs(Gl,{dashboardRef:n,openAction:i=>{o(i)},children:[e.jsx(Bt,{children:e.jsx(jl,{})}),e.jsx(Qn,{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 Zl(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 Xl(t,r){const{domain:n,model:s,context:o,views:i,title:a,setCanWeClose:c,tabKey:h,initialView:d,formDefaultValues:f,formForcedValues:u={},res_id:g=!1,action_id:w,action_type:y,treeExpandable:m=!1,limit:v}=t,[S,T]=l.useState(),[V,b]=l.useState([]),[E,D]=l.useState(!0),L=g||void 0,[x,F]=l.useState(L),[O,C]=l.useState([]),[P,I]=l.useState(),[_,$]=l.useState([]),[A,M]=l.useState(),[N,k]=l.useState(0),[W,z]=l.useState(!1),[j,G]=l.useState(!1),[Z,H]=l.useState(),{t:Y}=l.useContext(ge)||{},R=l.useRef(),re=l.useRef(),ce=l.useContext(Xe),{setCurrentView:X,setCurrentId:Q,tabs:ue,activeKey:he,openAction:ke,onRemoveTab:Fe}=ce||{};To.useHotkeys("ctrl+g,command+g",te=>{te.preventDefault(),Me()},[he,ue,S,P,_]);function Ee(te){F(te),Q==null||Q(te)}function Pe(te){T(te),X==null||X(te)}l.useImperativeHandle(r,()=>({canWeClose:ie}));const we=async()=>{D(!0);const te=[],Se=[];for(const ae of i){const[fe,Be]=ae;Be!=="dashboard"?Se.push({viewTuple:ae,promise:K.getHandler().getView({model:s,type:Be,id:fe,context:o})}):Se.push({viewTuple:ae})}const _e=await Zl(Se);for(const ae of _e){if(!ae)continue;const[,fe]=ae.viewTuple;let Be=ae.info;switch(fe){case"dashboard":{const de=i.find($e=>{const[,ee]=$e;return ee==="form"});let ze;de&&(ze={action_id:w,action_type:y,name:a,res_id:o.active_id,res_model:s,view_id:de[0],view_type:de[1]}),te.push({type:"dashboard",id:o.active_id,model:s,context:o,configAction:ze});break}case"form":{te.push({...Be,type:fe});break}case"tree":{te.push({...Be,isExpandable:m,type:fe});break}case"graph":{te.push({...Be,type:fe});break}}}let Ie;!d&&te.find(ae=>ae.type==="tree")?Ie=te.find(fe=>fe.type==="tree"):d?Ie=te.find(fe=>d.id?fe.type===d.type&&fe.view_id===d.id:fe.type===d.type):Ie=te.find(fe=>fe.type==="form"),Ie||(Ne(`Error determining the first view to show for model ${s}.
36
+ Please, make sure the view ids on the fields_view_get responses are the same as the ones defined in the action`),Fe==null||Fe(h)),Pe(Ie),b(te),D(!1)};c({tabKey:h,canWeClose:ie}),l.useEffect(()=>{const te=V.find(_e=>_e.type==="tree"),Se=V.find(_e=>d.id?_e.type===d.type&&_e.view_id===d.id:_e.type===d.type);Pe(Se||te),g?Q==null||Q(L):(Ee(void 0),I(void 0)),we()},[s,i,g]),l.useEffect(()=>{he===h&&(Q==null||Q(x),X==null||X(S))},[ue,he]);async function ie(){return S&&S.type==="form"?await R.current.cancelUnsavedChanges():!0}async function Me(){he===h&&(S.type==="form"&&!await R.current.cancelUnsavedChanges()||z(!0))}async function ve(te){var ae;G(!0);const Se=_.findIndex(fe=>fe.id===te);let _e;if(Se===-1){try{_e=(ae=await K.getHandler().readObjects({model:s,ids:[te],context:o}))==null?void 0:ae[0]}catch{}if(!_e){G(!1),z(!1),Qe(Y("idNotFound"));return}}else _e=_[Se];G(!1),z(!1);const Ie=i.find(fe=>fe[1]==="form");ke({domain:[],context:o,model:s,views:i,title:a,target:"current",initialView:{id:Ie==null?void 0:Ie[0],type:"form"},action_id:w,action_type:y,res_id:te})}function Ve(){return V.map(te=>{switch(te.type){case"form":return e.jsx(Yl,{formRef:R,currentId:x,visible:S.type===te.type&&S.view_id===te.view_id,formView:te,model:s,context:o,domain:n,defaultValues:f,forcedValues:u,results:_,setResults:$,setCurrentItemIndex:I},`${te.type}-${te.view_id}`);case"tree":return e.jsx(Ul,{visible:S.type===te.type&&S.view_id===te.view_id,limit:v,model:s,context:o,domain:n,formView:V.find(Se=>Se.type==="form"),treeView:te,searchTreeRef:re,searchTreeNameSearch:Z,availableViews:V,results:_,setCurrentItemIndex:I,setCurrentId:Ee,setCurrentView:Pe},`${te.type}-${te.view_id}`);case"graph":return e.jsx(Kl,{visible:S.type===te.type&&S.view_id===te.view_id,viewData:te,model:s,context:o,domain:n,treeView:V.find(Se=>Se.type==="tree"),formView:V.find(Se=>Se.type==="form")},`${te.type}-${te.view_id}`);case"dashboard":return e.jsx(Jl,{dashboardData:te},`${te.type}-${te.view_id}`)}})}function Ae(){if(x===void 0&&S.type==="form")R.current.clearAndReload();else{Ee(void 0);const te=V.find(Se=>Se.type==="form");Pe(te)}}return E?e.jsx(p.Spin,{}):S?e.jsxs(Ui,{title:a,currentView:S,setCurrentView:Pe,availableViews:V,formRef:R,searchTreeRef:re,onNewClicked:Ae,currentId:x,setCurrentId:Ee,setCurrentItemIndex:I,currentItemIndex:P,results:_,setResults:$,currentModel:s,sorter:A,setSorter:M,totalItems:N,setTotalItems:k,selectedRowItems:O,setSelectedRowItems:C,setSearchTreeNameSearch:H,searchTreeNameSearch:Z,goToResourceId:ve,limit:v,children:[Ve(),e.jsx(Ll,{visible:W,onIdSubmitted:ve,isSearching:j,onCancel:()=>{z(!1)}})]}):null}const ur=l.forwardRef(Xl);async function Ql({actionId:t,rootContext:r={},globalValues:n={}}){const s="ir.actions.act_window",o=`${s},${t}`,i=await K.getHandler().getActionData({action:o,context:r}),a=se.parseContext({context:i.context,values:n,fields:{}}),c=i.domain?await K.getHandler().evalDomain({domain:i.domain,values:n,context:{...r,...a}}):[],{res_model:h,views:d,name:f,limit:u,view_type:g}=i,w=g==="tree",y=[];for(const T of d){const[V,b]=T;if(V)y.push(T);else{const{view_id:E}=await K.getHandler().getView({model:h,type:b,id:V,context:{...r,...a}});y.push([E,b])}}const[m,v]=y[0],S={id:m,type:v};return{title:f,actionId:t,actionType:s,key:Sr.v4(),views:d,model:h,context:{...r,...a},domain:c,initialView:S,limit:u,treeExpandable:w}}const Jc="",Rl=wr.WidthProvider(wr.Responsive),Zn=t=>{const{children:r=[],onPositionItemsChanged:n}=t,s=Ke.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(Rl,{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:ec}=p.theme,{Text:tc}=p.Typography,Xn=t=>{const{title:r,children:n,action:s,openAction:o}=t,{token:i}=ec();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(p.Row,{align:"middle",style:{borderBottom:"1px solid #ddd",backgroundColor:i.colorPrimaryBg},wrap:!1,children:[e.jsx(p.Col,{flex:"auto",className:"draggable-head",style:{fontWeight:"bold",padding:"0.5rem",cursor:"grab",overflow:"hidden"},children:e.jsx(tc,{ellipsis:!0,children:r})}),s&&e.jsx(p.Col,{flex:"25px",style:{padding:"0.5rem"},children:e.jsx(p.Row,{justify:"end",align:"middle",children:e.jsx(B.ExportOutlined,{style:{cursor:"pointer"},onClick:()=>{o==null||o(s)}})})})]}),n]})},rc=80;function nc(t){const{action:r,model:n,view_id:s,onRowClicked:o,domain:i=[],visible:a=!0,parentContext:c={}}=t,[h,d]=l.useState(!1),[f,u]=l.useState(!1),[g,w]=l.useState(),[y,m]=l.useState(),[v,S]=l.useState(),[T,V]=l.useState(1),[b,E]=l.useState(0),D=l.useRef(rc),L=l.useRef([]),[x,F]=l.useState(0),[O,C]=l.useState([]),[P,I]=l.useState(void 0),[_,$]=l.useState(),[A,M]=l.useState(),[N,k]=l.useState(),[W,z]=l.useState(!1),j=l.useRef([]),G=Q=>{z(!0),V(Q),E((Q-1)*D.current)},Z=async()=>{const Q=j.current.length>0?j.current:i,ue=Ct(L.current,Q),{colors:he}=it(y),{totalItems:ke,results:Fe,attrsEvaluated:Ee}=await K.getHandler().searchForTree({params:ue,limit:D.current,offset:b,model:g,fields:y.fields,context:c,attrs:he&&{colors:he}});I(Mt(Ee));const Pe=at({resultsToSort:Fe,sorter:_,fields:{...y.fields,...v.fields}});z(!1),C(Pe);const we=await ke;F(we)},H=async()=>{try{z(!0),await Z()}catch(Q){M(JSON.stringify(Q))}};l.useEffect(()=>{!f||a&&H()},[T,b,f,a]);const Y=async Q=>{u(!1),d(!0),k(void 0);try{Q==="action"?await R():await re(),u(!0)}catch(ue){k(ue)}finally{d(!1)}},R=async()=>{const Q=await K.getHandler().getViewsForAction({action:r,context:c});j.current=Q.domain,S(Q.views.get("form")),m(Q.views.get("tree")),w(Q.model),D.current=Q.limit},re=async()=>{w(n);const Q=await K.getHandler().getView({model:n,type:"form",context:c});S(Q);const ue=await K.getHandler().getView({model:n,type:"tree",id:s,context:c});m(ue)};l.useEffect(()=>{r?Y("action"):n&&Y("model")},[r,n]);const ce=Q=>{const{id:ue}=Q;o({id:ue,model:g,treeView:y})},X=()=>!y||!v?null:e.jsxs("div",{style:{overflowY:"scroll"},children:[A&&e.jsx(p.Alert,{className:"mt-10",message:A,type:"error",banner:!0}),e.jsx(Tt,{showPagination:!1,total:x,limit:D.current,page:T,treeView:y,results:O,onRequestPageChange:G,loading:W,onRowClicked:ce,colorsForResults:P,sorter:_,onChangeSort:Q=>{$==null||$(Q);const ue=at({resultsToSort:O,sorter:Q,fields:{...y.fields,...v.fields}});C(ue)},context:c})]});return N?e.jsx(p.Alert,{className:"mt-10",message:N,type:"error",banner:!0}):h?e.jsx(p.Spin,{style:{padding:"2rem"}}):X()}const oc=t=>{const{model:r}=t,[n,s]=l.useState();l.useEffect(()=>{o()},[r]);async function o(){const i=await K.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(ut,{...t,model:r,id:n,readOnly:!0})})},fr="line_ids";function sc(t,r){const{model:n,context:s={},id:o,configAction:i}=t,[a,c]=l.useState([]),[h,d]=l.useState(!1),[f,u]=l.useState(),{setIsLoading:g,openAction:w,moveItemsEnabled:y}=l.useContext(dr),m=l.useRef(),v=l.useRef();l.useEffect(()=>{S()},[n,o,s]),l.useImperativeHandle(r,()=>({refresh:()=>{S()},configDashboard:L}));async function S(){d(!0),g(!0),u(void 0);try{const x=await T(),F=await b(x),O=x.fields[fr].relation,C=F[fr].items;v.current=x.fields;const P=await V({items:C,model:O,context:s}),I=await E(P);c(I),d(!1),g(!1)}catch(x){u(JSON.stringify(x))}}async function T(){return await K.getHandler().getView({model:n,type:"form",context:s})}async function V({items:x,model:F,context:O}){m.current=(await K.getHandler().getView({model:F,type:"form",context:O})).fields;const[C]=await Jt({treeView:{fields:m.current},formView:{fields:m.current},model:F,items:x,context:O,currentView:"form"});return C}async function b(x){return(await K.getHandler().readObjects({model:n,ids:[o],fields:x.fields,context:s}))[0]}async function E(x){const F=[];for(const O of x){const{values:C}=O;if(C.action_id&&C.action_id.length>0){const P=parseInt(C.action_id[0],10),I=await Ql({actionId:P,rootContext:s});F.push({...O,actionData:I})}}return F}async function D(x){if(!y)return;const F=x.filter(I=>{const _=a.find(A=>A.id===I.id);if(!_)return!1;if(!_.position)return!0;const $={...JSON.parse(_.position.replace(/'/g,'"')),id:_.id};return JSON.stringify(I)!==JSON.stringify($)});if(F.length===0)return;const C=a.filter(I=>F.map(_=>_.id).includes(I.id)).map(I=>{const _={...F.find($=>$.id===I.id)};return delete _.id,{...I},{...I,operation:"pendingUpdate",values:{...I.values,position:JSON.stringify(_).replace(/"/g,"'")}}}),P={fields:m.current,items:C};await K.getHandler().update({model:n,id:o,values:{[fr]:P},fields:v.current,context:s})}async function L(){w(i)}return f?(console.log(f),e.jsx(p.Alert,{className:"mt-10 mb-20",message:f,type:"error",banner:!0})):h?e.jsx(B.LoadingOutlined,{}):e.jsx(Zn,{onPositionItemsChanged:D,children:a.map((x,F)=>{const{actionData:O,values:C}=x,{position:P,id:I}=C,{actionId:_,actionType:$,key:A,title:M,views:N,model:k,context:W,domain:z,initialView:j,limit:G}=O;let Z={};try{Z=JSON.parse(P.replace(/'/g,'"'))}catch{Z={x:F*2,y:0,w:2,h:3}}let H=null;if((j==null?void 0:j.type)==="graph")H=e.jsx(Nt,{view_id:N.filter(re=>re[1]==="graph")[0][0],model:k,context:W,domain:z,limit:G});else if((j==null?void 0:j.type)==="form")H=e.jsx(oc,{model:k,actionDomain:z});else if((j==null?void 0:j.type)==="tree")H=e.jsx(nc,{model:k,domain:z,view_id:N.filter(re=>re[1]==="tree")[0][0],onRowClicked:re=>{const ce=N.find(X=>{const[,Q]=X;return Q==="form"});if(ce){const[X,Q]=ce,{actionId:ue,actionType:he,title:ke,model:Fe}=O,Ee={action_id:ue,action_type:he,name:ke,res_id:re.id,res_model:Fe,view_id:X,view_type:Q};w(Ee)}}});else if(j!==void 0){const re=j&&Array.isArray(j.id)?{...j,id:j.id[0]}:j;H=e.jsx(ur,{action_id:_,action_type:$,tabKey:A,title:M,views:N,model:k,context:W,domain:z,setCanWeClose:()=>{},initialView:re,limit:G})}let Y;const R=N.find(re=>{const[,ce]=re;return ce==="tree"});if(R){const[re,ce]=R,{actionId:X,actionType:Q,title:ue,model:he}=O;Y={action_id:X,action_type:Q,name:ue,res_id:!1,res_model:he,view_id:re,view_type:ce}}return e.jsx(Xn,{id:I,title:M,parms:Z,action:Y,openAction:w,children:H},I)})})}const Qn=l.forwardRef(sc),Rn=t=>{const{ooui:r}=t;return e.jsx(me,{type:"array",...t,children:e.jsx(ic,{ooui:r})})},ic=t=>{const{value:r,ooui:n,onChange:s}=t,{items:o=[]}=r||{},i=o.filter(x=>x.operation!=="pendingRemove").map(x=>x.id),[a,c]=l.useState([]),[h,d]=l.useState(),[f,u]=l.useState(!1),{relation:g,context:w,readOnly:y,field:m,columns:v}=n,S=l.useContext(De),{getContext:T}=S||{};tt.default(()=>{b()},[o]);const V=x=>{s==null||s({items:x})};async function b(){u(!0);let x=[];if(n.domain){const F=await K.getHandler().evalDomain({domain:n.domain,values:ct({fields:S==null?void 0:S.getFields(),values:S.getPlainValues()}),fields:S==null?void 0:S.getFields(),context:S.getContext()});x=[...x,...F]}try{const O=(await K.getHandler().search({model:g,params:x,fields:[m],context:{...T==null?void 0:T(),...w}})).map(C=>{const P=C[m];let I=P;return Array.isArray(P)&&(I=P[1]),{label:I,value:C.id}});c(O)}catch(F){d(F)}finally{u(!1)}if(h)return e.jsx(p.Alert,{className:"mt-10",message:h,type:"error",banner:!0})}const E=()=>{L(a.map(x=>x.value))},D=()=>{L([])},L=x=>{const F=o.map(C=>x.includes(C.id)?C.operation=="pendingRemove"?{...C,operation:"original"}:C:{id:C.id,operation:"pendingRemove"}),O=F.map(C=>C.id);x.filter(C=>!O.includes(C)).map(C=>{F.push({id:C,operation:"pendingLink"})}),V(F)};return f&&a.length===0?e.jsx(p.Spin,{}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"flex flex-row",children:[e.jsx(p.Checkbox.Group,{value:a.length?i:[],disabled:y,onChange:L,style:{width:"100%"},children:e.jsx(p.Row,{children:a.map(x=>e.jsx(p.Col,{span:Math.floor(24/v),children:e.jsx(p.Checkbox,{value:x.value,children:x.label})}))})}),!y&&e.jsxs(p.Space,{children:[e.jsx(p.Button,{onClick:E,disabled:i.length==a.length,children:"Check all"}),e.jsx(p.Button,{onClick:D,disabled:i.length===0,children:"Uncheck all"})]})]})})},eo=t=>e.jsx(me,{...t,children:e.jsx(ac,{...t})}),ac=t=>{const{value:r,ooui:n}=t;return e.jsx("div",{style:{height:n.height?n.height+"px":"100%",overflow:"auto"},children:e.jsx(Vo.default,{children:r,className:"ant-typography"})})},to=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(lc,{...t})})},lc=t=>{const{ooui:r,onChange:n,value:s}=t,{selectionValues:o,readOnly:i,direction:a}=r,c=Array.from(o.entries()),h=c&&c.length&&c.map(d=>{const[f,u]=d;return e.jsx(p.Radio,{value:f,children:u},f)});return e.jsx(p.Radio.Group,{disabled:i,onChange:n,value:s,children:e.jsx(p.Space,{direction:a,children:h})})},ro=t=>{const{ooui:r}=t,{id:n,readOnly:s,required:o}=r;return e.jsx(me,{...t,valuePropName:"checked",children:e.jsx(cc,{id:n,readOnly:s,required:o})})},cc=t=>{const{required:r,readOnly:n,...s}=t;return e.jsx("div",{className:"flex flex-row",children:e.jsx(p.Switch,{disabled:n,...s})})},no=t=>{const{ooui:r}=t,{required:n}=r;return e.jsx(me,{required:n,type:"any",...t,children:e.jsx(dc,{...t})})},dc=t=>{const{ooui:r,value:n}=t,{selectionValues:s,errorField:o}=r,i=l.useContext(De),a=Array.from(s.entries()),c=a.map(f=>f[0]).indexOf(n);let h="process",d="";return o&&(d=i.getFieldValue(o),d&&(h="error")),e.jsx(p.Steps,{current:c,status:h,children:a.map((f,u)=>e.jsx(p.Steps.Step,{title:f[1],description:u===c&&h==="error"?d:null}))})},oo=t=>{const{ooui:r}=t,{lang:n,height:s}=r,o=l.useContext(De),{elementHasLostFocus:i}=o||{},a=c=>{c.onDidBlurEditorWidget(i)};return e.jsx(me,{...t,children:e.jsx(Eo.default,{defaultLanguage:n||"",height:s||300,onMount:a})})};var so={exports:{}};(function(t,r){(function(n,s){t.exports=s()})(Re,function(){return function(n,s,o){n=n||{};var i=s.prototype,a={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function c(d,f,u,g){return i.fromToBase(d,f,u,g)}o.en.relativeTime=a,i.fromToBase=function(d,f,u,g,w){for(var y,m,v,S=u.$locale().relativeTime||a,T=n.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],V=T.length,b=0;b<V;b+=1){var E=T[b];E.d&&(y=g?o(d).diff(u,E.d,!0):u.diff(d,E.d,!0));var D=(n.rounding||Math.round)(Math.abs(y));if(v=y>0,D<=E.r||!E.r){D<=1&&b>0&&(E=T[b-1]);var L=S[E.l];w&&(D=w(""+D)),m=typeof L=="string"?L.replace("%d",D):L(D,f,E.l,v);break}}if(f)return m;var x=v?S.future:S.past;return typeof x=="function"?x(m):x.replace("%s",m)},i.to=function(d,f){return c(d,f,this,!0)},i.from=function(d,f){return c(d,f,this)};var h=function(d){return d.$u?o.utc():o()};i.toNow=function(d){return this.to(h(this),d)},i.fromNow=function(d){return this.from(h(this),d)}}})})(so);const uc=so.exports,{Meta:fc}=p.Card,{Text:hc}=p.Typography;Ze.extend(uc);const pc=({email:t,size:r=40,theme:n=""})=>{const s=`https://www.gravatar.com/avatar/${Io.default(t)}?s=${r}&d=${n}`;return e.jsx(p.Avatar,{src:s,size:r})};function gc({text:t}){const r=t.split(`
37
+ `);return e.jsx("div",{children:r.map((n,s)=>e.jsxs(Ke.default.Fragment,{children:[n,s!==r.length-1&&e.jsx("br",{})]},s))})}const mc=t=>{const{data:r,style:n}=t,{t:s}=l.useContext(ge);return e.jsxs(p.Card,{style:{...n,textAlign:"start"},children:[e.jsx(fc,{avatar:e.jsx(pc,{email:r.email,theme:"mp"}),title:r.author,description:e.jsxs(p.Space,{direction:"horizontal",children:[e.jsx("span",{title:r.date,children:Ze(r.date).fromNow()}),r.isAuthor&&e.jsx(p.Tag,{color:"blue",children:s("author")})]}),style:{marginBottom:"5px"}}),e.jsx(hc,{children:e.jsx(gc,{text:r.text})})]},r.id)},yc=t=>{const{value:r}=t,n=(r||[]).map(s=>{if(s.type==="action")return{children:`${s.event.date} - ${s.event.action}`};if(s.type==="comment")return{color:"gray",position:s.event.isSender?"left":"right",label:s.event.date,children:e.jsx(mc,{data:s.event})}});return e.jsx(p.Timeline,{mode:"alternate",items:n})},io=t=>e.jsx(me,{...t,children:e.jsx(yc,{})}),{Content:vc}=p.Layout,{Title:wc}=p.Typography;function Sc(){const{t}=l.useContext(ge);return e.jsx(vc,{className:"m-5 select-none",children:e.jsx(wc,{level:5,children:t("welcome")})})}function Cc(t,r){const{children:n,globalValues:s={},rootContext:o={},lang:i}=t,[a,c]=l.useState("welcome"),[h,d]=l.useState([{title:xe("welcome",i),key:"welcome",closable:!0,content:e.jsx(Sc,{})}]),f=l.useRef(new Map),u=l.useRef();l.useImperativeHandle(r,()=>({retrieveAndOpenAction:y,openShortcut:S}));function g(b){if(b===a){const E=h.findIndex(D=>D.key===b);h[E-1]&&c(h[E-1].key),h[E+1]&&c(h[E+1].key)}d(h.filter(E=>E.key!==b)),f.current.delete(b)}function w({tabKey:b,canWeClose:E}){f.current.set(b,E)}async function y({action:b,values:E,forced_values:D,initialViewType:L,res_id:x,domain:F=[]}){const O=await K.getHandler().getActionData({action:b,context:o});if(O.type==="ir.actions.wizard"){Ne("Action type not supported");return}const[C,P]=b.split(","),I=parseInt(P),_=se.parseContext({context:O.context,values:s,fields:{}}),$=O.domain?await K.getHandler().evalDomain({domain:O.domain,values:s,context:{...o,..._}}):[],{res_model:A,views:M,name:N,target:k,view_type:W,limit:z}=O,j=W==="tree",G=[];for(const H of M){const[Y,R]=H;if(Y)G.push(H);else if(R==="dashboard")G.push([void 0,"dashboard"]);else{const{view_id:re}=await K.getHandler().getView({model:A,type:R,id:Y,context:{...o,..._}});G.push([re,R])}}let Z;if(L){const[H,Y]=G.find(([R,re])=>re===L);Z={id:H,type:Y}}else{const[H,Y]=G[0];Z={id:H,type:Y}}V({domain:[...$,...F],context:{...o,..._},model:A,views:G,title:N,target:k,initialView:Z,action_type:C,action_id:I,values:E,forced_values:D,res_id:x,treeExpandable:j,limit:z})}function m({title:b,content:E,key:D,action:L}){let x=[...h];h.length===1&&h[0].key==="welcome"&&(x=[...h.filter(F=>F.key!=="welcome")]),d([...x,{title:b,key:D,closable:!0,content:E,action:L}]),c(D)}async function v({relateData:b,fields:E,values:D,action_id:L,action_type:x}){const{res_model:F,context:O,domain:C,views:P,target:I,string:_,limit:$}=b,[A,M]=P[0],N={id:A,type:M},k=se.parseContext({context:O,values:{...D,...s},fields:E}),W=C?await K.getHandler().evalDomain({domain:C,values:ct({fields:E,values:{...D,...s}}),fields:E,context:{...o,...k}}):[];V({model:F,target:I,views:P,context:{...o,...k},domain:W,title:_,initialView:N,action_id:L,action_type:x,limit:$})}async function S(b){const{action_id:E,action_type:D,res_id:L,view_id:x}=b,F=`${D},${E}`,O=await K.getHandler().getActionData({action:F,context:o}),C=se.parseContext({context:O.context,values:s,fields:{}}),P=O.domain?await K.getHandler().evalDomain({domain:O.domain,values:s,context:{...o,...C}}):[],{res_model:I,views:_,name:$,target:A,view_type:M,limit:N}=O,k=M==="tree",W=[];for(const Z of _){const[H,Y]=Z;if(H)W.push(Z);else if(Y==="dashboard")W.push([void 0,"dashboard"]);else{const{view_id:R}=await K.getHandler().getView({model:I,type:Y,id:H,context:{...o,...C}});W.push([R,Y])}}let z,j;if(x==null){const Z=W.find(H=>H[0]===void 0);z=void 0,j=Z[1]}else[z,j]=W.find(Z=>Z[0]===void 0?!1:Z[0]===x);const G={id:z,type:j};V({domain:P,context:{...o,...C},model:I,views:W,title:$,target:A,initialView:G,action_id:E,action_type:D,res_id:L,treeExpandable:k,limit:N})}async function T({model:b,values:E,forced_values:D,initialViewType:L,res_id:x,domain:F}){const O=await K.getHandler().getActionStringForModel(b);await y({action:O,values:E,forced_values:D,initialViewType:L,res_id:x,domain:F})}async function V({domain:b,context:E,model:D,views:L,title:x,target:F,initialView:O,action_id:C,action_type:P,res_id:I,values:_,forced_values:$,treeExpandable:A=!1,limit:M}){const N=Sr.v4();if(F!=="current"){const k=await K.getHandler().getView({model:D,type:"form",id:O.type==="form"?O.id:void 0,context:{...o,...E}});u.current.openActionModal({domain:b,model:D,formView:k,context:{...o,...E},actionData:{action_id:C,action_type:P,res_id:I,view_id:k.view_id}})}else{const k=O&&Array.isArray(O.id)?{...O,id:O.id[0]}:O;m({title:x,action:{id:C,type:P},content:e.jsx(ur,{action_id:C,action_type:P,tabKey:N,title:x,views:L,model:D,context:{...o,...E},domain:b,setCanWeClose:w,initialView:k,res_id:I,formDefaultValues:_,formForcedValues:$,treeExpandable:A,limit:M}),key:N})}}return e.jsx(Bo,{lang:i,children:e.jsx(Gi,{openShortcut:S,openAction:V,openRelate:v,openDefaultActionForModel:T,tabs:h,activeKey:a,onRemoveTab:async b=>{const E=f.current.get(b);(await(E==null?void 0:E())||a==="welcome")&&g(b)},onChangeTab:b=>{c(b)},children:e.jsx(an,{ref:u,globalValues:s,children:n})})})}const bc=l.forwardRef(Cc),{useToken:xc}=p.theme;function ao(t){const{label:r,onClose:n,tabKey:s,isActive:o,onSelected:i}=t,{token:a}=xc(),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(B.CloseOutlined,{style:{color:a.colorPrimaryActive},onClick:h=>{h.stopPropagation(),n(s)}})})]})}function Tc(){const t=l.useContext(Xe),{activeKey:r,tabs:n,onRemoveTab:s,onChangeTab:o}=t||{};return e.jsx(e.Fragment,{children:n.map(i=>e.jsx(ao,{tabKey:i.key,label:i.title,onClose:s,isActive:r===i.key,onSelected:o},i.key))})}function Fc(t){const{tab:r}=t,n=l.useContext(Xe),{activeKey:s}=n||{},o={display:"none"};return e.jsx("div",{style:r.key!==s?o:void 0,children:r.content})}const Oc=Ke.default.memo(Fc,()=>!0);function _c(){const t=l.useContext(Xe),{tabs:r}=t||{},n=(r==null?void 0:r.map(s=>e.jsx(Oc,{tab:s},s.key)))||null;return e.jsx(e.Fragment,{children:n})}const{useToken:Dc}=p.theme,kc=t=>{const{onRetrieveShortcuts:r,onCheckIsFavourite:n,onAddFavourite:s,onRemoveFavourite:o}=t,[i,a]=l.useState(!1),[c,h]=l.useState(!1),[d,f]=l.useState([]),[u,g]=l.useState(!0),[w,y]=l.useState(),{t:m}=l.useContext(ge)||{},{token:v}=Dc(),S=l.useContext(Xe),{openShortcut:T,tabs:V,activeKey:b,currentView:E,currentId:D,openDefaultActionForModel:L}=S||{};l.useEffect(()=>{x()},[]),l.useEffect(()=>{C()},[V,b,E,D]);async function x(){try{g(!0);const A=await r();f(A)}catch(A){Ne(A)}finally{g(!1)}}function F(A){const{key:M}=A,N=d.find(k=>k.id===Number(M));(N==null?void 0:N.action_type)!=="ir.actions.wizard"&&(N&&T(N),h(!1))}function O(A){A&&x(),h(A)}async function C(){if(!E)return;const A=V.find(j=>j.key===b),{id:M,type:N}=(A==null?void 0:A.action)||{};if(!M||!N){a(!1);return}const k=E.view_id;let W=!1;E.type==="form"&&(W=D||!1);const z=await n({action_id:M,action_type:N,view_id:k,res_id:W});z!==!1&&y(z),a(z!==!1)}async function P(){h(!1),L==null||L({model:"ir.ui.view_sc"})}const I=e.jsxs(p.Menu,{onClick:F,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(p.Tooltip,{title:m==null?void 0:m("edit_favorites"),children:e.jsx(B.EditOutlined,{style:{color:v.colorPrimary,cursor:"pointer"},onClick:P})})})]}),e.jsx(p.Menu.Divider,{}),u?e.jsx(p.Spin,{style:{padding:"1rem"}}):d.length>0?e.jsx(e.Fragment,{children:d.map(A=>e.jsx(p.Menu.Item,{children:e.jsx(_,{title:A.name,type:A.view_type})},A.id))}):e.jsx("div",{style:{width:300,padding:5,paddingLeft:15},children:m==null?void 0:m("no_favorites")})]});function _({title:A,type:M}){const N=M==="tree"?e.jsx(B.TableOutlined,{}):e.jsx(B.FormOutlined,{});return e.jsxs(p.Row,{wrap:!1,children:[e.jsx(p.Col,{flex:"none",style:{paddingRight:20},children:N}),e.jsx(p.Col,{flex:"auto",children:A})]})}async function $(){if(i&&w)await o(w);else{if(!E)return;const A=V.find(z=>z.key===b),{id:M,type:N}=(A==null?void 0:A.action)||{},k=E.view_id;let W=!1;if(!M||!N){a(!1);return}E.type==="form"&&(W=D||!1),await s({action_id:M,action_type:N,view_id:k,res_id:W})}await x(),a(!i)}return e.jsxs(e.Fragment,{children:[e.jsx(p.Button,{type:i?"primary":"default",icon:i?e.jsx(B.StarFilled,{style:{color:"white"}}):e.jsx(B.StarOutlined,{}),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:$}),e.jsx(p.Dropdown,{overlay:I,onVisibleChange:O,open:c,children:e.jsx(p.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:e.jsx(B.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:A=>A.preventDefault()})})]})};U.ActionBar=qn,U.ActionView=ur,U.Binary=Hn,U.Boolean=Ir,U.Button=Ut,U.ButtonGroup=_r,U.Char=Gt,U.CodeEditor=oo,U.CommentsTimelineField=io,U.ConfigContext=Jn,U.ConnectionProvider=K,U.ContentRootProvider=an,U.CurrentTabContent=_c,U.Dashboard=Qn,U.DashboardGrid=Zn,U.DashboardGridItem=Xn,U.Date=$n,U.DateTime=Ln,U.Email=jn,U.ExportModal=An,U.FavouriteButton=kc,U.Float=Qt,U.FloatTime=Dn,U.Form=ut,U.FormModal=ft,U.GraphIndicator=Tn,U.Group=or,U.Image=Ur,U.Integer=xt,U.Label=vt,U.Many2one=Sn,U.Markdown=eo,U.MultiCheckbox=Rn,U.Notebook=kn,U.One2many=_n,U.ProgressBar=dn,U.Radio=to,U.Reference=Bn,U.RootView=bc,U.SearchFilter=Rt,U.SearchModal=rr,U.SearchTree=tr,U.Selection=jt,U.Separator=Vn,U.Steps=no,U.Switch=ro,U.Tab=ao,U.TabSelector=Tc,U.Tag=Xr,U.Tags=en,U.Text=Mn,U.Time=Pn,U.Tree=Tt,U.Url=Gn,U.iconMapper=Je,U.showConfirmDialog=ot,Object.defineProperties(U,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
38
38
  //# sourceMappingURL=react-ooui.umd.js.map