@gisce/react-ooui 1.1.28-rc.0 → 1.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actionbar/TreeActionBar.d.ts.map +1 -1
- package/dist/helpers/iconMapper.d.ts.map +1 -1
- package/dist/react-ooui.es.js +15 -21
- package/dist/react-ooui.es.js.map +1 -1
- package/dist/react-ooui.umd.js +2 -2
- package/dist/react-ooui.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/iconMapper.test.ts +11 -0
- package/src/actionbar/TreeActionBar.tsx +16 -17
- package/src/helpers/iconMapper.ts +1 -2
package/dist/react-ooui.umd.js
CHANGED
|
@@ -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("react-hotkeys-hook"),require("react-grid-layout"),require("@monaco-editor/react")):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","react-hotkeys-hook","react-grid-layout","@monaco-editor/react"],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,e.fiberDiagram,e.reactHotkeysHook,e.reactGridLayout,e.Editor))})(this,function(exports,React,antd,ooui,AntIcons,interweave,jsxRuntime,TablerIcons,ReactDOM,styled,Measure,plots,useDeepCompareEffect,reactFormigaTable,require$$0,fiberDiagram,reactHotkeysHook,reactGridLayout,Editor){"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),React__namespace=_interopNamespace(React),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),Editor__default=_interopDefaultLegacy(Editor),{Text:Text$3,Title:Title$4}=antd.Typography,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:u,labelType:l}=t,d=s!==null&&a.length>1?a+" :":a,p=r||(s?n?"left":"right":"left"),m=u==="text"?Text$3:Title$4;return jsxRuntime.jsxs("div",{className:`flex flex-row items-center pb-1 pt-1 ${alignClass[p]}`,children:[o&&jsxRuntime.jsx(antd.Tooltip,{title:o,children:jsxRuntime.jsx(AntIcons.QuestionCircleOutlined,{className:"pr-1 text-xs text-blue-400"})}),jsxRuntime.jsx("span",{className:"pr-2",children:jsxRuntime.jsx(m,{level:u!=="text"?u:null,type:l,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:",savedRegisters:"Registre guardat correctament",errorWhileSavingForm:"Error en guardar el formulari"},en_US$5={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:",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:",savedRegisters:"Registro guardado correctamente",errorWhileSavingForm:"Error al guardar el formulario"},localeStrings={ca_ES,en_US:en_US$5,es_ES},LocaleContext=React__default.default.createContext(null),LocaleContextProvider=e=>{const{children:t,lang:r}=e;function n(a){return tForLang(a,r)}return jsxRuntime.jsx(LocaleContext.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:u,validator:l}){const{id:c,label:d,tooltip:f}=e,{t:p}=React.useContext(LocaleContext),m=s?[{required:!0,message:p("fillRequiredField"),type:u,validator:l}]:void 0,h=()=>jsxRuntime.jsx(antd.Form.Item,{className:"mb-0",name:c,valuePropName:n,rules:m,children:t});if(!a)return h();const x=jsxRuntime.jsx(Label,{ooui:new ooui.Label({name:c+"_label",string:d,help:f,fieldForLabel:c}),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:x})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:h()})]}))():(()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[x,h()]}))()}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$1=React__default.default.createContext(null),FormProvider$1=e=>{const{children:t,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:u,getValues:l,getPlainValues:c,setOriginalValue:d,domain:f,submitForm:p,fetchValues:m,formHasChanges:h,elementHasLostFocus:x,getFields:b}=e;return jsxRuntime.jsx(FormContext$1.Provider,{value:{domain:f,getValues:l,getPlainValues:c,getFields:b,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:u,setOriginalValue:d,submitForm:p,fetchValues:m,formHasChanges:h,elementHasLostFocus:x},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=>{if(e.indexOf("gtk-")!==-1){const r=`STOCK_${e.replace("gtk-","").replace(/\-/g,"_").toUpperCase()}`;return getIconForKey(iconMapping[r])}return iconMapping.hasOwnProperty(e)?getIconForKey(iconMapping[e]):getIconForKey(e)};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){e.indexOf("-")!==-1&&(e=toCamelCase(e));const t=`${e}Outlined`;if(AntIcons__namespace[t])return AntIcons__namespace[t];const r=`Icon${e}`;if(TablerIcons__namespace[r]){const n=()=>React__default.default.createElement(TablerIcons__namespace[r],{fill:"transparent",height:17,width:17});return()=>React__default.default.createElement(AntIcons__default.default,{component:n})}}const Button=e=>{const{ooui:t}=e,{id:r,label:n,activated:a,buttonType:o,confirmMessage:s,icon:u,context:l,readOnly:c}=t,d=React.useContext(FormContext$1),{executeButtonAction:f}=d||{},[p,m]=React.useState(!1),{lang:h}=React.useContext(LocaleContext);async function x(){m(!0),await f({type:o,action:r,context:l}),m(!1)}function b(){if(s){showDialog$9({confirmMessage:s,lang:h,onOk:()=>{x()}});return}x()}function g(){if(p)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(u){const v=iconMapper(u);return v&&jsxRuntime.jsx(v,{})}}return jsxRuntime.jsx(Field$1,{ooui:t,children:jsxRuntime.jsx(antd.Button,{block:!0,disabled:!a||c,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:u,confirmMessage:l,icon:c,primary:d,danger:f,context:p,readOnly:m}=r||{},h=React.useContext(FormContext$1),{executeButtonAction:x}=h||{},[b,g]=React.useState(!1),{lang:v}=React.useContext(LocaleContext);function y(){if(b)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(c){const E=iconMapper(c);return E&&jsxRuntime.jsx(E,{})}}async function _(){u&&a&&(g(!0),await x({type:u,action:a,context:p}),g(!1))}function C(){if(l){showDialog$9({confirmMessage:l,lang:v,onOk:()=>{_()}});return}_()}return jsxRuntime.jsx(Field$1,{ooui:new ooui.Field({ooui:t}),children:jsxRuntime.jsxs(antd.Dropdown.Button,{disabled:!s||m,onClick:C,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:u,confirmMessage:l,icon:c,context:d,readOnly:f,danger:p}=n,m=React.useContext(FormContext$1),{executeButtonAction:h}=m||{},[x,b]=React.useState(!1),{lang:g}=React.useContext(LocaleContext);async function v(){b(!0),await h({type:u,action:a,context:d}),b(!1)}function y(){if(l){showDialog$9({confirmMessage:l,lang:g,onOk:()=>{v()}});return}v()}function _(){if(x)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(c){const C=iconMapper(c);return C&&jsxRuntime.jsx(C,{})}}return jsxRuntime.jsx(antd.Menu.Item,{disabled:!s||f,onClick:y,icon:_(),danger:p,children:o})});return jsxRuntime.jsx(antd.Menu,{children:r})},Config={requiredClass:"bg-blue-100",requiredColor:"#DBEAFE"},MODAL_WIDTH_CONSTANT=.7;function getWindowDimensions(){const{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function useWindowDimensions(){const[e,t]=React.useState(getWindowDimensions());return React.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$2={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$2),function(e){var t=_typeof$2.exports.default;function r(a){if(typeof WeakMap!="function")return null;var o=new WeakMap,s=new WeakMap;return(r=function(l){return l?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 u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in a)if(c!=="default"&&Object.prototype.hasOwnProperty.call(a,c)){var d=l?Object.getOwnPropertyDescriptor(a,c):null;d&&(d.get||d.set)?Object.defineProperty(u,c,d):u[c]=a[c]}return u.default=a,s&&s.set(a,u),u}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 toConsumableArray={exports:{}},arrayWithoutHoles={exports:{}},arrayLikeToArray={exports:{}},hasRequiredArrayLikeToArray;function requireArrayLikeToArray(){return hasRequiredArrayLikeToArray||(hasRequiredArrayLikeToArray=1,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)),arrayLikeToArray.exports}var hasRequiredArrayWithoutHoles;function requireArrayWithoutHoles(){return hasRequiredArrayWithoutHoles||(hasRequiredArrayWithoutHoles=1,function(e){var t=requireArrayLikeToArray();function r(n){if(Array.isArray(n))return t(n)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(arrayWithoutHoles)),arrayWithoutHoles.exports}var iterableToArray={exports:{}},hasRequiredIterableToArray;function requireIterableToArray(){return hasRequiredIterableToArray||(hasRequiredIterableToArray=1,function(e){function t(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(iterableToArray)),iterableToArray.exports}var unsupportedIterableToArray={exports:{}},hasRequiredUnsupportedIterableToArray;function requireUnsupportedIterableToArray(){return hasRequiredUnsupportedIterableToArray||(hasRequiredUnsupportedIterableToArray=1,function(e){var t=requireArrayLikeToArray();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)),unsupportedIterableToArray.exports}var nonIterableSpread={exports:{}},hasRequiredNonIterableSpread;function requireNonIterableSpread(){return hasRequiredNonIterableSpread||(hasRequiredNonIterableSpread=1,function(e){function t(){throw new TypeError(`Invalid attempt to spread 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("react-hotkeys-hook"),require("react-grid-layout"),require("@monaco-editor/react")):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","react-hotkeys-hook","react-grid-layout","@monaco-editor/react"],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,e.fiberDiagram,e.reactHotkeysHook,e.reactGridLayout,e.Editor))})(this,function(exports,React,antd,ooui,AntIcons,interweave,jsxRuntime,TablerIcons,ReactDOM,styled,Measure,plots,useDeepCompareEffect,reactFormigaTable,require$$0,fiberDiagram,reactHotkeysHook,reactGridLayout,Editor){"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),React__namespace=_interopNamespace(React),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),Editor__default=_interopDefaultLegacy(Editor),{Text:Text$3,Title:Title$4}=antd.Typography,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:u,labelType:l}=t,d=s!==null&&a.length>1?a+" :":a,p=r||(s?n?"left":"right":"left"),m=u==="text"?Text$3:Title$4;return jsxRuntime.jsxs("div",{className:`flex flex-row items-center pb-1 pt-1 ${alignClass[p]}`,children:[o&&jsxRuntime.jsx(antd.Tooltip,{title:o,children:jsxRuntime.jsx(AntIcons.QuestionCircleOutlined,{className:"pr-1 text-xs text-blue-400"})}),jsxRuntime.jsx("span",{className:"pr-2",children:jsxRuntime.jsx(m,{level:u!=="text"?u:null,type:l,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:",savedRegisters:"Registre guardat correctament",errorWhileSavingForm:"Error en guardar el formulari"},en_US$5={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:",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:",savedRegisters:"Registro guardado correctamente",errorWhileSavingForm:"Error al guardar el formulario"},localeStrings={ca_ES,en_US:en_US$5,es_ES},LocaleContext=React__default.default.createContext(null),LocaleContextProvider=e=>{const{children:t,lang:r}=e;function n(a){return tForLang(a,r)}return jsxRuntime.jsx(LocaleContext.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:u,validator:l}){const{id:c,label:d,tooltip:f}=e,{t:p}=React.useContext(LocaleContext),m=s?[{required:!0,message:p("fillRequiredField"),type:u,validator:l}]:void 0,h=()=>jsxRuntime.jsx(antd.Form.Item,{className:"mb-0",name:c,valuePropName:n,rules:m,children:t});if(!a)return h();const x=jsxRuntime.jsx(Label,{ooui:new ooui.Label({name:c+"_label",string:d,help:f,fieldForLabel:c}),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:x})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:h()})]}))():(()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[x,h()]}))()}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$1=React__default.default.createContext(null),FormProvider$1=e=>{const{children:t,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:u,getValues:l,getPlainValues:c,setOriginalValue:d,domain:f,submitForm:p,fetchValues:m,formHasChanges:h,elementHasLostFocus:x,getFields:b}=e;return jsxRuntime.jsx(FormContext$1.Provider,{value:{domain:f,getValues:l,getPlainValues:c,getFields:b,activeId:r,activeModel:n,setFieldValue:a,getFieldValue:o,executeButtonAction:s,getContext:u,setOriginalValue:d,submitForm:p,fetchValues:m,formHasChanges:h,elementHasLostFocus:x},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=>(e.indexOf("gtk-")!==-1&&(e=`STOCK_${e.replace("gtk-","").replace(/\-/g,"_").toUpperCase()}`),iconMapping.hasOwnProperty(e)?getIconForKey(iconMapping[e]):getIconForKey(e));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){e.indexOf("-")!==-1&&(e=toCamelCase(e));const t=`${e}Outlined`;if(AntIcons__namespace[t])return AntIcons__namespace[t];const r=`Icon${e}`;if(TablerIcons__namespace[r]){const n=()=>React__default.default.createElement(TablerIcons__namespace[r],{fill:"transparent",height:17,width:17});return()=>React__default.default.createElement(AntIcons__default.default,{component:n})}}const Button=e=>{const{ooui:t}=e,{id:r,label:n,activated:a,buttonType:o,confirmMessage:s,icon:u,context:l,readOnly:c}=t,d=React.useContext(FormContext$1),{executeButtonAction:f}=d||{},[p,m]=React.useState(!1),{lang:h}=React.useContext(LocaleContext);async function x(){m(!0),await f({type:o,action:r,context:l}),m(!1)}function b(){if(s){showDialog$9({confirmMessage:s,lang:h,onOk:()=>{x()}});return}x()}function g(){if(p)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(u){const v=iconMapper(u);return v&&jsxRuntime.jsx(v,{})}}return jsxRuntime.jsx(Field$1,{ooui:t,children:jsxRuntime.jsx(antd.Button,{block:!0,disabled:!a||c,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:u,confirmMessage:l,icon:c,primary:d,danger:f,context:p,readOnly:m}=r||{},h=React.useContext(FormContext$1),{executeButtonAction:x}=h||{},[b,g]=React.useState(!1),{lang:v}=React.useContext(LocaleContext);function y(){if(b)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(c){const E=iconMapper(c);return E&&jsxRuntime.jsx(E,{})}}async function _(){u&&a&&(g(!0),await x({type:u,action:a,context:p}),g(!1))}function C(){if(l){showDialog$9({confirmMessage:l,lang:v,onOk:()=>{_()}});return}_()}return jsxRuntime.jsx(Field$1,{ooui:new ooui.Field({ooui:t}),children:jsxRuntime.jsxs(antd.Dropdown.Button,{disabled:!s||m,onClick:C,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:u,confirmMessage:l,icon:c,context:d,readOnly:f,danger:p}=n,m=React.useContext(FormContext$1),{executeButtonAction:h}=m||{},[x,b]=React.useState(!1),{lang:g}=React.useContext(LocaleContext);async function v(){b(!0),await h({type:u,action:a,context:d}),b(!1)}function y(){if(l){showDialog$9({confirmMessage:l,lang:g,onOk:()=>{v()}});return}v()}function _(){if(x)return jsxRuntime.jsx(AntIcons.LoadingOutlined,{});if(c){const C=iconMapper(c);return C&&jsxRuntime.jsx(C,{})}}return jsxRuntime.jsx(antd.Menu.Item,{disabled:!s||f,onClick:y,icon:_(),danger:p,children:o})});return jsxRuntime.jsx(antd.Menu,{children:r})},Config={requiredClass:"bg-blue-100",requiredColor:"#DBEAFE"},MODAL_WIDTH_CONSTANT=.7;function getWindowDimensions(){const{innerWidth:e,innerHeight:t}=window;return{width:e,height:t}}function useWindowDimensions(){const[e,t]=React.useState(getWindowDimensions());return React.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$2={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$2),function(e){var t=_typeof$2.exports.default;function r(a){if(typeof WeakMap!="function")return null;var o=new WeakMap,s=new WeakMap;return(r=function(l){return l?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 u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in a)if(c!=="default"&&Object.prototype.hasOwnProperty.call(a,c)){var d=l?Object.getOwnPropertyDescriptor(a,c):null;d&&(d.get||d.set)?Object.defineProperty(u,c,d):u[c]=a[c]}return u.default=a,s&&s.set(a,u),u}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 toConsumableArray={exports:{}},arrayWithoutHoles={exports:{}},arrayLikeToArray={exports:{}},hasRequiredArrayLikeToArray;function requireArrayLikeToArray(){return hasRequiredArrayLikeToArray||(hasRequiredArrayLikeToArray=1,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)),arrayLikeToArray.exports}var hasRequiredArrayWithoutHoles;function requireArrayWithoutHoles(){return hasRequiredArrayWithoutHoles||(hasRequiredArrayWithoutHoles=1,function(e){var t=requireArrayLikeToArray();function r(n){if(Array.isArray(n))return t(n)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(arrayWithoutHoles)),arrayWithoutHoles.exports}var iterableToArray={exports:{}},hasRequiredIterableToArray;function requireIterableToArray(){return hasRequiredIterableToArray||(hasRequiredIterableToArray=1,function(e){function t(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(iterableToArray)),iterableToArray.exports}var unsupportedIterableToArray={exports:{}},hasRequiredUnsupportedIterableToArray;function requireUnsupportedIterableToArray(){return hasRequiredUnsupportedIterableToArray||(hasRequiredUnsupportedIterableToArray=1,function(e){var t=requireArrayLikeToArray();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)),unsupportedIterableToArray.exports}var nonIterableSpread={exports:{}},hasRequiredNonIterableSpread;function requireNonIterableSpread(){return hasRequiredNonIterableSpread||(hasRequiredNonIterableSpread=1,function(e){function t(){throw new TypeError(`Invalid attempt to spread 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}(nonIterableSpread)),nonIterableSpread.exports}var hasRequiredToConsumableArray;function requireToConsumableArray(){return hasRequiredToConsumableArray||(hasRequiredToConsumableArray=1,function(e){var t=requireArrayWithoutHoles(),r=requireIterableToArray(),n=requireUnsupportedIterableToArray(),a=requireNonIterableSpread();function o(s){return t(s)||r(s)||n(s)||a()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}(toConsumableArray)),toConsumableArray.exports}var _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 defineProperty={exports:{}},hasRequiredDefineProperty;function requireDefineProperty(){return hasRequiredDefineProperty||(hasRequiredDefineProperty=1,function(e){function t(r,n,a){return n in r?Object.defineProperty(r,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[n]=a,r}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(defineProperty)),defineProperty.exports}var slicedToArray={exports:{}},arrayWithHoles={exports:{}},hasRequiredArrayWithHoles;function requireArrayWithHoles(){return hasRequiredArrayWithHoles||(hasRequiredArrayWithHoles=1,function(e){function t(r){if(Array.isArray(r))return r}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(arrayWithHoles)),arrayWithHoles.exports}var iterableToArrayLimit={exports:{}},hasRequiredIterableToArrayLimit;function requireIterableToArrayLimit(){return hasRequiredIterableToArrayLimit||(hasRequiredIterableToArrayLimit=1,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=!0,u=!1,l,c;try{for(a=a.call(r);!(s=(l=a.next()).done)&&(o.push(l.value),!(n&&o.length===n));s=!0);}catch(d){u=!0,c=d}finally{try{!s&&a.return!=null&&a.return()}finally{if(u)throw c}}return o}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(iterableToArrayLimit)),iterableToArrayLimit.exports}var nonIterableRest={exports:{}},hasRequiredNonIterableRest;function requireNonIterableRest(){return hasRequiredNonIterableRest||(hasRequiredNonIterableRest=1,function(e){function t(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
3
|
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)),nonIterableRest.exports}var hasRequiredSlicedToArray;function requireSlicedToArray(){return hasRequiredSlicedToArray||(hasRequiredSlicedToArray=1,function(e){var t=requireArrayWithHoles(),r=requireIterableToArrayLimit(),n=requireUnsupportedIterableToArray(),a=requireNonIterableRest();function o(s,u){return t(s)||r(s,u)||n(s,u)||a()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}(slicedToArray)),slicedToArray.exports}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _setPrototypeOf$1(e,t){return _setPrototypeOf$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,a){return n.__proto__=a,n},_setPrototypeOf$1(e,t)}function _inherits(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$1(e,t)}function _getPrototypeOf$1(e){return _getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},_getPrototypeOf$1(e)}function _isNativeReflectConstruct$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _typeof$1(e){return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof$1(e)}function _assertThisInitialized(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn(e,t){if(t&&(_typeof$1(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _createSuper(e){var t=_isNativeReflectConstruct$1();return function(){var n=_getPrototypeOf$1(e),a;if(t){var o=_getPrototypeOf$1(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _defineProperty$1(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ownKeys$3(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function _objectSpread2$1(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ownKeys$3(Object(r),!0).forEach(function(n){_defineProperty$1(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys$3(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function findDOMNode(e){return e instanceof HTMLElement?e:ReactDOM__default.default.findDOMNode(e)}var reactIs={exports:{}},reactIs_production_min={};/** @license React v16.13.1
|
|
4
4
|
* react-is.production.min.js
|
|
@@ -126,6 +126,6 @@ var hookCallback;function hooks(){return hookCallback.apply(null,arguments)}func
|
|
|
126
126
|
Arguments: `+Array.prototype.slice.call(n).join("")+`
|
|
127
127
|
`+new Error().stack),r=!1}return t.apply(this,arguments)},t)}var deprecations={};function deprecateSimple(e,t){hooks.deprecationHandler!=null&&hooks.deprecationHandler(e,t),deprecations[e]||(warn(t),deprecations[e]=!0)}hooks.suppressDeprecationWarnings=!1,hooks.deprecationHandler=null;function isFunction(e){return typeof Function<"u"&&e instanceof Function||Object.prototype.toString.call(e)==="[object Function]"}function set(e){var t,r;for(r in e)hasOwnProp(e,r)&&(t=e[r],isFunction(t)?this[r]=t:this["_"+r]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function mergeConfigs(e,t){var r=extend({},e),n;for(n in t)hasOwnProp(t,n)&&(isObject(e[n])&&isObject(t[n])?(r[n]={},extend(r[n],e[n]),extend(r[n],t[n])):t[n]!=null?r[n]=t[n]:delete r[n]);for(n in e)hasOwnProp(e,n)&&!hasOwnProp(t,n)&&isObject(e[n])&&(r[n]=extend({},r[n]));return r}function Locale(e){e!=null&&this.set(e)}var keys;Object.keys?keys=Object.keys:keys=function(e){var t,r=[];for(t in e)hasOwnProp(e,t)&&r.push(t);return r};var defaultCalendar={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function calendar(e,t,r){var n=this._calendar[e]||this._calendar.sameElse;return isFunction(n)?n.call(t,r):n}function zeroFill(e,t,r){var n=""+Math.abs(e),a=t-n.length,o=e>=0;return(o?r?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+n}var formattingTokens=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,formatFunctions={},formatTokenFunctions={};function addFormatToken(e,t,r,n){var a=n;typeof n=="string"&&(a=function(){return this[n]()}),e&&(formatTokenFunctions[e]=a),t&&(formatTokenFunctions[t[0]]=function(){return zeroFill(a.apply(this,arguments),t[1],t[2])}),r&&(formatTokenFunctions[r]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function removeFormattingTokens(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function makeFormatFunction(e){var t=e.match(formattingTokens),r,n;for(r=0,n=t.length;r<n;r++)formatTokenFunctions[t[r]]?t[r]=formatTokenFunctions[t[r]]:t[r]=removeFormattingTokens(t[r]);return function(a){var o="",s;for(s=0;s<n;s++)o+=isFunction(t[s])?t[s].call(a,e):t[s];return o}}function formatMoment(e,t){return e.isValid()?(t=expandFormat(t,e.localeData()),formatFunctions[t]=formatFunctions[t]||makeFormatFunction(t),formatFunctions[t](e)):e.localeData().invalidDate()}function expandFormat(e,t){var r=5;function n(a){return t.longDateFormat(a)||a}for(localFormattingTokens.lastIndex=0;r>=0&&localFormattingTokens.test(e);)e=e.replace(localFormattingTokens,n),localFormattingTokens.lastIndex=0,r-=1;return e}var defaultLongDateFormat={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function longDateFormat(e){var t=this._longDateFormat[e],r=this._longDateFormat[e.toUpperCase()];return t||!r?t:(this._longDateFormat[e]=r.match(formattingTokens).map(function(n){return n==="MMMM"||n==="MM"||n==="DD"||n==="dddd"?n.slice(1):n}).join(""),this._longDateFormat[e])}var defaultInvalidDate="Invalid date";function invalidDate(){return this._invalidDate}var defaultOrdinal="%d",defaultDayOfMonthOrdinalParse=/\d{1,2}/;function ordinal(e){return this._ordinal.replace("%d",e)}var defaultRelativeTime={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function relativeTime(e,t,r,n){var a=this._relativeTime[r];return isFunction(a)?a(e,t,r,n):a.replace(/%d/i,e)}function pastFuture(e,t){var r=this._relativeTime[e>0?"future":"past"];return isFunction(r)?r(t):r.replace(/%s/i,t)}var aliases={};function addUnitAlias(e,t){var r=e.toLowerCase();aliases[r]=aliases[r+"s"]=aliases[t]=e}function normalizeUnits(e){return typeof e=="string"?aliases[e]||aliases[e.toLowerCase()]:void 0}function normalizeObjectUnits(e){var t={},r,n;for(n in e)hasOwnProp(e,n)&&(r=normalizeUnits(n),r&&(t[r]=e[n]));return t}var priorities={};function addUnitPriority(e,t){priorities[e]=t}function getPrioritizedUnits(e){var t=[],r;for(r in e)hasOwnProp(e,r)&&t.push({unit:r,priority:priorities[r]});return t.sort(function(n,a){return n.priority-a.priority}),t}function isLeapYear(e){return e%4===0&&e%100!==0||e%400===0}function absFloor(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function toInt(e){var t=+e,r=0;return t!==0&&isFinite(t)&&(r=absFloor(t)),r}function makeGetSet(e,t){return function(r){return r!=null?(set$1(this,e,r),hooks.updateOffset(this,t),this):get(this,e)}}function get(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function set$1(e,t,r){e.isValid()&&!isNaN(r)&&(t==="FullYear"&&isLeapYear(e.year())&&e.month()===1&&e.date()===29?(r=toInt(r),e._d["set"+(e._isUTC?"UTC":"")+t](r,e.month(),daysInMonth(r,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](r))}function stringGet(e){return e=normalizeUnits(e),isFunction(this[e])?this[e]():this}function stringSet(e,t){if(typeof e=="object"){e=normalizeObjectUnits(e);var r=getPrioritizedUnits(e),n,a=r.length;for(n=0;n<a;n++)this[r[n].unit](e[r[n].unit])}else if(e=normalizeUnits(e),isFunction(this[e]))return this[e](t);return this}var match1=/\d/,match2=/\d\d/,match3=/\d{3}/,match4=/\d{4}/,match6=/[+-]?\d{6}/,match1to2=/\d\d?/,match3to4=/\d\d\d\d?/,match5to6=/\d\d\d\d\d\d?/,match1to3=/\d{1,3}/,match1to4=/\d{1,4}/,match1to6=/[+-]?\d{1,6}/,matchUnsigned=/\d+/,matchSigned=/[+-]?\d+/,matchOffset=/Z|[+-]\d\d:?\d\d/gi,matchShortOffset=/Z|[+-]\d\d(?::?\d\d)?/gi,matchTimestamp=/[+-]?\d+(\.\d{1,3})?/,matchWord=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,regexes;regexes={};function addRegexToken(e,t,r){regexes[e]=isFunction(t)?t:function(n,a){return n&&r?r:t}}function getParseRegexForToken(e,t){return hasOwnProp(regexes,e)?regexes[e](t._strict,t._locale):new RegExp(unescapeFormat(e))}function unescapeFormat(e){return regexEscape(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,r,n,a,o){return r||n||a||o}))}function regexEscape(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var tokens={};function addParseToken(e,t){var r,n=t,a;for(typeof e=="string"&&(e=[e]),isNumber(t)&&(n=function(o,s){s[t]=toInt(o)}),a=e.length,r=0;r<a;r++)tokens[e[r]]=n}function addWeekParseToken(e,t){addParseToken(e,function(r,n,a,o){a._w=a._w||{},t(r,a._w,a,o)})}function addTimeToArrayFromToken(e,t,r){t!=null&&hasOwnProp(tokens,e)&&tokens[e](t,r._a,r,e)}var YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,WEEK=7,WEEKDAY=8;function mod(e,t){return(e%t+t)%t}var indexOf;Array.prototype.indexOf?indexOf=Array.prototype.indexOf:indexOf=function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1};function daysInMonth(e,t){if(isNaN(e)||isNaN(t))return NaN;var r=mod(t,12);return e+=(t-r)/12,r===1?isLeapYear(e)?29:28:31-r%7%2}addFormatToken("M",["MM",2],"Mo",function(){return this.month()+1}),addFormatToken("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),addFormatToken("MMMM",0,0,function(e){return this.localeData().months(this,e)}),addUnitAlias("month","M"),addUnitPriority("month",8),addRegexToken("M",match1to2),addRegexToken("MM",match1to2,match2),addRegexToken("MMM",function(e,t){return t.monthsShortRegex(e)}),addRegexToken("MMMM",function(e,t){return t.monthsRegex(e)}),addParseToken(["M","MM"],function(e,t){t[MONTH]=toInt(e)-1}),addParseToken(["MMM","MMMM"],function(e,t,r,n){var a=r._locale.monthsParse(e,n,r._strict);a!=null?t[MONTH]=a:getParsingFlags(r).invalidMonth=e});var defaultLocaleMonths="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),defaultLocaleMonthsShort="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),MONTHS_IN_FORMAT=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,defaultMonthsShortRegex=matchWord,defaultMonthsRegex=matchWord;function localeMonths(e,t){return e?isArray(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(t)?"format":"standalone"][e.month()]:isArray(this._months)?this._months:this._months.standalone}function localeMonthsShort(e,t){return e?isArray(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(t)?"format":"standalone"][e.month()]:isArray(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function handleStrictParse(e,t,r){var n,a,o,s=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],n=0;n<12;++n)o=createUTC([2e3,n]),this._shortMonthsParse[n]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[n]=this.months(o,"").toLocaleLowerCase();return r?t==="MMM"?(a=indexOf.call(this._shortMonthsParse,s),a!==-1?a:null):(a=indexOf.call(this._longMonthsParse,s),a!==-1?a:null):t==="MMM"?(a=indexOf.call(this._shortMonthsParse,s),a!==-1?a:(a=indexOf.call(this._longMonthsParse,s),a!==-1?a:null)):(a=indexOf.call(this._longMonthsParse,s),a!==-1?a:(a=indexOf.call(this._shortMonthsParse,s),a!==-1?a:null))}function localeMonthsParse(e,t,r){var n,a,o;if(this._monthsParseExact)return handleStrictParse.call(this,e,t,r);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;n<12;n++){if(a=createUTC([2e3,n]),r&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[n]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),!r&&!this._monthsParse[n]&&(o="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[n]=new RegExp(o.replace(".",""),"i")),r&&t==="MMMM"&&this._longMonthsParse[n].test(e))return n;if(r&&t==="MMM"&&this._shortMonthsParse[n].test(e))return n;if(!r&&this._monthsParse[n].test(e))return n}}function setMonth(e,t){var r;if(!e.isValid())return e;if(typeof t=="string"){if(/^\d+$/.test(t))t=toInt(t);else if(t=e.localeData().monthsParse(t),!isNumber(t))return e}return r=Math.min(e.date(),daysInMonth(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,r),e}function getSetMonth(e){return e!=null?(setMonth(this,e),hooks.updateOffset(this,!0),this):get(this,"Month")}function getDaysInMonth(){return daysInMonth(this.year(),this.month())}function monthsShortRegex(e){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(hasOwnProp(this,"_monthsShortRegex")||(this._monthsShortRegex=defaultMonthsShortRegex),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)}function monthsRegex(e){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),e?this._monthsStrictRegex:this._monthsRegex):(hasOwnProp(this,"_monthsRegex")||(this._monthsRegex=defaultMonthsRegex),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)}function computeMonthsParse(){function e(s,u){return u.length-s.length}var t=[],r=[],n=[],a,o;for(a=0;a<12;a++)o=createUTC([2e3,a]),t.push(this.monthsShort(o,"")),r.push(this.months(o,"")),n.push(this.months(o,"")),n.push(this.monthsShort(o,""));for(t.sort(e),r.sort(e),n.sort(e),a=0;a<12;a++)t[a]=regexEscape(t[a]),r[a]=regexEscape(r[a]);for(a=0;a<24;a++)n[a]=regexEscape(n[a]);this._monthsRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+t.join("|")+")","i")}addFormatToken("Y",0,0,function(){var e=this.year();return e<=9999?zeroFill(e,4):"+"+e}),addFormatToken(0,["YY",2],0,function(){return this.year()%100}),addFormatToken(0,["YYYY",4],0,"year"),addFormatToken(0,["YYYYY",5],0,"year"),addFormatToken(0,["YYYYYY",6,!0],0,"year"),addUnitAlias("year","y"),addUnitPriority("year",1),addRegexToken("Y",matchSigned),addRegexToken("YY",match1to2,match2),addRegexToken("YYYY",match1to4,match4),addRegexToken("YYYYY",match1to6,match6),addRegexToken("YYYYYY",match1to6,match6),addParseToken(["YYYYY","YYYYYY"],YEAR),addParseToken("YYYY",function(e,t){t[YEAR]=e.length===2?hooks.parseTwoDigitYear(e):toInt(e)}),addParseToken("YY",function(e,t){t[YEAR]=hooks.parseTwoDigitYear(e)}),addParseToken("Y",function(e,t){t[YEAR]=parseInt(e,10)});function daysInYear(e){return isLeapYear(e)?366:365}hooks.parseTwoDigitYear=function(e){return toInt(e)+(toInt(e)>68?1900:2e3)};var getSetYear=makeGetSet("FullYear",!0);function getIsLeapYear(){return isLeapYear(this.year())}function createDate(e,t,r,n,a,o,s){var u;return e<100&&e>=0?(u=new Date(e+400,t,r,n,a,o,s),isFinite(u.getFullYear())&&u.setFullYear(e)):u=new Date(e,t,r,n,a,o,s),u}function createUTCDate(e){var t,r;return e<100&&e>=0?(r=Array.prototype.slice.call(arguments),r[0]=e+400,t=new Date(Date.UTC.apply(null,r)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function firstWeekOffset(e,t,r){var n=7+t-r,a=(7+createUTCDate(e,0,n).getUTCDay()-t)%7;return-a+n-1}function dayOfYearFromWeeks(e,t,r,n,a){var o=(7+r-n)%7,s=firstWeekOffset(e,n,a),u=1+7*(t-1)+o+s,l,c;return u<=0?(l=e-1,c=daysInYear(l)+u):u>daysInYear(e)?(l=e+1,c=u-daysInYear(e)):(l=e,c=u),{year:l,dayOfYear:c}}function weekOfYear(e,t,r){var n=firstWeekOffset(e.year(),t,r),a=Math.floor((e.dayOfYear()-n-1)/7)+1,o,s;return a<1?(s=e.year()-1,o=a+weeksInYear(s,t,r)):a>weeksInYear(e.year(),t,r)?(o=a-weeksInYear(e.year(),t,r),s=e.year()+1):(s=e.year(),o=a),{week:o,year:s}}function weeksInYear(e,t,r){var n=firstWeekOffset(e,t,r),a=firstWeekOffset(e+1,t,r);return(daysInYear(e)-n+a)/7}addFormatToken("w",["ww",2],"wo","week"),addFormatToken("W",["WW",2],"Wo","isoWeek"),addUnitAlias("week","w"),addUnitAlias("isoWeek","W"),addUnitPriority("week",5),addUnitPriority("isoWeek",5),addRegexToken("w",match1to2),addRegexToken("ww",match1to2,match2),addRegexToken("W",match1to2),addRegexToken("WW",match1to2,match2),addWeekParseToken(["w","ww","W","WW"],function(e,t,r,n){t[n.substr(0,1)]=toInt(e)});function localeWeek(e){return weekOfYear(e,this._week.dow,this._week.doy).week}var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function getSetISOWeek(e){var t=weekOfYear(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}addFormatToken("d",0,"do","day"),addFormatToken("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),addFormatToken("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),addFormatToken("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),addFormatToken("e",0,0,"weekday"),addFormatToken("E",0,0,"isoWeekday"),addUnitAlias("day","d"),addUnitAlias("weekday","e"),addUnitAlias("isoWeekday","E"),addUnitPriority("day",11),addUnitPriority("weekday",11),addUnitPriority("isoWeekday",11),addRegexToken("d",match1to2),addRegexToken("e",match1to2),addRegexToken("E",match1to2),addRegexToken("dd",function(e,t){return t.weekdaysMinRegex(e)}),addRegexToken("ddd",function(e,t){return t.weekdaysShortRegex(e)}),addRegexToken("dddd",function(e,t){return t.weekdaysRegex(e)}),addWeekParseToken(["dd","ddd","dddd"],function(e,t,r,n){var a=r._locale.weekdaysParse(e,n,r._strict);a!=null?t.d=a:getParsingFlags(r).invalidWeekday=e}),addWeekParseToken(["d","e","E"],function(e,t,r,n){t[n]=toInt(e)});function parseWeekday(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function parseIsoWeekday(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function shiftWeekdays(e,t){return e.slice(t,7).concat(e.slice(0,t))}var defaultLocaleWeekdays="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),defaultLocaleWeekdaysShort="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),defaultLocaleWeekdaysMin="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),defaultWeekdaysRegex=matchWord,defaultWeekdaysShortRegex=matchWord,defaultWeekdaysMinRegex=matchWord;function localeWeekdays(e,t){var r=isArray(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===!0?shiftWeekdays(r,this._week.dow):e?r[e.day()]:r}function localeWeekdaysShort(e){return e===!0?shiftWeekdays(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function localeWeekdaysMin(e){return e===!0?shiftWeekdays(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function handleStrictParse$1(e,t,r){var n,a,o,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)o=createUTC([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(o,"").toLocaleLowerCase();return r?t==="dddd"?(a=indexOf.call(this._weekdaysParse,s),a!==-1?a:null):t==="ddd"?(a=indexOf.call(this._shortWeekdaysParse,s),a!==-1?a:null):(a=indexOf.call(this._minWeekdaysParse,s),a!==-1?a:null):t==="dddd"?(a=indexOf.call(this._weekdaysParse,s),a!==-1||(a=indexOf.call(this._shortWeekdaysParse,s),a!==-1)?a:(a=indexOf.call(this._minWeekdaysParse,s),a!==-1?a:null)):t==="ddd"?(a=indexOf.call(this._shortWeekdaysParse,s),a!==-1||(a=indexOf.call(this._weekdaysParse,s),a!==-1)?a:(a=indexOf.call(this._minWeekdaysParse,s),a!==-1?a:null)):(a=indexOf.call(this._minWeekdaysParse,s),a!==-1||(a=indexOf.call(this._weekdaysParse,s),a!==-1)?a:(a=indexOf.call(this._shortWeekdaysParse,s),a!==-1?a:null))}function localeWeekdaysParse(e,t,r){var n,a,o;if(this._weekdaysParseExact)return handleStrictParse$1.call(this,e,t,r);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(a=createUTC([2e3,1]).day(n),r&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(o="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[n]=new RegExp(o.replace(".",""),"i")),r&&t==="dddd"&&this._fullWeekdaysParse[n].test(e))return n;if(r&&t==="ddd"&&this._shortWeekdaysParse[n].test(e))return n;if(r&&t==="dd"&&this._minWeekdaysParse[n].test(e))return n;if(!r&&this._weekdaysParse[n].test(e))return n}}function getSetDayOfWeek(e){if(!this.isValid())return e!=null?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return e!=null?(e=parseWeekday(e,this.localeData()),this.add(e-t,"d")):t}function getSetLocaleDayOfWeek(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function getSetISODayOfWeek(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=parseIsoWeekday(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}function weekdaysRegex(e){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(hasOwnProp(this,"_weekdaysRegex")||(this._weekdaysRegex=defaultWeekdaysRegex),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function weekdaysShortRegex(e){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(hasOwnProp(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=defaultWeekdaysShortRegex),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function weekdaysMinRegex(e){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(hasOwnProp(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=defaultWeekdaysMinRegex),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function computeWeekdaysParse(){function e(d,f){return f.length-d.length}var t=[],r=[],n=[],a=[],o,s,u,l,c;for(o=0;o<7;o++)s=createUTC([2e3,1]).day(o),u=regexEscape(this.weekdaysMin(s,"")),l=regexEscape(this.weekdaysShort(s,"")),c=regexEscape(this.weekdays(s,"")),t.push(u),r.push(l),n.push(c),a.push(u),a.push(l),a.push(c);t.sort(e),r.sort(e),n.sort(e),a.sort(e),this._weekdaysRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}addFormatToken("H",["HH",2],0,"hour"),addFormatToken("h",["hh",2],0,hFormat),addFormatToken("k",["kk",2],0,kFormat),addFormatToken("hmm",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)}),addFormatToken("hmmss",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}),addFormatToken("Hmm",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)}),addFormatToken("Hmmss",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});function meridiem(e,t){addFormatToken(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}meridiem("a",!0),meridiem("A",!1),addUnitAlias("hour","h"),addUnitPriority("hour",13);function matchMeridiem(e,t){return t._meridiemParse}addRegexToken("a",matchMeridiem),addRegexToken("A",matchMeridiem),addRegexToken("H",match1to2),addRegexToken("h",match1to2),addRegexToken("k",match1to2),addRegexToken("HH",match1to2,match2),addRegexToken("hh",match1to2,match2),addRegexToken("kk",match1to2,match2),addRegexToken("hmm",match3to4),addRegexToken("hmmss",match5to6),addRegexToken("Hmm",match3to4),addRegexToken("Hmmss",match5to6),addParseToken(["H","HH"],HOUR),addParseToken(["k","kk"],function(e,t,r){var n=toInt(e);t[HOUR]=n===24?0:n}),addParseToken(["a","A"],function(e,t,r){r._isPm=r._locale.isPM(e),r._meridiem=e}),addParseToken(["h","hh"],function(e,t,r){t[HOUR]=toInt(e),getParsingFlags(r).bigHour=!0}),addParseToken("hmm",function(e,t,r){var n=e.length-2;t[HOUR]=toInt(e.substr(0,n)),t[MINUTE]=toInt(e.substr(n)),getParsingFlags(r).bigHour=!0}),addParseToken("hmmss",function(e,t,r){var n=e.length-4,a=e.length-2;t[HOUR]=toInt(e.substr(0,n)),t[MINUTE]=toInt(e.substr(n,2)),t[SECOND]=toInt(e.substr(a)),getParsingFlags(r).bigHour=!0}),addParseToken("Hmm",function(e,t,r){var n=e.length-2;t[HOUR]=toInt(e.substr(0,n)),t[MINUTE]=toInt(e.substr(n))}),addParseToken("Hmmss",function(e,t,r){var n=e.length-4,a=e.length-2;t[HOUR]=toInt(e.substr(0,n)),t[MINUTE]=toInt(e.substr(n,2)),t[SECOND]=toInt(e.substr(a))});function localeIsPM(e){return(e+"").toLowerCase().charAt(0)==="p"}var defaultLocaleMeridiemParse=/[ap]\.?m?\.?/i,getSetHour=makeGetSet("Hours",!0);function localeMeridiem(e,t,r){return e>11?r?"pm":"PM":r?"am":"AM"}var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse},locales={},localeFamilies={},globalLocale;function commonPrefix(e,t){var r,n=Math.min(e.length,t.length);for(r=0;r<n;r+=1)if(e[r]!==t[r])return r;return n}function normalizeLocale(e){return e&&e.toLowerCase().replace("_","-")}function chooseLocale(e){for(var t=0,r,n,a,o;t<e.length;){for(o=normalizeLocale(e[t]).split("-"),r=o.length,n=normalizeLocale(e[t+1]),n=n?n.split("-"):null;r>0;){if(a=loadLocale(o.slice(0,r).join("-")),a)return a;if(n&&n.length>=r&&commonPrefix(o,n)>=r-1)break;r--}t++}return globalLocale}function isLocaleNameSane(e){return e.match("^[^/\\\\]*$")!=null}function loadLocale(e){var t=null,r;if(locales[e]===void 0&&typeof module<"u"&&module&&module.exports&&isLocaleNameSane(e))try{t=globalLocale._abbr,r=require,r("./locale/"+e),getSetGlobalLocale(t)}catch{locales[e]=null}return locales[e]}function getSetGlobalLocale(e,t){var r;return e&&(isUndefined(t)?r=getLocale(e):r=defineLocale(e,t),r?globalLocale=r:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),globalLocale._abbr}function defineLocale(e,t){if(t!==null){var r,n=baseConfig;if(t.abbr=e,locales[e]!=null)deprecateSimple("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=locales[e]._config;else if(t.parentLocale!=null)if(locales[t.parentLocale]!=null)n=locales[t.parentLocale]._config;else if(r=loadLocale(t.parentLocale),r!=null)n=r._config;else return localeFamilies[t.parentLocale]||(localeFamilies[t.parentLocale]=[]),localeFamilies[t.parentLocale].push({name:e,config:t}),null;return locales[e]=new Locale(mergeConfigs(n,t)),localeFamilies[e]&&localeFamilies[e].forEach(function(a){defineLocale(a.name,a.config)}),getSetGlobalLocale(e),locales[e]}else return delete locales[e],null}function updateLocale(e,t){if(t!=null){var r,n,a=baseConfig;locales[e]!=null&&locales[e].parentLocale!=null?locales[e].set(mergeConfigs(locales[e]._config,t)):(n=loadLocale(e),n!=null&&(a=n._config),t=mergeConfigs(a,t),n==null&&(t.abbr=e),r=new Locale(t),r.parentLocale=locales[e],locales[e]=r),getSetGlobalLocale(e)}else locales[e]!=null&&(locales[e].parentLocale!=null?(locales[e]=locales[e].parentLocale,e===getSetGlobalLocale()&&getSetGlobalLocale(e)):locales[e]!=null&&delete locales[e]);return locales[e]}function getLocale(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return globalLocale;if(!isArray(e)){if(t=loadLocale(e),t)return t;e=[e]}return chooseLocale(e)}function listLocales(){return keys(locales)}function checkOverflow(e){var t,r=e._a;return r&&getParsingFlags(e).overflow===-2&&(t=r[MONTH]<0||r[MONTH]>11?MONTH:r[DATE]<1||r[DATE]>daysInMonth(r[YEAR],r[MONTH])?DATE:r[HOUR]<0||r[HOUR]>24||r[HOUR]===24&&(r[MINUTE]!==0||r[SECOND]!==0||r[MILLISECOND]!==0)?HOUR:r[MINUTE]<0||r[MINUTE]>59?MINUTE:r[SECOND]<0||r[SECOND]>59?SECOND:r[MILLISECOND]<0||r[MILLISECOND]>999?MILLISECOND:-1,getParsingFlags(e)._overflowDayOfYear&&(t<YEAR||t>DATE)&&(t=DATE),getParsingFlags(e)._overflowWeeks&&t===-1&&(t=WEEK),getParsingFlags(e)._overflowWeekday&&t===-1&&(t=WEEKDAY),getParsingFlags(e).overflow=t),e}var extendedIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,basicIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,tzRegex=/Z|[+-]\d\d(?::?\d\d)?/,isoDates=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],isoTimes=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],aspNetJsonRegex=/^\/?Date\((-?\d+)/i,rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function configFromISO(e){var t,r,n=e._i,a=extendedIsoRegex.exec(n)||basicIsoRegex.exec(n),o,s,u,l,c=isoDates.length,d=isoTimes.length;if(a){for(getParsingFlags(e).iso=!0,t=0,r=c;t<r;t++)if(isoDates[t][1].exec(a[1])){s=isoDates[t][0],o=isoDates[t][2]!==!1;break}if(s==null){e._isValid=!1;return}if(a[3]){for(t=0,r=d;t<r;t++)if(isoTimes[t][1].exec(a[3])){u=(a[2]||" ")+isoTimes[t][0];break}if(u==null){e._isValid=!1;return}}if(!o&&u!=null){e._isValid=!1;return}if(a[4])if(tzRegex.exec(a[4]))l="Z";else{e._isValid=!1;return}e._f=s+(u||"")+(l||""),configFromStringAndFormat(e)}else e._isValid=!1}function extractFromRFC2822Strings(e,t,r,n,a,o){var s=[untruncateYear(e),defaultLocaleMonthsShort.indexOf(t),parseInt(r,10),parseInt(n,10),parseInt(a,10)];return o&&s.push(parseInt(o,10)),s}function untruncateYear(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function preprocessRFC2822(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function checkWeekday(e,t,r){if(e){var n=defaultLocaleWeekdaysShort.indexOf(e),a=new Date(t[0],t[1],t[2]).getDay();if(n!==a)return getParsingFlags(r).weekdayMismatch=!0,r._isValid=!1,!1}return!0}function calculateOffset(e,t,r){if(e)return obsOffsets[e];if(t)return 0;var n=parseInt(r,10),a=n%100,o=(n-a)/100;return o*60+a}function configFromRFC2822(e){var t=rfc2822.exec(preprocessRFC2822(e._i)),r;if(t){if(r=extractFromRFC2822Strings(t[4],t[3],t[2],t[5],t[6],t[7]),!checkWeekday(t[1],r,e))return;e._a=r,e._tzm=calculateOffset(t[8],t[9],t[10]),e._d=createUTCDate.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),getParsingFlags(e).rfc2822=!0}else e._isValid=!1}function configFromString(e){var t=aspNetJsonRegex.exec(e._i);if(t!==null){e._d=new Date(+t[1]);return}if(configFromISO(e),e._isValid===!1)delete e._isValid;else return;if(configFromRFC2822(e),e._isValid===!1)delete e._isValid;else return;e._strict?e._isValid=!1:hooks.createFromInputFallback(e)}hooks.createFromInputFallback=deprecate("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))});function defaults(e,t,r){return e!=null?e:t!=null?t:r}function currentDateArray(e){var t=new Date(hooks.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function configFromArray(e){var t,r,n=[],a,o,s;if(!e._d){for(a=currentDateArray(e),e._w&&e._a[DATE]==null&&e._a[MONTH]==null&&dayOfYearFromWeekInfo(e),e._dayOfYear!=null&&(s=defaults(e._a[YEAR],a[YEAR]),(e._dayOfYear>daysInYear(s)||e._dayOfYear===0)&&(getParsingFlags(e)._overflowDayOfYear=!0),r=createUTCDate(s,0,e._dayOfYear),e._a[MONTH]=r.getUTCMonth(),e._a[DATE]=r.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=n[t]=a[t];for(;t<7;t++)e._a[t]=n[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[HOUR]===24&&e._a[MINUTE]===0&&e._a[SECOND]===0&&e._a[MILLISECOND]===0&&(e._nextDay=!0,e._a[HOUR]=0),e._d=(e._useUTC?createUTCDate:createDate).apply(null,n),o=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[HOUR]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==o&&(getParsingFlags(e).weekdayMismatch=!0)}}function dayOfYearFromWeekInfo(e){var t,r,n,a,o,s,u,l,c;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(o=1,s=4,r=defaults(t.GG,e._a[YEAR],weekOfYear(createLocal(),1,4).year),n=defaults(t.W,1),a=defaults(t.E,1),(a<1||a>7)&&(l=!0)):(o=e._locale._week.dow,s=e._locale._week.doy,c=weekOfYear(createLocal(),o,s),r=defaults(t.gg,e._a[YEAR],c.year),n=defaults(t.w,c.week),t.d!=null?(a=t.d,(a<0||a>6)&&(l=!0)):t.e!=null?(a=t.e+o,(t.e<0||t.e>6)&&(l=!0)):a=o),n<1||n>weeksInYear(r,o,s)?getParsingFlags(e)._overflowWeeks=!0:l!=null?getParsingFlags(e)._overflowWeekday=!0:(u=dayOfYearFromWeeks(r,n,a,o,s),e._a[YEAR]=u.year,e._dayOfYear=u.dayOfYear)}hooks.ISO_8601=function(){},hooks.RFC_2822=function(){};function configFromStringAndFormat(e){if(e._f===hooks.ISO_8601){configFromISO(e);return}if(e._f===hooks.RFC_2822){configFromRFC2822(e);return}e._a=[],getParsingFlags(e).empty=!0;var t=""+e._i,r,n,a,o,s,u=t.length,l=0,c,d;for(a=expandFormat(e._f,e._locale).match(formattingTokens)||[],d=a.length,r=0;r<d;r++)o=a[r],n=(t.match(getParseRegexForToken(o,e))||[])[0],n&&(s=t.substr(0,t.indexOf(n)),s.length>0&&getParsingFlags(e).unusedInput.push(s),t=t.slice(t.indexOf(n)+n.length),l+=n.length),formatTokenFunctions[o]?(n?getParsingFlags(e).empty=!1:getParsingFlags(e).unusedTokens.push(o),addTimeToArrayFromToken(o,n,e)):e._strict&&!n&&getParsingFlags(e).unusedTokens.push(o);getParsingFlags(e).charsLeftOver=u-l,t.length>0&&getParsingFlags(e).unusedInput.push(t),e._a[HOUR]<=12&&getParsingFlags(e).bigHour===!0&&e._a[HOUR]>0&&(getParsingFlags(e).bigHour=void 0),getParsingFlags(e).parsedDateParts=e._a.slice(0),getParsingFlags(e).meridiem=e._meridiem,e._a[HOUR]=meridiemFixWrap(e._locale,e._a[HOUR],e._meridiem),c=getParsingFlags(e).era,c!==null&&(e._a[YEAR]=e._locale.erasConvertYear(c,e._a[YEAR])),configFromArray(e),checkOverflow(e)}function meridiemFixWrap(e,t,r){var n;return r==null?t:e.meridiemHour!=null?e.meridiemHour(t,r):(e.isPM!=null&&(n=e.isPM(r),n&&t<12&&(t+=12),!n&&t===12&&(t=0)),t)}function configFromStringAndArray(e){var t,r,n,a,o,s,u=!1,l=e._f.length;if(l===0){getParsingFlags(e).invalidFormat=!0,e._d=new Date(NaN);return}for(a=0;a<l;a++)o=0,s=!1,t=copyConfig({},e),e._useUTC!=null&&(t._useUTC=e._useUTC),t._f=e._f[a],configFromStringAndFormat(t),isValid(t)&&(s=!0),o+=getParsingFlags(t).charsLeftOver,o+=getParsingFlags(t).unusedTokens.length*10,getParsingFlags(t).score=o,u?o<n&&(n=o,r=t):(n==null||o<n||s)&&(n=o,r=t,s&&(u=!0));extend(e,r||t)}function configFromObject(e){if(!e._d){var t=normalizeObjectUnits(e._i),r=t.day===void 0?t.date:t.day;e._a=map([t.year,t.month,r,t.hour,t.minute,t.second,t.millisecond],function(n){return n&&parseInt(n,10)}),configFromArray(e)}}function createFromConfig(e){var t=new Moment(checkOverflow(prepareConfig(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function prepareConfig(e){var t=e._i,r=e._f;return e._locale=e._locale||getLocale(e._l),t===null||r===void 0&&t===""?createInvalid({nullInput:!0}):(typeof t=="string"&&(e._i=t=e._locale.preparse(t)),isMoment(t)?new Moment(checkOverflow(t)):(isDate(t)?e._d=t:isArray(r)?configFromStringAndArray(e):r?configFromStringAndFormat(e):configFromInput(e),isValid(e)||(e._d=null),e))}function configFromInput(e){var t=e._i;isUndefined(t)?e._d=new Date(hooks.now()):isDate(t)?e._d=new Date(t.valueOf()):typeof t=="string"?configFromString(e):isArray(t)?(e._a=map(t.slice(0),function(r){return parseInt(r,10)}),configFromArray(e)):isObject(t)?configFromObject(e):isNumber(t)?e._d=new Date(t):hooks.createFromInputFallback(e)}function createLocalOrUTC(e,t,r,n,a){var o={};return(t===!0||t===!1)&&(n=t,t=void 0),(r===!0||r===!1)&&(n=r,r=void 0),(isObject(e)&&isObjectEmpty(e)||isArray(e)&&e.length===0)&&(e=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=a,o._l=r,o._i=e,o._f=t,o._strict=n,createFromConfig(o)}function createLocal(e,t,r,n){return createLocalOrUTC(e,t,r,n,!1)}var prototypeMin=deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=createLocal.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:createInvalid()}),prototypeMax=deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=createLocal.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:createInvalid()});function pickBy(e,t){var r,n;if(t.length===1&&isArray(t[0])&&(t=t[0]),!t.length)return createLocal();for(r=t[0],n=1;n<t.length;++n)(!t[n].isValid()||t[n][e](r))&&(r=t[n]);return r}function min(){var e=[].slice.call(arguments,0);return pickBy("isBefore",e)}function max(){var e=[].slice.call(arguments,0);return pickBy("isAfter",e)}var now=function(){return Date.now?Date.now():+new Date},ordering=["year","quarter","month","week","day","hour","minute","second","millisecond"];function isDurationValid(e){var t,r=!1,n,a=ordering.length;for(t in e)if(hasOwnProp(e,t)&&!(indexOf.call(ordering,t)!==-1&&(e[t]==null||!isNaN(e[t]))))return!1;for(n=0;n<a;++n)if(e[ordering[n]]){if(r)return!1;parseFloat(e[ordering[n]])!==toInt(e[ordering[n]])&&(r=!0)}return!0}function isValid$1(){return this._isValid}function createInvalid$1(){return createDuration(NaN)}function Duration(e){var t=normalizeObjectUnits(e),r=t.year||0,n=t.quarter||0,a=t.month||0,o=t.week||t.isoWeek||0,s=t.day||0,u=t.hour||0,l=t.minute||0,c=t.second||0,d=t.millisecond||0;this._isValid=isDurationValid(t),this._milliseconds=+d+c*1e3+l*6e4+u*1e3*60*60,this._days=+s+o*7,this._months=+a+n*3+r*12,this._data={},this._locale=getLocale(),this._bubble()}function isDuration(e){return e instanceof Duration}function absRound(e){return e<0?Math.round(-1*e)*-1:Math.round(e)}function compareArrays(e,t,r){var n=Math.min(e.length,t.length),a=Math.abs(e.length-t.length),o=0,s;for(s=0;s<n;s++)(r&&e[s]!==t[s]||!r&&toInt(e[s])!==toInt(t[s]))&&o++;return o+a}function offset(e,t){addFormatToken(e,0,0,function(){var r=this.utcOffset(),n="+";return r<0&&(r=-r,n="-"),n+zeroFill(~~(r/60),2)+t+zeroFill(~~r%60,2)})}offset("Z",":"),offset("ZZ",""),addRegexToken("Z",matchShortOffset),addRegexToken("ZZ",matchShortOffset),addParseToken(["Z","ZZ"],function(e,t,r){r._useUTC=!0,r._tzm=offsetFromString(matchShortOffset,e)});var chunkOffset=/([\+\-]|\d\d)/gi;function offsetFromString(e,t){var r=(t||"").match(e),n,a,o;return r===null?null:(n=r[r.length-1]||[],a=(n+"").match(chunkOffset)||["-",0,0],o=+(a[1]*60)+toInt(a[2]),o===0?0:a[0]==="+"?o:-o)}function cloneWithOffset(e,t){var r,n;return t._isUTC?(r=t.clone(),n=(isMoment(e)||isDate(e)?e.valueOf():createLocal(e).valueOf())-r.valueOf(),r._d.setTime(r._d.valueOf()+n),hooks.updateOffset(r,!1),r):createLocal(e).local()}function getDateOffset(e){return-Math.round(e._d.getTimezoneOffset())}hooks.updateOffset=function(){};function getSetOffset(e,t,r){var n=this._offset||0,a;if(!this.isValid())return e!=null?this:NaN;if(e!=null){if(typeof e=="string"){if(e=offsetFromString(matchShortOffset,e),e===null)return this}else Math.abs(e)<16&&!r&&(e=e*60);return!this._isUTC&&t&&(a=getDateOffset(this)),this._offset=e,this._isUTC=!0,a!=null&&this.add(a,"m"),n!==e&&(!t||this._changeInProgress?addSubtract(this,createDuration(e-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,hooks.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?n:getDateOffset(this)}function getSetZone(e,t){return e!=null?(typeof e!="string"&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function setOffsetToUTC(e){return this.utcOffset(0,e)}function setOffsetToLocal(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(getDateOffset(this),"m")),this}function setOffsetToParsedOffset(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var e=offsetFromString(matchOffset,this._i);e!=null?this.utcOffset(e):this.utcOffset(0,!0)}return this}function hasAlignedHourOffset(e){return this.isValid()?(e=e?createLocal(e).utcOffset():0,(this.utcOffset()-e)%60===0):!1}function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted))return this._isDSTShifted;var e={},t;return copyConfig(e,this),e=prepareConfig(e),e._a?(t=e._isUTC?createUTC(e._a):createLocal(e._a),this._isDSTShifted=this.isValid()&&compareArrays(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function isLocal(){return this.isValid()?!this._isUTC:!1}function isUtcOffset(){return this.isValid()?this._isUTC:!1}function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:!1}var aspNetRegex=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,isoRegex=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(e,t){var r=e,n=null,a,o,s;return isDuration(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:isNumber(e)||!isNaN(+e)?(r={},t?r[t]=+e:r.milliseconds=+e):(n=aspNetRegex.exec(e))?(a=n[1]==="-"?-1:1,r={y:0,d:toInt(n[DATE])*a,h:toInt(n[HOUR])*a,m:toInt(n[MINUTE])*a,s:toInt(n[SECOND])*a,ms:toInt(absRound(n[MILLISECOND]*1e3))*a}):(n=isoRegex.exec(e))?(a=n[1]==="-"?-1:1,r={y:parseIso(n[2],a),M:parseIso(n[3],a),w:parseIso(n[4],a),d:parseIso(n[5],a),h:parseIso(n[6],a),m:parseIso(n[7],a),s:parseIso(n[8],a)}):r==null?r={}:typeof r=="object"&&("from"in r||"to"in r)&&(s=momentsDifference(createLocal(r.from),createLocal(r.to)),r={},r.ms=s.milliseconds,r.M=s.months),o=new Duration(r),isDuration(e)&&hasOwnProp(e,"_locale")&&(o._locale=e._locale),isDuration(e)&&hasOwnProp(e,"_isValid")&&(o._isValid=e._isValid),o}createDuration.fn=Duration.prototype,createDuration.invalid=createInvalid$1;function parseIso(e,t){var r=e&&parseFloat(e.replace(",","."));return(isNaN(r)?0:r)*t}function positiveMomentsDifference(e,t){var r={};return r.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(r.months,"M").isAfter(t)&&--r.months,r.milliseconds=+t-+e.clone().add(r.months,"M"),r}function momentsDifference(e,t){var r;return e.isValid()&&t.isValid()?(t=cloneWithOffset(t,e),e.isBefore(t)?r=positiveMomentsDifference(e,t):(r=positiveMomentsDifference(t,e),r.milliseconds=-r.milliseconds,r.months=-r.months),r):{milliseconds:0,months:0}}function createAdder(e,t){return function(r,n){var a,o;return n!==null&&!isNaN(+n)&&(deprecateSimple(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=r,r=n,n=o),a=createDuration(r,n),addSubtract(this,a,e),this}}function addSubtract(e,t,r,n){var a=t._milliseconds,o=absRound(t._days),s=absRound(t._months);!e.isValid()||(n=n==null?!0:n,s&&setMonth(e,get(e,"Month")+s*r),o&&set$1(e,"Date",get(e,"Date")+o*r),a&&e._d.setTime(e._d.valueOf()+a*r),n&&hooks.updateOffset(e,o||s))}var add=createAdder(1,"add"),subtract=createAdder(-1,"subtract");function isString(e){return typeof e=="string"||e instanceof String}function isMomentInput(e){return isMoment(e)||isDate(e)||isString(e)||isNumber(e)||isNumberOrStringArray(e)||isMomentInputObject(e)||e===null||e===void 0}function isMomentInputObject(e){var t=isObject(e)&&!isObjectEmpty(e),r=!1,n=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],a,o,s=n.length;for(a=0;a<s;a+=1)o=n[a],r=r||hasOwnProp(e,o);return t&&r}function isNumberOrStringArray(e){var t=isArray(e),r=!1;return t&&(r=e.filter(function(n){return!isNumber(n)&&isString(e)}).length===0),t&&r}function isCalendarSpec(e){var t=isObject(e)&&!isObjectEmpty(e),r=!1,n=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],a,o;for(a=0;a<n.length;a+=1)o=n[a],r=r||hasOwnProp(e,o);return t&&r}function getCalendarFormat(e,t){var r=e.diff(t,"days",!0);return r<-6?"sameElse":r<-1?"lastWeek":r<0?"lastDay":r<1?"sameDay":r<2?"nextDay":r<7?"nextWeek":"sameElse"}function calendar$1(e,t){arguments.length===1&&(arguments[0]?isMomentInput(arguments[0])?(e=arguments[0],t=void 0):isCalendarSpec(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var r=e||createLocal(),n=cloneWithOffset(r,this).startOf("day"),a=hooks.calendarFormat(this,n)||"sameElse",o=t&&(isFunction(t[a])?t[a].call(this,r):t[a]);return this.format(o||this.localeData().calendar(a,this,createLocal(r)))}function clone(){return new Moment(this)}function isAfter(e,t){var r=isMoment(e)?e:createLocal(e);return this.isValid()&&r.isValid()?(t=normalizeUnits(t)||"millisecond",t==="millisecond"?this.valueOf()>r.valueOf():r.valueOf()<this.clone().startOf(t).valueOf()):!1}function isBefore(e,t){var r=isMoment(e)?e:createLocal(e);return this.isValid()&&r.isValid()?(t=normalizeUnits(t)||"millisecond",t==="millisecond"?this.valueOf()<r.valueOf():this.clone().endOf(t).valueOf()<r.valueOf()):!1}function isBetween(e,t,r,n){var a=isMoment(e)?e:createLocal(e),o=isMoment(t)?t:createLocal(t);return this.isValid()&&a.isValid()&&o.isValid()?(n=n||"()",(n[0]==="("?this.isAfter(a,r):!this.isBefore(a,r))&&(n[1]===")"?this.isBefore(o,r):!this.isAfter(o,r))):!1}function isSame(e,t){var r=isMoment(e)?e:createLocal(e),n;return this.isValid()&&r.isValid()?(t=normalizeUnits(t)||"millisecond",t==="millisecond"?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf())):!1}function isSameOrAfter(e,t){return this.isSame(e,t)||this.isAfter(e,t)}function isSameOrBefore(e,t){return this.isSame(e,t)||this.isBefore(e,t)}function diff(e,t,r){var n,a,o;if(!this.isValid())return NaN;if(n=cloneWithOffset(e,this),!n.isValid())return NaN;switch(a=(n.utcOffset()-this.utcOffset())*6e4,t=normalizeUnits(t),t){case"year":o=monthDiff(this,n)/12;break;case"month":o=monthDiff(this,n);break;case"quarter":o=monthDiff(this,n)/3;break;case"second":o=(this-n)/1e3;break;case"minute":o=(this-n)/6e4;break;case"hour":o=(this-n)/36e5;break;case"day":o=(this-n-a)/864e5;break;case"week":o=(this-n-a)/6048e5;break;default:o=this-n}return r?o:absFloor(o)}function monthDiff(e,t){if(e.date()<t.date())return-monthDiff(t,e);var r=(t.year()-e.year())*12+(t.month()-e.month()),n=e.clone().add(r,"months"),a,o;return t-n<0?(a=e.clone().add(r-1,"months"),o=(t-n)/(n-a)):(a=e.clone().add(r+1,"months"),o=(t-n)/(a-n)),-(r+o)||0}hooks.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",hooks.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function toString(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function toISOString(e){if(!this.isValid())return null;var t=e!==!0,r=t?this.clone().utc():this;return r.year()<0||r.year()>9999?formatMoment(r,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):isFunction(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",formatMoment(r,"Z")):formatMoment(r,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function inspect(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="",r,n,a,o;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z"),r="["+e+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",o=t+'[")]',this.format(r+n+a+o)}function format(e){e||(e=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat);var t=formatMoment(this,e);return this.localeData().postformat(t)}function from(e,t){return this.isValid()&&(isMoment(e)&&e.isValid()||createLocal(e).isValid())?createDuration({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function fromNow(e){return this.from(createLocal(),e)}function to(e,t){return this.isValid()&&(isMoment(e)&&e.isValid()||createLocal(e).isValid())?createDuration({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function toNow(e){return this.to(createLocal(),e)}function locale(e){var t;return e===void 0?this._locale._abbr:(t=getLocale(e),t!=null&&(this._locale=t),this)}var lang=deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function localeData(){return this._locale}var MS_PER_SECOND=1e3,MS_PER_MINUTE=60*MS_PER_SECOND,MS_PER_HOUR=60*MS_PER_MINUTE,MS_PER_400_YEARS=(365*400+97)*24*MS_PER_HOUR;function mod$1(e,t){return(e%t+t)%t}function localStartOfDate(e,t,r){return e<100&&e>=0?new Date(e+400,t,r)-MS_PER_400_YEARS:new Date(e,t,r).valueOf()}function utcStartOfDate(e,t,r){return e<100&&e>=0?Date.UTC(e+400,t,r)-MS_PER_400_YEARS:Date.UTC(e,t,r)}function startOf(e){var t,r;if(e=normalizeUnits(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(r=this._isUTC?utcStartOfDate:localStartOfDate,e){case"year":t=r(this.year(),0,1);break;case"quarter":t=r(this.year(),this.month()-this.month()%3,1);break;case"month":t=r(this.year(),this.month(),1);break;case"week":t=r(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=r(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=mod$1(t+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR);break;case"minute":t=this._d.valueOf(),t-=mod$1(t,MS_PER_MINUTE);break;case"second":t=this._d.valueOf(),t-=mod$1(t,MS_PER_SECOND);break}return this._d.setTime(t),hooks.updateOffset(this,!0),this}function endOf(e){var t,r;if(e=normalizeUnits(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(r=this._isUTC?utcStartOfDate:localStartOfDate,e){case"year":t=r(this.year()+1,0,1)-1;break;case"quarter":t=r(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=r(this.year(),this.month()+1,1)-1;break;case"week":t=r(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=r(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=MS_PER_HOUR-mod$1(t+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR)-1;break;case"minute":t=this._d.valueOf(),t+=MS_PER_MINUTE-mod$1(t,MS_PER_MINUTE)-1;break;case"second":t=this._d.valueOf(),t+=MS_PER_SECOND-mod$1(t,MS_PER_SECOND)-1;break}return this._d.setTime(t),hooks.updateOffset(this,!0),this}function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function toObject(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function isValid$2(){return isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}addFormatToken("N",0,0,"eraAbbr"),addFormatToken("NN",0,0,"eraAbbr"),addFormatToken("NNN",0,0,"eraAbbr"),addFormatToken("NNNN",0,0,"eraName"),addFormatToken("NNNNN",0,0,"eraNarrow"),addFormatToken("y",["y",1],"yo","eraYear"),addFormatToken("y",["yy",2],0,"eraYear"),addFormatToken("y",["yyy",3],0,"eraYear"),addFormatToken("y",["yyyy",4],0,"eraYear"),addRegexToken("N",matchEraAbbr),addRegexToken("NN",matchEraAbbr),addRegexToken("NNN",matchEraAbbr),addRegexToken("NNNN",matchEraName),addRegexToken("NNNNN",matchEraNarrow),addParseToken(["N","NN","NNN","NNNN","NNNNN"],function(e,t,r,n){var a=r._locale.erasParse(e,n,r._strict);a?getParsingFlags(r).era=a:getParsingFlags(r).invalidEra=e}),addRegexToken("y",matchUnsigned),addRegexToken("yy",matchUnsigned),addRegexToken("yyy",matchUnsigned),addRegexToken("yyyy",matchUnsigned),addRegexToken("yo",matchEraYearOrdinal),addParseToken(["y","yy","yyy","yyyy"],YEAR),addParseToken(["yo"],function(e,t,r,n){var a;r._locale._eraYearOrdinalRegex&&(a=e.match(r._locale._eraYearOrdinalRegex)),r._locale.eraYearOrdinalParse?t[YEAR]=r._locale.eraYearOrdinalParse(e,a):t[YEAR]=parseInt(e,10)});function localeEras(e,t){var r,n,a,o=this._eras||getLocale("en")._eras;for(r=0,n=o.length;r<n;++r){switch(typeof o[r].since){case"string":a=hooks(o[r].since).startOf("day"),o[r].since=a.valueOf();break}switch(typeof o[r].until){case"undefined":o[r].until=1/0;break;case"string":a=hooks(o[r].until).startOf("day").valueOf(),o[r].until=a.valueOf();break}}return o}function localeErasParse(e,t,r){var n,a,o=this.eras(),s,u,l;for(e=e.toUpperCase(),n=0,a=o.length;n<a;++n)if(s=o[n].name.toUpperCase(),u=o[n].abbr.toUpperCase(),l=o[n].narrow.toUpperCase(),r)switch(t){case"N":case"NN":case"NNN":if(u===e)return o[n];break;case"NNNN":if(s===e)return o[n];break;case"NNNNN":if(l===e)return o[n];break}else if([s,u,l].indexOf(e)>=0)return o[n]}function localeErasConvertYear(e,t){var r=e.since<=e.until?1:-1;return t===void 0?hooks(e.since).year():hooks(e.since).year()+(t-e.offset)*r}function getEraName(){var e,t,r,n=this.localeData().eras();for(e=0,t=n.length;e<t;++e)if(r=this.clone().startOf("day").valueOf(),n[e].since<=r&&r<=n[e].until||n[e].until<=r&&r<=n[e].since)return n[e].name;return""}function getEraNarrow(){var e,t,r,n=this.localeData().eras();for(e=0,t=n.length;e<t;++e)if(r=this.clone().startOf("day").valueOf(),n[e].since<=r&&r<=n[e].until||n[e].until<=r&&r<=n[e].since)return n[e].narrow;return""}function getEraAbbr(){var e,t,r,n=this.localeData().eras();for(e=0,t=n.length;e<t;++e)if(r=this.clone().startOf("day").valueOf(),n[e].since<=r&&r<=n[e].until||n[e].until<=r&&r<=n[e].since)return n[e].abbr;return""}function getEraYear(){var e,t,r,n,a=this.localeData().eras();for(e=0,t=a.length;e<t;++e)if(r=a[e].since<=a[e].until?1:-1,n=this.clone().startOf("day").valueOf(),a[e].since<=n&&n<=a[e].until||a[e].until<=n&&n<=a[e].since)return(this.year()-hooks(a[e].since).year())*r+a[e].offset;return this.year()}function erasNameRegex(e){return hasOwnProp(this,"_erasNameRegex")||computeErasParse.call(this),e?this._erasNameRegex:this._erasRegex}function erasAbbrRegex(e){return hasOwnProp(this,"_erasAbbrRegex")||computeErasParse.call(this),e?this._erasAbbrRegex:this._erasRegex}function erasNarrowRegex(e){return hasOwnProp(this,"_erasNarrowRegex")||computeErasParse.call(this),e?this._erasNarrowRegex:this._erasRegex}function matchEraAbbr(e,t){return t.erasAbbrRegex(e)}function matchEraName(e,t){return t.erasNameRegex(e)}function matchEraNarrow(e,t){return t.erasNarrowRegex(e)}function matchEraYearOrdinal(e,t){return t._eraYearOrdinalRegex||matchUnsigned}function computeErasParse(){var e=[],t=[],r=[],n=[],a,o,s=this.eras();for(a=0,o=s.length;a<o;++a)t.push(regexEscape(s[a].name)),e.push(regexEscape(s[a].abbr)),r.push(regexEscape(s[a].narrow)),n.push(regexEscape(s[a].name)),n.push(regexEscape(s[a].abbr)),n.push(regexEscape(s[a].narrow));this._erasRegex=new RegExp("^("+n.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+t.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+e.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+r.join("|")+")","i")}addFormatToken(0,["gg",2],0,function(){return this.weekYear()%100}),addFormatToken(0,["GG",2],0,function(){return this.isoWeekYear()%100});function addWeekYearFormatToken(e,t){addFormatToken(0,[e,e.length],0,t)}addWeekYearFormatToken("gggg","weekYear"),addWeekYearFormatToken("ggggg","weekYear"),addWeekYearFormatToken("GGGG","isoWeekYear"),addWeekYearFormatToken("GGGGG","isoWeekYear"),addUnitAlias("weekYear","gg"),addUnitAlias("isoWeekYear","GG"),addUnitPriority("weekYear",1),addUnitPriority("isoWeekYear",1),addRegexToken("G",matchSigned),addRegexToken("g",matchSigned),addRegexToken("GG",match1to2,match2),addRegexToken("gg",match1to2,match2),addRegexToken("GGGG",match1to4,match4),addRegexToken("gggg",match1to4,match4),addRegexToken("GGGGG",match1to6,match6),addRegexToken("ggggg",match1to6,match6),addWeekParseToken(["gggg","ggggg","GGGG","GGGGG"],function(e,t,r,n){t[n.substr(0,2)]=toInt(e)}),addWeekParseToken(["gg","GG"],function(e,t,r,n){t[n]=hooks.parseTwoDigitYear(e)});function getSetWeekYear(e){return getSetWeekYearHelper.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function getSetISOWeekYear(e){return getSetWeekYearHelper.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}function getISOWeeksInISOWeekYear(){return weeksInYear(this.isoWeekYear(),1,4)}function getWeeksInYear(){var e=this.localeData()._week;return weeksInYear(this.year(),e.dow,e.doy)}function getWeeksInWeekYear(){var e=this.localeData()._week;return weeksInYear(this.weekYear(),e.dow,e.doy)}function getSetWeekYearHelper(e,t,r,n,a){var o;return e==null?weekOfYear(this,n,a).year:(o=weeksInYear(e,n,a),t>o&&(t=o),setWeekAll.call(this,e,t,r,n,a))}function setWeekAll(e,t,r,n,a){var o=dayOfYearFromWeeks(e,t,r,n,a),s=createUTCDate(o.year,0,o.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}addFormatToken("Q",0,"Qo","quarter"),addUnitAlias("quarter","Q"),addUnitPriority("quarter",7),addRegexToken("Q",match1),addParseToken("Q",function(e,t){t[MONTH]=(toInt(e)-1)*3});function getSetQuarter(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}addFormatToken("D",["DD",2],"Do","date"),addUnitAlias("date","D"),addUnitPriority("date",9),addRegexToken("D",match1to2),addRegexToken("DD",match1to2,match2),addRegexToken("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),addParseToken(["D","DD"],DATE),addParseToken("Do",function(e,t){t[DATE]=toInt(e.match(match1to2)[0])});var getSetDayOfMonth=makeGetSet("Date",!0);addFormatToken("DDD",["DDDD",3],"DDDo","dayOfYear"),addUnitAlias("dayOfYear","DDD"),addUnitPriority("dayOfYear",4),addRegexToken("DDD",match1to3),addRegexToken("DDDD",match3),addParseToken(["DDD","DDDD"],function(e,t,r){r._dayOfYear=toInt(e)});function getSetDayOfYear(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}addFormatToken("m",["mm",2],0,"minute"),addUnitAlias("minute","m"),addUnitPriority("minute",14),addRegexToken("m",match1to2),addRegexToken("mm",match1to2,match2),addParseToken(["m","mm"],MINUTE);var getSetMinute=makeGetSet("Minutes",!1);addFormatToken("s",["ss",2],0,"second"),addUnitAlias("second","s"),addUnitPriority("second",15),addRegexToken("s",match1to2),addRegexToken("ss",match1to2,match2),addParseToken(["s","ss"],SECOND);var getSetSecond=makeGetSet("Seconds",!1);addFormatToken("S",0,0,function(){return~~(this.millisecond()/100)}),addFormatToken(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),addFormatToken(0,["SSS",3],0,"millisecond"),addFormatToken(0,["SSSS",4],0,function(){return this.millisecond()*10}),addFormatToken(0,["SSSSS",5],0,function(){return this.millisecond()*100}),addFormatToken(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),addFormatToken(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),addFormatToken(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),addFormatToken(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),addUnitAlias("millisecond","ms"),addUnitPriority("millisecond",16),addRegexToken("S",match1to3,match1),addRegexToken("SS",match1to3,match2),addRegexToken("SSS",match1to3,match3);var token,getSetMillisecond;for(token="SSSS";token.length<=9;token+="S")addRegexToken(token,matchUnsigned);function parseMs(e,t){t[MILLISECOND]=toInt(("0."+e)*1e3)}for(token="S";token.length<=9;token+="S")addParseToken(token,parseMs);getSetMillisecond=makeGetSet("Milliseconds",!1),addFormatToken("z",0,0,"zoneAbbr"),addFormatToken("zz",0,0,"zoneName");function getZoneAbbr(){return this._isUTC?"UTC":""}function getZoneName(){return this._isUTC?"Coordinated Universal Time":""}var proto=Moment.prototype;proto.add=add,proto.calendar=calendar$1,proto.clone=clone,proto.diff=diff,proto.endOf=endOf,proto.format=format,proto.from=from,proto.fromNow=fromNow,proto.to=to,proto.toNow=toNow,proto.get=stringGet,proto.invalidAt=invalidAt,proto.isAfter=isAfter,proto.isBefore=isBefore,proto.isBetween=isBetween,proto.isSame=isSame,proto.isSameOrAfter=isSameOrAfter,proto.isSameOrBefore=isSameOrBefore,proto.isValid=isValid$2,proto.lang=lang,proto.locale=locale,proto.localeData=localeData,proto.max=prototypeMax,proto.min=prototypeMin,proto.parsingFlags=parsingFlags,proto.set=stringSet,proto.startOf=startOf,proto.subtract=subtract,proto.toArray=toArray,proto.toObject=toObject,proto.toDate=toDate,proto.toISOString=toISOString,proto.inspect=inspect,typeof Symbol<"u"&&Symbol.for!=null&&(proto[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),proto.toJSON=toJSON,proto.toString=toString,proto.unix=unix,proto.valueOf=valueOf,proto.creationData=creationData,proto.eraName=getEraName,proto.eraNarrow=getEraNarrow,proto.eraAbbr=getEraAbbr,proto.eraYear=getEraYear,proto.year=getSetYear,proto.isLeapYear=getIsLeapYear,proto.weekYear=getSetWeekYear,proto.isoWeekYear=getSetISOWeekYear,proto.quarter=proto.quarters=getSetQuarter,proto.month=getSetMonth,proto.daysInMonth=getDaysInMonth,proto.week=proto.weeks=getSetWeek,proto.isoWeek=proto.isoWeeks=getSetISOWeek,proto.weeksInYear=getWeeksInYear,proto.weeksInWeekYear=getWeeksInWeekYear,proto.isoWeeksInYear=getISOWeeksInYear,proto.isoWeeksInISOWeekYear=getISOWeeksInISOWeekYear,proto.date=getSetDayOfMonth,proto.day=proto.days=getSetDayOfWeek,proto.weekday=getSetLocaleDayOfWeek,proto.isoWeekday=getSetISODayOfWeek,proto.dayOfYear=getSetDayOfYear,proto.hour=proto.hours=getSetHour,proto.minute=proto.minutes=getSetMinute,proto.second=proto.seconds=getSetSecond,proto.millisecond=proto.milliseconds=getSetMillisecond,proto.utcOffset=getSetOffset,proto.utc=setOffsetToUTC,proto.local=setOffsetToLocal,proto.parseZone=setOffsetToParsedOffset,proto.hasAlignedHourOffset=hasAlignedHourOffset,proto.isDST=isDaylightSavingTime,proto.isLocal=isLocal,proto.isUtcOffset=isUtcOffset,proto.isUtc=isUtc,proto.isUTC=isUtc,proto.zoneAbbr=getZoneAbbr,proto.zoneName=getZoneName,proto.dates=deprecate("dates accessor is deprecated. Use date instead.",getSetDayOfMonth),proto.months=deprecate("months accessor is deprecated. Use month instead",getSetMonth),proto.years=deprecate("years accessor is deprecated. Use year instead",getSetYear),proto.zone=deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",getSetZone),proto.isDSTShifted=deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",isDaylightSavingTimeShifted);function createUnix(e){return createLocal(e*1e3)}function createInZone(){return createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(e){return e}var proto$1=Locale.prototype;proto$1.calendar=calendar,proto$1.longDateFormat=longDateFormat,proto$1.invalidDate=invalidDate,proto$1.ordinal=ordinal,proto$1.preparse=preParsePostFormat,proto$1.postformat=preParsePostFormat,proto$1.relativeTime=relativeTime,proto$1.pastFuture=pastFuture,proto$1.set=set,proto$1.eras=localeEras,proto$1.erasParse=localeErasParse,proto$1.erasConvertYear=localeErasConvertYear,proto$1.erasAbbrRegex=erasAbbrRegex,proto$1.erasNameRegex=erasNameRegex,proto$1.erasNarrowRegex=erasNarrowRegex,proto$1.months=localeMonths,proto$1.monthsShort=localeMonthsShort,proto$1.monthsParse=localeMonthsParse,proto$1.monthsRegex=monthsRegex,proto$1.monthsShortRegex=monthsShortRegex,proto$1.week=localeWeek,proto$1.firstDayOfYear=localeFirstDayOfYear,proto$1.firstDayOfWeek=localeFirstDayOfWeek,proto$1.weekdays=localeWeekdays,proto$1.weekdaysMin=localeWeekdaysMin,proto$1.weekdaysShort=localeWeekdaysShort,proto$1.weekdaysParse=localeWeekdaysParse,proto$1.weekdaysRegex=weekdaysRegex,proto$1.weekdaysShortRegex=weekdaysShortRegex,proto$1.weekdaysMinRegex=weekdaysMinRegex,proto$1.isPM=localeIsPM,proto$1.meridiem=localeMeridiem;function get$1(e,t,r,n){var a=getLocale(),o=createUTC().set(n,t);return a[r](o,e)}function listMonthsImpl(e,t,r){if(isNumber(e)&&(t=e,e=void 0),e=e||"",t!=null)return get$1(e,t,r,"month");var n,a=[];for(n=0;n<12;n++)a[n]=get$1(e,n,r,"month");return a}function listWeekdaysImpl(e,t,r,n){typeof e=="boolean"?(isNumber(t)&&(r=t,t=void 0),t=t||""):(t=e,r=t,e=!1,isNumber(t)&&(r=t,t=void 0),t=t||"");var a=getLocale(),o=e?a._week.dow:0,s,u=[];if(r!=null)return get$1(t,(r+o)%7,n,"day");for(s=0;s<7;s++)u[s]=get$1(t,(s+o)%7,n,"day");return u}function listMonths(e,t){return listMonthsImpl(e,t,"months")}function listMonthsShort(e,t){return listMonthsImpl(e,t,"monthsShort")}function listWeekdays(e,t,r){return listWeekdaysImpl(e,t,r,"weekdays")}function listWeekdaysShort(e,t,r){return listWeekdaysImpl(e,t,r,"weekdaysShort")}function listWeekdaysMin(e,t,r){return listWeekdaysImpl(e,t,r,"weekdaysMin")}getSetGlobalLocale("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,r=toInt(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+r}}),hooks.lang=deprecate("moment.lang is deprecated. Use moment.locale instead.",getSetGlobalLocale),hooks.langData=deprecate("moment.langData is deprecated. Use moment.localeData instead.",getLocale);var mathAbs=Math.abs;function abs(){var e=this._data;return this._milliseconds=mathAbs(this._milliseconds),this._days=mathAbs(this._days),this._months=mathAbs(this._months),e.milliseconds=mathAbs(e.milliseconds),e.seconds=mathAbs(e.seconds),e.minutes=mathAbs(e.minutes),e.hours=mathAbs(e.hours),e.months=mathAbs(e.months),e.years=mathAbs(e.years),this}function addSubtract$1(e,t,r,n){var a=createDuration(t,r);return e._milliseconds+=n*a._milliseconds,e._days+=n*a._days,e._months+=n*a._months,e._bubble()}function add$1(e,t){return addSubtract$1(this,e,t,1)}function subtract$1(e,t){return addSubtract$1(this,e,t,-1)}function absCeil(e){return e<0?Math.floor(e):Math.ceil(e)}function bubble(){var e=this._milliseconds,t=this._days,r=this._months,n=this._data,a,o,s,u,l;return e>=0&&t>=0&&r>=0||e<=0&&t<=0&&r<=0||(e+=absCeil(monthsToDays(r)+t)*864e5,t=0,r=0),n.milliseconds=e%1e3,a=absFloor(e/1e3),n.seconds=a%60,o=absFloor(a/60),n.minutes=o%60,s=absFloor(o/60),n.hours=s%24,t+=absFloor(s/24),l=absFloor(daysToMonths(t)),r+=l,t-=absCeil(monthsToDays(l)),u=absFloor(r/12),r%=12,n.days=t,n.months=r,n.years=u,this}function daysToMonths(e){return e*4800/146097}function monthsToDays(e){return e*146097/4800}function as(e){if(!this.isValid())return NaN;var t,r,n=this._milliseconds;if(e=normalizeUnits(e),e==="month"||e==="quarter"||e==="year")switch(t=this._days+n/864e5,r=this._months+daysToMonths(t),e){case"month":return r;case"quarter":return r/3;case"year":return r/12}else switch(t=this._days+Math.round(monthsToDays(this._months)),e){case"week":return t/7+n/6048e5;case"day":return t+n/864e5;case"hour":return t*24+n/36e5;case"minute":return t*1440+n/6e4;case"second":return t*86400+n/1e3;case"millisecond":return Math.floor(t*864e5)+n;default:throw new Error("Unknown unit "+e)}}function valueOf$1(){return this.isValid()?this._milliseconds+this._days*864e5+this._months%12*2592e6+toInt(this._months/12)*31536e6:NaN}function makeAs(e){return function(){return this.as(e)}}var asMilliseconds=makeAs("ms"),asSeconds=makeAs("s"),asMinutes=makeAs("m"),asHours=makeAs("h"),asDays=makeAs("d"),asWeeks=makeAs("w"),asMonths=makeAs("M"),asQuarters=makeAs("Q"),asYears=makeAs("y");function clone$1(){return createDuration(this)}function get$2(e){return e=normalizeUnits(e),this.isValid()?this[e+"s"]():NaN}function makeGetter(e){return function(){return this.isValid()?this._data[e]:NaN}}var milliseconds=makeGetter("milliseconds"),seconds=makeGetter("seconds"),minutes=makeGetter("minutes"),hours=makeGetter("hours"),days=makeGetter("days"),months=makeGetter("months"),years=makeGetter("years");function weeks(){return absFloor(this.days()/7)}var round=Math.round,thresholds={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function substituteTimeAgo(e,t,r,n,a){return a.relativeTime(t||1,!!r,e,n)}function relativeTime$1(e,t,r,n){var a=createDuration(e).abs(),o=round(a.as("s")),s=round(a.as("m")),u=round(a.as("h")),l=round(a.as("d")),c=round(a.as("M")),d=round(a.as("w")),f=round(a.as("y")),p=o<=r.ss&&["s",o]||o<r.s&&["ss",o]||s<=1&&["m"]||s<r.m&&["mm",s]||u<=1&&["h"]||u<r.h&&["hh",u]||l<=1&&["d"]||l<r.d&&["dd",l];return r.w!=null&&(p=p||d<=1&&["w"]||d<r.w&&["ww",d]),p=p||c<=1&&["M"]||c<r.M&&["MM",c]||f<=1&&["y"]||["yy",f],p[2]=t,p[3]=+e>0,p[4]=n,substituteTimeAgo.apply(null,p)}function getSetRelativeTimeRounding(e){return e===void 0?round:typeof e=="function"?(round=e,!0):!1}function getSetRelativeTimeThreshold(e,t){return thresholds[e]===void 0?!1:t===void 0?thresholds[e]:(thresholds[e]=t,e==="s"&&(thresholds.ss=t-1),!0)}function humanize(e,t){if(!this.isValid())return this.localeData().invalidDate();var r=!1,n=thresholds,a,o;return typeof e=="object"&&(t=e,e=!1),typeof e=="boolean"&&(r=e),typeof t=="object"&&(n=Object.assign({},thresholds,t),t.s!=null&&t.ss==null&&(n.ss=t.s-1)),a=this.localeData(),o=relativeTime$1(this,!r,n,a),r&&(o=a.pastFuture(+this,o)),a.postformat(o)}var abs$1=Math.abs;function sign(e){return(e>0)-(e<0)||+e}function toISOString$1(){if(!this.isValid())return this.localeData().invalidDate();var e=abs$1(this._milliseconds)/1e3,t=abs$1(this._days),r=abs$1(this._months),n,a,o,s,u=this.asSeconds(),l,c,d,f;return u?(n=absFloor(e/60),a=absFloor(n/60),e%=60,n%=60,o=absFloor(r/12),r%=12,s=e?e.toFixed(3).replace(/\.?0+$/,""):"",l=u<0?"-":"",c=sign(this._months)!==sign(u)?"-":"",d=sign(this._days)!==sign(u)?"-":"",f=sign(this._milliseconds)!==sign(u)?"-":"",l+"P"+(o?c+o+"Y":"")+(r?c+r+"M":"")+(t?d+t+"D":"")+(a||n||e?"T":"")+(a?f+a+"H":"")+(n?f+n+"M":"")+(e?f+s+"S":"")):"P0D"}var proto$2=Duration.prototype;proto$2.isValid=isValid$1,proto$2.abs=abs,proto$2.add=add$1,proto$2.subtract=subtract$1,proto$2.as=as,proto$2.asMilliseconds=asMilliseconds,proto$2.asSeconds=asSeconds,proto$2.asMinutes=asMinutes,proto$2.asHours=asHours,proto$2.asDays=asDays,proto$2.asWeeks=asWeeks,proto$2.asMonths=asMonths,proto$2.asQuarters=asQuarters,proto$2.asYears=asYears,proto$2.valueOf=valueOf$1,proto$2._bubble=bubble,proto$2.clone=clone$1,proto$2.get=get$2,proto$2.milliseconds=milliseconds,proto$2.seconds=seconds,proto$2.minutes=minutes,proto$2.hours=hours,proto$2.days=days,proto$2.weeks=weeks,proto$2.months=months,proto$2.years=years,proto$2.humanize=humanize,proto$2.toISOString=toISOString$1,proto$2.toString=toISOString$1,proto$2.toJSON=toISOString$1,proto$2.locale=locale,proto$2.localeData=localeData,proto$2.toIsoString=deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",toISOString$1),proto$2.lang=lang,addFormatToken("X",0,0,"unix"),addFormatToken("x",0,0,"valueOf"),addRegexToken("x",matchSigned),addRegexToken("X",matchTimestamp),addParseToken("X",function(e,t,r){r._d=new Date(parseFloat(e)*1e3)}),addParseToken("x",function(e,t,r){r._d=new Date(toInt(e))});//! moment.js
|
|
128
128
|
hooks.version="2.29.4",setHookCallback(createLocal),hooks.fn=proto,hooks.min=min,hooks.max=max,hooks.now=now,hooks.utc=createUTC,hooks.unix=createUnix,hooks.months=listMonths,hooks.isDate=isDate,hooks.locale=getSetGlobalLocale,hooks.invalid=createInvalid,hooks.duration=createDuration,hooks.isMoment=isMoment,hooks.weekdays=listWeekdays,hooks.parseZone=createInZone,hooks.localeData=getLocale,hooks.isDuration=isDuration,hooks.monthsShort=listMonthsShort,hooks.weekdaysMin=listWeekdaysMin,hooks.defineLocale=defineLocale,hooks.updateLocale=updateLocale,hooks.locales=listLocales,hooks.weekdaysShort=listWeekdaysShort,hooks.normalizeUnits=normalizeUnits,hooks.relativeTimeRounding=getSetRelativeTimeRounding,hooks.relativeTimeThreshold=getSetRelativeTimeThreshold,hooks.calendarFormat=getCalendarFormat,hooks.prototype=proto,hooks.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};const DatePickerConfig={date:{placeholder:"__/__/____",dateDisplayFormat:"YYYY-MM-DD",dateInternalFormat:"YYYY-MM-DD"},time:{placeholder:"__/__/____ __:__:__",dateDisplayFormat:"YYYY-MM-DD HH:mm:ss",dateInternalFormat:"YYYY-MM-DD HH:mm:ss"}},DatePicker=e=>{const{ooui:t,showTime:r=!1}=e,{required:n}=t;return jsxRuntime.jsx(Field$1,{required:n,...e,children:jsxRuntime.jsx(DatePickerInput,{ooui:t,showTime:r})})},DatePickerInput=e=>{const{value:t,onChange:r,ooui:n,showTime:a}=e,{id:o,readOnly:s,required:u}=n,l=u&&!s?Config.requiredClass:void 0,c=a?"time":"date",d=h=>{r==null||r(h)},f=h=>{if(h===null){d(void 0);return}d(h.format(DatePickerConfig[c].dateInternalFormat))},p=a?{defaultValue:hooks("00:00:00","HH:mm:ss")}:void 0,m=t?hooks(t,DatePickerConfig[c].dateInternalFormat):void 0;return jsxRuntime.jsx(antd.DatePicker,{style:{width:"100%"},placeholder:a?DatePickerConfig.time.placeholder:DatePickerConfig.date.placeholder,disabled:s,id:o,showTime:p,className:l,format:DatePickerConfig[c].dateDisplayFormat,value:m,onChange:f})},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,u=t==null?void 0:t.split(","),[l,c]=React.useState([]),[d,f]=React.useState();return React.useEffect(()=>{if(!t)return;const p=t&&u&&u[0],m=t&&u&&u[1]&&parseInt(u[1]);c([m,void 0]),f(p)},[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:p=>{f(p),c([]),r==null||r(void 0)},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:l,onChange:p=>{c(p);const m=`${d},${p[0]}`;m!==t&&(r==null||r(m))}})})]})},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,u=o&&!a?Config.requiredClass:void 0,l=React.useRef(null),{setFieldValue:c,getFieldValue:d}=React.useContext(FormContext$1)||{},{t:f}=React.useContext(LocaleContext),p=r?getFilesize(r):"",m=v=>{n==null||n(v)};async function h(){const v=await getMimeType(r),y=`data:${v==null?void 0:v.mime};base64,${r}`,_=document.createElement("a"),C=d(s),E=d("name");_.href=y,_.download=C||E,_.click()}async function x(){const v=await getMimeType(r);openBase64InNewTab(r,v.mime)}async function b(v){v.stopPropagation(),v.preventDefault();const y=v.target.files[0],_=await toBase64(y);m(_),s&&c(s,y.name)}function g(){c(s,void 0),m(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:l,style:{display:"none"},onChange:b}),jsxRuntime.jsx(antd.Input,{type:"text",disabled:!0,className:u,value:p})]}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.FolderOpenOutlined,{}),disabled:a,onClick:()=>{l.current.click()},children:"Select"}),jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.EyeOutlined,{}),disabled:!r,onClick:x,children:f("open")}),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:f("download"),disabled:!r,onClick:h,icon:jsxRuntime.jsx(AntIcons.DownloadOutlined,{})}),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:f("clear"),disabled:a||!r,onClick:g,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:u,lang:l}=React.useContext(LocaleContext);function c(){const p=r.map((m,h)=>jsxRuntime.jsx(antd.Menu.Item,{children:jsxRuntime.jsxs(antd.Row,{wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"none",style:{paddingRight:20},children:getIconForView(m)}),jsxRuntime.jsx(antd.Col,{flex:"auto",style:{paddingRight:20},children:m.type==="graph"?m.name:m.type.charAt(0).toUpperCase()+m.type.slice(1)}),jsxRuntime.jsx(antd.Col,{flex:"none",children:jsxRuntime.jsx(AntIcons.CheckOutlined,{style:{opacity:t.view_id===m.view_id?1:0}})})]})},m.view_id||h));return jsxRuntime.jsx(antd.Menu,{onClick:f,children:jsxRuntime.jsx(antd.Menu.ItemGroup,{title:u("viewAs"),children:p})})}function d(p){if(o){showDialog$6({lang:l,onOk:()=>{p()}});return}p()}function f(p){d(()=>{const m=r.find(h=>h.view_id===parseInt(p.key));n(m)})}return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ButtonWithTooltip,{tooltip:s?u("viewAs")+" "+u(s.type):"",icon:getIconForView(s),style:{width:50},onClick:()=>{f({key:s==null?void 0:s.view_id})},disabled:a||r.length===1}),jsxRuntime.jsx(antd.Dropdown,{overlay:c(),disabled:a||r.length===1,children:jsxRuntime.jsx(antd.Button,{style:{width:25},icon:jsxRuntime.jsx(AntIcons.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:p=>p.preventDefault()})})]})}function DropdownButton(e){const{icon:t,tooltip:r,items:n=[],onItemClick:a,label:o,disabled:s=!1}=e;function u(){const c=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:l,children:jsxRuntime.jsx(antd.Menu.ItemGroup,{title:r,children:c})})}function l(c){const d=n.find(f=>isNaN(c.key)?f.id===c.key:f.id===parseInt(c.key));a(d)}return jsxRuntime.jsx(antd.Dropdown,{overlay:u(),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:u="default"}=e,l=n?jsxRuntime.jsx(AntIcons.LoadingOutlined,{}):o;return jsxRuntime.jsxs(ButtonWithTooltip,{type:u,tooltip:a,onClick:t,disabled:r,children:[l,s]})}function NewButton(e){const{disabled:t=!1}=e,{formHasChanges:r,onNewClicked:n}=React.useContext(ActionViewContext),{t:a,lang:o}=React.useContext(LocaleContext),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:u,write_uid:l}=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")+": "+l[1]," ",jsxRuntime.jsx("br",{}),r("lastUpdatedDate")+": "+u]}))}const AttachmentsButtonWrapper=e=>{const{numberOfAttachments:t,disabled:r}=e,{t:n}=React.useContext(LocaleContext),[a,o]=React.useState(!1),s=jsxRuntime.jsxs(antd.Button,{disabled:r,children:[jsxRuntime.jsx(AntIcons.LinkOutlined,{}),`(${t})`,jsxRuntime.jsx(AntIcons.DownOutlined,{style:{fontSize:12}})]});return r?s:jsxRuntime.jsx(antd.Popover,{onVisibleChange:u=>o(u),visible:a,placement:"bottom",content:Content$1(e,o),title:n("attachments"),arrowContent:null,children:s})},Content$1=(e,t)=>{const{attachments:r=[],loading:n,onAddNewAttachment:a,onopenAttachmentLink:o,onOpenAttachmentDetail:s,onListAllAttachments:u}=e,{t:l}=React.useContext(LocaleContext);return n?jsxRuntime.jsx(antd.Spin,{style:{padding:20}}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("a",{style:{display:"block",paddingBottom:5},href:"#",onClick:()=>{t(!1),u()},children:[jsxRuntime.jsx(AntIcons.TableOutlined,{})," ",l("listAllAttachments")]}),jsxRuntime.jsxs("a",{style:{display:"block"},href:"#",onClick:()=>{t(!1),a()},children:[jsxRuntime.jsx(AntIcons.FileAddOutlined,{})," ",l("addNewAttachment")]}),r.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("li",{className:" ant-dropdown-menu-item-divider"}),r.map(c=>{const d=c.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:c.name}),jsxRuntime.jsx(antd.Col,{flex:"25px",style:{textAlign:"center"},children:(c.datas_fname||c.link)&&jsxRuntime.jsx(antd.Tooltip,{title:c.link?l("openAttachmentLink"):l("download"),children:jsxRuntime.jsx(d,{style:{cursor:"pointer"},onClick:()=>{t(!1),o(c)}})})}),jsxRuntime.jsx(antd.Col,{flex:"25px",style:{textAlign:"center"},children:jsxRuntime.jsx(antd.Tooltip,{title:l("openAttachment"),children:jsxRuntime.jsx(AntIcons.FormOutlined,{style:{cursor:"pointer"},onClick:()=>{t(!1),s(c)}})})})]},c.id)})]})]})};function AttachmentsButton(e){const{attachments:t,disabled:r=!1,onAddNewAttachment:n,onListAllAttachments:a,onViewAttachmentDetails:o}=e,{formRef:s}=React.useContext(ActionViewContext),[u,l]=React.useState(!1),[c,d]=React.useState([]),[f,p]=React.useState(!1),{t:m}=React.useContext(LocaleContext),h=React.useCallback(async()=>{l(!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)}l(!1)},t),x=React.useCallback(async g=>{if(g.link){window.open(g.link);return}p(!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(p(!1),!!v)if(v.datas){const y=await getMimeType(v.datas);openBase64InNewTab(v.datas,y.mime)}else o(v)},[]),b=React.useCallback(async g=>{o(g)},[]);return React.useEffect(()=>{h()},[h]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(AttachmentsButtonWrapper,{numberOfAttachments:t.length,attachments:c,disabled:r,loading:u,onAddNewAttachment:n,onListAllAttachments:a,onopenAttachmentLink:x,onOpenAttachmentDetail:b}),jsxRuntime.jsx(antd.Modal,{title:m("downloadingAttachment"),visible: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:u,results:l,setCurrentItemIndex:c,currentItemIndex:d,setCurrentId:f,currentModel:p,setRemovingItem:m,removingItem:h,duplicatingItem:x,setDuplicatingItem:b,setResults:g,formIsLoading:v,attachments:y,formRef:_,setFormHasChanges:C,previousView:E,setPreviousView:P,goToResourceId:w}=React.useContext(ActionViewContext),{t:S,lang:O}=React.useContext(LocaleContext),I=React.useContext(ContentRootContext),{processAction:q}=I||{},k=React.useContext(TabManagerContext),{openRelate:$,openDefaultActionForModel:D}=k||{},N=React.useRef(!1);React.useEffect(()=>{!s&&N.current&&antd.message.success(S("savedRegisters")),N.current=s||!1},[s]);function V(F){if(o){showDialog({lang:O,onOk:()=>{F()}});return}F()}function M(F){if(o){showDialog$6({lang:O,onOk:()=>{F()}});return}F()}function W(){l&&l.length>d+1?(c==null||c(d+1),f==null||f(l[d+1].id)):l&&d+1===l.length&&(c==null||c(0),f==null||f(l[0].id))}function Y(){l&&d>0?(c==null||c(d-1),f==null||f(l[d-1].id)):l&&d===0&&(c==null||c(l.length-1),f==null||f(l[l.length-1].id))}function z(){showDialog$9({confirmMessage:S("confirmRemoveItem"),lang:O,onOk:()=>{H()}})}async function H(){try{m==null||m(!0),await ConnectionProvider.getHandler().delete({model:p,ids:[u]});const F=l==null?void 0:l.filter(L=>L.id!==u);g==null||g(F);let A=0;d>0&&d<=l.length-1&&(A=d-1),F!=null&&F[A]?(f==null||f(F==null?void 0:F[A].id),c==null||c(A)):(f==null||f(void 0),c==null||c(void 0))}catch(F){showDialog$3(JSON.stringify(F))}finally{m==null||m(!1)}}async function K(){try{b==null||b(!0);const F=await ConnectionProvider.getHandler().duplicate({id:u,model:p,context:_.current.getContext()});F&&await(w==null?void 0:w(F))}catch(F){showDialog$3(JSON.stringify(F))}finally{b==null||b(!1)}}const U=s||h||v||x;function B(F){q==null||q({actionData:F,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||h||x}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.SaveOutlined,{}),tooltip:S("save"),disabled:!o||U,loading:s,onClick:a}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{}),tooltip:S("duplicate"),disabled:o||s||u===void 0||x||v,loading:x,onClick:K}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.DeleteOutlined,{}),tooltip:S("delete"),disabled:s||u===void 0||h||x||v,loading:h,onClick:z}),separator$2(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.InfoCircleOutlined,{}),tooltip:S("showLogs"),disabled:s||u===void 0||h||x||v,loading:!1,onClick:()=>{showLogInfo(p,u,S)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:S("refresh"),disabled:s||u===void 0||h||x||v,loading:!1,onClick:()=>{V(()=>{_.current.fetchValues()})}}),separator$2(),jsxRuntime.jsx(ChangeViewButton,{currentView:r,previousView:E,availableViews:t,onChangeView:F=>{P==null||P(r),C==null||C(!1),n==null||n(F)},disabled:U,formHasChanges:o}),separator$2(),jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.LeftOutlined,{}),tooltip:S("previous"),disabled:U,loading:!1,onClick:()=>{M(Y)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.RightOutlined,{}),tooltip:S("next"),disabled:U,loading:!1,onClick:()=>{M(W)}})]}),separator$2(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),disabled:U,tooltip:S("actions"),items:e==null?void 0:e.action,onItemClick:F=>{!F||B(F)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),disabled:U,tooltip:S("reports"),items:e==null?void 0:e.print,onItemClick:F=>{!F||B({...F,datas:{...F.datas||{},ids:[u]}})}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.EnterOutlined,{}),disabled:U,tooltip:S("related"),items:e==null?void 0:e.relate,onItemClick:async F=>{!F||$({relateData:F,values:_.current.getValues(),fields:_.current.getFields(),action_id:F.id,action_type:F.type})}}),jsxRuntime.jsx(AttachmentsButton,{disabled:U,attachments:y,onAddNewAttachment:()=>{const F=u,A=p;D({model:"ir.attachment",values:{selection_associated_object:`${A},${F}`},forced_values:{res_model:A,res_id:F},initialViewType:"form"})},onListAllAttachments:()=>{const F=u;D({model:"ir.attachment",domain:[["res_model","=",`${p}`],["res_id","=",`${F}`]],initialViewType:"tree"})},onViewAttachmentDetails:F=>{D({model:"ir.attachment",res_id:F.id,initialViewType:"form"})}})]}):null}function separator$2(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}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(u){return u&&u.__esModule?u:{default:u}}var o={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1};function s(u,l){(0,r.default)(u),l=(0,n.default)(l,o),l.allow_trailing_dot&&u[u.length-1]==="."&&(u=u.substring(0,u.length-1)),l.allow_wildcard===!0&&u.indexOf("*.")===0&&(u=u.substring(2));var c=u.split("."),d=c[c.length-1];return l.require_tld&&(c.length<2||!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(d)||/\s/.test(d))||!l.allow_numeric_tld&&/^\d+$/.test(d)?!1:c.every(function(f){return!(f.length>63||!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(f)||/[\uff01-\uff5e]/.test(f)||/^-|-$/.test(f)||!l.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=c;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,"$")),u="(?:[0-9a-fA-F]{1,4})",l=new RegExp("^("+"(?:".concat(u,":){7}(?:").concat(u,"|:)|")+"(?:".concat(u,":){6}(?:").concat(o,"|:").concat(u,"|:)|")+"(?:".concat(u,":){5}(?::").concat(o,"|(:").concat(u,"){1,2}|:)|")+"(?:".concat(u,":){4}(?:(:").concat(u,"){0,1}:").concat(o,"|(:").concat(u,"){1,3}|:)|")+"(?:".concat(u,":){3}(?:(:").concat(u,"){0,2}:").concat(o,"|(:").concat(u,"){1,4}|:)|")+"(?:".concat(u,":){2}(?:(:").concat(u,"){0,3}:").concat(o,"|(:").concat(u,"){1,5}|:)|")+"(?:".concat(u,":){1}(?:(:").concat(u,"){0,4}:").concat(o,"|(:").concat(u,"){1,6}|:)|")+"(?::((?::".concat(u,"){0,5}:").concat(o,"|(?::").concat(u,"){1,7}|:))")+")(%[0-9a-zA-Z-.:]{1,})?$");function c(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if((0,r.default)(d),f=String(f),!f)return c(d,4)||c(d,6);if(f==="4"){if(!s.test(d))return!1;var p=d.split(".").sort(function(m,h){return m-h});return p[3]<=255}return f==="6"?!!l.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 u(v,y){return p(v)||f(v,y)||c(v,y)||l()}function l(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
129
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function c(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,C=new Array(y);_<y;_++)C[_]=v[_];return C}function f(v,y){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(v)))){var _=[],C=!0,E=!1,P=void 0;try{for(var w=v[Symbol.iterator](),S;!(C=(S=w.next()).done)&&(_.push(S.value),!(y&&_.length===y));C=!0);}catch(O){E=!0,P=O}finally{try{!C&&w.return!=null&&w.return()}finally{if(E)throw P}}return _}}function p(v){if(Array.isArray(v))return v}var m={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},h=/^\[([^\]]+)\](?::([0-9]+))?$/;function x(v){return Object.prototype.toString.call(v)==="[object RegExp]"}function b(v,y){for(var _=0;_<y.length;_++){var C=y[_];if(v===C||x(C)&&C.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,m),y.validate_length&&v.length>=2083)||!y.allow_fragments&&v.includes("#")||!y.allow_query_components&&(v.includes("?")||v.includes("&")))return!1;var _,C,E,P,w,S,O,I;if(O=v.split("#"),v=O.shift(),O=v.split("?"),v=O.shift(),O=v.split("://"),O.length>1){if(_=O.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;O[0]=v.substr(2)}}if(v=O.join("://"),v==="")return!1;if(O=v.split("/"),v=O.shift(),v===""&&!y.require_host)return!0;if(O=v.split("@"),O.length>1){if(y.disallow_auth||O[0]===""||(C=O.shift(),C.indexOf(":")>=0&&C.split(":").length>2))return!1;var q=C.split(":"),k=u(q,2),$=k[0],D=k[1];if($===""&&D==="")return!1}P=O.join("@"),S=null,I=null;var N=P.match(h);if(N?(E="",I=N[1],S=N[2]||null):(O=P.split(":"),E=O.shift(),O.length&&(S=O.join(":"))),S!==null&&S.length>0){if(w=parseInt(S,10),!/^[0-9]+$/.test(S)||w<=0||w>65535)return!1}else if(y.require_port)return!1;return y.host_whitelist?b(E,y.host_whitelist):!(!(0,a.default)(E)&&!(0,n.default)(E,y)&&(!I||!(0,a.default)(I,6))||(E=E||I,y.host_blacklist&&b(E,y.host_blacklist)))}e.exports=t.default,e.exports.default=t.default}(isURL$1,isURL$1.exports);const isURL=getDefaultExportFromCjs(isURL$1.exports),LinkInput=e=>{const{ooui:t,value:r,onChange:n,valueValidator:a,linkPrefix:o=""}=e,{id:s,readOnly:u,required:l}=t,c=l&&!u?Config.requiredClass:void 0,d=React.useContext(FormContext$1),{elementHasLostFocus:f}=d||{},[p,m]=React.useState(!1),[h,x]=React.useState(!1);React.useEffect(()=>{u&&!p&&x(!1),!r&&!u&&(m(!0),x(!0))},[p,u]);const b=g=>{n==null||n(g.target.value)};return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,align:"middle",children:[u?null:jsxRuntime.jsx(antd.Col,{flex:"32px",children:p?jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),onClick:()=>{a(r)&&(m(!1),x(!1))},tabIndex:-1}):jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.EditOutlined,{}),onClick:()=>{m(!0),x(!0)},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:h?jsxRuntime.jsx(antd.Input,{id:s,onChange:b,className:c,value:r,onBlur:()=>{a(r)&&(m(!1),x(!1),f==null||f())}}):jsxRuntime.jsx("a",{href:`${o}${r}`,style:{color:"#1890ff",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(l){return typeof l}:a=function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},a(s)}function o(s,u){(0,r.default)(s);var l,c;a(u)==="object"?(l=u.min||0,c=u.max):(l=arguments[1],c=arguments[2]);var d=encodeURI(s).split(/%..|./).length-1;return d>=l&&(typeof c>"u"||d<=c)}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=u(assertString.exports),n=u(merge.exports),a=u(isByteLength.exports),o=u(isFQDN.exports),s=u(isIP.exports);function u(v){return v&&v.__esModule?v:{default:v}}var l={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1,host_blacklist:[]},c=/^([^\x00-\x1F\x7F-\x9F\cX]+)</i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,m=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,h=/^([\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,x=254;function b(v){var y=v.replace(/^"(.+)"$/,"$1");if(!y.trim())return!1;var _=/[\.";<>]/.test(y);if(_){if(y===v)return!1;var C=y.split('"').length===y.split('\\"').length;if(!C)return!1}return!0}function g(v,y){if((0,r.default)(v),y=(0,n.default)(y,l),y.require_display_name||y.allow_display_name){var _=v.match(c);if(_){var C=_[1];if(v=v.replace(C,"").replace(/(^<|>$)/g,""),C.endsWith(" ")&&(C=C.substr(0,C.length-1)),!b(C))return!1}else if(y.require_display_name)return!1}if(!y.ignore_max_length&&v.length>x)return!1;var E=v.split("@"),P=E.pop(),w=P.toLowerCase();if(y.host_blacklist.includes(w))return!1;var S=E.join("@");if(y.domain_specific_validation&&(w==="gmail.com"||w==="googlemail.com")){S=S.toLowerCase();var O=S.split("+")[0];if(!(0,a.default)(O.replace(/\./g,""),{min:6,max:30}))return!1;for(var I=O.split("."),q=0;q<I.length;q++)if(!f.test(I[q]))return!1}if(y.ignore_max_length===!1&&(!(0,a.default)(S,{max:64})||!(0,a.default)(P,{max:254})))return!1;if(!(0,o.default)(P,{require_tld:y.require_tld})){if(!y.allow_ip_domain)return!1;if(!(0,s.default)(P)){if(!P.startsWith("[")||!P.endsWith("]"))return!1;var k=P.substr(1,P.length-2);if(k.length===0||!(0,s.default)(k))return!1}}if(S[0]==='"')return S=S.slice(1,S.length-1),y.allow_utf8_local_part?h.test(S):p.test(S);for(var $=y.allow_utf8_local_part?m:d,D=S.split("."),N=0;N<D.length;N++)if(!$.test(D[N]))return!1;return!(y.blacklisted_chars&&S.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.useContext(LocaleContext);function s(u){r(u.id)}return jsxRuntime.jsx(antd.Modal,{title:o("goToResourceId"),centered:!0,visible: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")})]})})})]})})};function ButtonWithBadge(e){const{badgeNumber:t=0,...r}=e;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:"#1890FF",color:"#fefefe"},children:t})}),jsxRuntime.jsx(ButtonWithTooltip,{...r,style:{width:46,zIndex:0}})]})}function GraphActionBar({refreshGraph:e}){const{t}=React.useContext(LocaleContext),{availableViews:r,currentView:n,setCurrentView:a,searchParams:o,searchVisible:s,setSearchVisible:u,graphIsLoading:l,previousView:c,setPreviousView:d}=React.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:()=>{u==null||u(!s)},disabled:l,badgeNumber:o==null?void 0:o.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:t("refresh"),disabled:l,loading:!1,onClick:()=>{e()}}),jsxRuntime.jsx(ChangeViewButton,{currentView:n,availableViews:r,onChangeView:f=>{d==null||d(n),a==null||a(f)},disabled:!1,previousView:c})]})}const{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:u,totalItems:l,selectedRowItems:c}=React.useContext(ActionViewContext),{t:d}=React.useContext(LocaleContext);function f(){if((a==null?void 0:a.type)==="form")return o?l===0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("editingDocument")," (id: ",jsxRuntime.jsx(Text$1,{copyable:!0,children:o}),")"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("register")," ",s===void 0?1:s+1," /"," ",u.length," ",d("of")," ",l," - ",d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:o}),")"]}):"";if((a==null?void 0:a.type)==="tree"&&c){if(c.length===1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["1 ",d("selectedRegisters")," - (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:c[0].id}),")"]});if(c.length>1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[c.length," ",d("selectedRegisters"),jsxRuntime.jsx(Text$1,{copyable:{text:c.map(p=>p.id).join(", ")}})]})}return null}return jsxRuntime.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[jsxRuntime.jsxs(antd.Row,{className:"rounded shadow-md bg-blueGray-100",style:{padding:"1em"},align:"middle",children:[jsxRuntime.jsxs(antd.Col,{flex:2,children:[jsxRuntime.jsx(Title$1,{level:3,style:{marginBottom:0},children:t||n}),f()]}),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:u}=e,l=React.useRef(),c=React.useContext(ActionViewContext),{setResults:d=void 0,setCurrentItemIndex:f=void 0,currentId:p=void 0,results:m=void 0,setSelectedRowItems:h=void 0,setSearchParams:x=void 0,searchVisible:b=!0,setSearchVisible:g=void 0,sorter:v=void 0,setSorter:y=void 0,setTotalItems:_=void 0,setSearchTreeNameSearch:C=void 0,setTreeIsLoading:E=void 0,limit:P,setLimit:w,searchParams:S,searchValues:O,setSearchValues:I,currentView:q}=c||{},[k,$]=React.useState(!0);React.useEffect(()=>{var Y;(Y=l.current)==null||Y.refresh()},[S]),React.useEffect(()=>{t.view_id!==q.view_id&&$(!0)},[q]);const{clear:D,searchFilterLoading:N,searchError:V,offset:M,tableRefreshing:W}=useSearch({model:n,setSearchTreeNameSearch:C,setSelectedRowItems:h,searchParams:S,setSearchValues:I,setSearchParams:x,setSearchVisible:g,setTreeIsLoading:E,context:a,formView:s,treeView:u,sorter:v,setSorter:y,setCurrentItemIndex:f,setResultsActionView:d,resultsActionView:m,domain:o,currentId:p,setActionViewTotalItems:_,limit:P,setLimit:w});return!r||!t?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{title:t.name,children:jsxRuntime.jsx(GraphActionBar,{refreshGraph:()=>{l.current.refresh()}})}),jsxRuntime.jsx(SearchFilter,{fields:{...u.fields,...s.fields},searchFields:mergeSearchFields([s.search_fields,u.search_fields]),limit:P,onClear:D,offset:M,isSearching:N,onSubmit:Y=>{$(!1),x==null||x(Y.params),g==null||g(!1)},searchError:V,searchVisible:b,searchValues:O,showLimitOptions:!1}),W?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(Graph,{ref:l,view_id:t.view_id,model:n,context:a,domain:mergeParams(S||[],o),limit:k?P:void 0,manualIds:k?m==null?void 0:m.map(Y=>Y.id):void 0})]})},FormActionView=e=>{const{visible:t,formRef:r,model:n,currentId:a,domain:o,formView:s,context:u,defaultValues:l,forcedValues:c,results:d,setResults:f,setCurrentItemIndex:p}=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:l,forcedValues:c,formView:s,actionDomain:o,id:a,parentContext:u,onSubmitSucceed:(m,h)=>{d.findIndex(b=>b.id===m)===-1&&(d.push(h),f(d),p(d.length-1))}})]}):null};function SearchBar(e){const{onSearch:t,disabled:r=!1,searchText:n}=e,{t:a}=React.useContext(LocaleContext),[o]=antd.Form.useForm(),[s,u]=React.useState(!1);function l(d){t(d.search)}React.useEffect(()=>{o.setFieldsValue({search:n})},[n]);function c(){u(!1),o.setFieldsValue({search:void 0}),t(void 0)}return jsxRuntime.jsx(antd.Form,{form:o,onFinish:l,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=>{u(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:c})})})})}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Button,{htmlType:"submit",disabled:r,children:a("search")})})]})})}function TreeActionBar(e){const{availableViews:t,currentView:r,setCurrentView:n,selectedRowItems:a,setRemovingItem:o,removingItem:s,duplicatingItem:u,setDuplicatingItem:l,currentModel:c,searchTreeRef:d,setCurrentId:f,setCurrentItemIndex:p,searchParams:m,searchVisible:h,setSearchVisible:x,setSearchTreeNameSearch:b,searchTreeNameSearch:g,treeIsLoading:v,setPreviousView:y,previousView:_}=React.useContext(ActionViewContext),{parentContext:C={},treeExpandable:E,toolbar:P}=e,{t:w,lang:S}=React.useContext(LocaleContext),O=React.useContext(ContentRootContext),{processAction:I}=O||{};function q(){showDialog$9({confirmMessage:w("confirmRemove"),lang:S,onOk:()=>{k()}})}async function k(){var N;try{o==null||o(!0),await ConnectionProvider.getHandler().delete({model:c,ids:a.map(V=>V.id)}),f==null||f(void 0),p==null||p(void 0),(N=d==null?void 0:d.current)==null||N.refreshResults()}catch(V){showDialog$8(V)}finally{o==null||o(!1)}}async function $(){var N;try{l==null||l(!0);const V=a[0].id;await ConnectionProvider.getHandler().duplicate({id:V,model:c,context:{...C}})&&((N=d==null?void 0:d.current)==null||N.refreshResults())}catch(V){showDialog$8(V)}finally{l==null||l(!1)}}function D(N){I==null||I({actionData:N,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:{...C,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:[E?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchBar,{disabled:u||s||v,searchText:g,onSearch:N=>{N&&N.trim().length>0?b==null||b(N):b==null||b(void 0)}}),separator$1(),jsxRuntime.jsx(NewButton,{disabled:v}),separator$1(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{}),tooltip:w("duplicate"),disabled:!a||(a==null?void 0:a.length)!==1||u||v,loading:u,onClick:$}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.DeleteOutlined,{}),tooltip:w("delete"),disabled:!(a&&(a==null?void 0:a.length)>0)||v,loading:s,onClick:q}),separator$1()]}),!E&&jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(AntIcons.FilterOutlined,{style:{color:h?"white":void 0}}),tooltip:w("advanced_search"),type:h?"primary":"default",onClick:()=>{x==null||x(!h)},disabled:u||s||v,badgeNumber:m==null?void 0:m.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.InfoCircleOutlined,{}),tooltip:w("showLogs"),disabled:!(a&&(a==null?void 0:a.length)>0)||v,loading:!1,onClick:()=>{showLogInfo(c,a[0].id,w)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:w("refresh"),disabled:u||s||v,loading:!1,onClick:()=>{var N;(N=d==null?void 0:d.current)==null||N.refreshResults()}}),!E&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(ChangeViewButton,{currentView:r,availableViews:t,onChangeView:N=>{y==null||y(r),n==null||n(N)},previousView:_,disabled:v})]}),separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:w("actions"),items:P==null?void 0:P.action,onItemClick:N=>{!N||D(N)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:w("reports"),items:P==null?void 0:P.print,onItemClick:N=>{!N||D({...N,datas:{...N.datas||{},ids:a.map(V=>V.id)}})}})]})}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:u,setCurrentItemIndex:l,results:c,setCurrentId:d,setCurrentView:f,availableViews:p,searchTreeNameSearch:m}=e,{currentView:h,setPreviousView:x}=React.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:m,formView:o,treeView:s,domain:u,onRowClicked:b=>{const{id:g}=b;d(g);const v=c.findIndex(_=>_.id===g);x==null||x(h),l(v);const y=p.find(_=>_.type==="form");f(y)}})]}):null},DashboardActionContext=React__default.default.createContext(null),DashboardActionProvider=e=>{const[t,r]=React.useState(!1),[n,a]=React.useState(!1),{children:o,dashboardRef:s,openAction:u}=e;return jsxRuntime.jsx(DashboardActionContext.Provider,{value:{isLoading:t,setIsLoading:r,dashboardRef:s,openAction:u,moveItemsEnabled:n,setMoveItemsEnabled:a},children:o})};function DashboardActionBar(){const{isLoading:e,dashboardRef:t,moveItemsEnabled:r,setMoveItemsEnabled:n}=React.useContext(DashboardActionContext),{t:a}=React.useContext(LocaleContext);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.useRef(),n=React.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:u,tabKey:l,initialView:c,formDefaultValues:d,formForcedValues:f={},res_id:p=!1,action_id:m,action_type:h,treeExpandable:x=!1,limit:b}=e,[g,v]=React.useState(),[y,_]=React.useState([]),[C,E]=React.useState(!0),P=p||void 0,[w,S]=React.useState(P),[O,I]=React.useState([]),[q,k]=React.useState(),[$,D]=React.useState([]),[N,V]=React.useState(),[M,W]=React.useState(0),[Y,z]=React.useState(!1),[H,K]=React.useState(!1),[U,B]=React.useState(),{t:F}=React.useContext(LocaleContext),A=React.useRef(),L=React.useRef(),G=React.useContext(TabManagerContext),{setCurrentView:Z,setCurrentId:j,tabs:T,activeKey:X,openAction:J}=G||{};reactHotkeysHook.useHotkeys("ctrl+g,command+g",ae=>{ae.preventDefault(),oe()},[X,T,g,q,$]);function ee(ae){S(ae),j==null||j(ae)}function Q(ae){v(ae),Z==null||Z(ae)}React.useImperativeHandle(t,()=>({canWeClose:te}));const ie=async()=>{E(!0);const ae=[];for(const fe of o){const[me,ge]=fe;let pe;try{ge!=="dashboard"&&(pe=await ConnectionProvider.getHandler().getView({model:n,type:ge,id:me,context:a}))}catch(Oe){console.error(`${n} - ${ge}\xA0- ${JSON.stringify(Oe,null,2)}`);continue}switch(ge){case"dashboard":{const Oe=o.find(le=>{const[,ue]=le;return ue==="form"});let Re;Oe&&(Re={action_id:m,action_type:h,name:s,res_id:a.active_id,res_model:n,view_id:Oe[0],view_type:Oe[1]}),ae.push({type:"dashboard",id:a.active_id,model:n,context:a,configAction:Re});break}case"form":{ae.push({...pe,type:ge});break}case"tree":{ae.push({...pe,isExpandable:x,type:ge});break}case"graph":{ae.push({...pe,type:ge});break}}}let he;!c&&ae.find(fe=>fe.type==="tree")?he=ae.find(me=>me.type==="tree"):c?he=ae.find(me=>c.id?me.type===c.type&&me.view_id===c.id:me.type===c.type):he=ae.find(me=>me.type==="form"),he||showDialog$8(`Error determining the first view to show.
|
|
129
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function c(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,C=new Array(y);_<y;_++)C[_]=v[_];return C}function f(v,y){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(v)))){var _=[],C=!0,E=!1,P=void 0;try{for(var w=v[Symbol.iterator](),S;!(C=(S=w.next()).done)&&(_.push(S.value),!(y&&_.length===y));C=!0);}catch(O){E=!0,P=O}finally{try{!C&&w.return!=null&&w.return()}finally{if(E)throw P}}return _}}function p(v){if(Array.isArray(v))return v}var m={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},h=/^\[([^\]]+)\](?::([0-9]+))?$/;function x(v){return Object.prototype.toString.call(v)==="[object RegExp]"}function b(v,y){for(var _=0;_<y.length;_++){var C=y[_];if(v===C||x(C)&&C.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,m),y.validate_length&&v.length>=2083)||!y.allow_fragments&&v.includes("#")||!y.allow_query_components&&(v.includes("?")||v.includes("&")))return!1;var _,C,E,P,w,S,O,I;if(O=v.split("#"),v=O.shift(),O=v.split("?"),v=O.shift(),O=v.split("://"),O.length>1){if(_=O.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;O[0]=v.substr(2)}}if(v=O.join("://"),v==="")return!1;if(O=v.split("/"),v=O.shift(),v===""&&!y.require_host)return!0;if(O=v.split("@"),O.length>1){if(y.disallow_auth||O[0]===""||(C=O.shift(),C.indexOf(":")>=0&&C.split(":").length>2))return!1;var q=C.split(":"),k=u(q,2),$=k[0],D=k[1];if($===""&&D==="")return!1}P=O.join("@"),S=null,I=null;var N=P.match(h);if(N?(E="",I=N[1],S=N[2]||null):(O=P.split(":"),E=O.shift(),O.length&&(S=O.join(":"))),S!==null&&S.length>0){if(w=parseInt(S,10),!/^[0-9]+$/.test(S)||w<=0||w>65535)return!1}else if(y.require_port)return!1;return y.host_whitelist?b(E,y.host_whitelist):!(!(0,a.default)(E)&&!(0,n.default)(E,y)&&(!I||!(0,a.default)(I,6))||(E=E||I,y.host_blacklist&&b(E,y.host_blacklist)))}e.exports=t.default,e.exports.default=t.default}(isURL$1,isURL$1.exports);const isURL=getDefaultExportFromCjs(isURL$1.exports),LinkInput=e=>{const{ooui:t,value:r,onChange:n,valueValidator:a,linkPrefix:o=""}=e,{id:s,readOnly:u,required:l}=t,c=l&&!u?Config.requiredClass:void 0,d=React.useContext(FormContext$1),{elementHasLostFocus:f}=d||{},[p,m]=React.useState(!1),[h,x]=React.useState(!1);React.useEffect(()=>{u&&!p&&x(!1),!r&&!u&&(m(!0),x(!0))},[p,u]);const b=g=>{n==null||n(g.target.value)};return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,align:"middle",children:[u?null:jsxRuntime.jsx(antd.Col,{flex:"32px",children:p?jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.CheckOutlined,{}),onClick:()=>{a(r)&&(m(!1),x(!1))},tabIndex:-1}):jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(AntIcons.EditOutlined,{}),onClick:()=>{m(!0),x(!0)},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:h?jsxRuntime.jsx(antd.Input,{id:s,onChange:b,className:c,value:r,onBlur:()=>{a(r)&&(m(!1),x(!1),f==null||f())}}):jsxRuntime.jsx("a",{href:`${o}${r}`,style:{color:"#1890ff",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(l){return typeof l}:a=function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},a(s)}function o(s,u){(0,r.default)(s);var l,c;a(u)==="object"?(l=u.min||0,c=u.max):(l=arguments[1],c=arguments[2]);var d=encodeURI(s).split(/%..|./).length-1;return d>=l&&(typeof c>"u"||d<=c)}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=u(assertString.exports),n=u(merge.exports),a=u(isByteLength.exports),o=u(isFQDN.exports),s=u(isIP.exports);function u(v){return v&&v.__esModule?v:{default:v}}var l={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1,host_blacklist:[]},c=/^([^\x00-\x1F\x7F-\x9F\cX]+)</i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,m=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,h=/^([\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,x=254;function b(v){var y=v.replace(/^"(.+)"$/,"$1");if(!y.trim())return!1;var _=/[\.";<>]/.test(y);if(_){if(y===v)return!1;var C=y.split('"').length===y.split('\\"').length;if(!C)return!1}return!0}function g(v,y){if((0,r.default)(v),y=(0,n.default)(y,l),y.require_display_name||y.allow_display_name){var _=v.match(c);if(_){var C=_[1];if(v=v.replace(C,"").replace(/(^<|>$)/g,""),C.endsWith(" ")&&(C=C.substr(0,C.length-1)),!b(C))return!1}else if(y.require_display_name)return!1}if(!y.ignore_max_length&&v.length>x)return!1;var E=v.split("@"),P=E.pop(),w=P.toLowerCase();if(y.host_blacklist.includes(w))return!1;var S=E.join("@");if(y.domain_specific_validation&&(w==="gmail.com"||w==="googlemail.com")){S=S.toLowerCase();var O=S.split("+")[0];if(!(0,a.default)(O.replace(/\./g,""),{min:6,max:30}))return!1;for(var I=O.split("."),q=0;q<I.length;q++)if(!f.test(I[q]))return!1}if(y.ignore_max_length===!1&&(!(0,a.default)(S,{max:64})||!(0,a.default)(P,{max:254})))return!1;if(!(0,o.default)(P,{require_tld:y.require_tld})){if(!y.allow_ip_domain)return!1;if(!(0,s.default)(P)){if(!P.startsWith("[")||!P.endsWith("]"))return!1;var k=P.substr(1,P.length-2);if(k.length===0||!(0,s.default)(k))return!1}}if(S[0]==='"')return S=S.slice(1,S.length-1),y.allow_utf8_local_part?h.test(S):p.test(S);for(var $=y.allow_utf8_local_part?m:d,D=S.split("."),N=0;N<D.length;N++)if(!$.test(D[N]))return!1;return!(y.blacklisted_chars&&S.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.useContext(LocaleContext);function s(u){r(u.id)}return jsxRuntime.jsx(antd.Modal,{title:o("goToResourceId"),centered:!0,visible: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")})]})})})]})})};function ButtonWithBadge(e){const{badgeNumber:t=0,...r}=e;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:"#1890FF",color:"#fefefe"},children:t})}),jsxRuntime.jsx(ButtonWithTooltip,{...r,style:{width:46,zIndex:0}})]})}function GraphActionBar({refreshGraph:e}){const{t}=React.useContext(LocaleContext),{availableViews:r,currentView:n,setCurrentView:a,searchParams:o,searchVisible:s,setSearchVisible:u,graphIsLoading:l,previousView:c,setPreviousView:d}=React.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:()=>{u==null||u(!s)},disabled:l,badgeNumber:o==null?void 0:o.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:t("refresh"),disabled:l,loading:!1,onClick:()=>{e()}}),jsxRuntime.jsx(ChangeViewButton,{currentView:n,availableViews:r,onChangeView:f=>{d==null||d(n),a==null||a(f)},disabled:!1,previousView:c})]})}const{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:u,totalItems:l,selectedRowItems:c}=React.useContext(ActionViewContext),{t:d}=React.useContext(LocaleContext);function f(){if((a==null?void 0:a.type)==="form")return o?l===0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("editingDocument")," (id: ",jsxRuntime.jsx(Text$1,{copyable:!0,children:o}),")"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("register")," ",s===void 0?1:s+1," /"," ",u.length," ",d("of")," ",l," - ",d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:o}),")"]}):"";if((a==null?void 0:a.type)==="tree"&&c){if(c.length===1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["1 ",d("selectedRegisters")," - (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:c[0].id}),")"]});if(c.length>1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[c.length," ",d("selectedRegisters"),jsxRuntime.jsx(Text$1,{copyable:{text:c.map(p=>p.id).join(", ")}})]})}return null}return jsxRuntime.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[jsxRuntime.jsxs(antd.Row,{className:"rounded shadow-md bg-blueGray-100",style:{padding:"1em"},align:"middle",children:[jsxRuntime.jsxs(antd.Col,{flex:2,children:[jsxRuntime.jsx(Title$1,{level:3,style:{marginBottom:0},children:t||n}),f()]}),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:u}=e,l=React.useRef(),c=React.useContext(ActionViewContext),{setResults:d=void 0,setCurrentItemIndex:f=void 0,currentId:p=void 0,results:m=void 0,setSelectedRowItems:h=void 0,setSearchParams:x=void 0,searchVisible:b=!0,setSearchVisible:g=void 0,sorter:v=void 0,setSorter:y=void 0,setTotalItems:_=void 0,setSearchTreeNameSearch:C=void 0,setTreeIsLoading:E=void 0,limit:P,setLimit:w,searchParams:S,searchValues:O,setSearchValues:I,currentView:q}=c||{},[k,$]=React.useState(!0);React.useEffect(()=>{var Y;(Y=l.current)==null||Y.refresh()},[S]),React.useEffect(()=>{t.view_id!==q.view_id&&$(!0)},[q]);const{clear:D,searchFilterLoading:N,searchError:V,offset:M,tableRefreshing:W}=useSearch({model:n,setSearchTreeNameSearch:C,setSelectedRowItems:h,searchParams:S,setSearchValues:I,setSearchParams:x,setSearchVisible:g,setTreeIsLoading:E,context:a,formView:s,treeView:u,sorter:v,setSorter:y,setCurrentItemIndex:f,setResultsActionView:d,resultsActionView:m,domain:o,currentId:p,setActionViewTotalItems:_,limit:P,setLimit:w});return!r||!t?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{title:t.name,children:jsxRuntime.jsx(GraphActionBar,{refreshGraph:()=>{l.current.refresh()}})}),jsxRuntime.jsx(SearchFilter,{fields:{...u.fields,...s.fields},searchFields:mergeSearchFields([s.search_fields,u.search_fields]),limit:P,onClear:D,offset:M,isSearching:N,onSubmit:Y=>{$(!1),x==null||x(Y.params),g==null||g(!1)},searchError:V,searchVisible:b,searchValues:O,showLimitOptions:!1}),W?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(Graph,{ref:l,view_id:t.view_id,model:n,context:a,domain:mergeParams(S||[],o),limit:k?P:void 0,manualIds:k?m==null?void 0:m.map(Y=>Y.id):void 0})]})},FormActionView=e=>{const{visible:t,formRef:r,model:n,currentId:a,domain:o,formView:s,context:u,defaultValues:l,forcedValues:c,results:d,setResults:f,setCurrentItemIndex:p}=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:l,forcedValues:c,formView:s,actionDomain:o,id:a,parentContext:u,onSubmitSucceed:(m,h)=>{d.findIndex(b=>b.id===m)===-1&&(d.push(h),f(d),p(d.length-1))}})]}):null};function SearchBar(e){const{onSearch:t,disabled:r=!1,searchText:n}=e,{t:a}=React.useContext(LocaleContext),[o]=antd.Form.useForm(),[s,u]=React.useState(!1);function l(d){t(d.search)}React.useEffect(()=>{o.setFieldsValue({search:n})},[n]);function c(){u(!1),o.setFieldsValue({search:void 0}),t(void 0)}return jsxRuntime.jsx(antd.Form,{form:o,onFinish:l,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=>{u(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:c})})})})}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Button,{htmlType:"submit",disabled:r,children:a("search")})})]})})}function TreeActionBar(e){const{availableViews:t,currentView:r,setCurrentView:n,selectedRowItems:a,setRemovingItem:o,removingItem:s,duplicatingItem:u,setDuplicatingItem:l,currentModel:c,searchTreeRef:d,setCurrentId:f,setCurrentItemIndex:p,searchParams:m,searchVisible:h,setSearchVisible:x,setSearchTreeNameSearch:b,searchTreeNameSearch:g,treeIsLoading:v,setPreviousView:y,previousView:_}=React.useContext(ActionViewContext),{parentContext:C={},treeExpandable:E,toolbar:P}=e,{t:w,lang:S}=React.useContext(LocaleContext),O=React.useContext(ContentRootContext),{processAction:I}=O||{};function q(){showDialog$9({confirmMessage:w("confirmRemove"),lang:S,onOk:()=>{k()}})}async function k(){var N;try{o==null||o(!0),await ConnectionProvider.getHandler().delete({model:c,ids:a.map(V=>V.id)}),f==null||f(void 0),p==null||p(void 0),(N=d==null?void 0:d.current)==null||N.refreshResults()}catch(V){showDialog$8(V)}finally{o==null||o(!1)}}async function $(){var N;try{l==null||l(!0);const V=a[0].id;await ConnectionProvider.getHandler().duplicate({id:V,model:c,context:{...C}})&&((N=d==null?void 0:d.current)==null||N.refreshResults())}catch(V){showDialog$8(V)}finally{l==null||l(!1)}}function D(N){I==null||I({actionData:N,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:{...C,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:[E?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchBar,{disabled:u||s||v,searchText:g,onSearch:N=>{N&&N.trim().length>0?b==null||b(N):b==null||b(void 0)}}),!E&&jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(AntIcons.FilterOutlined,{style:{color:h?"white":void 0}}),tooltip:w("advanced_search"),type:h?"primary":"default",onClick:()=>{x==null||x(!h)},disabled:u||s||v,badgeNumber:m==null?void 0:m.length}),separator$1(),jsxRuntime.jsx(NewButton,{disabled:v}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.CopyOutlined,{}),tooltip:w("duplicate"),disabled:!a||(a==null?void 0:a.length)!==1||u||v,loading:u,onClick:$}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.DeleteOutlined,{}),tooltip:w("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:w("showLogs"),disabled:!(a&&(a==null?void 0:a.length)>0)||v,loading:!1,onClick:()=>{showLogInfo(c,a[0].id,w)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(AntIcons.ReloadOutlined,{}),tooltip:w("refresh"),disabled:u||s||v,loading:!1,onClick:()=>{var N;(N=d==null?void 0:d.current)==null||N.refreshResults()}}),!E&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(ChangeViewButton,{currentView:r,availableViews:t,onChangeView:N=>{y==null||y(r),n==null||n(N)},previousView:_,disabled:v})]}),separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.ThunderboltOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:w("actions"),items:P==null?void 0:P.action,onItemClick:N=>{!N||D(N)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(AntIcons.PrinterOutlined,{}),disabled:!(a&&(a==null?void 0:a.length)>0)||v,tooltip:w("reports"),items:P==null?void 0:P.print,onItemClick:N=>{!N||D({...N,datas:{...N.datas||{},ids:a.map(V=>V.id)}})}})]})}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:u,setCurrentItemIndex:l,results:c,setCurrentId:d,setCurrentView:f,availableViews:p,searchTreeNameSearch:m}=e,{currentView:h,setPreviousView:x}=React.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:m,formView:o,treeView:s,domain:u,onRowClicked:b=>{const{id:g}=b;d(g);const v=c.findIndex(_=>_.id===g);x==null||x(h),l(v);const y=p.find(_=>_.type==="form");f(y)}})]}):null},DashboardActionContext=React__default.default.createContext(null),DashboardActionProvider=e=>{const[t,r]=React.useState(!1),[n,a]=React.useState(!1),{children:o,dashboardRef:s,openAction:u}=e;return jsxRuntime.jsx(DashboardActionContext.Provider,{value:{isLoading:t,setIsLoading:r,dashboardRef:s,openAction:u,moveItemsEnabled:n,setMoveItemsEnabled:a},children:o})};function DashboardActionBar(){const{isLoading:e,dashboardRef:t,moveItemsEnabled:r,setMoveItemsEnabled:n}=React.useContext(DashboardActionContext),{t:a}=React.useContext(LocaleContext);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.useRef(),n=React.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:u,tabKey:l,initialView:c,formDefaultValues:d,formForcedValues:f={},res_id:p=!1,action_id:m,action_type:h,treeExpandable:x=!1,limit:b}=e,[g,v]=React.useState(),[y,_]=React.useState([]),[C,E]=React.useState(!0),P=p||void 0,[w,S]=React.useState(P),[O,I]=React.useState([]),[q,k]=React.useState(),[$,D]=React.useState([]),[N,V]=React.useState(),[M,W]=React.useState(0),[Y,z]=React.useState(!1),[H,K]=React.useState(!1),[U,B]=React.useState(),{t:F}=React.useContext(LocaleContext),A=React.useRef(),L=React.useRef(),G=React.useContext(TabManagerContext),{setCurrentView:Z,setCurrentId:j,tabs:T,activeKey:X,openAction:J}=G||{};reactHotkeysHook.useHotkeys("ctrl+g,command+g",ae=>{ae.preventDefault(),oe()},[X,T,g,q,$]);function ee(ae){S(ae),j==null||j(ae)}function Q(ae){v(ae),Z==null||Z(ae)}React.useImperativeHandle(t,()=>({canWeClose:te}));const ie=async()=>{E(!0);const ae=[];for(const fe of o){const[me,ge]=fe;let pe;try{ge!=="dashboard"&&(pe=await ConnectionProvider.getHandler().getView({model:n,type:ge,id:me,context:a}))}catch(Oe){console.error(`${n} - ${ge}\xA0- ${JSON.stringify(Oe,null,2)}`);continue}switch(ge){case"dashboard":{const Oe=o.find(le=>{const[,ue]=le;return ue==="form"});let Re;Oe&&(Re={action_id:m,action_type:h,name:s,res_id:a.active_id,res_model:n,view_id:Oe[0],view_type:Oe[1]}),ae.push({type:"dashboard",id:a.active_id,model:n,context:a,configAction:Re});break}case"form":{ae.push({...pe,type:ge});break}case"tree":{ae.push({...pe,isExpandable:x,type:ge});break}case"graph":{ae.push({...pe,type:ge});break}}}let he;!c&&ae.find(fe=>fe.type==="tree")?he=ae.find(me=>me.type==="tree"):c?he=ae.find(me=>c.id?me.type===c.type&&me.view_id===c.id:me.type===c.type):he=ae.find(me=>me.type==="form"),he||showDialog$8(`Error determining the first view to show.
|
|
130
130
|
Please, make sure the view ids on the fields_view_get responses are the same as the ones defined in the action`),Q(he),_(ae),E(!1)};u({tabKey:l,canWeClose:te}),React.useEffect(()=>{const ae=y.find(fe=>fe.type==="tree"),he=y.find(fe=>c.id?fe.type===c.type&&fe.view_id===c.id:fe.type===c.type);Q(he||ae),p?j==null||j(P):(ee(void 0),k(void 0)),ie()},[n,o,p]),React.useEffect(()=>{X===l&&(j==null||j(w),Z==null||Z(g))},[T,X]);async function te(){return g.type==="form"?await A.current.cancelUnsavedChanges():!0}async function oe(){X===l&&(g.type==="form"&&!await A.current.cancelUnsavedChanges()||z(!0))}async function se(ae){var ge;K(!0);const he=$.findIndex(pe=>pe.id===ae);let fe;if(he===-1){try{fe=(ge=await ConnectionProvider.getHandler().readObjects({model:n,ids:[ae],context:a}))==null?void 0:ge[0]}catch{}if(!fe){K(!1),z(!1),showDialog$7(F("idNotFound"));return}}else fe=$[he];K(!1),z(!1);const me=o.find(pe=>pe[1]==="form");J({domain:[],context:a,model:n,views:o,title:s,target:"current",initialView:{id:me==null?void 0:me[0],type:"form"},action_id:m,action_type:h,res_id:ae})}function _e(){return y.map(ae=>{switch(ae.type){case"form":return jsxRuntime.jsx(FormActionView,{formRef:A,currentId:w,visible:g.type===ae.type&&g.view_id===ae.view_id,formView:ae,model:n,context:a,domain:r,defaultValues:d,forcedValues:f,results:$,setResults:D,setCurrentItemIndex:k},`${ae.type}-${ae.view_id}`);case"tree":return jsxRuntime.jsx(TreeActionView,{visible:g.type===ae.type&&g.view_id===ae.view_id,limit:b,model:n,context:a,domain:r,formView:y.find(he=>he.type==="form"),treeView:ae,searchTreeRef:L,searchTreeNameSearch:U,availableViews:y,results:$,setCurrentItemIndex:k,setCurrentId:ee,setCurrentView:Q},`${ae.type}-${ae.view_id}`);case"graph":return jsxRuntime.jsx(GraphActionView,{visible:g.type===ae.type&&g.view_id===ae.view_id,viewData:ae,model:n,context:a,domain:r,treeView:y.find(he=>he.type==="tree"),formView:y.find(he=>he.type==="form")},`${ae.type}-${ae.view_id}`);case"dashboard":return jsxRuntime.jsx(DashboardActionView,{dashboardData:ae},`${ae.type}-${ae.view_id}`)}})}function be(){if(w===void 0&&g.type==="form")A.current.clearAndReload();else{ee(void 0);const ae=y.find(he=>he.type==="form");Q(ae)}}return C?jsxRuntime.jsx(antd.Spin,{}):g?jsxRuntime.jsxs(ActionViewProvider,{title:s,currentView:g,setCurrentView:Q,availableViews:y,formRef:A,searchTreeRef:L,onNewClicked:be,currentId:w,setCurrentId:ee,setCurrentItemIndex:k,currentItemIndex:q,results:$,setResults:D,currentModel:n,sorter:N,setSorter:V,totalItems:M,setTotalItems:W,selectedRowItems:O,setSelectedRowItems:I,setSearchTreeNameSearch:B,searchTreeNameSearch:U,goToResourceId:se,limit:b,children:[_e(),jsxRuntime.jsx(GoToResourceModal,{visible:Y,onIdSubmitted:se,isSearching:H,onCancel:()=>{z(!1)}})]}):null}const ActionView$1=React.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"&®EX.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:{}}),u=o.domain?await ConnectionProvider.getHandler().evalDomain({domain:o.domain,values:r,context:{...t,...s}}):[],{res_model:l,views:c,name:d,limit:f,view_type:p}=o,m=p==="tree",h=[];for(const v of c){const[y,_]=v;if(y)h.push(v);else{const{view_id:C}=await ConnectionProvider.getHandler().getView({model:l,type:_,id:y,context:{...t,...s}});h.push([C,_])}}const[x,b]=h[0],g={id:x,type:b};return{title:d,actionId:e,actionType:n,key:v4(),views:c,model:l,context:{...t,...s},domain:u,initialView:g,limit:f,treeExpandable:m}}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})},{Text}=antd.Typography,DashboardGridItem=e=>{const{id:t,title:r,children:n,action:a,openAction:o}=e;return jsxRuntime.jsxs("div",{className:"shadow-md rounded",style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid #eee",backgroundColor:"white"},children:[jsxRuntime.jsxs(antd.Row,{className:"bg-blueGray-100",align:"middle",style:{borderBottom:"1px solid #ddd"},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:r})}),a&&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:()=>{o==null||o(a)}})})})]}),n]})},DEFAULT_SEARCH_LIMIT=80;function DashboardTree(e){const{action:t,model:r,view_id:n,onRowClicked:a,domain:o=[],visible:s=!0,parentContext:u={}}=e,[l,c]=React.useState(!1),[d,f]=React.useState(!1),[p,m]=React.useState(),[h,x]=React.useState(),[b,g]=React.useState(),[v,y]=React.useState(1),[_,C]=React.useState(0),E=React.useRef(DEFAULT_SEARCH_LIMIT),P=React.useRef([]),[w,S]=React.useState(0),[O,I]=React.useState([]),[q,k]=React.useState(void 0),[$,D]=React.useState(),[N,V]=React.useState(),[M,W]=React.useState(),[Y,z]=React.useState(!1),H=React.useRef([]),K=j=>{z(!0),y(j),C((j-1)*E.current)},U=async()=>{const j=H.current.length>0?H.current:o,T=mergeParams(P.current,j),{colors:X}=getTree(h),{totalItems:J,results:ee,attrsEvaluated:Q}=await ConnectionProvider.getHandler().searchForTree({params:T,limit:E.current,offset:_,model:p,fields:h.fields,context:u,attrs:X&&{colors:X}}),ie=await J;S(ie),k(getColorMap(Q));const te=sortResults({resultsToSort:ee,sorter:$,fields:{...h.fields,...b.fields}});I(te)},B=async()=>{try{z(!0),await U()}catch(j){V(JSON.stringify(j))}finally{z(!1)}};React.useEffect(()=>{!d||s&&B()},[v,_,d,s]);const F=async j=>{f(!1),c(!0),W(void 0);try{j==="action"?await A():await L(),f(!0)}catch(T){W(T)}finally{c(!1)}},A=async()=>{const j=await ConnectionProvider.getHandler().getViewsForAction({action:t,context:u});H.current=j.domain,g(j.views.get("form")),x(j.views.get("tree")),m(j.model),E.current=j.limit},L=async()=>{m(r);const j=await ConnectionProvider.getHandler().getView({model:r,type:"form",context:u});g(j);const T=await ConnectionProvider.getHandler().getView({model:r,type:"tree",id:n,context:u});x(T)};React.useEffect(()=>{t?F("action"):r&&F("model")},[t,r]);const G=j=>{const{id:T}=j;a({id:T,model:p,treeView:h})},Z=()=>!h||!b?null:jsxRuntime.jsxs("div",{style:{overflowY:"scroll"},children:[N&&jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:N,type:"error",banner:!0}),jsxRuntime.jsx(Tree,{showPagination:!1,total:w,limit:E.current,page:v,treeView:h,results:O,onRequestPageChange:K,loading:Y,onRowClicked:G,colorsForResults:q,sorter:$,onChangeSort:j=>{D==null||D(j);const T=sortResults({resultsToSort:O,sorter:j,fields:{...h.fields,...b.fields}});I(T)},context:u})]});return M?jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:M,type:"error",banner:!0}):l?jsxRuntime.jsx(antd.Spin,{style:{padding:"2rem"}}):Z()}const DashboardForm=e=>{const{model:t}=e,[r,n]=React.useState();React.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,u]=React.useState([]),[l,c]=React.useState(!1),[d,f]=React.useState(),{setIsLoading:p,openAction:m,moveItemsEnabled:h}=React.useContext(DashboardActionContext),x=React.useRef(),b=React.useRef();React.useEffect(()=>{g()},[r,a,n]),React.useImperativeHandle(t,()=>({refresh:()=>{g()},configDashboard:P}));async function g(){c(!0),p(!0),f(void 0);try{const w=await v(),S=await _(w),O=w.fields[itemsField].relation,I=S[itemsField].items;b.current=w.fields;const q=await y({items:I,model:O,context:n}),k=await C(q);u(k),c(!1),p(!1)}catch(w){f(JSON.stringify(w))}}async function v(){return await ConnectionProvider.getHandler().getView({model:r,type:"form",context:n})}async function y({items:w,model:S,context:O}){return x.current=(await ConnectionProvider.getHandler().getView({model:S,type:"form",context:O})).fields,await readObjectValues({treeFields:x.current,formFields:x.current,model:S,items:w,context:O})}async function _(w){return(await ConnectionProvider.getHandler().readObjects({model:r,ids:[a],fields:w.fields,context:n}))[0]}async function C(w){const S=[];for(const O of w){const{values:I}=O;if(I.action_id&&I.action_id.length>0){const q=parseInt(I.action_id[0],10),k=await fetchAction({actionId:q,rootContext:n});S.push({...O,actionData:k})}}return S}async function E(w){if(!h)return;const S=w.filter(k=>{const $=s.find(N=>N.id===k.id);if(!$)return!1;if(!$.position)return!0;const D={...JSON.parse($.position.replace(/'/g,'"')),id:$.id};return JSON.stringify(k)!==JSON.stringify(D)});if(S.length===0)return;const I=s.filter(k=>S.map($=>$.id).includes(k.id)).map(k=>{const $={...S.find(D=>D.id===k.id)};return delete $.id,{...k},{...k,operation:"pendingUpdate",values:{...k.values,position:JSON.stringify($).replace(/"/g,"'")}}}),q={fields:x.current,items:I};await ConnectionProvider.getHandler().update({model:r,id:a,values:{[itemsField]:q},fields:b.current,context:n})}async function P(){m(o)}return d?jsxRuntime.jsx(antd.Alert,{className:"mt-10 mb-20",message:d,type:"error",banner:!0}):l?jsxRuntime.jsx(AntIcons.LoadingOutlined,{}):jsxRuntime.jsx(DashboardGrid,{onPositionItemsChanged:E,children:s.map((w,S)=>{const{actionData:O,values:I}=w,{position:q,id:k}=I,{actionId:$,actionType:D,key:N,title:V,views:M,model:W,context:Y,domain:z,initialView:H,limit:K}=O;let U={};try{U=JSON.parse(q.replace(/'/g,'"'))}catch{U={x:S*2,y:0,w:2,h:3}}let B=null;if((H==null?void 0:H.type)==="graph")B=jsxRuntime.jsx(Graph,{view_id:M.filter(L=>L[1]==="graph")[0][0],model:W,context:Y,domain:z,limit:K});else if((H==null?void 0:H.type)==="form")B=jsxRuntime.jsx(DashboardForm,{model:W,actionDomain:z});else if((H==null?void 0:H.type)==="tree")B=jsxRuntime.jsx(DashboardTree,{model:W,domain:z,view_id:M.filter(L=>L[1]==="tree")[0][0],onRowClicked:L=>{const G=M.find(Z=>{const[,j]=Z;return j==="form"});if(G){const[Z,j]=G,{actionId:T,actionType:X,title:J,model:ee}=O,Q={action_id:T,action_type:X,name:J,res_id:L.id,res_model:ee,view_id:Z,view_type:j};m(Q)}}});else if(H!==void 0){const L=H&&Array.isArray(H.id)?{...H,id:H.id[0]}:H;B=jsxRuntime.jsx(ActionView$1,{action_id:$,action_type:D,tabKey:N,title:V,views:M,model:W,context:Y,domain:z,setCanWeClose:()=>{},initialView:L,limit:K})}let F;const A=M.find(L=>{const[,G]=L;return G==="tree"});if(A){const[L,G]=A,{actionId:Z,actionType:j,title:T,model:X}=O;F={action_id:Z,action_type:j,name:T,res_id:!1,res_model:X,view_id:L,view_type:G}}return jsxRuntime.jsx(DashboardGridItem,{id:k,title:V,parms:U,action:F,openAction:m,children:B},k)})})}const Dashboard$1=React.forwardRef(Dashboard),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(w=>w.operation!=="pendingRemove").map(w=>w.id),[s,u]=React.useState([]),[l,c]=React.useState(),[d,f]=React.useState(!1),{relation:p,context:m,readOnly:h,field:x,columns:b}=r,g=React.useContext(FormContext$1),{getContext:v}=g||{};useDeepCompareEffect__default.default(()=>{_()},[a]);const y=w=>{n==null||n({items:w})};async function _(){f(!0);let w=[];if(r.domain){const S=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()});w=[...w,...S]}try{const O=(await ConnectionProvider.getHandler().search({model:p,params:w,fields:[x],context:{...v==null?void 0:v(),...m}})).map(I=>{const q=I[x];let k=q;return Array.isArray(q)&&(k=q[1]),{label:k,value:I.id}});u(O)}catch(S){c(S)}finally{f(!1)}if(l)return jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:l,type:"error",banner:!0})}const C=()=>{P(s.map(w=>w.value))},E=()=>{P([])},P=w=>{const S=a.map(I=>w.includes(I.id)?I.operation=="pendingRemove"?{...I,operation:"original"}:I:{id:I.id,operation:"pendingRemove"}),O=S.map(I=>I.id);w.filter(I=>!O.includes(I)).map(I=>{S.push({id:I,operation:"pendingLink"})}),y(S)};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:h,onChange:P,style:{width:"100%"},children:jsxRuntime.jsx(antd.Row,{children:s.map(w=>jsxRuntime.jsx(antd.Col,{span:Math.floor(24/b),children:jsxRuntime.jsx(antd.Checkbox,{value:w.value,children:w.label})}))})}),!h&&jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{onClick:C,disabled:o.length==s.length,children:"Check all"}),jsxRuntime.jsx(antd.Button,{onClick:E,disabled:o.length===0,children:"Uncheck all"})]})]})})},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,u=Array.from(a.entries()),l=u&&u.length&&u.map(c=>{const[d,f]=c;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:l})})},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.useContext(FormContext$1),s=Array.from(n.entries()),u=s.map(d=>d[0]).indexOf(r);let l="process",c="";return a&&(c=o.getFieldValue(a),c&&(l="error")),jsxRuntime.jsx(antd.Steps,{current:u,status:l,children:s.map((d,f)=>jsxRuntime.jsx(antd.Steps.Step,{title:d[1],description:f===u&&l==="error"?c:null}))})},CodeEditor=e=>{const{ooui:t}=e,{lang:r,height:n}=t,a=React.useContext(FormContext$1),{elementHasLostFocus:o}=a||{},s=u=>{u.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.useContext(LocaleContext);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,u]=React.useState("welcome"),[l,c]=React.useState([{title:tForLang("welcome",o),key:"welcome",closable:!0,content:jsxRuntime.jsx(Welcome,{})}]),d=React.useRef(new Map),f=React.useRef();React.useImperativeHandle(t,()=>({retrieveAndOpenAction:h,openShortcut:g}));function p(_){if(_===s){const C=l.findIndex(E=>E.key===_);l[C-1]&&u(l[C-1].key),l[C+1]&&u(l[C+1].key)}c(l.filter(C=>C.key!==_)),d.current.delete(_)}function m({tabKey:_,canWeClose:C}){d.current.set(_,C)}async function h({action:_,values:C,forced_values:E,initialViewType:P,res_id:w,domain:S=[]}){const O=await ConnectionProvider.getHandler().getActionData({action:_,context:a});if(O.type==="ir.actions.wizard"){showDialog$8("Action type not supported");return}const[I,q]=_.split(","),k=parseInt(q),$=ooui.parseContext({context:O.context,values:n,fields:{}}),D=O.domain?await ConnectionProvider.getHandler().evalDomain({domain:O.domain,values:n,context:{...a,...$}}):[],{res_model:N,views:V,name:M,target:W,view_type:Y,limit:z}=O,H=Y==="tree",K=[];for(const B of V){const[F,A]=B;if(F)K.push(B);else if(A==="dashboard")K.push([void 0,"dashboard"]);else{const{view_id:L}=await ConnectionProvider.getHandler().getView({model:N,type:A,id:F,context:{...a,...$}});K.push([L,A])}}let U;if(P){const[B,F]=K.find(([A,L])=>L===P);U={id:B,type:F}}else{const[B,F]=K[0];U={id:B,type:F}}y({domain:[...D,...S],context:{...a,...$},model:N,views:K,title:M,target:W,initialView:U,action_type:I,action_id:k,values:C,forced_values:E,res_id:w,treeExpandable:H,limit:z})}function x({title:_,content:C,key:E,action:P}){let w=[...l];l.length===1&&l[0].key==="welcome"&&(w=[...l.filter(S=>S.key!=="welcome")]),c([...w,{title:_,key:E,closable:!0,content:C,action:P}]),u(E)}async function b({relateData:_,fields:C,values:E,action_id:P,action_type:w}){const{res_model:S,context:O,domain:I,views:q,target:k,string:$,limit:D}=_,[N,V]=q[0],M={id:N,type:V},W=ooui.parseContext({context:O,values:{...E,...n},fields:C}),Y=I?await ConnectionProvider.getHandler().evalDomain({domain:I,values:transformPlainMany2Ones({fields:C,values:{...E,...n}}),fields:C,context:{...a,...W}}):[];y({model:S,target:k,views:q,context:{...a,...W},domain:Y,title:$,initialView:M,action_id:P,action_type:w,limit:D})}async function g(_){const{action_id:C,action_type:E,res_id:P,view_id:w}=_,S=`${E},${C}`,O=await ConnectionProvider.getHandler().getActionData({action:S,context:a}),I=ooui.parseContext({context:O.context,values:n,fields:{}}),q=O.domain?await ConnectionProvider.getHandler().evalDomain({domain:O.domain,values:n,context:{...a,...I}}):[],{res_model:k,views:$,name:D,target:N,view_type:V,limit:M}=O,W=V==="tree",Y=[];for(const U of $){const[B,F]=U;if(B)Y.push(U);else if(F==="dashboard")Y.push([void 0,"dashboard"]);else{const{view_id:A}=await ConnectionProvider.getHandler().getView({model:k,type:F,id:B,context:{...a,...I}});Y.push([A,F])}}let z,H;if(w==null){const U=Y.find(B=>B[0]===void 0);z=void 0,H=U[1]}else[z,H]=Y.find(U=>U[0]===void 0?!1:U[0]===w);const K={id:z,type:H};y({domain:q,context:{...a,...I},model:k,views:Y,title:D,target:N,initialView:K,action_id:C,action_type:E,res_id:P,treeExpandable:W,limit:M})}async function v({model:_,values:C,forced_values:E,initialViewType:P,res_id:w,domain:S}){const O=await ConnectionProvider.getHandler().getActionStringForModel(_);await h({action:O,values:C,forced_values:E,initialViewType:P,res_id:w,domain:S})}async function y({domain:_,context:C,model:E,views:P,title:w,target:S,initialView:O,action_id:I,action_type:q,res_id:k,values:$,forced_values:D,treeExpandable:N=!1,limit:V}){const M=v4();if(S!=="current"){const W=await ConnectionProvider.getHandler().getView({model:E,type:"form",id:O.type==="form"?O.id:void 0,context:{...a,...C}});f.current.openActionModal({domain:_,model:E,formView:W,context:{...a,...C},actionData:{action_id:I,action_type:q,res_id:k,view_id:W.view_id}})}else{const W=O&&Array.isArray(O.id)?{...O,id:O.id[0]}:O;x({title:w,action:{id:I,type:q},content:jsxRuntime.jsx(ActionView$1,{action_id:I,action_type:q,tabKey:M,title:w,views:P,model:E,context:{...a,...C},domain:_,setCanWeClose:m,initialView:W,res_id:k,formDefaultValues:$,formForcedValues:D,treeExpandable:N,limit:V}),key:M})}}return jsxRuntime.jsx(LocaleContextProvider,{lang:o,children:jsxRuntime.jsx(TabManagerProvider,{openShortcut:g,openAction:y,openRelate:b,openDefaultActionForModel:v,tabs:l,activeKey:s,onRemoveTab:async _=>{const C=d.current.get(_);(await(C==null?void 0:C())||s==="welcome")&&p(_)},onChangeTab:_=>{u(_)},children:jsxRuntime.jsx(ContentRootProvider$1,{ref:f,globalValues:n,children:r})})})}const RootView$1=React.forwardRef(RootView);function Tab(e){const{label:t,onClose:r,tabKey:n,isActive:a,onSelected:o}=e,s=a?"#ffffff":"#F1F5F9";return jsxRuntime.jsxs("div",{onClick:()=>{!a&&o(n)},style:{cursor:"pointer",height:40,paddingTop:7,paddingBottom:5,paddingLeft:10,paddingRight:10,backgroundColor:s,display:"inline-flex",flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",borderTopLeftRadius:8,borderTopRightRadius:8,marginLeft:2},children:[jsxRuntime.jsx("div",{style:{color:a?"#001529":"#ADB0B3",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?"#001529":"#ADB0B3"},onClick:u=>{u.stopPropagation(),r(n)}})})]})}function TabSelector(){const e=React.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.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.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 FavouriteButton=e=>{const{onRetrieveShortcuts:t,onCheckIsFavourite:r,onAddFavourite:n,onRemoveFavourite:a}=e,[o,s]=React.useState(!1),[u,l]=React.useState(!1),[c,d]=React.useState([]),[f,p]=React.useState(!0),[m,h]=React.useState(),{t:x}=React.useContext(LocaleContext),b=React.useContext(TabManagerContext),{openShortcut:g,tabs:v,activeKey:y,currentView:_,currentId:C,openDefaultActionForModel:E}=b||{};React.useEffect(()=>{P()},[]),React.useEffect(()=>{O()},[v,y,_,C]);async function P(){try{p(!0);const D=await t();d(D)}catch(D){showDialog$8(D)}finally{p(!1)}}function w(D){const{key:N}=D,V=c.find(M=>M.id===Number(N));(V==null?void 0:V.action_type)!=="ir.actions.wizard"&&(V&&g(V),l(!1))}function S(D){D&&P(),l(D)}async function O(){if(!_)return;const D=v.find(z=>z.key===y),{id:N,type:V}=(D==null?void 0:D.action)||{};if(!N||!V){s(!1);return}const M=_.view_id;let W=!1;_.type==="form"&&(W=C||!1);const Y=await r({action_id:N,action_type:V,view_id:M,res_id:W});Y!==!1&&h(Y),s(Y!==!1)}async function I(){l(!1),E==null||E({model:"ir.ui.view_sc"})}const q=jsxRuntime.jsxs(antd.Menu,{onClick:w,children:[jsxRuntime.jsxs("div",{style:{width:300,padding:5,display:"flex"},children:[jsxRuntime.jsx("div",{style:{paddingLeft:15,color:"#ccc"},children:x("favorites").toUpperCase()}),jsxRuntime.jsx("div",{style:{flexGrow:1,paddingLeft:10},children:jsxRuntime.jsx(antd.Tooltip,{title:x("edit_favorites"),children:jsxRuntime.jsx(AntIcons.EditOutlined,{style:{color:"#1890FF",cursor:"pointer"},onClick:I})})})]}),jsxRuntime.jsx(antd.Menu.Divider,{}),f?jsxRuntime.jsx(antd.Spin,{style:{padding:"1rem"}}):c.length>0?jsxRuntime.jsx(jsxRuntime.Fragment,{children:c.map(D=>jsxRuntime.jsx(antd.Menu.Item,{children:jsxRuntime.jsx(k,{title:D.name,type:D.view_type})},D.id))}):jsxRuntime.jsx("div",{style:{width:300,padding:5,paddingLeft:15},children:x("no_favorites")})]});function k({title:D,type:N}){const V=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:V}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:D})]})}async function $(){if(o&&m)await a(m);else{if(!_)return;const D=v.find(Y=>Y.key===y),{id:N,type:V}=(D==null?void 0:D.action)||{},M=_.view_id;let W=!1;if(!N||!V){s(!1);return}_.type==="form"&&(W=C||!1),await n({action_id:N,action_type:V,view_id:M,res_id:W})}await P(),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},onClick:$}),jsxRuntime.jsx(antd.Dropdown,{overlay:q,onVisibleChange:S,visible:u,children:jsxRuntime.jsx(antd.Button,{style:{width:25},icon:jsxRuntime.jsx(AntIcons.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:D=>D.preventDefault()})})]})};exports.ActionBar=FormActionBar,exports.Binary=Binary,exports.Boolean=Boolean$1,exports.Button=Button,exports.ButtonGroup=ButtonGroup,exports.Char=Char,exports.CodeEditor=CodeEditor,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.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.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.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"}})});
|
|
131
131
|
//# sourceMappingURL=react-ooui.umd.js.map
|