{"id":23723,"date":"2025-06-17T13:05:50","date_gmt":"2025-06-17T13:05:50","guid":{"rendered":"https:\/\/www.camara.pr.gov\/calendario\/"},"modified":"2025-08-06T10:28:25","modified_gmt":"2025-08-06T10:28:25","slug":"calendario","status":"publish","type":"page","link":"https:\/\/www.camara.pr.gov\/en\/calendario\/","title":{"rendered":"Calendar"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"23723\" class=\"elementor elementor-23723 elementor-1544\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-159bc2a e-flex e-con-boxed e-con e-parent\" data-id=\"159bc2a\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2161dce elementor-widget elementor-widget-heading\" data-id=\"2161dce\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Calendar<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-753f88a e-flex e-con-boxed e-con e-parent\" data-id=\"753f88a\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7484b0d elementor-widget elementor-widget-shortcode\" data-id=\"7484b0d\" data-element_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\"><link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/flatpickr\/dist\/flatpickr.min.css\">\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/flatpickr\"><\/script>\r\n<style>\r\n.rst-item-events {\r\n    opacity: 0;\r\n    transform: translateY(50px);\r\n    transition: opacity 0.6s ease-out, transform 0.6s ease-out;\r\n}\r\n.rst-item-events.animate-in {\r\n    opacity: 1;\r\n    transform: translateY(0);\r\n}\r\n.rst-item-events:nth-child(1) { transition-delay: 0.1s; }\r\n.rst-item-events:nth-child(2) { transition-delay: 0.2s; }\r\n.rst-item-events:nth-child(3) { transition-delay: 0.3s; }\r\n.rst-item-events:nth-child(4) { transition-delay: 0.4s; }\r\n.rst-item-events:nth-child(5) { transition-delay: 0.5s; }\r\n.rst-item-events:nth-child(6) { transition-delay: 0.6s; }\r\n.rst-item-events:nth-child(7) { transition-delay: 0.7s; }\r\n.rst-item-events:nth-child(8) { transition-delay: 0.8s; }\r\n.rst-item-events:nth-child(n+9) { transition-delay: 0.1s; }\r\n\r\n.rst-click-filter-by-taxonomy .close {\r\n    display: none;\r\n    align-items: center;\r\n    justify-content: center;\r\n    line-height: 0;\r\n}\r\n.rst-filter-by-taxonomy.has-value .rst-click-filter-by-taxonomy .close {\r\n    display: inline-flex;\r\n}\r\n.rst-click-filter-by-taxonomy .close svg {\r\n    width: 16px;\r\n    height: 16px;\r\n    min-width: 16px;\r\n    min-height: 16px;\r\n    max-width: 16px;\r\n    max-height: 16px;\r\n}\r\n<\/style>\r\n<div class=\"rst-section-events-calendar\">\r\n    <h1>Calendar<\/h1>\r\n        <div class=\"events-calendar-ajax\">\r\n        <div class=\"events-calendar-container\">\r\n            <form method=\"GET\" class=\"rst-filter-events-calendar\" id=\"frmFilterEvent\">\r\n                <input type=\"hidden\" value=\"\" id=\"startTimestamp\" name=\"startevent\">\r\n                <input type=\"hidden\" value=\"\" id=\"endTimestamp\" name=\"endevent\">\r\n                <input type=\"hidden\" value=\"\" class=\"type_value\" name=\"type\" \/>\r\n                <input type=\"hidden\" value=\"\" class=\"location_value\" name=\"location\" \/>\r\n                <div class=\"rst-filter-search \">\r\n                    <label>Buscar<\/label>\r\n                    <input type=\"text\" placeholder=\"\" name=\"search\" value=\"\" \/> \r\n                <\/div>\r\n                <div class=\"rst-filter-wrap\">\r\n                    <div class=\"rst-filter-by-taxonomy \">\r\n                        <div class=\"rst-click-filter-by-taxonomy\">\r\n                                                        <span>Fecha<\/span>\r\n                            <a data-taxonomy=\"wcs-date\" data-label=\"Todas las Fechas\" class=\"close\">\r\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" enable-background=\"new 0 0 24 24\" viewBox=\"0 0 24 24\">\r\n                                    <path d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M15.7,14.3c0.4,0.4,0.4,1,0,1.4c-0.4,0.4-1,0.4-1.4,0\r\n                                        L12,13.4l-2.3,2.3c-0.4,0.4-1,0.4-1.4,0c-0.4-0.4-0.4-1,0-1.4l2.3-2.3L8.3,9.7c-0.4-0.4-0.4-1,0-1.4c0.4-0.4,1-0.4,1.4,0l2.3,2.3\r\n                                        l2.3-2.3c-0.4-0.4,1-0.4,1.4,0c0.4,0.4,0.4,1,0,1.4L13.4,12L15.7,14.3z\"><\/path>\r\n                                <\/svg>\r\n                            <\/a>\r\n                        <\/div>\r\n                        <div class=\"rst-filter-list-taxonomy rst-filter-date\">\r\n                            <div class=\"rst-filter-date-wrap\">\r\n                                <div class=\"rst-filter-date-column\">\r\n                                    <h4>Fecha de Inicio<\/h4>\r\n                                    <div id=\"startPicker\"><\/div>\r\n                                <\/div>\r\n                                <div class=\"rst-filter-date-column\">\r\n                                    <h4>Fecha de Fin<\/h4>\r\n                                    <div id=\"endPicker\"><\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                            <div class=\"rst-filter-date-action\">\r\n                                <a href=\"#\" class=\"rst-clear-date\">Limpiar<\/a>\r\n                                <a href=\"#\" class=\"rst-save-date disabled\">Guardar<\/a>\r\n                            <\/div>\r\n                            <script>\r\n                                (function($){\r\n                                    let startDate = null;\r\n                                    var startDateObj = '';\r\n                                    var endDateObj = '';\r\n                                    if ($('#startTimestamp').val()) {\r\n                                        var startDateObj = new Date($('#startTimestamp').val());\r\n                                    }\r\n                                    if ($('#endTimestamp').val()) {\r\n                                        var endDateObj = new Date($('#endTimestamp').val());\r\n                                    }\r\n                                    var startInstance = flatpickr(\"#startPicker\", {\r\n                                        inline: true,\r\n                                        dateFormat: \"Y-m-d\",\r\n                                        defaultDate: startDateObj,\r\n                                        locale: \"default\",\r\n                                        onChange: function(selectedDates, dateStr) {\r\n                                            startDate = dateStr;\r\n                                            endInstance.set('minDate', dateStr);\r\n                                            const endSelected = endInstance.selectedDates[0];\r\n                                            if (endSelected && endSelected < selectedDates[0]) {\r\n                                                endPicker.clear();\r\n                                            }\r\n                                        }\r\n                                    });\r\n                                    var endInstance = flatpickr(\"#endPicker\", {\r\n                                        inline: true,\r\n                                        defaultDate: endDateObj,\r\n                                        dateFormat: \"Y-m-d\",\r\n                                        locale: \"default\"\r\n                                    });\r\n                                    function formatDateReadable(date) {\r\n                                        const months = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];\r\n                                        const weekdays = ['Domingo', 'Lunes', 'Martes', 'Mi\u00e9rcoles', 'Jueves', 'Viernes', 'S\u00e1bado'];\r\n                                        const weekday = weekdays[date.getDay()];\r\n                                        const day = date.getDate();\r\n                                        const month = months[date.getMonth()];\r\n                                        const year = date.getFullYear();\r\n                                        return `${weekday}, ${day} de ${month} de ${year}`;\r\n                                    }\r\n                                    $('.rst-save-date').on('click', function() {\r\n                                        const startDate = startInstance.selectedDates[0];\r\n                                        const endDate = endInstance.selectedDates[0];\r\n                                        if (startDate) {\r\n                                            $('#startTimestamp').val(startDate.getTime());\r\n                                        } else {\r\n                                            $('#startTimestamp').val('');\r\n                                        }\r\n                                        if (endDate) {\r\n                                            $('#endTimestamp').val(endDate.getTime());\r\n                                        } else {\r\n                                            $('#endTimestamp').val('');\r\n                                        }\r\n                                        if (startDate && endDate) {\r\n                                            const startStr = formatDateReadable(startDate);\r\n                                            const endStr = formatDateReadable(endDate);\r\n                                            const fullStr = `${startStr} \u2014 ${endStr}`;\r\n                                            $(this).parents('.rst-filter-by-taxonomy').find('.rst-click-filter-by-taxonomy span').text(fullStr);\r\n                                            $(this).parents('.rst-filter-by-taxonomy').removeClass('active');\r\n                                            $(this).parents('.rst-filter-by-taxonomy').find('.rst-click-filter-by-taxonomy').removeClass('exit');\r\n                                            $(this).parents('.rst-filter-by-taxonomy').addClass('has-value');\r\n                                        }\r\n                                        return false;\r\n                                    });\r\n                                    $('.rst-clear-date').on('click', function() {\r\n                                        startInstance.clear();\r\n                                        endInstance.clear();\r\n                                        $('#startTimestamp').val('');\r\n                                        $('#endTimestamp').val('');\r\n                                        $(this).parents('.rst-filter-by-taxonomy').removeClass('active');\r\n                                        $(this).parents('.rst-filter-by-taxonomy').find('.rst-click-filter-by-taxonomy').removeClass('exit');\r\n                                        $(this).parents('.rst-filter-by-taxonomy').find('.rst-click-filter-by-taxonomy span').text('Todas las Fechas');\r\n                                        return false;\r\n                                    });\r\n                                    $('.rst-click-filter-by-taxonomy .close').click(function(event) {\r\n                                        event.stopPropagation();\r\n                                        var taxonomy = $(this).attr('data-taxonomy');\r\n                                        if (taxonomy == 'wcs-date') {\r\n                                            startInstance.clear();\r\n                                            endInstance.clear();\r\n                                        }\r\n                                    });\r\n                                    return false;\r\n                                })(jQuery);\r\n                            <\/script>\r\n                        <\/div>\r\n                    <\/div>\r\n                                                            <div class=\"rst-filter-by-taxonomy \">\r\n                        <div class=\"rst-click-filter-by-taxonomy\">\r\n                                                        <span>Localidad<\/span>\r\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\">\r\n                                <path d=\"M1 1L6 6L11 1\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                            <\/svg>\r\n                            <a data-taxonomy=\"wcs-room\" data-label=\"Ubicaci\u00f3n\" class=\"close\">\r\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" enable-background=\"new 0 0 24 24\" viewBox=\"0 0 24 24\">\r\n                                    <path d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M15.7,14.3c0.4,0.4,0.4,1,0,1.4c-0.4,0.4-1,0.4-1.4,0\r\n                                        L12,13.4l-2.3,2.3c-0.4,0.4-1,0.4-1.4,0c-0.4-0.4-0.4-1,0-1.4l2.3-2.3L8.3,9.7c-0.4-0.4-0.4-1,0-1.4c0.4-0.4,1-0.4,1.4,0l2.3,2.3\r\n                                        l2.3-2.3c-0.4-0.4,1-0.4,1.4,0c0.4,0.4,0.4,1,0,1.4L13.4,12L15.7,14.3z\"><\/path>\r\n                                <\/svg>\r\n                            <\/a>\r\n                        <\/div>\r\n                        <div class=\"rst-filter-list-taxonomy\">\r\n                            <ul>\r\n                                                        <li class=\"\" data-slug=\"barrio-bauta-abajo\" data-taxonomy=\"wcs-room\">Barrio Bauta Abajo<\/li>\r\n                                                        <li class=\"\" data-slug=\"oficina-de-la-reserva-natural-de-jobos\" data-taxonomy=\"wcs-room\">Oficina de la Reserva Natural de Jobos<\/li>\r\n                                                        <\/ul>\r\n                        <\/div>\r\n                    <\/div>\r\n                                        \r\n                    <button type=\"submit\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n                            <path d=\"M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 5L20.5 19l-5-5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z\"\/>\r\n                        <\/svg>Buscar\r\n                    <\/button>\r\n                <\/div>\r\n            <\/form>\r\n                            <p class=\"no-filter\">No se encontraron eventos para tu b\u00fasqueda. \u00a1Por favor intenta otra b\u00fasqueda o vuelve m\u00e1s tarde!<\/p>\r\n                        \r\n            <script>\r\n            (function($){\r\n                \r\n                function initScrollAnimation() {\r\n                    const observerOptions = {\r\n                        threshold: 0.1,\r\n                        rootMargin: '50px'\r\n                    };\r\n                    const observer = new IntersectionObserver(function(entries) {\r\n                        entries.forEach(entry => {\r\n                            if (entry.isIntersecting) {\r\n                                entry.target.classList.add('animate-in');\r\n                                observer.unobserve(entry.target);\r\n                            }\r\n                        });\r\n                    }, observerOptions);\r\n                    document.querySelectorAll('.rst-item-events').forEach(item => {\r\n                        observer.observe(item);\r\n                    });\r\n                }\r\n\r\n                $(document).ready(function() {\r\n                    initScrollAnimation();\r\n                });\r\n                \r\n                $('.rst-filter-search input').on('input', function() {\r\n                    if ($(this).val().trim() !== '') {\r\n                        $(this).parent().addClass('has-value-input');\r\n                    } else {\r\n                        $(this).parent().removeClass('has-value-input');\r\n                    }\r\n                });\r\n\r\n                jQuery('.rst-click-filter-by-taxonomy').click(function() {\r\n                    if (jQuery(this).hasClass('exit')) {\r\n                        jQuery(this).parent().removeClass('active');\r\n                        jQuery(this).removeClass('exit');\r\n                    } else {\r\n                        jQuery('.rst-filter-by-taxonomy').removeClass('active');\r\n                        jQuery('.rst-click-filter-by-taxonomy').removeClass('exit');\r\n                        jQuery(this).parent().addClass('active');\r\n                        jQuery(this).addClass('exit');\r\n                    }\r\n                });\r\n                $('.rst-click-filter-by-taxonomy .close').click(function(event) {\r\n                    event.stopPropagation();\r\n                    var taxonomy = $(this).attr('data-taxonomy');\r\n                    var label = $(this).attr('data-label');\r\n                    \r\n                    if (taxonomy == 'wcs-room') {\r\n                        $('.location_value').val('');\r\n                    } else if (taxonomy == 'wcs-date') {\r\n                        $('#startTimestamp').val('');\r\n                        $('#endTimestamp').val('');\r\n                    } else {\r\n                        $('.type_value').val('');\r\n                    }\r\n                    $(this).parents('.rst-filter-by-taxonomy').removeClass('has-value');\r\n                    $(this).parents('.rst-filter-by-taxonomy').removeClass('active');\r\n                    $(this).parent().removeClass('exit');\r\n                    $(this).parent().find('span').text(label);\r\n                });\r\n                $('.rst-filter-list-taxonomy li').click(function() {\r\n                    var taxonomy = $(this).attr('data-taxonomy');\r\n                    var slug = $(this).attr('data-slug');\r\n                    var name = $(this).text();\r\n                    $(this).parents('.rst-filter-by-taxonomy').removeClass('active');\r\n                    $(this).parents('.rst-filter-by-taxonomy').find('.rst-click-filter-by-taxonomy').removeClass('exit');\r\n                    $(this).parents('.rst-filter-by-taxonomy').addClass('has-value');\r\n                    $(this).parents('.rst-filter-by-taxonomy').find('.rst-click-filter-by-taxonomy span').text(name);\r\n                    if (taxonomy == 'wcs-room') {\r\n                        $('.location_value').val(slug);\r\n                    } else {\r\n                        $('.type_value').val(slug);\r\n                    }\r\n                });\r\n                function customAjaxSend(form, fullUrl) {\r\n                    $.ajax({\r\n                        url: fullUrl,\r\n                        method: form.attr('method'),\r\n                        data: form.serialize(),\r\n                        dataType: 'html',\r\n                        beforeSend: function() {\r\n                            $('.rst-list-events-container').addClass('loading');\r\n                        },\r\n                        success: function(response) {\r\n                            const html = $(response);\r\n                            const items = html.find('.events-calendar-container');\r\n                            $('.rst-list-events-container').removeClass('loading');\r\n                            $('.events-calendar-ajax').html(items);\r\n                            initScrollAnimation();\r\n                        },\r\n                        error: function(jqXHR, textStatus, errorThrown) {\r\n                            console.log('Error submitting form');\r\n                            console.log(textStatus, errorThrown);\r\n                        }\r\n                    });\r\n                }\r\n                $('#frmFilterEvent').on('submit', function(e) {\r\n                    e.preventDefault();\r\n                    var form = $(this);\r\n                    var url = form.attr('action');\r\n                    var fullUrl = url + '?' + form.serialize();\r\n                    let currentUrl = window.location.href;\r\n                    let newUrl = currentUrl.replace(\/page\\\/\\d+\\\/\/, '');\r\n                    customAjaxSend(form, newUrl);\r\n                });\r\n            })(jQuery);\r\n            <\/script>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n<\/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<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Calendar<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-23723","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/pages\/23723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/comments?post=23723"}],"version-history":[{"count":3,"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/pages\/23723\/revisions"}],"predecessor-version":[{"id":25628,"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/pages\/23723\/revisions\/25628"}],"wp:attachment":[{"href":"https:\/\/www.camara.pr.gov\/en\/wp-json\/wp\/v2\/media?parent=23723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}