@gisce/react-ooui 1.2.0-rc.82 → 1.2.0-rc.84

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
@@ -245,7 +245,7 @@ html body {
245
245
  ${t}-expand,
246
246
  ${t}-edit,
247
247
  ${t}-copy
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=ooui.transformDomainForChildWidget({domain:await ConnectionProvider.getHandler().evalDomain({domain:k,values:transformPlainMany2Ones({fields:m(),values:x()}),fields:m(),context:p()}),widgetFieldName:X})),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.
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
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}.
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