{"id":385,"date":"2025-08-13T15:45:23","date_gmt":"2025-08-13T20:45:23","guid":{"rendered":"http:\/\/10.190.55.6\/?page_id=385"},"modified":"2025-11-17T12:48:20","modified_gmt":"2025-11-17T17:48:20","slug":"resoluciones-anticipadas","status":"publish","type":"page","link":"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/","title":{"rendered":"Resoluciones Anticipadas"},"content":{"rendered":"    <div class=\"wp-block-bplugins-custom-html\" id='bPluginsCustomHtml-1'>\n    <style>\n  body \n  { \n    font-family: Arial, sans-serif; \n    background-color: #f4f4f9; \n  }\n  .custom-underline \n  {\n        display: inline-block;\n        position: relative;\n        padding-bottom: 3px;\n    }\n  .custom-underline::after \n  {\n        content: \"\";\n        position: absolute;\n        left: 0;\n        right: -5px;\n        bottom: 0;\n        height: 3px;\n        background-color: #fcaa52;\n    }\n  .accordion .card { margin-bottom: 10px; border: 1px solid #dee2e6; }\n  .accordion .card-header { padding: 0; }\n  .accordion .btn-link \n  { \n        display: flex; \n        align-items: center;\n        justify-content: space-between; \/* Alinea el texto a la izquierda y la flecha a la derecha *\/\n        width: 100%; \n        text-align: left; \n        color: #003875; \n        font-weight: 600; \n        text-decoration: none; \n        padding: 15px 20px; \n        transition: all 0.3s ease; \n    }\n  .accordion .btn-link:hover, .accordion .btn-link:focus { background-color: #fcaa52; color: #fff; text-decoration: none; }\n  .accordion .btn-link.collapsed { background-color: #f8f9fa; color: #003875; }\n  .accordion .btn-link.no-data { color: #6c757d; font-style: italic; background-color: #e9ecef; cursor: default; }\n  .accordion-arrow \n  {\n        transition: transform 0.3s ease-in-out;\n        display: flex; \n        align-items: center;\n        margin-left: 15px; \/* Separaci\u00f3n del texto *\/\n    }\n  .accordion .btn-link.collapsed .accordion-arrow \n  {\n        transform: rotate(0deg); \/* Flecha a la derecha (Cerrado) *\/\n    }\n  .accordion .btn-link:not(.collapsed) .accordion-arrow \n  {\n        transform: rotate(90deg); \/* Flecha girada a la derecha inferior (Abierto) *\/\n    }\n  .archivos-list \n  {\n        width: 100%;              \n        padding-left: 0 !important;\n        margin-left: 0 !important;\n        list-style: none;          \n    }\n  .archivos-list li \n  {\n        display: flex;\n        align-items: center;\n        justify-content: flex-start;\n        background: #f8f9fa;\n        padding: 15px;\n        border-radius: 8px;\n        border-left: 5px solid #999999;\n        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n        margin-bottom: 10px;\n        transition: transform 0.3s ease-in-out, border-left-color 0.3s ease-in-out;\n        width: 100%;              \n    }\n  .archivos-list li:hover \n  {\n        transform: scale(1.02);\n        border-left-color: #fcaa52;\n    }\n  .archivos-list li a \n  {\n    text-decoration: none !important;  \/* \ud83d\udd39 elimina el subrayado *\/\n    color: #555 !important;\n    display: flex;\n    align-items: center;\n    gap: 15px;\n    flex: 1;\n    transition: color 0.3s ease-in-out;\n    overflow-wrap: break-word;\n    white-space: normal;\n    text-align: justify;\n    }\n  .archivos-list li:hover a \n  {\n        color: #003875 !important;\n    }\n  .archivos-list li i \n  {\n        font-size: 1.2em;\n        color: #999999;\n        flex-shrink: 0;\n    }\n  .archivos-list li:hover i \n  {\n        color: #003875;\n    }\n  .archivos-list .fecha \n  {\n        width: 90px;          \/* m\u00e1s espacio para la fecha *\/\n        min-width: 90px;\n        text-align: center;\n        color: #666;\n        font-weight: 600;\n        font-size: 0.9rem;\n    }\n  .alert-info \n  {\n    padding: 20px !important;\n  }\n  \/* ----------------------------------------------------- *\/\n  \/* ESTILO PARA EL BOT\u00d3N DEL ACORDE\u00d3N CUANDO EST\u00c1 ABIERTO *\/\n  \/* ----------------------------------------------------- *\/\n  .accordion .btn-link:not(.collapsed) \n  { \n        background-color: #fcaa52; \/* Fondo NARANJA solicitado *\/\n        color: #fff;              \/* Texto BLANCO solicitado *\/\n        font-weight: bold;        \/* Negrita solicitado *\/\n    }\n  \/* ----------------------------------------------------- *\/\n  \/* ESTILO PARA EL BOT\u00d3N DEL ACORDE\u00d3N CUANDO EST\u00c1 CERRADO *\/\n  \/* (Mantenemos el estilo original que ten\u00edas)           *\/\n  \/* ----------------------------------------------------- *\/\n  .accordion .btn-link.collapsed \n  { \n        background-color: #f8f9fa; \n        color: #003875; \n    }\n  \/* ----------------------------------------------------- *\/\n  \/* ESTILO AL PASAR EL RAT\u00d3N (HOVER)                      *\/\n  \/* Esto asegura que el hover siga funcionando correctamente *\/\n  \/* ----------------------------------------------------- *\/\n  .accordion .btn-link:hover, \n  .accordion .btn-link:focus \n  { \n        background-color: #fcaa52; \n        color: #fff; \n        text-decoration: none; \n    }\n  .accordion .btn-link \n  {\n      font-weight: 600; \n  }\n  .custom-pagination-list \n  {\n      display: flex; \/* Fuerza la horizontalidad *\/\n      padding-left: 0;\n      list-style: none; \/* Elimina los puntos\/vi\u00f1etas *\/\n      border-radius: 0.25rem; \/* Peque\u00f1o borde *\/\n    }\n  \/* \u00cdtems individuales de la lista (N\u00fameros\/Botones) *\/\n  .page-item-custom \n  {\n      margin: 0 1px; \/* Espacio m\u00ednimo entre botones *\/\n      line-height: 1.25;\n    }\n  \/* Enlaces (Botones) *\/\n  .page-link-custom \n  {\n        position: relative;\n        display: block;\n        padding: 0.5rem 0.75rem;\n        color: #007bff; \/* Color azul de enlace *\/\n        background-color: #fff;\n        border: 1px solid #dee2e6;\n        text-decoration: none;\n        border-radius: 0.25rem;\n    }\n  \/* Estado Activo (Bot\u00f3n azul) *\/\n  .active-custom .page-link-custom \n  {\n        z-index: 3;\n        color: #fff;\n        background-color: #007bff;\n        border-color: #007bff;\n    }\n  \/* Estado Deshabilitado (Gris\/Opaco) *\/\n  .disabled-custom .page-link-custom \n  {\n        color: #6c757d;\n        pointer-events: none;\n        background-color: #fff;\n        border-color: #dee2e6;\n        opacity: 0.6;\n    }\n  \/* Hover (opcional) *\/\n  .page-link-custom:hover:not(.active-custom .page-link-custom) \n  {\n        color: #0056b3;\n        background-color: #e9ecef;\n        border-color: #dee2e6;\n    }\n<\/style>\n\n<div class=\"container-fluid\">\n    <div class=\"row mb-4\">\n        <div class=\"col-lg-12 text-center\">\n            <h3 class=\"font-weight-bold custom-underline mb-5\">Resoluciones Anticipadas<\/h3>\n        <\/div>\n        <div class=\"col-lg-12 text-center mt-4\">\n            <div id=\"myaccordionid\" class=\"accordion\" role=\"tablist\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n  \n<!--script>\n  const dominio = '\/wp-content\/uploads\/actos_administrativos\/'; \/\/ Dominio actualizado\n  const categories = { Cat1: \"Anexos\",Cat2: \"Resoluciones Anticipadas (Gaceta Oficial)\",Cat3: \"Resoluciones Anticipadas Emitidas \"};\n\n  \/\/ --- L\u00d3GICA PRINCIPAL Y EVENTOS ---\n  jQuery(document).ready(function($)\n  {\n      const ITEMS_PER_PAGE = 5;\n      const accordionContainer = document.getElementById('myaccordionid');\n      let allSortedItems = {}; \n\n      if (!accordionContainer) {\n          return;\n      }\n\n      \/\/ \u26a0\ufe0f DESHABILITAR CACHE PARA TODAS LAS PETICIONES AJAX\n      $.ajaxSetup({ cache: false });\n\n      \/\/ \ud83c\udfaf FUNCI\u00d3N: Intenta parsear la fecha primero del campo 'date' (DD\/MM\/AAAA) y luego del 'title'\n      const parseDate = (item) => \n      {\n          \/\/ --- 1. INTENTO: Campo 'date' (DD\/MM\/AAAA) ---\n          if (item.date) \n          {\n            const parts = item.date.match(\/(\\d{1,2})\\\/(\\d{1,2})\\\/(\\d{4})\/);\n            if (parts) \n            {\n              const day = parseInt(parts[1]);\n              const month = parseInt(parts[2]);\n              const year = parseInt(parts[3]);\n              \n              \/\/ *** CORRECCI\u00d3N CLAVE: Usamos Date.UTC para asegurar un ordenamiento consistente. ***\n              \/\/ Crea un timestamp basado en UTC, ignorando la zona horaria local.\n              const utcTimestamp = Date.UTC(year, month - 1, day);\n              return new Date(utcTimestamp);\n            }\n          }\n          \n          \/\/ --- 2. INTENTO: Campo 'title' (de DD de NOMBREMES de AAAA) ---\n          if (item.title) {\n              const dateMatch = item.title.match(\/de (\\d{1,2}) de ([a-z\u00e1\u00e9\u00ed\u00f3\u00fa]+) de (\\d{4})\/i);\n              if (dateMatch) {\n                  const day = parseInt(dateMatch[1]);\n                  const monthName = dateMatch[2].toLowerCase();\n                  const year = parseInt(dateMatch[3]);\n\n                  const monthMap = {\n                      'enero': 1, 'febrero': 2, 'marzo': 3, 'abril': 4, 'mayo': 5, 'junio': 6,\n                      'julio': 7, 'agosto': 8, 'septiembre': 9, 'octubre': 10, 'noviembre': 11, 'diciembre': 12\n                  };\n                  \n                  const month = monthMap[monthName] || 0; \n\n                  if (month > 0) {\n                      \/\/ Aplicamos Date.UTC tambi\u00e9n al parseo por t\u00edtulo para consistencia\n                      const utcTimestamp = Date.UTC(year, month - 1, day);\n                      return new Date(utcTimestamp);\n                  }\n              }\n          }\n\n          return new Date(0); \/\/ Fecha m\u00ednima para items sin fecha v\u00e1lida (1970)\n      };\n      \n      \/\/ \ud83c\udfaf FUNCI\u00d3N DE PAGINACI\u00d3N: Renderiza una p\u00e1gina espec\u00edfica\n      const renderPage = (catKey, page) => {\n          const sortedItems = allSortedItems[catKey];\n          if (!sortedItems) return;\n\n          const totalItems = sortedItems.length;\n          const totalPages = Math.ceil(totalItems \/ ITEMS_PER_PAGE);\n          const start = (page - 1) * ITEMS_PER_PAGE;\n          const end = start + ITEMS_PER_PAGE;\n          const itemsToRender = sortedItems.slice(start, end);\n\n          let listHTML = `<ul class=\"list-group archivos-list mb-2\" id=\"list-${catKey}\">`;\n          \n          itemsToRender.forEach(item => {\n              const isLink = item.link && item.link !== \"#\";\n              const fullLink = isLink ? dominio + item.link : \"#\";\n\n              \/\/ C\u00d3DIGO ANTERIOR EN LA RESPUESTA ANTERIOR\n              const dateString = item.dateObj.getFullYear() > 1970 \n              ? item.dateObj.toLocaleDateString('es-ES', { \n                day: '2-digit', \n                month: '2-digit', \n                year: 'numeric',\n                timeZone: 'UTC' \/\/ <-- ESTO ES LO QUE ESTABA JUGANDO CON ELLA\n              })\n              : '<span class=\"text-danger\">N\/A<\/span>';\n\n            \n              listHTML += `\n                  <li class=\"list-group-item d-flex align-items-center py-2 px-3\">\n                      <div class=\"text-center flex-shrink-0 fecha-container\" style=\"width: 100px; min-width: 100px; margin-right: 15px;\">\n                          <div><i class=\"fa-solid fa-check fa-lg ${isLink ? 'text-success' : 'text-muted'}\"><\/i><\/div>\n                          <div style=\"font-size: 0.8em; margin-top: 4px;\">${dateString}<\/div>\n                      <\/div>\n                      ${\n                          isLink\n                          ? `<a href=\"${fullLink}\" target=\"_blank\" class=\"flex-grow-1 resolution-link text-start text-wrap\"\n                                data-link=\"${fullLink}\" data-title=\"${item.title}\" data-cat=\"${categories[catKey]}\" \n                                data-subcat=\"ListaPrincipal\" style=\"text-decoration:none;\">\n                                  ${item.title}\n                                <\/a>`\n                          : `<span class=\"text-muted flex-grow-1 text-start text-wrap w-100\">\n                                  ${item.title} <small class=\"text-dark fw-bold ms-auto\">(No Disponible)<\/small>\n                                <\/span>`\n                      }\n                  <\/li>`;\n          });\n          listHTML += `<\/ul>`;\n\n          $(`#list-container-${catKey}`).html(listHTML);\n\n          \/\/ --- GENERACI\u00d3N DEL PAGINADOR (Solo \u00cdconos) ---\n          let paginationHTML = '';\n          if (totalPages > 1) {\n              \n              let startPage = Math.max(1, page - 2);\n              let endPage = Math.min(totalPages, page + 2);\n\n              if (endPage - startPage < 4) {\n                   if (startPage === 1) endPage = Math.min(totalPages, 5);\n                   if (endPage === totalPages) startPage = Math.max(1, totalPages - 4);\n              }\n\n              paginationHTML += `<div class=\"mt-3\" style=\"display: flex; justify-content: center;\">\n                  <nav aria-label=\"Paginaci\u00f3n para ${catKey}\">\n                      <ul class=\"custom-pagination-list mt-0 pagination-controls\" data-cat=\"${catKey}\">`;\n              \n              \/\/ Primer (First)\n              paginationHTML += `<li class=\"page-item-custom ${page === 1 ? 'disabled-custom' : ''}\">\n                  <a class=\"page-link-custom\" href=\"#\" data-page=\"1\" title=\"Primer P\u00e1gina\">\n                      <i class=\"fa-solid fa-angles-left\"><\/i>\n                  <\/a>\n              <\/li>`;\n              \n              \/\/ Anterior (Previous) - SOLO \u00cdCONO\n              paginationHTML += `<li class=\"page-item-custom ${page === 1 ? 'disabled-custom' : ''}\">\n                  <a class=\"page-link-custom\" href=\"#\" data-page=\"${page - 1}\" title=\"Anterior\">\n                      <i class=\"fa-solid fa-angle-left\"><\/i> \n                  <\/a>\n              <\/li>`;\n\n              \/\/ Botones de n\u00famero\n              for (let i = startPage; i <= endPage; i++) {\n                  paginationHTML += `<li class=\"page-item-custom ${i === page ? 'active-custom' : ''}\">\n                      <a class=\"page-link-custom\" href=\"#\" data-page=\"${i}\">${i}<\/a>\n                  <\/li>`;\n              }\n\n              \/\/ Siguiente (Next) - SOLO \u00cdCONO\n              paginationHTML += `<li class=\"page-item-custom ${page === totalPages ? 'disabled-custom' : ''}\">\n                  <a class=\"page-link-custom\" href=\"#\" data-page=\"${page + 1}\" title=\"Siguiente\">\n                      <i class=\"fa-solid fa-angle-right\"><\/i>\n                  <\/a>\n              <\/li>`;\n\n              \/\/ \u00daltimo (Last)\n              paginationHTML += `<li class=\"page-item-custom ${page === totalPages ? 'disabled-custom' : ''}\">\n                  <a class=\"page-link-custom\" href=\"#\" data-page=\"${totalPages}\" title=\"\u00daltima P\u00e1gina\">\n                      <i class=\"fa-solid fa-angles-right\"><\/i>\n                  <\/a>\n              <\/li>`;\n\n\n              paginationHTML += `<\/ul><\/nav><\/div>`;\n          }\n          $(`#pagination-container-${catKey}`).html(paginationHTML);\n      };\n\n      \n      \/\/ \ud83c\udfaf CARGA AS\u00cdNCRONA DE DATOS DESDE EL ARCHIVO JSON \ud83c\udfaf\n      $.getJSON('\/wp-content\/uploads\/resoluciones_anticipadas.json', function(resoluciones) \n      {\n          if (Object.keys(resoluciones).length === 0)\n          {\n              $(accordionContainer).html('<p class=\"alert alert-warning text-center mt-3\">No se encontraron datos de resoluciones activas.<\/p>');\n              return;\n          }\n\n          \/\/ --- 1. PROCESAMIENTO y ALMACENAMIENTO de datos ordenados ---\n          Object.keys(categories).forEach((catKey) =>\n          {\n              const categoriaData = resoluciones[catKey]; \n              let catItems = [];\n\n              if (categoriaData && Array.isArray(categoriaData.Items)) {\n                  catItems = categoriaData.Items.filter(r => r.status === 1);\n              }\n              \n              if (catItems.length > 0) {\n                  const sortedItems = catItems.map(item => ({\n                      ...item,\n                      dateObj: parseDate(item) \n                  })).sort((a, b) => b.dateObj - a.dateObj); \/\/ b - a garantiza DESCENDENTE (m\u00e1s reciente primero)\n\n                  allSortedItems[catKey] = sortedItems;\n              }\n          });\n          \n          \/\/ --- 2. GENERACI\u00d3N INICIAL DEL HTML (Primera P\u00e1gina) ---\n          Object.keys(categories).forEach((catKey) =>\n          {\n              const catName = categories[catKey];\n              const catItems = allSortedItems[catKey] || [];\n              const collapseCatId = `collapse-${catKey}`;\n              const expanded = catKey === \"Cat1\";\n              const btnClass = expanded ? \"btn-link\" : \"btn-link collapsed\";\n              const collapseClass = expanded ? \"collapse show\" : \"collapse\";\n              \n              let contenidoCat = '';\n\n              if (catItems.length > 0)\n              {\n                  contenidoCat += `<div id=\"list-container-${catKey}\"><\/div>`;\n                  contenidoCat += `<div id=\"pagination-container-${catKey}\"><\/div>`;\n              } else {\n                  contenidoCat = `<p class=\"alert alert-info text-center mt-3\">No hay elementos activos en la categor\u00eda **${catName}** para mostrar.<\/p>`;\n              }\n              \n              const catAccordionHtml = `\n                  <div class=\"card\">\n                      <div class=\"card-header\" role=\"tab\" id=\"heading-${catKey}\">\n                          <h5 class=\"mb-0\">\n                              <button class=\"${btnClass}\" data-toggle=\"collapse\" data-target=\"#${collapseCatId}\" aria-expanded=\"${expanded}\" aria-controls=\"${collapseCatId}\">\n                                  <i class=\"fa-solid fa-folder-open mr-2\"><\/i> ${catName} (${catItems.length})\n                                  <span class=\"accordion-arrow ml-auto\">\n                                      <i class=\"fa-solid fa-angle-right\"><\/i>\n                                  <\/span>\n                              <\/button>\n                          <\/h5>\n                      <\/div>\n                      <div id=\"${collapseCatId}\" class=\"${collapseClass}\" role=\"tabpanel\" aria-labelledby=\"heading-${catKey}\" data-parent=\"#myaccordionid\">\n                          <div class=\"card-body\">\n                              ${contenidoCat}\n                          <\/div>\n                      <\/div>\n                  <\/div>`;\n\n              $(accordionContainer).append(catAccordionHtml);\n\n              if (catItems.length > 0) {\n                  renderPage(catKey, 1);\n              }\n          });\n\n          \/\/ --- 3. EVENTOS ---\n\n          \/\/ Evento de clic en los enlaces de paginaci\u00f3n (CON SCROLL AL ENCABEZADO)\n          $('#myaccordionid').on('click', '.pagination-controls a.page-link-custom', function(e) {\n              e.preventDefault();\n              const $link = $(this);\n              const catKey = $link.closest('.pagination-controls').data('cat');\n              const page = parseInt($link.data('page'));\n\n              if (!$link.parent().hasClass('disabled-custom') && !isNaN(page)) {\n                  renderPage(catKey, page);\n                  \n                  \/\/ Desplazamiento al encabezado del acorde\u00f3n padre (#heading-CatX)\n                  const $accordionHeader = $(`#heading-${catKey}`);\n                  if ($accordionHeader.length) {\n                      $('html, body').animate({\n                          scrollTop: $accordionHeader.offset().top - 100 \n                      }, 500);\n                  }\n              }\n          });\n\n          \/\/ \u2705 NUEVO EVENTO PRINCIPAL: Se dispara DESPU\u00c9S de que un panel del acorde\u00f3n se abre.\n          $('#myaccordionid').on('shown.bs.collapse', function(e) {\n              const $panelAbierto = $(e.target);\n              \n              \/\/ El 'e.target' es el DIV del colapso (e.g., #collapse-Cat2). \n              \/\/ Buscamos su encabezado padre (el card-header) por la estructura HTML.\n              const $cardHeader = $panelAbierto.closest('.card').find('.card-header');\n              \n              if ($cardHeader.length) {\n                  \/\/ --- CALCULO DEL OFFSET CLAVE ---\n                  \/\/ \ud83d\udea8 AJUSTA ESTE VALOR: Define la altura de tu men\u00fa de navegaci\u00f3n fijo (sticky header)\n                  \/\/ Por ejemplo: 80px para el men\u00fa + 20px de margen = 100\n                  const finalOffset = 100; \/\/ AJUSTA ESTE VALOR SEG\u00daN LA ALTURA DE TU MEN\u00da SUPERIOR\n                  \n                  \/\/ Ejecutamos el scroll. Al usar 'shown.bs.collapse', no necesitamos setTimeout.\n                  $('html, body').animate({\n                      \/\/ Calcula la posici\u00f3n del encabezado y resta el offset\n                      scrollTop: $cardHeader.offset().top - finalOffset \n                  }, 500);\n              }\n          });\n          \n          \/\/ SWEETALERT\n          $('#myaccordionid').on('click', '.archivos-list .resolution-link', function(e) \n          {\n              e.preventDefault();\n              \n              const link = $(this);\n              const url = link.attr(\"href\");\n              const titulo = link.data(\"title\"); \n              const catName = link.data(\"cat\"); \n              \n              if (typeof Swal !== 'undefined') {\n                  Swal.fire({\n                      title: catName,\n                      text: `\u00bfDesea descargar el archivo ${titulo}?`,\n                      icon: 'question',\n                      showCancelButton: true,\n                      confirmButtonText: 'S\u00ed, Descargar',\n                      cancelButtonText: 'Cancelar'\n                  }).then(result => {\n                      if (result.isConfirmed) window.open(url, \"_blank\");\n                  });\n              } else {\n                  window.open(url, \"_blank\");\n              }\n          });\n\n      }).fail(function(jqxhr, textStatus, error) {\n          const err = textStatus + \", \" + error;\n          console.error(\"Error al cargar resoluciones.json: \" + err);\n          $(accordionContainer).html('<p class=\"alert alert-danger text-center mt-3\">\u26a0\ufe0f Error cr\u00edtico: No se pudieron cargar los datos de las resoluciones.<\/p>');\n      });\n\n  });\n<\/script-->\n\n<script>\nconst dominio = '\/wp-content\/uploads\/actos_administrativos\/'; \/\/ Dominio actualizado\nconst categories = { Cat1: \"Anexos\",Cat2: \"Resoluciones Anticipadas (Gaceta Oficial)\",Cat3: \"Resoluciones Anticipadas Emitidas \"};\n\n\/\/ --- L\u00d3GICA PRINCIPAL Y EVENTOS ---\njQuery(document).ready(function($)\n{\n    const ITEMS_PER_PAGE = 5;\n    const accordionContainer = document.getElementById('myaccordionid');\n    let allSortedItems = {}; \n\n    if (!accordionContainer) {\n        return;\n    }\n\n    \/\/ \u26a0\ufe0f DESHABILITAR CACHE PARA TODAS LAS PETICIONES AJAX\n    $.ajaxSetup({ cache: false });\n\n    \/\/ \ud83c\udfaf FUNCI\u00d3N: Intenta parsear la fecha primero del campo 'date' (DD\/MM\/AAAA) y luego del 'title'\n    const parseDate = (item) => \n    {\n        \/\/ Si la fecha es \"@\", simplemente la marcamos como no v\u00e1lida (Date(0)) para el ordenamiento,\n        \/\/ pero el renderizado la ignorar\u00e1 (ver renderPage).\n        if (item.date === \"@\") {\n            return new Date(0); \n        }\n\n        \/\/ --- 1. INTENTO: Campo 'date' (DD\/MM\/AAAA) ---\n        if (item.date) \n        {\n            const parts = item.date.match(\/(\\d{1,2})\\\/(\\d{1,2})\\\/(\\d{4})\/);\n            if (parts) \n            {\n                const day = parseInt(parts[1]);\n                const month = parseInt(parts[2]);\n                const year = parseInt(parts[3]);\n                \n                \/\/ *** CORRECCI\u00d3N CLAVE: Usamos Date.UTC para asegurar un ordenamiento consistente. ***\n                const utcTimestamp = Date.UTC(year, month - 1, day);\n                return new Date(utcTimestamp);\n            }\n        }\n        \n        \/\/ --- 2. INTENTO: Campo 'title' (de DD de NOMBREMES de AAAA) ---\n        if (item.title) {\n            const dateMatch = item.title.match(\/de (\\d{1,2}) de ([a-z\u00e1\u00e9\u00ed\u00f3\u00fa]+) de (\\d{4})\/i);\n            if (dateMatch) {\n                const day = parseInt(dateMatch[1]);\n                const monthName = dateMatch[2].toLowerCase();\n                const year = parseInt(dateMatch[3]);\n\n                const monthMap = {\n                    'enero': 1, 'febrero': 2, 'marzo': 3, 'abril': 4, 'mayo': 5, 'junio': 6,\n                    'julio': 7, 'agosto': 8, 'septiembre': 9, 'octubre': 10, 'noviembre': 11, 'diciembre': 12\n                };\n                \n                const month = monthMap[monthName] || 0; \n\n                if (month > 0) {\n                    \/\/ Aplicamos Date.UTC tambi\u00e9n al parseo por t\u00edtulo para consistencia\n                    const utcTimestamp = Date.UTC(year, month - 1, day);\n                    return new Date(utcTimestamp);\n                }\n            }\n        }\n\n        return new Date(0); \/\/ Fecha m\u00ednima para items sin fecha v\u00e1lida (1970)\n    };\n    \n    \/\/ \ud83c\udfaf FUNCI\u00d3N DE PAGINACI\u00d3N: Renderiza una p\u00e1gina espec\u00edfica\n    const renderPage = (catKey, page) => {\n        const sortedItems = allSortedItems[catKey];\n        if (!sortedItems) return;\n\n        const totalItems = sortedItems.length;\n        const totalPages = Math.ceil(totalItems \/ ITEMS_PER_PAGE);\n        const start = (page - 1) * ITEMS_PER_PAGE;\n        const end = start + ITEMS_PER_PAGE;\n        const itemsToRender = sortedItems.slice(start, end);\n\n        let listHTML = `<ul class=\"list-group archivos-list mb-2\" id=\"list-${catKey}\">`;\n        \n        itemsToRender.forEach(item => {\n            const isLink = item.link && item.link !== \"#\";\n            const fullLink = isLink ? dominio + item.link : \"#\";\n\n            \/\/ --- L\u00d3GICA DE FECHA ACTUALIZADA ---\n            const dateString = item.date === \"@\"\n                ? '' \/\/ Si es \"@\", no mostramos nada\n                : (item.dateObj.getFullYear() > 1970 \n                    ? item.dateObj.toLocaleDateString('es-ES', { \n                        day: '2-digit', \n                        month: '2-digit', \n                        year: 'numeric',\n                        timeZone: 'UTC'\n                      })\n                    : '<span class=\"text-danger\">N\/A<\/span>');\n            \/\/ --- FIN L\u00d3GICA DE FECHA ACTUALIZADA ---\n\n            listHTML += `\n                <li class=\"list-group-item d-flex align-items-center py-2 px-3\">\n                    <div class=\"text-center flex-shrink-0 fecha-container\" style=\"width: 100px; min-width: 100px; margin-right: 15px;\">\n                        <div><i class=\"fa-solid fa-check fa-lg ${isLink ? 'text-success' : 'text-muted'}\"><\/i><\/div>\n                        <div style=\"font-size: 0.8em; margin-top: 4px;\">${dateString}<\/div>\n                    <\/div>\n                    ${\n                        isLink\n                        ? `<a href=\"${fullLink}\" target=\"_blank\" class=\"flex-grow-1 resolution-link text-start text-wrap\"\n                                data-link=\"${fullLink}\" data-title=\"${item.title}\" data-cat=\"${categories[catKey]}\" \n                                data-subcat=\"ListaPrincipal\" style=\"text-decoration:none;\">\n                                    ${item.title}\n                                <\/a>`\n                        : `<span class=\"text-muted flex-grow-1 text-start text-wrap w-100\">\n                                    ${item.title} <small class=\"text-dark fw-bold ms-auto\">(No Disponible)<\/small>\n                                <\/span>`\n                    }\n                <\/li>`;\n        });\n        listHTML += `<\/ul>`;\n\n        $(`#list-container-${catKey}`).html(listHTML);\n\n        \/\/ --- GENERACI\u00d3N DEL PAGINADOR (Solo \u00cdconos) ---\n        let paginationHTML = '';\n        if (totalPages > 1) {\n            \n            let startPage = Math.max(1, page - 2);\n            let endPage = Math.min(totalPages, page + 2);\n\n            if (endPage - startPage < 4) {\n                   if (startPage === 1) endPage = Math.min(totalPages, 5);\n                   if (endPage === totalPages) startPage = Math.max(1, totalPages - 4);\n            }\n\n            paginationHTML += `<div class=\"mt-3\" style=\"display: flex; justify-content: center;\">\n                <nav aria-label=\"Paginaci\u00f3n para ${catKey}\">\n                    <ul class=\"custom-pagination-list mt-0 pagination-controls\" data-cat=\"${catKey}\">`;\n            \n            \/\/ Primer (First)\n            paginationHTML += `<li class=\"page-item-custom ${page === 1 ? 'disabled-custom' : ''}\">\n                <a class=\"page-link-custom\" href=\"#\" data-page=\"1\" title=\"Primer P\u00e1gina\">\n                    <i class=\"fa-solid fa-angles-left\"><\/i>\n                <\/a>\n            <\/li>`;\n            \n            \/\/ Anterior (Previous) - SOLO \u00cdCONO\n            paginationHTML += `<li class=\"page-item-custom ${page === 1 ? 'disabled-custom' : ''}\">\n                <a class=\"page-link-custom\" href=\"#\" data-page=\"${page - 1}\" title=\"Anterior\">\n                    <i class=\"fa-solid fa-angle-left\"><\/i> \n                <\/a>\n            <\/li>`;\n\n            \/\/ Botones de n\u00famero\n            for (let i = startPage; i <= endPage; i++) {\n                paginationHTML += `<li class=\"page-item-custom ${i === page ? 'active-custom' : ''}\">\n                    <a class=\"page-link-custom\" href=\"#\" data-page=\"${i}\">${i}<\/a>\n                <\/li>`;\n            }\n\n            \/\/ Siguiente (Next) - SOLO \u00cdCONO\n            paginationHTML += `<li class=\"page-item-custom ${page === totalPages ? 'disabled-custom' : ''}\">\n                <a class=\"page-link-custom\" href=\"#\" data-page=\"${page + 1}\" title=\"Siguiente\">\n                    <i class=\"fa-solid fa-angle-right\"><\/i>\n                <\/a>\n            <\/li>`;\n\n            \/\/ \u00daltimo (Last)\n            paginationHTML += `<li class=\"page-item-custom ${page === totalPages ? 'disabled-custom' : ''}\">\n                <a class=\"page-link-custom\" href=\"#\" data-page=\"${totalPages}\" title=\"\u00daltima P\u00e1gina\">\n                    <i class=\"fa-solid fa-angles-right\"><\/i>\n                <\/a>\n            <\/li>`;\n\n\n            paginationHTML += `<\/ul><\/nav><\/div>`;\n        }\n        $(`#pagination-container-${catKey}`).html(paginationHTML);\n    };\n\n    \n    \/\/ \ud83c\udfaf CARGA AS\u00cdNCRONA DE DATOS DESDE EL ARCHIVO JSON \ud83c\udfaf\n    $.getJSON('\/wp-content\/uploads\/resoluciones_anticipadas.json', function(resoluciones) \n    {\n        if (Object.keys(resoluciones).length === 0)\n        {\n            $(accordionContainer).html('<p class=\"alert alert-warning text-center mt-3\">No se encontraron datos de resoluciones activas.<\/p>');\n            return;\n        }\n\n        \/\/ --- 1. PROCESAMIENTO y ALMACENAMIENTO de datos ordenados ---\n        Object.keys(categories).forEach((catKey) =>\n        {\n            const categoriaData = resoluciones[catKey]; \n            let catItems = [];\n\n            if (categoriaData && Array.isArray(categoriaData.Items)) {\n                catItems = categoriaData.Items.filter(r => r.status === 1);\n            }\n            \n            if (catItems.length > 0) {\n                const sortedItems = catItems.map(item => ({\n                    ...item,\n                    dateObj: parseDate(item) \n                })).sort((a, b) => b.dateObj - a.dateObj); \/\/ b - a garantiza DESCENDENTE (m\u00e1s reciente primero)\n\n                allSortedItems[catKey] = sortedItems;\n            }\n        });\n        \n        \/\/ --- 2. GENERACI\u00d3N INICIAL DEL HTML (Primera P\u00e1gina) ---\n        Object.keys(categories).forEach((catKey) =>\n        {\n            const catName = categories[catKey];\n            const catItems = allSortedItems[catKey] || [];\n            const collapseCatId = `collapse-${catKey}`;\n            const expanded = catKey === \"Cat1\";\n            const btnClass = expanded ? \"btn-link\" : \"btn-link collapsed\";\n            const collapseClass = expanded ? \"collapse show\" : \"collapse\";\n            \n            let contenidoCat = '';\n\n            if (catItems.length > 0)\n            {\n                contenidoCat += `<div id=\"list-container-${catKey}\"><\/div>`;\n                contenidoCat += `<div id=\"pagination-container-${catKey}\"><\/div>`;\n            } else {\n                contenidoCat = `<p class=\"alert alert-info text-center mt-3\">No hay elementos activos en la categor\u00eda **${catName}** para mostrar.<\/p>`;\n            }\n            \n            const catAccordionHtml = `\n                <div class=\"card\">\n                    <div class=\"card-header\" role=\"tab\" id=\"heading-${catKey}\">\n                        <h5 class=\"mb-0\">\n                            <button class=\"${btnClass}\" data-toggle=\"collapse\" data-target=\"#${collapseCatId}\" aria-expanded=\"${expanded}\" aria-controls=\"${collapseCatId}\">\n                                <i class=\"fa-solid fa-folder-open mr-2\"><\/i> ${catName} (${catItems.length})\n                                <span class=\"accordion-arrow ml-auto\">\n                                    <i class=\"fa-solid fa-angle-right\"><\/i>\n                                <\/span>\n                            <\/button>\n                        <\/h5>\n                    <\/div>\n                    <div id=\"${collapseCatId}\" class=\"${collapseClass}\" role=\"tabpanel\" aria-labelledby=\"heading-${catKey}\" data-parent=\"#myaccordionid\">\n                        <div class=\"card-body\">\n                            ${contenidoCat}\n                        <\/div>\n                    <\/div>\n                <\/div>`;\n\n            $(accordionContainer).append(catAccordionHtml);\n\n            if (catItems.length > 0) {\n                renderPage(catKey, 1);\n            }\n        });\n\n        \/\/ --- 3. EVENTOS ---\n\n        \/\/ Evento de clic en los enlaces de paginaci\u00f3n (CON SCROLL AL ENCABEZADO)\n        $('#myaccordionid').on('click', '.pagination-controls a.page-link-custom', function(e) {\n            e.preventDefault();\n            const $link = $(this);\n            const catKey = $link.closest('.pagination-controls').data('cat');\n            const page = parseInt($link.data('page'));\n\n            if (!$link.parent().hasClass('disabled-custom') && !isNaN(page)) {\n                renderPage(catKey, page);\n                \n                \/\/ Desplazamiento al encabezado del acorde\u00f3n padre (#heading-CatX)\n                const $accordionHeader = $(`#heading-${catKey}`);\n                if ($accordionHeader.length) {\n                    $('html, body').animate({\n                        scrollTop: $accordionHeader.offset().top - 100 \n                    }, 500);\n                }\n            }\n        });\n\n        \/\/ \u2705 NUEVO EVENTO PRINCIPAL: Se dispara DESPU\u00c9S de que un panel del acorde\u00f3n se abre.\n        $('#myaccordionid').on('shown.bs.collapse', function(e) {\n            const $panelAbierto = $(e.target);\n            \n            \/\/ El 'e.target' es el DIV del colapso (e.g., #collapse-Cat2). \n            \/\/ Buscamos su encabezado padre (el card-header) por la estructura HTML.\n            const $cardHeader = $panelAbierto.closest('.card').find('.card-header');\n            \n            if ($cardHeader.length) {\n                \/\/ --- CALCULO DEL OFFSET CLAVE ---\n                const finalOffset = 100; \/\/ AJUSTA ESTE VALOR SEG\u00daN LA ALTURA DE TU MEN\u00da SUPERIOR\n                \n                \/\/ Ejecutamos el scroll. Al usar 'shown.bs.collapse', no necesitamos setTimeout.\n                $('html, body').animate({\n                    \/\/ Calcula la posici\u00f3n del encabezado y resta el offset\n                    scrollTop: $cardHeader.offset().top - finalOffset \n                }, 500);\n            }\n        });\n        \n        \/\/ SWEETALERT\n        $('#myaccordionid').on('click', '.archivos-list .resolution-link', function(e) \n        {\n            e.preventDefault();\n            \n            const link = $(this);\n            const url = link.attr(\"href\");\n            const titulo = link.data(\"title\"); \n            const catName = link.data(\"cat\"); \n            \n            if (typeof Swal !== 'undefined') {\n                Swal.fire({\n                    title: catName,\n                    text: `\u00bfDesea descargar el archivo ${titulo}?`,\n                    icon: 'question',\n                    showCancelButton: true,\n                    confirmButtonText: 'S\u00ed, Descargar',\n                    cancelButtonText: 'Cancelar'\n                }).then(result => {\n                    if (result.isConfirmed) window.open(url, \"_blank\");\n                });\n            } else {\n                window.open(url, \"_blank\");\n            }\n        });\n\n    }).fail(function(jqxhr, textStatus, error) {\n        const err = textStatus + \", \" + error;\n        console.error(\"Error al cargar resoluciones.json: \" + err);\n        $(accordionContainer).html('<p class=\"alert alert-danger text-center mt-3\">\u26a0\ufe0f Error cr\u00edtico: No se pudieron cargar los datos de las resoluciones.<\/p>');\n    });\n\n});\n<\/script>    <\/div>\n    ","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-385","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Resoluciones Anticipadas - Autoridad Nacional de Aduanas<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Resoluciones Anticipadas - Autoridad Nacional de Aduanas\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/\" \/>\n<meta property=\"og:site_name\" content=\"Autoridad Nacional de Aduanas\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/aduanas.panama\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-17T17:48:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ana.gob.pa\/wp-content\/uploads\/2025\/07\/logo2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"175\" \/>\n\t<meta property=\"og:image:height\" content=\"76\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@aduanaspanama\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/index.php\\\/resoluciones-anticipadas\\\/\",\"url\":\"https:\\\/\\\/www.ana.gob.pa\\\/index.php\\\/resoluciones-anticipadas\\\/\",\"name\":\"Resoluciones Anticipadas - Autoridad Nacional de Aduanas\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/#website\"},\"datePublished\":\"2025-08-13T20:45:23+00:00\",\"dateModified\":\"2025-11-17T17:48:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/index.php\\\/resoluciones-anticipadas\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ana.gob.pa\\\/index.php\\\/resoluciones-anticipadas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/index.php\\\/resoluciones-anticipadas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.ana.gob.pa\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resoluciones Anticipadas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/#website\",\"url\":\"https:\\\/\\\/www.ana.gob.pa\\\/\",\"name\":\"Autoridad Nacional de Aduanas\",\"description\":\"Autoridad Nacional de Aduanas\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/#organization\"},\"alternateName\":\"Autoridad Nacional de Aduanas\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ana.gob.pa\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/#organization\",\"name\":\"Autoridad Nacional de Aduanas\",\"alternateName\":\"Autoridad Nacional de Aduanas\",\"url\":\"https:\\\/\\\/www.ana.gob.pa\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.ana.gob.pa\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/logo-de-aduanas-y-gobierno.png\",\"contentUrl\":\"https:\\\/\\\/www.ana.gob.pa\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/logo-de-aduanas-y-gobierno.png\",\"width\":2860,\"height\":423,\"caption\":\"Autoridad Nacional de Aduanas\"},\"image\":{\"@id\":\"https:\\\/\\\/www.ana.gob.pa\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/aduanas.panama\\\/\",\"https:\\\/\\\/x.com\\\/aduanaspanama\",\"https:\\\/\\\/www.instagram.com\\\/aduanaspanama\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Resoluciones Anticipadas - Autoridad Nacional de Aduanas","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/","og_locale":"es_ES","og_type":"article","og_title":"Resoluciones Anticipadas - Autoridad Nacional de Aduanas","og_url":"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/","og_site_name":"Autoridad Nacional de Aduanas","article_publisher":"https:\/\/www.facebook.com\/aduanas.panama\/","article_modified_time":"2025-11-17T17:48:20+00:00","og_image":[{"width":175,"height":76,"url":"https:\/\/www.ana.gob.pa\/wp-content\/uploads\/2025\/07\/logo2.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@aduanaspanama","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/","url":"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/","name":"Resoluciones Anticipadas - Autoridad Nacional de Aduanas","isPartOf":{"@id":"https:\/\/www.ana.gob.pa\/#website"},"datePublished":"2025-08-13T20:45:23+00:00","dateModified":"2025-11-17T17:48:20+00:00","breadcrumb":{"@id":"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ana.gob.pa\/index.php\/resoluciones-anticipadas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.ana.gob.pa\/"},{"@type":"ListItem","position":2,"name":"Resoluciones Anticipadas"}]},{"@type":"WebSite","@id":"https:\/\/www.ana.gob.pa\/#website","url":"https:\/\/www.ana.gob.pa\/","name":"Autoridad Nacional de Aduanas","description":"Autoridad Nacional de Aduanas","publisher":{"@id":"https:\/\/www.ana.gob.pa\/#organization"},"alternateName":"Autoridad Nacional de Aduanas","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ana.gob.pa\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.ana.gob.pa\/#organization","name":"Autoridad Nacional de Aduanas","alternateName":"Autoridad Nacional de Aduanas","url":"https:\/\/www.ana.gob.pa\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.ana.gob.pa\/#\/schema\/logo\/image\/","url":"https:\/\/www.ana.gob.pa\/wp-content\/uploads\/2025\/07\/logo-de-aduanas-y-gobierno.png","contentUrl":"https:\/\/www.ana.gob.pa\/wp-content\/uploads\/2025\/07\/logo-de-aduanas-y-gobierno.png","width":2860,"height":423,"caption":"Autoridad Nacional de Aduanas"},"image":{"@id":"https:\/\/www.ana.gob.pa\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/aduanas.panama\/","https:\/\/x.com\/aduanaspanama","https:\/\/www.instagram.com\/aduanaspanama"]}]}},"_links":{"self":[{"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/pages\/385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/comments?post=385"}],"version-history":[{"count":134,"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/pages\/385\/revisions"}],"predecessor-version":[{"id":4658,"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/pages\/385\/revisions\/4658"}],"wp:attachment":[{"href":"https:\/\/www.ana.gob.pa\/index.php\/wp-json\/wp\/v2\/media?parent=385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}