{"id":163,"date":"2023-05-18T12:11:20","date_gmt":"2023-05-18T12:11:20","guid":{"rendered":"https:\/\/accf2.unitru.edu.pe\/?page_id=163"},"modified":"2026-08-20T17:39:40","modified_gmt":"2026-08-20T17:39:40","slug":"validate","status":"publish","type":"page","link":"https:\/\/accf.unitru.edu.pe\/index.php\/validate","title":{"rendered":""},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<title>Validate \u2014 ACCF<\/title>\n<style>\n  :root{\n    --bg: #f6f8fb;\n    --paper: #ffffff;\n    --line: #dbe4f0;\n    --head-bg: #eaf1fb;\n    --head-text: #1e3a5f;\n    --accent: #4a77b4;\n    --accent-soft: #eef4fb;\n    --row-alt: #f7fafd;\n    --text: #26364a;\n    --muted: #6b7d93;\n    --link: #2f6fb0;\n    --link-hover: #1e3a5f;\n  }\n\n  * { box-sizing: border-box; }\n\n  body{\n    margin: 0;\n    padding: 40px 20px;\n    background: var(--bg);\n    font-family: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n    color: var(--text);\n  }\n\n  .wrap{\n    max-width: 980px;\n    margin: 0 auto;\n  }\n\n  h1{\n    font-size: 1.6rem;\n    color: var(--head-text);\n    margin: 0 0 6px;\n    letter-spacing: .2px;\n  }\n\n  .subtitle{\n    color: var(--muted);\n    font-size: .92rem;\n    margin-bottom: 28px;\n  }\n\n  h2.section-title{\n    font-size: 1.05rem;\n    color: var(--head-text);\n    margin: 40px 0 12px;\n    padding-left: 12px;\n    border-left: 4px solid var(--accent);\n  }\n\n  table{\n    width: 100%;\n    border-collapse: collapse;\n    background: var(--paper);\n    border: 1px solid var(--line);\n    border-radius: 10px;\n    overflow: hidden;\n    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.06);\n  }\n\n  thead th{\n    background: var(--head-bg);\n    color: var(--head-text);\n    text-align: left;\n    font-size: .82rem;\n    letter-spacing: .04em;\n    text-transform: uppercase;\n    padding: 14px 18px;\n    border-bottom: 2px solid var(--accent);\n  }\n\n  th.col-year, td.col-year{\n    width: 110px;\n    text-align: center;\n    border-right: 1px solid var(--line);\n  }\n\n  th.col-year{\n    cursor: pointer;\n    user-select: none;\n    position: relative;\n    padding-right: 26px;\n  }\n\n  th.col-year:hover{\n    background: #e0ecfa;\n  }\n\n  th.col-year .sort-icon{\n    position: absolute;\n    right: 10px;\n    top: 50%;\n    transform: translateY(-50%);\n    font-size: .7rem;\n    color: var(--accent);\n    opacity: .55;\n  }\n\n  th.col-year[data-dir=\"asc\"] .sort-icon::after{ content: \"\u25b2\"; opacity: 1; }\n  th.col-year[data-dir=\"desc\"] .sort-icon::after{ content: \"\u25bc\"; opacity: 1; }\n  th.col-year:not([data-dir]) .sort-icon::after{ content: \"\u25b2\u25bc\"; }\n\n  tbody td{\n    padding: 14px 18px;\n    border-bottom: 1px solid var(--line);\n    font-size: .95rem;\n    vertical-align: top;\n    line-height: 1.5;\n  }\n\n  td.col-year{\n    padding: 14px 10px;\n  }\n\n  tbody tr:last-child td{\n    border-bottom: none;\n  }\n\n  tbody tr:nth-child(even){\n    background: var(--row-alt);\n  }\n\n  tbody tr:hover{\n    background: var(--accent-soft);\n  }\n\n  .year-badge{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 62px;\n    background: var(--accent-soft);\n    border: 1px solid #cfe0f3;\n    color: var(--accent);\n    font-weight: 700;\n    font-variant-numeric: tabular-nums;\n    padding: 5px 12px;\n    border-radius: 999px;\n    font-size: .88rem;\n    letter-spacing: .02em;\n  }\n\n  a{\n    color: var(--link);\n    text-decoration: none;\n    font-weight: 500;\n  }\n  a:hover{\n    color: var(--link-hover);\n    text-decoration: underline;\n    text-underline-offset: 3px;\n  }\n\n  .event-link{\n    display: inline-flex;\n    align-items: flex-start;\n    gap: 6px;\n    line-height: 1.45;\n  }\n\n  .event-link .ext-icon{\n    flex: 0 0 auto;\n    width: 12px;\n    height: 12px;\n    margin-top: 4px;\n    opacity: .55;\n  }\n\n  .event-link:hover .ext-icon{\n    opacity: .9;\n  }\n\n  td.col-name{\n    font-size: .96rem;\n  }\n\n  .event-item + .event-item{\n    display: block;\n    margin-top: 10px;\n    padding-top: 10px;\n    border-top: 1px dashed var(--line);\n  }\n\n  .speaker-block + .speaker-block{\n    margin-top: 14px;\n    padding-top: 14px;\n    border-top: 1px dashed var(--line);\n  }\n\n  .speaker-name{\n    color: var(--head-text);\n    font-weight: 600;\n  }\n\n  .talk-title{\n    color: var(--text);\n    font-style: italic;\n  }\n\n  .meta{\n    display: block;\n    color: var(--muted);\n    font-size: .85rem;\n    margin-top: 2px;\n  }\n\n  .controls{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-bottom: 16px;\n    align-items: center;\n  }\n\n  .controls input[type=\"text\"],\n  .controls select{\n    font-family: inherit;\n    font-size: .92rem;\n    padding: 10px 14px;\n    border: 1px solid var(--line);\n    border-radius: 8px;\n    background: var(--paper);\n    color: var(--text);\n    outline: none;\n  }\n\n  .controls input[type=\"text\"]{\n    flex: 1 1 220px;\n  }\n\n  .controls select{\n    flex: 0 0 auto;\n    cursor: pointer;\n  }\n\n  .controls input[type=\"text\"]:focus,\n  .controls select:focus{\n    border-color: var(--accent);\n    box-shadow: 0 0 0 3px var(--accent-soft);\n  }\n\n  .no-results{\n    display: none;\n    padding: 18px;\n    text-align: center;\n    color: var(--muted);\n    font-size: .9rem;\n    background: var(--paper);\n    border: 1px dashed var(--line);\n    border-radius: 10px;\n    margin-top: -1px;\n  }\n\n  .no-results.show{\n    display: block;\n  }\n\n  mark{\n    background: #fdeeb0;\n    color: inherit;\n    border-radius: 3px;\n    padding: 0 2px;\n  }\n\n  @media (max-width: 640px){\n    thead { display: none; }\n    table, tbody, tr, td { display: block; width: 100%; }\n    tbody tr{\n      border: 1px solid var(--line);\n      border-radius: 10px;\n      margin-bottom: 14px;\n      padding: 6px 0;\n      background: var(--paper) !important;\n    }\n    tbody td{\n      border-bottom: none;\n      padding: 8px 16px;\n    }\n    td.col-year::before{\n      content: \"A\u00f1o: \";\n      color: var(--muted);\n      font-weight: 600;\n    }\n  }\n<\/style>\n\n\n<div class=\"wrap\">\n\n  <h1>Validate<\/h1>\n  <p class=\"subtitle\">\u00c1rea Cient\u00edfica de C\u00e1lculo Fraccionario \u2014 Registro de eventos acad\u00e9micos y expositores invitados<\/p>\n\n  <h2 class=\"section-title\">Eventos acad\u00e9micos<\/h2>\n\n  <div class=\"controls\">\n    <input type=\"text\" id=\"search-eventos\" placeholder=\"Buscar evento por nombre\u2026\" aria-label=\"Buscar evento acad\u00e9mico\">\n    <select id=\"year-eventos\" aria-label=\"Filtrar por a\u00f1o\">\n      <option value=\"\">Todos los a\u00f1os<\/option>\n    <\/select>\n  <\/div>\n\n  <table id=\"tabla-eventos\">\n    <colgroup>\n      <col style=\"width:110px\">\n      <col>\n    <\/colgroup>\n    <thead>\n      <tr>\n        <th class=\"col-year\" id=\"sort-eventos\" title=\"Ordenar por a\u00f1o\">A\u00f1o<span class=\"sort-icon\"><\/span><\/th>\n        <th class=\"col-name\">Evento acad\u00e9mico<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr data-year=\"2026\">\n        <td class=\"col-year\"><span class=\"year-badge\">2026<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/iv-sianl-2\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>IV Seminario Internacional de An\u00e1lisis No Lineal y Aplicaciones<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2025\">\n        <td class=\"col-year\"><span class=\"year-badge\">2025<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/sisd-2025\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>Seminario Internacional: Introducci\u00f3n a los Sistemas Din\u00e1micos<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2023\">\n        <td class=\"col-year\"><span class=\"year-badge\">2023<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/iiisianl\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>III Seminario Internacional de An\u00e1lisis No Lineal<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2023\">\n        <td class=\"col-year\"><span class=\"year-badge\">2023<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/8-eventos-academicos\/64-planes-de-gestion-de-datos-fair-para-investigacion\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>Planes de Gesti\u00f3n de Datos FAIR para Investigaci\u00f3n<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2023\">\n        <td class=\"col-year\"><span class=\"year-badge\">2023<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/8-eventos-academicos\/54-seminario-introduccion-al-analisis-funcional-y-aplicaciones-a-las-ecuaciones-diferenciales-parciales?preview=true\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>Seminario: Introducci\u00f3n al An\u00e1lisis Funcional y Aplicaciones a las Ecuaciones Diferenciales Parciales<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2022\">\n        <td class=\"col-year\"><span class=\"year-badge\">2022<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/8-eventos-academicos\/52-c-seminario-introduccion-a-los-espacios-de-sobolev-y-metodos-variacionales-2\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>Seminario: Introducci\u00f3n a los Espacios de Sobolev y M\u00e9todos Variacionales<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2021\">\n        <td class=\"col-year\"><span class=\"year-badge\">2021<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/8-eventos-academicos\/49-seminario-internacional-de-ecuaciones-diferenciales-calculo-fraccionario-y-aplicaciones-certificados\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>Seminario Internacional de Ecuaciones Diferenciales, C\u00e1lculo Fraccionario y Aplicaciones<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2020\">\n        <td class=\"col-year\"><span class=\"year-badge\">2020<\/span><\/td>\n        <td class=\"col-name\"><a class=\"event-link\" href=\"https:\/\/accf2.unitru.edu.pe\/index.php\/validate-2-uncategorised-46-difusion-del-analisis-real-en-la-region-la-libertad\/\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>Difusi\u00f3n del An\u00e1lisis Real en la Regi\u00f3n La Libertad<\/span><\/a><\/td>\n      <\/tr>\n      <tr data-year=\"2019\">\n        <td class=\"col-year\"><span class=\"year-badge\">2019<\/span><\/td>\n        <td class=\"col-name\">\n          <span class=\"event-item\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/8-eventos-academicos\/46-difusion-del-analisis-real-en-la-region-la-libertad-2\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>I Seminario Internacional de Did\u00e1ctica de la Matem\u00e1tica<\/span><\/a><\/span>\n          <span class=\"event-item\"><a class=\"event-link\" href=\"https:\/\/accf.unitru.edu.pe\/index.php\/validate\/8-eventos-academicos\/32-asistentes-ii-sianl-unt-2019?preview=true\" target=\"_blank\" rel=\"noopener\"><svg class=\"ext-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><\/svg><span>II Seminario Internacional de An\u00e1lisis No Lineal<\/span><\/a><\/span>\n        <\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n  <div class=\"no-results\" id=\"no-results-eventos\">No se encontraron eventos con esos criterios.<\/div>\n\n  <h2 class=\"section-title\">Expositores invitados a conferencias \u2014 ACCF<\/h2>\n\n  <div class=\"controls\">\n    <input type=\"text\" id=\"search-expositores\" placeholder=\"Buscar por expositor o tema\u2026\" aria-label=\"Buscar expositor\">\n    <select id=\"year-expositores\" aria-label=\"Filtrar por a\u00f1o\">\n      <option value=\"\">Todos los a\u00f1os<\/option>\n    <\/select>\n  <\/div>\n\n  <table id=\"tabla-expositores\">\n    <colgroup>\n      <col style=\"width:110px\">\n      <col>\n    <\/colgroup>\n    <thead>\n      <tr>\n        <th class=\"col-year\" id=\"sort-expositores\" title=\"Ordenar por a\u00f1o\">A\u00f1o<span class=\"sort-icon\"><\/span><\/th>\n        <th class=\"col-name\">Expositor y conferencia<\/th>\n\n    <\/thead>\n<\/tr><tr data-year=\"2025\">\n        <td class=\"col-year\"><span class=\"year-badge\">2025<\/span><\/td>\n        <td class=\"col-name\">\n          <div class=\"speaker-block\">\n            <span class=\"speaker-name\">Giovany Malcher Figueiredo<\/span> \u2014\n            <span class=\"talk-title\">\u00abOn the Energy of the Ground State Solution for a Generalized Kadomtsev-Petviashvili Equation\u00bb<\/span>\n            <span class=\"meta\">Universidade  de Brasilia, Brasil \u00b7 29\/09\/2025<\/span>\n          <\/div>\n        <\/td>\n      <\/tr>\n    <tbody>\n      <tr data-year=\"2020\">\n        <td class=\"col-year\"><span class=\"year-badge\">2020<\/span><\/td>\n        <td class=\"col-name\">\n          <div class=\"speaker-block\">\n            <span class=\"speaker-name\">Manuel Gonz\u00e1lez Espinoza<\/span> \u2014\n            <span class=\"talk-title\">\u00abTeor\u00edas de gravedad teleparalela en cosmolog\u00eda\u00bb<\/span>\n            <span class=\"meta\">Pontificia Universidad Cat\u00f3lica de Valpara\u00edso, Chile \u00b7 30\/01\/2020<\/span>\n          <\/div>\n          <div class=\"speaker-block\">\n            <span class=\"speaker-name\">Daniel Sep\u00falveda Oehninger<\/span> \u2014\n            <span class=\"talk-title\">\u00abSistemas peri\u00f3dicos de tipo quimioestato con retardo en la respuesta de crecimiento\u00bb<\/span>\n            <span class=\"meta\">Universidad Tecnol\u00f3gica Metropolitana \u00b7 19\/02\/2020<\/span>\n          <\/div>\n        <\/td>\n      <\/tr>\n      <tr data-year=\"2019\">\n        <td class=\"col-year\"><span class=\"year-badge\">2019<\/span><\/td>\n        <td class=\"col-name\">\n          <div class=\"speaker-block\">\n            <span class=\"speaker-name\">Alex Capu\u00f1ay<\/span> \u2014\n            <span class=\"talk-title\">\u00abAlgorithm to determine fundamental domains of Number fields\u00bb<\/span>\n            <span class=\"meta\">Universidad de Chile, Chile \u00b7 20\/02\/2019<\/span>\n          <\/div>\n          <div class=\"speaker-block\">\n            <span class=\"speaker-name\">Dante Carrasco Olivera<\/span> \u2014\n            <span class=\"talk-title\">\u00abSistemas din\u00e1micos expansivos\u00bb<\/span>\n            <span class=\"meta\">Universidad del B\u00edo-B\u00edo, Chile \u00b7 16\/08\/2019<\/span>\n          <\/div>\n        <\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n  <div class=\"no-results\" id=\"no-results-expositores\">No se encontraron expositores con esos criterios.<\/div>\n\n<\/div>\n\n<script>\n  function setupFilter(tableId, searchId, yearId, noResultsId){\n    const table = document.getElementById(tableId);\n    const searchInput = document.getElementById(searchId);\n    const yearSelect = document.getElementById(yearId);\n    const noResults = document.getElementById(noResultsId);\n    const rows = Array.from(table.querySelectorAll('tbody tr'));\n\n    \/\/ Poblar el selector de a\u00f1os a partir de los datos reales de la tabla\n    const years = Array.from(new Set(rows.map(r => r.dataset.year))).sort((a,b) => b - a);\n    years.forEach(y => {\n      const opt = document.createElement('option');\n      opt.value = y;\n      opt.textContent = y;\n      yearSelect.appendChild(opt);\n    });\n\n    \/\/ Guardar el HTML original de cada celda de texto para poder quitar los <mark> al reiniciar\n    rows.forEach(r => {\n      const textCell = r.querySelector('td:not(.col-year)');\n      textCell.dataset.original = textCell.innerHTML;\n    });\n\n    function highlight(cell, term){\n      const original = cell.dataset.original;\n      if(!term){\n        cell.innerHTML = original;\n        return;\n      }\n      const escaped = term.replace(\/[.*+?^${}()|[\\]\\\\]\/g, '\\\\$&');\n      const re = new RegExp('(' + escaped + ')', 'ig');\n      \/\/ Solo resalta dentro de nodos de texto simples; para mantenerlo simple,\n      \/\/ aplicamos sobre el HTML original (los enlaces no suelen coincidir con el t\u00e9rmino de a\u00f1o).\n      cell.innerHTML = original.replace(re, '<mark>$1<\/mark>');\n    }\n\n    function applyFilter(){\n      const term = searchInput.value.trim().toLowerCase();\n      const year = yearSelect.value;\n      let visibleCount = 0;\n\n      rows.forEach(row => {\n        const textCell = row.querySelector('td:not(.col-year)');\n        const rowText = textCell.dataset.original.replace(\/<[^>]*>\/g, '').toLowerCase();\n        const matchesText = !term || rowText.includes(term);\n        const matchesYear = !year || row.dataset.year === year;\n        const visible = matchesText && matchesYear;\n\n        row.style.display = visible ? '' : 'none';\n        if(visible){\n          visibleCount++;\n          highlight(textCell, term);\n        } else {\n          textCell.innerHTML = textCell.dataset.original;\n        }\n      });\n\n      noResults.classList.toggle('show', visibleCount === 0);\n    }\n\n    searchInput.addEventListener('input', applyFilter);\n    yearSelect.addEventListener('change', applyFilter);\n\n    return { table, rows };\n  }\n\n  function setupSort(sortHeaderId, tbodyRows){\n    const th = document.getElementById(sortHeaderId);\n    const tbody = th.closest('table').querySelector('tbody');\n    let dir = null; \/\/ null -> desc -> asc -> desc...\n\n    th.addEventListener('click', () => {\n      dir = dir === 'asc' ? 'desc' : 'asc';\n      th.dataset.dir = dir;\n\n      const sorted = Array.from(tbody.querySelectorAll('tr')).sort((a, b) => {\n        const ya = parseInt(a.dataset.year, 10);\n        const yb = parseInt(b.dataset.year, 10);\n        return dir === 'asc' ? ya - yb : yb - ya;\n      });\n\n      sorted.forEach(row => tbody.appendChild(row));\n    });\n  }\n\n  const eventosCtx = setupFilter('tabla-eventos', 'search-eventos', 'year-eventos', 'no-results-eventos');\n  const expositoresCtx = setupFilter('tabla-expositores', 'search-expositores', 'year-expositores', 'no-results-expositores');\n\n  setupSort('sort-eventos', eventosCtx.rows);\n  setupSort('sort-expositores', expositoresCtx.rows);\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Validate \u2014 ACCF Validate \u00c1rea Cient\u00edfica de C\u00e1lculo Fraccionario \u2014<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-163","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/pages\/163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/comments?post=163"}],"version-history":[{"count":50,"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/pages\/163\/revisions"}],"predecessor-version":[{"id":1546,"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/pages\/163\/revisions\/1546"}],"wp:attachment":[{"href":"https:\/\/accf.unitru.edu.pe\/index.php\/wp-json\/wp\/v2\/media?parent=163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}