@gisce/react-ooui 1.2.0-rc.83 → 1.2.0-rc.85

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,4 +1,4 @@
1
- (function(e,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react"),require("antd"),require("@gisce/ooui"),require("@ant-design/icons"),require("interweave"),require("react/jsx-runtime"),require("@tabler/icons-react"),require("react-dom"),require("styled-components"),require("react-measure"),require("@ant-design/plots"),require("use-deep-compare-effect"),require("@gisce/react-formiga-table"),require("buffer"),require("fiber-diagram"),require("@gisce/react-formiga-components"),require("react-hotkeys-hook"),require("react-markdown"),require("@monaco-editor/react"),require("react-grid-layout")):typeof define=="function"&&define.amd?define(["exports","react","antd","@gisce/ooui","@ant-design/icons","interweave","react/jsx-runtime","@tabler/icons-react","react-dom","styled-components","react-measure","@ant-design/plots","use-deep-compare-effect","@gisce/react-formiga-table","buffer","fiber-diagram","@gisce/react-formiga-components","react-hotkeys-hook","react-markdown","@monaco-editor/react","react-grid-layout"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e["react-ooui"]={},e.React,e.antd,e.ooui,e.AntIcons,e.interweave,e.jsxRuntime,e.TablerIcons,e.ReactDOM,e.styled,e.Measure,e.plots,e.useDeepCompareEffect,e.reactFormigaTable,e.require$$0$3,e.fiberDiagram,e.reactFormigaComponents,e.reactHotkeysHook,e.ReactMarkdown,e.Editor,e.reactGridLayout))})(this,function(exports,React$s,antd,ooui,AntIcons,interweave,jsxRuntime,TablerIcons,ReactDOM,styled,Measure,plots,useDeepCompareEffect,reactFormigaTable,require$$0$3,fiberDiagram,reactFormigaComponents,reactHotkeysHook,ReactMarkdown,Editor,reactGridLayout){"use strict";const _interopDefaultLegacy=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function _interopNamespace(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const React__default=_interopDefaultLegacy(React$s),React__namespace=_interopNamespace(React$s),AntIcons__namespace=_interopNamespace(AntIcons),AntIcons__default=_interopDefaultLegacy(AntIcons),TablerIcons__namespace=_interopNamespace(TablerIcons),ReactDOM__default=_interopDefaultLegacy(ReactDOM),styled__default=_interopDefaultLegacy(styled),Measure__default=_interopDefaultLegacy(Measure),useDeepCompareEffect__default=_interopDefaultLegacy(useDeepCompareEffect),require$$0__default=_interopDefaultLegacy(require$$0$3),ReactMarkdown__default=_interopDefaultLegacy(ReactMarkdown),Editor__default=_interopDefaultLegacy(Editor),{Text:Text$3,Title:Title$4}=antd.Typography,{useToken:useToken$i}=antd.theme,alignClass={left:"justify-start",center:"justify-center",right:"justify-end"},Label=e=>{const{ooui:t,align:r,responsiveBehaviour:n}=e,{label:a,tooltip:o,fieldForLabel:s,labelSize:l,labelType:c}=t,d=s!==null&&a.length>1?a+" :":a,m=r||(s?n?"left":"right":"left"),{token:x}=useToken$i(),p=l===void 0?Text$3:Title$4;return jsxRuntime.jsxs("div",{className:`flex flex-row items-center pb-1 pt-1 ${alignClass[m]}`,children:[o&&jsxRuntime.jsx(antd.Tooltip,{title:o,children:jsxRuntime.jsx(AntIcons.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:x.colorPrimary}})}),jsxRuntime.jsx("span",{className:"pr-2",children:jsxRuntime.jsx(p,{level:l,type:c,children:jsxRuntime.jsx(interweave.Interweave,{content:d})})})]})},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"},en_US$6={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"},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"},localeStrings={ca_ES,en_US:en_US$6,es_ES},LocaleContext$1=React__default.default.createContext(null),LocaleContextProvider=e=>{const{children:t,lang:r}=e;function n(a){return tForLang(a,r)}return jsxRuntime.jsx(LocaleContext$1.Provider,{value:{lang:r,t:n},children:t})},tForLang=(e,t)=>{var n;return((n=localeStrings[t])==null?void 0:n[e])||e};function Field$1({ooui:e,children:t,layout:r="horizontal",valuePropName:n,showLabel:a=!1,alignLabel:o="left",required:s=!1,type:l,validator:c}){const{id:u,label:d,tooltip:f}=e,{t:m}=React$s.useContext(LocaleContext$1),x=s?[{required:!0,message:m("fillRequiredField"),type:l,validator:c}]:void 0,p=()=>jsxRuntime.jsx(antd.Form.Item,{className:"mb-0",name:u,valuePropName:n,rules:x,children:t});if(!a)return p();const h=jsxRuntime.jsx(Label,{ooui:new ooui.Label({name:u+"_label",string:d,help:f,fieldForLabel:u}),align:o});return r==="horizontal"?(()=>jsxRuntime.jsxs(antd.Row,{align:"middle",className:"pb-1 pt-1",children:[jsxRuntime.jsx(antd.Col,{className:"ml-2",flex:"7rem",children:jsxRuntime.jsx("div",{className:"flex flex-col items-end",children:h})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:p()})]}))():(()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[h,p()]}))()}const{confirm:confirm$4}=antd.Modal,showDialog$9=({onOk:e,confirmMessage:t,lang:r})=>{confirm$4({title:tForLang("confirmation",r),icon:jsxRuntime.jsx(AntIcons.ExclamationCircleOutlined,{}),centered:!0,content:t,okText:tForLang("ok",r),cancelText:tForLang("cancel",r),onOk:e})},FormContext$2=React__default.default.createContext(null),FormProvider$2=e=>{const{children:t,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:l,getValues:c,getPlainValues:u,domain:d,submitForm:f,fetchValues:m,formHasChanges:x,elementHasLostFocus:p,getFields:h}=e;return jsxRuntime.jsx(FormContext$2.Provider,{value:{domain:d,getValues:c,getPlainValues:u,getFields:h,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:l,submitForm:f,fetchValues:m,formHasChanges:x,elementHasLostFocus:p},children:t})},iconMapping={"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"},iconMapper=(e,t)=>(e.indexOf("gtk-")!==-1&&(e=`STOCK_${e.replace("gtk-","").replace(/\-/g,"_").toUpperCase()}`),iconMapping.hasOwnProperty(e)?getIconForKey(iconMapping[e],t):getIconForKey(e,t));function toCamelCase(e){return`${e.split("-").map(t=>t.replace(/\w\S*/g,r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase())).join("")}`}function getIconForKey(e,t){let r=e.charAt(0).toUpperCase()+e.slice(1);r.indexOf("-")!==-1&&(r=toCamelCase(r));const n=`${r}Outlined`;if(AntIcons__namespace[n])return()=>React__default.default.createElement(AntIcons__namespace[n],{...t});const a=`Icon${r}`;if(TablerIcons__namespace[a]){const o=()=>React__default.default.createElement(TablerIcons__namespace[a],{fill:"transparent",height:17,width:17});return()=>React__default.default.createElement(AntIcons__default.default,{component:o,...t})}}const Button=e=>{const{ooui:t}=e,{id:r,label:n,activated:a,buttonType:o,confirmMessage:s,icon:l,context:c,readOnly:u}=t,d=React$s.useContext(FormContext$2),{executeButtonAction:f}=d||{},[m,x]=React$s.useState(!1),{lang:p}=React$s.useContext(LocaleContext$1);async function h(){x(!0),await f({type:o,action:r,context:c}),x(!1)}function b(){if(s){showDialog$9({confirmMessage:s,lang:p,onOk:()=>{h()}});return}h()}function g(){if(m)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(l){const v=iconMapper(l);return v&&jsxRuntime.jsx(v,{})}}return jsxRuntime.jsx(Field$1,{ooui:t,children:jsxRuntime.jsx(antd.Button,{block:!0,disabled:!a||u,onClick:b,icon:g(),type:t.primary?"primary":"default",danger:t.danger,style:{whiteSpace:"normal",height:"auto"},children:n})})},ButtonGroup=e=>{const{ooui:t}=e,{defaultButton:r,secondaryButtons:n}=t,{id:a,caption:o,activated:s,buttonType:l,confirmMessage:c,icon:u,primary:d,danger:f,context:m,readOnly:x}=r||{},p=React$s.useContext(FormContext$2),{executeButtonAction:h}=p||{},[b,g]=React$s.useState(!1),{lang:v}=React$s.useContext(LocaleContext$1);function y(){if(b)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(u){const w=iconMapper(u);return w&&jsxRuntime.jsx(w,{})}}async function $(){l&&a&&(g(!0),await h({type:l,action:a,context:m}),g(!1))}function _(){if(c){showDialog$9({confirmMessage:c,lang:v,onOk:()=>{$()}});return}$()}return jsxRuntime.jsx(Field$1,{ooui:new ooui.Field({ooui:t}),children:jsxRuntime.jsxs(antd.Dropdown.Button,{disabled:!s||x,onClick:_,icon:jsxRuntime.jsx(AntIcons.DownOutlined,{}),type:d?"primary":void 0,overlay:Items({ooui:n}),children:[y(),o]})})},Items=e=>{const{ooui:t}=e,r=t.map(n=>{const{id:a,caption:o,activated:s,buttonType:l,confirmMessage:c,icon:u,context:d,readOnly:f,danger:m}=n,x=React$s.useContext(FormContext$2),{executeButtonAction:p}=x||{},[h,b]=React$s.useState(!1),{lang:g}=React$s.useContext(LocaleContext$1);async function v(){b(!0),await p({type:l,action:a,context:d}),b(!1)}function y(){if(c){showDialog$9({confirmMessage:c,lang:g,onOk:()=>{v()}});return}v()}function $(){if(h)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(u){const _=iconMapper(u);return _&&jsxRuntime.jsx(_,{})}}return jsxRuntime.jsx(antd.Menu.Item,{disabled:!s||f,onClick:y,icon:$(),danger:m,children:o})});return jsxRuntime.jsx(antd.Menu,{children:r})},MODAL_WIDTH_CONSTANT=.7;function getWindowDimensions(){const{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function useWindowDimensions(){const[e,t]=React$s.useState(getWindowDimensions());return React$s.useEffect(()=>{function r(){t(getWindowDimensions())}return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),{modalWidth:e.width*MODAL_WIDTH_CONSTANT,modalHeight:e.height,width:e.width,height:e.height}}class ConnectionProvider{static init(t){ConnectionProvider.handler=t}static getHandler(){if(!ConnectionProvider.handler)throw"Must call init() first with a valid ConnectionProvider instance";return ConnectionProvider.handler}}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){var t=e.default;if(typeof t=="function"){var r=function(){return t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}),r}var TextArea$3={},interopRequireWildcard={exports:{}},_typeof$6={exports:{}};(function(e){function t(r){return e.exports=t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(_typeof$6),function(e){var t=_typeof$6.exports.default;function r(a){if(typeof WeakMap!="function")return null;var o=new WeakMap,s=new WeakMap;return(r=function(c){return c?s:o})(a)}function n(a,o){if(!o&&a&&a.__esModule)return a;if(a===null||t(a)!=="object"&&typeof a!="function")return{default:a};var s=r(o);if(s&&s.has(a))return s.get(a);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in a)if(u!=="default"&&Object.prototype.hasOwnProperty.call(a,u)){var d=c?Object.getOwnPropertyDescriptor(a,u):null;d&&(d.get||d.set)?Object.defineProperty(l,u,d):l[u]=a[u]}return l.default=a,s&&s.set(a,l),l}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(interopRequireWildcard);var interopRequireDefault={exports:{}};(function(e){function t(r){return r&&r.__esModule?r:{default:r}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(interopRequireDefault);var CloseCircleFilled$3={exports:{}},CloseCircleFilled$2={},_extends$1={exports:{}},hasRequired_extends;function require_extends(){return hasRequired_extends||(hasRequired_extends=1,function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(r){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(r[o]=a[o])}return r},e.exports.__esModule=!0,e.exports.default=e.exports,t.apply(this,arguments)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(_extends$1)),_extends$1.exports}var CloseCircleFilled$1={},hasRequiredCloseCircleFilled;function requireCloseCircleFilled(){if(hasRequiredCloseCircleFilled)return CloseCircleFilled$1;hasRequiredCloseCircleFilled=1,Object.defineProperty(CloseCircleFilled$1,"__esModule",{value:!0});var e={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"}}]},name:"close-circle",theme:"filled"};return CloseCircleFilled$1.default=e,CloseCircleFilled$1}var AntdIcon={},slicedToArray={exports:{}},arrayWithHoles={exports:{}};(function(e){function t(r){if(Array.isArray(r))return r}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(arrayWithHoles);var iterableToArrayLimit={exports:{}};(function(e){function t(r,n){var a=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(a!=null){var o,s,l,c,u=[],d=!0,f=!1;try{if(l=(a=a.call(r)).next,n===0){if(Object(a)!==a)return;d=!1}else for(;!(d=(o=l.call(a)).done)&&(u.push(o.value),u.length!==n);d=!0);}catch(m){f=!0,s=m}finally{try{if(!d&&a.return!=null&&(c=a.return(),Object(c)!==c))return}finally{if(f)throw s}}return u}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(iterableToArrayLimit);var unsupportedIterableToArray={exports:{}},arrayLikeToArray={exports:{}};(function(e){function t(r,n){(n==null||n>r.length)&&(n=r.length);for(var a=0,o=new Array(n);a<n;a++)o[a]=r[a];return o}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(arrayLikeToArray),function(e){var t=arrayLikeToArray.exports;function r(n,a){if(!!n){if(typeof n=="string")return t(n,a);var o=Object.prototype.toString.call(n).slice(8,-1);if(o==="Object"&&n.constructor&&(o=n.constructor.name),o==="Map"||o==="Set")return Array.from(n);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return t(n,a)}}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(unsupportedIterableToArray);var nonIterableRest={exports:{}};(function(e){function t(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1
+ (function(e,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react"),require("antd"),require("@gisce/ooui"),require("@ant-design/icons"),require("interweave"),require("react/jsx-runtime"),require("@tabler/icons-react"),require("react-dom"),require("styled-components"),require("react-measure"),require("@ant-design/plots"),require("use-deep-compare-effect"),require("@gisce/react-formiga-table"),require("buffer"),require("fiber-diagram"),require("@gisce/react-formiga-components"),require("react-hotkeys-hook"),require("react-markdown"),require("@monaco-editor/react"),require("react-grid-layout")):typeof define=="function"&&define.amd?define(["exports","react","antd","@gisce/ooui","@ant-design/icons","interweave","react/jsx-runtime","@tabler/icons-react","react-dom","styled-components","react-measure","@ant-design/plots","use-deep-compare-effect","@gisce/react-formiga-table","buffer","fiber-diagram","@gisce/react-formiga-components","react-hotkeys-hook","react-markdown","@monaco-editor/react","react-grid-layout"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e["react-ooui"]={},e.React,e.antd,e.ooui,e.AntIcons,e.interweave,e.jsxRuntime,e.TablerIcons,e.ReactDOM,e.styled,e.Measure,e.plots,e.useDeepCompareEffect,e.reactFormigaTable,e.require$$0$3,e.fiberDiagram,e.reactFormigaComponents,e.reactHotkeysHook,e.ReactMarkdown,e.Editor,e.reactGridLayout))})(this,function(exports,React$s,antd,ooui,AntIcons,interweave,jsxRuntime,TablerIcons,ReactDOM,styled,Measure,plots,useDeepCompareEffect,reactFormigaTable,require$$0$3,fiberDiagram,reactFormigaComponents,reactHotkeysHook,ReactMarkdown,Editor,reactGridLayout){"use strict";const _interopDefaultLegacy=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function _interopNamespace(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const React__default=_interopDefaultLegacy(React$s),React__namespace=_interopNamespace(React$s),AntIcons__namespace=_interopNamespace(AntIcons),AntIcons__default=_interopDefaultLegacy(AntIcons),TablerIcons__namespace=_interopNamespace(TablerIcons),ReactDOM__default=_interopDefaultLegacy(ReactDOM),styled__default=_interopDefaultLegacy(styled),Measure__default=_interopDefaultLegacy(Measure),useDeepCompareEffect__default=_interopDefaultLegacy(useDeepCompareEffect),require$$0__default=_interopDefaultLegacy(require$$0$3),ReactMarkdown__default=_interopDefaultLegacy(ReactMarkdown),Editor__default=_interopDefaultLegacy(Editor),{Text:Text$3,Title:Title$4}=antd.Typography,{useToken:useToken$i}=antd.theme,alignClass={left:"justify-start",center:"justify-center",right:"justify-end"},Label=e=>{const{ooui:t,align:r,responsiveBehaviour:n}=e,{label:a,tooltip:o,fieldForLabel:s,labelSize:l,labelType:c}=t,d=s!==null&&a.length>1?a+" :":a,m=r||(s?n?"left":"right":"left"),{token:x}=useToken$i(),p=l===void 0?Text$3:Title$4;return jsxRuntime.jsxs("div",{className:`flex flex-row items-center pb-1 pt-1 ${alignClass[m]}`,children:[o&&jsxRuntime.jsx(antd.Tooltip,{title:o,children:jsxRuntime.jsx(AntIcons.QuestionCircleOutlined,{className:"pr-1 text-xs",style:{color:x.colorPrimary}})}),jsxRuntime.jsx("span",{className:"pr-2",children:jsxRuntime.jsx(p,{level:l,type:c,children:jsxRuntime.jsx(interweave.Interweave,{content:d})})})]})},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"},en_US$6={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"},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"},localeStrings={ca_ES,en_US:en_US$6,es_ES},LocaleContext$1=React__default.default.createContext(null),LocaleContextProvider=e=>{const{children:t,lang:r}=e;function n(a){return tForLang(a,r)}return jsxRuntime.jsx(LocaleContext$1.Provider,{value:{lang:r,t:n},children:t})},tForLang=(e,t)=>{var n;return((n=localeStrings[t])==null?void 0:n[e])||e};function Field$1({ooui:e,children:t,layout:r="horizontal",valuePropName:n,showLabel:a=!1,alignLabel:o="left",required:s=!1,type:l,validator:c}){const{id:u,label:d,tooltip:f}=e,{t:m}=React$s.useContext(LocaleContext$1),x=s?[{required:!0,message:m("fillRequiredField"),type:l,validator:c}]:void 0,p=()=>jsxRuntime.jsx(antd.Form.Item,{className:"mb-0",name:u,valuePropName:n,rules:x,children:t});if(!a)return p();const h=jsxRuntime.jsx(Label,{ooui:new ooui.Label({name:u+"_label",string:d,help:f,fieldForLabel:u}),align:o});return r==="horizontal"?(()=>jsxRuntime.jsxs(antd.Row,{align:"middle",className:"pb-1 pt-1",children:[jsxRuntime.jsx(antd.Col,{className:"ml-2",flex:"7rem",children:jsxRuntime.jsx("div",{className:"flex flex-col items-end",children:h})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:p()})]}))():(()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[h,p()]}))()}const{confirm:confirm$4}=antd.Modal,showDialog$9=({onOk:e,confirmMessage:t,lang:r})=>{confirm$4({title:tForLang("confirmation",r),icon:jsxRuntime.jsx(AntIcons.ExclamationCircleOutlined,{}),centered:!0,content:t,okText:tForLang("ok",r),cancelText:tForLang("cancel",r),onOk:e})},FormContext$2=React__default.default.createContext(null),FormProvider$2=e=>{const{children:t,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:l,getValues:c,getPlainValues:u,domain:d,submitForm:f,fetchValues:m,formHasChanges:x,elementHasLostFocus:p,getFields:h}=e;return jsxRuntime.jsx(FormContext$2.Provider,{value:{domain:d,getValues:c,getPlainValues:u,getFields:h,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:l,submitForm:f,fetchValues:m,formHasChanges:x,elementHasLostFocus:p},children:t})},iconMapping={"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"},iconMapper=(e,t)=>(e.indexOf("gtk-")!==-1&&(e=`STOCK_${e.replace("gtk-","").replace(/\-/g,"_").toUpperCase()}`),iconMapping.hasOwnProperty(e)?getIconForKey(iconMapping[e],t):getIconForKey(e,t));function toCamelCase(e){return`${e.split("-").map(t=>t.replace(/\w\S*/g,r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase())).join("")}`}function getIconForKey(e,t){let r=e.charAt(0).toUpperCase()+e.slice(1);r.indexOf("-")!==-1&&(r=toCamelCase(r));const n=`${r}Outlined`;if(AntIcons__namespace[n])return()=>React__default.default.createElement(AntIcons__namespace[n],{...t});const a=`Icon${r}`;if(TablerIcons__namespace[a]){const o=()=>React__default.default.createElement(TablerIcons__namespace[a],{fill:"transparent",height:17,width:17});return()=>React__default.default.createElement(AntIcons__default.default,{component:o,...t})}}const Button=e=>{const{ooui:t}=e,{id:r,label:n,activated:a,buttonType:o,confirmMessage:s,icon:l,context:c,readOnly:u}=t,d=React$s.useContext(FormContext$2),{executeButtonAction:f}=d||{},[m,x]=React$s.useState(!1),{lang:p}=React$s.useContext(LocaleContext$1);async function h(){x(!0),await f({type:o,action:r,context:c}),x(!1)}function b(){if(s){showDialog$9({confirmMessage:s,lang:p,onOk:()=>{h()}});return}h()}function g(){if(m)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(l){const v=iconMapper(l);return v&&jsxRuntime.jsx(v,{})}}return jsxRuntime.jsx(Field$1,{ooui:t,children:jsxRuntime.jsx(antd.Button,{block:!0,disabled:!a||u,onClick:b,icon:g(),type:t.primary?"primary":"default",danger:t.danger,style:{whiteSpace:"normal",height:"auto"},children:n})})},ButtonGroup=e=>{const{ooui:t}=e,{defaultButton:r,secondaryButtons:n}=t,{id:a,caption:o,activated:s,buttonType:l,confirmMessage:c,icon:u,primary:d,danger:f,context:m,readOnly:x}=r||{},p=React$s.useContext(FormContext$2),{executeButtonAction:h}=p||{},[b,g]=React$s.useState(!1),{lang:v}=React$s.useContext(LocaleContext$1);function y(){if(b)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(u){const w=iconMapper(u);return w&&jsxRuntime.jsx(w,{})}}async function $(){l&&a&&(g(!0),await h({type:l,action:a,context:m}),g(!1))}function _(){if(c){showDialog$9({confirmMessage:c,lang:v,onOk:()=>{$()}});return}$()}if(t.buttons.length===0)return null;if(t.buttons.length>1)return jsxRuntime.jsx(Field$1,{ooui:new ooui.Field({ooui:t}),children:jsxRuntime.jsxs(antd.Dropdown.Button,{disabled:!s||x,onClick:_,icon:jsxRuntime.jsx(AntIcons.DownOutlined,{}),type:d?"primary":void 0,overlay:jsxRuntime.jsx(Items,{ooui:n,executeButtonAction:h,lang:v}),children:[y(),o]})});if(r)return jsxRuntime.jsx(Button,{ooui:r})},Items=e=>{const{ooui:t,executeButtonAction:r,lang:n}=e;if(!t)return null;const a=t.map(o=>{const{id:s,caption:l,activated:c,buttonType:u,confirmMessage:d,icon:f,context:m,readOnly:x,danger:p}=o,[h,b]=React$s.useState(!1);async function g(){b(!0),await r({type:u,action:s,context:m}),b(!1)}function v(){if(d){showDialog$9({confirmMessage:d,lang:n,onOk:()=>{g()}});return}g()}function y(){if(h)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(f){const $=iconMapper(f);return $&&jsxRuntime.jsx($,{})}}return jsxRuntime.jsx(antd.Menu.Item,{disabled:!c||x,onClick:v,icon:y(),danger:p,children:l})});return jsxRuntime.jsx(antd.Menu,{children:a})},MODAL_WIDTH_CONSTANT=.7;function getWindowDimensions(){const{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function useWindowDimensions(){const[e,t]=React$s.useState(getWindowDimensions());return React$s.useEffect(()=>{function r(){t(getWindowDimensions())}return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),{modalWidth:e.width*MODAL_WIDTH_CONSTANT,modalHeight:e.height,width:e.width,height:e.height}}class ConnectionProvider{static init(t){ConnectionProvider.handler=t}static getHandler(){if(!ConnectionProvider.handler)throw"Must call init() first with a valid ConnectionProvider instance";return ConnectionProvider.handler}}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){var t=e.default;if(typeof t=="function"){var r=function(){return t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}),r}var TextArea$3={},interopRequireWildcard={exports:{}},_typeof$6={exports:{}};(function(e){function t(r){return e.exports=t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(_typeof$6),function(e){var t=_typeof$6.exports.default;function r(a){if(typeof WeakMap!="function")return null;var o=new WeakMap,s=new WeakMap;return(r=function(c){return c?s:o})(a)}function n(a,o){if(!o&&a&&a.__esModule)return a;if(a===null||t(a)!=="object"&&typeof a!="function")return{default:a};var s=r(o);if(s&&s.has(a))return s.get(a);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in a)if(u!=="default"&&Object.prototype.hasOwnProperty.call(a,u)){var d=c?Object.getOwnPropertyDescriptor(a,u):null;d&&(d.get||d.set)?Object.defineProperty(l,u,d):l[u]=a[u]}return l.default=a,s&&s.set(a,l),l}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(interopRequireWildcard);var interopRequireDefault={exports:{}};(function(e){function t(r){return r&&r.__esModule?r:{default:r}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(interopRequireDefault);var CloseCircleFilled$3={exports:{}},CloseCircleFilled$2={},_extends$1={exports:{}},hasRequired_extends;function require_extends(){return hasRequired_extends||(hasRequired_extends=1,function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(r){for(var n=1;n<arguments.length;n++){var a=arguments[n];for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(r[o]=a[o])}return r},e.exports.__esModule=!0,e.exports.default=e.exports,t.apply(this,arguments)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(_extends$1)),_extends$1.exports}var CloseCircleFilled$1={},hasRequiredCloseCircleFilled;function requireCloseCircleFilled(){if(hasRequiredCloseCircleFilled)return CloseCircleFilled$1;hasRequiredCloseCircleFilled=1,Object.defineProperty(CloseCircleFilled$1,"__esModule",{value:!0});var e={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"}}]},name:"close-circle",theme:"filled"};return CloseCircleFilled$1.default=e,CloseCircleFilled$1}var AntdIcon={},slicedToArray={exports:{}},arrayWithHoles={exports:{}};(function(e){function t(r){if(Array.isArray(r))return r}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(arrayWithHoles);var iterableToArrayLimit={exports:{}};(function(e){function t(r,n){var a=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(a!=null){var o,s,l,c,u=[],d=!0,f=!1;try{if(l=(a=a.call(r)).next,n===0){if(Object(a)!==a)return;d=!1}else for(;!(d=(o=l.call(a)).done)&&(u.push(o.value),u.length!==n);d=!0);}catch(m){f=!0,s=m}finally{try{if(!d&&a.return!=null&&(c=a.return(),Object(c)!==c))return}finally{if(f)throw s}}return u}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(iterableToArrayLimit);var unsupportedIterableToArray={exports:{}},arrayLikeToArray={exports:{}};(function(e){function t(r,n){(n==null||n>r.length)&&(n=r.length);for(var a=0,o=new Array(n);a<n;a++)o[a]=r[a];return o}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(arrayLikeToArray),function(e){var t=arrayLikeToArray.exports;function r(n,a){if(!!n){if(typeof n=="string")return t(n,a);var o=Object.prototype.toString.call(n).slice(8,-1);if(o==="Object"&&n.constructor&&(o=n.constructor.name),o==="Map"||o==="Set")return Array.from(n);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return t(n,a)}}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(unsupportedIterableToArray);var nonIterableRest={exports:{}};(function(e){function t(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(nonIterableRest),function(e){var t=arrayWithHoles.exports,r=iterableToArrayLimit.exports,n=unsupportedIterableToArray.exports,a=nonIterableRest.exports;function o(s,l){return t(s)||r(s,l)||n(s,l)||a()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}(slicedToArray);var defineProperty={exports:{}},toPropertyKey={exports:{}},toPrimitive={exports:{}};(function(e){var t=_typeof$6.exports.default;function r(n,a){if(t(n)!=="object"||n===null)return n;var o=n[Symbol.toPrimitive];if(o!==void 0){var s=o.call(n,a||"default");if(t(s)!=="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(n)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(toPrimitive),function(e){var t=_typeof$6.exports.default,r=toPrimitive.exports;function n(a){var o=r(a,"string");return t(o)==="symbol"?o:String(o)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(toPropertyKey),function(e){var t=toPropertyKey.exports;function r(n,a,o){return a=t(a),a in n?Object.defineProperty(n,a,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[a]=o,n}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(defineProperty);var objectWithoutProperties={exports:{}},objectWithoutPropertiesLoose={exports:{}},hasRequiredObjectWithoutPropertiesLoose;function requireObjectWithoutPropertiesLoose(){return hasRequiredObjectWithoutPropertiesLoose||(hasRequiredObjectWithoutPropertiesLoose=1,function(e){function t(r,n){if(r==null)return{};var a={},o=Object.keys(r),s,l;for(l=0;l<o.length;l++)s=o[l],!(n.indexOf(s)>=0)&&(a[s]=r[s]);return a}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(objectWithoutPropertiesLoose)),objectWithoutPropertiesLoose.exports}var hasRequiredObjectWithoutProperties;function requireObjectWithoutProperties(){return hasRequiredObjectWithoutProperties||(hasRequiredObjectWithoutProperties=1,function(e){var t=requireObjectWithoutPropertiesLoose();function r(n,a){if(n==null)return{};var o=t(n,a),s,l;if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);for(l=0;l<c.length;l++)s=c[l],!(a.indexOf(s)>=0)&&(!Object.prototype.propertyIsEnumerable.call(n,s)||(o[s]=n[s]))}return o}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(objectWithoutProperties)),objectWithoutProperties.exports}var classnames={exports:{}};/*!
3
3
  Copyright (c) 2018 Jed Watson.
4
4
  Licensed under the MIT License (MIT), see
@@ -178,7 +178,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
178
178
  .ant-progress-text {
179
179
  display: none;
180
180
  }
181
- `,Many2oneSuffixModal=e=>{const{visible:t,onCancel:r,items:n=[],onItemClicked:a}=e,{t:o}=React$s.useContext(LocaleContext$1);return jsxRuntime.jsx(antd.Modal,{title:o("selectAction"),centered:!0,open:t,footer:null,destroyOnClose:!0,onCancel:r,maskClosable:!1,children:jsxRuntime.jsx(antd.Space,{direction:"vertical",className:"w-full",children:n.map(s=>jsxRuntime.jsx(antd.Button,{className:"w-full",onClick:()=>{a(s)},children:s.name}))})})},Many2oneSuffix=e=>{var S,j;const{id:t,model:r,context:n={}}=e,[a,o]=React$s.useState(!1),[s,l]=React$s.useState(!1),[c,u]=React$s.useState(!1),[d,f]=React$s.useState(),[m,x]=React$s.useState(),{t:p}=React$s.useContext(LocaleContext$1),h=React$s.useContext(TabManagerContext),{openRelate:b}=h||{},g=React$s.useContext(ContentRootContext),{processAction:v}=g||{};if(!t)return null;async function y(){u(!0);try{const T=await ConnectionProvider.getHandler().getView({model:r,type:"form",context:n});f(T);const{fields:M,arch:I}=T,C=(await ConnectionProvider.getHandler().readObjects({model:r,ids:[t],fields:M,context:n}))[0];x({...processValues(C,M),active_id:t}),u(!1)}catch(T){u(!1),showDialog$8(T);return}}function $(){var M;if(c)return jsxRuntime.jsx(antd.Menu,{children:jsxRuntime.jsx("div",{style:{padding:15},children:jsxRuntime.jsx(antd.Spin,{})})});if(!d||!d.toolbar)return jsxRuntime.jsx(antd.Menu,{});const T=(M=d==null?void 0:d.toolbar)==null?void 0:M.relate.map(I=>jsxRuntime.jsx(antd.Menu.Item,{children:I.name},I.id));return jsxRuntime.jsx(antd.Menu,{onClick:_,children:[jsxRuntime.jsx(antd.Menu.Item,{disabled:!d.toolbar.action||d.toolbar.action.length===0,icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),children:p("action")},"action"),jsxRuntime.jsx(antd.Menu.Item,{disabled:!d.toolbar.print||d.toolbar.print.length===0,icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),children:p("report")},"print"),jsxRuntime.jsx(antd.Menu.Divider,{}),jsxRuntime.jsx(antd.Menu.ItemGroup,{title:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(AntIcons.EnterOutlined,{})," ",jsxRuntime.jsxs("span",{children:[" ",p("related")]})]}),children:T})]})}function _(T){if(T.key==="action")o(!0);else if(T.key==="print")l(!0);else{const M=d.toolbar.relate.find(I=>I.id===parseInt(T.key));if(!M)return;b({relateData:M,values:m,fields:d.fields,action_id:M.id,action_type:M.type})}}function w(T){o(!1),v==null||v({actionData:T,values:m,fields:d.fields,context:{active_id:t,active_ids:[t]}})}function O(T){l(!1),v==null||v({actionData:{...T,datas:{...T.datas||{},ids:[t]}},values:m,fields:d.fields})}return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Dropdown,{overlay:$(),trigger:["click"],children:jsxRuntime.jsx(AntIcons.RightCircleOutlined,{style:{color:"rgba(0,0,0,.45)"},onClick:T=>{T.preventDefault(),y()}})}),jsxRuntime.jsx(Many2oneSuffixModal,{visible:a,items:(S=d==null?void 0:d.toolbar)==null?void 0:S.action,onItemClicked:w,onCancel:()=>o(!1)}),jsxRuntime.jsx(Many2oneSuffixModal,{visible:s,items:(j=d==null?void 0:d.toolbar)==null?void 0:j.print,onItemClicked:O,onCancel:()=>l(!1)})]})},Many2oneTree=e=>{const{m2oField:t}=e;return t?jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.value}),jsxRuntime.jsx(Many2oneSuffix,{id:t.id,model:t.model})]}):jsxRuntime.jsx(jsxRuntime.Fragment,{})},ReferenceTree=e=>{const{value:t,context:r,selectionValues:n}=e,[a,o]=React$s.useState(),[s,l]=React$s.useState(!1),[c,u]=t?t.split(","):[],d=parseInt(u),f=React$s.useCallback(async()=>{if(!t||t&&a)return;l(!0);const x=await ConnectionProvider.getHandler().execute({action:"name_get",payload:[d],model:c,context:r});o(x[0][1]),l(!1)},[t,a]);if(React$s.useEffect(()=>{f()},[t]),!t&&!s)return jsxRuntime.jsx(jsxRuntime.Fragment,{});if(s)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});const m=n.get(c);return jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(jsxRuntime.Fragment,{children:`${m}:`}),jsxRuntime.jsx(jsxRuntime.Fragment,{children:a}),jsxRuntime.jsx(Many2oneSuffix,{id:d,model:c})]})};var dayjs_min={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(commonjsGlobal,function(){var r=1e3,n=6e4,a=36e5,o="millisecond",s="second",l="minute",c="hour",u="day",d="week",f="month",m="quarter",x="year",p="date",h="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(C){var P=["th","st","nd","rd"],D=C%100;return"["+C+(P[(D-20)%10]||P[D]||P[0])+"]"}},y=function(C,P,D){var L=String(C);return!L||L.length>=P?C:""+Array(P+1-L.length).join(D)+C},$={s:y,z:function(C){var P=-C.utcOffset(),D=Math.abs(P),L=Math.floor(D/60),N=D%60;return(P<=0?"+":"-")+y(L,2,"0")+":"+y(N,2,"0")},m:function C(P,D){if(P.date()<D.date())return-C(D,P);var L=12*(D.year()-P.year())+(D.month()-P.month()),N=P.clone().add(L,f),B=D-N<0,q=P.clone().add(L+(B?-1:1),f);return+(-(L+(D-N)/(B?N-q:q-N))||0)},a:function(C){return C<0?Math.ceil(C)||0:Math.floor(C)},p:function(C){return{M:f,y:x,w:d,d:u,D:p,h:c,m:l,s,ms:o,Q:m}[C]||String(C||"").toLowerCase().replace(/s$/,"")},u:function(C){return C===void 0}},_="en",w={};w[_]=v;var O=function(C){return C instanceof M},S=function C(P,D,L){var N;if(!P)return _;if(typeof P=="string"){var B=P.toLowerCase();w[B]&&(N=B),D&&(w[B]=D,N=B);var q=P.split("-");if(!N&&q.length>1)return C(q[0])}else{var z=P.name;w[z]=P,N=z}return!L&&N&&(_=N),N||!L&&_},j=function(C,P){if(O(C))return C.clone();var D=typeof P=="object"?P:{};return D.date=C,D.args=arguments,new M(D)},T=$;T.l=S,T.i=O,T.w=function(C,P){return j(C,{locale:P.$L,utc:P.$u,x:P.$x,$offset:P.$offset})};var M=function(){function C(D){this.$L=S(D.locale,null,!0),this.parse(D)}var P=C.prototype;return P.parse=function(D){this.$d=function(L){var N=L.date,B=L.utc;if(N===null)return new Date(NaN);if(T.u(N))return new Date;if(N instanceof Date)return new Date(N);if(typeof N=="string"&&!/Z$/i.test(N)){var q=N.match(b);if(q){var z=q[2]-1||0,Y=(q[7]||"0").substring(0,3);return B?new Date(Date.UTC(q[1],z,q[3]||1,q[4]||0,q[5]||0,q[6]||0,Y)):new Date(q[1],z,q[3]||1,q[4]||0,q[5]||0,q[6]||0,Y)}}return new Date(N)}(D),this.$x=D.x||{},this.init()},P.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},P.$utils=function(){return T},P.isValid=function(){return this.$d.toString()!==h},P.isSame=function(D,L){var N=j(D);return this.startOf(L)<=N&&N<=this.endOf(L)},P.isAfter=function(D,L){return j(D)<this.startOf(L)},P.isBefore=function(D,L){return this.endOf(L)<j(D)},P.$g=function(D,L,N){return T.u(D)?this[L]:this.set(N,D)},P.unix=function(){return Math.floor(this.valueOf()/1e3)},P.valueOf=function(){return this.$d.getTime()},P.startOf=function(D,L){var N=this,B=!!T.u(L)||L,q=T.p(D),z=function(G,X){var Q=T.w(N.$u?Date.UTC(N.$y,X,G):new Date(N.$y,X,G),N);return B?Q:Q.endOf(u)},Y=function(G,X){return T.w(N.toDate()[G].apply(N.toDate("s"),(B?[0,0,0,0]:[23,59,59,999]).slice(X)),N)},W=this.$W,K=this.$M,H=this.$D,V="set"+(this.$u?"UTC":"");switch(q){case x:return B?z(1,0):z(31,11);case f:return B?z(1,K):z(0,K+1);case d:var F=this.$locale().weekStart||0,k=(W<F?W+7:W)-F;return z(B?H-k:H+(6-k),K);case u:case p:return Y(V+"Hours",0);case c:return Y(V+"Minutes",1);case l:return Y(V+"Seconds",2);case s:return Y(V+"Milliseconds",3);default:return this.clone()}},P.endOf=function(D){return this.startOf(D,!1)},P.$set=function(D,L){var N,B=T.p(D),q="set"+(this.$u?"UTC":""),z=(N={},N[u]=q+"Date",N[p]=q+"Date",N[f]=q+"Month",N[x]=q+"FullYear",N[c]=q+"Hours",N[l]=q+"Minutes",N[s]=q+"Seconds",N[o]=q+"Milliseconds",N)[B],Y=B===u?this.$D+(L-this.$W):L;if(B===f||B===x){var W=this.clone().set(p,1);W.$d[z](Y),W.init(),this.$d=W.set(p,Math.min(this.$D,W.daysInMonth())).$d}else z&&this.$d[z](Y);return this.init(),this},P.set=function(D,L){return this.clone().$set(D,L)},P.get=function(D){return this[T.p(D)]()},P.add=function(D,L){var N,B=this;D=Number(D);var q=T.p(L),z=function(K){var H=j(B);return T.w(H.date(H.date()+Math.round(K*D)),B)};if(q===f)return this.set(f,this.$M+D);if(q===x)return this.set(x,this.$y+D);if(q===u)return z(1);if(q===d)return z(7);var Y=(N={},N[l]=n,N[c]=a,N[s]=r,N)[q]||1,W=this.$d.getTime()+D*Y;return T.w(W,this)},P.subtract=function(D,L){return this.add(-1*D,L)},P.format=function(D){var L=this,N=this.$locale();if(!this.isValid())return N.invalidDate||h;var B=D||"YYYY-MM-DDTHH:mm:ssZ",q=T.z(this),z=this.$H,Y=this.$m,W=this.$M,K=N.weekdays,H=N.months,V=function(X,Q,A,E){return X&&(X[Q]||X(L,B))||A[Q].slice(0,E)},F=function(X){return T.s(z%12||12,X,"0")},k=N.meridiem||function(X,Q,A){var E=X<12?"AM":"PM";return A?E.toLowerCase():E},G={YY:String(this.$y).slice(-2),YYYY:this.$y,M:W+1,MM:T.s(W+1,2,"0"),MMM:V(N.monthsShort,W,H,3),MMMM:V(H,W),D:this.$D,DD:T.s(this.$D,2,"0"),d:String(this.$W),dd:V(N.weekdaysMin,this.$W,K,2),ddd:V(N.weekdaysShort,this.$W,K,3),dddd:K[this.$W],H:String(z),HH:T.s(z,2,"0"),h:F(1),hh:F(2),a:k(z,Y,!0),A:k(z,Y,!1),m:String(Y),mm:T.s(Y,2,"0"),s:String(this.$s),ss:T.s(this.$s,2,"0"),SSS:T.s(this.$ms,3,"0"),Z:q};return B.replace(g,function(X,Q){return Q||G[X]||q.replace(":","")})},P.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},P.diff=function(D,L,N){var B,q=T.p(L),z=j(D),Y=(z.utcOffset()-this.utcOffset())*n,W=this-z,K=T.m(this,z);return K=(B={},B[x]=K/12,B[f]=K,B[m]=K/3,B[d]=(W-Y)/6048e5,B[u]=(W-Y)/864e5,B[c]=W/a,B[l]=W/n,B[s]=W/r,B)[q]||W,N?K:T.a(K)},P.daysInMonth=function(){return this.endOf(f).$D},P.$locale=function(){return w[this.$L]},P.locale=function(D,L){if(!D)return this.$L;var N=this.clone(),B=S(D,L,!0);return B&&(N.$L=B),N},P.clone=function(){return T.w(this.$d,this)},P.toDate=function(){return new Date(this.valueOf())},P.toJSON=function(){return this.isValid()?this.toISOString():null},P.toISOString=function(){return this.$d.toISOString()},P.toString=function(){return this.$d.toUTCString()},C}(),I=M.prototype;return j.prototype=I,[["$ms",o],["$s",s],["$m",l],["$H",c],["$W",u],["$M",f],["$y",x],["$D",p]].forEach(function(C){I[C[1]]=function(P){return this.$g(P,C[0],C[1])}}),j.extend=function(C,P){return C.$i||(C(P,M,j),C.$i=!0),j},j.locale=S,j.isDayjs=O,j.unix=function(C){return j(1e3*C)},j.en=w[_],j.Ls=w,j.p={},j})})(dayjs_min);const dayjs=dayjs_min.exports,{useToken:useToken$c}=antd.theme,DatePickerConfig={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"}},DatePicker=e=>{const{ooui:t,showTime:r=!1}=e,{required:n}=t;return jsxRuntime.jsx(Field$1,{required:n,...e,children:jsxRuntime.jsx(DatePickerInput,{ooui:t,showTime:r})})},DatePickerInput=e=>{const{value:t,onChange:r,ooui:n,showTime:a}=e,{id:o,readOnly:s,required:l}=n,{token:c}=useToken$c(),u=l&&!s?{backgroundColor:c.colorPrimaryBg}:void 0,d=a?"time":"date",f=h=>{r==null||r(h)},m=h=>{if(h===null){f(void 0);return}f(h.format(DatePickerConfig[d].dateInternalFormat))},x=a?{defaultValue:dayjs("00:00:00","HH:mm:ss")}:void 0,p=t?dayjs(t,DatePickerConfig[d].dateInternalFormat):void 0;return jsxRuntime.jsx(antd.DatePicker,{style:{width:"100%",...u},placeholder:a?DatePickerConfig.time.placeholder:DatePickerConfig.date.placeholder,disabled:s,id:o,picker:a?"time":"date",showTime:x,format:DatePickerConfig[d].dateDisplayFormat,value:p,onChange:m})},booleanComponentFn=e=>jsxRuntime.jsx("div",{style:{display:"flex",justifyContent:"center",alignContent:"center"},children:jsxRuntime.jsx(antd.Checkbox,{checked:e,disabled:!0})}),many2OneComponentFn=e=>jsxRuntime.jsx(Many2oneTree,{m2oField:e}),textComponentFn=e=>jsxRuntime.jsx(interweave.Interweave,{content:e==null?void 0:e.replace(/(?:\r\n|\r|\n)/g,"<br>")}),dateComponentFn=e=>{if(!e||e&&e.length===0)return jsxRuntime.jsx(jsxRuntime.Fragment,{});const t=dayjs(e,DatePickerConfig.date.dateInternalFormat).format(DatePickerConfig.date.dateDisplayFormat);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t})},dateTimeComponentFn=e=>{if(!e||e&&e.length===0)return jsxRuntime.jsx(jsxRuntime.Fragment,{});const t=dayjs(e,DatePickerConfig.time.dateInternalFormat).format(DatePickerConfig.time.dateDisplayFormat);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t})},one2ManyComponentFn=e=>{const t=Array.isArray(e==null?void 0:e.items)?e==null?void 0:e.items.length:0;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:`( ${t} )`})},progressBarComponentFn=e=>jsxRuntime.jsx(ProgressBarInput,{value:e}),floatTimeComponent=e=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:parseFloatToString(e)}),numberComponent=e=>jsxRuntime.jsx("div",{style:{textAlign:"right"},children:e}),imageComponent=e=>jsxRuntime.jsx("img",{src:`data:image/*;base64,${e}`,style:{maxWidth:"50px",padding:"5px"}}),TagComponent=(e,t,r,n)=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:e?jsxRuntime.jsx(antd.Tag,{color:r.colors[e],children:r.selectionValues.get(e)}):null}),SelectionComponent=(e,t,r,n)=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:r.selectionValues.get(e)}),referenceComponent=(e,t,r,n)=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsx(ReferenceTree,{value:e,selectionValues:r.selectionValues,context:n})});function Tree(e){const{page:t=1,limit:r,total:n,treeView:a,results:o,onRequestPageChange:s,loading:l,onRowClicked:c,showPagination:u=!0,rowSelection:d,scrollY:f,colorsForResults:m={},onChangeSort:x,sorter:p,onFetchChildrenForRecord:h,childField:b,rootTree:g=!1,context:v}=e,[y,$]=React$s.useState([]),[_,w]=React$s.useState([]),O=React$s.useRef(!1),S=React$s.useRef(null),{t:j}=React$s.useContext(LocaleContext$1),T=React$s.useRef(r),M=React$s.useContext(ActionViewContext),{title:I=void 0,setTitle:C=void 0}=(g?M:{})||{};React$s.useEffect(()=>{S.current=getTree(a);const Y=getTableColumns(S.current,{boolean:booleanComponentFn,many2one:many2OneComponentFn,text:textComponentFn,one2many:one2ManyComponentFn,many2many:one2ManyComponentFn,progressbar:progressBarComponentFn,float_time:floatTimeComponent,image:imageComponent,integer:numberComponent,float:numberComponent,reference:referenceComponent,tag:TagComponent,selection:SelectionComponent,date:dateComponentFn,datetime:dateTimeComponentFn},v);w(Y),S.current.string&&I!==S.current.string&&(C==null||C(S.current.string))},[a]),React$s.useEffect(()=>{O.current=!1;const Y=getTableItems(S.current,o);$(Y),T.current=r},[o]);const P=(t-1)*T.current+1,D=P-1+y.length,L=n===void 0?null:n===0?j("no_results"):j("summary").replace("{from}",P==null?void 0:P.toString()).replace("{to}",D==null?void 0:D.toString()).replace("{total}",n==null?void 0:n.toString()),N=()=>!u||a.isExpandable||l?null:n===void 0?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsxs(antd.Row,{align:"bottom",className:"pb-4",children:[jsxRuntime.jsx(antd.Col,{span:12,children:jsxRuntime.jsx(antd.Pagination,{total:n,pageSize:T.current===0?n:T.current,current:t,showSizeChanger:!1,onChange:s})}),jsxRuntime.jsx(antd.Col,{span:12,className:"text-right",children:L})]});function B(){var V;const W=S.current.columns.filter(F=>F.sum!==void 0).map(F=>({label:F.sum,field:F.id}));if(!W||W.length===0)return null;let K=[],H=((V=d==null?void 0:d.selectedRowKeys)==null?void 0:V.length)>0?y.filter(F=>d==null?void 0:d.selectedRowKeys.includes(F.id)):y;return W.forEach(F=>{const k=H.reduce((G,X)=>X[F.field]&&!isNaN(X[F.field])?G+X[F.field]:G,0);K.push(`${F.label}: ${Math.round(k*100)/100}`)}),jsxRuntime.jsx("div",{className:"p-1 pb-0 pl-2 mt-2 ",children:K.join(", ")})}let q,z=f;if(S.current!==null){q=calculateColumnsWidth(_,y,600);const W=S.current;f&&W.columns.some(K=>K.sum!==void 0)&&(z=f-30)}return S.current===null?jsxRuntime.jsx(antd.Spin,{style:{padding:"2rem"}}):jsxRuntime.jsxs("div",{children:[N(),jsxRuntime.jsx(reactFormigaTable.Table,{height:z,columns:q.columns,dataSource:y,loading:l,loadingComponent:jsxRuntime.jsx(antd.Spin,{}),onRowStyle:Y=>{if(m[Y.id])return{color:m[Y.id]}},onRowDoubleClick:c,onRowSelectionChange:d==null?void 0:d.onChange,onChangeSort:x,sorter:p,expandableOpts:h?{expandIcon:AntIcons.PlusSquareOutlined,collapseIcon:AntIcons.MinusSquareOutlined,loadingIcon:AntIcons.LoadingOutlined,onFetchChildrenForRecord:h,childField:b}:void 0}),B()]})}function SearchTree(e,t){const{model:r,formView:n,treeView:a,onRowClicked:o,nameSearch:s,treeScrollY:l,domain:c=[],visible:u=!0,rootTree:d=!1,parentContext:f={},onChangeSelectedRowKeys:m}=e,[x,p]=React$s.useState(!1),[h,b]=React$s.useState(!1),g=React$s.useRef(!1),[v,y]=React$s.useState(),[$,_]=React$s.useState(),[w,O]=React$s.useState(),[S,j]=React$s.useState(),[T,M]=React$s.useState(200),I=React$s.useRef(),{height:C}=useWindowDimensions(),P=React$s.useContext(ContentRootContext),{processAction:D}=P||{},L=React$s.useContext(ActionViewContext),{setResults:N=void 0,setCurrentItemIndex:B=void 0,currentId:q=void 0,results:z=void 0,selectedRowItems:Y=void 0,setSelectedRowItems:W=void 0,searchParams:K=[],setSearchParams:H=void 0,searchVisible:V=!0,setSearchVisible:F=void 0,sorter:k=void 0,setSorter:G=void 0,setTotalItems:X=void 0,setSearchTreeNameSearch:Q=void 0,setTreeIsLoading:A=void 0,searchValues:E={},setSearchValues:U=void 0,limit:J=DEFAULT_SEARCH_LIMIT$1,setLimit:ne=void 0}=(d?L:{})||{},{submit:Z,clear:le,fetchResults:ae,tableRefreshing:ie,searchFilterLoading:de,searchError:ge,page:Re,offset:_e,getResults:ee,requestPageChange:se,changeSort:pe,fetchChildrenForRecord:je,colorsForResults:he,totalItems:Ie}=useSearch({model:v,setSearchTreeNameSearch:Q,setSelectedRowItems:W,setSearchParams:H,setSearchValues:U,searchParams:K,setSearchVisible:F,setTreeIsLoading:A,nameSearch:s,searchNameGetDoneRef:g,context:f,formView:w,treeView:$,sorter:k,setSorter:G,setCurrentItemIndex:B,setResultsActionView:N,resultsActionView:z,domain:c,currentId:q,setActionViewTotalItems:X,limit:J,setLimit:ne});React$s.useImperativeHandle(t,()=>({refreshResults:()=>{g.current=!1,ae()},getFields:()=>$==null?void 0:$.fields,getDomain:()=>c})),React$s.useEffect(()=>{!h||u&&(g.current=!1,ae())},[Re,_e,h,u,s]);const $e=async()=>{b(!1),p(!0),j(void 0),A==null||A(!0);try{await Me(),b(!0)}catch(Ce){j(Ce)}finally{p(!1),A==null||A(!1)}},Me=async()=>{y(r);let Ce=n;n||(Ce=await ConnectionProvider.getHandler().getView({model:r,type:"form",context:f}));let ce=a;a||(ce=await ConnectionProvider.getHandler().getView({model:r,type:"tree",context:f})),O(Ce),_(ce)};React$s.useEffect(()=>{$e()},[r]);const Pe=Ce=>{ne==null||ne(Ce)},Se=async Ce=>{const{id:ce}=Ce;I.current||(I.current=await ConnectionProvider.getHandler().treeButOpen({id:$.view_id,model:v,context:f}));const ye=I.current[0][2];await(D==null?void 0:D({actionData:ye,fields:$.fields,values:{active_id:ce,...Ce},context:f}))},te=async Ce=>{const{id:ce}=Ce;if($!=null&&$.isExpandable){try{await Se(Ce)}catch(ye){showDialog$8(ye)}return}o({id:ce,model:v,formView:w,treeView:$})};function fe(Ce){const ce=ee().filter(ye=>Ce.includes(ye.id));W==null||W(ce),m==null||m(Ce)}function ve(){return $!=null&&$.isExpandable?C-160:C-(T+210)}const ue=()=>!$||!w?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchFilter,{fields:{...$.fields,...w.fields},searchFields:mergeSearchFields([w.search_fields,$.search_fields]),formXml:w.arch,onClear:le,limit:J,offset:_e,isSearching:de,onSubmit:Z,onLimitChange:Pe,setSearchFilterHeight:M,searchError:ge,searchVisible:V,searchValues:E}),jsxRuntime.jsx(Tree,{context:f,total:Ie,limit:J,page:Re,treeView:$,results:ee(),onRequestPageChange:se,loading:ie,onRowClicked:te,scrollY:l||ve(),colorsForResults:he,rowSelection:{selectedRowKeys:Y==null?void 0:Y.map(Ce=>Ce.id),onChange:fe},sorter:k,onChangeSort:pe,onFetchChildrenForRecord:$.isExpandable?je:void 0,childField:$.field_parent,rootTree:d})]}),we=S||ge;return we?jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:we,type:"error",banner:!0}):jsxRuntime.jsx("div",{style:u?{}:{display:"none"},children:x?jsxRuntime.jsx(antd.Spin,{}):ue()})}const SearchTree$1=React$s.forwardRef(SearchTree),SearchModal=e=>{const{visible:t,onCloseModal:r,onSelectValues:n,model:a,nameSearch:o,domain:s,context:l={}}=e,[c,u]=React$s.useState(!1),{modalWidth:d,modalHeight:f}=useWindowDimensions(),{t:m}=React$s.useContext(LocaleContext$1),[x,p]=React$s.useState([]),h=async()=>{await new Promise(y=>setTimeout(y,5)),r()},b=async y=>{const{id:$}=y;n([$])};function g(){if(x.length===0){h();return}n(x)}const v=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchTree$1,{model:a,nameSearch:o,onRowClicked:b,treeScrollY:f*.3,domain:s,parentContext:l,onChangeSelectedRowKeys:y=>{p(y)}}),jsxRuntime.jsx(antd.Divider,{}),jsxRuntime.jsx(antd.Row,{justify:"end",children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.FileAddOutlined,{}),onClick:()=>{u(!0)},children:m("new")}),jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),onClick:()=>{g()},type:"primary",children:m("ok")}),jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CloseOutlined,{}),onClick:h,children:m("cancel")})]})})]});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Modal,{title:m("search"),centered:!0,width:d,open:t&&!c,closable:!0,onCancel:h,footer:null,destroyOnClose:!0,maskClosable:!1,children:v()}),jsxRuntime.jsx(FormModal,{model:a,visible:c,parentContext:l,onSubmitSucceed:y=>{u(!1),h(),n([y])},onCancel:()=>{u(!1),h()}})]})},{error}=antd.Modal,showDialog$3=e=>{error({title:"Error",icon:jsxRuntime.jsx(AntIcons.ExclamationCircleOutlined,{}),centered:!0,content:e})},{defaultAlgorithm,defaultSeed}=antd.theme,mapToken=defaultAlgorithm(defaultSeed),Many2one=e=>{const{ooui:t}=e,{required:r}=t,n=async(a,o)=>{if(!o)throw new Error;if(!Array.isArray(o))throw new Error;if(Array.isArray(o)&&!o[0])throw new Error};return jsxRuntime.jsx(Field$1,{required:r,type:"array",validator:n,...e,children:jsxRuntime.jsx(Many2oneInput,{ooui:t})})},Many2oneInput=e=>{const{value:t,onChange:r,ooui:n}=e,{required:a,relation:o,readOnly:s,context:l,id:c,domain:u}=n,d=a&&!s?{backgroundColor:mapToken.colorPrimaryBg}:void 0,[f,m]=React$s.useState(!1),[x,p]=React$s.useState(!1),[h,b]=React$s.useState(!1),[g,v]=React$s.useState(),y=React$s.useRef(!1),[$,_]=React$s.useState(""),w=React$s.useRef(),O=React$s.useContext(FormContext$2),{domain:S,getValues:j,getFields:T,getContext:M,elementHasLostFocus:I}=O||{},C=React$s.useRef([]),[P,D]=React$s.useState([]),L=t&&t[0]||void 0,N=t&&t[1]||"";React$s.useEffect(()=>{!Array.isArray(t)&&t&&W(t)},[t]),React$s.useEffect(()=>{L&&N.length===0?W(L):L&&N.length>0?_(N):!L&&!N&&_(w.current||"")},[t]);const B=F=>{r==null||r(F),I==null||I()},q=F=>{w.current=F.target.value,B([void 0,""])},z=async()=>{if(!h&&$!==N){if(await new Promise(F=>setTimeout(F,100)),y.current){B([void 0,""]);return}b(!0);try{if(C.current&&C.current.length>0)Y(w.current);else{const F=await ConnectionProvider.getHandler().nameSearch({model:o,payload:w.current,context:{...M==null?void 0:M(),...l}});F.length===1?(w.current=void 0,B(F[0])):Y(w.current)}}catch(F){showDialog$3(F)}finally{b(!1)}}},Y=async F=>{if(await K(),C.current&&C.current.length>0){const k=await ConnectionProvider.getHandler().searchAllIds({params:C.current,model:o,context:{...M==null?void 0:M(),...l},totalItems:2});k.length===1?W(k[0]):(v(F),m(!0));return}v(F),m(!0)},W=async F=>{b(!0);try{const k=await ConnectionProvider.getHandler().execute({action:"name_get",payload:[F],model:o,context:{...M==null?void 0:M(),...l}});B([F,k[0][1]])}catch(k){showDialog$3(k)}finally{b(!1)}};async function K(){u&&(C.current=await ConnectionProvider.getHandler().evalDomain({domain:u,values:transformPlainMany2Ones({fields:T(),values:j()}),fields:T(),context:M()})),S&&S.length>0&&(C.current=C.current.concat(ooui.transformDomainForChildWidget({domain:S,widgetFieldName:c}))),D(C.current)}async function H(F){F.keyCode===13?(F.preventDefault(),F.stopPropagation(),await z()):F.code==="Backspace"&&L!==void 0&&(F.preventDefault(),F.stopPropagation(),B([void 0,""]))}const V=a&&!s?RequiredInput:antd.Input;return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"auto",children:jsxRuntime.jsx(V,{type:"text",value:$,disabled:s,onChange:q,style:d,onBlur:z,onKeyDown:H,suffix:jsxRuntime.jsx(Many2oneSuffix,{id:L,model:o,context:{...M==null?void 0:M(),...l}})})}),jsxRuntime.jsx(antd.Col,{flex:"32px",children:jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.FolderOpenOutlined,{}),disabled:L===void 0||N===""||$===void 0,onClick:()=>{p(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"32px",children:jsxRuntime.jsx(antd.Button,{icon:h?jsxRuntime.jsx(AntIcons.LoadingOutlined,{}):jsxRuntime.jsx(AntIcons.SearchOutlined,{}),disabled:s||h,onClick:()=>{y.current=!0,Y(N)},style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},tabIndex:-1})}),jsxRuntime.jsx(SearchModal,{model:o,domain:P,context:{...M==null?void 0:M(),...l},visible:f,nameSearch:L?void 0:g,onSelectValues:F=>{m(!1),W(F[0]),y.current=!1,w.current=void 0},onCloseModal:()=>{m(!1),y.current=!1}}),jsxRuntime.jsx(FormModal,{model:o,parentContext:{...M==null?void 0:M(),...l},id:t&&t[0],visible:x,onSubmitSucceed:F=>{p(!1),W(F)},onCancel:()=>{p(!1)},mustClearAfterSave:!0,readOnly:s})]})},RequiredInput=styled__default.default(antd.Input)`
181
+ `,Many2oneSuffixModal=e=>{const{visible:t,onCancel:r,items:n=[],onItemClicked:a}=e,{t:o}=React$s.useContext(LocaleContext$1);return jsxRuntime.jsx(antd.Modal,{title:o("selectAction"),centered:!0,open:t,footer:null,destroyOnClose:!0,onCancel:r,maskClosable:!1,children:jsxRuntime.jsx(antd.Space,{direction:"vertical",className:"w-full",children:n.map(s=>jsxRuntime.jsx(antd.Button,{className:"w-full",onClick:()=>{a(s)},children:s.name}))})})},Many2oneSuffix=e=>{var S,j;const{id:t,model:r,context:n={}}=e,[a,o]=React$s.useState(!1),[s,l]=React$s.useState(!1),[c,u]=React$s.useState(!1),[d,f]=React$s.useState(),[m,x]=React$s.useState(),{t:p}=React$s.useContext(LocaleContext$1),h=React$s.useContext(TabManagerContext),{openRelate:b}=h||{},g=React$s.useContext(ContentRootContext),{processAction:v}=g||{};if(!t)return null;async function y(){u(!0);try{const T=await ConnectionProvider.getHandler().getView({model:r,type:"form",context:n});f(T);const{fields:M,arch:I}=T,C=(await ConnectionProvider.getHandler().readObjects({model:r,ids:[t],fields:M,context:n}))[0];x({...processValues(C,M),active_id:t}),u(!1)}catch(T){u(!1),showDialog$8(T);return}}function $(){var M;if(c)return jsxRuntime.jsx(antd.Menu,{children:jsxRuntime.jsx("div",{style:{padding:15},children:jsxRuntime.jsx(antd.Spin,{})})});if(!d||!d.toolbar)return jsxRuntime.jsx(antd.Menu,{});const T=(M=d==null?void 0:d.toolbar)==null?void 0:M.relate.map(I=>jsxRuntime.jsx(antd.Menu.Item,{children:I.name},I.id));return jsxRuntime.jsx(antd.Menu,{onClick:_,children:[jsxRuntime.jsx(antd.Menu.Item,{disabled:!d.toolbar.action||d.toolbar.action.length===0,icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),children:p("action")},"action"),jsxRuntime.jsx(antd.Menu.Item,{disabled:!d.toolbar.print||d.toolbar.print.length===0,icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),children:p("report")},"print"),jsxRuntime.jsx(antd.Menu.Divider,{}),jsxRuntime.jsx(antd.Menu.ItemGroup,{title:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(AntIcons.EnterOutlined,{})," ",jsxRuntime.jsxs("span",{children:[" ",p("related")]})]}),children:T})]})}function _(T){if(T.key==="action")o(!0);else if(T.key==="print")l(!0);else{const M=d.toolbar.relate.find(I=>I.id===parseInt(T.key));if(!M)return;b({relateData:M,values:m,fields:d.fields,action_id:M.id,action_type:M.type})}}function w(T){o(!1),v==null||v({actionData:T,values:m,fields:d.fields,context:{active_id:t,active_ids:[t]}})}function O(T){l(!1),v==null||v({actionData:{...T,datas:{...T.datas||{},ids:[t]}},values:m,fields:d.fields})}return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Dropdown,{overlay:$(),trigger:["click"],children:jsxRuntime.jsx(AntIcons.RightCircleOutlined,{style:{color:"rgba(0,0,0,.45)"},onClick:T=>{T.preventDefault(),y()}})}),jsxRuntime.jsx(Many2oneSuffixModal,{visible:a,items:(S=d==null?void 0:d.toolbar)==null?void 0:S.action,onItemClicked:w,onCancel:()=>o(!1)}),jsxRuntime.jsx(Many2oneSuffixModal,{visible:s,items:(j=d==null?void 0:d.toolbar)==null?void 0:j.print,onItemClicked:O,onCancel:()=>l(!1)})]})},Many2oneTree=e=>{const{m2oField:t}=e;return t?jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.value}),jsxRuntime.jsx(Many2oneSuffix,{id:t.id,model:t.model})]}):jsxRuntime.jsx(jsxRuntime.Fragment,{})},ReferenceTree=e=>{const{value:t,context:r,selectionValues:n}=e,[a,o]=React$s.useState(),[s,l]=React$s.useState(!1),[c,u]=t?t.split(","):[],d=parseInt(u),f=React$s.useCallback(async()=>{if(!t||t&&a)return;l(!0);const x=await ConnectionProvider.getHandler().execute({action:"name_get",payload:[d],model:c,context:r});o(x[0][1]),l(!1)},[t,a]);if(React$s.useEffect(()=>{f()},[t]),!t&&!s)return jsxRuntime.jsx(jsxRuntime.Fragment,{});if(s)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});const m=n.get(c);return jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(jsxRuntime.Fragment,{children:`${m}:`}),jsxRuntime.jsx(jsxRuntime.Fragment,{children:a}),jsxRuntime.jsx(Many2oneSuffix,{id:d,model:c})]})};var dayjs_min={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(commonjsGlobal,function(){var r=1e3,n=6e4,a=36e5,o="millisecond",s="second",l="minute",c="hour",u="day",d="week",f="month",m="quarter",x="year",p="date",h="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(C){var P=["th","st","nd","rd"],D=C%100;return"["+C+(P[(D-20)%10]||P[D]||P[0])+"]"}},y=function(C,P,D){var L=String(C);return!L||L.length>=P?C:""+Array(P+1-L.length).join(D)+C},$={s:y,z:function(C){var P=-C.utcOffset(),D=Math.abs(P),L=Math.floor(D/60),N=D%60;return(P<=0?"+":"-")+y(L,2,"0")+":"+y(N,2,"0")},m:function C(P,D){if(P.date()<D.date())return-C(D,P);var L=12*(D.year()-P.year())+(D.month()-P.month()),N=P.clone().add(L,f),B=D-N<0,q=P.clone().add(L+(B?-1:1),f);return+(-(L+(D-N)/(B?N-q:q-N))||0)},a:function(C){return C<0?Math.ceil(C)||0:Math.floor(C)},p:function(C){return{M:f,y:x,w:d,d:u,D:p,h:c,m:l,s,ms:o,Q:m}[C]||String(C||"").toLowerCase().replace(/s$/,"")},u:function(C){return C===void 0}},_="en",w={};w[_]=v;var O=function(C){return C instanceof M},S=function C(P,D,L){var N;if(!P)return _;if(typeof P=="string"){var B=P.toLowerCase();w[B]&&(N=B),D&&(w[B]=D,N=B);var q=P.split("-");if(!N&&q.length>1)return C(q[0])}else{var z=P.name;w[z]=P,N=z}return!L&&N&&(_=N),N||!L&&_},j=function(C,P){if(O(C))return C.clone();var D=typeof P=="object"?P:{};return D.date=C,D.args=arguments,new M(D)},T=$;T.l=S,T.i=O,T.w=function(C,P){return j(C,{locale:P.$L,utc:P.$u,x:P.$x,$offset:P.$offset})};var M=function(){function C(D){this.$L=S(D.locale,null,!0),this.parse(D)}var P=C.prototype;return P.parse=function(D){this.$d=function(L){var N=L.date,B=L.utc;if(N===null)return new Date(NaN);if(T.u(N))return new Date;if(N instanceof Date)return new Date(N);if(typeof N=="string"&&!/Z$/i.test(N)){var q=N.match(b);if(q){var z=q[2]-1||0,Y=(q[7]||"0").substring(0,3);return B?new Date(Date.UTC(q[1],z,q[3]||1,q[4]||0,q[5]||0,q[6]||0,Y)):new Date(q[1],z,q[3]||1,q[4]||0,q[5]||0,q[6]||0,Y)}}return new Date(N)}(D),this.$x=D.x||{},this.init()},P.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},P.$utils=function(){return T},P.isValid=function(){return this.$d.toString()!==h},P.isSame=function(D,L){var N=j(D);return this.startOf(L)<=N&&N<=this.endOf(L)},P.isAfter=function(D,L){return j(D)<this.startOf(L)},P.isBefore=function(D,L){return this.endOf(L)<j(D)},P.$g=function(D,L,N){return T.u(D)?this[L]:this.set(N,D)},P.unix=function(){return Math.floor(this.valueOf()/1e3)},P.valueOf=function(){return this.$d.getTime()},P.startOf=function(D,L){var N=this,B=!!T.u(L)||L,q=T.p(D),z=function(G,X){var Q=T.w(N.$u?Date.UTC(N.$y,X,G):new Date(N.$y,X,G),N);return B?Q:Q.endOf(u)},Y=function(G,X){return T.w(N.toDate()[G].apply(N.toDate("s"),(B?[0,0,0,0]:[23,59,59,999]).slice(X)),N)},W=this.$W,K=this.$M,H=this.$D,V="set"+(this.$u?"UTC":"");switch(q){case x:return B?z(1,0):z(31,11);case f:return B?z(1,K):z(0,K+1);case d:var F=this.$locale().weekStart||0,k=(W<F?W+7:W)-F;return z(B?H-k:H+(6-k),K);case u:case p:return Y(V+"Hours",0);case c:return Y(V+"Minutes",1);case l:return Y(V+"Seconds",2);case s:return Y(V+"Milliseconds",3);default:return this.clone()}},P.endOf=function(D){return this.startOf(D,!1)},P.$set=function(D,L){var N,B=T.p(D),q="set"+(this.$u?"UTC":""),z=(N={},N[u]=q+"Date",N[p]=q+"Date",N[f]=q+"Month",N[x]=q+"FullYear",N[c]=q+"Hours",N[l]=q+"Minutes",N[s]=q+"Seconds",N[o]=q+"Milliseconds",N)[B],Y=B===u?this.$D+(L-this.$W):L;if(B===f||B===x){var W=this.clone().set(p,1);W.$d[z](Y),W.init(),this.$d=W.set(p,Math.min(this.$D,W.daysInMonth())).$d}else z&&this.$d[z](Y);return this.init(),this},P.set=function(D,L){return this.clone().$set(D,L)},P.get=function(D){return this[T.p(D)]()},P.add=function(D,L){var N,B=this;D=Number(D);var q=T.p(L),z=function(K){var H=j(B);return T.w(H.date(H.date()+Math.round(K*D)),B)};if(q===f)return this.set(f,this.$M+D);if(q===x)return this.set(x,this.$y+D);if(q===u)return z(1);if(q===d)return z(7);var Y=(N={},N[l]=n,N[c]=a,N[s]=r,N)[q]||1,W=this.$d.getTime()+D*Y;return T.w(W,this)},P.subtract=function(D,L){return this.add(-1*D,L)},P.format=function(D){var L=this,N=this.$locale();if(!this.isValid())return N.invalidDate||h;var B=D||"YYYY-MM-DDTHH:mm:ssZ",q=T.z(this),z=this.$H,Y=this.$m,W=this.$M,K=N.weekdays,H=N.months,V=function(X,Q,A,E){return X&&(X[Q]||X(L,B))||A[Q].slice(0,E)},F=function(X){return T.s(z%12||12,X,"0")},k=N.meridiem||function(X,Q,A){var E=X<12?"AM":"PM";return A?E.toLowerCase():E},G={YY:String(this.$y).slice(-2),YYYY:this.$y,M:W+1,MM:T.s(W+1,2,"0"),MMM:V(N.monthsShort,W,H,3),MMMM:V(H,W),D:this.$D,DD:T.s(this.$D,2,"0"),d:String(this.$W),dd:V(N.weekdaysMin,this.$W,K,2),ddd:V(N.weekdaysShort,this.$W,K,3),dddd:K[this.$W],H:String(z),HH:T.s(z,2,"0"),h:F(1),hh:F(2),a:k(z,Y,!0),A:k(z,Y,!1),m:String(Y),mm:T.s(Y,2,"0"),s:String(this.$s),ss:T.s(this.$s,2,"0"),SSS:T.s(this.$ms,3,"0"),Z:q};return B.replace(g,function(X,Q){return Q||G[X]||q.replace(":","")})},P.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},P.diff=function(D,L,N){var B,q=T.p(L),z=j(D),Y=(z.utcOffset()-this.utcOffset())*n,W=this-z,K=T.m(this,z);return K=(B={},B[x]=K/12,B[f]=K,B[m]=K/3,B[d]=(W-Y)/6048e5,B[u]=(W-Y)/864e5,B[c]=W/a,B[l]=W/n,B[s]=W/r,B)[q]||W,N?K:T.a(K)},P.daysInMonth=function(){return this.endOf(f).$D},P.$locale=function(){return w[this.$L]},P.locale=function(D,L){if(!D)return this.$L;var N=this.clone(),B=S(D,L,!0);return B&&(N.$L=B),N},P.clone=function(){return T.w(this.$d,this)},P.toDate=function(){return new Date(this.valueOf())},P.toJSON=function(){return this.isValid()?this.toISOString():null},P.toISOString=function(){return this.$d.toISOString()},P.toString=function(){return this.$d.toUTCString()},C}(),I=M.prototype;return j.prototype=I,[["$ms",o],["$s",s],["$m",l],["$H",c],["$W",u],["$M",f],["$y",x],["$D",p]].forEach(function(C){I[C[1]]=function(P){return this.$g(P,C[0],C[1])}}),j.extend=function(C,P){return C.$i||(C(P,M,j),C.$i=!0),j},j.locale=S,j.isDayjs=O,j.unix=function(C){return j(1e3*C)},j.en=w[_],j.Ls=w,j.p={},j})})(dayjs_min);const dayjs=dayjs_min.exports,{useToken:useToken$c}=antd.theme,DatePickerConfig={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"}},DatePicker=e=>{const{ooui:t,showTime:r=!1}=e,{required:n}=t;return jsxRuntime.jsx(Field$1,{required:n,...e,children:jsxRuntime.jsx(DatePickerInput,{ooui:t,showTime:r})})},DatePickerInput=e=>{const{value:t,onChange:r,ooui:n,showTime:a}=e,{id:o,readOnly:s,required:l}=n,{token:c}=useToken$c(),u=l&&!s?{backgroundColor:c.colorPrimaryBg}:void 0,d=a?"time":"date",f=h=>{r==null||r(h)},m=h=>{if(h===null){f(void 0);return}f(h.format(DatePickerConfig[d].dateInternalFormat))},x=a?{defaultValue:dayjs("00:00:00","HH:mm:ss")}:void 0,p=t?dayjs(t,DatePickerConfig[d].dateInternalFormat):void 0;return jsxRuntime.jsx(antd.DatePicker,{style:{width:"100%",...u},placeholder:a?DatePickerConfig.time.placeholder:DatePickerConfig.date.placeholder,disabled:s,id:o,picker:a?"time":"date",showTime:x,format:DatePickerConfig[d].dateDisplayFormat,value:p,onChange:m})},booleanComponentFn=e=>jsxRuntime.jsx("div",{style:{display:"flex",justifyContent:"center",alignContent:"center"},children:jsxRuntime.jsx(antd.Checkbox,{checked:e,disabled:!0})}),many2OneComponentFn=e=>jsxRuntime.jsx(Many2oneTree,{m2oField:e}),textComponentFn=e=>jsxRuntime.jsx(interweave.Interweave,{content:e==null?void 0:e.replace(/(?:\r\n|\r|\n)/g,"<br>")}),dateComponentFn=e=>{if(!e||e&&e.length===0)return jsxRuntime.jsx(jsxRuntime.Fragment,{});const t=dayjs(e,DatePickerConfig.date.dateInternalFormat).format(DatePickerConfig.date.dateDisplayFormat);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t})},dateTimeComponentFn=e=>{if(!e||e&&e.length===0)return jsxRuntime.jsx(jsxRuntime.Fragment,{});const t=dayjs(e,DatePickerConfig.time.dateInternalFormat).format(DatePickerConfig.time.dateDisplayFormat);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t})},one2ManyComponentFn=e=>{const t=Array.isArray(e==null?void 0:e.items)?e==null?void 0:e.items.length:0;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:`( ${t} )`})},progressBarComponentFn=e=>jsxRuntime.jsx(ProgressBarInput,{value:e}),floatTimeComponent=e=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:parseFloatToString(e)}),numberComponent=e=>jsxRuntime.jsx("div",{style:{textAlign:"right"},children:e}),imageComponent=e=>jsxRuntime.jsx("img",{src:`data:image/*;base64,${e}`,style:{maxWidth:"50px",padding:"5px"}}),TagComponent=(e,t,r,n)=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:e?jsxRuntime.jsx(antd.Tag,{color:r.colors[e],children:r.selectionValues.get(e)}):null}),SelectionComponent=(e,t,r,n)=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:r.selectionValues.get(e)}),referenceComponent=(e,t,r,n)=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsx(ReferenceTree,{value:e,selectionValues:r.selectionValues,context:n})});function Tree(e){const{page:t=1,limit:r,total:n,treeView:a,results:o,onRequestPageChange:s,loading:l,onRowClicked:c,showPagination:u=!0,rowSelection:d,scrollY:f,colorsForResults:m={},onChangeSort:x,sorter:p,onFetchChildrenForRecord:h,childField:b,rootTree:g=!1,context:v}=e,[y,$]=React$s.useState([]),[_,w]=React$s.useState([]),O=React$s.useRef(!1),S=React$s.useRef(null),{t:j}=React$s.useContext(LocaleContext$1),T=React$s.useRef(r),M=React$s.useContext(ActionViewContext),{title:I=void 0,setTitle:C=void 0}=(g?M:{})||{};React$s.useEffect(()=>{S.current=getTree(a);const Y=getTableColumns(S.current,{boolean:booleanComponentFn,many2one:many2OneComponentFn,text:textComponentFn,one2many:one2ManyComponentFn,many2many:one2ManyComponentFn,progressbar:progressBarComponentFn,float_time:floatTimeComponent,image:imageComponent,integer:numberComponent,float:numberComponent,reference:referenceComponent,tag:TagComponent,selection:SelectionComponent,date:dateComponentFn,datetime:dateTimeComponentFn},v);w(Y),S.current.string&&I!==S.current.string&&(C==null||C(S.current.string))},[a]),React$s.useEffect(()=>{O.current=!1;const Y=getTableItems(S.current,o);$(Y),T.current=r},[o]);const P=(t-1)*T.current+1,D=P-1+y.length,L=n===void 0?null:n===0?j("no_results"):j("summary").replace("{from}",P==null?void 0:P.toString()).replace("{to}",D==null?void 0:D.toString()).replace("{total}",n==null?void 0:n.toString()),N=()=>!u||a.isExpandable||l?null:n===void 0?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsxs(antd.Row,{align:"bottom",className:"pb-4",children:[jsxRuntime.jsx(antd.Col,{span:12,children:jsxRuntime.jsx(antd.Pagination,{total:n,pageSize:T.current===0?n:T.current,current:t,showSizeChanger:!1,onChange:s})}),jsxRuntime.jsx(antd.Col,{span:12,className:"text-right",children:L})]});function B(){var V;const W=S.current.columns.filter(F=>F.sum!==void 0).map(F=>({label:F.sum,field:F.id}));if(!W||W.length===0)return null;let K=[],H=((V=d==null?void 0:d.selectedRowKeys)==null?void 0:V.length)>0?y.filter(F=>d==null?void 0:d.selectedRowKeys.includes(F.id)):y;return W.forEach(F=>{const k=H.reduce((G,X)=>X[F.field]&&!isNaN(X[F.field])?G+X[F.field]:G,0);K.push(`${F.label}: ${Math.round(k*100)/100}`)}),jsxRuntime.jsx("div",{className:"p-1 pb-0 pl-2 mt-2 ",children:K.join(", ")})}let q,z=f;if(S.current!==null){q=calculateColumnsWidth(_,y,600);const W=S.current;f&&W.columns.some(K=>K.sum!==void 0)&&(z=f-30)}return S.current===null?jsxRuntime.jsx(antd.Spin,{style:{padding:"2rem"}}):jsxRuntime.jsxs("div",{children:[N(),jsxRuntime.jsx(reactFormigaTable.Table,{height:z,columns:q.columns,dataSource:y,loading:l,loadingComponent:jsxRuntime.jsx(antd.Spin,{}),onRowStyle:Y=>{if(m[Y.id])return{color:m[Y.id]}},onRowDoubleClick:c,onRowSelectionChange:d==null?void 0:d.onChange,onChangeSort:x,sorter:p,expandableOpts:h?{expandIcon:AntIcons.PlusSquareOutlined,collapseIcon:AntIcons.MinusSquareOutlined,loadingIcon:AntIcons.LoadingOutlined,onFetchChildrenForRecord:h,childField:b}:void 0}),B()]})}function SearchTree(e,t){const{model:r,formView:n,treeView:a,onRowClicked:o,nameSearch:s,treeScrollY:l,domain:c=[],visible:u=!0,rootTree:d=!1,parentContext:f={},onChangeSelectedRowKeys:m}=e,[x,p]=React$s.useState(!1),[h,b]=React$s.useState(!1),g=React$s.useRef(!1),[v,y]=React$s.useState(),[$,_]=React$s.useState(),[w,O]=React$s.useState(),[S,j]=React$s.useState(),[T,M]=React$s.useState(200),I=React$s.useRef(),{height:C}=useWindowDimensions(),P=React$s.useContext(ContentRootContext),{processAction:D}=P||{},L=React$s.useContext(ActionViewContext),{setResults:N=void 0,setCurrentItemIndex:B=void 0,currentId:q=void 0,results:z=void 0,selectedRowItems:Y=void 0,setSelectedRowItems:W=void 0,searchParams:K=[],setSearchParams:H=void 0,searchVisible:V=!0,setSearchVisible:F=void 0,sorter:k=void 0,setSorter:G=void 0,setTotalItems:X=void 0,setSearchTreeNameSearch:Q=void 0,setTreeIsLoading:A=void 0,searchValues:E={},setSearchValues:U=void 0,limit:J=DEFAULT_SEARCH_LIMIT$1,setLimit:ne=void 0}=(d?L:{})||{},{submit:Z,clear:le,fetchResults:ae,tableRefreshing:ie,searchFilterLoading:de,searchError:ge,page:Re,offset:_e,getResults:ee,requestPageChange:se,changeSort:pe,fetchChildrenForRecord:je,colorsForResults:he,totalItems:Ie}=useSearch({model:v,setSearchTreeNameSearch:Q,setSelectedRowItems:W,setSearchParams:H,setSearchValues:U,searchParams:K,setSearchVisible:F,setTreeIsLoading:A,nameSearch:s,searchNameGetDoneRef:g,context:f,formView:w,treeView:$,sorter:k,setSorter:G,setCurrentItemIndex:B,setResultsActionView:N,resultsActionView:z,domain:c,currentId:q,setActionViewTotalItems:X,limit:J,setLimit:ne});React$s.useImperativeHandle(t,()=>({refreshResults:()=>{g.current=!1,ae()},getFields:()=>$==null?void 0:$.fields,getDomain:()=>c})),React$s.useEffect(()=>{!h||u&&(g.current=!1,ae())},[Re,_e,h,u,s]);const $e=async()=>{b(!1),p(!0),j(void 0),A==null||A(!0);try{await Me(),b(!0)}catch(Ce){j(Ce)}finally{p(!1),A==null||A(!1)}},Me=async()=>{y(r);let Ce=n;n||(Ce=await ConnectionProvider.getHandler().getView({model:r,type:"form",context:f}));let ce=a;a||(ce=await ConnectionProvider.getHandler().getView({model:r,type:"tree",context:f})),O(Ce),_(ce)};React$s.useEffect(()=>{$e()},[r]);const Pe=Ce=>{ne==null||ne(Ce)},Se=async Ce=>{const{id:ce}=Ce;I.current||(I.current=await ConnectionProvider.getHandler().treeButOpen({id:$.view_id,model:v,context:f}));const ye=I.current[0][2];await(D==null?void 0:D({actionData:ye,fields:$.fields,values:{active_id:ce,...Ce},context:f}))},te=async Ce=>{const{id:ce}=Ce;if($!=null&&$.isExpandable){try{await Se(Ce)}catch(ye){showDialog$8(ye)}return}o({id:ce,model:v,formView:w,treeView:$})};function fe(Ce){const ce=ee().filter(ye=>Ce.includes(ye.id));W==null||W(ce),m==null||m(Ce)}function ve(){return $!=null&&$.isExpandable?C-160:C-(T+210)}const ue=()=>!$||!w?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchFilter,{fields:{...$.fields,...w.fields},searchFields:mergeSearchFields([w.search_fields,$.search_fields]),formXml:w.arch,onClear:le,limit:J,offset:_e,isSearching:de,onSubmit:Z,onLimitChange:Pe,setSearchFilterHeight:M,searchError:ge,searchVisible:V,searchValues:E}),jsxRuntime.jsx(Tree,{context:f,total:Ie,limit:J,page:Re,treeView:$,results:ee(),onRequestPageChange:se,loading:ie,onRowClicked:te,scrollY:l||ve(),colorsForResults:he,rowSelection:{selectedRowKeys:Y==null?void 0:Y.map(Ce=>Ce.id),onChange:fe},sorter:k,onChangeSort:pe,onFetchChildrenForRecord:$.isExpandable?je:void 0,childField:$.field_parent,rootTree:d})]}),we=S||ge;return we?jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:we,type:"error",banner:!0}):jsxRuntime.jsx("div",{style:u?{}:{display:"none"},children:x?jsxRuntime.jsx(antd.Spin,{}):ue()})}const SearchTree$1=React$s.forwardRef(SearchTree),SearchModal=e=>{const{visible:t,onCloseModal:r,onSelectValues:n,model:a,nameSearch:o,domain:s,context:l={}}=e,[c,u]=React$s.useState(!1),{modalWidth:d,modalHeight:f}=useWindowDimensions(),{t:m}=React$s.useContext(LocaleContext$1),[x,p]=React$s.useState([]),h=async()=>{await new Promise(y=>setTimeout(y,5)),r()},b=async y=>{const{id:$}=y;n([$])};function g(){if(x.length===0){h();return}n(x)}const v=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchTree$1,{model:a,nameSearch:o,onRowClicked:b,treeScrollY:f*.3,domain:s,parentContext:l,onChangeSelectedRowKeys:y=>{p(y)}}),jsxRuntime.jsx(antd.Divider,{}),jsxRuntime.jsx(antd.Row,{justify:"end",children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.FileAddOutlined,{}),onClick:()=>{u(!0)},children:m("new")}),jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),onClick:()=>{g()},type:"primary",children:m("ok")}),jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CloseOutlined,{}),onClick:h,children:m("cancel")})]})})]});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Modal,{title:m("search"),centered:!0,width:d,open:t&&!c,closable:!0,onCancel:h,footer:null,destroyOnClose:!0,maskClosable:!1,children:v()}),jsxRuntime.jsx(FormModal,{model:a,visible:c,parentContext:l,onSubmitSucceed:y=>{u(!1),h(),n([y])},onCancel:()=>{u(!1),h()}})]})},{error}=antd.Modal,showDialog$3=e=>{error({title:"Error",icon:jsxRuntime.jsx(AntIcons.ExclamationCircleOutlined,{}),centered:!0,content:e})},{defaultAlgorithm,defaultSeed}=antd.theme,mapToken=defaultAlgorithm(defaultSeed),Many2one=e=>{const{ooui:t}=e,{required:r}=t,n=async(a,o)=>{if(!o)throw new Error;if(!Array.isArray(o))throw new Error;if(Array.isArray(o)&&!o[0])throw new Error};return jsxRuntime.jsx(Field$1,{required:r,type:"array",validator:n,...e,children:jsxRuntime.jsx(Many2oneInput,{ooui:t})})},Many2oneInput=e=>{const{value:t,onChange:r,ooui:n}=e,{required:a,relation:o,readOnly:s,context:l,id:c,domain:u}=n,d=a&&!s?{backgroundColor:mapToken.colorPrimaryBg}:void 0,[f,m]=React$s.useState(!1),[x,p]=React$s.useState(!1),[h,b]=React$s.useState(!1),[g,v]=React$s.useState(),y=React$s.useRef(!1),[$,_]=React$s.useState(""),w=React$s.useRef(),O=React$s.useContext(FormContext$2),{domain:S,getValues:j,getFields:T,getContext:M,elementHasLostFocus:I}=O||{},C=React$s.useRef([]),[P,D]=React$s.useState([]),L=t&&t[0]||void 0,N=t&&t[1]||"";React$s.useEffect(()=>{!Array.isArray(t)&&t&&W(t)},[t]),React$s.useEffect(()=>{L&&N.length===0?W(L):L&&N.length>0?_(N):!L&&!N&&_(w.current||"")},[t]);const B=F=>{r==null||r(F),I==null||I()},q=F=>{w.current=F.target.value,B([void 0,""])},z=async()=>{if(!h&&$!==N){if(await new Promise(F=>setTimeout(F,100)),y.current){B([void 0,""]);return}b(!0);try{if(C.current&&C.current.length>0)Y(w.current);else{const F=await ConnectionProvider.getHandler().nameSearch({model:o,payload:w.current,context:{...M==null?void 0:M(),...l}});F.length===1?(w.current=void 0,B(F[0])):Y(w.current)}}catch(F){showDialog$3(F)}finally{b(!1)}}},Y=async F=>{if(await K(),C.current&&C.current.length>0){const k=await ConnectionProvider.getHandler().searchAllIds({params:C.current,model:o,context:{...M==null?void 0:M(),...l},totalItems:2});k.length===1?W(k[0]):(v(F),m(!0));return}v(F),m(!0)},W=async F=>{b(!0);try{const k=await ConnectionProvider.getHandler().execute({action:"name_get",payload:[F],model:o,context:{...M==null?void 0:M(),...l}});B([F,k[0][1]])}catch(k){showDialog$3(k)}finally{b(!1)}};async function K(){u&&(C.current=await ConnectionProvider.getHandler().evalDomain({domain:u,values:transformPlainMany2Ones({fields:T(),values:j()}),fields:T(),context:M()})),S&&S.length>0&&(C.current=C.current.concat(ooui.transformDomainForChildWidget({domain:S,widgetFieldName:c}))),D(C.current)}async function H(F){F.keyCode===13?(F.preventDefault(),F.stopPropagation(),await z()):F.code==="Backspace"&&L!==void 0&&(F.preventDefault(),F.stopPropagation(),B([void 0,""]))}const V=a&&!s?RequiredInput:antd.Input;return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"auto",children:jsxRuntime.jsx(V,{type:"text",value:$,disabled:s,onChange:q,style:d,onBlur:z,onKeyDown:H,suffix:jsxRuntime.jsx(Many2oneSuffix,{id:L,model:o,context:{...M==null?void 0:M(),...l}})})}),jsxRuntime.jsx(antd.Col,{flex:"32px",style:{paddingRight:0},children:jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.FolderOpenOutlined,{}),disabled:L===void 0||N===""||$===void 0,onClick:()=>{p(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"32px",style:{paddingLeft:0},children:jsxRuntime.jsx(antd.Button,{icon:h?jsxRuntime.jsx(AntIcons.LoadingOutlined,{}):jsxRuntime.jsx(AntIcons.SearchOutlined,{}),disabled:s||h,onClick:()=>{y.current=!0,Y(N)},style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},tabIndex:-1})}),jsxRuntime.jsx(SearchModal,{model:o,domain:P,context:{...M==null?void 0:M(),...l},visible:f,nameSearch:L?void 0:g,onSelectValues:F=>{m(!1),W(F[0]),y.current=!1,w.current=void 0},onCloseModal:()=>{m(!1),y.current=!1}}),jsxRuntime.jsx(FormModal,{model:o,parentContext:{...M==null?void 0:M(),...l},id:t&&t[0],visible:x,onSubmitSucceed:F=>{p(!1),W(F)},onCancel:()=>{p(!1)},mustClearAfterSave:!0,readOnly:s})]})},RequiredInput=styled__default.default(antd.Input)`
182
182
  .ant-input {
183
183
  background-color: ${mapToken.colorPrimaryBg};
184
184
  }
@@ -246,6 +246,6 @@ html body {
246
246
  ${t}-edit,
247
247
  ${t}-copy
248
248
  `]:Object.assign(Object.assign({},(0,_style$2.operationUnit)(e)),{marginInlineStart:e.marginXXS})}),(0,_mixins.getEditableStyles)(e)),(0,_mixins.getCopyableStyles)(e)),(0,_mixins.getEllipsisStyles)()),{"&-rtl":{direction:"rtl"}})}};var _default$7=(0,_internal.genComponentStyleHook)("Typography",e=>[genTypographyStyle(e)],{sizeMarginHeadingVerticalStart:"1.2em",sizeMarginHeadingVerticalEnd:"0.5em"});style.default=_default$7;var _interopRequireWildcard$7=interopRequireWildcard.exports.default,_interopRequireDefault$5=interopRequireDefault.exports.default;Object.defineProperty(Editable$1,"__esModule",{value:!0}),Editable$1.default=void 0;var _EnterOutlined=_interopRequireDefault$5(EnterOutlined$3.exports),_classnames$2=_interopRequireDefault$5(classnames.exports),_KeyCode=_interopRequireDefault$5(KeyCode$1),React$7=_interopRequireWildcard$7(React__default.default),_TextArea=_interopRequireDefault$5(TextArea$3),_reactNode=reactNode,_style$1=_interopRequireDefault$5(style);const Editable=e=>{let{prefixCls:t,"aria-label":r,className:n,style:a,direction:o,maxLength:s,autoSize:l=!0,value:c,onSave:u,onCancel:d,onEnd:f,component:m,enterIcon:x=React$7.createElement(_EnterOutlined.default,null)}=e;const p=React$7.useRef(null),h=React$7.useRef(!1),b=React$7.useRef(),[g,v]=React$7.useState(c);React$7.useEffect(()=>{v(c)},[c]),React$7.useEffect(()=>{if(p.current&&p.current.resizableTextArea){const{textArea:P}=p.current.resizableTextArea;P.focus();const{length:D}=P.value;P.setSelectionRange(D,D)}},[]);const y=P=>{let{target:D}=P;v(D.value.replace(/[\n\r]/g,""))},$=()=>{h.current=!0},_=()=>{h.current=!1},w=P=>{let{keyCode:D}=P;h.current||(b.current=D)},O=()=>{u(g.trim())},S=P=>{let{keyCode:D,ctrlKey:L,altKey:N,metaKey:B,shiftKey:q}=P;b.current===D&&!h.current&&!L&&!N&&!B&&!q&&(D===_KeyCode.default.ENTER?(O(),f==null||f()):D===_KeyCode.default.ESC&&d())},j=()=>{O()},T=m?`${t}-${m}`:"",[M,I]=(0,_style$1.default)(t),C=(0,_classnames$2.default)(t,`${t}-edit-content`,{[`${t}-rtl`]:o==="rtl"},n,T,I);return M(React$7.createElement("div",{className:C,style:a},React$7.createElement(_TextArea.default,{ref:p,maxLength:s,value:g,onChange:y,onKeyDown:w,onKeyUp:S,onCompositionStart:$,onCompositionEnd:_,onBlur:j,"aria-label":r,rows:1,autoSize:l}),x!==null?(0,_reactNode.cloneElement)(x,{className:`${t}-edit-content-confirm`}):null))};var _default$6=Editable;Editable$1.default=_default$6;var useMergedConfig$1={},_interopRequireWildcard$6=interopRequireWildcard.exports.default;Object.defineProperty(useMergedConfig$1,"__esModule",{value:!0}),useMergedConfig$1.default=useMergedConfig;var React$6=_interopRequireWildcard$6(React__default.default);function useMergedConfig(e,t){return React$6.useMemo(()=>{const r=!!e;return[r,Object.assign(Object.assign({},t),r&&typeof e=="object"?e:null)]},[e])}var useUpdatedEffect$1={},_interopRequireWildcard$5=interopRequireWildcard.exports.default;Object.defineProperty(useUpdatedEffect$1,"__esModule",{value:!0}),useUpdatedEffect$1.default=void 0;var React$5=_interopRequireWildcard$5(React__default.default);const useUpdatedEffect=(e,t)=>{const r=React$5.useRef(!1);React$5.useEffect(()=>{r.current?e():r.current=!0},t)};var _default$5=useUpdatedEffect;useUpdatedEffect$1.default=_default$5;var Typography$1={},_interopRequireWildcard$4=interopRequireWildcard.exports.default,_interopRequireDefault$4=interopRequireDefault.exports.default;Object.defineProperty(Typography$1,"__esModule",{value:!0}),Typography$1.default=void 0;var _classnames$1=_interopRequireDefault$4(classnames.exports),_ref=ref,React$4=_interopRequireWildcard$4(React__default.default),_configProvider$1=configProvider,_warning$1=_interopRequireDefault$4(warning$3),_style=_interopRequireDefault$4(style),__rest$2=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Typography=React$4.forwardRef((e,t)=>{var{prefixCls:r,component:n="article",className:a,rootClassName:o,setContentRef:s,children:l,direction:c}=e,u=__rest$2(e,["prefixCls","component","className","rootClassName","setContentRef","children","direction"]);const{getPrefixCls:d,direction:f}=React$4.useContext(_configProvider$1.ConfigContext),m=c!=null?c:f;let x=t;s&&(process.env.NODE_ENV!=="production"&&(0,_warning$1.default)(!1,"Typography","`setContentRef` is deprecated. Please use `ref` instead."),x=(0,_ref.composeRef)(t,s));const p=d("typography",r),[h,b]=(0,_style.default)(p),g=(0,_classnames$1.default)(p,{[`${p}-rtl`]:m==="rtl"},a,o,b);return h(React$4.createElement(n,Object.assign({className:g,ref:x},u),l))});process.env.NODE_ENV!=="production"&&(Typography.displayName="Typography");var _default$4=Typography;Typography$1.default=_default$4;var Ellipsis$1={},_interopRequireWildcard$3=interopRequireWildcard.exports.default,_interopRequireDefault$3=interopRequireDefault.exports.default;Object.defineProperty(Ellipsis$1,"__esModule",{value:!0}),Ellipsis$1.default=void 0;var _toArray$1=_interopRequireDefault$3(toArray$2),_useLayoutEffect$1=_interopRequireDefault$3(useLayoutEffect$1),React$3=_interopRequireWildcard$3(React__default.default);function cuttable(e){const t=typeof e;return t==="string"||t==="number"}function getNodesLen(e){let t=0;return e.forEach(r=>{cuttable(r)?t+=String(r).length:t+=1}),t}function sliceNodes(e,t){let r=0;const n=[];for(let a=0;a<e.length;a+=1){if(r===t)return n;const o=e[a],l=cuttable(o)?String(o).length:1,c=r+l;if(c>t){const u=t-r;return n.push(String(o).slice(0,u)),n}n.push(o),r=c}return e}const NONE=0,PREPARE=1,WALKING=2,DONE_WITH_ELLIPSIS=3,DONE_WITHOUT_ELLIPSIS=4,Ellipsis=e=>{let{enabledMeasure:t,children:r,text:n,width:a,fontSize:o,rows:s,onEllipsis:l}=e;const[[c,u,d],f]=React$3.useState([0,0,0]),[m,x]=React$3.useState(NONE),[p,h]=React$3.useState(0),b=React$3.useRef(null),g=React$3.useRef(null),v=React$3.useMemo(()=>(0,_toArray$1.default)(n),[n]),y=React$3.useMemo(()=>getNodesLen(v),[v]),$=React$3.useMemo(()=>!t||m!==DONE_WITH_ELLIPSIS?r(v,!1):r(sliceNodes(v,u),u<y),[t,m,r,v,u,y]);(0,_useLayoutEffect$1.default)(()=>{t&&a&&o&&y&&(x(PREPARE),f([0,Math.ceil(y/2),y]))},[t,a,o,n,y,s]),(0,_useLayoutEffect$1.default)(()=>{var S;m===PREPARE&&h(((S=b.current)===null||S===void 0?void 0:S.offsetHeight)||0)},[m]),(0,_useLayoutEffect$1.default)(()=>{var S,j;if(p){if(m===PREPARE){const T=((S=g.current)===null||S===void 0?void 0:S.offsetHeight)||0,M=s*p;T<=M?(x(DONE_WITHOUT_ELLIPSIS),l(!1)):x(WALKING)}else if(m===WALKING)if(c!==d){const T=((j=g.current)===null||j===void 0?void 0:j.offsetHeight)||0,M=s*p;let I=c,C=d;c===d-1?C=c:T<=M?I=u:C=u;const P=Math.ceil((I+C)/2);f([I,P,C])}else x(DONE_WITH_ELLIPSIS),l(!0)}},[m,c,d,s,p]);const _={width:a,whiteSpace:"normal",margin:0,padding:0},w=(S,j,T)=>React$3.createElement("span",{"aria-hidden":!0,ref:j,style:Object.assign({position:"fixed",display:"block",left:0,top:0,zIndex:-9999,visibility:"hidden",pointerEvents:"none",fontSize:Math.floor(o/2)*2},T)},S),O=(S,j)=>{const T=sliceNodes(v,S);return w(r(T,!0),j,_)};return React$3.createElement(React$3.Fragment,null,$,t&&m!==DONE_WITH_ELLIPSIS&&m!==DONE_WITHOUT_ELLIPSIS&&React$3.createElement(React$3.Fragment,null,w("lg",b,{wordBreak:"keep-all",whiteSpace:"nowrap"}),m===PREPARE?w(r(v,!1),g,_):O(u,g)))};process.env.NODE_ENV!=="production"&&(Ellipsis.displayName="Ellipsis");var _default$3=Ellipsis;Ellipsis$1.default=_default$3;var EllipsisTooltip$1={},_interopRequireDefault$2=interopRequireDefault.exports.default,_interopRequireWildcard$2=interopRequireWildcard.exports.default;Object.defineProperty(EllipsisTooltip$1,"__esModule",{value:!0}),EllipsisTooltip$1.default=void 0;var React$2=_interopRequireWildcard$2(React__default.default),_tooltip$1=_interopRequireDefault$2(tooltip);const EllipsisTooltip=e=>{let{enabledEllipsis:t,isEllipsis:r,children:n,tooltipProps:a}=e;return!(a!=null&&a.title)||!t?n:React$2.createElement(_tooltip$1.default,Object.assign({open:r?void 0:!1},a),n)};process.env.NODE_ENV!=="production"&&(EllipsisTooltip.displayName="EllipsisTooltip");var _default$2=EllipsisTooltip;EllipsisTooltip$1.default=_default$2;var _interopRequireWildcard$1=interopRequireWildcard.exports.default,_interopRequireDefault$1=interopRequireDefault.exports.default;Object.defineProperty(Base$1,"__esModule",{value:!0}),Base$1.default=void 0;var _CheckOutlined=_interopRequireDefault$1(CheckOutlined$3.exports),_CopyOutlined=_interopRequireDefault$1(CopyOutlined$3.exports),_EditOutlined=_interopRequireDefault$1(EditOutlined$3.exports),_classnames=_interopRequireDefault$1(classnames.exports),_copyToClipboard=_interopRequireDefault$1(copyToClipboard),_rcResizeObserver=_interopRequireDefault$1(require$$7),_toArray=_interopRequireDefault$1(toArray$2),_useLayoutEffect=_interopRequireDefault$1(useLayoutEffect$1),_useMergedState=_interopRequireDefault$1(useMergedState$1),_omit=_interopRequireDefault$1(omit$1),_ref3=ref,React$1=_interopRequireWildcard$1(React__default.default),_configProvider=configProvider,_useLocale=_interopRequireDefault$1(useLocale$1),_tooltip=_interopRequireDefault$1(tooltip),_styleChecker=styleChecker$1,_transButton=_interopRequireDefault$1(transButton),_Editable=_interopRequireDefault$1(Editable$1),_useMergedConfig=_interopRequireDefault$1(useMergedConfig$1),_useUpdatedEffect=_interopRequireDefault$1(useUpdatedEffect$1),_Typography=_interopRequireDefault$1(Typography$1),_Ellipsis=_interopRequireDefault$1(Ellipsis$1),_EllipsisTooltip=_interopRequireDefault$1(EllipsisTooltip$1),__rest$1=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function wrapperDecorations(e,t){let{mark:r,code:n,underline:a,delete:o,strong:s,keyboard:l,italic:c}=e,u=t;function d(f,m){!m||(u=React$1.createElement(f,{},u))}return d("strong",s),d("u",a),d("del",o),d("code",n),d("mark",r),d("kbd",l),d("i",c),u}function getNode(e,t,r){return e===!0||e===void 0?t:e||r&&t}function toList(e){return e===!1?[!1,!1]:Array.isArray(e)?e:[e]}const ELLIPSIS_STR="...",Base=React$1.forwardRef((e,t)=>{var r,n,a;const{prefixCls:o,className:s,style:l,type:c,disabled:u,children:d,ellipsis:f,editable:m,copyable:x,component:p,title:h}=e,b=__rest$1(e,["prefixCls","className","style","type","disabled","children","ellipsis","editable","copyable","component","title"]),{getPrefixCls:g,direction:v}=React$1.useContext(_configProvider.ConfigContext),[y]=(0,_useLocale.default)("Text"),$=React$1.useRef(null),_=React$1.useRef(null),w=g("typography",o),O=(0,_omit.default)(b,["mark","code","delete","underline","strong","keyboard","italic"]),[S,j]=(0,_useMergedConfig.default)(m),[T,M]=(0,_useMergedState.default)(!1,{value:j.editing}),{triggerType:I=["icon"]}=j,C=ce=>{var ye;ce&&((ye=j.onStart)===null||ye===void 0||ye.call(j)),M(ce)};(0,_useUpdatedEffect.default)(()=>{var ce;T||(ce=_.current)===null||ce===void 0||ce.focus()},[T]);const P=ce=>{ce==null||ce.preventDefault(),C(!0)},D=ce=>{var ye;(ye=j.onChange)===null||ye===void 0||ye.call(j,ce),C(!1)},L=()=>{var ce;(ce=j.onCancel)===null||ce===void 0||ce.call(j),C(!1)},[N,B]=(0,_useMergedConfig.default)(x),[q,z]=React$1.useState(!1),Y=React$1.useRef(),W={};B.format&&(W.format=B.format);const K=()=>{window.clearTimeout(Y.current)},H=ce=>{var ye;ce==null||ce.preventDefault(),ce==null||ce.stopPropagation(),(0,_copyToClipboard.default)(B.text||String(d)||"",W),z(!0),K(),Y.current=window.setTimeout(()=>{z(!1)},3e3),(ye=B.onCopy)===null||ye===void 0||ye.call(B,ce)};React$1.useEffect(()=>K,[]);const[V,F]=React$1.useState(!1),[k,G]=React$1.useState(!1),[X,Q]=React$1.useState(!1),[A,E]=React$1.useState(!1),[U,J]=React$1.useState(!1),[ne,Z]=React$1.useState(!0),[le,ae]=(0,_useMergedConfig.default)(f,{expandable:!1}),ie=le&&!X,{rows:de=1}=ae,ge=React$1.useMemo(()=>!ie||ae.suffix!==void 0||ae.onEllipsis||ae.expandable||S||N,[ie,ae,S,N]);(0,_useLayoutEffect.default)(()=>{le&&!ge&&(F((0,_styleChecker.isStyleSupport)("webkitLineClamp")),G((0,_styleChecker.isStyleSupport)("textOverflow")))},[ge,le]);const Re=React$1.useMemo(()=>ge?!1:de===1?k:V,[ge,k,V]),_e=ie&&(Re?U:A),ee=ie&&de===1&&Re,se=ie&&de>1&&Re,pe=ce=>{var ye;Q(!0),(ye=ae.onExpand)===null||ye===void 0||ye.call(ae,ce)},[je,he]=React$1.useState(0),[Ie,$e]=React$1.useState(0),Me=(ce,ye)=>{let{offsetWidth:Ae}=ce;var Te;he(Ae),$e(parseInt((Te=window.getComputedStyle)===null||Te===void 0?void 0:Te.call(window,ye).fontSize,10)||0)},Pe=ce=>{var ye;E(ce),A!==ce&&((ye=ae.onEllipsis)===null||ye===void 0||ye.call(ae,ce))};React$1.useEffect(()=>{const ce=$.current;if(le&&Re&&ce){const ye=se?ce.offsetHeight<ce.scrollHeight:ce.offsetWidth<ce.scrollWidth;U!==ye&&J(ye)}},[le,Re,d,se,ne]),React$1.useEffect(()=>{const ce=$.current;if(typeof IntersectionObserver>"u"||!ce||!Re||!ie)return;const ye=new IntersectionObserver(()=>{Z(!!ce.offsetParent)});return ye.observe(ce),()=>{ye.disconnect()}},[Re,ie]);let Se={};ae.tooltip===!0?Se={title:(r=j.text)!==null&&r!==void 0?r:d}:React$1.isValidElement(ae.tooltip)?Se={title:ae.tooltip}:typeof ae.tooltip=="object"?Se=Object.assign({title:(n=j.text)!==null&&n!==void 0?n:d},ae.tooltip):Se={title:ae.tooltip};const te=React$1.useMemo(()=>{const ce=ye=>["string","number"].includes(typeof ye);if(!(!le||Re)){if(ce(j.text))return j.text;if(ce(d))return d;if(ce(h))return h;if(ce(Se.title))return Se.title}},[le,Re,h,Se.title,_e]);if(T)return React$1.createElement(_Editable.default,{value:(a=j.text)!==null&&a!==void 0?a:typeof d=="string"?d:"",onSave:D,onCancel:L,onEnd:j.onEnd,prefixCls:w,className:s,style:l,direction:v,component:p,maxLength:j.maxLength,autoSize:j.autoSize,enterIcon:j.enterIcon});const fe=()=>{const{expandable:ce,symbol:ye}=ae;if(!ce)return null;let Ae;return ye?Ae=ye:Ae=y==null?void 0:y.expand,React$1.createElement("a",{key:"expand",className:`${w}-expand`,onClick:pe,"aria-label":y==null?void 0:y.expand},Ae)},ve=()=>{if(!S)return;const{icon:ce,tooltip:ye}=j,Ae=(0,_toArray.default)(ye)[0]||(y==null?void 0:y.edit),Te=typeof Ae=="string"?Ae:"";return I.includes("icon")?React$1.createElement(_tooltip.default,{key:"edit",title:ye===!1?"":Ae},React$1.createElement(_transButton.default,{ref:_,className:`${w}-edit`,onClick:P,"aria-label":Te},ce||React$1.createElement(_EditOutlined.default,{role:"button"}))):null},ue=()=>{if(!N)return;const{tooltips:ce,icon:ye}=B,Ae=toList(ce),Te=toList(ye),ke=q?getNode(Ae[1],y==null?void 0:y.copied):getNode(Ae[0],y==null?void 0:y.copy),Be=q?y==null?void 0:y.copied:y==null?void 0:y.copy,Je=typeof ke=="string"?ke:Be;return React$1.createElement(_tooltip.default,{key:"copy",title:ke},React$1.createElement(_transButton.default,{className:(0,_classnames.default)(`${w}-copy`,q&&`${w}-copy-success`),onClick:H,"aria-label":Je},q?getNode(Te[1],React$1.createElement(_CheckOutlined.default,null),!0):getNode(Te[0],React$1.createElement(_CopyOutlined.default,null),!0)))},we=ce=>[ce&&fe(),ve(),ue()],Ce=ce=>[ce&&React$1.createElement("span",{"aria-hidden":!0,key:"ellipsis"},ELLIPSIS_STR),ae.suffix,we(ce)];return React$1.createElement(_rcResizeObserver.default,{onResize:Me,disabled:!ie||Re},ce=>React$1.createElement(_EllipsisTooltip.default,{tooltipProps:Se,enabledEllipsis:ie,isEllipsis:_e},React$1.createElement(_Typography.default,Object.assign({className:(0,_classnames.default)({[`${w}-${c}`]:c,[`${w}-disabled`]:u,[`${w}-ellipsis`]:le,[`${w}-single-line`]:ie&&de===1,[`${w}-ellipsis-single-line`]:ee,[`${w}-ellipsis-multiple-line`]:se},s),prefixCls:o,style:Object.assign(Object.assign({},l),{WebkitLineClamp:se?de:void 0}),component:p,ref:(0,_ref3.composeRef)(ce,$,t),direction:v,onClick:I.includes("text")?P:void 0,"aria-label":te==null?void 0:te.toString(),title:h},O),React$1.createElement(_Ellipsis.default,{enabledMeasure:ie&&!Re,text:d,rows:de,width:je,fontSize:Ie,onEllipsis:Pe},(ye,Ae)=>{let Te=ye;return ye.length&&Ae&&te&&(Te=React$1.createElement("span",{key:"show-content","aria-hidden":!0},Te)),wrapperDecorations(e,React$1.createElement(React$1.Fragment,null,Te,Ce(Ae)))}))))});var _default$1=Base;Base$1.default=_default$1;var _interopRequireDefault=interopRequireDefault.exports.default,_interopRequireWildcard=interopRequireWildcard.exports.default;Object.defineProperty(Title$3,"__esModule",{value:!0});var default_1=Title$3.default=void 0,React=_interopRequireWildcard(React__default.default),_warning=_interopRequireDefault(warning$3),_Base=_interopRequireDefault(Base$1),__rest=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const TITLE_ELE_LIST=[1,2,3,4,5],Title$2=React.forwardRef((e,t)=>{const{level:r=1}=e,n=__rest(e,["level"]);let a;return TITLE_ELE_LIST.includes(r)?a=`h${r}`:(process.env.NODE_ENV!=="production"&&(0,_warning.default)(!1,"Typography.Title","Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version."),a="h1"),React.createElement(_Base.default,Object.assign({ref:t},n,{component:a}))});var _default=Title$2;default_1=Title$3.default=_default;const{getValueForOperator}=ooui.graphProcessor,fontGrowFactor=.7,minFontSize=30,GraphIndicator=e=>{const{model:t,domain:r,context:n,colorCondition:a,totalDomain:o,showPercent:s=!1,icon:l,suffix:c,field:u,operator:d,manualIds:f}=e,[m,x]=React$s.useState(!1),[p,h]=React$s.useState(),[b,g]=React$s.useState(),[v,y]=React$s.useState(),[$,_]=React$s.useState(0),[w,O]=React$s.useState(0),[S,j]=React$s.useState(),[T,M]=React$s.useState(),[I,C]=React$s.useState();React$s.useEffect(()=>{L()},[t,a]);async function P({domain:N,isTotal:B}){if(B)return await D({domain:N});if(u&&d){const q=f||await ConnectionProvider.getHandler().searchAllIds({params:N,model:t,context:n}),z=await ConnectionProvider.getHandler().readObjects({model:t,ids:q,fieldsToRetrieve:[u],context:n});return getValueForOperator({values:z.map(Y=>Y[u]),operator:d})}else return f?f.length:await ConnectionProvider.getHandler().searchCount({model:t,params:N,context:n})}async function D({domain:N}){if(u&&d){const B=await ConnectionProvider.getHandler().searchAllIds({params:N,model:t,context:n}),q=await ConnectionProvider.getHandler().readObjects({model:t,ids:B,fieldsToRetrieve:[u],context:n});return getValueForOperator({values:q.map(z=>z[u]),operator:d})}else return await ConnectionProvider.getHandler().searchCount({model:t,params:N,context:n})}async function L(){x(!0);let N,B;try{const q=await P({domain:r,isTotal:!1});if(h(q),o){const z=await ConnectionProvider.getHandler().evalDomain({domain:o,values:{},context:n});N=await P({domain:z,isTotal:!0}),y(N)}if(N?(B=Math.round(q/N*100*100)/100,g(B)):g(0),a){const z=await ConnectionProvider.getHandler().parseCondition({condition:a,values:{value:q,percent:B},context:n});j(z)}if(l)if(l.indexOf(":")!==-1){const z=await ConnectionProvider.getHandler().parseCondition({condition:l,values:{value:q,percent:B},context:n});M(z)}else M(l)}catch(q){C(JSON.stringify(q))}x(!1)}return I?jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:I,type:"error",banner:!0}):m?jsxRuntime.jsx("div",{style:{padding:"1rem"},children:jsxRuntime.jsx(AntIcons.LoadingOutlined,{style:{height:"12px"}})}):jsxRuntime.jsx(Measure__default.default,{bounds:!0,onResize:N=>{var B,q;_((B=N.bounds)==null?void 0:B.height),O((q=N.bounds)==null?void 0:q.width)},children:({measureRef:N})=>s?jsxRuntime.jsx(PercentageIndicator,{value:p,total:v,percent:b,measureRef:N,height:$,width:w,color:S,icon:T,suffix:c}):jsxRuntime.jsx(CommonIndicator,{value:p,total:v,measureRef:N,height:$,width:w,color:S,icon:T,suffix:c})})};function getTextWidth(e,t){const n=document.createElement("canvas").getContext("2d");return n.font=t||getComputedStyle(document.body).font,n.measureText(e).width}function CommonIndicator({measureRef:e,width:t,height:r,total:n,value:a,color:o,icon:s,suffix:l}){let c=r*fontGrowFactor<minFontSize?minFontSize:r*fontGrowFactor;const u=a==null?void 0:a.toLocaleString("es-ES",{useGrouping:!0});let d=n?`${u}/${n}`:`${u}`;l&&(d+=" "+l);let f=getTextWidth(d,`bold ${Math.floor(c*1.03)}px sans-serif`);s&&(f=f*2),f>=t*.85&&(c=t*.85/f*c);const m=s&&iconMapper(s);return jsxRuntime.jsx("div",{ref:e,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:jsxRuntime.jsxs(default_1,{style:{fontSize:c,margin:0,color:o},children:[m&&jsxRuntime.jsx(m,{style:{fontSize:c*.7}}),m?` ${d}`:d]})})}function PercentageIndicator({measureRef:e,height:t,width:r,percent:n,total:a,value:o,color:s,icon:l,suffix:c}){const u=t*.65;let d=u*fontGrowFactor<minFontSize?minFontSize:u*fontGrowFactor;const f=o==null?void 0:o.toLocaleString("es-ES",{useGrouping:!0});let m=a?`${f}/${a==null?void 0:a.toLocaleString("es-ES",{useGrouping:!0})}`:`${f}`;c&&(m+=" "+c);const x=`${n==null?void 0:n.toLocaleString("es-ES",{useGrouping:!0})}%`;let p=getTextWidth(x,`bold ${Math.floor(d*1.03)}px sans-serif`);l&&(p=p*1.5);const h=l&&iconMapper(l);return(p>=r*.85||d*2<u)&&(d=r*.85/p*d),jsxRuntime.jsx("div",{ref:e,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",flexDirection:"column",padding:"0.2rem"},children:jsxRuntime.jsxs(antd.Row,{align:"middle",children:[h&&jsxRuntime.jsx(antd.Col,{style:{fontSize:d*1,color:s,paddingRight:"10px"},children:jsxRuntime.jsx(h,{})}),jsxRuntime.jsxs(antd.Col,{children:[jsxRuntime.jsx(default_1,{style:{fontSize:d*.8,margin:0,color:s},children:h?` ${n}%`:`${n}%`}),jsxRuntime.jsx(default_1,{style:{fontSize:d*.4,margin:0,color:s,textAlign:"center"},children:m})]})]})})}const formatter=e=>t=>{const r=t.value.toLocaleString("es-ES",{useGrouping:!0});return{name:e==="pie"?t.x:t.type,value:r}},axisFormatter=e=>{if(typeof e=="string"&&stringIsValidNumeric(e))return parseFloat(e).toLocaleString("es-ES",{useGrouping:!0});if(isNumber(e))return e.toLocaleString("es-ES",{useGrouping:!0});if(isValidDateString(e)){const t=getDateType(e);return t===null?e:dayjs(e,dateFormats.input[t]).format(dateFormats.output[t])}else return e},stringIsValidNumeric=e=>/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/.test(e),isNumber=e=>typeof e=="number"&&!isNaN(e),DefaultGraphOptions={default:{padding:"auto",xAxis:{tickCount:5,label:{formatter:axisFormatter}},yAxis:{label:{formatter:axisFormatter}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:formatter("default")}},pie:{appendPadding:10,radius:.9,label:{type:"inner",offset:"-30%",content:({percent:e})=>`${(e*100).toFixed(0)}%`,style:{fontSize:14,textAlign:"center"}},legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:formatter("pie")},interactions:[{type:"element-active"}]},barGrouped:{isGroup:!0,legend:{maxWidthRatio:.5,maxItemWidth:1e3},tooltip:{formatter:formatter("barGrouped")},xAxis:{label:{formatter:axisFormatter}},yAxis:{label:{formatter:axisFormatter}},label:{position:"middle",layout:[{type:"interval-adjust-position"},{type:"interval-hide-overlap"},{type:"adjust-color"}]}}};function isValidDateString(e){return typeof e!="string"||e===void 0?!1:new Date(e).toString()!=="Invalid Date"}const dateFormats={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 getDateType(e){for(const t in dateFormats.input)if(dayjs(e,dateFormats.input[t],!0).isValid())return t;return null}const{processGraphData}=ooui.graphProcessor,{getFieldsToRetrieve}=ooui.graphFieldUtils,useGraphData=e=>{const{model:t,domain:r=[],context:n={},xml:a,limit:o,uninformedString:s,manualIds:l}=e,[c,u]=React$s.useState(!1),[d,f]=React$s.useState(),[m,x]=React$s.useState(),[p,h]=React$s.useState(),[b,g]=React$s.useState("line");return useDeepCompareEffect__default.default(()=>{(async()=>{u(!0),f(void 0);const v=ooui.parseGraph(a);g(v.type||"line");const y=getFieldsToRetrieve({ooui:v});let $,_;try{({values:$,fields:_}=await retrieveData({model:t,domain:r,context:n,limit:o,order:v.timerange?v.x.name:null,fields:y,manualIds:l}))}catch(w){f("Error fetching graph data values: "+JSON.stringify(w)),u(!1);return}try{if(!$||!_){f("No values or fields returned"),u(!1);return}h($);const w=processGraphData({ooui:v,values:$,fields:_,options:{uninformedString:s}});x(w)}catch(w){f("Error processing graph data: "+w),u(!1);return}u(!1)})()},[a,t,o,n,r]),{loading:c,error:d,type:b,values:m,evaluatedEntries:p}};async function getFieldsForModel({model:e,context:t,fields:r}){return await ConnectionProvider.getHandler().getFields({model:e,context:t,fields:r})}async function retrieveData({fields:e,model:t,domain:r,context:n,order:a,limit:o,manualIds:s}){const l=await getFieldsForModel({model:t,context:n,fields:e});if(s){let u=await ConnectionProvider.getHandler().readObjects({model:t,ids:s,fieldsToRetrieve:e,context:n});return a&&(u=[...u].sort((d,f)=>d[a]-f[a])),{values:u,fields:l}}return{values:await ConnectionProvider.getHandler().search({model:t,params:r,fields:e,context:n,limit:o,order:a}),fields:l}}const types={line:plots.Line,bar:plots.Column,pie:plots.Pie},GraphChart=e=>{var g;const{model:t,domain:r,context:n,xml:a,limit:o,manualIds:s}=e,{t:l}=React$s.useContext(LocaleContext$1),{error:c,loading:u,values:d,type:f,evaluatedEntries:m}=useGraphData({model:t,xml:a,limit:o,domain:r,context:n,uninformedString:l("uninformed"),manualIds:s});if(c)return jsxRuntime.jsx(antd.Alert,{message:c,type:"error",banner:!0});if(u)return jsxRuntime.jsx(antd.Spin,{});if(!d)return jsxRuntime.jsx(antd.Alert,{message:"No data to display",type:"info"});const{data:x,isGroup:p,isStack:h}=d,b=types[f];return b?jsxRuntime.jsxs("div",{style:{padding:"1rem"},children:[jsxRuntime.jsx("p",{style:{textAlign:"right"},children:`${l("totalRegisters")} ${(g=m==null?void 0:m.length)==null?void 0:g.toLocaleString("es-ES",{useGrouping:!0})}`}),jsxRuntime.jsx(b,{...getGraphProps({type:f,data:x,isGroup:p,isStack:h})})]}):jsxRuntime.jsx(jsxRuntime.Fragment,{children:`Unknown graph type: ${f}`})};function getGraphProps(e){const{type:t,data:r,isGroup:n,isStack:a}=e;let o=DefaultGraphOptions[t];return o||(o=DefaultGraphOptions.default),o.data=r,t==="pie"?(o.colorField="x",o.angleField="value"):(o.xField="x",o.yField="value",o.seriesField="type",o.isGroup=n,a&&(o.isStack=!0,o.groupField="stacked")),o}const GraphComp=(e,t)=>{const{view_id:r,model:n,context:a,domain:o,limit:s,manualIds:l}=e,[c,u]=React$s.useState(!1),[d,f]=React$s.useState(),[m,x]=React$s.useState(),p=React$s.useContext(ActionViewContext),{setGraphIsLoading:h=void 0}=p||{};React$s.useImperativeHandle(t,()=>({refresh:()=>{b()}})),React$s.useEffect(()=>{b()},[r]);async function b(){u(!0),h==null||h(!0);try{const g=await ConnectionProvider.getHandler().getView({model:n,id:r,type:"graph",context:a});x(g.arch);const v=ooui.parseGraph(g.arch);f(v)}catch(g){return console.error(g),jsxRuntime.jsx(jsxRuntime.Fragment,{children:JSON.stringify(g)})}u(!1),h==null||h(!1)}if(c)return jsxRuntime.jsx("div",{style:{width:"100%",display:"flex",height:"20%",justifyContent:"center",alignContent:"center",padding:"1rem"},children:jsxRuntime.jsx(AntIcons.LoadingOutlined,{style:{height:"12px"}})});if(!d)return null;switch(d.type){case"indicatorField":case"indicator":{const g=d,v=g.type==="indicatorField"?{field:g.field,operator:g.operator}:{};return jsxRuntime.jsx(GraphIndicator,{showPercent:g.showPercent,totalDomain:g.totalDomain,colorCondition:g.color,model:n,context:a,domain:o,icon:g.icon,suffix:g.suffix,manualIds:l,...v})}case"line":case"bar":case"pie":return jsxRuntime.jsx(GraphChart,{model:n,context:a,domain:o,xml:m,limit:s,manualIds:l});default:return jsxRuntime.jsx(jsxRuntime.Fragment,{children:`Graph ${d.type} not implemented`})}},Graph=React$s.forwardRef(GraphComp),{confirm:confirm$2}=antd.Modal,showDialog$2=({onOk:e,lang:t})=>{confirm$2({title:tForLang("removeItems",t),icon:jsxRuntime.jsx(AntIcons.ExclamationCircleOutlined,{}),centered:!0,content:tForLang("confirmRemove",t),okText:tForLang("yesConfirmRemove",t),onOk:e,cancelText:tForLang("cancel",t)})},{confirm:confirm$1}=antd.Modal,showDialog$1=({onOk:e,lang:t})=>{confirm$1({title:tForLang("unlinkItems",t),icon:jsxRuntime.jsx(AntIcons.ExclamationCircleOutlined,{}),centered:!0,content:tForLang("confirmUnlink",t),okText:tForLang("yesConfirmUnlink",t),onOk:e,cancelText:tForLang("cancel",t)})},{useToken:useToken$9}=antd.theme,One2manyTopBar=e=>{const{title:t,readOnly:r,onCreateItem:n,onToggleViewMode:a,mode:o,onDelete:s,totalItems:l,currentItemIndex:c,onPreviousItem:u,onNextItem:d,isMany2Many:f,onSearchItem:m,selectedRowKeys:x,showCreateButton:p,showToggleButton:h}=e,{token:b}=useToken$9();function g(){return jsxRuntime.jsx("div",{className:"inline-block w-3"})}function v(){return jsxRuntime.jsx("div",{className:"flex flex-grow h-8 text-white",style:{borderRadius:b.borderRadius,backgroundColor:b.colorPrimaryActive},children:jsxRuntime.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:jsxRuntime.jsx("span",{className:"pl-2 font-bold",children:t})})})}function y(){return jsxRuntime.jsx(ButtonWithTooltip,{tooltip:f?"Unlink":"Delete",icon:f?jsxRuntime.jsx(AntIcons.ApiOutlined,{}):jsxRuntime.jsx(AntIcons.DeleteOutlined,{}),onClick:s,disabled:l===0||r||o!=="form"&&x.length===0})}function $(){let w="_";return l===0?w="_":w=(c+1).toString(),jsxRuntime.jsxs("span",{className:"pl-1 pr-1",children:["(",w,"/",l,")"]})}function _(){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[g(),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:"Previous item",icon:jsxRuntime.jsx(AntIcons.LeftOutlined,{}),onClick:u}),$(),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:"Next item",icon:jsxRuntime.jsx(AntIcons.RightOutlined,{}),onClick:d})]})}return jsxRuntime.jsxs("div",{className:"flex mb-2",children:[v(),jsxRuntime.jsxs("div",{className:"flex-none h-8 pl-2",children:[o!=="graph"&&p&&jsxRuntime.jsx(ButtonWithTooltip,{tooltip:"Create new item",icon:jsxRuntime.jsx(AntIcons.FileAddOutlined,{}),disabled:r,onClick:n}),f&&p&&jsxRuntime.jsx(ButtonWithTooltip,{tooltip:"Search existing item",icon:jsxRuntime.jsx(AntIcons.SearchOutlined,{}),disabled:r,onClick:m}),o!=="graph"&&g(),o!=="graph"&&y(),o==="form"&&_(),g(),h&&jsxRuntime.jsx(ButtonWithTooltip,{tooltip:"Toggle view mode",icon:jsxRuntime.jsx(AntIcons.AlignLeftOutlined,{}),onClick:a})]})]})},ViewObjects={form:ooui.Form,tree:ooui.Tree,graph:Graph};function filterDuplicateItems(e){const t=e.map(n=>n.id);return e.filter((n,a)=>{const{id:o}=n;return!t.includes(o,a+1)})}const One2manyInput=e=>{var Se;const{value:t,onChange:r,ooui:n,views:a}=e,{items:o=[]}=t||{},{currentView:s,setCurrentView:l,itemIndex:c,setItemIndex:u}=React$s.useContext(One2manyContext),d=React$s.useContext(FormContext$2),{activeId:f,getFields:m,getValues:x,getContext:p,domain:h}=d||{},{lang:b,t:g}=React$s.useContext(LocaleContext$1),[v,y]=React$s.useState(!1),[$,_]=React$s.useState(!1),[w,O]=React$s.useState(),[S,j]=React$s.useState(!1),[T,M]=React$s.useState(!1),[I,C]=React$s.useState(),[P,D]=React$s.useState([]),[L,N]=React$s.useState(!1),B=React$s.useRef([]),[q,z]=React$s.useState(),Y=React$s.useRef(),[W,K]=React$s.useState(void 0),{readOnly:H,relation:V,context:F,domain:k}=n,G=n.type==="many2many",{id:X}=n,Q=o.filter(te=>(te.values||te.treeValues)&&te.operation!=="pendingRemove"),A=React$s.useRef();React$s.useEffect(()=>{if(A.current!==s){A.current=s,E();return}E()},[o,s]);const E=React$s.useCallback(()=>{(s==="form"&&o.some(te=>!te.values)||s==="tree"&&o.some(te=>!te.treeValues))&&J()},[o,s]);React$s.useEffect(()=>{Z()},[h]);const U=te=>{var fe,ve;r==null||r({fields:((fe=a.get("form"))==null?void 0:fe.fields)||((ve=a.get("tree"))==null?void 0:ve.fields),items:filterDuplicateItems(te)})},J=async()=>{await ne(),c>Q.length-1&&c!==0&&u(0)},ne=async te=>{var fe,ve,ue;_(!0),y(!1),O(void 0);try{const[we,Ce]=await readObjectValues({treeView:{arch:(fe=a.get("tree"))==null?void 0:fe.arch,fields:(ve=a.get("tree"))==null?void 0:ve.fields},formView:{fields:((ue=a.get("form"))==null?void 0:ue.fields)||{}},model:V,items:o,context:{...p==null?void 0:p(),...F},currentView:te||s});return Y.current||(Y.current=we.map(ce=>ce.id)),(s||te)==="tree"&&Ce&&K(Ce),U(we),we}catch(we){O(we)}finally{_(!1)}};async function Z(){k&&(B.current=await ConnectionProvider.getHandler().evalDomain({domain:k,values:transformPlainMany2Ones({fields:m(),values:x()}),fields:m(),context:p()})),h&&h.length>0&&(B.current=B.current.concat(ooui.transformDomainForChildWidget({domain:h,widgetFieldName:X})))}const le=()=>{const te=Array.from(a.keys()),fe=te[(te.indexOf(s)+1)%te.length];s==="form"?ge(()=>{l(fe)}):l(fe)},ae=()=>{c>0&&(s==="form"?ge(()=>{u(c-1)}):u(c-1))},ie=()=>{const te=Q.length;c<te-1&&(s==="form"?ge(()=>{u(c+1)}):u(c+1))},de=async()=>{const te=Q[c].id,fe=(await ConnectionProvider.getHandler().readObjects({model:V,ids:[te],fields:a.get("form").fields,context:{...p==null?void 0:p(),...F}}))[0],ve=(await ConnectionProvider.getHandler().readObjects({model:V,ids:[te],fields:a.get("tree").fields,context:{...p==null?void 0:p(),...F}}))[0],ue=o.map(we=>we.id===te?{...we,operation:"original",values:fe,treeValues:ve}:we);U(ue)},ge=te=>{v?showDialog$6({lang:b,onOk:()=>{de(),te(),y(!1)}}):te()},Re=()=>{if(G){showDialog$1({lang:b,onOk:()=>{s==="form"?se():pe()}});return}showDialog$2({lang:b,onOk:()=>{s==="form"?se():pe()}})},_e=async()=>{const{inv_field:te}=n;let fe;te&&f&&(fe={[te]:f}),s==="form"?ge(()=>{N(!0),C({defaultValues:fe}),j(!0)}):(N(!0),C({defaultValues:fe}),j(!0))},ee=async()=>{s==="form"?ge(()=>{M(!0)}):M(!0)},se=async()=>{_(!0),y(!1),O(void 0);try{if(Q[c].id>0){const te=o.map(fe=>fe.id===Q[c].id?{...fe,operation:"pendingRemove"}:fe);U(te)}else U(o.filter(te=>te.id!==Q[c].id))}catch(te){O(te)}u(0),_(!1)},pe=async()=>{const te=Q.filter(fe=>P.includes(fe.id));_(!0),y(!1),O(void 0);try{const fe=te.map(ue=>ue.id),ve=o.filter(ue=>!(fe.includes(ue.id)&&ue.id<0)).map(ue=>fe.includes(ue.id)?{...ue,operation:"pendingRemove"}:ue);U(ve)}catch(fe){O(fe)}u(0),_(!1)},je=(te,fe,ve)=>{let ue;if(te)ue=o.map(we=>we.id===te?{id:te,operation:te>0?"pendingUpdate":"pendingCreate",values:{...ve,id:te},treeValues:{...ve,id:te}}:we);else{const we=getNextPendingId(o);ue=o.concat({id:we,operation:"pendingCreate",values:{...ve,id:we},treeValues:{...ve,id:we}})}U(ue),L||j(!1)},he=async te=>{const{id:fe}=te;let ve=o;const ue=o.find(we=>we.id===fe);(ue==null?void 0:ue.values)===void 0&&(ve=await ne("form")),C(ve.find(we=>we.id===fe)),N(!1),j(!0)},Ie=async te=>{_(!0);let fe=o;const ve=te.filter(ue=>!o.find(we=>we.id===ue));try{for(const ue of ve){const we=(await ConnectionProvider.getHandler().readObjects({model:V,ids:[ue],fields:a.get("form").fields,context:{...p==null?void 0:p(),...F}}))[0],Ce=(await ConnectionProvider.getHandler().readObjects({model:V,ids:[ue],fields:a.get("tree").fields,context:{...p==null?void 0:p(),...F}}))[0];fe.push({id:ue,operation:"pendingLink",values:we,treeValues:Ce})}U(fe)}catch(ue){O(ue)}finally{_(!1)}};function $e(){const te=ViewObjects[s];if(s==="graph")return ooui.parseGraph(a.get("graph").arch).string;{const fe=new te(a.get(s).fields);return fe.parse(a.get(s).arch),fe.string}}const Me=()=>{var fe,ve,ue,we;if(s==="form")return Q.length===0?g("noCurrentEntries"):s!==A.current&&o.some(Ce=>!Ce.values)?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(Form$1,{formView:a.get("form"),values:(fe=Q[c])==null?void 0:fe.values,parentContext:{...p==null?void 0:p(),...F},model:V,id:(ve=Q[c])==null?void 0:ve.id,submitMode:"values",onFieldsChange:Ce=>{var Ae;const ce=(Ae=Q[c])==null?void 0:Ae.id,ye=o.map(Te=>Te.id===ce?{...Te,operation:Te.operation==="original"?"pendingUpdate":Te.operation,values:{...Ce,id:ce},treeValues:{...Ce,id:ce}}:Te);U(ye),y(!0)},readOnly:H});let te=[];if(Q.some(Ce=>Ce.treeValues)&&(te=q?sortResults({resultsToSort:Q.map(Ce=>Ce.treeValues),sorter:q,fields:{...a.get("tree").fields,...((ue=a.get("form"))==null?void 0:ue.fields)||{}}}):Q.map(Ce=>Ce.treeValues)),s==="tree")return jsxRuntime.jsx(Tree,{total:Q.length,limit:Q.length,treeView:a.get("tree"),results:te,loading:$,onRowClicked:((we=a.get("form"))==null?void 0:we.fields)!==void 0?he:void 0,showPagination:!1,rowSelection:{selectedRowKeys:P,onChange:D},sorter:q,onChangeSort:z,context:{...p==null?void 0:p(),...F},colorsForResults:W});if(s==="graph"){const Ce=[[`${n.inv_field}`,"=",f]];return jsxRuntime.jsx(Graph,{view_id:a.get("graph").view_id,model:n.relation,domain:Ce,context:{...p==null?void 0:p(),...F},limit:0})}};if(w)return jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:w,type:"error",banner:!0});const Pe=L;return $?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(One2manyTopBar,{mode:s,title:$e(),readOnly:H,isMany2Many:G,formHasChanges:v,totalItems:Q.length,currentItemIndex:c,onDelete:Re,onCreateItem:_e,onToggleViewMode:le,onPreviousItem:ae,onNextItem:ie,onSearchItem:ee,selectedRowKeys:P,showCreateButton:((Se=a.get("form"))==null?void 0:Se.fields)!==void 0,showToggleButton:a.size>1}),Me(),jsxRuntime.jsx(FormModal,{formView:a.get("form"),model:V,id:I==null?void 0:I.id,submitMode:"values",values:I==null?void 0:I.values,defaultValues:I==null?void 0:I.defaultValues,visible:S,onSubmitSucceed:je,parentContext:{...p==null?void 0:p(),...F},onCancel:()=>{N(!1),j(!1)},readOnly:H,mustClearAfterSave:Pe}),jsxRuntime.jsx(SearchModal,{domain:B.current,model:V,context:{...p==null?void 0:p(),...F},visible:T,onSelectValues:async te=>{M(!1),Ie(te)},onCloseModal:()=>{M(!1)}})]})},One2many=e=>{const{ooui:t}=e,{mode:r,relation:n,views:a,required:o,context:s}=t;let l;const[c,u]=React$s.useState(!0),[d,f]=React$s.useState(),[m,x]=React$s.useState(new Map),p=React$s.useContext(FormContext$2),{getContext:h}=p||{};useDeepCompareEffect__default.default(()=>{g()},[t]);const b=async y=>a&&a[y]?a[y]:await ConnectionProvider.getHandler().getView({model:n,type:y,context:{...h==null?void 0:h(),...s}}),g=async()=>{u(!0),f(void 0);try{if(r&&r.length>0){for(const y of r){const $=await b(y);m.set(y,$)}x(m)}else{const y=await b("form"),$=await b("tree");m.set("form",y),m.set("tree",$),x(m)}}catch(y){f(JSON.stringify(y))}finally{u(!1)}};if(r&&r.length>0?l=r[0]:l="tree",c)return jsxRuntime.jsx(antd.Spin,{});if(d)return jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:d,type:"error",banner:!0});const v=async(y,$)=>{if(!$)throw new Error;if(!$.items)throw new Error;if(!Array.isArray($.items))throw new Error;if($.items.length===0)throw new Error};return jsxRuntime.jsx(One2manyProvider,{initialView:l,children:jsxRuntime.jsx(Field$1,{required:o,type:"array",validator:v,...e,children:jsxRuntime.jsx(One2manyInput,{ooui:t,views:m})})})},{useToken:useToken$8}=antd.theme,FloatTime=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,type:"number",...e,children:jsxRuntime.jsx(FloatTimeInput,{ooui:t})})},FloatTimeInput=e=>{const{ooui:t,value:r,onChange:n}=e,{id:a,readOnly:o,required:s}=t,{token:l}=useToken$8(),c=s&&!o?{backgroundColor:l.colorPrimaryBg}:void 0,u=React$s.useRef(),[d,f]=React$s.useState(),m=React$s.useContext(FormContext$2),{elementHasLostFocus:x}=m||{};React$s.useEffect(()=>{f(parseFloatToString(r))},[r]);const p=g=>{n==null||n(g)};function h(g){u.current=g.target.value,f(g.target.value)}async function b(){p(parseStringToFloat(d)),await new Promise(g=>setTimeout(g,300)),x==null||x()}return jsxRuntime.jsx(antd.Input,{value:d,disabled:o,className:"w-full",style:c,id:a,placeholder:"00:00",onChange:h,onBlur:b})};function Group(e){const{ooui:t,showLabel:r=!0,responsiveBehaviour:n}=e,a=iconMapper(t.icon||"");return jsxRuntime.jsx(jsxRuntime.Fragment,{children:(t.label||a)&&r?jsxRuntime.jsx(reactFormigaComponents.FieldSet,{label:t.label,icon:a,children:jsxRuntime.jsx(Container,{container:t.container,responsiveBehaviour:n})}):jsxRuntime.jsx(Container,{container:t.container,responsiveBehaviour:n})})}const{TabPane}=antd.Tabs;function Notebook(e){const{ooui:t,responsiveBehaviour:r}=e,n=t.pages;function a(o){if(o){const s=iconMapper(o);return s&&jsxRuntime.jsx(s,{})}}return jsxRuntime.jsx(antd.Tabs,{defaultActiveKey:"1",tabPosition:t.tabPosition,children:n.filter(o=>!o.invisible).map(o=>jsxRuntime.jsx(TabPane,{tab:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[a(o.icon)," ",o.label]}),children:jsxRuntime.jsx(Group,{ooui:o,showLabel:!1,responsiveBehaviour:r})},o.label))})}const{useToken:useToken$7}=antd.theme,{TextArea}=antd.Input,Text$2=e=>{const{ooui:t}=e,{id:r,readOnly:n,required:a,height:o,translatable:s}=t,{token:l}=useToken$7(),c=a&&!n?{backgroundColor:l.colorPrimaryBg}:void 0,u=React$s.useContext(FormContext$2),{elementHasLostFocus:d}=u||{};return jsxRuntime.jsx(Field$1,{required:a,...e,children:s?jsxRuntime.jsx(TranslatableText,{field:r,height:o,requiredStyle:c}):jsxRuntime.jsx(TextArea,{disabled:n||s,style:{height:o?o+"px":"100%",...c},rows:4,onBlur:d})})},TranslatableText=({value:e,field:t,requiredStyle:r,onChange:n,height:a})=>{const o=React$s.useContext(FormContext$2),{activeId:s,activeModel:l,fetchValues:c,formHasChanges:u,elementHasLostFocus:d}=o||{},[f,m]=React$s.useState(!1),{t:x}=React$s.useContext(LocaleContext$1);return s?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{onClick:()=>{if(u!=null&&u()){showDialog$7(x("saveBeforeTranslate"));return}f||m(!0)},children:jsxRuntime.jsx(TextArea,{value:e,onChange:p=>{n==null||n(p.target.value)},style:{height:a?a+"px":"100%",cursor:"pointer",...r},id:t,disabled:!0,rows:4,onBlur:d})}),jsxRuntime.jsx(TranslationModal,{id:s,model:l,field:t,visible:f,onCloseModal:()=>{m(!1)},onSubmitSucceed:()=>{m(!1),c==null||c()}})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Row,{gutter:8,wrap:!1,children:jsxRuntime.jsx(TextArea,{value:e,onChange:p=>{n==null||n(p.target.value)},style:{height:a?a+"px":"100%",...r},id:t,rows:4,onBlur:d})}),jsxRuntime.jsx(antd.Row,{justify:"end",style:{paddingTop:5},children:jsxRuntime.jsx(ButtonWithTooltip,{tooltip:x("translate"),icon:jsxRuntime.jsx(AntIcons.TranslationOutlined,{}),onClick:async()=>{u!=null&&u()?showDialog$7(x("saveBeforeTranslate")):showDialog$7(x("enterTextBeforeTranslate"))},children:x("translate")})})]})},Separator=e=>{const{ooui:t}=e,{label:r,icon:n}=t,a=iconMapper(n||"");return jsxRuntime.jsx(antd.Divider,{orientation:"left",className:"text-sm",children:(a||r)&&jsxRuntime.jsxs(antd.Space,{children:[a?jsxRuntime.jsx(a,{}):null,r]})})},useExport=({model:e,context:t,locale:r,selectedRegistersToExport:n,domain:a,limit:o,onClose:s})=>{const l=React$s.useRef({}),c=React$s.useRef(new Map),u=React$s.useCallback(async b=>{if(b.selectedKeys===void 0||b.selectedKeys.length===0){showDialog$7(tForLang("selectAtLeastOneField",r));return}let g=a;b.registersAmount==="selected"&&(n==null?void 0:n.length)!==0&&(g=[["id","in",n==null?void 0:n.map($=>$.id)]]);const{datas:v}=await ConnectionProvider.getHandler().exportData({model:e,fields:addIdToRelationFields({keys:b.selectedKeys,fields:l.current}),domain:g,limit:b.registersAmount==="all"?0:o,context:t,format:b.exportType});s(),await new Promise($=>setTimeout($,200));const y=await getMimeType(v);openBase64InNewTab(v,y.mime)},[r,e,a,o,t,s]),d=React$s.useCallback(async()=>{const b=await ConnectionProvider.getHandler().getFields({model:e,context:t,fields:[]});return l.current["/"]=b,convertToExportFields({fields:b})},[e,t,l]),f=React$s.useCallback(async b=>{const v=getFieldDefinition(b,l.current)[getChildKey(b)],y=v.relation,$=await ConnectionProvider.getHandler().getFields({model:y,context:t,fields:[]});for(const[_,w]of Object.entries($))$[_].string=getTitle({parentTitle:v.string,title:w.string});return l.current[b]=$,convertToExportFields({fields:$,parentKey:b})},[l.current,e,t]),m=React$s.useCallback(async()=>{const b=await listPredefinedExports({model:e,context:t}),g=await retrieveKeyFieldsForPredefinedExports({predefinedExports:b,fields:l.current,onGetFieldChilds:f});return{predefinedExports:b.map(y=>({...y,fields:y.fields.map($=>{const _=getChildKey($.key),O=getFieldDefinition($.key,l.current)[_];return{key:$.key,title:O.string}})})),keysWithChilds:g}},[l.current]),x=React$s.useCallback(async b=>{const g=await h("ir.exports"),v=await h("ir.exports.line"),y=await ConnectionProvider.getHandler().create({model:"ir.exports",values:{name:b.name,resource:e},fields:g,context:t});return await Promise.all(b.fields.map(async $=>await ConnectionProvider.getHandler().create({model:"ir.exports.line",values:{name:$.key,export_id:y},fields:v,context:t}))),{...b,id:y}},[]),p=React$s.useCallback(async b=>{await ConnectionProvider.getHandler().delete({model:"ir.exports",ids:[b.id]})},[]),h=React$s.useCallback(async b=>{if(c.current.has(b))return c.current.get(b);const g=ConnectionProvider.getHandler().getFields({model:b,context:t,fields:[]});c.current.set(b,g)},[c,t]);return{onGetFields:d,onGetFieldChilds:f,onExport:u,onGetPredefinedExports:m,onSavePredefinedExport:x,onRemovePredefinedExport:p}},convertToExportFields=({fields:e,parentKey:t})=>{const r=[];for(const n of Object.keys(e)){const a=e[n];if(a.relation&&a.is_function===!0)continue;const o=isRelationField(a);r.push({key:compoundId({key:n,parentKey:t}),title:a.string,tooltip:a.help,required:a.required,isLeaf:!o})}return r},isRelationField=e=>e.type==="many2one"||e.type==="one2many"||e.type==="many2many",compoundId=({parentKey:e,key:t})=>`${e?e+"/":""}${t}`,getParentKey=e=>e.indexOf("/")===-1?e:e.split("/").slice(0,-1).join("/"),getChildKey=e=>{if(e.indexOf("/")===-1)return e;const t=e.split("/");return t[t.length-1]},getFieldDefinition=(e,t)=>e.indexOf("/")===-1?t["/"]:t[getParentKey(e)],getTitle=({title:e,parentTitle:t})=>`${t?t+" \u2192 ":""}${e}`,listPredefinedExports=async({model:e,context:t})=>{const r=await ConnectionProvider.getHandler().search({model:"ir.exports",params:[["resource","=",e]],context:t}),n=r.flatMap(o=>o.export_fields),a=await ConnectionProvider.getHandler().readObjects({model:"ir.exports.line",ids:n,context:t});return r.map(o=>({id:o.id,name:o.name,fields:o.export_fields.map(s=>({key:a.find(c=>c.id===s).name}))}))},getKeysWithoutChildsInFields=({fields:e,keys:t})=>splitAndSortKeys([...new Set(t.filter(r=>{var n,a,o;if(r.indexOf("/")===-1)return!((n=e["/"])!=null&&n[r]);{const s=getParentKey(r);console.log({key:r,parentKey:s,fields:e});const l=(a=e==null?void 0:e[getParentKey(r)])==null?void 0:a[r];return console.log({exists:l}),!((o=e==null?void 0:e[getParentKey(r)])!=null&&o[r])}}).map(r=>getParentKey(r)))]),retrieveKeyFieldsForPredefinedExports=async({predefinedExports:e,fields:t,onGetFieldChilds:r})=>{const n=e.flatMap(s=>s.fields.map(l=>l.key)),a=getKeysWithoutChildsInFields({fields:t,keys:n}),o=[];for(const s of a)o.push({key:s,childs:await r(s)});return o},addIdToRelationFields=({keys:e,fields:t})=>e.map(r=>{const n=getChildKey(r),o=getFieldDefinition(r,t)[n];return isRelationField(o)?`${r}/id`:r}),splitAndSortKeys=e=>{const t=new Map,r=[];for(const n of e){const a=n.split("/");let o="";for(const s of a){const l=o?`${o}/${s}`:s;t.has(l)||(r.push(l),t.set(l,!0)),o=l}}return r.sort((n,a)=>{const o=n.split("/").length,s=a.split("/").length;return o-s}),r},ExportModal=e=>{const{visible:t,locale:r,onClose:n,model:a,context:o,selectedRegistersToExport:s,totalRegisters:l,domain:c,limit:u,visibleRegisters:d}=e,{onExport:f,onGetFieldChilds:m,onGetFields:x,onGetPredefinedExports:p,onSavePredefinedExport:h,onRemovePredefinedExport:b}=useExport({model:a,context:o,domain:c,limit:u,selectedRegistersToExport:s,onClose:n,locale:r});return jsxRuntime.jsx(reactFormigaComponents.ExportModal,{visible:t,locale:r,onSucceed:f,onCancel:n,selectedRegistersToExport:s&&s.length&&s.length>0?s.length:void 0,totalRegisters:l,onGetFieldChilds:m,onGetFields:x,visibleRegisters:d,onGetPredefinedExports:p,onSavePredefinedExport:h,onRemovePredefinedExport:b})},Date$1=e=>{const{ooui:t}=e;return jsxRuntime.jsx(DatePicker,{ooui:t})},DateTime=e=>{const{ooui:t}=e;return jsxRuntime.jsx(DatePicker,{ooui:t,showTime:!0})},Reference=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,...e,children:jsxRuntime.jsx(ReferenceInput,{ooui:t})})},ReferenceInput=e=>{const{value:t,onChange:r,ooui:n}=e,{required:a,selectionValues:o,readOnly:s}=n,l=t==null?void 0:t.split(","),[c,u]=React$s.useState([]),[d,f]=React$s.useState();return React$s.useEffect(()=>{if(!t){f(void 0),u([]);return}const m=t&&l&&l[0],x=t&&l&&l[1]&&parseInt(l[1]);u([x,void 0]),f(m)},[t]),jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"1",children:jsxRuntime.jsx(SelectionInput$1,{ooui:new ooui.Selection({name:"model_selection",selection:o,readOnly:s,required:a}),onChange:m=>{f(m);let x=c[0]||0;m!==d&&(u([]),x=0);const p=`${m},${x}`;p!==t&&(r==null||r(p))},value:d})}),jsxRuntime.jsx(antd.Col,{flex:"3",children:jsxRuntime.jsx(Many2oneInput,{ooui:new ooui.Many2one({name:"object_value",relation:d,readOnly:s,required:a}),value:c,onChange:m=>{u(m);const x=`${d},${m[0]||0}`;x!==t&&(r==null||r(x))}})})]})},{useToken:useToken$6}=antd.theme,Binary=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,...e,children:jsxRuntime.jsx(BinaryInput,{ooui:t})})},BinaryInput=e=>{const{ooui:t,value:r,onChange:n}=e,{readOnly:a,required:o,filenameField:s}=t,{token:l}=useToken$6(),c=o&&!a?{backgroundColor:l.colorPrimaryBg}:void 0,u=React$s.useRef(null),{setFieldValue:d,getFieldValue:f}=React$s.useContext(FormContext$2)||{},{t:m}=React$s.useContext(LocaleContext$1),x=r?getFilesize(r):"",p=y=>{n==null||n(y)};async function h(){const y=await getMimeType(r),$=`data:${y==null?void 0:y.mime};base64,${r}`,_=document.createElement("a"),w=f(s),O=f("name");_.href=$,_.download=w||O,_.click()}async function b(){const y=await getMimeType(r);openBase64InNewTab(r,y.mime)}async function g(y){y.stopPropagation(),y.preventDefault();const $=y.target.files[0],_=await toBase64($);p(_),s&&d(s,$.name)}function v(){d(s,void 0),p(void 0)}return jsxRuntime.jsxs(antd.Row,{gutter:8,children:[jsxRuntime.jsxs(antd.Col,{style:{paddingBottom:5},children:[jsxRuntime.jsx("input",{type:"file",id:"file",ref:u,style:{display:"none"},onChange:g}),jsxRuntime.jsx(antd.Input,{type:"text",disabled:!0,style:c,value:x})]}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.FolderOpenOutlined,{}),disabled:a,onClick:()=>{u.current.click()},children:"Select"}),jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.EyeOutlined,{}),disabled:!r,onClick:b,children:m("open")}),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:m("download"),disabled:!r,onClick:h,icon:jsxRuntime.jsx(AntIcons.DownloadOutlined,{})}),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:m("clear"),disabled:a||!r,onClick:v,icon:jsxRuntime.jsx(AntIcons.ClearOutlined,{})})]})})]})},iconsForViewTypes={tree:jsxRuntime.jsx(AntIcons.TableOutlined,{}),form:jsxRuntime.jsx(AntIcons.FormOutlined,{}),graph:jsxRuntime.jsx(AntIcons.AreaChartOutlined,{}),calendar:jsxRuntime.jsx(AntIcons.CalendarOutlined,{})};function getIconForView(e){return e?(iconsForViewTypes==null?void 0:iconsForViewTypes[e.type])||jsxRuntime.jsx(AntIcons.FormOutlined,{}):jsxRuntime.jsx(AntIcons.FormOutlined,{})}function ChangeViewButton(e){const{currentView:t,availableViews:r,onChangeView:n,disabled:a=!1,formHasChanges:o=!1,previousView:s}=e,{t:l,lang:c}=React$s.useContext(LocaleContext$1);function u(){const m=r.map((x,p)=>jsxRuntime.jsx(antd.Menu.Item,{children:jsxRuntime.jsxs(antd.Row,{wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"none",style:{paddingRight:20},children:getIconForView(x)}),jsxRuntime.jsx(antd.Col,{flex:"auto",style:{paddingRight:20},children:x.type.charAt(0).toUpperCase()+x.type.slice(1)}),jsxRuntime.jsx(antd.Col,{flex:"none",children:jsxRuntime.jsx(AntIcons.CheckOutlined,{style:{opacity:t.view_id===x.view_id?1:0}})})]})},x.view_id||p));return jsxRuntime.jsx(antd.Menu,{onClick:f,children:jsxRuntime.jsx(antd.Menu.ItemGroup,{title:l("viewAs"),children:m})})}function d(m){if(o){showDialog$6({lang:c,onOk:()=>{m()}});return}m()}function f(m){d(()=>{const x=r.find(p=>p.view_id===parseInt(m.key));n(x)})}return jsxRuntime.jsxs("div",{style:{display:"flex"},children:[jsxRuntime.jsx(ButtonWithTooltip,{tooltip:s?l("viewAs")+" "+l(s.type):"",icon:getIconForView(s),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:()=>{f({key:s==null?void 0:s.view_id})},disabled:a||r.length===1}),jsxRuntime.jsx(antd.Dropdown,{overlay:u(),disabled:a||r.length===1,children:jsxRuntime.jsx(antd.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:jsxRuntime.jsx(AntIcons.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:m=>m.preventDefault()})})]})}function DropdownButton(e){const{icon:t,tooltip:r,items:n=[],onItemClick:a,label:o,disabled:s=!1}=e;function l(){const u=n==null?void 0:n.map((d,f)=>d.name==="divider"?jsxRuntime.jsx(antd.Menu.Divider,{},"divider"+f):jsxRuntime.jsx(antd.Menu.Item,{children:d.name},d.id));return jsxRuntime.jsx(antd.Menu,{onClick:c,children:jsxRuntime.jsx(antd.Menu.ItemGroup,{title:r,children:u})})}function c(u){const d=n.find(f=>isNaN(u.key)?f.id===u.key:f.id===parseInt(u.key));a(d)}return jsxRuntime.jsx(antd.Dropdown,{overlay:l(),disabled:s||!n||n.length===0,children:jsxRuntime.jsxs(antd.Button,{children:[t," ",o," ",jsxRuntime.jsx(AntIcons.DownOutlined,{})]})})}function ActionButton(e){const{onClick:t,disabled:r=!1,loading:n=!1,tooltip:a,icon:o,label:s,type:l="default"}=e,c=n?jsxRuntime.jsx(AntIcons.LoadingOutlined,{}):o;return jsxRuntime.jsxs(ButtonWithTooltip,{type:l,tooltip:a,onClick:t,disabled:r,children:[c,s]})}function NewButton(e){const{disabled:t=!1}=e,{formHasChanges:r,onNewClicked:n}=React$s.useContext(ActionViewContext),{t:a,lang:o}=React$s.useContext(LocaleContext$1),s=()=>{if(r){showDialog$6({lang:o,onOk:()=>{n()}});return}n()};return jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.FileAddOutlined,{}),tooltip:a("new"),onClick:s,disabled:t})}const{confirm}=antd.Modal,showDialog=({onOk:e,onCancel:t,lang:r})=>{confirm({title:tForLang("unsavedChanges",r),icon:jsxRuntime.jsx(AntIcons.ExclamationCircleOutlined,{}),centered:!0,content:tForLang("confirmRefreshWithoutSave",r),okText:tForLang("discardAndRefresh",r),cancelText:tForLang("cancel",r),onOk:e,onCancel:t})};async function showLogInfo(e,t,r){const n=(await ConnectionProvider.getHandler().getLogInfo({model:e,ids:[t]}))[0],{create_date:a,create_uid:o,id:s,write_date:l,write_uid:c}=n;showDialog$7(jsxRuntime.jsxs("div",{children:["ID: "+s," ",jsxRuntime.jsx("br",{}),r("createdBy")+": "+o[1]," ",jsxRuntime.jsx("br",{}),r("creationDate")+": "+a," ",jsxRuntime.jsx("br",{}),r("lastUpdatedBy")+": "+c[1]," ",jsxRuntime.jsx("br",{}),r("lastUpdatedDate")+": "+l]}))}const AttachmentsButtonWrapper=e=>{const{numberOfAttachments:t,disabled:r}=e,{t:n,lang:a}=React$s.useContext(LocaleContext$1),[o,s]=React$s.useState(!1),l=jsxRuntime.jsxs(antd.Button,{disabled:r,children:[jsxRuntime.jsx(AntIcons.LinkOutlined,{}),`(${t})`,jsxRuntime.jsx(AntIcons.DownOutlined,{style:{fontSize:12}})]});return r?l:jsxRuntime.jsx(antd.Popover,{onVisibleChange:c=>s(c),visible:o,placement:"bottom",content:Content$1(e,s,a),title:n("attachments"),arrowContent:null,children:l})},Content$1=(e,t,r)=>{const{attachments:n=[],loading:a,onAddNewAttachment:o,onopenAttachmentLink:s,onOpenAttachmentDetail:l,onListAllAttachments:c}=e;return a?jsxRuntime.jsx(antd.Spin,{style:{padding:20}}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("a",{style:{display:"block",paddingBottom:5},href:"#",onClick:()=>{t(!1),c()},children:[jsxRuntime.jsx(AntIcons.TableOutlined,{})," ",tForLang("listAllAttachments",r)]}),jsxRuntime.jsxs("a",{style:{display:"block"},href:"#",onClick:()=>{t(!1),o()},children:[jsxRuntime.jsx(AntIcons.FileAddOutlined,{})," ",tForLang("addNewAttachment",r)]}),n.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("li",{className:"ant-dropdown-menu-item-divider"}),n.map(u=>{const d=u.link?AntIcons.LinkOutlined:AntIcons.DownloadOutlined;return jsxRuntime.jsxs(antd.Row,{style:{paddingTop:4,paddingBottom:4},wrap:!1,align:"middle",children:[jsxRuntime.jsx(antd.Col,{flex:"auto",children:u.name}),jsxRuntime.jsx(antd.Col,{flex:"25px",style:{textAlign:"center"},children:(u.datas_fname||u.link)&&jsxRuntime.jsx(antd.Tooltip,{title:u.link?tForLang("openAttachmentLink",r):tForLang("download",r),children:jsxRuntime.jsx(d,{style:{cursor:"pointer"},onClick:()=>{t(!1),s(u)}})})}),jsxRuntime.jsx(antd.Col,{flex:"25px",style:{textAlign:"center"},children:jsxRuntime.jsx(antd.Tooltip,{title:tForLang("openAttachment",r),children:jsxRuntime.jsx(AntIcons.FormOutlined,{style:{cursor:"pointer"},onClick:()=>{t(!1),l(u)}})})})]},u.id)})]})]})};function AttachmentsButton(e){const{attachments:t,disabled:r=!1,onAddNewAttachment:n,onListAllAttachments:a,onViewAttachmentDetails:o}=e,{formRef:s}=React$s.useContext(ActionViewContext),[l,c]=React$s.useState(!1),[u,d]=React$s.useState([]),[f,m]=React$s.useState(!1),{t:x}=React$s.useContext(LocaleContext$1),p=React$s.useCallback(async()=>{c(!0);try{const g=await ConnectionProvider.getHandler().readObjects({model:"ir.attachment",ids:t.map(v=>v.id),fieldsToRetrieve:["name","datas_fname","link"],context:s.current.getContext()});d(g.map(v=>({id:v.id,name:v.name,datas_fname:v.datas_fname,link:v.link})))}catch(g){showDialog$8(g)}c(!1)},t),h=React$s.useCallback(async g=>{if(g.link){window.open(g.link);return}m(!0);let v;try{v=(await ConnectionProvider.getHandler().readObjects({model:"ir.attachment",ids:[g.id],context:s.current.getContext()}))[0]}catch(y){showDialog$8(y)}if(m(!1),!!v)if(v.datas){const y=await getMimeType(v.datas);openBase64InNewTab(v.datas,y.mime)}else o(v)},[]),b=React$s.useCallback(async g=>{o(g)},[]);return React$s.useEffect(()=>{p()},[p]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(AttachmentsButtonWrapper,{numberOfAttachments:t.length,attachments:u,disabled:r,loading:l,onAddNewAttachment:n,onListAllAttachments:a,onopenAttachmentLink:h,onOpenAttachmentDetail:b}),jsxRuntime.jsx(antd.Modal,{title:x("downloadingAttachment"),open:f,footer:null,closable:!1,centered:!0,maskClosable:!1,children:jsxRuntime.jsx(antd.Spin,{})})]})}function FormActionBar({toolbar:e}){const{availableViews:t,currentView:r,setCurrentView:n,onFormSave:a,formHasChanges:o,formIsSaving:s,currentId:l,results:c,setCurrentItemIndex:u,currentItemIndex:d,setCurrentId:f,currentModel:m,setRemovingItem:x,removingItem:p,duplicatingItem:h,setDuplicatingItem:b,setResults:g,formIsLoading:v,attachments:y,formRef:$,setFormHasChanges:_,previousView:w,setPreviousView:O,goToResourceId:S}=React$s.useContext(ActionViewContext),{t:j,lang:T}=React$s.useContext(LocaleContext$1),M=React$s.useContext(ContentRootContext),{processAction:I}=M||{},C=React$s.useContext(TabManagerContext),{openRelate:P,openDefaultActionForModel:D}=C||{};function L(V){if(o){showDialog({lang:T,onOk:()=>{V()}});return}V()}function N(V){if(o){showDialog$6({lang:T,onOk:()=>{V()}});return}V()}function B(){c&&c.length>d+1?(u==null||u(d+1),f==null||f(c[d+1].id)):c&&d+1===c.length&&(u==null||u(0),f==null||f(c[0].id))}function q(){c&&d>0?(u==null||u(d-1),f==null||f(c[d-1].id)):c&&d===0&&(u==null||u(c.length-1),f==null||f(c[c.length-1].id))}function z(){showDialog$9({confirmMessage:j("confirmRemoveItem"),lang:T,onOk:()=>{Y()}})}async function Y(){try{x==null||x(!0),await ConnectionProvider.getHandler().delete({model:m,ids:[l]});const V=c==null?void 0:c.filter(k=>k.id!==l);g==null||g(V);let F=0;d>0&&d<=c.length-1&&(F=d-1),V!=null&&V[F]?(f==null||f(V==null?void 0:V[F].id),u==null||u(F)):(f==null||f(void 0),u==null||u(void 0))}catch(V){showDialog$3(JSON.stringify(V))}finally{x==null||x(!1)}}async function W(){try{b==null||b(!0);const V=await ConnectionProvider.getHandler().duplicate({id:l,model:m,context:$.current.getContext()});V&&await(S==null?void 0:S(V))}catch(V){showDialog$3(JSON.stringify(V))}finally{b==null||b(!1)}}const K=s||p||v||h;function H(V){I==null||I({actionData:V,values:$.current.getValues(),fields:$.current.getFields(),context:$.current.getContext(),onRefreshParentValues:()=>{$.current.fetchValues()}})}return r?jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[v&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Spin,{}),separator$2(),separator$2()]}),jsxRuntime.jsx(NewButton,{disabled:s||v||p||h}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.SaveOutlined,{}),tooltip:j("save"),disabled:!o||K,loading:s,onClick:a}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{}),tooltip:j("duplicate"),disabled:o||s||l===void 0||h||v,loading:h,onClick:W}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.DeleteOutlined,{}),tooltip:j("delete"),disabled:s||l===void 0||p||h||v,loading:p,onClick:z}),separator$2(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.InfoCircleOutlined,{}),tooltip:j("showLogs"),disabled:s||l===void 0||p||h||v,loading:!1,onClick:()=>{showLogInfo(m,l,j)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:j("refresh"),disabled:s||l===void 0||p||h||v,loading:!1,onClick:()=>{L(()=>{$.current.fetchValues()})}}),separator$2(),jsxRuntime.jsx(ChangeViewButton,{currentView:r,previousView:w,availableViews:t,onChangeView:V=>{O==null||O(r),_==null||_(!1),n==null||n(V)},disabled:K,formHasChanges:o}),separator$2(),jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.LeftOutlined,{}),tooltip:j("previous"),disabled:K,loading:!1,onClick:()=>{N(q)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.RightOutlined,{}),tooltip:j("next"),disabled:K,loading:!1,onClick:()=>{N(B)}})]}),separator$2(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),disabled:K,tooltip:j("actions"),items:e==null?void 0:e.action,onItemClick:async V=>{!V||!(await saveDocument({onFormSave:a})).succeed||H(V)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),disabled:K,tooltip:j("reports"),items:e==null?void 0:e.print,onItemClick:async V=>{if(!V)return;const F=await saveDocument({onFormSave:a});!F.succeed||H({...V,datas:{...V.datas||{},ids:[F.currentId]}})}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.EnterOutlined,{}),disabled:K,tooltip:j("related"),items:e==null?void 0:e.relate,onItemClick:async V=>{!V||!(await saveDocument({onFormSave:a})).succeed||P({relateData:V,values:$.current.getValues(),fields:$.current.getFields(),action_id:V.id,action_type:V.type})}}),jsxRuntime.jsx(AttachmentsButton,{disabled:K,attachments:y,onAddNewAttachment:async()=>{const V=await saveDocument({onFormSave:a});if(!V.succeed)return;const F=V.currentId,k=m;D({model:"ir.attachment",values:{selection_associated_object:`${k},${F}`},forced_values:{res_model:k,res_id:F},initialViewType:"form"})},onListAllAttachments:async()=>{const V=await saveDocument({onFormSave:a});if(!V.succeed)return;const F=V.currentId;D({model:"ir.attachment",domain:[["res_model","=",`${m}`],["res_id","=",`${F}`]],initialViewType:"tree"})},onViewAttachmentDetails:async V=>{!(await saveDocument({onFormSave:a})).succeed||D({model:"ir.attachment",res_id:V.id,initialViewType:"form"})}})]}):null}function separator$2(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}async function saveDocument({onFormSave:e}){const t=await(e==null?void 0:e());return t!=null&&t.succeed?{succeed:!0,currentId:t.id}:{succeed:!1,currentId:void 0}}var isURL$1={exports:{}},assertString={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function r(a){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?r=function(s){return typeof s}:r=function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},r(a)}function n(a){var o=typeof a=="string"||a instanceof String;if(!o){var s=r(a);throw a===null?s="null":s==="object"&&(s=a.constructor.name),new TypeError("Expected a string but received a ".concat(s))}}e.exports=t.default,e.exports.default=t.default})(assertString,assertString.exports);var isFQDN={exports:{}},merge={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;for(var o in a)typeof n[o]>"u"&&(n[o]=a[o]);return n}e.exports=t.default,e.exports.default=t.default})(merge,merge.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var r=a(assertString.exports),n=a(merge.exports);function a(l){return l&&l.__esModule?l:{default:l}}var o={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1};function s(l,c){(0,r.default)(l),c=(0,n.default)(c,o),c.allow_trailing_dot&&l[l.length-1]==="."&&(l=l.substring(0,l.length-1)),c.allow_wildcard===!0&&l.indexOf("*.")===0&&(l=l.substring(2));var u=l.split("."),d=u[u.length-1];return c.require_tld&&(u.length<2||!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(d)||/\s/.test(d))||!c.allow_numeric_tld&&/^\d+$/.test(d)?!1:u.every(function(f){return!(f.length>63||!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(f)||/[\uff01-\uff5e]/.test(f)||/^-|-$/.test(f)||!c.allow_underscores&&/_/.test(f))})}e.exports=t.default,e.exports.default=t.default}(isFQDN,isFQDN.exports);var isIP={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var r=n(assertString.exports);function n(d){return d&&d.__esModule?d:{default:d}}var a="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",o="(".concat(a,"[.]){3}").concat(a),s=new RegExp("^".concat(o,"$")),l="(?:[0-9a-fA-F]{1,4})",c=new RegExp("^("+"(?:".concat(l,":){7}(?:").concat(l,"|:)|")+"(?:".concat(l,":){6}(?:").concat(o,"|:").concat(l,"|:)|")+"(?:".concat(l,":){5}(?::").concat(o,"|(:").concat(l,"){1,2}|:)|")+"(?:".concat(l,":){4}(?:(:").concat(l,"){0,1}:").concat(o,"|(:").concat(l,"){1,3}|:)|")+"(?:".concat(l,":){3}(?:(:").concat(l,"){0,2}:").concat(o,"|(:").concat(l,"){1,4}|:)|")+"(?:".concat(l,":){2}(?:(:").concat(l,"){0,3}:").concat(o,"|(:").concat(l,"){1,5}|:)|")+"(?:".concat(l,":){1}(?:(:").concat(l,"){0,4}:").concat(o,"|(:").concat(l,"){1,6}|:)|")+"(?::((?::".concat(l,"){0,5}:").concat(o,"|(?::").concat(l,"){1,7}|:))")+")(%[0-9a-zA-Z-.:]{1,})?$");function u(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if((0,r.default)(d),f=String(f),!f)return u(d,4)||u(d,6);if(f==="4"){if(!s.test(d))return!1;var m=d.split(".").sort(function(x,p){return x-p});return m[3]<=255}return f==="6"?!!c.test(d):!1}e.exports=t.default,e.exports.default=t.default})(isIP,isIP.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=g;var r=s(assertString.exports),n=s(isFQDN.exports),a=s(isIP.exports),o=s(merge.exports);function s(v){return v&&v.__esModule?v:{default:v}}function l(v,y){return m(v)||f(v,y)||u(v,y)||c()}function c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
249
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function u(v,y){if(!!v){if(typeof v=="string")return d(v,y);var $=Object.prototype.toString.call(v).slice(8,-1);if($==="Object"&&v.constructor&&($=v.constructor.name),$==="Map"||$==="Set")return Array.from(v);if($==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test($))return d(v,y)}}function d(v,y){(y==null||y>v.length)&&(y=v.length);for(var $=0,_=new Array(y);$<y;$++)_[$]=v[$];return _}function f(v,y){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(v)))){var $=[],_=!0,w=!1,O=void 0;try{for(var S=v[Symbol.iterator](),j;!(_=(j=S.next()).done)&&($.push(j.value),!(y&&$.length===y));_=!0);}catch(T){w=!0,O=T}finally{try{!_&&S.return!=null&&S.return()}finally{if(w)throw O}}return $}}function m(v){if(Array.isArray(v))return v}var x={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,allow_fragments:!0,allow_query_components:!0,validate_length:!0},p=/^\[([^\]]+)\](?::([0-9]+))?$/;function h(v){return Object.prototype.toString.call(v)==="[object RegExp]"}function b(v,y){for(var $=0;$<y.length;$++){var _=y[$];if(v===_||h(_)&&_.test(v))return!0}return!1}function g(v,y){if((0,r.default)(v),!v||/[\s<>]/.test(v)||v.indexOf("mailto:")===0||(y=(0,o.default)(y,x),y.validate_length&&v.length>=2083)||!y.allow_fragments&&v.includes("#")||!y.allow_query_components&&(v.includes("?")||v.includes("&")))return!1;var $,_,w,O,S,j,T,M;if(T=v.split("#"),v=T.shift(),T=v.split("?"),v=T.shift(),T=v.split("://"),T.length>1){if($=T.shift().toLowerCase(),y.require_valid_protocol&&y.protocols.indexOf($)===-1)return!1}else{if(y.require_protocol)return!1;if(v.substr(0,2)==="//"){if(!y.allow_protocol_relative_urls)return!1;T[0]=v.substr(2)}}if(v=T.join("://"),v==="")return!1;if(T=v.split("/"),v=T.shift(),v===""&&!y.require_host)return!0;if(T=v.split("@"),T.length>1){if(y.disallow_auth||T[0]===""||(_=T.shift(),_.indexOf(":")>=0&&_.split(":").length>2))return!1;var I=_.split(":"),C=l(I,2),P=C[0],D=C[1];if(P===""&&D==="")return!1}O=T.join("@"),j=null,M=null;var L=O.match(p);if(L?(w="",M=L[1],j=L[2]||null):(T=O.split(":"),w=T.shift(),T.length&&(j=T.join(":"))),j!==null&&j.length>0){if(S=parseInt(j,10),!/^[0-9]+$/.test(j)||S<=0||S>65535)return!1}else if(y.require_port)return!1;return y.host_whitelist?b(w,y.host_whitelist):!(!(0,a.default)(w)&&!(0,n.default)(w,y)&&(!M||!(0,a.default)(M,6))||(w=w||M,y.host_blacklist&&b(w,y.host_blacklist)))}e.exports=t.default,e.exports.default=t.default}(isURL$1,isURL$1.exports);const isURL=getDefaultExportFromCjs(isURL$1.exports),{useToken:useToken$5}=antd.theme,LinkInput=e=>{const{ooui:t,value:r,onChange:n,valueValidator:a,linkPrefix:o=""}=e,{id:s,readOnly:l,required:c}=t,{token:u}=useToken$5(),d=c&&!l?{backgroundColor:u.colorPrimaryBg}:void 0,f=React$s.useContext(FormContext$2),{elementHasLostFocus:m}=f||{},[x,p]=React$s.useState(!1),[h,b]=React$s.useState(!1);React$s.useEffect(()=>{l&&!x&&b(!1),!r&&!l&&(p(!0),b(!0))},[x,l]);const g=v=>{n==null||n(v.target.value)};return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,align:"middle",children:[l?null:jsxRuntime.jsx(antd.Col,{flex:"32px",children:x?jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),onClick:()=>{a(r)&&(p(!1),b(!1))},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1}):jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.EditOutlined,{}),onClick:()=>{p(!0),b(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:h?jsxRuntime.jsx(antd.Input,{style:{borderTopLeftRadius:0,borderBottomLeftRadius:0,...d},id:s,onChange:g,value:r,onBlur:()=>{a(r)&&(p(!1),b(!1),m==null||m())}}):jsxRuntime.jsx("a",{href:`${o}${r}`,style:{color:u.colorPrimary,paddingRight:15},target:"_blank",children:r})})]})},Url=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,...e,children:jsxRuntime.jsx(LinkInput,{ooui:t,valueValidator:n=>n?isURL(n):!1})})};var isEmail$1={exports:{}},isByteLength={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var r=n(assertString.exports);function n(s){return s&&s.__esModule?s:{default:s}}function a(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?a=function(c){return typeof c}:a=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},a(s)}function o(s,l){(0,r.default)(s);var c,u;a(l)==="object"?(c=l.min||0,u=l.max):(c=arguments[1],u=arguments[2]);var d=encodeURI(s).split(/%..|./).length-1;return d>=c&&(typeof u>"u"||d<=u)}e.exports=t.default,e.exports.default=t.default})(isByteLength,isByteLength.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=g;var r=l(assertString.exports),n=l(merge.exports),a=l(isByteLength.exports),o=l(isFQDN.exports),s=l(isIP.exports);function l(v){return v&&v.__esModule?v:{default:v}}var c={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1,host_blacklist:[]},u=/^([^\x00-\x1F\x7F-\x9F\cX]+)</i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,m=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,x=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,h=254;function b(v){var y=v.replace(/^"(.+)"$/,"$1");if(!y.trim())return!1;var $=/[\.";<>]/.test(y);if($){if(y===v)return!1;var _=y.split('"').length===y.split('\\"').length;if(!_)return!1}return!0}function g(v,y){if((0,r.default)(v),y=(0,n.default)(y,c),y.require_display_name||y.allow_display_name){var $=v.match(u);if($){var _=$[1];if(v=v.replace(_,"").replace(/(^<|>$)/g,""),_.endsWith(" ")&&(_=_.substr(0,_.length-1)),!b(_))return!1}else if(y.require_display_name)return!1}if(!y.ignore_max_length&&v.length>h)return!1;var w=v.split("@"),O=w.pop(),S=O.toLowerCase();if(y.host_blacklist.includes(S))return!1;var j=w.join("@");if(y.domain_specific_validation&&(S==="gmail.com"||S==="googlemail.com")){j=j.toLowerCase();var T=j.split("+")[0];if(!(0,a.default)(T.replace(/\./g,""),{min:6,max:30}))return!1;for(var M=T.split("."),I=0;I<M.length;I++)if(!f.test(M[I]))return!1}if(y.ignore_max_length===!1&&(!(0,a.default)(j,{max:64})||!(0,a.default)(O,{max:254})))return!1;if(!(0,o.default)(O,{require_tld:y.require_tld})){if(!y.allow_ip_domain)return!1;if(!(0,s.default)(O)){if(!O.startsWith("[")||!O.endsWith("]"))return!1;var C=O.substr(1,O.length-2);if(C.length===0||!(0,s.default)(C))return!1}}if(j[0]==='"')return j=j.slice(1,j.length-1),y.allow_utf8_local_part?p.test(j):m.test(j);for(var P=y.allow_utf8_local_part?x:d,D=j.split("."),L=0;L<D.length;L++)if(!P.test(D[L]))return!1;return!(y.blacklisted_chars&&j.search(new RegExp("[".concat(y.blacklisted_chars,"]+"),"g"))!==-1)}e.exports=t.default,e.exports.default=t.default}(isEmail$1,isEmail$1.exports);const isEmail=getDefaultExportFromCjs(isEmail$1.exports),Email=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,...e,children:jsxRuntime.jsx(LinkInput,{ooui:t,linkPrefix:"mailto:",valueValidator:n=>n?isEmail(n):!1})})},GoToResourceModal=e=>{const{visible:t,onIdSubmitted:r,onCancel:n,isSearching:a}=e,{t:o}=React$s.useContext(LocaleContext$1);function s(l){r(l.id)}return jsxRuntime.jsx(antd.Modal,{title:o("goToResourceId"),centered:!0,open:t,footer:null,destroyOnClose:!0,onCancel:n,maskClosable:!1,children:jsxRuntime.jsxs(antd.Form,{layout:"vertical",onFinish:s,autoComplete:"off",children:[jsxRuntime.jsx(antd.Form.Item,{name:"id",label:o("searchId"),rules:[{required:!0,type:"number"}],children:jsxRuntime.jsx(antd.InputNumber,{style:{width:"100%"},autoFocus:!0})}),jsxRuntime.jsx(antd.Row,{align:"middle",justify:"end",children:jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CloseOutlined,{}),htmlType:"button",onClick:n,disabled:a,children:o("cancel")}),jsxRuntime.jsx(antd.Button,{loading:a,style:{marginLeft:15},icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:a,children:o("ok")})]})})})]})})},{useToken:useToken$4}=antd.theme;function ButtonWithBadge(e){const{badgeNumber:t=0,...r}=e,{token:n}=useToken$4();return jsxRuntime.jsxs("div",{style:{position:"relative"},children:[t>0&&jsxRuntime.jsx("div",{style:{position:"absolute",left:-10,top:-10,zIndex:2},children:jsxRuntime.jsx("span",{style:{display:"inline-block",minWidth:"22px",padding:"2px",borderRadius:"50%",fontSize:"12px",textAlign:"center",background:n.colorPrimaryBg,color:n.colorPrimaryHover},children:t})}),jsxRuntime.jsx(ButtonWithTooltip,{...r,style:{width:46,zIndex:0}})]})}function GraphActionBar({refreshGraph:e}){const{t}=React$s.useContext(LocaleContext$1),{availableViews:r,currentView:n,setCurrentView:a,searchParams:o,searchVisible:s,setSearchVisible:l,graphIsLoading:c,previousView:u,setPreviousView:d}=React$s.useContext(ActionViewContext);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(AntIcons.FilterOutlined,{style:{color:s?"white":void 0}}),tooltip:t("advanced_search"),type:s?"primary":"default",onClick:()=>{l==null||l(!s)},disabled:c,badgeNumber:o==null?void 0:o.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:t("refresh"),disabled:c,loading:!1,onClick:()=>{e()}}),jsxRuntime.jsx(ChangeViewButton,{currentView:n,availableViews:r,onChangeView:f=>{d==null||d(n),a==null||a(f)},disabled:!1,previousView:u})]})}const{useToken:useToken$3}=antd.theme,{Title:Title$1,Text:Text$1}=antd.Typography;function TitleHeader(e){const{title:t,children:r}=e,{title:n,currentView:a,currentId:o,currentItemIndex:s,results:l,totalItems:c,selectedRowItems:u}=React$s.useContext(ActionViewContext),{t:d}=React$s.useContext(LocaleContext$1),{token:f}=useToken$3();function m(){if((a==null?void 0:a.type)==="form")return o?c===0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{style:{color:"red"}})},children:o}),")"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("register")," ",s===void 0?1:s+1," /"," ",l.length," ",d("of")," ",c," - ",d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:o}),")"]}):"";if((a==null?void 0:a.type)==="tree"&&u){if(u.length===1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["1 ",d("selectedRegisters")," - (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:u[0].id}),")"]});if(u.length>1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u.length," ",d("selectedRegisters"),jsxRuntime.jsx(Text$1,{copyable:{text:u.map(x=>x.id).join(", ")}})]})}return null}return jsxRuntime.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[jsxRuntime.jsxs(antd.Row,{className:"shadow-md",style:{padding:"1em",borderRadius:f.borderRadius,backgroundColor:f.colorPrimaryBg},align:"middle",children:[jsxRuntime.jsxs(antd.Col,{flex:2,children:[jsxRuntime.jsx(Title$1,{level:3,style:{marginBottom:0},children:t||n}),m()]}),jsxRuntime.jsx(antd.Col,{flex:3,children:jsxRuntime.jsx(antd.Row,{justify:"end",children:r})})]}),jsxRuntime.jsx("div",{className:"pb-5"})]})}const GraphActionView=e=>{const{viewData:t,visible:r,model:n,context:a,domain:o,formView:s,treeView:l}=e,c=React$s.useRef(),u=React$s.useContext(ActionViewContext),{setResults:d=void 0,setCurrentItemIndex:f=void 0,currentId:m=void 0,results:x=void 0,setSelectedRowItems:p=void 0,setSearchParams:h=void 0,searchVisible:b=!0,setSearchVisible:g=void 0,sorter:v=void 0,setSorter:y=void 0,setTotalItems:$=void 0,setSearchTreeNameSearch:_=void 0,setTreeIsLoading:w=void 0,limit:O,setLimit:S,searchParams:j,searchValues:T,setSearchValues:M,currentView:I}=u||{},[C,P]=React$s.useState(!0);React$s.useEffect(()=>{var z;(z=c.current)==null||z.refresh()},[j]),React$s.useEffect(()=>{t.view_id!==I.view_id&&P(!0)},[I]);const{clear:D,searchFilterLoading:L,searchError:N,offset:B,tableRefreshing:q}=useSearch({model:n,setSearchTreeNameSearch:_,setSelectedRowItems:p,searchParams:j,setSearchValues:M,setSearchParams:h,setSearchVisible:g,setTreeIsLoading:w,context:a,formView:s,treeView:l,sorter:v,setSorter:y,setCurrentItemIndex:f,setResultsActionView:d,resultsActionView:x,domain:o,currentId:m,setActionViewTotalItems:$,limit:O,setLimit:S});return!r||!t?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{title:t.name,children:jsxRuntime.jsx(GraphActionBar,{refreshGraph:()=>{c.current.refresh()}})}),jsxRuntime.jsx(SearchFilter,{fields:{...l.fields,...s.fields},searchFields:mergeSearchFields([s.search_fields,l.search_fields]),formXml:s.arch,limit:O,onClear:D,offset:B,isSearching:L,onSubmit:z=>{P(!1),h==null||h(z.params),g==null||g(!1)},searchError:N,searchVisible:b,searchValues:T,showLimitOptions:!1}),q?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(Graph,{ref:c,view_id:t.view_id,model:n,context:a,domain:mergeParams(j||[],o),limit:C?O:void 0,manualIds:C?x==null?void 0:x.map(z=>z.id):void 0})]})},FormActionView=e=>{const{visible:t,formRef:r,model:n,currentId:a,domain:o,formView:s,context:l,defaultValues:c,forcedValues:u,results:d,setResults:f,setCurrentItemIndex:m}=e;return t?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(FormActionBar,{toolbar:s==null?void 0:s.toolbar})}),jsxRuntime.jsx(Form$1,{rootForm:!0,ref:r,model:n,defaultValues:c,forcedValues:u,formView:s,actionDomain:o,id:a,parentContext:l,onSubmitSucceed:(x,p)=>{d.findIndex(b=>b.id===x)===-1&&(d.push(p),f(d),m(d.length-1))}})]}):null};function SearchBar(e){const{onSearch:t,disabled:r=!1,searchText:n}=e,{t:a}=React$s.useContext(LocaleContext$1),[o]=antd.Form.useForm(),[s,l]=React$s.useState(!1);function c(d){t(d.search)}React$s.useEffect(()=>{o.setFieldsValue({search:n})},[n]);function u(){l(!1),o.setFieldsValue({search:void 0}),t(void 0)}return jsxRuntime.jsx(antd.Form,{form:o,onFinish:c,autoComplete:"off",children:jsxRuntime.jsxs(antd.Row,{align:"middle",justify:"end",children:[jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Form.Item,{name:"search",noStyle:!0,children:jsxRuntime.jsx(antd.Input,{autoFocus:!0,disabled:r,onChange:d=>{l(d.target.value.length>0)},suffix:(s||n&&n.length>0)&&jsxRuntime.jsx(antd.Tooltip,{title:a("clear"),children:jsxRuntime.jsx(AntIcons.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:u})})})})}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Button,{htmlType:"submit",disabled:r,children:a("search")})})]})})}const ConfigContext=React__default.default.createContext({previewFeatures:!1});function TreeActionBar(e){var K;const{availableViews:t,currentView:r,setCurrentView:n,selectedRowItems:a,setRemovingItem:o,removingItem:s,duplicatingItem:l,setDuplicatingItem:c,currentModel:u,searchTreeRef:d,setCurrentId:f,setCurrentItemIndex:m,searchParams:x,searchVisible:p,setSearchVisible:h,setSearchTreeNameSearch:b,searchTreeNameSearch:g,treeIsLoading:v,setPreviousView:y,previousView:$,results:_,limit:w,totalItems:O}=React$s.useContext(ActionViewContext),{parentContext:S={},treeExpandable:j,toolbar:T}=e,{previewFeatures:M}=React$s.useContext(ConfigContext),{t:I,lang:C}=React$s.useContext(LocaleContext$1),P=React$s.useContext(ContentRootContext),{processAction:D}=P||{},[L,N]=React$s.useState(!1),B=g!==void 0&&g.trim().length>0;function q(){showDialog$9({confirmMessage:I("confirmRemove"),lang:C,onOk:()=>{z()}})}async function z(){var H;try{o==null||o(!0),await ConnectionProvider.getHandler().delete({model:u,ids:a.map(V=>V.id)}),f==null||f(void 0),m==null||m(void 0),(H=d==null?void 0:d.current)==null||H.refreshResults()}catch(V){showDialog$8(V)}finally{o==null||o(!1)}}async function Y(){var H;try{c==null||c(!0);const V=a[0].id;await ConnectionProvider.getHandler().duplicate({id:V,model:u,context:{...S}})&&((H=d==null?void 0:d.current)==null||H.refreshResults())}catch(V){showDialog$8(V)}finally{c==null||c(!1)}}function W(H){D==null||D({actionData:H,values:{active_id:a==null?void 0:a.map(V=>V.id)[0],active_ids:a==null?void 0:a.map(V=>V.id)},fields:{},context:{...S,active_id:a==null?void 0:a.map(V=>V.id)[0],active_ids:a==null?void 0:a.map(V=>V.id)},onRefreshParentValues:()=>{var V;(V=d==null?void 0:d.current)==null||V.refreshResults()}})}return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[j?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchBar,{disabled:l||s||v,searchText:g,onSearch:H=>{H&&H.trim().length>0?b==null||b(H):b==null||b(void 0)}}),!j&&jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(AntIcons.FilterOutlined,{style:{color:p?"white":void 0}}),tooltip:I("advanced_search"),type:p?"primary":"default",onClick:()=>{h==null||h(!p)},disabled:l||s||v,badgeNumber:x==null?void 0:x.length}),separator$1(),jsxRuntime.jsx(NewButton,{disabled:v}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{}),tooltip:I("duplicate"),disabled:!a||(a==null?void 0:a.length)!==1||l||v,loading:l,onClick:Y}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.DeleteOutlined,{}),tooltip:I("delete"),disabled:!(a&&(a==null?void 0:a.length)>0)||v,loading:s,onClick:q}),separator$1()]}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.InfoCircleOutlined,{}),tooltip:I("showLogs"),disabled:!(a&&(a==null?void 0:a.length)>0)||v,loading:!1,onClick:()=>{showLogInfo(u,a[0].id,I)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:I("refresh"),disabled:l||s||v,loading:!1,onClick:()=>{var H;(H=d==null?void 0:d.current)==null||H.refreshResults()}}),!j&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(ChangeViewButton,{currentView:r,availableViews:t,onChangeView:H=>{y==null||y(r),n==null||n(H)},previousView:$,disabled:v})]}),separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:I("actions"),items:T==null?void 0:T.action,onItemClick:H=>{!H||W(H)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:I("reports"),items:T==null?void 0:T.print,onItemClick:H=>{!H||W({...H,datas:{...H.datas||{},ids:a.map(V=>V.id)}})}}),M&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons__default.default,{component:()=>jsxRuntime.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:[jsxRuntime.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),jsxRuntime.jsx("ellipse",{cx:"12",cy:"6",rx:"8",ry:"3"}),jsxRuntime.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"}),jsxRuntime.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:I("export"),items:[{id:"print_screen",name:I("printScreen")},{id:"export",name:I("advancedExport")}],onItemClick:H=>{if(H.id==="print_screen"){let V=(a==null?void 0:a.map(F=>F.id))||[];V.length===0&&(V=(_==null?void 0:_.map(F=>F.id))||[]),W({id:-1,model:u,report_name:"printscreen.list",type:"ir.actions.report.xml",datas:{model:u,ids:V}});return}N(!0)},disabled:l||s||v||B}),jsxRuntime.jsx(ExportModal,{visible:L,locale:C,onClose:()=>N(!1),model:u,domain:mergeParams(((K=d==null?void 0:d.current)==null?void 0:K.getDomain())||[],x||[]),limit:w,totalRegisters:O||0,selectedRegistersToExport:a,visibleRegisters:(_==null?void 0:_.length)||0,context:S})]})]})}function separator$1(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const TreeActionView=e=>{const{visible:t,searchTreeRef:r,model:n,context:a,formView:o,treeView:s,domain:l,setCurrentItemIndex:c,results:u,setCurrentId:d,setCurrentView:f,availableViews:m,searchTreeNameSearch:x}=e,{currentView:p,setPreviousView:h}=React$s.useContext(ActionViewContext);return t?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(TreeActionBar,{toolbar:s==null?void 0:s.toolbar,parentContext:a,treeExpandable:(s==null?void 0:s.isExpandable)||!1})}),jsxRuntime.jsx(SearchTree$1,{ref:r,rootTree:!0,model:n,parentContext:a,nameSearch:x,formView:o,treeView:s,domain:l,onRowClicked:b=>{const{id:g}=b;d(g);const v=u.findIndex($=>$.id===g);h==null||h(p),c(v);const y=m.find($=>$.type==="form");f(y)}})]}):null},DashboardActionContext=React__default.default.createContext(null),DashboardActionProvider=e=>{const[t,r]=React$s.useState(!1),[n,a]=React$s.useState(!1),{children:o,dashboardRef:s,openAction:l}=e;return jsxRuntime.jsx(DashboardActionContext.Provider,{value:{isLoading:t,setIsLoading:r,dashboardRef:s,openAction:l,moveItemsEnabled:n,setMoveItemsEnabled:a},children:o})};function DashboardActionBar(){const{isLoading:e,dashboardRef:t,moveItemsEnabled:r,setMoveItemsEnabled:n}=React$s.useContext(DashboardActionContext),{t:a}=React$s.useContext(LocaleContext$1);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.BorderOuterOutlined,{style:{color:r?"white":void 0}}),type:r?"primary":"default",tooltip:a("moveDashboard"),disabled:e,loading:!1,onClick:()=>{n(!r)}}),separator(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.SettingOutlined,{}),tooltip:a("configDashboard"),disabled:e,loading:!1,onClick:()=>{t==null||t.current.configDashboard()}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:a("refresh"),disabled:e,loading:!1,onClick:()=>{t==null||t.current.refresh()}})]})}function separator(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const DashboardActionView=e=>{const{dashboardData:t}=e,r=React$s.useRef(),n=React$s.useContext(TabManagerContext),{openShortcut:a}=n||{};return t?jsxRuntime.jsxs(DashboardActionProvider,{dashboardRef:r,openAction:o=>{a(o)},children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(DashboardActionBar,{})}),jsxRuntime.jsx(Dashboard$1,{ref:r,model:t.model,id:t.id,context:t==null?void 0:t.context,configAction:t==null?void 0:t.configAction})]}):null};function ActionView(e,t){const{domain:r,model:n,context:a,views:o,title:s,setCanWeClose:l,tabKey:c,initialView:u,formDefaultValues:d,formForcedValues:f={},res_id:m=!1,action_id:x,action_type:p,treeExpandable:h=!1,limit:b}=e,[g,v]=React$s.useState(),[y,$]=React$s.useState([]),[_,w]=React$s.useState(!0),O=m||void 0,[S,j]=React$s.useState(O),[T,M]=React$s.useState([]),[I,C]=React$s.useState(),[P,D]=React$s.useState([]),[L,N]=React$s.useState(),[B,q]=React$s.useState(0),[z,Y]=React$s.useState(!1),[W,K]=React$s.useState(!1),[H,V]=React$s.useState(),{t:F}=React$s.useContext(LocaleContext$1),k=React$s.useRef(),G=React$s.useRef(),X=React$s.useContext(TabManagerContext),{setCurrentView:Q,setCurrentId:A,tabs:E,activeKey:U,openAction:J,onRemoveTab:ne}=X||{};reactHotkeysHook.useHotkeys("ctrl+g,command+g",ee=>{ee.preventDefault(),de()},[U,E,g,I,P]);function Z(ee){j(ee),A==null||A(ee)}function le(ee){v(ee),Q==null||Q(ee)}React$s.useImperativeHandle(t,()=>({canWeClose:ie}));const ae=async()=>{w(!0);const ee=[];for(const pe of o){const[je,he]=pe;let Ie;try{he!=="dashboard"&&(Ie=await ConnectionProvider.getHandler().getView({model:n,type:he,id:je,context:a}))}catch($e){console.error(`${n} - ${he}\xA0- ${JSON.stringify($e,null,2)}`);continue}switch(he){case"dashboard":{const $e=o.find(Pe=>{const[,Se]=Pe;return Se==="form"});let Me;$e&&(Me={action_id:x,action_type:p,name:s,res_id:a.active_id,res_model:n,view_id:$e[0],view_type:$e[1]}),ee.push({type:"dashboard",id:a.active_id,model:n,context:a,configAction:Me});break}case"form":{ee.push({...Ie,type:he});break}case"tree":{ee.push({...Ie,isExpandable:h,type:he});break}case"graph":{ee.push({...Ie,type:he});break}}}let se;!u&&ee.find(pe=>pe.type==="tree")?se=ee.find(je=>je.type==="tree"):u?se=ee.find(je=>u.id?je.type===u.type&&je.view_id===u.id:je.type===u.type):se=ee.find(je=>je.type==="form"),se||(showDialog$8(`Error determining the first view to show for model ${n}.
249
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function u(v,y){if(!!v){if(typeof v=="string")return d(v,y);var $=Object.prototype.toString.call(v).slice(8,-1);if($==="Object"&&v.constructor&&($=v.constructor.name),$==="Map"||$==="Set")return Array.from(v);if($==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test($))return d(v,y)}}function d(v,y){(y==null||y>v.length)&&(y=v.length);for(var $=0,_=new Array(y);$<y;$++)_[$]=v[$];return _}function f(v,y){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(v)))){var $=[],_=!0,w=!1,O=void 0;try{for(var S=v[Symbol.iterator](),j;!(_=(j=S.next()).done)&&($.push(j.value),!(y&&$.length===y));_=!0);}catch(T){w=!0,O=T}finally{try{!_&&S.return!=null&&S.return()}finally{if(w)throw O}}return $}}function m(v){if(Array.isArray(v))return v}var x={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,allow_fragments:!0,allow_query_components:!0,validate_length:!0},p=/^\[([^\]]+)\](?::([0-9]+))?$/;function h(v){return Object.prototype.toString.call(v)==="[object RegExp]"}function b(v,y){for(var $=0;$<y.length;$++){var _=y[$];if(v===_||h(_)&&_.test(v))return!0}return!1}function g(v,y){if((0,r.default)(v),!v||/[\s<>]/.test(v)||v.indexOf("mailto:")===0||(y=(0,o.default)(y,x),y.validate_length&&v.length>=2083)||!y.allow_fragments&&v.includes("#")||!y.allow_query_components&&(v.includes("?")||v.includes("&")))return!1;var $,_,w,O,S,j,T,M;if(T=v.split("#"),v=T.shift(),T=v.split("?"),v=T.shift(),T=v.split("://"),T.length>1){if($=T.shift().toLowerCase(),y.require_valid_protocol&&y.protocols.indexOf($)===-1)return!1}else{if(y.require_protocol)return!1;if(v.substr(0,2)==="//"){if(!y.allow_protocol_relative_urls)return!1;T[0]=v.substr(2)}}if(v=T.join("://"),v==="")return!1;if(T=v.split("/"),v=T.shift(),v===""&&!y.require_host)return!0;if(T=v.split("@"),T.length>1){if(y.disallow_auth||T[0]===""||(_=T.shift(),_.indexOf(":")>=0&&_.split(":").length>2))return!1;var I=_.split(":"),C=l(I,2),P=C[0],D=C[1];if(P===""&&D==="")return!1}O=T.join("@"),j=null,M=null;var L=O.match(p);if(L?(w="",M=L[1],j=L[2]||null):(T=O.split(":"),w=T.shift(),T.length&&(j=T.join(":"))),j!==null&&j.length>0){if(S=parseInt(j,10),!/^[0-9]+$/.test(j)||S<=0||S>65535)return!1}else if(y.require_port)return!1;return y.host_whitelist?b(w,y.host_whitelist):!(!(0,a.default)(w)&&!(0,n.default)(w,y)&&(!M||!(0,a.default)(M,6))||(w=w||M,y.host_blacklist&&b(w,y.host_blacklist)))}e.exports=t.default,e.exports.default=t.default}(isURL$1,isURL$1.exports);const isURL=getDefaultExportFromCjs(isURL$1.exports),{useToken:useToken$5}=antd.theme,LinkInput=e=>{const{ooui:t,value:r,onChange:n,valueValidator:a,linkPrefix:o=""}=e,{id:s,readOnly:l,required:c}=t,{token:u}=useToken$5(),d=c&&!l?{backgroundColor:u.colorPrimaryBg}:void 0,f=React$s.useContext(FormContext$2),{elementHasLostFocus:m}=f||{},[x,p]=React$s.useState(!1),[h,b]=React$s.useState(!1);React$s.useEffect(()=>{l&&!x&&b(!1),!r&&!l&&(p(!0),b(!0))},[x,l]);const g=v=>{n==null||n(v.target.value)};return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,align:"middle",children:[l?null:jsxRuntime.jsx(antd.Col,{flex:"32px",children:x?jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),onClick:()=>{a(r)&&(p(!1),b(!1))},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1}):jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.EditOutlined,{}),onClick:()=>{p(!0),b(!0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:h?jsxRuntime.jsx(antd.Input,{style:{borderTopLeftRadius:0,borderBottomLeftRadius:0,...d},id:s,onChange:g,value:r,onBlur:()=>{a(r)&&(p(!1),b(!1),m==null||m())}}):jsxRuntime.jsx("a",{href:`${o}${r}`,style:{color:u.colorPrimary,paddingRight:15},target:"_blank",children:r})})]})},Url=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,...e,children:jsxRuntime.jsx(LinkInput,{ooui:t,valueValidator:n=>n?isURL(n):!1})})};var isEmail$1={exports:{}},isByteLength={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var r=n(assertString.exports);function n(s){return s&&s.__esModule?s:{default:s}}function a(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?a=function(c){return typeof c}:a=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},a(s)}function o(s,l){(0,r.default)(s);var c,u;a(l)==="object"?(c=l.min||0,u=l.max):(c=arguments[1],u=arguments[2]);var d=encodeURI(s).split(/%..|./).length-1;return d>=c&&(typeof u>"u"||d<=u)}e.exports=t.default,e.exports.default=t.default})(isByteLength,isByteLength.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=g;var r=l(assertString.exports),n=l(merge.exports),a=l(isByteLength.exports),o=l(isFQDN.exports),s=l(isIP.exports);function l(v){return v&&v.__esModule?v:{default:v}}var c={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1,host_blacklist:[]},u=/^([^\x00-\x1F\x7F-\x9F\cX]+)</i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,m=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,x=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,h=254;function b(v){var y=v.replace(/^"(.+)"$/,"$1");if(!y.trim())return!1;var $=/[\.";<>]/.test(y);if($){if(y===v)return!1;var _=y.split('"').length===y.split('\\"').length;if(!_)return!1}return!0}function g(v,y){if((0,r.default)(v),y=(0,n.default)(y,c),y.require_display_name||y.allow_display_name){var $=v.match(u);if($){var _=$[1];if(v=v.replace(_,"").replace(/(^<|>$)/g,""),_.endsWith(" ")&&(_=_.substr(0,_.length-1)),!b(_))return!1}else if(y.require_display_name)return!1}if(!y.ignore_max_length&&v.length>h)return!1;var w=v.split("@"),O=w.pop(),S=O.toLowerCase();if(y.host_blacklist.includes(S))return!1;var j=w.join("@");if(y.domain_specific_validation&&(S==="gmail.com"||S==="googlemail.com")){j=j.toLowerCase();var T=j.split("+")[0];if(!(0,a.default)(T.replace(/\./g,""),{min:6,max:30}))return!1;for(var M=T.split("."),I=0;I<M.length;I++)if(!f.test(M[I]))return!1}if(y.ignore_max_length===!1&&(!(0,a.default)(j,{max:64})||!(0,a.default)(O,{max:254})))return!1;if(!(0,o.default)(O,{require_tld:y.require_tld})){if(!y.allow_ip_domain)return!1;if(!(0,s.default)(O)){if(!O.startsWith("[")||!O.endsWith("]"))return!1;var C=O.substr(1,O.length-2);if(C.length===0||!(0,s.default)(C))return!1}}if(j[0]==='"')return j=j.slice(1,j.length-1),y.allow_utf8_local_part?p.test(j):m.test(j);for(var P=y.allow_utf8_local_part?x:d,D=j.split("."),L=0;L<D.length;L++)if(!P.test(D[L]))return!1;return!(y.blacklisted_chars&&j.search(new RegExp("[".concat(y.blacklisted_chars,"]+"),"g"))!==-1)}e.exports=t.default,e.exports.default=t.default}(isEmail$1,isEmail$1.exports);const isEmail=getDefaultExportFromCjs(isEmail$1.exports),Email=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,...e,children:jsxRuntime.jsx(LinkInput,{ooui:t,linkPrefix:"mailto:",valueValidator:n=>n?isEmail(n):!1})})},GoToResourceModal=e=>{const{visible:t,onIdSubmitted:r,onCancel:n,isSearching:a}=e,{t:o}=React$s.useContext(LocaleContext$1);function s(l){r(l.id)}return jsxRuntime.jsx(antd.Modal,{title:o("goToResourceId"),centered:!0,open:t,footer:null,destroyOnClose:!0,onCancel:n,maskClosable:!1,children:jsxRuntime.jsxs(antd.Form,{layout:"vertical",onFinish:s,autoComplete:"off",children:[jsxRuntime.jsx(antd.Form.Item,{name:"id",label:o("searchId"),rules:[{required:!0,type:"number"}],children:jsxRuntime.jsx(antd.InputNumber,{style:{width:"100%"},autoFocus:!0})}),jsxRuntime.jsx(antd.Row,{align:"middle",justify:"end",children:jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CloseOutlined,{}),htmlType:"button",onClick:n,disabled:a,children:o("cancel")}),jsxRuntime.jsx(antd.Button,{loading:a,style:{marginLeft:15},icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:a,children:o("ok")})]})})})]})})},{useToken:useToken$4}=antd.theme;function ButtonWithBadge(e){const{badgeNumber:t=0,...r}=e,{token:n}=useToken$4();return jsxRuntime.jsxs("div",{style:{position:"relative"},children:[t>0&&jsxRuntime.jsx("div",{style:{position:"absolute",left:-10,top:-10,zIndex:2},children:jsxRuntime.jsx("span",{style:{display:"inline-block",minWidth:"22px",padding:"2px",borderRadius:"50%",fontSize:"12px",textAlign:"center",background:n.colorPrimaryBg,color:n.colorPrimaryHover},children:t})}),jsxRuntime.jsx(ButtonWithTooltip,{...r,style:{width:46,zIndex:0}})]})}function GraphActionBar({refreshGraph:e}){const{t}=React$s.useContext(LocaleContext$1),{availableViews:r,currentView:n,setCurrentView:a,searchParams:o,searchVisible:s,setSearchVisible:l,graphIsLoading:c,previousView:u,setPreviousView:d}=React$s.useContext(ActionViewContext);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(AntIcons.FilterOutlined,{style:{color:s?"white":void 0}}),tooltip:t("advanced_search"),type:s?"primary":"default",onClick:()=>{l==null||l(!s)},disabled:c,badgeNumber:o==null?void 0:o.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:t("refresh"),disabled:c,loading:!1,onClick:()=>{e()}}),jsxRuntime.jsx(ChangeViewButton,{currentView:n,availableViews:r,onChangeView:f=>{d==null||d(n),a==null||a(f)},disabled:!1,previousView:u})]})}const{useToken:useToken$3}=antd.theme,{Title:Title$1,Text:Text$1}=antd.Typography;function TitleHeader(e){const{title:t,children:r}=e,{title:n,currentView:a,currentId:o,currentItemIndex:s,results:l,totalItems:c,selectedRowItems:u}=React$s.useContext(ActionViewContext),{t:d}=React$s.useContext(LocaleContext$1),{token:f}=useToken$3();function m(){if((a==null?void 0:a.type)==="form")return o?c===0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{style:{color:"red"}})},children:o}),")"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("register")," ",s===void 0?1:s+1," /"," ",l.length," ",d("of")," ",c," - ",d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:o}),")"]}):"";if((a==null?void 0:a.type)==="tree"&&u){if(u.length===1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["1 ",d("selectedRegisters")," - (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:u[0].id}),")"]});if(u.length>1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u.length," ",d("selectedRegisters"),jsxRuntime.jsx(Text$1,{copyable:{text:u.map(x=>x.id).join(", ")}})]})}return null}return jsxRuntime.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[jsxRuntime.jsxs(antd.Row,{className:"shadow-md",style:{padding:"1em",borderRadius:f.borderRadius,backgroundColor:f.colorPrimaryBg},align:"middle",children:[jsxRuntime.jsxs(antd.Col,{flex:2,children:[jsxRuntime.jsx(Title$1,{level:3,style:{marginBottom:0},children:t||n}),m()]}),jsxRuntime.jsx(antd.Col,{flex:3,children:jsxRuntime.jsx(antd.Row,{justify:"end",children:r})})]}),jsxRuntime.jsx("div",{className:"pb-5"})]})}const GraphActionView=e=>{const{viewData:t,visible:r,model:n,context:a,domain:o,formView:s,treeView:l}=e,c=React$s.useRef(),u=React$s.useContext(ActionViewContext),{setResults:d=void 0,setCurrentItemIndex:f=void 0,currentId:m=void 0,results:x=void 0,setSelectedRowItems:p=void 0,setSearchParams:h=void 0,searchVisible:b=!0,setSearchVisible:g=void 0,sorter:v=void 0,setSorter:y=void 0,setTotalItems:$=void 0,setSearchTreeNameSearch:_=void 0,setTreeIsLoading:w=void 0,limit:O,setLimit:S,searchParams:j,searchValues:T,setSearchValues:M,currentView:I}=u||{},[C,P]=React$s.useState(!0);React$s.useEffect(()=>{var z;(z=c.current)==null||z.refresh()},[j]),React$s.useEffect(()=>{t.view_id!==I.view_id&&P(!0)},[I]);const{clear:D,searchFilterLoading:L,searchError:N,offset:B,tableRefreshing:q}=useSearch({model:n,setSearchTreeNameSearch:_,setSelectedRowItems:p,searchParams:j,setSearchValues:M,setSearchParams:h,setSearchVisible:g,setTreeIsLoading:w,context:a,formView:s,treeView:l,sorter:v,setSorter:y,setCurrentItemIndex:f,setResultsActionView:d,resultsActionView:x,domain:o,currentId:m,setActionViewTotalItems:$,limit:O,setLimit:S});return!r||!t?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{title:t.name,children:jsxRuntime.jsx(GraphActionBar,{refreshGraph:()=>{c.current.refresh()}})}),jsxRuntime.jsx(SearchFilter,{fields:{...l.fields,...s.fields},searchFields:mergeSearchFields([s.search_fields,l.search_fields]),formXml:s.arch,limit:O,onClear:D,offset:B,isSearching:L,onSubmit:z=>{P(!1),h==null||h(z.params),g==null||g(!1)},searchError:N,searchVisible:b,searchValues:T,showLimitOptions:!1}),q?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(Graph,{ref:c,view_id:t.view_id,model:n,context:a,domain:mergeParams(j||[],o),limit:C?O:void 0,manualIds:C?x==null?void 0:x.map(z=>z.id):void 0})]})},FormActionView=e=>{const{visible:t,formRef:r,model:n,currentId:a,domain:o,formView:s,context:l,defaultValues:c,forcedValues:u,results:d,setResults:f,setCurrentItemIndex:m}=e;return t?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(FormActionBar,{toolbar:s==null?void 0:s.toolbar})}),jsxRuntime.jsx(Form$1,{rootForm:!0,ref:r,model:n,defaultValues:c,forcedValues:u,formView:s,actionDomain:o,id:a,parentContext:l,onSubmitSucceed:(x,p)=>{d.findIndex(b=>b.id===x)===-1&&(d.push(p),f(d),m(d.length-1))}})]}):null};function SearchBar(e){const{onSearch:t,disabled:r=!1,searchText:n}=e,{t:a}=React$s.useContext(LocaleContext$1),[o]=antd.Form.useForm(),[s,l]=React$s.useState(!1);function c(d){t(d.search)}React$s.useEffect(()=>{o.setFieldsValue({search:n})},[n]);function u(){l(!1),o.setFieldsValue({search:void 0}),t(void 0)}return jsxRuntime.jsx(antd.Form,{form:o,onFinish:c,autoComplete:"off",children:jsxRuntime.jsxs(antd.Row,{align:"middle",justify:"end",children:[jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Form.Item,{name:"search",noStyle:!0,children:jsxRuntime.jsx(antd.Input,{autoFocus:!0,disabled:r,onChange:d=>{l(d.target.value.length>0)},style:{borderTopRightRadius:0,borderBottomRightRadius:0},suffix:(s||n&&n.length>0)&&jsxRuntime.jsx(antd.Tooltip,{title:a("clear"),children:jsxRuntime.jsx(AntIcons.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:u})})})})}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Button,{htmlType:"submit",disabled:r,style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},children:a("search")})})]})})}const ConfigContext=React__default.default.createContext({previewFeatures:!1});function TreeActionBar(e){var K;const{availableViews:t,currentView:r,setCurrentView:n,selectedRowItems:a,setRemovingItem:o,removingItem:s,duplicatingItem:l,setDuplicatingItem:c,currentModel:u,searchTreeRef:d,setCurrentId:f,setCurrentItemIndex:m,searchParams:x,searchVisible:p,setSearchVisible:h,setSearchTreeNameSearch:b,searchTreeNameSearch:g,treeIsLoading:v,setPreviousView:y,previousView:$,results:_,limit:w,totalItems:O}=React$s.useContext(ActionViewContext),{parentContext:S={},treeExpandable:j,toolbar:T}=e,{previewFeatures:M}=React$s.useContext(ConfigContext),{t:I,lang:C}=React$s.useContext(LocaleContext$1),P=React$s.useContext(ContentRootContext),{processAction:D}=P||{},[L,N]=React$s.useState(!1),B=g!==void 0&&g.trim().length>0;function q(){showDialog$9({confirmMessage:I("confirmRemove"),lang:C,onOk:()=>{z()}})}async function z(){var H;try{o==null||o(!0),await ConnectionProvider.getHandler().delete({model:u,ids:a.map(V=>V.id)}),f==null||f(void 0),m==null||m(void 0),(H=d==null?void 0:d.current)==null||H.refreshResults()}catch(V){showDialog$8(V)}finally{o==null||o(!1)}}async function Y(){var H;try{c==null||c(!0);const V=a[0].id;await ConnectionProvider.getHandler().duplicate({id:V,model:u,context:{...S}})&&((H=d==null?void 0:d.current)==null||H.refreshResults())}catch(V){showDialog$8(V)}finally{c==null||c(!1)}}function W(H){D==null||D({actionData:H,values:{active_id:a==null?void 0:a.map(V=>V.id)[0],active_ids:a==null?void 0:a.map(V=>V.id)},fields:{},context:{...S,active_id:a==null?void 0:a.map(V=>V.id)[0],active_ids:a==null?void 0:a.map(V=>V.id)},onRefreshParentValues:()=>{var V;(V=d==null?void 0:d.current)==null||V.refreshResults()}})}return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[j?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchBar,{disabled:l||s||v,searchText:g,onSearch:H=>{H&&H.trim().length>0?b==null||b(H):b==null||b(void 0)}}),!j&&jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(AntIcons.FilterOutlined,{style:{color:p?"white":void 0}}),tooltip:I("advanced_search"),type:p?"primary":"default",onClick:()=>{h==null||h(!p)},disabled:l||s||v,badgeNumber:x==null?void 0:x.length}),separator$1(),jsxRuntime.jsx(NewButton,{disabled:v}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{}),tooltip:I("duplicate"),disabled:!a||(a==null?void 0:a.length)!==1||l||v,loading:l,onClick:Y}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.DeleteOutlined,{}),tooltip:I("delete"),disabled:!(a&&(a==null?void 0:a.length)>0)||v,loading:s,onClick:q}),separator$1()]}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.InfoCircleOutlined,{}),tooltip:I("showLogs"),disabled:!(a&&(a==null?void 0:a.length)>0)||v,loading:!1,onClick:()=>{showLogInfo(u,a[0].id,I)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:I("refresh"),disabled:l||s||v,loading:!1,onClick:()=>{var H;(H=d==null?void 0:d.current)==null||H.refreshResults()}}),!j&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(ChangeViewButton,{currentView:r,availableViews:t,onChangeView:H=>{y==null||y(r),n==null||n(H)},previousView:$,disabled:v})]}),separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:I("actions"),items:T==null?void 0:T.action,onItemClick:H=>{!H||W(H)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:I("reports"),items:T==null?void 0:T.print,onItemClick:H=>{!H||W({...H,datas:{...H.datas||{},ids:a.map(V=>V.id)}})}}),M&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons__default.default,{component:()=>jsxRuntime.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:[jsxRuntime.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),jsxRuntime.jsx("ellipse",{cx:"12",cy:"6",rx:"8",ry:"3"}),jsxRuntime.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"}),jsxRuntime.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:I("export"),items:[{id:"print_screen",name:I("printScreen")},{id:"export",name:I("advancedExport")}],onItemClick:H=>{if(H.id==="print_screen"){let V=(a==null?void 0:a.map(F=>F.id))||[];V.length===0&&(V=(_==null?void 0:_.map(F=>F.id))||[]),W({id:-1,model:u,report_name:"printscreen.list",type:"ir.actions.report.xml",datas:{model:u,ids:V}});return}N(!0)},disabled:l||s||v||B}),jsxRuntime.jsx(ExportModal,{visible:L,locale:C,onClose:()=>N(!1),model:u,domain:mergeParams(((K=d==null?void 0:d.current)==null?void 0:K.getDomain())||[],x||[]),limit:w,totalRegisters:O||0,selectedRegistersToExport:a,visibleRegisters:(_==null?void 0:_.length)||0,context:S})]})]})}function separator$1(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const TreeActionView=e=>{const{visible:t,searchTreeRef:r,model:n,context:a,formView:o,treeView:s,domain:l,setCurrentItemIndex:c,results:u,setCurrentId:d,setCurrentView:f,availableViews:m,searchTreeNameSearch:x}=e,{currentView:p,setPreviousView:h}=React$s.useContext(ActionViewContext);return t?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(TreeActionBar,{toolbar:s==null?void 0:s.toolbar,parentContext:a,treeExpandable:(s==null?void 0:s.isExpandable)||!1})}),jsxRuntime.jsx(SearchTree$1,{ref:r,rootTree:!0,model:n,parentContext:a,nameSearch:x,formView:o,treeView:s,domain:l,onRowClicked:b=>{const{id:g}=b;d(g);const v=u.findIndex($=>$.id===g);h==null||h(p),c(v);const y=m.find($=>$.type==="form");f(y)}})]}):null},DashboardActionContext=React__default.default.createContext(null),DashboardActionProvider=e=>{const[t,r]=React$s.useState(!1),[n,a]=React$s.useState(!1),{children:o,dashboardRef:s,openAction:l}=e;return jsxRuntime.jsx(DashboardActionContext.Provider,{value:{isLoading:t,setIsLoading:r,dashboardRef:s,openAction:l,moveItemsEnabled:n,setMoveItemsEnabled:a},children:o})};function DashboardActionBar(){const{isLoading:e,dashboardRef:t,moveItemsEnabled:r,setMoveItemsEnabled:n}=React$s.useContext(DashboardActionContext),{t:a}=React$s.useContext(LocaleContext$1);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.BorderOuterOutlined,{style:{color:r?"white":void 0}}),type:r?"primary":"default",tooltip:a("moveDashboard"),disabled:e,loading:!1,onClick:()=>{n(!r)}}),separator(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.SettingOutlined,{}),tooltip:a("configDashboard"),disabled:e,loading:!1,onClick:()=>{t==null||t.current.configDashboard()}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:a("refresh"),disabled:e,loading:!1,onClick:()=>{t==null||t.current.refresh()}})]})}function separator(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const DashboardActionView=e=>{const{dashboardData:t}=e,r=React$s.useRef(),n=React$s.useContext(TabManagerContext),{openShortcut:a}=n||{};return t?jsxRuntime.jsxs(DashboardActionProvider,{dashboardRef:r,openAction:o=>{a(o)},children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(DashboardActionBar,{})}),jsxRuntime.jsx(Dashboard$1,{ref:r,model:t.model,id:t.id,context:t==null?void 0:t.context,configAction:t==null?void 0:t.configAction})]}):null};function ActionView(e,t){const{domain:r,model:n,context:a,views:o,title:s,setCanWeClose:l,tabKey:c,initialView:u,formDefaultValues:d,formForcedValues:f={},res_id:m=!1,action_id:x,action_type:p,treeExpandable:h=!1,limit:b}=e,[g,v]=React$s.useState(),[y,$]=React$s.useState([]),[_,w]=React$s.useState(!0),O=m||void 0,[S,j]=React$s.useState(O),[T,M]=React$s.useState([]),[I,C]=React$s.useState(),[P,D]=React$s.useState([]),[L,N]=React$s.useState(),[B,q]=React$s.useState(0),[z,Y]=React$s.useState(!1),[W,K]=React$s.useState(!1),[H,V]=React$s.useState(),{t:F}=React$s.useContext(LocaleContext$1),k=React$s.useRef(),G=React$s.useRef(),X=React$s.useContext(TabManagerContext),{setCurrentView:Q,setCurrentId:A,tabs:E,activeKey:U,openAction:J,onRemoveTab:ne}=X||{};reactHotkeysHook.useHotkeys("ctrl+g,command+g",ee=>{ee.preventDefault(),de()},[U,E,g,I,P]);function Z(ee){j(ee),A==null||A(ee)}function le(ee){v(ee),Q==null||Q(ee)}React$s.useImperativeHandle(t,()=>({canWeClose:ie}));const ae=async()=>{w(!0);const ee=[];for(const pe of o){const[je,he]=pe;let Ie;try{he!=="dashboard"&&(Ie=await ConnectionProvider.getHandler().getView({model:n,type:he,id:je,context:a}))}catch($e){console.error(`${n} - ${he}\xA0- ${JSON.stringify($e,null,2)}`);continue}switch(he){case"dashboard":{const $e=o.find(Pe=>{const[,Se]=Pe;return Se==="form"});let Me;$e&&(Me={action_id:x,action_type:p,name:s,res_id:a.active_id,res_model:n,view_id:$e[0],view_type:$e[1]}),ee.push({type:"dashboard",id:a.active_id,model:n,context:a,configAction:Me});break}case"form":{ee.push({...Ie,type:he});break}case"tree":{ee.push({...Ie,isExpandable:h,type:he});break}case"graph":{ee.push({...Ie,type:he});break}}}let se;!u&&ee.find(pe=>pe.type==="tree")?se=ee.find(je=>je.type==="tree"):u?se=ee.find(je=>u.id?je.type===u.type&&je.view_id===u.id:je.type===u.type):se=ee.find(je=>je.type==="form"),se||(showDialog$8(`Error determining the first view to show for model ${n}.
250
250
  Please, make sure the view ids on the fields_view_get responses are the same as the ones defined in the action`),ne==null||ne(c)),le(se),$(ee),w(!1)};l({tabKey:c,canWeClose:ie}),React$s.useEffect(()=>{const ee=y.find(pe=>pe.type==="tree"),se=y.find(pe=>u.id?pe.type===u.type&&pe.view_id===u.id:pe.type===u.type);le(se||ee),m?A==null||A(O):(Z(void 0),C(void 0)),ae()},[n,o,m]),React$s.useEffect(()=>{U===c&&(A==null||A(S),Q==null||Q(g))},[E,U]);async function ie(){return g&&g.type==="form"?await k.current.cancelUnsavedChanges():!0}async function de(){U===c&&(g.type==="form"&&!await k.current.cancelUnsavedChanges()||Y(!0))}async function ge(ee){var he;K(!0);const se=P.findIndex(Ie=>Ie.id===ee);let pe;if(se===-1){try{pe=(he=await ConnectionProvider.getHandler().readObjects({model:n,ids:[ee],context:a}))==null?void 0:he[0]}catch{}if(!pe){K(!1),Y(!1),showDialog$7(F("idNotFound"));return}}else pe=P[se];K(!1),Y(!1);const je=o.find(Ie=>Ie[1]==="form");J({domain:[],context:a,model:n,views:o,title:s,target:"current",initialView:{id:je==null?void 0:je[0],type:"form"},action_id:x,action_type:p,res_id:ee})}function Re(){return y.map(ee=>{switch(ee.type){case"form":return jsxRuntime.jsx(FormActionView,{formRef:k,currentId:S,visible:g.type===ee.type&&g.view_id===ee.view_id,formView:ee,model:n,context:a,domain:r,defaultValues:d,forcedValues:f,results:P,setResults:D,setCurrentItemIndex:C},`${ee.type}-${ee.view_id}`);case"tree":return jsxRuntime.jsx(TreeActionView,{visible:g.type===ee.type&&g.view_id===ee.view_id,limit:b,model:n,context:a,domain:r,formView:y.find(se=>se.type==="form"),treeView:ee,searchTreeRef:G,searchTreeNameSearch:H,availableViews:y,results:P,setCurrentItemIndex:C,setCurrentId:Z,setCurrentView:le},`${ee.type}-${ee.view_id}`);case"graph":return jsxRuntime.jsx(GraphActionView,{visible:g.type===ee.type&&g.view_id===ee.view_id,viewData:ee,model:n,context:a,domain:r,treeView:y.find(se=>se.type==="tree"),formView:y.find(se=>se.type==="form")},`${ee.type}-${ee.view_id}`);case"dashboard":return jsxRuntime.jsx(DashboardActionView,{dashboardData:ee},`${ee.type}-${ee.view_id}`)}})}function _e(){if(S===void 0&&g.type==="form")k.current.clearAndReload();else{Z(void 0);const ee=y.find(se=>se.type==="form");le(ee)}}return _?jsxRuntime.jsx(antd.Spin,{}):g?jsxRuntime.jsxs(ActionViewProvider,{title:s,currentView:g,setCurrentView:le,availableViews:y,formRef:k,searchTreeRef:G,onNewClicked:_e,currentId:S,setCurrentId:Z,setCurrentItemIndex:C,currentItemIndex:I,results:P,setResults:D,currentModel:n,sorter:L,setSorter:N,totalItems:B,setTotalItems:q,selectedRowItems:T,setSelectedRowItems:M,setSearchTreeNameSearch:V,searchTreeNameSearch:H,goToResourceId:ge,limit:b,children:[Re(),jsxRuntime.jsx(GoToResourceModal,{visible:z,onIdSubmitted:ge,isSearching:W,onCancel:()=>{Y(!1)}})]}):null}const ActionView$1=React$s.forwardRef(ActionView);var getRandomValues,rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const REGEX=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(e){return typeof e=="string"&&REGEX.test(e)}for(var byteToHex=[],i=0;i<256;++i)byteToHex.push((i+256).toString(16).substr(1));function stringify(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=(byteToHex[e[t+0]]+byteToHex[e[t+1]]+byteToHex[e[t+2]]+byteToHex[e[t+3]]+"-"+byteToHex[e[t+4]]+byteToHex[e[t+5]]+"-"+byteToHex[e[t+6]]+byteToHex[e[t+7]]+"-"+byteToHex[e[t+8]]+byteToHex[e[t+9]]+"-"+byteToHex[e[t+10]]+byteToHex[e[t+11]]+byteToHex[e[t+12]]+byteToHex[e[t+13]]+byteToHex[e[t+14]]+byteToHex[e[t+15]]).toLowerCase();if(!validate(r))throw TypeError("Stringified UUID is invalid");return r}function v4(e,t,r){e=e||{};var n=e.random||(e.rng||rng)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(var a=0;a<16;++a)t[r+a]=n[a];return t}return stringify(n)}async function fetchAction({actionId:e,rootContext:t={},globalValues:r={}}){const n="ir.actions.act_window",a=`${n},${e}`,o=await ConnectionProvider.getHandler().getActionData({action:a,context:t}),s=ooui.parseContext({context:o.context,values:r,fields:{}}),l=o.domain?await ConnectionProvider.getHandler().evalDomain({domain:o.domain,values:r,context:{...t,...s}}):[],{res_model:c,views:u,name:d,limit:f,view_type:m}=o,x=m==="tree",p=[];for(const v of u){const[y,$]=v;if(y)p.push(v);else{const{view_id:_}=await ConnectionProvider.getHandler().getView({model:c,type:$,id:y,context:{...t,...s}});p.push([_,$])}}const[h,b]=p[0],g={id:h,type:b};return{title:d,actionId:e,actionType:n,key:v4(),views:u,model:c,context:{...t,...s},domain:l,initialView:g,limit:f,treeExpandable:x}}const styles$1="",styles="",ResponsiveReactGridLayout=reactGridLayout.WidthProvider(reactGridLayout.Responsive),DashboardGrid=e=>{const{children:t=[],onPositionItemsChanged:r}=e,n=React__default.default.Children.map(t,a=>{const{parms:o,id:s}=a.props;return jsxRuntime.jsx("div",{"data-grid":o,children:a},s)});return jsxRuntime.jsx(ResponsiveReactGridLayout,{className:"layout",cols:{lg:12,md:10,sm:6,xs:4,xxs:2},draggableHandle:".draggable-head",rowHeight:30,onLayoutChange:a=>{r==null||r(a.map(o=>({id:parseInt(o.i.replace(".$",""),10),x:o.x,y:o.y,w:o.w,h:o.h})))},children:n})},{useToken:useToken$2}=antd.theme,{Text}=antd.Typography,DashboardGridItem=e=>{const{title:t,children:r,action:n,openAction:a}=e,{token:o}=useToken$2();return jsxRuntime.jsxs("div",{className:"shadow-md",style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid #eee",backgroundColor:"white",borderRadius:o.borderRadius},children:[jsxRuntime.jsxs(antd.Row,{align:"middle",style:{borderBottom:"1px solid #ddd",backgroundColor:o.colorPrimaryBg},wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"auto",className:"draggable-head",style:{fontWeight:"bold",padding:"0.5rem",cursor:"grab",overflow:"hidden"},children:jsxRuntime.jsx(Text,{ellipsis:!0,children:t})}),n&&jsxRuntime.jsx(antd.Col,{flex:"25px",style:{padding:"0.5rem"},children:jsxRuntime.jsx(antd.Row,{justify:"end",align:"middle",children:jsxRuntime.jsx(AntIcons.ExportOutlined,{style:{cursor:"pointer"},onClick:()=>{a==null||a(n)}})})})]}),r]})},DEFAULT_SEARCH_LIMIT=80;function DashboardTree(e){const{action:t,model:r,view_id:n,onRowClicked:a,domain:o=[],visible:s=!0,parentContext:l={}}=e,[c,u]=React$s.useState(!1),[d,f]=React$s.useState(!1),[m,x]=React$s.useState(),[p,h]=React$s.useState(),[b,g]=React$s.useState(),[v,y]=React$s.useState(1),[$,_]=React$s.useState(0),w=React$s.useRef(DEFAULT_SEARCH_LIMIT),O=React$s.useRef([]),[S,j]=React$s.useState(0),[T,M]=React$s.useState([]),[I,C]=React$s.useState(void 0),[P,D]=React$s.useState(),[L,N]=React$s.useState(),[B,q]=React$s.useState(),[z,Y]=React$s.useState(!1),W=React$s.useRef([]),K=A=>{Y(!0),y(A),_((A-1)*w.current)},H=async()=>{const A=W.current.length>0?W.current:o,E=mergeParams(O.current,A),{colors:U}=getTree(p),{totalItems:J,results:ne,attrsEvaluated:Z}=await ConnectionProvider.getHandler().searchForTree({params:E,limit:w.current,offset:$,model:m,fields:p.fields,context:l,attrs:U&&{colors:U}}),le=await J;j(le),C(getColorMap(Z));const ae=sortResults({resultsToSort:ne,sorter:P,fields:{...p.fields,...b.fields}});M(ae)},V=async()=>{try{Y(!0),await H()}catch(A){N(JSON.stringify(A))}finally{Y(!1)}};React$s.useEffect(()=>{!d||s&&V()},[v,$,d,s]);const F=async A=>{f(!1),u(!0),q(void 0);try{A==="action"?await k():await G(),f(!0)}catch(E){q(E)}finally{u(!1)}},k=async()=>{const A=await ConnectionProvider.getHandler().getViewsForAction({action:t,context:l});W.current=A.domain,g(A.views.get("form")),h(A.views.get("tree")),x(A.model),w.current=A.limit},G=async()=>{x(r);const A=await ConnectionProvider.getHandler().getView({model:r,type:"form",context:l});g(A);const E=await ConnectionProvider.getHandler().getView({model:r,type:"tree",id:n,context:l});h(E)};React$s.useEffect(()=>{t?F("action"):r&&F("model")},[t,r]);const X=A=>{const{id:E}=A;a({id:E,model:m,treeView:p})},Q=()=>!p||!b?null:jsxRuntime.jsxs("div",{style:{overflowY:"scroll"},children:[L&&jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:L,type:"error",banner:!0}),jsxRuntime.jsx(Tree,{showPagination:!1,total:S,limit:w.current,page:v,treeView:p,results:T,onRequestPageChange:K,loading:z,onRowClicked:X,colorsForResults:I,sorter:P,onChangeSort:A=>{D==null||D(A);const E=sortResults({resultsToSort:T,sorter:A,fields:{...p.fields,...b.fields}});M(E)},context:l})]});return B?jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:B,type:"error",banner:!0}):c?jsxRuntime.jsx(antd.Spin,{style:{padding:"2rem"}}):Q()}const DashboardForm=e=>{const{model:t}=e,[r,n]=React$s.useState();React$s.useEffect(()=>{a()},[t]);async function a(){const o=await ConnectionProvider.getHandler().search({params:[],model:t,limit:1});o.length>0&&n(o[0].id)}return jsxRuntime.jsx("div",{style:{padding:"0.5rem",overflowY:"scroll"},children:jsxRuntime.jsx(Form$1,{...e,model:t,id:r,readOnly:!0})})},itemsField="line_ids";function Dashboard(e,t){const{model:r,context:n={},id:a,configAction:o}=e,[s,l]=React$s.useState([]),[c,u]=React$s.useState(!1),[d,f]=React$s.useState(),{setIsLoading:m,openAction:x,moveItemsEnabled:p}=React$s.useContext(DashboardActionContext),h=React$s.useRef(),b=React$s.useRef();React$s.useEffect(()=>{g()},[r,a,n]),React$s.useImperativeHandle(t,()=>({refresh:()=>{g()},configDashboard:O}));async function g(){u(!0),m(!0),f(void 0);try{const S=await v(),j=await $(S),T=S.fields[itemsField].relation,M=j[itemsField].items;b.current=S.fields;const I=await y({items:M,model:T,context:n}),C=await _(I);l(C),u(!1),m(!1)}catch(S){f(JSON.stringify(S))}}async function v(){return await ConnectionProvider.getHandler().getView({model:r,type:"form",context:n})}async function y({items:S,model:j,context:T}){h.current=(await ConnectionProvider.getHandler().getView({model:j,type:"form",context:T})).fields;const[M]=await readObjectValues({treeView:{fields:h.current},formView:{fields:h.current},model:j,items:S,context:T,currentView:"form"});return M}async function $(S){return(await ConnectionProvider.getHandler().readObjects({model:r,ids:[a],fields:S.fields,context:n}))[0]}async function _(S){const j=[];for(const T of S){const{values:M}=T;if(M.action_id&&M.action_id.length>0){const I=parseInt(M.action_id[0],10),C=await fetchAction({actionId:I,rootContext:n});j.push({...T,actionData:C})}}return j}async function w(S){if(!p)return;const j=S.filter(C=>{const P=s.find(L=>L.id===C.id);if(!P)return!1;if(!P.position)return!0;const D={...JSON.parse(P.position.replace(/'/g,'"')),id:P.id};return JSON.stringify(C)!==JSON.stringify(D)});if(j.length===0)return;const M=s.filter(C=>j.map(P=>P.id).includes(C.id)).map(C=>{const P={...j.find(D=>D.id===C.id)};return delete P.id,{...C},{...C,operation:"pendingUpdate",values:{...C.values,position:JSON.stringify(P).replace(/"/g,"'")}}}),I={fields:h.current,items:M};await ConnectionProvider.getHandler().update({model:r,id:a,values:{[itemsField]:I},fields:b.current,context:n})}async function O(){x(o)}return d?(console.log(d),jsxRuntime.jsx(antd.Alert,{className:"mt-10 mb-20",message:d,type:"error",banner:!0})):c?jsxRuntime.jsx(AntIcons.LoadingOutlined,{}):jsxRuntime.jsx(DashboardGrid,{onPositionItemsChanged:w,children:s.map((S,j)=>{const{actionData:T,values:M}=S,{position:I,id:C}=M,{actionId:P,actionType:D,key:L,title:N,views:B,model:q,context:z,domain:Y,initialView:W,limit:K}=T;let H={};try{H=JSON.parse(I.replace(/'/g,'"'))}catch{H={x:j*2,y:0,w:2,h:3}}let V=null;if((W==null?void 0:W.type)==="graph")V=jsxRuntime.jsx(Graph,{view_id:B.filter(G=>G[1]==="graph")[0][0],model:q,context:z,domain:Y,limit:K});else if((W==null?void 0:W.type)==="form")V=jsxRuntime.jsx(DashboardForm,{model:q,actionDomain:Y});else if((W==null?void 0:W.type)==="tree")V=jsxRuntime.jsx(DashboardTree,{model:q,domain:Y,view_id:B.filter(G=>G[1]==="tree")[0][0],onRowClicked:G=>{const X=B.find(Q=>{const[,A]=Q;return A==="form"});if(X){const[Q,A]=X,{actionId:E,actionType:U,title:J,model:ne}=T,Z={action_id:E,action_type:U,name:J,res_id:G.id,res_model:ne,view_id:Q,view_type:A};x(Z)}}});else if(W!==void 0){const G=W&&Array.isArray(W.id)?{...W,id:W.id[0]}:W;V=jsxRuntime.jsx(ActionView$1,{action_id:P,action_type:D,tabKey:L,title:N,views:B,model:q,context:z,domain:Y,setCanWeClose:()=>{},initialView:G,limit:K})}let F;const k=B.find(G=>{const[,X]=G;return X==="tree"});if(k){const[G,X]=k,{actionId:Q,actionType:A,title:E,model:U}=T;F={action_id:Q,action_type:A,name:E,res_id:!1,res_model:U,view_id:G,view_type:X}}return jsxRuntime.jsx(DashboardGridItem,{id:C,title:N,parms:H,action:F,openAction:x,children:V},C)})})}const Dashboard$1=React$s.forwardRef(Dashboard),Tag=e=>jsxRuntime.jsx(Field$1,{...e,children:jsxRuntime.jsx(TagInput,{...e})}),TagInput=e=>{const{ooui:t,value:r}=e;if(!r)return null;const n=t.colors==="auto"?colorFromString(r):t.colors[r];return jsxRuntime.jsx(antd.Tag,{color:n,children:t.selectionValues.get(r)})},MultiCheckbox=e=>{const{ooui:t}=e;return jsxRuntime.jsx(Field$1,{type:"array",...e,children:jsxRuntime.jsx(MultiCheckboxInput,{ooui:t})})},MultiCheckboxInput=e=>{const{value:t,ooui:r,onChange:n}=e,{items:a=[]}=t||{},o=a.filter(S=>S.operation!=="pendingRemove").map(S=>S.id),[s,l]=React$s.useState([]),[c,u]=React$s.useState(),[d,f]=React$s.useState(!1),{relation:m,context:x,readOnly:p,field:h,columns:b}=r,g=React$s.useContext(FormContext$2),{getContext:v}=g||{};useDeepCompareEffect__default.default(()=>{$()},[a]);const y=S=>{n==null||n({items:S})};async function $(){f(!0);let S=[];if(r.domain){const j=await ConnectionProvider.getHandler().evalDomain({domain:r.domain,values:transformPlainMany2Ones({fields:g==null?void 0:g.getFields(),values:g.getPlainValues()}),fields:g==null?void 0:g.getFields(),context:g.getContext()});S=[...S,...j]}try{const T=(await ConnectionProvider.getHandler().search({model:m,params:S,fields:[h],context:{...v==null?void 0:v(),...x}})).map(M=>{const I=M[h];let C=I;return Array.isArray(I)&&(C=I[1]),{label:C,value:M.id}});l(T)}catch(j){u(j)}finally{f(!1)}if(c)return jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:c,type:"error",banner:!0})}const _=()=>{O(s.map(S=>S.value))},w=()=>{O([])},O=S=>{const j=a.map(M=>S.includes(M.id)?M.operation=="pendingRemove"?{...M,operation:"original"}:M:{id:M.id,operation:"pendingRemove"}),T=j.map(M=>M.id);S.filter(M=>!T.includes(M)).map(M=>{j.push({id:M,operation:"pendingLink"})}),y(j)};return d&&s.length===0?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{className:"flex flex-row",children:[jsxRuntime.jsx(antd.Checkbox.Group,{value:s.length?o:[],disabled:p,onChange:O,style:{width:"100%"},children:jsxRuntime.jsx(antd.Row,{children:s.map(S=>jsxRuntime.jsx(antd.Col,{span:Math.floor(24/b),children:jsxRuntime.jsx(antd.Checkbox,{value:S.value,children:S.label})}))})}),!p&&jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{onClick:_,disabled:o.length==s.length,children:"Check all"}),jsxRuntime.jsx(antd.Button,{onClick:w,disabled:o.length===0,children:"Uncheck all"})]})]})})},Markdown=e=>jsxRuntime.jsx(Field$1,{...e,children:jsxRuntime.jsx(MarkdownInput,{...e})}),MarkdownInput=e=>{const{value:t,ooui:r}=e;return jsxRuntime.jsx("div",{style:{height:r.height?r.height+"px":"100%",overflow:"auto"},children:jsxRuntime.jsx(ReactMarkdown__default.default,{children:t,className:"ant-typography"})})},Radio=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,type:"any",...e,children:jsxRuntime.jsx(SelectionInput,{...e})})},SelectionInput=e=>{const{ooui:t,onChange:r,value:n}=e,{selectionValues:a,readOnly:o,direction:s}=t,l=Array.from(a.entries()),c=l&&l.length&&l.map(u=>{const[d,f]=u;return jsxRuntime.jsx(antd.Radio,{value:d,children:f},d)});return jsxRuntime.jsx(antd.Radio.Group,{disabled:o,onChange:r,value:n,children:jsxRuntime.jsx(antd.Space,{direction:s,children:c})})},Switch=e=>{const{ooui:t}=e,{id:r,readOnly:n,required:a}=t;return jsxRuntime.jsx(Field$1,{...e,valuePropName:"checked",children:jsxRuntime.jsx(SwitchInput,{id:r,readOnly:n,required:a})})},SwitchInput=e=>{const{required:t,readOnly:r,...n}=e;return jsxRuntime.jsx("div",{className:"flex flex-row",children:jsxRuntime.jsx(antd.Switch,{disabled:r,...n})})},Steps=e=>{const{ooui:t}=e,{required:r}=t;return jsxRuntime.jsx(Field$1,{required:r,type:"any",...e,children:jsxRuntime.jsx(StepsInput,{...e})})},StepsInput=e=>{const{ooui:t,value:r}=e,{selectionValues:n,errorField:a}=t,o=React$s.useContext(FormContext$2),s=Array.from(n.entries()),l=s.map(d=>d[0]).indexOf(r);let c="process",u="";return a&&(u=o.getFieldValue(a),u&&(c="error")),jsxRuntime.jsx(antd.Steps,{current:l,status:c,children:s.map((d,f)=>jsxRuntime.jsx(antd.Steps.Step,{title:d[1],description:f===l&&c==="error"?u:null}))})},CodeEditor=e=>{const{ooui:t}=e,{lang:r,height:n}=t,a=React$s.useContext(FormContext$2),{elementHasLostFocus:o}=a||{},s=l=>{l.onDidBlurEditorWidget(o)};return jsxRuntime.jsx(Field$1,{...e,children:jsxRuntime.jsx(Editor__default.default,{defaultLanguage:r||"",height:n||300,onMount:s})})},{Content}=antd.Layout,{Title}=antd.Typography;function Welcome(){const{t:e}=React$s.useContext(LocaleContext$1);return jsxRuntime.jsx(Content,{className:"m-5 select-none",children:jsxRuntime.jsx(Title,{level:5,children:e("welcome")})})}function RootView(e,t){const{children:r,globalValues:n={},rootContext:a={},lang:o}=e,[s,l]=React$s.useState("welcome"),[c,u]=React$s.useState([{title:tForLang("welcome",o),key:"welcome",closable:!0,content:jsxRuntime.jsx(Welcome,{})}]),d=React$s.useRef(new Map),f=React$s.useRef();React$s.useImperativeHandle(t,()=>({retrieveAndOpenAction:p,openShortcut:g}));function m($){if($===s){const _=c.findIndex(w=>w.key===$);c[_-1]&&l(c[_-1].key),c[_+1]&&l(c[_+1].key)}u(c.filter(_=>_.key!==$)),d.current.delete($)}function x({tabKey:$,canWeClose:_}){d.current.set($,_)}async function p({action:$,values:_,forced_values:w,initialViewType:O,res_id:S,domain:j=[]}){const T=await ConnectionProvider.getHandler().getActionData({action:$,context:a});if(T.type==="ir.actions.wizard"){showDialog$8("Action type not supported");return}const[M,I]=$.split(","),C=parseInt(I),P=ooui.parseContext({context:T.context,values:n,fields:{}}),D=T.domain?await ConnectionProvider.getHandler().evalDomain({domain:T.domain,values:n,context:{...a,...P}}):[],{res_model:L,views:N,name:B,target:q,view_type:z,limit:Y}=T,W=z==="tree",K=[];for(const V of N){const[F,k]=V;if(F)K.push(V);else if(k==="dashboard")K.push([void 0,"dashboard"]);else{const{view_id:G}=await ConnectionProvider.getHandler().getView({model:L,type:k,id:F,context:{...a,...P}});K.push([G,k])}}let H;if(O){const[V,F]=K.find(([k,G])=>G===O);H={id:V,type:F}}else{const[V,F]=K[0];H={id:V,type:F}}y({domain:[...D,...j],context:{...a,...P},model:L,views:K,title:B,target:q,initialView:H,action_type:M,action_id:C,values:_,forced_values:w,res_id:S,treeExpandable:W,limit:Y})}function h({title:$,content:_,key:w,action:O}){let S=[...c];c.length===1&&c[0].key==="welcome"&&(S=[...c.filter(j=>j.key!=="welcome")]),u([...S,{title:$,key:w,closable:!0,content:_,action:O}]),l(w)}async function b({relateData:$,fields:_,values:w,action_id:O,action_type:S}){const{res_model:j,context:T,domain:M,views:I,target:C,string:P,limit:D}=$,[L,N]=I[0],B={id:L,type:N},q=ooui.parseContext({context:T,values:{...w,...n},fields:_}),z=M?await ConnectionProvider.getHandler().evalDomain({domain:M,values:transformPlainMany2Ones({fields:_,values:{...w,...n}}),fields:_,context:{...a,...q}}):[];y({model:j,target:C,views:I,context:{...a,...q},domain:z,title:P,initialView:B,action_id:O,action_type:S,limit:D})}async function g($){const{action_id:_,action_type:w,res_id:O,view_id:S}=$,j=`${w},${_}`,T=await ConnectionProvider.getHandler().getActionData({action:j,context:a}),M=ooui.parseContext({context:T.context,values:n,fields:{}}),I=T.domain?await ConnectionProvider.getHandler().evalDomain({domain:T.domain,values:n,context:{...a,...M}}):[],{res_model:C,views:P,name:D,target:L,view_type:N,limit:B}=T,q=N==="tree",z=[];for(const H of P){const[V,F]=H;if(V)z.push(H);else if(F==="dashboard")z.push([void 0,"dashboard"]);else{const{view_id:k}=await ConnectionProvider.getHandler().getView({model:C,type:F,id:V,context:{...a,...M}});z.push([k,F])}}let Y,W;if(S==null){const H=z.find(V=>V[0]===void 0);Y=void 0,W=H[1]}else[Y,W]=z.find(H=>H[0]===void 0?!1:H[0]===S);const K={id:Y,type:W};y({domain:I,context:{...a,...M},model:C,views:z,title:D,target:L,initialView:K,action_id:_,action_type:w,res_id:O,treeExpandable:q,limit:B})}async function v({model:$,values:_,forced_values:w,initialViewType:O,res_id:S,domain:j}){const T=await ConnectionProvider.getHandler().getActionStringForModel($);await p({action:T,values:_,forced_values:w,initialViewType:O,res_id:S,domain:j})}async function y({domain:$,context:_,model:w,views:O,title:S,target:j,initialView:T,action_id:M,action_type:I,res_id:C,values:P,forced_values:D,treeExpandable:L=!1,limit:N}){const B=v4();if(j!=="current"){const q=await ConnectionProvider.getHandler().getView({model:w,type:"form",id:T.type==="form"?T.id:void 0,context:{...a,..._}});f.current.openActionModal({domain:$,model:w,formView:q,context:{...a,..._},actionData:{action_id:M,action_type:I,res_id:C,view_id:q.view_id}})}else{const q=T&&Array.isArray(T.id)?{...T,id:T.id[0]}:T;h({title:S,action:{id:M,type:I},content:jsxRuntime.jsx(ActionView$1,{action_id:M,action_type:I,tabKey:B,title:S,views:O,model:w,context:{...a,..._},domain:$,setCanWeClose:x,initialView:q,res_id:C,formDefaultValues:P,formForcedValues:D,treeExpandable:L,limit:N}),key:B})}}return jsxRuntime.jsx(LocaleContextProvider,{lang:o,children:jsxRuntime.jsx(TabManagerProvider,{openShortcut:g,openAction:y,openRelate:b,openDefaultActionForModel:v,tabs:c,activeKey:s,onRemoveTab:async $=>{const _=d.current.get($);(await(_==null?void 0:_())||s==="welcome")&&m($)},onChangeTab:$=>{l($)},children:jsxRuntime.jsx(ContentRootProvider$1,{ref:f,globalValues:n,children:r})})})}const RootView$1=React$s.forwardRef(RootView),{useToken:useToken$1}=antd.theme;function Tab(e){const{label:t,onClose:r,tabKey:n,isActive:a,onSelected:o}=e,{token:s}=useToken$1(),l=a?s.colorBgContainer:s.colorPrimaryBg;return jsxRuntime.jsxs("div",{onClick:()=>{!a&&o(n)},style:{cursor:"pointer",height:40,paddingTop:7,paddingBottom:5,paddingLeft:10,paddingRight:10,backgroundColor:l,display:"inline-flex",flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",borderTopLeftRadius:s.borderRadius,borderTopRightRadius:s.borderRadius,marginLeft:2},children:[jsxRuntime.jsx("div",{style:{color:a?s.colorPrimaryActive:s.colorPrimaryBorder,userSelect:"none",height:40,display:"flex",justifyContent:"center",alignItems:"center",paddingLeft:5,paddingRight:5,marginBottom:2},children:t}),jsxRuntime.jsx("div",{style:{paddingLeft:5,height:40,display:"flex",justifyContent:"center",alignItems:"center"},children:jsxRuntime.jsx(AntIcons.CloseOutlined,{style:{color:a?s.colorPrimaryActive:s.colorPrimaryBorder},onClick:c=>{c.stopPropagation(),r(n)}})})]})}function TabSelector(){const e=React$s.useContext(TabManagerContext),{activeKey:t,tabs:r,onRemoveTab:n,onChangeTab:a}=e||{};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:r.map(o=>jsxRuntime.jsx(Tab,{tabKey:o.key,label:o.title,onClose:n,isActive:t===o.key,onSelected:a},o.key))})}function TabContent(e){const{tab:t}=e,r=React$s.useContext(TabManagerContext),{activeKey:n}=r||{},a={display:"none"};return jsxRuntime.jsx("div",{style:t.key!==n?a:void 0,children:t.content})}const TabContent$1=React__default.default.memo(TabContent,()=>!0);function CurrentTabContent(){const e=React$s.useContext(TabManagerContext),{tabs:t}=e||{},r=(t==null?void 0:t.map(n=>jsxRuntime.jsx(TabContent$1,{tab:n},n.key)))||null;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:r})}const{useToken}=antd.theme,FavouriteButton=e=>{const{onRetrieveShortcuts:t,onCheckIsFavourite:r,onAddFavourite:n,onRemoveFavourite:a}=e,[o,s]=React$s.useState(!1),[l,c]=React$s.useState(!1),[u,d]=React$s.useState([]),[f,m]=React$s.useState(!0),[x,p]=React$s.useState(),{t:h}=React$s.useContext(LocaleContext$1)||{},{token:b}=useToken(),g=React$s.useContext(TabManagerContext),{openShortcut:v,tabs:y,activeKey:$,currentView:_,currentId:w,openDefaultActionForModel:O}=g||{};React$s.useEffect(()=>{S()},[]),React$s.useEffect(()=>{M()},[y,$,_,w]);async function S(){try{m(!0);const L=await t();d(L)}catch(L){showDialog$8(L)}finally{m(!1)}}function j(L){const{key:N}=L,B=u.find(q=>q.id===Number(N));(B==null?void 0:B.action_type)!=="ir.actions.wizard"&&(B&&v(B),c(!1))}function T(L){L&&S(),c(L)}async function M(){if(!_)return;const L=y.find(W=>W.key===$),{id:N,type:B}=(L==null?void 0:L.action)||{};if(!N||!B){s(!1);return}const q=_.view_id;let z=!1;_.type==="form"&&(z=w||!1);const Y=await r({action_id:N,action_type:B,view_id:q,res_id:z});Y!==!1&&p(Y),s(Y!==!1)}async function I(){c(!1),O==null||O({model:"ir.ui.view_sc"})}const C=jsxRuntime.jsxs(antd.Menu,{onClick:j,children:[jsxRuntime.jsxs("div",{style:{width:300,padding:5,display:"flex"},children:[jsxRuntime.jsx("div",{style:{paddingLeft:15,color:"#ccc"},children:h==null?void 0:h("favorites").toUpperCase()}),jsxRuntime.jsx("div",{style:{flexGrow:1,paddingLeft:10},children:jsxRuntime.jsx(antd.Tooltip,{title:h==null?void 0:h("edit_favorites"),children:jsxRuntime.jsx(AntIcons.EditOutlined,{style:{color:b.colorPrimary,cursor:"pointer"},onClick:I})})})]}),jsxRuntime.jsx(antd.Menu.Divider,{}),f?jsxRuntime.jsx(antd.Spin,{style:{padding:"1rem"}}):u.length>0?jsxRuntime.jsx(jsxRuntime.Fragment,{children:u.map(L=>jsxRuntime.jsx(antd.Menu.Item,{children:jsxRuntime.jsx(P,{title:L.name,type:L.view_type})},L.id))}):jsxRuntime.jsx("div",{style:{width:300,padding:5,paddingLeft:15},children:h==null?void 0:h("no_favorites")})]});function P({title:L,type:N}){const B=N==="tree"?jsxRuntime.jsx(AntIcons.TableOutlined,{}):jsxRuntime.jsx(AntIcons.FormOutlined,{});return jsxRuntime.jsxs(antd.Row,{wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"none",style:{paddingRight:20},children:B}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:L})]})}async function D(){if(o&&x)await a(x);else{if(!_)return;const L=y.find(Y=>Y.key===$),{id:N,type:B}=(L==null?void 0:L.action)||{},q=_.view_id;let z=!1;if(!N||!B){s(!1);return}_.type==="form"&&(z=w||!1),await n({action_id:N,action_type:B,view_id:q,res_id:z})}await S(),s(!o)}return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Button,{type:o?"primary":"default",icon:o?jsxRuntime.jsx(AntIcons.StarFilled,{style:{color:"white"}}):jsxRuntime.jsx(AntIcons.StarOutlined,{}),style:{width:50,borderTopRightRadius:0,borderBottomRightRadius:0},onClick:D}),jsxRuntime.jsx(antd.Dropdown,{overlay:C,onVisibleChange:T,open:l,children:jsxRuntime.jsx(antd.Button,{style:{width:25,borderTopLeftRadius:0,borderBottomLeftRadius:0},icon:jsxRuntime.jsx(AntIcons.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:L=>L.preventDefault()})})]})};exports.ActionBar=FormActionBar,exports.Binary=Binary,exports.Boolean=Boolean$1,exports.Button=Button,exports.ButtonGroup=ButtonGroup,exports.Char=Char,exports.CodeEditor=CodeEditor,exports.ConfigContext=ConfigContext,exports.ConnectionProvider=ConnectionProvider,exports.ContentRootProvider=ContentRootProvider$1,exports.CurrentTabContent=CurrentTabContent,exports.Dashboard=Dashboard$1,exports.DashboardGrid=DashboardGrid,exports.DashboardGridItem=DashboardGridItem,exports.Date=Date$1,exports.DateTime=DateTime,exports.Email=Email,exports.ExportModal=ExportModal,exports.FavouriteButton=FavouriteButton,exports.Float=Float,exports.FloatTime=FloatTime,exports.Form=Form$1,exports.FormModal=FormModal,exports.GraphIndicator=GraphIndicator,exports.Group=Group,exports.Image=Image,exports.Integer=Integer,exports.Label=Label,exports.Many2one=Many2one,exports.Markdown=Markdown,exports.MultiCheckbox=MultiCheckbox,exports.Notebook=Notebook,exports.One2many=One2many,exports.ProgressBar=ProgressBar,exports.Radio=Radio,exports.Reference=Reference,exports.RootView=RootView$1,exports.SearchFilter=SearchFilter,exports.SearchModal=SearchModal,exports.SearchTree=SearchTree$1,exports.Selection=Selection,exports.Separator=Separator,exports.Steps=Steps,exports.Switch=Switch,exports.TabSelector=TabSelector,exports.Tag=Tag,exports.Tags=Tags,exports.Text=Text$2,exports.Tree=Tree,exports.Url=Url,exports.iconMapper=iconMapper,exports.showConfirmDialog=showDialog$9,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
251
251
  //# sourceMappingURL=react-ooui.umd.js.map