{"id":33439,"date":"2025-02-18T13:27:36","date_gmt":"2025-02-18T16:27:36","guid":{"rendered":"https:\/\/aeropuertodecarrasco.com.uy\/?page_id=33439"},"modified":"2025-02-21T09:13:27","modified_gmt":"2025-02-21T12:13:27","slug":"panel-de-vuelos-accesible","status":"publish","type":"page","link":"https:\/\/aeropuertodecarrasco.com.uy\/en\/panel-de-vuelos-accesible\/","title":{"rendered":"Accessible flight panel"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"33439\" class=\"elementor elementor-33439 elementor-33015\" data-elementor-post-type=\"page\">\n\t\t\t\t<header class=\"elementor-element elementor-element-df85de2 e-flex e-con-boxed e-con e-parent\" data-id=\"df85de2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aae8708 elementor-widget elementor-widget-heading\" data-id=\"aae8708\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"page-panel\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Accessible flight panel<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/header>\n\t\t<section class=\"elementor-element elementor-element-65edb22 e-flex e-con-boxed e-con e-parent\" data-id=\"65edb22\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-06cb2b1 elementor-widget elementor-widget-shortcode\" data-id=\"06cb2b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n\t<div class=\"waiting-time-container\">\n\t\t<p class=\"words\">Waiting time at departure controls:\t\t\t<strong>\n\t\t\t\t1 to\t\t\t\t3\t\t\t<\/strong>minutes<\/p>\n\t<\/div>\n\n\t<style>\n\t\t.waiting-time-container {\n\t\t\tpadding-top: 8px;\n\t\t\tpadding-bottom: 0px;\n\t\t\tbackground-color: #f4f4f4;\n\t\t\tborder: 1px solid #ddd;\n\t\t\ttext-align: center;\n\t\t}\n\t\t\n\t\t.waiting-time-container p {\n\t\t\tmargin-top:5px;\n\t\t\tfont-size: 16px;\n\t\t\tcolor: #333;\n\t\t}\n\t\t\n\t\t.waiting-time-container strong {\n\t\t\tcolor: #e74c3c;\n\t\t}\n\t\t\n\t\t.words {\n\t\t\t  position: relative;\n\t\t\t  animation: move-words 10s linear infinite;\n\t\t}\n\t\t\n\t\t@media screen and (min-width:768px) {\n\t\t@keyframes move-words {\n\t\t\t  0% {\n\t\t\t\tleft: 20%;\n\t\t\t  }\n\t\t\t  100% {\n\t\t\t\tleft: -20%;\n\t\t\t  }\n\t\t\t}\n\t\t}\n\t<\/style>\n\n\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<main class=\"elementor-element elementor-element-1063fcb e-flex e-con-boxed e-con e-parent\" data-id=\"1063fcb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0cd8bd9 elementor-widget elementor-widget-html\" data-id=\"0cd8bd9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"container\">\r\n    <div>\r\n        <button data-filter=\"A\" class=\"btn filter-mov\" id=\"btn-arribos\" aria-label=\"Mostrar Arribos\">\r\n            <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/aeropuertodecarrasco.com.uy\/wp-content\/uploads\/2022\/10\/arribos.png?resize=40%2C40&#038;ssl=1\" height=\"40\" width=\"40\" alt=\"Icono de Arribos\"\/> <br>Arribos\r\n        <\/button>\r\n        <button data-filter=\"D\" class=\"btn filter-mov\" id=\"btn-partidas\" aria-label=\"Mostrar Partidas\">\r\n            Partidas<br><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/aeropuertodecarrasco.com.uy\/wp-content\/uploads\/2022\/10\/partidas.png?resize=40%2C40&#038;ssl=1\" height=\"40\" width=\"40\" alt=\"Icono de Partidas\"\/>\r\n        <\/button>\r\n    <\/div>\r\n\r\n    <div id=\"vuelos\" aria-live=\"polite\" tabindex=\"-1\"><\/div> <!-- Contenedor de la tabla de vuelos -->\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1870a1 elementor-widget elementor-widget-html\" data-id=\"d1870a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\n$(function() {\r\n    \/\/ Mueve el foco al H1 con id \"page-title\" al cargar la p\u00e1gina\r\n    \/\/ Reemplaza \"page-title\" con el ID real de tu H1 en la cabecera.\r\n    $(\"#page-title\").focus();\r\n\r\n    $(\".filter-mov\").click(function(e) {\r\n        var filter = $(this).data('filter');\r\n        renderVuelos(filter);\r\n    });\r\n\r\n    function setFocusToTable() {\r\n        var firstCell = $('#vuelos table tbody tr:first-child td:first-child');\r\n        if (firstCell.length) {\r\n            firstCell.attr('tabindex', '0').focus();\r\n        } else {\r\n            $('#vuelos').focus();\r\n        }\r\n    }\r\n\r\n    function cleanData(value) {\r\n        return value && value !== \"null\" ? value : \"\";\r\n    }\r\n\r\n    function renderVuelos(filter) {\r\n        var container = $(\"#vuelos\");\r\n        container.attr(\"aria-busy\", \"true\").empty();\r\n        container.show();\r\n\r\n        var url = \"https:\/\/aeropuertodecarrasco.com.uy\/aeropuertos\/vuelos\/mvd\/arribos.json\";\r\n        var isArrival = true;\r\n        if (filter == 'D') {\r\n            url = \"https:\/\/aeropuertodecarrasco.com.uy\/aeropuertos\/vuelos\/mvd\/partidas.json\";\r\n            isArrival = false;\r\n        }\r\n\r\n        $.getJSON(url, function(data) {\r\n            container.attr(\"aria-busy\", \"false\");\r\n            container.html('<table class=\"table vuelos-table\" tabindex=\"0\"><thead><tr><th>Fecha\/Hora<\/th><th>Destino<\/th><th>Vuelo<\/th><th>Estima<\/th><th>' + (isArrival ? 'Arribo' : 'Partida') + '<\/th><th>Estado<\/th><\/tr><\/thead><tbody>' +\r\n                data.flights.map(flight => `<tr>\r\n                    <td>${cleanData(flight.stda)}<\/td>\r\n                    <td>${cleanData(flight.destorig)}<\/td>\r\n                    <td>${cleanData(flight.codeshare || flight.nro)}<\/td>\r\n                    <td>${cleanData(flight.etda)}<\/td>\r\n                    <td>${cleanData(isArrival ? flight.atda : flight.stda)}<\/td>\r\n                    <td style=\"background-color:${flight.color};color:white\">${cleanData(flight.estes)}<\/td>\r\n                <\/tr>`).join('') +\r\n                '<\/tbody><\/table>');\r\n\r\n            setTimeout(setFocusToTable, 300);\r\n\r\n            $('#vuelos table tbody tr td').attr('tabindex', '-1');\r\n\r\n            $('#vuelos table').on('keydown', function(e) {\r\n                var currentCell = $(document.activeElement);\r\n                if (!currentCell.is('td')) return;\r\n\r\n                var currentRow = currentCell.parent('tr');\r\n                var nextCell, nextRow;\r\n\r\n                switch (e.key) {\r\n                    case 'ArrowRight':\r\n                        e.preventDefault();\r\n                        nextCell = currentCell.next('td');\r\n                        if (nextCell.length) {\r\n                            nextCell.focus();\r\n                        } else {\r\n                            nextRow = currentRow.next('tr');\r\n                            if (nextRow.length) {\r\n                                nextCell = nextRow.find('td:first-child');\r\n                                if (nextCell.length) nextCell.focus();\r\n                            }\r\n                        }\r\n                        break;\r\n                    case 'ArrowLeft':\r\n                        e.preventDefault();\r\n                        nextCell = currentCell.prev('td');\r\n                        if (nextCell.length) {\r\n                            nextCell.focus();\r\n                        } else {\r\n                            nextRow = currentRow.prev('tr');\r\n                            if (nextRow.length) {\r\n                                nextCell = nextRow.find('td:last-child');\r\n                                if (nextCell.length) nextCell.focus();\r\n                            }\r\n                        }\r\n                        break;\r\n                    case 'ArrowDown':\r\n                        e.preventDefault();\r\n                        nextRow = currentRow.next('tr');\r\n                        if (nextRow.length) {\r\n                            nextCell = nextRow.find('td:first-child');\r\n                            if (nextCell.length) nextCell.focus();\r\n                        }\r\n                        break;\r\n                    case 'ArrowUp':\r\n                        e.preventDefault();\r\n                        nextRow = currentRow.prev('tr');\r\n                        if (nextRow.length) {\r\n                            nextCell = nextRow.find('td:first-child');\r\n                            if (nextCell.length) nextCell.focus();\r\n                        }\r\n                        break;\r\n                }\r\n            });\r\n        }).fail(function() {\r\n            container.attr(\"aria-busy\", \"false\").html(\"<p>Error al cargar los vuelos. Intente nuevamente m\u00e1s tarde.<\/p>\");\r\n        });\r\n    }\r\n});\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/main>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Accessible flight panel Arribos Partidas<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-33439","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/pages\/33439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/comments?post=33439"}],"version-history":[{"count":6,"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/pages\/33439\/revisions"}],"predecessor-version":[{"id":33453,"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/pages\/33439\/revisions\/33453"}],"wp:attachment":[{"href":"https:\/\/aeropuertodecarrasco.com.uy\/en\/wp-json\/wp\/v2\/media?parent=33439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}