{"version":3,"sources":["pages/informacion/carreras_alumno.js","pages/listados catedratico/campañaISO.js","pages/listados catedratico/EstudiantesPreMatriculados.js","pages/listados catedratico/EstudiantesMatriculados.js","pages/listados catedratico/EstudiantesRetirados.js"],"names":["Auth","AuthService","ip","globales","border_dialog","movil_pequeño","test","navigator","userAgent","GroupCellContent","_ref","column","row","_jsxs","style","color","name","background","children","_jsx","value","tableGroupRow_cellComponent","props","TableGroupRow","Cell","groupIconComponent","Icon","width","height","padding","getRowId","ID_DETALLE_PLAN","columns","title","defaultHiddenColumnNames","tableColumnExtensions","columnName","wordWrapEnabled","align","grouping","withStyles","theme","Dialog","borderRadius","margin","backdrop","zIndex","flexDirection","select","spacing","minWidth","textField","React","Component","constructor","super","tablaRef","createRef","changeExpandedGroups","expandedGroups","this","setState","cerrarmodal","event","open_requisitos","l","e","i","isVisibleRowSelected","actualizarbarra","actualizarcircular","state","openBackDrop","isLoggin","undefined","heightTableMain","rows","selection","filteringColumnExtensions","filters","expandedRowIds","enabledFilterRows","requisitos","VirtualTable_cellComponent","ClickBoton","REQUISITOS","requisitos_comp","split","map","item","index","contenido","Paper","elevation","marginBottom","Table","Checkbox","checked","SUFICIENCIA","OPTATIVA","IconButton","onClick","Icono","icono","componentDidMount","_this","loggedIn","then","b","Request","get","getProfile","user","set","getToken","retry","timeout","response","deadline","end","err","res","toString","substr","funciones","showToast","tmp","JSON","parse","text","length","arr","push","CARRERA","getHeightTableMain","heightTable","render","classes","botones_requisitos","nombre","onclick","display","Fragment","Backdrop","className","open","CircularProgress","marginTop","open_seleccion","open_borrar","fullWidth","maxWidth","fullScreen","TransitionProps","onEntering","DialogTitle","Typography","component","variant","DialogContent","BarraBotones","botones","backgroundColor","ref","marginLeft","tabla","marginleft_movil","marginleft","marginRight","marginright_movil","marginright","CustomTable","Columns","Rows","TableColumnExtensions","DefaultHiddenColumnNames","Grouping","ChangeExpandedGroups","ExpandedGroups","groupContentComponent","standarPlugin","TableRowsIndexer","showSelectionColumn","logout","window","location","reload","movil","alignItems","justifyContent","Avatar","colores","azul","href","target","type","data","src","ID_SECCION","descripcionRef","changeSelection","forEach","element","getIdRowChecking","selection_row","onChangeAutocomplete","newValue","valuePeriodos","loadingMain","obtener_cursos","ID_CONTROL_MATRICULA","id_control_matricula","generarreporte","document","getElementById","click","vobtenerdescripcion","optionsPeriodos","loadingPeriodos","getTime","INICIO","FIN","RenderOption","option","lineHeight","PERIODO","fontWeight","textAlign","DESCRIPCION","plataforma","toolt","escritura","disabled","Reporte","id","parametros","nom_boton","nom_bar","label_reporte","backcolor","fill","boton","color_bar","opciones","fontSize","Autocomplete","options","getOptionLabel","renderInput","params","TextField","label","InputProps","endAdornment","size","renderOption","onChange","loading","PaperComponent","openOnFocus","boder","Selection","ChangeSelection","RowComponent","trow"],"mappings":"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","file":"static/js/main~99490b19.53ee1d00.chunk.js","sourcesContent":["import React                                                        from 'react';\r\nimport { withStyles }                                               from '@material-ui/core/styles';\r\nimport { globales,funciones}                                        from '../../global';\r\nimport BarraBotones                                                 from '../../components/Barra_menu';\r\nimport AuthService                                                  from '../../AuthService';\r\nimport Request                                                      from 'superagent';\r\nimport CustomTable                                                  from '../../components/CustomTable';\r\nimport {Table,TableGroupRow}                                                      from '@devexpress/dx-react-grid-material-ui';\r\nimport TableRowsIndexer                                             from '../../components/tableRowsIndexer'\r\n//import { Plugin, Template, TemplateConnector, TemplatePlaceholder } from \"@devexpress/dx-react-core\";\r\nimport Dialog                                                       from '@material-ui/core/Dialog';\r\nimport DialogContent                                                from '@material-ui/core/DialogContent';\r\nimport DialogTitle                                                  from '@material-ui/core/DialogTitle';\r\nimport CircularProgress                                             from '@material-ui/core/CircularProgress';\r\nimport Backdrop                                                     from '@material-ui/core/Backdrop';\r\nimport Icono                                                        from '../../components/Icono'\r\nimport {  Checkbox, IconButton,Typography,Paper }                  from '@material-ui/core';\r\n\r\n\r\nlet Auth = new AuthService();\r\nvar ip=globales.ip\r\nvar border_dialog=globales.border_dialog\r\n//var movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet isVisibleRowSelected = false;\r\n//const colorRowSelected =  'rgb('+ colores.tabla.selection +')';\r\n//let alternateColorRow1 = colores.tabla.alternateColorRow1; \r\n//let alternateColorRow2 = colores.tabla.alternateColorRow2;\r\n\r\nconst GroupCellContent = ({ column, row }) => {\r\n    return ( \r\n            <span style={{color: column.name==='CARRERA'||column.name==='NIVEL'?'white':'inherit', background: column.name==='CARRERA'||column.name==='NIVEL'?'#00336A':'inherit'}}>    \r\n             <strong>{column.name==='PERIODO'?'Período: ':''}</ strong>\r\n             {column.name==='CARRERA'||column.name==='NIVEL'?\r\n             <b>{row.value}</b>\r\n             :row.value\r\n              }\r\n            </span>\r\n            );\r\n}\r\n\r\nconst tableGroupRow_cellComponent= (props) => {\r\n  return (\r\n    <TableGroupRow.Cell  {...props} style={{background: props.column.name==='Cursos'||props.column.name==='CARRERA'||props.column.name==='NIVEL'?'#00336A':'inherit'}}/>\r\n );\r\n}\r\n\r\nconst groupIconComponent= (props) => {\r\n  return (\r\n    <TableGroupRow.Icon  {...props} style={{ width: 22, height: 22, padding: 0,background:'white',color: 'inherit' }}/>\r\n );\r\n}\r\n\r\n\r\nconst getRowId = row => row.ID_DETALLE_PLAN;\r\n\r\n\r\n/*                           CLASES DE ESTILO                       */\r\n\r\nvar styles = theme =>({\r\n    Dialog:{\r\n        borderRadius: border_dialog,\r\n        margin:0,\r\n        padding:0\r\n    },\r\n    backdrop: {\r\n      zIndex: 500000,\r\n      color: '#fff', \r\n      flexDirection: 'column'\r\n    },\r\n    select: { //CONFIGURA EL SELECT \r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'50%',\r\n      },\r\n      textField: {\r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'20%',\r\n        width: '20%'      \r\n      },\r\n    })\r\n\r\n    const columns= [{name:'ID_DETALLE_PLAN',title: 'ID_DETALLE_PLAN'},\r\n    {name:'DESCRIPCION_CARRERA',title: ' '},\r\n    {name:'DESCRIPCION_NIVEL',title: 'Nivel'},\r\n    {name:'PERIODO',title: 'Periodo'},\r\n    {name:'CARRERA',title: 'CARRERA'},\r\n    {name:'NIVEL',title: 'NIVEL'},\r\n    {name:'CODIGO_CURSO',title: 'Código'},\r\n    {name:'DESCRIPCION_CURSO',title: 'Descripción'},\r\n    {name:'CREDITOS',title: 'U.V.'},\r\n    {name:'SUFICIENCIA',title: 'Suficiencia'},\r\n    {name:'OPTATIVA',title: 'Electiva'},\r\n    {name:'BOTON',title: 'Requisitos'},\r\n    {name:'REQUISITOS',title: 'REQUISITOS'},\r\n    ];\r\n\r\n    const defaultHiddenColumnNames= ['ID_DETALLE_PLAN','REQUISITOS'];\r\n\r\n    const tableColumnExtensions= [\r\n        { columnName: 'CODIGO_CURSO', wordWrapEnabled: false, align: 'left',width:100},\r\n        { columnName: 'DESCRIPCION_CURSO', wordWrapEnabled: false, align: 'left',width:400},\r\n        { columnName: 'CREDITOS', wordWrapEnabled: false, align: 'center',width:80},\r\n        { columnName: 'SUFICIENCIA', wordWrapEnabled: false, align: 'center',width:100},\r\n        { columnName: 'OPTATIVA', wordWrapEnabled: false, align: 'center',width:100},\r\n        { columnName: 'BOTON', wordWrapEnabled: false, align: 'center',width:80},\r\n    ];\r\n\r\n    const grouping= [{ columnName: 'CARRERA' },{ columnName: 'DESCRIPCION_CARRERA' },{ columnName: 'NIVEL' },{ columnName: 'DESCRIPCION_NIVEL' },{ columnName: 'PERIODO' }]\r\n\r\n/*                                        EXPORT                                      */\r\nexport default withStyles(styles)(\r\n    class Carreras_Alumno extends React.Component {\r\n      tablaRef = React.createRef();\r\n\r\n      constructor(props) {\r\n        super(props);\r\n        this.l= props.l\r\n        this.e= props.e\r\n        this.i= props.i\r\n        this.isVisibleRowSelected=isVisibleRowSelected\r\n        this.actualizarbarra=props.actualizarbarra\r\n        this.actualizarcircular=props.actualizarcircular\r\n\r\n        this.state = {\r\n            openBackDrop:      false, \r\n            isLoggin:          undefined,\r\n            heightTableMain:    0,\r\n            rows: [],\r\n            selection: [],\r\n            grouping: [],\r\n            expandedGroups: [],\r\n            filteringColumnExtensions: [],\r\n            filters: [],\r\n            expandedRowIds: [],\r\n            enabledFilterRows: false,\r\n            open_requisitos:  false,\r\n            requisitos:       \"\"\r\n        }\r\n\r\n        /*const trow = TableRow => withStyles(styles, { name: \"Row\" })( ({classes,highlighted, rowIndex, row, selectByRowClick, ...props}) => {\r\n            const odd = !!(rowIndex % 2);\r\n            const r = props.tableRow \r\n                    \r\n            if (this.state.selection[0] === props.tableRow.row.ID_ROL) { isVisibleRowSelected = true; }\r\n               return (\r\n                   <Table.Row {...props}\r\n                     //onClick={clickselection(r.row.ID_ROL,r.row.CODIGO,r.row.NOMBRE,r.row.DESCRIPCION,r.row.USUARIOS,r.row.PERMISOS)}\r\n                   style={{\r\n                       cursor: 'pointer',\r\n                        //backgroundColor: r.row.GRUPO_OPTATIVA==='Cursos'?'blue':'inherit',                 \r\n                       padding: '0rem 0rem !important',margin: '0px',                 \r\n                     }}\r\n                   />\r\n                 );\r\n           });*/\r\n\r\n           \r\nconst VirtualTable_cellComponent = (props) => {\r\n  const { column }    = props;\r\n  const {row}         = props;\r\n\r\n  const ClickBoton=(REQUISITOS) => event =>{\r\n    var requisitos_array=REQUISITOS.split('/n')\r\n    var requisitos_comp\r\n\r\n    requisitos_comp=requisitos_array.map((item,index)=>{\r\n    var contenido=item.split('_');\r\n\r\n      if(index>0 && item!=='')\r\n      return(\r\n        <Paper key={\"Pa-\"+item} elevation={3} style={{padding:10,marginBottom:5 }}>\r\n        <b>{contenido[0]}</b>\r\n        {' - '+contenido[1]}\r\n        </Paper>\r\n      )\r\n      \r\n      if(index===0 && item!=='')\r\n      return(\r\n        <Paper key={\"Pa-\"+item} elevation={3} style={{padding:10,marginBottom:5 }}>\r\n        <b>{contenido[0]}</b>\r\n        {' - '+contenido[1]}\r\n        </Paper>\r\n      );\r\n      return null;\r\n    })\r\n\r\n    this.setState({open_requisitos: true,requisitos:requisitos_comp })\r\n  }\r\n\r\n  if(column.name==='SUFICIENCIA')\r\n  {\r\n    return(\r\n      <Table.Cell {...props} style={{padding:0}}>\r\n        <Checkbox checked={row.SUFICIENCIA}/>\r\n      </Table.Cell>\r\n    );\r\n  }\r\n  if(column.name==='OPTATIVA')\r\n  {\r\n    return(\r\n      <Table.Cell {...props} style={{padding:0}}>\r\n        <Checkbox checked={row.OPTATIVA} />\r\n      </Table.Cell>\r\n    );\r\n  }\r\n  if(column.name==='BOTON' && row.REQUISITOS!==null)\r\n  {\r\n    return(\r\n      <Table.Cell {...props} style={{padding:0}}>\r\n        <IconButton onClick={ClickBoton(row.REQUISITOS)} >\r\n          <Icono icono='List' />\r\n        </IconButton>\r\n      </Table.Cell>\r\n    );\r\n  }\r\n\r\n  return(\r\n      <Table.Cell {...props} style={{padding:0}}/>\r\n    );\r\n}\r\n\r\n           //this.trow = trow(Table.Row);\r\n           this.VirtualTable_cellComponent = VirtualTable_cellComponent;\r\n        \r\n}; //FIN CONSTRUCTORS\r\n\r\n\r\ncomponentDidMount()\r\n{\r\n        let _this = this;\r\n        _this.actualizarbarra(false)\r\n\r\n        Auth.loggedIn().then( function(b){\r\n            _this.setState({ isLoggin: b})\r\n            if(b)\r\n            Request.get(`${ip}/carrerasalumno/obtener_carreras_alumno/${Auth.getProfile().user}`)\r\n            .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n            .retry(1)\r\n            .timeout({ response: 20000, deadline: 50000, }) \r\n            .end((err, res)=> {\r\n             if (err) { \r\n                    if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n                    {\r\n                      return;  \r\n                    }\r\n                    (async function() {\r\n                        funciones.showToast('e','Error de conexión')\r\n                    })();//FIN FUNCION ASYNC\r\n                    return;\r\n            }\r\n            const tmp = JSON.parse(res.text);\r\n            if(tmp.length>0){\r\n                   var arr=[] \r\n                   arr.push(tmp[0].CARRERA)\r\n                    _this.setState({ rows: tmp, expandedGroups:arr,heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable\r\n                    }); \r\n                }\r\n                else\r\n                {\r\n                    _this.setState({rows: [], heightTableMain:   funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n                }\r\n            _this.actualizarbarra(true)\r\n        })\r\n    })\r\n}\r\n\r\nchangeExpandedGroups = expandedGroups =>\r\n{\r\n    this.setState({ expandedGroups });\r\n};\r\n\r\ncerrarmodal =()=> event =>{\r\n  this.setState({open_requisitos: false })\r\n}\r\n\r\n/*                                          RENDER                          */\r\nrender() {\r\n    const { classes } = this.props;\r\n\r\n    const botones_requisitos = [\r\n      {icono: 'Close',  nombre: 'Cerrar' ,onclick: this.cerrarmodal(), display:'auto', color: 'red'},\r\n    ]\r\n\r\n    if (this.state.isLoggin === true )\r\n    {\r\n    return (    \r\n    <React.Fragment>\r\n      <Backdrop className={classes.backdrop}  open={this.state.openBackDrop}>\r\n          <CircularProgress color=\"inherit\" />\r\n          <span style={{ marginTop: '10px' }}>{this.state.open_seleccion?'Guardando...':this.state.open_borrar?'Eliminando...':''}</span>\r\n      </Backdrop>\r\n\r\n      {/*--------------------------------------------------------------------------- DIALOG REQUISITOS --------------------------------------------------------------------*/}\r\n      \r\n      <Dialog open={this.state.open_requisitos}  //onClose={this.cerrarmodal()} \r\n      fullWidth={true} maxWidth='xs'\r\n      fullScreen={movil_pequeño?true:false}\r\n      //onEntering={this.onEntering}\r\n      TransitionProps={{ onEntering: this.onEntering }}\r\n      >\r\n      <DialogTitle>\r\n        <Typography component='span'  variant='subtitle2'>\r\n          {'Requisitos'}\r\n        </Typography>\r\n      </DialogTitle>\r\n      <DialogContent>\r\n      <div style={{height:'300px'}}>\r\n        {this.state.requisitos}\r\n      </div>\r\n      </DialogContent>\r\n        <BarraBotones botones={botones_requisitos} backgroundColor='white' l={this.l} e={this.e} i={this.i}/>\r\n      </Dialog>\r\n\r\n    {/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/}\r\n\r\n      <div ref={this.tablaRef} style={{background:'white',marginLeft:movil_pequeño?globales.tabla.marginleft_movil:globales.tabla.marginleft,marginRight:movil_pequeño?globales.tabla.marginright_movil:globales.tabla.marginright}}>\r\n      <CustomTable\r\n            Columns={columns}                                    \r\n            Rows={this.state.rows}                                          \r\n            TableColumnExtensions={tableColumnExtensions}\r\n            DefaultHiddenColumnNames={defaultHiddenColumnNames}\r\n            getRowId = {getRowId}\r\n            height={this.state.heightTableMain}\r\n            Grouping={grouping} \r\n            ChangeExpandedGroups = {this.changeExpandedGroups}\r\n            //Filters = {this.state.filters}\r\n            //onFiltersChange = {this.changeFilters}\r\n            ExpandedGroups = {this.state.expandedGroups}\r\n            //ExpandedRowIds = {this.state.expandedRowIds}\r\n            enabledFilterRows= {this.state.enabledFilterRows}\r\n            groupContentComponent={GroupCellContent}\r\n            tableGroupRow_cellComponent={tableGroupRow_cellComponent}\r\n            groupIconComponent={groupIconComponent}\r\n            standarPlugin = { <TableRowsIndexer/> }\r\n            //RowComponent={this.trow}\r\n            VirtualTable_cellComponent={this.VirtualTable_cellComponent}\r\n            //rowHeaderCellComponent={TableTreeColumnHeader_cellComponent}\r\n            showSelectionColumn={false}\r\n        />\r\n      </div>\r\n    </React.Fragment>\r\n    ); /// finaliza return\r\n    }\r\n    else if (this.state.isLoggin === false)\r\n    {\r\n        Auth.logout()\r\n        window.location.reload();\r\n        return; \r\n    }\r\n\r\n\r\n    return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n\r\n    \r\n\r\n    ","import React                                                        from 'react';\r\nimport { withStyles }                                               from '@material-ui/core/styles';\r\nimport {colores,funciones}                                from '../../global';\r\nimport AuthService                                                  from '../../AuthService';\r\nimport CircularProgress                                             from '@material-ui/core/CircularProgress';\r\nimport Backdrop                                                     from '@material-ui/core/Backdrop';\r\nimport Icono                                                        from '../../components/Icono'\r\nimport '../../CSS/Style_principal.css'\r\nimport { Avatar } from '@material-ui/core';\r\n\r\nlet Auth = new AuthService();\r\nvar movil=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\n/*                           CLASES DE ESTILO                       */\r\n\r\nvar styles = theme =>({\r\n    backdrop: {\r\n      zIndex: 500000,\r\n      color: '#fff', \r\n      flexDirection: 'column'\r\n    },\r\n    })\r\n\r\n/*                                        EXPORT                                      */\r\nexport default withStyles(styles)(\r\n    class Campaña_ISO extends React.Component {\r\n      tablaRef = React.createRef();\r\n\r\n      constructor(props) {\r\n        super(props);\r\n        this.l= props.l\r\n        this.e= props.e\r\n        this.i= props.i\r\n        this.actualizarbarra=props.actualizarbarra\r\n        this.actualizarcircular=props.actualizarcircular\r\n\r\n        this.state = {\r\n            openBackDrop:      false, \r\n            isLoggin:          undefined,\r\n            heightTableMain:    0,\r\n            rows: [],\r\n            selection: [],\r\n            grouping: [],\r\n            expandedGroups: [],\r\n            filteringColumnExtensions: [],\r\n            filters: [],\r\n            expandedRowIds: [],\r\n            enabledFilterRows: true\r\n        }\r\n        \r\n    }; //FIN CONSTRUCTORS\r\n\r\n\r\n\r\ncomponentDidMount()\r\n{\r\n        let _this = this;\r\n        _this.actualizarbarra(false)\r\n\r\n        Auth.loggedIn().then( function(b){\r\n            _this.setState({ isLoggin: b})\r\n            if(b){\r\n              _this.setState({ heightTableMain:   funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n            }\r\n            _this.actualizarbarra(true)\r\n        })\r\n}\r\n\r\n/*                                          RENDER                          */\r\nrender() {\r\n    const { classes } = this.props;\r\n\r\n\r\n    if (this.state.isLoggin === true )\r\n    {\r\n    return (    \r\n    <React.Fragment>\r\n      <Backdrop className={classes.backdrop}  open={this.state.openBackDrop}>\r\n          <CircularProgress color=\"inherit\" />\r\n          <span style={{ marginTop: '10px' }}>{this.state.open_seleccion?'Guardando...':this.state.open_borrar?'Eliminando...':''}</span>\r\n      </Backdrop>\r\n\r\n      <div ref={this.tablaRef} style={{background:'white'}}>\r\n        {movil?\r\n        <div  style={{height:this.state.heightTableMain,display:'flex',alignItems: 'center',justifyContent:'center'}}>\r\n            <div align='center' style={{display:'block'}}>\r\n            <Avatar style={{margin:5,background: colores.azul,borderRadius:15}}><Icono icono=\"Drive\" /></Avatar>           \r\n            <a  href='/DOC200214-20022014181035.pdf' target=\"_blank\">DOC200214  PDF  File</a>\r\n            </div>\r\n        </div>:\r\n        <object type=\"application/pdf\" data={'/DOC200214-20022014181035.pdf'}   height={this.state.heightTableMain} width=\"100%\">\r\n        <embed src=\"/DOC200214-20022014181035.pdf\" aria-labelledby='ISO' type=\"application/pdf\" />    \r\n        </object> \r\n        }\r\n      </div>\r\n    </React.Fragment>\r\n    ); /// finaliza return\r\n    }\r\n    else if (this.state.isLoggin === false)\r\n    {\r\n        Auth.logout()\r\n        window.location.reload();\r\n        return; \r\n    }\r\n    return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n\r\n    \r\n\r\n    ","import React                                                        from 'react';\r\nimport { withStyles }                                               from '@material-ui/core/styles';\r\nimport {colores, globales,funciones}                                from '../../global';\r\nimport BarraBotones                                                 from '../../components/Barra_menu';\r\nimport AuthService                                                  from '../../AuthService';\r\nimport Request                                                      from 'superagent';\r\nimport CustomTable                                                  from '../../components/CustomTable';\r\nimport {Table}                                                      from '@devexpress/dx-react-grid-material-ui';\r\nimport TableRowsIndexer                                             from '../../components/tableRowsIndexer'\r\nimport CircularProgress                                             from '@material-ui/core/CircularProgress';\r\nimport Backdrop                                                     from '@material-ui/core/Backdrop';\r\nimport { Typography,TextField }                                     from '@material-ui/core';\r\nimport Reporte                                                      from '../../components/Modalreporte';\r\nimport Paper                                                        from '@material-ui/core/Paper';\r\nimport Autocomplete                                                 from '@material-ui/lab/Autocomplete';\r\n\r\n\r\nlet Auth = new AuthService();\r\nvar ip=globales.ip\r\nvar border_dialog=globales.border_dialog\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet isVisibleRowSelected = false;\r\n//const colorRowSelected =  'rgb('+ colores.tabla.selection +')';\r\n//let alternateColorRow1 = colores.tabla.alternateColorRow1; \r\n//let alternateColorRow2 = colores.tabla.alternateColorRow2;\r\n\r\nconst getRowId = row => row.ID_SECCION;\r\n\r\n/*                           CLASES DE ESTILO                       */\r\n\r\nvar styles = theme =>({\r\n    Dialog:{\r\n        borderRadius: border_dialog,\r\n        margin:0,\r\n        padding:0\r\n    },\r\n    backdrop: {\r\n      zIndex: 500000,\r\n      color: '#fff', \r\n      flexDirection: 'column'\r\n    },\r\n    select: { //CONFIGURA EL SELECT \r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'50%',\r\n      },\r\n      textField: {\r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'20%',\r\n        width: '20%'      \r\n      },\r\n    })\r\n\r\n    const columns= [\r\n        {name:'ID_SECCION',title: 'ID_SECCION'}\r\n        ,{name:'CODIGO_CURSO',title: 'Código'}\r\n        ,{name:'DESCRIPCION_CURSO',title: 'Descripción'}\r\n        ,{name:'INICIO',title: 'Inicio'}\r\n        ,{name:'FIN',title: 'Fin'}\r\n        ,{name:'SECCION',title: 'Sección'}\r\n        ,{name:'CODIGO',title: 'Aula'}\r\n        ,{name:'JORNADA',title: 'Jornada'}\r\n        ,{name:'MODALIDAD',title: 'Grupo'}\r\n        ,{name:'CANTIDAD',title: 'Cantidad'}\r\n        ,{name:'ANIO_PERIODO',title: 'ANIO_PERIODO'}\r\n      ];\r\n  \r\n      const defaultHiddenColumnNames= ['ID_SECCION','ANIO_PERIODO'];\r\n  \r\n      const tableColumnExtensions= [\r\n          { columnName: 'CODIGO_CURSO', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'DESCRIPCION_CURSO', wordWrapEnabled: false, align: 'center' ,width: 420},\r\n          { columnName: 'INICIO', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'FIN', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'SECCION', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'CODIGO', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'JORNADA', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'MODALIDAD', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'CANTIDAD', wordWrapEnabled: false, align: 'center',width: 110},\r\n      ];\r\n\r\n\r\n\r\n/*                                        EXPORT                                      */\r\nexport default withStyles(styles)(\r\n    class EstudiantesPreMatriculados extends React.Component {\r\n      tablaRef = React.createRef();\r\n      descripcionRef = React.createRef();\r\n\r\n      constructor(props) {\r\n        super(props);\r\n        this.l= props.l\r\n        this.e= props.e\r\n        this.i= props.i\r\n        this.isVisibleRowSelected=isVisibleRowSelected\r\n        this.actualizarbarra=props.actualizarbarra\r\n        this.actualizarcircular=props.actualizarcircular\r\n\r\n        this.state = {\r\n            openBackDrop:      false, \r\n            isLoggin:          undefined,\r\n            heightTableMain:    0,\r\n            rows: [],\r\n            selection: [],\r\n            grouping: [],\r\n            expandedGroups: [],\r\n            filteringColumnExtensions: [],\r\n            filters: [],\r\n            expandedRowIds: [],\r\n            enabledFilterRows: true,\r\n            selection_row:  [],\r\n            vobtenerdescripcion:'',\r\n            loadingMain: false,\r\n\r\n            optionsPeriodos: [],\r\n            valuePeriodos: [],\r\n            loadingPeriodos: true\r\n\r\n\r\n        }\r\n\r\n        const RenderOption = ((option) => {\r\n          return (\r\n            <div style={{ lineHeight: 1.9,width: \"100%\"}}>\r\n            { option.PERIODO }{' ('}<li style={{ fontWeight:\"bold\" ,textAlign: \"center\", display: \" inline-block\"}}>{ option.DESCRIPCION }</li>{')'}\r\n            </div>\r\n          );\r\n        });\r\n\r\n        const VirtualTable_cellComponent = (getTime) => (props) => {\r\n            const { column }    = props;\r\n            const {row}         = props;\r\n        \r\n            if (column.name === 'INICIO')\r\n          {\r\n            return ( <Table.Cell {...props} style={{padding: 0, height:'8px',}}>\r\n                      { row.INICIO !== null ? getTime(row.INICIO, 1) : row.INICIO }\r\n                    </Table.Cell>);\r\n          }\r\n        \r\n          if (column.name === 'FIN')\r\n          {\r\n            return ( <Table.Cell {...props} style={{padding: 0, height:'8px',}}>\r\n                      { row.FIN !== null ? getTime(row.FIN, 1) : row.FIN }\r\n                    </Table.Cell>);\r\n          }\r\n          \r\n        return(\r\n            <Table.Cell {...props}\r\n            \r\n            />\r\n          );\r\n        }\r\n\r\n\r\n        this.VirtualTable_cellComponent = VirtualTable_cellComponent; \r\n       this.RenderOption=RenderOption;\r\n\r\n    }; //FIN CONSTRUCTORS\r\n\r\n\r\nchangeSelection = (selection) =>{\r\n    if(selection[selection.length-1]===undefined)\r\n    {\r\n        this.setState({ selection: this.state.selection});\r\n    }\r\n    else{\r\n        this.state.rows.forEach(element => {\r\n          if(element.ID_SECCION===funciones.getIdRowChecking(selection,this.state.selection))\r\n          {\r\n           this.setState({selection: [selection[selection.length-1]],selection_row:[{ID_SECCION: element.ID_SECCION}]})\r\n             \r\n              \r\n            return;\r\n          }\r\n        });\r\n       \r\n    }\r\n  }\r\n\r\n  onChangeAutocomplete = (event, newValue)=>\r\n  {\r\n    this.setState({ rows: [],valuePeriodos:newValue}, ()=>{  \r\n  \r\n      if (newValue === null)\r\n      {\r\n       return;\r\n      }\r\n     else\r\n      {\r\n        this.setState({ loadingMain: true }, ()=>{\r\n        this.obtener_cursos(newValue.ID_CONTROL_MATRICULA);\r\n        });\r\n      }\r\n  \r\n    });\r\n       \r\n  }\r\n\r\n  obtener_cursos= (id_control_matricula)=>{\r\n    new Request.get(`${ip}/estudiantesprematriculados/obtener_cursos_catedratico/${id_control_matricula}/${Auth.getProfile().user}`)\r\n     .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n     .retry(0)\r\n     .timeout({ response: 20000, deadline: 50000, }) \r\n     .end((err, res)=> {\r\n      if (err) { \r\n             if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n             {\r\n               window.location.reload();\r\n               return;  \r\n             }\r\n             (async function() {\r\n                 funciones.showToast('e','Error de conexión')\r\n             })();//FIN FUNCION ASYNC\r\n             return;\r\n     }\r\n     const tmp = JSON.parse(res.text);\r\n     if(tmp.length>0)\r\n     {\r\n       this.setState({ rows: tmp,loadingMain: false}); \r\n     }\r\n     else\r\n     {   \r\n       this.setState({rows: [], heightTableMain:funciones.getHeightTableMain(movil_pequeño,this).heightTable,loadingMain: false})\r\n     }\r\n     \r\n     this.actualizarbarra(true)\r\n   })\r\n   \r\n   }    \r\n  \r\n  \r\n\r\n    \r\n\r\n  generarreporte=event=>{\r\n    if(this.state.selection.length!==0)\r\n    document.getElementById(\"BT-ListaPrematriculadosCat\").click();\r\n  }\r\n\r\n\r\ncomponentDidMount()\r\n{\r\n        let _this = this;\r\n        _this.actualizarbarra(false)\r\n\r\n        /*Auth.loggedIn().then( function(b){\r\n            _this.setState({ isLoggin: b})\r\n            if(b)*/\r\n            this.setState({ isLoggin: Auth.getProfile().plataforma !== undefined ? true : false }, ()=>{\r\n            this.setState({heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n\r\n/*********************************************************************************************************************************/\r\nRequest.get(`${ip}/estudiantesprematriculados/obtener_periodo_activo_calificador/${Auth.getProfile().user}`)\r\n.set({'authorization': 'Bearer ' + Auth.getToken() })\r\n.retry(1)\r\n.timeout({ response: 20000, deadline: 50000, }) \r\n.end((err, res)=> {\r\n if (err) { \r\n        if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n        {\r\n          window.location.reload();\r\n          return;  \r\n        }\r\n        (async function() {\r\n            funciones.showToast('e','Error de conexión periodo')\r\n        })();//FIN FUNCION ASYNC\r\n        return;\r\n}\r\nconst tmp = JSON.parse(res.text);\r\nif(tmp.length>0){\r\n  this.setState({optionsPeriodos:tmp,loadingPeriodos: false,\r\n  valuePeriodos:{ID_CONTROL_MATRICULA: tmp[0].ID_CONTROL_MATRICULA, PERIODO: tmp[0].PERIODO, DESCRIPCION:tmp[0].DESCRIPCION}})\r\n \r\n  this.obtener_cursos(this.state.valuePeriodos.ID_CONTROL_MATRICULA)    \r\n\r\n  console.log('PRUEBAS ' + this.state.valuePeriodos.PERIODO,this.state.optionsPeriodos)\r\n}\r\n\r\n_this.actualizarbarra(true)\r\n})\r\n\r\n})\r\n\r\n\r\n}\r\n\r\n\r\n/*                                          RENDER                          */\r\nrender() {\r\n    const { classes } = this.props;\r\n\r\n    const botones = [\r\n        {icono: 'Print', toolt: 'Imprimir',    nombre: 'Imprimir'   ,escritura:true , disabled:this.state.selection.length===0 ,onclick: this.generarreporte\r\n        ,  display: 'auto'},\r\n      ]\r\n\r\n    if (this.state.isLoggin === true )\r\n    {\r\n    return (    \r\n    <React.Fragment>\r\n      <Backdrop className={classes.backdrop}  open={this.state.openBackDrop}>\r\n          <CircularProgress color=\"inherit\" />\r\n          <span style={{ marginTop: '10px' }}>{this.state.open_seleccion?'Guardando...':this.state.open_borrar?'Eliminando...':''}</span>\r\n      </Backdrop>\r\n\r\n      \r\n      <Reporte id=\"BT-ListaPrematriculadosCat\" \r\n        parametros={this.state.selection_row[0]!==undefined?this.state.vobtenerdescripcion.toString()+','+ this.state.selection_row[0].ID_SECCION.toString():''}\r\n        nom_boton=\"Imprimir\" nom_bar=\"Lista de Prematriculados\" \r\n        label_reporte={'LISTAPREMATRICULADOS'}\r\n        backcolor={colores.azul} fill={'white'} fullScreen={true} boton={false}  color=\"primary\" color_bar='primary'\r\n        opciones={false}\r\n      />\r\n     \r\n      <div align=\"left\" style={{marginLeft:movil_pequeño?1:20,marginBottom: 10,marginTop: 15,display:\"flex\"}}>\r\n      <Typography align='left' style={{fontWeight:'bold',fontSize:15}}>\r\n        Periodo:   \r\n      </Typography> \r\n\r\n      <Autocomplete\r\n        id=\"periodos\"\r\n        options={this.state.optionsPeriodos}\r\n        getOptionLabel={(option) =>  option.PERIODO +' (' + option.DESCRIPCION + ')' }\r\n        style={{ marginTop: movil_pequeño?5:-15,marginLeft:5, width: !movil_pequeño ? '230px' : '100%'}}\r\n        renderInput={(params) => <TextField {...params} \r\n                                    label=\"Periodos\"\r\n                                    variant=\"outlined\" \r\n                                    InputProps={{...params.InputProps,\r\n                                                endAdornment: (\r\n                                                  <React.Fragment   >\r\n                                                    {this.state.loadingPeriodos ? <CircularProgress size={18} /> : null}\r\n                                                    {params.InputProps.endAdornment}\r\n                                                  </React.Fragment>\r\n                                                ),\r\n                                              }}\r\n                                    fullWidth\r\n                                   />}\r\n        renderOption={this.RenderOption}\r\n        onChange={this.onChangeAutocomplete}                                  \r\n        loading={this.state.loadingPeriodos}\r\n        value={this.state.valuePeriodos}\r\n        PaperComponent={(props)=>(<Paper elevation={12} {...props} />)}  \r\n        openOnFocus={true}                    \r\n      />\r\n      \r\n\r\n      </div>\r\n      {/* COLUMNA DESCRIPCION */}\r\n \r\n      <div align=\"left\" style={{marginLeft:movil_pequeño?1:20,marginBottom: 5,marginTop: 20, display: movil_pequeño?\"block\":\"flex\" }}>\r\n        <Typography align='left'>\r\n         Descripción Columna en Reporte:  \r\n        </Typography>\r\n       \r\n        <TextField style={{marginTop: movil_pequeño?5:-5,marginLeft:5, width:movil_pequeño?'98%':'20%'}}\r\n            variant=\"outlined\"  \r\n            id=\"descripcion\" label=\"Descripción\" name=\"descripcion\" \r\n            fullWidth={movil_pequeño}\r\n            //defaultValue= {currentdescripcion}\r\n            //inputProps={{ ref: this.descripcionRef}}\r\n            onChange={event => {this.setState({vobtenerdescripcion: event.target.value});}}\r\n        />\r\n        </div>\r\n       \r\n      {/*------------------- */}\r\n      {/*--BOTON DE IMPRIMIR */}\r\n\r\n      <div style={{marginLeft:movil_pequeño?1:20,marginBottom:5,marginTop:5 ,display: movil_pequeño?\"block\":\"flex\",}}>\r\n        <Typography align='left'>\r\n         Debe de Marcar una Clase y luego Presionar el Botón de Impresión:\r\n        </Typography>\r\n        <div style={{marginLeft: movil_pequeño?'0%':'22%',boder:'none'}}>\r\n            <BarraBotones   align='center' botones={botones} l={this.l} e={this.e} i={this.i}/> \r\n        </div>\r\n      </div> \r\n       {/*------------------- */}\r\n      <div ref={this.tablaRef} style={{background:'white',marginLeft:movil_pequeño?globales.tabla.marginleft_movil:globales.tabla.marginleft,marginRight:movil_pequeño?globales.tabla.marginright_movil:globales.tabla.marginright}}>\r\n        <CustomTable\r\n            Columns={columns}                                    \r\n            Rows={this.state.rows}                                          \r\n            TableColumnExtensions={tableColumnExtensions}\r\n            DefaultHiddenColumnNames={defaultHiddenColumnNames}\r\n            getRowId = {getRowId}\r\n            Selection={this.state.selection}\r\n            ChangeSelection = {this.changeSelection}\r\n            height={this.state.heightTableMain===0?120:this.state.heightTableMain-120}\r\n            //Filters = {this.state.filters}\r\n            //onFiltersChange = {this.changeFilters}\r\n            //ExpandedGroups = {this.state.expandedGroups}\r\n            //ExpandedRowIds = {this.state.expandedRowIds}\r\n            enabledFilterRows= {this.state.enabledFilterRows}\r\n            standarPlugin = { <TableRowsIndexer/> }\r\n            VirtualTable_cellComponent={this.VirtualTable_cellComponent(funciones.getTime)}\r\n            showSelectionColumn={true}\r\n            RowComponent={this.trow}\r\n\r\n        />\r\n      </div>\r\n    </React.Fragment>\r\n    ); /// finaliza return\r\n    }\r\n    else if (this.state.isLoggin === false)\r\n    {\r\n        Auth.logout()\r\n        window.location.reload();\r\n        return; \r\n    }\r\n\r\n\r\n    return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n","import React                                                        from 'react';\r\nimport { withStyles }                                               from '@material-ui/core/styles';\r\nimport {colores, globales,funciones}                                from '../../global';\r\nimport BarraBotones                                                 from '../../components/Barra_menu';\r\nimport AuthService                                                  from '../../AuthService';\r\nimport Request                                                      from 'superagent';\r\nimport CustomTable                                                  from '../../components/CustomTable';\r\nimport {Table}                                                      from '@devexpress/dx-react-grid-material-ui';\r\nimport TableRowsIndexer                                             from '../../components/tableRowsIndexer'\r\nimport CircularProgress                                             from '@material-ui/core/CircularProgress';\r\nimport Backdrop                                                     from '@material-ui/core/Backdrop';\r\nimport { Typography,TextField }                                     from '@material-ui/core';\r\nimport Reporte                                                      from '../../components/Modalreporte';\r\nimport Paper                                                        from '@material-ui/core/Paper';\r\nimport Autocomplete                                                 from '@material-ui/lab/Autocomplete';\r\n\r\nlet Auth = new AuthService();\r\nvar ip=globales.ip\r\nvar border_dialog=globales.border_dialog\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet isVisibleRowSelected = false;\r\n//const colorRowSelected =  'rgb('+ colores.tabla.selection +')';\r\n//let alternateColorRow1 = colores.tabla.alternateColorRow1; \r\n//let alternateColorRow2 = colores.tabla.alternateColorRow2;\r\n\r\nconst getRowId = row => row.ID_SECCION;\r\n\r\n/*                           CLASES DE ESTILO                       */\r\n\r\nvar styles = theme =>({\r\n    Dialog:{\r\n        borderRadius: border_dialog,\r\n        margin:0,\r\n        padding:0\r\n    },\r\n    backdrop: {\r\n      zIndex: 500000,\r\n      color: '#fff', \r\n      flexDirection: 'column'\r\n    },\r\n    select: { //CONFIGURA EL SELECT \r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'50%',\r\n      },\r\n      textField: {\r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'20%',\r\n        width: '20%'      \r\n      },\r\n  \r\n    })\r\n\r\n    const columns= [\r\n        {name:'ID_SECCION',title: 'ID_SECCION'}\r\n        ,{name:'CODIGO_CURSO',title: 'Código'}\r\n        ,{name:'DESCRIPCION_CURSO',title: 'Descripción'}\r\n        ,{name:'INICIO',title: 'Inicio'}\r\n        ,{name:'FIN',title: 'Fin'}\r\n        ,{name:'SECCION',title: 'Sección'}\r\n        ,{name:'CODIGO',title: 'Aula'}\r\n        ,{name:'JORNADA',title: 'Jornada'}\r\n        ,{name:'MODALIDAD',title: 'Grupo'}\r\n        ,{name:'CANTIDAD',title: 'Cantidad'}\r\n        ,{name:'ANIO_PERIODO',title: 'ANIO_PERIODO'}\r\n      ];\r\n  \r\n      const defaultHiddenColumnNames= ['ID_SECCION','ANIO_PERIODO'];\r\n  \r\n      const tableColumnExtensions= [\r\n          { columnName: 'CODIGO_CURSO', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'DESCRIPCION_CURSO', wordWrapEnabled: false, align: 'center' ,width: 420},\r\n          { columnName: 'INICIO', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'FIN', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'SECCION', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'CODIGO', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'JORNADA', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'MODALIDAD', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'CANTIDAD', wordWrapEnabled: false, align: 'center',width: 110},\r\n      ];\r\n\r\n\r\n/*                                        EXPORT                                      */\r\nexport default withStyles(styles)(\r\n    class EstudiantesMatriculados extends React.Component {\r\n      tablaRef = React.createRef();\r\n      descripcionRef = React.createRef();\r\n\r\n      constructor(props) {\r\n        super(props);\r\n        this.l= props.l\r\n        this.e= props.e\r\n        this.i= props.i\r\n        this.isVisibleRowSelected=isVisibleRowSelected\r\n        this.actualizarbarra=props.actualizarbarra\r\n        this.actualizarcircular=props.actualizarcircular\r\n\r\n        this.state = {\r\n            openBackDrop:      false, \r\n            isLoggin:          undefined,\r\n            heightTableMain:    0,\r\n            rows: [],\r\n            selection: [],\r\n            grouping: [],\r\n            expandedGroups: [],\r\n            filteringColumnExtensions: [],\r\n            filters: [],\r\n            expandedRowIds: [],\r\n            enabledFilterRows: true,\r\n            selection_row:  [],\r\n            vobtenerdescripcion:'',\r\n            loadingMain: false,\r\n\r\n            optionsPeriodos: [],\r\n            valuePeriodos: [],\r\n            loadingPeriodos: true\r\n\r\n        }\r\n\r\n        const RenderOption = ((option) => {\r\n          return (\r\n            <div style={{ lineHeight: 1.9,width: \"100%\"}}>\r\n            { option.PERIODO }{' ('}<li style={{ fontWeight:\"bold\" ,textAlign: \"center\", display: \" inline-block\"}}>{ option.DESCRIPCION }</li>{')'}\r\n            </div>\r\n          );\r\n        });\r\n\r\n          const VirtualTable_cellComponent = (getTime) => (props) => {\r\n            const { column }    = props;\r\n            const {row}         = props;\r\n        \r\n            if (column.name === 'INICIO')\r\n          {\r\n            return ( <Table.Cell {...props} style={{padding: 0, height:'8px',}}>\r\n                      { row.INICIO !== null ? getTime(row.INICIO, 1) : row.INICIO }\r\n                    </Table.Cell>);\r\n          }\r\n        \r\n          if (column.name === 'FIN')\r\n          {\r\n            return ( <Table.Cell {...props} style={{padding: 0, height:'8px',}}>\r\n                      { row.FIN !== null ? getTime(row.FIN, 1) : row.FIN }\r\n                    </Table.Cell>);\r\n          }\r\n          \r\n        return(\r\n            <Table.Cell {...props}\r\n            \r\n            />\r\n          );\r\n        } \r\n\r\n\r\n        this.VirtualTable_cellComponent = VirtualTable_cellComponent; \r\n        this.RenderOption=RenderOption;\r\n   \r\n        \r\n    }; //FIN CONSTRUCTORS\r\n\r\n\r\nchangeSelection = (selection) =>{\r\n    if(selection[selection.length-1]===undefined)\r\n    {\r\n        this.setState({ selection: this.state.selection});\r\n    }\r\n    else\r\n    {\r\n     this.state.rows.forEach(element => {\r\n        if(element.ID_SECCION===funciones.getIdRowChecking(selection,this.state.selection))\r\n        {\r\n            this.setState({selection: [selection[selection.length-1]],selection_row:[{ID_SECCION: element.ID_SECCION}]})\r\n        }\r\n      });\r\n       \r\n    }\r\n }\r\n\r\n  onChangeAutocomplete = (event, newValue)=>\r\n  {\r\n    this.setState({ rows: [],valuePeriodos:newValue}, ()=>{  \r\n\r\n      if (newValue === null)\r\n      {\r\n          return;\r\n      }\r\n      else\r\n      {\r\n        this.setState({ loadingMain: true }, ()=>{\r\n        this.obtener_cursos(newValue.ID_CONTROL_MATRICULA);\r\n        });\r\n      }\r\n\r\n    });\r\n     \r\n  }\r\n\r\n\r\n generarreporte=event=>{\r\n    if(this.state.selection.length!==0)\r\n    document.getElementById(\"BT-ListaMatriculadosCat\").click();\r\n\r\n }\r\n\r\n obtener_cursos= (id_control_matricula)=>{\r\n new Request.get(`${ip}/estudiantesmatriculados/obtener_cursos_catedratico/${id_control_matricula}/${Auth.getProfile().user}`)\r\n  .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n  .retry(0)\r\n  .timeout({ response: 20000, deadline: 50000, }) \r\n  .end((err, res)=> {\r\n   if (err) { \r\n          if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n          {\r\n            window.location.reload();\r\n            return;  \r\n          }\r\n          (async function() {\r\n              funciones.showToast('e','Error de conexión')\r\n          })();//FIN FUNCION ASYNC\r\n          return;\r\n  }\r\n  const tmp = JSON.parse(res.text);\r\n  if(tmp.length>0)\r\n  {\r\n    this.setState({ rows: tmp,loadingMain: false}); \r\n  }\r\n  else\r\n  {   \r\n    this.setState({rows: [], heightTableMain:funciones.getHeightTableMain(movil_pequeño,this).heightTable,loadingMain: false})\r\n  }\r\n  \r\n  this.actualizarbarra(true)\r\n})\r\n\r\n}\r\n\r\n\r\ncomponentDidMount()\r\n{\r\n        let _this = this;\r\n        _this.actualizarbarra(false)\r\n\r\n        /*Auth.loggedIn().then( function(b){\r\n            _this.setState({ isLoggin: b})\r\n            if(b)*/\r\n            this.setState({ isLoggin: Auth.getProfile().plataforma !== undefined ? true : false }, ()=>{\r\n            this.setState({heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n\r\n/*********************************************************************************************************************************/\r\n          Request.get(`${ip}/estudiantesmatriculados/obtener_periodo_activo_calificador/${Auth.getProfile().user}`)\r\n            .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n            .retry(1)\r\n            .timeout({ response: 20000, deadline: 50000, }) \r\n            .end((err, res)=> {\r\n             if (err) { \r\n                    if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n                    {\r\n                      window.location.reload();\r\n                      return;  \r\n                    }\r\n                    (async function() {\r\n                        funciones.showToast('e','Error de conexión periodo')\r\n                    })();//FIN FUNCION ASYNC\r\n                    return;\r\n            }\r\n            const tmp = JSON.parse(res.text);\r\n            if(tmp.length>0){\r\n              this.setState({optionsPeriodos:tmp,loadingPeriodos: false,\r\n              valuePeriodos:{ID_CONTROL_MATRICULA: tmp[0].ID_CONTROL_MATRICULA, PERIODO: tmp[0].PERIODO, DESCRIPCION:tmp[0].DESCRIPCION}})\r\n             \r\n              this.obtener_cursos(this.state.valuePeriodos.ID_CONTROL_MATRICULA)    \r\n            }\r\n           \r\n            _this.actualizarbarra(true)\r\n            })\r\n\r\n        })\r\n}\r\n\r\n/*                                          RENDER                          */\r\nrender() {\r\n    const { classes } = this.props;\r\n\r\n    const botones = [\r\n        {icono: 'Print', toolt: 'Imprimir', nombre: 'Imprimir' ,escritura:true , disabled:this.state.selection.length===0 ,onclick: this.generarreporte\r\n        ,  display: 'auto'},\r\n      ]\r\n\r\n    if (this.state.isLoggin === true )\r\n    {\r\n    return (    \r\n    <React.Fragment>\r\n      <Backdrop className={classes.backdrop}  open={this.state.openBackDrop}>\r\n          <CircularProgress color=\"inherit\" />\r\n          <span style={{ marginTop: '10px' }}>{this.state.open_seleccion?'Guardando...':this.state.open_borrar?'Eliminando...':''}</span>\r\n      </Backdrop>\r\n\r\n      \r\n      <Reporte id=\"BT-ListaMatriculadosCat\" \r\n        parametros={this.state.selection_row[0]!==undefined?this.state.vobtenerdescripcion.toString()+','+ this.state.selection_row[0].ID_SECCION.toString():''}\r\n        nom_boton=\"Imprimir\" nom_bar=\"Lista de Matriculados\" \r\n        label_reporte={'LISTAMATRICULADOS'}\r\n        backcolor={colores.azul} fill={'white'} fullScreen={true} boton={false}  color=\"primary\" color_bar='primary'\r\n        opciones={false}/>\r\n     \r\n      <div align=\"left\" style={{marginLeft:movil_pequeño?1:20,marginBottom: 10,marginTop: 25,display:\"flex\"}}>\r\n      <Typography align='left' style={{fontWeight:'bold',fontSize:15}} >\r\n        Periodo:   \r\n      </Typography> \r\n\r\n      <Autocomplete\r\n        id=\"periodos\"\r\n        options={this.state.optionsPeriodos}\r\n        getOptionLabel={(option) =>  option.PERIODO +' (' + option.DESCRIPCION + ')' }\r\n        style={{ marginTop: movil_pequeño?5:-15,marginLeft:5, width: !movil_pequeño ? '230px' : '100%'}}\r\n        renderInput={(params) => <TextField {...params} \r\n                                    label=\"Periodos\"\r\n                                    variant=\"outlined\" \r\n                                    InputProps={{...params.InputProps,\r\n                                                endAdornment: (\r\n                                                  <React.Fragment   >\r\n                                                    {this.state.loadingPeriodos ? <CircularProgress size={18} /> : null}\r\n                                                    {params.InputProps.endAdornment}\r\n                                                  </React.Fragment>\r\n                                                ),\r\n                                              }}\r\n                                    fullWidth\r\n                                   />}\r\n        renderOption={this.RenderOption}\r\n        onChange={this.onChangeAutocomplete}                                  \r\n        loading={this.state.loadingPeriodos}\r\n        value={this.state.valuePeriodos}\r\n        PaperComponent={(props)=>(<Paper elevation={12} {...props} />)}  \r\n        openOnFocus={true}                    \r\n      />\r\n\r\n      </div>\r\n      {/* COLUMNA DESCRIPCION */}\r\n \r\n      <div align=\"left\" style={{marginLeft:movil_pequeño?1:20,marginBottom: 5,marginTop: 20, display: movil_pequeño?\"block\":\"flex\"}}>\r\n        <Typography align='left' >\r\n         Descripción Columna en Reporte:  \r\n        </Typography>\r\n       \r\n        <TextField \r\n          style={{marginTop: movil_pequeño?5:-5,marginLeft:5, width:movil_pequeño?'98%':'20%'}}\r\n          variant=\"outlined\"  \r\n          id=\"descripcion\" label=\"Descripción\" name=\"descripcion\" \r\n          fullWidth={movil_pequeño}\r\n          onChange={event => {this.setState({vobtenerdescripcion: event.target.value});}}\r\n        />\r\n        </div>\r\n       \r\n      {/*------------------- */}\r\n      {/*--BOTON DE IMPRIMIR */}\r\n\r\n      <div style={{marginLeft:movil_pequeño?1:20,marginBottom:5,marginTop:5 ,display: movil_pequeño?\"block\":\"flex\",}}>\r\n        <Typography align='left'>\r\n         Debe de Marcar una Clase y luego Presionar el Botón de Impresión:\r\n        </Typography>\r\n        <div style={{marginLeft: movil_pequeño?'0%':'22%',boder:'none'}}>\r\n            <BarraBotones   align='center' botones={botones} l={this.l} e={this.e} i={this.i}/> \r\n        </div>\r\n      </div> \r\n       {/*------------------- */}\r\n      <div ref={this.tablaRef} style={{background:'white',marginLeft:movil_pequeño?globales.tabla.marginleft_movil:globales.tabla.marginleft,marginRight:movil_pequeño?globales.tabla.marginright_movil:globales.tabla.marginright}}>\r\n        <CustomTable\r\n            Columns={columns}                                    \r\n            Rows={this.state.rows}                                          \r\n            TableColumnExtensions={tableColumnExtensions}\r\n            DefaultHiddenColumnNames={defaultHiddenColumnNames}\r\n            getRowId = {getRowId}\r\n            Selection={this.state.selection}\r\n            ChangeSelection = {this.changeSelection}\r\n            height={this.state.heightTableMain===0?120:this.state.heightTableMain-120}\r\n            //Filters = {this.state.filters}\r\n            //onFiltersChange = {this.changeFilters}\r\n            //ExpandedGroups = {this.state.expandedGroups}\r\n            //ExpandedRowIds = {this.state.expandedRowIds}\r\n            loading={this.state.loadingMain} \r\n            enabledFilterRows= {this.state.enabledFilterRows}\r\n            standarPlugin = { <TableRowsIndexer/> }\r\n            VirtualTable_cellComponent={this.VirtualTable_cellComponent(funciones.getTime)}\r\n            showSelectionColumn={true}\r\n            RowComponent={this.trow}\r\n\r\n        />\r\n      </div>\r\n    </React.Fragment>\r\n    ); /// finaliza return\r\n    }\r\n    else if (this.state.isLoggin === false)\r\n    {\r\n        Auth.logout()\r\n        window.location.reload();\r\n        return; \r\n    }\r\n\r\n\r\n    return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n","import React                                                        from 'react';\r\nimport { withStyles }                                               from '@material-ui/core/styles';\r\nimport {colores, globales,funciones}                                from '../../global';\r\nimport BarraBotones                                                 from '../../components/Barra_menu';\r\nimport AuthService                                                  from '../../AuthService';\r\nimport Request                                                      from 'superagent';\r\nimport CustomTable                                                  from '../../components/CustomTable';\r\nimport {Table}                                                      from '@devexpress/dx-react-grid-material-ui';\r\nimport TableRowsIndexer                                             from '../../components/tableRowsIndexer'\r\nimport CircularProgress                                             from '@material-ui/core/CircularProgress';\r\nimport Backdrop                                                     from '@material-ui/core/Backdrop';\r\nimport { Typography,TextField }                                     from '@material-ui/core';\r\nimport Reporte                                                      from '../../components/Modalreporte';\r\nimport Paper                                                        from '@material-ui/core/Paper';\r\nimport Autocomplete                                                 from '@material-ui/lab/Autocomplete';\r\n\r\nlet Auth = new AuthService();\r\nvar ip=globales.ip\r\nvar border_dialog=globales.border_dialog\r\nvar movil_pequeño=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\nlet isVisibleRowSelected = false;\r\n//const colorRowSelected =  'rgb('+ colores.tabla.selection +')';\r\n//let alternateColorRow1 = colores.tabla.alternateColorRow1; \r\n//let alternateColorRow2 = colores.tabla.alternateColorRow2;\r\n\r\nconst getRowId = row => row.ID_SECCION;\r\n\r\n/*                           CLASES DE ESTILO                       */\r\n\r\nvar styles = theme =>({\r\n    Dialog:{\r\n        borderRadius: border_dialog,\r\n        margin:0,\r\n        padding:0\r\n    },\r\n    backdrop: {\r\n      zIndex: 500000,\r\n      color: '#fff', \r\n      flexDirection: 'column'\r\n    },\r\n    select: { //CONFIGURA EL SELECT \r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'50%',\r\n      },\r\n      textField: {\r\n        margin: theme.spacing(movil_pequeño?2:1, 1,0,0),\r\n        padding: 0,\r\n        minWidth: movil_pequeño?'100%':'20%',\r\n        width: '20%'      \r\n      },\r\n    })\r\n\r\n    const columns= [\r\n        {name:'ID_SECCION',title: 'ID_SECCION'}\r\n        ,{name:'CODIGO_CURSO',title: 'Código'}\r\n        ,{name:'DESCRIPCION_CURSO',title: 'Descripción'}\r\n        ,{name:'INICIO',title: 'Inicio'}\r\n        ,{name:'FIN',title: 'Fin'}\r\n        ,{name:'SECCION',title: 'Sección'}\r\n        ,{name:'CODIGO',title: 'Aula'}\r\n        ,{name:'JORNADA',title: 'Jornada'}\r\n        ,{name:'MODALIDAD',title: 'Grupo'}\r\n        ,{name:'CANTIDAD',title: 'Cantidad'}\r\n        ,{name:'ANIO_PERIODO',title: 'ANIO_PERIODO'}\r\n      ];\r\n  \r\n      const defaultHiddenColumnNames= ['ID_SECCION','ANIO_PERIODO'];\r\n  \r\n      const tableColumnExtensions= [\r\n          { columnName: 'CODIGO_CURSO', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'DESCRIPCION_CURSO', wordWrapEnabled: false, align: 'center' ,width: 420},\r\n          { columnName: 'INICIO', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'FIN', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'SECCION', wordWrapEnabled: false, align: 'center',width: 120},\r\n          { columnName: 'CODIGO', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'JORNADA', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'MODALIDAD', wordWrapEnabled: false, align: 'center',width: 150},\r\n          { columnName: 'CANTIDAD', wordWrapEnabled: false, align: 'center',width: 110},\r\n      ];\r\n\r\n\r\n\r\n/*                                        EXPORT                                      */\r\nexport default withStyles(styles)(\r\n    class EstudiantesRetirados extends React.Component {\r\n      tablaRef = React.createRef();\r\n      descripcionRef = React.createRef();\r\n\r\n      constructor(props) {\r\n        super(props);\r\n        this.l= props.l\r\n        this.e= props.e\r\n        this.i= props.i\r\n        this.isVisibleRowSelected=isVisibleRowSelected\r\n        this.actualizarbarra=props.actualizarbarra\r\n        this.actualizarcircular=props.actualizarcircular\r\n\r\n        this.state = {\r\n            openBackDrop:      false, \r\n            isLoggin:          undefined,\r\n            heightTableMain:    0,\r\n            rows: [],\r\n            selection: [],\r\n            grouping: [],\r\n            expandedGroups: [],\r\n            filteringColumnExtensions: [],\r\n            filters: [],\r\n            expandedRowIds: [],\r\n            enabledFilterRows: true,\r\n            selection_row:  [],\r\n            vobtenerdescripcion:'',\r\n            \r\n            optionsPeriodos: [],\r\n            valuePeriodos: [],\r\n            loadingPeriodos: true\r\n        }\r\n\r\n        const RenderOption = ((option) => {\r\n          return (\r\n            <div style={{ lineHeight: 1.9,width: \"100%\"}}>\r\n            { option.PERIODO }{' ('}<li style={{ fontWeight:\"bold\" ,textAlign: \"center\", display: \" inline-block\"}}>{ option.DESCRIPCION }</li>{')'}\r\n            </div>\r\n          );\r\n        });        \r\n\r\n        const VirtualTable_cellComponent = (getTime) => (props) => {\r\n            const { column }    = props;\r\n            const {row}         = props;\r\n        \r\n            if (column.name === 'INICIO')\r\n          {\r\n            return ( <Table.Cell {...props} style={{padding: 0, height:'8px',}}>\r\n                      { row.INICIO !== null ? getTime(row.INICIO, 1) : row.INICIO }\r\n                    </Table.Cell>);\r\n          }\r\n        \r\n          if (column.name === 'FIN')\r\n          {\r\n            return ( <Table.Cell {...props} style={{padding: 0, height:'8px',}}>\r\n                      { row.FIN !== null ? getTime(row.FIN, 1) : row.FIN }\r\n                    </Table.Cell>);\r\n          }\r\n          \r\n        return(\r\n            <Table.Cell {...props}\r\n            \r\n            />\r\n          );\r\n        }\r\n        this.VirtualTable_cellComponent = VirtualTable_cellComponent; \r\n        this.RenderOption=RenderOption;\r\n       \r\n\r\n    }; //FIN CONSTRUCTORS\r\n\r\n\r\nchangeSelection = (selection) =>{\r\n    if(selection[selection.length-1]===undefined)\r\n    {\r\n        this.setState({ selection: this.state.selection});\r\n    }\r\n    else{\r\n        this.state.rows.forEach(element => {\r\n          if(element.ID_SECCION===funciones.getIdRowChecking(selection,this.state.selection))\r\n          {\r\n           this.setState({selection: [selection[selection.length-1]],selection_row:[{ID_SECCION: element.ID_SECCION}]})\r\n            return;\r\n          }\r\n        });\r\n       \r\n    }\r\n  }\r\n\r\n  onChangeAutocomplete = (event, newValue)=>\r\n    {\r\n      this.setState({ rows: [],valuePeriodos:newValue}, ()=>{  \r\n  \r\n        if (newValue === null)\r\n        {\r\n            return;\r\n        }\r\n        else\r\n        {\r\n          this.setState({ loadingMain: true }, ()=>{\r\n          this.obtener_cursos(newValue.ID_CONTROL_MATRICULA);\r\n          });\r\n        }\r\n  \r\n      });\r\n       \r\n    }\r\n\r\n  obtener_cursos= (id_control_matricula)=>{\r\n    new Request.get(`${ip}/estudiantesretirados/obtener_cursos_catedratico/${id_control_matricula}/${Auth.getProfile().user}`)\r\n       .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n       .retry(0)\r\n       .timeout({ response: 20000, deadline: 50000, }) \r\n       .end((err, res)=> {\r\n        if (err) { \r\n               if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n               {\r\n                 window.location.reload();\r\n                 return;  \r\n               }\r\n               (async function() {\r\n                   funciones.showToast('e','Error de conexión')\r\n               })();//FIN FUNCION ASYNC\r\n               return;\r\n       }\r\n       const tmp = JSON.parse(res.text);\r\n       if(tmp.length>0)\r\n       {\r\n         this.setState({ rows: tmp,loadingMain: false}); \r\n       }\r\n       else\r\n       {   \r\n         this.setState({rows: [], heightTableMain:funciones.getHeightTableMain(movil_pequeño,this).heightTable,loadingMain: false})\r\n       }\r\n       \r\n       this.actualizarbarra(true)\r\n    })\r\n     \r\n  }\r\n\r\n  \r\ngenerarreporte=event=>{\r\n  if(this.state.selection.length!==0)\r\n  document.getElementById(\"BT-ListaRetiradosCat\").click();\r\n}\r\n   \r\ncomponentDidMount()\r\n{\r\n        let _this = this;\r\n        _this.actualizarbarra(false)\r\n\r\n        /*Auth.loggedIn().then( function(b){\r\n            _this.setState({ isLoggin: b})\r\n            if(b)*/\r\n            this.setState({ isLoggin: Auth.getProfile().plataforma !== undefined ? true : false }, ()=>{\r\n            this.setState({heightTableMain: funciones.getHeightTableMain(movil_pequeño,_this).heightTable})\r\n /*********************************************************************************************************************************/\r\n Request.get(`${ip}/estudiantesretirados/obtener_periodo_activo_calificador/${Auth.getProfile().user}`)\r\n .set({'authorization': 'Bearer ' + Auth.getToken() })\r\n .retry(1)\r\n .timeout({ response: 20000, deadline: 50000, }) \r\n .end((err, res)=> {\r\n  if (err) { \r\n         if (err.toString().substr(0,16) === 'Error: Forbidden')\r\n         {\r\n           window.location.reload();\r\n           return;  \r\n         }\r\n         (async function() {\r\n             funciones.showToast('e','Error de conexión periodo')\r\n         })();//FIN FUNCION ASYNC\r\n         return;\r\n }\r\n const tmp = JSON.parse(res.text);\r\n if(tmp.length>0){\r\n   this.setState({optionsPeriodos:tmp,loadingPeriodos: false,\r\n   valuePeriodos:{ID_CONTROL_MATRICULA: tmp[0].ID_CONTROL_MATRICULA, PERIODO: tmp[0].PERIODO, DESCRIPCION:tmp[0].DESCRIPCION}})\r\n  \r\n   this.obtener_cursos(this.state.valuePeriodos.ID_CONTROL_MATRICULA)    \r\n }\r\n\r\n _this.actualizarbarra(true)\r\n })\r\n\r\n})\r\n}\r\n\r\n/*                                          RENDER                          */\r\nrender() {\r\n    const { classes } = this.props;\r\n\r\n    const botones = [\r\n        {icono: 'Print', toolt: 'Imprimir',    nombre: 'Imprimir'   ,escritura:true , disabled:this.state.selection.length===0 ,onclick: this.generarreporte\r\n        ,  display: 'auto'},\r\n      ]\r\n\r\n    if (this.state.isLoggin === true )\r\n    {\r\n    return (    \r\n    <React.Fragment>\r\n      <Backdrop className={classes.backdrop}  open={this.state.openBackDrop}>\r\n          <CircularProgress color=\"inherit\" />\r\n          <span style={{ marginTop: '10px' }}>{this.state.open_seleccion?'Guardando...':this.state.open_borrar?'Eliminando...':''}</span>\r\n      </Backdrop>\r\n\r\n      \r\n     <Reporte id=\"BT-ListaRetiradosCat\" \r\n        parametros={this.state.selection_row[0]!==undefined?this.state.selection_row[0].ID_SECCION.toString():''}\r\n        nom_boton=\"Imprimir\" nom_bar=\"Lista de Retirados\" \r\n        label_reporte={'LISTARETIRADOS'}\r\n        backcolor={colores.azul} fill={'white'} fullScreen={true} boton={false}  color=\"primary\" color_bar='primary'\r\n        opciones={false}/>\r\n    \r\n      <div align=\"left\" style={{marginLeft:movil_pequeño?1:20,marginBottom: 10,marginTop: 15,display:\"flex\"}}>\r\n      <Typography align='left' style={{fontWeight:'bold',fontSize:15}}>\r\n        Periodo:   \r\n      </Typography> \r\n      <Autocomplete\r\n        id=\"periodos\"\r\n        options={this.state.optionsPeriodos}\r\n        getOptionLabel={(option) =>  option.PERIODO +' (' + option.DESCRIPCION + ')' }\r\n        style={{ marginTop: movil_pequeño?5:-15,marginLeft:5, width: !movil_pequeño ? '230px' : '100%'}}\r\n        renderInput={(params) => <TextField {...params} \r\n                                    label=\"Periodos\"\r\n                                    variant=\"outlined\" \r\n                                    InputProps={{...params.InputProps,\r\n                                                endAdornment: (\r\n                                                  <React.Fragment   >\r\n                                                    {this.state.loadingPeriodos ? <CircularProgress size={18} /> : null}\r\n                                                    {params.InputProps.endAdornment}\r\n                                                  </React.Fragment>\r\n                                                ),\r\n                                              }}\r\n                                    fullWidth\r\n                                   />}\r\n        renderOption={this.RenderOption}\r\n        onChange={this.onChangeAutocomplete}                                  \r\n        loading={this.state.loadingPeriodos}\r\n        value={this.state.valuePeriodos}\r\n        PaperComponent={(props)=>(<Paper elevation={12} {...props} />)}  \r\n        openOnFocus={true}                    \r\n      />\r\n    </div>\r\n\r\n      {/*--BOTON DE IMPRIMIR */}\r\n\r\n      <div style={{marginLeft:movil_pequeño?1:20,marginBottom:5,marginTop:5 ,display: movil_pequeño?\"block\":\"flex\",}}>\r\n        <Typography align='left'>\r\n         Debe de Marcar una Clase y luego Presionar el Botón de Impresión:\r\n        </Typography>\r\n        <div style={{marginLeft: movil_pequeño?'0%':'22%',boder:'none'}}>\r\n            <BarraBotones   align='center' botones={botones} l={this.l} e={this.e} i={this.i}/> \r\n        </div>\r\n      </div> \r\n       {/*------------------- */}\r\n      <div ref={this.tablaRef} style={{background:'white',marginLeft:movil_pequeño?globales.tabla.marginleft_movil:globales.tabla.marginleft,marginRight:movil_pequeño?globales.tabla.marginright_movil:globales.tabla.marginright}}>\r\n        <CustomTable\r\n            Columns={columns}                                    \r\n            Rows={this.state.rows}                                          \r\n            TableColumnExtensions={tableColumnExtensions}\r\n            DefaultHiddenColumnNames={defaultHiddenColumnNames}\r\n            getRowId = {getRowId}\r\n            Selection={this.state.selection}\r\n            ChangeSelection = {this.changeSelection}\r\n            height={this.state.heightTableMain===0?120:this.state.heightTableMain-120}\r\n            //Filters = {this.state.filters}\r\n            //onFiltersChange = {this.changeFilters}\r\n            //ExpandedGroups = {this.state.expandedGroups}\r\n            //ExpandedRowIds = {this.state.expandedRowIds}\r\n            enabledFilterRows= {this.state.enabledFilterRows}\r\n            standarPlugin = { <TableRowsIndexer/> }\r\n            VirtualTable_cellComponent={this.VirtualTable_cellComponent(funciones.getTime)}\r\n            showSelectionColumn={true}\r\n            RowComponent={this.trow}\r\n\r\n        />\r\n      </div>\r\n    </React.Fragment>\r\n    ); /// finaliza return\r\n    }\r\n    else if (this.state.isLoggin === false)\r\n    {\r\n        Auth.logout()\r\n        window.location.reload();\r\n        return; \r\n    }\r\n\r\n\r\n    return null;\r\n} /// finaliza render\r\n} /// finaliza class\r\n)/// finaliza withStyles\r\n"],"sourceRoot":""}