{"version":3,"sources":["assets/theme/base/colors.js","assets/theme/base/breakpoints.js","assets/theme/functions/pxToRem.js","assets/theme/base/typography.js","assets/theme/functions/hexToRgb.js","assets/theme/functions/rgba.js","assets/theme/functions/boxShadow.js","assets/theme/base/boxShadows.js","assets/theme/base/borders.js","assets/theme/base/globals.js","assets/theme/functions/linearGradient.js","assets/theme/components/sidenav.js","assets/theme/components/card/index.js","assets/theme/components/card/cardMedia.js","assets/theme/components/card/cardContent.js","assets/theme/components/button/root.js","assets/theme/components/button/contained.js","assets/theme/components/button/outlined.js","assets/theme/components/button/text.js","assets/theme/components/button/index.js","assets/theme/components/iconButton.js","assets/theme/components/form/input.js","assets/theme/components/form/inputLabel.js","assets/theme/components/form/inputOutlined.js","assets/theme/components/form/textField.js","assets/theme/components/menu/index.js","assets/theme/components/menu/menuItem.js","assets/theme/components/form/switchButton.js","assets/theme/components/divider.js","assets/theme/components/table/tableContainer.js","assets/theme/components/table/tableHead.js","assets/theme/components/table/tableCell.js","assets/theme/components/linearProgress.js","assets/theme/components/breadcrumbs.js","assets/theme/components/slider.js","assets/theme/components/avatar.js","assets/theme/components/tooltip.js","assets/theme/components/tabs/index.js","assets/theme/components/tabs/tab.js","assets/theme/components/stepper/index.js","assets/theme/components/stepper/step.js","assets/theme/components/stepper/stepConnector.js","assets/theme/components/stepper/stepLabel.js","assets/theme/components/stepper/stepIcon.js","assets/theme/components/form/select.js","assets/theme/components/form/formControlLabel.js","assets/theme/components/form/formLabel.js","assets/theme/components/form/checkbox.js","assets/theme/components/form/radio.js","assets/theme/components/form/autocomplete.js","assets/theme/components/flatpickr.js","assets/theme/components/container.js","assets/theme/components/popover.js","assets/theme/components/icon.js","assets/theme/components/svgIcon.js","assets/theme/components/dialog/index.js","assets/theme/components/dialog/dialogTitle.js","assets/theme/components/dialog/dialogContent.js","assets/theme/components/dialog/dialogContentText.js","assets/theme/components/dialog/dialogActions.js","assets/theme/index.js","assets/theme/components/list/index.js","assets/theme/components/list/listItem.js","assets/theme/components/list/listItemText.js","assets/theme/components/appBar.js","assets/theme/components/buttonBase.js","assets/theme/components/link.js","components/MDBox/MDBoxRoot.js","components/MDBox/index.js","components/MDTypography/MDTypographyRoot.js","context/index.js","components/MDTypography/index.js","components/Sidenav/styles/sidenavCollapse.js","components/Sidenav/SidenavCollapse.js","components/Sidenav/SidenavList.js","components/Sidenav/SidenavItem.js","components/Sidenav/styles/sidenavItem.js","components/Sidenav/SidenavRoot.js","components/Sidenav/index.js","components/Sidenav/styles/sidenav.js","components/MDButton/MDButtonRoot.js","components/MDButton/index.js","components/Configurator/ConfiguratorRoot.js","components/Configurator/index.js","components/Footer/index.js","othelloConstantes.jsx","components/MDSocialButton/MDSocialButtonRoot.js","components/MDSocialButton/index.js","components/Button.jsx","components/MDAlert/MDAlertRoot.js","components/MDAlert/MDAlertCloseIcon.js","components/MDAlert/index.js","componentsothello/OthelloPopUpResult.jsx","componentsothello/OthelloTituloPanelData.jsx","componentsothello/OthelloModalBase.jsx","othelloFunciones.jsx","componentsothello/OthelloMostrarRetorno.jsx","componentsothello/OthelloMensaje.jsx","componentsothello/OthelloBotonera.jsx","componentsothello/OthelloComboBox.jsx","components/MDInput/MDInputRoot.js","components/MDInput/index.js","componentsothello/OthelloEdit.jsx","assets/img/image_placeholder.jpg","assets/img/placeholder.jpg","components/ImageUpload.jsx","assets/img/pdf-icon.png","assets/jss/material-dashboard-pro-react.jsx","assets/jss/material-dashboard-pro-react/hoverCardStyle.jsx","assets/jss/material-dashboard-pro-react/views/dashboardStyle.jsx","componentsothello/OthelloTitulo.jsx","view/Oficina.js","components/Table.jsx","components/MDPagination/MDPaginationItemRoot.js","components/MDPagination/index.js","components/Tables/DataTable/DataTableHeadCell.js","components/Tables/DataTable/DataTableBodyCell.js","components/Tables/DataTable/index.js","componentsothello/OthelloCheckBox.jsx","componentsothello/OthelloGrid.jsx","view/Oficinas.js","view/Regiones.js","view/Idiomas.js","view/Areas.js","view/Incidencias.js","componentsothello/OthelloTimer.jsx","view/TramosReservas.js","view/InstalacionReservas.js","view/Encuestas.js","componentsothello/OthelloWaiting.jsx","componentsothello/OthelloCard.jsx","componentsothello/OthelloPrimary.jsx","view/EncuestasEstadisticas.js","view/EncuestasEstadisticasFiltradas.js","components/NavPills.jsx","view/Pois.js","view/Usuarios.js","view/Dashboard.js","view/Tienda/Pedido.js","view/Tienda/EstadoPedido.js","view/Tienda/DashTienda.js","view/Tienda/Categorias.js","view/Tienda/Marcas.js","view/Tienda/Pedidos.js","view/Tienda/Articulos.js","view/Importacion.js","assets/img/default-avatar.png","componentsothello/OthelloFooter.jsx","components/MDAvatar/MDAvatarRoot.js","components/MDAvatar/index.js","view/Reservar.js","view/Perfil.js","componentsothello/OthelloVersionWeb.jsx","view/LoginPage.jsx","components/MDProgress/MDProgressRoot.js","components/MDProgress/index.js","view/LoginPageApps.jsx","view/LoginPageReservas.jsx","view/Peticion.js","view/Peticiones.js","view/ReservaFinPasarela.js","view/CondicionesInfoPage.js","components/LayoutContainers/DashboardLayout/index.js","components/MDBadge/MDBadgeRoot.js","components/MDBadge/index.js","components/Breadcrumbs/index.js","components/Items/NotificationItem/styles.js","components/Items/NotificationItem/index.js","components/Navbars/DashboardNavbar/styles.js","components/Navbars/DashboardNavbar/index.js","assets/img/logo_atm2x.png","layouts/LayoutAdmin.js","routes.js","components/Navbars/DefaultNavbar/DefaultNavbarLink.js","components/Navbars/DefaultNavbar/DefaultNavbarCategory.js","components/Navbars/DefaultNavbar/DefaultNavbarMenu.js","components/Navbars/DefaultNavbar/Menus/PagesMenu.js","components/Navbars/DefaultNavbar/Menus/AuthenticationMenu.js","components/Navbars/DefaultNavbar/Menus/ApplicationsMenu.js","components/Navbars/DefaultNavbar/Menus/EcommerceMenu.js","components/Navbars/DefaultNavbar/Menus/DocsMenu.js","components/Navbars/DefaultNavbar/DefaultNavbarMobile.js","components/Navbars/DefaultNavbar/index.js","components/LayoutContainers/PageLayout/index.js","components/LayoutContainers/IllustrationLayout/index.js","componentsothello/OthelloCookieConsent.jsx","view/ErrorPage.js","view/RememberPass.js","routesAuth.js","assets/images/illustrations/illustration-reset.jpg","assets/img/register.jpeg","assets/img/viaje.jpg","assets/img/lock.jpeg","assets/img/clint-mckoy.jpg","layouts/LayoutAuth.js","view/RegisterPage.js","routesAuthApps.js","assets/img/login.jpeg","assets/img/reserva3.jpg","layouts/LayoutAuthApps.js","componentsothello/OthelloEditComboBox.jsx","assets/jss/material-dashboard-pro-react/views/loginPageStyle.jsx","view/FormularioEncuesta.jsx","routesFormularios.js","layouts/LayoutFormularios.js","assets/images/back4.jpg","assets/images/ejemplo.jpg","view/FormularioJuego.jsx","routesJuego.js","layouts/LayoutJuego.js","routesCondicionesReservar.js","assets/img/reserva1.jpg","layouts/LayoutCondicionesReservar.js","componentsothello/OthelloReportViewer.js","componentsothello/CPageReportViewer.jsx","App.js","registerServiceWorker.js","i18n.js","index.js"],"names":["background","default","text","main","focus","transparent","white","black","light","primary","secondary","info","success","warning","error","dark","grey","100","200","300","400","500","600","700","800","900","gradients","state","socialMediaColors","facebook","twitter","instagram","linkedin","pinterest","youtube","vimeo","slack","dribbble","github","reddit","tumblr","millenium","badgeColors","coloredShadows","inputBorderColor","tabs","indicator","boxShadow","values","xs","sm","md","lg","xl","xxl","pxToRem","number","baseNumber","colors","baseProperties","fontFamily","fontWeightLighter","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","fontSizeXXS","fontSizeXS","fontSizeSM","fontSizeMD","fontSizeLG","fontSizeXL","fontSize2XL","fontSize3XL","baseHeadingProperties","color","fontWeight","baseDisplayProperties","lineHeight","typography","h1","fontSize","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","textTransform","caption","overline","d1","d2","d3","d4","d5","d6","size","xxs","hexToRgb","chroma","rgb","join","rgba","opacity","offset","radius","inset","x","y","blur","spread","colored","navbarBoxShadow","sliderBoxShadow","thumb","tabsBoxShadow","borderColor","borderWidth","0","1","2","3","4","5","borderRadius","section","html","scrollBehavior","margin","padding","textDecoration","transition","linearGradient","colorState","angle","borders","styleOverrides","root","width","whiteSpace","border","paper","backgroundColor","height","paperAnchorDockedLeft","borderRight","boxShadows","display","flexDirection","position","minWidth","wordWrap","backgroundClip","overflow","media","marginTop","marginBottom","justifyContent","alignItems","textAlign","userSelect","backgroundSize","backgroundPositionX","pointerEvent","base","minHeight","small","large","defaultProps","disableRipple","contained","containedSizeSmall","containedSizeLarge","containedPrimary","containedSecondary","outlined","outlinedSizeSmall","outlinedSizeLarge","outlinedPrimary","outlinedSecondary","textSizeSmall","textSizeLarge","textPrimary","textSecondary","borderBottom","sizeSmall","notchedOutline","input","inputSizeSmall","multiline","disableAutoFocusItem","switchBase","backgroundImage","track","checked","vertical","colorPrimary","colorSecondary","bar","transform","li","separator","rail","zIndex","rounded","img","arrow","TransitionComponent","Fade","tooltip","maxWidth","flexContainer","fixed","overflowX","flex","marginRight","labelIcon","paddingTop","alternativeLabel","top","left","right","line","label","fill","stroke","strokeWidth","select","selectMenu","icon","marginLeft","backgroundPosition","backgroundRepeat","content","bottom","popper","option","noOptions","groupLabel","loading","tag","breakpoints","SM","MD","LG","XL","XXL","sharedClasses","paddingRight","paddingLeft","baseClassName","fontSizeInherit","fontSizeSmall","fontSizeLarge","paperFullScreen","dividers","borderTop","createTheme","palette","functions","components","MuiCssBaseline","globals","flatpickr","container","MuiDrawer","sidenav","MuiList","paddingBottom","MuiListItem","disableGutters","MuiListItemText","MuiCard","card","MuiCardMedia","cardMedia","MuiCardContent","cardContent","MuiButton","MuiIconButton","iconButton","MuiInput","MuiInputLabel","inputLabel","MuiOutlinedInput","inputOutlined","MuiTextField","textField","MuiMenu","menu","MuiMenuItem","menuItem","MuiSwitch","switchButton","MuiDivider","divider","MuiTableContainer","tableContainer","MuiTableHead","tableHead","MuiTableCell","tableCell","MuiLinearProgress","linearProgress","MuiBreadcrumbs","breadcrumbs","MuiSlider","slider","MuiAvatar","avatar","MuiTooltip","MuiAppBar","MuiTabs","MuiTab","tab","MuiStepper","stepper","MuiStep","step","MuiStepConnector","stepConnector","MuiStepLabel","stepLabel","MuiStepIcon","stepIcon","MuiSelect","MuiFormControlLabel","formControlLabel","MuiFormLabel","formLabel","MuiCheckbox","checkbox","MuiRadio","radio","MuiAutocomplete","autocomplete","MuiPopover","popover","MuiButtonBase","MuiIcon","MuiSvgIcon","svgIcon","MuiLink","underline","MuiDialog","dialog","MuiDialogTitle","dialogTitle","MuiDialogContent","dialogContent","MuiDialogContentText","dialogContentText","MuiDialogActions","dialogActions","styled","Box","theme","ownerState","variant","bgColor","shadow","coloredShadow","greyColors","validColors","backgroundValue","find","el","colorValue","borderRadiusValue","boxShadowValue","MDBox","forwardRef","ref","rest","MDBoxRoot","propTypes","PropTypes","oneOf","string","Typography","verticalAlign","textGradient","darkMode","fontWeights","regular","medium","bold","WebkitBackgroundClip","WebkitTextFillColor","MaterialUI","createContext","reducer","action","type","miniSidenav","value","transparentSidenav","whiteSidenav","sidenavColor","transparentNavbar","fixedNavbar","openConfigurator","direction","layout","openBarraVertical","Error","MaterialUIControllerProvider","children","useReducer","controller","dispatch","Provider","useMaterialUIController","context","useContext","displayName","setMiniSidenav","setTransparentSidenav","setWhiteSidenav","setLayout","MDTypography","MDTypographyRoot","collapseIconBox","transitions","placeItems","create","easing","easeInOut","duration","standard","collapseIcon","active","SidenavCollapse","name","noCollapse","open","ListItem","component","sx","mb","cursor","up","shorter","collapseItem","ListItemIcon","Icon","ListItemText","collapseText","collapseArrow","Collapse","in","unmountOnExit","SidenavList","List","px","my","SidenavItem","nested","TieneIcono","pl","mt","sharp","item","itemContent","itemArrow","timeout","Drawer","enteringScreen","Sidenav","brand","brandName","routes","useState","openCollapse","setOpenCollapse","openNestedCollapse","setOpenNestedCollapse","location","useLocation","pathname","collapseName","split","slice","items","itemParentName","itemName","length","textColor","useEffect","handleMiniSidenav","window","innerWidth","addEventListener","removeEventListener","renderNestedCollapse","collapse","map","route","key","href","Link","target","rel","to","renderRoutes","returnValue","collapses","title","hideinsidebar","ocultarItem","onClick","currentTarget","classList","contains","ml","Divider","SidenavRoot","pt","pb","p","NavLink","src","alt","wordSpacing","sidenavLogoLabel","Button","circular","iconOnly","focusedBackgroundValue","hoveredBoxShadowValue","focusedColorValue","containedStyles","borderColorValue","outliedStyles","gradientStyles","textStyles","sizeValue","paddingValue","iconOnlyStyles","MDButton","MDButtonRoot","overflowY","short","Configurator","Footer","props","contacto","links","push","flexWrap","Date","getFullYear","listStyle","link","DataStatePage","DataStateModal","ModoModal","TipoOthelloFieldGrid","ModelosOficina","valor","TiposOficina","OpcionSiNo","OpcionSiNoChar","LimiteProximidad","Roles","RolesUsuarios","TipoArea","TiposArea","OrdenacionPois","Visibilidad","OpcionVisibilidad","OpcionVisibilidadPoi","Categorias","ModoAreaPoi","ModoAreasPoi","ModosVisualizaNotifica","PopUpResult","ModosRuta","MetodosRuta","ModelosArea","TiposInstalacionReserva","OpcionTiposInstalacionReserva","MessageOthelloBoxButtons","OK","OKCancel","AbortRetryIgnore","YesNoCancel","YesNo","RetryCancel","DialogOthelloResult","EstadoReserva","EstadosReserva","ResultadoReserva","ResultadoPagoReserva","TiposEntrega","TipoEntrega","TipoEntregaCombo","EstadoPedido","EstadosPedido","OrdenacionCategoria","EstadosArticulo","TipoPeticion","TiposPeticion","TipoEncuenta","Normal","Juego","TiposEncuenta","ComboUnoDiez","TipoPreguntaEncuenta","TiposPreguntaEncuenta","OpcionSiNoEncuesta","OpcionComboBienMalRegularEncuesta","OpcionComboUnoDiezEncuesta","OpcionEstrellasEncuesta","TipoBusquedaEstadisticas","TiposBusquedaEstadisticas","TipoValidacionEncuenta","TiposValidacionEncuenta","FiltroVerReservas","OpcionesNominaciones","OpcionTipoMapa","DriversPasarela","OpcionSiNoEntero","OpcionVisibilidadWeb","TipoVisualizacionInstalaciones","TiposVisualizacionInstalaciones","OpcionVisibilidadDashboard","OpcionVisibilidadReservas","ModoReport","EstadoNotificacionWeb","TiposResultadoOthello","backgroundColorValue","MDSocialButton","MDSocialButtonRoot","bool","node","isRequired","RegularButton","disabled","fullWidth","includes","mx","fontSizeRegular","backgroundImageValue","MDAlert","dismissible","alertStatus","setAlertStatus","handleAlertStatus","alertTemplate","mount","MDAlertRoot","MDAlertCloseIcon","setTimeout","OthelloPopUpResult","titulo","t","useTranslation","alert","setalert","evento","setevento","hideAlert","alertfinal","onClosePopUpResult","tipo","texto","estado","style","onConfirm","showConfirm","OthelloTituloPanelData","margentop","margenboton","margenleft","tituloliteral","bgcoloricon","backcoloretiqueta","backcolordata","childrenentitulo","backetiqueta","backdata","TieneHeader","TieneChildren","heightHeader","mr","Transition","Slide","OthelloModalBase","boton1","botones","textobotones","modal","setmodal","retornoCResultadoOthello","setretornoCResultadoOthello","handleClose","autoclosebtaceptar","onCloseResulModal","modo","getliteralboton","opc","getestado","botonesfinal","boton2","boton3","None","showretorno","retorno","resultadoOthello","soloIncidencia","onCloseResulRetorno","mostrarAlertOk","resultado","incidencias","OthelloMostrarRetorno","MostrarRetorno","onCloseCResulRetorno","textoBotones","Dialog","PaperProps","keepMounted","onClose","event","reason","aria-labelledby","aria-describedby","scroll","DialogTitle","id","disableTypography","aria-label","DialogContent","DialogActions","Trans","mensaje","Literal","exceptionMessageTraducible","warningMessageTraducible","warningDic","forEach","codigoLiteralMessage","exceptionMessage","MontarTextoResultadoTraducido","Warning","respuestasUsuario","Equals","paramsLiteralTextoUsuario","parametros","literalTextoUsuario","GetGridButtons","index","onEdit","onDelete","Edit","Close","prop","GetDiaSemana","dia","GetMes","mes","GetGoogleMaps","latitud","longitud","MapWrapper","withScriptjs","withGoogleMap","defaultZoom","defaultCenter","lat","lng","defaultOptions","styles","featureType","elementType","stylers","lightness","weight","visibility","saturation","scrollwheel","googleMapURL","loadingElement","containerElement","mapElement","OthelloMensaje","descrip","OthelloBotonera","statePage","arrayBotonesExtras","arrayBotonesCombo","cancelModoEliminar","forzarnuevo","stateModal","setstateModal","modeModal","setmodeModal","opencombo","setopencombo","anchor","setanchor","enabledbotones","setEnabledBotones","doClickButton","callbackmethod","CurrentModoModal","Promise","resolve","reject","then","result","BotonesPagina","nuevoBoton","onNuevo","grabarBoton","onGrabar","cancelarBoton","onCancel","deshacerBoton","onDeshacer","buscarBoton","onBuscar","onKeyDownBoton","permiso","onKeydown","opencomboClick","BotonesExtras","BotonesCombo","literal","Botones","Done","click","Clear","Undo","Add","Search","getBotonesActivos","OpcionesCombo","MenuItem","float","Menu","anchorEl","OthelloComboBox","classes","labelliteral","fieldname","readonly","multiple","sinlabel","currentvalue","comboboxvalue","setcomboboxvalue","labelfinal","itemscombo","res","getItemComboBox","deshabilitado","sololectura","final","parseInt","doshrink","isNaN","pr","FormControl","InputLabel","htmlFor","shrink","Select","onChange","e","IconComponent","inputProps","readOnly","TextField","colorError","colorSuccess","pointerEvents","MDInput","MDInputRoot","OthelloEdit","icono","etiqueta","iconoposicion","etiquetaposicion","rows","autocompletado","focused","onhandlePress","initeditexterno","setiniteditexterno","maxlength","onlinevalue","setonlinevalue","React","decoraicono","InputAdornment","decoraetiqueta","decoracioninicio","decoracionfin","multilineafinal","MaxChars","autoComplete","onBlur","onlostfocus","onKeyPress","maxLength","startAdornment","endAdornment","onFocus","autoFocus","ImageUpload","ocultarBotonesProps","marginImage","connombrefichero","file","setfile","defaultAvatar","defaultImage","imagePreviewUrl","imageUrl","setimageUrl","fileInput","createRef","handleClick","preventDefault","current","imageshow","reader","FileReader","fileread","files","onloadend","readAsDataURL","m","className","replace","test","first","second","last","toUpperCase","primaryColor","warningColor","dangerColor","successColor","infoColor","roseColor","grayColor","blackColor","whiteColor","primaryBoxShadow","infoBoxShadow","successBoxShadow","warningBoxShadow","dangerBoxShadow","roseBoxShadow","fontStyle","textShadow","letterSpacing","wordBreak","lineBreak","cardTitle","hoverCardStyle","cardHover","cardHeaderHover","cardHoverUnder","cardIconTitle","cardProductTitle","cardCategory","cardProductDesciprion","stats","productStats","successText","upArrowCardCategory","underChartIcons","price","OthelloTitulo","textOverflow","Oficina","idRol","setLoading","setid_oficina","dataoficina","setdataoficina","getDataPage","fetch","response","json","data","id_Oficina","catch","grabarDataPage","formulario","document","getElementById","FormData","jsonData","JSON","stringify","descripcion","dISPLAYNAME","eMAIL","mAILHOST","mailUser","mailPass","puerto","sSL","append","method","body","deshacerDataPage","VolcarOficina","headers","VolcarOficinaConUpdate","ofi","CircularProgress","Grid","nombreOficina","urlWeb","urlWebCorporativa","urlWebReservas","id_Interfaz","tipoOfi","eMail","telefono","lon","imgPortada","imgPortadaMultiSize","baja","certificadoIOS","googleplay","applestore","agradecimientos","equipo","about","privacidad","cancelacionReservas","condicionesReservas","cookiesReservas","privacidadReservas","backColor","darkBackColor","id_Analitycs","foreColor","analyticsATM","diasDeleteAnalyticsATM","codigo_Analitycs","conLectorQR","conMapa","conAcercaDe","limiteProximidad","areaPrivada","horaInicioPush","horaFinPush","conAgendaDestacada","diasDeleteNews","quickBt1","quickBt2","quickBt3","quickBt4","conQuickPromo","conPromosDestacada","conPromoSoloRegistrados","checkin","mail_Checkin","popUpMaps","distanciaPopUpsMaps","regionMaps","regionZoomMaps","regionTipoMaps","tipoMapRutas","comoLLegarPersonalizado","colorPintadoRutas","nombreIncidencias","mail_Incidencias","mensajeIncidencia","privacidadIncidencia","linkTwitter","linkFacebook","linkInstagram","linkYoutube","rss","titleSEO","descripcionSEO","keywordsSEO","imagePatrocinador","addButtonProps","round","changeButtonProps","removeButtonProps","imageBannerReservas","configEMailNotificaData","displayname","email","mailhost","ssl","fucCliente","terminalCuenta","entorno","moneda","urlComercio","urlComercioAfterPay","licenciaRedSys","cryptografia","passwordComet","modoSeguroComet","secretoCompartidoAddOn","updatear","version","bdversion","bdname","NombreOficina","alerta","extras","InsertDriveFile","CustomTable","tableData","hover","tableHeaderColor","Table","undefined","TableBody","TableRow","TableCell","total","c","colSpan","colspan","amount","purchase","col","colorsColls","coloredColls","paginationSize","Context","MDPagination","contexto","MDPaginationItemRoot","DataTableHeadCell","sorted","align","py","DataTableBodyCell","noBorder","DataTable","entriesPerPage","canSearch","showTotalEntries","table","pagination","isSorted","noEndBorder","showTotalYPaginacion","defaultValue","entries","toString","columns","useMemo","tableInstance","useTable","initialState","pageIndex","autoResetPage","autoResetSortBy","autoResetGlobalFilter","useGlobalFilter","useSortBy","usePagination","getTableProps","getTableBodyProps","headerGroups","prepareRow","page","pageOptions","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","setGlobalFilter","pageSize","globalFilter","entriesEnd","renderPagination","Number","customizedPageOptions","search","setSearch","onSearchChange","useAsyncDebounce","setSortedValue","column","isSortedDesc","entriesStart","getwidthdefinidouser","colindex","widthuser","TableContainer","placeholder","headerGroup","getHeaderGroupProps","getHeaderProps","getSortByToggleProps","sortable","render","row","getRowProps","cells","cell","getCellProps","Autocomplete","disableClearable","options","newValue","localStorage","setItem","renderInput","params","min","max","OthelloCheckBox","checkedstate","setcheckedstate","estadofinal","Checkbox","checkedIcon","moment","require","OthelloGrid","gridmode","datasource","datacabeceros","datashow","datasourcefields","onRefresh","textNuevo","questionDelete","permitefiltrar","tamanopagina","verpaginaciontop","verpaginacionbottom","onBotonExtraClick","onSelectAllCheckbox","datosAdicionales","itemdelete","setitemdelete","indexdelete","setindexdelete","indexPage","rowsPage","orderDesc","columnaOrder","valuesfiltro","handleDelete","some","textodelete","valores","recipient","tipofield","colorfinal","onSetPropertiesButtonRow","onclick","isValidElement","tabIndex","checkdisabled","campo","eventclick","valor_Aux","Object","field","datafield","selected","timefinal","format","toFixed","getDataTable","columnas","Array","isArray","nuevoitem","Header","accessor","itemdatasource","sortMethod","a","b","aaa","bbb","Filter","filter","Cell","filterable","getColumnas","botonadd","textonew","getBotonNuevo","botonrefresh","getBotonRefresh","botonesExtras","getBotonesExtras","TableFinal","getItem","pagesize","getTable","checkSelectAll","dataoficinas","setdataoficinas","navigate","useNavigate","editGridDataPage","nomOficina","deleteGridDataPage","array","splice","datos","datasourceFields","renderFormOficinas","Regiones","tipooficina","setstatePage","dataregiones","setdataregiones","dataeditando","setdataeditando","indexeditando","setindexeditando","formData","nuevoDataPage","cancelarDataPage","id_Region","busqueda","regiones","cabeceros","valoreshow","renderSearch","edicion","region","Nombre","nombreRegion","visible","ordenVisual","image","imageAux","renderInsertEdit","Idiomas","dataidiomas","setdataidiomas","idioma","idiomasbusqueda","idiomasedicion","renderIdiomaInsertEdit","Areas","stateSubPage","setstateSubPage","dataareas","setdataareas","datasubareas","setdatasubareas","idiomas","setidiomas","tipoareaselected","settipoareaselected","esrutaselected","setesrutaselected","datasubareaeditando","setdatasubareaeditando","indexsubareaeditando","setindexsubareaeditando","residiomas","onChangeTipoArea","object","onChangeEsRuta","grabarDataPageSubArea","nuevoDataPageSubArea","id_area","id_Area","getDataVaciaSubArea","cancelarDataPageSubArea","deshacerDataPageSubArea","tieneSubAreas","tipoArea","esRuta","editGridDataPageSubArea","deleteGridDataPageSubArea","id_SubArea","areas","area","cod_Area","infosubareas","busquedaSubAreas","subareas","renderSearchSubAreas","subarea","wayPoints","renderInsertEditSubArea","renderOpcionesSubAreas","ordenadoPor","permiteOpiniones","permiteNotificar","tieneOpcionTodas","url","modoRuta","metodoRuta","visibleHomeWeb","Incidencias","loadingtipos","setloadingtipos","dataincidencias","setdataincidencias","dataincidenciastipos","setdataincidenciastipos","datatipoeditando","setdatatipoeditando","indextipoeditando","setindextipoeditando","grabarDataPageTipo","nuevoDataPageTipo","cancelarDataPageTipo","deshacerDataPageTipo","editGridDataPageTipo","deleteGridDataPageTipo","id_TipoInci","id_Incidencia","onclickColumna","uri","foto","busquedaTipos","renderSearchTipos","edicionTipos","renderInsertEditTipos","Streetview","InsertPhoto","OthelloTimer","showformato","abrecalendario","calendas","timervalue","settimervalue","handleOnChange","getDataFormateado","dato","timeRetorno","toDateString","toLocaleTimeString","renderWeekPickerDay","date","selectedDates","pickersDayProps","highlightedDays","matchedStyles","reduce","v","isSameDay","PickersDay","timeshow","renderdayfinal","colorrgb","renderDay","LocalizationProvider","dateAdapter","AdapterDateFns","locale","esLocale","TimePicker","mask","DatePicker","helperText","disableOpenPicker","TramosReservas","datatramos","setdatatramos","datainstalaciones","setdatainstalaciones","diasCerrando","setdiasCerrando","getDataPageIniciales","restramos","id_Instalacion","grabarDataPageTramo","diasCerrado","nuevoDataPageTramo","cancelarDataPageTramo","deshacerDataPageTramo","editGridDataPageTramo","deleteGridDataPageTramo","id_Tramo","onChangeDiaCheckBox","dias","indexOf","busquedaTramos","renderSearchTramos","edicionTramos","Tramo","codigo","horaIni","horaFin","finAcceso","pax","maxPaxReservar","precio","precioReducido","conPrecioCero","infoPrecios","renderInsertEditTramos","InstalacionReservas","setdata","opcnominaciones","setopcnominaciones","opcionesNominacion","onChangeOpcionNominacionCheckBox","nominaciones","Instalacion","abierto","activo","tipoVisualizacion","diasAntelacion","tramosDia","minutosCancelar","direccion","nominarPax","infoUso","activaPasarela","iD_DriverPasarela","pagoContadoReservas","Encuestas","stateQuestionPage","setstateQuestionPage","dataenc","setdataenc","dataquestion","setdataquestion","urlencuesta","seturlencuesta","dataquestioneditando","setdataquestioneditando","indexquestioneditando","setindexquestioneditando","grabarDataPageQuestion","nuevoDataPageQuestion","id_Encuesta","getDataVaciaQuestion","cancelarDataPageQuestion","deshacerDataPageQuestion","tieneQuestions","editGridDataPageQuestion","deleteGridDataPageQuestion","idofi","idencuesta","idquestion","id_Question","encuestas","enc","nombre","infoQuestions","busquedaQuestions","Questions","renderSearchQuestions","Question","pregunta","opciones","infoInicial","infoAdicional","renderInsertEditQuestion","renderOpcionesQuestions","tipoValidacion","tipoEncuesta","enviaMailFinEncuesta","textoFinEncuesta","getUrlEncuesta","OthelloWaiting","font","Card","OthelloCard","count","searching","iconofooter","footer","bigtitulo","categoria","vermas","smallmode","smallfootermode","btvermas","percentage","OthelloPrimary","EncuestasEstadistica","loadingFiltros","setLoadingFiltros","filtros","setFiltros","setData","questionOpen","setQuestionOpen","onChangeEncuesta","nuevo","tipobusqueda","onChangeTipo","OnBuscarClick","renderInfoDetallePregunta","question","tiposinpuntuacion","resdata","resultados","resultexto","resvalor","puntuacion","respuestas","renderInfoPreguntaOpen","totalRespuestas","renderInfoPreguntas","preguntas","margintTop","valMedia","justIcon","onClickCollapse","desde","hasta","paramsbsuqueda","id_encuestadefault","infoestadisticas","totalEncuestas","totalPreguntas","EncuestasEstadisticaFiltradas","resultadosFiltros","setResultadosFiltros","filtrospreguntas","setFiltrosPreguntas","OnBuscarSegunFiltrosRespuestasClick","formulariofiltros","formDatafiltros","objectfitros","id_question","filtroestadisticas","arrayIni","z","renderCombosPreguntas","infoEstadisticas","totalCumplenFiltros","NavPills","horizontal","alignCenter","setactive","tabButtons","Tabs","onChangeIndexPill","indicatorColor","centered","scrollButtons","allowScrollButtonsMobile","tabIcon","Tab","tabButton","wrapped","tabContent","axis","onChangeIndex","tabsGrid","contentGrid","Pois","currenturl","setcurrenturl","loadingediting","setloadingediting","modoagenda","setmodoagenda","areaagenda","setareaagenda","statePageImagenExtra","setstatePageImagenExtra","statePageAccion","setstatePageAccion","statePagePromocion","setstatePagePromocion","datapois","setdatapois","idiomascombo","setidiomascombo","setregiones","setareas","areascombo","setareascombo","setsubareas","tiposactividad","settiposactividad","areaselected","setareaselected","tipoactividadselected","settipoactividadselected","dataeditandoImagenExtra","setdataeditandoImagenExtra","indexeditandoImagenExtra","setindexeditandoImagenExtra","dataeditandoAccion","setdataeditandoAccion","indexeditandoAccion","setindexeditandoAccion","dataeditandoPromocion","setdataeditandoPromocion","indexeditandoPromocion","setindexeditandoPromocion","diasVisualizando","setdiasVisualizando","EsAgenda","getDataPoisPage","esagenda","resactividades","iD_Actividad","idiomasCombo","resregiones","resareas","areasCombo","finalareaagenda","ressubareas","jsonFinal","jsonDataForm","getCurrentDataFormulario","aux","acciones","imagenesExtras","promociones","diasVisualizar","onChangeArea","latStringAux","lonStringAux","diasvisu","grabarDataPageImagenExtra","editandofinal","imagenesfinal","nuevoDataPageImagenExtra","id_Poi","getDataVaciaImagenExtra","cancelarDataPageImagenExtra","deshacerDataPageImagenExtra","grabarDataPageAccion","nuevoDataPageAccion","getDataVaciaAccion","cancelarDataPageAccion","deshacerDataPageAccion","onChangeTipoActividad","grabarDataPagePromocion","nuevoDataPagePromocion","getDataVaciaPromocion","cancelarDataPagePromocion","deshacerDataPagePromocion","editGridDataPageImagenExtra","deleteGridDataPageImagenExtra","id_Extra_Img","datafinal","editGridDataPageAccion","activityType","deleteGridDataPageAccion","id_PoiAction","editGridDataPagePromocion","deleteGridDataPagePromocion","id_Promocion","getLabelUri","TipoActividad","pois","omitir","renderSearchPOIS","datosGeneralesPoi","poi","subareasshow","areaactual","ventaActiva","id_poi","assign","setIdPoiTiendaSelected","afiliado","id_Maestro","latFin","lonFin","footNote","description","descripcionLarga","notificacion","fNotificacion","notificado","idpoi","onLimpiarFechaNotificado","visualizaNotifica","fInicioVisualizar","fFinalVisualizar","horario","franjaPrecio","tipoEntrega","precioEnvioGratis","precioPortes","precioMinimoPedido","eMailNotificaciones","imageUrlBig","renderInsertEditDatosGenerales","datosImagenesExtraPoi","imagenes","busquedaImagenes","renderSearchImagenesExtra","edicionImagenes","imagenextra","renderInsertEditImagenExtra","renderOpcionesImagenesExtra","datosAccionesPoi","busquedaacciones","renderSearchAcciones","edicionacciones","accion","renderInsertEditAccion","renderOpcionesAcciones","datosPromocionesPoi","promos","busquedaPromos","renderSearchPromociones","edicionPromos","promo","codigoPromo","fechValido","activada","codigoAuto","pinCupon","urlExterna","infoAdd","imageUrlPromo","renderInsertEditPromocion","renderOpcionesPromociones","Info","Collections","TouchApp","LocalOffer","renderInsertEditPOIS","Usuarios","datausuarios","setdatausuarios","id_Usuario","renderFormUsuarios","Chartist","Interpolation","cardinal","tension","DashboardMain","dataIncidencias","setdataIncidencias","dataNotificaciones","setdataNotificaciones","dataanalitycs","setdataanalitycs","masfichas","setmasfichas","masareas","setmasareas","masimagenes","setmasimagenes","pendientesNotificar","setpendientesNotificar","notificarHoy","setnotificarHoy","franja","setfranja","ultimasIncidencias","ultimasNotificaciones","getDatosAnalitycsOficina","LoadingAgain","MasFichas","MasAreas","MasImagenes","onChangeFranja","renderUltimasIncidenciasRecibidas","notificaciones","renderUltimasNotificaciones","Analitycs","datosGlobales","numerototalaccesos","numerototaldistintos","numerototalaccesosandroid","numerototalaccesosIos","totalcuentascreadasandroid","totalcuentascreadasIos","accesocupones","cuponescanjeados","fichasVisitadasFinal","fichasvistas","datosFichas","imagenesVisitadasFinal","imagenesvistas","datosImagenes","areasVisitadasFinal","datosAreas","justify","renderAnalitycs","Pedido","idpedido","pedido","setPedido","lineas","nomArticulo","alignSelf","cantidad","id_Pedido","fechaPedidoString","horaPedidoString","nombreApellidos","dni","fechaEntregaString","horaEntregaString","observaciones","direccionEnvio","codPostalEnvio","poblacionEnvio","paisEnvio","idusuario","estadoactual","setEstadoActual","CambioEstado","nuevoestado","DashTienda","userID","dataPedidos","setdataPedidos","pedidosPendientes","setpedidosPendientes","pedidosHoy","setpedidosHoy","articulosStockBajo","setarticulosStockBajo","dataArticulosStock","setdataArticulosStock","itemmodal","setitemmodal","modomodal","setmodomodal","nombretienda","setnombretienda","getDataNombreTienda","ultimosPedidos","articulosStock","othelloModalResul","pedidos","CheckCircleOutlined","Visibility","renderUltimosPedidos","articulosstock","datacategorias","setdatacategorias","id_Categoria","categoriaes","destacada","Marcas","datamarcas","setdatamarcas","id_Marca","marcas","marca","banner","Pedidos","datapedidos","setdatapedidos","pedidosfinal","Articulos","statePageDefinicion","setstatePageDefinicion","datarticulos","setdatarticulos","categorias","setcategorias","setmarcas","dataeditandoDefinicion","setdataeditandoDefinicion","indexeditandoDefinicion","setindexeditandoDefinicion","rescategorias","resmarcas","grabarDataPageDefinicion","definiciones","nuevoDataPageDefinicion","id_Articulo","getDataVaciaDefinicion","cancelarDataPageDefinicion","deshacerDataPageDefinicion","idart","editGridDataPageDefinicion","deleteGridDataPageDefinicion","idartdef","id_Art_Def","articulos","renderSearchArticulos","articulo","datosGenerales","umbralExistencias","alergenos","precioBase","precioRebajado","cantMaxVenta","sku","peso","tieneValoraciones","dimensiones","envioGratis","enPromocion","verStockRestante","relevante","datosDefiniciones","busquedaDefiniciones","renderSearchDefiniciones","edicionDefinicion","definicion","renderInsertEditDefinicion","renderOpcionesDefiniciones","datosImagenesExtraarticulo","Toc","renderInsertEditArticulos","artname","Importacion","coordenadasfinal","setcoordenadasfinal","resul","OthelloFooter","Avatar","MDAvatar","MDAvatarRoot","Reservar","loginmodoreserva","loginapps","idUser","paso","setpaso","instalacion","setinstalacion","fecha","setfecha","tramo","settramo","plazas","setplazas","plazasReducidas","setplazasReducidas","plazasGratuitas","setplazasGratuitas","nominacionPax","setnominacionPax","infopago","setinfopago","tramosdispo","settramosdispo","setpagando","errornominacion","seterrornominacion","getDataPageInstalacion","getTituloPaso","pasoactual","getfechaformateada","InstalacionTieneSeleccionPax","pasofinal","InstalacionTieneNominacionDePax","getTextoInstalacion","nuevafecha","getDay","getDate","getMonth","getUTCFullYear","InstalacionVisualiazacionGrafica","pasoAtras","onClickFechaReserva","id_instalacion","getDispoTramosInstalacion","onClickTramoReserva","tramoselected","TramoSelectedPermiteMultiSeleccion","onClickTramoContinuar","grabarReserva","ok","onResultReserva","realizarPago","renderInstalacion","renderSeleccionFecha","i","diainicio","setDate","day","dayabiertofecha","todosTramosCerrado","diaentero","dialasemans","diasTodosTramosCerrados","renderSeleccionFechas","fechasfinal","datafecha","diaactual","spacing","renderSelecionTramoGrafico","rowindex","cantidadDisponible","borderLeft","renderSelecionTramos","botonContinuar","finales","linea","rowfinal","colfinal","maxwidth","disable","infopax","infoprecio","horainistring","horafinstring","renderSelecionTramo","renderSeleccionPlazas","maxplaza","variosPrecios","valplaza","valplazaOtras","infoprecios","maxplazas","cbplaza","cbplazaReducidas","cbplazasGratuitas","estandar","reducidas","gratuitas","TotalPlazas","pasoSiguiente","onClickPlazasReserva","renderPax","indexpax","opcionesActivas","idpax","plazaname","renderNominarPax","paxNomina","dtanomi","exception","onClickNominadasPlazasReserva","renderDatosReserva","user","precioReducidas","Normales","Reducidas","Gratuitas","TotalPrecio","InfoAdicionalPlazasPrecios","precioTramo","ids","latstring","lonstring","apellido","numSocio","renderPagarReserva","pago","formulariopago","pagocontado","id_Rol","urlokcontado","driver","urlDriver","runat","ds_SignatureVersionGold","ds_MerchantParametersGold","ds_SignatureGold","urlParametrosComet","urlParametrosAddOn","urlParametrosCecabank","encType","paso1","paso2","paso3","paso4","paso5","paso6","paso7","instalaciones","imagebannerreservas","renderPasosReserva","Perfil","loadingOficinas","setloadingOficinas","loadingArchivos","setloadingArchivos","setloadingAccesosAreasPois","loadingRservas","setloadingRservas","id_usuario","setid_usuario","statePageOficina","setstatePageOficina","statePageArchivos","setstatePageArchivos","datausuario","setdatausuario","dataAccesosAreasPois","setdataAccesosAreasPois","dataArchivos","setdataArchivos","dataReservas","setdataReservas","oficinas","setoficinas","setpois","filtroreserva","setfiltroreserva","filtrofranja","setfiltrofranja","filtroestado","setfiltroestado","dataeditandoOficina","setdataeditandoOficina","indexeditandoOficina","setindexeditandoOficina","dataeditandoArchivo","setdataeditandoArchivo","indexeditandoArchivo","setindexeditandoArchivo","erroralert","seterroralert","idselected","URLSearchParams","get","finalvisua","finalestado","getDataPageOficinas","getDataPageArchivos","getDataPageReservas","actualizarCodigoCliente","grabarPassDataPage","ruta","actualizarPagadaConfirmadadReserva","EnviarMailReserva","deleteGridDataReservas","resoficinas","grabarDataPageOficina","nuevoDataPageOficina","getDataVaciaOficina","cancelarDataPageOficina","grabarDataPageArchivos","dataArchivosfinal","nuevoDataPageArchivo","getDataVacioArchivo","cancelarDataPageArchivos","id_usu","filtrores","filtrofran","filtroest","visualizareserva","onClickBuscarReservas","finalfranja","visua","onClickImprimirReservas","visuafin","franjafin","reportmode","listado","datosbusqueda","callGetDatosReport","callbackEnvioListadoMail","idreport","frameElement","contentType","print","selectedFormat","blob","saveAs","toLowerCase","ImprimirListado","editGridDataPageOficina","modoAreaPoi","respois","id_UsuarioOV","deleteGridDataPageOficina","grabarDataAccesosAreasPois","id_PoiArea","nomAreaPoi","deleteGridDataAccesosAreasPois","usuarioOVSeleccionado","idPoiAreaSeleccionado","deleteGridDataArchivo","id_MiArchivo","Id_Oficina","Id_Usuario","localizador","renderOpcionesAccesosAreasPois","acceso","accesosAreasPois","busquedaAccesos","accesos","renderSearchAccesosAreasPois","renderInsertEditOficinas","gestionReservas","gestionEncuestas","nomiacion","dataNominacionResult","resnomiacion","apellidos","sexo","edad","club","procedencia","talla","numRegistroSanitario","fechastring","fechareservastring","pagada","pagado","infoAdicionalPlazasPrecios","renderModalMasInfoReserva","MiPerfilFormulario","niF_CIF","usuario","confirmado","MisAccesos","busquedaOficinas","renderSearchOficinas","edicionOficinas","renderOpcionesOficinas","MisReservas","Payment","Email","renderSearchReservas","ReservarCliente","MisArchivos","archivos","busquedaArchivos","deleteEvento","renderSearchArchivos","edicionArchivos","archivo","renderInsertEditArchivo","renderOpcionesArchivos","ActivacionCliente","renderActivacionCliente","NombreUsuario","Face","Dns","Assignment","Activacion","OthelloVersionWeb","contextValue","useClearBrowserCache","latestVersion","LoginPage","initpage","setInitPage","setVersion","submitted","setSubmitted","setError","errordata","setErrorData","errorliteral","setErrorLiteral","errorinfo","exceptionmessage","exceptionmessagetraducible","LinearProgress","MDProgress","MDProgressRoot","LoginPageReservas","localidades","setlocalidades","seturl","getLocalidadesReserva","getVersion","reslocalidades","urlweb","Peticion","idpeticion","peticion","setpeticion","establecimiento","Peticiones","datapeticiones","setdatapeticiones","id_Peticion","peticiones","ReservaFinPasarela","setid","setsign","resultadopago","setresultadopago","dt","sign","pagoOk","resultadoPago","renderResultadoPago","CondicionesInfoPage","setinfo","settipo","tipoinfo","has","rescargando","infoshow","Helmet","DashboardLayout","Badge","colorProp","paddings","fontSizeValue","borderValue","sizeProp","widthValue","heightValue","indicatorStyles","MDBadge","MDBadgeRoot","Breadcrumbs","noWrap","NotificationItem","navbarRow","isMini","navbarIconButton","navbarDesktopMenu","navbarMobileMenu","DashboardNavbar","absolute","rutasactual","oficina","navbarType","setNavbarType","openMenu","setOpenMenu","id_msj_web","setIdMsjWeb","handleTransparentNavbar","setTransparentNavbar","scrollY","handleCloseMenu","iconsStyle","dialogmensaje","numnoti","getTituloRuta","rutas","routename","namefinal","ruteexit","AppBar","backdropFilter","navbar","Toolbar","navbarContainer","IconButton","getTitleRutaShowed","CurrentOfi","substring","getTitleOficina","aria-controls","aria-haspopup","badgeContent","anchorReference","anchorOrigin","Boolean","LayaoutAdmin","onMouseEnter","setOnMouseEnter","documentElement","scrollTop","scrollingElement","nameUsuario","setNameUsuario","setroutes","idoficinaselected","setidoficinaselected","setoficina","setidRol","setidUser","setareaAgenda","setconincidencia","setconareaprivada","setidoficinareserva","setloginmodoreserva","setloginapps","settipooficina","idpoitienda","setidpoitienda","setgestionreservas","setgestionencuestas","nameoficina","userconected","areaAgenda","conincidencia","conareaprivada","idoficinareserva","gestionreservas","gestionencuestas","getCurrentRoute","getHaySessionUsuario","nameUser","inicio","nuevaruta","dashRoutes","path","getRoutesTienda","imageUsuario","getCurrentRouteMain","ThemeProvider","CssBaseline","logo","onMouseLeave","getRoutes","allRoutes","element","DefaultNavbarLink","openHandler","closeHandler","collapseStatus","DefaultNavbarCategory","DefaultNavbarMenu","placement","close","setAnchor","closeMenu","Popper","popperRef","TransitionProps","Grow","transformOrigin","PagesMenu","mobileMenu","renderPagesMenuRoute","routeName","collapseKey","renderMenuContent","orientation","AuthenticationMenu","renderAuthenticationMenuRoute","template","setMenu","gutterBottom","ApplicationsMenu","renderApplicationsMenuRoute","EcommerceMenu","renderEcommerceMenuRoute","DocsMenu","renderDocsMenuRoute","DefaultNavbarMobile","getBoundingClientRect","handleSepOpenCollapse","MenuListProps","maxHeight","DefaultNavbar","pagesMenu","setPagesMenu","authenticationMenu","setAuthenticationMenu","ecommerceMenu","setEcommerceMenu","applicationsMenu","setApplicationsMenu","docsMenu","setDocsMenu","mobileNavbar","setMobileNavbar","mobileView","setMobileView","closePagesMenu","closeAuthenticationMenu","closeEcommerceMenu","closeApplicationsMenu","closeDocsMenu","displayMobileNavbar","Container","transparentColor","parentNode","PageLayout","IllustrationLayout","header","illustration","xlsize","heightauto","OthelloCookieConsent","cookieName","expires","overlay","buttonStyle","buttonText","ErrorPage","RememberPass","setsubmitted","seterror","modoapps","dashRoutesAuth","LayoutAuth","resetpass","login","lock","bgImage","RegisterPage","setchecked","currentIndex","newChecked","handleToggle","LoginPageApps","LayoutAuthApps","register","reservas","useStyles","makeStyles","OthelloEditComboBox","othellocolumnas","indexcampoBusqueda","setIndexCampoBusqueda","valueselected","setValueSelected","visibefield","setVisibeField","itemsEditCombo","setItemsEditCombo","setEvento","ActualizarValueSelected","DeleteItems","NuevosItems","CambioItems","ItemsComboDintintos","handleKeyDown","selectionStart","newindex","handleOnFocusOut","PopperComponent","getOptionLabel","renderOption","onKeyDown","Fragment","fieldliteralname","FormularioEncuesta","setidofi","setidenc","preselecccion","setpreseleccion","encuesta","setencuesta","guardandoencuesta","setguardandoencuesta","encuestafinalizada","setencuestafinalizada","alertaopcion","setalertaopcion","identificador","idsplit","preselec","idenc","preselected","formulariovalida","SendEncuesta","formdata","tipovalidacion","grabada","getPreguntaSegunTipo","opcionesCombo","rowsTextoLibre","autoselecteditem","provincias","nacionalidades","cargando","alertafinal","combofinal","visibilidad","valorpreselected","renderPreguntasEncuestas","reload","renderFormularioEncuesta","dashRoutesFormularios","LayoutFormularios","FormularioJuego","setHeight","mapaopen","setmapaopen","pistasopen","setpistasopen","pistashowed","setpistashowed","currentstepiniciojuego","setcurrentstepiniciojuego","modoinfoinicial","setmodoinfoinicial","modoinforespuestaok","setmodoinforespuestaok","currentstep","setcurrentstep","stateModalReiniciar","setstateModalReiniciar","innerHeight","NextStepInicioJuego","NextQuestion","BotonMapa","renderCabeceroOpcionesJuego","PistasItem","renderInfoInicialPregunta","pistaActual","renderMapaUbicacion","renderPreguntasPistas","infoPreguntaPista","renderZonaContestarPreguntas","respuesta","ResponderPregunta","modalReinicia","ejemplo","back4","textoShow","renderInicioJuego","pasoActual","renderPreguntasJuego","LayoutJuego","dashRoutesCondiciones","LayoutCondicionesReservar","OthelloReportViewer","origin","dataurl","reportUrl","ko","observable","requestOptions","invokeAction","data-bind","applyBindings","this","refs","viewer","cleanNode","Component","CPageReportViewer","setListado","App","hist","createBrowserHistory","navigation","isLocalhost","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","console","log","resources","en","translation","es","translationES","fr","it","de","i18n","use","initReactI18next","init","fallbackLng","keySeparator","interpolation","escapeValue","baseUrl","getElementsByTagName","getAttribute","rootElement","ReactDOM","basename","auto","fallback","URL","process","status","ready","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.31a7f937.chunk.js","sourcesContent":["/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n * The base colors for the Soft UI Dashboard PRO Material.\n * You can add new color using this file.\n * You can customized the colors for the entire Soft UI Dashboard PRO Material using thie file.\n */\n\nexport default {\n background: {\n default: \"#f0f2f5\",\n },\n\n text: {\n main: \"#7b809a\",\n focus: \"#7b809a\",\n },\n\n transparent: {\n main: \"transparent\",\n },\n\n white: {\n main: \"#ffffff\",\n focus: \"#ffffff\",\n },\n\n black: {\n light: \"#000000\",\n main: \"#000000\",\n focus: \"#000000\",\n },\n\n primary: {\n main: \"#e91e63\",\n focus: \"#e91e63\",\n },\n\n secondary: {\n main: \"#7b809a\",\n focus: \"#8f93a9\",\n },\n\n info: {\n main: \"#1A73E8\",\n focus: \"#1662C4\",\n },\n\n success: {\n main: \"#4CAF50\",\n focus: \"#67bb6a\",\n },\n\n warning: {\n main: \"#fb8c00\",\n focus: \"#fc9d26\",\n },\n\n error: {\n main: \"#F44335\",\n focus: \"#f65f53\",\n },\n\n light: {\n main: \"#f0f2f5\",\n focus: \"#f0f2f5\",\n },\n\n dark: {\n main: \"#344767\",\n focus: \"#2c3c58\",\n },\n\n grey: {\n 100: \"#f8f9fa\",\n 200: \"#f0f2f5\",\n 300: \"#dee2e6\",\n 400: \"#ced4da\",\n 500: \"#adb5bd\",\n 600: \"#6c757d\",\n 700: \"#495057\",\n 800: \"#343a40\",\n 900: \"#212529\",\n },\n\n gradients: {\n primary: {\n main: \"#EC407A\",\n state: \"#D81B60\",\n },\n\n secondary: {\n main: \"#747b8a\",\n state: \"#495361\",\n },\n\n info: {\n main: \"#49a3f1\",\n state: \"#1A73E8\",\n },\n\n success: {\n main: \"#66BB6A\",\n state: \"#43A047\",\n },\n\n warning: {\n main: \"#FFA726\",\n state: \"#FB8C00\",\n },\n\n error: {\n main: \"#EF5350\",\n state: \"#E53935\",\n },\n\n light: {\n main: \"#EBEFF4\",\n state: \"#CED4DA\",\n },\n\n dark: {\n main: \"#42424a\",\n state: \"#191919\",\n },\n },\n\n socialMediaColors: {\n facebook: {\n main: \"#3b5998\",\n dark: \"#344e86\",\n },\n\n twitter: {\n main: \"#55acee\",\n dark: \"#3ea1ec\",\n },\n\n instagram: {\n main: \"#125688\",\n dark: \"#0e456d\",\n },\n\n linkedin: {\n main: \"#0077b5\",\n dark: \"#00669c\",\n },\n\n pinterest: {\n main: \"#cc2127\",\n dark: \"#b21d22\",\n },\n\n youtube: {\n main: \"#e52d27\",\n dark: \"#d41f1a\",\n },\n\n vimeo: {\n main: \"#1ab7ea\",\n dark: \"#13a3d2\",\n },\n\n slack: {\n main: \"#3aaf85\",\n dark: \"#329874\",\n },\n\n dribbble: {\n main: \"#ea4c89\",\n dark: \"#e73177\",\n },\n\n github: {\n main: \"#24292e\",\n dark: \"#171a1d\",\n },\n\n reddit: {\n main: \"#ff4500\",\n dark: \"#e03d00\",\n },\n\n tumblr: {\n main: \"#35465c\",\n dark: \"#2a3749\",\n },\n millenium: {\n main: \"#9c27b0\",\n dark: \"#ab47bc\",\n }\n },\n\n badgeColors: {\n primary: {\n background: \"#f8b3ca\",\n text: \"#cc084b\",\n },\n\n secondary: {\n background: \"#d7d9e1\",\n text: \"#6c757d\",\n },\n\n info: {\n background: \"#aecef7\",\n text: \"#095bc6\",\n },\n\n success: {\n background: \"#bce2be\",\n text: \"#339537\",\n },\n\n warning: {\n background: \"#ffd59f\",\n text: \"#c87000\",\n },\n\n error: {\n background: \"#fcd3d0\",\n text: \"#f61200\",\n },\n\n light: {\n background: \"#ffffff\",\n text: \"#c7d3de\",\n },\n\n dark: {\n background: \"#8097bf\",\n text: \"#1e2e4a\",\n },\n },\n\n coloredShadows: {\n primary: \"#e91e62\",\n secondary: \"#110e0e\",\n info: \"#00bbd4\",\n success: \"#4caf4f\",\n warning: \"#ff9900\",\n error: \"#f44336\",\n light: \"#adb5bd\",\n dark: \"#404040\",\n },\n\n inputBorderColor: \"#d2d6da\",\n\n tabs: {\n indicator: { boxShadow: \"#ddd\" },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n * The base breakpoints for the Soft UI Dashboard PRO Material.\n * You can add new breakpoints using this file.\n * You can customized the breakpoints for the entire Soft UI Dashboard PRO Material using thie file.\n */\n\nexport default {\n values: {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n The pxToRem() function helps you to convert a px unit into a rem unit, \n */\n\nfunction pxToRem(number, baseNumber = 16) {\n return `${number / baseNumber}rem`;\n}\n\nexport default pxToRem;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n * The base typography styles for the Soft UI Dashboard PRO Material.\n * You can add new typography style using this file.\n * You can customized the typography styles for the entire Soft UI Dashboard PRO Material using thie file.\n */\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"./colors\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../functions/pxToRem\";\n\nconst { dark } = colors;\n\nconst baseProperties = {\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n fontWeightLighter: 100,\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 600,\n fontWeightBold: 700,\n fontSizeXXS: pxToRem(10.4),\n fontSizeXS: pxToRem(12),\n fontSizeSM: pxToRem(14),\n fontSizeMD: pxToRem(16),\n fontSizeLG: pxToRem(18),\n fontSizeXL: pxToRem(20),\n fontSize2XL: pxToRem(24),\n fontSize3XL: pxToRem(30),\n};\n\nconst baseHeadingProperties = {\n fontFamily: baseProperties.fontFamily,\n color: dark.main,\n fontWeight: baseProperties.fontWeightBold,\n};\n\nconst baseDisplayProperties = {\n fontFamily: baseProperties.fontFamily,\n color: dark.main,\n fontWeight: baseProperties.fontWeightLight,\n lineHeight: 1.2,\n};\n\nconst typography = {\n fontFamily: baseProperties.fontFamily,\n fontWeightLighter: baseProperties.fontWeightLighter,\n fontWeightLight: baseProperties.fontWeightLight,\n fontWeightRegular: baseProperties.fontWeightRegular,\n fontWeightMedium: baseProperties.fontWeightMedium,\n fontWeightBold: baseProperties.fontWeightBold,\n\n h1: {\n fontSize: pxToRem(48),\n lineHeight: 1.25,\n ...baseHeadingProperties,\n },\n\n h2: {\n fontSize: pxToRem(36),\n lineHeight: 1.3,\n ...baseHeadingProperties,\n },\n\n h3: {\n fontSize: pxToRem(30),\n lineHeight: 1.375,\n ...baseHeadingProperties,\n },\n\n h4: {\n fontSize: pxToRem(24),\n lineHeight: 1.375,\n ...baseHeadingProperties,\n },\n\n h5: {\n fontSize: pxToRem(20),\n lineHeight: 1.375,\n ...baseHeadingProperties,\n },\n\n h6: {\n fontSize: pxToRem(16),\n lineHeight: 1.625,\n ...baseHeadingProperties,\n },\n\n subtitle1: {\n fontFamily: baseProperties.fontFamily,\n fontSize: baseProperties.fontSizeXL,\n fontWeight: baseProperties.fontWeightLight,\n lineHeight: 1.625,\n },\n\n subtitle2: {\n fontFamily: baseProperties.fontFamily,\n fontSize: baseProperties.fontSizeMD,\n fontWeight: baseProperties.fontWeightLight,\n lineHeight: 1.6,\n },\n\n body1: {\n fontFamily: baseProperties.fontFamily,\n fontSize: baseProperties.fontSizeXL,\n fontWeight: baseProperties.fontWeightRegular,\n lineHeight: 1.625,\n },\n\n body2: {\n fontFamily: baseProperties.fontFamily,\n fontSize: baseProperties.fontSizeMD,\n fontWeight: baseProperties.fontWeightLight,\n lineHeight: 1.6,\n },\n\n button: {\n fontFamily: baseProperties.fontFamily,\n fontSize: baseProperties.fontSizeSM,\n fontWeight: baseProperties.fontWeightLight,\n lineHeight: 1.5,\n textTransform: \"uppercase\",\n },\n\n caption: {\n fontFamily: baseProperties.fontFamily,\n fontSize: baseProperties.fontSizeXS,\n fontWeight: baseProperties.fontWeightLight,\n lineHeight: 1.25,\n },\n\n overline: {\n fontFamily: baseProperties.fontFamily,\n },\n\n d1: {\n fontSize: pxToRem(80),\n ...baseDisplayProperties,\n },\n\n d2: {\n fontSize: pxToRem(72),\n ...baseDisplayProperties,\n },\n\n d3: {\n fontSize: pxToRem(64),\n ...baseDisplayProperties,\n },\n\n d4: {\n fontSize: pxToRem(56),\n ...baseDisplayProperties,\n },\n\n d5: {\n fontSize: pxToRem(48),\n ...baseDisplayProperties,\n },\n\n d6: {\n fontSize: pxToRem(40),\n ...baseDisplayProperties,\n },\n\n size: {\n xxs: baseProperties.fontSizeXXS,\n xs: baseProperties.fontSizeXS,\n sm: baseProperties.fontSizeSM,\n md: baseProperties.fontSizeMD,\n lg: baseProperties.fontSizeLG,\n xl: baseProperties.fontSizeXL,\n \"2xl\": baseProperties.fontSize2XL,\n \"3xl\": baseProperties.fontSize3XL,\n },\n\n lineHeight: {\n sm: 1.25,\n md: 1.5,\n lg: 2,\n },\n};\n\nexport default typography;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n The hexToRgb() function helps you to change the hex color code to rgb\n using chroma-js library.\n */\n\n// chroma-js is a library for all kinds of color conversions and color scales.\nimport chroma from \"chroma-js\";\n\nfunction hexToRgb(color) {\n return chroma(color).rgb().join(\", \");\n}\n\nexport default hexToRgb;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n The rgba() function helps you to create a rgba color code, it uses the hexToRgb() function\n to convert the hex code into rgb for using it inside the rgba color format.\n */\n\n// Material Dashboard 2 PRO React helper functions\nimport hexToRgb from \"./hexToRgb\";\n\nfunction rgba(color, opacity) {\n return `rgba(${hexToRgb(color)}, ${opacity})`;\n}\n\nexport default rgba;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n The boxShadow() function helps you to create a box shadow for an element\n */\n\n// Material Dashboard 2 PRO React helper functions\nimport rgba from \"./rgba\";\nimport pxToRem from \"./pxToRem\";\n\nfunction boxShadow(offset = [], radius = [], color, opacity, inset = \"\") {\n const [x, y] = offset;\n const [blur, spread] = radius;\n\n return `${inset} ${pxToRem(x)} ${pxToRem(y)} ${pxToRem(blur)} ${pxToRem(spread)} ${rgba(\n color,\n opacity\n )}`;\n}\n\nexport default boxShadow;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n * The base box-shadow styles for the Soft UI Dashboard PRO Material.\n * You can add new box-shadow using this file.\n * You can customized the box-shadow for the entire Soft UI Dashboard PRO Material using thie file.\n */\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"./colors\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport boxShadow from \"../functions/boxShadow\";\n\nconst { black, white, tabs, coloredShadows } = colors;\n\nexport default {\n xs: boxShadow([0, 2], [9, -5], black.main, 0.15),\n sm: boxShadow([0, 5], [10, 0], black.main, 0.12),\n md: `${boxShadow([0, 4], [6, -1], black.main, 0.1)}, ${boxShadow(\n [0, 2],\n [4, -1],\n black.main,\n 0.06\n )}`,\n lg: `${boxShadow([0, 10], [15, -3], black.main, 0.1)}, ${boxShadow(\n [0, 4],\n [6, -2],\n black.main,\n 0.05\n )}`,\n xl: `${boxShadow([0, 20], [25, -5], black.main, 0.1)}, ${boxShadow(\n [0, 10],\n [10, -5],\n black.main,\n 0.04\n )}`,\n xxl: boxShadow([0, 20], [27, 0], black.main, 0.05),\n inset: boxShadow([0, 1], [2, 0], black.main, 0.075, \"inset\"),\n colored: {\n primary: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.primary,\n 0.4\n )}`,\n secondary: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.secondary,\n 0.4\n )}`,\n info: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.info,\n 0.4\n )}`,\n success: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.success,\n 0.4\n )}`,\n warning: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.warning,\n 0.4\n )}`,\n error: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.error,\n 0.4\n )}`,\n light: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.light,\n 0.4\n )}`,\n dark: `${boxShadow([0, 4], [20, 0], black.main, 0.14)}, ${boxShadow(\n [0, 7],\n [10, -5],\n coloredShadows.dark,\n 0.4\n )}`,\n },\n\n navbarBoxShadow: `${boxShadow([0, 0], [1, 1], white.main, 0.9, \"inset\")}, ${boxShadow(\n [0, 20],\n [27, 0],\n black.main,\n 0.05\n )}`,\n sliderBoxShadow: {\n thumb: boxShadow([0, 1], [13, 0], black.main, 0.2),\n },\n tabsBoxShadow: {\n indicator: boxShadow([0, 1], [5, 1], tabs.indicator.boxShadow, 1),\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n * The base border styles for the Soft UI Dashboard PRO Material.\n * You can add new border width, border color or border radius using this file.\n * You can customized the borders value for the entire Soft UI Dashboard PRO Material using thie file.\n */\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"./colors\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../functions/pxToRem\";\n\nconst { grey } = colors;\n\nexport default {\n borderColor: grey[300],\n\n borderWidth: {\n 0: 0,\n 1: pxToRem(1),\n 2: pxToRem(2),\n 3: pxToRem(3),\n 4: pxToRem(4),\n 5: pxToRem(5),\n },\n\n borderRadius: {\n xs: pxToRem(1.6),\n sm: pxToRem(2),\n md: pxToRem(6),\n lg: pxToRem(8),\n xl: pxToRem(12),\n xxl: pxToRem(16),\n section: pxToRem(160),\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"./colors\";\n\nconst { info, dark } = colors;\n\nexport default {\n html: {\n scrollBehavior: \"smooth\",\n },\n \"*, *::before, *::after\": {\n margin: 0,\n padding: 0,\n },\n \"a, a:link, a:visited\": {\n textDecoration: \"none !important\",\n },\n \"a.link, .link, a.link:link, .link:link, a.link:visited, .link:visited\": {\n color: `${dark.main} !important`,\n transition: \"color 150ms ease-in !important\",\n },\n \"a.link:hover, .link:hover, a.link:focus, .link:focus\": {\n color: `${info.main} !important`,\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n/**\n The linearGradient() function helps you to create a linear gradient color background\n */\n\nfunction linearGradient(color, colorState, angle = 195) {\n return `linear-gradient(${angle}deg, ${color}, ${colorState})`;\n}\n\nexport default linearGradient;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../base/colors\";\nimport borders from \"../base/borders\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\nconst { white } = colors;\nconst { borderRadius } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n width: pxToRem(250),\n whiteSpace: \"nowrap\",\n border: \"none\",\n },\n\n paper: {\n width: pxToRem(250),\n backgroundColor: white.main,\n height: `calc(100vh - ${pxToRem(32)})`,\n margin: pxToRem(16),\n borderRadius: borderRadius.xl,\n border: \"none\",\n },\n\n paperAnchorDockedLeft: {\n borderRight: \"none\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\nimport boxShadows from \"../../base/boxShadows\";\n\n// Material Dashboard 2 PRO React Helper Function\nimport rgba from \"../../functions/rgba\";\n\nconst { black, white } = colors;\nconst { borderWidth, borderRadius } = borders;\nconst { md } = boxShadows;\n\nexport default {\n styleOverrides: {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n minWidth: 0,\n wordWrap: \"break-word\",\n backgroundColor: white.main,\n backgroundClip: \"border-box\",\n border: `${borderWidth[0]} solid ${rgba(black.main, 0.125)}`,\n borderRadius: borderRadius.xl,\n boxShadow: md,\n overflow: \"visible\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport borders from \"../../base/borders\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { borderRadius } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n borderRadius: borderRadius.xl,\n margin: `${pxToRem(16)} ${pxToRem(16)} 0`,\n },\n\n media: {\n width: \"auto\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nexport default {\n styleOverrides: {\n root: {\n marginTop: 0,\n marginBottom: 0,\n padding: `${pxToRem(8)} ${pxToRem(24)} ${pxToRem(24)}`,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport typography from \"../../base/typography\";\nimport borders from \"../../base/borders\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { fontWeightBold, size } = typography;\nconst { borderRadius } = borders;\n\nexport default {\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontSize: size.xs,\n fontWeight: fontWeightBold,\n borderRadius: borderRadius.lg,\n padding: `${pxToRem(6.302)} ${pxToRem(16.604)}`,\n lineHeight: 1.4,\n textAlign: \"center\",\n textTransform: \"uppercase\",\n userSelect: \"none\",\n backgroundSize: \"150% !important\",\n backgroundPositionX: \"25% !important\",\n transition: \"all 150ms ease-in\",\n\n \"&:disabled\": {\n pointerEvent: \"none\",\n opacity: 0.65,\n },\n\n \"& .material-icons\": {\n fontSize: pxToRem(15),\n marginTop: pxToRem(-2),\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\nimport typography from \"../../base/typography\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { white, text, info, secondary } = colors;\nconst { size } = typography;\n\nexport default {\n base: {\n backgroundColor: white.main,\n minHeight: pxToRem(37),\n color: text.main,\n padding: `${pxToRem(9)} ${pxToRem(24)}`,\n\n \"&:hover\": {\n backgroundColor: white.main,\n },\n\n \"&:active, &:active:focus, &:active:hover\": {\n opacity: 0.85,\n },\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(16)} !important`,\n },\n },\n\n small: {\n minHeight: pxToRem(29),\n padding: `${pxToRem(6)} ${pxToRem(18)}`,\n fontSize: size.xs,\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(12)} !important`,\n },\n },\n\n large: {\n minHeight: pxToRem(44),\n padding: `${pxToRem(12)} ${pxToRem(64)}`,\n fontSize: size.sm,\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(22)} !important`,\n },\n },\n\n primary: {\n backgroundColor: info.main,\n\n \"&:hover\": {\n backgroundColor: info.main,\n },\n\n \"&:focus:not(:hover)\": {\n backgroundColor: info.focus,\n },\n },\n\n secondary: {\n backgroundColor: secondary.main,\n\n \"&:hover\": {\n backgroundColor: secondary.main,\n },\n\n \"&:focus:not(:hover)\": {\n backgroundColor: secondary.focus,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\nimport typography from \"../../base/typography\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { transparent, light, info, secondary } = colors;\nconst { size } = typography;\n\nexport default {\n base: {\n minHeight: pxToRem(39),\n color: light.main,\n borderColor: light.main,\n padding: `${pxToRem(9)} ${pxToRem(24)}`,\n\n \"&:hover\": {\n opacity: 0.75,\n backgroundColor: transparent.main,\n },\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(16)} !important`,\n },\n },\n\n small: {\n minHeight: pxToRem(31),\n padding: `${pxToRem(6)} ${pxToRem(18)}`,\n fontSize: size.xs,\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(12)} !important`,\n },\n },\n\n large: {\n minHeight: pxToRem(46),\n padding: `${pxToRem(12)} ${pxToRem(64)}`,\n fontSize: size.sm,\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(22)} !important`,\n },\n },\n\n primary: {\n backgroundColor: transparent.main,\n borderColor: info.main,\n\n \"&:hover\": {\n backgroundColor: transparent.main,\n },\n },\n\n secondary: {\n backgroundColor: transparent.main,\n borderColor: secondary.main,\n\n \"&:hover\": {\n backgroundColor: transparent.main,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\nimport typography from \"../../base/typography\";\n\n// Material Dashboard 2 PRO React Helper Functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { text, info, secondary, transparent } = colors;\nconst { size } = typography;\n\nexport default {\n base: {\n backgroundColor: transparent.main,\n minHeight: pxToRem(37),\n color: text.main,\n boxShadow: \"none\",\n padding: `${pxToRem(9)} ${pxToRem(24)}`,\n\n \"&:hover\": {\n backgroundColor: transparent.main,\n boxShadow: \"none\",\n },\n\n \"&:focus\": {\n boxShadow: \"none\",\n },\n\n \"&:active, &:active:focus, &:active:hover\": {\n opacity: 0.85,\n boxShadow: \"none\",\n },\n\n \"&:disabled\": {\n boxShadow: \"none\",\n },\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(16)} !important`,\n },\n },\n\n small: {\n minHeight: pxToRem(29),\n padding: `${pxToRem(6)} ${pxToRem(18)}`,\n fontSize: size.xs,\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(12)} !important`,\n },\n },\n\n large: {\n minHeight: pxToRem(44),\n padding: `${pxToRem(12)} ${pxToRem(64)}`,\n fontSize: size.sm,\n\n \"& .material-icon, .material-icons-round, svg\": {\n fontSize: `${pxToRem(22)} !important`,\n },\n },\n\n primary: {\n color: info.main,\n\n \"&:hover\": {\n color: info.main,\n },\n\n \"&:focus:not(:hover)\": {\n color: info.focus,\n boxShadow: \"none\",\n },\n },\n\n secondary: {\n color: secondary.main,\n\n \"&:hover\": {\n color: secondary.main,\n },\n\n \"&:focus:not(:hover)\": {\n color: secondary.focus,\n boxShadow: \"none\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Button Styles\nimport root from \"../../components/button/root\";\nimport contained from \"../../components/button/contained\";\nimport outlined from \"../../components/button/outlined\";\nimport text from \"../../components/button/text\";\n\nexport default {\n defaultProps: {\n disableRipple: false,\n },\n styleOverrides: {\n root: { ...root },\n contained: { ...contained.base },\n containedSizeSmall: { ...contained.small },\n containedSizeLarge: { ...contained.large },\n containedPrimary: { ...contained.primary },\n containedSecondary: { ...contained.secondary },\n outlined: { ...outlined.base },\n outlinedSizeSmall: { ...outlined.small },\n outlinedSizeLarge: { ...outlined.large },\n outlinedPrimary: { ...outlined.primary },\n outlinedSecondary: { ...outlined.secondary },\n text: { ...text.base },\n textSizeSmall: { ...text.small },\n textSizeLarge: { ...text.large },\n textPrimary: { ...text.primary },\n textSecondary: { ...text.secondary },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../base/colors\";\n\nconst { transparent } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n \"&:hover\": {\n backgroundColor: transparent.main,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\nimport typography from \"../../base/typography\";\nimport borders from \"../../base/borders\";\n\nconst { info, inputBorderColor, dark } = colors;\nconst { size } = typography;\nconst { borderWidth } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n fontSize: size.sm,\n color: dark.main,\n\n \"&:hover:not(.Mui-disabled):before\": {\n borderBottom: `${borderWidth[1]} solid ${inputBorderColor}`,\n },\n\n \"&:before\": {\n borderColor: inputBorderColor,\n },\n\n \"&:after\": {\n borderColor: info.main,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\nimport typography from \"../../base/typography\";\n\nconst { text, info } = colors;\nconst { size } = typography;\n\nexport default {\n styleOverrides: {\n root: {\n fontSize: size.sm,\n color: text.main,\n lineHeight: 0.9,\n\n \"&.Mui-focused\": {\n color: info.main,\n },\n\n \"&.MuiInputLabel-shrink\": {\n lineHeight: 1.5,\n fontSize: size.md,\n\n \"~ .MuiInputBase-root .MuiOutlinedInput-notchedOutline legend\": {\n fontSize: \"0.85em\",\n },\n },\n },\n\n sizeSmall: {\n fontSize: size.xs,\n lineHeight: 1.625,\n\n \"&.MuiInputLabel-shrink\": {\n lineHeight: 1.6,\n fontSize: size.sm,\n\n \"~ .MuiInputBase-root .MuiOutlinedInput-notchedOutline legend\": {\n fontSize: \"0.72em\",\n },\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\nimport typography from \"../../base/typography\";\n\n// // Soft UI Dashboard PRO helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { inputBorderColor, info, grey, transparent } = colors;\nconst { borderRadius } = borders;\nconst { size } = typography;\n\nexport default {\n styleOverrides: {\n root: {\n backgroundColor: transparent.main,\n fontSize: size.sm,\n borderRadius: borderRadius.md,\n\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: inputBorderColor,\n },\n\n \"&.Mui-focused\": {\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: info.main,\n },\n },\n },\n\n notchedOutline: {\n borderColor: inputBorderColor,\n },\n\n input: {\n color: grey[700],\n padding: pxToRem(12),\n backgroundColor: transparent.main,\n },\n\n inputSizeSmall: {\n fontSize: size.xs,\n padding: pxToRem(10),\n },\n\n multiline: {\n color: grey[700],\n padding: 0,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React Base Styles\nimport colors from \"../../base/colors\";\n\nconst { transparent } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n backgroundColor: transparent.main,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport boxShadows from \"../../base/boxShadows\";\nimport typography from \"../../base/typography\";\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { lg } = boxShadows;\nconst { size } = typography;\nconst { text, white } = colors;\nconst { borderRadius } = borders;\n\nexport default {\n defaultProps: {\n disableAutoFocusItem: true,\n },\n\n styleOverrides: {\n paper: {\n minWidth: pxToRem(160),\n boxShadow: lg,\n padding: `${pxToRem(16)} ${pxToRem(8)}`,\n fontSize: size.sm,\n color: text.main,\n textAlign: \"left\",\n backgroundColor: `${white.main} !important`,\n borderRadius: borderRadius.md,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\nimport typography from \"../../base/typography\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { light, text, dark } = colors;\nconst { borderRadius } = borders;\nconst { size } = typography;\n\nexport default {\n styleOverrides: {\n root: {\n minWidth: pxToRem(160),\n minHeight: \"unset\",\n padding: `${pxToRem(4.8)} ${pxToRem(16)}`,\n borderRadius: borderRadius.md,\n fontSize: size.sm,\n color: text.main,\n transition: \"background-color 300ms ease, color 300ms ease\",\n\n \"&:hover, &:focus, &.Mui-selected, &.Mui-selected:hover, &.Mui-selected:focus\": {\n backgroundColor: light.main,\n color: dark.main,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\nimport boxShadows from \"../../base/boxShadows\";\n\n// Material Dashboard 2 PRO React helper functions\n// import rgba from \"../../functions/rgba\";\nimport pxToRem from \"../../functions/pxToRem\";\nimport linearGradient from \"../../functions/linearGradient\";\n\nconst { white, gradients, grey, transparent } = colors;\nconst { borderWidth } = borders;\nconst { md } = boxShadows;\n\nexport default {\n defaultProps: {\n disableRipple: false,\n },\n\n styleOverrides: {\n switchBase: {\n color: gradients.dark.main,\n\n \"&:hover\": {\n backgroundColor: transparent.main,\n },\n\n \"&.Mui-checked\": {\n color: gradients.dark.main,\n\n \"&:hover\": {\n backgroundColor: transparent.main,\n },\n\n \"& .MuiSwitch-thumb\": {\n borderColor: `${gradients.dark.main} !important`,\n },\n\n \"& + .MuiSwitch-track\": {\n backgroundColor: `${gradients.dark.main} !important`,\n borderColor: `${gradients.dark.main} !important`,\n opacity: 1,\n },\n },\n\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: \"0.3 !important\",\n },\n\n \"&.Mui-focusVisible .MuiSwitch-thumb\": {\n backgroundImage: linearGradient(gradients.info.main, gradients.info.state),\n },\n },\n\n thumb: {\n backgroundColor: white.main,\n boxShadow: md,\n border: `${borderWidth[1]} solid ${grey[400]}`,\n },\n\n track: {\n width: pxToRem(32),\n height: pxToRem(15),\n backgroundColor: grey[400],\n border: `${borderWidth[1]} solid ${grey[400]}`,\n opacity: 1,\n },\n\n checked: {},\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport rgba from \"../functions/rgba\";\nimport pxToRem from \"../functions/pxToRem\";\n\nconst { dark, transparent, white } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n backgroundColor: transparent.main,\n backgroundImage: `linear-gradient(to right, ${rgba(dark.main, 0)}, ${rgba(\n dark.main,\n 0.4\n )}, ${rgba(dark.main, 0)}) !important`,\n height: pxToRem(1),\n margin: `${pxToRem(16)} 0`,\n borderBottom: \"none\",\n opacity: 0.25,\n },\n\n vertical: {\n backgroundColor: transparent.main,\n backgroundImage: `linear-gradient(to bottom, ${rgba(dark.main, 0)}, ${rgba(\n dark.main,\n 0.4\n )}, ${rgba(dark.main, 0)}) !important`,\n width: pxToRem(1),\n height: \"100%\",\n margin: `0 ${pxToRem(16)}`,\n borderRight: \"none\",\n },\n\n light: {\n backgroundColor: transparent.main,\n backgroundImage: `linear-gradient(to right, ${rgba(white.main, 0)}, ${white.main}, ${rgba(\n white.main,\n 0\n )}) !important`,\n\n \"&.MuiDivider-vertical\": {\n backgroundImage: `linear-gradient(to bottom, ${rgba(white.main, 0)}, ${white.main}, ${rgba(\n white.main,\n 0\n )}) !important`,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\nimport boxShadows from \"../../base/boxShadows\";\nimport borders from \"../../base/borders\";\n\nconst { white } = colors;\nconst { md } = boxShadows;\nconst { borderRadius } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n backgroundColor: white.main,\n boxShadow: md,\n borderRadius: borderRadius.xl,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../../base/borders\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { borderRadius } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n display: \"block\",\n padding: `${pxToRem(16)} ${pxToRem(16)} 0 ${pxToRem(16)}`,\n borderRadius: `${borderRadius.xl} ${borderRadius.xl} 0 0`,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../../base/borders\";\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { borderWidth } = borders;\nconst { light } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n padding: `${pxToRem(12)} ${pxToRem(16)}`,\n borderBottom: `${borderWidth[1]} solid ${light.main}`,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../base/borders\";\nimport colors from \"../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\nconst { borderRadius } = borders;\nconst { light } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n height: pxToRem(6),\n borderRadius: borderRadius.md,\n overflow: \"visible\",\n position: \"relative\",\n },\n\n colorPrimary: {\n backgroundColor: light.main,\n },\n\n colorSecondary: {\n backgroundColor: light.main,\n },\n\n bar: {\n height: pxToRem(6),\n borderRadius: borderRadius.sm,\n position: \"absolute\",\n transform: `translate(0, 0) !important`,\n transition: \"width 0.6s ease !important\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../base/colors\";\nimport typography from \"../base/typography\";\n\nconst { grey } = colors;\nconst { size } = typography;\n\nexport default {\n styleOverrides: {\n li: {\n lineHeight: 0,\n },\n\n separator: {\n fontSize: size.sm,\n color: grey[600],\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../base/colors\";\nimport borders from \"../base/borders\";\nimport boxShadows from \"../base/boxShadows\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\nconst { grey, white, black, info } = colors;\nconst { borderRadius, borderWidth } = borders;\nconst { sliderBoxShadow } = boxShadows;\n\nexport default {\n styleOverrides: {\n root: {\n width: \"100%\",\n\n \"& .MuiSlider-active, & .Mui-focusVisible\": {\n boxShadow: \"none !important\",\n },\n\n \"& .MuiSlider-valueLabel\": {\n color: black.main,\n },\n },\n\n rail: {\n height: pxToRem(2),\n background: grey[200],\n borderRadius: borderRadius.sm,\n opacity: 1,\n },\n\n track: {\n background: info.main,\n height: pxToRem(2),\n position: \"relative\",\n border: \"none\",\n borderRadius: borderRadius.lg,\n zIndex: 1,\n },\n\n thumb: {\n width: pxToRem(14),\n height: pxToRem(14),\n backgroundColor: white.main,\n zIndex: 10,\n boxShadow: sliderBoxShadow.thumb,\n border: `${borderWidth[1]} solid ${info.main}`,\n\n \"&:hover\": {\n boxShadow: \"none\",\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../base/borders\";\n\nconst { borderRadius } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n transition: \"all 200ms ease-in-out\",\n },\n\n rounded: {\n borderRadius: borderRadius.lg,\n },\n\n img: {\n height: \"auto\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Fade from \"@mui/material/Fade\";\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../base/colors\";\nimport typography from \"../base/typography\";\nimport borders from \"../base/borders\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\nconst { black, light } = colors;\nconst { size, fontWeightRegular } = typography;\nconst { borderRadius } = borders;\n\nexport default {\n defaultProps: {\n arrow: true,\n TransitionComponent: Fade,\n },\n\n styleOverrides: {\n tooltip: {\n maxWidth: pxToRem(200),\n backgroundColor: black.main,\n color: light.main,\n fontSize: size.sm,\n fontWeight: fontWeightRegular,\n textAlign: \"center\",\n borderRadius: borderRadius.md,\n opacity: 0.7,\n padding: `${pxToRem(5)} ${pxToRem(8)} ${pxToRem(4)}`,\n },\n\n arrow: {\n color: black.main,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\nimport boxShadows from \"../../base/boxShadows\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { grey, white } = colors;\nconst { borderRadius } = borders;\nconst { tabsBoxShadow } = boxShadows;\n\nexport default {\n styleOverrides: {\n root: {\n position: \"relative\",\n backgroundColor: grey[100],\n borderRadius: borderRadius.xl,\n minHeight: \"unset\",\n padding: pxToRem(4),\n },\n\n flexContainer: {\n height: \"100%\",\n position: \"relative\",\n zIndex: 10,\n },\n\n fixed: {\n overflow: \"unset !important\",\n overflowX: \"unset !important\",\n },\n\n vertical: {\n \"& .MuiTabs-indicator\": {\n width: \"100%\",\n },\n },\n\n indicator: {\n height: \"100%\",\n borderRadius: borderRadius.lg,\n backgroundColor: white.main,\n boxShadow: tabsBoxShadow.indicator,\n transition: \"all 500ms ease\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport typography from \"../../base/typography\";\nimport borders from \"../../base/borders\";\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { size, fontWeightRegular } = typography;\nconst { borderRadius } = borders;\nconst { dark } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n flex: \"1 1 auto\",\n textAlign: \"center\",\n maxWidth: \"unset !important\",\n minWidth: \"unset !important\",\n minHeight: \"unset !important\",\n fontSize: size.md,\n fontWeight: fontWeightRegular,\n textTransform: \"none\",\n lineHeight: \"inherit\",\n padding: pxToRem(4),\n borderRadius: borderRadius.lg,\n color: `${dark.main} !important`,\n opacity: \"1 !important\",\n\n \"& .material-icons, .material-icons-round\": {\n marginBottom: \"0 !important\",\n marginRight: pxToRem(6),\n },\n\n \"& svg\": {\n marginBottom: \"0 !important\",\n marginRight: pxToRem(6),\n },\n },\n\n labelIcon: {\n paddingTop: pxToRem(4),\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\nimport boxShadows from \"../../base/boxShadows\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\nimport linearGradient from \"../../functions/linearGradient\";\n\nconst { transparent, gradients } = colors;\nconst { borderRadius } = borders;\nconst { colored } = boxShadows;\n\nexport default {\n styleOverrides: {\n root: {\n background: linearGradient(gradients.info.main, gradients.info.state),\n padding: `${pxToRem(24)} 0 ${pxToRem(16)}`,\n borderRadius: borderRadius.lg,\n boxShadow: colored.info,\n\n \"&.MuiPaper-root\": {\n backgroundColor: transparent.main,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nexport default {\n styleOverrides: {\n root: {\n padding: `0 ${pxToRem(6)}`,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../../base/borders\";\nimport colors from \"../../base/colors\";\n\nconst { white } = colors;\nconst { borderWidth } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n color: \"#9fc9ff\",\n transition: \"all 200ms linear\",\n\n \"&.Mui-active\": {\n color: white.main,\n },\n\n \"&.Mui-completed\": {\n color: white.main,\n },\n },\n\n alternativeLabel: {\n top: \"14%\",\n left: \"-50%\",\n right: \"50%\",\n },\n\n line: {\n borderWidth: `${borderWidth[2]} !important`,\n borderColor: \"currentColor\",\n opacity: 0.5,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport typography from \"../../base/typography\";\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\nimport rgba from \"../../functions/rgba\";\n\nconst { size, fontWeightRegular } = typography;\nconst { white } = colors;\n\nexport default {\n styleOverrides: {\n label: {\n marginTop: `${pxToRem(8)} !important`,\n fontWeight: fontWeightRegular,\n fontSize: size.xs,\n color: \"#9fc9ff\",\n textTransform: \"uppercase\",\n\n \"&.Mui-active\": {\n fontWeight: `${fontWeightRegular} !important`,\n color: `${rgba(white.main, 0.8)} !important`,\n },\n\n \"&.Mui-completed\": {\n fontWeight: `${fontWeightRegular} !important`,\n color: `${rgba(white.main, 0.8)} !important`,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\nimport boxShadow from \"../../functions/boxShadow\";\n\nconst { white } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n background: \"#9fc9ff\",\n fill: \"#9fc9ff\",\n stroke: \"#9fc9ff\",\n strokeWidth: pxToRem(10),\n width: pxToRem(13),\n height: pxToRem(13),\n borderRadius: \"50%\",\n zIndex: 99,\n transition: \"all 200ms linear\",\n\n \"&.Mui-active\": {\n background: white.main,\n fill: white.main,\n stroke: white.main,\n borderColor: white.main,\n boxShadow: boxShadow([0, 0], [0, 2], white.main, 1),\n },\n\n \"&.Mui-completed\": {\n background: white.main,\n fill: white.main,\n stroke: white.main,\n borderColor: white.main,\n boxShadow: boxShadow([0, 0], [0, 2], white.main, 1),\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { transparent } = colors;\n\nexport default {\n styleOverrides: {\n select: {\n display: \"grid\",\n alignItems: \"center\",\n padding: `0 ${pxToRem(12)} !important`,\n\n \"& .Mui-selected\": {\n backgroundColor: transparent.main,\n },\n },\n\n selectMenu: {\n background: \"none\",\n height: \"none\",\n minHeight: \"none\",\n overflow: \"unset\",\n },\n\n icon: {\n display: \"none\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\nimport typography from \"../../base/typography\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { dark } = colors;\nconst { size, fontWeightBold } = typography;\n\nexport default {\n styleOverrides: {\n root: {\n display: \"block\",\n minHeight: pxToRem(24),\n marginBottom: pxToRem(2),\n },\n\n label: {\n display: \"inline-block\",\n fontSize: size.sm,\n fontWeight: fontWeightBold,\n color: dark.main,\n lineHeight: 1,\n transform: `translateY(${pxToRem(1)})`,\n marginLeft: pxToRem(4),\n\n \"&.Mui-disabled\": {\n color: dark.main,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../../base/colors\";\n\nconst { text } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n color: text.main,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../../base/borders\";\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\nimport linearGradient from \"../../functions/linearGradient\";\n\nconst { borderWidth, borderColor } = borders;\nconst { transparent, info } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n \"& .MuiSvgIcon-root\": {\n backgroundPosition: \"center\",\n backgroundSize: \"contain\",\n backgroundRepeat: \"no-repeat\",\n width: pxToRem(20),\n height: pxToRem(20),\n color: transparent.main,\n border: `${borderWidth[1]} solid ${borderColor}`,\n borderRadius: pxToRem(5.6),\n },\n\n \"&:hover\": {\n backgroundColor: transparent.main,\n },\n\n \"&.Mui-focusVisible\": {\n border: `${borderWidth[2]} solid ${info.main} !important`,\n },\n },\n\n colorPrimary: {\n color: borderColor,\n\n \"&.Mui-checked\": {\n color: info.main,\n\n \"& .MuiSvgIcon-root\": {\n backgroundImage: `url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -1 22 22'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.5' d='M6 10l3 3l6-6'/%3e%3c/svg%3e\"), ${linearGradient(\n info.main,\n info.main\n )}`,\n borderColor: info.main,\n },\n },\n },\n\n colorSecondary: {\n color: borderColor,\n\n \"& .MuiSvgIcon-root\": {\n color: info.main,\n \"&.Mui-checked\": {\n backgroundImage: `url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -1 22 22'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.5' d='M6 10l3 3l6-6'/%3e%3c/svg%3e\"), ${linearGradient(\n info.main,\n info.main\n )}`,\n borderColor: info.main,\n },\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../../base/borders\";\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\nimport linearGradient from \"../../functions/linearGradient\";\n\nconst { borderWidth, borderColor } = borders;\nconst { transparent, info } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n \"& .MuiSvgIcon-root\": {\n width: pxToRem(20),\n height: pxToRem(20),\n color: transparent.main,\n border: `${borderWidth[1]} solid ${borderColor}`,\n borderRadius: \"50%\",\n },\n\n \"&:after\": {\n transition: \"opacity 250ms ease-in-out\",\n content: `\"\"`,\n position: \"absolute\",\n width: pxToRem(14),\n height: pxToRem(14),\n borderRadius: \"50%\",\n backgroundImage: linearGradient(info.main, info.main),\n opacity: 0,\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n margin: \"auto\",\n },\n\n \"&:hover\": {\n backgroundColor: transparent.main,\n },\n\n \"&.Mui-focusVisible\": {\n border: `${borderWidth[2]} solid ${info.main} !important`,\n },\n },\n\n colorPrimary: {\n color: borderColor,\n\n \"&.Mui-checked\": {\n color: info.main,\n\n \"& .MuiSvgIcon-root\": {\n borderColor: info.main,\n },\n\n \"&:after\": {\n opacity: 1,\n },\n },\n },\n\n colorSecondary: {\n color: borderColor,\n\n \"&.Mui-checked\": {\n color: info.main,\n\n \"& .MuiSvgIcon-root\": {\n borderColor: info.main,\n },\n\n \"&:after\": {\n opacity: 1,\n },\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport boxShadows from \"../../base/boxShadows\";\nimport typography from \"../../base/typography\";\nimport colors from \"../../base/colors\";\nimport borders from \"../../base/borders\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { lg } = boxShadows;\nconst { size } = typography;\nconst { text, white, transparent, light, dark, gradients } = colors;\nconst { borderRadius } = borders;\n\nexport default {\n styleOverrides: {\n popper: {\n boxShadow: lg,\n padding: pxToRem(8),\n fontSize: size.sm,\n color: text.main,\n textAlign: \"left\",\n backgroundColor: `${white.main} !important`,\n borderRadius: borderRadius.md,\n },\n\n paper: {\n boxShadow: \"none\",\n backgroundColor: transparent.main,\n },\n\n option: {\n padding: `${pxToRem(4.8)} ${pxToRem(16)}`,\n borderRadius: borderRadius.md,\n fontSize: size.sm,\n color: text.main,\n transition: \"background-color 300ms ease, color 300ms ease\",\n\n \"&:hover, &:focus, &.Mui-selected, &.Mui-selected:hover, &.Mui-selected:focus\": {\n backgroundColor: light.main,\n color: dark.main,\n },\n\n '&[aria-selected=\"true\"]': {\n backgroundColor: `${light.main} !important`,\n color: `${dark.main} !important`,\n },\n },\n\n noOptions: {\n fontSize: size.sm,\n color: text.main,\n },\n\n groupLabel: {\n color: dark.main,\n },\n\n loading: {\n fontSize: size.sm,\n color: text.main,\n },\n\n tag: {\n display: \"flex\",\n alignItems: \"center\",\n height: \"auto\",\n padding: pxToRem(4),\n backgroundColor: gradients.dark.state,\n color: white.main,\n\n \"& .MuiChip-label\": {\n lineHeight: 1.2,\n padding: `0 ${pxToRem(10)} 0 ${pxToRem(4)}`,\n },\n\n \"& .MuiSvgIcon-root, & .MuiSvgIcon-root:hover, & .MuiSvgIcon-root:focus\": {\n color: white.main,\n marginRight: 0,\n },\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport rgba from \"../functions/rgba\";\n\nconst { info, white, gradients } = colors;\n\nexport default {\n \".flatpickr-day:hover, .flatpickr-day:focus, .flatpickr-day.nextMonthDay:hover, .flatpickr-day.nextMonthDay:focus\":\n {\n background: rgba(info.main, 0.28),\n border: \"none\",\n },\n\n \".flatpickr-day.today\": {\n background: info.main,\n color: white.main,\n border: \"none\",\n\n \"&:hover, &:focus\": {\n background: `${info.focus} !important`,\n },\n },\n\n \".flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.nextMonthDay.selected, .flatpickr-day.nextMonthDay.selected:hover, .flatpickr-day.nextMonthDay.selected:focus\":\n {\n background: `${gradients.info.state} !important`,\n color: white.main,\n border: \"none\",\n },\n\n \".flatpickr-months .flatpickr-next-month:hover svg, .flatpickr-months .flatpickr-prev-month:hover svg\":\n {\n color: `${info.main} !important`,\n fill: `${info.main} !important`,\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport breakpoints from \"../base/breakpoints\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\nconst {\n values: { sm, md, lg, xl, xxl },\n} = breakpoints;\n\nconst SM = `@media (min-width: ${sm}px)`;\nconst MD = `@media (min-width: ${md}px)`;\nconst LG = `@media (min-width: ${lg}px)`;\nconst XL = `@media (min-width: ${xl}px)`;\nconst XXL = `@media (min-width: ${xxl}px)`;\n\nconst sharedClasses = {\n paddingRight: `${pxToRem(24)} !important`,\n paddingLeft: `${pxToRem(24)} !important`,\n marginRight: \"auto !important\",\n marginLeft: \"auto !important\",\n width: \"100% !important\",\n position: \"relative\",\n};\n\nexport default {\n [SM]: {\n \".MuiContainer-root\": {\n ...sharedClasses,\n maxWidth: \"540px !important\",\n },\n },\n [MD]: {\n \".MuiContainer-root\": {\n ...sharedClasses,\n maxWidth: \"720px !important\",\n },\n },\n [LG]: {\n \".MuiContainer-root\": {\n ...sharedClasses,\n maxWidth: \"960px !important\",\n },\n },\n [XL]: {\n \".MuiContainer-root\": {\n ...sharedClasses,\n maxWidth: \"1140px !important\",\n },\n },\n [XXL]: {\n \".MuiContainer-root\": {\n ...sharedClasses,\n maxWidth: \"1320px !important\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"../base/colors\";\nimport boxShadows from \"../base/boxShadows\";\nimport borders from \"../base/borders\";\n\nconst { transparent } = colors;\nconst { lg } = boxShadows;\nconst { borderRadius } = borders;\n\nexport default {\n styleOverrides: {\n paper: {\n backgroundColor: transparent.main,\n boxShadow: lg,\n padding: pxToRem(8),\n borderRadius: borderRadius.md,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\nexport default {\n defaultProps: {\n baseClassName: \"material-icons-round\",\n fontSize: \"inherit\",\n },\n\n styleOverrides: {\n fontSizeInherit: {\n fontSize: \"inherit !important\",\n },\n\n fontSizeSmall: {\n fontSize: `${pxToRem(20)} !important`,\n },\n\n fontSizeLarge: {\n fontSize: `${pxToRem(36)} !important`,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../functions/pxToRem\";\n\nexport default {\n defaultProps: {\n fontSize: \"inherit\",\n },\n\n styleOverrides: {\n fontSizeInherit: {\n fontSize: \"inherit !important\",\n },\n\n fontSizeSmall: {\n fontSize: `${pxToRem(20)} !important`,\n },\n\n fontSizeLarge: {\n fontSize: `${pxToRem(36)} !important`,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport borders from \"../../base/borders\";\nimport boxShadows from \"../../base/boxShadows\";\n\nconst { borderRadius } = borders;\nconst { xxl } = boxShadows;\n\nexport default {\n styleOverrides: {\n paper: {\n borderRadius: borderRadius.lg,\n boxShadow: xxl,\n },\n\n paperFullScreen: {\n borderRadius: 0,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport typography from \"../../base/typography\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { size } = typography;\n\nexport default {\n styleOverrides: {\n root: {\n padding: pxToRem(16),\n fontSize: size.xl,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport typography from \"../../base/typography\";\nimport borders from \"../../base/borders\";\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nconst { size } = typography;\nconst { text } = colors;\nconst { borderWidth, borderColor } = borders;\n\nexport default {\n styleOverrides: {\n root: {\n padding: pxToRem(16),\n fontSize: size.md,\n color: text.main,\n },\n\n dividers: {\n borderTop: `${borderWidth[1]} solid ${borderColor}`,\n borderBottom: `${borderWidth[1]} solid ${borderColor}`,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React base styles\nimport typography from \"../../base/typography\";\nimport colors from \"../../base/colors\";\n\n// Material Dashboard 2 PRO React helper functions\n// import pxToRem from \"../../functions/pxToRem\";\n\nconst { size } = typography;\nconst { text } = colors;\n\nexport default {\n styleOverrides: {\n root: {\n fontSize: size.md,\n color: text.main,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// Material Dashboard 2 PRO React helper functions\nimport pxToRem from \"../../functions/pxToRem\";\n\nexport default {\n styleOverrides: {\n root: {\n padding: pxToRem(16),\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/soft-ui-dashboard-pro-material-ui\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport { createTheme } from \"@mui/material/styles\";\n// import Fade from \"@mui/material/Fade\";\n\n// Material Dashboard 2 PRO React base styles\nimport colors from \"./base/colors\";\nimport breakpoints from \"./base/breakpoints\";\nimport typography from \"./base/typography\";\nimport boxShadows from \"./base/boxShadows\";\nimport borders from \"./base/borders\";\nimport globals from \"./base/globals\";\n\n// Material Dashboard 2 PRO React helper functions\nimport boxShadow from \"./functions/boxShadow\";\nimport hexToRgb from \"./functions/hexToRgb\";\nimport linearGradient from \"./functions/linearGradient\";\nimport pxToRem from \"./functions/pxToRem\";\nimport rgba from \"./functions/rgba\";\n\n// Material Dashboard 2 PRO React components base styles for @mui material components\nimport sidenav from \"./components/sidenav\";\nimport list from \"./components/list\";\nimport listItem from \"./components/list/listItem\";\nimport listItemText from \"./components/list/listItemText\";\nimport card from \"./components/card\";\nimport cardMedia from \"./components/card/cardMedia\";\nimport cardContent from \"./components/card/cardContent\";\nimport button from \"./components/button\";\nimport iconButton from \"./components/iconButton\";\nimport input from \"./components/form/input\";\nimport inputLabel from \"./components/form/inputLabel\";\nimport inputOutlined from \"./components/form/inputOutlined\";\nimport textField from \"./components/form/textField\";\nimport menu from \"./components/menu\";\nimport menuItem from \"./components/menu/menuItem\";\nimport switchButton from \"./components/form/switchButton\";\nimport divider from \"./components/divider\";\nimport tableContainer from \"./components/table/tableContainer\";\nimport tableHead from \"./components/table/tableHead\";\nimport tableCell from \"./components/table/tableCell\";\nimport linearProgress from \"./components/linearProgress\";\nimport breadcrumbs from \"./components/breadcrumbs\";\nimport slider from \"./components/slider\";\nimport avatar from \"./components/avatar\";\nimport tooltip from \"./components/tooltip\";\nimport appBar from \"./components/appBar\";\nimport tabs from \"./components/tabs\";\nimport tab from \"./components/tabs/tab\";\nimport stepper from \"./components/stepper\";\nimport step from \"./components/stepper/step\";\nimport stepConnector from \"./components/stepper/stepConnector\";\nimport stepLabel from \"./components/stepper/stepLabel\";\nimport stepIcon from \"./components/stepper/stepIcon\";\nimport select from \"./components/form/select\";\nimport formControlLabel from \"./components/form/formControlLabel\";\nimport formLabel from \"./components/form/formLabel\";\nimport checkbox from \"./components/form/checkbox\";\nimport radio from \"./components/form/radio\";\nimport autocomplete from \"./components/form/autocomplete\";\nimport flatpickr from \"./components/flatpickr\";\nimport container from \"./components/container\";\nimport popover from \"./components/popover\";\nimport buttonBase from \"./components/buttonBase\";\nimport icon from \"./components/icon\";\nimport svgIcon from \"./components/svgIcon\";\nimport link from \"./components/link\";\nimport dialog from \"./components/dialog\";\nimport dialogTitle from \"./components/dialog/dialogTitle\";\nimport dialogContent from \"./components/dialog/dialogContent\";\nimport dialogContentText from \"./components/dialog/dialogContentText\";\nimport dialogActions from \"./components/dialog/dialogActions\";\n\nexport default createTheme({\n breakpoints: { ...breakpoints },\n palette: { ...colors },\n typography: { ...typography },\n boxShadows: { ...boxShadows },\n borders: { ...borders },\n functions: {\n boxShadow,\n hexToRgb,\n linearGradient,\n pxToRem,\n rgba,\n },\n\n components: {\n MuiCssBaseline: {\n styleOverrides: {\n ...globals,\n ...flatpickr,\n ...container,\n },\n },\n MuiDrawer: { ...sidenav },\n MuiList: { ...list },\n MuiListItem: { ...listItem },\n MuiListItemText: { ...listItemText },\n MuiCard: { ...card },\n MuiCardMedia: { ...cardMedia },\n MuiCardContent: { ...cardContent },\n MuiButton: { ...button },\n MuiIconButton: { ...iconButton },\n MuiInput: { ...input },\n MuiInputLabel: { ...inputLabel },\n MuiOutlinedInput: { ...inputOutlined },\n MuiTextField: { ...textField },\n MuiMenu: { ...menu },\n MuiMenuItem: { ...menuItem },\n MuiSwitch: { ...switchButton },\n MuiDivider: { ...divider },\n MuiTableContainer: { ...tableContainer },\n MuiTableHead: { ...tableHead },\n MuiTableCell: { ...tableCell },\n MuiLinearProgress: { ...linearProgress },\n MuiBreadcrumbs: { ...breadcrumbs },\n MuiSlider: { ...slider },\n MuiAvatar: { ...avatar },\n MuiTooltip: { ...tooltip },\n MuiAppBar: { ...appBar },\n MuiTabs: { ...tabs },\n MuiTab: { ...tab },\n MuiStepper: { ...stepper },\n MuiStep: { ...step },\n MuiStepConnector: { ...stepConnector },\n MuiStepLabel: { ...stepLabel },\n MuiStepIcon: { ...stepIcon },\n MuiSelect: { ...select },\n MuiFormControlLabel: { ...formControlLabel },\n MuiFormLabel: { ...formLabel },\n MuiCheckbox: { ...checkbox },\n MuiRadio: { ...radio },\n MuiAutocomplete: { ...autocomplete },\n MuiPopover: { ...popover },\n MuiButtonBase: { ...buttonBase },\n MuiIcon: { ...icon },\n MuiSvgIcon: { ...svgIcon },\n MuiLink: { ...link },\n MuiDialog: { ...dialog },\n MuiDialogTitle: { ...dialogTitle },\n MuiDialogContent: { ...dialogContent },\n MuiDialogContentText: { ...dialogContentText },\n MuiDialogActions: { ...dialogActions },\n },\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nexport default {\n styleOverrides: {\n padding: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nexport default {\n defaultProps: {\n disableGutters: true,\n },\n\n styleOverrides: {\n root: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nexport default {\n styleOverrides: {\n root: {\n marginTop: 0,\n marginBottom: 0,\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nexport default {\n defaultProps: {\n color: \"transparent\",\n },\n\n styleOverrides: {\n root: {\n boxShadow: \"none\",\n },\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nexport default {\n defaultProps: {\n disableRipple: false,\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nexport default {\n defaultProps: {\n underline: \"none\",\n color: \"inherit\",\n },\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Box from \"@mui/material/Box\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Box)(({ theme, ownerState }) => {\n const { palette, functions, borders, boxShadows } = theme;\n const { variant, bgColor, color, opacity, borderRadius, shadow, coloredShadow } = ownerState;\n\n const { gradients, grey, white } = palette;\n const { linearGradient } = functions;\n const { borderRadius: radius } = borders;\n const { colored } = boxShadows;\n\n const greyColors = {\n \"grey-100\": grey[100],\n \"grey-200\": grey[200],\n \"grey-300\": grey[300],\n \"grey-400\": grey[400],\n \"grey-500\": grey[500],\n \"grey-600\": grey[600],\n \"grey-700\": grey[700],\n \"grey-800\": grey[800],\n \"grey-900\": grey[900],\n };\n\n const validGradients = [\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"dark\",\n \"light\",\n ];\n\n const validColors = [\n \"transparent\",\n \"white\",\n \"black\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n \"text\",\n \"grey-100\",\n \"grey-200\",\n \"grey-300\",\n \"grey-400\",\n \"grey-500\",\n \"grey-600\",\n \"grey-700\",\n \"grey-800\",\n \"grey-900\",\n ];\n\n const validBorderRadius = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\", \"section\"];\n const validBoxShadows = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\", \"inset\"];\n\n // background value\n let backgroundValue = bgColor;\n\n if (variant === \"gradient\") {\n backgroundValue = validGradients.find((el) => el === bgColor)\n ? linearGradient(gradients[bgColor].main, gradients[bgColor].state)\n : white.main;\n } else if (validColors.find((el) => el === bgColor)) {\n backgroundValue = palette[bgColor] ? palette[bgColor].main : greyColors[bgColor];\n } else {\n backgroundValue = bgColor;\n }\n\n // color value\n let colorValue = color;\n\n if (validColors.find((el) => el === color)) {\n colorValue = palette[color] ? palette[color].main : greyColors[color];\n }\n\n // borderRadius value\n let borderRadiusValue = borderRadius;\n\n if (validBorderRadius.find((el) => el === borderRadius)) {\n borderRadiusValue = radius[borderRadius];\n }\n\n // boxShadow value\n let boxShadowValue = \"none\";\n\n if (validBoxShadows.find((el) => el === shadow)) {\n boxShadowValue = boxShadows[shadow];\n } else if (coloredShadow) {\n boxShadowValue = colored[coloredShadow] ? colored[coloredShadow] : \"none\";\n }\n\n return {\n opacity,\n background: backgroundValue,\n color: colorValue,\n borderRadius: borderRadiusValue,\n boxShadow: boxShadowValue,\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Custom styles for MDBox\nimport MDBoxRoot from \"./MDBoxRoot\";\n\nconst MDBox = forwardRef(\n ({ variant, bgColor, color, opacity, borderRadius, shadow, coloredShadow, ...rest }, ref) => (\n \n )\n);\n\n// Setting default values for the props of MDBox\nMDBox.defaultProps = {\n variant: \"contained\",\n bgColor: \"transparent\",\n color: \"dark\",\n opacity: 1,\n borderRadius: \"none\",\n shadow: \"none\",\n coloredShadow: \"none\",\n};\n\n// Typechecking props for the MDBox\nMDBox.propTypes = {\n variant: PropTypes.oneOf([\"contained\", \"gradient\"]),\n bgColor: PropTypes.string,\n color: PropTypes.string,\n opacity: PropTypes.number,\n borderRadius: PropTypes.string,\n shadow: PropTypes.string,\n coloredShadow: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n \"none\",\n ]),\n};\n\nexport default MDBox;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Typography from \"@mui/material/Typography\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Typography)(({ theme, ownerState }) => {\n const { palette, typography, functions } = theme;\n const { color, textTransform, verticalAlign, fontWeight, opacity, textGradient, darkMode } =\n ownerState;\n\n const { gradients, transparent, white } = palette;\n const { fontWeightLight, fontWeightRegular, fontWeightMedium, fontWeightBold } = typography;\n const { linearGradient } = functions;\n\n // fontWeight styles\n const fontWeights = {\n light: fontWeightLight,\n regular: fontWeightRegular,\n medium: fontWeightMedium,\n bold: fontWeightBold,\n };\n\n // styles for the typography with textGradient={true}\n const gradientStyles = () => ({\n backgroundImage:\n color !== \"inherit\" && color !== \"text\" && color !== \"white\" && gradients[color]\n ? linearGradient(gradients[color].main, gradients[color].state)\n : linearGradient(gradients.dark.main, gradients.dark.state),\n display: \"inline-block\",\n WebkitBackgroundClip: \"text\",\n WebkitTextFillColor: transparent.main,\n position: \"relative\",\n zIndex: 1,\n });\n\n // color value\n let colorValue = color === \"inherit\" || !palette[color] ? \"inherit\" : palette[color].main;\n\n if (darkMode && (color === \"inherit\" || !palette[color])) {\n colorValue = \"inherit\";\n } else if (darkMode && color === \"dark\") colorValue = white.main;\n\n return {\n opacity,\n textTransform,\n verticalAlign,\n textDecoration: \"none\",\n color: colorValue,\n fontWeight: fontWeights[fontWeight] && fontWeights[fontWeight],\n ...(textGradient && gradientStyles()),\n };\n});\n","import React, { createContext, useContext, useReducer } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// The Soft UI Dashboard PRO Material main context\nconst MaterialUI = createContext();\n\n// Setting custom name for the context which is visible on react dev tools\nMaterialUI.displayName = \"MaterialUIContext\";\n\n// Material Dashboard 2 PRO React reducer\nfunction reducer(state, action) {\n switch (action.type) {\n case \"MINI_SIDENAV\": {\n return { ...state, miniSidenav: action.value };\n }\n case \"TRANSPARENT_SIDENAV\": {\n return { ...state, transparentSidenav: action.value };\n }\n case \"WHITE_SIDENAV\": {\n return { ...state, whiteSidenav: action.value };\n }\n case \"SIDENAV_COLOR\": {\n return { ...state, sidenavColor: action.value };\n }\n case \"TRANSPARENT_NAVBAR\": {\n return { ...state, transparentNavbar: action.value };\n }\n case \"FIXED_NAVBAR\": {\n return { ...state, fixedNavbar: action.value };\n }\n case \"OPEN_CONFIGURATOR\": {\n return { ...state, openConfigurator: action.value };\n }\n case \"DIRECTION\": {\n return { ...state, direction: action.value };\n }\n case \"LAYOUT\": {\n return { ...state, layout: action.value };\n }\n case \"DARKMODE\": {\n return { ...state, darkMode: action.value };\n }\n case \"OPEN_BARRAVERTICAL\": {\n return { ...state, openBarraVertical: action.value };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\n// Material Dashboard 2 PRO React context provider\nfunction MaterialUIControllerProvider({ children }) {\n const initialState = {\n miniSidenav: false,\n transparentSidenav: false,\n whiteSidenav: false,\n sidenavColor: \"info\",\n transparentNavbar: true,\n fixedNavbar: true,\n openConfigurator: false,\n direction: \"ltr\",\n layout: \"dashboard\",\n darkMode: false,\n openBarraVertical: false\n };\n\n const [controller, dispatch] = useReducer(reducer, initialState);\n\n return {children};\n}\n\n// Material Dashboard 2 PRO React custom hook for using context\nfunction useMaterialUIController() {\n const context = useContext(MaterialUI);\n\n if (!context) {\n throw new Error(\n \"useMaterialUIController should be used inside the MaterialUIControllerProvider.\"\n );\n }\n\n return context;\n}\n\n// Typechecking props for the MaterialUIControllerProvider\nMaterialUIControllerProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\n// Context module functions\nconst setMiniSidenav = (dispatch, value) => dispatch({ type: \"MINI_SIDENAV\", value });\nconst setTransparentSidenav = (dispatch, value) => dispatch({ type: \"TRANSPARENT_SIDENAV\", value });\nconst setWhiteSidenav = (dispatch, value) => dispatch({ type: \"WHITE_SIDENAV\", value });\nconst setSidenavColor = (dispatch, value) => dispatch({ type: \"SIDENAV_COLOR\", value });\nconst setTransparentNavbar = (dispatch, value) => dispatch({ type: \"TRANSPARENT_NAVBAR\", value });\nconst setFixedNavbar = (dispatch, value) => dispatch({ type: \"FIXED_NAVBAR\", value });\nconst setOpenConfigurator = (dispatch, value) => dispatch({ type: \"OPEN_CONFIGURATOR\", value });\nconst setDirection = (dispatch, value) => dispatch({ type: \"DIRECTION\", value });\nconst setLayout = (dispatch, value) => dispatch({ type: \"LAYOUT\", value });\nconst setDarkMode = (dispatch, value) => dispatch({ type: \"DARKMODE\", value });\nconst setOpenBarraVertical = (dispatch, value) => dispatch({ type: \"OPEN_BARRAVERTICAL\", value });\n\nexport {\n MaterialUIControllerProvider,\n useMaterialUIController,\n setMiniSidenav,\n setTransparentSidenav,\n setWhiteSidenav,\n setSidenavColor,\n setTransparentNavbar,\n setFixedNavbar,\n setOpenConfigurator,\n setDirection,\n setLayout,\n setDarkMode,\n setOpenBarraVertical\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Custom styles for MDTypography\nimport MDTypographyRoot from \"./MDTypographyRoot\";\n\n// Material Dashboard 2 PRO React contexts\nimport { useMaterialUIController } from \"../../context\";\n\nconst MDTypography = forwardRef(\n (\n { color, fontWeight, textTransform, verticalAlign, textGradient, opacity, children, ...rest },\n ref\n ) => {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n return (\n \n {children}\n \n );\n }\n);\n\n// Setting default values for the props of MDTypography\nMDTypography.defaultProps = {\n color: \"dark\",\n fontWeight: false,\n textTransform: \"none\",\n verticalAlign: \"unset\",\n textGradient: false,\n opacity: 1,\n};\n\n// Typechecking props for the MDTypography\nMDTypography.propTypes = {\n color: PropTypes.oneOf([\n \"inherit\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n \"text\",\n \"white\",\n ]),\n fontWeight: PropTypes.oneOf([false, \"light\", \"regular\", \"medium\", \"bold\"]),\n textTransform: PropTypes.oneOf([\"none\", \"capitalize\", \"uppercase\", \"lowercase\"]),\n verticalAlign: PropTypes.oneOf([\n \"unset\",\n \"baseline\",\n \"sub\",\n \"super\",\n \"text-top\",\n \"text-bottom\",\n \"middle\",\n \"top\",\n \"bottom\",\n ]),\n textGradient: PropTypes.bool,\n children: PropTypes.node.isRequired,\n opacity: PropTypes.number,\n};\n\nexport default MDTypography;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nfunction collapseItem(theme, ownerState) {\n const { palette, transitions, breakpoints, boxShadows, borders, functions } = theme;\n const { active, transparentSidenav, whiteSidenav, darkMode } = ownerState;\n\n const { white, transparent, dark, grey } = palette;\n const { md } = boxShadows;\n const { borderRadius } = borders;\n const { pxToRem, rgba } = functions;\n\n return {\n background: () => {\n let backgroundValue;\n\n if (transparentSidenav && darkMode) {\n backgroundValue = active ? rgba(white.main, 0.2) : transparent.main;\n } else if (transparentSidenav && !darkMode) {\n backgroundValue = active ? grey[300] : transparent.main;\n } else if (whiteSidenav) {\n backgroundValue = active ? grey[200] : transparent.main;\n } else {\n backgroundValue = active ? rgba(white.main, 0.2) : transparent.main;\n }\n\n return backgroundValue;\n },\n color: (transparentSidenav && !darkMode) || whiteSidenav ? dark.main : white.main,\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n padding: `${pxToRem(8)} ${pxToRem(8)}`, /*espaciado interno*/\n margin: `${pxToRem(0)} ${pxToRem(7)}`,/*espaciado externo*/\n mb: 0.5,\n borderRadius: borderRadius.md,\n cursor: \"pointer\",\n userSelect: \"none\",\n whiteSpace: \"nowrap\",\n boxShadow: active && !whiteSidenav && !darkMode && !transparentSidenav ? md : \"none\",\n [breakpoints.up(\"xl\")]: {\n transition: transitions.create([\"box-shadow\", \"background-color\"], {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.shorter,\n }),\n },\n\n \"&:hover, &:focus\": {\n backgroundColor:\n transparentSidenav && !darkMode\n ? grey[300]\n : rgba(whiteSidenav ? grey[400] : white.main, 0.2),\n },\n };\n}\n\nfunction collapseIconBox(theme, ownerState) {\n const { palette, transitions, borders, functions } = theme;\n const { transparentSidenav, whiteSidenav, darkMode } = ownerState;\n\n const { white, dark } = palette;\n const { borderRadius } = borders;\n const { pxToRem } = functions;\n\n return {\n minWidth: pxToRem(32),\n minHeight: pxToRem(32),\n color: (transparentSidenav && !darkMode) || whiteSidenav ? dark.main : white.main,\n borderRadius: borderRadius.md,\n display: \"grid\",\n placeItems: \"center\",\n transition: transitions.create(\"margin\", {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.standard,\n }),\n\n \"& svg, svg g\": {\n color: transparentSidenav || whiteSidenav ? dark.main : white.main,\n },\n };\n}\n\nconst collapseIcon = ({ palette: { white, gradients } }, { active }) => ({\n color: active ? white.main : gradients.dark.state,\n});\n\nfunction collapseText(theme, ownerState) {\n const { typography, transitions, breakpoints, functions } = theme;\n const { miniSidenav, transparentSidenav, active } = ownerState;\n\n const { size, fontWeightRegular, fontWeightLight } = typography;\n const { pxToRem } = functions;\n\n return {\n marginLeft: pxToRem(10),\n\n [breakpoints.up(\"xl\")]: {\n opacity: miniSidenav || (miniSidenav && transparentSidenav) ? 0 : 1,\n maxWidth: miniSidenav || (miniSidenav && transparentSidenav) ? 0 : \"100%\",\n marginLeft: miniSidenav || (miniSidenav && transparentSidenav) ? 0 : pxToRem(10),\n transition: transitions.create([\"opacity\", \"margin\"], {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.standard,\n }),\n },\n\n \"& span\": {\n fontWeight: active ? fontWeightRegular : fontWeightLight,\n fontSize: size.sm,\n lineHeight: 0,\n },\n };\n}\n\nfunction collapseArrow(theme, ownerState) {\n const { palette, typography, transitions, breakpoints, functions } = theme;\n const { noCollapse, transparentSidenav, whiteSidenav, miniSidenav, open, active, darkMode } =\n ownerState;\n\n const { white, dark } = palette;\n const { size } = typography;\n const { pxToRem, rgba } = functions;\n\n return {\n fontSize: `${size.lg} !important`,\n fontWeight: 700,\n marginBottom: pxToRem(-1),\n transform: open ? \"rotate(0)\" : \"rotate(-180deg)\",\n color: () => {\n let colorValue;\n\n if (transparentSidenav && darkMode) {\n colorValue = open || active ? white.main : rgba(white.main, 0.25);\n } else if (transparentSidenav || whiteSidenav) {\n colorValue = open || active ? dark.main : rgba(dark.main, 0.25);\n } else {\n colorValue = open || active ? white.main : rgba(white.main, 0.5);\n }\n\n return colorValue;\n },\n transition: transitions.create([\"color\", \"transform\", \"opacity\"], {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.shorter,\n }),\n\n [breakpoints.up(\"xl\")]: {\n display:\n noCollapse || (transparentSidenav && miniSidenav) || miniSidenav\n ? \"none !important\"\n : \"block !important\",\n },\n };\n}\n\nexport { collapseItem, collapseIconBox, collapseIcon, collapseText, collapseArrow };\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Collapse from \"@mui/material/Collapse\";\nimport ListItem from \"@mui/material/ListItem\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../MDBox\";\n\n// Custom styles for the SidenavCollapse\nimport {\n collapseItem,\n collapseIconBox,\n collapseIcon,\n collapseText,\n collapseArrow,\n} from \"./styles/sidenavCollapse\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController } from \"../../context\";\n\nfunction SidenavCollapse({ icon, name, children, active, noCollapse, open, ...rest }) {\n const [controller] = useMaterialUIController();\n const { miniSidenav, transparentSidenav, whiteSidenav, darkMode } = controller;\n\n return (\n <>\n \n \n collapseItem(theme, { active, transparentSidenav, whiteSidenav, darkMode })\n }\n >\n collapseIconBox(theme, { transparentSidenav, whiteSidenav, darkMode })}\n >\n {typeof icon === \"string\" ? (\n collapseIcon(theme, { active })}>{icon}\n ) : (\n icon\n )}\n \n\n \n collapseText(theme, {\n miniSidenav,\n transparentSidenav,\n whiteSidenav,\n active,\n })\n }\n />\n\n \n collapseArrow(theme, {\n noCollapse,\n transparentSidenav,\n whiteSidenav,\n miniSidenav,\n open,\n active,\n darkMode,\n })\n }\n >\n expand_less\n \n \n \n {children && (\n \n {children}\n \n )}\n \n );\n}\n\n// Setting default values for the props of SidenavCollapse\nSidenavCollapse.defaultProps = {\n active: false,\n noCollapse: false,\n children: false,\n open: false,\n};\n\n// Typechecking props for the SidenavCollapse\nSidenavCollapse.propTypes = {\n icon: PropTypes.node.isRequired,\n name: PropTypes.string.isRequired,\n children: PropTypes.node,\n active: PropTypes.bool,\n noCollapse: PropTypes.bool,\n open: PropTypes.bool,\n};\n\nexport default SidenavCollapse;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport List from \"@mui/material/List\";\n\nfunction SidenavList({ children }) {\n return (\n \n {children}\n \n );\n}\n\n// Typechecking props for the SidenavItem\nSidenavList.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default SidenavList;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Collapse from \"@mui/material/Collapse\";\nimport ListItem from \"@mui/material/ListItem\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Icon from \"@mui/material/Icon\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../MDBox\";\n\n// Custom styles for the SidenavItem\nimport { item, itemContent, itemArrow } from \"./styles/sidenavItem\";\n\nimport {\n collapseIconBox,\n collapseIcon \n} from \"./styles/sidenavCollapse\";\n\n// Material Dashboard 2 PRO React contexts\nimport { useMaterialUIController } from \"../../context\";\n\nfunction SidenavItem({ color, name, active, nested, children, open, icon, ...rest }) {\n const [controller] = useMaterialUIController();\n const { miniSidenav, transparentSidenav, whiteSidenav, darkMode } = controller;\n\n let TieneIcono = (icon != null && icon != \"\");\n\n return (\n <>\n item(theme, { active, color, transparentSidenav, whiteSidenav, darkMode, TieneIcono })}\n >\n collapseIconBox(theme, { transparentSidenav, whiteSidenav, darkMode })}\n >\n {typeof icon === \"string\" ? (\n collapseIcon(theme, { active })}>{icon}\n ) : (\n icon\n )}\n \n \n itemContent(theme, {\n active,\n miniSidenav,\n name,\n open,\n nested,\n transparentSidenav,\n whiteSidenav,\n darkMode,\n TieneIcono\n })\n }> \n \n {children && (\n \n itemArrow(theme, { open, miniSidenav, transparentSidenav, whiteSidenav, darkMode })\n }\n >\n expand_less\n \n )}\n \n \n {children && (\n \n {children}\n \n )}\n \n );\n}\n\n// Setting default values for the props of SidenavItem\nSidenavItem.defaultProps = {\n color: \"info\",\n active: false,\n nested: false,\n children: false,\n open: false,\n};\n\n// Typechecking props for the SidenavItem\nSidenavItem.propTypes = {\n color: PropTypes.oneOf([\"primary\", \"secondary\", \"info\", \"success\", \"warning\", \"error\", \"dark\"]),\n name: PropTypes.string.isRequired,\n active: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n nested: PropTypes.bool,\n children: PropTypes.node,\n open: PropTypes.bool,\n};\n\nexport default SidenavItem;\n","/* eslint-disable prefer-destructuring */\n\n/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nfunction item(theme, ownerState) {\n const { palette, borders, functions, transitions } = theme;\n const { active, color, transparentSidenav, whiteSidenav, darkMode, TieneIcono } = ownerState;\n\n const { transparent, white, grey } = palette;\n const { borderRadius } = borders;\n const { rgba } = functions;\n\n return {\n pl: TieneIcono ? 1 : 0,\n mt: 0.375,\n mb: 0.5,\n width: \"100%\",\n borderRadius: borderRadius.md,\n cursor: \"pointer\",\n backgroundColor: () => {\n let backgroundValue = transparent.main;\n\n if (\n (active === \"isParent\" && !transparentSidenav && !whiteSidenav) ||\n (active === \"isParent\" && transparentSidenav && darkMode)\n ) {\n backgroundValue = rgba(white.main, 0.2);\n } else if (active === \"isParent\" && transparentSidenav) {\n backgroundValue = grey[300];\n } else if (active === \"isParent\" && whiteSidenav) {\n backgroundValue = grey[200];\n } else if (active) {\n backgroundValue = palette[color].main;\n }\n\n return backgroundValue;\n },\n transition: transitions.create(\"background-color\", {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.sharp,\n }),\n\n \"&:hover, &:focus\": {\n backgroundColor:\n !active &&\n rgba((transparentSidenav && !darkMode) || whiteSidenav ? grey[400] : white.main, 0.2),\n },\n };\n}\n\nfunction itemContent(theme, ownerState) {\n const { palette, typography, transitions, functions } = theme;\n const { miniSidenav, name, active, transparentSidenav, whiteSidenav, darkMode, TieneIcono } = ownerState;\n\n const { white, dark } = palette;\n const { size, fontWeightRegular, fontWeightLight } = typography;\n const { pxToRem } = functions;\n\n return {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n padding: `${pxToRem(12.5)} ${pxToRem(4)}`,\n marginLeft: TieneIcono ? pxToRem(4) : pxToRem(4),\n userSelect: \"none\",\n position: \"relative\",\n\n \"& span\": {\n color:\n ((transparentSidenav && !darkMode) || whiteSidenav) && (active === \"isParent\" || !active)\n ? dark.main\n : white.main,\n fontWeight: active ? fontWeightRegular : fontWeightLight,\n fontSize: size.sm,\n opacity: miniSidenav ? 0 : 1,\n transition: transitions.create([\"opacity\", \"color\"], {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.standard,\n }),\n },\n\n \"&::before\": {\n content: `\"${TieneIcono ? \"\" : \"-\"}\"`,\n color:\n ((transparentSidenav && !darkMode) || whiteSidenav) && (active === \"isParent\" || !active)\n ? dark.main\n : white.main,\n fontWeight: fontWeightRegular,\n display: \"flex\",\n alignItems: \"center\",\n position: \"absolute\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n left: pxToRem(-10),\n opacity: 1,\n borderRadius: \"50%\",\n fontSize: size.sm,\n },\n };\n}\n\nfunction itemArrow(theme, ownerState) {\n const { palette, typography, transitions, breakpoints, functions } = theme;\n const { noCollapse, transparentSidenav, whiteSidenav, miniSidenav, open, active, darkMode } =\n ownerState;\n\n const { white, dark } = palette;\n const { size } = typography;\n const { pxToRem, rgba } = functions;\n\n return {\n fontSize: `${size.lg} !important`,\n fontWeight: 700,\n marginBottom: pxToRem(-1),\n transform: open ? \"rotate(0)\" : \"rotate(-180deg)\",\n color: () => {\n let colorValue;\n\n if (transparentSidenav && darkMode) {\n colorValue = open || active ? white.main : rgba(white.main, 0.25);\n } else if (transparentSidenav || whiteSidenav) {\n colorValue = open || active ? dark.main : rgba(dark.main, 0.25);\n } else {\n colorValue = open || active ? white.main : rgba(white.main, 0.5);\n }\n\n return colorValue;\n },\n transition: transitions.create([\"color\", \"transform\", \"opacity\"], {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.shorter,\n }),\n\n [breakpoints.up(\"xl\")]: {\n display:\n noCollapse || (transparentSidenav && miniSidenav) || miniSidenav\n ? \"none !important\"\n : \"block !important\",\n },\n };\n}\n\nexport { item, itemContent, itemArrow };\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Drawer from \"@mui/material/Drawer\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Drawer)(({ theme, ownerState }) => {\n const { palette, boxShadows, transitions, breakpoints, functions } = theme;\n const { transparentSidenav, whiteSidenav, miniSidenav, darkMode } = ownerState;\n\n const sidebarWidth = 265;\n const { transparent, gradients, white, background } = palette;\n const { xxl } = boxShadows;\n const { pxToRem, linearGradient } = functions;\n\n let backgroundValue = darkMode\n ? background.sidenav\n : linearGradient(gradients.dark.main, gradients.dark.state);\n\n if (transparentSidenav) {\n backgroundValue = transparent.main;\n } else if (whiteSidenav) {\n backgroundValue = white.main;\n }\n\n // styles for the sidenav when miniSidenav={false}\n const drawerOpenStyles = () => ({\n background: backgroundValue,\n transform: \"translateX(0)\",\n transition: transitions.create(\"transform\", {\n easing: transitions.easing.sharp,\n duration: transitions.duration.shorter,\n }),\n\n [breakpoints.up(\"xl\")]: {\n boxShadow: transparentSidenav ? \"none\" : xxl,\n marginBottom: transparentSidenav ? 0 : \"inherit\",\n left: \"0\",\n width: sidebarWidth,\n transform: \"translateX(0)\",\n transition: transitions.create([\"width\", \"background-color\"], {\n easing: transitions.easing.sharp,\n duration: transitions.duration.enteringScreen,\n }),\n },\n });\n\n // styles for the sidenav when miniSidenav={true}\n const drawerCloseStyles = () => ({\n background: backgroundValue,\n transform: `translateX(${pxToRem(-320)})`,\n transition: transitions.create(\"transform\", {\n easing: transitions.easing.sharp,\n duration: transitions.duration.shorter,\n }),\n\n [breakpoints.up(\"xl\")]: {\n boxShadow: transparentSidenav ? \"none\" : xxl,\n marginBottom: transparentSidenav ? 0 : \"inherit\",\n left: \"0\",\n width: pxToRem(96),\n overflowX: \"hidden\",\n transform: \"translateX(0)\",\n transition: transitions.create([\"width\", \"background-color\"], {\n easing: transitions.easing.sharp,\n duration: transitions.duration.shorter,\n }),\n },\n });\n\n return {\n \"& .MuiDrawer-paper\": {\n boxShadow: xxl,\n border: \"none\",\n\n ...(miniSidenav ? drawerCloseStyles() : drawerOpenStyles()),\n },\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useEffect, useState } from \"react\";\n\n// react-router-dom components\nimport { useLocation, NavLink } from \"react-router-dom\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport List from \"@mui/material/List\";\nimport Divider from \"@mui/material/Divider\";\nimport Link from \"@mui/material/Link\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../MDBox\";\nimport MDTypography from \"../MDTypography\";\n\n// Material Dashboard 2 PRO React example components\nimport SidenavCollapse from \"./SidenavCollapse\";\nimport SidenavList from \"./SidenavList\";\nimport SidenavItem from \"./SidenavItem\";\n\n// Custom styles for the Sidenav\nimport SidenavRoot from \"./SidenavRoot\";\nimport sidenavLogoLabel from \"./styles/sidenav\";\n\n// Material Dashboard 2 PRO React context\nimport {\n useMaterialUIController,\n setMiniSidenav,\n setTransparentSidenav,\n setWhiteSidenav,\n} from \"../../context\";\n\nfunction Sidenav({ color, brand, brandName, routes, ...rest }) {\n const [openCollapse, setOpenCollapse] = useState(false);\n const [openNestedCollapse, setOpenNestedCollapse] = useState(false);\n const [controller, dispatch] = useMaterialUIController();\n const { miniSidenav, transparentSidenav, whiteSidenav, darkMode } = controller;\n const location = useLocation();\n const { pathname } = location;\n const collapseName = pathname.split(\"/\").slice(1)[0];\n const items = pathname.split(\"/\").slice(1);\n const itemParentName = items[1];\n const itemName = items[items.length - 1];\n\n let textColor = \"white\";\n\n if (transparentSidenav || (whiteSidenav && !darkMode)) {\n textColor = \"dark\";\n } else if (whiteSidenav && darkMode) {\n textColor = \"inherit\";\n }\n\n const closeSidenav = () => setMiniSidenav(dispatch, true);\n\n useEffect(() => {\n setOpenCollapse(collapseName);\n setOpenNestedCollapse(itemParentName);\n }, []);\n\n useEffect(() => {\n // A function that sets the mini state of the sidenav.\n function handleMiniSidenav() {\n setMiniSidenav(dispatch, window.innerWidth < 1200);\n setTransparentSidenav(dispatch, window.innerWidth < 1200 ? false : transparentSidenav);\n setWhiteSidenav(dispatch, window.innerWidth < 1200 ? false : whiteSidenav);\n }\n\n /** \n The event listener that's calling the handleMiniSidenav function when resizing the window.\n */\n window.addEventListener(\"resize\", handleMiniSidenav);\n\n // Call the handleMiniSidenav function to set the state with the initial value.\n handleMiniSidenav();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener(\"resize\", handleMiniSidenav);\n }, [dispatch, location]);\n\n // Render all the nested collapse items from the routes.js\n const renderNestedCollapse = (collapse) => {\n const template = collapse.map(({ name, route, key, href }) =>\n href ? (\n \n \n \n ) : (\n \n \n \n )\n );\n\n return template;\n };\n // Render the all the collpases from the routes.js\n const renderCollapse = (collapses) =>\n collapses.map(({ name, collapse, route, href, key, target, hideinsidebar }) =>\n {\n let returnValue;\n\n let ocultarItem = false;\n\n if (hideinsidebar != null && hideinsidebar)\n ocultarItem = true;\n\n if (ocultarItem)\n return \"\";\n else {\n if (collapse) {\n returnValue = (\n \n openNestedCollapse === key && currentTarget.classList.contains(\"MuiListItem-root\")\n ? setOpenNestedCollapse(false)\n : setOpenNestedCollapse(key)\n }\n >\n {renderNestedCollapse(collapse)}\n \n );\n } else {\n returnValue = href ? (\n \n \n \n ) : (\n \n \n \n );\n }\n return {returnValue};\n }\n });\n\n // Render all the routes from the routes.js (All the visible items on the Sidenav)\n const renderRoutes = routes.map(\n ({ type, name, icon, title, collapse, noCollapse, key, href, route, target, hideinsidebar }) => {\n let returnValue;\n\n let ocultarItem = false;\n\n if (hideinsidebar != null && hideinsidebar)\n ocultarItem = true;\n\n if (type === \"collapse\") {\n returnValue = href ? (\n \n \n \n ) : (\n (openCollapse === key ? setOpenCollapse(false) : setOpenCollapse(key))}\n >\n {collapse ? renderCollapse(collapse) : null}\n \n );\n } else if (type === \"title\") {\n returnValue = (\n \n {title}\n \n );\n } else if (type === \"divider\") {\n returnValue = (\n \n );\n }\n else if (type === \"estandar\" && !ocultarItem) {\n returnValue = (\n \n );\n }\n\n return returnValue;\n }\n );\n\n return (\n \n \n \n \n close\n \n \n \n {brand && }\n sidenavLogoLabel(theme, { miniSidenav })}\n >\n \n   {brandName}\n \n \n \n \n \n {renderRoutes}\n \n );\n}\n\n// Setting default values for the props of Sidenav\nSidenav.defaultProps = {\n color: \"info\",\n brand: \"\",\n};\n\n// Typechecking props for the Sidenav\nSidenav.propTypes = {\n color: PropTypes.oneOf([\"primary\", \"secondary\", \"info\", \"success\", \"warning\", \"error\", \"dark\"]),\n brand: PropTypes.string,\n brandName: PropTypes.string.isRequired,\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default Sidenav;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nexport default function sidenavLogoLabel(theme, ownerState) {\n const { functions, transitions, typography, breakpoints } = theme;\n const { miniSidenav } = ownerState;\n\n const { pxToRem } = functions;\n const { fontWeightMedium } = typography;\n\n return {\n ml: 0.5,\n fontWeight: fontWeightMedium,\n wordSpacing: pxToRem(-1),\n transition: transitions.create(\"opacity\", {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.standard,\n }),\n\n [breakpoints.up(\"xl\")]: {\n opacity: miniSidenav ? 0 : 1,\n },\n };\n}\n","/* eslint-disable prefer-destructuring */\n/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Button from \"@mui/material/Button\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Button)(({ theme, ownerState }) => {\n const { palette, functions, borders, boxShadows } = theme;\n const { color, variant, size, circular, iconOnly, darkMode } = ownerState;\n\n const { white, text, transparent, gradients, grey } = palette;\n const { boxShadow, linearGradient, pxToRem, rgba } = functions;\n const { borderRadius } = borders;\n const { colored } = boxShadows;\n\n // styles for the button with variant=\"contained\"\n const containedStyles = () => {\n // background color value\n const backgroundValue = palette[color] ? palette[color].main : white.main;\n\n // backgroundColor value when button is focused\n const focusedBackgroundValue = palette[color] ? palette[color].focus : white.focus;\n\n // boxShadow value\n const boxShadowValue = colored[color]\n ? `${boxShadow([0, 3], [3, 0], palette[color].main, 0.15)}, ${boxShadow(\n [0, 3],\n [1, -2],\n palette[color].main,\n 0.2\n )}, ${boxShadow([0, 1], [5, 0], palette[color].main, 0.15)}`\n : \"none\";\n\n // boxShadow value when button is hovered\n const hoveredBoxShadowValue = colored[color]\n ? `${boxShadow([0, 14], [26, -12], palette[color].main, 0.4)}, ${boxShadow(\n [0, 4],\n [23, 0],\n palette[color].main,\n 0.15\n )}, ${boxShadow([0, 8], [10, -5], palette[color].main, 0.2)}`\n : \"none\";\n\n // color value\n let colorValue = white.main;\n\n if (!darkMode && (color === \"white\" || color === \"light\" || !palette[color])) {\n colorValue = text.main;\n } else if (darkMode && (color === \"white\" || color === \"light\" || !palette[color])) {\n colorValue = grey[600];\n }\n\n // color value when button is focused\n let focusedColorValue = white.main;\n\n if (color === \"white\") {\n focusedColorValue = text.main;\n } else if (color === \"primary\" || color === \"error\" || color === \"dark\") {\n focusedColorValue = white.main;\n }\n\n return {\n background: backgroundValue,\n color: colorValue,\n boxShadow: boxShadowValue,\n\n \"&:hover\": {\n backgroundColor: backgroundValue,\n boxShadow: hoveredBoxShadowValue,\n },\n\n \"&:focus:not(:hover)\": {\n backgroundColor: focusedBackgroundValue,\n boxShadow: palette[color]\n ? boxShadow([0, 0], [0, 3.2], palette[color].main, 0.5)\n : boxShadow([0, 0], [0, 3.2], white.main, 0.5),\n },\n\n \"&:disabled\": {\n backgroundColor: backgroundValue,\n color: focusedColorValue,\n },\n };\n };\n\n // styles for the button with variant=\"outlined\"\n const outliedStyles = () => {\n // background color value\n const backgroundValue = color === \"white\" ? rgba(white.main, 0.1) : transparent.main;\n\n // color value\n const colorValue = palette[color] ? palette[color].main : white.main;\n\n // boxShadow value\n const boxShadowValue = palette[color]\n ? boxShadow([0, 0], [0, 3.2], palette[color].main, 0.5)\n : boxShadow([0, 0], [0, 3.2], white.main, 0.5);\n\n // border color value\n let borderColorValue = palette[color] ? palette[color].main : rgba(white.main, 0.75);\n\n if (color === \"white\") {\n borderColorValue = rgba(white.main, 0.75);\n }\n\n return {\n background: backgroundValue,\n color: colorValue,\n borderColor: borderColorValue,\n\n \"&:hover\": {\n background: transparent.main,\n borderColor: colorValue,\n },\n\n \"&:focus:not(:hover)\": {\n background: transparent.main,\n boxShadow: boxShadowValue,\n },\n\n \"&:active:not(:hover)\": {\n backgroundColor: colorValue,\n color: white.main,\n opacity: 0.85,\n },\n\n \"&:disabled\": {\n color: colorValue,\n borderColor: colorValue,\n },\n };\n };\n\n // styles for the button with variant=\"gradient\"\n const gradientStyles = () => {\n // background value\n const backgroundValue =\n color === \"white\" || !gradients[color]\n ? white.main\n : linearGradient(gradients[color].main, gradients[color].state);\n\n // boxShadow value\n const boxShadowValue = colored[color]\n ? `${boxShadow([0, 3], [3, 0], palette[color].main, 0.15)}, ${boxShadow(\n [0, 3],\n [1, -2],\n palette[color].main,\n 0.2\n )}, ${boxShadow([0, 1], [5, 0], palette[color].main, 0.15)}`\n : \"none\";\n\n // boxShadow value when button is hovered\n const hoveredBoxShadowValue = colored[color]\n ? `${boxShadow([0, 14], [26, -12], palette[color].main, 0.4)}, ${boxShadow(\n [0, 4],\n [23, 0],\n palette[color].main,\n 0.15\n )}, ${boxShadow([0, 8], [10, -5], palette[color].main, 0.2)}`\n : \"none\";\n\n // color value\n let colorValue = white.main;\n\n if (color === \"white\") {\n colorValue = text.main;\n } else if (color === \"light\") {\n colorValue = gradients.dark.state;\n }\n\n return {\n background: backgroundValue,\n color: colorValue,\n boxShadow: boxShadowValue,\n\n \"&:hover\": {\n boxShadow: hoveredBoxShadowValue,\n },\n\n \"&:focus:not(:hover)\": {\n boxShadow: boxShadowValue,\n },\n\n \"&:disabled\": {\n background: backgroundValue,\n color: colorValue,\n },\n };\n };\n\n // styles for the button with variant=\"text\"\n const textStyles = () => {\n // color value\n const colorValue = palette[color] ? palette[color].main : white.main;\n\n // color value when button is focused\n const focusedColorValue = palette[color] ? palette[color].focus : white.focus;\n\n return {\n color: colorValue,\n\n \"&:hover\": {\n color: focusedColorValue,\n },\n\n \"&:focus:not(:hover)\": {\n color: focusedColorValue,\n },\n };\n };\n\n // styles for the button with circular={true}\n const circularStyles = () => ({\n borderRadius: borderRadius.section,\n });\n\n // styles for the button with iconOnly={true}\n const iconOnlyStyles = () => {\n // width, height, minWidth and minHeight values\n let sizeValue = pxToRem(38);\n\n if (size === \"small\") {\n sizeValue = pxToRem(25.4);\n } else if (size === \"large\") {\n sizeValue = pxToRem(52);\n }\n\n // padding value\n let paddingValue = `${pxToRem(11)} ${pxToRem(11)} ${pxToRem(10)}`;\n\n if (size === \"small\") {\n paddingValue = pxToRem(4.5);\n } else if (size === \"large\") {\n paddingValue = pxToRem(16);\n }\n\n return {\n width: sizeValue,\n minWidth: sizeValue,\n height: sizeValue,\n minHeight: sizeValue,\n padding: paddingValue,\n\n \"& .material-icons\": {\n marginTop: 0,\n },\n\n \"&:hover, &:focus, &:active\": {\n transform: \"none\",\n },\n };\n };\n\n return {\n ...(variant === \"contained\" && containedStyles()),\n ...(variant === \"outlined\" && outliedStyles()),\n ...(variant === \"gradient\" && gradientStyles()),\n ...(variant === \"text\" && textStyles()),\n ...(circular && circularStyles()),\n ...(iconOnly && iconOnlyStyles()),\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v1.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/soft-ui-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n=========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Custom styles for MDButton\nimport MDButtonRoot from \"./MDButtonRoot\";\n\n// Material Dashboard 2 PRO React contexts\nimport { useMaterialUIController } from \"../../context\";\n\nconst MDButton = forwardRef(\n ({ color, variant, size, circular, iconOnly, children, ...rest }, ref) => {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n return (\n \n {children}\n \n );\n }\n);\n\n// Setting default values for the props of MDButton\nMDButton.defaultProps = {\n size: \"medium\",\n variant: \"contained\",\n color: \"white\",\n circular: false,\n iconOnly: false,\n};\n\n// Typechecking props for the MDButton\nMDButton.propTypes = {\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n variant: PropTypes.oneOf([\"text\", \"contained\", \"outlined\", \"gradient\"]),\n color: PropTypes.oneOf([\n \"white\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n circular: PropTypes.bool,\n iconOnly: PropTypes.bool,\n children: PropTypes.node.isRequired,\n};\n\nexport default MDButton;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Drawer from \"@mui/material/Drawer\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Drawer)(({ theme, ownerState }) => {\n const { boxShadows, functions, transitions } = theme;\n const { openConfigurator } = ownerState;\n\n const configuratorWidth = 360;\n const { lg } = boxShadows;\n const { pxToRem } = functions;\n\n // drawer styles when openConfigurator={true}\n const drawerOpenStyles = () => ({\n width: configuratorWidth,\n left: \"initial\",\n right: 0,\n transition: transitions.create(\"right\", {\n easing: transitions.easing.sharp,\n duration: transitions.duration.short,\n }),\n });\n\n // drawer styles when openConfigurator={false}\n const drawerCloseStyles = () => ({\n left: \"initial\",\n right: pxToRem(-350),\n transition: transitions.create(\"all\", {\n easing: transitions.easing.sharp,\n duration: transitions.duration.short,\n }),\n });\n\n return {\n \"& .MuiDrawer-paper\": {\n height: \"100vh\",\n margin: 0,\n padding: `0 ${pxToRem(10)}`,\n borderRadius: 0,\n boxShadow: lg,\n overflowY: \"auto\",\n ...(openConfigurator ? drawerOpenStyles() : drawerCloseStyles()),\n },\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nimport React, { useState, useEffect } from \"react\";\n\n// react-github-btn\nimport GitHubButton from \"react-github-btn\";\n\n// @mui material components\nimport Divider from \"@mui/material/Divider\";\nimport Switch from \"@mui/material/Switch\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Link from \"@mui/material/Link\";\nimport Icon from \"@mui/material/Icon\";\n\n// @mui icons\nimport TwitterIcon from \"@mui/icons-material/Twitter\";\nimport FacebookIcon from \"@mui/icons-material/Facebook\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../MDBox\";\nimport MDTypography from \"../MDTypography\";\nimport MDButton from \"../MDButton\";\n\n// Custom styles for the Configurator\nimport ConfiguratorRoot from \"./ConfiguratorRoot\";\n\n// Material Dashboard 2 PRO React context\nimport {\n useMaterialUIController,\n setOpenConfigurator,\n setTransparentSidenav,\n setWhiteSidenav,\n setMiniSidenav,\n setFixedNavbar,\n setSidenavColor,\n setDarkMode,\n} from \"../../context\";\n\nfunction Configurator() {\n const [controller, dispatch] = useMaterialUIController();\n const {\n openConfigurator,\n miniSidenav,\n fixedNavbar,\n sidenavColor,\n transparentSidenav,\n whiteSidenav,\n darkMode,\n } = controller;\n const [disabled, setDisabled] = useState(false);\n const sidenavColors = [\"primary\", \"dark\", \"info\", \"success\", \"warning\", \"error\"];\n\n // Use the useEffect hook to change the button state for the sidenav type based on window size.\n useEffect(() => {\n // A function that sets the disabled state of the buttons for the sidenav type.\n function handleDisabled() {\n return window.innerWidth > 1200 ? setDisabled(false) : setDisabled(true);\n }\n\n // The event listener that's calling the handleDisabled function when resizing the window.\n window.addEventListener(\"resize\", handleDisabled);\n\n // Call the handleDisabled function to set the state with the initial value.\n handleDisabled();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener(\"resize\", handleDisabled);\n }, []);\n\n const handleCloseConfigurator = () => setOpenConfigurator(dispatch, false);\n const handleTransparentSidenav = () => {\n setTransparentSidenav(dispatch, true);\n setWhiteSidenav(dispatch, false);\n };\n const handleWhiteSidenav = () => {\n setWhiteSidenav(dispatch, true);\n setTransparentSidenav(dispatch, false);\n };\n const handleDarkSidenav = () => {\n setWhiteSidenav(dispatch, false);\n setTransparentSidenav(dispatch, false);\n };\n const handleMiniSidenav = () => setMiniSidenav(dispatch, !miniSidenav);\n const handleFixedNavbar = () => setFixedNavbar(dispatch, !fixedNavbar);\n const handleDarkMode = () => setDarkMode(dispatch, !darkMode);\n\n // sidenav type buttons styles\n const sidenavTypeButtonsStyles = ({\n functions: { pxToRem },\n palette: { white, dark, background },\n borders: { borderWidth },\n }) => ({\n height: pxToRem(39),\n background: darkMode ? background.sidenav : white.main,\n color: darkMode ? white.main : dark.main,\n border: `${borderWidth[1]} solid ${darkMode ? white.main : dark.main}`,\n\n \"&:hover, &:focus, &:focus:not(:hover)\": {\n background: darkMode ? background.sidenav : white.main,\n color: darkMode ? white.main : dark.main,\n border: `${borderWidth[1]} solid ${darkMode ? white.main : dark.main}`,\n },\n });\n\n // sidenav type active button styles\n const sidenavTypeActiveButtonStyles = ({\n functions: { pxToRem, linearGradient },\n palette: { white, gradients, background },\n }) => ({\n height: pxToRem(39),\n background: darkMode ? white.main : linearGradient(gradients.dark.main, gradients.dark.state),\n color: darkMode ? background.sidenav : white.main,\n\n \"&:hover, &:focus, &:focus:not(:hover)\": {\n background: darkMode ? white.main : linearGradient(gradients.dark.main, gradients.dark.state),\n color: darkMode ? background.sidenav : white.main,\n },\n });\n\n return (\n \n \n \n Material UI Configurator\n \n See our dashboard options.\n \n \n\n ({\n fontSize: `${size.lg} !important`,\n color: darkMode ? white.main : dark.main,\n stroke: \"currentColor\",\n strokeWidth: \"2px\",\n cursor: \"pointer\",\n transform: \"translateY(5px)\",\n })}\n onClick={handleCloseConfigurator}\n >\n close\n \n \n\n \n\n \n \n Sidenav Colors\n\n \n {sidenavColors.map((color) => (\n ({\n width: \"24px\",\n height: \"24px\",\n padding: 0,\n border: `${borderWidth[1]} solid ${darkMode ? background.sidenav : white.main}`,\n borderColor: () => {\n let borderColorValue = sidenavColor === color && dark.main;\n\n if (darkMode && sidenavColor === color) {\n borderColorValue = white.main;\n }\n\n return borderColorValue;\n },\n transition: transitions.create(\"border-color\", {\n easing: transitions.easing.sharp,\n duration: transitions.duration.shorter,\n }),\n backgroundImage: ({ functions: { linearGradient }, palette: { gradients } }) =>\n linearGradient(gradients[color].main, gradients[color].state),\n\n \"&:not(:last-child)\": {\n mr: 1,\n },\n\n \"&:hover, &:focus, &:active\": {\n borderColor: darkMode ? white.main : dark.main,\n },\n })}\n onClick={() => setSidenavColor(dispatch, color)}\n />\n ))}\n \n \n\n \n Sidenav Type\n \n Choose between different sidenav types.\n \n\n \n \n Dark\n \n \n \n Transparent\n \n \n \n White\n \n \n \n \n Navbar Fixed\n\n \n \n \n \n Sidenav Mini\n\n \n \n \n \n Light / Dark\n\n \n \n \n \n \n \n buy now\n \n \n \n view documentation\n \n \n \n \n Star\n \n \n \n \n Thank you for sharing!\n \n\n \n \n \n \n   Tweet\n \n \n \n \n   Share\n \n \n \n \n \n );\n}\n\nexport default Configurator;\n","import React from \"react\";\n\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Link from \"@mui/material/Link\";\n\n// Material Dashboard 2 PRO React base styles\nimport typography from \"../../assets/theme/base/typography\";\nimport MDTypography from \"../MDTypography\";\r\nimport MDBox from \"../MDBox\";\r\n\nexport default function Footer({ ...props }) {\n const { white, contacto } = props;\n const { size } = typography;\n\n let links = [];\n\n //if (contacto != null && !contacto) {\n links.push({ href: \"https://atmovilidad.com/contacto/\", name: \"Contacto\" });\n //}\n links.push({ href: \"https://atmovilidad.com/politica-de-privacidad/\", name: \"Politica de Privacidad\" });\n //links.push({ href: \"cookies\", name: \"Cookies\" });\n //links.push({ href: \"terms\", name: \"Aviso Legal\" });\n\n const renderLinks = () =>\n links.map((link) => (\n \n \n \n {link.name}\n \n \n \n ));\n\n return (\n \n \n © {new Date().getFullYear()} by \n \n \n  {\"Aplicaciones Turisticas en Movilidad\"} \n \n \n \n ({\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n justifyContent: \"center\",\n listStyle: \"none\",\n mt: 3,\n mb: 0,\n p: 0,\n\n [breakpoints.up(\"lg\")]: {\n mt: 0,\n },\n })}\n >\n {renderLinks()}\n \n \n );\n}\nFooter.propTypes = {\n\n contacto: PropTypes.bool,\n white: PropTypes.bool,\n};","export const DataStatePage =\r\n{\r\n dsDesconocido: 'desconocido',\r\n dsInsert: 'insert',\r\n dsEdit: 'edit',\r\n dsSearch: 'search', \r\n};\r\n\r\nexport const DataStateModal =\r\n{\r\n dsClosed: false,\r\n dsOpen: true\r\n}\r\n\r\nexport const ModoModal =\r\n{\r\n SinDefinir : '',\r\n Back: 'back',\r\n Undo: 'undo',\r\n Delete: 'delete', \r\n};\r\n\r\nexport const ModoModalIdioma =\r\n{\r\n Closed: 'close',\r\n Edit: 'edit',\r\n New: 'new'\r\n};\r\n\r\nexport const TipoOthelloFieldGrid =\r\n{\r\n OthelloComboBox: 'OthelloComboBox',\r\n OthelloEdit: 'OthelloEdit',\r\n OthelloImagen: 'OthelloImagen',\r\n OthelloButton: 'OthelloButton',\r\n OthelloCurrency: 'OthelloCurrency',\r\n OthelloCurrency4Dec: 'OthelloCurrency4Dec',\r\n OthelloCheckBox: 'OthelloCheckBox',\r\n OthelloDateTime: 'OthelloDateTime',\r\n OthelloDate: 'OthelloDate',\r\n OthelloCurrencyNullable: 'OthelloCurrencyNullable',\r\n};\r\n\r\nexport const ModelosOficina = [\r\n { valor: \"0\", name: \"Clasico\" },\r\n { valor: \"1\", name: \"Lista\" },\r\n { valor: \"2\", name: \"Imagen con Lista\" }];\r\n\r\nexport const TiposOficina = [\r\n { valor: \"0\", name: \"Estandar\" },\r\n { valor: \"1\", name: \"CaminoSantiago\" },\r\n { valor: \"2\", name: \"Ruta\" },\r\n { valor: \"3\", name: \"Venta\" },\r\n { valor: \"4\", name: \"Corporativa\" },\r\n];\r\n\r\nexport const TipoOficina =\r\n{\r\n Estandar: 0,\r\n CaminoSantiago: 1,\r\n Ruta: 2,\r\n Venta: 3,\r\n Corporativa: 4\r\n};\r\n\r\nexport const OpcionSiNo = [\r\n{ valor: \"0\", name: \"No\" },\r\n{ valor: \"1\", name: \"Si\" }];\r\n\r\n\r\nexport const OpcionSiNoChar = [\r\n { valor: \"N\", name: \"No\" },\r\n { valor: \"S\", name: \"Si\" }];\r\n\r\nexport const LimiteProximidad = [\r\n { valor: \"0\", name: \"Ninguna\" },\r\n { valor: \"1\", name: \"25\" },\r\n { valor: \"2\", name: \"50\" },\r\n { valor: \"3\", name: \"75\" },\r\n { valor: \"4\", name: \"100\" },\r\n { valor: \"5\", name: \"200\" }];\r\n\r\nexport const Roles = {\r\n SuperUsuario : -1,\r\n Administrador : 0,\r\n Usuario : 1,\r\n UsuarioApp : 2\r\n}\r\n\r\nexport const RolesUsuarios = [\r\n { valor: Roles.SuperUsuario, name: \"SuperUsuario\" },\r\n { valor: Roles.Administrador, name: \"Administrador\" },\r\n { valor: Roles.Usuario, name: \"Usuario\" },\r\n { valor: Roles.UsuarioApp, name: \"UsuarioApp\" }];\r\n\r\nexport const TipoArea =\r\n{\r\n /// Area normal implica que tiene un funcionamiento normal, basado en si es afiliado \r\n Normal: 0,\r\n /// Implica que los pois se gestiona de una manera distinta, es decir, como notificacion, noticia, agenda, por tanto no aperecera en los mapas\r\n Agenda: 1,\r\n /// Implica que en el mapa principal de menu, se va a mostrar siempre\r\n Principal: 2,\r\n /// Implica que el area direcciona a una web\r\n Web: 3,\r\n /// acceso a opciones externas que no funcionan dentro de la opcion web de las apps\r\n Externo: 4,\r\n /// Acceso al tiempo en una localidad\r\n Tiempo: 5,\r\n /// Gestiona la opcion de estar en un mes concreto y nos lleva al mes actual\r\n Calendario: 6,\r\n Telefono: 7,\r\n Whastapp: 8,\r\n /// Realidad Aumentada \r\n RealidadAumentada : 9\r\n};\r\n\r\n\r\nexport const TiposArea = [\r\n { valor: TipoArea.Normal, name: \"Estandar\" },\r\n { valor: TipoArea.Agenda, name: \"Agenda\" },\r\n { valor: TipoArea.Principal, name: \"Principal\" },\r\n { valor: TipoArea.Web, name: \"Web\" },\r\n { valor: TipoArea.Externo, name: \"Externo\" },\r\n { valor: TipoArea.Tiempo, name: \"Tiempo\" },\r\n { valor: TipoArea.Calendario, name: \"Calendario\" },\r\n { valor: TipoArea.Telefono, name: \"Telefono\" },\r\n { valor: TipoArea.Whastapp, name: \"WhastApp\" },\r\n { valor: TipoArea.RealidadAumentada, name: \"Realidad Aumentada\" }\r\n];\r\n\r\nexport const OrdenacionPoi = {\r\n Titulo: 0,\r\n OrdenVisual: 1,\r\n Proximidad: 2\r\n};\r\n\r\nexport const OrdenacionPois = [\r\n { valor: OrdenacionPoi.Titulo, name: \"Por Nombre POI\" },\r\n { valor: OrdenacionPoi.OrdenVisual, name: \"Por Orden Visual\" }, \r\n { valor: OrdenacionPoi.Proximidad, name: \"Por Proximidad\" }];\r\n\r\n\r\nexport const Visibilidad = {\r\n No : -1,\r\n Si : 0,\r\n}\r\n\r\nexport const OpcionVisibilidad = [\r\n { valor: Visibilidad.No, name: \"No\" },\r\n { valor: Visibilidad.Si, name: \"Si\" }];\r\n\r\n\r\nexport const VisibilidadPoi = {\r\n Todos : -1,\r\n No: 1,\r\n Si: 0,\r\n}\r\n\r\nexport const OpcionVisibilidadPoi = [\r\n { valor: VisibilidadPoi.No, name: \"No\" },\r\n { valor: VisibilidadPoi.Si, name: \"Si\" }];\r\n\r\n\r\nexport const TiposCategorias = {\r\n SinCategoria: '0',\r\n UnaEstrella: '1',\r\n DosEstrellas: '2',\r\n TresEstrellas: '3',\r\n CuatroEstrellas: '4',\r\n CincoEstrellas : '5',\r\n HostalUnaEstrella : '6',\r\n HostalDosEstrella : '7',\r\n PuntoMotero : '8',\r\n Escorial : '9',\r\n UnaLlave : 'a',\r\n DosLlaves : 'b',\r\n TresLlaves: 'c',\r\n InteresPeregrinos: 'd',\r\n UnaEspiga : 'e',\r\n DosEspigas : 'f',\r\n TresEspigas : 'g',\r\n CuatroEspigas : 'h',\r\n CincoEspigas: 'i',\r\n Accesible : 'j', \r\n}\r\n\r\n export const Categorias =[\r\n { valor: TiposCategorias.SinCategoria, name: \"Sin Categoria\" },\r\n { valor: TiposCategorias.UnaEstrella, name: \"Una Estrella\" },\r\n { valor: TiposCategorias.DosEstrellas, name: \"Dos Estrellas\" },\r\n { valor: TiposCategorias.TresEstrellas, name: \"Tres Estrellas\" },\r\n { valor: TiposCategorias.CuatroEstrellas, name: \"Cuatro Estrellas\" },\r\n { valor: TiposCategorias.CincoEstrellas, name: \"Cinco Estrellas\" },\r\n { valor: TiposCategorias.HostalUnaEstrella, name: \"Hostal Una Estrella\" },\r\n { valor: TiposCategorias.HostalDosEstrella, name: \"Hostal Dos Estrellas\" },\r\n { valor: TiposCategorias.PuntoMotero, name: \"Punto Motero\" },\r\n { valor: TiposCategorias.Escorial, name: \"Escorial\" },\r\n { valor: TiposCategorias.UnaLlave, name: \"Una Llave\" },\r\n { valor: TiposCategorias.DosLlaves, name: \"Dos Llaves\" },\r\n { valor: TiposCategorias.TresLlaves, name: \"Tres Llaves\" },\r\n { valor: TiposCategorias.InteresPeregrinos, name: \"Interes Peregrinos\" },\r\n { valor: TiposCategorias.UnaEspiga, name: \"Una Espiga\" },\r\n { valor: TiposCategorias.DosEspigas, name: \"Dos Espigas\" },\r\n { valor: TiposCategorias.TresEspigas, name: \"Tres Espigas\" },\r\n { valor: TiposCategorias.CuatroEspigas, name: \"Cuatro Espigas\" },\r\n { valor: TiposCategorias.CincoEspigas, name: \"Cinco Espigas\" },\r\n { valor: TiposCategorias.Accesible, name: \"Accesible\" }, \r\n];\r\n\r\nexport const ModoAreaPoi = {\r\n Total : 0,\r\n ModoArea : 1,\r\n ModoPoi : 2,\r\n}\r\n\r\nexport const ModoAreasPoi = [\r\n { valor: ModoAreaPoi.Total, name: \"Total\" },\r\n { valor: ModoAreaPoi.ModoArea, name: \"Modo Areas\" },\r\n { valor: ModoAreaPoi.ModoPoi, name: \"Modo Pois\" }]; \r\n\r\nexport const ModoVisualizaNotificar = {\r\n NotificarYVisualizar : 0,\r\n Notificar : 1,\r\n Visualizar : 2,\r\n}\r\n\r\nexport const ModosVisualizaNotifica = [\r\n { valor: ModoVisualizaNotificar.NotificarYVisualizar, name: \"Notificar Y Visualizar\" },\r\n { valor: ModoVisualizaNotificar.Notificar, name: \"Notificar\" },\r\n { valor: ModoVisualizaNotificar.Visualizar, name: \"Visualizar\" }];\r\n\r\n\r\nexport const PopUpResult =\r\n{\r\n Closed: '',\r\n OK: 'ok',\r\n KO: 'ko',\r\n Info: 'info'\r\n};\r\n\r\nexport const ModoRuta = {\r\n Automatica: 0,\r\n Manual: 1 \r\n}\r\n\r\nexport const ModosRuta = [\r\n { valor: ModoRuta.Automatica, name: \"Automatica\" },\r\n { valor: ModoRuta.Manual, name: \"Manual\" }]; \r\n\r\n\r\nexport const MetodoRuta = {\r\n Coche: 0,\r\n Bicicleta: 1,\r\n APie: 2\r\n //Transit, aqui se puede poner hora de salida, llegada https://developers.google.com/maps/documentation/directions/intro#TravelModes\r\n}\r\n\r\nexport const MetodosRuta = [\r\n { valor: MetodoRuta.Coche, name: \"Coche\" },\r\n { valor: MetodoRuta.Bicicleta, name: \"Bicicleta\" },\r\n { valor: MetodoRuta.APie, name: \"A Pie\" }]; \r\n\r\nexport const ModelosArea = [\r\n { valor: \"0\", name: \"Clasico\" },\r\n { valor: \"1\", name: \"Lista Imagen\" },\r\n ];\r\n\r\nexport const TiposInstalacionReserva = {\r\n Piscina: 0,\r\n Padel: 1,\r\n Tenis: 2,\r\n Evento: 3,\r\n Excursiones : 4,\r\n Museo: 5,\r\n Futbol: 6,\r\n Polideportivo: 7,\r\n Fronton: 8,\r\n Gimnasio: 9\r\n}\r\n\r\nexport const OpcionTiposInstalacionReserva = [\r\n { valor: TiposInstalacionReserva.Piscina, name: \"Piscina\" },\r\n { valor: TiposInstalacionReserva.Padel, name: \"Padel\" },\r\n { valor: TiposInstalacionReserva.Tenis, name: \"Tenis\" },\r\n { valor: TiposInstalacionReserva.Evento, name: \"Evento\" },\r\n { valor: TiposInstalacionReserva.Excursiones, name: \"Excursiones\" },\r\n { valor: TiposInstalacionReserva.Museo, name: \"Museo\" },\r\n { valor: TiposInstalacionReserva.Futbol, name: \"Futbol\" },\r\n { valor: TiposInstalacionReserva.Polideportivo, name: \"Polideportivo\" },\r\n { valor: TiposInstalacionReserva.Fronton, name: \"Fronton\" },\r\n { valor: TiposInstalacionReserva.Gimnasio, name: \"Gimnasio\" }];\r\n\r\nexport const MessageOthelloBoxButtons = {\r\n //\r\n // Resumen:\r\n // The message box contains an OK button.\r\n OK: 0,\r\n //\r\n // Resumen:\r\n // The message box contains OK and Cancel buttons.\r\n OKCancel: 1,\r\n //\r\n // Resumen:\r\n // The message box contains Abort, Retry, and Ignore buttons.\r\n AbortRetryIgnore: 2,\r\n //\r\n // Resumen:\r\n // The message box contains Yes, No, and Cancel buttons.\r\n YesNoCancel: 3,\r\n //\r\n // Resumen:\r\n // The message box contains Yes and No buttons.\r\n YesNo: 4,\r\n //\r\n // Resumen:\r\n // The message box contains Retry and Cancel buttons.\r\n RetryCancel: 5\r\n}\r\n\r\nexport const DialogOthelloResult = {\r\n\r\n None: 0,\r\n OK: 1,\r\n Cancel: 2,\r\n Abort: 3,\r\n Retry: 4,\r\n Ignore: 5,\r\n Yes: 6,\r\n No: 7\r\n}\r\n\r\nexport const EstadoReserva = {\r\n Confirmada : 0,\r\n Cancelada : 1\r\n}\r\n\r\nexport const EstadosReserva = [\r\n { valor: EstadoReserva.Confirmada, name: \"Confirmada\" },\r\n { valor: EstadoReserva.Cancelada, name: \"Cancelada\" },\r\n];\r\n\r\nexport const ResultadoReserva = {\r\n OK : 0,\r\n SinDisponibilidad : 1,\r\n ErrorExcepcion : 2,\r\n UsuarioMaxTramosDia: 3,\r\n OkAFaltaDePago: 4,\r\n}\r\n\r\nexport const ResultadoPagoReserva = {\r\n OK : 0,\r\n KO: 1,\r\n OperacionNoValida : 2,\r\n ErrorExcepcion : 3,\r\n ReservaNoEncontrada : 4,\r\n PasarelaNoExiste: 5 \r\n}\r\n\r\n\r\nexport const TiposEntrega = {\r\n SinDefinir : 0,\r\n EnLocal : 1,\r\n EnCasa : 2,\r\n EnLocalYCasa : 3,\r\n Comer : 4,\r\n EnLocalYComer : 5,\r\n EnCasaYComer : 6,\r\n EnLocalYCasaYComer : 7\r\n}\r\n\r\nexport const TipoEntrega = [\r\n { valor: TiposEntrega.SinDefinir, name : \"Sin Definir\" },\r\n { valor: TiposEntrega.EnLocal, name : \"En el Local\" },\r\n { valor: TiposEntrega.EnCasa, name : \"En Casa\" },\r\n { valor: TiposEntrega.Comer, name : \"Comer\" },\r\n { valor: TiposEntrega.EnLocalYCasa, name : \"En el Local y en Casa\" },\r\n { valor: TiposEntrega.EnLocalYComer, name : \"En el Local y Comer\" },\r\n { valor: TiposEntrega.EnCasaYComer, name : \"En Casa y Comer\" },\r\n { valor: TiposEntrega.EnLocalYCasaYComer, name : \"En el Local y en Casa y Comer\" }\r\n\r\n];\r\n\r\n\r\nexport const TipoEntregaCombo = [\r\n { valor: TiposEntrega.EnLocal, name: \"En el Local\" },\r\n { valor: TiposEntrega.EnCasa, name: \"En Casa\" },\r\n { valor: TiposEntrega.Comer, name: \"Comer\" }, \r\n];\r\n\r\nexport const EstadoPedido = {\r\n Procesando: 0,\r\n Tramitado: 1,\r\n PendientePago: 2,\r\n EnEspera: 3,\r\n Enviado: 4,\r\n Completado: 5,\r\n Cancelado: 6,\r\n Reembolsado: 7,\r\n Fallido: 8\r\n}\r\n\r\n\r\nexport const EstadosPedido = [\r\n { valor: EstadoPedido.Procesando, name: \"Procesando\" },\r\n { valor: EstadoPedido.Tramitado, name: \"Tramitado\" },\r\n { valor: EstadoPedido.PendientePago, name: \"Pendiente de Pago\" },\r\n { valor: EstadoPedido.EnEspera, name: \"En Espera\" },\r\n { valor: EstadoPedido.Enviado, name: \"Enviado\" },\r\n { valor: EstadoPedido.Completado, name: \"Completado\" },\r\n { valor: EstadoPedido.Cancelado, name: \"Cancelado\" },\r\n { valor: EstadoPedido.Reembolsado, name: \"Reembolsado\" },\r\n { valor: EstadoPedido.Fallido, name: \"Fallido\" }\r\n\r\n];\r\n\r\n\r\nexport const OrdenaCategoria = {\r\n Titulo: 0,\r\n OrdenVisual: 1,\r\n};\r\n\r\nexport const OrdenacionCategoria = [\r\n { valor: OrdenaCategoria.Titulo, name: \"Por Nombre\" },\r\n { valor: OrdenaCategoria.OrdenVisual, name: \"Por Orden Visual\" }]; \r\n\r\nexport const EstadoArticulo = {\r\n EnStock : 0,\r\n Agotado : 1\r\n}\r\n\r\n\r\nexport const EstadosArticulo = [\r\n { valor: EstadoArticulo.EnStock, name: \"En Stock\" },\r\n { valor: EstadoArticulo.Agotado, name: \"Agotado\" }]; \r\n\r\n\r\nexport const TipoPeticion = {\r\n Establecimiento: 1,\r\n Contacto: 2\r\n}\r\n\r\nexport const TiposPeticion = [\r\n { valor: TipoPeticion.Establecimiento, name: \"Establecimiento\" },\r\n { valor: TipoPeticion.Contacto, name: \"Contacto\" }]; \r\n\r\nexport const TipoEncuenta = {\r\n Normal: 0,\r\n Juego: 1 \r\n}\r\n\r\nexport const TiposEncuenta = [\r\n { valor: TipoEncuenta.ComboUnoDiez, name: \"Normal\" },\r\n { valor: TipoEncuenta.Juego, name: \"Juego\" },\r\n];\r\n\r\nexport const TipoPreguntaEncuenta = {\r\n ComboUnoDiez : 0,\r\n SiNo : 1,\r\n Estrellas : 2,\r\n ComboBienMalRegular: 3,\r\n Combo: 4,\r\n TextoLibre: 5,\r\n Provincias: 6,\r\n Paises: 7,\r\n PreSelecOpcion: 8,\r\n Pista: 9\r\n}\r\n\r\nexport const TiposPreguntaEncuenta = [\r\n { valor: TipoPreguntaEncuenta.ComboUnoDiez, name: \"Valoracion Numerica\" },\r\n { valor: TipoPreguntaEncuenta.SiNo, name: \"Si-No\" },\r\n { valor: TipoPreguntaEncuenta.Estrellas, name: \"Estrellas\" },\r\n { valor: TipoPreguntaEncuenta.ComboBienMalRegular, name: \"Escala\" },\r\n { valor: TipoPreguntaEncuenta.Combo, name: \"Combo Opciones\" },\r\n { valor: TipoPreguntaEncuenta.TextoLibre, name: \"TextoLibre\" },\r\n { valor: TipoPreguntaEncuenta.Provincias, name: \"Provincias\" },\r\n { valor: TipoPreguntaEncuenta.Paises, name: \"Paises\" },\r\n { valor: TipoPreguntaEncuenta.PreSelecOpcion, name: \"Preseleccion Opcion\" },\r\n { valor: TipoPreguntaEncuenta.Pista, name: \"Pista\" }, \r\n]; \r\n\r\nexport const OpcionSiNoEncuesta = [\r\n { valor: \"0\", name: \"No\" },\r\n { valor: \"10\", name: \"Si\" }];\r\n\r\nexport const OpcionComboBienMalRegularEncuesta = [\r\n { valor: \"10\", name: \"Excelente\" },\r\n { valor: \"7.5\", name: \"Buena\" },\r\n { valor: \"5\", name: \"Regular\" },\r\n { valor: \"2.5\", name: \"Mala\" },\r\n { valor: \"0\", name: \"Muy Mala\" }];\r\n\r\nexport const OpcionComboUnoDiezEncuesta = [\r\n { valor: \"0\", name: \"Cero\" },\r\n { valor: \"1\", name: \"Uno\" },\r\n { valor: \"2\", name: \"Dos\" },\r\n { valor: \"3\", name: \"Tres\" },\r\n { valor: \"4\", name: \"Cuatro\" },\r\n { valor: \"5\", name: \"Cinco\" },\r\n { valor: \"6\", name: \"Seis\" },\r\n { valor: \"7\", name: \"Siete\" },\r\n { valor: \"8\", name: \"Ocho\" },\r\n { valor: \"9\", name: \"Nueve\" },\r\n { valor: \"10\", name: \"Diez\" }];\r\n\r\nexport const OpcionEstrellasEncuesta = [\r\n { valor: \"10\", name: \"Cinco Estrellas\" },\r\n { valor: \"8\", name: \"Cuatro Estrellas\" },\r\n { valor: \"6\", name: \"Tres Estrellas\" },\r\n { valor: \"4\", name: \"Dos Estrellas\" },\r\n { valor: \"2\", name: \"Una Estrella\" },\r\n { valor: \"0\", name: \"Ninguna\" }];\r\n\r\n\r\nexport const TipoBusquedaEstadisticas = {\r\n Ultimos30: 0,\r\n Ultimo180: 1,\r\n Ultimo365: 2,\r\n EsteMes: 3,\r\n ElMesPasado: 4,\r\n DesdeSiempre: 5,\r\n Personalizado: 6\r\n}\r\n\r\nexport const TiposBusquedaEstadisticas = [\r\n\r\n { valor: TipoBusquedaEstadisticas.Ultimos30, name: \"Ultimos 30 dias\" },\r\n { valor: TipoBusquedaEstadisticas.Ultimo180, name: \"Ultimos 180 dias\" },\r\n { valor: TipoBusquedaEstadisticas.Ultimo365, name: \"Ultimos 365 dias\" },\r\n { valor: TipoBusquedaEstadisticas.EsteMes, name: \"Este mes\" },\r\n { valor: TipoBusquedaEstadisticas.ElMesPasado, name: \"El mes pasado\" },\r\n { valor: TipoBusquedaEstadisticas.DesdeSiempre, name: \"Desde siempre\" },\r\n { valor: TipoBusquedaEstadisticas.Personalizado, name: \"Definir fechas\" }\r\n]\r\n\r\nexport const TipoValidacionEncuenta = {\r\n SinValidacion: 0,\r\n MedianteLogin: 1\r\n}\r\n\r\n\r\nexport const TiposValidacionEncuenta = [\r\n { valor: TipoValidacionEncuenta.SinValidacion, name: \"Sin Validacion\" },\r\n { valor: TipoValidacionEncuenta.MedianteLogin, name: \"Mediante Login\" }]; \r\n\r\n\r\nexport const FiltroVerReservas = [\r\n { valor: \"0\", name: \"Todas\" },\r\n { valor: \"1\", name: \"Mis Reservas\" }]; \r\n\r\n\r\nexport const OpcionesNominaciones = {\r\n Nombre: \"N\",\r\n Apellidos: \"A\",\r\n DNI: \"D\",\r\n Sexo: \"G\",\r\n Edad: \"O\",\r\n Telefono: \"T\",\r\n Email: \"E\",\r\n Club: \"B\",\r\n Direccion: \"C\",\r\n Procedencia: \"P\",\r\n Talla: \"S\",\r\n NumRegistroSanitario : \"M\"\r\n\r\n}\r\n\r\nexport const OpcionTipoMapa = [\r\n { valor: 0, name: \"Ninguno\" },\r\n { valor: 1, name: \"Normal\" },\r\n { valor: 2, name: \"Satelite\" },\r\n { valor: 3, name: \"Terreno\" },\r\n { valor: 4, name: \"Hibrida\" }];\r\n\r\nexport const DriversPasarela = [\r\n { valor: \"1\", name: \"RedSys\" },\r\n { valor: \"2\", name: \"PayComet\" },\r\n { valor: \"3\", name: \"AddOnPayments\" },\r\n { valor: \"4\", name: \"CecaBank\" }]\r\n\r\nexport const OpcionSiNoEntero = [\r\n { valor: 0, name: \"No\" },\r\n { valor: 1, name: \"Si\" }];\r\n\r\nexport const VisibilidadWeb = {\r\n No: -1,\r\n Si: 0,\r\n Oculta : 1\r\n}\r\n\r\nexport const OpcionVisibilidadWeb = [\r\n { valor: VisibilidadWeb.No, name: \"No\" },\r\n { valor: VisibilidadWeb.Si, name: \"Si\" },\r\n { valor: VisibilidadWeb.Oculta, name: \"Oculta\" }];\r\n\r\nexport const TipoVisualizacionInstalaciones = {\r\n Estandar: 0,\r\n Grafica: 1\r\n}\r\n\r\n\r\nexport const TiposVisualizacionInstalaciones = [\r\n { valor: TipoVisualizacionInstalaciones.Estandar, name: \"Estandar\" },\r\n { valor: TipoVisualizacionInstalaciones.Grafica, name: \"Grafica\" }];\r\n\r\n\r\nexport const OpcionVisibilidadDashboard = [\r\n { valor: 7, name: \"Ultimos 7 dias\" },\r\n { valor: 14, name: \"Ultimas 14 dias\" },\r\n { valor: 30, name: \"Ultimos 30 dias\" },\r\n { valor: 60, name: \"Ultimos 60 dias\" },\r\n { valor: 90, name: \"Ultimos 90 dias\" },\r\n { valor: 180, name: \"Ultimos 6 meses\" },\r\n { valor: 365, name: \"Ultimo año\" },\r\n];\r\n\r\n\r\nexport const OpcionVisibilidadReservas= [\r\n { valor: 0, name: \"Actuales\" },\r\n { valor: 7, name: \"Ultimos 7 dias\" },\r\n { valor: 14, name: \"Ultimas 14 dias\" },\r\n { valor: 30, name: \"Ultimos 30 dias\" },\r\n { valor: 60, name: \"Ultimos 60 dias\" },\r\n { valor: 90, name: \"Ultimos 90 dias\" },\r\n { valor: 180, name: \"Ultimos 6 meses\" },\r\n { valor: 365, name: \"Ultimo año\" },\r\n];\r\n\r\nexport const ModoReport =\r\n{\r\n Preview: 'Preview',\r\n Imprimir: 'print',\r\n Archivo: 'file',\r\n EMail: 'email'\r\n}\r\n\r\nexport const EstadoNotificacionWeb = {\r\n SinIndicar: -1,\r\n Enviado: 0,\r\n Leido: 1,\r\n DescartadoBorrado: 2\r\n}\r\n\r\nexport const TipoMensajeWeb = {\r\n Sistema: 0,\r\n Aviso: 1,\r\n Excepcion: 2\r\n}\r\n\r\n\r\nexport const TiposResultadoOthello = {\r\n Desconocido: 0,\r\n Ok: 1,\r\n Warning: 2,\r\n Error: 4\r\n}\r\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Button from \"@mui/material/Button\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Button)(({ theme, ownerState }) => {\n const { palette, functions } = theme;\n const { color, size, iconOnly, circular } = ownerState;\n\n const { white, socialMediaColors } = palette;\n const { pxToRem } = functions;\n\n // backgroundColor value\n const backgroundColorValue = socialMediaColors[color]\n ? socialMediaColors[color].main\n : socialMediaColors.facebook.main;\n\n // styles for the button with circular={true}\n const circularStyles = () => ({\n borderRadius: \"50%\",\n });\n\n // styles for the button with iconOnly={true}\n const iconOnlyStyles = () => {\n // width, height, minWidth and minHeight values\n let sizeValue = pxToRem(38);\n\n if (size === \"small\") {\n sizeValue = pxToRem(25.4);\n } else if (size === \"large\") {\n sizeValue = pxToRem(52);\n }\n\n // padding value\n let paddingValue = `${pxToRem(11)} ${pxToRem(11)} ${pxToRem(10)}`;\n\n if (size === \"small\") {\n paddingValue = pxToRem(4.5);\n } else if (size === \"large\") {\n paddingValue = pxToRem(16);\n }\n\n return {\n width: sizeValue,\n minWidth: sizeValue,\n height: sizeValue,\n minHeight: sizeValue,\n padding: paddingValue,\n };\n };\n\n return {\n backgroundColor: backgroundColorValue,\n color: white.main,\n\n \"&:hover\": {\n backgroundColor: backgroundColorValue,\n },\n\n \"&:focus:not(:hover)\": {\n backgroundColor: socialMediaColors[color]\n ? socialMediaColors[color].dark\n : socialMediaColors.facebook.dark,\n boxShadow: \"none\",\n },\n\n \"&:disabled\": {\n backgroundColor: backgroundColorValue,\n color: white.main,\n },\n\n ...(circular && circularStyles()),\n ...(iconOnly && iconOnlyStyles()),\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Custom styles for MDSocialButton\nimport MDSocialButtonRoot from \"./MDSocialButtonRoot\";\n\nconst MDSocialButton = forwardRef(({ color, size, iconOnly, circular, children, ...rest }, ref) => (\n \n {children}\n \n));\n\n// Setting default values for the props of MDSocialButton\nMDSocialButton.defaultProps = {\n size: \"medium\",\n color: \"facebook\",\n iconOnly: false,\n circular: false,\n};\n\n// Typechecking props for the MDSocialButton\nMDSocialButton.propTypes = {\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n color: PropTypes.oneOf([\n \"facebook\",\n \"twitter\",\n \"instagram\",\n \"linkedin\",\n \"pinterest\",\n \"youtube\",\n \"github\",\n \"vimeo\",\n \"slack\",\n \"dribbble\",\n \"reddit\",\n \"tumblr\",\n ]),\n iconOnly: PropTypes.bool,\n circular: PropTypes.bool,\n children: PropTypes.node.isRequired,\n};\n\nexport default MDSocialButton;\n","import React from \"react\";\n\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\n// material-ui components\n\nimport MDButton from \"./MDButton\";\r\nimport MDSocialButton from \"./MDSocialButton\";\r\nimport MDTypography from \"./MDTypography\";\r\n\nexport default function RegularButton({ ...props }) {\n const {\n size,\n variant,\n color,\n circular,\n iconOnly,\n children,\n onClick,\n disabled,\n fullWidth,\n mt,\n ...rest\n } = props;\n\n var coloresbase = [\n \"white\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ];\n\n if (color == null || color == \"\" || coloresbase.includes(color)) {\n\n return (\n \n \n {children}\n \n \n );\n }\n else {\n return (\n \n {children}\n \n )\r\n }\n}\n\n\nRegularButton.propTypes = {\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n variant: PropTypes.oneOf([\"text\", \"contained\", \"outlined\", \"gradient\"]),\n color: PropTypes.oneOf([\n \"white\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n circular: PropTypes.bool,\n iconOnly: PropTypes.bool,\n children: PropTypes.node.isRequired,\n onClick: PropTypes.object,\n disabled: PropTypes.bool\n}\n\n\n/*\nfunction RegularButton({ ...props }) {\n const {\n classes,\n color,\n round,\n children,\n fullWidth,\n disabled,\n simple,\n size,\n block,\n link,\n iconOnly,\n className,\n muiClasses,\n ...rest\n } = props;\n const btnClasses = classNames({\n [classes.button]: true,\n [classes[size]]: size,\n [classes[color]]: color,\n [classes.round]: round,\n [classes.fullWidth]: fullWidth,\n [classes.disabled]: disabled,\n [classes.simple]: simple,\n [classes.block]: block,\n [classes.link]: link,\n [classes.iconOnly]: iconOnly,\n [className]: className\n });\n return (\n \n );\n}\n\nRegularButton.propTypes = {\n classes: PropTypes.object.isRequired,\n color: PropTypes.oneOf([\n \"primary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"rose\",\n \"white\",\n \"twitter\",\n \"facebook\",\n \"google\",\n \"linkedin\",\n \"pinterest\",\n \"youtube\",\n \"tumblr\",\n \"github\",\n \"behance\",\n \"dribbble\",\n \"reddit\",\n \"transparent\"\n ]),\n size: PropTypes.oneOf([\"sm\", \"lg\"]),\n simple: PropTypes.bool,\n round: PropTypes.bool,\n fullWidth: PropTypes.bool,\n disabled: PropTypes.bool,\n block: PropTypes.bool,\n link: PropTypes.bool,\n iconOnly: PropTypes.bool,\n className: PropTypes.string,\n muiClasses: PropTypes.object\n};\n\nexport default withStyles(buttonStyle)(RegularButton);*/\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Box from \"@mui/material/Box\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Box)(({ theme, ownerState }) => {\n const { palette, typography, borders, functions } = theme;\n const { color } = ownerState;\n\n const { white, gradients } = palette;\n const { fontSizeRegular, fontWeightMedium } = typography;\n const { borderRadius } = borders;\n const { pxToRem, linearGradient } = functions;\n\n // backgroundImage value\n const backgroundImageValue = gradients[color]\n ? linearGradient(gradients[color].main, gradients[color].state)\n : linearGradient(gradients.info.main, gradients.info.state);\n\n return {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n minHeight: pxToRem(60),\n backgroundImage: backgroundImageValue,\n color: white.main,\n position: \"relative\",\n padding: pxToRem(16),\n marginBottom: pxToRem(16),\n borderRadius: borderRadius.md,\n fontSize: fontSizeRegular,\n fontWeight: fontWeightMedium,\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// @mui material components\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(\"span\")(({ theme }) => {\n const { palette, typography, functions } = theme;\n\n const { white } = palette;\n const { size, fontWeightMedium } = typography;\n const { pxToRem } = functions;\n\n return {\n color: white.main,\n fontSize: size.xl,\n padding: `${pxToRem(9)} ${pxToRem(6)} ${pxToRem(8)}`,\n marginLeft: pxToRem(40),\n fontWeight: fontWeightMedium,\n cursor: \"pointer\",\n lineHeight: 0,\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useState } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Fade from \"@mui/material/Fade\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../MDBox\"; \n\n// Custom styles for the MDAlert\nimport MDAlertRoot from \"./MDAlertRoot\";\nimport MDAlertCloseIcon from \"./MDAlertCloseIcon\";\n\nfunction MDAlert({ color, dismissible, children, ...rest }) {\n const [alertStatus, setAlertStatus] = useState(\"mount\");\n\n const handleAlertStatus = () => setAlertStatus(\"fadeOut\");\n\n // The base template for the alert\n const alertTemplate = (mount = true) => (\n \n \n \n {children}\n \n {dismissible ? (\n ×\n ) : null}\n \n \n );\n\n switch (true) {\n case alertStatus === \"mount\":\n return alertTemplate();\n case alertStatus === \"fadeOut\":\n setTimeout(() => setAlertStatus(\"unmount\"), 400);\n return alertTemplate(false);\n default:\n alertTemplate();\n break;\n }\n\n return null;\n}\n\n// Setting default values for the props of MDAlert\nMDAlert.defaultProps = {\n color: \"info\",\n dismissible: false,\n};\n\n// Typechecking props of the MDAlert\nMDAlert.propTypes = {\n color: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n dismissible: PropTypes.bool,\n children: PropTypes.node.isRequired,\n};\n\nexport default MDAlert;\n","import React, { useState } from \"react\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\r\n// core components\r\nimport { PopUpResult } from \"../othelloConstantes.jsx\";\r\n\r\n\r\nexport default function OthelloPopUpResult({ ...props }) {\r\n\r\n const { titulo } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [alert, setalert] = useState(props.alert);\r\n const [evento, setevento] = useState(false);\r\n\r\n const hideAlert = (alertfinal) => {\n\n setalert(null);\n setevento(true);\n\n props.onClosePopUpResult('PopUpResult', alertfinal);\n }\r\n\r\n\r\n let alertfinal = evento ? alert : props.alert;\r\n\r\n //Limpiamos que el cambio ha sido por el evento, por si en otro lugar se ha realizado el deshacer, o al principio, que en esos casos debe tomar el de por defecto\r\n //evento = false;\r\n\r\n let tipo = \"default\";\r\n let texto = titulo != null ? titulo : \"\";\r\n\r\n if (alertfinal == PopUpResult.OK)\r\n tipo = \"success\";\r\n else if (alertfinal == PopUpResult.KO)\r\n tipo = \"error\";\r\n else if (alertfinal == PopUpResult.Info)\r\n tipo = \"info\";\r\n\r\n if (texto == null || texto == \"\") {\r\n if (tipo == \"success\")\r\n texto = t(\"_operarealizada\");\r\n else if (tipo == \"error\")\r\n texto = t(\"_operanorealizada\");\r\n else if (tipo == \"info\")\r\n texto = t(\"_operarealizada\");\r\n }\r\n\r\n let estado = alertfinal == null || alertfinal == \"\" ? \"\" :\r\n (\r\n hideAlert(alertfinal)}\n /*confirmBtnCssClass={\r\n classes != null ? classes.button + \" \" + classes.error : \"\"\r\n }*/\n showConfirm={false}\n >\n \r\n );\r\n\r\n if (alertfinal != null)\r\n setTimeout(() => hideAlert(alertfinal), 2000);\r\n\r\n return (
{estado}
);\r\n}\r\n\r\nOthelloPopUpResult.propTypes = {\n classes: PropTypes.object.isRequired,\n alert: PropTypes.object,\n titulo: PropTypes.string,\r\n onClosePopUpResult: PropTypes.object,\r\n tipo: PropTypes.oneOf([\n 'default', 'info', 'success', 'warning', 'danger', 'error', 'input', 'custom'\n ]),\r\n};\r\n","import React from 'react';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\nimport { useTranslation } from 'react-i18next';\n\nimport Icon from \"@mui/material/Icon\";\n\nimport MDBox from '../components/MDBox';\nimport MDTypography from \"../components/MDTypography\";\n\n//Creamos un componente stateles, ya que no necesitamos nigun estado y son mas rapidos\nexport default function OthelloTituloPanelData({ ...props }) {\n const {\r\n margentop,\r\n margenboton,\r\n margenleft,\r\n tituloliteral,\r\n titulo,\r\n icon,\r\n bgcoloricon,\r\n backcoloretiqueta,\r\n backcolordata,\r\n children,\r\n childrenentitulo\r\n } = props;\n\n const { t } = useTranslation();\n\n let backetiqueta = backcoloretiqueta != null && backcoloretiqueta != '' ? backcoloretiqueta : \"secondary\";\n let backdata = backcolordata != null && backcolordata != '' ? backcolordata : 'white';\n\n let TieneHeader = (icon != null && icon != \"\") || (tituloliteral != null && tituloliteral != \"\") || (titulo != null && titulo != \"\")\n let TieneChildren = children != null && children != \"\";\n\n let heightHeader = 46;\n\n if (TieneChildren) {\n if (icon != null && icon != \"\")\n heightHeader = 55;\n else if (childrenentitulo)\n heightHeader = 46;\n else\n heightHeader = 48;\n }\n\n return (\r\n \r\n {TieneHeader ?\r\n \n {icon != null && icon != \"\" ?\n \n \n {icon}\n \n : \"\"\n }\n \n \n {t != null && tituloliteral != null ? t(tituloliteral) : titulo}\n \n {TieneChildren && childrenentitulo != null && childrenentitulo ? {children} : \"\"}\n \n : \"\"\r\n }\r\n {TieneChildren && !(childrenentitulo != null && childrenentitulo) ?\r\n \r\n {children}\r\n : \"\"}\r\n )\n\n}\n\n\nOthelloTituloPanelData.propTypes = {\n margenboton: PropTypes.string,\n margentop: PropTypes.string,\n margenleft: PropTypes.string,\n tituloliteral: PropTypes.string,\n titulo: PropTypes.string, //Texto informativo sobre el contenido del panel\n //BackColor de la zona de texto informativo\n backcoloretiqueta: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"dark\",\n \"white\",\n ]),\n //BackColor de la zona de datos\n backcolordata: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"dark\",\n \"white\",\n ]),\n icon: PropTypes.node, //icono si es que equeremos añadirle esta opcion\n bgcoloricon: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n childrenentitulo: PropTypes.bool\n};\r\n\r\n","import React, { useState } from \"react\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\nimport Slide from '@mui/material/Slide';\r\n\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogContent from \"@mui/material/DialogContent\";\r\nimport DialogActions from \"@mui/material/DialogActions\";\r\n\r\n// @mui/icons-material\r\nimport Close from '@mui/icons-material/Close';\r\n\r\n// core components\r\nimport Button from \"../components/Button.jsx\";\r\nimport OthelloTituloPanelData from './OthelloTituloPanelData.jsx';\r\n\r\nimport { MessageOthelloBoxButtons, DialogOthelloResult } from \"../othelloConstantes.jsx\";\r\n\r\nimport { MostrarRetorno } from '../othelloFunciones.jsx';\r\n\r\n\r\nfunction Transition(props) {\r\n return ;\r\n}\r\n\r\nexport default function OthelloModalBase({ ...props }) {\r\n\r\n const { tituloliteral, titulo, botones, textobotones, maxWidth } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [modal, setmodal] = useState(props.open);\r\n const [evento, setevento] = useState(false);\r\n const [retornoCResultadoOthello, setretornoCResultadoOthello] = useState(props.retornoCResultadoOthello);\r\n\r\n const handleClickOpen = (modal) => {\r\n //var x = [];\r\n //x[modal] = true;\r\n\r\n //this.setState(x);\r\n\r\n setmodal(true);\r\n\r\n }\r\n\r\n const handleClose = (modal, estado) => {\r\n if (props.autoclosebtaceptar == null || props.autoclosebtaceptar) {\r\n //var x = [];\r\n //x[modal] = false;\r\n //this.setState(x);\r\n setmodal(false);\r\n }\r\n\r\n if (props.onCloseResulModal != null)\r\n props.onCloseResulModal(props.modo, estado, null);\r\n\r\n //setevento(true)\r\n setretornoCResultadoOthello(null);\r\n }\r\n\r\n const getliteralboton = (t, botones, opc, textobotones) => {\r\n if (opc == 1) {\r\n if (textobotones != null && textobotones.length >= 1)\r\n return t != null ? t(textobotones[0]) : \"Aceptar\";\r\n else {\r\n if (botones == MessageOthelloBoxButtons.OK || botones == MessageOthelloBoxButtons.OKCancel)\r\n return t != null ? t('_aceptar') : \"Aceptar\";\r\n else if (botones == MessageOthelloBoxButtons.YesNo || botones == MessageOthelloBoxButtons.YesNoCancel)\r\n return t != null ? t('_si') : \"Si\";\r\n else if (botones == MessageOthelloBoxButtons.AbortRetryIgnore)\r\n return t != null ? t('_abortar') : \"Abortar\";\r\n else if (botones == MessageOthelloBoxButtons.RetryCancel)\r\n return t != null ? t('_retry') : \"Reintentar\";\r\n }\r\n }\r\n else if (opc == 2) {\r\n\r\n if (textobotones != null && textobotones.length >= 2)\r\n return t != null ? t(textobotones[1]) : \"Aceptar\";\r\n else {\r\n if (botones == MessageOthelloBoxButtons.OKCancel || botones == MessageOthelloBoxButtons.RetryCancel)\r\n return t != null ? t('_cancelar') : \"Cancelar\";\r\n else if (botones == MessageOthelloBoxButtons.YesNo || botones == MessageOthelloBoxButtons.YesNoCancel)\r\n return t != null ? t('_no') : \"No\";\r\n else if (botones == MessageOthelloBoxButtons.AbortRetryIgnore)\r\n return t != null ? t('_retry') : \"Reintentar\";\r\n }\r\n }\r\n else if (opc == 3) {\r\n if (textobotones != null && textobotones.length >= 3)\r\n return t != null ? t(textobotones[2]) : \"Aceptar\";\r\n else {\r\n if (botones == MessageOthelloBoxButtons.YesNoCancel)\r\n return t != null ? t('_cancelar') : \"Cancelar\";\r\n else if (botones == MessageOthelloBoxButtons.AbortRetryIgnore)\r\n return t != null ? t('_ignorar') : \"Ignorar\";\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n const getestado = (botones, opc) => {\r\n if (opc == 1) {\r\n if (botones == MessageOthelloBoxButtons.OK || botones == MessageOthelloBoxButtons.OKCancel)\r\n return DialogOthelloResult.OK;\r\n else if (botones == MessageOthelloBoxButtons.YesNo || botones == MessageOthelloBoxButtons.YesNoCancel)\r\n return DialogOthelloResult.Yes;\r\n else if (botones == MessageOthelloBoxButtons.AbortRetryIgnore)\r\n return DialogOthelloResult.Abort;\r\n else if (botones == MessageOthelloBoxButtons.RetryCancel)\r\n return DialogOthelloResult.Retry;\r\n }\r\n else if (opc == 2) {\r\n\r\n if (botones == MessageOthelloBoxButtons.OKCancel || botones == MessageOthelloBoxButtons.RetryCancel)\r\n return DialogOthelloResult.Cancel;\r\n else if (botones == MessageOthelloBoxButtons.YesNo || botones == MessageOthelloBoxButtons.YesNoCancel)\r\n return DialogOthelloResult.No;\r\n else if (botones == MessageOthelloBoxButtons.AbortRetryIgnore)\r\n return DialogOthelloResult.Retry;\r\n }\r\n else if (opc == 3) {\r\n\r\n if (botones == MessageOthelloBoxButtons.YesNoCancel)\r\n return DialogOthelloResult.Cancel;\r\n else if (botones == MessageOthelloBoxButtons.AbortRetryIgnore)\r\n return DialogOthelloResult.Ignore;\r\n }\r\n\r\n return DialogOthelloResult.None;\r\n }\r\n\r\n //Si no me viene definido los botones entonces estamos por defecto con el aceptar cancelar\r\n let botonesfinal = botones != null ? botones : MessageOthelloBoxButtons.OKCancel;\r\n\r\n let boton1 = \"\";\r\n let boton2 = \"\";\r\n let boton3 = \"\";\r\n\r\n boton1 = botones != MessageOthelloBoxButtons.None ? : \"\";\r\n\r\n //Si la opciones es distinta a la de OK, es que tenemos boton cancelar\r\n if (botones != MessageOthelloBoxButtons.OK && botones != MessageOthelloBoxButtons.None)\r\n boton2 = \r\n\r\n if (botones == MessageOthelloBoxButtons.AbortRetryIgnore || botones == MessageOthelloBoxButtons.YesNoCancel)\r\n boton3 = \r\n\r\n let showretorno = \"\";\r\n\r\n let retorno = evento ? retornoCResultadoOthello : props.retornoCResultadoOthello;\r\n\r\n if (retorno != null)\r\n showretorno = MostrarRetorno(retorno, false, props.onCloseCResulRetorno, retorno.botones, retorno.textoBotones, true);\r\n\r\n //Limpiamos que el cambio ha sido por el evento, por si en otro lugar se ha realizado el deshacer, o al principio, que en esos casos debe tomar el de por defecto\r\n //evento = false;\r\n\r\n return (\r\n
\r\n {\r\n if (reason !== 'backdropClick') {\r\n handleClose(\"modal\", DialogOthelloResult.Cancel)\r\n }\r\n }}\r\n aria-labelledby=\"modal-slide-title\"\r\n aria-describedby=\"modal-slide-description\"\r\n scroll=\"body\" >\r\n \r\n \n {\n \n }\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n {boton1}\r\n {boton2}\r\n {boton3}\r\n {showretorno}\r\n \r\n \r\n
\r\n\r\n );\r\n}\r\n\r\nOthelloModalBase.propTypes = {\n tituloliteral: PropTypes.string,\n titulo: PropTypes.string,\n open: PropTypes.bool, //Se gestioana con DataStateModal\r\n modo: PropTypes.object, //Constante ModoModal\r\n botones: PropTypes.object, //Los botones se gestionan con MessageOthelloBoxButtons\r\n textobotones: PropTypes.object, //Array de literales \r\n autoclosebtaceptar: PropTypes.bool, //indica si se quiere que se cierra el modal automaticamente al dar al pulsar aceptar (true si no se define)\r\n onCloseResulModal: PropTypes.object,\r\n retornoCResultadoOthello: PropTypes.object,\r\n onCloseCResulRetorno: PropTypes.object,\r\n maxWidth: PropTypes.object //Las opciones xs'| 'sm' | 'md' | 'lg' | 'xl' | false| string\r\n};\r\n\r\n\r\n\r\n//String Resp = \"\";\r\n\r\n//if (botones == MessageOthelloBoxButtons.AbortRetryIgnore || botones == MessageOthelloBoxButtons.YesNoCancel)\r\n// Resp = \"CANCEL\";\r\n//else\r\n// Resp = \"NO\";\r\n\r\n//foreach(IncidenciaUsuario Res in Resultado.Incidencias.Where(x => x.RespuestasUsuario == null || x.RespuestasUsuario.Equals(Resp)))\r\n//{\r\n// String Msj = Res.ParamsLiteralTextoUsuario != null && Res.ParamsLiteralTextoUsuario.Length > 0 ?\r\n// string.Format(NSClasesOthello.PlugIn.Preferencias.Literales.TomarLiteral(Res.LiteralTextoUsuario, Res.DefaultTextoUsuario),\r\n// Res.ParamsLiteralTextoUsuario) :\r\n// NSClasesOthello.PlugIn.Preferencias.Literales.TomarLiteral(Res.LiteralTextoUsuario, Res.DefaultTextoUsuario);\r\n\r\n// DialogOthelloResult respuesta = MostrarRetorno(Resultado, Msj, botones, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, TextButtons);\r\n\r\n// bool ContinuarConInci = true;\r\n\r\n// //SI es de tres botones\r\n// if (botones == MessageOthelloBoxButtons.AbortRetryIgnore || botones == MessageOthelloBoxButtons.YesNoCancel) {\r\n// if (respuesta == DialogOthelloResult.Abort || respuesta == DialogOthelloResult.Yes)\r\n// Res.RespuestasUsuario = \"SI\";\r\n// else if (respuesta == DialogOthelloResult.Retry || respuesta == DialogOthelloResult.No)\r\n// Res.RespuestasUsuario = \"NO\";\r\n// else\r\n// Res.RespuestasUsuario = \"CANCEL\";\r\n\r\n// //si se pulso el boton de cancelar y este \r\n// if (Res.RespuestasUsuario == \"CANCEL\" && !GestionBotonCancel)\r\n// ContinuarConInci = false;\r\n// }\r\n// //Si es de dos botones\r\n// else if (botones == MessageOthelloBoxButtons.YesNo || botones == MessageOthelloBoxButtons.OKCancel || botones == MessageOthelloBoxButtons.RetryCancel) {\r\n// if (respuesta == DialogOthelloResult.OK || respuesta == DialogOthelloResult.Yes || respuesta == DialogOthelloResult.Retry)\r\n// Res.RespuestasUsuario = \"SI\";\r\n// else\r\n// Res.RespuestasUsuario = \"NO\";\r\n\r\n// //si se pulso el boton de cancelar y este \r\n// if (Res.RespuestasUsuario == \"NO\" && !GestionBotonCancel)\r\n// ContinuarConInci = false;\r\n// }\r\n// //Sino, es que estamos en la opcion de solo un boton, el OK\r\n// else\r\n// Res.RespuestasUsuario = \"SI\";\r\n\r\n// return ContinuarConInci;\r\n//}","import React from \"react\";\r\n\r\n// @mui/material components\nimport Icon from \"@mui/material/Icon\";\r\n\r\n// @mui/icons-material\r\nimport Close from \"@mui/icons-material/Close\";\r\nimport Edit from \"@mui/icons-material/Edit\";\r\n\r\n// core components\r\nimport { ModoModal, EstadoPedido, ModoReport, TiposResultadoOthello, PopUpResult} from \"./othelloConstantes.jsx\";\r\nimport Button from \"./components/Button.jsx\";\r\n\r\nimport saveAs from \"file-saver\";\r\n\r\n\r\nimport MDAlert from \"./components/MDAlert/index.js\";\r\nimport MDTypography from \"./components/MDTypography/index.js\";\r\n\r\nimport OthelloPopUpResult from \"./componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloMostrarRetorno from \"./componentsothello/OthelloMostrarRetorno.jsx\";\r\n\r\n\r\nimport {\n withScriptjs,\n withGoogleMap,\n GoogleMap,\n Marker,\n} from \"react-google-maps\";\r\n\r\nexport function getCurrentDataFormulario(formulario) {\n var object = {};\r\n //let formulario = document.getElementById('formcliente');\r\n let formData = new FormData(formulario);\r\n formData.forEach((value, key) => { object[key] = value });\n\n return object;\n}\r\n\r\n\r\nexport function getFormularioDesdeCurrentData(currentdata) {\r\n\r\n var form_data = new FormData();\r\n\r\n if (currentdata != null && currentdata != \"\") {\r\n for (var key in currentdata) {\r\n form_data.append(key, currentdata[key]);\r\n }\r\n }\r\n\r\n return form_data;\r\n}\r\n\r\nexport function MensajeModalSegunEstado(modo) {\r\n\r\n if (modo == ModoModal.Undo || modo == ModoModal.Back)\r\n return (
Las modificaciones actuales se perderán

¿Estas seguro de deshacer los cambios realizados ?

);\r\n else if (modo == ModoModal.Delete)\r\n return \"¿Estas seguro de realizar la operacion de eliminar ?\"\r\n else\r\n return (\"\"); \r\n}\r\n\r\n\nexport function GetGridButtons(item, index, onEdit, onDelete) {\r\n\r\n let botones = [];\r\n\r\n if (onEdit != null)\r\n botones.push({ color: \"success\", icon: Edit });\r\n\r\n if (onDelete != null)\r\n botones.push({ color: \"error\", icon: Close });\r\n\r\n let fillButtons = botones.map((prop, key) => {\n return (\n \n );\n });\r\n\r\n return fillButtons;\r\n}\r\n\r\nexport function GetDiaSemana(dia) {\r\n if (dia == 1)\r\n return \"Lunes\";\r\n else if (dia == 2)\r\n return \"Martes\";\r\n else if (dia == 3)\r\n return \"Miercoles\";\r\n else if (dia == 4)\r\n return \"Jueves\";\r\n else if (dia == 5)\r\n return \"Viernes\";\r\n else if (dia == 6)\r\n return \"Sabado\";\r\n else if (dia == 0)\r\n return \"Domingo\";\r\n else\r\n return \"\";\r\n}\r\n\r\nexport function GetMes(mes) {\r\n if (mes == 0)\r\n return \"Enero\";\r\n else if (mes == 1)\r\n return \"Febrero\";\r\n else if (mes == 2)\r\n return \"Marzo\";\r\n else if (mes == 3)\r\n return \"Abril\";\r\n else if (mes == 4)\r\n return \"Mayo\";\r\n else if (mes == 5)\r\n return \"Junio\";\r\n else if (mes == 6)\r\n return \"Julio\";\r\n else if (mes == 7)\r\n return \"Agosto\";\r\n else if (mes == 8)\r\n return \"Septiembre\";\r\n else if (mes == 9)\r\n return \"Octubre\";\r\n else if (mes == 10)\r\n return \"Noviembre\";\r\n else if (mes == 11)\r\n return \"Diciembre\";\r\n else\r\n return \"\";\r\n}\r\n\r\nexport function GetEstadoString(estado) {\r\n\r\n if (estado == EstadoPedido.Procesando)\r\n return \"Procesando\";\r\n else if (estado == EstadoPedido.Tramitado)\r\n return \"Tramitado\";\r\n else if (estado == EstadoPedido.PendientePago)\r\n return \"Pendiente de Pago\";\r\n else if (estado == EstadoPedido.EnEspera)\r\n return \"En Espera\";\r\n else if (estado == EstadoPedido.Enviado)\r\n return \"Enviado\";\r\n else if (estado == EstadoPedido.Completado)\r\n return \"Completado\";\r\n else if (estado == EstadoPedido.Cancelado)\r\n return \"Cancelado\";\r\n else if (estado == EstadoPedido.Reembolsado)\r\n return \"Reembolsado\";\r\n else if (estado == EstadoPedido.Fallido)\r\n return \"Fallido\";\r\n else\r\n return \"\";\r\n\r\n}\r\n\r\nexport function ImprimirListado(reportmode, listado, datosbusqueda, callGetDatosReport, callbackEnvioListadoMail) {\r\n\r\n if (callGetDatosReport != null && callGetDatosReport != \"\") {\r\n let selectedFormat = 'pdf';\r\n\r\n var formData = new FormData();\r\n\r\n for (var key in datosbusqueda) {\r\n formData.append(key, datosbusqueda[key]);\r\n }\r\n\r\n fetch(callGetDatosReport, {\r\n method: 'POST',\r\n body: formData\r\n }).then(response => response.json()).then(res => {\r\n //Si estamos con un resultado de tipo report\r\n if (res != null && res.idreport != null && res.idreport != \"\") {\r\n //Si estamos en preview\r\n if (reportmode == ModoReport.Preview) {\r\n localStorage.setItem(\"pageListado\", listado);\r\n localStorage.setItem(\"pageData\", res.idreport);\r\n\r\n window.open('report') //to open new page\r\n }\r\n //si me dice imprimir\r\n else if (reportmode == ModoReport.Imprimir) {\r\n var frameElement = window.open(\"api/Report/Print?name=\" + listado + \"&idreport=\" + res.idreport, \"_blank\");\r\n frameElement.addEventListener(\"load\", function (e) {\r\n if (frameElement.document.contentType !== \"text/html\")\r\n frameElement.print();\r\n });\r\n }\r\n else if (reportmode == ModoReport.Archivo) {\r\n fetch(\"api/Report/Export?name=\" + listado + \"&idreport=\" + res.idreport + \"&format=\" + this.selectedFormat)\r\n .then(response => response.blob())\r\n .then(data => {\r\n saveAs(data, listado + '.' + selectedFormat.toLowerCase());\r\n });\r\n }\r\n else if (reportmode == ModoReport.EMail) {\r\n\r\n if (callbackEnvioListadoMail != null)\r\n callbackEnvioListadoMail(res);\r\n // this.setState({ dialogEmailOpen: DataStateModal.dsOpen, dataidreportdialog: res.idreport });\r\n }\r\n }\r\n //else if (res != null && ((res.exceptionMessageTraducible != null && res.exceptionMessageTraducible != \"\") || (res.exceptionMessage != null && res.exceptionMessage != \"\")))\r\n // this.setState({ retornoCResultadoOthello: res });\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n}\r\n\r\n\r\nexport function ParseBase64ToBlob(base64Data, tipoFichero) {\r\n let tipo = \"\";\r\n\r\n if (tipoFichero == \"csv\")\r\n tipo = \"text/csv\";\r\n else if (tipoFichero == \"png\")\r\n tipo = \"image/png\";\r\n else\r\n tipo = \"application/pdf\";\r\n\r\n const sliceSize = 1024;\r\n const byteCharacters = atob(base64Data);\r\n const bytesLength = byteCharacters.length;\r\n const slicesCount = Math.ceil(bytesLength / sliceSize);\r\n const byteArrays = new Array(slicesCount);\r\n\r\n for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\r\n const begin = sliceIndex * sliceSize;\r\n const end = Math.min(begin + sliceSize, bytesLength);\r\n\r\n const bytes = new Array(end - begin);\r\n for (let offset = begin, i = 0; offset < end; ++i, ++offset) {\r\n bytes[i] = byteCharacters[offset].charCodeAt(0);\r\n }\r\n byteArrays[sliceIndex] = new Uint8Array(bytes);\r\n }\r\n\r\n return new Blob(byteArrays, { type: tipo });\r\n}\r\n\r\nexport function renderNotificaciones(datos) {\r\n\r\n let finales = datos.map(x => \r\n\r\n notifications_active {\" \"}{x.titulo}\r\n );\r\n\r\n return finales;\r\n}\r\n\r\n//botones->> MessageOthelloBoxButtons\r\nexport function MostrarRetorno(resultadoOthello, soloIncidencia, onCloseResulRetorno, botones, textobotones, mostrarAlertOk) {\r\n //Si el resultado no fue valido y no solo queremos que trate incidencias\r\n if ((resultadoOthello.resultado != TiposResultadoOthello.Ok && !soloIncidencia) || (resultadoOthello.incidencias != null && resultadoOthello.incidencias.length >= 1))\r\n return \r\n else if (mostrarAlertOk && resultadoOthello.resultado == TiposResultadoOthello.Ok)\r\n return \r\n else\r\n return \"\";\r\n}\r\n\r\n\r\nexport function MontarTextoResultadoTraducido(resultadoOthello, t) {\r\n\r\n var Literal = \"\";\r\n\r\n //Si se trata de un CResultadoOthello\r\n if (resultadoOthello != null) {\r\n //Si tiene un mensaje de error traducible\r\n if (resultadoOthello.exceptionMessageTraducible != null && resultadoOthello.exceptionMessageTraducible != \"\") {\r\n Literal = t(resultadoOthello.exceptionMessageTraducible);\r\n\r\n //Si tiene valores\r\n //if (Res.ValoresExceptionMessageTraducible != null) {\r\n // try {\r\n // //Monto los parametros del string \r\n // return string.Format(Literal, Res.ValoresExceptionMessageTraducible);\r\n // }\r\n // catch\r\n // {\r\n // return Literal;\r\n // }\r\n //}\r\n ////Sino tiene valores\r\n //else\r\n // return Literal;\r\n }\r\n //Sino si tiene un warning traducible\r\n else if (resultadoOthello.warningMessageTraducible != null && resultadoOthello.warningMessageTraducible != \"\") {\r\n Literal = t(resultadoOthello.warningMessageTraducible);\r\n\r\n //Si tiene valores\r\n //if (Res.ValoresWarningMessageTraducible != null) {\r\n // try {\r\n // //Monto los parametros\r\n // return string.Format(Literal, Res.ValoresWarningMessageTraducible);\r\n // }\r\n // catch\r\n // {\r\n // return Literal;\r\n // }\r\n //}\r\n //else\r\n // return Literal;\r\n }\r\n //Si tiene un array de warning\r\n else if (resultadoOthello.warningDic != null && resultadoOthello.warningDic.length > 0) {\r\n Literal = \"\";\r\n resultadoOthello.warningDic.forEach(x => Literal += t(x.codigoLiteralMessage) + \"\\r\\n\");\r\n\r\n\r\n //foreach(WarningUsuario valor in Res.WarningDic)\r\n //{\r\n // //Obtengo el literal\r\n // String Literal = NSClasesOthello.PlugIn.Preferencias.Literales.TomarLiteral(valor.CodigoLiteralMessage, valor.MessageDefault) + \"\\r\\n\";\r\n\r\n // //Si tiene valores \r\n // if (valor.ValoresMessage != null) {\r\n // try {\r\n // //Monto los parametros\r\n // resul += string.Format(Literal, valor.ValoresMessage);\r\n // }\r\n // catch\r\n // {\r\n // }\r\n // }\r\n // //Sino le añado normal\r\n // else\r\n // resul += Literal;\r\n //} \r\n }\r\n else if (resultadoOthello.exceptionMessage != null && resultadoOthello.exceptionMessage != \"\")\r\n Literal = resultadoOthello.exceptionMessage;\r\n }\r\n\r\n return Literal;\r\n}\r\n\r\nexport function MensajeModalSegunEstado2(modo, literal, textodelete) {\r\n\r\n if (modo == ModoModal.Undo || modo == ModoModal.Back)\r\n return (
{literal('_undoback')}
);\r\n else if (modo == ModoModal.Delete)\r\n return textodelete != null ? literal(textodelete) : literal('_deleteopc');\r\n else\r\n return (\"\");\r\n}\r\n\r\nexport function GetGoogleMaps(latitud, longitud) {\n const MapWrapper = withScriptjs(\n withGoogleMap((props) => (\n \n \n \n )));\n\n return }\n containerElement={
}\n mapElement={
}\n />\n}\r\n\r\n\r\n","import React from 'react';\r\n\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport OthelloModalBase from './OthelloModalBase.jsx';\r\n\r\nimport { ModoModal } from \"../othelloConstantes.jsx\";\n\nimport { MontarTextoResultadoTraducido } from \"../othelloFunciones.jsx\";\n\n\nexport default function OthelloMostrarRetorno({ ...props })\n{\n const { t, Trans } = useTranslation();\n\n const {\r\n\r\n resultadoOthello,\r\n soloIncidencia, \r\n open, \r\n onCloseResulRetorno, \r\n botones,\r\n textobotones\r\n } = props;\r\n\r\n let mensaje = \"\";\r\n\r\n if (!soloIncidencia)\r\n {\r\n //Obtengo el mensaje traducido, si es que me viene los valores de traduccion y el resultado es valido y es de tipo CResultaOthello\r\n mensaje = MontarTextoResultadoTraducido(resultadoOthello, t);\r\n\r\n //Si aun no tenemos mensaje, pero tenemos valor en warning, mostramos el valor warrning\r\n if (mensaje == null || mensaje == \"\" && (resultadoOthello != null && resultadoOthello.Warning!= null && resultadoOthello.Warning != \"\"))\r\n mensaje = resultadoOthello.Warning;\r\n }\r\n\r\n //Si llegados hasta aqui no hay mensaje compruebo las incidencias de usuario\r\n if (mensaje == \"\")\r\n { \r\n //Si existe alguna incidencia\r\n if (resultadoOthello.incidencias != null && resultadoOthello.incidencias.length >= 1)\r\n { \r\n resultadoOthello.incidencias.forEach(x =>\r\n {\r\n let Resp = \"\";\r\n\r\n if (x.respuestasUsuario == null || x.respuestasUsuario.Equals(Resp))\r\n {\r\n if (x.paramsLiteralTextoUsuario != null && x.paramsLiteralTextoUsuario.length > 0)\r\n {\r\n let parametros = \" -> \";\r\n x.paramsLiteralTextoUsuario.forEach(y => parametros += \" | \" + y);\r\n\r\n mensaje = t(x.literalTextoUsuario) + \" \"+parametros;\r\n }\r\n else\r\n mensaje = t(x.literalTextoUsuario);\r\n\r\n //mensaje = \r\n //String Msj = Res.ParamsLiteralTextoUsuario != null && Res.ParamsLiteralTextoUsuario.Length > 0 ?\r\n // string.Format(NSClasesOthello.PlugIn.Preferencias.Literales.TomarLiteral(Res.LiteralTextoUsuario, Res.DefaultTextoUsuario),\r\n // Res.ParamsLiteralTextoUsuario) :\r\n // NSClasesOthello.PlugIn.Preferencias.Literales.TomarLiteral(Res.LiteralTextoUsuario, Res.DefaultTextoUsuario);\r\n\r\n return;\r\n }\r\n });\r\n } \r\n }\r\n\r\n //Si tenemos mensaje el retorno, me dvolvera el modal, y sino vacio para que no muestre nada\r\n return (\r\n mensaje != \"\" ?\r\n \r\n
{mensaje}
\r\n
: \"\"\r\n );\r\n}\r\n\r\nOthelloMostrarRetorno.propTypes = { \n resultadoOthello: PropTypes.object,\n soloIncidencia: PropTypes.bool, //Si solo debemos tratar la parte de incidencias \r\n onCloseResulRetorno: PropTypes.object,\r\n botones: PropTypes.object,\r\n textobotones: PropTypes.object\r\n};\r\n","import React from 'react';\r\n\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\nimport OthelloModalBase from './OthelloModalBase.jsx';\r\n\nexport default function OthelloMensaje({ ...props }) {\n const {\r\n tituloliteral,\r\n descrip,\r\n open,\r\n modo,\r\n onCloseResulModal,\r\n botones,\r\n textobotones\r\n } = props;\r\n\r\n return (\r\n \r\n
{descrip}
\r\n
\r\n );\r\n}\r\n\r\nOthelloMensaje.propTypes = {\n\n tituloliteral: PropTypes.string,\n descrip: PropTypes.string,\n open: PropTypes.bool, //Se gestioana con DataStateModal\r\n modo: PropTypes.object, //Constante ModoModal\r\n onCloseResulModal: PropTypes.object,\r\n botones: PropTypes.bool, //Los botones se gestionan con MessageOthelloBoxButtons\r\n textobotones: PropTypes.object, //Array de literales \r\n};\r\n\r\n","import React, { useState } from \"react\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\nimport PropTypes from \"prop-types\";\r\n\r\n// @mui/icons-material\nimport Done from \"@mui/icons-material/Done\";\nimport Undo from \"@mui/icons-material/Undo\";\nimport Add from \"@mui/icons-material/Add\";\nimport Search from \"@mui/icons-material/Search\";\nimport Clear from \"@mui/icons-material/Clear\";\r\n\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport Menu from \"@mui/material/Menu\";\r\n\r\n// core components\r\n\r\nimport { DataStatePage, DataStateModal, ModoModal, DialogOthelloResult, MessageOthelloBoxButtons } from \"../othelloConstantes.jsx\";\r\nimport { MensajeModalSegunEstado, ValidarPermisoOnLine } from \"../othelloFunciones.jsx\";\r\nimport OthelloMensaje from '../componentsothello/OthelloMensaje.jsx';\r\n\r\nimport Button from '../components/Button.jsx';\r\n\r\n\r\nexport default function OthelloBotonera({ ...props }) {\r\n\r\n const { statePage, arrayBotonesExtras, arrayBotonesCombo, cancelModoEliminar, forzarnuevo } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [stateModal, setstateModal] = useState(DataStateModal.dsClosed);\r\n const [modeModal, setmodeModal] = useState(ModoModal.SinDefinir);\r\n const [opencombo, setopencombo] = useState(false);\r\n const [anchor, setanchor] = useState(null);\r\n\r\n const [enabledbotones, setEnabledBotones] = useState(true);\r\n\r\n function doClickButton(callbackmethod, CurrentModoModal) {\r\n if (callbackmethod != null) {\r\n if (enabledbotones)\r\n {\r\n setEnabledBotones(false);\r\n\r\n var promise = new Promise(function (resolve, reject)\r\n {\r\n //Si tiene el evento de pulsar el boton \r\n if (callbackmethod != null)\r\n {\r\n if (CurrentModoModal != null) {\r\n setstateModal(DataStateModal.dsOpen);\r\n setmodeModal(CurrentModoModal);\r\n }\r\n else\r\n callbackmethod();\r\n\r\n } \r\n\r\n setTimeout(() => {\r\n resolve(true);\r\n }, 1000);\r\n });\r\n\r\n promise.then(result => {\r\n setEnabledBotones(true);\r\n }, function (error) {\r\n setEnabledBotones(true);\r\n });\r\n }\r\n }\r\n }\r\n\r\n const nuevoBoton = () => {\r\n //Si tiene el evento de pulsar el boton miramos si tiene permiso para realizar dicha accion\r\n if (props.onNuevo != null)\r\n doClickButton(props.onNuevo, null);\r\n }\r\n\r\n const grabarBoton = () => {\r\n //Si tiene el evento de pulsar el boton miramos si tiene permiso para realizar dicha accion\r\n if (props.onGrabar != null)\r\n doClickButton( props.onGrabar, null);\r\n }\r\n\r\n const cancelarBoton = () => {\r\n if (props.onCancel != null)\r\n doClickButton(props.onCancel, props.cancelModoEliminar != null && props.cancelModoEliminar ? ModoModal.Delete : ModoModal.Back);\r\n }\r\n\r\n const deshacerBoton = () => {\r\n if (props.onDeshacer != null)\r\n doClickButton(props.onDeshacer, ModoModal.Undo);\r\n }\r\n\r\n const buscarBoton = () => {\r\n if (props.onBuscar != null)\r\n doClickButton(props.onBuscar);\r\n }\r\n\r\n const onKeyDownBoton = (id, permiso) => {\r\n //Si tiene el evento de pulsar cualquier boton miramos si tiene permiso para realizar dicha accion\r\n if (props.onKeydown != null)\r\n doClickButton(permiso, props.onKeydown, id, null, null);\r\n }\r\n\r\n const othelloModalResul = (modo, result, valor) => {\r\n\r\n //Si hemos recibido un true es que debemos realizar alguna operacion con los recibido (refrescar la pantalla, actual, añadir)\r\n if (result == DialogOthelloResult.OK) {\r\n //Si pulso el cancelar, quitamos el modal y ponemos la pantalla en modo busqueda\r\n if (modo == ModoModal.Back || (modo == ModoModal.Delete && props.cancelModoEliminar != null && props.cancelModoEliminar)) {\r\n props.onCancel();\r\n\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodeModal(ModoModal.SinDefinir);\r\n }\r\n //Si pulso el deshacer, quitamos el modal y refrescamos los datos a los iniciales\r\n else if (modo == ModoModal.Undo) {\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodeModal(ModoModal.SinDefinir);\r\n props.onDeshacer();\r\n }\r\n //sino, lo ponemos como cerrado, limpiamos en el modo en el que se abrio y ponemos la pagina en modo busqueda\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodeModal(ModoModal.SinDefinir);\r\n }\r\n }\r\n //sino simplemente cerramos el modal\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\r\n }\r\n }\r\n\r\n const opencomboClick = (event) => {\r\n setopencombo(!opencombo);\r\n setanchor(event.currentTarget);\r\n }\r\n\r\n \r\n const getBotonesActivos = (literal, statePage, cancelModoEliminar, forzarnuevo) => {\r\n let Botones = [];\r\n\r\n if (props.onGrabar != null && (statePage == null|| statePage != DataStatePage.dsSearch))\r\n Botones.push({ name: literal('_aceptar'), color: \"success\", icon: Done, click: grabarBoton });\r\n\r\n if (props.onCancel != null && (statePage == null || statePage != DataStatePage.dsSearch))\r\n Botones.push({ name: literal(cancelModoEliminar != null && cancelModoEliminar ? '_eliminar' : '_cancelar'), color: \"error\", icon: Clear, click: cancelarBoton });\r\n\r\n if (props.onDeshacer != null && (statePage == null || statePage != DataStatePage.dsSearch))\r\n Botones.push({ name: literal('_deshacer'), color: \"warning\", icon: Undo, click: deshacerBoton });\r\n\r\n if (props.onNuevo != null && (statePage == null || forzarnuevo || statePage == DataStatePage.dsDesconocido || statePage == DataStatePage.dsSearch))\r\n Botones.push({ name: literal('_nuevo'), color: \"millenium\", icon: Add, click: nuevoBoton });\r\n\r\n if (props.onBuscar != null)\r\n Botones.push({ name: literal('_buscar'), color: \"info\", icon: Search, click: buscarBoton });\r\n\r\n //{ name: \"Eliminar\", color: \"danger\", icon: Delete, click: deleteBoton },\r\n //{ name: \"Nuevo\", color: \"primary\", icon: Add, click: nuevoDataPage },\r\n\r\n return Botones;\r\n }\r\n\r\n let BotonesPagina = \"\";\r\n let BotonesExtras = \"\";\r\n let BotonesCombo = \"\";\r\n\r\n //Obtengo los botones que estan activos segun las propiedades recibidas\r\n let BotonesActivos = getBotonesActivos(t, statePage, cancelModoEliminar, forzarnuevo);\r\n\r\n //Obtenemos los botones de la pagina\r\n BotonesPagina = BotonesActivos.map((prop, key) => { return (); });\r\n\r\n //Si existe botones extras\r\n if (arrayBotonesExtras != null && arrayBotonesExtras.length > 0)\r\n BotonesExtras = arrayBotonesExtras.map((prop, key) => { return (); });\r\n\r\n //Si existe botones auxiliares\r\n if (arrayBotonesCombo != null && arrayBotonesCombo.length > 0) {\r\n\r\n let OpcionesCombo = arrayBotonesCombo.map((prop, key) => { return ( onKeyDownBoton(prop.id, prop.permiso)}>{prop.icon != null ? : \"\"} {prop.texto}); })\r\n\r\n if (OpcionesCombo != null && OpcionesCombo != \"\") {\r\n BotonesCombo =
\r\n \r\n \r\n {OpcionesCombo}\r\n \n
\r\n }\r\n\r\n }\r\n\r\n let modal = \"\";\r\n\r\n //Si el estado del modal es distinto de cerrado\r\n if (stateModal != DataStateModal.dsClosed)\r\n modal = \r\n \r\n return (
\n
\n {BotonesPagina}\n {BotonesExtras}\n {BotonesCombo}\n {modal} \n
\n
);\r\n}\r\n\r\nOthelloBotonera.propTypes = {\n statePage: PropTypes.object.isRequired,\r\n onNuevo: PropTypes.object,\r\n onGrabar: PropTypes.object,\r\n onDeshacer: PropTypes.object,\r\n onBuscar: PropTypes.object,\r\n onCancel: PropTypes.object,\r\n //KeyDown sobre los Botones extras y del combo de opciones\r\n //Ejemplo: {id:x, icon:x, texto: x, permiso: x}\r\n onKeydown: PropTypes.object,\r\n arrayBotonesExtras: [],\r\n arrayBotonesCombo: [], \r\n cancelModoEliminar: PropTypes.string,\r\n forzarnuevo: PropTypes.bool\r\n\r\n};\r\n\r\n/*\r\nimport React, { Component } from 'react';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\n// @mui/icons-material\nimport Done from \"@mui/icons-material/Done\";\nimport Undo from \"@mui/icons-material/Undo\";\nimport Add from \"@mui/icons-material/Add\";\nimport Search from \"@mui/icons-material/Search\";\nimport Clear from \"@mui/icons-material/Clear\";\r\n\r\n// core components\r\nimport Button from \"../components/Button.jsx\";\r\nimport Grid from \"@mui/material/Grid\";\n\r\nimport { DataStatePage, DataStateModal, ModoModal } from \"../othelloConstantes.jsx\";\r\nimport { MensajeModalSegunEstado } from \"../othelloFunciones.jsx\";\r\nimport OthelloMensaje from '../componentsothello/OthelloMensaje.jsx';\r\n\r\nexport class OthelloBotonera2 extends Component \r\n{\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n stateModal: DataStateModal.dsClosed,\n modeModal: ModoModal.SinDefinir\r\n };\r\n\n this.grabarBoton = this.grabarBoton.bind(this);\n this.cancelarBoton = this.cancelarBoton.bind(this);\n this.deshacerBoton = this.deshacerBoton.bind(this); \n this.nuevoBoton = this.nuevoBoton.bind(this); \r\n this.buscarBoton = this.buscarBoton.bind(this);\r\n this.othelloModalResul = this.othelloModalResul.bind(this);\r\n\r\n this.getBotonesActivos = this.getBotonesActivos.bind(this); \r\n }\r\n\r\n nuevoBoton() {\r\n\r\n if (this.props.onNuevo != null)\r\n this.props.onNuevo();\r\n }\r\n\r\n grabarBoton() {\r\n this.props.onGrabar();\r\n }\r\n\r\n cancelarBoton() { \r\n this.setState({ stateModal: DataStateModal.dsOpen, modeModal: ModoModal.Back });\r\n }\r\n\r\n deshacerBoton() {\r\n \r\n this.setState({ stateModal: DataStateModal.dsOpen, modeModal: ModoModal.Undo });\r\n }\r\n\r\n buscarBoton() {\r\n\r\n this.props.onBuscar();\r\n }\r\n \r\n\r\n othelloModalResul(modo, result, valor) {\r\n\r\n //Si hemos recibido un true es que debemos realizar alguna operacion con los recibido (refrescar la pantalla, actual, añadir)\r\n if (result) {\r\n //Si pulso el cancelar, quitamos el modal y ponemos la pantalla en modo busqueda\r\n if (modo == ModoModal.Back)\r\n {\r\n this.props.onCancel();\r\n this.setState({ stateModal: DataStateModal.dsClosed, modeModal: ModoModal.SinDefinir });\r\n }\r\n //Si pulso el deshacer, quitamos el modal y refrescamos los datos a los iniciales\r\n else if (modo == ModoModal.Undo)\r\n {\r\n this.setState({ stateModal: DataStateModal.dsClosed, modeModal: ModoModal.SinDefinir });\r\n this.props.onDeshacer();\r\n } \r\n //sino, lo ponemos como cerrado, limpiamos en el modo en el que se abrio y ponemos la pagina en modo busqueda\r\n else\r\n { \r\n this.setState({ stateModal: DataStateModal.dsClosed, modeModal: ModoModal.SinDefinir });\r\n }\r\n }\r\n //sino simplemente cerramos el modal\r\n else\r\n this.setState({ stateModal: DataStateModal.dsClosed });\r\n }\r\n\r\n getBotonesActivos(forzarnuevo)\r\n {\r\n let Botones = [];\r\n\r\n if (forzarnuevo && this.props.onNuevo != null)\r\n Botones.push({ name: \"Nuevo\", color: \"primary\", icon: Add, click: this.nuevoBoton });\r\n\r\n if (this.props.onGrabar != null)\r\n Botones.push({ name: \"Aceptar\", color: \"success\", icon: Done, click: this.grabarBoton });\r\n\r\n if (this.props.onCancel != null)\r\n Botones.push({ name: \"Cancelar\", color: \"danger\", icon: Clear, click: this.cancelarBoton });\r\n\r\n if (this.props.onDeshacer != null)\r\n Botones.push({ name: \"Deshacer\", color: \"warning\", icon: Undo, click: this.deshacerBoton });\r\n\r\n if (this.props.onBuscar != null)\r\n Botones.push({ name: \"Buscar\", color: \"info\", icon: Search, click: this.buscarBoton });\r\n\r\n //{ name: \"Eliminar\", color: \"danger\", icon: Delete, click: deleteBoton }, \r\n\r\n return Botones; \r\n }\r\n \r\n render() {\r\n\r\n const { statePage, forzarnuevo } = this.props;\r\n\r\n let BotonesPagina = \"\";\r\n\r\n //Si estamos en modo busqueda solo debemos tener la opcion de añadir \r\n if (statePage == DataStatePage.dsSearch && this.props.onNuevo != null) \r\n BotonesPagina = (); \r\n //sino, es que estamos editando, insertando etc, por tanto\r\n else\r\n {\r\n //Obtengo los botones que estan activos segun las propiedades recibidas\r\n let BotonesActivos = this.getBotonesActivos(forzarnuevo);\r\n\r\n //Obtenemos los botones de la pagina\r\n BotonesPagina = BotonesActivos.map((prop, key) => { return (); }); \r\n }\r\n\r\n let modal = \"\";\r\n\r\n //Si el estado del modal es distinto de cerrado\r\n if (stateModal != DataStateModal.dsClosed)\r\n modal = \r\n\r\n return (\n \n {BotonesPagina}\n {modal}\n \n \n );\r\n\r\n \r\n } \r\n}\r\n\r\nOthelloBotonera2.propTypes = {\n statePage: PropTypes.object.isRequired, \n forzarnuevo: PropTypes.bool\n //onNuevo \n //onGrabar\n //onBuscar\n //onDeshacer\n};*/","import React, { useState } from \"react\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport ArrowDropDown from \"@mui/icons-material/ArrowDropDown\";\r\n\r\nimport MDBox from \"../components/MDBox/index.js\";\r\n\r\nexport default function OthelloComboBox({ ...props }) {\r\n\r\n const { classes, items, label, labelliteral, fieldname, readonly, disabled, multiple, sinlabel } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [comboboxvalue, setcomboboxvalue] = useState(props.currentvalue);\r\n const [evento, setevento] = useState(false);\r\n\r\n const handleOnChange = (event) => {\r\n\r\n // this.setState({ [event.target.name]: event.target.value });\r\n //this.setState({ comboboxvalue: event.target.value, evento: true });\r\n\r\n setcomboboxvalue(event.target.value)\r\n setevento(true);\r\n\r\n if (props.onChange != null)\r\n props.onChange(event.target.value, event.target.name);\r\n };\r\n\r\n const getItemComboBox = (items, multiple) => {\r\n\r\n let res = \"\";\r\n\r\n if (items != null) {\r\n res = items.map((prop, key) => {\r\n return ({prop.name}\r\n );\r\n });\r\n }\r\n\r\n return res;\r\n }\r\n\r\n\r\n let labelfinal = t != null && labelliteral != null ? t(labelliteral) : label;\r\n\r\n let itemscombo = getItemComboBox(items, multiple)\r\n\r\n let deshabilitado = disabled != null && disabled;\r\n\r\n let sololectura = readonly != null && readonly;\r\n\r\n //Si el que ha provocado el cambio es el evento entonces el valor del input es el que viene del evento, pero sino, el valor sera el de por defecto \r\n let valor = evento ? comboboxvalue : props.currentvalue;\r\n\r\n //Si estamos en modo multiple y el valor es null debemos poner el arraya vacio\r\n if (multiple) {\r\n try {\r\n if (valor == null || valor == \"\")\r\n valor = [];\r\n else if (typeof valor === 'string' && valor != \"\") {\r\n if (valor.includes(\",\")) {\r\n let final = [];\r\n valor.split(\",\").forEach(x => final.push(parseInt(x)));\r\n valor = final;\r\n }\r\n else\r\n valor = [parseInt(valor)];\r\n }\r\n } catch\r\n {\r\n valor = [];\r\n }\r\n }\r\n\r\n //Limpiamos que el cambio ha sido por el evento, por si en otro lugar se ha realizado el deshacer, o al principio, que en esos casos debe tomar el de por defecto\r\n //evento = false;\r\n\r\n let doshrink = valor != null && (valor != \"\" || !isNaN(valor));\r\n\r\n return (\r\n \r\n \r\n \r\n {sinlabel != null && sinlabel ? \"\" : {labelfinal}}\r\n \r\n \r\n \r\n {/**/}\r\n \r\n );\r\n}\r\n\r\nOthelloComboBox.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n items: PropTypes.object.isRequired, //{ name: nombre , valor : valor} \r\n fieldname: PropTypes.string,\r\n labelliteral: PropTypes.string,\r\n label: PropTypes.string,\r\n currentvalue: PropTypes.object,\r\n onChange: PropTypes.object,\r\n readonly: PropTypes.bool,\r\n disabled: PropTypes.bool,//OJO- EL PONER DISABLED LO QUITA DE LOS RESULTADOS DEVUELTOS DEL FORM\r\n multiple: PropTypes.bool,\r\n sinlabel: PropTypes.bool,\r\n};\r\n\r\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport TextField from \"@mui/material/TextField\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(TextField)(({ theme, ownerState }) => {\n const { palette, functions } = theme;\n const { error, success, disabled } = ownerState;\n\n const { grey, transparent, error: colorError, success: colorSuccess } = palette;\n const { pxToRem } = functions;\n\n // styles for the input with error={true}\n const errorStyles = () => ({\n backgroundImage:\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23F44335' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23F44335' stroke='none'/%3E%3C/svg%3E\\\")\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: `right ${pxToRem(12)} center`,\n backgroundSize: `${pxToRem(16)} ${pxToRem(16)}`,\n\n \"& .Mui-focused\": {\n \"& .MuiOutlinedInput-notchedOutline, &:after\": {\n borderColor: colorError.main,\n },\n },\n\n \"& .MuiInputLabel-root.Mui-focused\": {\n color: colorError.main,\n },\n });\n\n // styles for the input with success={true}\n const successStyles = () => ({\n backgroundImage:\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath fill='%234CAF50' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\\\")\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: `right ${pxToRem(12)} center`,\n backgroundSize: `${pxToRem(16)} ${pxToRem(16)}`,\n\n \"& .Mui-focused\": {\n \"& .MuiOutlinedInput-notchedOutline, &:after\": {\n borderColor: colorSuccess.main,\n },\n },\n\n \"& .MuiInputLabel-root.Mui-focused\": {\n color: colorSuccess.main,\n },\n });\n\n return {\n backgroundColor: disabled ? `${grey[200]} !important` : transparent.main,\n pointerEvents: disabled ? \"none\" : \"auto\",\n ...(error && errorStyles()),\n ...(success && successStyles()),\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Custom styles for MDInput\nimport MDInputRoot from \"./MDInputRoot\";\n\nconst MDInput = forwardRef(({ error, success, disabled, ...rest }, ref) => (\n \n));\n\n// Setting default values for the props of MDInput\nMDInput.defaultProps = {\n error: false,\n success: false,\n disabled: false,\n};\n\n// Typechecking props for the MDInput\nMDInput.propTypes = {\n error: PropTypes.bool,\n success: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nexport default MDInput;\n","import React, { useState } from \"react\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\n// material-ui components\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\n\r\nimport OthelloToolTipIcon from \"./OthelloTooltipIcon.jsx\";\r\n\r\nimport MDInput from \"../components/MDInput/index.js\";\r\nimport MDBox from \"../components/MDBox/index.js\";\r\nimport Help from \"@mui/icons-material/Help\";\r\n\r\nexport default function OthelloEdit({ ...props }) {\r\n\r\n\r\n const {\r\n label,\r\n labelliteral,\r\n fieldname,\r\n currentvalue,\r\n readonly,\r\n color,\r\n icono,\r\n etiqueta,\r\n iconoposicion,\r\n etiquetaposicion,\r\n rows,\r\n type,\r\n disabled,\r\n autocompletado,\r\n focused,\r\n onhandlePress,\r\n initeditexterno,\r\n setiniteditexterno,\r\n maxlength\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [onlinevalue, setonlinevalue] = useState(props.currentvalue);\r\n const [evento, setevento] = useState(false);\r\n\r\n React.useEffect(() => {\r\n\r\n if (initeditexterno != null && initeditexterno) {\r\n setiniteditexterno(false);\r\n setevento(false);\r\n }\r\n });\r\n\r\n const handleChange = (event) => {\r\n\r\n setonlinevalue(event.target.value);\r\n setevento(true);\r\n }\r\n\r\n const handleFocus = (event) => {\r\n if (props.onlostfocus != null)\r\n props.onlostfocus(props.fieldname, event.target.value);\r\n }\r\n\r\n const handleSelected = (event) => {\r\n event.target.select();\r\n }\r\n\r\n const handlePress = (e) => {\r\n\r\n if (e != null) {\r\n if (onhandlePress != null)\r\n onhandlePress(e.key);\r\n //if (e.key === 'Enter') {\r\n\r\n //}\r\n }\r\n }\r\n\r\n let sololectura = readonly != null && readonly;\r\n\r\n let decoraicono = icono != null && iconoposicion != null ? : \"\";\r\n let decoraetiqueta = etiqueta != null && etiquetaposicion != null ? {etiqueta} : \"\";\r\n\r\n let decoracioninicio = \"\";\r\n\r\n if (iconoposicion == \"start\")\r\n decoracioninicio = decoraicono;\r\n else if (etiquetaposicion == \"start\")\r\n decoracioninicio = decoraetiqueta;\r\n\r\n let decoracionfin = \"\";\r\n\r\n if (iconoposicion == \"end\")\r\n decoracionfin = decoraicono;\r\n else if (etiquetaposicion == \"end\")\r\n decoracionfin = decoraetiqueta;\r\n\r\n let multilineafinal = rows != null && rows > 1;\r\n\r\n //Si el que ha provocado el cambio es el evento entonces el valor del input es el que viene del evento, pero sino, el valor sera el de por defecto \r\n let valor = evento ? onlinevalue : currentvalue;\r\n\r\n //Limpiamos que el cambio ha sido por el evento, por si en otro lugar se ha realizado el deshacer, o al principio, que en esos casos debe tomar el de por defecto\r\n //if(evento)\r\n // setevento(false);\r\n\r\n let doshrink = valor != null && (valor != \"\" || !isNaN(valor));\r\n let MaxChars = (maxlength == null || (maxlength != null && (maxlength == \"\" || isNaN(maxlength)))) ? -1 : parseInt(maxlength);\r\n\r\n return \r\n\r\n //labelProps={{ shrink: true }}\r\n {/* */ }\r\n}\r\n\r\n\r\nOthelloEdit.propTypes = {\n items: PropTypes.object.isRequired,\n labelliteral: PropTypes.string,\n label: PropTypes.string,\n fieldname: PropTypes.string,\n currentvalue: PropTypes.object,\n readonly: PropTypes.bool,\n disabled: PropTypes.bool, //OJO- EL PONER DISABLED LO QUITA DE LOS RESULTADOS DEVUELTOS DEL FORM\n color: PropTypes.oneOf([\n \"success\",\n \"error\"\n ]),\n icono: PropTypes.object,\n iconoposicion: PropTypes.oneOf([\n \"start\",\n \"end\"\n ]),\n etiqueta: PropTypes.object,\n etiquetaposicion: PropTypes.oneOf([\n \"start\",\n \"end\"\n ]),\n type: PropTypes.string,\n rows: PropTypes.number,\r\n onlostfocus: PropTypes.object,\r\n autocompletado: PropTypes.bool,\r\n focused: PropTypes.bool,\r\n onhandlePress: PropTypes.object,\r\n initeditexterno: PropTypes.object,\r\n maxlength: PropTypes.number,\r\n setiniteditexterno: PropTypes.object// Un estate externo para gestionar la inicializacion del edit -->>> const [evento, setevento] = useState(false);\r\n};\r\n","export default __webpack_public_path__ + \"static/media/image_placeholder.61b9ec86.jpg\";","export default __webpack_public_path__ + \"static/media/placeholder.afc96671.jpg\";","import React, { useState } from \"react\";\n\n// used for making the prop types of this component\nimport PropTypes from \"prop-types\";\n\n// core components\nimport Button from \"./Button.jsx\";\n\nimport defaultImage from \"../assets/img/image_placeholder.jpg\";\nimport defaultAvatar from \"../assets/img/placeholder.jpg\";\nimport pdfimage from \"../assets/img/pdf-icon.png\";\nimport MDBox from \"./MDBox/index.js\";\r\n\nexport default function ImageUpload({ ...props }) {\n\n var {\n avatar,\n id,\n name,\n ocultarBotonesProps,\n marginImage,\n connombrefichero\n } = props;\n\n const [file, setfile] = useState(null);\n const [imagePreviewUrl, setimagePreviewUrl] = useState(props.avatar ? defaultAvatar : defaultImage);\n const [imageUrl, setimageUrl] = useState(props.imageUrl);\n \n\n var fileInput = React.createRef();\n\n const handleImageChange = e => {\n e.preventDefault();\n let reader = new FileReader();\n let fileread = e.target.files[0];\n reader.onloadend = () => {\n setfile(fileread);\n setimageUrl(reader.result); \n };\n\n reader.readAsDataURL(fileread);\n };\n\n const handleSubmit = e => {\n e.preventDefault();\n // file is the file/image uploaded\n // in this function you can save the image (file) on form submit\n // you have to call it yourself\n };\n\n const handleClick = e => {\n e.preventDefault();\n fileInput.current.click();\n };\n\n const handleRemove = () => {\n\n setfile(null);\n setimageUrl(props.avatar ? defaultAvatar : defaultImage);\n \n fileInput.current.value = null;\n };\n \n let imageshow = imageUrl != null && imageUrl != '' ? imageUrl : imagePreviewUrl;\n\n return (\n \n {connombrefichero != null && connombrefichero && file != null ? : \"\" }\n \n \n \r\n {file != null && file.type == \"application/pdf\" ?\n \"...\" : \"...\"}\r\n \n {ocultarBotonesProps ? \"\" :\n \n {file === null && (imageUrl == 'undefined' || imageUrl == null || imageUrl == \"\") ?\n (\n \n ) : (\n \n \n {avatar ?
: null}\n \n
\n )}\n
\n }\n \n );\n}\n\nImageUpload.propTypes = {\n avatar: PropTypes.bool,\n addButtonProps: PropTypes.object,\n changeButtonProps: PropTypes.object,\n removeButtonProps: PropTypes.object,\n ocultarBotonesProps: PropTypes.object,\n marginImage: PropTypes.object,\n connombrefichero: PropTypes.bool\n};\n\n/*\nclass ImageUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n file: null,\n imagePreviewUrl: this.props.avatar ? defaultAvatar : defaultImage,\n imageUrl: this.props.imageUrl,\n evento: false\n };\n }\n fileInput = React.createRef();\n handleImageChange = e => {\n e.preventDefault();\n let reader = new FileReader();\n let file = e.target.files[0];\n reader.onloadend = () => {\n this.setState({\n file: file,\n // imagePreviewUrl: reader.result,\n imageUrl: reader.result,\n evento: true\n });\n };\n reader.readAsDataURL(file);\n };\n handleSubmit = e => {\n e.preventDefault();\n // file is the file/image uploaded\n // in this function you can save the image (file) on form submit\n // you have to call it yourself\n };\n handleClick = e => {\n e.preventDefault();\n this.fileInput.current.click();\n };\n handleRemove = () => {\n this.setState({\n file: null,\n imagePreviewUrl: this.props.avatar ? defaultAvatar : defaultImage,\n imageUrl: \"\",\n evento: true\n });\n this.fileInput.current.value = null;\n };\n render() {\n var {\n avatar,\n addButtonProps,\n changeButtonProps,\n removeButtonProps, \n id,\n name\n } = this.props;\n\n //Si el que ha provocado el cambio es el evento entonces el valor del input es el que viene del evento, pero sino, el valor sera el de por defecto \n let imageUrlFinal = evento ? imageUrl : this.props.imageUrl; \n\n //Si salto por algo que no es evento, y la propiedad recibida esta vacia pero hay una imagen, esto se debe a que existio un error, por tanto, mantengo la imagen que estaba\n if (!evento && this.props.imageUrl == null && imageUrl != null)\n imageUrlFinal = imageUrl;\n\n evento = false;\n\n let imageshow = imageUrlFinal != null && imageUrlFinal != '' ? imageUrlFinal : imagePreviewUrl;\n\n //Si la imagen es vacia, no puede existir un fichero asociado\n if (imageUrlFinal == null || imageUrlFinal == \"\")\n file = null;\n //let imageshow = imageUrl != null && imageUrl != '' ? imageUrl : imagePreviewUrl;\n\n return (\n
\n \n \n\n
\n {file != null && file.type == \"application/pdf\" ?\n \"...\" : \"...\"}\n
\n
\n {file === null && (imageUrlFinal == 'undefined' || imageUrlFinal == null || imageUrlFinal == \"\") ?\n (\n \n ) : (\n \n \n {avatar ?
: null}\n this.handleRemove()}\n >\n Eliminar\n \n
\n )}\n
\n
\n );\n }\n}*/\n\n\n\n\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH0AAACjCAYAAACntBF6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIyRjc2MjI0MjUyODExRUM4MzIxOTQ5MjlFNzIxNzJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIyRjc2MjI1MjUyODExRUM4MzIxOTQ5MjlFNzIxNzJFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjJGNzYyMjIyNTI4MTFFQzgzMjE5NDkyOUU3MjE3MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjJGNzYyMjMyNTI4MTFFQzgzMjE5NDkyOUU3MjE3MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5lgquqAAAPLUlEQVR42uydCXAUZRbH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\"","/*!\n\n =========================================================\n * Material Dashboard PRO React - v1.5.0 based on Material Dashboard PRO - v1.2.1\n =========================================================\n\n * Product Page: https://www.creative-tim.com/product/material-dashboard-react\n * Copyright 2018 Creative Tim (https://www.creative-tim.com)\n * Licensed under MIT (https://github.com/creativetimofficial/material-dashboard-react/blob/master/LICENSE.md)\n\n =========================================================\n\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n */\n\n// ##############################\n// // // Function that converts from hex color to rgb color\n// // // Example: input = #9c27b0 => output = 156, 39, 176\n// // // Example: input = 9c27b0 => output = 156, 39, 176\n// // // Example: input = #999 => output = 153, 153, 153\n// // // Example: input = 999 => output = 153, 153, 153\n// #############################\nconst hexToRgb = input => {\n input = input + \"\";\n input = input.replace(\"#\", \"\");\n let hexRegex = /[0-9A-Fa-f]/g;\n if (!hexRegex.test(input) || (input.length !== 3 && input.length !== 6)) {\n throw new Error(\"input is not a valid hex color.\");\n }\n if (input.length === 3) {\n let first = input[0];\n let second = input[1];\n let last = input[2];\n input = first + first + second + second + last + last;\n }\n input = input.toUpperCase(input);\n let first = input[0] + input[1];\n let second = input[2] + input[3];\n let last = input[4] + input[5];\n return (\n parseInt(first, 16) +\n \", \" +\n parseInt(second, 16) +\n \", \" +\n parseInt(last, 16)\n );\n};\n\n// ##############################\n// // // Variables - Styles that are used on more than one component\n// #############################\n\nconst drawerWidth = 260;\n\nconst drawerMiniWidth = 80;\n\nconst transition = {\n transition: \"all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1)\"\n};\n\nconst containerFluid = {\n paddingRight: \"15px\",\n paddingLeft: \"15px\",\n marginRight: \"auto\",\n marginLeft: \"auto\",\n \"&:before,&:after\": {\n display: \"table\",\n content: '\" \"'\n },\n \"&:after\": {\n clear: \"both\"\n }\n};\n\nconst container = {\n paddingRight: \"15px\",\n paddingLeft: \"15px\",\n marginRight: \"auto\",\n marginLeft: \"auto\",\n \"@media (min-width: 768px)\": {\n width: \"750px\"\n },\n \"@media (min-width: 992px)\": {\n width: \"970px\"\n },\n \"@media (min-width: 1200px)\": {\n width: \"1170px\"\n },\n \"&:before,&:after\": {\n display: \"table\",\n content: '\" \"'\n },\n \"&:after\": {\n clear: \"both\"\n }\n};\n\nconst defaultFont = {\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n fontWeight: \"300\",\n lineHeight: \"1.5em\"\n};\n\nconst primaryColor = [\"#9c27b0\", \"#ab47bc\", \"#8e24aa\", \"#af2cc5\", \"#7b1fa2\"];\nconst warningColor = [\n \"#ff9800\",\n \"#ffa726\",\n \"#fb8c00\",\n \"#ffa21a\",\n \"#f57c00\",\n \"#faf2cc\",\n \"#fcf8e3\"\n];\nconst dangerColor = [\n \"#f44336\",\n \"#ef5350\",\n \"#e53935\",\n \"#f55a4e\",\n \"#d32f2f\",\n \"#ebcccc\",\n \"#f2dede\"\n];\nconst successColor = [\n \"#4caf50\",\n \"#66bb6a\",\n \"#43a047\",\n \"#5cb860\",\n \"#388e3c\",\n \"#d0e9c6\",\n \"#dff0d8\"\n];\nconst infoColor = [\n \"#00acc1\",\n \"#26c6da\",\n \"#00acc1\",\n \"#00d3ee\",\n \"#0097a7\",\n \"#c4e3f3\",\n \"#d9edf7\"\n];\nconst roseColor = [\"#e91e63\", \"#ec407a\", \"#d81b60\", \"#eb3573\", \"#c2185b\"];\nconst grayColor = [\n \"#999\",\n \"#777\",\n \"#3C4858\",\n \"#AAAAAA\",\n \"#D2D2D2\",\n \"#DDD\",\n \"#555555\",\n \"#333\",\n \"#eee\",\n \"#ccc\",\n \"#e4e4e4\",\n \"#E5E5E5\",\n \"#f9f9f9\",\n \"#f5f5f5\",\n \"#495057\",\n \"#e7e7e7\",\n \"#212121\",\n \"#c8c8c8\",\n \"#505050\"\n];\nconst blackColor = \"#000\";\nconst whiteColor = \"#FFF\";\nconst twitterColor = \"#55acee\";\nconst facebookColor = \"#3b5998\";\nconst googleColor = \"#dd4b39\";\nconst linkedinColor = \"#0976b4\";\nconst pinterestColor = \"#cc2127\";\nconst youtubeColor = \"#e52d27\";\nconst tumblrColor = \"#35465c\";\nconst behanceColor = \"#1769ff\";\nconst dribbbleColor = \"#ea4c89\";\nconst redditColor = \"#ff4500\";\n\nconst boxShadow = {\n boxShadow:\n \"0 10px 30px -12px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.42), 0 4px 25px 0px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.12), 0 8px 10px -5px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.2)\"\n};\n\nconst primaryBoxShadow = {\n boxShadow:\n \"0 4px 20px 0 rgba(\" +\n hexToRgb(blackColor) +\n \",.14), 0 7px 10px -5px rgba(\" +\n hexToRgb(primaryColor[0]) +\n \",.4)\"\n};\nconst infoBoxShadow = {\n boxShadow:\n \"0 4px 20px 0 rgba(\" +\n hexToRgb(blackColor) +\n \",.14), 0 7px 10px -5px rgba(\" +\n hexToRgb(infoColor[0]) +\n \",.4)\"\n};\nconst successBoxShadow = {\n boxShadow:\n \"0 4px 20px 0 rgba(\" +\n hexToRgb(blackColor) +\n \",.14), 0 7px 10px -5px rgba(\" +\n hexToRgb(successColor[0]) +\n \",.4)\"\n};\nconst warningBoxShadow = {\n boxShadow:\n \"0 4px 20px 0 rgba(\" +\n hexToRgb(blackColor) +\n \",.14), 0 7px 10px -5px rgba(\" +\n hexToRgb(warningColor[0]) +\n \",.4)\"\n};\nconst dangerBoxShadow = {\n boxShadow:\n \"0 4px 20px 0 rgba(\" +\n hexToRgb(blackColor) +\n \",.14), 0 7px 10px -5px rgba(\" +\n hexToRgb(dangerColor[0]) +\n \",.4)\"\n};\nconst roseBoxShadow = {\n boxShadow:\n \"0 4px 20px 0 rgba(\" +\n hexToRgb(blackColor) +\n \",.14), 0 7px 10px -5px rgba(\" +\n hexToRgb(roseColor[0]) +\n \",.4)\"\n};\n\nconst warningCardHeader = {\n background:\n \"linear-gradient(60deg, \" + warningColor[1] + \", \" + warningColor[2] + \")\",\n ...warningBoxShadow\n};\nconst successCardHeader = {\n background:\n \"linear-gradient(60deg, \" + successColor[1] + \", \" + successColor[2] + \")\",\n ...successBoxShadow\n};\nconst dangerCardHeader = {\n background:\n \"linear-gradient(60deg, \" + dangerColor[1] + \", \" + dangerColor[2] + \")\",\n ...dangerBoxShadow\n};\nconst infoCardHeader = {\n background:\n \"linear-gradient(60deg, \" + infoColor[1] + \", \" + infoColor[2] + \")\",\n ...infoBoxShadow\n};\nconst primaryCardHeader = {\n background:\n \"linear-gradient(60deg, \" + primaryColor[1] + \", \" + primaryColor[2] + \")\",\n ...primaryBoxShadow\n};\nconst roseCardHeader = {\n background:\n \"linear-gradient(60deg, \" + roseColor[1] + \", \" + roseColor[2] + \")\",\n ...roseBoxShadow\n};\n\nconst card = {\n display: \"inline-block\",\n position: \"relative\",\n width: \"100%\",\n margin: \"25px 0\",\n boxShadow: \"0 1px 4px 0 rgba(\" + hexToRgb(blackColor) + \", 0.14)\",\n borderRadius: \"6px\",\n color: \"rgba(\" + hexToRgb(blackColor) + \", 0.87)\",\n background: whiteColor\n};\n\nconst cardActions = {\n margin: \"0 20px 10px\",\n paddingTop: \"10px\",\n borderTop: \"1px solid \" + grayColor[8],\n height: \"auto\",\n ...defaultFont\n};\n\nconst cardHeader = {\n margin: \"-20px 15px 0\",\n borderRadius: \"3px\",\n padding: \"15px\"\n};\n\nconst defaultBoxShadow = {\n border: \"0\",\n borderRadius: \"3px\",\n boxShadow:\n \"0 10px 20px -12px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.42), 0 3px 20px 0px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.12), 0 8px 10px -5px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.2)\",\n padding: \"10px 0\",\n transition: \"all 150ms ease 0s\"\n};\n\nconst tooltip = {\n padding: \"10px 15px\",\n minWidth: \"130px\",\n color: whiteColor,\n lineHeight: \"1.7em\",\n background: \"rgba(\" + hexToRgb(grayColor[6]) + \",0.9)\",\n border: \"none\",\n borderRadius: \"3px\",\n opacity: \"1!important\",\n boxShadow:\n \"0 8px 10px 1px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.14), 0 3px 14px 2px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.12), 0 5px 5px -3px rgba(\" +\n hexToRgb(blackColor) +\n \", 0.2)\",\n maxWidth: \"200px\",\n textAlign: \"center\",\n fontFamily: '\"Helvetica Neue\",Helvetica,Arial,sans-serif',\n fontSize: \"12px\",\n fontStyle: \"normal\",\n fontWeight: \"400\",\n textShadow: \"none\",\n textTransform: \"none\",\n letterSpacing: \"normal\",\n wordBreak: \"normal\",\n wordSpacing: \"normal\",\n wordWrap: \"normal\",\n whiteSpace: \"normal\",\n lineBreak: \"auto\"\n};\n\nconst title = {\n color: grayColor[2],\n textDecoration: \"none\",\n fontWeight: \"300\",\n marginTop: \"30px\",\n marginBottom: \"25px\",\n minHeight: \"32px\",\n fontFamily: \"'Roboto', 'Helvetica', 'Arial', sans-serif\",\n \"& small\": {\n color: grayColor[1],\n fontSize: \"65%\",\n fontWeight: \"400\",\n lineHeight: \"1\"\n }\n};\n\nconst cardTitle = {\n ...title,\n marginTop: \"0\",\n marginBottom: \"3px\",\n minHeight: \"auto\",\n \"& a\": {\n ...title,\n marginTop: \".625rem\",\n marginBottom: \"0.75rem\",\n minHeight: \"auto\"\n }\n};\n\nconst cardSubtitle = {\n marginTop: \"-.375rem\"\n};\n\nconst cardLink = {\n \"& + $cardLink\": {\n marginLeft: \"1.25rem\"\n }\n};\n\nexport {\n hexToRgb,\n //variables\n drawerWidth,\n drawerMiniWidth,\n transition,\n container,\n containerFluid,\n boxShadow,\n card,\n defaultFont,\n primaryColor,\n warningColor,\n dangerColor,\n successColor,\n infoColor,\n roseColor,\n grayColor,\n blackColor,\n whiteColor,\n twitterColor,\n facebookColor,\n googleColor,\n linkedinColor,\n pinterestColor,\n youtubeColor,\n tumblrColor,\n behanceColor,\n dribbbleColor,\n redditColor,\n primaryBoxShadow,\n infoBoxShadow,\n successBoxShadow,\n warningBoxShadow,\n dangerBoxShadow,\n roseBoxShadow,\n warningCardHeader,\n successCardHeader,\n dangerCardHeader,\n infoCardHeader,\n primaryCardHeader,\n roseCardHeader,\n cardActions,\n cardHeader,\n defaultBoxShadow,\n tooltip,\n title,\n cardTitle,\n cardSubtitle,\n cardLink\n};\n","const hoverCardStyle = {\n cardHover: {\n \"&:hover\": {\n \"& $cardHeaderHover\": {\n transform: \"translate3d(0, -50px, 0)\"\n }\n }\n },\n cardHeaderHover: {\n transition: \"all 300ms cubic-bezier(0.34, 1.61, 0.7, 1)\"\n },\n cardHoverUnder: {\n position: \"absolute\",\n zIndex: \"1\",\n top: \"-50px\",\n width: \"calc(100% - 30px)\",\n left: \"17px\",\n right: \"17px\",\n textAlign: \"center\"\n }\n};\n\nexport default hoverCardStyle;\n","import {\n successColor,\n tooltip,\n cardTitle,\n grayColor\n} from \"../../material-dashboard-pro-react.jsx\";\n\nimport hoverCardStyle from \"../hoverCardStyle.jsx\";\n\nconst dashboardStyle = {\n ...hoverCardStyle,\n tooltip,\n cardTitle: {\n ...cardTitle,\n marginTop: \"0px\",\n marginBottom: \"3px\"\n },\n cardIconTitle: {\n ...cardTitle,\n marginTop: \"15px\",\n marginBottom: \"0px\"\n },\n cardProductTitle: {\n ...cardTitle,\n marginTop: \"0px\",\n marginBottom: \"3px\",\n textAlign: \"center\"\n },\n cardCategory: {\n color: grayColor[0],\n fontSize: \"14px\",\n paddingTop: \"10px\",\n marginBottom: \"0\",\n marginTop: \"0\",\n margin: \"0\"\n },\n cardProductDesciprion: {\n textAlign: \"center\",\n color: grayColor[0]\n },\n stats: {\n color: grayColor[0],\n fontSize: \"12px\",\n lineHeight: \"22px\",\n display: \"inline-flex\",\n \"& svg\": {\n position: \"relative\",\n top: \"4px\",\n width: \"16px\",\n height: \"16px\",\n marginRight: \"3px\"\n },\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\n position: \"relative\",\n top: \"4px\",\n fontSize: \"16px\",\n marginRight: \"3px\"\n }\n },\n productStats: {\n paddingTop: \"7px\",\n paddingBottom: \"7px\",\n margin: \"0\"\n },\n successText: {\n color: successColor[0]\n },\n upArrowCardCategory: {\n width: 14,\n height: 14\n },\n underChartIcons: {\n width: \"17px\",\n height: \"17px\"\n },\n price: {\n color: \"inherit\",\n \"& h4\": {\n marginBottom: \"0px\",\n marginTop: \"0px\"\n }\n }\n};\n\nexport default dashboardStyle;\n","import React from 'react';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\n// material-ui components\r\n\r\n\r\nimport dashboardStyle from \"../assets/jss/material-dashboard-pro-react/views/dashboardStyle.jsx\";\r\n\n//Creamos un componente stateles, ya que no necesitamos nigun estado y son mas rapidos\nfunction OthelloTitulo({ ...props }) {\n const { \n titulo, \r\n marginBottom,\r\n backgroundColor,\r\n borderRadius,\r\n color,\r\n fontSize\r\n } = props;\n\n \n return (\n
\n
{props.children}
\n

{titulo}

\n
\n ); \n}\n\nexport default (OthelloTitulo);\n\nOthelloTitulo.propTypes = { \n titulo: PropTypes.string, \n marginBottom: PropTypes.number,\n color: PropTypes.string, \n backgroundColor: PropTypes.string, \n borderRadius: PropTypes.number,\n fontSize: PropTypes.number\n}; ","import React, { Component } from 'react';\r\n\r\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport InsertDriveFile from \"@mui/icons-material/InsertDriveFile\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\n\r\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\r\n\r\nimport ImageUpload from \"../components/ImageUpload.jsx\";\r\nimport { ModelosOficina, TiposOficina, OpcionSiNo, LimiteProximidad, Roles, PopUpResult, OpcionTipoMapa, ModoReport } from \"../othelloConstantes.jsx\";\r\nimport { ImprimirListado } from '../othelloFunciones.jsx';\r\n\r\nimport { DataStatePage } from \"../othelloConstantes.jsx\";\n\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloTitulo from \"../componentsothello/OthelloTitulo.jsx\";\r\nimport OthelloTituloPanelData from '../componentsothello/OthelloTituloPanelData.jsx';\r\nimport MDTypography from '../components/MDTypography/index.js';\r\n\r\n// style for this view\r\n\r\nexport default function Oficina({ ...props }) {\r\n\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n const [statePage, setstatePage] = React.useState(DataStatePage.dsEdit);\n const [id_oficina, setid_oficina] = React.useState(0);\n const [dataoficina, setdataoficina] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n React.useEffect(() => {\r\n getDataPage();\r\n }, [loading]);\n\r\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetOficinaVirtual')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataoficina(data);\r\n setid_oficina(data.id_Oficina)\r\n setLoading(false);\r\n }).catch(error => {\r\n setdataoficina(null);\r\n setid_oficina(-1)\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetOficinaVirtualVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataoficina(data);\r\n setid_oficina(data.id_Oficina)\r\n setLoading(false);\r\n }).catch(error => {\r\n setdataoficina(null);\r\n setid_oficina(-1)\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Obtengo los datos \r\n let formulario = document.getElementById('formoficina');\r\n let data = new FormData(formulario);\r\n\r\n //AÑADO LA PARTE DE LA CONFIGURACION DE MAIL\r\n var jsonData = JSON.stringify({\r\n descripcion: document.getElementById(\"descripcionCorreo\").value,\r\n dISPLAYNAME: document.getElementById(\"displayCorreo\").value,\r\n eMAIL: document.getElementById(\"emailCorreo\").value,\r\n mAILHOST: document.getElementById(\"mailhostCorreo\").value,\r\n mailUser: document.getElementById(\"mailuserCorreo\").value,\r\n mailPass: document.getElementById(\"mailpassCorreo\").value,\r\n puerto: parseInt(document.getElementById(\"puertoCorreo\").value, 0),\r\n sSL: document.getElementById(\"sslCorreo\").value\r\n });\r\n\r\n data.append(\"ConfigEMailNotifica\", jsonData);\r\n\r\n //LLamamo al servicio\r\n fetch('api/Data/GrabarOficinaVirtual', {\n method: 'POST',\n body: data,\n\n }).then(response => response.json()).then(data => {\r\n if (data != null) {\r\n setdataoficina(data);\r\n setLoading(true);\r\n setalert(PopUpResult.OK);\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => {\r\n \r\n getDataVacia();\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n\r\n setLoading(true); \r\n }\r\n\r\n const keyDownDataPage = (id) => {\r\n\r\n if (id != null) {\r\n //Si estamos con la receta\r\n if (id == 'volcaroficina')\r\n {\r\n VolcarOficina(); \r\n }\r\n else if (id == 'volcaroficinaconupdate')\r\n {\r\n VolcarOficinaConUpdate();\r\n } \r\n }\r\n }\r\n\r\n const VolcarOficina = () => {\r\n\r\n var jsonData = JSON.stringify(false);\r\n\r\n fetch('api/Data/ActualizarVersionesOficina', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n setalert(PopUpResult.Info);\r\n }).catch(error => {\r\n\r\n });\r\n\r\n getDataPage();\r\n }\r\n\r\n const VolcarOficinaConUpdate = () => {\r\n\r\n var jsonData = JSON.stringify(true);\r\n\r\n fetch('api/Data/ActualizarVersionesOficina', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n setalert(PopUpResult.Info);\r\n\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n\r\n const onClosePopUpResult = () => {\r\n\r\n setalert(null);\r\n }\r\n\r\n function renderFormOficina(ofi) {\r\n\r\n if (ofi != null) {\r\n return (\r\n
\n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Acceso Rapido 1-2-3-4 si valor es -9 se trata de mostrar la opcion de incidencia en dicha posicion\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \r\n
\n
\n \n \n \r\n \n \n \r\n \n \n \r\n \n \n \r\n \n \n \n \n \n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \r\n
\n
\n \n \n
\n

Imagen Patrocinador

\n \n
\n \n
\n

Imagen Banner Reservas

\n \n
\n\n
\n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \r\n
\n
\n \n \n \n \r\n \n \n \r\n \n \n
\r\n );\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n\r\n let formulario = loading ?

: renderFormOficina(dataoficina);\r\n\r\n let NombreOficina = dataoficina != null && dataoficina.id_Oficina > 0 ? (dataoficina.tipoOfi == 3 ? \"Plataforma \" : \"Oficina \") + dataoficina.nombreOficina : \"Nueva Oficina\";\r\n\r\n let alerta = alert != null ? : \"\";\r\n\r\n let extras = [];\r\n\r\n if (idRol == Roles.SuperUsuario) {\r\n extras = [{ id: \"volcaroficina\", icon: InsertDriveFile, texto: \"Actualizar\", permiso: \"OP_xxx\" },\r\n { id: \"volcaroficinaconupdate\", icon: InsertDriveFile, texto: \"Actualizar +1\", permiso: \"OP_xxx\" },\r\n ];\r\n }\r\n\r\n return (\r\n \n \n {alerta}\n \n \n \n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*

{NombreOficina}

*/}\n {/*
*/}\n
\n \n \n {\n idRol == Roles.SuperUsuario ? :\n \n } \n \n \n \n \n {formulario}\n \n \n
\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// @mui/material components\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\n\n\nexport default function CustomTable({ ...props }) {\n const {\n tableHead,\n tableData,\n tableHeaderColor,\n hover,\n \n } = props;\n\n\n return (\n
\n \n {tableHead !== undefined ? (\n \n \n {tableHead.map((prop, key) => { \n return (\n \n {prop}\n \n );\n })}\n \n \n ) : null}\n \n {tableData.map((prop, key) => {\n var rowColor = \"\";\n var rowColored = false;\n if (prop.color !== undefined) {\n rowColor = prop.color;\n rowColored = true;\n prop = prop.data;\n }\n \n if (prop.total) {\n return (\n \n \n \n Total\n \n \n {prop.amount}\n \n {tableHead.length - (prop.colspan - 0 + 2) > 0 ? (\n \n ) : null}\n \n );\n }\n\n if (prop.purchase) {\n return (\n \n \n \n {prop.col.text}\n \n \n );\n }\n\n return (\n \n {prop.map((prop, key) => {\n return (\n \n {prop}\n \n );\n })}\n \n );\n })}\n \n
\n
\n );\n}\n\nCustomTable.defaultProps = {\n tableHeaderColor: \"gray\",\n hover: false,\n colorsColls: [],\n coloredColls: [], \n};\n\nCustomTable.propTypes = {\n classes: PropTypes.object.isRequired,\n tableHeaderColor: PropTypes.oneOf([\n \"warning\",\n \"primary\",\n \"danger\",\n \"success\",\n \"info\",\n \"rose\",\n \"gray\"\n ]),\n tableHead: PropTypes.arrayOf(PropTypes.string),\n // Of(PropTypes.arrayOf(PropTypes.node)) || Of(PropTypes.object),\n tableData: PropTypes.array,\n hover: PropTypes.bool,\n coloredColls: PropTypes.arrayOf(PropTypes.number),\n // Of([\"warning\",\"primary\",\"danger\",\"success\",\"info\",\"rose\",\"gray\"]) - colorsColls\n colorsColls: PropTypes.array, \n // this will cause some changes in font\n tableShopping: PropTypes.bool\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n// @mui material components\nimport { styled } from \"@mui/material/styles\";\n\n// Material Dashboard 2 PRO React components\nimport MDButton from \"../MDButton\";\n\nexport default styled(MDButton)(({ theme, ownerState }) => {\n const { borders, functions, typography, palette } = theme;\n const { variant, paginationSize, active } = ownerState;\n\n const { borderColor } = borders;\n const { pxToRem } = functions;\n const { fontWeightRegular, size: fontSize } = typography;\n const { light } = palette;\n\n // width, height, minWidth and minHeight values\n let sizeValue = pxToRem(36);\n\n if (paginationSize === \"small\") {\n sizeValue = pxToRem(30);\n } else if (paginationSize === \"large\") {\n sizeValue = pxToRem(46);\n }\n\n return {\n borderColor,\n margin: `0 ${pxToRem(2)}`,\n pointerEvents: active ? \"none\" : \"auto\",\n fontWeight: fontWeightRegular,\n fontSize: fontSize.sm,\n width: sizeValue,\n minWidth: sizeValue,\n height: sizeValue,\n minHeight: sizeValue,\n\n \"&:hover, &:focus, &:active\": {\n transform: \"none\",\n boxShadow: (variant !== \"gradient\" || variant !== \"contained\") && \"none !important\",\n opacity: \"1 !important\",\n },\n\n \"&:hover\": {\n backgroundColor: light.main,\n borderColor,\n },\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nimport React, { useContext } from \"react\";\n\nimport { createContext } from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../MDBox\";\n\n// Custom styles for MDPagination\nimport MDPaginationItemRoot from \"./MDPaginationItemRoot\";\n\n// The Pagination main context\nconst Context = createContext();\n\nconst MDPagination = forwardRef\n(\n ({ item, variant, color, size, active, children, ...rest }, ref) => {\n\n const contexto = useContext(Context);\n const context = /*item ? useContext(Context) :*/ null;\n const paginationSize = contexto ? contexto.size : null;\n\n return (\n \n {item ? (\n \n {children}\n \n ) : (\n \n {children}\n \n )}\n \n );\n }\n);\n\n// Setting default values for the props of MDPagination\nMDPagination.defaultProps = {\n item: false,\n variant: \"gradient\",\n color: \"info\",\n size: \"medium\",\n active: false,\n};\n\n// Typechecking props for the MDPagination\nMDPagination.propTypes = {\n item: PropTypes.bool,\n variant: PropTypes.oneOf([\"gradient\", \"contained\"]),\n color: PropTypes.oneOf([\n \"white\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n active: PropTypes.bool,\n children: PropTypes.node.isRequired,\n};\n\nexport default MDPagination;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\n\n// Material Dashboard 2 PRO React contexts\nimport { useMaterialUIController } from \"../../../context\";\n\nfunction DataTableHeadCell({ width, children, sorted, align, ...rest }) {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n return (\n ({\n borderBottom: `${borderWidth[1]} solid ${light.main}`,\n })}\n >\n ({\n fontSize: size.xxs,\n fontWeight: fontWeightBold,\n textTransform: \"uppercase\",\n cursor: sorted && \"pointer\",\n userSelect: sorted && \"none\",\n })}\n >\n {children}\n {sorted && (\n ({\n fontSize: size.lg,\n })}\n >\n \n arrow_drop_up\n \n \n arrow_drop_down\n \n \n )}\n \n \n );\n}\n\n// Setting default values for the props of DataTableHeadCell\nDataTableHeadCell.defaultProps = {\n width: \"auto\",\n sorted: \"none\",\n align: \"left\",\n};\n\n// Typechecking props for the DataTableHeadCell\nDataTableHeadCell.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.node.isRequired,\n sorted: PropTypes.oneOf([false, \"none\", \"asce\", \"desc\"]),\n align: PropTypes.oneOf([\"left\", \"right\", \"center\"]),\n};\n\nexport default DataTableHeadCell;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\n\nfunction DataTableBodyCell({ width, noBorder, align, children }) {\n return (\n ({\n fontSize: size.sm,\n borderBottom: noBorder ? \"none\" : `${borderWidth[1]} solid ${light.main}`,\n })}\n >\n \n {children}\n \n \n );\n}\n\n// Setting default values for the props of DataTableBodyCell\nDataTableBodyCell.defaultProps = {\n noBorder: false,\n align: \"left\",\n};\n\n// Typechecking props for the DataTableBodyCell\nDataTableBodyCell.propTypes = {\n children: PropTypes.node.isRequired,\n noBorder: PropTypes.bool,\n align: PropTypes.oneOf([\"left\", \"right\", \"center\"]),\n};\n\nexport default DataTableBodyCell;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useMemo, useEffect, useState } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// react-table components\nimport { useTable, usePagination, useGlobalFilter, useAsyncDebounce, useSortBy } from \"react-table\";\n\nimport { useTranslation } from 'react-i18next';\n\n// @mui material components\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Icon from \"@mui/material/Icon\";\nimport Autocomplete from \"@mui/material/Autocomplete\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\nimport MDTypography from \"../../MDTypography\";\nimport MDInput from \"../../MDInput\";\nimport MDPagination from \"../../MDPagination\";\n\n// Material Dashboard 2 PRO React example components\nimport DataTableHeadCell from \"./DataTableHeadCell\";\nimport DataTableBodyCell from \"./DataTableBodyCell\";\r\n\nfunction DataTable({\n entriesPerPage,\n canSearch,\n showTotalEntries,\n table,\n pagination,\n isSorted,\n noEndBorder,\n showTotalYPaginacion\n}) {\n const defaultValue = entriesPerPage.defaultValue ? entriesPerPage.defaultValue : 10;\n const entries = entriesPerPage.entries\n ? entriesPerPage.entries.map((el) => el.toString())\n : [\"5\", \"10\", \"15\", \"20\", \"25\"];\n const columns = useMemo(() => table.columns, [table]);\n const data = useMemo(() => table.rows, [table]);\n\n const tableInstance = useTable(\n { columns, data, initialState: { pageIndex: 0 }, autoResetPage: false, autoResetSortBy: false, autoResetGlobalFilter : false },\n useGlobalFilter,\n useSortBy,\n usePagination \n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n prepareRow,\n rows,\n page,\n pageOptions,\n canPreviousPage,\n canNextPage,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n setGlobalFilter,\n state: { pageIndex, pageSize, globalFilter },\n } = tableInstance;\n\n const { t } = useTranslation();\n\n // Set the default value for the entries per page when component mounts\n useEffect(() => setPageSize(defaultValue || 10), [defaultValue]);\n\n // Set the entries per page value based on the select value\n const setEntriesPerPage = (value) => {\n localStorage.setItem(\"sizepage\", value);\n setPageSize(value)\n };\n\n // Render the paginations\n const renderPagination = pageOptions.map((option) => (\n gotoPage(Number(option))}\n active={pageIndex === option}\n >\n {option + 1}\n \n ));\n\n // Handler for the input to set the pagination index\n const handleInputPagination = ({ target: { value } }) =>\n value > pageOptions.length || value < 0 ? gotoPage(0) : gotoPage(Number(value));\n\n // Customized page options starting from 1\n const customizedPageOptions = pageOptions.map((option) => option + 1);\n\n // Setting value for the pagination input\n const handleInputPaginationValue = ({ target: value }) => gotoPage(Number(value.value - 1));\n\n // Search input value state\n const [search, setSearch] = useState(globalFilter);\n\n // Search input state handle\n const onSearchChange = useAsyncDebounce((value) => {\n setGlobalFilter(value || undefined);\n }, 100); \n\n // A function that sets the sorted value for the table\n const setSortedValue = (column) => {\n let sortedValue;\n\n if (isSorted && column.isSorted) {\n sortedValue = column.isSortedDesc ? \"desc\" : \"asce\";\n } else if (isSorted) {\n sortedValue = \"none\";\n } else {\n sortedValue = false;\n }\n\n return sortedValue;\n };\n\n // Setting the entries starting point\n const entriesStart = pageIndex === 0 ? pageIndex + 1 : pageIndex * pageSize + 1;\n\n // Setting the entries ending point\n let entriesEnd;\n\n if (pageIndex === 0) {\n entriesEnd = pageSize;\n } else if (pageIndex === pageOptions.length - 1) {\n entriesEnd = rows.length;\n } else {\n entriesEnd = pageSize * (pageIndex + 1);\n }\n\n const getwidthdefinidouser = (colindex) => {\n\n try {\n let widthuser = columns[colindex];\n return widthuser.width != null ? widthuser.width : null;\n }\n catch {\n return null;\n }\n }\n\n const Testing = (column) => {\n\n try {\n\n if (column != null) {\n\n }\n }\n catch {\n \n }\n }\n\n return (\n \n {canSearch ? (\n \n \n {\n setSearch(search);\n onSearchChange(currentTarget.value);\n }}\n />\n \n \n ) : }\n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n {column.render(\"Header\")}\n \n ))}\n \n ))}\n \n \n {page.map((row, key) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell, colindex) =>\n ( \n \n {cell.render(\"Cell\")}\n \n ))}\n \n );\n })}\n \n
\n {showTotalYPaginacion ?\n \n \n {showTotalEntries && (\n \n {t(\"_showing\")} {entriesStart} {t('_to')} {entriesEnd} {t('_of')} {rows.length} {t('_entradas2')}\n )}\n \n \n {entriesPerPage ?\n <> {\n setEntriesPerPage(parseInt(newValue, 10));\n }}\n size=\"small\"\n sx={{ width: \"5rem\" }}\n renderInput={(params) => }\n />\n \n   {t('_rows')}\n : \"\"}\n \n {pageOptions.length > 1 && (\n \n {canPreviousPage && (\n previousPage()}>\n chevron_left\n \n )}\n {renderPagination.length > 6 ? (\n \n \n \n ) : (\n renderPagination\n )}\n {canNextPage && (\n nextPage()}>\n chevron_right\n \n )}\n \n )}\n {pageOptions.length <= 1 ? : \"\"}\n : \"\"}\n
\n );\n}\n\n// Setting default values for the props of DataTable\nDataTable.defaultProps = {\n entriesPerPage: { defaultValue: 10, entries: [5, 10, 15, 20, 25] },\n canSearch: false,\n showTotalEntries: true,\n pagination: { variant: \"gradient\", color: \"info\" },\n isSorted: true,\n noEndBorder: false,\n showTotalYPaginacion : true\n};\n\n// Typechecking props for the DataTable\nDataTable.propTypes = {\n entriesPerPage: PropTypes.oneOfType([\n PropTypes.shape({\n defaultValue: PropTypes.number,\n entries: PropTypes.arrayOf(PropTypes.number),\n }),\n PropTypes.bool,\n ]),\n canSearch: PropTypes.bool,\n showTotalEntries: PropTypes.bool,\n table: PropTypes.objectOf(PropTypes.array).isRequired,\n pagination: PropTypes.shape({\n variant: PropTypes.oneOf([\"contained\", \"gradient\"]),\n color: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"dark\",\n \"light\",\n ]),\n }),\n isSorted: PropTypes.bool,\n noEndBorder: PropTypes.bool,\n showTotalYPaginacion: PropTypes.bool,\n};\n\nexport default DataTable;\n","import React, { useState } from \"react\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Checkbox from '@mui/material/Checkbox';\r\n\r\n// @mui/icons-material\r\nimport Check from '@mui/icons-material/Check';\r\nimport MDTypography from \"../components/MDTypography\";\r\nimport MDBox from \"../components/MDBox\";\r\n\r\n\r\n\r\nexport default function OthelloCheckBox({ ...props }) {\r\n\r\n const { label, labelliteral, disabled, fieldname } = props;\r\n\r\n const [checkedstate, setcheckedstate] = useState(props.checked);\r\n const [evento, setevento] = useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n\r\n const handleOnChange = (event) => {\n\n if (props.readonly != null && props.readonly) {\n\n setcheckedstate(true)\n setevento(true);\n }\n //Si cambio el estado anterior\n else if (event.target != checkedstate) {\n setcheckedstate(event.target.checked)\n setevento(true);\n\n if (props.onChange != null)\n props.onChange(event.target.id, event.target.checked);\n }\n }\r\n\r\n let labelfinal = t != null && labelliteral != null ? t(labelliteral) : label;\r\n\r\n //Si el que ha provocado el cambio es el evento entonces el valor del input es el que viene del evento, pero sino, el valor sera el de por defecto \r\n let estadofinal = evento ? checkedstate : props.checked;\r\n\r\n //Limpiamos que el cambio ha sido por el evento, por si en otro lugar se ha realizado el deshacer, o al principio, que en esos casos debe tomar el de por defecto\r\n //evento = false;\r\n\r\n return (\r\n
\r\n \r\n handleOnChange(e)}\r\n checkedIcon={}\r\n icon={}\r\n value={estadofinal}\r\n disabled={disabled}\r\n color={estadofinal ? \"secondary\" : \"default\"}\r\n />\r\n \n {labelfinal}\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nOthelloCheckBox.propTypes = {\n classes: PropTypes.object.isRequired,\n fieldname: PropTypes.string,\n labelliteral: PropTypes.string,\n label: PropTypes.string,\n onChange: PropTypes.object,\n checked: PropTypes.bool,\n disabled: PropTypes.bool\n};\r\n\r\n","import React, { useState } from \"react\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// react component for creating dynamic tables\nimport ReactTable from \"react-table\";\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\n// @mui/icons-material\r\nimport Add from \"@mui/icons-material/Add\";\r\nimport Refresh from \"@mui/icons-material/Refresh\";\r\nimport Check from \"@mui/icons-material/Check\";\r\n\r\n// core components\r\nimport Select from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport Checkbox from \"@mui/material/Checkbox\";\r\n\r\nimport Table from \"../components/Table.jsx\";\r\nimport Button from \"../components/Button.jsx\";\r\nimport OthelloMensaje from './OthelloMensaje.jsx';\r\nimport { GetGridButtons } from \"../othelloFunciones.jsx\";\r\nimport { TipoOthelloFieldGrid, DataStateModal, ModoModal, DialogOthelloResult, MessageOthelloBoxButtons} from \"../othelloConstantes.jsx\";\r\nimport { MensajeModalSegunEstado2 } from \"../othelloFunciones.jsx\";\r\nimport DataTable from \"../components/Tables/DataTable/index.js\";\r\n\r\nimport OthelloCheckBox from './OthelloCheckBox.jsx';\r\nimport { Grid } from \"@mui/material\";\r\n\r\nvar moment = require('moment');\r\nrequire('moment/locale/es');\r\n\r\nexport default function OthelloGrid({ ...props }) {\r\n\r\n const { gridmode, datasource, datacabeceros, datashow, datasourcefields, onEdit, onDelete, onNuevo, onRefresh, textNuevo, questionDelete, permitefiltrar, verpaginaciontop, verpaginacionbottom, tamanopagina, arrayBotonesExtras, onBotonExtraClick, onSelectAllCheckbox, datosAdicionales, showTotalYPaginacion } = props\r\n\r\n const { t } = useTranslation();\r\n\r\n const [stateModal, setstateModal] = useState(DataStateModal.dsClosed);\r\n const [modeModal, setmodeModal] = useState(ModoModal.SinDefinir);\r\n\r\n const [itemdelete, setitemdelete] = useState(null);\r\n const [indexdelete, setindexdelete] = useState(null);\r\n const [optionstable, setoptionstable] = useState({ indexPage: 0, rowsPage: props.tamanopagina != null ? props.tamanopagina : 10, orderDesc: false, columnaOrder: \"\", valuesfiltro: [] });\r\n const [checkedstate, setcheckedstate] = useState(false);\r\n \r\n const handleDelete = (valor, index) =>\r\n {\r\n if (valor != null)\r\n {\r\n setstateModal(DataStateModal.dsOpen);\r\n setmodeModal(ModoModal.Delete);\r\n setitemdelete(valor);\r\n setindexdelete(index); \r\n }\r\n }\r\n\r\n const othelloModalResul = (modo, result, valor) => {\r\n\r\n //Si hemos recibido un true es que debemos realizar alguna operacion con los recibido\r\n if (result == DialogOthelloResult.OK) {\r\n //if (modo == ModoModal.Delete) \r\n //Ahora solo esta la opcion de delete, por tanto\r\n props.onDelete(itemdelete, indexdelete);\r\n\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodeModal(ModoModal.SinDefinir);\r\n setitemdelete(null);\r\n setindexdelete(null);\r\n }\r\n //sino simplemente cerramos el modal\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodeModal(ModoModal.SinDefinir);\r\n setitemdelete(null);\r\n setindexdelete(null);\r\n } \r\n }\r\n\r\n const handleCheckOnChange = (event, row, campo, eventclick) => {\n\n //Si cambio el estado anterior\n if (event.target != checkedstate) {\n //// this.setState({ [event.target.name]: event.target.value });\n //this.setState({ checkedstate: event.target.checked, evento: true });\n\n if (eventclick != null)\n eventclick(event.target.checked, row, campo);\n\n // event.checked = event.target.checked;\n }\n };\r\n\r\n //Metodo que devuelve los datos segun el modo que hemos indicado del grid\r\n const getDataTable = (datasource, datashow, datasourcefields, gridmode, onEdit, onDelete) =>\r\n {\r\n //Si estamos en modo simple\r\n if (gridmode != null && (gridmode == \"simple\" || gridmode == \"simplecolor\")) {\r\n let valores = datasource != null ? datasource.map((item, index) => {\r\n //Creamos una copia de los valores a mostrar\r\n let valor_Aux = Object.create(datashow);\r\n\r\n //por cada campo vamos obteniendo el valor y cambiandolo por el valor real\r\n datashow.map((field, col) =>\r\n {\r\n //Si el campo tiene valor, es que es un campo real\r\n if (field != \"botones\") {\r\n //Ahora compruebo que no tiene una conversion\r\n if (datasourcefields != null) {\r\n //Buscamos el primer datasource que esta asociado al campo con el que estamos trabajando\r\n let datafield = datasourcefields.find(x => x.fieldname == field);\r\n\r\n //Si existe datasource para el campo actual\r\n if (datafield != null) {\r\n if (datafield.tipofield == TipoOthelloFieldGrid.OthelloComboBox && datafield.items != null) {\r\n //Buscamos obtener el item asociado al valor del campo del item actual\r\n let selected = datafield.items.find(x => x.valor == item[field]);\r\n\r\n //Si de la lista de item a un valor con dicho campo entonces el valor a mostrar sera el nombre asociado\r\n if (selected != null)\r\n return valor_Aux[col] = selected.name;\r\n }\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloDate || datafield.tipofield == TipoOthelloFieldGrid.OthelloDateTime) {\r\n\r\n if (item[field] != null && item[field] != \"\") {\r\n let res = item[field];\r\n let timefinal = new Date(res);\r\n\r\n if (timefinal != \"Invalid Date\")\r\n {\r\n if (datafield.tipofield == TipoOthelloFieldGrid.OthelloDate)\r\n res = moment(timefinal).format(\"DD/MM/YYYY\");\r\n else\r\n res = moment(timefinal).format(\"DD/MM/YYYY HH:mm:ss\");\r\n }\r\n\r\n return valor_Aux[col] = res;\r\n }\r\n else\r\n return valor_Aux[col] = \"\";\r\n }\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloImagen)\r\n return valor_Aux[col] = \"...\"\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloCurrency)\r\n return valor_Aux[col] =
{item[field] != null ? item[field].toFixed(2) : \"0.00-\"}
\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloCurrencyNullable)\r\n return valor_Aux[col] =
{item[field] != null ? item[field].toFixed(2) : \"\"}
\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloCurrency4Dec)\r\n return valor_Aux[col] =
{item[field] != null ? item[field].toFixed(4) : \"0.0000-\"}
\r\n //else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloCheckBox)\r\n // return valor_Aux[col] =
{item[field] != null ? item[field].toFixed(4) : \"0.0000-\"}
\r\n }\r\n }\r\n\r\n //Si llego hasta qui es que no tiene datasource asociado o valor dentro de este por tanto, le asociado el valor que tenia\r\n return valor_Aux[col] = item[field];\r\n }\r\n //sino, es el campo que ponemos por defecto para los botones\r\n else\r\n return valor_Aux[col] = GetGridButtons(item, index, onEdit, onDelete != null ? handleDelete : null);\r\n });\r\n\r\n //Si estamos en modo simple directamento proporciono el valor\r\n if (gridmode == \"simple\")\r\n return valor_Aux;\r\n //Sino, trato con el color\r\n else {\r\n let colorfinal = index % 2 == 0 ? \"info\" : \"\";\r\n\r\n let recipient =\r\n {\r\n color: colorfinal,\r\n data: valor_Aux,\r\n };\r\n\r\n return recipient;\r\n }\r\n }) : [];\r\n\r\n return valores;\r\n }\r\n //Sino, es que estamos en modo normal, que es el de ReactTable\r\n else {\r\n let valores = datasource != null && datasource.length > 0 ? datasource.map((item, index) => {\r\n let recipient = \"\";\r\n\r\n //Si tenemos botones de edicion o eliminacion entonces debo añadir al item un campo de botones\r\n if (onEdit != null || onDelete != null) {\r\n recipient =\r\n {\r\n ...item,\r\n botones: GetGridButtons(item, index, onEdit, onDelete != null ? handleDelete : null)\r\n };\r\n }\r\n else {\r\n recipient = item;\r\n }\r\n\r\n //Ahora compruebo que no tiene una conversion\r\n if (datasourcefields != null) {\r\n //Buscamos el primer datasource que esta asociado al campo con el que estamos trabajando\r\n datasourcefields.map(x => {\r\n if (x.tipofield == TipoOthelloFieldGrid.OthelloImagen)\r\n recipient[x.fieldname] = \"...\"\r\n else if (x.tipofield == TipoOthelloFieldGrid.OthelloButton) {\r\n let colorfinal = { color: x.color, disabled: false };\r\n\r\n if (props.onSetPropertiesButtonRow != null)\r\n props.onSetPropertiesButtonRow(item, x.fieldname, colorfinal);\r\n\r\n return recipient[x.fieldname] = \r\n }\r\n else if (x.tipofield == TipoOthelloFieldGrid.OthelloCheckBox) {\r\n try {\r\n let key = index + \"_\" + x.fieldname;\r\n\r\n\r\n //Si no estamos con un componente valido es que estamos con el valor del checkBox, si no, es que estamos con el propio checkBox\r\n if (!React.isValidElement(recipient[x.fieldname])) {\r\n recipient[x.fieldname] = handleCheckOnChange(e, index, x.fieldname, x.onclick)}\n checkedIcon={}\n icon={}\n //classes={{\n // checked: classes.checked,\n // root: classes.checkRoot\n //}}\n />\r\n }\r\n }\r\n catch { }\r\n }\r\n });\r\n }\r\n\r\n return recipient;\r\n\r\n }) : [];\r\n\r\n return valores;\r\n }\r\n }\r\n\r\n const getColumnas = (datashow, datacabeceros, gridmode, datasourcefields) =>\r\n {\r\n //Si estamos en modo simple las columnas son directamente las que me indique los cabeceros\r\n if (gridmode != null && (gridmode == \"simple\" || gridmode == \"simplecolor\"))\r\n return datacabeceros != null && datacabeceros != \"\" && Array.isArray(datacabeceros) ? datacabeceros : [];\r\n //sino, en modo normal monto las columnas con las propiedades necesarias\r\n else {\r\n let columnas = [];\r\n\r\n if (datashow != null && Array.isArray(datashow)) {\r\n datashow.map((item, index) => {\r\n\r\n //Si el campo no indica botones entonces\r\n if (item != \"botones\") {\r\n let cabecera = datacabeceros[index];\r\n\r\n let nuevoitem = { Header: cabecera, accessor: item };\r\n\r\n //Ahora compruebo que no tiene una conversion\r\n if (datasourcefields != null) {\r\n //Busco si hay algun combo asociado al item a tratar\r\n let itemdatasource = datasourcefields.find(x => (x.tipofield == TipoOthelloFieldGrid.OthelloComboBox || x.tipofield == TipoOthelloFieldGrid.OthelloButton || x.tipofield == TipoOthelloFieldGrid.OthelloCheckBox\r\n || x.tipofield == TipoOthelloFieldGrid.OthelloDateTime || x.tipofield == TipoOthelloFieldGrid.OthelloDate || x.tipofield == TipoOthelloFieldGrid.OthelloCurrency\r\n || x.tipofield == TipoOthelloFieldGrid.OthelloCurrency4Dec) && x.fieldname == item);\r\n\r\n //Si se ha encontrado un item\r\n if (itemdatasource != null) {\r\n //Si el item es de tipo ComboBox\r\n if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloComboBox) {\r\n let res = \"\";\r\n\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.sortMethod = (a, b) => {\r\n\r\n let aaa = a.props.children + \"\";\r\n let bbb = b.props.children + \"\";\r\n\r\n if (aaa > bbb)\r\n return 1;\r\n if (bbb > aaa)\r\n return -1;\r\n\r\n return 0;\r\n }\r\n\r\n //Si hay items\r\n if (itemdatasource != null && itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloComboBox && itemdatasource.items != null && itemdatasource.items.length > 0) {\r\n res = itemdatasource.items.map((prop, key) => {\r\n return ({prop.name});\r\n });\r\n\r\n res.push();\r\n\r\n\r\n nuevoitem.accessor = row => {\r\n\r\n //Buscamos obtener el item asociado al valor del campo del item actual\r\n let selected = itemdatasource.items.find(y => y.valor == row[itemdatasource.fieldname]);\r\n\r\n //Si de la lista de item a un valor con dicho campo entonces el valor a mostrar sera el nombre asociado\r\n return {selected != null ? selected.name : row[itemdatasource.fieldname]}\r\n }\r\n }\r\n\r\n if (res != \"\") {\r\n nuevoitem.Filter = ({ filter, onChange }) =>\r\n onChange(event.target.value)}\r\n style={{ width: \"100%\" }}\r\n value={filter ? filter.value : \"\"}\r\n >\r\n {res}\r\n \r\n }\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloDateTime) {\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.Cell = ({ row }) => {\r\n return row.values[itemdatasource.fieldname] != null ? moment(row.values[itemdatasource.fieldname]).format(\"DD/MM/YYYY HH:mm:ss\") : \"\"\r\n }\r\n //nuevoitem.sortType = \"datetime\"\r\n //nuevoitem.accessor = row => {row[itemdatasource.fieldname] != null ? moment(row[itemdatasource.fieldname]).format(\"DD/MM/YYYY HH:mm:ss\") : \"\"}\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloDate) {\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.Cell = ({ row }) => {\r\n return row.values[itemdatasource.fieldname] != null ? moment(row.values[itemdatasource.fieldname]).format(\"DD/MM/YYYY\") : \"\"\r\n }\r\n /* nuevoitem.sortMethod = (a, b) => {\r\n let dateA = new Date(moment(a.props.children, 'DD/MM/YYYY'))\r\n let dateB = new Date(moment(b.props.children, 'DD/MM/YYYY'))\r\n return dateB > dateA ? 1 : -1;\r\n }*/\r\n //nuevoitem.sortType = \"datetime\"\r\n //nuevoitem.accessor = row => {row[itemdatasource.fieldname] != null ? moment(row[itemdatasource.fieldname]).format(\"DD/MM/YYYY\") : \"\"}\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCheckBox) {\r\n //nuevoitem.id = itemdatasource.fieldname; \r\n nuevoitem.width = itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCheckBox ? 70 : 40;\r\n nuevoitem.filterable = false;\r\n nuevoitem.sortable = false;\r\n\r\n\r\n /* nuevoitem.accessor = (row, rowIndex) =>\r\n {\r\n let key = 1 + \"_\" + itemdatasource.fieldname;\r\n \r\n return handleCheckOnChange(e, index, itemdatasource.fieldname, itemdatasource.onclick)}\n checkedIcon={}\n icon={}\n classes={{\n checked: classes.checked,\n root: classes.checkRoot\n }}\n />\r\n }*/\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloButton) {\r\n nuevoitem.width = itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCheckBox ? 70 : 30;\r\n nuevoitem.filterable = false;\r\n nuevoitem.sortable = false;\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCurrency) {\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.align = \"right\";\r\n nuevoitem.Cell = ({ row }) =>\r\n {\r\n try {\r\n return row.values[itemdatasource.fieldname] != null ? row.values[itemdatasource.fieldname].toFixed(2) : \"0.00-\"\r\n }\r\n catch {\r\n return \"0.00-\";\r\n }\r\n }\r\n /*nuevoitem.sortMethod = (a, b) => { return parseFloat(a.props.children) - parseFloat(b.props.children); }\r\n nuevoitem.accessor = row => {\r\n try {\r\n return
{row[itemdatasource.fieldname] != null ? row[itemdatasource.fieldname].toFixed(2) : \"0.00-\"}
\r\n }\r\n catch {\r\n return \"0.00-\";\r\n }\r\n }*/\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCurrency4Dec) {\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.align = \"right\";\r\n nuevoitem.Cell = ({ row }) => {\r\n try {\r\n return row.values[itemdatasource.fieldname] != null ? row.values[itemdatasource.fieldname].toFixed(4) : \"0.0000-\"\r\n }\r\n catch {\r\n return \"0.00-\";\r\n }\r\n }\r\n //nuevoitem.sortMethod = (a, b) => { return parseFloat(a.props.children) - parseFloat(b.props.children); }\r\n //nuevoitem.accessor = row => {\r\n // try {\r\n // return
{row[itemdatasource.fieldname] != null ? row[itemdatasource.fieldname].toFixed(4) : \"0.0000-\"}
\r\n // }\r\n // catch {\r\n // return \"0.0000-\";\r\n // }\r\n //}\r\n }\r\n } \r\n }\r\n\r\n columnas.push(nuevoitem);\r\n }\r\n //sino, es que estamos con el de los botones\r\n else {\r\n let nuevoitem = { Header: \"\", accessor: item, sortable: false, filterable: false, width: 30 };\r\n columnas.push(nuevoitem);\r\n }\r\n });\r\n }\r\n\r\n return columnas;\r\n }\r\n }\r\n\r\n const getBotonNuevo = (textNuevo, onNuevo) =>\r\n {\r\n //Generamos el texto que pondra \r\n let textonew = textNuevo != null && textNuevo != \"\" ? textNuevo : \"Nuevo\";\r\n\r\n //Generamos un boton de nuevo si me indica que el gri lo tienes\r\n let botonadd = onNuevo != null ? : \"\";\r\n\r\n return botonadd;\r\n }\r\n\r\n const getBotonRefresh = (onRefresh) => {\r\n\r\n //Generamos un boton de refresco si me indica que el grif lo tiene\r\n let botonarefresh = onRefresh != null ? : \"\";\r\n\r\n return botonarefresh;\r\n }\r\n\r\n const getBotonesExtras = (arrayBotonesExtras, onBotonExtraClick) =>\r\n {\r\n let BotonesExtras = \"\";\r\n\r\n //Si existe botones extras\r\n if (arrayBotonesExtras != null && arrayBotonesExtras.length > 0)\r\n BotonesExtras = arrayBotonesExtras.map((prop, key) => { return (); });\r\n\r\n return BotonesExtras;\r\n }\r\n\r\n const filterCaseInsensitive = (filter, row) => {\r\n const id = filter.pivotId || filter.id;\r\n const content = row[id];\r\n\r\n if (typeof content !== 'undefined') {\r\n // filter by text in the table or if it's a object, filter by key\r\n if (typeof content === 'object' && content !== null && content.key) {\r\n return String(content.key).toLowerCase().includes(filter.value.toLowerCase());\r\n } else {\r\n\r\n let valor = content;\r\n try {\r\n valor = content.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n }\r\n catch { }\r\n\r\n let filterfinal = filter.value;\r\n\r\n try {\r\n filterfinal = filter.value.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n }\r\n catch { }\r\n\r\n return String(valor).toLowerCase().includes(filterfinal.toLowerCase());\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const getTable = (gridmode, valores, columnas, permitefiltrar, verpaginaciontop, verpaginacionbottom, tamanopagina, literal) =>\r\n {\r\n if (gridmode != null && (gridmode == \"simple\" || gridmode == \"simplecolor\"))\r\n //return ;\r\n return
;\n else {\r\n \r\n let valor = localStorage.getItem(\"sizepage\");\r\n\r\n if (valor != null && valor != \"\") {\r\n tamanopagina = parseInt(valor);\r\n }\r\n\r\n let pagesize = tamanopagina != null ? tamanopagina : 10; \r\n \r\n return \r\n\r\n //return ();\r\n\r\n //return ();\r\n }\r\n }\r\n\r\n const OnPageChange = (indexPage) =>\r\n {\r\n if (indexPage != null) {\r\n\r\n let opciones = { ...optionstable }; \r\n opciones.indexPage = indexPage;\r\n setoptionstable(opciones);\r\n\r\n if (props.onChangeOptionsFiltroGrid != null)\r\n props.onChangeOptionsFiltroGrid(opciones);\r\n }\r\n\r\n }\r\n\r\n const OnPageSizeChange = (itemsView, indexpage) =>{\r\n if (itemsView != null) {\r\n\r\n let opciones = { ...optionstable };\r\n opciones.indexPage = indexpage;\r\n opciones.rowsPage = itemsView;\r\n setoptionstable(opciones);\r\n\r\n if (props.onChangeOptionsFiltroGrid != null)\r\n props.onChangeOptionsFiltroGrid(opciones);\r\n }\r\n\r\n }\r\n\r\n const OnSortedChange = (filtro, column, additive) =>{\r\n if (filtro != null) {\r\n\r\n let opciones = { ...optionstable };\r\n\r\n if (filtro.length > 0) {\r\n \r\n opciones.columnaOrder = filtro[0].id;\r\n opciones.orderDesc = filtro[0].desc;\r\n setoptionstable(opciones);\r\n }\r\n\r\n if (props.onChangeOptionsFiltroGrid != null)\r\n props.onChangeOptionsFiltroGrid(opciones);\r\n }\r\n }\r\n\r\n const OnFilteredChange = (newFiltering, column, value) => {\r\n if (newFiltering != null) {\r\n\r\n let opciones = { ...optionstable };\r\n opciones.valuesfiltro = newFiltering; \r\n setoptionstable(opciones);\r\n \r\n if (props.onChangeOptionsFiltroGrid != null)\r\n props.onChangeOptionsFiltroGrid(opciones);\r\n }\r\n }\r\n\r\n //Si tenemos valores de editar o eliminar, añadimos a la opcion de datos a mostrar la vacia (que sera la de los botones del grid)\r\n if ((onEdit != null || onDelete != null) && datashow != null && !datashow.some(x => x == \"botones\"))\r\n datashow.push(\"botones\");\r\n\r\n //Obtenemos los valores que se van a ver el grid\r\n let valores = getDataTable(datasource, datashow, datasourcefields, gridmode, onEdit, onDelete);\r\n\r\n //Obtenemos las columnas que se van a mostrar en el grid\r\n let columnas = getColumnas(datashow, datacabeceros, gridmode, datasourcefields);\r\n\r\n //Obtenemos el boton de nuevo siempre que cumpla con lo necesario\r\n let botonadd = getBotonNuevo(textNuevo, onNuevo);\r\n\r\n let botonrefresh = getBotonRefresh(onRefresh);\r\n\r\n let botonesExtras = getBotonesExtras(arrayBotonesExtras, onBotonExtraClick)\r\n\r\n let TableFinal = getTable(gridmode, valores, columnas, permitefiltrar, verpaginaciontop, verpaginacionbottom, tamanopagina, t);\r\n\r\n let modal = \"\";\r\n\r\n //Si el estado del modal es distinto de cerrado\r\n if (stateModal != DataStateModal.dsClosed)\r\n modal = \r\n \r\n let checkSelectAll = \"\";\r\n if (onSelectAllCheckbox != null)\r\n checkSelectAll =

\r\n\r\n\r\n return (
\n {modal}\r\n

{botonrefresh}{botonadd}{botonesExtras}{datosAdicionales}

\n {checkSelectAll}\n {TableFinal}\n\r\n
);\r\n}\r\n\r\n\r\nOthelloGrid.propTypes = {\n \n gridmode: PropTypes.oneOf([\n \"\",\n \"simple\",\n \"simplecolor\",\n ]),\n datasource: PropTypes.object.isRequired,\n datacabeceros: PropTypes.object.isRequired,\n datashow: PropTypes.object.isRequired,\n datasourcefields: PropTypes.object, //Se trata de los datasource asociados a los campos concretos\n // ejemplo datasourceCombo.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"campo\", items: listaitems, color: 'danger' , onclick: evento, checkdisabled: false})\n //onclick cuando es de check (item, campo);\n //onclick cuando es de check (valor-true/false, row-index, campo);\n onEdit: PropTypes.object,\n onDelete: PropTypes.object,\n onNuevo: PropTypes.object,\n onRefresh: PropTypes.object, //Para que salga el boton que nos permite refrescar el grid \r\n textNuevo: PropTypes.string,\n permitefiltrar: PropTypes.bool,\n verpaginaciontop: PropTypes.bool,\n verpaginacionbottom: PropTypes.bool,\n tamanopagina: PropTypes.number,\n onChangeOptionsFiltroGrid: PropTypes.object,\n onSetPropertiesButtonRow: PropTypes.object,\n onBotonExtraClick: PropTypes.object,\r\n arrayBotonesExtras: [], //Ejemplo: {id:x, icon:x, texto: x, permiso: x, color: 'danger'}\n datosAdicionales: PropTypes.object, //SE trata de informacion que puedes añadir, para que se coloque donde te interese, esto pues ser un panel con combos, etc\n showTotalYPaginacion: PropTypes.bool\n};\r\n\r\n/*\r\nclass OthelloGrid extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { \n stateModal: DataStateModal.dsClosed,\r\n modeModal: ModoModal.SinDefinir, \r\n itemdelete: null,\r\n indexdelete: null,\r\n optionstable: { indexPage: 0, rowsPage: this.props.tamanopagina != null ? this.props.tamanopagina : 10, orderDesc: false, columnaOrder: \"\", valuesfiltro: [] }\r\n };\r\n \r\n this.handleDelete = this.handleDelete.bind(this);\r\n this.othelloModalResul = this.othelloModalResul.bind(this);\r\n\r\n this.OnPageChange = this.OnPageChange.bind(this);\r\n this.OnPageSizeChange = this.OnPageSizeChange.bind(this); \r\n this.OnSortedChange = this.OnSortedChange.bind(this);\r\n this.OnFilteredChange = this.OnFilteredChange.bind(this); \r\n\r\n this.handleCheckOnChange = this.handleCheckOnChange.bind(this);\r\n } \r\n\r\n\r\n handleDelete(valor, index)\r\n {\r\n if (valor != null) { \r\n this.setState({ stateModal: DataStateModal.dsOpen, modeModal: ModoModal.Delete, itemdelete: valor,indexdelete: index});\r\n }\r\n }\r\n\r\n othelloModalResul(modo, result, valor) {\r\n\r\n //Si hemos recibido un true es que debemos realizar alguna operacion con los recibido\r\n if (result == DialogOthelloResult.OK)\r\n {\r\n //if (modo == ModoModal.Delete) \r\n //Ahora solo esta la opcion de delete, por tanto\r\n this.props.onDelete(itemdelete, indexdelete);\r\n\r\n this.setState({ stateModal: DataStateModal.dsClosed, modeModal: ModoModal.SinDefinir, itemdelete: null, indexdelete: null });\r\n }\r\n //sino simplemente cerramos el modal\r\n else\r\n this.setState({ stateModal: DataStateModal.dsClosed, modeModal: ModoModal.SinDefinir, itemdelete: null, indexdelete: null});\r\n }\r\n\r\n handleCheckOnChange(event, row, campo, eventclick) { \n\n //Si cambio el estado anterior\n if (event.target != checkedstate)\n {\n //// this.setState({ [event.target.name]: event.target.value });\n //this.setState({ checkedstate: event.target.checked, evento: true });\n\n if (eventclick != null)\n eventclick(event.target.checked, row, campo);\n\n // event.checked = event.target.checked;\n }\n };\r\n\r\n //Metodo que devuelve los datos segun el modo que hemos indicado del grid\r\n getDataTable(Owner, classes, datasource, datashow, datasourcefields, gridmode, onEdit, onDelete)\r\n {\r\n //Si estamos en modo simple\r\n if (gridmode != null && (gridmode == \"simple\" || gridmode == \"simplecolor\"))\r\n {\r\n let valores = datasource != null ? datasource.map((item, index) =>\r\n {\r\n //Creamos una copia de los valores a mostrar\r\n let valor_Aux = Object.create(datashow);\r\n\r\n //por cada campo vamos obteniendo el valor y cambiandolo por el valor real\r\n datashow.map((field, col) =>\r\n {\r\n //Si el campo tiene valor, es que es un campo real\r\n if (field != \"botones\")\r\n {\r\n //Ahora compruebo que no tiene una conversion\r\n if (datasourcefields != null)\r\n {\r\n //Buscamos el primer datasource que esta asociado al campo con el que estamos trabajando\r\n let datafield = datasourcefields.find(x => x.fieldname == field);\r\n\r\n //Si existe datasource para el campo actual\r\n if (datafield != null)\r\n {\r\n if (datafield.tipofield == TipoOthelloFieldGrid.OthelloComboBox && datafield.items != null) {\r\n //Buscamos obtener el item asociado al valor del campo del item actual\r\n let selected = datafield.items.find(x => x.valor == item[field]);\r\n\r\n //Si de la lista de item a un valor con dicho campo entonces el valor a mostrar sera el nombre asociado\r\n if (selected != null)\r\n return valor_Aux[col] = selected.name;\r\n }\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloDate || datafield.tipofield == TipoOthelloFieldGrid.OthelloDateTime) {\r\n\r\n if (item[field] != null && item[field] != \"\")\r\n {\r\n let res = item[field]; \r\n let timefinal = new Date(res);\r\n\r\n if (timefinal != \"Invalid Date\")\r\n res = moment(timefinal).format(\"DD/MM/YYYY\");\r\n\r\n return valor_Aux[col] = res;\r\n }\r\n else\r\n return valor_Aux[col] = \"\";\r\n }\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloImagen)\r\n return valor_Aux[col] = \"...\" \r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloCurrency) \r\n return valor_Aux[col] =
{item[field] != null ? item[field].toFixed(2) : \"0.00-\"}
\r\n else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloCurrency4Dec) \r\n return valor_Aux[col] =
{item[field] != null ? item[field].toFixed(4) : \"0.0000-\"}
\r\n //else if (datafield.tipofield == TipoOthelloFieldGrid.OthelloCheckBox)\r\n // return valor_Aux[col] =
{item[field] != null ? item[field].toFixed(4) : \"0.0000-\"}
\r\n }\r\n }\r\n\r\n //Si llego hasta qui es que no tiene datasource asociado o valor dentro de este por tanto, le asociado el valor que tenia\r\n return valor_Aux[col] = item[field];\r\n }\r\n //sino, es el campo que ponemos por defecto para los botones\r\n else\r\n return valor_Aux[col] = GetGridButtons(classes, item, index, onEdit, onDelete != null ? this.handleDelete : null);\r\n });\r\n\r\n //Si estamos en modo simple directamento proporciono el valor\r\n if (gridmode == \"simple\")\r\n return valor_Aux;\r\n //Sino, trato con el color\r\n else\r\n {\r\n let colorfinal = index % 2 == 0 ? \"info\" : \"\";\r\n\r\n let recipient =\r\n {\r\n color: colorfinal,\r\n data: valor_Aux,\r\n };\r\n\r\n return recipient;\r\n }\r\n }) : [];\r\n\r\n return valores;\r\n } \r\n //Sino, es que estamos en modo normal, que es el de ReactTable\r\n else\r\n {\r\n let valores = datasource != null && datasource.length>0 ? datasource.map((item, index) =>\r\n { \r\n let recipient = \"\";\r\n\r\n //Si tenemos botones de edicion o eliminacion entonces debo añadir al item un campo de botones\r\n if (onEdit != null || onDelete != null) {\r\n recipient =\r\n {\r\n ...item,\r\n botones: GetGridButtons(classes, item, index, onEdit, onDelete != null ? this.handleDelete : null)\r\n };\r\n }\r\n else {\r\n recipient = item;\r\n }\r\n\r\n //Ahora compruebo que no tiene una conversion\r\n if (datasourcefields != null)\r\n {\r\n //Buscamos el primer datasource que esta asociado al campo con el que estamos trabajando\r\n datasourcefields.map(x =>\r\n {\r\n if (x.tipofield == TipoOthelloFieldGrid.OthelloImagen)\r\n recipient[x.fieldname] = \"...\"\r\n else if (x.tipofield == TipoOthelloFieldGrid.OthelloButton)\r\n {\r\n let colorfinal = { color: x.color, disabled: false };\r\n\r\n if (props.onSetPropertiesButtonRow != null)\r\n props.onSetPropertiesButtonRow(item, x.fieldname, colorfinal);\r\n\r\n return recipient[x.fieldname] = \r\n } \r\n else if (x.tipofield == TipoOthelloFieldGrid.OthelloCheckBox)\r\n {\r\n try {\r\n let key = index + \"_\" + x.fieldname;\r\n\r\n \r\n //Si no estamos con un componente valido es que estamos con el valor del checkBox, si no, es que estamos con el propio checkBox\r\n if (!React.isValidElement(recipient[x.fieldname]))\r\n {\r\n recipient[x.fieldname] = handleCheckOnChange(e, index, x.fieldname, x.onclick)}\n checkedIcon={}\n icon={}\n classes={{\n checked: classes.checked,\n root: classes.checkRoot\n }}\n />\r\n }\r\n }\r\n catch { } \r\n }\r\n }); \r\n }\r\n\r\n return recipient; \r\n\r\n }) : [];\r\n\r\n return valores;\r\n }\r\n }\r\n\r\n getColumnas(Owner, classes, datashow, datacabeceros, gridmode, datasourcefields)\r\n {\r\n //Si estamos en modo simple las columnas son directamente las que me indique los cabeceros\r\n if (gridmode != null && (gridmode == \"simple\" || gridmode == \"simplecolor\"))\r\n return datacabeceros != null && datacabeceros != \"\" && Array.isArray(datacabeceros) ? datacabeceros : [];\r\n //sino, en modo normal monto las columnas con las propiedades necesarias\r\n else\r\n {\r\n let columnas = [];\r\n\r\n if (datashow != null && Array.isArray(datashow))\r\n {\r\n datashow.map((item, index) => {\r\n\r\n //Si el campo no indica botones entonces\r\n if (item != \"botones\")\r\n { \r\n let cabecera = datacabeceros[index];\r\n\r\n let nuevoitem = { Header: cabecera, accessor: item };\r\n\r\n //Ahora compruebo que no tiene una conversion\r\n if (datasourcefields != null)\r\n {\r\n //Busco si hay algun combo asociado al item a tratar\r\n let itemdatasource = datasourcefields.find(x => (x.tipofield == TipoOthelloFieldGrid.OthelloComboBox || x.tipofield == TipoOthelloFieldGrid.OthelloButton || x.tipofield == TipoOthelloFieldGrid.OthelloCheckBox\r\n || x.tipofield == TipoOthelloFieldGrid.OthelloDateTime || x.tipofield == TipoOthelloFieldGrid.OthelloDate || x.tipofield == TipoOthelloFieldGrid.OthelloCurrency\r\n || x.tipofield == TipoOthelloFieldGrid.OthelloCurrency4Dec) && x.fieldname == item);\r\n\r\n //Si se ha encontrado un item\r\n if (itemdatasource != null) {\r\n //Si el item es de tipo ComboBox\r\n if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloComboBox) {\r\n let res = \"\";\r\n\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.sortMethod = (a, b) => {\r\n\r\n let aaa = a.props.children +\"\";\r\n let bbb = b.props.children+\"\";\r\n\r\n if (aaa > bbb)\r\n return 1;\r\n if (bbb > aaa)\r\n return -1;\r\n\r\n return 0;\r\n }\r\n\r\n //Si hay items\r\n if (itemdatasource != null && itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloComboBox && itemdatasource.items != null && itemdatasource.items.length > 0)\r\n {\r\n res = itemdatasource.items.map((prop, key) => {\r\n return ({prop.name});\r\n });\r\n\r\n res.push();\r\n\r\n\r\n nuevoitem.accessor = row => {\r\n\r\n //Buscamos obtener el item asociado al valor del campo del item actual\r\n let selected = itemdatasource.items.find(y => y.valor == row[itemdatasource.fieldname]);\r\n\r\n //Si de la lista de item a un valor con dicho campo entonces el valor a mostrar sera el nombre asociado\r\n return {selected != null ? selected.name : row[itemdatasource.fieldname]} \r\n } \r\n }\r\n\r\n if (res != \"\")\r\n {\r\n nuevoitem.Filter = ({ filter, onChange }) =>\r\n onChange(event.target.value)}\r\n style={{ width: \"100%\" }}\r\n value={filter ? filter.value : \"\"}\r\n >\r\n {res}\r\n \r\n }\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloDateTime) {\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.sortType = \"datetime\"\r\n nuevoitem.accessor = row => {row[itemdatasource.fieldname] != null ? moment(row[itemdatasource.fieldname]).format(\"DD/MM/YYYY HH:mm:ss\") : \"\"}\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloDate) {\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.sortMethod = (a, b) => {\r\n let dateA = new Date(moment(a.props.children, 'DD/MM/YYYY'))\r\n let dateB = new Date(moment(b.props.children, 'DD/MM/YYYY'))\r\n return dateB > dateA ? 1 : -1;\r\n }\r\n nuevoitem.sortType = \"datetime\"\r\n nuevoitem.accessor = row => {row[itemdatasource.fieldname] != null ? moment(row[itemdatasource.fieldname]).format(\"DD/MM/YYYY\") : \"\"}\r\n } \r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCheckBox)\r\n {\r\n //nuevoitem.id = itemdatasource.fieldname; \r\n nuevoitem.width = itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCheckBox ? 70 : 40;\r\n nuevoitem.filterable = false;\r\n nuevoitem.sortable = false;\r\n\r\n\r\n /* nuevoitem.accessor = (row, rowIndex) =>\r\n {\r\n let key = 1 + \"_\" + itemdatasource.fieldname;\r\n\r\n return handleCheckOnChange(e, index, itemdatasource.fieldname, itemdatasource.onclick)}\n checkedIcon={}\n icon={}\n classes={{\n checked: classes.checked,\n root: classes.checkRoot\n }}\n />\r\n } \r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloButton) {\r\n nuevoitem.width = itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCheckBox ? 70 : 40;\r\n nuevoitem.filterable = false;\r\n nuevoitem.sortable = false;\r\n }\r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCurrency)\r\n {\r\n nuevoitem.id = itemdatasource.fieldname; \r\n nuevoitem.sortable = true;\r\n nuevoitem.sortMethod = (a, b) => { return parseFloat(a.props.children) - parseFloat(b.props.children); }\r\n nuevoitem.accessor = row => \r\n {\r\n try {\r\n return
{row[itemdatasource.fieldname] != null ? row[itemdatasource.fieldname].toFixed(2) : \"0.00-\"}
\r\n }\r\n catch {\r\n return \"0.00-\";\r\n } \r\n } \r\n } \r\n else if (itemdatasource.tipofield == TipoOthelloFieldGrid.OthelloCurrency4Dec) {\r\n nuevoitem.id = itemdatasource.fieldname;\r\n nuevoitem.sortable = true;\r\n nuevoitem.sortMethod = (a, b) => { return parseFloat(a.props.children) - parseFloat(b.props.children); }\r\n nuevoitem.accessor = row => {\r\n try {\r\n return
{row[itemdatasource.fieldname] != null ? row[itemdatasource.fieldname].toFixed(4) : \"0.0000-\"}
\r\n }\r\n catch {\r\n return \"0.0000-\";\r\n }\r\n }\r\n } \r\n }\r\n }\r\n\r\n columnas.push(nuevoitem);\r\n }\r\n //sino, es que estamos con el de los botones\r\n else {\r\n let nuevoitem = { Header: \"\", accessor: item, sortable: false, filterable: false, width:80 };\r\n columnas.push(nuevoitem);\r\n }\r\n });\r\n }\r\n\r\n return columnas;\r\n }\r\n }\r\n\r\n getBotonNuevo(textNuevo, onNuevo)\r\n {\r\n //Generamos el texto que pondra \r\n let textonew = textNuevo != null && textNuevo != \"\" ? textNuevo : \"Nuevo\";\r\n\r\n //Generamos un boton de nuevo si me indica que el gri lo tienes\r\n let botonadd = onNuevo != null ? : \"\";\r\n\r\n return botonadd;\r\n }\r\n\r\n getBotonRefresh(onRefresh) {\r\n \r\n //Generamos un boton de refresco si me indica que el grif lo tiene\r\n let botonarefresh = onRefresh != null ? : \"\";\r\n\r\n return botonarefresh;\r\n }\r\n\r\n getBotonesExtras(arrayBotonesExtras, onBotonExtraClick)\r\n {\r\n let BotonesExtras = \"\";\r\n\r\n //Si existe botones extras\r\n if (arrayBotonesExtras != null && arrayBotonesExtras.length > 0)\r\n BotonesExtras = arrayBotonesExtras.map((prop, key) => { return (); });\r\n\r\n return BotonesExtras;\r\n }\r\n\r\n filterCaseInsensitive = (filter, row) => {\r\n const id = filter.pivotId || filter.id;\r\n const content = row[id];\r\n\r\n if (typeof content !== 'undefined') {\r\n // filter by text in the table or if it's a object, filter by key\r\n if (typeof content === 'object' && content !== null && content.key) {\r\n return String(content.key).toLowerCase().includes(filter.value.toLowerCase());\r\n } else {\r\n\r\n let valor = content;\r\n try {\r\n valor = content.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n }\r\n catch{ }\r\n\r\n let filterfinal = filter.value;\r\n\r\n try {\r\n filterfinal = filter.value.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n }\r\n catch{ }\r\n\r\n return String(valor).toLowerCase().includes(filterfinal.toLowerCase());\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n getTable(gridmode, valores, columnas, permitefiltrar, verpaginaciontop, verpaginacionbottom, tamanopagina, literal)\r\n {\r\n if (gridmode != null && (gridmode == \"simple\" || gridmode == \"simplecolor\"))\r\n return
;\n else\r\n {\r\n let pagesize = tamanopagina != null ? tamanopagina : 10;\r\n \r\n return ();\r\n }\r\n }\r\n\r\n OnPageChange(indexPage)\r\n {\r\n if (indexPage != null)\r\n {\r\n optionstable.indexPage = indexPage;\r\n\r\n if (this.props.onChangeOptionsFiltroGrid != null)\r\n this.props.onChangeOptionsFiltroGrid(optionstable);\r\n }\r\n \r\n }\r\n\r\n OnPageSizeChange(itemsView, indexpage) {\r\n if (itemsView != null)\r\n {\r\n optionstable.indexPage = indexpage;\r\n optionstable.rowsPage = itemsView;\r\n\r\n if (this.props.onChangeOptionsFiltroGrid != null)\r\n this.props.onChangeOptionsFiltroGrid(optionstable);\r\n }\r\n \r\n }\r\n\r\n OnSortedChange(filtro, column, additive) {\r\n if (filtro != null)\r\n {\r\n if (filtro.length > 0) {\r\n optionstable.columnaOrder = filtro[0].id\r\n optionstable.orderDesc = filtro[0].desc\r\n }\r\n\r\n if (this.props.onChangeOptionsFiltroGrid != null)\r\n this.props.onChangeOptionsFiltroGrid(optionstable);\r\n } \r\n }\r\n\r\n OnFilteredChange(newFiltering, column, value) {\r\n if (newFiltering != null) {\r\n valuesfiltro = newFiltering;\r\n\r\n if (this.props.onChangeOptionsFiltroGrid != null)\r\n this.props.onChangeOptionsFiltroGrid(optionstable);\r\n }\r\n }\r\n \r\n render()\r\n { \r\n const { classes, gridmode, datasource, datacabeceros, datashow, datasourcefields, onEdit, onDelete, onNuevo, onRefresh, textNuevo, permitefiltrar, verpaginaciontop, verpaginacionbottom, tamanopagina, t, arrayBotonesExtras, onBotonExtraClick} = this.props\r\n\r\n //Si tenemos valores de editar o eliminar, añadimos a la opcion de datos a mostrar la vacia (que sera la de los botones del grid)\r\n if ((onEdit != null || onDelete != null) && datashow != null && !datashow.some(x => x == \"botones\")) \r\n datashow.push(\"botones\"); \r\n \r\n //Obtenemos los valores que se van a ver el grid\r\n let valores = this.getDataTable(this, classes, datasource, datashow, datasourcefields, gridmode, onEdit, onDelete);\r\n\r\n //Obtenemos las columnas que se van a mostrar en el grid\r\n let columnas = this.getColumnas(this, classes, datashow, datacabeceros, gridmode, datasourcefields);\r\n \r\n //Obtenemos el boton de nuevo siempre que cumpla con lo necesario\r\n let botonadd = this.getBotonNuevo(textNuevo, onNuevo);\r\n\r\n let botonrefresh = this.getBotonRefresh(onRefresh);\r\n\r\n let botonesExtras = this.getBotonesExtras(arrayBotonesExtras, onBotonExtraClick) \r\n\r\n let Table = this.getTable(gridmode, valores, columnas, permitefiltrar, verpaginaciontop, verpaginacionbottom, tamanopagina, t);\r\n\r\n let modal = \"\";\r\n\r\n //Si el estado del modal es distinto de cerrado\r\n if (stateModal != DataStateModal.dsClosed) \r\n modal = \r\n\r\n return (
\n {modal}\r\n

{botonrefresh}{botonadd}{botonesExtras}

\n {Table}\n \r\n
);\r\n\r\n }\r\n}\r\n\r\nexport default withTranslation()(withStyles(extendedTablesStyle)(OthelloGrid));*/\r\n","import React, { Component } from 'react';\r\n\r\nimport { useNavigate, useLocation } from \"react-router-dom\";\r\n\r\n// @mui/material components\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Face from \"@mui/icons-material/Face\";\n\n// core components\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\nimport Grid from \"@mui/material/Grid\";\n\nimport Card from \"@mui/material/Card\";\n\nimport { DataStatePage, Roles, TipoOthelloFieldGrid, OpcionSiNo } from \"../othelloConstantes.jsx\";\r\nimport OthelloTituloPanelData from '../componentsothello/OthelloTituloPanelData.jsx';\r\n\r\nexport default function Oficina({ ...props }) {\r\n\r\n const { literal, idRol } = props;\r\n\r\n const [loading, setLoading] = React.useState(true);\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [dataoficinas, setdataoficinas] = React.useState(null);\r\n\r\n const navigate = useNavigate()\r\n\r\n const location = useLocation();\r\n\r\n React.useEffect(() => {\r\n getDataPage();\r\n }, [loading]);\r\n\r\n\r\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () =>\r\n {\r\n fetch('api/Data/GetOficinasUsuario')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataoficinas(data);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n //METODO SOBRE EL GRID \r\n\r\n const editGridDataPage = (valor, index) =>\r\n {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify({ id: valor.id_Oficina, name: valor.nomOficina });\r\n\r\n fetch('api/Data/SetIDOficinaSelected', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n //Si hubo error\r\n if (res) {\r\n navigate('/admin/dashboard');\r\n //navigate('/admin/almacen/albaranes', { state: valor });\r\n //props.history.push('/admin/dashboard')\r\n //window.location.assign('/admin/dashboard');\r\n }\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) =>\r\n {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Oficina);\r\n\r\n fetch('api/Data/EliminarOficina', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res) {\r\n if (dataoficinas != null) {\r\n var array = [...dataoficinas]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataoficinas(array); \r\n }\r\n }\r\n }).catch(error => {\r\n });\r\n }\r\n }\n\r\n\r\n function renderFormOficinas(datos) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Nombre\", \"ID Oficina\", \"Baja\"];\r\n\r\n let valoreshow = [\"nomOficina\", \"id_Oficina\", \"baja\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"baja\", items: OpcionSiNo });\r\n\r\n //Creamos el grid global \r\n return ();\n }\r\n\r\n let formulario = loading ?

: renderFormOficinas(dataoficinas);\r\n\r\n return (\n \n \n \n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*

Mis Oficinas

*/}\n {/*
*/}\n
\n {formulario}\n
\n
\n
\r\n
\n );\r\n}","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Landscape from \"@mui/icons-material/Landscape\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\n\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, TipoOthelloFieldGrid, Roles, PopUpResult, OpcionVisibilidad} from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\n\nimport ImageUpload from \"../components/ImageUpload.jsx\";\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\nexport default function Regiones({ ...props }) {\r\n const { literal, idRol, tipooficina } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [dataregiones, setdataregiones] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const navigate = useNavigate();\r\n\r\n const location = useLocation();\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetRegiones')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataregiones(data);\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetRegionVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdataeditando(null);\r\n });\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formregion');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/GrabarRegion', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res) {\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...dataregiones];\r\n array.push(res);\r\n setdataregiones(array);\r\n }\r\n else {\r\n var array = [...dataregiones];\r\n array[indexeditando] = res;\r\n setdataregiones(array);\r\n }\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVacia();\r\n setindexeditando(-1);\r\n }\r\n\r\n const buscarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const cancelarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // forceUpdate()\r\n }\r\n\r\n //METODO SOBRE EL GRID \r\n const editGridDataPage = (valor, index) => {\r\n\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n setstatePage(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Region);\r\n\r\n fetch('api/Data/EliminarRegion', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion \r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n if (dataregiones != null) {\r\n var array = [...dataregiones]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataregiones(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\r\n\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearch(regiones) {\n let name = tipooficina == 3 ? \"Segmento\" : \"Region\";\n\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [name, \"Nombre\", \"Orden Visual\", \"Visible\", \"Icono\", \"Imagen\"] : [\"Nombre\", \"Orden Visual\", \"Visible\", \"Icono\", \"Imagen\"];\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"id_Region\", \"nombreRegion\", \"ordenVisual\", \"visible\", \"image\", \"imageAux\"] : [\"nombreRegion\", \"ordenVisual\", \"visible\", \"image\", \"imageAux\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"visible\", items: OpcionVisibilidad });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"image\", items: [] });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"imageAux\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEdit(region)\n {\n if (region != null) {\n let name = tipooficina == 3 ? \"Nuevo Segmento\" : \"Nueva Region\";\n let Nombre = region != null && region.id_Region > 0 ? \"Editar \" + region.nombreRegion : name;\n\n return (\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Imagen (48x48px)\n \n
\n \n
\n Imagen Secundaria\n \n
\n
\n \n
\n
\r\n );\n }\n else\n return \"\";\n }\n\r\n let busqueda = loading ?

: renderSearch(dataregiones)\n\n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEdit(dataeditando) : \"\";\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n {alerta}\n \n \n {edicion}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \r\n \n );\n}\n\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Language from \"@mui/icons-material/Language\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\n\r\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, PopUpResult } from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\n\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\nexport default function Idiomas({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [dataidiomas, setdataidiomas] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const navigate = useNavigate();\r\n\r\n const location = useLocation();\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetIdiomas')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataidiomas(data); \r\n }).catch(error => {\r\n navigate('/auth/login');\r\n //Si dio error, es que no se pudo formar el json, y por tanto, es porque dio null, en este metodo solo puede ser porque no hay entorno\r\n //props.history.push('/auth/login');\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetIdiomaVacio')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdataeditando(null);\r\n });\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formidioma');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/GrabarIdioma', {\n method: 'POST',\n body: formData,\n })\r\n .then(response => response.json())\r\n .then(res => {\r\n\r\n if (res) {\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...dataidiomas];\r\n array.push(res);\r\n setdataidiomas(array);\r\n }\r\n else {\r\n var array = [...dataidiomas];\r\n array[indexeditando] = res;\r\n setdataidiomas(array);\r\n }\r\n\r\n setstatePage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO); \r\n });\r\n }\r\n\r\n const nuevoDataPage = () => \r\n {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVacia();\r\n setindexeditando(-1);\r\n }\r\n\r\n const buscarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const cancelarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID \r\n const editGridDataPage = (valor, index) => {\r\n\r\n setdataeditando(valor);\r\n setindexeditando(statePage);\r\n setstatePage(DataStatePage.dsEdit); \r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.idioma);\r\n\r\n fetch('api/Data/EliminarIdioma', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion \r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n if (dataidiomas != null) {\r\n var array = [...dataidiomas]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataidiomas(array); \r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\r\n\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderIdiomaSearch(datos) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Codigo ISO\", \"Idioma\"];\r\n\r\n let valoreshow = [\"idioma\", \"descripcion\"];\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderIdiomaInsertEdit(item) {\n let Nombre = item != null && item.idioma != null && item.idioma != \"\" ? \"Editar \" + item.descripcion : \"Nuevo Idioma\";\n\n return ( \n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\r\n );\n }\n\r\n let idiomasbusqueda = loading ?

: renderIdiomaSearch(dataidiomas);\n\n let idiomasedicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderIdiomaInsertEdit(dataeditando) : \"\";\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n {alerta}\n \n \n {idiomasedicion}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {idiomasbusqueda}\r\n \r\n \r\n \n \r\n \n );\n}\n\n","import React, { useState } from \"react\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// core components\nimport Grid from \"@mui/material/Grid\";\n\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { TipoOthelloFieldGrid, DataStatePage, OpcionSiNo, TipoArea, TiposArea, OrdenacionPois, OpcionVisibilidad, Roles, PopUpResult, ModosRuta, MetodosRuta, ModelosArea, OpcionVisibilidadWeb } from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\nimport ImageUpload from \"../components/ImageUpload.jsx\";\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\n\n\nexport default function Areas({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [stateSubPage, setstateSubPage] = React.useState(DataStatePage.dsSearch);\n const [dataareas, setdataareas] = React.useState(null);\n const [datasubareas, setdatasubareas] = React.useState(null);\n const [idiomas, setidiomas] = React.useState(null);\n const [tipoareaselected, settipoareaselected] = React.useState(null);\n const [esrutaselected, setesrutaselected] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const [datasubareaeditando, setdatasubareaeditando] = useState(null);\r\n const [indexsubareaeditando, setindexsubareaeditando] = useState(null);\n\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetIdiomas')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let residiomas = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.idioma,\r\n name: x.descripcion\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n setidiomas(residiomas);\r\n });\r\n\r\n fetch('api/Data/GetAreas')\r\n .then(response => response.json())\r\n .then(res => {\r\n setdataareas(res); \r\n });\r\n }\r\n\r\n const getDataVacio = () => {\r\n\r\n fetch('api/Data/GetAreaVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setindexeditando(-1);\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n // setdialogeditando(ModoModal.New);\r\n }).catch(error => {\r\n setindexeditando(-1);\r\n setdataeditando(null);\r\n });\r\n }\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formarea');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n \r\n fetch('api/Data/GrabarArea', {\n method: 'POST',\n body: formData,\n \n }).then(response => response.json()).then(res => {\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...dataareas];\r\n array.push(res);\r\n setdataareas(array);\r\n }\r\n else {\r\n var array = [...dataareas];\r\n array[indexeditando] = res;\r\n setdataareas(array);\r\n }\r\n\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setdatasubareaeditando(null);\r\n setindexsubareaeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n\r\n setalert(PopUpResult.OK);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n }); \r\n }\r\n\r\n const nuevoDataPage = () => {\r\n getDataVacio();\r\n setindexeditando(-1);\r\n }\r\n\r\n\r\n const cancelarDataPage = () => {\r\n\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setdatasubareaeditando(null);\r\n setindexsubareaeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n // else\r\n // forceUpdate()\r\n }\r\n\r\n const onChangeTipoArea = (valor) => {\r\n\r\n if (tipoareaselected != valor) {\r\n var object = {};\r\n let formulario = document.getElementById('formarea');\r\n let formData = new FormData(formulario);\r\n formData.forEach((value, key) => { object[key] = value });\r\n\r\n setdataeditando(object);\r\n settipoareaselected(valor);\r\n }\r\n }\r\n\r\n const onChangeEsRuta = (valor) => {\r\n if (esrutaselected != valor) {\r\n var object = {};\r\n let formulario = document.getElementById('formarea');\r\n let formData = new FormData(formulario);\r\n formData.forEach((value, key) => { object[key] = value });\r\n\r\n setdataeditando(object);\r\n\r\n setesrutaselected(valor);\r\n }\r\n }\r\n\r\n const onClosePopUpResult = () => {\r\n setalert(null); \r\n }\r\n\n //Metodoso sobre SubAreas\n\r\n const getDataVaciaSubArea = () => {\r\n\r\n var jsonData = JSON.stringify({ id_area: dataeditando.id_Area, idioma: dataeditando.idioma });\r\n\r\n fetch('api/Data/GetSubAreaVacia', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res =>\r\n {\r\n setdatasubareaeditando(res);\r\n setstateSubPage(DataStatePage.dsInsert ); \r\n }).catch(error => {\r\n setdatasubareaeditando(null); \r\n });\r\n }\r\n\r\n const grabarDataPageSubArea = (event) =>\r\n {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formsubarea');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarSubArea', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (indexsubareaeditando == -1) {\r\n\r\n var array = [...datasubareas];\r\n array.push(res);\r\n setdatasubareas(array);\r\n }\r\n else {\r\n var array = [...datasubareas];\r\n array[indexsubareaeditando] = res;\r\n setdatasubareas(array);\r\n } \r\n\r\n setdatasubareaeditando(null);\r\n setindexsubareaeditando(null);\r\n setstateSubPage(DataStatePage.dsSearch);\r\n\r\n setalert(PopUpResult.OK);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPageSubArea = () => {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVaciaSubArea();\r\n setindexsubareaeditando(-1); \r\n }\r\n\r\n const cancelarDataPageSubArea = () => {\r\n setdatasubareaeditando(null);\r\n setindexsubareaeditando(null);\r\n setstateSubPage(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPageSubArea = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexsubareaeditando == -1)\r\n setstateSubPage(DataStatePage.dsSearch); \r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID AREAS \r\n const editGridDataPage = (valor, index) => {\r\n\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n \r\n //Al editar otra concreta limpiamos la posible subarea seleccionada\r\n setdatasubareaeditando(null);\r\n setindexsubareaeditando(null);\r\n\r\n //Si no tiene subareas entonces directamente lo pongo en edicion y limpio la lista de subareas\r\n if (valor.tieneSubAreas == 0)\r\n {\r\n settipoareaselected(valor.tipoArea);\r\n setesrutaselected(valor.esRuta);\r\n setdatasubareas([]);\r\n setstatePage(DataStatePage.dsEdit);\r\n setstateSubPage(DataStatePage.dsSearch);\r\n }\r\n //sino, es que tiene subareas, por tanto las pido\r\n else {\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Area);\r\n\r\n fetch('api/Data/GetSubAreas', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res =>\r\n {\r\n settipoareaselected(valor.tipoArea);\r\n setesrutaselected(valor.esRuta);\r\n setdatasubareas(res);\r\n setstatePage(DataStatePage.dsEdit);\r\n setstateSubPage(DataStatePage.dsSearch);\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Area);\r\n\r\n fetch('api/Data/EliminarArea', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n \r\n if (dataareas != null) {\r\n var array = [...dataareas]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataareas(array); \r\n setdatasubareas([]);\r\n setstatePage(DataStatePage.dsSearch);\r\n setstateSubPage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO); \r\n });\r\n }\r\n }\n\n //METODO SOBRE EL GRID SUBAREAS\r\n const editGridDataPageSubArea = (valor, index) => {\r\n\r\n setdatasubareaeditando(valor);\r\n setindexsubareaeditando(index);\r\n setstateSubPage(DataStatePage.dsEdit); \r\n }\r\n\r\n const deleteGridDataPageSubArea = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_SubArea);\r\n\r\n fetch('api/Data/EliminarSubArea', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdatasubareaeditando(valor);\r\n setindexsubareaeditando(index);\r\n \r\n\r\n if (datasubareas != null) {\r\n var array = [...datasubareas]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdatasubareas(array);\r\n setalert(PopUpResult.OK); \r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearch(areas) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [\"Area\", \"Nombre\", \"Idioma\", \"Tipo\", \"Ruta\", \"Ordenado\", \"Opinion\", \"Notifica\", \"Orden\", \"Visible\", \"Todas\", \"Icono\", \"Imagen\", \"Sub Areas\"/*, \"Accion\"*/] :\r\n [\"Nombre\", \"Idioma\", \"Tipo\", \"Ruta\", \"Ordenado\", \"Opinion\", \"Notifica\", \"Orden\", \"Visible\", \"Todas\", \"Icono\", \"Imagen\", \"Sub Areas\"/*, \"Accion\"*/];\r\n\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"id_Area\", \"cod_Area\", \"idioma\", \"tipoArea\", \"esRuta\", \"ordenadoPor\", \"permiteOpiniones\", \"permiteNotificar\", \"ordenVisual\", \"visible\", \"tieneOpcionTodas\", \"image\", \"imageAux\", \"tieneSubAreas\"/*, \"url\"*/] :\r\n [\"cod_Area\", \"idioma\", \"tipoArea\", \"esRuta\", \"ordenadoPor\", \"permiteOpiniones\", \"permiteNotificar\", \"ordenVisual\", \"visible\", \"tieneOpcionTodas\", \"image\", \"imageAux\", \"tieneSubAreas\"/*, \"url\"*/];;\r\n\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"idioma\", items: idiomas });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"tipoArea\", items: TiposArea });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"esRuta\", items: OpcionSiNo });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"ordenadoPor\", items: OrdenacionPois });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"permiteOpiniones\", items: OpcionSiNo });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"permiteNotificar\", items: OpcionSiNo });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"visible\", items: OpcionVisibilidad });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"tieneOpcionTodas\", items: OpcionSiNo });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"image\", items: [] });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"imageAux\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEdit(area)\n {\n if (area != null) {\n let Nombre = area != null && area.id_Area > 0 ? \"Editar \" + area.cod_Area : \"Nueva Area\";\n\n let infosubareas = renderOpcionesSubAreas();\n\n return (\n\n \n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n {\n tipoareaselected == TipoArea.Normal || tipoareaselected == TipoArea.Principal ?\n \n \n : \"\"\n }\n {\n tipoareaselected == TipoArea.Normal || tipoareaselected == TipoArea.Principal ?\n (\n \n ) : \"\"\n }\n {\n tipoareaselected == TipoArea.Normal || tipoareaselected == TipoArea.Principal || tipoareaselected == TipoArea.Agenda ?\n \n \n : \"\"\n }\n {\n tipoareaselected == TipoArea.Normal || tipoareaselected == TipoArea.Principal ?\n (\n \n ) : \"\"\n }\n\n \n \n \n \n \n \n \n \n \n \n \n \n {\n tipoareaselected == TipoArea.Web || tipoareaselected == TipoArea.Externo || tipoareaselected == TipoArea.Tiempo || tipoareaselected == TipoArea.Telefono\n || tipoareaselected == TipoArea.Whastapp ?\n (\n \n ) : \"\"\n }\n \n {\n esrutaselected == \"1\" ?\n \n \n \n \n \n \n \n \n \n \n :\n
\n \n \n \n
\n }\n \n \n \n \n \n \n \n
\n Icono (48x48px)\n \n
\n \n
\n Imagen\n \n
\n
\n \n \n \n {infosubareas}\n \n \n
\n
\r\n );\n }\n else\n return \"\";\n }\n\n function renderOpcionesSubAreas() {\n let busquedaSubAreas = renderSearchSubAreas(datasubareas);\n\n let edicion = stateSubPage == DataStatePage.dsEdit || stateSubPage == DataStatePage.dsInsert ? renderInsertEditSubArea(datasubareaeditando) : \"\";\n //#99d9b7\n return (\n \n
\n \n \n {edicion}\n \n \n \n \n \n \n \n \n \n {busquedaSubAreas}\n \n \n
\n
);\n }\n\n function renderSearchSubAreas(subareas) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [\"Sub Area\", \"Nombre\", \"Orden Visual\", \"Icono\", \"Imagen\"] : [\"Nombre\", \"Orden Visual\", \"Icono\", \"Imagen\"];\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"id_SubArea\", \"descripcion\", \"ordenVisual\", \"image\", \"imageAux\"] : [\"descripcion\", \"ordenVisual\", \"image\", \"imageAux\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"image\", items: [] });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"imageAux\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditSubArea(subarea) {\n if (subarea != null) {\n let Nombre = subarea != null && subarea.id_SubArea > 0 ? \"Editar \" + subarea.descripcion : \"Nueva Sub Area\";\n\n return (
\n \n \n

{Nombre}

\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Icono (48x48px)\n \n
\n \n
\n Imagen\n \n
\n
\n \r\n
\r\n );\n }\n else\n return \"\";\n }\n\n\r\n\r\n let busqueda = loading ?

\r\n : renderSearch(dataareas)\n\n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEdit(dataeditando) : \"\";\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n {alerta}\n \n \n {edicion}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n\n {/**/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*

Areas

*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* {busqueda}*/}\n {/* */}\n {/* */}\n {/*
*/}\n {/*
*/}\n
\r\n
\n );\n}\n\n","import React, { useState } from \"react\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Inbox from \"@mui/icons-material/Inbox\";\nimport HowToVote from \"@mui/icons-material/HowToVote\";\nimport InsertPhoto from \"@mui/icons-material/InsertPhoto\";\nimport Streetview from \"@mui/icons-material/Streetview\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\n\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, TipoOthelloFieldGrid, Roles, PopUpResult } from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\n\r\nimport ImageUpload from \"../components/ImageUpload.jsx\";\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\n\nexport default function Incidencias({ ...props }) {\r\n\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n const [loadingtipos, setloadingtipos] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n\n const [dataincidencias, setdataincidencias] = React.useState(null);\n const [dataincidenciastipos, setdataincidenciastipos] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const [datatipoeditando, setdatatipoeditando] = useState(null);\r\n const [indextipoeditando, setindextipoeditando] = useState(null);\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetTipoIncidencias')\r\n .then(response => response.json())\r\n .then(data => {\r\n setloadingtipos(false);\r\n setdataincidenciastipos(data);\r\n });\r\n\r\n fetch('api/Data/GetIncidencias')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataincidencias(data);\r\n });\r\n }\r\n\r\n const getDataVaciaTipo = () => {\r\n\r\n fetch('api/Data/GetTipoIncidenciaVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatatipoeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdatatipoeditando(null);\r\n });;\r\n }\r\n\r\n const grabarDataPageTipo = (event) => {\r\n\r\n let formulario = document.getElementById('formtipoincidencia');\r\n let data = new FormData(formulario);\r\n\r\n fetch('api/Data/GrabarTipoIncidencia', {\n method: 'POST',\n body: data,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (indextipoeditando == -1) {\r\n\r\n var array = [...dataincidenciastipos];\r\n array.push(res);\r\n setdataincidenciastipos(array);\r\n }\r\n else {\r\n var array = [...dataincidenciastipos];\r\n array[indextipoeditando] = res;\r\n setdataincidenciastipos(array);\r\n }\r\n\r\n setindextipoeditando(null);\r\n setdatatipoeditando(null);\r\n\r\n setstatePage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPageTipo = () => {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVaciaTipo();\r\n setindextipoeditando(-1);\r\n }\r\n\r\n const buscarDataPageTipo = () => {\r\n setindextipoeditando(null);\r\n setdatatipoeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const cancelarDataPageTipo = () => {\r\n setindextipoeditando(null);\r\n setdatatipoeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPageTipo = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indextipoeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // this.forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID \r\n const editGridDataPageTipo = (valor, index) => {\r\n\r\n setindextipoeditando(index);\r\n setdatatipoeditando(valor);\r\n setstatePage(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPageTipo = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_TipoInci);\r\n\r\n fetch('api/Data/EliminarTipoIncidencia', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setindextipoeditando(index);\r\n setdatatipoeditando(valor);\r\n\r\n if (dataincidenciastipos != null) {\r\n var array = [...dataincidenciastipos]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataincidenciastipos(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const deleteGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Incidencia);\r\n\r\n fetch('api/Data/EliminarIncidencia', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n if (dataincidencias != null) {\r\n var array = [...dataincidencias]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataincidencias(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onclickColumna = (valor, field) => {\n if (field == \"ubicacion\") {\n if (valor != null && valor.lat != 0 && valor.lon != 0) {\r\n let uri = \"https://www.google.com/maps?q=\" + valor.lat + \",\" + valor.lon;\n\n window.open(uri, '_blank');\n }\n }\n else if (field == \"imagen\") {\n if (valor != null && valor.foto != null && valor.foto != '') {\n window.open(valor.foto, '_blank');\n\r\n }\n }\n }\n\n const onClosePopUpResult = () => {\r\n setalert(\"\");\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearchTipos(datos) {\n\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [\"Tipo Incidencia\", \"Tipo\", \"Orden Visual\", \"Icono\"] : [\"Tipo\", \"Orden Visual\", \"Icono\"];\r\n\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"id_TipoInci\", \"tipo\", \"ordenVisual\", \"image\"] : [\"tipo\", \"ordenVisual\", \"image\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"image\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditTipos(tipo) {\n\n if (tipo != null) {\n let Nombre = tipo != null && tipo.id_TipoInci > 0 ? \"Editar \" + tipo.tipo : \"Nuevo Tipo Incidencia\";\n\n return (\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n Icono (48x48px)\n \n \n \n \n
\n
\r\n );\n }\n else\n return \"\";\n }\n\n function renderSearch(datos) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"\", \"\", \"Incidencia\", \"Tipo\", \"E-Mail\", \"Hora\", \"Foto\", \"Latitud\", \"Longitud\", \"Descripcion\"];\r\n\r\n let valoreshow = [\"ubicacion\", \"imagen\", \"nombre\", \"tipoInci\", \"eMail\", \"hora\", \"foto\", \"lat\", \"lon\", \"descripcion\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloDateTime, fieldname: \"hora\" });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"foto\", items: [] });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"ubicacion\", icon: Streetview, onclick: onclickColumna });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"imagen\", icon: InsertPhoto, onclick: onclickColumna });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\r\n let busquedaTipos = loadingtipos ?

: renderSearchTipos(dataincidenciastipos)\r\n\r\n let edicionTipos = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEditTipos(datatipoeditando) : \"\";\r\n\r\n let busqueda = loading ?

: renderSearch(dataincidencias);\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n \n {alerta}\n \n \n {edicionTipos}\n \n \n \n \n \n \n \n \n \n \n {busquedaTipos}\n \n \n \n \r\n \n \n \n \n
\n \n \n {busqueda}\n \n \n
\n
\n
\r\n
\n
\n );\n}\n\n","import React, { useState } from \"react\";\r\n\r\n// prop-types is a library for typechecking of props\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport MDBox from \"../components/MDBox\";\r\n\r\nimport esLocale from 'date-fns/locale/es';\r\n\r\nimport TextField from '@mui/material/TextField';\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\nimport DatePicker from '@mui/lab/DatePicker';\r\nimport TimePicker from '@mui/lab/TimePicker';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\n\r\n\r\nimport PickersDay, {\r\n PickersDayProps,\r\n pickersDayClasses\r\n} from \"@mui/lab/PickersDay\";\r\nimport addDays from \"date-fns/addDays\";\r\nimport isSameDay from \"date-fns/isSameDay\";\r\n\r\nexport default function OthelloTimer({ ...props }) {\r\n\r\n const {\r\n labelliteral,\r\n label,\r\n tipo,\r\n fieldname,\r\n readonly,\r\n disabled,\r\n showformato,\r\n abrecalendario,\r\n visible,\r\n fullWidth,\r\n calendas\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [locale, setLocale] = React.useState('es');\r\n //const [value, setValue] = React.useState(props.currentvalue != null && props.currentvalue != \"\" ? new Date(props.currentvalue) : null);\r\n\r\n const [timervalue, settimervalue] = useState(props.currentvalue != null && props.currentvalue != \"\" ? new Date(props.currentvalue) : \"\");\r\n const [evento, setevento] = useState(false);\r\n //const [visiblecalendario, setvisiblecalendario] = useState(false);\r\n\r\n let deshabilitado = disabled != null && disabled;\r\n let sololectura = readonly != null && readonly;\r\n let visibility = visible == null || visible;\r\n\r\n\r\n\r\n const handleOnChange = (newValue) => {\r\n\r\n let time = \"\";\r\n let timeToString = \"\";\r\n\r\n try {\r\n settimervalue(newValue);\r\n setevento(true);\r\n //setvisiblecalendario(false);\r\n } catch (e) {\r\n settimervalue(\"\");\r\n setevento(true);\r\n //setvisiblecalendario(false);\r\n }\r\n\r\n if (props.onChange != null)\r\n props.onChange(getDataFormateado(newValue));\r\n };\r\n\r\n const getDataFormateado = (dato) => {\r\n let timeRetorno = \"\";\r\n\r\n if (dato != null && dato != \"\") {\r\n try {\r\n if (tipo == \"time\")\r\n timeRetorno = dato.toDateString() + \" \" + dato.toLocaleTimeString();\r\n else\r\n timeRetorno = dato.toDateString();\r\n }\r\n catch\r\n {\r\n timeRetorno = dato;\r\n }\r\n }\r\n\r\n return timeRetorno;\r\n }\r\n\r\n const renderWeekPickerDay = (date: Date, selectedDates: Array, pickersDayProps: PickersDayProps) => {\r\n //Si hay calendas\r\n if (highlightedDays != null && highlightedDays.length > 0) {\r\n const matchedStyles = highlightedDays.reduce((a, v) => {\r\n return isSameDay(date, v.date) ? v.styles : a;\r\n }, {});\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n //Si el que ha provocado el cambio es el evento entonces el valor del input es el que viene del evento, pero sino, el valor sera el de por defecto \r\n let timefinal = evento ? timervalue : (props.currentvalue != null && props.currentvalue != \"\" ? new Date(props.currentvalue) : null);\r\n\r\n //MOntamos el dato formateado\r\n let timeshow = getDataFormateado(timefinal);\r\n\r\n //CALENDAS PARA EL CALENDARIO\r\n let highlightedDays = [];\r\n let renderdayfinal = \"\";\r\n\r\n //Si hay calendas creo el array de opciones\r\n if (calendas != null && calendas.length > 0) {\r\n calendas.forEach(x => {\r\n\r\n highlightedDays.push({\r\n\r\n date: new Date(x.dia), //addDays(new Date(), 6),\r\n styles: {\r\n color: x.colorrgb,\r\n fontWeight: \"bold\",\r\n fontSize: 18,\r\n //backgroundColor: \"purple\",\r\n //textDecoration: \"underline\"\r\n }\r\n })\r\n\r\n renderdayfinal = { renderDay: renderWeekPickerDay };\r\n });\r\n }\r\n\r\n return (<>\r\n \r\n {visibility ? \r\n \r\n
\r\n {tipo == \"time\" ?\r\n handleOnChange(newValue)}\r\n renderInput={(props) => } />\r\n :\r\n handleOnChange(newValue)}\r\n renderInput={(params) => }\r\n disableOpenPicker={abrecalendario == 'Hidden' ? true : false}\r\n {...renderdayfinal}\r\n />}\r\n
\r\n
\r\n
: \"\"}\r\n\r\n );\r\n}\r\n\r\nOthelloTimer.propTypes = {\r\n currentvalue: PropTypes.object,\r\n fieldname: PropTypes.string,\r\n labelliteral: PropTypes.string,\r\n label: PropTypes.string,\r\n onChange: PropTypes.object,\r\n readonly: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n visible: PropTypes.bool,\r\n tipo: PropTypes.oneOf([\r\n \"date\",\r\n \"datetime\",\r\n \"time\",\r\n ]),\r\n abrecalendario: PropTypes.oneOf([\r\n \"\",//se abre al obtener el foco\r\n \"No\", //en nigun caso se abre,\r\n \"Hidden\", // Oculta el botón del calendario\r\n \"Calendar\",//hay un boton para abrir el calendario\r\n ]),\r\n showformato: PropTypes.bool,\r\n fullWidth: PropTypes.bool,\r\n calendas: PropTypes.object, //Array de fechas //{ dia: 08/11/2022 , colorrgb : \"#32a852\"} en C# FiltroCalendaModel\r\n};","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Equalizer from \"@mui/icons-material/Equalizer\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\n\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, OpcionSiNoEntero, PopUpResult, TipoOthelloFieldGrid} from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\nimport OthelloTimer from \"../componentsothello/OthelloTimer.jsx\";\n\n\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\r\nimport OthelloCheckBox from \"../componentsothello/OthelloCheckBox.jsx\";\r\nimport OthelloTitulo from \"../componentsothello/OthelloTitulo.jsx\";\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\nexport default function TramosReservas({ ...props }) {\r\n const { literal, idRol, tipooficina } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [datatramos, setdatatramos] = React.useState(null);\n const [datainstalaciones, setdatainstalaciones] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const [diasCerrando, setdiasCerrando] = useState(null);\n\n const navigate = useNavigate();\r\n\r\n const location = useLocation();\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPageIniciales();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPageIniciales = () => {\r\n\r\n fetch('api/Data/GetInstalacionesReserva')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let restramos = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Instalacion,\r\n name: x.descripcion\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n setdatainstalaciones(restramos);\r\n\r\n getDataPage();\r\n });\r\n }\r\n\r\n const getDataPage = () => {\r\n fetch('api/Data/GetTramosReserva')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatatramos(data);\r\n });\r\n }\r\n\r\n const getDataVaciaTramo = () => {\r\n fetch('api/Data/GetTramoReservaVacio')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataeditando(data);\r\n setdiasCerrando(data.diasCerrado);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdataeditando(null);\r\n setdiasCerrando(\"\");\r\n });\r\n }\r\n\r\n const grabarDataPageTramo = (event) => {\r\n\r\n //Altero el valor que tiene el input de dias visualizando\r\n try {\r\n //refs.form[2].value = diasCerrando;\r\n }\r\n catch { }\r\n\r\n let formulario = document.getElementById('formtramos');\r\n let formData = new FormData(formulario);\r\n\r\n var object = {};\r\n formData.forEach((value, key) => { object[key] = value });\r\n if (object != null) {\r\n }\r\n\r\n fetch('api/Data/GrabarReservaTramo', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...datatramos];\r\n array.push(res);\r\n setdatatramos(array);\r\n }\r\n else {\r\n var array = [...datatramos];\r\n array[indexeditando] = res;\r\n setdatatramos(array);\r\n }\r\n\r\n setdiasCerrando(res.diasCerrado);\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPageTramo = () => {\r\n getDataVaciaTramo();\r\n setindexeditando(-1);\r\n setdiasCerrando(\"\");\r\n }\r\n\r\n const buscarDataPageTramo = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const cancelarDataPageTramo = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setdiasCerrando(\"\");\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPageTramo = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n else {\r\n\r\n if (dataeditando != null)\r\n setdiasCerrando(dataeditando.diasCerrado);\r\n\r\n //forceUpdate();\r\n }\r\n }\r\n\n //METODO SOBRE EL GRID \r\n const editGridDataPageTramo = (valor, index) => {\r\n\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n setdiasCerrando(valor.diasCerrado);\r\n setstatePage(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPageTramo = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Tramo);\r\n\r\n fetch('api/Data/EliminarTramoReserva', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n if (datatramos != null) {\r\n var array = [...datatramos]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdatatramos(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onChangeDiaCheckBox = (id, valor) => {\r\n\r\n //Si tenemo valor editando\r\n if (dataeditando != null && diasCerrando != null) {\r\n let dias = diasCerrando;\r\n\r\n //Si me dice que se ha seleccionado el check\r\n if (valor) {\r\n\r\n //Si no esta dentro de los dias a visualizar\r\n if (dias.indexOf(id) < 0) {\r\n dias = dias + id;\r\n }\r\n }\r\n //sino, es que debemos eliminarlo\r\n else {\r\n dias = dias.replace(id, \"\");\r\n }\r\n\r\n setdiasCerrando(dias);\r\n }\r\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearchTramos(datos) {\n\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Tramo\", \"Instalacion\", \"Codigo\", \"Descripcion\", \"Pax\"];\r\n\r\n let valoreshow = [\"id_Tramo\", \"id_Instalacion\", \"codigo\", \"descripcion\", \"pax\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"id_Instalacion\", items: datainstalaciones });\r\n\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditTramos(Tramo) {\n\n if (Tramo != null) {\n let Nombre = Tramo != null && Tramo.id_Tramo > 0 ? \"Editar \" + Tramo.codigo : \"Nuevo Tramo\";\n\n return (\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/*Para que salga la opcion de plazas que van a ser con precio 0*/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \r\n
\n
\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n
\n \n
\n
\r\n );\n }\n else\n return \"\";\n }\n\r\n let busquedaTramos = loading ?

: renderSearchTramos(datatramos)\r\n\r\n let edicionTramos = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEditTramos(dataeditando) : \"\";\r\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n \n {alerta}\n \n \n {edicionTramos}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busquedaTramos}\r\n \r\n \r\n \n \r\n \n \n );\n}\n\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport StoreMallDirectory from \"@mui/icons-material/StoreMallDirectory\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\n\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, PopUpResult, OpcionSiNo, OpcionTiposInstalacionReserva, OpcionesNominaciones, DriversPasarela, TiposVisualizacionInstalaciones } from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\nimport ImageUpload from \"../components/ImageUpload.jsx\";\nimport OthelloTimer from \"../componentsothello/OthelloTimer.jsx\";\n\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloCheckBox from \"../componentsothello/OthelloCheckBox.jsx\";\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\n\nexport default function InstalacionReservas({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [data, setdata] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const [opcnominaciones, setopcnominaciones] = useState(null);\n\n const navigate = useNavigate();\r\n\r\n const location = useLocation();\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetInstalacionesReserva')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdata(data);\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetInstalacionReservaVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataeditando(data);\r\n setopcnominaciones(data.opcionesNominacion);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdataeditando(null);\r\n setopcnominaciones(\"\");\r\n });;\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Altero el valor que tiene el input de dias visualizando\r\n try {\r\n //refs.form[2].value = opcnominaciones;\r\n }\r\n catch { }\r\n\r\n let formulario = document.getElementById('forminstalacion');\r\n let formData = new FormData(formulario);\r\n\r\n fetch('api/Data/GrabarInstalacionReserva', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...data];\r\n array.push(res);\r\n setdata(array);\r\n }\r\n else {\r\n var array = [...data];\r\n array[indexeditando] = res;\r\n setdata(array);\r\n }\r\n\r\n setstatePage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n \r\n setdataeditando(null);\r\n setindexeditando(null); \r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => { \r\n getDataVacia();\r\n setindexeditando(-1);\r\n setopcnominaciones(\"\");\r\n }\r\n\r\n\r\n const buscarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch); \r\n }\r\n\r\n const cancelarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setopcnominaciones(\"\");\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n else {\r\n\r\n //Inicializo a los datos que tenia cuando se puso a editar \r\n if (dataeditando != null)\r\n setopcnominaciones(dataeditando.opcionesNominacion);\r\n\r\n //forceUpdate()\r\n }\r\n }\r\n\n //METODO SOBRE EL GRID \r\n const editGridDataPage =(valor, index) => {\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n setopcnominaciones(valor.opcionesNominacion == null || valor.opcionesNominacion == undefined ? \"\" : valor.opcionesNominacion);\r\n setstatePage(DataStatePage.dsEdit); \r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Instalacion);\r\n\r\n fetch('api/Data/EliminarInstalacionReserva', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n\r\n if (data != null) {\r\n var array = [...data]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdata(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onClosePopUpResult = () => {\r\n setalert(\"\");\r\n }\n\n const onChangeOpcionNominacionCheckBox = (id, valor) => {\r\n\r\n //Si tenemo valor editando\r\n if (dataeditando != null && opcnominaciones != null)\r\n {\r\n let nominaciones = opcnominaciones;\r\n\r\n //Si me dice que se ha seleccionado el check\r\n if (valor) {\r\n\r\n //Si no esta dentro de los dias a visualizar\r\n if (nominaciones.indexOf(id) < 0)\r\n {\r\n nominaciones = nominaciones + id;\r\n }\r\n }\r\n //sino, es que debemos eliminarlo\r\n else {\r\n nominaciones = nominaciones.replace(id, \"\");\r\n }\r\n\r\n setopcnominaciones(nominaciones);\r\n }\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearch(datos) {\n\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Instalacion\", \"Codigo\", \"Descripcion\"];\r\n\r\n let valoreshow = [\"id_Instalacion\", \"codigo\", \"descripcion\"];\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEdit(Instalacion)\n {\n if (Instalacion != null) {\n let Nombre = Instalacion != null && Instalacion.id_Instalacion > 0 ? \"Editar \" + Instalacion.codigo : \"Nuevo Instalacion\";\n\n return (\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n = 0} onChange={onChangeOpcionNominacionCheckBox} />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n Imagen\n \n \n \n \n
\n
\r\n );\n }\n else\n return \"\";\n }\n\r\n let busqueda = loading ?

: renderSearch(data)\r\n\r\n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEdit(dataeditando) : \"\";\r\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n {alerta}\n \n \n {edicion}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \n \n );\n}\n\n","import React, { useState } from \"react\";\r\n\r\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Feedback from \"@mui/icons-material/Feedback\";\nimport InsertComment from \"@mui/icons-material/InsertComment\";\n\n// core components\nimport Card from \"@mui/material/Card\";\nimport Grid from \"@mui/material/Grid\";\n\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { TipoOthelloFieldGrid, DataStatePage, TiposPreguntaEncuenta, OpcionVisibilidad, PopUpResult, TiposValidacionEncuenta, TiposEncuenta, OpcionSiNo } from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\n\n\nimport ImageUpload from \"../components/ImageUpload.jsx\";\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\nimport Button from \"../components/Button.jsx\";\n\r\n\nexport default function Encuestas({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [stateQuestionPage, setstateQuestionPage] = React.useState(DataStatePage.dsSearch);\n const [dataenc, setdataenc] = React.useState(null);\n const [dataquestion, setdataquestion] = React.useState(null);\n const [urlencuesta, seturlencuesta] = React.useState(\"\");\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const [dataquestioneditando, setdataquestioneditando] = useState(null);\r\n const [indexquestioneditando, setindexquestioneditando] = useState(null);\n\r\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n //Metodoso sobre Encuestas\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetEncuestas')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataenc(data);\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetEncuestaVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdataeditando(null);\r\n });;\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formencuesta');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarEncuesta', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n //Si estamos añadiendo uno nuevo lo meto dentro de la lista de regiones\r\n if (indexeditando == -1) {\r\n var array = [...dataenc];\r\n array.push(res);\r\n\r\n setdataenc(array);\r\n }\r\n //Sino, es que estamos editando uno\r\n else {\r\n var array = [...dataenc];\r\n array[indexeditando] = res;\r\n setdataenc(array);\r\n }\r\n\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setdataquestioneditando(null);\r\n setindexquestioneditando(null);\r\n\r\n setstatePage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVacia();\r\n setindexeditando(-1);\r\n }\r\n\r\n const cancelarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setdataquestioneditando(null);\r\n setindexquestioneditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n seturlencuesta(\"\");\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1) {\r\n setstatePage(DataStatePage.dsSearch);\r\n seturlencuesta(\"\");\r\n }\r\n //Sino, es que estabamos en un item valido\r\n //else \r\n // this.forceUpdate() \r\n }\r\n\r\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\r\n\r\n const getUrlEncuesta = (valor) => {\r\n var jsonData = JSON.stringify(valor.id_Encuesta);\r\n\r\n fetch('api/Data/GetUrlEncuesta', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n seturlencuesta(res);\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n\r\n\n //Metodoso sobre Questions\n\r\n const getDataVaciaQuestion = () => {\r\n\r\n var jsonData = JSON.stringify(dataeditando.id_Encuesta);\r\n\r\n fetch('api/Data/GetQuestionVacia', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdataquestioneditando(res);\r\n setstateQuestionPage(DataStatePage.dsInsert);\r\n }).catch(error => {\r\n setdataquestioneditando(null);\r\n });\r\n }\r\n\r\n const grabarDataPageQuestion = (event) => {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formQuestion');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarQuestion', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n //Si estamos añadiendo uno nuevo lo meto dentro de la lista de regiones\r\n if (indexquestioneditando == -1) {\r\n\r\n var array = [...dataquestion];\r\n array.push(res);\r\n\r\n setdataquestion(array);\r\n }\r\n else {\r\n var array = [...dataquestion];\r\n array[indexquestioneditando] = res;\r\n setdataquestion(array);\r\n }\r\n\r\n setdataquestioneditando(null);\r\n setindexquestioneditando(null);\r\n\r\n setstateQuestionPage(DataStatePage.dsSearch);\r\n seturlencuesta(\"\");\r\n setalert(PopUpResult.OK);\r\n\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPageQuestion = () => {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVaciaQuestion();\r\n setindexquestioneditando(-1)\r\n }\r\n\r\n const cancelarDataPageQuestion = () => {\r\n setdataquestioneditando(null);\r\n setindexquestioneditando(null);\r\n\r\n setstateQuestionPage(DataStatePage.dsSearch);\r\n\r\n }\r\n\r\n const deshacerDataPageQuestion = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexquestioneditando == -1)\r\n setstateQuestionPage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // this.forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID ENCUESTAS \r\n const editGridDataPage = (valor, index) => {\r\n\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n //Al editar otra concreta limpiamos la posible Question seleccionada\r\n setdataquestioneditando(null);\r\n setindexquestioneditando(null);\r\n\r\n //Si no tiene Questions entonces directamente lo pongo en edicion y limpio la lista de Questions\r\n if (valor.tieneQuestions == 0) {\r\n setdataquestion([]);\r\n setstatePage(DataStatePage.dsEdit);\r\n setstateQuestionPage(DataStatePage.dsSearch);\r\n }\r\n //sino, es que tiene Questions, por tanto las pido\r\n else {\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Encuesta);\r\n\r\n fetch('api/Data/GetQuestions', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdataquestion(res);\r\n setstatePage(DataStatePage.dsEdit);\r\n setstateQuestionPage(DataStatePage.dsSearch);\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Encuesta);\r\n\r\n fetch('api/Data/EliminarEncuesta', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n\r\n if (dataenc != null) {\r\n var array = [...dataenc]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setdataenc(array);\r\n\r\n setdataquestion([]);\r\n setstatePage(DataStatePage.dsSearch);\r\n setstateQuestionPage(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n //METODO SOBRE EL GRID QuestionS\r\n const editGridDataPageQuestion = (valor, index) => {\r\n\r\n setdataquestioneditando(valor);\r\n setindexquestioneditando(index);\r\n setstateQuestionPage(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPageQuestion = (valor, index) => {\r\n\r\n if (valor != null) {\r\n\r\n var jsonData = JSON.stringify({ idofi: valor.id_Oficina, idencuesta: valor.id_Encuesta, idquestion: valor.id_Question });\r\n\r\n fetch('api/Data/EliminarQuestion', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataquestioneditando(valor);\r\n setindexquestioneditando(index);\r\n\r\n if (dataquestion != null) {\r\n var array = [...dataquestion]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataquestion(array);\r\n setalert(PopUpResult.OK); \r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearch(encuestas) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Encuesta\", \"Visible\", \"Validacion\", \"Imagen\", \"Preguntas\"];\r\n\r\n let valoreshow = [\"nombre\", \"visible\", \"tipoValidacion\", \"image\", \"tieneQuestions\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"tipoValidacion\", items: TiposValidacionEncuenta });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"image\", items: [] });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"visible\", items: OpcionVisibilidad });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEdit(enc) {\n\n if (enc != null) {\n let Nombre = enc != null && enc.id_Encuesta > 0 ? \"Editar \" + enc.nombre : \"Nueva Encuesta\";\n\n let infoQuestions = renderOpcionesQuestions();\n\n return (\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Imagen\n \n
\n
\n \n
\n \n \n {enc != null && enc.id_Encuesta > 0 ? : \"\"}\n \n \n {urlencuesta != null ? urlencuesta : \"\"}\n \n \n
\n \n \n {infoQuestions}\n \n \n\n
\n
\r\n );\n }\n else\n return \"\";\n }\n\n function renderOpcionesQuestions() {\n let busquedaQuestions = renderSearchQuestions(dataquestion);\n\n let edicion = stateQuestionPage == DataStatePage.dsEdit || stateQuestionPage == DataStatePage.dsInsert ? renderInsertEditQuestion(dataquestioneditando) : \"\";\n //#99d9b7\n return ( \n
\n \n \n {edicion}\n \n \n \n \n \n \n \n \n \n {busquedaQuestions}\n \n \n
\n
);\n }\n\n function renderSearchQuestions(Questions) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Pregunta\", \"Tipo\", \"Orden Visual\", \"Visible\"];\r\n let valoreshow = [\"pregunta\", \"tipo\", \"ordenVisual\", \"visible\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"tipo\", items: TiposPreguntaEncuenta });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"visible\", items: OpcionVisibilidad });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditQuestion(Question)\n {\n if (Question != null) {\n let Nombre = Question != null && Question.id_Question > 0 ? \"Editar \" + Question.pregunta : \"Nueva Pregunta\";\n\n return (
\n \n \n

{Nombre}

\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Imagen\n \n
\n
\n \r\n
\r\n );\n }\n else\n return \"\";\n }\n\r\n let busqueda = loading ?

: renderSearch(dataenc)\n\n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEdit(dataeditando) : \"\";\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n {alerta}\n \n \n {edicion}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \r\n \n );\n}\n","import React from 'react';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Card from \"@mui/material/Card\";\r\nimport MDBox from '../components/MDBox';\r\n\nexport default function OthelloWaiting({ ...props }) {\r\n\r\n const { t } = useTranslation();\r\n\r\n const { label, size } = props;\r\n\r\n let width = size != null && size == \"sm\" ? 120 : \"15rem\";\r\n let font = size != null && size == \"sm\" ? 16 : 18;\r\n\r\n return (\r\n\r\n \r\n \r\n {label != null && label != \"\" ? label : t(\"_cargando\")}\r\n

\r\n

\r\n
\r\n
\r\n );\r\n}\n\nOthelloWaiting.propTypes = {\n label: PropTypes.string,\n size: PropTypes.oneOf([\n \"\",\n \"sm\",\n ])\n};\n\n","import React from \"react\";\n\n// prop-types is library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Card from \"@mui/material/Card\";\nimport Divider from \"@mui/material/Divider\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\nimport MDTypography from \"../components/MDTypography\";\nimport MDButton from \"../components/MDButton\";\nimport Button from '../components/Button.jsx';\n\nimport Link from \"@mui/material/Link\";\n\nfunction OthelloCard({ color, titulo, count, icono, iconofooter, footer, bigtitulo, searching, onClick, categoria, children, smallmode, smallfootermode, vermas })\n{\n\n function renderfooter() {\n\n if (iconofooter == null && footer == null && onClick == null)\n return \"\";\n else\n\n return (<>\r\n \n \n \n {iconofooter != null ? {iconofooter} : \"\"}\n {footer != null && footer != \"\" ? footer : \"\"}\n {!searching && onClick != null ? info : \"\"}\n {/**/}\n\n {/* {percentage.amount}*/}\n {/**/}\n {/* {percentage.label}*/}\n {/* {percentage.label}*/}\n \n \r\n );\r\n }\n\n let finalfooter = \"\";//renderfooter();\n\n let btvermas = vermas != null ? : \"\";\n\n return (\n \n \n {icono != null && icono != \"\" ?\n \n \n {icono}\n \n : \n }\n \n {categoria != null && categoria != \"\" ? {categoria} : \"\"}\n \n {searching ? : (titulo != null ? titulo : \"-\")}\n \n {/*4{count} */}\n \n \n {children != null && children != \"\" ? {children} : \"\"}\n {finalfooter} \n { btvermas} \n \n \n );\n}\n\n// Setting default values for the props of ComplexStatisticsCard\nOthelloCard.defaultProps = {\n color: \"info\",\n percentage: {\n color: \"success\",\n text: \"\",\n label: \"\",\n },\n};\n\n// Typechecking props for the ComplexStatisticsCard\nOthelloCard.propTypes = {\n color: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n titulo: PropTypes.string.isRequired,\n count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n percentage: PropTypes.shape({\n color: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"dark\",\n \"white\",\n ]),\n amount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.string,\n }),\n icon: PropTypes.node.isRequired,\n};\n\nexport default OthelloCard;\r\n\r\n/*\r\n *\r\n//Creamos un componente stateles, ya que no necesitamos nigun estado y son mas rapidos\r\nfunction OthelloCard({ ...props }) {\r\n const {\r\n classes,\r\n color,\r\n textoicono,\r\n categoria,\r\n titulo,\r\n footer,\r\n children,\r\n bigtitulo,\r\n smallmode,\r\n smallfootermode,\r\n vermas\r\n } = props;\r\n\r\n //Gestion del icono principal\r\n let rendericon = props.icono != null ?
{textoicono}
: \"\";\r\n\r\n //Gestion del texto que se muestra\r\n let rendercategoria =

{categoria}

;\r\n let rendertitulo = bigtitulo != null && bigtitulo == false ?

{titulo}

:

{titulo}

;\r\n\r\n //Gestion del header\r\n let renderheader = smallmode == null || smallmode == false ?
{rendericon}{rendercategoria}{rendertitulo}
:
{rendericon}{rendercategoria}{rendertitulo}
;\r\n\r\n //Gestion del body\r\n let renderbody = children != null ?
{children}
: \"\";\r\n\r\n //Gestion del footer del card\r\n let rendericonfooter = props.iconofooter != null ? : \"\";\r\n let btvermas = vermas != null ? : \"\"\r\n\r\n let renderfooter =

;\r\n\r\n if (footer != null && footer != \"\") {\r\n if (smallfootermode == null || smallfootermode == false)\r\n renderfooter =
{rendericonfooter}{footer}{btvermas}
;\r\n else\r\n renderfooter =
{rendericonfooter}{footer}{btvermas}
;\r\n }\r\n else if (btvermas != null && btvermas != \"\")\r\n renderfooter =
{btvermas}
;\r\n\r\n return (\r\n \r\n {renderheader}\r\n {renderbody}\r\n {renderfooter}\r\n \r\n );\r\n}*/","import React from \"react\";\nimport MDTypography from \"../components/MDTypography\";\r\n\n\nexport default function OthelloPrimary(props) {\n \n return ({props.children});\n}\n\n","import React from 'react';\r\n\r\n// @mui/icons-material\r\n\r\nimport Info from \"@mui/icons-material/Info\";\r\nimport ListAlt from \"@mui/icons-material/ListAlt\";\r\nimport Beenhere from \"@mui/icons-material/Beenhere\";\r\nimport Receipt from \"@mui/icons-material/Receipt\";\r\nimport AddCircle from \"@mui/icons-material/AddCircleOutline\";\r\nimport RemoveCircle from \"@mui/icons-material/RemoveCircleOutline\";\r\n\r\nimport Button from '../components/Button.jsx';\r\n\r\nimport Card from \"@mui/material/Card\";\r\nimport Grid from \"@mui/material/Grid\";\r\n\r\nimport OthelloWaiting from '../componentsothello/OthelloWaiting.jsx';\r\nimport OthelloTimer from '../componentsothello/OthelloTimer';\r\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\r\nimport OthelloCard from '../componentsothello/OthelloCard.jsx';\r\nimport OthelloTitulo from '../componentsothello/OthelloTitulo.jsx';\r\n\r\nimport { TiposBusquedaEstadisticas, TiposPreguntaEncuenta, TipoPreguntaEncuenta, OpcionSiNoEncuesta, OpcionComboBienMalRegularEncuesta, OpcionComboUnoDiezEncuesta, OpcionEstrellasEncuesta } from \"../othelloConstantes.jsx\";\r\n\r\nimport { TipoBusquedaEstadisticas } from '../othelloConstantes.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\r\nimport OthelloPrimary from '../componentsothello/OthelloPrimary.jsx';\r\nimport OthelloTituloPanelData from '../componentsothello/OthelloTituloPanelData.jsx';\r\n\r\nexport default function EncuestasEstadistica({ ...props })\r\n{\r\n\r\n //Gestion de filtros\r\n const [loadingFiltros, setLoadingFiltros] = React.useState(true);\r\n const [filtros, setFiltros] = React.useState(\"\");\r\n\r\n //Gestion de la lista de entregas traspasos\r\n const [loading, setLoading] = React.useState(false);\r\n const [data, setData] = React.useState(null);\r\n\r\n const [questionOpen, setQuestionOpen] = React.useState([]);\r\n\r\n //EFECTOS\r\n\r\n React.useEffect(() => {\r\n fetch('api/Data/GetFiltrosEncuestasEstadisticas')\r\n .then(response => response.json())\r\n .then(data => {\r\n setFiltros(data);\r\n setLoadingFiltros(false);\r\n }).catch(error => {\r\n\r\n });\r\n\r\n }, [loadingFiltros]);\r\n \r\n\r\n function getDataPage() {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formbusqueda');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n setLoading(true);\r\n\r\n fetch('api/Data/GetEncuestasEstadisticas', {\r\n method: 'POST',\r\n body: formData,\r\n\r\n }).then(response => response.json()).then(res => {\r\n\r\n setData(res);\r\n setLoading(false);\r\n\r\n }).catch(error => {\r\n setData(null);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const onChangeEncuesta = (valor) => {\r\n if (valor != null) {\r\n let nuevo = { ...filtros }\r\n nuevo.tipobusqueda = valor;\r\n setFiltros(nuevo);\r\n }\r\n }\r\n\r\n const onChangeTipo = (valor) =>\r\n {\r\n if (valor != null)\r\n {\r\n let nuevo = { ...filtros }\r\n nuevo.tipobusqueda = valor;\r\n setFiltros(nuevo);\r\n }\r\n }\r\n\r\n const OnBuscarClick = () =>\r\n {\r\n getDataPage();\r\n }\r\n\r\n const onClickCollapse = (index) =>\r\n {\r\n if (index != null && index >= 0)\r\n {\r\n let existe = questionOpen.includes(index);\r\n\r\n if (existe) {\r\n let nuevo = [];\r\n questionOpen.forEach(x => {\r\n if (x != index)\r\n nuevo.push(x);\r\n });\r\n\r\n setQuestionOpen(nuevo);\r\n }\r\n else {\r\n var array = [...questionOpen]; \r\n \r\n array.push(index);\r\n setQuestionOpen(array); \r\n }\r\n }\r\n }\r\n\r\n // render\r\n\r\n function renderParametrosBusqueda() {\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filtros != null && filtros.tipobusqueda == TipoBusquedaEstadisticas.Personalizado ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n : \"\"\r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n
)\r\n }\r\n\r\n\r\n function renderInfoDetallePregunta(question, tiposinpuntuacion) {\r\n\r\n let resdata = \"\";\r\n let array = [];\r\n\r\n if (question.tipo == TipoPreguntaEncuenta.ComboUnoDiez)\r\n array = OpcionComboUnoDiezEncuesta;\r\n else if (question.tipo == TipoPreguntaEncuenta.ComboBienMalRegular)\r\n array = OpcionComboBienMalRegularEncuesta;\r\n else if (question.tipo == TipoPreguntaEncuenta.Estrellas)\r\n array = OpcionEstrellasEncuesta;\r\n else if (question.tipo == TipoPreguntaEncuenta.SiNo)\r\n array = OpcionSiNoEncuesta;\r\n else if (question.tipo == TipoPreguntaEncuenta.Combo || TipoPreguntaEncuenta.PreSelecOpcion || question.tipo == TipoPreguntaEncuenta.Provincias || question.tipo == TipoPreguntaEncuenta.Paises)\r\n {\r\n if (question.resultados != null && question.resultados.length > 0) \r\n question.resultados.forEach(x => {\r\n if (x.resultexto != null)\r\n array.push({ valor: x.resultexto, name: x.resultexto })\r\n }); \r\n } \r\n\r\n if (array != [])\r\n {\r\n resdata = array.map(x =>\r\n {\r\n let valor = 0;\r\n\r\n if (question.resultados != null && question.resultados.length > 0)\r\n {\r\n let resvalor = tiposinpuntuacion ? question.resultados.find(y => y.resultexto == x.valor) : question.resultados.find(y => y.puntuacion == x.valor);\r\n\r\n if (resvalor != null)\r\n valor = resvalor.respuestas;\r\n }\r\n\r\n return \r\n
\r\n {x.name}\r\n
\r\n
\r\n {valor} respuestas\r\n
\r\n
\r\n });\r\n }\r\n\r\n return
{resdata}
;\r\n }\r\n\r\n function renderInfoPreguntaOpen(question, tiposinpuntuacion) {\r\n\r\n return (
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Detalle de los resultados\r\n {renderInfoDetallePregunta(question, tiposinpuntuacion)} \r\n
); \r\n }\r\n\r\n function renderInfoPreguntas() {\r\n \r\n if (data.preguntas != null && data.preguntas.length > 0) {\r\n\r\n let res = data.preguntas.map((x, index) =>\r\n { \r\n let open = questionOpen != null && questionOpen.length > 0 && questionOpen.includes(index);\r\n let tiposinpuntuacion = x.tipo == TipoPreguntaEncuenta.Combo || TipoPreguntaEncuenta.PreSelecOpcion || x.tipo == TipoPreguntaEncuenta.Provincias || x.tipo == TipoPreguntaEncuenta.Paises || x.tipo == TipoPreguntaEncuenta.TextoLibre;\r\n\r\n return <>
\r\n
\r\n {tiposinpuntuacion ? \"\" : {x.valMedia.toFixed(2)}}
\r\n

{x.pregunta}

\r\n
\r\n
\r\n {open ? renderInfoPreguntaOpen(x, tiposinpuntuacion) : \"\" }\r\n
\r\n ; \r\n });\r\n\r\n return \r\n \r\n \r\n
\r\n \r\n {res}\r\n
\r\n
\r\n
\r\n
\r\n }\r\n else\r\n return \"\"; \r\n }\r\n\r\n function renderInfoEstadisticas() {\r\n\r\n return (\r\n !loading && data != null ? \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderInfoPreguntas()} \r\n \r\n :\r\n \r\n \r\n \r\n
\r\n {loading ? < OthelloWaiting /> : \"Seleccione los paramateros busqueda\"}\r\n
\r\n
\r\n
\r\n
);\r\n }\r\n\r\n let paramsbsuqueda = renderParametrosBusqueda();\r\n\r\n let infoestadisticas = renderInfoEstadisticas();\r\n\r\n\r\n return (<>\r\n {paramsbsuqueda}\r\n {infoestadisticas} \r\n );\r\n}\r\n\r\n\r\nEncuestasEstadistica.propTypes = {\r\n\r\n\r\n}","import React from 'react';\r\n\r\n\r\n// @mui/icons-material\r\n\r\nimport Info from \"@mui/icons-material/Info\";\r\nimport ListAlt from \"@mui/icons-material/ListAlt\";\r\nimport Beenhere from \"@mui/icons-material/Beenhere\";\r\nimport Receipt from \"@mui/icons-material/Receipt\";\r\nimport AddCircle from \"@mui/icons-material/AddCircleOutline\";\r\nimport RemoveCircle from \"@mui/icons-material/RemoveCircleOutline\";\r\n\r\nimport Button from '../components/Button.jsx';\r\nimport Card from \"@mui/material/Card\";\r\nimport Grid from \"@mui/material/Grid\";\r\n\r\nimport OthelloWaiting from '../componentsothello/OthelloWaiting.jsx';\r\nimport OthelloTimer from '../componentsothello/OthelloTimer';\r\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\r\nimport OthelloCard from '../componentsothello/OthelloCard.jsx';\r\nimport OthelloTitulo from '../componentsothello/OthelloTitulo.jsx';\r\n\r\nimport { TiposBusquedaEstadisticas, TiposPreguntaEncuenta, TipoPreguntaEncuenta, OpcionSiNoEncuesta, OpcionComboBienMalRegularEncuesta, OpcionComboUnoDiezEncuesta, OpcionEstrellasEncuesta } from \"../othelloConstantes.jsx\";\r\n\r\n\r\n\r\nimport { TipoBusquedaEstadisticas } from '../othelloConstantes.jsx';\r\n\r\nimport nacionalidades from \"../assets/nacionalidades.json\";\r\nimport OthelloTituloPanelData from '../componentsothello/OthelloTituloPanelData.jsx';\r\n\r\nexport default function EncuestasEstadisticaFiltradas({ ...props }) {\r\n\r\n //Gestion de filtros\r\n const [loadingFiltros, setLoadingFiltros] = React.useState(true);\r\n const [filtros, setFiltros] = React.useState(\"\");\r\n\r\n //Gestion de la lista de entregas traspasos\r\n const [loading, setLoading] = React.useState(false);\r\n const [data, setData] = React.useState(null); \r\n\r\n const [resultadosFiltros, setResultadosFiltros] = React.useState(null); \r\n\r\n const [filtrospreguntas, setFiltrosPreguntas] = React.useState(null);\r\n\r\n //EFECTOS\r\n\r\n React.useEffect(() => {\r\n fetch('api/Data/GetFiltrosEncuestasEstadisticas')\r\n .then(response => response.json())\r\n .then(data => {\r\n setFiltros(data);\r\n setLoadingFiltros(false);\r\n }).catch(error => {\r\n\r\n });\r\n\r\n }, [loadingFiltros]);\r\n \r\n\r\n function getDataPage() {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formbusqueda');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n setLoading(true);\r\n\r\n fetch('api/Data/GetEncuestasEstadisticas', {\r\n method: 'POST',\r\n body: formData,\r\n\r\n }).then(response => response.json()).then(res => {\r\n\r\n setData(res);\r\n setLoading(false);\r\n\r\n }).catch(error => {\r\n setData(null);\r\n setLoading(false);\r\n });\r\n }\r\n\r\n const onChangeEncuesta = (valor) => {\r\n if (valor != null) {\r\n let nuevo = { ...filtros }\r\n nuevo.tipobusqueda = valor;\r\n setFiltros(nuevo);\r\n }\r\n }\r\n\r\n const onChangeTipo = (valor) =>\r\n {\r\n if (valor != null)\r\n {\r\n let nuevo = { ...filtros }\r\n nuevo.tipobusqueda = valor;\r\n setFiltros(nuevo);\r\n }\r\n }\r\n\r\n const OnBuscarClick = () =>\r\n {\r\n getDataPage();\r\n }\r\n\r\n const OnBuscarSegunFiltrosRespuestasClick = () => {\r\n\r\n let formulario = document.getElementById('formbusqueda');\r\n let formData = new FormData(formulario);\r\n var object = {};\r\n formData.forEach((value, key) => { object[key] = value });\r\n\r\n //Obtengo los datos\r\n let formulariofiltros = document.getElementById('formbusquedaquestions');\r\n let formDatafiltros = new FormData(formulariofiltros);\r\n\r\n var objectfitros = [];\r\n formDatafiltros.forEach((value, key) => objectfitros.push({ id_question: key, valor: value }));\r\n\r\n object.filtros = objectfitros;\r\n\r\n setFiltrosPreguntas(objectfitros);\r\n\r\n var jsonData = JSON.stringify(object);\r\n\r\n fetch('api/Data/GetEncuestasEstadisticasFiltradas', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\r\n\r\n }).then(response => response.json()).then(res => {\r\n setResultadosFiltros(res);\r\n\r\n }).catch(error => {\r\n\r\n }); \r\n } \r\n\r\n function renderParametrosBusqueda() {\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filtros != null && filtros.tipobusqueda == TipoBusquedaEstadisticas.Personalizado ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n : \"\"\r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n
)\r\n }\r\n\r\n\r\n function renderCombosPreguntas() {\r\n\r\n if (data.preguntas != null && data.preguntas.length > 0) {\r\n\r\n let res = data.preguntas.map((y, index) =>\r\n {\r\n if (y.tipo == TipoPreguntaEncuenta.TextoLibre)\r\n return \"\";\r\n else {\r\n let array = [];\r\n\r\n array.push({ valor: \"-1\", name: \"Todos\" });\r\n\r\n if (y.tipo == TipoPreguntaEncuenta.Combo || TipoPreguntaEncuenta.PreSelecOpcion || y.tipo == TipoPreguntaEncuenta.Provincias || y.tipo == TipoPreguntaEncuenta.Paises) {\r\n if (y.resultados != null && y.resultados.length > 0)\r\n y.resultados.forEach(x => {\r\n if (x.resultexto != null)\r\n array.push({ valor: x.resultexto, name: x.resultexto })\r\n });\r\n }\r\n else {\r\n let arrayIni = [];\r\n\r\n if (y.tipo == TipoPreguntaEncuenta.ComboUnoDiez)\r\n arrayIni = OpcionComboUnoDiezEncuesta;\r\n else if (y.tipo == TipoPreguntaEncuenta.ComboBienMalRegular)\r\n arrayIni = OpcionComboBienMalRegularEncuesta;\r\n else if (y.tipo == TipoPreguntaEncuenta.Estrellas)\r\n arrayIni = OpcionEstrellasEncuesta;\r\n else if (y.tipo == TipoPreguntaEncuenta.SiNo)\r\n arrayIni = OpcionSiNoEncuesta;\r\n\r\n array = arrayIni.filter(x => y.resultados.some(z => z.puntuacion == x.valor)); \r\n array.push({ valor: \"-1\", name: \"Todos\" });\r\n }\r\n\r\n\r\n let dataquestion = filtrospreguntas != null && filtrospreguntas.length > 0 ? filtrospreguntas.find(x => x.id_question == y.id_Question) : null;\r\n\r\n return \r\n } \r\n });\r\n\r\n return \r\n \r\n \r\n
\r\n \r\n
\r\n {res} \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n function renderFiltroPreguntasInfoEstadistica() {\r\n return !loading && data != null ? renderCombosPreguntas() : \"\";\r\n }\r\n\r\n function renderInfoEstadisticas() {\r\n\r\n return (\r\n !loading && resultadosFiltros != null ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Se han encontrado {resultadosFiltros.totalCumplenFiltros} encuenta/s que cumplen con los filtros indicados. \r\n
\r\n
\r\n
\r\n
\r\n \r\n : \"\");\r\n }\r\n\r\n let paramsbsuqueda = renderParametrosBusqueda();\r\n\r\n let filtroestadisticas = renderFiltroPreguntasInfoEstadistica();\r\n\r\n let infoEstadisticas = renderInfoEstadisticas();\r\n\r\n\r\n\r\n return (<>\r\n {paramsbsuqueda}\r\n {filtroestadisticas} \r\n {infoEstadisticas}\r\n );\r\n}\r\n\r\n\r\nEncuestasEstadisticaFiltradas.propTypes = {\r\n\r\n\r\n}","import React, { useState } from \"react\";\n\nimport { useTranslation } from 'react-i18next';\n\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\nimport SwipeableViews from \"react-swipeable-views\";\n\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport MDBox from \"./MDBox\";\n\n\nexport default function NavPills({ ...props }) {\n\n \n const {\n tabs,\n direction,\n color,\n horizontal,\n alignCenter\n } = props;\n\n\n const [active, setactive] = useState(props.active);\n\n const handleChange = (event, active) => {\n setactive(active);\n\n if (props.onChangeIndexPill != null)\n props.onChangeIndexPill(active);\n };\n\n const handleChangeIndex = index => {\n setactive(index);\n\n };\n\n \n const tabButtons = (\n \n {tabs.map((prop, key) => {\n var icon = {};\n if (prop.tabIcon !== undefined) {\n icon[\"icon\"] = ;\n }\n \n return (\n \n );\n })}\n \n );\n\n const tabContent = (\n
\n \n {tabs.map((prop, key) => {\n return (\n
\n \n {prop.tabContent}\n \n
\n );\n })}\n \n
\n );\n\n\n return horizontal !== undefined ? (\n \n {tabButtons}\n {tabContent}\n \n ) : (\n
\n {tabButtons}\n {tabContent}\n
\n );\n}\n\n\n\nNavPills.defaultProps = {\n active: 0,\n color: \"primary\"\n};\n\nNavPills.propTypes = {\n // index of the default active pill\n active: PropTypes.number,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n tabButton: PropTypes.string,\n tabIcon: PropTypes.func,\n tabContent: PropTypes.node\n })\n ).isRequired,\n color: PropTypes.oneOf([\n \"primary\",\n \"warning\",\n \"danger\",\n \"success\",\n \"info\",\n \"rose\"\n ]),\n direction: PropTypes.string,\n horizontal: PropTypes.shape({\n tabsGrid: PropTypes.object,\n contentGrid: PropTypes.object\n }),\n alignCenter: PropTypes.bool,\n onChangeIndexPill: PropTypes.object,\n};\n\n/*\nclass NavPills extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n active: props.active\n };\n }\n handleChange = (event, active) => {\n this.setState({ active });\n\n if (this.props.onChangeIndexPill != null)\n this.props.onChangeIndexPill(active);\n };\n handleChangeIndex = index =>\n {\n this.setState({ active: index }); \n };\n render() {\n const {\n classes,\n tabs,\n direction,\n color,\n horizontal,\n alignCenter\n } = this.props;\n const flexContainerClasses = classNames({\n [classes.flexContainer]: true,\n [classes.horizontalDisplay]: horizontal !== undefined\n });\n const tabButtons = (\n \n {tabs.map((prop, key) => {\n var icon = {};\n if (prop.tabIcon !== undefined) {\n icon[\"icon\"] = ;\n }\n const pillsClasses = classNames({\n [classes.pills]: true,\n [classes.horizontalPills]: horizontal !== undefined,\n [classes.pillsWithIcons]: prop.tabIcon !== undefined\n });\n return (\n \n );\n })}\n \n );\n const tabContent = (\n
\n \n {tabs.map((prop, key) => {\n return (\n
\n {prop.tabContent}\n
\n );\n })}\n \n
\n );\n return horizontal !== undefined ? (\n \n {tabButtons}\n {tabContent}\n \n ) : (\n
\n {tabButtons}\n {tabContent}\n
\n );\n }\n}*/\n\n\n//export default withStyles(navPillsStyle)(NavPills);\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Place from \"@mui/icons-material/Place\";\nimport LocalOffer from \"@mui/icons-material/LocalOffer\";\nimport TouchApp from \"@mui/icons-material/TouchApp\";\nimport Info from \"@mui/icons-material/Info\";\nimport Collections from \"@mui/icons-material/Collections\";\nimport StoreMallDirectory from \"@mui/icons-material/StoreMallDirectory\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\n\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, Categorias, OpcionVisibilidadPoi, OpcionSiNo, OpcionSiNoChar, TipoOthelloFieldGrid, TipoArea, ModosVisualizaNotifica, Roles, PopUpResult, TipoEntrega } from \"../othelloConstantes.jsx\";\r\n\r\nimport { getCurrentDataFormulario } from \"../othelloFunciones.jsx\";\r\n\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\n\n\nimport NavPills from \"../components/NavPills.jsx\";\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\nimport ImageUpload from \"../components/ImageUpload.jsx\";\nimport Button from \"../components/Button.jsx\";\n\n\nimport OthelloTimer from \"../componentsothello/OthelloTimer.jsx\";\r\nimport OthelloCheckBox from \"../componentsothello/OthelloCheckBox.jsx\";\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloTitulo from \"../componentsothello/OthelloTitulo.jsx\";\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\n\nexport default function Pois({ ...props }) {\r\n const { literal, idRol, tipooficina } = props;\n\n const [currenturl, setcurrenturl] = React.useState(\"\");\n\n const [loading, setLoading] = React.useState(true);\n const [loadingediting, setloadingediting] = React.useState(true);\n\n const [modoagenda, setmodoagenda] = React.useState(false);\n const [areaagenda, setareaagenda] = React.useState(null);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [statePageImagenExtra, setstatePageImagenExtra] = React.useState(DataStatePage.dsSearch);\n const [statePageAccion, setstatePageAccion] = React.useState(DataStatePage.dsSearch);\n const [statePagePromocion, setstatePagePromocion] = React.useState(DataStatePage.dsSearch);\n\n const [datapois, setdatapois] = React.useState(null);\n\n const [idiomas, setidiomas] = React.useState([]);\n const [idiomascombo, setidiomascombo] = React.useState([]); \n const [regiones, setregiones] = React.useState([]);\n const [areas, setareas] = React.useState([]);\n const [areascombo, setareascombo] = React.useState([]);\n const [subareas, setsubareas] = React.useState([]);\n const [tiposactividad, settiposactividad] = React.useState(null);\n\n const [areaselected, setareaselected] = React.useState(null);\n const [tipoactividadselected, settipoactividadselected] = React.useState(null);\n const [changingarea, setchangingarea] = React.useState(false);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const [dataeditandoImagenExtra, setdataeditandoImagenExtra] = useState(null);\r\n const [indexeditandoImagenExtra, setindexeditandoImagenExtra] = useState(null);\n\n const [dataeditandoAccion, setdataeditandoAccion] = useState(null);\r\n const [indexeditandoAccion, setindexeditandoAccion] = useState(null);\n\n const [dataeditandoPromocion, setdataeditandoPromocion] = useState(null);\r\n const [indexeditandoPromocion, setindexeditandoPromocion] = useState(null);\n\n const [diasVisualizando, setdiasVisualizando] = useState(null);\n\n const navigate = useNavigate();\r\n\r\n const { search } = useLocation();\r\n \n React.useEffect(() => {\r\n\r\n if (currenturl != \"\" && currenturl != window.location.href) {\r\n setdatapois(null);\r\n setLoading(true);\r\n }\r\n });\n\n React.useEffect(() => {\r\n\r\n setcurrenturl(window.location.href);\r\n\r\n let EsAgenda= window.location.pathname.indexOf(\"/admin/noticias\") !== -1\r\n\r\n setmodoagenda(EsAgenda);\r\n\r\n getDataPage(EsAgenda);\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const setIdPoiTiendaSelected = (selected) => {\r\n\r\n if (selected != null) {\r\n var jsonData = JSON.stringify({ id_poi: selected.id_Poi, nombre: selected.title });\r\n\r\n fetch('api/Data/SetIDPoiTiendaSelected', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n //Si hubo error\r\n if (res) {\r\n //navigate('/admin/dashtienda');\r\n //props.history.push('/admin/dashtienda')\r\n window.location.assign('/admin/dashtienda');\r\n }\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n\r\n //Metodos Sobre POIS\r\n\r\n const OnBuscarClick = () => {\r\n \r\n getDataPoisPage(modoagenda);\r\n }\r\n \r\n const getDataPage = (esagenda) =>\r\n {\r\n if (tiposactividad == null || (tiposactividad != null && tiposactividad.length == 0)) {\r\n fetch('api/Data/GetTiposActividad')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let resactividades = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.iD_Actividad,\r\n name: x.descripcion\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n settiposactividad(resactividades);\r\n });\r\n }\r\n\r\n if (idiomas == null || (idiomas != null && idiomas.length == 0)) {\r\n\r\n fetch('api/Data/GetIdiomas')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let residiomas = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.idioma,\r\n name: x.descripcion\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n let idiomasCombo = [...residiomas];\r\n idiomasCombo.push({ id_Oficina: -1, idioma: \"\", name: \"Todos\", valor: \"\" })\r\n\r\n setidiomas(residiomas);\r\n setidiomascombo(idiomasCombo);\r\n });\r\n }\r\n\r\n if (regiones == null || (regiones != null && regiones.length == 0)) {\r\n\r\n fetch('api/Data/GetRegiones')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let resregiones = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Region,\r\n name: x.nombreRegion\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n setregiones(resregiones);\r\n });\r\n }\r\n \r\n fetch('api/Data/GetAreas')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let resareas = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Area,\r\n name: x.cod_Area\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n let areasCombo = [...resareas];\r\n areasCombo.push({ id_Oficina: -1, id_Area: 0, cod_Area :\"Todas\", name: \"Todas\", valor: \"\" })\r\n\r\n setareas(resareas);\r\n setareascombo(areasCombo)\r\n\r\n if (esagenda) {\n if (resareas != null && resareas.length > 0) {\n let finalareaagenda = resareas.find(x => x.tipoArea == TipoArea.Agenda);\n\n if (finalareaagenda != null)\n setareaagenda(finalareaagenda);\n }\n }\r\n });\r\n \r\n if (subareas == null || (subareas != null && subareas.length == 0)) {\r\n\r\n fetch('api/Data/GetSubAreasOficina')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let ressubareas = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_SubArea,\r\n name: x.descripcion\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n setsubareas(ressubareas);\r\n });\r\n }\r\n \r\n getDataPoisPage(esagenda);\r\n\r\n setLoading(false);\r\n }\r\n\r\n const getDataPoisPage = (esagenda) =>\r\n {\r\n let jsonFinal = \"\";\r\n\r\n if (esagenda != null && esagenda) {\r\n jsonFinal = { idioma : \"\", id_area : null, modoagenda: esagenda }\r\n }\r\n else\r\n {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formbusqueda');\r\n\r\n let jsonDataForm = getCurrentDataFormulario(formulario);\r\n\r\n jsonFinal = { ...jsonDataForm, modoagenda: esagenda };\r\n }\r\n\r\n //Si estamos en modo agenda\r\n var jsonData = JSON.stringify(jsonFinal);\r\n\r\n fetch('api/Data/GetPois', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdatapois(res);\r\n }).catch(error => {\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetPoiVacio')\r\n .then(response => response.json())\r\n .then(data =>\r\n {\r\n setindexeditando(-1);\r\n setdiasVisualizando(data.diasVisualizar);\r\n\r\n if (areas != null && areas.length > 0)\r\n data.id_Area = areas[0].id_Area;\r\n\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert)\r\n setloadingediting(false);\r\n setareaselected(data.id_Area > 0 ? data.id_Area : null); \r\n }).catch(error => {\r\n setindexeditando(null);\r\n setdiasVisualizando(\"\");\r\n setdataeditando(null);\r\n setstatePage(DataStatePage.dsSearch)\r\n setloadingediting(true);\r\n });;\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Altero el valor que tiene el input de dias visualizando\r\n try {\r\n //refs.form[2].value = diasVisualizando;\r\n }\r\n catch { }\r\n\r\n //Obtengo los datos\r\n //const data = new FormData(refs.form);\r\n let formulario = document.getElementById('formpois');\r\n let formData = new FormData(formulario);\r\n\r\n //Guardo en un auxiliar los otros valores\r\n let aux = dataeditando;\r\n\r\n fetch('api/Data/GrabarPoi', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n //Le asocio los otros valores que no han sido modificados, ya que le dio a grabar la zona de poi\r\n res.acciones = aux.acciones;\r\n res.imagenesExtras = aux.imagenesExtras;\r\n res.promociones = aux.promociones;\r\n\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...datapois];\r\n array.push(res);\r\n setdatapois(array);\r\n }\r\n else {\r\n var array = [...datapois];\r\n array[indexeditando] = res;\r\n setdatapois(array);\r\n }\r\n\r\n setdiasVisualizando(res.diasVisualizar);\r\n setdataeditando(res); \r\n setalert(PopUpResult.OK);\r\n \r\n //autoCloseAlert();\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => \r\n {\r\n cancelarDataPage();\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVacia();\r\n setindexeditando(-1);\r\n setdiasVisualizando(\"\");\r\n }\r\n\r\n const cancelarDataPage = () => {\r\n setindexeditando(null);\r\n setdiasVisualizando(\"\");\r\n setdataeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n setloadingediting(true);\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n { \r\n setdataeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n setloadingediting(true);\r\n }\r\n //Sino, es que estabamos en un item valido\r\n else {\r\n //Inicializo a los datos que tenia cuando se puso a editar el poi\r\n if (dataeditando != null)\r\n setdiasVisualizando(dataeditando.diasVisualizar);\r\n\r\n //Actualizo la pantalla\r\n //forceUpdate()\r\n }\r\n }\r\n\r\n const onChangeArea = (valor) => {\r\n if (areaselected != valor) {\r\n\r\n var object = {};\r\n let formulario = document.getElementById('formpois');\r\n let formData = new FormData(formulario);\r\n formData.forEach((value, key) => { object[key] = value });\r\n\r\n var final =\r\n {\r\n ...object,\r\n lat: object.latStringAux,\r\n lon: object.lonStringAux,\r\n imagenesExtras: dataeditando.imagenesExtras,\r\n acciones: dataeditando.acciones,\r\n promociones: dataeditando.promociones,\r\n diasVisualizar: diasVisualizando\r\n }\r\n\r\n setdataeditando(final);\r\n setareaselected(valor);\r\n }\r\n }\r\n\r\n const onLimpiarFechaNotificado = (idpoi) => {\r\n if (idpoi > 0) {\r\n var jsonData = JSON.stringify(idpoi);\r\n\r\n fetch('api/Data/LimpiarFechaNotificadoPoi', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n let valor = dataeditando;\r\n valor.notificado = null;\r\n setdataeditando(valor);\r\n }\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n\r\n const onChangeDiaCheckBox = (id, valor) => {\r\n\r\n //Si tenemo valor editando\r\n if (dataeditando != null && diasVisualizando != null) {\r\n let diasvisu = diasVisualizando;\r\n\r\n //Si me dice que se ha seleccionado el check\r\n if (valor) {\r\n\r\n //Si no esta dentro de los dias a visualizar\r\n if (diasvisu.indexOf(id) < 0) {\r\n diasvisu = diasvisu + id;\r\n }\r\n }\r\n //sino, es que debemos eliminarlo\r\n else {\r\n diasvisu = diasvisu.replace(id, \"\");\r\n }\r\n\r\n setdiasVisualizando(diasvisu);\r\n }\r\n }\r\n\r\n const onClosePopUpResult = () => {\r\n setalert(\"\");\r\n }\r\n\r\n //Metodo sobre Imagenes Extras\r\n\r\n const getDataVaciaImagenExtra = () => {\r\n\r\n var jsonData = JSON.stringify(dataeditando.id_Poi);\r\n\r\n fetch('api/Data/GetImagenExtraVacia', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res =>\r\n {\r\n setdataeditandoImagenExtra(res);\r\n setstatePageImagenExtra(DataStatePage.dsInsert);\r\n }).catch(error => {\r\n setdataeditandoImagenExtra(null);\r\n });\r\n }\r\n\r\n const grabarDataPageImagenExtra = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formextras');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/GrabarImagenExtra', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n let editandofinal = dataeditando;\r\n\r\n if (editandofinal.imagenesExtras == null)\r\n editandofinal.imagenesfinal = [];\r\n\r\n if (indexeditandoImagenExtra == -1) \r\n editandofinal.imagenesExtras.push(res);\r\n else\r\n editandofinal.imagenesExtras[indexeditandoImagenExtra] = res;\r\n\r\n setdataeditando(editandofinal);\r\n setdataeditandoImagenExtra(null);\r\n setindexeditandoImagenExtra(null);\r\n setstatePageImagenExtra(DataStatePage.dsSearch)\r\n setalert(PopUpResult.OK); \r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPageImagenExtra = () => {\r\n\r\n getDataVaciaImagenExtra();\r\n setindexeditandoImagenExtra(-1); \r\n }\r\n\r\n const cancelarDataPageImagenExtra = () => {\r\n setdataeditandoImagenExtra(null);\r\n setindexeditandoImagenExtra(null);\r\n setstatePageImagenExtra(DataStatePage.dsSearch)\r\n }\r\n\r\n const deshacerDataPageImagenExtra = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditandoImagenExtra == -1)\r\n setstatePageImagenExtra(DataStatePage.dsSearch) \r\n //Sino, es que estabamos en un item valido\r\n //else\r\n //forceUpdate()\r\n }\r\n\r\n //Metodo sobre Acciones\r\n\r\n const getDataVaciaAccion = () => {\r\n\r\n var jsonData = JSON.stringify(dataeditando.id_Poi);\r\n\r\n fetch('api/Data/GetAccionVacia', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n setdataeditandoAccion(res);\r\n setstatePageAccion(DataStatePage.dsInsert)\r\n settipoactividadselected(null); \r\n }).catch(error => {\r\n setdataeditandoAccion(null); \r\n });\r\n }\r\n\r\n const grabarDataPageAccion = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formaccion');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form); \r\n\r\n fetch('api/Data/GrabarAccion', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n let editandofinal = dataeditando;\r\n\r\n if (editandofinal.acciones == null)\r\n editandofinal.acciones = [];\r\n\r\n if (indexeditandoAccion == -1)\r\n editandofinal.acciones.push(res);\r\n else\r\n editandofinal.acciones[indexeditandoAccion] = res;\r\n\r\n setdataeditando(editandofinal);\r\n setdataeditandoAccion(null);\r\n setindexeditandoAccion(null);\r\n setstatePageAccion(DataStatePage.dsSearch)\r\n setalert(PopUpResult.OK);\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPageAccion = () => {\r\n\r\n getDataVaciaAccion();\r\n setindexeditandoAccion(-1);\r\n }\r\n\r\n const cancelarDataPageAccion = () => {\r\n setdataeditandoAccion(null);\r\n setindexeditandoAccion(null);\r\n setstatePageAccion(DataStatePage.dsSearch)\r\n }\r\n\r\n const deshacerDataPageAccion = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditandoAccion == -1)\r\n setstatePageAccion(DataStatePage.dsSearch)\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n //forceUpdate()\r\n }\r\n\r\n const onChangeTipoActividad = (valor) => {\r\n if (tipoactividadselected != valor)\r\n settipoactividadselected(valor);\r\n }\r\n\r\n //Metodo sobre Promociones\r\n\r\n const getDataVaciaPromocion = () => {\r\n\r\n var jsonData = JSON.stringify(dataeditando.id_Poi);\r\n\r\n fetch('api/Data/GetPromocionVacia', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdataeditandoPromocion(res);\r\n setstatePagePromocion(DataStatePage.dsInsert);\r\n }).catch(error => {\r\n setdataeditandoPromocion(null);\r\n });\r\n }\r\n\r\n const grabarDataPagePromocion = (event) => {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formpromo');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/GrabarPromocion', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n let editandofinal = dataeditando;\r\n\r\n if (editandofinal.promociones == null)\r\n editandofinal.promociones = [];\r\n\r\n if (indexeditandoPromocion == -1)\r\n editandofinal.promociones.push(res);\r\n else\r\n editandofinal.promociones[indexeditandoPromocion] = res;\r\n\r\n setdataeditando(editandofinal);\r\n setdataeditandoPromocion(null);\r\n setindexeditandoPromocion(null);\r\n setstatePagePromocion(DataStatePage.dsSearch)\r\n setalert(PopUpResult.OK); \r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPagePromocion = () => {\r\n\r\n getDataVaciaPromocion();\r\n setindexeditandoPromocion(-1);\r\n }\r\n\r\n const cancelarDataPagePromocion = () => {\r\n setdataeditandoPromocion(null);\r\n setindexeditandoPromocion(null);\r\n setstatePagePromocion(DataStatePage.dsSearch)\r\n }\r\n\r\n const deshacerDataPagePromocion = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditandoPromocion == -1)\r\n setstatePagePromocion(DataStatePage.dsSearch)\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID POIS\r\n\r\n const editGridDataPage = (valor, index) => {\r\n\r\n setloadingediting(true);\r\n setdataeditando(null);\r\n //setState({ dataeditando: null, loadingediting: true });\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Poi);\r\n\r\n fetch('api/Data/GetPoi', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setindexeditando(index);\r\n setdiasVisualizando(res.diasVisualizar);\r\n setdataeditando(res);\r\n setstatePage(DataStatePage.dsEdit)\r\n setloadingediting(false);\r\n setareaselected(res.id_Area);\r\n setalert(null); \r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Poi);\r\n\r\n fetch('api/Data/EliminarPoi', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(null);\r\n setindexeditando(null); \r\n setdiasVisualizando(\"\");\r\n setstatePage(DataStatePage.dsSearch);\r\n\r\n if (datapois != null) {\r\n var array = [...datapois]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setdatapois(array)\r\n setalert(PopUpResult.OK); \r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n //METODO SOBRE EL GRID IMAGENES EXTRAS\r\n\r\n const editGridDataPageImagenExtra = (valor, index) => {\r\n\r\n setdataeditandoImagenExtra(valor);\r\n setindexeditandoImagenExtra(index);\r\n setstatePageImagenExtra(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPageImagenExtra = (valor, index) =>\r\n {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Extra_Img);\r\n\r\n fetch('api/Data/EliminarImagenExtra', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res)\r\n {\r\n if (dataeditando.imagenesExtras != null) {\r\n var array = [...dataeditando.imagenesExtras]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n let datafinal = dataeditando;\r\n\r\n //Actualizo las promociones con el nuevo valor\r\n datafinal.imagenesExtras = array;\r\n\r\n setdataeditando(datafinal);\r\n\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditandoImagenExtra(null);\r\n setindexeditandoImagenExtra(null);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n //METODO SOBRE EL GRID ACCIONES\r\n\r\n const editGridDataPageAccion = (valor, index) => {\r\n\r\n setdataeditandoAccion(valor);\r\n setindexeditandoAccion(index);\r\n setstatePageAccion(DataStatePage.dsEdit);\r\n settipoactividadselected(valor.activityType);\r\n }\r\n\r\n const deleteGridDataPageAccion = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_PoiAction);\r\n\r\n fetch('api/Data/EliminarAccion', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n if (dataeditando.acciones != null) {\r\n var array = [...dataeditando.acciones]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n let datafinal = dataeditando;\r\n\r\n //Actualizo las promociones con el nuevo valor\r\n datafinal.acciones = array;\r\n\r\n setdataeditando(datafinal);\r\n \r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditandoAccion(null);\r\n setindexeditandoAccion(null);\r\n\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n //METODO SOBRE EL GRID PROMOCIONES\r\n\r\n const editGridDataPagePromocion = (valor, index) => {\r\n\r\n setdataeditandoPromocion(valor);\r\n setindexeditandoPromocion(index);\r\n setstatePagePromocion(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPagePromocion = (valor, index) =>\r\n {\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Promocion);\r\n\r\n fetch('api/Data/EliminarPromocion', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n\r\n if (dataeditando.promociones != null) {\r\n var array = [...dataeditando.promociones]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n let datafinal = dataeditando;\r\n\r\n //Actualizo las promociones con el nuevo valor\r\n datafinal.promociones = array;\r\n\r\n setdataeditando(datafinal);\r\n\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditandoPromocion(null);\r\n setindexeditandoPromocion(null);\r\n\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\r\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n //Metodos render POIS\n\n function renderSearchPOIS(pois)\n {\n let name = tipooficina == 3 ? \"Establecimiento\" : \"Punto de Interes\";\n let cabeceros = idRol == Roles.SuperUsuario ? [name, \"Idioma\", \"Area\", \"Sub Area\", \"Poi\"] : [name, \"Idioma\", \"Area\", \"Sub Area\"];\n let valoreshow = idRol == Roles.SuperUsuario ? [\"title\", \"idioma\", \"id_Area\", \"id_SubArea\", \"id_Poi\"] : [\"title\", \"idioma\", \"id_Area\", \"id_SubArea\"];\n\n if (modoagenda) {\n let Cabecera = areaagenda != null ? areaagenda.cod_Area : \"\";\n\n cabeceros = [Cabecera, \"Notificacion\", \"Poi\"];\n valoreshow = [\"title\", \"fNotificacion\", \"id_Poi\"];\n }\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"idioma\", items: idiomas });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"id_Area\", items: areas });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"id_SubArea\", items: subareas, omitir: true });\r\n\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloDateTime, fieldname: \"fNotificacion\" });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditPOIS() {\n\n if (dataeditando != null) {\n let name = tipooficina == 3 ? \"Establecimiento\" : \"Punto de Interes\";\n\n //Ponemos el nombre general el valor local que tenemos en dicho momento\n let Nombre = loadingediting ?

:\n (dataeditando != null && dataeditando.id_Poi > 0 ? dataeditando.title : (modoagenda ? \"Nuevo registro\" : \"Nuevo \" + name));\n\n //Si estamos cargando el poi ponemos el buscando, sino, renderizamos los datos generales del poi actual\n let datosGeneralesPoi = loadingediting ?

\r\n : renderInsertEditDatosGenerales(dataeditando)\n\n //Si estamos cargando el poi ponemos el buscando, sino, renderizamos los datos generales del poi actual\n let datosImagenesExtraPoi = loadingediting ?

\r\n : renderOpcionesImagenesExtra(dataeditando.imagenesExtras)\n\n // Si estamos cargando el poi ponemos el buscando, sino, renderizamos los datos generales del poi actual\n let datosAccionesPoi = loadingediting ?

\r\n : renderOpcionesAcciones(dataeditando.acciones)\n\n // Si estamos cargando el poi ponemos el buscando, sino, renderizamos los datos generales del poi actual\n let datosPromocionesPoi = loadingediting ?

\r\n : renderOpcionesPromociones(dataeditando.promociones)\n\n\n let tabs = [];\n\n if (modoagenda) {\n\n tabs = [\n {\n tabButton: \"Datos Generales\",\n tabIcon: Info,\n tabContent: (datosGeneralesPoi)\n }];\n\n if (dataeditando != null && dataeditando.id_Poi > 0) {\n tabs.push(\n {\n tabButton: \"Imagenes Extra\",\n tabIcon: Collections,\n tabContent: (datosImagenesExtraPoi)\n });\n\n tabs.push(\n {\n tabButton: \"Acciones\",\n tabIcon: TouchApp,\n tabContent: (datosAccionesPoi)\n });\n }\n }\n else {\n tabs = [\n {\n tabButton: \"Datos Generales\",\n tabIcon: Info,\n tabContent: (datosGeneralesPoi)\n }];\n\n if (dataeditando != null && dataeditando.id_Poi > 0) {\n tabs.push({\n tabButton: \"Imagenes Extra\",\n tabIcon: Collections,\n tabContent: (datosImagenesExtraPoi)\n });\n tabs.push({\n tabButton: \"Acciones\",\n tabIcon: TouchApp,\n tabContent: (datosAccionesPoi)\n });\n tabs.push({\n tabButton: \"Promociones\",\n tabIcon: LocalOffer,\n tabContent: (datosPromocionesPoi)\n });\n }\n }\n\n\n return (\n
\n \n
\n
\r\n );\n }\n else\n return \"\";\n }\n\n //Metodos render datos Generales POI\n\n function renderInsertEditDatosGenerales(poi)\n {\n if (poi != null) {\n let subareasshow = subareas != null ? subareas.filter(x => x.id_Area == areaselected) : null;\n let areaactual = areas != null ? areas.find(x => x.id_Area == areaselected) : null;\n\n return (
\n \n \n \n \n \n \n \n {tipooficina == 3 || (poi != null && poi.ventaActiva != null && poi.ventaActiva == 1) ? : \"\"}\n \n \n
\n \n \n \n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n {\n !modoagenda && regiones != null && regiones.length > 0 ?\n \n \n :\n \n }\n {\n !modoagenda ?\n \n \n : \"\"\n }\n {\n modoagenda || idRol != Roles.SuperUsuario ?\n\n :\n \n \n \n }\n {\n modoagenda ?\n :\n \n }\n \n \n {\n modoagenda ?\n :\n \n \n \n }\n {\n !modoagenda && subareasshow != null && subareasshow.length > 0 ?\n (\n \n ) : \"\"\n }\n \n \n \n \n \n \n {\n !modoagenda ?\n \n \n : \"\"\n }\n\n {\n !modoagenda ?\n \n \n : \"\"\n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \r\n
\n
\n {\r\n modoagenda || (areaactual != null && (areaactual.tipoArea == TipoArea.Calendario || areaactual.permiteNotificar == 1)) ?\n \n \n \n \n \n \n \n {\n poi.notificado != null ? {new Date(poi.notificado).toLocaleTimeString()} : \"\"\n }\n \n : \"\"\n }\n
\n \n \n \n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n = 0} onChange={onChangeDiaCheckBox} />\n \n \n
\n \n \n \n \n \n \n \n \n {!modoagenda ?\n \n \n
\n \r\n
\n
\n : \"\"}\n {!modoagenda ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n : \"\"}\n \n \n
\n \r\n
\n
\n \n \n
\n

Pequeña (300x225px)

\n \n
\n \n
\n

Grande (512x384px)

\n \n
\n
\n \n
\n )\n }\n else\n return \"\";\n }\n\n //Metodos render Imagenes Extras\n\n function renderOpcionesImagenesExtra( imagenes) {\n\n let busquedaImagenes = renderSearchImagenesExtra( imagenes);\n\n let edicionImagenes = statePageImagenExtra == DataStatePage.dsEdit || statePageImagenExtra == DataStatePage.dsInsert ? renderInsertEditImagenExtra( dataeditandoImagenExtra) : \"\";\n\n //#99d9b7\n return (
\n \n \n {edicionImagenes}\n \n \n \n \n \n {busquedaImagenes}\n \n \n
\n );\n }\n\n function renderSearchImagenesExtra( imagenes) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [\"Imagen\", \"ID\"] : [\"Imagen\"];\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"imageUrl\", \"id_Extra_Img\"] : [\"imageUrl\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"imageUrl\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditImagenExtra(imagenextra) {\n\n if (imagenextra != null) {\n let Nombre = imagenextra != null && imagenextra.id_Extra_Img > 0 ? \"Editar Imagen\" : \"Nueva Imagen\";\n\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n
\n Imagen (512x384px)\n \n
\n
\n \r\n
\r\n );\n }\n else\n return \"\";\n }\n //Metodos render Acciones\n\n function renderOpcionesAcciones( acciones) {\n\n let busquedaacciones = renderSearchAcciones( acciones);\n\n let edicionacciones = statePageAccion == DataStatePage.dsEdit || statePageAccion == DataStatePage.dsInsert ? renderInsertEditAccion( dataeditandoAccion) : \"\";\n\n //#99d9b7\n return (
\n \n \n {edicionacciones}\n \n \n \n \n \n {busquedaacciones}\n \n \n
\n );\n }\n\n function renderSearchAcciones( acciones) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [\"Nombre Accion\", \"Tipo de Accion\", \"Orden Visual\", \"Accion\", \"ID\"] : [\"Nombre Accion\", \"Tipo de Accion\", \"Orden Visual\", \"Accion\"];\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"label\", \"activityType\", \"ordenVisual\", \"uri\", \"id_PoiAction\"] : [\"label\", \"activityType\", \"ordenVisual\", \"uri\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"activityType\", items: tiposactividad });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n const getLabelUri = (TipoActividad) => {\n //Si existe el valor\r\n if (TipoActividad > 0) {\r\n if (TipoActividad == 1)\r\n return \"Pagina web\";\r\n else if (TipoActividad == 2)\r\n return \"Ubicación del audio\";\r\n else if (TipoActividad == 4)\r\n return \"Numero de telefono\";\r\n else if (TipoActividad == 5)\r\n return \"Dirección de correo\";\r\n else if (TipoActividad == 38)\r\n return \"\";\r\n else if (TipoActividad == 39)\r\n return \"\";\r\n else if (TipoActividad == 19)\r\n return \"Accion (Ej:whatsapp://send?phone=+34....)\";\r\n else\r\n return \"Accion\";\r\n }\r\n else\r\n return \"Accion\";\n }\n\n function renderInsertEditAccion(accion) {\n\n if (accion != null) {\n let Nombre = accion != null && accion.id_PoiAction > 0 ? \"Editar Accion\" : \"Nueva Accion\";\n\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n\n x.iD_Actividad != 38 && x.iD_Actividad != 39) : tiposactividad} currentvalue={accion.activityType} onChange={onChangeTipoActividad} />\n\n \n \n \n \n {\n !(tipoactividadselected == 38 || tipoactividadselected == 39) ?\n \n \n : \"\"\n }\n {\n tipoactividadselected == 20 ?\n \n \n : \"\"\n }\n \n \n\n {\n tipoactividadselected == 2 || tipoactividadselected == 6 || tipoactividadselected == 7 || tipoactividadselected == 8 || tipoactividadselected == 18 ?\n (\n
\n Archivo\n \n
) : \"\"\n }\n
\n \r\n
\r\n );\n }\n else\n return \"\";\n }\n\n //Metodos render Promociones\n\n function renderOpcionesPromociones( promos) {\n\n let busquedaPromos = renderSearchPromociones( promos);\n\n let edicionPromos = statePagePromocion == DataStatePage.dsEdit || statePagePromocion == DataStatePage.dsInsert ? renderInsertEditPromocion( dataeditandoPromocion) : \"\";\n\n //#99d9b7\n return (
\n \n \n {edicionPromos}\n \n \n \n \n \n {busquedaPromos}\n \n \n
\n );\n }\n\n function renderSearchPromociones( promos) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [\"Codigo\", \"Promocion\", \"Fecha Final\", \"Activada\", \"ID\"] : [\"Codigo\", \"Promocion\", \"Fecha Final\", \"Activada\"];\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"codigoPromo\", \"promo\", \"fechValido\", \"activada\", \"id_Promocion\"] : [\"codigoPromo\", \"promo\", \"fechValido\", \"activada\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"activada\", items: OpcionSiNoChar });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloDate, fieldname: \"fechValido\" });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditPromocion(promo) {\n\n if (promo != null) {\n let Nombre = promo != null && promo.id_Promocion > 0 ? \"Editar Promocion\" : \"Nueva Promocion\";\n\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Imagen Promocional\n \n
\n
\n \r\n
\r\n );\n }\n else\n return \"\";\n }\n\n function renderParametrosBusqueda() {\r\n\r\n \r\n\r\n return (modoagenda ? \"\" :\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
)\r\n }\n //currentvalue={!loadingFiltros ? filtros.tipobusqueda : 0} \n\r\n let busqueda = loading ?

: renderSearchPOIS(datapois)\n \n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEditPOIS() : \"\"; \n\n let alerta = alert != null ? : \"\";\n\n let paramsbsuqueda = renderParametrosBusqueda();\n\n let name = tipooficina == 3 ? \"Establecimientos\" : \"Puntos de Interes\";\n\n return (\n \n \n {alerta}\n \n {paramsbsuqueda}\n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \n \n {edicion}\n \r\n \n );\n}\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\r\n\r\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport People from \"@mui/icons-material/People\";\nimport Search from \"@mui/icons-material/Search\";\n\n// core components\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\r\nimport { DataStatePage, OpcionSiNoChar, TipoOthelloFieldGrid, PopUpResult, Roles } from \"../othelloConstantes.jsx\";\r\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\r\nimport Button from \"../components/Button.jsx\";\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\nexport default function Usuarios({ ...props }) {\r\n const { literal, idRol, tipooficina } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [datausuarios, setdatausuarios] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\r\n\r\n\r\n const navigate = useNavigate();\r\n\r\n const location = useLocation();\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () => {\r\n //Si es supeusuario entonce busco los usuarios\r\n if (idRol == Roles.SuperUsuario) {\r\n fetch('api/Data/GetUsuarios')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatausuarios(data)\r\n });\r\n }\r\n //Sino, es que es administrador, y por tanto, solo tendra acceso al meter codigo de cliente\r\n else {\r\n setdatausuarios([]);\r\n }\r\n }\r\n\r\n //METODO SOBRE EL GRID \r\n\r\n const editGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n navigate('/admin/profile/?id=' + valor.id_Usuario);\r\n //navigate('/admin/almacen/albaranes', { state: valor });\r\n //props.history.push('/admin/profile/?id=' + valor.id_Usuario);\r\n //window.location.assign('/admin/profile/?id=' + valor.id_Usuario);\r\n }\r\n }\r\n\r\n const nuevoDataPage = () => {\r\n navigate('/admin/profile/?id=-1');\r\n //props.history.push('/admin/profile/?id=-1');\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) =>\r\n {\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Usuario);\r\n\r\n fetch('api/Data/EliminarUsuario', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res) {\r\n if (datausuarios != null) {\r\n var array = [...datausuarios]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdatausuarios(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const buscarBoton = () =>\r\n { \r\n //Obtengo los datos\r\n let formulario = document.getElementById('formbusqcodigo');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/BuscarUsuarios', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(data => {\r\n\r\n setdatausuarios(data)\r\n\r\n //setState({ datausuarios: data, loading: false });\r\n\r\n }).catch(error => {\r\n setdatausuarios([])\r\n //setState({ datausuarios: [], loading: false });\r\n });\r\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\n\r\n function renderFormUsuarios( datos) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Nombre\", \"Apellidos\", \"DNI/CIF\", , \"E-Mail\", \"Telefono\", \"Codigo\", \"Confirmado\"];\r\n\r\n let valoreshow = [\"nombre\", \"Apellido\", \"NIF_CIF\", , \"eMail\", \"telefono\", \"codigoCliente\", \"confirmado\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"confirmado\", items: OpcionSiNoChar });\r\n\r\n //Creamos el grid global \r\n return ();\n\n }\r\n\r\n let formulario = loading ?

: renderFormUsuarios(datausuarios);\r\n\r\n let alerta = alert != null ? : \"\";\r\n\r\n return (\n \n \n {alerta}\n \n {idRol == Roles.SuperUsuario || idRol == Roles.Administrador ?\n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n : \"\"}\n \n \r\n \r\n \r\n {formulario}\r\n \r\n \r\n \n \r\n
\n );\r\n}\r\n","import React from 'react';\r\n\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nimport ChartistGraph from \"react-chartist\";\r\n\r\nimport Icon from \"@mui/material/Icon\";\r\nimport MDAlert from '../components/MDAlert';\r\nimport MDTypography from \"../components/MDTypography\";\r\n\r\n// @mui/icons-material\r\nimport Refresh from \"@mui/icons-material/Refresh\";\r\n\r\n// core components\r\nimport Button from \"../components/Button.jsx\";\r\nimport Grid from \"@mui/material/Grid\";\r\nimport Card from \"@mui/material/Card\";\n\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloCard from '../componentsothello/OthelloCard.jsx';\r\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\r\nimport OthelloTituloPanelData from '../componentsothello/OthelloTituloPanelData';\r\n\r\nimport { TipoOthelloFieldGrid, Roles, OpcionVisibilidadDashboard } from \"../othelloConstantes.jsx\";\r\n\r\n\r\n\r\nvar Chartist = require(\"chartist\");\nvar delays = 80,\n durations = 500;\nvar delays2 = 80,\n durations2 = 500;\n\r\nvar straightLinesChart = {\n data: {\n labels: [\"'07\", \"'08\", \"'09\", \"'10\", \"'11\", \"'12\", \"'13\", \"'14\", \"'15\"],\n series: [[10, 16, 8, 13, 20, 15, 20, 34, 30]]\n },\n options: {\n lineSmooth: Chartist.Interpolation.cardinal({\n tension: 0\n }),\n low: 0,\n high: 50, // creative tim: we recommend you to set the high sa the biggest value + something for a better look\n chartPadding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n classNames: {\n point: \"ct-point ct-white\",\n line: \"ct-line ct-white\"\n }\n },\n animation: {\n draw: function (data) {\n if (data.type === \"line\" || data.type === \"area\") {\n data.element.animate({\n d: {\n begin: 600,\n dur: 700,\n from: data.path\n .clone()\n .scale(1, 0)\n .translate(0, data.chartRect.height())\n .stringify(),\n to: data.path.clone().stringify(),\n easing: Chartist.Svg.Easing.easeOutQuint\n }\n });\n } else if (data.type === \"point\") {\n data.element.animate({\n opacity: {\n begin: (data.index + 1) * delays,\n dur: durations,\n from: 0,\n to: 1,\n easing: \"ease\"\n }\n });\n }\n }\n }\n};\n\nvar simpleBarChart = {\n data: {\n labels: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n series: [[542, 443, 320, 780, 553, 453, 326, 434, 568, 610, 756, 895]]\n },\n options: {\n seriesBarDistance: 10,\n axisX: {\n showGrid: false\n }\n },\n responsiveOptions: [\n [\n \"screen and (max-width: 640px)\",\n {\n seriesBarDistance: 5,\n axisX: {\n labelInterpolationFnc: function (value) {\n return value[0];\n }\n }\n }\n ]\n ],\n animation: {\n draw: function (data) {\n if (data.type === \"bar\") {\n data.element.animate({\n opacity: {\n begin: (data.index + 1) * delays2,\n dur: durations2,\n from: 0,\n to: 1,\n easing: \"ease\"\n }\n });\n }\n }\n }\n};\r\n\r\nexport default function DashboardMain({ ...props })\r\n{\r\n const { literal, idRol } = props;\r\n\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [dataIncidencias, setdataIncidencias] = React.useState(null);\r\n const [dataNotificaciones, setdataNotificaciones] = React.useState(null);\r\n const [dataanalitycs, setdataanalitycs] = React.useState(null);\r\n\r\n const [masfichas, setmasfichas] = React.useState(false);\r\n const [masareas, setmasareas] = React.useState(false);\r\n const [masimagenes, setmasimagenes] = React.useState(false);\r\n\r\n const [pendientesNotificar, setpendientesNotificar] = React.useState(-1);\r\n const [notificarHoy, setnotificarHoy] = React.useState(-1);\r\n\r\n const [franja, setfranja] = React.useState(30); \r\n\r\n React.useEffect(() => {\r\n getDataPage(franja);\r\n setLoading(false);\r\n\r\n }, [loading]);\r\n\r\n\r\n const getDataPage = (dias) => {\r\n fetch('api/Data/GetDatosGlobalesOficina')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n setpendientesNotificar(data.pendientesNotificar);\r\n setnotificarHoy(data.notificarHoy);\r\n setdataIncidencias(data.ultimasIncidencias);\r\n setdataNotificaciones(data.ultimasNotificaciones);\r\n\r\n getDatosAnalitycsOficina(dias);\r\n });\r\n }\r\n\r\n const getDatosAnalitycsOficina = (dias) => {\r\n var jsonData = JSON.stringify(dias);\r\n\r\n fetch('api/Data/GetDatosAnalitycsOficina', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(data => {\r\n setdataanalitycs(data);\r\n setmasfichas(false);\r\n setmasareas(false);\r\n setmasimagenes(false);\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n const editGridDataPage = (valor, index) => {\r\n\r\n\r\n }\r\n\r\n /* METODOS A BORRAR*/\r\n\r\n\r\n const LoadingAgain = () => {\r\n setLoading(true);\r\n getDataPage(franja);\r\n }\r\n\r\n const MasFichas = () => {\r\n setmasfichas(!masfichas);\r\n }\r\n\r\n const MasAreas = () => {\r\n setmasareas(!masareas);\r\n }\r\n\r\n const MasImagenes = () => {\r\n setmasimagenes(!masimagenes);\r\n }\r\n\r\n const onChangeFranja = (valor) => {\r\n if (franja != valor) {\r\n setfranja(valor);\r\n getDataPage(valor);\r\n }\r\n }\r\n\r\n /* FIN METODOS A BORRAR*/\r\n\r\n //Metodo que monta los parametros de busqueda\r\n function MontarParametrosBusqueda() {\r\n\r\n return (\n \r\n \n
\n \r\n
\n \r\n
\r\n \n \r\n \r\n
\n
\n
\r\n
\r\n
)\r\n }\r\n\r\n function renderUltimasIncidenciasRecibidas(datos) {\r\n let valorescabe = [\"Incidencia\", \"Tipo\", \"E-Mail\", \"Hora\", \"Latitud\", \"Longitud\", \"Descripcion\"];\r\n\r\n //Generamos los valores de cada una de las lineas de grid \r\n let valoreshow = [\"nombre\", \"tipoInci\", \"eMail\", \"hora\", \"lat\", \"lon\", \"descripcion\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloDateTime, fieldname: \"hora\" });\r\n\r\n //Creamos el grid global \r\n return ();\n }\r\n\r\n function renderUltimasNotificaciones(datos) {\r\n let valorescabe = [\"Notificacion\", \"Notificado\"];\r\n\r\n //Generamos los valores de cada una de las lineas de grid \r\n let valoreshow = [\"title\", \"notificado\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloDateTime, fieldname: \"notificado\" });\r\n\r\n //Creamos el grid global \r\n return ();\n }\r\n\r\n function renderAnalitycs(datos) {\r\n\r\n let datosGlobales = <>\r\n \n \r\n \r\n \n \r\n \r\n \n \r\n \r\n \n \r\n \r\n \r\n \r\n \n \r\n \r\n \n \r\n \r\n \r\n \r\n \n \r\n \r\n \n \r\n \r\n \r\n \r\n\r\n //FICHAS VISITADAS\r\n let valorescabe = [\"Nombre\", \"Dispositivo\", \"Total\"];\r\n\r\n let valoreshow = [\"nombre\", \"tipoDispositivo\", \"total\"];\r\n\r\n let datasourceFields = [];\r\n\r\n let fichasVisitadasFinal = [];\r\n\r\n if (datos != null && datos.fichasvistas != null) {\r\n if (!masfichas && datos.fichasvistas.length > 10)\r\n fichasVisitadasFinal = datos.fichasvistas.slice(0, 9);\r\n else\r\n fichasVisitadasFinal = datos.fichasvistas;\r\n }\r\n\r\n let datosFichas = ();\r\n\r\n //IMAGENES VISITADAS\r\n let valorescabe2 = [\"Nombre\", \"Dispositivo\", \"Total\"];\r\n\r\n let valoreshow2 = [\"nombre\", \"tipoDispositivo\", \"total\"];\r\n\r\n let imagenesVisitadasFinal = [];\r\n\r\n if (datos != null && datos.imagenesvistas != null) {\r\n if (!masimagenes && datos.imagenesvistas.length > 10)\r\n imagenesVisitadasFinal = datos.imagenesvistas.slice(0, 9);\r\n else\r\n imagenesVisitadasFinal = datos.imagenesvistas;\r\n }\r\n\r\n let datosImagenes = ();\r\n\r\n //AREAS VISITADAS\r\n let valorescabe3 = [\"Nombre\", \"Dispositivo\", \"Total\"];\r\n\r\n let valoreshow3 = [\"nombre\", \"tipoDispositivo\", \"total\"];\r\n\r\n let areasVisitadasFinal = [];\r\n\r\n if (datos != null && datos.areas != null) {\r\n if (!masareas && datos.areas.length > 10)\r\n areasVisitadasFinal = datos.areas.slice(0, 9);\r\n else\r\n areasVisitadasFinal = datos.areas;\r\n }\r\n\r\n let datosAreas = ();\r\n\r\n return <>{datosGlobales}\r\n \n \n \n \n \n {datosFichas}\n \n \n
\n \n \n \n \n \n
\n
\n
\r\n \n \n \n \n \n {datosAreas}\n \n \n
\n \n \n \n \n \n
\n
\n
\r\n \n \n \n \n \n {datosImagenes}\n \n \n
\n \n \n \n \n \n
\n
\n
\r\n \r\n }\r\n\r\n\r\n let incidencias = loading ?

: renderUltimasIncidenciasRecibidas(dataIncidencias);\r\n\r\n let notificaciones = loading ?

: renderUltimasNotificaciones(dataNotificaciones);\r\n\r\n let paramsbsuqueda = MontarParametrosBusqueda(this);\r\n //var date = new Date().getDate();\r\n //var month = new Date().getMonth() + 1;\r\n //var year = new Date().getFullYear();\r\n\r\n\r\n //let dia = date + '-' + month + '-' + year;\r\n\r\n let Analitycs = renderAnalitycs(dataanalitycs);\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n notifications_active {\" \"}ATMovilidad le da la bienvenida al nuevo gestor de contenidos.\r\n \r\n \r\n \r\n {idRol != Roles.Usuario ?\r\n <>\r\n {paramsbsuqueda}\r\n \r\n \n \r\n \r\n \n \r\n \r\n \r\n \n \n \n \n \n {notificaciones}\n \n \n \n \n \r\n \n \n \n \n \n {incidencias}\n \n \n \n \n \r\n :\n \n \r\n \n
\n Estamos trabajando para mostrale informacion personalizada sobre sus datos\n
\n
\r\n
\r\n
}\r\n {Analitycs}\r\n
\r\n );\r\n}\r\n\r\n\r\n//\r\n// \r\n// \r\n//
\r\n// \r\n//
\r\n//
\r\n//

Straight Lines Chart

\r\n//

Line Chart with Points

\r\n//
\r\n//
\r\n//
\r\n// \r\n// \r\n//
\r\n// \r\n//
\r\n//
\r\n//

Simple Bar Chart

\r\n//

Bar Chart

\r\n//
\r\n//
\r\n//
\r\n//
\r\n","import React from \"react\";\r\n\r\nimport { GetEstadoString } from \"../../othelloFunciones\";\r\n\r\nimport OthelloComboBox from \"../../componentsothello/OthelloComboBox\";\r\nimport OthelloEdit from \"../../componentsothello/OthelloEdit.jsx\";\r\nimport { TipoEntrega, TiposEntrega} from \"../../othelloConstantes.jsx\";\r\nimport OthelloPrimary from \"../../componentsothello/OthelloPrimary\";\r\n\r\nimport Grid from \"@mui/material/Grid\";\r\nimport Card from \"@mui/material/Card\";\r\n\r\nfunction Pedido({...props })\r\n{\r\n //variables de las propiedas recibidas\r\n const { idpedido} = props;\r\n\r\n const [pedido, setPedido] = React.useState(null);\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n\r\n var jsonData = JSON.stringify(idpedido);\r\n\r\n fetch('api/Data/GetPedido', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\r\n\r\n }).then(response => response.json()).then(data => {\r\n setPedido(data);\r\n setLoading(false)\r\n }).catch(error => {\r\n setPedido(null);\r\n setLoading(false)\r\n });\r\n }, [loading]);\r\n\r\n\r\n let lineas = !loading && pedido != null ? pedido.lineas.map(x => {\r\n\r\n return
\r\n \r\n \r\n {x.nomArticulo}\r\n \r\n \r\n
\r\n {x.cantidad}\r\n
\r\n
\r\n \r\n
\r\n {x.precio.toFixed(2)} €\r\n
\r\n
\r\n \r\n
\r\n {(x.cantidad * x.precio).toFixed(2)} €\r\n
\r\n
\r\n
\r\n
\r\n }) : \"\";\r\n\r\n return (\r\n <>\r\n
\r\n {!loading && pedido != null ?\r\n
\r\n Datos del Pedido\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pedido.tipoEntrega == TiposEntrega.EnCasa ?\r\n \r\n \r\n Datos del Envio\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : \"\"} \r\n \r\n \r\n Detalle del Pedido\r\n \r\n \r\n {lineas} \r\n
\r\n \r\n \r\n Total: \r\n \r\n \r\n
\r\n {pedido.total.toFixed(2)} €\r\n
\r\n
\r\n
\r\n
: \"\"} \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Pedido;","import React from \"react\";\r\n\r\nimport { GetEstadoString } from \"../../othelloFunciones\";\r\nimport OthelloCheckBox from \"../../componentsothello/OthelloCheckBox\";\r\nimport OthelloModalBase from '../../componentsothello/OthelloModalBase.jsx';\r\n\r\nimport Grid from \"@mui/material/Grid\";\r\nimport Card from \"@mui/material/Card\";\r\n\r\nimport { ModoModal, MessageOthelloBoxButtons, DialogOthelloResult } from \"../../othelloConstantes.jsx\";\r\n\r\nfunction EstadoPedido({...props })\r\n{\r\n //variables de las propiedas recibidas\r\n const { idpedido, idusuario, estado, onCloseResulModal} = props;\r\n\r\n const [estadoactual, setEstadoActual] = React.useState(estado); \r\n \r\n\r\n function onResulModal(modo, result, valor)\r\n {\r\n if (result == DialogOthelloResult.OK)\r\n {\r\n\r\n var jsonData = JSON.stringify({ idpedido: idpedido, idusuario: idusuario, nuevoestado: estadoactual } );\r\n \r\n fetch('api/Data/ActualizarEstadoPedido', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\r\n\r\n }).then(response => response.json()).then(res => {\r\n onCloseResulModal(modo, result, valor);\r\n }).catch(error => {\r\n \r\n });\r\n }\r\n else\r\n onCloseResulModal(modo, result, valor);\r\n }\r\n\r\n function CambioEstado(nuevoestado)\r\n {\r\n if (estadoactual != nuevoestado)\r\n setEstadoActual(nuevoestado);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n CambioEstado(0)} />\r\n \r\n \r\n \r\n \r\n CambioEstado(1)}/>\r\n \r\n \r\n \r\n \r\n CambioEstado(2)} />\r\n \r\n \r\n \r\n \r\n CambioEstado(3)} />\r\n \r\n \r\n \r\n \r\n CambioEstado(4)} />\r\n \r\n \r\n \r\n \r\n CambioEstado(5)} />\r\n \r\n \r\n \r\n \r\n CambioEstado(6)} />\r\n \r\n \r\n \r\n \r\n CambioEstado(7)} />\r\n \r\n \r\n \r\n \r\n CambioEstado(8)} />\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default EstadoPedido;","import React, { useState } from \"react\";\n\r\n\r\n// @mui/material components\n\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\n// @mui/icons-material\r\nimport DateRange from \"@mui/icons-material/DateRange\";\r\nimport Event from \"@mui/icons-material/Event\";\r\nimport HowToVote from \"@mui/icons-material/HowToVote\";\r\nimport LocalGroceryStore from \"@mui/icons-material/LocalGroceryStore\";\r\nimport Receipt from \"@mui/icons-material/Receipt\";\r\nimport Warning from \"@mui/icons-material/Warning\";\r\nimport Refresh from \"@mui/icons-material/Refresh\";\r\nimport CheckCircleOutlined from \"@mui/icons-material/CheckCircleOutlined\";\r\nimport Visibility from \"@mui/icons-material/Visibility\";\r\n// core components\r\nimport Button from \"../../components/Button.jsx\";\r\nimport OthelloGrid from '../../componentsothello/OthelloGrid.jsx';\r\nimport OthelloCard from '../../componentsothello/OthelloCard.jsx';\r\nimport OthelloModalBase from '../../componentsothello/OthelloModalBase.jsx';\r\n\r\nimport { TipoOthelloFieldGrid, DataStateModal, ModoModal, MessageOthelloBoxButtons, TipoEntrega, DialogOthelloResult } from \"../../othelloConstantes.jsx\";\r\n\r\n// style for this view\r\nimport Pedido from './Pedido.js';\r\nimport EstadoPedido from './EstadoPedido.js';\r\n\r\nimport Grid from \"@mui/material/Grid\";\r\nimport OthelloTituloPanelData from \"../../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\n\r\nexport default function DashTienda({ ...props }) {\r\n const { literal, idRol, userID } = props;\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const [dataPedidos, setdataPedidos] = React.useState(null);\r\n const [pedidosPendientes, setpedidosPendientes] = React.useState(null);\r\n const [pedidosHoy, setpedidosHoy] = React.useState(null);\r\n const [articulosStockBajo, setarticulosStockBajo] = React.useState(null);\r\n const [dataArticulosStock, setdataArticulosStock] = React.useState(null);\r\n\r\n const [stateModal, setstateModal] = React.useState(DataStateModal.dsClosed);\n const [itemmodal, setitemmodal] = React.useState(null);\n const [modomodal, setmodomodal] = React.useState(null);\r\n const [nombretienda, setnombretienda] = React.useState(\"\");\r\n\r\n React.useEffect(() =>\r\n { \r\n getDataNombreTienda();\r\n getDataPage();\r\n setLoading(false);\r\n }, [loading]);\r\n\r\n const getDataPage = () => {\r\n fetch('api/Data/GetDatosGlobalesTienda')\r\n .then(response => response.json())\r\n .then(data => {\r\n setpedidosPendientes(data.pedidosPendientes);\r\n setpedidosHoy(data.pedidosHoy);\r\n setdataPedidos(data.ultimosPedidos);\r\n setarticulosStockBajo(data.articulosStockBajo);\r\n setdataArticulosStock(data.articulosStock);\r\n });\r\n }\r\n\r\n const getDataNombreTienda = () => {\r\n fetch('api/Data/GetNombreTiendaSelected')\r\n .then(response => response.json())\r\n .then(data => {\r\n setnombretienda(data.nombre);\r\n });\r\n }\r\n\r\n const editGridDataPage = (valor, index) =>\r\n {\r\n\r\n\r\n }\r\n\r\n const onclickColumna = (valor, field) =>\n {\n\n if (field != null) {\n if (field == \"tramitado\") {\n setstateModal(DataStateModal.dsOpen);\n setitemmodal(valor);\r\n setmodomodal(field);\n }\n else if (field == \"ver\") {\n setstateModal(DataStateModal.dsOpen);\n setitemmodal(valor);\r\n setmodomodal(field);\r\n } \n }\n }\r\n\r\n const othelloModalResul = (modo, result, valor) =>\r\n {\r\n if (modomodal == \"tramitado\" && result == 1 /*DialogOthelloResult.Ok*/)\r\n {\r\n setstateModal(DataStateModal.dsClosed);\n setitemmodal(null);\r\n setmodomodal(null);\r\n \r\n getDataPage();\r\n }\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\n setitemmodal(null);\r\n setmodomodal(null);\r\n } \r\n }\r\n\r\n /* METODOS A BORRAR*/\r\n\r\n\r\n const LoadingAgain = () => {\r\n setLoading(true);\r\n getDataPage();\r\n }\r\n\r\n /* FIN METODOS A BORRAR*/\r\n\r\n //Metodo que monta los parametros de busqueda\r\n function MontarParametrosBusqueda()\r\n { \r\n return (\n \r\n \n
\n \r\n
\n {nombretienda != null ? nombretienda : \"\"}\r\n
\r\n
\n
\n
\r\n
\r\n
)\r\n }\r\n\r\n function renderUltimosPedidos(datos) {\r\n let valorescabe = [\"\", \"\", \"Pedido\", \"Fecha Pedido\", \"Hora Pedido\", \"Entrega\", \"F. Entrega\", \"Cliente\", \"Telefono\", \"Arts\", \"Total\"];\r\n\r\n //Generamos los valores de cada una de las lineas de grid \r\n let valoreshow = [\"tramitado\", \"ver\", \"id_Pedido\", \"fechaPedidoString\", \"horaPedido\", \"tipoEntrega\", \"fechaEntregaString\", \"nombreApellidos\", \"telefono\", \"numArts\", \"total\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"tipoEntrega\", items: TipoEntrega });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"estado\", items: TipoEntrega });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloDateTime, fieldname: \"horaPedido\" });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloCurrency, fieldname: \"total\" });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"tramitado\", icon: CheckCircleOutlined, onclick: onclickColumna });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"ver\", icon: Visibility, onclick: onclickColumna });\r\n\r\n //Creamos el grid global \r\n return ();\n }\r\n\r\n function renderArticulosStockBajo(datos) {\r\n let valorescabe = [\"Articulo\", \"Stock\"];\r\n\r\n //Generamos los valores de cada una de las lineas de grid \r\n let valoreshow = [\"nombre\", \"cantidad\"];\r\n\r\n //Creamos el grid global \r\n return ();\n }\r\n\r\n function renderModalPedido(item, modo) {\r\n if (item != null) {\r\n if (modo == \"tramitado\") {\n return ()\n }\n else if (modo == \"ver\") {\r\n return (\r\n \r\n )\r\n }\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n let pedidos = loading ?

: renderUltimosPedidos(dataPedidos);\r\n\r\n let articulosstock = loading ?

: renderArticulosStockBajo(dataArticulosStock);\r\n\r\n let paramsbsuqueda = MontarParametrosBusqueda();\r\n\r\n let modal = \"\";\r\n\r\n if (stateModal != DataStateModal.dsClosed)\r\n modal = renderModalPedido(itemmodal, modomodal);\r\n\r\n return (\r\n
\r\n {paramsbsuqueda}\r\n \r\n \n \r\n \r\n \n \r\n \r\n \n \r\n \r\n \r\n \n \n \n \n \n {pedidos}\n \n \n \n \n \r\n \n \n \n \n \n {articulosstock}\n \n \n \n \n \r\n {modal}\r\n
\r\n );\r\n}","import React, { useState } from \"react\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport ViewModule from \"@mui/icons-material/ViewModule\";\n\n// core components\nimport OthelloBotonera from '../../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, TipoOthelloFieldGrid, Roles, PopUpResult, OpcionVisibilidad, OrdenacionCategoria, OpcionSiNo } from \"../../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../../componentsothello/OthelloEdit.jsx';\nimport ImageUpload from \"../../components/ImageUpload.jsx\";\nimport OthelloPopUpResult from \"../../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloComboBox from '../../componentsothello/OthelloComboBox.jsx';\n\nimport Grid from \"@mui/material/Grid\";\r\nimport Card from \"@mui/material/Card\";\nimport OthelloTituloPanelData from \"../../componentsothello/OthelloTituloPanelData.jsx\";\r\n\n\nexport default function Categorias({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [datacategorias, setdatacategorias] = React.useState(null);\n const [nombretienda, setnombretienda] = React.useState(\"\");\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataNombreTienda();\r\n getDataPage();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataNombreTienda = () => {\r\n fetch('api/Data/GetNombreTiendaSelected')\r\n .then(response => response.json())\r\n .then(data => {\r\n setnombretienda(data.nombre);\r\n });\r\n }\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetCategorias')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatacategorias(data);\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetCategoriaVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdataeditando(null);\r\n });;\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formcategoria');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarCategoria', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...datacategorias];\r\n array.push(res);\r\n setdatacategorias(array);\r\n }\r\n else {\r\n var array = [...datacategorias];\r\n array[indexeditando] = res;\r\n setdatacategorias(array);\r\n }\r\n\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n\r\n setalert(PopUpResult.OK);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => {\r\n\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVacia();\r\n setindexeditando(-1);\r\n }\r\n\r\n const buscarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const cancelarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // this.forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID \r\n const editGridDataPage = (valor, index) => {\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n setstatePage(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Categoria);\r\n\r\n fetch('api/Data/EliminarCategoria', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n if (datacategorias != null) {\r\n var array = [...datacategorias]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n setdatacategorias(array);\r\n\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearch(categoriaes) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = props.idRol == Roles.SuperUsuario ? [\"Categoria\", \"Codigo\", \"Ordenado\", \"Orden Visual\", \"Visible\", \"Icono\", \"Imagen\"] : [\"Codigo\", \"Ordenado\", \"Orden Visual\", \"Visible\", \"Icono\", \"Imagen\"];\r\n let valoreshow = props.idRol == Roles.SuperUsuario ? [\"id_Categoria\", \"codigo\", \"ordenadoPor\", \"ordenVisual\", \"visible\", \"icono\", \"image\"] : [\"codigo\", \"ordenadoPor\", \"ordenVisual\", \"visible\", \"icono\", \"image\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"visible\", items: OpcionVisibilidad });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"ordenadoPor\", items: OrdenacionCategoria });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"icono\", items: [] });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"image\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEdit(categoria) {\n\n if (categoria != null) {\n let name = \"Nueva Categoria\";\n let Nombre = categoria != null && categoria.id_Categoria > 0 ? \"Editar \" + categoria.codigo : name;\n\n return (\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Icono (48x48px)\n \n
\n \n
\n Imagen\n \n
\n
\n \n
\n
\r\n );\n }\n else\n return \"\";\n }\n\r\n let busqueda = loading ?

: renderSearch(datacategorias)\n\n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEdit(dataeditando) : \"\";\n\n let alerta = alert != null ? : \"\";\n\n let tiendaname = nombretienda != \"\" ? nombretienda : \"\";\r\n\n let titulo = \"Categorias \" + tiendaname;\n\n return (\n \n \n {alerta}\n \n \n {edicion}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \n \n );\n}\n\n","import React, { useState } from \"react\";\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport LocalMall from \"@mui/icons-material/LocalMall\";\n\nimport OthelloBotonera from '../../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, TipoOthelloFieldGrid, Roles, PopUpResult, OpcionVisibilidad } from \"../../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../../componentsothello/OthelloEdit.jsx';\nimport ImageUpload from \"../../components/ImageUpload.jsx\";\nimport OthelloPopUpResult from \"../../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloCard from '../../componentsothello/OthelloCard';\n\nimport Grid from \"@mui/material/Grid\";\r\nimport Card from \"@mui/material/Card\";\nimport OthelloTituloPanelData from \"../../componentsothello/OthelloTituloPanelData.jsx\";\n\nexport default function Marcas({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [datamarcas, setdatamarcas] = React.useState(null);\n const [nombretienda, setnombretienda] = React.useState(\"\");\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n React.useEffect (() => {\r\n \r\n getDataNombreTienda();\r\n getDataPage();\r\n setLoading(false);\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataNombreTienda = () => {\r\n fetch('api/Data/GetNombreTiendaSelected')\r\n .then(response => response.json())\r\n .then(data => {\r\n setnombretienda(data.nombre);\r\n });\r\n }\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetMarcas')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatamarcas(data);\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetMarcaVacia')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n\r\n }).catch(error => {\r\n setdataeditando(null);\r\n });;\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formmarca');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarMarca', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...datamarcas];\r\n array.push(res);\r\n setdatamarcas(array);\r\n }\r\n else {\r\n var array = [...datamarcas];\r\n array[indexeditando] = res;\r\n setdatamarcas(array);\r\n }\r\n\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n\r\n setalert(PopUpResult.OK);\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => {\r\n\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVacia();\r\n setindexeditando(-1);\r\n }\r\n\r\n const buscarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const cancelarDataPage = () => {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditando == -1)\r\n setstatePage(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // this.forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID \r\n const editGridDataPage = (valor, index) => {\r\n\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n setstatePage(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Marca);\r\n\r\n fetch('api/Data/EliminarMarca', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n if (datamarcas != null) {\r\n var array = [...datamarcas]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n setdatamarcas(array);\r\n\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearch(marcas) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = props.idRol == Roles.SuperUsuario ? [\"Marca\", \"Codigo\", \"Nombre\", \"Icono\", \"Imagen\"] : [\"Codigo\", \"Nombre\", \"Icono\", \"Imagen\"];\r\n let valoreshow = props.idRol == Roles.SuperUsuario ? [\"id_Marca\", \"codigo\", \"nombre\", \"icono\", \"image\"] : [\"codigo\", \"nombre\", \"icono\", \"image\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"icono\", items: [] });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"image\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEdit(marca) {\n\n if (marca != null) {\n let name = \"Nueva Marca\";\n let Nombre = marca != null && marca.id_Marca > 0 ? \"Editar \" + marca.nombre : name;\n\n return (\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Icono (48x48px)\n \n
\n \n
\n Imagen\n \n
\n \n
\n Banner\n \n
\n
\n \n
\r\n
\r\n );\n }\n else\n return \"\";\n }\n\r\n let busqueda = loading ?

: renderSearch(datamarcas)\n\n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEdit(dataeditando) : \"\";\n\n let alerta = alert != null ? : \"\";\n\n let tiendaname = nombretienda != \"\" ? nombretienda : \"\";\r\n\n let titulo = \"Marcas\" + tiendaname;\n\n return (\n \n \n {alerta}\n \n \n {edicion}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \r\n \n );\n}\n\n","import React, { useState } from \"react\";\n\n// @mui/material components\r\n\r\n// @mui/icons-material\r\nimport Receipt from \"@mui/icons-material/Receipt\";\r\nimport CheckCircleOutlined from \"@mui/icons-material/CheckCircleOutlined\";\r\nimport Visibility from \"@mui/icons-material/Visibility\";\r\n\r\n// @mui/material components\n\r\n\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\n// core components\r\nimport OthelloGrid from '../../componentsothello/OthelloGrid.jsx';\r\nimport OthelloModalBase from '../../componentsothello/OthelloModalBase.jsx';\r\nimport Pedido from './Pedido.js';\r\nimport EstadoPedido from './EstadoPedido.js';\r\n\r\nimport { TipoOthelloFieldGrid, DataStateModal, ModoModal, MessageOthelloBoxButtons, TipoEntregaCombo, DataStatePage, EstadosPedido, DialogOthelloResult} from \"../../othelloConstantes.jsx\";\r\n\r\nimport Grid from \"@mui/material/Grid\";\r\nimport OthelloTituloPanelData from \"../../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\nexport default function Pedidos({ ...props })\r\n{\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [datapedidos, setdatapedidos] = React.useState(null);\n\n const [stateModal, setstateModal] = React.useState(DataStateModal.dsClosed);\n const [itemmodal, setitemmodal] = React.useState(null);\n const [modomodal, setmodomodal] = React.useState(null);\n const [nombretienda, setnombretienda] = React.useState(\"\"); \n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataNombreTienda();\r\n getDataPage();\r\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataNombreTienda = () => {\r\n fetch('api/Data/GetNombreTiendaSelected')\r\n .then(response => response.json())\r\n .then(data =>\r\n {\r\n setnombretienda(data.nombre);\r\n });\r\n }\r\n\r\n const getDataPage = () => {\r\n\r\n fetch('api/Data/GetPedidos')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatapedidos(data);\r\n });\r\n }\r\n\r\n const onclickColumna = (valor, field) => {\n\n if (field != null) {\n if (field == \"tramitado\") {\n setstateModal(DataStateModal.dsOpen);\n setitemmodal(valor);\r\n setmodomodal(field);\n }\n else if (field == \"ver\") {\n setstateModal(DataStateModal.dsOpen);\n setitemmodal(valor);\r\n setmodomodal(field);\n } \n }\n }\r\n\r\n\r\n const othelloModalResul = (modo, result, valor) => {\r\n\r\n if (modomodal == \"tramitado\" && result == 1 /*DialogOthelloResult.Ok*/) {\r\n\r\n setstateModal(DataStateModal.dsClosed);\n setitemmodal(null);\r\n setmodomodal(null);\r\n\r\n getDataPage();\r\n }\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\n setitemmodal(null);\r\n setmodomodal(null);\r\n } \r\n }\r\n\r\n function renderModalPedido(item, modo) {\r\n if (item != null) {\r\n if (modo == \"tramitado\") {\n return ()\n }\n else if (modo == \"ver\") {\r\n return (\r\n \r\n )\r\n }\r\n }\r\n else\r\n return \"\";\r\n }\r\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n\n function renderSearch(datos) {\n\n let valorescabe = [\"\", \"\", \"Pedido\", \"Fecha Pedido\", \"Hora Pedido\", \"Estado\", \"Entrega\", \"F. Entrega\", \"Cliente\", \"Telefono\", \"Total\"];\r\n\r\n //Generamos los valores de cada una de las lineas de grid \r\n let valoreshow = [\"tramitado\", \"ver\", \"id_Pedido\", \"fechaPedidoString\", \"horaPedidoString\", \"estado\", \"tipoEntrega\", \"fechaEntregaString\", \"nombreApellidos\", \"telefono\", \"total\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"tipoEntrega\", items: TipoEntregaCombo });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"estado\", items: EstadosPedido });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloCurrency, fieldname: \"total\" });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"tramitado\", icon: CheckCircleOutlined, onclick: onclickColumna });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"ver\", icon: Visibility, onclick: onclickColumna });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\r\n\r\n let busqueda = loading ?

\r\n : renderSearch(datapedidos);\n\n let modal = \"\";\r\n\r\n if (stateModal != DataStateModal.dsClosed)\r\n modal = renderModalPedido(itemmodal, modomodal);\n \n let namefinal = nombretienda != null ? nombretienda : \"\";\n let pedidosfinal = \"Pedidos\" + namefinal;\n\n return (\n \n {modal}\n \n \n \n \n \n {busqueda}\n \n \n \n \r\n \n \n );\n}","import React, { useState } from \"react\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport LocalGroceryStore from \"@mui/icons-material/LocalGroceryStore\";\nimport Info from \"@mui/icons-material/Info\";\nimport Toc from \"@mui/icons-material/Toc\";\nimport Collections from \"@mui/icons-material/Collections\"; \n\n// core components\nimport OthelloBotonera from '../../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, OpcionSiNo, TipoOthelloFieldGrid, Roles, PopUpResult, OpcionVisibilidad, Visibilidad, EstadosArticulo } from \"../../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../../componentsothello/OthelloEdit.jsx';\nimport NavPills from \"../../components/NavPills.jsx\";\nimport OthelloComboBox from '../../componentsothello/OthelloComboBox.jsx';\nimport ImageUpload from \"../../components/ImageUpload.jsx\";\n\r\nimport OthelloPopUpResult from \"../../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloTitulo from \"../../componentsothello/OthelloTitulo.jsx\";\r\nimport OthelloTituloPanelData from \"../../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\nimport Grid from \"@mui/material/Grid\";\r\nimport Card from \"@mui/material/Card\";\r\n\r\n\n\nexport default function Articulos({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n const [loadingediting, setloadingediting] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsSearch);\n const [statePageDefinicion, setstatePageDefinicion] = React.useState(DataStatePage.dsSearch);\n const [statePageImagenExtra, setstatePageImagenExtra] = React.useState(DataStatePage.dsSearch);\n\n const [datarticulos, setdatarticulos] = React.useState(null);\n const [nombretienda, setnombretienda] = React.useState(\"\");\n\n const [categorias, setcategorias] = React.useState([]);\n const [marcas, setmarcas] = React.useState([]);\n\n const [alert, setalert] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const [dataeditandoDefinicion, setdataeditandoDefinicion] = useState(null);\r\n const [indexeditandoDefinicion, setindexeditandoDefinicion] = useState(null);\n\n const [dataeditandoImagenExtra, setdataeditandoImagenExtra] = useState(null);\r\n const [indexeditandoImagenExtra, setindexeditandoImagenExtra] = useState(null);\n\n React.useEffect(() => {\r\n\r\n getDataNombreTienda();\r\n getDataPage();\r\n setLoading(false);\r\n }, [loading]);\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n //Metodos Sobre Articulos\r\n\r\n const getDataNombreTienda = () => {\r\n fetch('api/Data/GetNombreTiendaSelected')\r\n .then(response => response.json())\r\n .then(data => {\r\n setnombretienda(data.nombre);\r\n });\r\n }\r\n\r\n const getDataPage = () =>\r\n {\r\n fetch('api/Data/GetCategorias')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let rescategorias = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Categoria,\r\n name: x.codigo\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n setcategorias(rescategorias);\r\n });\r\n\r\n fetch('api/Data/GetMarcas')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let resmarcas = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Marca,\r\n name: x.nombre\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n setmarcas(resmarcas);\r\n });\r\n\r\n fetch('api/Data/BuscarArticulosResumido')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatarticulos(data);\r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetArticuloVacio')\r\n .then(response => response.json())\r\n .then(data =>\r\n {\r\n setindexeditando(-1);\r\n\r\n setdataeditando(data);\r\n setstatePage(DataStatePage.dsInsert);\r\n setloadingediting(false);\r\n\r\n }).catch(error =>\r\n {\r\n setindexeditando(null);\r\n\r\n setdataeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n setloadingediting(true); \r\n });\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Altero el valor que tiene el input de dias visualizando\r\n //try {\r\n // this.refs.form[2].value = this.diasVisualizando;\r\n //}\r\n //catch { }\r\n\r\n //Obtengo los datos\r\n //const data = new FormData(this.refs.form);\r\n let formulario = document.getElementById('formarticulos');\r\n let formData = new FormData(formulario);\r\n\r\n //Guardo en un auxiliar los otros valores\r\n let aux = dataeditando;\r\n\r\n fetch('api/Data/GrabarArticulo', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n //Le asocio los otros valores que no han sido modificados, ya que le dio a grabar la zona de articulo\r\n res.imagenesExtras = aux.imagenesExtras;\r\n\r\n if (indexeditando == -1) {\r\n\r\n var array = [...datarticulos];\r\n array.push(res);\r\n setdatarticulos(array);\r\n }\r\n else {\r\n var array = [...datarticulos];\r\n array[indexeditando] = res;\r\n setdatarticulos(array);\r\n }\r\n\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n\r\n setalert(PopUpResult.OK); \r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPage = () => {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVacia();\r\n setindexeditando(-1);\r\n }\r\n\r\n const cancelarDataPage = () => {\r\n\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n setloadingediting(true);\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (this.indexeditando == -1)\r\n {\r\n setdataeditando(null);\r\n setindexeditando(null);\r\n setstatePage(DataStatePage.dsSearch);\r\n setloadingediting(true); \r\n }\r\n //Sino, es que estabamos en un item valido\r\n //else {\r\n // //Inicializo a los datos que tenia cuando se puso a editar el articulo\r\n // if (dataeditando != null)\r\n // this.diasVisualizando = dataeditando.diasVisualizar;\r\n\r\n // //Actualizo la pantalla\r\n // this.forceUpdate()\r\n //}\r\n }\r\n\r\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\r\n\r\n\r\n //Metodo sobre Definiciones\r\n\r\n const getDataVaciaDefinicion = () => {\r\n\r\n var jsonData = JSON.stringify(dataeditando.id_Articulo);\r\n\r\n fetch('api/Data/GetArticuloDefVacio', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res =>\r\n {\r\n setdataeditandoDefinicion(res);\r\n setstatePageDefinicion(DataStatePage.dsInsert);\r\n }).catch(error => {\r\n setdataeditandoDefinicion(null);\r\n });\r\n }\r\n\r\n const grabarDataPageDefinicion = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formdefinicion');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarArticuloDef', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (dataeditando.definiciones == null)\r\n dataeditando.definiciones = [];\r\n\r\n //Si estamos añadiendo uno nuevo lo meto dentro de la lista de regiones\r\n if (indexeditandoDefinicion == -1)\r\n dataeditando.definiciones.push(res);\r\n //Sino, es que estamos editando uno\r\n else\r\n dataeditando.definiciones[indexeditandoDefinicion] = res;\r\n\r\n setdataeditandoDefinicion(null);\r\n setindexeditandoDefinicion(null);\r\n\r\n setstatePageDefinicion(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK); \r\n }).catch(error => {\r\n setalert(PopUpResult.KO); \r\n });\r\n }\r\n\r\n const nuevoDataPageDefinicion = () => {\r\n\r\n getDataVaciaDefinicion();\r\n setindexeditandoDefinicion(-1);\r\n }\r\n\r\n const cancelarDataPageDefinicion = () => {\r\n setdataeditandoDefinicion(null);\r\n setindexeditandoDefinicion(null);\r\n\r\n setstatePageDefinicion(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPageDefinicion = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditandoDefinicion == -1)\r\n setstatePageDefinicion(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // this.forceUpdate()\r\n }\r\n\r\n //Metodo sobre Imagenes Extras\r\n\r\n const getDataVaciaImagenExtra = () => {\r\n\r\n var jsonData = JSON.stringify(dataeditando.id_Articulo);\r\n\r\n fetch('api/Data/GetImagenExtraArticuloVacio', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdataeditandoImagenExtra(res);\r\n setstatePageImagenExtra(DataStatePage.dsInsert);\r\n }).catch(error => {\r\n setdataeditandoImagenExtra(null);\r\n });\r\n }\r\n\r\n const grabarDataPageImagenExtra = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formextras');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarImagenExtra', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (dataeditando.imagenesExtras == null)\r\n dataeditando.imagenesExtras = [];\r\n\r\n //Si estamos añadiendo uno nuevo lo meto dentro de la lista de regiones\r\n if (indexeditandoImagenExtra == -1)\r\n dataeditando.imagenesExtras.push(res);\r\n //Sino, es que estamos editando uno\r\n else\r\n dataeditando.imagenesExtras[indexeditandoImagenExtra] = res;\r\n\r\n setdataeditandoImagenExtra(null);\r\n setindexeditandoImagenExtra(null);\r\n setstatePageImagenExtra(DataStatePage.dsSearch);\r\n setalert(PopUpResult.OK);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO); \r\n });\r\n }\r\n\r\n const nuevoDataPageImagenExtra = () => {\r\n\r\n getDataVaciaImagenExtra();\r\n setindexeditandoImagenExtra(-1);\r\n }\r\n\r\n const cancelarDataPageImagenExtra = () => {\r\n setdataeditandoImagenExtra(null);\r\n setindexeditandoImagenExtra(null);\r\n setstatePageImagenExtra(DataStatePage.dsSearch);\r\n }\r\n\r\n const deshacerDataPageImagenExtra = () => {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditandoImagenExtra == -1)\r\n setstatePageImagenExtra(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // this.forceUpdate()\r\n }\r\n\n //METODO SOBRE EL GRID articuloS\r\n\r\n const editGridDataPage = (valor, index) => {\r\n\r\n setdataeditando(null);\r\n setloadingediting(true);\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify({ idofi: valor.id_Oficina, idpoi: valor.id_Poi, idart: valor.id_Articulo });\r\n\r\n fetch('api/Data/GetArticulo', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n setindexeditando(index);\r\n setdataeditando(res);\r\n setstatePage(DataStatePage.dsEdit);\r\n setloadingediting(false);\r\n setalert(null); \r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify({ idofi: valor.id_Oficina, idpoi: valor.id_Poi, idart: valor.id_Articulo });\r\n\r\n fetch('api/Data/EliminarArticulo', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setindexeditando(index);\r\n setdataeditando(res);\r\n\r\n if (datarticulos != null) {\r\n var array = [...datarticulos]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setdatarticulos(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO); \r\n });\r\n }\r\n }\n\n //METODO SOBRE EL GRID Definiciones\r\n\r\n const editGridDataPageDefinicion = (valor, index) => {\r\n\r\n setdataeditandoDefinicion(valor);\r\n setindexeditandoDefinicion(index);\r\n setstatePageDefinicion(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPageDefinicion = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify({ idofi: valor.id_Oficina, idpoi: valor.id_Poi, idart: valor.id_Articulo, idartdef: valor.id_Art_Def });\r\n\r\n fetch('api/Data/EliminarArticuloDef', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n if (dataeditando.definiciones != null) {\r\n var array = [...dataeditando.definiciones]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Actualizo las promociones con el nuevo valor\r\n dataeditando.definiciones = array;\r\n\r\n setdataeditandoDefinicion(null);\r\n setindexeditandoDefinicion(null);\r\n \r\n //Modificao el estado de data para que refresque la pantalla\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n //METODO SOBRE EL GRID IMAGENES EXTRAS\r\n\r\n const editGridDataPageImagenExtra = (valor, index) => {\r\n\r\n setdataeditandoImagenExtra( valor);\r\n setindexeditandoImagenExtra(index);\r\n setstatePageImagenExtra(DataStatePage.dsEdit);\r\n }\r\n\r\n const deleteGridDataPageImagenExtra = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Extra_Img);\r\n\r\n fetch('api/Data/EliminarImagenExtra', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n if (dataeditando.imagenesExtras != null) {\r\n var array = [...dataeditando.imagenesExtras]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Actualizo las promociones con el nuevo valor\r\n dataeditando.imagenesExtras = array;\r\n\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditandoImagenExtra(null);\r\n setindexeditandoImagenExtra(null);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\r\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n //Metodos render ARTICULOS\n\n function renderSearchArticulos(articulos) {\n let cabeceros = props.idRol == Roles.SuperUsuario ? [\"Articulo\", \"Inventario\", \"Precio\", \"Categoria\", \"Estado\", \"Art.\"] : [\"Articulo\", \"Inventario\", \"Precio\", \"Categoria\", \"Estado\"]\n let valoreshow = props.idRol == Roles.SuperUsuario ? [\"nombre\", \"cantidad\", \"precioBase\", \"id_Categoria\", \"estado\", \"id_Articulo\"] : [\"nombre\", \"cantidad\", \"precioBase\", \"id_Categoria\", \"estado\"];\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"id_Categoria\", items: categorias });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"visible\", items: OpcionVisibilidad });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"estado\", items: EstadosArticulo });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloCurrency, fieldname: \"precioBase\" });\r\n\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditArticulos()\n {\n //Ponemos el nombre general el valor local que tenemos en dicho momento\n let Nombre = loadingediting ?

:\n (dataeditando != null && dataeditando.id_Articulo > 0 ? dataeditando.nombre : \"Nuevo Articulo\");\n\n //Si estamos cargando el articulo ponemos el buscando, sino, renderizamos los datos generales del articulo actual\n let datosGenerales = loadingediting ?

\r\n : renderInsertEditDatosGenerales(dataeditando)\n\n //Si estamos cargando el articulo ponemos el buscando, sino, renderizamos los datos generales del articulo actual\n let datosDefiniciones = loadingediting ?

\r\n : renderOpcionesDefiniciones(dataeditando.definiciones)\n\n //Si estamos cargando el articulo ponemos el buscando, sino, renderizamos los datos generales del articulo actual\n let datosImagenesExtraarticulo = loadingediting ?

\r\n : renderOpcionesImagenesExtra(dataeditando.imagenesExtras)\n\n\n let tabs = [];\n\n tabs = [\n {\n tabButton: \"Datos Generales\",\n tabIcon: Info,\n tabContent: (datosGenerales)\n }];\n\n if (dataeditando != null && dataeditando.id_Articulo > 0) {\n\n tabs.push({\n tabButton: \"Particularidades\",\n tabIcon: Toc,\n tabContent: (datosDefiniciones)\n });\n\n tabs.push({\n tabButton: \"Imagenes Extra\",\n tabIcon: Collections,\n tabContent: (datosImagenesExtraarticulo)\n });\n }\n\n\n return (\n
\n \n
\n
\r\n );\n }\n\n //Metodos render datos Generales \n\n function renderInsertEditDatosGenerales(articulo) {\n\n return (
\n \n \n \n \n \n
\n \n \n \n \n \n
\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n

Imagen

\n \n
\n
\n \n
)\n }\n\n\n //Metodos render Definiciones\n\n function renderOpcionesDefiniciones(definiciones) {\n\n let busquedaDefiniciones = renderSearchDefiniciones(definiciones);\n\n let edicionDefinicion = statePageDefinicion == DataStatePage.dsEdit || statePageDefinicion == DataStatePage.dsInsert ? renderInsertEditDefinicion(dataeditandoDefinicion) : \"\";\n\n //#99d9b7\n return (
\n \n \n {edicionDefinicion}\n \n \n \n \n \n {busquedaDefiniciones}\n \n \n
\n );\n }\n\n function renderSearchDefiniciones(definiciones) {\n let cabeceros = idRol == Roles.SuperUsuario ? [\"Articulo\", \"Inventario\", \"Precio\", \"Visible\", \"Art.\"] : [\"Articulo\", \"Inventario\", \"Precio\", \"Visible\"]\n let valoreshow = idRol == Roles.SuperUsuario ? [\"descripcion\", \"cantidad\", \"precio\", \"visible\", \"id_Art_Def\"] : [\"descripcion\", \"cantidad\", \"precio\", \"visible\",];\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"visible\", items: OpcionVisibilidad });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditDefinicion(definicion) {\n\n if (definicion != null) {\n let Nombre = definicion != null && definicion.id_Art_Def > 0 ? \"Editar Particularidad\" : \"Nueva Particularidad\";\n\n return (\n \n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \r\n
\r\n
\r\n );\n }\n else\n return \"\";\n }\n\n //Metodos render Imagenes Extras\n\n function renderOpcionesImagenesExtra(imagenes) {\n\n let busquedaImagenes = renderSearchImagenesExtra(imagenes);\n\n let edicionImagenes = statePageImagenExtra == DataStatePage.dsEdit || statePageImagenExtra == DataStatePage.dsInsert ? renderInsertEditImagenExtra(dataeditandoImagenExtra) : \"\";\n\n //#99d9b7\n return (
\n \n \n {edicionImagenes}\n \n \n \n \n \n {busquedaImagenes}\n \n \n
\n );\n }\n\n function renderSearchImagenesExtra(imagenes) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = props.idRol == Roles.SuperUsuario ? [\"Imagen\", \"ID\"] : [\"Imagen\"];\r\n let valoreshow = props.idRol == Roles.SuperUsuario ? [\"imageUrl\", \"id_Extra_Img\"] : [\"imageUrl\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloImagen, fieldname: \"imageUrl\", items: [] });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderInsertEditImagenExtra(imagenextra)\n {\n if (imagenextra != null) {\n let Nombre = imagenextra != null && imagenextra.id_Extra_Img > 0 ? \"Editar Imagen\" : \"Nueva Imagen\";\n\n return (\n \n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n Imagen (512x384px)\n \n
\n
\n \r\n
\r\n
\r\n );\n }\n else\n return \"\";\n }\n\n\r\n\r\n let busqueda = loading ?

: renderSearchArticulos(datarticulos)\n\n let edicion = statePage == DataStatePage.dsEdit || statePage == DataStatePage.dsInsert ? renderInsertEditArticulos() : \"\";\n\n let alerta = alert != null ? : \"\";\n\n let tiendafinish = nombretienda != null ? nombretienda : \"\";\n let artname = \"Articulos\" + tiendafinish;\n\n return (\n \n \n {alerta}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \n \n {edicion}\n \r\n \n );\n}\n\n","import React, { useState } from \"react\";\n\r\n// @mui/material components\n\n// @mui/icons-material\nimport Face from \"@mui/icons-material/Face\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\r\nimport { OpcionSiNo, PopUpResult } from \"../othelloConstantes.jsx\";\r\nimport Button from \"../components/Button.jsx\";\r\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\r\nimport ImageUpload from \"../components/ImageUpload.jsx\";\r\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\nexport default function Importacion({ ...props }) {\r\n\n\n const [loading, setLoading] = React.useState(true);\n\n const [alert, setalert] = React.useState(null);\n\n const [coordenadasfinal, setcoordenadasfinal] = useState(\"\"); \n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n //getDataPage();\r\n }, [loading]);\n\r\n\r\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const ImportacionClick = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formimport');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GrabarImportacion', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n if (res)\r\n setalert(PopUpResult.OK);\r\n else\r\n setalert(PopUpResult.KO);\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const CoordenadasClick = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formkml');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(this.refs.form);\r\n\r\n fetch('api/Data/GetCoordenadasKml', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n setcoordenadasfinal(res.resul);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n\r\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\r\n\r\n //RENDERIZADO DE LA PAGINA \r\n\r\n let alerta = alert != null ? : \"\";\r\n\r\n return (\n \n \n {alerta}\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n Seleccionar fichero Excel\n \n \n \n \n
\n
\n
\r\n\r\n \n \n
\n
\n \n \n \n \n \n \n \n Seleccionar fichero Kml\n \n \n \n Resultado Lectura Kml\n

{coordenadasfinal}

\n
\n
\n \n
\n
\n
\r\n
\n );\r\n}","export default \"data:image/png;base64,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\"","import React from \"react\";\n\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Link from \"@mui/material/Link\";\n\n// Material Dashboard 2 PRO React base styles\nimport typography from \"../assets/theme/base/typography\";\nimport MDTypography from \"../components/MDTypography\";\nimport MDBox from '../components/MDBox';\n\nexport default function OthelloFooter({ ...props }) {\n const { } = props;\n\n const { size } = typography;\n\n\n var linkcookies = \"/condiciones/info?tipo=C\";\n var linkuso = \"/condiciones/info?tipo=U\";\n var linkcancelacion = \"/condiciones/info?tipo=D\";\n var linkprivacidad = \"/condiciones/info?tipo=P\";\n\n let links = [];\n\n /*var webtexto = \"\";\n\n if (modoVisualizacion == ModoVisualizacionesPay.Tienda)\n webtexto = \"Establecimiento\";\n else if (modoVisualizacion == ModoVisualizacionesPay.Hotel)\n webtexto = \"Hotel\";*/\n\n //links.push({ href: linkhotel, name: webtexto });\n links.push({ href: linkcancelacion, name: \"Politica de Cancelacion\" });\n links.push({ href: linkuso, name: \"Condiciones de Uso\" });\n links.push({ href: linkcookies, name: \"Politica Cookies\" }); \n links.push({ href: linkprivacidad, name: \"Politica de Privacidad\" });\n \n const renderLinks = () =>\n links.map((link) => (\n \n \n \n {link.name}\n \n \n \n ));\n\n return (\n \n ({\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n justifyContent: \"center\",\n listStyle: \"none\",\n mt: 3,\n mb: 0,\n p: 0,\n\n [breakpoints.up(\"lg\")]: {\n mt: 0,\n },\n })}\n >\n {renderLinks()}\n \n \n );\n}","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport Avatar from \"@mui/material/Avatar\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Avatar)(({ theme, ownerState }) => {\n const { palette, functions, typography, boxShadows } = theme;\n const { shadow, bgColor, size } = ownerState;\n\n const { gradients, transparent, white } = palette;\n const { pxToRem, linearGradient } = functions;\n const { size: fontSize, fontWeightRegular } = typography;\n\n // backgroundImage value\n const backgroundValue =\n bgColor === \"transparent\"\n ? transparent.main\n : linearGradient(gradients[bgColor].main, gradients[bgColor].state);\n\n // size value\n let sizeValue;\n\n switch (size) {\n case \"xs\":\n sizeValue = {\n width: pxToRem(24),\n height: pxToRem(24),\n fontSize: fontSize.xs,\n };\n break;\n case \"sm\":\n sizeValue = {\n width: pxToRem(36),\n height: pxToRem(36),\n fontSize: fontSize.sm,\n };\n break;\n case \"lg\":\n sizeValue = {\n width: pxToRem(58),\n height: pxToRem(58),\n fontSize: fontSize.sm,\n };\n break;\n case \"xl\":\n sizeValue = {\n width: pxToRem(74),\n height: pxToRem(74),\n fontSize: fontSize.md,\n };\n break;\n case \"xxl\":\n sizeValue = {\n width: pxToRem(110),\n height: pxToRem(110),\n fontSize: fontSize.md,\n };\n break;\n default: {\n sizeValue = {\n width: pxToRem(48),\n height: pxToRem(48),\n fontSize: fontSize.md,\n };\n }\n }\n\n return {\n background: backgroundValue,\n color: white.main,\n fontWeight: fontWeightRegular,\n boxShadow: boxShadows[shadow],\n ...sizeValue,\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Custom styles for MDAvatar\nimport MDAvatarRoot from \"./MDAvatarRoot\";\n\nconst MDAvatar = forwardRef(({ bgColor, size, shadow, ...rest }, ref) => (\n \n));\n\n// Setting default values for the props of MDAvatar\nMDAvatar.defaultProps = {\n bgColor: \"transparent\",\n size: \"md\",\n shadow: \"none\",\n};\n\n// Typechecking props for the MDAvatar\nMDAvatar.propTypes = {\n bgColor: PropTypes.oneOf([\n \"transparent\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n size: PropTypes.oneOf([\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\"]),\n shadow: PropTypes.oneOf([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\", \"inset\"]),\n};\n\nexport default MDAvatar;\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\r\n\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport PropTypes from \"prop-types\";\r\n\r\n// @mui/material components\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\n// @mui/icons-material\r\nimport Pool from \"@mui/icons-material/Pool\";\r\nimport SportsTennis from \"@mui/icons-material/SportsTennis\";\r\nimport LocalActivity from \"@mui/icons-material/LocalActivity\";\r\nimport DirectionsBus from \"@mui/icons-material/DirectionsBus\";\r\nimport Museum from \"@mui/icons-material/Museum\";\r\nimport SportsSoccer from \"@mui/icons-material/SportsSoccer\";\r\nimport Foundation from \"@mui/icons-material/Foundation\";\r\nimport FitnessCenter from \"@mui/icons-material/FitnessCenter\";\r\n\r\n// core components\r\nimport Button from \"../components/Button.jsx\";\r\nimport Grid from \"@mui/material/Grid\";\r\nimport Divider from \"@mui/material/Divider\";\r\nimport Card from \"@mui/material/Card\";\r\n\r\nimport { TiposInstalacionReserva, PopUpResult, OpcionSiNo, ResultadoReserva, Roles, OpcionSiNoEntero, TipoVisualizacionInstalaciones, OpcionesNominaciones } from '../othelloConstantes.jsx';\r\nimport { GetDiaSemana, GetMes } from '../othelloFunciones.jsx';\r\n\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\r\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\r\nimport OthelloTitulo from '../componentsothello/OthelloTitulo.jsx';\r\nimport OthelloPopUpResult from '../componentsothello/OthelloPopUpResult.jsx';\r\n\r\nimport OthelloFooter from '../componentsothello/OthelloFooter.jsx';\r\nimport OthelloPrimary from '../componentsothello/OthelloPrimary.jsx';\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\nimport MDBox from \"../components/MDBox\";\r\nimport MDTypography from \"../components/MDTypography\";\r\nimport MDButton from \"../components/MDButton\";\r\nimport MDAvatar from \"../components/MDAvatar\";\r\nimport Icon from \"@mui/material/Icon\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\n\nexport default function Reservar({ ...props })\r\n{\r\n const { literal, idRol, tipooficina, loginmodoreserva, loginapps, idUser } = props;\n\n const navigate = useNavigate();\n\r\n const { search } = useLocation();\n\n const [loading, setLoading] = React.useState(true); \r\n \r\n // const [loadingtramos, setLoadingtramos] = useState(false); \n\n const [data, setdata] = React.useState(null);\n\r\n const [paso, setpaso] = React.useState(1);\n const [instalacion, setinstalacion] = React.useState(null);\n const [fecha, setfecha] = React.useState(null);\n const [tramo, settramo] = React.useState([]);\n const [plazas, setplazas] = React.useState(0);\n const [plazasReducidas, setplazasReducidas] = React.useState(0);\n const [plazasGratuitas, setplazasGratuitas] = React.useState(0);\n const [nominacionPax, setnominacionPax] = React.useState(\"\");\n const [infopago, setinfopago] = React.useState(null);\n const [tramosdispo, settramosdispo] = React.useState([]);\n const [alert, setalert] = React.useState(null);\n const [pagando, setpagando] = React.useState(false);\n const [errornominacion, seterrornominacion] = React.useState(\"\"); \n\n var widthfilas = 60;\r\n var heightfilas = 45;\n\n\n React.useEffect(() => {\n\n getDataPageInstalacion();\n }, [loading]);\n\r\n\r\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n }\r\n\r\n const getDataPageInstalacion = () => {\r\n\r\n fetch('api/Data/GetInstalacionesUsuarioReserva')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdata(data);\r\n setLoading(false);\r\n setpaso(1);\r\n setinstalacion(null);\r\n setfecha(null);\r\n setinfopago(null);\r\n });\r\n }\r\n\r\n const getDispoTramosInstalacion = (fecha) =>\r\n {\r\n if (instalacion != null && fecha != null) {\r\n var jsonData = JSON.stringify({ id_instalacion: instalacion.id_Instalacion, fecha: fecha });\r\n\r\n fetch('api/Data/GetTramosDisponibilidadInstalacion', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n settramosdispo(res);\r\n }).catch(error => {\r\n settramosdispo([]); \r\n });\r\n }\r\n }\r\n\r\n const getTituloPaso = (paso, pasoactual, texto) => {\r\n if (paso == 1)\r\n return ;\r\n else if (paso == 2)\r\n return ;\r\n else if (paso == 3)\r\n return ;\r\n else if (paso == 4)\r\n return ;\r\n else if (paso == 5)\r\n return ;\r\n else if (paso == 6) {\r\n let pasofinal = 6;\r\n\r\n if (!(InstalacionTieneSeleccionPax() && InstalacionTieneNominacionDePax()))\r\n pasofinal = 4\r\n if (InstalacionTieneSeleccionPax() || InstalacionTieneNominacionDePax())\r\n pasofinal = 5\r\n\r\n return ;\r\n }\r\n else if (paso == 7) {\r\n let pasofinal = 7;\r\n\r\n if (!(InstalacionTieneSeleccionPax() && InstalacionTieneNominacionDePax()))\r\n pasofinal = 5\r\n if (InstalacionTieneSeleccionPax() || InstalacionTieneNominacionDePax())\r\n pasofinal = 6\r\n\r\n return ;\r\n }\r\n }\r\n\r\n const getTextoInstalacion = (instalacion, modo) => {\r\n if (instalacion != null) {\r\n if (modo == 1)\r\n return

{instalacion.infoUso}

;\r\n else\r\n return

{instalacion.datosAdicionales}

;\r\n }\r\n else\r\n return \"\";\r\n\r\n }\r\n\r\n const getfechaformateada = (texto) => {\r\n let nuevafecha = new Date(texto);\r\n return GetDiaSemana(nuevafecha.getDay()) + \" \" + nuevafecha.getDate() + \" \" + GetMes(nuevafecha.getMonth()) + \" \" + nuevafecha.getUTCFullYear();\r\n }\r\n\r\n //Sera multiseleccion si puede seleccion mas de un tramo\r\n const InstalacionPermiteMultiSeleccion = () => {\r\n return instalacion != null && instalacion.tramosDia > 1;\r\n }\r\n\r\n const TramoSelectedPermiteMultiSeleccion = (tramoselected) => {\r\n return instalacion != null && tramoselected != null && tramoselected.pax == 1 && tramoselected.maxPaxReservar == 1;\r\n }\r\n\r\n const InstalacionTieneSeleccionPax = () => {\r\n return instalacion != null && tramo != null && tramo[0].pax > 1 && tramo[0].maxPaxReservar >= 1;\r\n }\r\n\r\n const InstalacionVisualiazacionGrafica = () => {\r\n return instalacion != null && instalacion.tipoVisualizacion == TipoVisualizacionInstalaciones.Grafica;\r\n }\r\n\r\n const InstalacionTieneNominacionDePax = () => {\r\n return instalacion != null && instalacion.nominarPax == 1 && instalacion.opcionesNominacion != null && instalacion.opcionesNominacion != \"\";\r\n }\r\n\r\n const pasoAtras = () => {\r\n if (paso == 2) {\r\n setpaso(1);\r\n setinstalacion(null);\r\n }\r\n else if (paso == 3) {\r\n setpaso(2);\r\n setfecha(null);\r\n settramo(null);\r\n }\r\n else if (paso == 4) {\r\n setpaso(3);\r\n settramo(null); \r\n }\r\n //Si estamos en el nominar pax\r\n else if (paso == 5)\r\n {\r\n //Si tiene seleccion de pax entonces \r\n if (InstalacionTieneSeleccionPax()) {\r\n setpaso(4);\r\n setplazas(0);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n setnominacionPax(\"\"); \r\n }\r\n else\r\n {\r\n setpaso(3);\r\n settramo(null);\r\n setplazas(0);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n setnominacionPax(\"\");\r\n }\r\n }\r\n else if (paso == 6) {\r\n if (InstalacionTieneNominacionDePax()) {\r\n setpaso(5);\r\n setnominacionPax(\"\"); \r\n }\r\n else if (InstalacionTieneSeleccionPax()) {\r\n setpaso(4);\r\n setplazas(0);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n setnominacionPax(\"\");\r\n }\r\n else {\r\n setpaso(3);\r\n settramo(null);\r\n setplazas(0);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n setnominacionPax(\"\"); \r\n }\r\n }\r\n\r\n }\r\n\r\n const onClickInstalacion = (opc) => {\r\n if (opc != null && paso == 1) {\r\n setpaso(2);\r\n setinstalacion(opc);\r\n } \r\n }\r\n\r\n const onClickFechaReserva = (fecha) => {\r\n if (fecha != null && paso == 2) {\r\n getDispoTramosInstalacion(fecha);\r\n setpaso(3);\r\n setfecha(fecha); \r\n }\r\n }\r\n\r\n const onClickTramoReserva = (tramoselected) => {\r\n if (tramoselected != null && paso == 3)\r\n {\r\n if (tramo != null)\r\n { \r\n if (tramo.some(x => x.id_Tramo == tramoselected.id_Tramo)) {\r\n var array = [];\r\n\r\n tramo.forEach(x => {\r\n if (x.id_Tramo != tramoselected.id_Tramo)\r\n array.push(x);\r\n\r\n });\r\n settramo(array);\r\n }\r\n else {\r\n //si ha ya el maximo numero de tramos en dicho dia no permitimos seleccionar mas\r\n if (tramo.length < instalacion.tramosDia) {\r\n var array = [...tramo];\r\n array.push(tramoselected);\r\n settramo(array);\r\n }\r\n }\r\n\r\n }\r\n else {\r\n var array = [];\r\n array.push(tramoselected);\r\n settramo(array);\r\n }\r\n\r\n //SI la instalacion no permite multiseleccion, o el tramo seleccionado no lo permite, entonces provocamos el click\r\n if (!InstalacionPermiteMultiSeleccion() || !TramoSelectedPermiteMultiSeleccion(tramoselected)) {\r\n onClickTramoContinuar(tramoselected);\r\n }\r\n\r\n //Si el tramo nos indica que tiene seleccion de personas\r\n /* if (tramo.pax > 1 && tramo.maxPaxReservar >= 1) {\r\n setpaso(4);\r\n settramo(tramo); \r\n }\r\n //si no hay que selecciona plaza pero si que debemos nominar las pax\r\n else if (InstalacionTieneNominacionDePax()) {\r\n setpaso(5);\r\n settramo(tramo);\r\n setplazas(1);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0); \r\n }\r\n //Sino, debemos saltarnos dicho paso\r\n else {\r\n setpaso(6);\r\n settramo(tramo);\r\n setplazas(1);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n setnominacionPax(\"\"); \r\n }*/\r\n }\r\n }\r\n\r\n const onClickTramoContinuar = (tramoselected) =>\r\n {\r\n //Si el tramo nos indica que tiene seleccion de personas\r\n if (tramoselected.pax > 1 && tramoselected.maxPaxReservar >= 1) {\r\n setpaso(4); \r\n }\r\n //si no hay que selecciona plaza pero si que debemos nominar las pax\r\n else if (InstalacionTieneNominacionDePax()) {\r\n setpaso(5); \r\n setplazas(1);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n }\r\n //Sino, debemos saltarnos dicho paso\r\n else {\r\n setpaso(6); \r\n setplazas(1);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n setnominacionPax(\"\");\r\n }\r\n }\r\n\r\n const onClickPlazasReserva = (maxplazas) => {\r\n var cbplaza = document.getElementById('plazas');\r\n var cbplazaReducidas = document.getElementById('plazasReducidas');\r\n var cbplazasGratuitas = document.getElementById('plazasGratuitas');\r\n\r\n var estandar = cbplaza != null ? Number(cbplaza.value) : 0;\r\n var reducidas = cbplazaReducidas != null ? Number(cbplazaReducidas.value) : 0;\r\n var gratuitas = cbplazasGratuitas != null ? Number(cbplazasGratuitas.value) : 0;\r\n\r\n var TotalPlazas = estandar + reducidas + gratuitas;\r\n\r\n if (cbplaza != null && cbplaza.value > 0 && paso == 4 && maxplazas >= TotalPlazas) {\r\n\r\n var pasoSiguiente = InstalacionTieneNominacionDePax() ? 5 : 6;\r\n\r\n setpaso(pasoSiguiente); \r\n setplazas(estandar);\r\n setplazasReducidas(reducidas);\r\n setplazasGratuitas(gratuitas); \r\n }\r\n }\r\n\r\n\r\n const onClickNominadasPlazasReserva = () => {\r\n\r\n let formulario = document.getElementById('formnominacionpax');\r\n let formData = new FormData(formulario);\r\n let dtanomi = \"\";\r\n\r\n formData.forEach((value, key) => {\r\n dtanomi += key + '=' + value + '|';\r\n });\r\n\r\n var jsonData = JSON.stringify(dtanomi);\r\n\r\n fetch('api/Data/ComprobarDatosNominacionPax', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res != null) {\r\n if (res.ok) {\r\n setpaso(6);\r\n setnominacionPax(dtanomi);\r\n seterrornominacion(\"\");\r\n }\r\n else {\r\n seterrornominacion(res.exception); \r\n }\r\n }\r\n else\r\n seterrornominacion(\"Se ha producido al comprobar lo datos, intentelo mas tarde\");\r\n\r\n }).catch(error => {\r\n seterrornominacion(error); \r\n });\r\n }\r\n\r\n const grabarReserva = () => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formreserva');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/GrabarReserva', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res != null && res.ok) {\r\n if (res.resultado == ResultadoReserva.OkAFaltaDePago) {\r\n setpaso(7);\r\n setinfopago(res.infopago);\r\n }\r\n else {\r\n setalert(PopUpResult.OK);\r\n setLoading(false);\r\n setpaso(1);\r\n setinstalacion(null);\r\n setfecha(null);\r\n settramo(null);\r\n setplazas(0);\r\n setplazasReducidas(0);\r\n setplazasGratuitas(0);\r\n setinfopago(null); \r\n }\r\n }\r\n else\r\n setalert(PopUpResult.KO);\r\n\r\n if (props != null && props.onResultReserva != null && res.resultado != ResultadoReserva.OkAFaltaDePago)\r\n props.onResultReserva(res != null && res.ok ? PopUpResult.OK : PopUpResult.KO, res.retorno)\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n\r\n if (props != null && props.onResultReserva != null)\r\n props.onResultReserva(PopUpResult.KO, error)\r\n });\r\n }\r\n\r\n const realizarPago = (event) => {\r\n setpagando(true);\r\n }\r\n\r\n\r\n function renderGetIcono(tipo) {\r\n\r\n if (tipo == TiposInstalacionReserva.Piscina)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Tenis)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Padel)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Evento)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Excursiones)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Museo)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Futbol)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Polideportivo)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Fronton)\r\n return \r\n else if (tipo == TiposInstalacionReserva.Gimnasio)\r\n return \r\n else\r\n return \"\";\r\n }\r\n\r\n function renderInstalacion(item)\r\n {\r\n return \r\n \r\n onClickInstalacion(item)}>\r\n `${linearGradient(rgba(black.main, 0.25), rgba(black.main, 0.25))}, url(${item.image})` : \"\",\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\"\r\n }}>\r\n \r\n borderRadius.xl }}\r\n >\r\n {renderGetIcono(item.tipo)}\r\n \r\n \r\n \r\n {item.codigo}\r\n \r\n \r\n {item.descripcion}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n function renderInstalaciones(dato) {\r\n\r\n let finales = dato != null && dato.instalaciones != null && dato.instalaciones.length > 0 ? dato.instalaciones.map(x => renderInstalacion(x)) : \"\";\r\n\r\n return finales;\r\n }\r\n\r\n function renderSeleccionFecha(i, diainicio) {\r\n let nuevafecha = new Date(diainicio);\r\n nuevafecha.setDate(nuevafecha.getDate() + i);\r\n\r\n let day = nuevafecha.toDateString();\r\n\r\n let abiertofecha = new Date(instalacion.abierto);\r\n let dayabiertofecha = abiertofecha.toDateString();\r\n\r\n let todosTramosCerrado = false;\r\n let diaentero = nuevafecha.getDay();\r\n let dialasemans = \"\";\r\n\r\n if (diaentero == 0)\r\n dialasemans = \"D\";\r\n else if (diaentero == 1)\r\n dialasemans = \"L\";\r\n else if (diaentero == 2)\r\n dialasemans = \"M\";\r\n else if (diaentero == 3)\r\n dialasemans = \"X\";\r\n else if (diaentero == 4)\r\n dialasemans = \"J\";\r\n else if (diaentero == 5)\r\n dialasemans = \"V\";\r\n else if (diaentero == 6)\r\n dialasemans = \"S\";\r\n\r\n if (instalacion != null && instalacion.diasTodosTramosCerrados != null && instalacion.diasTodosTramosCerrados.length > 0 && instalacion.diasTodosTramosCerrados.some(x => x == dialasemans))\r\n todosTramosCerrado = true;\r\n\r\n //Si estamos en una instalacion cualquiera o la fecha que estamos tratabdo es justo la del evento\r\n if ((instalacion.tipo != TiposInstalacionReserva.Evento && instalacion.tipo != TiposInstalacionReserva.Excursiones && !todosTramosCerrado) ||\r\n ((instalacion.tipo == TiposInstalacionReserva.Evento || instalacion.tipo == TiposInstalacionReserva.Excursiones) && dayabiertofecha == day && !todosTramosCerrado))\r\n {\r\n return \r\n onClickFechaReserva(day)}>\r\n \r\n \r\n \r\n today\r\n \r\n \r\n \r\n \r\n {GetDiaSemana(nuevafecha.getDay())}\r\n \r\n \r\n {nuevafecha.getDate()} {GetMes(nuevafecha.getMonth())} {nuevafecha.getUTCFullYear()}\r\n \r\n \r\n \r\n \r\n ; \r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n function renderSeleccionFechas() \r\n {\r\n var fechasfinal = [];\r\n\r\n if (instalacion != null) {\r\n for (var i = 0; i <= instalacion.diasAntelacion; i++) {\r\n\r\n let datafecha = renderSeleccionFecha(i, data.diaactual);\r\n\r\n if (datafecha != \"\")\r\n fechasfinal.push(datafecha);\r\n }\r\n }\r\n\r\n //version 1\r\n if (fechasfinal != null && fechasfinal.length > 0) {\r\n return \r\n {fechasfinal}\r\n ;\r\n }\r\n else {\r\n return \r\n \r\n No existen fechas disponibles\r\n \r\n ;\r\n }\r\n\r\n //version 2\r\n //return fechasfinal != null && fechasfinal.length > 0 ? fechasfinal :

No existen fechas disponibles

;\r\n }\r\n\r\n function renderSelecionTramo(item) {\r\n let disable = item.cantidadDisponible <= 0;\r\n\r\n let infopax = \"\";\r\n\r\n if (item.pax > 1)\r\n infopax = \" pax\";\r\n\r\n let infoprecio = \"\";\r\n\r\n if (item.precio > 0 && item.precioReducido > 0)\r\n infoprecio = \"(Precio \" + item.precio + \"€/\" + item.precioReducido + \"€\" + infopax + \")\";\r\n else if (item.precio > 0)\r\n infoprecio = \"(Precio \" + item.precio + \"€\" + infopax + \")\";\r\n\r\n let shadow = true;\r\n\r\n return \r\n (shadow ? lg : \"none\") }} onClick={disable ? \"\" : () => onClickTramoReserva(item)}>\r\n x.id_Tramo == item.id_Tramo) ? \"dark\" : \"white\")}\r\n variant={/*color === \"white\" ? */\"contained\" /*: \"gradient\"*/}\r\n borderRadius=\"xl\"\r\n >\r\n \r\n \r\n {item.horainistring}-{item.horafinstring}\r\n \r\n \r\n \r\n \r\n x.id_Tramo == item.id_Tramo) ? \"white\" : \"dark\"}>\r\n \r\n {item.descripcion}\r\n \r\n \r\n \r\n \r\n \r\n x.id_Tramo == item.id_Tramo) ? \"white\" : \"text\"}\r\n fontWeight=\"regular\"\r\n fontSize={14}\r\n >\r\n {item.pax > 1 ? (item.cantidadDisponible < 0 ? 0 : item.cantidadDisponible) + \" plazas disponibles\" : \"\"}\r\n {infoprecio != \"\" ? <>{infoprecio} : \"\"}\r\n \r\n {/**/}\r\n {/* */}\r\n {/**/}\r\n \r\n \r\n ;\r\n\r\n //return \r\n // \n //
\n //

{item.descripcion}

\n //
\n //
\n //
\n //
{item.horainistring}-{item.horafinstring}
\n //
\n //

\n // {item.pax > 1 ? (item.cantidadDisponible < 0 ? 0 : item.cantidadDisponible) + \" plazas disponibles\" : \"\"} {infoprecio}\n //

\n // \n //
\n //
\r\n //
\r\n }\r\n \r\n function renderSelecionTramoGrafico(rowindex, colindex, item) {\r\n let res = \"\";\r\n let backColor = \"#ffffff\";\r\n\r\n if (item != null) {\r\n res = item.descripcion;\r\n backColor = item.cantidadDisponible <= 0 ? \"#f5427e\" : \"#42f56f\";\r\n\r\n if (tramo != null && tramo.some(x => x.id_Tramo == item.id_Tramo))\r\n backColor = \"#2abce8\"\r\n }\r\n\r\n return 0 ? () => onClickTramoReserva(item) : null}\r\n style={{\r\n marginBottom: 0.5,\r\n width: widthfilas, height: heightfilas, borderTop: item != null ? '1px solid gray' : \"\", borderLeft: item != null ? '1px solid gray' : \"\", borderRight: item != null ? '1px solid gray' : \"\", borderBottom: item != null ? '1px solid gray' : \"\", backgroundColor: backColor\r\n }}>\r\n
{res}
\n ;\r\n }\r\n\r\n function renderSelecionTramos()\r\n {\r\n //if (!loadingtramos)\r\n //{\r\n if (tramosdispo != null)\r\n {\r\n //Si tiene alguna actividad los montamos\r\n if (tramosdispo.length > 0)\r\n {\r\n let botonContinuar = tramo != null && tramo.length > 0 ?\r\n \r\n \r\n : \"\"; \r\n\r\n //VISALIZACION GRAFICA\r\n if (InstalacionVisualiazacionGrafica()) {\r\n let finales = [];\r\n let linea = [];\r\n\r\n let rowfinal = 0;\r\n let colfinal = 0;\r\n\r\n tramosdispo.forEach(x => {\r\n if (x.row != null && x.row > rowfinal)\r\n rowfinal = x.row;\r\n\r\n if (x.col != null && x.col > colfinal)\r\n colfinal = x.col;\r\n });\r\n\r\n for (var row = 0; row <= rowfinal; row++) {\r\n linea = [];\r\n\r\n for (var col = 0; col <= colfinal; col++) {\r\n\r\n var data = tramosdispo.find(x => x.col == col && row == x.row);\r\n\r\n linea.push(renderSelecionTramoGrafico(row, col, data));\r\n }\r\n\r\n if (linea != null && linea.length > 0) {\r\n var maxwidth = (colfinal * widthfilas) + 30 + 100;\r\n finales.push({linea});\r\n }\r\n }\r\n\r\n return \r\n {finales}\r\n {botonContinuar}\r\n ;\r\n }\r\n else {\r\n let final = tramosdispo.map(x => renderSelecionTramo(x));\r\n return \r\n {final}\r\n {botonContinuar}\r\n ;\r\n }\r\n }\r\n else {\r\n return \r\n \r\n No hay opciones disponibles\r\n \r\n ;\r\n }\r\n }\r\n else\r\n return \"\";\r\n //}\r\n //else\r\n // return \r\n // Obteniendo informacion, espere unos instantes\r\n // ;\r\n } \r\n\r\n function renderSeleccionPlazas(tramoselected)\r\n {\r\n let maxplaza = tramoselected.cantidadDisponible < tramoselected.maxPaxReservar ? tramoselected.cantidadDisponible : tramoselected.maxPaxReservar;\r\n let disable = maxplaza <= 0;\r\n\r\n let variosPrecios = tramoselected.precio > 0 && (tramoselected.precioReducido > 0 || tramoselected.conPrecioCero == 1);\r\n\r\n let valplaza = [];\r\n for (var i = 1; i <= maxplaza; i++)\r\n valplaza.push({ valor: i, name: i + (i == 1 ? \" plaza\" : \" plazas\") });\r\n\r\n let valplazaOtras = [];\r\n for (var i = 0; i <= maxplaza; i++)\r\n valplazaOtras.push({ valor: i, name: i + (i == 1 ? \" plaza\" : \" plazas\") });\r\n\r\n\r\n return <>\r\n {/**/}\r\n {/* */}\r\n

Plazas Reservar 1

\r\n \r\n \r\n \r\n \r\n {tramoselected.precioReducido > 0 ?\r\n \r\n \r\n : \"\"}\r\n {tramoselected.conPrecioCero == 1 ?\r\n \r\n \r\n : \"\"\r\n }\r\n \r\n {tramoselected.precioReducido > 0 || tramoselected.conPrecioCero == 1 ?\r\n \r\n \r\n Maximo de plazas disponibles {maxplaza}\r\n \r\n : \"\"}\r\n {tramoselected.infoprecios != null ? <>
\r\n \r\n \r\n {tramoselected.infoPrecios}\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n ; \r\n }\r\n\r\n function renderPax(indexpax, tipo, opcionesActivas) {\r\n let idpax = tipo + \"_\" + indexpax + \"_\";\r\n\r\n let plazaname = \"\";\r\n\r\n if (tipo == 'E')\r\n plazaname = \"Plaza \";\r\n else if (tipo == 'R')\r\n plazaname = \"Reducida\";\r\n else if (tipo == 'G')\r\n plazaname = \"Gratuita\";\r\n\r\n plazaname = plazaname + (indexpax + 1);\r\n\r\n return <>\r\n \r\n \r\n \r\n \r\n {opcionesActivas.indexOf(OpcionesNominaciones.Nombre) >= 0 ?\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Apellidos) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.DNI) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Sexo) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Edad) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Telefono) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Email) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Club) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Direccion) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Procedencia) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.Talla) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n {opcionesActivas.indexOf(OpcionesNominaciones.NumRegistroSanitario) >= 0 ?\r\n\r\n \r\n \r\n : \"\"\r\n }\r\n \r\n \r\n \r\n {errornominacion != null && errornominacion != \"\" ?

{errornominacion}

: \"\"}\r\n
\r\n
\r\n ;\r\n }\r\n\r\n function renderNominarPax() {\r\n\n let paxNomina = [];\n\n var indexpax = 0;\n\n if (plazas != null && plazas > 0) {\n for (var i = 0; i < plazas; i++) {\r\n paxNomina.push(renderPax(indexpax, \"E\", instalacion.opcionesNominacion));\n indexpax = indexpax + 1;\n }\n }\n\n if (plazasReducidas != null && plazasReducidas > 0) {\n for (var i = 0; i < plazasReducidas; i++) {\r\n paxNomina.push(renderPax(indexpax, \"R\", instalacion.opcionesNominacion));\n indexpax = indexpax + 1;\n }\n }\n\n if (plazasGratuitas != null && plazasGratuitas > 0) {\n for (var i = 0; i < plazasGratuitas; i++) {\r\n paxNomina.push(renderPax(indexpax, \"G\", instalacion.opcionesNominacion));\n indexpax = indexpax + 1;\n }\n }\n\n return \r\n \r\n \r\n
\r\n {paxNomina}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
;\n\n //return
{paxNomina}
;\r\n }\r\n\r\n function renderDatosReserva(user) {\r\n\r\n var precio = 0;\r\n var precioReducidas = 0;\r\n tramo.forEach(x => {\r\n precio = precio + (plazas * x.precio);\r\n precioReducidas = precioReducidas + (plazas * x.precioReducido);\r\n });\r\n\r\n //var precio = plazas * tramo[0].precio;\r\n //var precioReducidas = plazasReducidas * tramo[0].precioReducido;\r\n\r\n var Normales = Number(plazas);\r\n var Reducidas = Number(plazasReducidas);\r\n var Gratuitas = Number(plazasGratuitas);\r\n\r\n var TotalPlazas = Normales + Reducidas + Gratuitas;\r\n\r\n var TotalPrecio = precio + precioReducidas;\r\n\r\n var InfoAdicionalPlazasPrecios = \"\";\r\n\r\n if (Reducidas > 0 || Gratuitas > 0) {\r\n \r\n var precioTramo = \"\";\r\n var precioReducido = \"\"; \r\n\r\n tramo.forEach(x =>\r\n {\r\n precioTramo = precioTramo + x.precio + \"€\";\r\n precioReducido = precioReducido + x.precioReducido + \"€\";\r\n });\r\n\r\n InfoAdicionalPlazasPrecios = \"- Estandar: \" + Normales + \" / \" + precioTramo;\r\n InfoAdicionalPlazasPrecios = InfoAdicionalPlazasPrecios + \" - Reducidas:\" + Reducidas + \" / \" + precioReducido + \"€\";\r\n InfoAdicionalPlazasPrecios = InfoAdicionalPlazasPrecios + \" - Gratuitas:\" + Gratuitas + \" / 0€\";\r\n }\r\n\r\n var franja = \"\";\r\n let ids = [];\r\n tramo.forEach(x => {\r\n franja = franja + x.descripcion + \" - \";\r\n ids.push(x.id_Tramo);\r\n });\r\n\r\n\r\n // estoy aqui controlando que la cantida final es la correcta, que el precio es el bueno, y tendria que controlar que la cantidad de maximas disponible es correcta cuando estan metiendo las plazas en el paso concreto\r\n\r\n return \r\n \n \n \r\n Resumen Reserva\r\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {instalacion.latstring != \"0\" && instalacion.lonstring != \"0\" ?\n \n : \"\"\n }\n \n \n \n \n \n \n \n {TotalPrecio > 0 ?\n \n \n \r\n Precio Reserva\r\n \n

{TotalPrecio} Euros

\n
\n
: \"\"\r\n }\r\n
\n \n \n \r\n Datos de Contacto\r\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {getTextoInstalacion(instalacion, 1)}\r\n {getTextoInstalacion(instalacion, 0)}\n \n \n \n \n \n \n \n \n \n \r\n
;\r\n }\r\n\r\n function renderPagarReserva(user, pago) {\n let formulariopago = \"\";\n\n \n let pagocontado = \"\";\n\n if (pago != null) {\n if (user.id_Rol == Roles.SuperUsuario || user.id_Rol == Roles.Administrador) {\n pagocontado =\n \n \n \n } {/*component={Link} to={pago.urlokcontado}*/ }\n\n //Si estamos con Paygold\n if (pago.driver == \"RedSys\") {\n formulariopago = (
\r\n \r\n \r\n \r\n \r\n
)\n }\n else if (pago.driver == \"PayComet\") {\n formulariopago = (
\r\n \r\n
)\n }\n else if (pago.driver == \"AddOnPayments\") {\n formulariopago = (
\r\n \r\n
);\n }\r\n else if (pago.driver == \"CecaBank\") {\n formulariopago = (
\r\n \r\n
)\n }\r\n }\r\n /*\r\n * \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */\r\n return {formulariopago} {pagocontado};\r\n }\r\n\r\n function renderPasosReserva() {\r\n let paso1 = \"\";\r\n let paso2 = \"\";\r\n let paso3 = \"\";\r\n let paso4 = \"\";\r\n let paso5 = \"\";\r\n let paso6 = \"\";\r\n let paso7 = \"\";\r\n\r\n if (paso >= 1) {\r\n paso1 =\r\n \r\n {getTituloPaso(1, paso)}\r\n {paso == 1 ? renderInstalaciones( data) : \"\"}\r\n \r\n }\r\n\r\n if (paso >= 2) {\r\n paso2 = \r\n {getTituloPaso(2, paso, instalacion.descripcion)}\r\n {paso == 2 ? : \"\"}\r\n {paso == 2 ? getTextoInstalacion(instalacion, 1) : \"\"}\r\n {paso == 2 ? renderSeleccionFechas() : \"\"}\r\n {paso == 2 ? getTextoInstalacion(instalacion, 0) : \"\"}\r\n {paso == 2 ? : \"\"}\r\n \r\n }\r\n\r\n if (paso >= 3) {\r\n paso3 = \r\n {getTituloPaso(3, paso, fecha)}\r\n {paso == 3 ? : \"\"}\r\n {paso == 3 ? getTextoInstalacion(instalacion, 1) : \"\"}\r\n {paso == 3 ? renderSelecionTramos() : \"\"}\r\n {paso == 3 ? getTextoInstalacion(instalacion, 0) : \"\"}\r\n {paso == 3 ? : \"\"}\r\n \r\n }\r\n\r\n if (paso >= 4 && InstalacionTieneSeleccionPax()) {\r\n paso4 = \r\n {getTituloPaso(4, paso)}\r\n {paso == 4 ? : \"\"}\r\n {paso == 4 ? getTextoInstalacion(instalacion, 1) : \"\"}\r\n {paso == 4 ? renderSeleccionPlazas(tramo[0]) : \"\"}\r\n {paso == 4 ? getTextoInstalacion(instalacion, 0) : \"\"}\r\n {paso == 4 ? : \"\"}\r\n \r\n }\r\n\r\n if (paso >= 5 && instalacion != null && instalacion.nominarPax == 1) {\r\n\r\n paso5 = \r\n {getTituloPaso(5, paso)}\r\n {paso == 5 ? : \"\"}\r\n {paso == 5 ? getTextoInstalacion(instalacion, 1) : \"\"}\r\n {paso == 5 ? renderNominarPax() : \"\"}\r\n {paso == 5 ? getTextoInstalacion(instalacion, 0) : \"\"}\r\n {paso == 5 ? : \"\"}\r\n \r\n }\r\n\r\n if (paso >= 6) {\r\n paso6 = \r\n {getTituloPaso(6, paso)}\r\n {paso == 6 ? renderDatosReserva( props.user) : \"\"}\r\n \r\n }\r\n\r\n if (paso >= 7) {\r\n paso7 = \r\n {getTituloPaso(7, paso)}\r\n

Pulse el boton de Realizar el pago y asi completar su reserva

\r\n

ATENCION! Las reservas sin pagar seran canceladas automaticamente en el caso de no realizarse el pago.

\r\n
\r\n {paso == 7 ? {renderPagarReserva(props.user, infopago)} : \"\"}\r\n
\r\n }\r\n\r\n return (\r\n \r\n {data != null && data.imagebannerreservas != null && data.imagebannerreservas != \"\" ?\n \n
\n \n : \"\"\r\n }\r\n {paso1}\r\n {paso2}\r\n {paso3}\r\n {paso4}\r\n {paso5}\r\n {paso6}\r\n {paso7}\r\n
\r\n \r\n );\r\n }\r\n\r\n\r\n let formulario = loading ?

\r\n : renderPasosReserva(this)\r\n\r\n let alerta = alert != null ? : \"\";\r\n\r\n return \r\n \n {alerta}\n \r\n {formulario}\r\n \r\n \r\n \r\n \r\n}\r\n\r\n//propTypes = {\n// user: PropTypes.object, \n// onResultReserva: PropTypes.object\n//};","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Face from \"@mui/icons-material/Face\";\nimport Assignment from \"@mui/icons-material/Ballot\";\nimport Dns from \"@mui/icons-material/Dns\";\nimport SettingsRemote from \"@mui/icons-material/SettingsRemote\";\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport Activacion from \"@mui/icons-material/TouchApp\";\nimport Close from \"@mui/icons-material/Close\";\nimport Email from \"@mui/icons-material/Email\";\nimport Payment from \"@mui/icons-material/Payment\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\n\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, OpcionSiNoChar, RolesUsuarios, ModoAreasPoi, ModoAreaPoi, TipoOthelloFieldGrid, PopUpResult, Roles, DataStateModal, MessageOthelloBoxButtons, ModoModal, EstadoReserva, EstadosReserva, ResultadoReserva, FiltroVerReservas, OpcionSiNo, OpcionSiNoEntero, OpcionVisibilidadReservas, ModoReport } from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\r\nimport OthelloEdit from '../componentsothello/OthelloEdit.jsx';\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\n\nimport NavPills from \"../components/NavPills.jsx\";\nimport Button from \"../components/Button.jsx\";\nimport ImageUpload from \"../components/ImageUpload.jsx\";\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloModalBase from '../componentsothello/OthelloModalBase.jsx';\n\nimport OthelloTitulo from '../componentsothello/OthelloTitulo.jsx';\n\nimport { ImprimirListado } from '../othelloFunciones.jsx';\n\nimport avatar from \"../assets/img/default-avatar.png\";\nimport Divider from \"@mui/material/Divider\";\n\r\nimport Reservar from './Reservar.js';\r\nimport Card from \"@mui/material/Card\";\r\nimport OthelloPrimary from '../componentsothello/OthelloPrimary.jsx';\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\r\n\r\n\nexport default function Perfil({ ...props }) {\r\n const { literal, idRol, tipooficina, loginmodoreserva, loginapps, idUser } = props;\n\r\n const { search } = useLocation();\n\n const [loading, setLoading] = React.useState(true);\n const [loadingOficinas, setloadingOficinas] = React.useState(true);\n const [loadingArchivos, setloadingArchivos] = React.useState(true);\n const [loadingAccesosAreasPois, setloadingAccesosAreasPois] = React.useState(true);\n const [loadingRservas, setloadingRservas] = React.useState(true);\n\n const [id_usuario, setid_usuario] = React.useState(0);\n const [statePageOficina, setstatePageOficina] = React.useState(DataStatePage.dsSearch);\n const [statePageArchivos, setstatePageArchivos] = React.useState(DataStatePage.dsSearch);\n\n const [datausuario, setdatausuario] = React.useState(null);\n const [dataoficinas, setdataoficinas] = React.useState(null);\n const [dataAccesosAreasPois, setdataAccesosAreasPois] = React.useState([]);\n const [dataArchivos, setdataArchivos] = React.useState([]);\n const [dataReservas, setdataReservas] = React.useState([]);\n const [stateModal, setstateModal] = React.useState(DataStateModal.dsClosed);\n const [itemmodal, setitemmodal] = React.useState(null);\n const [modomodal, setmodomodal] = React.useState(null);\n\n const [oficinas, setoficinas] = React.useState([]);\n const [areas, setareas] = React.useState([]);\n const [pois, setpois] = React.useState([]);\n\n const [filtroreserva, setfiltroreserva] = React.useState(0);\n const [filtrofranja, setfiltrofranja] = React.useState(0);\n\n const [filtroestado, setfiltroestado] = React.useState(EstadoReserva.Confirmada);\n\n const [dataeditandoOficina, setdataeditandoOficina] = useState(null);\r\n const [indexeditandoOficina, setindexeditandoOficina] = useState(null);\n\n const [dataeditandoArchivo, setdataeditandoArchivo] = useState(null);\r\n const [indexeditandoArchivo, setindexeditandoArchivo] = useState(null);\n\n const [alert, setalert] = React.useState(null);\n const [erroralert, seterroralert] = React.useState(null);\n\n React.useEffect(() => {\n\n let url = search;\r\n\n let params = new URLSearchParams(url);\n let idselected = params.get('id');\n\n if (idselected == null || idselected == 0)\n idselected = idUser;\n\n let SuperUsuario = idRol == Roles.SuperUsuario || idRol == Roles.Administrador;\n \r\n let finalvisua = SuperUsuario ? 0 : \"1\";\r\n let finalfranja = 0\r\n let finalestado = EstadoReserva.Confirmada; \n\n getDataPage(idselected);\n getDataPageOficinas();\r\n getDataPageArchivos();\r\n getDataPageReservas(idselected, finalvisua, finalfranja, finalestado);\n\n }, [loading]);\n\r\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n //Metodo asociados al Usuario\r\n\r\n const getDataPage = (idselected) => {\r\n\r\n var jsonData = JSON.stringify(idselected);\r\n\r\n fetch('api/Data/GetUsuario', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdatausuario(res);\r\n setid_usuario(res.id_Usuario);\r\n setLoading(false);\r\n }).catch(error => {\r\n setdatausuario(null);\r\n setid_usuario(0); \r\n });\r\n }\r\n\r\n const getDataVacia = () => {\r\n\r\n fetch('api/Data/GetUsuarioVacio')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatausuario(data);\r\n setid_usuario(data.id_Usuario); \r\n }).catch(error => {\r\n setdatausuario(null);\r\n setid_usuario(0); \r\n });;\r\n }\r\n\r\n const grabarDataPage = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formusuario');\r\n let formData = new FormData(formulario);\r\n\r\n fetch('api/Data/GrabarUsuario', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(data => {\r\n if (data != null) {\r\n\r\n if (data.id_Usuario > 0) {\r\n setdatausuario(data);\r\n setid_usuario(data.id_Usuario);\r\n setalert(PopUpResult.OK); \r\n }\r\n //no se grabo, pass -- repetir pass\r\n else\r\n setalert(PopUpResult.KO);\r\n }\r\n else\r\n setalert(PopUpResult.KO);\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const actualizarCodigoCliente = (event) => {\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formactivacion');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/ActualizaCodigoClienteUsuario', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n setalert(PopUpResult.OK);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const grabarPassDataPage = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formusuario');\r\n let formData = new FormData(formulario);\r\n\r\n fetch('api/Data/GuardarNuevaPass', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(data => {\r\n if (data != null && data)\r\n setalert(PopUpResult.OK);\r\n else\r\n setalert(PopUpResult.KO);\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const deshacerDataPage = () => {\r\n \r\n getDataPage(id_usuario);\r\n }\r\n\r\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n seterroralert(null);\r\n }\r\n\r\n const othelloModalResul = (modo, result, valor) =>\r\n {\r\n setalert(null);\r\n seterroralert(null);\r\n setstateModal(DataStateModal.dsClosed);\r\n setitemmodal(null);\r\n setmodomodal(null);\r\n }\r\n\r\n const OnResultReserva = (res, retorno) => {\r\n let error = \"\";\r\n\r\n if (res != PopUpResult.OK) {\r\n if (retorno == ResultadoReserva.OK || ResultadoReserva.OkAFaltaDePago)\r\n error = \"\";\r\n else if (retorno == ResultadoReserva.SinDisponibilidad)\r\n error = \"No hay disponibilidad para los parametros indicados, disculpe las molestias\";\r\n else if (retorno == ResultadoReserva.UsuarioMaxTramosDia)\r\n error = \"No puede realizar mas reservas para dicha dia en la instalacion indicada\";\r\n else\r\n error = retorno;\r\n\r\n setalert(res);\r\n seterroralert(error);\r\n }\r\n else {\r\n setalert(res);\r\n seterroralert(error);\r\n setdataReservas(null);\r\n }\r\n }\r\n\r\n const onclickColumna = (valor, field) => {\n\n if (field == \"btruta\") {\n if (valor != null && valor.ruta != null && valor.ruta != '') {\n window.open(valor.ruta, '_blank');\r\n }\n }\n else if (field == \"ver\") {\n setstateModal(DataStateModal.dsOpen);\n setitemmodal(valor);\r\n setmodomodal(field);\n }\n else if (field == \"pagar\")\n actualizarPagadaConfirmadadReserva(valor);\n else if (field == \"email\")\n EnviarMailReserva(valor);\n else if (field == \"delete\")\n deleteGridDataReservas(valor);\n\n }\r\n\r\n //Metodo asociados a los acceso a oficinas del usuario\r\n\r\n const getDataPageOficinas = () => {\r\n\r\n fetch('api/Data/GetOficinasVirtual')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let resoficinas = data.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Oficina,\r\n name: x.nombreOficina\r\n };\r\n\r\n return val;\r\n\r\n })\r\n\r\n setoficinas(resoficinas);\r\n });\r\n\r\n\r\n var jsonData = JSON.stringify(id_usuario);\r\n\r\n fetch('api/Data/GetAccesoOficinas', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdataoficinas(res);\r\n setloadingOficinas(false);\r\n }).catch(error =>\r\n {\r\n setdataoficinas(null);\r\n setloadingOficinas(true); \r\n });\r\n }\r\n\r\n const getDataVaciaOficina =() => {\r\n\r\n var jsonData = JSON.stringify(datausuario.id_Usuario);\r\n\r\n fetch('api/Data/GetAccesoOficinaVacio', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(data =>\r\n {\r\n setdataeditandoOficina(data);\r\n \r\n setstatePageOficina(DataStatePage.dsInsert);\r\n setdataAccesosAreasPois([]);\r\n setloadingAccesosAreasPois(true);\r\n setareas([]);\r\n setpois([]);\r\n \r\n }).catch(error => {\r\n setdataeditandoOficina(null);\r\n });\r\n }\r\n\r\n const grabarDataPageOficina = (event) => {\r\n\r\n //Altero el valor que tiene el input de dias visualizando\r\n try {\r\n if (oficinas != null && indexeditandoOficina == -1) {\r\n // var item = oficinas.find(x => x.id_Oficina == refs.form[3].value);\r\n\r\n //if (item != null)\r\n // refs.form[2].value = item.nombreOficina;\r\n }\r\n }\r\n catch { }\r\n\r\n //Obtengo los datos\r\n //const data = new FormData(refs.form);\r\n let formulario = document.getElementById('formaccesoficina');\r\n let formData = new FormData(formulario);\r\n\r\n\r\n fetch('api/Data/GrabaAccesoOficina', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res != null) {\r\n if (oficinas != null) {\r\n var item = oficinas.find(x => x.id_Oficina == res.id_Oficina);\r\n\r\n if (item != null)\r\n res.nomOficina = item.nombreOficina;\r\n }\r\n\r\n if (indexeditandoOficina == -1) {\r\n\r\n var array = [...dataoficinas];\r\n array.push(res);\r\n setdataoficinas(array);\r\n }\r\n else {\r\n var array = [...dataoficinas];\r\n array[indexeditandoOficina] = res;\r\n setdataoficinas(array);\r\n }\r\n\r\n setdataeditandoOficina(null);\r\n setindexeditandoOficina(null);\r\n setstatePageOficina(DataStatePage.dsSearch);\r\n }\r\n\r\n }).catch(error => {\r\n //setState({ submitted: true, error: 2 });\r\n });\r\n }\r\n\r\n const nuevoDataPageOficina = () => {\r\n //LLama a obtener el idioma vacio, que es el que pondra el estado\r\n getDataVaciaOficina();\r\n setindexeditandoOficina(-1);\r\n }\r\n\r\n const cancelarDataPageOficina = () => {\r\n setdataeditandoOficina(null);\r\n setindexeditandoOficina(null);\r\n setstatePageOficina(DataStatePage.dsSearch);\r\n setdataAccesosAreasPois([]);\r\n setloadingAccesosAreasPois(true);\r\n setareas([]);\r\n setpois([]);\r\n }\r\n\r\n const deshacerDataPageOficina = () =>\r\n {\r\n //Si el que estabamos editando era uno nuevo al deshacer nos vamos a la de buqueda\r\n if (indexeditandoOficina == -1)\r\n setstatePageOficina(DataStatePage.dsSearch);\r\n //Sino, es que estabamos en un item valido\r\n //else\r\n // forceUpdate()\r\n }\r\n\r\n //Metodos asociados a los archivos del usuario\r\n\r\n const getDataPageArchivos = () => {\r\n\r\n var jsonData = JSON.stringify(id_usuario);\r\n\r\n fetch('api/Data/GetMisArchivos', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdataArchivos(res);\r\n setloadingArchivos(false);\r\n }).catch(error => {\r\n setdataArchivos(null);\r\n setloadingArchivos(true);\r\n });\r\n }\r\n\r\n const getDataVacioArchivo = () => {\r\n\r\n var jsonData = JSON.stringify(datausuario.id_Usuario);\r\n\r\n fetch('api/Data/GetArchivoVacio', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(data => {\r\n setdataeditandoArchivo(data);\r\n setstatePageArchivos(DataStatePage.dsInsert);\r\n \r\n }).catch(error => {\r\n setdataeditandoArchivo(null);\r\n });\r\n }\r\n\r\n const grabarDataPageArchivos = (event) => {\r\n\r\n //Obtengo los datos\r\n let formulario = document.getElementById('formarchivo');\r\n let formData = new FormData(formulario);\r\n //const data = new FormData(refs.form);\r\n\r\n fetch('api/Data/GrabarMiArchivo', {\n method: 'POST',\n body: formData,\n\n }).then(response => response.json()).then(res => {\r\n\r\n let dataArchivosfinal = dataArchivos;\r\n\r\n if (dataArchivosfinal == null)\r\n dataArchivosfinal = [];\r\n\r\n if (indexeditandoArchivo == -1) {\r\n\r\n var array = [...dataArchivosfinal];\r\n array.push(res);\r\n setdataArchivos(array);\r\n }\r\n else {\r\n var array = [...dataArchivosfinal];\r\n array[indexeditandoArchivo] = res;\r\n setdataArchivos(array);\r\n }\r\n\r\n setdataeditandoArchivo(null);\r\n setindexeditandoArchivo(null);\r\n setstatePageArchivos(DataStatePage.dsSearch);\r\n \r\n setalert(PopUpResult.OK);\r\n\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n const nuevoDataPageArchivo = () => {\r\n\r\n getDataVacioArchivo();\r\n setindexeditandoArchivo(-1);\r\n }\r\n\r\n const cancelarDataPageArchivos = () => {\r\n setdataeditandoArchivo(null);\r\n setindexeditandoArchivo(null);\r\n setstatePageArchivos(DataStatePage.dsSearch);\r\n }\r\n\r\n //Metodos asociados a los archivos del usuario\r\n\r\n const getDataPageReservas = (id_usu, filtrores, filtrofran, filtroest) => {\r\n\r\n var jsonData = JSON.stringify({ id_usuario: id_usu, visualizareserva: filtrores, franja: filtrofran, estado: filtroest });\r\n\r\n fetch('api/Data/GetMisReserva', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setdataReservas(res);\r\n setloadingRservas(false);\r\n }).catch(error => {\r\n setdataReservas(null);\r\n setloadingRservas(true); \r\n });\r\n }\r\n\r\n const onClickBuscarReservas = () => {\r\n\r\n let SuperUsuario = idRol == Roles.SuperUsuario || idRol == Roles.Administrador;\n\r\n //Por defecto ponemos los de un usuario\r\n let finalvisua = \"1\";\r\n let finalfranja = 0\r\n let finalestado = EstadoReserva.Confirmada;\r\n \r\n if (SuperUsuario)\r\n {\r\n let visua = document.getElementById('visualizareserva');\r\n let franja = document.getElementById('franja');\r\n let estado = document.getElementById('estado');\r\n\r\n finalvisua = visua != null && visua.value != null ? visua.value : \"1\";\r\n finalfranja = franja != null && franja.value != null ? franja.value : 0\r\n finalestado = estado != null && estado.value != null ? estado.value : EstadoReserva.Confirmada\r\n } \r\n\r\n setfiltroreserva(finalvisua);\r\n setfiltrofranja(finalfranja);\r\n setfiltroestado(finalestado);\r\n\r\n //LLamo a montar los relojes de realizar de nuevo la busqueda\r\n setloadingRservas(false);\r\n\r\n //LLamamos a obtener los datos de la pagina\r\n getDataPageReservas(id_usuario, finalvisua, finalfranja, finalestado );\r\n }\r\n \r\n const onClickImprimirReservas = () =>\r\n {\r\n let visua = document.getElementById('visualizareserva');\r\n let franja = document.getElementById('franja');\r\n\r\n let visuafin = visua != null && visua.value != null ? visua.value : \"1\";\r\n let franjafin = franja != null && franja.value != null ? franja.value : 0;\r\n\r\n var dataFinalPrint = { id_usuario: id_usuario, visualizareserva: visuafin, franja: franjafin };\r\n\r\n ImprimirListado(ModoReport.Preview, \"ListadoReserva\", dataFinalPrint, \"api/DataListados/GetListadoReservas\", callbackEnvioListadoMail);\r\n }\r\n\r\n const callbackEnvioListadoMail = (data) => {\r\n\r\n if (data != null) {\r\n\r\n }\r\n }\r\n\r\n //METODO SOBRE EL GRID DE ACCESO A OFICINAS\r\n const editGridDataPageOficina = (valor, index) => {\r\n\r\n if (valor.modoAreaPoi != ModoAreaPoi.Total) {\r\n setdataeditandoOficina(valor);\r\n indexeditandoOficina(index);\r\n\r\n var jsonData = JSON.stringify(valor.id_Oficina);\r\n\r\n if (valor.modoAreaPoi == ModoAreaPoi.ModoArea) {\r\n\r\n fetch('api/Data/GetAreasOficina', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n let resareas = res.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Area,\r\n name: x.cod_Area\r\n };\r\n\r\n return val;\r\n\r\n });\r\n\r\n setareas(resareas);\r\n\r\n }).catch(error => {\r\n setareas(null); \r\n });\r\n }\r\n else {\r\n\r\n fetch('api/Data/GetPoisOficina', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n let respois = res.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Poi,\r\n name: x.title\r\n };\r\n\r\n return val;\r\n\r\n });\r\n\r\n setpois(respois);\r\n\r\n }).catch(error => {\r\n setpois(null);\r\n });\r\n }\r\n\r\n\r\n var jsonData = JSON.stringify(valor.id_UsuarioOV);\r\n\r\n fetch('api/Data/GetAccesoPoisAreas', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n setdataAccesosAreasPois(res);\r\n setstatePageOficina(DataStatePage.dsEdit);\r\n setloadingAccesosAreasPois(false);\r\n\r\n }).catch(error => {\r\n setdataAccesosAreasPois([]); \r\n setloadingAccesosAreasPois(true); \r\n });\r\n\r\n\r\n setstatePageOficina(DataStatePage.dsEdit);\r\n }\r\n }\r\n\r\n const deleteGridDataPageOficina = (valor, index) => {\r\n\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_UsuarioOV);\r\n\r\n fetch('api/Data/EliminarAccesoOficina', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res)\r\n {\r\n //Si todo salie correcto limpio los valores de edicion\r\n setdataeditandoOficina( valor);\r\n setindexeditandoOficina(index);\r\n\r\n if (dataoficinas != null) {\r\n var array = [...dataoficinas]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdataoficinas(array);\r\n setalert(PopUpResult.OK);\r\n } \r\n }\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n\r\n //METODO SOBRE ACCESO AREAS POIS\r\n\r\n const grabarDataAccesosAreasPois = (event) => {\r\n\r\n let formulario = document.getElementById('formaaccesopoisareas');\r\n let data = new FormData(formulario); \r\n\r\n fetch('api/Data/GrabarAccesoPoisAreas', {\n method: 'POST',\n body: data,\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res != null) {\r\n if (res.modoAreaPoi == ModoAreaPoi.ModoArea) {\r\n if (areas != null) {\r\n var item = areas.find(x => x.id_Area == res.id_PoiArea);\r\n\r\n if (item != null)\r\n res.nomAreaPoi = item.cod_Area;\r\n }\r\n }\r\n else if (res.modoAreaPoi == ModoAreaPoi.ModoPoi) {\r\n if (pois != null) {\r\n var item = pois.find(x => x.id_Poi == res.id_PoiArea);\r\n\r\n if (item != null)\r\n res.nomAreaPoi = item.title;\r\n }\r\n }\r\n\r\n var array = [...dataAccesosAreasPois]; // make a separate copy of the array\r\n\r\n //a�ado el valor\r\n array.push(res);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setdataAccesosAreasPois(array);\r\n }\r\n }).catch(error => {\r\n //setState({ submitted: true, error: 2 });\r\n });\r\n }\r\n\r\n const deleteGridDataAccesosAreasPois = (valor, index) =>\r\n {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify({ usuarioOVSeleccionado: valor.id_UsuarioOV, idPoiAreaSeleccionado: valor.id_PoiArea });\r\n\r\n fetch('api/Data/EliminarAccesosPoisAreas', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n if (dataAccesosAreasPois != null) {\r\n var array = [...dataAccesosAreasPois]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setdataAccesosAreasPois(array);\r\n\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n\r\n }\r\n\r\n //METOSO SOBRE EL GRID DE ARCHIVOS\r\n const deleteGridDataArchivo = (valor, index) => {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_MiArchivo);\r\n\r\n fetch('api/Data/EliminarMiArchivo', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n if (dataArchivos != null) {\r\n var array = [...dataArchivos]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setdataArchivos(array);\r\n\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\r\n\r\n //METOSO SOBRE EL GRID DE RESERVAS\r\n const deleteGridDataReservas = (valor, index) =>{\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify({ Id_Oficina: valor.id_Oficina, Id_Usuario: valor.id_Usuario, localizador: valor.localizador });\r\n\r\n fetch('api/Data/EliminarReservaLocalizador', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n\r\n if (dataReservas != null) {\r\n var array = [...dataReservas]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n //Modificao el estado de data para que refresque la pantalla\r\n setdataReservas(array);\r\n\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\r\n\r\n const actualizarPagadaConfirmadadReserva = (valor, index) =>\r\n {\r\n\r\n if (valor != null) {\r\n if (valor.estado == EstadoReserva.Cancelada || valor.estado == \"Cancelada\") {\r\n var jsonData = JSON.stringify({ Id_Oficina: valor.id_Oficina, Id_Usuario: valor.id_Usuario, localizador: valor.localizador });\r\n\r\n fetch('api/Data/ActualizarPagadaConfirmadaReservaLocalizador', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n setalert(res ? PopUpResult.OK : PopUpResult.KO);\r\n\r\n if (res)\r\n onClickBuscarReservas();\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\r\n }\r\n\r\n const EnviarMailReserva = (valor, index) =>\r\n {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify({ Id_Oficina: valor.id_Oficina, Id_Usuario: valor.id_Usuario, localizador: valor.localizador });\r\n\r\n fetch('api/Data/EnviarMailReserva', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n setalert(res ? PopUpResult.OK : PopUpResult.KO);\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\r\n\r\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\r\n //Metodos render Usuario\r\n\r\n function renderFormUsuario( user) {\r\n\r\n if (user != null) {\r\n return (\n \n \n \n \n \n \r\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0} />\n \n \n 0} />\n \n \n {idRol == Roles.SuperUsuario ?\n \n \n \n \n \n \n \n :\n \n \n \n \n }\n {user.id_Usuario > 0 ?\n <>\n \n \n

\n
\n \n \n \n
\n \n \n

\n \r\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n

\n
\n \n \n \n
\n \n :\n <>\n \n \n \n \n \n \n \n \n \n \n

\n
\n \n \n \n
\n \n }\n \n
\n
\r\n
\r\n
\r\n );\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n function renderActivacionCliente( user) {\r\n\r\n return (\n \n \n \n \n \n \r\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\r\n
\r\n
\r\n );\r\n }\r\n\n //Metodos render de acceso a oficinas del usuario\n\n function renderOpcionesAccesosAreasPois( acceso, accesosAreasPois) {\n\r\n let busquedaAccesos = renderSearchAccesosAreasPois( accesosAreasPois);\n\n //let edicionOficinas = statePageOficina == DataStatePage.dsEdit || statePageOficina == DataStatePage.dsInsert ? renderInsertEditOficinas( dataeditandoOficina) : \"\";\n\n return (\n \n
\n
\n \n
\n

Accesos Definidos

\n
\n
\n
\n \n \n \n \n {acceso.modoAreaPoi == ModoAreaPoi.ModoArea ?\n :\n \n }\n \n \n \n \n \n \n \n \n {busquedaAccesos}\n \n \n
\n
\n );\n }\n\n function renderSearchAccesosAreasPois( accesos) {\n\r\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Accesos\"];\r\n let valoreshow = [\"nomAreaPoi\"];\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderOpcionesOficinas( oficinas) {\n let busquedaOficinas = renderSearchOficinas( oficinas);\n\n let edicionOficinas = statePageOficina == DataStatePage.dsEdit || statePageOficina == DataStatePage.dsInsert ? renderInsertEditOficinas( dataeditandoOficina) : \"\";\n\n //#99d9b7\n return (
\n \n \n {edicionOficinas}\n \n \r\n \r\n \n \n \n \n \n {busquedaOficinas}\n \n \n
\n );\n }\n\n function renderSearchOficinas( oficinas) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"Oficina\", \"Tipo Acceso\", \"Gestion Reservas\", \"Gestion Encuestas\"];\r\n let valoreshow = [\"nomOficina\", \"modoAreaPoi\", \"gestionReservas\", \"gestionEncuestas\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"modoAreaPoi\", items: ModoAreasPoi });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"gestionReservas\", items: OpcionSiNo });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"gestionEncuestas\", items: OpcionSiNo });\r\n\r\n //Creamos el grid global \r\n return ();\n }\r\n\r\n function renderInsertEditOficinas(acceso)\n {\n if (acceso != null) {\n let Nombre = acceso != null && acceso.id_UsuarioOV > 0 ? \"Editar Acceso \" + acceso.nomOficina : \"Nuevo Acceso\";\n\n //Si estamos editando ponemos laopcion de ver sus acceso y la opcion de grabarlos \n let accesosAreasPois = acceso.id_UsuarioOV > 0 ? renderOpcionesAccesosAreasPois(acceso, dataAccesosAreasPois) : \"\";\n\n return (\n \n
\n {\n \n \n {\n acceso != null && acceso.id_UsuarioOV > 0 ? :\n \n }\n \n \n }\n
\n \n \n \n \n \n 0} />\n \n \n 0} />\n \n \n 0} />\n \n \n 0} />\n \n \n \r\n \n \n {accesosAreasPois}\n \n \n
\n
\r\n );\n }\n else\n return \"\";\n }\r\n\r\n //Render acceso a archivos del usuario\r\n function renderOpcionesArchivos(archivos)\r\n {\r\n let busquedaArchivos = renderSearchArchivos( archivos);\n\n let edicionArchivos = statePageArchivos == DataStatePage.dsEdit || statePageArchivos == DataStatePage.dsInsert ? renderInsertEditArchivo( dataeditandoArchivo) : \"\";\n\n //#99d9b7\n return (
\n \n \n {edicionArchivos}\n \n \n \n \n \r\n \n \n \n {\n idRol == Roles.SuperUsuario || idRol == Roles.Administrador ?\n \n \n : \"\"\n }\n \n {busquedaArchivos}\n \n \n
\n );\r\n }\r\n\r\n function renderSearchArchivos( datos) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = [\"\", \"Descripcion\"];\r\n\r\n let valoreshow = [\"btruta\", \"descripcion\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"btruta\", icon: Visibility, onclick: onclickColumna });\r\n\r\n let deleteEvento = idRol == Roles.SuperUsuario || idRol == Roles.Administrador ? deleteGridDataArchivo : null;\r\n\r\n //Creamos el grid global \r\n return ();\n }\r\n\r\n function renderInsertEditArchivo(archivo) {\n\n if (archivo != null) {\n let Nombre = archivo != null && archivo.id_MiArchivo > 0 ? \"Editar Archivo\" : \"Nuevo Archivo\";\n\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n Archivo\n \n
\n
\n \r\n
\r\n );\n }\n else\n return \"\";\n }\r\n\r\n //Render de las reservas que tiene el usuario activas\r\n\r\n function renderSearchReservas( datos) {\r\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = (idRol == Roles.SuperUsuario || idRol == Roles.Administrador) ?\r\n [\"\", \"\", \"\", \"\", \"Fecha\", \"Reserva\", \"Instalacion\", \"Tramo\", \"Plazas\", \"Precio\", \"Pagada\", \"Estado\", \"Socio\"] :\r\n [\"\", \"\", \"Fecha\", \"Reserva\", \"Instalacion\", \"Tramo\", \"Plazas\", \"Precio\", \"Pagada\", \"Estado\", \"Socio\"];\r\n\r\n let valoreshow = (idRol == Roles.SuperUsuario || idRol == Roles.Administrador) ?\r\n [\"ver\", \"delete\", \"email\", \"pagar\", \"fechastring\", \"localizador\", \"instalacion\", \"tramo\", \"cantidad\", \"precio\", \"pagada\", \"estado\", \"numSocio\"] :\r\n [\"ver\", \"delete\", \"fechastring\", \"localizador\", \"instalacion\", \"tramo\", \"cantidad\", \"precio\", \"pagada\", \"estado\", \"numSocio\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"ver\", icon: Visibility, onclick: onclickColumna });\r\n\r\n if (idRol == Roles.SuperUsuario || idRol == Roles.Administrador) {\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"pagar\", icon: Payment, onclick: onclickColumna, color: \"facebook\" });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"email\", icon: Email, onclick: onclickColumna, color: \"facebook\" });\r\n }\r\n\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"delete\", icon: Close, color: \"error\", onclick: onclickColumna });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"estado\", items: EstadosReserva });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"pagada\", items: OpcionSiNoEntero });\r\n\r\n //Creamos el grid global \r\n\r\n //
\n // \n //
\r\n return (
\n \n \n \r\n \n \n \n {idRol == Roles.SuperUsuario || idRol == Roles.Administrador ?\n \n \n : }\n {idRol == Roles.SuperUsuario || idRol == Roles.Administrador ?\n \n \n : }\n {idRol == Roles.SuperUsuario || idRol == Roles.Administrador ?\n \n \n : }\n \n \n \n {idRol == Roles.SuperUsuario || idRol == Roles.Administrador ?\n \n \n : \"\"}\n \n \n \n \n \n \n
);\r\n }\r\n\r\n function renderModalMasInfoReserva( item) {\r\n if (item != null) {\r\n let nomiacion = \"\";\r\n\r\n if (item.dataNominacionResult != null && item.dataNominacionResult.length > 0) {\r\n let resnomiacion = item.dataNominacionResult.map(x =>\r\n \n {x.nombre != null && x.nombre != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.apellidos != null && x.apellidos != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.dni != null && x.dni != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.sexo != null && x.sexo != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.edad != null && x.edad != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.telefono != null && x.telefono != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.email != null && x.email != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.club != null && x.club != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.direccion != null && x.direccion != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.procedencia != null && x.procedencia != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.talla != null && x.talla != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\r\n {x.numRegistroSanitario != null && x.numRegistroSanitario != \"\" ?\r\n \r\n \r\n : \"\"\r\n }\n \r\n );\r\n\r\n if (resnomiacion != null && resnomiacion != \"\") {\r\n nomiacion = (<>\n \n

Datos del Formulario

\n
\n
\r\n {resnomiacion}\r\n );\r\n }\r\n }\r\n\r\n return (\r\n

Resumen Reserva

\r\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \r\n \n \n \n \r\n \n \n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.precio > 0 ?\n <>\n \n \n

Precio Reserva

\n

{item.precio} Euros - {item.pagada == \"No\" || item.pagado == 0 ? \"A Falta de Pago\" : \"Pagada\"}

\n

Las reservas sin pagar seran canceladas automaticamente en el caso de no realizarse el pago.

\n
\n
\r\n \n \r\n \r\n \n : \"\"\r\n }\r\n \n \n

Datos de Contacto

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \r\n {nomiacion}\r\n
)\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n //Render de reservar el cliente\r\n function renderReservarCliente( user) {\r\n\r\n }\r\n\r\n let modal = \"\";\r\n \r\n if (stateModal != DataStateModal.dsClosed && modomodal == \"ver\")\r\n modal = renderModalMasInfoReserva( itemmodal);\r\n\r\n let MiPerfilFormulario = loading ?

: renderFormUsuario( datausuario);\r\n\r\n let MisAccesos = loadingOficinas ?

: renderOpcionesOficinas( dataoficinas)\r\n\n let MisReservas = loadingRservas ?

: renderSearchReservas( dataReservas)\n\n let ReservarCliente = datausuario != null && datausuario.id_Usuario > 0 ? : \"\"\n\n let MisArchivos = loadingArchivos ?

: renderOpcionesArchivos( dataArchivos)\n\n let ActivacionCliente = datausuario != null && datausuario.id_Usuario > 0 ? renderActivacionCliente( datausuario) : \"\"\n\n let alerta = alert != null ? : \"\";\r\n\r\n let NombreUsuario = datausuario != null && datausuario.id_Usuario > 0 ? datausuario.nombre + \" \" + datausuario.apellido : \"Nuevo Usuario\";\r\n\n let tabs = [];\n\n // if (datausuario != null && datausuario.id_Rol != Roles.UsuarioApp)\n if (idRol == Roles.SuperUsuario || (datausuario != null && datausuario.id_Usuario > 0 && datausuario.id_Usuario == idUser)) {\n tabs.push(\n {\n tabButton: \"Mi Perfil\",\n tabIcon: Face,\n tabContent: (MiPerfilFormulario)\n });\n }\n\n if (datausuario != null && datausuario.id_Usuario > 0) { //Si el usuario conectado es superusuario pued modificar los accesos de cualquiera\n if (idRol == Roles.SuperUsuario && !loginmodoreserva && !loginapps) {\n tabs.push(\n {\n tabButton: \"Accesos\",\n tabIcon: Dns,\n tabContent: (MisAccesos)\n });\n }\n\n if (loginmodoreserva) {\n tabs.push(\n {\n tabButton: \"Mis Reservas\",\n tabIcon: Assignment,\n tabContent: (MisReservas)\n });\n\n tabs.push(\n {\n tabButton: \"Reservar\",\n tabIcon: Activacion,\n tabContent: (ReservarCliente)\n });\n\n }\n else {\n tabs.push(\n {\n tabButton: \"Documentos\",\n tabIcon: Assignment,\n tabContent: (MisArchivos)\n });\n\n tabs.push(\n {\n tabButton: \"Activacion\",\n tabIcon: Activacion,\n tabContent: (ActivacionCliente)\n });\n }\n }\n \r\n return (\r\n
\r\n \r\n \n {alerta}\n {modal}\n \r\n \n \r\n \r\n \r\n {NombreUsuario}\r\n \r\n \r\n \n \r\n \r\n \r\n \n \n
\n \n
\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React from \"react\";\n\n//import { useClearCache } from \"react-clear-cache\";\nimport { useClearBrowserCache } from 'react-clear-browser-cache';\n\nexport default function OthelloVersionWeb() {\n // const { latestVersion } = useClearCache();\n\n const contextValue = useClearBrowserCache();\n\n return (\n
\n {/*latestVersion*/}\n v. {contextValue != null ? contextValue.latestVersion : \"Sin Indicar\"}\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport Link from \"@mui/material/Link\";\n\nimport { useTranslation } from 'react-i18next';\n\nimport OthelloVersionWeb from \"../componentsothello/OthelloVersionWeb.jsx\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\nimport MDTypography from \"../components/MDTypography\";\nimport MDInput from \"../components/MDInput\";\nimport MDButton from \"../components/MDButton\";\n\r\nimport { CircularProgress } from \"@mui/material\";\r\n\nfunction LoginPage({ ...props }) {\n // const { classes, t } = this.props;\n const { t } = useTranslation();\n\n const [initpage, setInitPage] = useState(true);\n const [version, setVersion] = useState(\"\");\n\n const [submitted, setSubmitted] = useState(false);\n const [error, setError] = useState(0);\n const [errordata, setErrorData] = useState(0);\n const [errorliteral, setErrorLiteral] = useState(0);\n\n const [loading, setLoading] = useState(false);\n\n //const [rememberMe, setRememberMe] = useState(false);\n //const handleSetRememberMe = () => setRememberMe(!rememberMe); \n\n React.useEffect(() => {\r\n fetch('api/Data/GetVersion')\n .then(response => response.json())\n .then(data => {\n\n //if (caches) {\r\n // // Service worker cache should be cleared with caches.delete()\r\n // caches.keys().then(function (names) {\r\n // for (let name of names) caches.delete(name);\r\n // });\r\n //}\n setVersion(data.version)\n setInitPage(false); \n }).catch(error => {\r\n setInitPage(false)\r\n setVersion(\"\")\r\n });\r\n }, [initpage]);\n\n const handleClick = (event) =>\r\n {\r\n event.preventDefault();\r\n\n setLoading(true);\n setErrorData(\"\");\r\n setErrorLiteral(\"\");\n\n let formulario = document.getElementById('formlogin');\n var data = new FormData(formulario);\n\r\n fetch('api/Data/LoginUsuario', {\n method: 'POST',\n body: data,\n }).then(response => response.json()).then(res =>\r\n {\r\n\r\n if (!res)\r\n {\r\n setSubmitted(true);\r\n setError(1);\r\n setErrorData(res.exceptionmessage);\r\n setErrorLiteral(res.exceptionmessagetraducible);\r\n setLoading(false);\r\n } \r\n else {\r\n //this.props.history.push('admin/dashboard')\r\n window.location.assign('/admin/dashboard');\r\n }\r\n }).catch(error => {\r\n setSubmitted(true);\r\n setError(2);\r\n });\r\n }\n\n let errorinfo = \"\";\n\n if (errorliteral != null && errorliteral != \"\")\n errorinfo = {t(errorliteral)};\n else if (errordata != null && errordata != \"\")\n errorinfo = {errordata};\n\n return (\n
\n \n \n \n \n \n \n \n \n handleClick(e)} fullWidth>\n Entrar\n \n \n {loading ?
: \"\"}\n {errorinfo}\n \n \n {\r\n window.location.assign('/auth/rememberpass');\r\n }} >He olvidado mi contraseña\n \n \n \n \n Alguna duda, contacte con nosotros?{\" \"} \n \n \n Accede a nuestra web\n \n \n \n \n \n \n \n
\n \n );\n}\n\nexport default LoginPage;\n\n\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// @mui material components\nimport { styled } from \"@mui/material/styles\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\n\nexport default styled(LinearProgress)(({ theme, ownerState }) => {\n const { palette, functions } = theme;\n const { color, value, variant } = ownerState;\n\n const { text, gradients } = palette;\n const { linearGradient } = functions;\n\n // background value\n let backgroundValue;\n\n if (variant === \"gradient\") {\n backgroundValue = gradients[color]\n ? linearGradient(gradients[color].main, gradients[color].state)\n : linearGradient(gradients.info.main, gradients.info.state);\n } else {\n backgroundValue = palette[color] ? palette[color].main : palette.info.main;\n }\n\n return {\n \"& .MuiLinearProgress-bar\": {\n background: backgroundValue,\n width: `${value}%`,\n color: text.main,\n },\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Material Dashboard 2 PRO React components\nimport MDTypography from \"../MDTypography\";\n\n// Custom styles for MDProgress\nimport MDProgressRoot from \"./MDProgressRoot\";\n\nconst MDProgress = forwardRef(({ variant, color, value, label, ...rest }, ref) => (\n <>\n {label && (\n \n {value}%\n \n )}\n \n \n));\n\n// Setting default values for the props of MDProgress\nMDProgress.defaultProps = {\n variant: \"contained\",\n color: \"info\",\n value: 0,\n label: false,\n};\n\n// Typechecking props for the MDProgress\nMDProgress.propTypes = {\n variant: PropTypes.oneOf([\"contained\", \"gradient\"]),\n color: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n value: PropTypes.number,\n label: PropTypes.bool,\n};\n\nexport default MDProgress;\n","import React, { useState, useEffect } from \"react\";\n\nimport Link from \"@mui/material/Link\";\n\nimport { useTranslation } from 'react-i18next';\n\nimport OthelloVersionWeb from \"../componentsothello/OthelloVersionWeb.jsx\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\nimport MDTypography from \"../components/MDTypography\";\nimport MDInput from \"../components/MDInput\";\nimport MDButton from \"../components/MDButton\";\nimport MDProgress from \"../components/MDProgress/index.js\";\n\nimport avatar from \"../assets/img/default-avatar.png\";\r\nimport { CircularProgress, Grid, LinearProgress } from \"@mui/material\";\r\n\nfunction LoginPage({ ...props }) {\n // const { classes, t } = this.props;\n const { t } = useTranslation();\n\n const [initpage, setInitPage] = useState(true);\n const [version, setVersion] = useState(\"\");\n\n const [submitted, setSubmitted] = useState(false);\n const [error, setError] = useState(0);\n const [errordata, setErrorData] = useState(0);\n const [errorliteral, setErrorLiteral] = useState(0);\n\n const [loading, setLoading] = useState(false);\n\n //const [rememberMe, setRememberMe] = useState(false);\n //const handleSetRememberMe = () => setRememberMe(!rememberMe); \n\n React.useEffect(() => {\r\n fetch('api/Data/GetVersion')\n .then(response => response.json())\n .then(data => {\n\n //if (caches) {\r\n // // Service worker cache should be cleared with caches.delete()\r\n // caches.keys().then(function (names) {\r\n // for (let name of names) caches.delete(name);\r\n // });\r\n //}\n setVersion(data.version)\n setInitPage(false); \n }).catch(error => {\r\n setInitPage(false)\r\n setVersion(\"\")\r\n });\r\n }, [initpage]);\n\n const handleClick = (event) => {\r\n event.preventDefault();\r\n\n setLoading(true);\n setErrorData(\"\");\r\n setErrorLiteral(\"\");\n\n let formulario = document.getElementById('formlogin');\n var data = new FormData(formulario);\n\r\n fetch('api/Data/LoginUsuarioApp', {\n method: 'POST',\n body: data,\n }).then(response => response.json()).then(res => {\r\n\r\n if (!res) {\r\n setSubmitted(true);\r\n setError(1);\r\n setErrorData(res.exceptionmessage);\r\n setErrorLiteral(res.exceptionmessagetraducible);\r\n setLoading(false);\r\n }\r\n else {\r\n //this.props.history.push('admin/dashboard')\r\n window.location.assign('/admin/profile');\r\n }\r\n }).catch(error => {\r\n setSubmitted(true);\r\n setError(2);\r\n });\r\n }\n\n let errorinfo = \"\";\n\n if (errorliteral != null && errorliteral != \"\")\n errorinfo = {t(errorliteral)};\n else if (errordata != null && errordata != \"\")\n errorinfo = {errordata};\n\n return (\n
\n \n \n \n \n \n \n \n {/**/}\n {/* */}\n {/* */}\n {/*   Remember me*/}\n {/* */}\n {/**/}\n \n handleClick(e)} fullWidth>\n Entrar\n \n \n {loading ?
: \"\"}\n {errorinfo}\n \n \n {\r\n window.location.assign('/authapps/register');\r\n }} >Registrate\n \n \n {\r\n window.location.assign('/authapps/rememberpass');\r\n }} >He olvidado mi contraseña\n \n \n \n \n \n \n Accede a nuestra web\n \n \n \n \n \n \n \n
\n \n );\n}\n\nexport default LoginPage;\n","import React, { useState, useEffect } from \"react\";\n\nimport Link from \"@mui/material/Link\";\n\nimport { useTranslation } from 'react-i18next';\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\nimport MDTypography from \"../components/MDTypography\";\nimport MDInput from \"../components/MDInput\";\nimport MDButton from \"../components/MDButton\";\nimport MDProgress from \"../components/MDProgress/index.js\";\n\nimport avatar from \"../assets/img/default-avatar.png\";\r\nimport { CircularProgress, Grid, LinearProgress } from \"@mui/material\";\n\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\nimport OthelloVersionWeb from \"../componentsothello/OthelloVersionWeb.jsx\";\n\n\nfunction LoginPageReservas({ ...props }) {\n const { t } = useTranslation();\n\n const [loading, setLoading] = useState(false);\n\n const [initpage, setInitPage] = useState(true);\n const [version, setVersion] = useState(\"\");\n const [localidades, setlocalidades] = useState([]);\n const [url, seturl] = useState(\"\");\n\n const [submitted, setSubmitted] = useState(false);\n const [error, setError] = useState(0);\n const [errordata, setErrorData] = useState(0);\n const [errorliteral, setErrorLiteral] = useState(0);\n\n React.useEffect(() => {\n\n getLocalidadesReserva();\n getVersion();\n setInitPage(false);\n\n }, [initpage]);\n\n\n const getVersion = () => {\n fetch('api/Data/GetVersion')\n .then(response => response.json())\n .then(data => {\n setVersion(data.version)\n }).catch(error => {\r\n setVersion(\"\")\r\n });\n }\n\n const getLocalidadesReserva = () => {\r\n fetch('api/Data/GetLocalidadesReservas')\r\n .then(response => response.json())\r\n .then(data => {\r\n\r\n let reslocalidades = [];\r\n\r\n if (data.localidades != null && data.localidades.length > 0) {\r\n reslocalidades = data.localidades.map(x => {\r\n let val =\r\n {\r\n ...x,\r\n valor: x.id_Oficina,\r\n name: x.nombreOficina\r\n };\r\n\r\n return val;\r\n });\r\n }\r\n\r\n setlocalidades(reslocalidades);\r\n seturl(data.urlweb);\r\n }).catch(error => {\r\n //window.location.assign('/authapps/loginreservas');\r\n });\r\n }\n\n const handleClick = (event) => {\r\n event.preventDefault();\r\n\n setLoading(true);\n\n let formulario = document.getElementById('formlogin');\n var data = new FormData(formulario);\r\n\r\n fetch('api/Data/LoginUsuarioAppReserva', {\n method: 'POST',\n body: data,\n\n }).then(response => response.json()).then(res => {\r\n //Si hubo error\r\n if (!res) {\r\n setSubmitted(true);\r\n setError(1);\r\n setLoading(false);\r\n }\r\n else {\r\n //this.props.history.push('admin/dashboard')\r\n window.location.assign('/admin/profile');\r\n }\r\n }).catch(error => {\r\n setSubmitted(true);\r\n setError(2);\r\n setLoading(false);\r\n });\r\n }\n\n let errorinfo = \"\";\n\n if (errorliteral != null && errorliteral != \"\")\n errorinfo = {t(errorliteral)};\n else if (errordata != null && errordata != \"\")\n errorinfo = {errordata};\n\n return (\n
\n \n \n 0 ? localidades[0].valor : 0} />\n \n \n \n \n \n \n \n {/**/}\n {/* */}\n {/* */}\n {/*   Remember me*/}\n {/* */}\n {/**/}\n \n handleClick(e)} fullWidth>\n Entrar\n \n \n {loading ?
: \"\"}\n {errorinfo}\n \n \n {\r\n window.location.assign('/authapps/register');\r\n }} >Registrate\n \n \n {\r\n window.location.assign('/authapps/rememberpass');\r\n }} >He olvidado mi contraseña\n \n \n \n \n \n \n Accede a nuestra web\n \n \n \n \n \n \n \n
\n \n );\n\n\n/* let cargando = loading ? : \"\";\n\n return (\n
\n \n \n
\n \n \n \n
\n

Iniciar Sesión

\n 0 ? localidades[0].valor : 0} />\n \n \n \n )\n }}\n />\n \n \n \n )\n }}\n />\n Registrate \n He olvidado mi contraseña\n \n {cargando}\n
\n
\n \n
\n
\n \n
\n \n\n \n
\n
\n );*/\n}\n\n\nexport default LoginPageReservas;\n\n","import React from \"react\";\r\n\r\nimport { GetEstadoString } from \"../othelloFunciones\";\r\nimport Grid from \"@mui/material/Grid\";\r\n\r\nimport OthelloEdit from \"../componentsothello/OthelloEdit.jsx\";\r\nimport { TipoPeticion } from \"../othelloConstantes\";\r\nimport OthelloPrimary from \"../componentsothello/OthelloPrimary\";\r\n\r\n\r\nfunction Peticion({...props })\r\n{\r\n //variables de las propiedas recibidas\r\n const { idpeticion} = props; \r\n\r\n const [peticion, setpeticion] = React.useState(null);\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n\r\n var jsonData = JSON.stringify(idpeticion);\r\n\r\n fetch('api/Data/GetPeticion', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\r\n\r\n }).then(response => response.json()).then(data => {\r\n setpeticion(data);\r\n setLoading(false)\r\n }).catch(error => {\r\n setpeticion(null);\r\n setLoading(false)\r\n });\r\n }, [loading]);\r\n\r\n return (\r\n <>\r\n
\r\n {!loading && peticion != null ?\r\n
\r\n Datos de la Peticion\r\n {peticion.tipo == TipoPeticion.Establecimiento ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : \"\"}\r\n {peticion.tipo == TipoPeticion.Establecimiento ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : \"\"}\r\n {peticion.tipo == TipoPeticion.Contacto ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : \"\"}\r\n {peticion.tipo == TipoPeticion.Contacto ?\r\n \r\n \r\n \r\n \r\n : \"\"}\r\n\r\n\r\n
\r\n : \"\"}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Peticion;","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// @mui/icons-material\nimport Visibility from \"@mui/icons-material/Visibility\";\nimport TouchApp from \"@mui/icons-material/TouchApp\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\n\nimport OthelloBotonera from '../componentsothello/OthelloBotonera.jsx';\r\nimport { DataStatePage, TipoOthelloFieldGrid, Roles, PopUpResult, DataStateModal, ModoModal, MessageOthelloBoxButtons, TiposPeticion, TipoPeticion } from \"../othelloConstantes.jsx\";\r\nimport OthelloGrid from '../componentsothello/OthelloGrid.jsx';\n\n\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloModalBase from '../componentsothello/OthelloModalBase.jsx';\n\nimport Peticion from './Peticion.js';\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\r\n\n\nexport default function Peticiones({ ...props }) {\r\n const { literal, idRol } = props;\n\n const [loading, setLoading] = React.useState(true);\n\n const [statePage, setstatePage] = React.useState(DataStatePage.dsDesconocido);\n const [datapeticiones, setdatapeticiones] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n\n const [stateModal, setstateModal] = React.useState(DataStateModal.dsClosed);\n const [itemmodal, setitemmodal] = React.useState(null);\n const [modomodal, setmodomodal] = React.useState(null);\n\n const [dataeditando, setdataeditando] = useState(null);\r\n const [indexeditando, setindexeditando] = useState(null);\n\n const navigate = useNavigate();\r\n\r\n const location = useLocation();\n\n React.useEffect(() => {\r\n\r\n setLoading(false);\r\n getDataPage();\r\n }, [loading]);\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = () => {\r\n fetch('api/Data/GetPeticiones')\r\n .then(response => response.json())\r\n .then(data => {\r\n setdatapeticiones(data);\r\n });\r\n }\r\n\r\n const deleteGridDataPage = (valor, index) =>\r\n {\r\n\r\n if (valor != null) {\r\n var jsonData = JSON.stringify(valor.id_Peticion);\r\n\r\n fetch('api/Data/EliminarPeticion', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res =>\r\n {\r\n if (res) {\r\n //Si todo salie correcto limpio los valores de edicion \r\n setdataeditando(valor);\r\n setindexeditando(index);\r\n\r\n if (datapeticiones != null) {\r\n var array = [...datapeticiones]; // make a separate copy of the array\r\n\r\n //Elimino el de index concreto\r\n array.splice(index, 1);\r\n\r\n setdatapeticiones(array);\r\n setalert(PopUpResult.OK);\r\n }\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\r\n }\r\n }\n\n const onclickColumna = (valor, field)=>\n {\n if (field == \"ver\") {\n\n setstateModal(DataStateModal.dsOpen);\r\n setitemmodal(valor);\r\n setmodomodal(field); \n }\n else if (field == \"alta\") {\n if (valor != null && valor.tipo == TipoPeticion.Establecimiento)\n {\n var jsonData = JSON.stringify(valor.id_Peticion);\r\n\r\n fetch('api/Data/TramitarPeticion', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res) {\r\n setLoading(true); \r\n //getDataPage();\r\n }\r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n });\n\r\n }\n }\n }\n\n const othelloModalResul = (modo, result, valor) => {\r\n\r\n setstateModal(DataStateModal.dsClosed);\r\n setitemmodal(null);\r\n setmodomodal(null); \r\n }\n\n const onClosePopUpResult = () => {\r\n setalert( null);\r\n }\n\n //METODOS DE RENDERIZADO DE LA PANTALLA\n\n function renderSearch(peticiones) {\n //Generamos los valores de cada una de las lineas de grid\r\n let cabeceros = idRol == Roles.SuperUsuario ? [\"\", \"\", \"Peticion\", \"Tipo\", \"Nombre\", \"EMail\", \"Telefono\", \"Fecha Alta\"] : [\"\", \"\", \"Tipo\", \"Nombre\", \"EMail\", \"Telefono\", \"Fecha Alta\"];\r\n let valoreshow = idRol == Roles.SuperUsuario ? [\"ver\", \"alta\", \"id_Peticion\", \"tipo\", \"nombre\", \"eMail\", \"telefono\", \"fAlta\"] : [\"ver\", \"alta\", \"tipo\", \"nombre\", \"eMail\", \"telefono\", \"fAlta\"];\r\n\r\n let datasourceFields = [];\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloDateTime, fieldname: \"fAlta\" });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"ver\", icon: Visibility, onclick: onclickColumna });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloButton, fieldname: \"alta\", icon: TouchApp, onclick: onclickColumna });\r\n datasourceFields.push({ tipofield: TipoOthelloFieldGrid.OthelloComboBox, fieldname: \"tipo\", items: TiposPeticion });\r\n\r\n //Creamos el grid global \r\n return ();\n }\n\n function renderModalPeticion(item, modo) {\r\n if (item != null)\r\n return (\r\n \r\n )\r\n else\r\n return \"\";\r\n }\n\r\n\r\n let busqueda = loading ?

: renderSearch(datapeticiones)\n\n\n let modal = \"\";\r\n\r\n if (stateModal != DataStateModal.dsClosed)\r\n modal = renderModalPeticion(itemmodal, modomodal);\n\n let alerta = alert != null ? : \"\";\n\n return (\n \n \n {modal}\n \n \n {alerta}\n \n \n \n \n \n \n \n \r\n \r\n \r\n {busqueda}\r\n \r\n \r\n \n \r\n \n );\n}\n\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { Link } from \"react-router-dom\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n\n// @mui/icons-material\nimport Visibility from \"@mui/icons-material/Visibility\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\n\r\nimport Button from \"../components/Button.jsx\";\r\nimport OthelloTitulo from \"../componentsothello/OthelloTitulo.jsx\";\r\n\r\nimport { ResultadoPagoReserva } from \"../othelloConstantes.jsx\";\r\n\nexport default function ReservaFinPasarela({ ...props }) {\r\n const { literal, idRol, tipooficina, loginmodoreserva, loginapps, idUser } = props;\n\n //Ejmplo de obtener un parametro de la URL \r\n //ID={Id_Oficina}&dt={Resultado.ID_Reserva}.1\n\n const navigate = useNavigate();\n\r\n const { search } = useLocation();\n\n const [loading, setLoading] = React.useState(true);\n\n const [id, setid] = React.useState(-1);\n const [data, setdata] = React.useState(null);\n const [sign, setsign] = React.useState(null);\n const [resultadopago, setresultadopago] = React.useState(null);\n\n React.useEffect(() => {\n\n let url = search;\r\n let params = new URLSearchParams(url);\n\r\n let id = params.get('ID');\n let dt = params.get('dt');\n let sign = params.get('sign');\n\n setid(id);\n setdata(dt);\n setsign(sign);\n\n getDataPage(id, dt, sign);\n }, [loading]);\n\n\n //METODOS GLOBALES DE LA PAGINA\r\n\r\n const getDataPage = (id, data, sign) => {\r\n\r\n if (id != null && data != null && sign != null) {\r\n var jsonData = JSON.stringify({ id: id, data: data, sign: sign });\r\n\r\n fetch('api/Data/ConfirmarDenegarPagoReserva', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\r\n\r\n }).then(response => response.json()).then(res => {\r\n if (res != null) {\r\n setLoading(false);\r\n setresultadopago(res);\r\n }\r\n else\r\n navigate('/admin/profile');\r\n //this.props.history.push('/admin/profile'); \r\n\r\n }).catch(error => {\r\n navigate('/admin/profile');\r\n //this.props.history.push('/admin/profile'); \r\n });\r\n }\r\n else\r\n navigate('/admin/profile');\r\n //this.props.history.push('/admin/profile');\r\n\r\n }\n\n function renderResultadoPago(resultado) {\r\n\r\n if (resultado != null) {\r\n let pagoOk = resultado.resultadoPago == ResultadoPagoReserva.OK;\r\n\r\n let titulo = pagoOk ? \"Operación realizada con exito\" : \"Operación no completada \";\r\n\r\n return \r\n \r\n {pagoOk ?\r\n

El proceso de pago de la operación se ha completado correctamente.

\r\n\r\n Si tiene cualquier duda o consulta, póngase en contacto con nosotros.

\r\n\r\n Muchas gracias.

\r\n

:\r\n

\r\n El proceso de pago de la operación NO se ha completado correctamente.

\r\n\r\n Si ha tenido algun problema durante el proceso vuelta a intertarlo mas tarde o ante cualquier duda o consulta póngase en contacto con nosotros.

\r\n\r\n Muchas gracias.

\r\n Codigo Error - {resultado.resultadoPago}

\r\n

}\r\n\r\n \r\n
;\r\n }\r\n else\r\n return \"Cargando\";\r\n }\n\n\r\n let resultado = loading ?

: renderResultadoPago(resultadopago);\r\n\n return (\n \n {resultado}\r\n \n );\n}\n\n","import React, { useState } from \"react\";\n\nimport { Route, Routes, useLocation } from \"react-router-dom\";\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// core components\nimport Card from \"@mui/material/Card\";\n\r\nimport { Helmet } from 'react-helmet'\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData\";\r\n\r\nexport default function CondicionesInfoPage({ ...props }) {\r\n\r\n const { literal } = props;\r\n\r\n const [loading, setLoading] = React.useState(true);\n const [info, setinfo] = React.useState(null);\r\n const [tipo, settipo] = React.useState(null);\r\n\r\n const { search } = useLocation();\n\n React.useEffect(() => {\n\n let url = search;\r\n let params = new URLSearchParams(url);\n let tipoinfo = \"\";\n\n if (params.has('tipo'))\n tipoinfo = params.get('tipo');\n\n settipo(tipoinfo);\n setLoading(false);\n\n getDataPage(tipo);\n\n }, [loading]);\r\n\r\n\r\n const getDataPage = (tipoinfo) => {\r\n\r\n if (tipoinfo != null && (tipoinfo == \"U\" || tipoinfo == \"C\" || tipoinfo == \"D\" || tipoinfo == \"P\")) {\r\n var jsonData = JSON.stringify(tipoinfo);\r\n\r\n fetch('api/Data/GetInfoPoliticaReservar', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\r\n\r\n }).then(response => response.json()).then(res =>\r\n {\r\n //Si se ha recibido un ok\r\n if (res != null)\r\n setinfo(res); \r\n\r\n }).catch(error => {\r\n });\r\n }\r\n }\n\n let rescargando = loading ?

: \"\";\n\n let nombre = \"\";\n let infoshow = \"\";\n\n if (tipo == \"C\")\n nombre = \"Politica de Cookies\";\n else if (tipo == \"U\")\n nombre = \"Condiciones de Uso\";\n else if (tipo == \"D\")\n nombre = \"Politica de Cancelacion\";\n else if (tipo == \"P\")\n nombre = \"Politica de Privacidad\";\n\n infoshow = info != null ? info.info : \"\"\n\n if (infoshow != null && infoshow != \"\")\n infoshow = infoshow.split(\"\\n\").map((i, key) => { return
{i}
; });\n\n return (\n
\n \n {!loading ? nombre : \"Condiciones\"}\n \n {rescargando}\n
\n

{!loading ? nombre : \"\"}

\n
\n \n
\n {infoshow}\n
\n
\n
);\n}\n\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useEffect } from \"react\";\n\n// react-router-dom components\nimport { useLocation } from \"react-router-dom\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController, setLayout } from \"../../../context\";\n\nfunction DashboardLayout({ children }) {\n const [controller, dispatch] = useMaterialUIController();\n const { miniSidenav } = controller;\n const { pathname } = useLocation();\n\n useEffect(() => {\n setLayout(dispatch, \"dashboard\");\n }, [pathname]);\n\n return (\n ({\n p: 3,\n position: \"relative\",\n\n [breakpoints.up(\"xl\")]: {\n marginLeft: miniSidenav ? pxToRem(120) : pxToRem(274),\n transition: transitions.create([\"margin-left\", \"margin-right\"], {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.standard,\n }),\n },\n })}\n >\n {children}\n \n );\n}\n\n// Typechecking props for the DashboardLayout\nDashboardLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default DashboardLayout;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// @mui material components\nimport Badge from \"@mui/material/Badge\";\nimport { styled } from \"@mui/material/styles\";\n\nexport default styled(Badge)(({ theme, ownerState }) => {\n const { palette, typography, borders, functions } = theme;\n const { color, circular, border, size, indicator, variant, container, children } = ownerState;\n\n const { white, dark, gradients, badgeColors } = palette;\n const { size: fontSize, fontWeightBold } = typography;\n const { borderRadius, borderWidth } = borders;\n const { pxToRem, linearGradient } = functions;\n\n // padding values\n const paddings = {\n xs: \"0.45em 0.775em\",\n sm: \"0.55em 0.9em\",\n md: \"0.65em 1em\",\n lg: \"0.85em 1.375em\",\n };\n\n // fontSize value\n const fontSizeValue = size === \"xs\" ? fontSize.xxs : fontSize.xs;\n\n // border value\n const borderValue = border ? `${borderWidth[3]} solid ${white.main}` : \"none\";\n\n // borderRadius value\n const borderRadiusValue = circular ? borderRadius.section : borderRadius.md;\n\n // styles for the badge with indicator={true}\n const indicatorStyles = (sizeProp) => {\n let widthValue = pxToRem(20);\n let heightValue = pxToRem(20);\n\n if (sizeProp === \"medium\") {\n widthValue = pxToRem(24);\n heightValue = pxToRem(24);\n } else if (sizeProp === \"large\") {\n widthValue = pxToRem(32);\n heightValue = pxToRem(32);\n }\n\n return {\n width: widthValue,\n height: heightValue,\n display: \"grid\",\n placeItems: \"center\",\n textAlign: \"center\",\n borderRadius: \"50%\",\n padding: 0,\n border: borderValue,\n };\n };\n\n // styles for the badge with variant=\"gradient\"\n const gradientStyles = (colorProp) => {\n const backgroundValue = gradients[colorProp]\n ? linearGradient(gradients[colorProp].main, gradients[colorProp].state)\n : linearGradient(gradients.info.main, gradients.info.state);\n const colorValue = colorProp === \"light\" ? dark.main : white.main;\n\n return {\n background: backgroundValue,\n color: colorValue,\n };\n };\n\n // styles for the badge with variant=\"contained\"\n const containedStyles = (colorProp) => {\n const backgroundValue = badgeColors[colorProp]\n ? badgeColors[colorProp].background\n : badgeColors.info.background;\n let colorValue = badgeColors[colorProp] ? badgeColors[colorProp].text : badgeColors.info.text;\n\n if (colorProp === \"light\") {\n colorValue = dark.main;\n }\n return {\n background: backgroundValue,\n color: colorValue,\n };\n };\n\n // styles for the badge with no children and container={false}\n const standAloneStyles = () => ({\n position: \"static\",\n marginLeft: pxToRem(8),\n transform: \"none\",\n fontSize: pxToRem(9),\n });\n\n // styles for the badge with container={true}\n const containerStyles = () => ({\n position: \"relative\",\n transform: \"none\",\n });\n\n return {\n \"& .MuiBadge-badge\": {\n height: \"auto\",\n padding: paddings[size] || paddings.xs,\n fontSize: fontSizeValue,\n fontWeight: fontWeightBold,\n textTransform: \"uppercase\",\n lineHeight: 1,\n textAlign: \"center\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"baseline\",\n border: borderValue,\n borderRadius: borderRadiusValue,\n ...(indicator && indicatorStyles(size)),\n ...(variant === \"gradient\" && gradientStyles(color)),\n ...(variant === \"contained\" && containedStyles(color)),\n ...(!children && !container && standAloneStyles(color)),\n ...(container && containerStyles(color)),\n },\n };\n});\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// Custom styles for the MDBadge\nimport MDBadgeRoot from \"./MDBadgeRoot\";\n\nconst MDBadge = forwardRef(\n ({ color, variant, size, circular, indicator, border, container, children, ...rest }, ref) => (\n \n {children}\n \n )\n);\n\n// Setting default values for the props of MDBadge\nMDBadge.defaultProps = {\n color: \"info\",\n variant: \"gradient\",\n size: \"sm\",\n circular: false,\n indicator: false,\n border: false,\n children: false,\n container: false,\n};\n\n// Typechecking props of the MDBadge\nMDBadge.propTypes = {\n color: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"light\",\n \"dark\",\n ]),\n variant: PropTypes.oneOf([\"gradient\", \"contained\"]),\n size: PropTypes.oneOf([\"xs\", \"sm\", \"md\", \"lg\"]),\n circular: PropTypes.bool,\n indicator: PropTypes.bool,\n border: PropTypes.bool,\n children: PropTypes.node,\n container: PropTypes.bool,\n};\n\nexport default MDBadge;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\n// react-router-dom components\nimport { Link } from \"react-router-dom\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\nimport React from \"react\";\n\n// @mui material components\nimport { Breadcrumbs as MuiBreadcrumbs } from \"@mui/material\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../MDBox\";\nimport MDTypography from \"../MDTypography\";\n\nfunction Breadcrumbs({ icon, title, route, light }) {\n const routes = route.slice(0, -1);\n\n return (\n \n (light ? white.main : grey[600]),\n },\n }}\n >\n \n \n {icon}\n \n \n {routes.map((el) => (\n \n \n {el}\n \n \n ))}\n \n {title.replace(\"-\", \" \")}\n \n \n \n {title.replace(\"-\", \" \")}\n \n \n );\n}\n\n// Setting default values for the props of Breadcrumbs\nBreadcrumbs.defaultProps = {\n light: false,\n};\n\n// Typechecking props for the Breadcrumbs\nBreadcrumbs.propTypes = {\n icon: PropTypes.node.isRequired,\n title: PropTypes.string.isRequired,\n route: PropTypes.oneOfType([PropTypes.string, PropTypes.array]).isRequired,\n light: PropTypes.bool,\n};\n\nexport default Breadcrumbs;\n","function menuItem(theme) {\n const { palette, borders, transitions } = theme;\n\n const { secondary, light, dark } = palette;\n const { borderRadius } = borders;\n\n return {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n color: secondary.main,\n borderRadius: borderRadius.md,\n transition: transitions.create(\"background-color\", {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.standard,\n }),\n\n \"& *\": {\n transition: \"color 100ms linear\",\n },\n\n \"&:not(:last-child)\": {\n mb: 1,\n },\n\n \"&:hover\": {\n backgroundColor: light.main,\n\n \"& *\": {\n color: dark.main,\n },\n },\n };\n}\n\nexport default menuItem;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { forwardRef } from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Link from \"@mui/material/Link\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\nimport MDTypography from \"../../MDTypography\";\n\n// custom styles for the NotificationItem\nimport menuItem from \"./styles\";\n\nconst NotificationItem = forwardRef(({ icon, title, ...rest }, ref) => (\n menuItem(theme)}>\n \n \n {icon}\n \n \n {title}\n \n \n \n));\n\n// Typechecking props for the NotificationItem\nNotificationItem.propTypes = {\n icon: PropTypes.node.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default NotificationItem;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nfunction navbar(theme, ownerState) {\n const { palette, boxShadows, functions, transitions, breakpoints, borders } = theme;\n const { transparentNavbar, absolute, light, darkMode } = ownerState;\n\n const { dark, white, text, transparent, background } = palette;\n const { navbarBoxShadow } = boxShadows;\n const { rgba, pxToRem } = functions;\n const { borderRadius } = borders;\n\n return {\n boxShadow: transparentNavbar || absolute ? \"none\" : navbarBoxShadow,\n backdropFilter: transparentNavbar || absolute ? \"none\" : `saturate(200%) blur(${pxToRem(30)})`,\n backgroundColor:\n transparentNavbar || absolute\n ? `${transparent.main} !important`\n : rgba(darkMode ? background.default : white.main, 0.8),\n\n color: () => {\n let color;\n\n if (light) {\n color = white.main;\n } else if (transparentNavbar) {\n color = text.main;\n } else {\n color = dark.main;\n }\n\n return color;\n },\n top: absolute ? 0 : pxToRem(12),\n minHeight: pxToRem(75),\n display: \"grid\",\n alignItems: \"center\",\n borderRadius: borderRadius.xl,\n paddingTop: pxToRem(8),\n paddingBottom: pxToRem(8),\n paddingRight: absolute ? pxToRem(8) : 0,\n paddingLeft: absolute ? pxToRem(16) : 0,\n\n \"& > *\": {\n transition: transitions.create(\"all\", {\n easing: transitions.easing.easeInOut,\n duration: transitions.duration.standard,\n }),\n },\n\n \"& .MuiToolbar-root\": {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n\n [breakpoints.up(\"sm\")]: {\n minHeight: \"auto\",\n padding: `${pxToRem(4)} ${pxToRem(16)}`,\n },\n },\n };\n}\n\nconst navbarContainer = ({ breakpoints }) => ({\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n pt: 0.5,\n pb: 0.5,\n\n [breakpoints.up(\"md\")]: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingTop: \"0\",\n paddingBottom: \"0\",\n },\n});\n\nconst navbarRow = ({ breakpoints }, { isMini }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n\n [breakpoints.up(\"md\")]: {\n justifyContent: isMini ? \"space-between\" : \"stretch\",\n width: isMini ? \"100%\" : \"max-content\",\n },\n\n [breakpoints.up(\"xl\")]: {\n justifyContent: \"stretch !important\",\n width: \"max-content !important\",\n },\n});\n\nconst navbarIconButton = ({ typography: { size }, breakpoints }) => ({\n px: 1,\n\n \"& .material-icons, .material-icons-round\": {\n fontSize: `${size.xl} !important`,\n },\n\n \"& .MuiTypography-root\": {\n display: \"none\",\n\n [breakpoints.up(\"sm\")]: {\n display: \"inline-block\",\n lineHeight: 1.2,\n ml: 0.5,\n },\n },\n});\n\nconst navbarDesktopMenu = ({ breakpoints }) => ({\n display: \"none !important\",\n cursor: \"pointer\",\n marginRight:1,\n\n [breakpoints.up(\"xl\")]: {\n display: \"inline-block !important\",\n },\n});\n\nconst navbarMobileMenu = ({ breakpoints }) => ({\n display: \"inline-block\",\n lineHeight: 0,\n\n [breakpoints.up(\"xl\")]: {\n display: \"none\",\n },\n});\n\nexport {\n navbar,\n navbarContainer,\n navbarRow,\n navbarIconButton,\n navbarDesktopMenu,\n navbarMobileMenu,\n};\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useState, useEffect } from \"react\";\n\n// react-router components\nimport { useLocation, Link } from \"react-router-dom\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @material-ui core components\nimport AppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Menu from \"@mui/material/Menu\";\nimport Icon from \"@mui/material/Icon\";\nimport Search from \"@mui/icons-material/Search\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\nimport MDInput from \"../../MDInput\";\nimport MDBadge from \"../../MDBadge\";\n\n// Material Dashboard 2 PRO React example components\nimport Breadcrumbs from \"../../Breadcrumbs\";\nimport NotificationItem from \"../../Items/NotificationItem\";\nimport Button from '../../Button.jsx';\n\nimport { TipoMensajeWeb, EstadoNotificacionWeb, Roles } from \"../../../othelloConstantes.jsx\";\n//import DialogNotificaciones from \"../../../view/Dialogs/DialogNotificaciones.js\";\n\n\n// Custom styles for DashboardNavbar\nimport {\n navbar,\n navbarContainer,\n navbarRow,\n navbarIconButton,\n navbarDesktopMenu,\n navbarMobileMenu,\n} from \"./styles\";\n\n// Material Dashboard 2 PRO React context\nimport {\n useMaterialUIController,\n setTransparentNavbar,\n setMiniSidenav,\n setOpenConfigurator,\n} from \"../../../context\";\n\r\n\r\n\nfunction DashboardNavbar({ absolute, light, isMini, rutasactual, oficina, idRol, loginmodoreserva, loginapps }) {\n const [navbarType, setNavbarType] = useState();\n const [controller, dispatch] = useMaterialUIController();\n const { miniSidenav, transparentNavbar, fixedNavbar, openConfigurator, darkMode } = controller;\n const [openMenu, setOpenMenu] = useState(false);\n const route = useLocation().pathname.split(\"/\").slice(1);\n\n const [notificaciones, setNotificaciones] = useState(null);\n const [id_msj_web, setIdMsjWeb] = useState(null);\n\n useEffect(() => {\n // Setting the navbar type\n if (fixedNavbar) {\n setNavbarType(\"sticky\");\n } else {\n setNavbarType(\"static\");\n }\n\n // A function that sets the transparent state of the navbar.\n function handleTransparentNavbar() {\n setTransparentNavbar(dispatch, (fixedNavbar && window.scrollY === 0) || !fixedNavbar);\n }\n\n /** \n The event listener that's calling the handleTransparentNavbar function when \n scrolling the window.\n */\n window.addEventListener(\"scroll\", handleTransparentNavbar);\n\n // Call the handleTransparentNavbar function to set the state with the initial value.\n handleTransparentNavbar();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener(\"scroll\", handleTransparentNavbar);\n }, [dispatch, fixedNavbar]);\n\n const handleMiniSidenav = () => setMiniSidenav(dispatch, !miniSidenav);\n const handleConfiguratorOpen = () => setOpenConfigurator(dispatch, !openConfigurator);\n\n const getNotificacionesResumido = () => {\n\n /* var jsonData = JSON.stringify({ tipo: [TipoMensajeWeb.Excepcion, TipoMensajeWeb.Aviso], modulo: \"\" });\n\n fetch('api/NotificacionesData/GetNotificacionesResumido', {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: jsonData\n\n }).then(response => response.json()).then(res => {\n setNotificaciones(res);\n }).catch(error => {\n\n });*/\n }\n\n const handleOpenMenu = (event) => {\n setOpenMenu(event.currentTarget);\n getNotificacionesResumido();\n }\n\n const handleCloseMenu = () => setOpenMenu(false);\n\n const handleCloseDialogNotificaciones = (result) => {\n setIdMsjWeb(0);\n getNotificacionesResumido();\n }\n\n const handleClickNotificacion = (result) => {\n if (result != null && result > 0) {\n setIdMsjWeb(result);\n }\n }\n\n // Render the notifications menu\n const renderMenu = () => {\n\n let final = \"\";\n\n final = {\n notificaciones != null && notificaciones.length > 0 ? notificaciones.map(x => addalert : \"\")} title={x.titulo} onClick={() => handleClickNotificacion(x.id_msj_web)} />) :\n //< MenuItem onClick={() => click(x.id_msj_web)} className={dropdownItem}>{x.estado != EstadoNotificacionWeb.Leido ? : \"\"}{x.titulo});\n email} title=\"Sin Notificaciones\" />\n }\n \n\n return final;\n }\n\n // Styles for the navbar icons\n const iconsStyle = ({ palette: { dark, white, text }, functions: { rgba } }) => ({\n color: () => {\n let colorValue = light || darkMode ? white.main : dark.main;\n\n if (transparentNavbar && !light) {\n colorValue = darkMode ? rgba(text.main, 0.6) : text.main;\n }\n\n return colorValue;\n },\n });\n\n let dialogmensaje = \"\";\n\n if (id_msj_web != null && id_msj_web > 0)\n dialogmensaje = \"\";// \n\n let numnoti = 0;\n\n if (notificaciones != null && notificaciones.length > 0)\n numnoti = notificaciones.filter(x => x.estado != EstadoNotificacionWeb.Leido).length;\n\n\n const getTituloRuta = (rutas) => {\n\r\n let routename = route[route.length - 1];\r\n let namefinal = \"\";\r\n\r\n rutas.forEach(x => {\r\n if (x.collapse != null && x.collapse.length > 0)\n {\n let res = getTituloRuta(x.collapse);\n\n if (res != null && res != \"\")\n namefinal = res;\n }\n //sino, compruebo lo actual\n else {\r\n\n let valores = x.key.toLowerCase().split('/');\n\n if (valores != null && valores.length > 1) {\n\n let namecompare = valores[route.length - 1];\n\n if (namecompare == routename)\n namefinal = x.name;\r\n }\r\n }\r\n });\r\n\r\n return namefinal;\r\n };\r\n\n\n const getTitleRutaShowed = () => {\n\n if (rutasactual != null && rutasactual.length > 0)\n {\n let valor = getTituloRuta(rutasactual);\n\n if (valor != null && valor != \"\")\n return valor;\n } \n\n return route[route.length - 1];\n }\n\n const getTitleOficina = () => {\n //(oficina.length >= 23 ? oficina.substring(0, 23) + \"...\" : oficina);\n var CurrentOfi = \"OFICINA: \" + oficina;\n\n if (window.innerWidth < 400)\n CurrentOfi = oficina.length > 7 ? oficina.substring(0, 7) + \"\" : oficina;\n else if (window.innerWidth < 500)\n CurrentOfi = oficina.length > 7 ? oficina.substring(0, 7) + \"...\" : oficina;\n else if (window.innerWidth < 650)\n CurrentOfi = oficina.length > 24 ? oficina.substring(0, 21) + \"...\" : oficina;\n\n return CurrentOfi;\n }\n\n let ruteexit = \"/auth/login\";\n\n \n if (loginmodoreserva)\n ruteexit = \"/authapps/loginreservas\";\n else if (loginapps)\n ruteexit = \"/authapps/loginapp\";\n\n return (\n navbar(theme, { transparentNavbar, absolute, light, darkMode })}\n >\n navbarContainer(theme)}>\n navbarRow(theme, { isMini })}> \n \n \n {miniSidenav ? \"menu_open\" : \"menu\"}\n \n \n \n {/*{idRol != Roles.UsuarioApp && !loginmodoreserva && !loginapps ? : \"\"}*/}\n {/*{idRol != Roles.UsuarioApp && !loginmodoreserva && !loginapps ? : \"\"}*/} \n {idRol != Roles.UsuarioApp && !loginmodoreserva && !loginapps ? : \"\"}\n {idRol != Roles.UsuarioApp && !loginmodoreserva && !loginapps ? : \"\"}\n \n {isMini ? null : (\n navbarRow(theme, { isMini })}>\n {/**/}\n {/* */}\n {/**/}\n \n \n \n logout\n \n \n \n \n {miniSidenav ? \"menu_open\" : \"menu\"}\n \n \n {/**/}\n {/* settings*/}\n {/**/}\n \n {numnoti > 0 ?\n \n notifications\n : notifications}\n \n {renderMenu()}\n {dialogmensaje}\n \n \n )}\n \n \n );\n}\n\n// Setting default values for the props of DashboardNavbar\nDashboardNavbar.defaultProps = {\n absolute: false,\n light: false,\n isMini: false,\n};\n\n// Typechecking props for the DashboardNavbar\nDashboardNavbar.propTypes = {\n absolute: PropTypes.bool,\n light: PropTypes.bool,\n isMini: PropTypes.bool,\n};\n\nexport default DashboardNavbar;\n","export default __webpack_public_path__ + \"static/media/logo_atm2x.b4784398.png\";","import React, { useState, useEffect } from \"react\";\n\n// react-router components\nimport { Route, Routes, useLocation /*, Navigate*/ } from \"react-router-dom\";\n//import { Router, Route, Switch, Redirect } from \"react-router-dom\";\n\n// @mui material components\nimport { ThemeProvider } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\n\n// Material Dashboard 2 PRO React example components\nimport Sidenav from \"../components/Sidenav\";\nimport Configurator from \"../components/Configurator\";\n\n// Material Dashboard 2 PRO React themes\nimport theme from \"../assets/theme\";\n\n// Material Dashboard 2 PRO React Dark Mode themes\n/*import themeDark from \"./assets/theme-dark\";*/\n\n// Material Dashboard 2 PRO React contexts\nimport { useMaterialUIController, setMiniSidenav, setOpenConfigurator, setOpenBarraVertical } from \"../context\";\n\nimport { useTranslation } from 'react-i18next';\n\n// core components\nimport Footer from \"../components/Footer\";\n\nimport { getCurrentRouteMain, getRoutesTienda } from \"../routes.js\";\n\nimport DashboardLayout from \"../components/LayoutContainers/DashboardLayout\";\nimport DashboardNavbar from \"../components/Navbars/DashboardNavbar\";\n\nimport logo from \"../assets/img/logo_atm2x.png\";\n\nimport { Helmet } from 'react-helmet'\n\nexport default function LayaoutAdmin() {\n const [controller, dispatch] = useMaterialUIController();\n const {\n miniSidenav,\n layout,\n openConfigurator,\n sidenavColor,\n transparentSidenav,\n whiteSidenav,\n darkMode,\n } = controller;\n\n const [onMouseEnter, setOnMouseEnter] = useState(false);\n const { pathname } = useLocation();\n\n // Open sidenav when mouse enter on mini sidenav\n const handleOnMouseEnter = () => {\n if (miniSidenav && !onMouseEnter) {\n setMiniSidenav(dispatch, false);\n setOnMouseEnter(true);\n }\n };\n\n // Close sidenav when mouse leave mini sidenav\n const handleOnMouseLeave = () => {\n if (onMouseEnter) {\n setMiniSidenav(dispatch, true);\n setOnMouseEnter(false);\n }\n };\n\n // Change the openConfigurator state\n const handleConfiguratorOpen = () => setOpenConfigurator(dispatch, !openConfigurator);\n \n // Setting page scroll to 0 when changing the route\n useEffect(() => {\n document.documentElement.scrollTop = 0;\n document.scrollingElement.scrollTop = 0;\n }, [pathname]);\n\n const { t } = useTranslation(); \n \n const [loading, setLoading] = useState(true);\n const [image, setImage] = useState(null);\n const [imageUsuario, setImageUsuario] = useState(null);\n const [nameUsuario, setNameUsuario] = useState(\"\");\n\n const [routes, setroutes] = useState([]);\n \n const [idoficinaselected, setidoficinaselected] = useState(-1);\n const [oficina, setoficina] = useState(\"\");\n const [idRol, setidRol] = useState(-1);\n const [idUser, setidUser] = useState(-1);\n const [areaAgenda, setareaAgenda] = useState(\"\");\n const [conincidencia, setconincidencia] = useState(false);\n const [conareaprivada, setconareaprivada] = useState(false);\n const [idoficinareserva, setidoficinareserva] = useState(0);\n const [loginmodoreserva, setloginmodoreserva] = useState(false);\n const [loginapps, setloginapps] = useState(false); \n const [tipooficina, settipooficina] = useState(0);\n const [idpoitienda, setidpoitienda] = useState(0);\n const [gestionreservas, setgestionreservas] = useState(0);\n const [gestionencuestas, setgestionencuestas] = useState(0);\n \n \n React.useEffect(() => {\n fetch('api/Data/GetCurrentUser')\n .then(response => response.json())\n .then(data =>\n {\n if (data != null)\n {\n if (data != null && oficina != data.nameoficina || nameUsuario != data.userconected || idoficinaselected != data.idoficinaselected)\n {\n setidoficinaselected(data.idoficinaselected);\n setNameUsuario(data.userconected);\n setoficina(data.nameoficina);\r\n setidRol(data.idRol);\r\n setidUser(data.idUser)\r\n setareaAgenda(data.areaAgenda); setconincidencia(data.conincidencia)\r\n setconareaprivada(data.conareaprivada);\r\n setidoficinareserva(data.idoficinareserva);\r\n setloginmodoreserva(data.loginmodoreserva);\r\n setloginapps(data.loginapps);\r\n settipooficina(data.tipooficina);\r\n setidpoitienda(data.idpoitienda);\r\n setgestionreservas(data.gestionreservas);\r\n setgestionencuestas(data.gestionencuestas);\n\n //Rutas \n getCurrentRoute(data.userconected, data.idRol, data.idUser, data.areaAgenda, data.conincidencia, data.conareaprivada, data.loginmodoreserva, data.loginapps, data.tipooficina, data.gestionreservas, data.gestionencuestas, true);\n }\n else if (data != null && idpoitienda != data.idpoitienda)\r\n {\r\n setidpoitienda(data.idpoitienda);\n getCurrentRoute(data.userconected, data.idRol, data.userconected, data.idUser, data.areaAgenda, data.conincidencia, data.conareaprivada, data.loginmodoreserva, data.loginapps, data.tipooficina, data.gestionreservas, data.gestionencuestas, true);\n }\n\n setLoading(false);\n }\n else\n window.location.assign('/auth/login');\n }).catch(error => {\n // window.location.assign('/auth/login');\n });\n\n }, [loading]);\n\n React.useEffect(() => {\n //Si no estamos cargando la pagina\n if (!loading && nameUsuario != \"\") {\n //Si hay aplicacion guardadas indicamos las rutas actuales\n /* if (aplicaciones != null && aplicaciones.length > 0)\n getCurrentRoute(idRol, idUser, areaAgenda, conincidencia, conareaprivada, loginmodoreserva, loginapps, tipooficina, gestionreservas, gestionencuestas); \n //sino, es que no tenemos los datos cargados, y por tanto inicializamos\n else\n setLoading(true);*/\n\n //Tratamos la sessiones\n getHaySessionUsuario();\n }\n\n });\n\n const getHaySessionUsuario = () => {\n\n fetch('api/Data/HaySessionUsuario')\n .then(response => response.json())\n .then(data => {\n if (data == null || (data != null && data < 0))\n window.location.assign('/auth/login');\n else if (data != null && data > 0 && data != idoficinaselected)\n setLoading(true);\n }).catch(error => {\n });\n }\n\n const getRoutes = (allRoutes) => {\n return allRoutes.map((route) => {\n //si es un item collapse hacemos route de los hijos\n if (route.collapse)\n return getRoutes(route.collapse);\n\n if (route.route) {\n\n /* return ej campo={prop.rtlName}\n render={(props) => }\n key={route.key}\n />\n */\n //return } key={route.key} />;\n //idRol={prop.idRol} idUser={prop.idUser} loginmodoreserva={prop.loginmodoreserva} loginapps={prop.loginapps} tipooficina={prop.tipooficina} idpoitienda={prop.idpoitienda} \n\n return ;\n }\n\n return null;\n });\n }\n\n \n const getCurrentRoute = (nameUser, idRol, idUser, areaAgenda, conincidencia, conareaprivada, loginmodoreserva, loginapps, tipooficina, gestionreservas, gestionencuestas, inicio) =>\n {\n //let idrutaactual = idroute;\n //let idrutanueva = idroute;\n let nuevaruta = routes;\n\n if (window.location.pathname.includes(\"/admin/dashtienda\") || window.location.pathname.includes(\"/admin/tienda\")) {\r\n nuevaruta = getRoutesTienda(t, nameUser, idRol, idUser, areaAgenda, conincidencia, conareaprivada, loginmodoreserva, loginapps, tipooficina, idpoitienda);\r\n }\r\n else {\r\n nuevaruta = getCurrentRouteMain(t, nameUser, idRol, idUser, areaAgenda, conincidencia, conareaprivada, loginmodoreserva, loginapps, tipooficina, gestionreservas, gestionencuestas);\r\n }\n\n if (inicio)\n {\n setroutes(nuevaruta);\n //setIdRoute(idrutanueva);\n }\n }\n\n const getBgImage = () =>\n {\n return logo;\n } \n\n return (\n \n \n \n {\"Aplicaciones Turisticas en Movilidad\"}\n \n {layout === \"dashboard\" && (\n <>\n \n \n )}\n {/*layout === \"vr\" && */}\n \n \n \n {getRoutes(routes)}\n \n \n
\n \n \n \n );\n}","/**\r\n All of the routes for the Material Dashboard 2 PRO React are added here,\r\n You can add a new route, customize the routes and delete the routes here.\r\n\r\n Once you add a new route on this file it will be visible automatically on\r\n the Sidenav.\r\n\r\n For adding a new route you can follow the existing routes in the routes array.\r\n 1. The `type` key with the `collapse` value is used for a route.\r\n 2. The `type` key with the `title` value is used for a title inside the Sidenav.\r\n 3. The `type` key with the `divider` value is used for a divider between Sidenav items.\r\n 4. The `name` key is used for the name of the route on the Sidenav.\r\n 5. The `key` key is used for the key of the route (It will help you with the key prop inside a loop).\r\n 6. The `icon` key is used for the icon of the route on the Sidenav, you have to add a node.\r\n 7. The `collapse` key is used for making a collapsible item on the Sidenav that contains other routes\r\n inside (nested routes), you need to pass the nested routes inside an array as a value for the `collapse` key.\r\n 8. The `route` key is used to store the route location which is used for the react router.\r\n 9. The `href` key is used to store the external links location.\r\n 10. The `title` key is only for the item with the type of `title` and its used for the title text on the Sidenav.\r\n 10. The `component` key is used to store the component of its route.*/\r\n\r\nimport React from \"react\";\n\r\nimport Oficina from \"./view/Oficina.js\";\r\nimport Oficinas from \"./view/Oficinas.js\";\r\nimport Regiones from \"./view/Regiones.js\";\r\nimport Idiomas from \"./view/Idiomas.js\";\r\nimport Areas from \"./view/Areas.js\";\r\nimport Incidencias from \"./view/Incidencias.js\";\r\nimport TramosReserva from \"./view/TramosReservas.js\";\r\nimport InstalacionReservas from \"./view/InstalacionReservas.js\"\r\nimport Encuestas from \"./view/Encuestas.js\";\r\nimport EncuestasEstadistica from \"./view/EncuestasEstadisticas.js\";\r\nimport EncuestasEstadisticasFiltradas from \"./view/EncuestasEstadisticasFiltradas.js\";\r\n\r\nimport Pois from \"./view/Pois.js\";\r\nimport Usuarios from \"./view/Usuarios.js\";\r\n\r\nimport Dashboard from \"./view/Dashboard.js\";\r\n\r\nimport DashTienda from \"./view/Tienda/DashTienda.js\";\r\nimport Categorias from \"./view/Tienda/Categorias.js\";\r\nimport Marcas from \"./view/Tienda/Marcas.js\";\r\nimport Pedidos from \"./view/Tienda/Pedidos.js\";\r\nimport Articulos from \"./view/Tienda/Articulos.js\";\r\n\r\nimport Importacion from \"./view/Importacion.js\";\r\nimport Perfil from \"./view/Perfil.js\";\r\nimport LoginPage from \"./view/LoginPage.jsx\";\r\nimport LoginPageApps from \"./view/LoginPageApps.jsx\";\r\nimport LoginPageReservas from \"./view/LoginPageReservas.jsx\";\r\nimport { Roles, TipoOficina, OpcionSiNo } from \"./othelloConstantes.jsx\";\r\nimport Peticiones from \"./view/Peticiones.js\";\r\nimport ReservaFinPasarela from \"./view/ReservaFinPasarela.js\";\r\nimport CondicionesInfoPage from \"./view/CondicionesInfoPage.js\";\r\n\r\nimport Icon from \"@mui/material/Icon\";\r\nimport MDAvatar from \"./components/MDAvatar\";\r\n\nimport imageUsuario from \"./assets/img/default-avatar.png\";\n\n\nexport function getCurrentRouteSinUso(literal, nameUser) {\n return [\n {\r\n type: \"collapse\",\r\n name: nameUser,\r\n key: nameUser,\r\n icon: ,\r\n collapse: [\r\n {\r\n type: \"estandar\",\r\n name: literal(\"_cerrasesion\"),\r\n key: \"logout\",\r\n layout: \"/auth\",\r\n route: \"auth/login\",\r\n }\n ]\r\n },\n { type: \"divider\", key: \"divider-0\" },\n {\r\n type: \"estandar\",\r\n path: \"/dashboard\",\r\n name: literal(\"_dashboard\"),\r\n icon: dashboard,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/dashboard\",\r\n key: \"dashboard\",\r\n hideinsidebar: false\r\n },\n {\r\n type: \"estandar\",\r\n path: \"/oficina\",\r\n name: literal(\"_oficina\"),\r\n icon: business_center,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/oficina\",\r\n key: \"oficina\",\r\n },\n {\r\n type: \"estandar\",\r\n path: \"/oficinas\",\r\n name: literal(\"_misoficinas\"),\r\n icon: business_center,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/oficinas\",\r\n key: \"oficinas\",\r\n hideinsidebar: true\r\n },\n {\r\n type: \"estandar\",\r\n path: \"/idiomas\",\r\n name: literal(\"_oficina\"),\r\n icon: language,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/idiomas\",\r\n key: \"idiomas\",\r\n },\n {\n type: \"estandar\",\r\n path: \"/regiones\",\r\n name: literal(\"_regiones\"),\r\n icon: landscape,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/regiones\",\r\n key: \"regiones\",\n },\n {\n type: \"estandar\",\r\n path: \"/areas\",\r\n name: literal(\"_oficina\"),\r\n icon: nearme,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/areas\",\r\n key: \"areas\",\n },\n {\n type: \"estandar\",\r\n path: \"/pois\",\r\n name: literal(\"_puntosinteres\"),\r\n icon: place,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/pois\",\r\n key: \"pois\",\n },\n {\n type: \"estandar\",\r\n path: \"/noticias\",\r\n name: literal(\"_noticias\"),\r\n icon: language,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/noticias\",\r\n key: \"noticias\",\n hideinsidebar: false\n },\n {\n type: \"estandar\",\r\n path: \"/incidencias\",\r\n name: literal(\"_incidencias\"),\r\n icon: howtovote,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/incidencias\",\r\n key: \"incidencias\",\n },\n {\n type: \"estandar\",\r\n path: \"/usuarios\",\r\n name: literal(\"_usuarios\"),\r\n icon: group,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/usuarios\",\r\n key: \"usuarios\",\n },\n //{\n // path: \"/archivos\",\n // name: \"Archivos\",\n // rtlname: \"\",\n // icon: SdStorage,\n // component: Informes,\n // layout: \"/admin\",\n //},\n {\n type: \"estandar\",\r\n path: \"/profile\",\r\n name: literal(\"_perfil\"),\r\n icon: person,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/profile\",\r\n key: \"profile\",\n hideinsidebar: true\n },\r\n {\r\n type: \"estandar\",\r\n path: \"/dashboard\",\r\n name: literal(\"_salir\"),\r\n icon: keyboard_return,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/dashboard\",\r\n key: \"dashboard\"\r\n }\n ];\n}\n\nexport function getCurrentRouteMain(literal, nameUser, idRol, idUser, areaAgenda, conincidencia, conareaprivada, loginmodoreserva, loginapps, tipooficina, gestionreservas, gestionencuestas)\n{\n var dashRoutes = [];\n \n //Si esto en modo usuario normal\n if (idRol != Roles.UsuarioApp && !loginmodoreserva && !loginapps)\n {\n dashRoutes.push({\r\n type: \"collapse\",\r\n name: nameUser,\r\n key: nameUser,\r\n icon: ,\r\n collapse: [\r\n {\n type: \"estandar\",\r\n path: \"/profile\",\r\n name: literal(\"_perfil\"),\r\n icon: person,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/profile\",\r\n key: \"profile\" \n },\r\n {\r\n type: \"estandar\",\r\n path: \"/importacion\",\r\n name: literal(\"_importacion\"),\r\n icon: person,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/importacion\",\r\n key: \"importacion\", \r\n },\r\n {\r\n type: \"estandar\",\r\n name: literal(\"_cerrasesion\"),\r\n key: \"login\",\r\n layout: \"/auth\",\r\n route: \"auth/login\",\r\n }\n ]\r\n }); \n }\n //sino, es que es de tipo usuario de app\n else\n {\n\n\n //SI estamos en modo login del modulo de reservas\n if (loginmodoreserva)\n {\n dashRoutes.push({\r\n type: \"collapse\",\r\n name: nameUser,\r\n key: nameUser,\r\n icon: ,\r\n collapse: [\r\n {\n type: \"estandar\",\r\n path: \"/profile\",\r\n name: literal(\"_perfil\"),\r\n icon: person,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/profile\",\r\n key: \"profile\"\n },\r\n {\r\n type: \"estandar\",\r\n name: literal(\"_cerrasesion\"),\r\n key: \"loginreservas\",\r\n layout: \"/authapps\",\r\n route: \"authapps/loginreservas\",\r\n }\n ]\r\n }); \r\n }\n else {\n\n dashRoutes.push({\r\n type: \"collapse\",\r\n name: nameUser,\r\n key: nameUser,\r\n icon: ,\r\n collapse: [\r\n {\n type: \"estandar\",\r\n path: \"/profile\",\r\n name: literal(\"_perfil\"),\r\n icon: person,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/profile\",\r\n key: \"profile\"\n },\r\n {\r\n type: \"estandar\",\r\n name: literal(\"_cerrasesion\"),\r\n key: \"loginapp\",\r\n layout: \"/authapps\",\r\n route: \"auth/loginapp\",\r\n }\n ]\r\n });\n }\n }\n\n dashRoutes.push({ type: \"divider\", key: \"divider-0\" });\n\n\n if (idRol != Roles.UsuarioApp && !loginmodoreserva && !loginapps)\n {\n dashRoutes.push(\n {\r\n type: \"estandar\",\r\n path: \"/dashboard\",\r\n name: literal(\"_dashboard\"),\r\n icon: dashboard,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/dashboard\",\r\n key: \"dashboard\",\r\n hideinsidebar: false\r\n });\n\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/oficinas\",\r\n name: literal(\"_misoficinas\"),\r\n icon: business_center,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/oficinas\",\r\n key: \"oficinas\", \n hideinsidebar: true, \n });\n }\n \n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/finreserva\",\r\n name: literal(\"_reserva\"),\r\n icon: person,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/finreserva\",\r\n key: \"finreserva\", \n hideinsidebar: true, \n });\n\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/condiciones\",\r\n name: literal(\"_dashboard\"),\r\n icon: dashboard,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/condiciones\",\r\n key: \"condiciones\", \n hideinsidebar: true \n });\n\n if (idRol == Roles.SuperUsuario && !loginmodoreserva && !loginapps)\n { \n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/oficina\",\r\n name: literal(tipooficina != null && tipooficina == 3 ? \"_plataforma\" : \"_oficina\"),\r\n icon: business_center,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/oficina\",\r\n key: \"oficina\" \n });\n\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/idiomas\",\r\n name: literal(\"_idiomas\"),\r\n icon: language,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/idiomas\",\r\n key: \"idiomas\" \n });\n\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/regiones\",\r\n name: literal(tipooficina != null && tipooficina == 3 ? \"_segmentos\" : \"_regiones\"),\r\n icon: landscape,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/regiones\",\r\n key: \"regiones\" \n });\n\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/areas\",\r\n name: literal(\"_areas\"),\r\n icon: near_me,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/areas\",\r\n key: \"areas\" \n });\n }\n\n if (idRol != Roles.UsuarioApp && !loginmodoreserva && !loginapps) {\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/pois\",\r\n name: literal(tipooficina != null && tipooficina == 3 ? \"_establecimientos\" : \"_puntosdeinteres\"),\r\n icon: place,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/pois\",\r\n key: \"pois\" \n });\n }\n\n if (idRol != Roles.UsuarioApp && areaAgenda != null && areaAgenda != \"\" && !loginmodoreserva && !loginapps) \n {\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/noticias\",\r\n name: areaAgenda,\r\n icon: forum,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/noticias\",\r\n key: \"noticias\", \n hideinsidebar: false \n });\n }\n\n if ((idRol == Roles.SuperUsuario || idRol == Roles.Administrador) && conincidencia && !loginmodoreserva && !loginapps) {\n\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/incidencias\",\r\n name: literal(\"_incidencias\"),\r\n icon: how_to_vote,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/incidencias\",\r\n key: \"incidencias\" \n });\n }\n\n if (((idRol == Roles.SuperUsuario || idRol == Roles.Administrador) /*&& tipooficina == TipoOficina.Venta*/) && !loginmodoreserva && !loginapps) {\n\n dashRoutes.push({\n type: \"estandar\",\r\n path: \"/peticiones\",\r\n name: literal(\"_peticiones\"),\r\n icon: import_contacts,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/peticiones\",\r\n key: \"peticiones\",\n layout: \"/admin\" \n });\n }\n\n if ((idRol == Roles.SuperUsuario || gestionreservas == 1) /*|| idRol == Roles.Administrador*/ && !loginmodoreserva && !loginapps)\n {\n dashRoutes.push(\n {\r\n type: \"collapse\",\r\n name: \"Reservas\",\r\n key: \"reservas\",\r\n icon: book,\r\n collapse: [\r\n {\r\n type: \"estandar\",\r\n path: \"/instalaciones\",\r\n name: literal(\"_instalaciones\"),\r\n icon: storemalldirectory,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/instalaciones\",\r\n key: \"instalaciones\" \r\n },\r\n {\r\n type: \"estandar\",\r\n path: \"/tramos\",\r\n name: literal(\"_tramos\"),\r\n icon: dns,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/tramos\",\r\n key: \"tramos\" \r\n },\r\n ],\n });\n }\n\n if ((idRol == Roles.SuperUsuario || gestionencuestas == 1) /*|| idRol == Roles.Administrador*/ && !loginmodoreserva && !loginapps) {\n\n\n dashRoutes.push(\n {\r\n type: \"collapse\",\r\n name: \"Encuestas\",\r\n key: \"encuestas\",\r\n icon: article,\r\n collapse: [\r\n {\r\n type: \"estandar\",\r\n path: \"/definicion\",\r\n name: literal(\"_encuestas\"),\r\n icon: assignment,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/definicion\",\r\n key: \"definicion\" \r\n },\r\n {\r\n type: \"estandar\",\r\n path: \"/estadisticas\",\r\n name: literal(\"_estadisticas\"),\r\n icon: equalizer,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/estadisticas\",\r\n key: \"estadisticas\" \r\n },\r\n {\r\n type: \"estandar\",\r\n path: \"/filtrosstats\",\r\n name: literal(\"_estadisticasfiltradas\"),\r\n icon: equalizer,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/filtrosstats\",\r\n key: \"filtrosstats\", \r\n }\r\n ],\n });\n }\n\n if ((idRol == Roles.SuperUsuario || (idRol == Roles.Administrador && conareaprivada)) && !loginmodoreserva && !loginapps) {\n dashRoutes.push(\n {\n type: \"estandar\",\r\n path: \"/usuarios\",\r\n name: literal(\"_usuarios\"),\r\n icon: group,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/usuarios\",\r\n key: \"usuarios\" \n });\n }\n\n return dashRoutes;\n}\n\nexport function getRoutesTienda(literal, nameUser, idRol, idUser, areaAgenda, conincidencia, conareaprivada, loginmodoreserva, loginapps, tipooficina, idpoitienda)\n{\n var dashRoutes = [];\n\n dashRoutes.push(\n {\r\n type: \"estandar\",\r\n path: \"/dashtienda\",\r\n name: literal(\"_dashboard\"),\r\n icon: dashboard,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/dashtienda\",\r\n key: \"dashtienda\",\r\n hideinsidebar: false\r\n });\n\n dashRoutes.push(\n {\r\n type: \"estandar\",\r\n path: \"/tienda/categorias\",\r\n name: literal(\"_categorias\"),\r\n icon: view_module,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/tienda/categorias\",\r\n key: \"categorias\",\r\n hideinsidebar: false\r\n });\n dashRoutes.push(\n {\r\n type: \"estandar\",\r\n path: \"/tienda/marcas\",\r\n name: literal(\"_marcas\"),\r\n icon: local_mall,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/tienda/marcas\",\r\n key: \"marcas\",\r\n hideinsidebar: false\r\n });\n dashRoutes.push(\n {\r\n type: \"estandar\",\r\n path: \"/tienda/articulos\",\r\n name: literal(\"_articulos\"),\r\n icon: local_grocery_store,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/tienda/articulos\",\r\n key: \"articulos\",\r\n hideinsidebar: false\r\n });\n\n dashRoutes.push(\n {\r\n type: \"estandar\",\r\n path: \"/tienda/pedidos\",\r\n name: literal(\"_pedidos\"),\r\n icon: receipt,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/tienda/pedidos\",\r\n key: \"pedidos\",\r\n hideinsidebar: false\r\n });\n\r\n dashRoutes.push({\r\n type: \"estandar\",\r\n path: \"/pois\",\r\n name: literal(\"_salir\"),\r\n icon: keyboard_return,\r\n component: ,\r\n layout: \"/admin\",\r\n route: \"/admin/pois\",\r\n key: \"pois\"\r\n });\n\n\n return dashRoutes;\n}","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\n\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Collapse from \"@mui/material/Collapse\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\nimport MDTypography from \"../../MDTypography\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController } from \"../../../context\";\n\nfunction DefaultNavbarLink({\n name,\n openHandler,\n closeHandler,\n children,\n collapseStatus,\n light,\n ...rest\n}) {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n return (\n <>\n \n \n {name}\n \n \n keyboard_arrow_down\n \n \n {children && (\n \n {children}\n \n )}\n \n );\n}\n\n// Setting default values for the props of DefaultNavbarLink\nDefaultNavbarLink.defaultProps = {\n openHandler: false,\n closeHandler: false,\n children: false,\n collapseStatus: false,\n light: false,\n};\n\n// Typechecking props for the DefaultNavbarLink\nDefaultNavbarLink.propTypes = {\n name: PropTypes.string.isRequired,\n openHandler: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n closeHandler: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n children: PropTypes.node,\n collapseStatus: PropTypes.bool,\n light: PropTypes.bool,\n};\n\nexport default DefaultNavbarLink;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\nimport MDTypography from \"../../MDTypography\";\n\nfunction DefaultNavbarCategory({ icon, title }) {\n return (\n \n \n {typeof icon === \"string\" ? {icon} : icon}\n \n \n {title}\n \n \n );\n}\n\n// Typechecking props for the DefaultNavbarCategory\nDefaultNavbarCategory.propTypes = {\n icon: PropTypes.node.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default DefaultNavbarCategory;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useState } from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Popper from \"@mui/material/Popper\";\nimport Grow from \"@mui/material/Grow\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController } from \"../../../context\";\n\nfunction DefaultNavbarMenu({ open, close, placement, children, style }) {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n const [anchor, setAnchor] = useState(false);\n\n const openMenu = () => setAnchor(open);\n const closeMenu = () => setAnchor(false);\n return (\n \n {({ TransitionProps }) => (\n \n darkMode ? background.card : white.main,\n }}\n >\n \n {children}\n \n \n )}\n \n );\n}\n\n// Setting default values for the props of DefaultNavbarMenu\nDefaultNavbarMenu.defaultProps = {\n placement: \"bottom-start\",\n style: {},\n};\n\n// Typechecking props for the DefaultNavbarMenu\nDefaultNavbarMenu.propTypes = {\n open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]).isRequired,\n close: PropTypes.oneOfType([PropTypes.func, PropTypes.bool, PropTypes.object]).isRequired,\n placement: PropTypes.string,\n children: PropTypes.node.isRequired,\n style: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n};\n\nexport default DefaultNavbarMenu;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { Fragment } from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// react-router components\nimport { Link } from \"react-router-dom\";\n\n// @mui material components\nimport Grid from \"@mui/material/Grid\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Divider from \"@mui/material/Divider\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../../MDBox\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbarCategory from \"../DefaultNavbarCategory\";\nimport DefaultNavbarMenu from \"../DefaultNavbarMenu\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController } from \"../../../../context\";\n\nfunction PagesMenu({ routes, open, close, mobileMenu }) {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n const renderPagesMenuRoute = (routeName) =>\n routes.map(\n ({ key, name, icon, collapse }) =>\n key === routeName && (\n \n \n {collapse.map(({ key: collapseKey, route, name: collapseName }) => (\n \n \n {collapseName}\n \n \n ))}\n \n )\n );\n\n const renderMenuContent = (\n \n darkMode ? background.card : white.main,\n }}\n >\n \n \n {renderPagesMenuRoute(\"dashboards\")}\n {renderPagesMenuRoute(\"users\")}\n \n \n \n \n \n \n {renderPagesMenuRoute(\"extra\")}\n {renderPagesMenuRoute(\"projects\")}\n \n \n \n \n \n \n \n {renderPagesMenuRoute(\"account\")}\n {renderPagesMenuRoute(\"profile\")}\n \n \n \n \n );\n\n return mobileMenu ? (\n renderMenuContent\n ) : (\n \n {renderMenuContent}\n \n );\n}\n\n// Setting default values for the props of PagesMenu\nPagesMenu.defaultProps = {\n mobileMenu: false,\n open: false,\n close: false,\n};\n\n// Typechecking props for the PagesMenu\nPagesMenu.propTypes = {\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n close: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n mobileMenu: PropTypes.bool,\n};\n\nexport default PagesMenu;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React, { useState } from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// react-router components\nimport { Link } from \"react-router-dom\";\n\n// @mui material components\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../../MDBox\";\nimport MDTypography from \"../../../MDTypography\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbarMenu from \"../DefaultNavbarMenu\";\n\nfunction AuthenticationMenu({ routes, open, close, mobileMenu })\n{\n const renderAuthenticationMenuRoute = (routeName) =>\n routes.map(({ key, name, icon, collapse }) => {\n let template;\n\n const [menu, setMenu] = false;//useState(false);\n const openMenu = ({ currentTarget }) => setMenu(currentTarget);\n const closeMenu = () => setMenu(false);\n\n if (key === routeName && !mobileMenu) {\n template = (\n \n {icon}\n {name}     \n chevron_right\n \n {collapse.map(({ key: collapseKey, name: collapseName, route }) => (\n \n {collapseName}\n \n ))}\n \n \n );\n } else if (key === routeName && mobileMenu) {\n template = (\n \n \n \n {icon}\n \n {name}\n \n {collapse.map(({ key: collapseKey, name: collapseName, route }) => (\n \n {collapseName}\n \n ))}\n \n );\n }\n\n return template;\n });\n\n const renderMenuContent = (\n \n {renderAuthenticationMenuRoute(\"sign-in\")}\n {renderAuthenticationMenuRoute(\"sign-up\")}\n {renderAuthenticationMenuRoute(\"reset-password\")}\n {renderAuthenticationMenuRoute(\"lock\")}\n {renderAuthenticationMenuRoute(\"2-step-verification\")}\n {renderAuthenticationMenuRoute(\"error\")}\n \n );\n\n return mobileMenu ? (\n renderMenuContent\n ) : (\n \n {renderMenuContent}\n \n );\n}\n\n// Setting default values for the props of AuthenticationMenu\nAuthenticationMenu.defaultProps = {\n mobileMenu: false,\n open: false,\n close: false,\n};\n\n// Typechecking props for the AuthenticationMenu\nAuthenticationMenu.propTypes = {\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n close: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n mobileMenu: PropTypes.bool,\n};\n\nexport default AuthenticationMenu;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// react-router components\nimport { Link } from \"react-router-dom\";\n\n// @mui material components\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../../MDBox\";\nimport MDTypography from \"../../../MDTypography\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbarMenu from \"../DefaultNavbarMenu\";\n\nfunction ApplicationsMenu({ routes, open, close, mobileMenu }) {\n const renderApplicationsMenuRoute = (routeName) =>\n routes.map(\n ({ key, collapse }) =>\n key === routeName &&\n collapse.map(({ key: collapseKey, route, name, icon }) => (\n \n \n {typeof icon === \"string\" ? {icon} : icon}\n \n {name}\n \n \n \n ))\n );\n\n return mobileMenu ? (\n {renderApplicationsMenuRoute(\"applications\")}\n ) : (\n \n {renderApplicationsMenuRoute(\"applications\")}\n \n );\n}\n\n// Setting default values for the props of ApplicationsMenu\nApplicationsMenu.defaultProps = {\n mobileMenu: false,\n open: false,\n close: false,\n};\n\n// Typechecking props for the ApplicationsMenu\nApplicationsMenu.propTypes = {\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n close: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n mobileMenu: PropTypes.bool,\n};\nexport default ApplicationsMenu;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { Fragment } from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// react-router components\nimport { Link } from \"react-router-dom\";\n\n// @mui material components\nimport Grid from \"@mui/material/Grid\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Divider from \"@mui/material/Divider\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../../MDBox\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbarCategory from \"../DefaultNavbarCategory\";\nimport DefaultNavbarMenu from \"../DefaultNavbarMenu\";\n\nfunction EcommerceMenu({ routes, open, close, mobileMenu }) {\n const renderEcommerceMenuRoute = (routeName) =>\n routes.map(\n ({ key, name, icon, collapse }) =>\n key === routeName && (\n \n \n {collapse.map(({ key: collapseKey, route, name: collapseName }) => (\n \n \n {collapseName}\n \n \n ))}\n \n )\n );\n\n const renderMenuContent = (\n \n \n \n {renderEcommerceMenuRoute(\"orders\")}\n {renderEcommerceMenuRoute(\"general\")}\n \n \n \n \n \n {renderEcommerceMenuRoute(\"products\")}\n \n \n \n );\n\n return mobileMenu ? (\n renderMenuContent\n ) : (\n \n {renderMenuContent}\n \n );\n}\n\n// Setting default values for the props of EcommerceMenu\nEcommerceMenu.defaultProps = {\n mobileMenu: false,\n open: false,\n close: false,\n};\n\n// Typechecking props for the EcommerceMenu\nEcommerceMenu.propTypes = {\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n close: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n mobileMenu: PropTypes.bool,\n};\nexport default EcommerceMenu;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Icon from \"@mui/material/Icon\";\nimport Link from \"@mui/material/Link\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../../MDBox\";\nimport MDTypography from \"../../../MDTypography\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbarMenu from \"../DefaultNavbarMenu\";\n\nfunction DocsMenu({ routes, open, close, mobileMenu }) {\n const renderDocsMenuRoute = (routeName) =>\n routes.map(\n ({ key, collapse }) =>\n key === routeName &&\n collapse.map(({ key: collapseKey, href, name, icon, description }) => (\n \n \n {typeof icon === \"string\" ? (\n {icon}\n ) : (\n {icon}\n )}\n \n \n {name}\n \n \n {description}\n \n \n \n \n ))\n );\n\n return mobileMenu ? (\n renderDocsMenuRoute(\"docs\")\n ) : (\n \n {renderDocsMenuRoute(\"docs\")}\n \n );\n}\n\n// Setting default values for the props of DocsMenu\nDocsMenu.defaultProps = {\n mobileMenu: false,\n open: false,\n close: false,\n};\n\n// Typechecking props for the DocsMenu\nDocsMenu.propTypes = {\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n close: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n mobileMenu: PropTypes.bool,\n};\n\nexport default DocsMenu;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useState } from \"react\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Menu from \"@mui/material/Menu\";\n// import Grid from \"@mui/material/Grid\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbarLink from \"./DefaultNavbarLink\";\n\n// DefaultNavbar dropdown menus\nimport PagesMenu from \"./Menus/PagesMenu\";\nimport AuthenticationMenu from \"./Menus/AuthenticationMenu\";\nimport ApplicationsMenu from \"./Menus/ApplicationsMenu\";\nimport EcommerceMenu from \"./Menus/EcommerceMenu\";\nimport DocsMenu from \"./Menus/DocsMenu\";\n\nfunction DefaultNavbarMobile({ routes, open, close }) {\n const { width } = open && open.getBoundingClientRect();\n const [openCollapse, setOpenCollapse] = useState(false);\n\n const handleSepOpenCollapse = (name) =>\n openCollapse === name ? setOpenCollapse(false) : setOpenCollapse(name);\n\n return (\n \n \n handleSepOpenCollapse(\"pages\")}\n >\n \n \n \n \n handleSepOpenCollapse(\"authentication\")}\n >\n \n \n \n \n handleSepOpenCollapse(\"applications\")}\n >\n \n \n \n \n handleSepOpenCollapse(\"ecommerce\")}\n >\n \n \n \n \n handleSepOpenCollapse(\"docs\")}\n >\n \n \n \n \n \n \n );\n}\n\n// Typechecking props for the DefaultNavbarMenu\nDefaultNavbarMobile.propTypes = {\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n open: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]).isRequired,\n close: PropTypes.oneOfType([PropTypes.func, PropTypes.bool, PropTypes.object]).isRequired,\n};\n\nexport default DefaultNavbarMobile;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useState, useEffect } from \"react\";\n\n// react-router components\nimport { Link } from \"react-router-dom\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Container from \"@mui/material/Container\";\nimport Icon from \"@mui/material/Icon\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\nimport MDTypography from \"../../MDTypography\";\nimport MDButton from \"../../MDButton\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbarLink from \"./DefaultNavbarLink\";\nimport DefaultNavbarMobile from \"./DefaultNavbarMobile\";\n\n// Material Dashboard 2 PRO React base styles\nimport breakpoints from \"../../../assets/theme/base/breakpoints\";\n\n// DefaultNavbar dropdown menus\nimport PagesMenu from \"./Menus/PagesMenu\";\nimport AuthenticationMenu from \"./Menus/AuthenticationMenu\";\nimport EcommerceMenu from \"./Menus/EcommerceMenu\";\nimport ApplicationsMenu from \"./Menus/ApplicationsMenu\";\nimport DocsMenu from \"./Menus/DocsMenu\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController } from \"../../../context\";\n\nfunction DefaultNavbar({ routes, transparent, light, action }) {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n const [pagesMenu, setPagesMenu] = useState(false);\n const [authenticationMenu, setAuthenticationMenu] = useState(false);\n const [ecommerceMenu, setEcommerceMenu] = useState(false);\n const [applicationsMenu, setApplicationsMenu] = useState(false);\n const [docsMenu, setDocsMenu] = useState(false);\n const [mobileNavbar, setMobileNavbar] = useState(false);\n const [mobileView, setMobileView] = useState(false);\n\n const openPagesMenu = ({ currentTarget }) => setPagesMenu(currentTarget);\n const closePagesMenu = () => setPagesMenu(false);\n const openAuthenticationMenu = ({ currentTarget }) => setAuthenticationMenu(currentTarget);\n const closeAuthenticationMenu = () => setAuthenticationMenu(false);\n const openEcommerceMenu = ({ currentTarget }) => setEcommerceMenu(currentTarget);\n const closeEcommerceMenu = () => setEcommerceMenu(false);\n const openApplicationsMenu = ({ currentTarget }) => setApplicationsMenu(currentTarget);\n const closeApplicationsMenu = () => setApplicationsMenu(false);\n const openDocsMenu = ({ currentTarget }) => setDocsMenu(currentTarget);\n const closeDocsMenu = () => setDocsMenu(false);\n const openMobileNavbar = ({ currentTarget }) => setMobileNavbar(currentTarget.parentNode);\n const closeMobileNavbar = () => setMobileNavbar(false);\n\n useEffect(() => {\n // A function that sets the display state for the DefaultNavbarMobile.\n function displayMobileNavbar() {\n if (window.innerWidth < breakpoints.values.lg) {\n setMobileView(true);\n setMobileNavbar(false);\n } else {\n setMobileView(false);\n setMobileNavbar(false);\n }\n }\n\n /** \n The event listener that's calling the displayMobileNavbar function when \n resizing the window.\n */\n window.addEventListener(\"resize\", displayMobileNavbar);\n\n // Call the displayMobileNavbar function to set the state with the initial value.\n displayMobileNavbar();\n\n // Remove event listener on cleanup\n return () => window.removeEventListener(\"resize\", displayMobileNavbar);\n }, []);\n\n return (\n \n ({\n backgroundColor: transparent\n ? transparentColor.main\n : rgba(darkMode ? background.sidenav : white.main, 0.8),\n backdropFilter: transparent ? \"none\" : `saturate(200%) blur(30px)`,\n })}\n >\n \n \n Material Dashboard PRO\n \n \n \n \n \n\n \n \n \n \n {action &&\n (action.type === \"internal\" ? (\n \n \n {action.label}\n \n \n ) : (\n \n \n {action.label}\n \n \n ))}\n \n {mobileNavbar ? \"close\" : \"menu\"}\n \n \n \n \n \n \n \n {mobileView && (\n \n )}\n \n );\n}\n\n// Setting default values for the props of DefaultNavbar\nDefaultNavbar.defaultProps = {\n transparent: false,\n light: false,\n action: false,\n};\n\n// Typechecking props for the DefaultNavbar\nDefaultNavbar.propTypes = {\n routes: PropTypes.arrayOf(PropTypes.object).isRequired,\n transparent: PropTypes.bool,\n light: PropTypes.bool,\n action: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n type: PropTypes.oneOf([\"external\", \"internal\"]).isRequired,\n route: PropTypes.string.isRequired,\n color: PropTypes.oneOf([\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"error\",\n \"dark\",\n \"light\",\n ]),\n label: PropTypes.string.isRequired,\n }),\n ]),\n};\n\nexport default DefaultNavbar;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\nimport { useEffect } from \"react\";\n\n// react-router-dom components\nimport { useLocation } from \"react-router-dom\";\n\n// prop-types is a library for typechecking of props.\nimport PropTypes from \"prop-types\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController, setLayout } from \"../../../context\";\n\nfunction PageLayout({ background, children }) {\n const [, dispatch] = useMaterialUIController();\n const { pathname } = useLocation();\n\n useEffect(() => {\n setLayout(dispatch, \"page\");\n }, [pathname]);\n\n return (\n \n {children}\n \n );\n}\n\n// Setting default values for the props for PageLayout\nPageLayout.defaultProps = {\n background: \"default\",\n};\n\n// Typechecking props for the PageLayout\nPageLayout.propTypes = {\n background: PropTypes.oneOf([\"white\", \"light\", \"default\"]),\n children: PropTypes.node.isRequired,\n};\n\nexport default PageLayout;\n","/**\n=========================================================\n* Material Dashboard 2 PRO React - v2.0.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n\nCoded by www.creative-tim.com\n\n =========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*/\nimport React from \"react\";\n\n// prop-types is a library for typechecking of props\nimport PropTypes from \"prop-types\";\n\n// @mui material components\nimport Grid from \"@mui/material/Grid\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../../MDBox\";\nimport MDTypography from \"../../MDTypography\";\n\n// Material Dashboard 2 PRO React example components\nimport DefaultNavbar from \"../../Navbars/DefaultNavbar\";\nimport PageLayout from \"../PageLayout\";\n\n// Material Dashboard 2 PRO React page layout routes\n//import pageRoutes from \"page.routes\";\n\n// Material Dashboard 2 PRO React context\nimport { useMaterialUIController } from \"../../../context\";\n\nfunction IllustrationLayout({ header, title, description, illustration, children, xlsize, heightauto }) {\n const [controller] = useMaterialUIController();\n const { darkMode } = controller;\n\n return (\n \n {/**/}\n \n darkMode ? background.default : white.main,\n }}\n >\n \n \n \n \n \n \n {!header ? (\n <>\n \n \n {title}\n \n \n \n {description}\n \n \n ) : (\n header\n )}\n \n {children}\n \n \n \n \n );\n}\n\n// Setting default values for the props of IllustrationLayout\nIllustrationLayout.defaultProps = {\n header: \"\",\n title: \"\",\n description: \"\",\n illustration: \"\",\n};\n\n// Typechecking props for the IllustrationLayout\nIllustrationLayout.propTypes = {\n header: PropTypes.node,\n title: PropTypes.string,\n description: PropTypes.string,\n children: PropTypes.node.isRequired,\n illustration: PropTypes.string,\n};\n\nexport default IllustrationLayout;\n","import React from 'react';\r\n\r\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n\r\nimport CookieConsent from \"react-cookie-consent\";\r\n\nexport default function OthelloCookieConsent({ ...props }) {\r\n\r\n const { t } = useTranslation();\r\n\r\n const { } = props;\r\n\r\n \r\n return (\n {t(\"_consentimientocookies\")}\n \r\n );\r\n}\n\nOthelloCookieConsent.propTypes = {\n \n};\n","import React from \"react\";\nimport MDBox from \"../components/MDBox\";\nimport MDTypography from \"../components/MDTypography\";\r\n\n\nexport default function ErrorPage() { \n return (\n \n
\n \n \n 404\n \n \n \n \n age not found :(\n \n \n \n \n Ooooups! Looks like you got lost.\n \n \n
\n
\n );\n}\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\r\n\nimport { useTranslation } from 'react-i18next';\n\nimport OthelloVersionWeb from \"../componentsothello/OthelloVersionWeb.jsx\";\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\nimport MDTypography from \"../components/MDTypography\";\nimport MDInput from \"../components/MDInput\";\nimport MDButton from \"../components/MDButton\";\n\nimport Link from \"@mui/material/Link\";\n\nimport Button from \"../components/Button.jsx\";\n\nimport { CircularProgress } from \"@mui/material\";\n\nimport Grid from \"@mui/material/Grid\";\n\n\nexport default function RememberPass({ ...props }) {\n // const { classes, t } = this.props;\n const { t } = useTranslation();\n\n const navigate = useNavigate();\n\n const [submitted, setsubmitted] = useState(false);\n const [error, seterror] = useState(0); \n const [modoapps, setmodoapps] = useState(window.location.pathname.indexOf(\"/authapps\") !== -1)\n\n const [loading, setLoading] = useState(false);\n\n const handleClick = (event) =>\n {\n event.preventDefault();\r\n\n let formulario = document.getElementById('formlogin');\r\n let data = new FormData(formulario);\n\r\n setLoading(true);\r\n\r\n fetch('api/Data/RecordarPassUsuario', {\n method: 'POST',\n body: data,\n\n }).then(response => response.json()).then(res => {\r\n //Si hubo error\r\n if (!res)\r\n {\r\n setLoading(false); \r\n setsubmitted(true);\r\n seterror(1);\r\n }\r\n else {\r\n if (modoapps)\r\n window.location.assign('/authapps/loginapp');\r\n //navigate('/authapps/loginapp');\r\n //this.props.history.push('/authapps/loginapp');\r\n else\r\n window.location.assign('/auth/login');\r\n //navigate('auth/login');\r\n //this.props.history.push('/auth/login');\r\n //window.location.assign('/admin/dashboard');\r\n }\r\n }).catch(error => {\r\n setsubmitted(true);\r\n seterror(2);\r\n });\r\n }\n\n const handleCancekClick = () =>\n {\n if (modoapps)\r\n window.location.assign('/authapps/loginapp'); \r\n else\r\n window.location.assign('/auth/login');\n \n //props.history.push('/auth/login');\n }\n\n return (\n
\n \n \n \n \n \n \n \n handleCancekClick(e)} fullWidth>\n Cancelar\n \n \n \n \n \n handleClick(e)} fullWidth>\n Entrar\n \n \n \n \n {loading ?
: \"\"} \n \n \n Alguna duda, contacte con nosotros?{\" \"}\n \n \n Accede a nuestra web\n \n \n \n \n \n \n \n
\n \n );\n}\n","/**\n All of the routes for the Material Dashboard 2 PRO React are added here,\n You can add a new route, customize the routes and delete the routes here.\n\n Once you add a new route on this file it will be visible automatically on\n the Sidenav.\n\n For adding a new route you can follow the existing routes in the routes array.\n 1. The `type` key with the `collapse` value is used for a route.\n 2. The `type` key with the `title` value is used for a title inside the Sidenav.\n 3. The `type` key with the `divider` value is used for a divider between Sidenav items.\n 4. The `name` key is used for the name of the route on the Sidenav.\n 5. The `key` key is used for the key of the route (It will help you with the key prop inside a loop).\n 6. The `icon` key is used for the icon of the route on the Sidenav, you have to add a node.\n 7. The `collapse` key is used for making a collapsible item on the Sidenav that contains other routes\n inside (nested routes), you need to pass the nested routes inside an array as a value for the `collapse` key.\n 8. The `route` key is used to store the route location which is used for the react router.\n 9. The `href` key is used to store the external links location.\n 10. The `title` key is only for the item with the type of `title` and its used for the title text on the Sidenav.\n 10. The `component` key is used to store the component of its route.\n*/\r\nimport React from \"react\";\r\nimport ErrorPage from \"./view/ErrorPage.js\";\r\n\r\nimport LoginPage from \"./view/LoginPage.jsx\";\r\nimport RememberPass from \"./view/RememberPass.js\";\r\n\r\n\r\n\nvar dashRoutesAuth = [\n {\n path: \"/rememberpass\",\n name: \"ATMovilidad Mobile Apps recuperacion password\",\n component: ,\n layout: \"/auth\",\n route: \"/auth/rememberpass\",\n key: \"rememberpass\",\n },\n {\n path: \"/login\",\n name: \"Bienvenido a ATMovilidad Mobile Apps\",\n component: ,\n layout: \"/auth\",\n route: \"/auth/login\",\n key: \"login\",\n },\n {\n path: \"/lockscreen\",\n name: \"Lock Screen\",\n component: ,\n layout: \"/auth\",\n route: \"/auth/lockscreen\",\n key: \"lockscreen\",\n },\n {\n type: \"collapse\",\n noCollapse: true,\n path: \"/error\",\n name: \"Error Pagina\",\n component: ,\n layout: \"/auth\",\n route: \"/auth/error\",\n key: \"error\",\n } \n];\n\nexport default dashRoutesAuth;\n","export default __webpack_public_path__ + \"static/media/illustration-reset.c5f36c0c.jpg\";","export default __webpack_public_path__ + \"static/media/register.2dd199e9.jpeg\";","export default __webpack_public_path__ + \"static/media/viaje.5995eb02.jpg\";","export default __webpack_public_path__ + \"static/media/lock.9a41f1d5.jpeg\";","export default __webpack_public_path__ + \"static/media/clint-mckoy.b76340fe.jpg\";","import React, { useState, useEffect } from \"react\";\n\n// react-router components\nimport { Route, Routes } from \"react-router-dom\";\n\nimport { Helmet } from 'react-helmet'\n\n\n// core components\nimport Footer from \"../components/Footer\";\n\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\n\nimport IllustrationLayout from \"../components/LayoutContainers/IllustrationLayout\";\nimport OthelloCookieConsent from \"../componentsothello/OthelloCookieConsent\";\n\nimport routes from \"../routesAuth.js\";\n\nimport bgImage from \"../assets/images/illustrations/illustration-reset.jpg\";\nimport register from \"../assets/img/register.jpeg\";\nimport login from \"../assets/img/viaje.jpg\";\nimport lock from \"../assets/img/lock.jpeg\";\nimport error from \"../assets/img/clint-mckoy.jpg\";\nimport resetpass from \"../assets/img/register.jpeg\";\n\nfunction LayoutAuth() {\n\n const [rememberMe, setRememberMe] = useState(false);\n\n const handleSetRememberMe = () => setRememberMe(!rememberMe);\n\n const getRoutes = (allRoutes) => {\n return allRoutes.map((route) => {\n //si es un item collapse hacemos route de los hijos\n if (route.collapse)\n return getRoutes(route.collapse);\n\n if (route.route) {\n return ;\n }\n\n return null;\n });\n }\n\n const getBgImage = () => {\n if (window.location.pathname.indexOf(\"/auth/resetpass\") !== -1)\n return resetpass;\n else if (window.location.pathname.indexOf(\"/auth/login\") !== -1)\n return login;\n else if (window.location.pathname.indexOf(\"/auth/lockscreen\") !== -1)\n return lock;\n else if (window.location.pathname.indexOf(\"/auth/error\") !== -1)\n return error;\n else if (window.location.pathname.indexOf(\"/auth/peticiones\") !== -1)\n return login;\n else\n return bgImage;\n };\n\n\n const getTitle = () => {\n if (window.location.pathname.indexOf(\"/auth/rememberpass\") !== -1)\n return \"Restablecer Password\";\n else if (window.location.pathname.indexOf(\"/auth/login\") !== -1)\n return \"Login Usuario\";\n else if (window.location.pathname.indexOf(\"/auth/lockscreen\") !== -1)\n return \"Lock Screen\";\n else if (window.location.pathname.indexOf(\"/auth/error\") !== -1)\n return \"\";\n else if (window.location.pathname.indexOf(\"/auth/peticiones\") !== -1)\n return \"Login Usuario\";\n else\n return \"\";\n };\n\n\n const getDescripcion = () => {\n if (window.location.pathname.indexOf(\"/auth/rememberpass\") !== -1)\n return \"Introduzca la direccion de e-mail registrada en el sistema.\";\n else if (window.location.pathname.indexOf(\"/auth/login\") !== -1)\n return \"Introduce tus credenciales para acceder.\";\n else if (window.location.pathname.indexOf(\"/auth/lockscreen\") !== -1)\n return \"Page not found - Ooooups! Looks like you got lost.\";\n else if (window.location.pathname.indexOf(\"/auth/error\") !== -1)\n return \"\";\n else if (window.location.pathname.indexOf(\"/auth/peticiones\") !== -1)\n return \"Introduce tus credenciales para acceder.\";\n else\n return \"\";\n };\n\n let image = getBgImage();\n\n return (\n \n \n Aplicaciones Turisticas en Movilidad\n \n \n {getRoutes(routes)}\n \n \n
\n \n \n \n );\n}\n\nexport default LayoutAuth;\n\n","import React, { useState, useEffect } from \"react\";\n\nimport Link from \"@mui/material/Link\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { useTranslation } from 'react-i18next';\n\nimport MDBox from \"../components/MDBox\";\nimport MDTypography from \"../components/MDTypography\";\nimport MDInput from \"../components/MDInput\";\nimport MDButton from \"../components/MDButton\";\n\nimport OthelloCheckBox from \"../componentsothello/OthelloCheckBox.jsx\";\nimport OthelloVersionWeb from \"../componentsothello/OthelloVersionWeb.jsx\";\n\nimport { CircularProgress } from \"@mui/material\";\n\nexport default function RegisterPage({ ...props }) {\n // const { classes, t } = this.props;\n const { t } = useTranslation();\n\n const navigate = useNavigate();\n\n const [submitted, setsubmitted] = useState(false);\n const [error, seterror] = useState(0);\n const [modoapps, setmodoapps] = useState(window.location.pathname.indexOf(\"/authapps\") !== -1)\n const [checked, setchecked] = useState([]);\n\n const [loading, setLoading] = useState(false);\n\n const handleToggle = (value) => {\n\n const currentIndex = checked.indexOf(value);\n const newChecked = [...checked];\n\n if (currentIndex === -1) {\n newChecked.push(value);\n } else {\n newChecked.splice(currentIndex, 1);\n }\n\n setchecked(newChecked);\n }\n\n const handleClick = (event) => {\n event.preventDefault();\n\n if (checked != null && checked.length > 0 && checked[0] == 1) {\n //window.location.assign('/admin/dashboard');\n\n //const data = new FormData(event.target);\r\n let formulario = document.getElementById('formregister');\n var data = new FormData(formulario);\r\n\r\n setLoading(true);\r\n\r\n fetch('api/Data/GrabarUsuarioApp', {\n method: 'POST',\n body: data,\n\n }).then(response => response.json()).then(res => {\r\n //Si hubo error\r\n if (!res) {\r\n setsubmitted(true);\r\n seterror(1);\r\n setLoading(false);\r\n }\r\n else {\r\n if (window.location.href.includes(\"reservas.ovtspain.es\"))\r\n window.location.assign('/authapps/loginreservas');\r\n else\r\n window.location.assign('/authapps/loginapp');\r\n //navigate('/authapps/loginapp');\r\n //window.location.assign('/admin/dashboard');\r\n }\r\n }).catch(error => {\r\n setsubmitted(true);\r\n seterror(2);\r\n });\r\n }\r\n else\r\n seterror(3);\r\n }\n\n const handleCancekClick = () => {\n window.location.assign('/auth/auth');\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n handleToggle(1)} /> \n {loading ?
: \"\"}\n \n handleClick(e)} fullWidth>\n Crear Cuenta\n \n \n {error == 1 ?

Los datos introducidos no son válidos

: \"\"}\n {error == 3 ?

Debe aceptar la condiciones y politica de privacidad

: \"\"}\n \n \n Alguna duda, contacte con nosotros?{\" \"}\n \n \n Accede a nuestra web\n \n \n \n \n \n \n \n \n );\n}\n","/**\n All of the routes for the Material Dashboard 2 PRO React are added here,\n You can add a new route, customize the routes and delete the routes here.\n\n Once you add a new route on this file it will be visible automatically on\n the Sidenav.\n\n For adding a new route you can follow the existing routes in the routes array.\n 1. The `type` key with the `collapse` value is used for a route.\n 2. The `type` key with the `title` value is used for a title inside the Sidenav.\n 3. The `type` key with the `divider` value is used for a divider between Sidenav items.\n 4. The `name` key is used for the name of the route on the Sidenav.\n 5. The `key` key is used for the key of the route (It will help you with the key prop inside a loop).\n 6. The `icon` key is used for the icon of the route on the Sidenav, you have to add a node.\n 7. The `collapse` key is used for making a collapsible item on the Sidenav that contains other routes\n inside (nested routes), you need to pass the nested routes inside an array as a value for the `collapse` key.\n 8. The `route` key is used to store the route location which is used for the react router.\n 9. The `href` key is used to store the external links location.\n 10. The `title` key is only for the item with the type of `title` and its used for the title text on the Sidenav.\n 10. The `component` key is used to store the component of its route.\n*/\r\nimport React from \"react\";\r\nimport ErrorPage from \"./view/ErrorPage.js\";\r\n\r\nimport LoginPageApps from \"./view/LoginPageApps.jsx\";\r\nimport LoginPageReservas from \"./view/LoginPageReservas.jsx\";\r\n\r\nimport RegisterPage from \"./view/RegisterPage.js\";\r\nimport RememberPass from \"./view/RememberPass.js\";\r\n\nvar dashRoutesAuth = [\n {\n path: \"/rememberpass\",\n name: \"ATMovilidad Mobile Apps recuperacion password\",\n component: ,\n layout: \"/authapps\",\n route: \"/authapps/rememberpass\",\n key: \"rememberpass\",\n },\n {\n path: \"/register\",\n name: \"ATMovilidad Mobile Apps Cuentas\",\n component: ,\n layout: \"/authapps\",\n route: \"/authapps/register\",\n key: \"register\",\n },\n {\n path: \"/loginapp\",\n name: \"Bienvenido a ATMovilidad Mobile Apps\",\n component: ,\n layout: \"/authapps\",\n route: \"/authapps/loginapp\",\n key: \"loginapp\",\n },\n {\n path: \"/loginreservas\",\n name: \"Bienvenido al Portal de Reservas\",\n component: ,\n layout: \"/authapps\",\n route: \"/authapps/loginreservas\",\n key: \"loginreservas\",\n }, \n {\n type: \"collapse\",\n noCollapse: true,\n path: \"/error\",\n name: \"Error Pagina\",\n component: ,\n layout: \"/authapps\",\n route: \"/authapps/error\",\n key: \"error\",\n }\n];\n\nexport default dashRoutesAuth;\n","export default __webpack_public_path__ + \"static/media/login.c8a507cf.jpeg\";","export default __webpack_public_path__ + \"static/media/reserva3.2a58e42a.jpg\";","import React, { useState, useEffect } from \"react\";\n\n// react-router components\nimport { Route, Routes } from \"react-router-dom\";\n\nimport { Helmet } from 'react-helmet'\n\n\n// core components\nimport Footer from \"../components/Footer\";\n\n\n// Material Dashboard 2 PRO React components\nimport MDBox from \"../components/MDBox\";\n\nimport IllustrationLayout from \"../components/LayoutContainers/IllustrationLayout\";\nimport OthelloCookieConsent from \"../componentsothello/OthelloCookieConsent\";\n\nimport routes from \"../routesAuthApps.js\";\n\nimport bgImage from \"../assets/images/illustrations/illustration-reset.jpg\";\nimport register from \"../assets/img/register.jpeg\";\nimport login from \"../assets/img/login.jpeg\";\nimport lock from \"../assets/img/lock.jpeg\";\nimport error from \"../assets/img/clint-mckoy.jpg\";\nimport resetpass from \"../assets/img/register.jpeg\";\nimport reservas from \"../assets/img/reserva3.jpg\";\n\n\nfunction LayoutAuthApps() {\n\n const [rememberMe, setRememberMe] = useState(false);\n\n const handleSetRememberMe = () => setRememberMe(!rememberMe);\n\n const getRoutes = (allRoutes) => {\n return allRoutes.map((route) => {\n //si es un item collapse hacemos route de los hijos\n if (route.collapse)\n return getRoutes(route.collapse);\n\n if (route.route) {\n return ;\n }\n\n return null;\n });\n }\n\n const getTitle = () => {\n if (window.location.pathname.indexOf(\"/authapps/register\") !== -1)\n return \"Crear Cuenta\";\n else if (window.location.pathname.indexOf(\"/authapps/rememberpass\") !== -1)\n return \"Restablecer Password\";\n else if (window.location.pathname.indexOf(\"/authapps/login\") !== -1)\n return \"Login Usuario\";\n else if (window.location.pathname.indexOf(\"/authapps/lockscreen\") !== -1)\n return \"Lock Screen\";\n else if (window.location.pathname.indexOf(\"/authapps/error\") !== -1)\n return \"\";\n else if (window.location.pathname.indexOf(\"/authapps/peticiones\") !== -1)\n return \"Login Usuario\";\n else\n return \"\";\n };\n\n const getDescripcion = () =>\n {\n if (window.location.pathname.indexOf(\"/authapps/register\") !== -1)\n return \"Introduzca sus datos para realizar el registro.\";\n else if (window.location.pathname.indexOf(\"/authapps/rememberpass\") !== -1)\n return \"Introduzca la direccion de e-mail registrada en el sistema.\";\n else if (window.location.pathname.indexOf(\"/authapps/login\") !== -1)\n return \"Introduce tus credenciales para acceder.\";\n else if (window.location.pathname.indexOf(\"/authapps/lockscreen\") !== -1)\n return \"Page not found - Ooooups! Looks like you got lost.\";\n else if (window.location.pathname.indexOf(\"/authapps/error\") !== -1)\n return \"\";\n else if (window.location.pathname.indexOf(\"/authapps/peticiones\") !== -1)\n return \"Introduce tus credenciales para acceder.\";\n else\n return \"\";\n };\n\n const getBgImage = () => {\n\n if (window.location.pathname.indexOf(\"/authapps/register\") !== -1)\n return register;\n else if (window.location.pathname.indexOf(\"/authapps/rememberpass\") !== -1)\n return register;\n else if (window.location.pathname.indexOf(\"/authapps/loginapp\") !== -1)\n return login;\n else if (window.location.pathname.indexOf(\"/authapps/loginreservas\") !== -1)\n return reservas;\n else if (window.location.pathname.indexOf(\"/authapps/error\") !== -1)\n return error;\n }; \n \n\n let image = getBgImage();\n\n return (\n \n \n Bienvenido a ATMovilidad Mobile Apps\n \n \n {getRoutes(routes)}\n \n \n
\n \n \n \n );\n}\n\nexport default LayoutAuthApps;","import React from 'react';\r\n\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\n\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport Popper from \"@mui/material/Popper\";\r\n\r\nimport Checkbox from '@mui/material/Checkbox';\r\n\r\nimport CheckBoxIcon from '@mui/icons-material/Check';\r\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\r\nimport MDBox from '../components/MDBox';\r\n\r\nconst icon = ;\r\nconst checkedIcon = ;\r\n\r\nconst styles = (theme) => ({\r\n popper: {\r\n maxWidth: \"fit-content\"\r\n }\r\n});\r\n\r\n\r\n\r\nconst useStyles = makeStyles({\r\n option:\r\n { \r\n fontSize: 12, \r\n marginTop: 2.2,\r\n '& label':\r\n { \r\n fontSize: 12,\r\n fontWeight: \"400\",\r\n color: '#aaaaaa'\r\n }, \r\n '& div':\r\n { \r\n }, \r\n '& input': {\r\n fontSize: 12,\r\n fontWeight: \"400\", \r\n color: '#000000', \r\n marginBottom: 4, \r\n },\r\n '& > span': {\r\n marginRight: 5, \r\n fontSize: 18,\r\n color: '#d2d2d2', \r\n } \r\n }\r\n});\r\n\r\nexport default function OthelloEditComboBox({ ...props })\r\n{\r\n const classes = useStyles();\r\n\r\n const { t } = useTranslation();\r\n\r\n const {\r\n othellocolumnas,\r\n multiple\r\n } = props;\r\n\r\n const [indexcampoBusqueda, setIndexCampoBusqueda] = React.useState(0);\r\n\r\n const [valueselected, setValueSelected] = React.useState(null);\r\n const [visibefield, setVisibeField] = React.useState(false); \r\n const [itemsEditCombo, setItemsEditCombo] = React.useState(null);\r\n const [evento, setEvento] = React.useState({ event: false });\r\n\r\n React.useEffect(() => {\r\n\r\n //Si se ha modificado la lista del combo\r\n if (ItemsComboDintintos())\r\n {\r\n //si la nueva lista tiene valores\r\n if (props.items != null && props.items.length > 0)\r\n {\r\n //modifico la lista de items\r\n setItemsEditCombo(props.items);\r\n\r\n //actualizo el valor seleccionado\r\n ActualizarValueSelected(); \r\n }\r\n //sino, es que la lista es vacia o nula, por tanto, si habia un valor seleccionado debo limpiar\r\n else if (valueselected != null)\r\n setValueSelected(null);\r\n }\r\n //si no se ha generado ningun evento entonces tratamos el mediante el currentvalue\r\n else if (!evento.event && ((valueselected == null && props.currentvalue != null) || (valueselected != null && props.currentvalue == null) ||\r\n (valueselected != null && props.currentvalue != null) && valueselected.valor != props.currentvalue)) {\r\n ActualizarValueSelected(); \r\n } \r\n });\r\n\r\n function ActualizarValueSelected() {\r\n\r\n if (props.multiple) {\r\n let res = [];\r\n\r\n let opc = props.currentvalue.split(',');\r\n\r\n if (opc != null && opc.length > 0) {\r\n opc.map(x => {\r\n let item = props.items.find(y => y.valor == x);\r\n\r\n if (item != null)\r\n res.push(item);\r\n })\r\n }\r\n\r\n if (res != [])\r\n setValueSelected(res);\r\n }\r\n else\r\n {\r\n //si el valor esta dentro de los items\r\n if (props.items.some(x => props.currentvalue == x.valor)) {\r\n let res = props.items.find(x => props.currentvalue == x.valor);\r\n setValueSelected(res);\r\n }\r\n //si no se encontro el valor seleccionado es distinto de null lo limpio\r\n else if (valueselected != null)\r\n setValueSelected(null);\r\n }\r\n }\r\n\r\n function ItemsComboDintintos()\r\n {\r\n if (props.items == null || (props.items != null && props.items.length === 0)) {\r\n\r\n return true;\r\n }\r\n else {\r\n let DeleteItems = (props.items != null && props.items.length > 0 && (itemsEditCombo == null || itemsEditCombo == []));\r\n let NuevosItems = (itemsEditCombo != null && itemsEditCombo.length > 0 && (props.items == null || props.items == []));\r\n let CambioItems = false;\r\n\r\n if (props.items != null && props.items.length > 0 && itemsEditCombo != null && itemsEditCombo.length > 0) {\r\n\r\n if (props.items.some(x => !itemsEditCombo.some(y => y.valor == x.valor)))\r\n CambioItems = true;\r\n }\r\n\r\n if (DeleteItems || NuevosItems || CambioItems)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n const onTagsChange = (event, values) => {\r\n if (event != null) {\r\n if (values != valueselected)\r\n {\r\n setEvento({event: true})\r\n\r\n setValueSelected(values);\r\n\r\n if (props.onChange != null)\r\n props.onChange(values); \r\n }\r\n }\r\n }\r\n\r\n const handleKeyDown = (event) => {\r\n\r\n //Si se pulso el boton izquierdo y estbamos en la posicion cero\r\n if (event != null && event.key == \"ArrowLeft\" && event.target != null && event.target.selectionStart == 0 && (event.target.value == null || (event.target.value != null && event.target.value == \"\"))) {\r\n if (othellocolumnas != null && othellocolumnas.length > 0) {\r\n let newindex = indexcampoBusqueda + 1;\r\n if (newindex >= othellocolumnas.length)\r\n newindex = 0;\r\n\r\n setIndexCampoBusqueda(newindex);\r\n setVisibeField(true);\r\n }\r\n }\r\n }\r\n\r\n const handleOnFocusOut = (event) => {\r\n if (event != null) {\r\n if (visibefield)\r\n setVisibeField(false);\r\n }\r\n } \r\n\r\n const getCampoBusqueda = (index) => {\r\n if (othellocolumnas != null && othellocolumnas.length > 0)\r\n return othellocolumnas[index].fieldname;\r\n else\r\n return \"name\";\r\n }\r\n\r\n const getFieldLiteralName = (index) => {\r\n if (othellocolumnas != null && othellocolumnas.length > 0)\r\n return t(othellocolumnas[index].fieldliteralname);\r\n else\r\n return \"\";\r\n }\r\n\r\n const getCurrentValue = () =>\r\n {\r\n if (valueselected != null)\r\n {\r\n //Si estamos con multiples\r\n if (props.multiple) {\r\n if (valueselected.length > 0)\r\n return valueselected.map(x => x.valor).join(\",\");\r\n else\r\n return 0;\r\n }\r\n else\r\n return valueselected.valor;\r\n }\r\n else\r\n return 0;\r\n } \r\n\r\n const PopperMy = function (props) {\r\n return ;\r\n };\r\n\r\n let width = 0;\r\n\r\n if (othellocolumnas != null && othellocolumnas.length > 0)\r\n othellocolumnas.forEach(x => width = width + x.width);\r\n else\r\n width = 'auto';\r\n\r\n return (\r\n \r\n \r\n 0 ? props.items : []}\r\n value={valueselected != null ? valueselected : (multiple != null && multiple ? [] : null )}\r\n getOptionLabel={(option) => option[getCampoBusqueda(indexcampoBusqueda)]}\r\n onChange={onTagsChange} \r\n defaultValue={null}\r\n renderOption={(props, option, { selected }) => (\r\n
  • \r\n {multiple != null && multiple ?\r\n : \"\"} \r\n {othellocolumnas != null && othellocolumnas.length > 0 ?\r\n othellocolumnas.map(x =>
    {option[x.fieldname]}
    )\r\n : {option.name}\r\n }\r\n
  • )}\r\n renderInput={(params) =>
    \r\n \r\n {visibefield ?

    {getFieldLiteralName(indexcampoBusqueda)}

    : null}\r\n
    } \r\n /> \r\n
    \r\n );\r\n}\r\n\r\n\r\nOthelloEditComboBox.propTypes = {\r\n\r\n labelliteral: PropTypes.string,\r\n label: PropTypes.string,\r\n fieldname: PropTypes.string,\r\n currentvalue: PropTypes.object,\r\n readonly: PropTypes.bool, \r\n items: PropTypes.object.isRequired, //Los items debe implementar IFiltroModel\r\n //Evento que salta al seleccionar un item\r\n onChange: PropTypes.object,\r\n //Array de clse { fieldname: \"campo\", fieldliteralname: \"_nombre\", width : 250 }\r\n othellocolumnas: PropTypes.object, \r\n //Para tratar si es una lista de checks\r\n multiple: PropTypes.bool \r\n}; ","import {\n container,\n cardTitle,\n whiteColor,\n grayColor\n} from \"../../material-dashboard-pro-react.jsx\";\n\nconst loginPageStyle = theme => ({\n container: {\n ...container,\n zIndex: \"4\",\n [theme.breakpoints.down(\"sm\")]: {\n paddingBottom: \"100px\"\n }\n },\n cardTitle: {\n ...cardTitle,\n color: whiteColor\n },\n textCenter: {\n textAlign: \"center\"\n },\n justifyContentCenter: {\n justifyContent: \"center !important\"\n },\n customButtonClass: {\n \"&,&:focus,&:hover\": {\n color: whiteColor\n },\n marginLeft: \"5px\",\n marginRight: \"5px\"\n },\n inputAdornment: {\n marginRight: \"18px\"\n },\n inputAdornmentIcon: {\n color: grayColor[6]\n },\n cardHidden: {\n opacity: \"0\",\n transform: \"translate3d(0, -60px, 0)\"\n },\n cardHeader: {\n marginBottom: \"20px\"\n },\n socialLine: {\n padding: \"0.9375rem 0\"\n }\n});\n\nexport default loginPageStyle;\n","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport PropTypes from \"prop-types\";\n\nimport { Link } from \"react-router-dom\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\n\nimport Button from \"../components/Button.jsx\";\n\nimport OthelloComboBox from '../componentsothello/OthelloComboBox.jsx';\nimport OthelloEditComboBox from '../componentsothello/OthelloEditComboBox.jsx';\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloModalBase from \"../componentsothello/OthelloModalBase.jsx\";\n\nimport loginPageStyle from \"../assets/jss/material-dashboard-pro-react/views/loginPageStyle.jsx\";\n\nimport nacionalidades from \"../assets/nacionalidades.json\";\nimport provincias from \"../assets/provincias.json\";\n\n\nimport { DialogOthelloResult, TipoPreguntaEncuenta, OpcionComboBienMalRegularEncuesta, OpcionEstrellasEncuesta, OpcionSiNoEncuesta, OpcionComboUnoDiezEncuesta, PopUpResult, Visibilidad, TipoValidacionEncuenta, DataStateModal, ModoModal} from \"../othelloConstantes.jsx\";\nimport OthelloEdit from \"../componentsothello/OthelloEdit.jsx\";\r\n\r\nimport { Helmet } from 'react-helmet'\r\nimport OthelloPrimary from \"../componentsothello/OthelloPrimary.jsx\";\r\nimport OthelloTituloPanelData from \"../componentsothello/OthelloTituloPanelData.jsx\";\nimport MDBox from \"../components/MDBox/index.js\";\r\n\nexport default function FormularioEncuesta({ ...props }) {\r\n const { literal, idRol, tipooficina, loginmodoreserva, loginapps, idUser } = props;\n\n //ejemplo url\n //https://gestor.ovtspain.es/formulario/encuesta?id={Id_Oficina}-{tokenid}&data={dataencodedbase64}\"\n\n const navigate = useNavigate();\n\r\n const { search } = useLocation();\n\n const [loading, setLoading] = React.useState(true);\n\n const [idofi, setidofi] = React.useState(-1);\n const [idenc, setidenc] = React.useState(-1);\n const [preselecccion, setpreseleccion] = React.useState(\"\");\n const [data, setdata] = React.useState(null);\n const [encuesta, setencuesta] = React.useState(null);\n\n const [guardandoencuesta, setguardandoencuesta] = React.useState(false);\n const [encuestafinalizada, setencuestafinalizada] = React.useState(false);\n const [validado, setvalidado] = React.useState(false);\n const [stateModal, setstateModal] = React.useState(DataStateModal.dsClosed);\n const [modomodal, setmodomodal] = React.useState(null);\n\n const [codigo, setcodigo] = React.useState(\"\");\n const [dataeditando, setdataeditando] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n const [alertaopcion, setalertaopcion] = React.useState(null);\n\n const getColumnasProvincias = () => { \r\n return [{ fieldname: \"name\", fieldliteralname: \"_nombre\", width: 300 }]\r\n } \n\n React.useEffect(() => {\n\n let url = search;\r\n let params = new URLSearchParams(url);\n\n let identificador = params.get('id');\n let dt = params.get('data'); \n\n let idsplit = identificador.split('-');\n\n setidofi(idsplit[0]);\n setidenc(idsplit[1]);\n\n let preselec = \"\";\n\n if (idsplit.length >= 2) {\n preselec = idsplit[2]; \n setpreseleccion(preselec);\n }\n\n setdata(dt);\n \n getDataPage(idsplit[0], idsplit[1], preselec, dt);\n }, [loading]);\n\n const getDataPage = (idofi, idenc, preselec, data) => {\n if (idofi != null && data != null && idenc != null) {\n var jsonData = JSON.stringify({ idofi: idofi, idenc: idenc, data: data, preselected: preselec });\r\n\r\n fetch('api/Data/GetEncuestaFormulario', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res != null) {\r\n setencuesta(res);\r\n setLoading(false);\r\n }\r\n else {\r\n setencuesta({ id_Encuesta: -1 });\r\n setLoading(false);\r\n }\r\n }).catch(error => {\r\n setencuesta({ id_Encuesta: -1 });\r\n setLoading(false);\r\n });\n }\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n setalertaopcion(null);\r\n }\n\n const othelloModalResul = (modo, result, valor) =>\r\n {\r\n if (result == DialogOthelloResult.OK) {\r\n var object = \"\";\r\n let formulariovalida = document.getElementById('formvalidacion');\r\n let formvalida = new FormData(formulariovalida);\r\n formvalida.forEach((value, key) => { object += value + \"|\" });\r\n\r\n codigo = object;\r\n\r\n if (object != \"\")\r\n SendEncuesta();\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(\"\");\r\n }\r\n }\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(\"\");\r\n } \r\n }\n\n const SendEncuesta = () => {\r\n\r\n let res = \"\";\r\n let formulario = document.getElementById('formencuesta');\r\n let formdata = new FormData(formulario);\r\n let tipovalidacion = -1;\r\n\r\n var object = {};\r\n formdata.forEach((value, key) => {\r\n\r\n res += key + '=' + value + '|';\r\n\r\n if (key == \"tipovalidacion\")\r\n tipovalidacion = value;\r\n\r\n object[key] = value;\r\n });\r\n\r\n //Guardo los datos introducidos por el usuario\r\n setdataeditando({ ...object });\r\n\r\n if (res != null && res != \"\") {\r\n if (stateModal == DataStateModal.dsClosed && encuesta.tipoValidacion != TipoValidacionEncuenta.SinValidacion) {\r\n setstateModal(DataStateModal.dsOpen);\r\n setmodomodal(\"login\");\r\n }\r\n else {\r\n var jsonData = JSON.stringify({ idofi: encuesta.id_Oficina, idenc: encuesta.id_Encuesta, codigo: codigo, data: res, tipovalidacion: tipovalidacion });\r\n\r\n setguardandoencuesta(true);\r\n\r\n fetch('api/Data/GuardarEncuesta', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res != null) {\r\n //Si hubo error\r\n if (res.grabada) {\r\n setalert(PopUpResult.OK);\r\n setguardandoencuesta(false);\r\n setencuestafinalizada(true);\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n }\r\n else {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(res.error);\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n }\r\n }\r\n else {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(\"Error interno al grabar la encuesta\");\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n }\r\n \r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(\"Error interno al grabar la encuesta\");\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n });\r\n }\r\n }\r\n else {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(\"Error interno al grabar la encuesta\");\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n } \r\n }\n\n function getPreguntaSegunTipo(id, tipo, valor, opcionesCombo, rowsTextoLibre, defaultValue)\n {\n if (tipo == TipoPreguntaEncuenta.ComboBienMalRegular)\n return \n else if (tipo == TipoPreguntaEncuenta.ComboUnoDiez)\n return \n else if (tipo == TipoPreguntaEncuenta.SiNo)\n return \n else if (tipo == TipoPreguntaEncuenta.Estrellas)\n return \n else if (tipo == TipoPreguntaEncuenta.Combo)\n return 0 ? opcionesCombo[0].valor : \"\")} />\n else if (tipo == TipoPreguntaEncuenta.TextoLibre)\n return \n else if (tipo == TipoPreguntaEncuenta.Provincias)\r\n return \n /*return */\n else if (tipo == TipoPreguntaEncuenta.Paises)\n return \n else if (tipo == TipoPreguntaEncuenta.PreSelecOpcion)\n return 0 ? opcionesCombo[0].valor : \"\")} /> \n else\n return \"\";\n }\n\n\n function renderPreguntasEncuestas(encuesta) {\n\n let res = encuesta.preguntas.map(x => {\n\r\n let id = x.id_Question + \"_\" + x.tipo + \"_\" + x.pregunta;\r\n\r\n let valor = dataeditando != null ? dataeditando[id] : null;\r\n\r\n let opcionesCombo = (x.tipo == TipoPreguntaEncuenta.Combo || x.tipo == TipoPreguntaEncuenta.PreSelecOpcion) && x.opciones != null && x.opciones != \"\" ? x.opciones.split(\"|\") : \"\";\r\n let combofinal = [];\r\n\r\n if (opcionesCombo != null && opcionesCombo.length > 0) {\r\n opcionesCombo.forEach(y => combofinal.push({ valor: y, name: y }));\r\n }\r\n\r\n let rowsTextoLibre = x.tipo == TipoPreguntaEncuenta.TextoLibre && x.opciones != null && x.opciones != \"\" ? parseInt(x.opciones, 3) : 3;\r\n\r\n let visibilidad = true;\n let valorpreselected = -1;\n\n if (x.tipo == TipoPreguntaEncuenta.PreSelecOpcion && preselecccion != null && combofinal != null && combofinal.length > 0)\n {\r\n if (combofinal.some(x => x.valor.toLowerCase() == preselecccion.toLowerCase()))\r\n {\r\n valorpreselected = combofinal.find(x => x.valor.toLowerCase() == preselecccion.toLowerCase()).valor;\r\n visibilidad = false;\r\n }\r\n }\r\n\r\n if (visibilidad) {\r\n return <>\n \n {x.pregunta}\n {getPreguntaSegunTipo(id, x.tipo, valor, combofinal, rowsTextoLibre, x.defaultValue)}\n
    \n
    \r\n \r\n }\r\n else {\r\n return \r\n }\r\n\r\n });\n\n return <>{res};\n }\r\n\n\n function renderFormularioEncuesta(encuesta, encuestafinalizada) {\n\n if (encuesta != null && encuesta.id_Encuesta > 0) {\n let preguntas = encuesta.visible == Visibilidad.Si && encuesta.preguntas != null && encuesta.preguntas.length > 0 ? renderPreguntasEncuestas(encuesta) : \"\";\n\n return (\n \n {encuesta.visible == Visibilidad.Si ?\n
    \n {encuestafinalizada != null && encuestafinalizada ?\n
    \n \n

    Encuesta finalizada con exito, gracias por su colaboracion

    \n
    \n {encuesta.id_Oficina == 399 ?\n \n \n \n \n : \"\"}\n
    : \n
    \n {preguntas}\n \n \n \n \n \n
    \n }\n :

    Encuesta no disponibile en estos momentos

    \n }\n
    \n )\n }\n else\n return

    No se pudo mostrar el formulario, intentelo mas tarde

    \n }\n\n function renderModalValidacionLogin()\n {\n return (\n Realice la validacion de su encuesta mediante Login\n
    \n \n \n \n \n \n \n \n \n \n \n {guardandoencuesta ? : \"\"}\n Registrate \n He olvidado mi contraseña\n \n \n
    );\n }\n\n let cargando = loading ?

    : \"\"; \n\n let alertafinal = alert != null ? : \"\";\n\n let modal = \"\";\n\n if (stateModal != DataStateModal.dsClosed && modomodal == \"login\")\r\n modal = renderModalValidacionLogin();\r\n\n\n return (\n
    \n {alertafinal}\n {modal}\n \n {!loading ? encuesta.nombreOficina + \" - \" + encuesta.nombre : \"Encuesta\"}\n \n \n

    {!loading ? encuesta.nombreOficina + \" \" + (preselecccion != null && preselecccion != \"\" ? \" - \"+ preselecccion: \"\" ): \"\"}

    \n
    \n {loading ? cargando : renderFormularioEncuesta(encuesta, encuestafinalizada)}\n
    \n );\n}\n","import React from \"react\";\r\nimport ErrorPage from \"./view/ErrorPage\";\r\n\r\nimport FormularioEncuesta from \"./view/FormularioEncuesta\";\r\n\r\n\nvar dashRoutesFormularios = [\n {\n path: \"/encuesta\",\n name: \"Encuesta\",\n component: ,\n layout: \"/formulario\",\n route: \"/formulario/encuesta\",\n key: \"encuesta\",\n },\n {\n type: \"collapse\",\n noCollapse: true,\n path: \"/error\",\n name: \"Error Pagina\",\n component: ,\n layout: \"/formulario\",\n route: \"/formulario/error\",\n key: \"error\",\n }\n];\nexport default dashRoutesFormularios;","import React, { useState } from \"react\";\n\nimport { Route, Routes, useLocation } from \"react-router-dom\";\n\nimport { Helmet } from 'react-helmet'\n\n// core components\nimport Footer from \"../components/Footer\";\n\nimport routes from \"../routesFormularios.js\";\n\nimport error from \"../assets/img/clint-mckoy.jpg\";\nimport encuesta from \"../assets/img/register.jpeg\";\nimport OthelloCookieConsent from \"../componentsothello/OthelloCookieConsent\";\r\nimport MDBox from \"../components/MDBox\";\r\nimport PageLayout from \"../components/LayoutContainers/PageLayout\";\r\n\n\nfunction LayoutFormularios() {\n const [id_conexion, setidconexion] = useState(\"\");\n const [loading, setLoading] = useState(true);\n\n const { search } = useLocation();\n\n React.useEffect(() => {\n\n /* let url = search;\n let params = new URLSearchParams(url);\n let idconexion = \"\";\n\n if (params.has('ID'))\n idconexion = params.get('ID').split('-')[0];\n\n setidconexion(idconexion);*/\n setLoading(false);\n\n }, [loading]);\n\n\n const getRoutes = (allRoutes) => {\n return allRoutes.map((route) => {\n //si es un item collapse hacemos route de los hijos\n if (route.collapse)\n return getRoutes(route.collapse);\n\n if (route.route) {\n return ;\n }\n\n return null;\n });\n }\n\n /*getBgImage = () => {\n\n if (window.location.pathname.indexOf(\"/formulario/encuesta\") !== -1)\n return encuesta;\n else if (window.location.pathname.indexOf(\"/formulario/error\") !== -1)\n return error;\n };*/\n\n return (\n \n \n Encuesta Satisfaccion \n \n \n {getRoutes(routes)}\n \n \n
    \n \n \n );\n}\n\nexport default LayoutFormularios;","export default __webpack_public_path__ + \"static/media/back4.de63dc9f.jpg\";","export default __webpack_public_path__ + \"static/media/ejemplo.50931e3c.jpg\";","import React, { useState } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { Link } from \"react-router-dom\";\n\n// @mui/material components\n\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from \"@mui/material/Divider\";\n\nimport back1 from \"../assets/images/back1.png\";\nimport back2 from \"../assets/images/back2.png\";\nimport back3 from \"../assets/images/back3.png\";\nimport back4 from \"../assets/images/back4.jpg\";\nimport ejemplo from \"../assets/images/ejemplo.jpg\";\n\n// core components\nimport Grid from \"@mui/material/Grid\";\nimport Icon from \"@mui/material/Icon\";\nimport Room from \"@mui/icons-material/Room\";\nimport CheckCircleOutline from \"@mui/icons-material/CheckCircleOutline\";\nimport AutoStories from \"@mui/icons-material/AutoStories\";\nimport QuestionAnswer from \"@mui/icons-material/QuestionAnswer\";\nimport TipsAndUpdates from \"@mui/icons-material/TipsAndUpdates\";\n\nimport ImageUpload from \"../components/ImageUpload.jsx\";\n\nimport OthelloPopUpResult from \"../componentsothello/OthelloPopUpResult.jsx\";\nimport OthelloModalBase from \"../componentsothello/OthelloModalBase.jsx\";\nimport OthelloMensaje from \"../componentsothello/OthelloMensaje\";\n\n\nimport { DialogOthelloResult, TipoPreguntaEncuenta, PopUpResult, Visibilidad, TipoValidacionEncuenta, DataStateModal, ModoModal, MessageOthelloBoxButtons } from \"../othelloConstantes.jsx\";\nimport { GetGoogleMaps } from \"../othelloFunciones.jsx\";\n\nimport OthelloEdit from \"../componentsothello/OthelloEdit.jsx\";\r\n\r\nimport { Helmet } from 'react-helmet'\r\nimport OthelloPrimary from \"../componentsothello/OthelloPrimary.jsx\";\nimport MDBox from \"../components/MDBox/index.js\";\r\nimport MDTypography from \"../components/MDTypography/index.js\";\r\nimport MDButton from \"../components/MDButton/index.js\";\r\nimport MDBadge from \"../components/MDBadge/index.js\";\r\nimport MDInput from \"../components/MDInput/index.js\";\r\nimport MDAvatar from \"../components/MDAvatar/index.js\";\r\n\r\n\r\n\nexport default function FormularioJuego({ ...props }) {\r\n const { literal, idRol, tipooficina, loginmodoreserva, loginapps, idUser } = props;\n\n //ejemplo url\n //https://gestor.ovtspain.es/formulario/encuesta?id={Id_Oficina}-{tokenid}&data={dataencodedbase64}\"\n\n const navigate = useNavigate();\n\r\n const { search } = useLocation();\n\n const [loading, setLoading] = React.useState(true);\n\n const [height, setHeight] = React.useState(1024);\n const [idofi, setidofi] = React.useState(-1);\n const [idenc, setidenc] = React.useState(-1); \n const [data, setdata] = React.useState(null);\n const [encuesta, setencuesta] = React.useState(null);\n\n const [mapaopen, setmapaopen] = React.useState(false);\n const [pistasopen, setpistasopen] = React.useState(false);\n const [pistashowed, setpistashowed] = React.useState(0);\n\n const [currentstepiniciojuego, setcurrentstepiniciojuego] = React.useState(-1);\n\n const [modoinfoinicial, setmodoinfoinicial] = React.useState(true);\n const [modoinforespuestaok, setmodoinforespuestaok] = React.useState(false);\n const [currentstep, setcurrentstep] = React.useState(-1);\n const [stateModalReiniciar, setstateModalReiniciar] = React.useState(DataStateModal.dsClosed);\n\n const [guardandoencuesta, setguardandoencuesta] = React.useState(false);\n const [encuestafinalizada, setencuestafinalizada] = React.useState(false);\n const [validado, setvalidado] = React.useState(false);\n const [stateModal, setstateModal] = React.useState(DataStateModal.dsClosed);\n const [modomodal, setmodomodal] = React.useState(null);\n\n const [codigo, setcodigo] = React.useState(\"\");\n const [dataeditando, setdataeditando] = React.useState(null);\n\n const [alert, setalert] = React.useState(null);\n const [alertaopcion, setalertaopcion] = React.useState(null); \n\n React.useEffect(() =>\n {\n let url = search;\r\n let params = new URLSearchParams(url);\n\n let identificador = params.get('id');\n let dt = params.get('data'); \n\n let idsplit = identificador.split('-');\n\n setidofi(idsplit[0]);\n setidenc(idsplit[1]); \n setHeight(window.innerHeight);\n\n setdata(dt);\n \n getDataPage(idsplit[0], idsplit[1], dt);\n }, [loading]);\n \n const getDataPage = (idofi, idenc, data) => {\n if (idofi != null && data != null && idenc != null) {\n var jsonData = JSON.stringify({ idofi: idofi, idenc: idenc, data: data, preselected: \"\" });\r\n\r\n fetch('api/Data/GetEncuestaFormulario', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n\r\n if (res != null) {\r\n setencuesta(res);\r\n setLoading(false);\r\n }\r\n else {\r\n setencuesta({ id_Encuesta: -1 });\r\n setLoading(false);\r\n }\r\n }).catch(error => {\r\n setencuesta({ id_Encuesta: -1 });\r\n setLoading(false);\r\n });\n }\n }\n\n const onClosePopUpResult = () => {\r\n setalert(null);\r\n setalertaopcion(null);\r\n }\n\n const othelloModalResul = (modo, result, valor) =>\r\n {\r\n if (result == DialogOthelloResult.OK) {\r\n var object = \"\";\r\n let formulariovalida = document.getElementById('formvalidacion');\r\n let formvalida = new FormData(formulariovalida);\r\n formvalida.forEach((value, key) => { object += value + \"|\" });\r\n\r\n codigo = object;\r\n\r\n if (object != \"\")\r\n SendEncuesta();\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(\"\");\r\n }\r\n }\r\n else {\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(\"\");\r\n } \r\n }\n\n const othelloModalResulReiniciar = (modo, result, valor) => {\r\n if (result == DialogOthelloResult.OK)\r\n window.location.reload();\r\n\r\n setstateModalReiniciar(DataStateModal.dsClosed);\r\n }\n\n const NextStepInicioJuego = () => {\n \n let paso = currentstepiniciojuego + 1;\n\n if (paso <= 3)\n setcurrentstepiniciojuego(paso);\n else\n setcurrentstep(0);\n }\n \n\n const NextQuestion = () => {\n\n if (modoinfoinicial) {\n setmodoinfoinicial(false);\r\n }\n else {\n let paso = currentstep + 1;\n setmodoinforespuestaok(false);\n setmodoinfoinicial(true);\n setcurrentstep(paso);\n }\n }\n\n const ResponderPregunta = (e) =>\n {\n if (encuesta != null && encuesta.id_Encuesta > 0) {\n if (encuesta.visible == Visibilidad.Si) {\r\n if (encuesta.preguntas != null && encuesta.preguntas.length > 0) {\r\n let pistaActual = encuesta.preguntas[currentstep];\n\n if (pistaActual != null) {\n\r\n let respuesta = document.getElementById('respuesta');\r\n\r\n if (respuesta != null && respuesta.value != null && respuesta.value != \"\")\r\n {\r\n //Si la respuesta es correcta\r\n if (respuesta.value.toLowerCase() == pistaActual.defaultValue.toLowerCase())\r\n {\r\n setmapaopen(false);\n setpistasopen(false);\n setpistashowed(0);\r\n setmodoinforespuestaok(true);\r\n /* let paso = currentstep + 1;\n setmapaopen(false);\n setpistasopen(false);\n setpistashowed(0);\n setmodoinfoinicial(true);\n setcurrentstep(paso);*/\r\n }\r\n else {\r\n\r\n }\r\n }\r\n }\n }\r\n }\r\n } \n }\n\n const ReiniciarJuego = (e) =>\n {\n setstateModalReiniciar(DataStateModal.dsOpen);\n }\n\n const BotonMapa = (e) => {\n\n setmapaopen(!mapaopen);\n }\n\n \n const BotonPistas = (e) => {\n\n setpistasopen(!pistasopen);\n }\n\n const NextPistas = () => {\n\n setpistashowed(pistashowed +1);\n }\n\n const SendEncuesta = () => {\r\n\r\n let res = \"\";\r\n let formulario = document.getElementById('formencuesta');\r\n let formdata = new FormData(formulario);\r\n let tipovalidacion = -1;\r\n\r\n var object = {};\r\n formdata.forEach((value, key) => {\r\n\r\n res += key + '=' + value + '|';\r\n\r\n if (key == \"tipovalidacion\")\r\n tipovalidacion = value;\r\n\r\n object[key] = value;\r\n });\r\n\r\n //Guardo los datos introducidos por el usuario\r\n setdataeditando({ ...object });\r\n\r\n if (res != null && res != \"\") {\r\n if (stateModal == DataStateModal.dsClosed && encuesta.tipoValidacion != TipoValidacionEncuenta.SinValidacion) {\r\n setstateModal(DataStateModal.dsOpen);\r\n setmodomodal(\"login\");\r\n }\r\n else {\r\n var jsonData = JSON.stringify({ idofi: encuesta.id_Oficina, idenc: encuesta.id_Encuesta, codigo: codigo, data: res, tipovalidacion: tipovalidacion });\r\n\r\n setguardandoencuesta(true);\r\n\r\n fetch('api/Data/GuardarEncuesta', {\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: jsonData\n\n }).then(response => response.json()).then(res => {\r\n if (res != null) {\r\n //Si hubo error\r\n if (res.grabada) {\r\n setalert(PopUpResult.OK);\r\n setguardandoencuesta(false);\r\n setencuestafinalizada(true);\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n }\r\n else {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(res.error);\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n }\r\n }\r\n else {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(\"Error interno al grabar la encuesta\");\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n }\r\n \r\n }).catch(error => {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(\"Error interno al grabar la encuesta\");\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n });\r\n }\r\n }\r\n else {\r\n setalert(PopUpResult.KO);\r\n setguardandoencuesta(false);\r\n setalertaopcion(\"Error interno al grabar la encuesta\");\r\n setstateModal(DataStateModal.dsClosed);\r\n setmodomodal(null);\r\n } \r\n }\n\r\n function renderInicioJuego() {\r\n\r\n let textoShow = \"\";\r\n\r\n if (currentstepiniciojuego == -1)\r\n textoShow = \"\";\r\n else if (currentstepiniciojuego == 0)\r\n textoShow = encuesta.infoInicial;\r\n else if (currentstepiniciojuego == 1)\r\n textoShow = encuesta.descripcion;\r\n else if (currentstepiniciojuego == 2)\r\n textoShow = encuesta.infoAdicional;\r\n else if (currentstepiniciojuego == 3)\r\n textoShow = \"Siempre tienes las opcion de utilizar las pista que te proporciona. Basta con pulsar el boton de la bombilla.Tambien tienes el boton de mapa para que no os perdais.

    BUENA SUERTE!\";\r\n\r\n if (currentstepiniciojuego == -1)\n return \n NextStepInicioJuego(e)} fullWidth>\n Continuar\n \n ;\r\n else\r\n return \r\n \n \n {encuesta.nombre}\n \n \r\n \r\n \r\n {textoShow}\r\n \r\n \r\n \n NextStepInicioJuego(e)} fullWidth>\n Continuar\n \n \r\n ;\r\n }\r\n\n function renderPreguntasJuego()\n {\n if (encuesta.preguntas != null && encuesta.preguntas.length > 0)\r\n {\r\n let pasoActual = encuesta.preguntas[currentstep];\r\n\n return (<>\n {renderCabeceroOpcionesJuego()}\n {renderInfoInicialPregunta(pasoActual)}\n {renderPreguntasPistas(pasoActual)}\r\n {renderZonaContestarPreguntas(pasoActual)}\r\n );\r\n }\r\n else\r\n return

    El juego no tiene ninguna prueba disponibile en estos momentos

    \n }\n\n function renderCabeceroOpcionesJuego()\n {\n if (modoinfoinicial && currentstep == 0)\n return \"\";\n else {\n let PistasItem = [];\r\n\r\n encuesta.preguntas.forEach((x, index) => { PistasItem.push(); });\n\n return <>\n \n \n ReiniciarJuego(e)}>\r\n home\r\n \n \n \n \n modoinfoinicial || modoinforespuestaok ? null : BotonMapa(e)} >\r\n room\r\n \n \n \n modoinfoinicial || modoinforespuestaok ? null : BotonPistas(e)} >\r\n tips_and_updates\r\n \n \n \n \n \n
    {PistasItem}
    \n
    \r\n ;\r\n }\r\n }\n\n function renderInfoInicialPregunta(pistaActual)\n {\n if (modoinfoinicial)\r\n {\r\n if (mapaopen) {\r\n return renderMapaUbicacion(pistaActual);\r\n }\r\n else {\r\n return \r\n \n \n Introduccion\n \n \r\n \r\n \r\n {pistaActual.infoInicial}\r\n \r\n \r\n \r\n BotonMapa(e)}\r\n /*src={logoMille}*/\r\n alt={\"\"}\r\n size=\"lg\"\r\n variant=\"rounded\"\r\n bgColor={\"secondary\"}\r\n sx={{ p: 5, mt: 2, mb: 2, mr: 0, borderRadius: ({ borders: { borderRadius } }) => borderRadius.xl }}\r\n >\r\n \r\n \r\n \r\n \n NextQuestion(e)} fullWidth>\n Continuar\n {/*Continuar */}\r\n {/*chevron_right*/}\n \n \r\n ;\r\n }\r\n }\r\n else\r\n return \"\";\r\n }\n\n function renderMapaUbicacion(pistaActual)\n { \n return <>\r\n \n \n \n BotonMapa(e)}>\r\n undo\r\n \n \n \n \n \n
    \n {GetGoogleMaps(pistaActual != null ? pistaActual.lat : 0, pistaActual != null ? pistaActual.lon : 0)}\r\n
    \n
    \n
    \n }\n\n function renderPreguntasPistas(pistaActual) {\n\r\n if (modoinfoinicial)\r\n return \"\";\r\n else {\r\n let infoPreguntaPista = \"\";\r\n\r\n if (modoinforespuestaok) {\r\n return \r\n \n borderRadius.xl }}\r\n >\r\n \r\n \n \n Respuesta
    CORRECTA\n
    \n\n
    \r\n \n \n {pistaActual.defaultValue}\n \n \r\n \r\n \r\n {pistaActual.infoAdicional}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \n NextQuestion(e)} fullWidth>\n Continuar\n \n \r\n
    ;\r\n }\r\n else if (mapaopen) {\r\n return renderMapaUbicacion(pistaActual);\r\n }\r\n else {\r\n if (pistasopen) {\r\n\r\n let opcionesCombo = pistaActual.tipo == TipoPreguntaEncuenta.Pista && pistaActual.opciones != null && pistaActual.opciones != \"\" ? pistaActual.opciones.split(\"|\") : \"\";\r\n let combofinal = [];\r\n\r\n if (opcionesCombo != null && opcionesCombo.length > 0) {\r\n\r\n opcionesCombo.forEach((y, index) => {\r\n\r\n if (pistashowed >= index) {\r\n\r\n let texto = pistashowed == (opcionesCombo.length - 2) ? \"vemos la respuesta?\" : \"vemos la siguiente pista?\";\r\n\r\n combofinal.push(<>< MDTypography variant=\"body2\" fontWeight=\"regular\" color=\"black\" fontSize={15}>\r\n {y}\r\n \r\n {pistashowed == index && pistashowed < (opcionesCombo.length - 1) ? NextPistas(e)}>{texto} : }\r\n );\r\n }\r\n });\r\n\r\n infoPreguntaPista = combofinal;\r\n }\r\n else\r\n infoPreguntaPista = \"Sin Pistas\";\r\n }\r\n else {\r\n\r\n infoPreguntaPista = \r\n {pistaActual.descripcion}\r\n \r\n }\r\n\r\n return \r\n \n \r\n \n borderRadius.xl }}\r\n > \r\n {pistasopen ? : }\r\n \n \n {pistasopen ? \"Pistas\" : \"Informacion\"}\n \n \r\n \r\n {infoPreguntaPista}\r\n \r\n \n \n \r\n }\r\n }\r\n }\n\n function renderZonaContestarPreguntas(pistaActual)\n {\n if (modoinfoinicial)\r\n return \"\";\r\n else {\n if (mapaopen || modoinforespuestaok)\n return \"\";\n else {\n return \n \n borderRadius.xl }}\r\n >\r\n \r\n \n \n Adivina\n \n \n \n \n \n \n \n ResponderPregunta(e)} >\r\n touch_app\r\n \n \n \n ;\r\n }\n }\n }\n\n function renderJuego() {\n\n if (encuesta != null && encuesta.id_Encuesta > 0)\n {\n if (encuesta.visible == Visibilidad.Si)\n {\r\n //Si aun no estamos en el juego, es que vamos a explicarlo\r\n if (currentstep == -1)\r\n return renderInicioJuego();\r\n else\r\n return renderPreguntasJuego();\r\n }\n else\n return

    El juego no disponibile en estos momentos

    \n }\n else\n return

    No se pudo cargar el juego, intentelo mas tarde

    \n }\n\n function renderModalValidacionLogin()\n {\n return (\n Debe logarse para poder empezar a jugar\n
    \n \n \n \n \n \n \n \n \n \n \n {guardandoencuesta ? : \"\"}\n Registrate \n He olvidado mi contraseña\n \n \n
    );\n }\n\n let cargando = loading ?

    : \"\"; \n\n let alertafinal = alert != null ? : \"\";\n\n let modal = \"\";\n\n if (stateModal != DataStateModal.dsClosed && modomodal == \"login\")\r\n modal = renderModalValidacionLogin();\r\n\r\n let modalReinicia = \"\";\r\n\r\n //Si el estado del modal es distinto de cerrado\r\n if (stateModalReiniciar != DataStateModal.dsClosed)\r\n modalReinicia = \n\r\n\n return ( \n {alertafinal}\n {modal}\n {modalReinicia}\n \n {!loading ? encuesta.nombre : \"Disfruta del Juego\"}\n \n {/**/}\n {/*

    {!loading ? encuesta.nombreOficina + \" \" + (preselecccion != null && preselecccion != \"\" ? \" - \"+ preselecccion: \"\" ): \"\"}

    */}\n {/*
    */}\n {loading ? cargando : renderJuego()}\n \n );\n}\n","import React from \"react\";\r\nimport ErrorPage from \"./view/ErrorPage\";\r\n\r\nimport FormularioJuego from \"./view/FormularioJuego\";\r\n\r\n\nvar dashRoutesFormularios = [\n {\n path: \"/play\",\n name: \"Juego\",\n component: ,\n layout: \"/game\",\n route: \"/game/play\",\n key: \"game\",\n },\n {\n type: \"collapse\",\n noCollapse: true,\n path: \"/error\",\n name: \"Error Pagina\",\n component: ,\n layout: \"/game\",\n route: \"/formulario/error\",\n key: \"error\",\n }\n];\nexport default dashRoutesFormularios;","import React, { useState } from \"react\";\n\nimport { Route, Routes, useLocation } from \"react-router-dom\";\n\nimport { Helmet } from 'react-helmet'\n\n// core components\nimport Footer from \"../components/Footer\";\n\nimport routes from \"../routesJuego.js\";\n\nimport error from \"../assets/img/clint-mckoy.jpg\";\nimport encuesta from \"../assets/img/register.jpeg\";\nimport OthelloCookieConsent from \"../componentsothello/OthelloCookieConsent\";\r\nimport MDBox from \"../components/MDBox\";\r\nimport PageLayout from \"../components/LayoutContainers/PageLayout\";\r\n\n\nfunction LayoutJuego() {\n const [id_conexion, setidconexion] = useState(\"\");\n const [loading, setLoading] = useState(true);\n\n const { search } = useLocation();\n\n React.useEffect(() => {\n\n /* let url = search;\n let params = new URLSearchParams(url);\n let idconexion = \"\";\n\n if (params.has('ID'))\n idconexion = params.get('ID').split('-')[0];\n\n setidconexion(idconexion);*/\n setLoading(false);\n\n }, [loading]);\n\n\n const getRoutes = (allRoutes) => {\n return allRoutes.map((route) => {\n //si es un item collapse hacemos route de los hijos\n if (route.collapse)\n return getRoutes(route.collapse);\n\n if (route.route) {\n return ;\n }\n\n return null;\n });\n }\n\n /*getBgImage = () => {\n\n if (window.location.pathname.indexOf(\"/formulario/encuesta\") !== -1)\n return encuesta;\n else if (window.location.pathname.indexOf(\"/formulario/error\") !== -1)\n return error;\n };*/\n //\n return (\n \n \n Disfruta de los mejores Juegos\n \n \n {getRoutes(routes)}\n \n \n );\n}\n\nexport default LayoutJuego;","import React from \"react\";\r\n\r\nimport CondicionesInfoPage from \"./view/CondicionesInfoPage\";\r\nimport ErrorPage from \"./view/ErrorPage\";\r\n\nvar dashRoutesCondiciones = [ \n {\n path: \"/info\",\n name: \"Condiciones\",\n component: ,\n layout: \"/condiciones\",\n route: \"/condiciones/info\",\n key: \"info\",\n },\n {\n type: \"collapse\",\n noCollapse: true,\n path: \"/error\",\n name: \"Error Pagina\",\n component: ,\n layout: \"/condiciones\",\n route: \"/condiciones/error\",\n key: \"error\",\n }\n];\nexport default dashRoutesCondiciones;\n","export default __webpack_public_path__ + \"static/media/reserva1.19f0a16c.jpg\";","import React, { useState } from \"react\";\n\nimport { Route, Routes, useLocation } from \"react-router-dom\";\n\n// core components\nimport Footer from \"../components/Footer\";\n\nimport routes from \"../routesCondicionesReservar\";\n\nimport PageLayout from \"../components/LayoutContainers/PageLayout\";\n\nimport { Helmet } from 'react-helmet'\n\nimport MDBox from \"../components/MDBox\";\n\nimport error from \"../assets/img/clint-mckoy.jpg\";\nimport reservas from \"../assets/img/reserva1.jpg\";\n\nimport OthelloCookieConsent from \"../componentsothello/OthelloCookieConsent\";\n\nfunction LayoutCondicionesReservar() {\n\n const { search } = useLocation();\n\n /*React.useEffect(() => {\n\n /* let url = search;\n let params = new URLSearchParams(url);\n let idconexion = \"\";\n \n if (params.has('ID'))\n idconexion = params.get('ID').split('-')[0];\n \n setidconexion(idconexion);\n setLoading(false);\n\n }, [loading]);*/\n\n\n /*getBgImage = () => {\n\n if (window.location.pathname.indexOf(\"/formulario/encuesta\") !== -1)\n return encuesta;\n else if (window.location.pathname.indexOf(\"/formulario/error\") !== -1)\n return error;\n };*/\n\n const getRoutes = (allRoutes) => {\n return allRoutes.map((route) => {\n //si es un item collapse hacemos route de los hijos\n if (route.collapse)\n return getRoutes(route.collapse);\n\n if (route.route) {\n return ;\n }\n\n return null;\n });\n }\n\n return (\n \n \n Condiciones Reservar\n \n \n {getRoutes(routes)}\n \n \n
    \n \n \n );\n}\n\n\nexport default LayoutCondicionesReservar;","import React from 'react';\nimport ko from 'knockout';\nimport 'devexpress-reporting/dx-webdocumentviewer';\n\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\nexport class OthelloReportViewer extends React.Component {\n constructor(props) {\n super(props);\n\n this.uri = window.location.origin+\"|\";\n this.listado = props.listado != null && props.listado != \"\" ? props.listado : \"DefaultReport\";\n this.dataurl = props.data != null && props.data != \"\" ? \"|\" + props.data : \"\";\n\n this.reportUrl = ko.observable(this.uri+ this.listado + (this.dataurl != \"\" ? this.dataurl : \"\"));\n\n this.requestOptions = {\n //host: \"http://localhost:53550/\",\n invokeAction: \"DXXRDV\" \n }; \n }\n render() {\n return (
    );\n }\n componentDidMount() {\n ko.applyBindings({\n reportUrl: this.reportUrl ,\n //viewerModel: this.previewModel,\n requestOptions: this.requestOptions\n }, this.refs.viewer);\n }\n componentWillUnmount() {\n ko.cleanNode(this.refs.viewer);\n }\n};\n\n\nOthelloReportViewer.propTypes = {\n //Nombre del listado a mostrar\n listado: PropTypes.string,\n data: PropTypes.object\n}","import React from 'react';\r\nimport { OthelloReportViewer } from './OthelloReportViewer';\r\nimport OthelloWaiting from './OthelloWaiting';\r\n\r\nexport default function CPageReportViewer({ ...props })\r\n{ \r\n //Gestion de la lista de entregas traspasos\r\n const [loading, setLoading] = React.useState(true);\r\n \r\n const [data, setData] = React.useState(\"\");\r\n const [listado, setListado] = React.useState(\"\");\r\n \r\n\r\n React.useEffect(() =>\r\n {\r\n var listado = localStorage.getItem(\"pageListado\");\r\n var data = localStorage.getItem(\"pageData\");\r\n \r\n if (listado != null && listado != \"\")\r\n setListado(listado);\r\n\r\n if (data != null && data != \"\")\r\n setData(data);\r\n \r\n setLoading(false);\r\n\r\n }, [loading]);\r\n \r\n return (\r\n
    \r\n {loading ? : }\r\n
    \r\n ); \r\n}\r\n\r\nCPageReportViewer.propTypes = {\r\n\r\n\r\n}\r\n","import React, { useEffect } from \"react\";\n\n// react-router components\nimport { Route, Routes, useLocation, Navigate } from \"react-router-dom\";\n\nimport { createBrowserHistory } from \"history\";\n\n// @mui material components\nimport { ThemeProvider } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\r\n\r\n// Material Dashboard 2 PRO React themes\nimport theme from \"./assets/theme\";\r\n\r\nimport LayoutAdmin from './layouts/LayoutAdmin';\r\nimport LayoutAuth from './layouts/LayoutAuth';\r\nimport LayoutAuthApps from './layouts/LayoutAuthApps';\r\nimport LayoutFormularios from './layouts/LayoutFormularios';\r\nimport LayoutJuego from './layouts/LayoutJuego';\r\nimport OthelloClearCache from \"./componentsothello/OthelloClearCache.jsx\";\r\nimport LayoutCondicionesReservar from './layouts/LayoutCondicionesReservar';\r\n\r\nimport CPageReportViewer from './componentsothello/CPageReportViewer';\r\n\r\nimport './report.css'\r\n\nexport default function App() {\n\n const { pathname } = useLocation();\n\n const hist = createBrowserHistory();\n\n // Setting page scroll to 0 when changing the route\n useEffect(() => {\n document.documentElement.scrollTop = 0;\n document.scrollingElement.scrollTop = 0;\n }, [pathname]);\n\n\r\n let direccion = \"/auth/login\";\r\n\r\n if (window.location.href.includes(\"gestor.ovtspain.es\"))\r\n direccion = \"/auth/login\";\r\n else if (window.location.href.includes(\"reservas.ovtspain.es\"))\r\n direccion = \"/authapps/loginreservas\";\r\n else if (window.location.href.includes(\"account.ovtspain.es\"))\r\n direccion = \"/authapps/loginapp\";\n\n return (\n \n \n } key=\"authentication\" />\r\n } key=\"dashmain\" />\n } key=\"authenticationapps\" />\n } key=\"formulario\" />\n } key=\"game\" />\n } key=\"condiciones\" /> \n } key=\"report\" />\n } /> \n \n \n );\n}\r\n\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nimport translationES from './assets/translations/es.json';\r\nimport translationEN from './assets/translations/en.json';\r\nimport translationFR from './assets/translations/fr.json';\r\nimport translationIT from './assets/translations/it.json';\r\nimport translationDE from './assets/translations/de.json';\r\n\r\n// the translations\r\nconst resources = {\r\n en: {\r\n translation: translationEN\r\n },\r\n es: {\r\n translation: translationES\r\n },\r\n fr: {\r\n translation: translationFR\r\n },\r\n it: {\r\n translation: translationIT\r\n },\r\n de: {\r\n translation: translationDE\r\n }\r\n};\r\n\r\ni18n\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources,\r\n fallbackLng: 'es',\r\n lng: \"es\",\r\n\r\n keySeparator: false, // we do not use keys in form messages.welcome\r\n\r\n interpolation: {\r\n escapeValue: false // react already safes from xss\r\n }\r\n });\r\n\r\nexport default i18n;\r\n\r\n//---------------------------------\r\n// i18n\r\n// .use(initReactI18next) // passes i18n down to react-i18next\r\n// .init({\r\n// resources,\r\n// lng: \"en\",\r\n\r\n// keySeparator: false, // we do not use keys in form messages.welcome\r\n\r\n// interpolation: {\r\n// escapeValue: false // react already safes from xss\r\n// }\r\n// });\r\n\r\n\r\n//-----------------------------------\r\n//i18n\r\n// .use(initReactI18next)\r\n// .init({\r\n// resources: {\r\n// en,\r\n// fr,\r\n// it,\r\n// de,\r\n// es,\r\n// },\r\n// fallbackLng: 'en',\r\n// debug: process.env.NODE_ENV !== 'production',\r\n// ns: ['translations'],\r\n// defaultNS: 'translations',\r\n// keySeparator: false,\r\n// interpolation: {\r\n// escapeValue: false,\r\n// formatSeparator: ',',\r\n// },\r\n// react: {\r\n// wait: true,\r\n// },\r\n// });\r\n\r\n\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport './i18n.js';\r\n\r\nimport { MaterialUIControllerProvider } from \"./context/index.js\";\r\n\r\nimport { ClearBrowserCacheBoundary } from 'react-clear-browser-cache';\r\n//import ErrorBoundary from './ErrorBoundary';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();"],"sourceRoot":""}