{"id":9,"date":"2025-10-19T18:22:52","date_gmt":"2025-10-19T18:22:52","guid":{"rendered":"https:\/\/awakenforthem.motioninventory.com\/?page_id=9"},"modified":"2025-10-19T18:47:10","modified_gmt":"2025-10-19T18:47:10","slug":"home","status":"publish","type":"page","link":"https:\/\/awakenforthem.motioninventory.com\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9\" class=\"elementor elementor-9\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-06dc5e2 e-flex e-con-boxed e-con e-parent\" data-id=\"06dc5e2\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1a5cc03 elementor-widget elementor-widget-html\" data-id=\"1a5cc03\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PASO 1: Coloca este c\u00f3digo en un widget HTML de Elementor -->\r\n\r\n<div id=\"barcelona-recall-dashboard\"><\/div>\r\n\r\n<script crossorigin src=\"https:\/\/unpkg.com\/react@18\/umd\/react.production.min.js\"><\/script>\r\n<script crossorigin src=\"https:\/\/unpkg.com\/react-dom@18\/umd\/react-dom.production.min.js\"><\/script>\r\n<script src=\"https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/xlsx\/0.18.5\/xlsx.full.min.js\"><\/script>\r\n<script src=\"https:\/\/unpkg.com\/recharts@2.5.0\/dist\/Recharts.js\"><\/script>\r\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/tailwindcss@2.2.19\/dist\/tailwind.min.css\" rel=\"stylesheet\">\r\n\r\n<style>\r\n    #barcelona-recall-dashboard * {\r\n        box-sizing: border-box;\r\n    }\r\n    #barcelona-recall-dashboard {\r\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\r\n        width: 100%;\r\n    }\r\n<\/style>\r\n\r\n<script type=\"text\/babel\">\r\n    (function() {\r\n        const { useState, useMemo } = React;\r\n        const { PieChart, Pie, Cell, ResponsiveContainer, Tooltip } = Recharts;\r\n\r\n        const Upload = ({ size = 24 }) => (\r\n            <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#DC143C\" strokeWidth=\"2\">\r\n                <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\r\n                <polyline points=\"17 8 12 3 7 8\"><\/polyline>\r\n                <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"><\/line>\r\n            <\/svg>\r\n        );\r\n\r\n        function BarcelonaRecallDashboard() {\r\n            const [data, setData] = useState([]);\r\n            const [searchTerm, setSearchTerm] = useState('');\r\n            const [filters, setFilters] = useState({\r\n                evento: 'todos',\r\n                cena: 'todas'\r\n            });\r\n\r\n            const COLORS = ['#DC143C', '#000000', '#808080', '#A9A9A9', '#CCCCCC'];\r\n\r\n            const handleFileUpload = (e) => {\r\n                const file = e.target.files[0];\r\n                if (!file) return;\r\n\r\n                const reader = new FileReader();\r\n                reader.onload = (event) => {\r\n                    try {\r\n                        const data = new Uint8Array(event.target.result);\r\n                        const workbook = XLSX.read(data, { type: 'array' });\r\n                        const sheetName = workbook.SheetNames[0];\r\n                        const worksheet = workbook.Sheets[sheetName];\r\n                        const jsonData = XLSX.utils.sheet_to_json(worksheet);\r\n                        \r\n                        const cleanedData = jsonData.map(row => {\r\n                            const cleaned = {};\r\n                            for (let key in row) {\r\n                                const cleanKey = key.trim();\r\n                                cleaned[cleanKey] = row[key] ? String(row[key]).trim() : '';\r\n                            }\r\n                            return cleaned;\r\n                        }).filter(row => row.Nombre && row.Tel\u00e9fono);\r\n                        \r\n                        setData(cleanedData);\r\n                    } catch (error) {\r\n                        alert('Error al leer el archivo: ' + error.message);\r\n                    }\r\n                };\r\n                reader.readAsArrayBuffer(file);\r\n            };\r\n\r\n            const getColumnNames = () => {\r\n                if (data.length === 0) return { workshop25: '', cube25: '', cube26: '' };\r\n                const headers = Object.keys(data[0]);\r\n                \r\n                return {\r\n                    workshop25: headers.find(h => h.includes('25') && h.includes('10h')) || headers[2],\r\n                    cube25: headers.find(h => h.includes('25') && h.includes('17h')) || headers[3],\r\n                    cube26: headers.find(h => h.includes('26')) || headers[4]\r\n                };\r\n            };\r\n\r\n            const cols = getColumnNames();\r\n\r\n            const hasAttendedWithMeal = (response) => {\r\n                if (!response) return false;\r\n                return response.toLowerCase().includes('will attend and stay') || \r\n                       response.toLowerCase().includes('asistir\u00e9 y me quedar\u00e9');\r\n            };\r\n\r\n            const hasAttended = (response) => {\r\n                if (!response) return false;\r\n                if (response.toLowerCase().includes('will not attend') || \r\n                    response.toLowerCase().includes('no asistir\u00e9')) {\r\n                    return false;\r\n                }\r\n                return response.toLowerCase().includes('will attend') || \r\n                       response.toLowerCase().includes('asistir\u00e9');\r\n            };\r\n\r\n            const hasNotAttended = (response) => {\r\n                if (!response) return false;\r\n                return response.toLowerCase().includes('will not attend') || \r\n                       response.toLowerCase().includes('no asistir\u00e9');\r\n            };\r\n\r\n            const getComidaSabado = useMemo(() => {\r\n                if (!cols.workshop25) return [];\r\n                return data.filter(row => \r\n                    row.Nombre && row.Tel\u00e9fono && \r\n                    hasAttendedWithMeal(row[cols.workshop25])\r\n                );\r\n            }, [data, cols]);\r\n\r\n            const getCenaSabado = useMemo(() => {\r\n                if (!cols.cube25) return [];\r\n                return data.filter(row => \r\n                    row.Nombre && row.Tel\u00e9fono && \r\n                    hasAttendedWithMeal(row[cols.cube25])\r\n                );\r\n            }, [data, cols]);\r\n\r\n            const getCenaDomingo = useMemo(() => {\r\n                if (!cols.cube26) return [];\r\n                return data.filter(row => \r\n                    row.Nombre && row.Tel\u00e9fono && \r\n                    hasAttendedWithMeal(row[cols.cube26])\r\n                );\r\n            }, [data, cols]);\r\n\r\n            const totalAsistentes = data.length;\r\n            const totalCenas = getCenaSabado.length + getCenaDomingo.length;\r\n\r\n            const getDayDistribution = (dia) => {\r\n                if (dia === 'Workshop S\u00e1bado') {\r\n                    const withMeal = data.filter(row => hasAttendedWithMeal(row[cols.workshop25])).length;\r\n                    const withoutMeal = data.filter(row => hasAttended(row[cols.workshop25]) && !hasAttendedWithMeal(row[cols.workshop25])).length;\r\n                    const noAttend = data.filter(row => hasNotAttended(row[cols.workshop25])).length;\r\n                    return [\r\n                        { name: 'Ir\u00e9 y asistir\u00e9 a la comida', value: withMeal },\r\n                        { name: 'Ir\u00e9 y NO asistir\u00e9 a la comida', value: withoutMeal },\r\n                        { name: 'No ir\u00e9', value: noAttend }\r\n                    ];\r\n                } else if (dia === 'Cubo S\u00e1bado') {\r\n                    const withDinner = data.filter(row => hasAttendedWithMeal(row[cols.cube25])).length;\r\n                    const withoutDinner = data.filter(row => hasAttended(row[cols.cube25]) && !hasAttendedWithMeal(row[cols.cube25])).length;\r\n                    const noAttend = data.filter(row => hasNotAttended(row[cols.cube25])).length;\r\n                    return [\r\n                        { name: 'Ir\u00e9 y asistir\u00e9 a la cena', value: withDinner },\r\n                        { name: 'Ir\u00e9 y NO asistir\u00e9 a la cena', value: withoutDinner },\r\n                        { name: 'No ir\u00e9', value: noAttend }\r\n                    ];\r\n                } else if (dia === 'Cubo Domingo') {\r\n                    const withDinner = data.filter(row => hasAttendedWithMeal(row[cols.cube26])).length;\r\n                    const withoutDinner = data.filter(row => hasAttended(row[cols.cube26]) && !hasAttendedWithMeal(row[cols.cube26])).length;\r\n                    const noAttend = data.filter(row => hasNotAttended(row[cols.cube26])).length;\r\n                    return [\r\n                        { name: 'Ir\u00e9 y asistir\u00e9 a la cena', value: withDinner },\r\n                        { name: 'Ir\u00e9 y NO asistir\u00e9 a la cena', value: withoutDinner },\r\n                        { name: 'No ir\u00e9', value: noAttend }\r\n                    ];\r\n                }\r\n                return [];\r\n            };\r\n\r\n            const getAttendeesList = useMemo(() => {\r\n                return data.filter(row => {\r\n                    if (searchTerm && !row.Nombre.toLowerCase().includes(searchTerm.toLowerCase()) && !row.Tel\u00e9fono.includes(searchTerm)) {\r\n                        return false;\r\n                    }\r\n                    \r\n                    if (filters.evento !== 'todos') {\r\n                        const response = row[filters.evento];\r\n                        if (!hasAttended(response)) return false;\r\n                        if (filters.cena === 'cenas' && !hasAttendedWithMeal(response)) return false;\r\n                        if (filters.cena === 'sin-cena' && hasAttendedWithMeal(response)) return false;\r\n                    } else if (filters.cena === 'cenas') {\r\n                        const hasAnyMeal = hasAttendedWithMeal(row[cols.workshop25]) || hasAttendedWithMeal(row[cols.cube25]) || hasAttendedWithMeal(row[cols.cube26]);\r\n                        if (!hasAnyMeal) return false;\r\n                    }\r\n\r\n                    return true;\r\n                });\r\n            }, [data, searchTerm, filters, cols]);\r\n\r\n            return (\r\n                <div style={{ minHeight: '100vh', backgroundColor: '#f5f5f5' }}>\r\n                    <div style={{ padding: '24px', borderBottom: '1px solid #333', backgroundColor: '#1a1a1a' }}>\r\n                        <div style={{ maxWidth: '1280px', margin: '0 auto', display: 'flex', alignItems: 'center', gap: '16px' }}>\r\n                            <div style={{ width: '48px', height: '48px', backgroundColor: '#DC143C', borderRadius: '50%', display: 'flex', alignItems: 'center', justifyContent: 'center', color: '#fff', fontWeight: 'bold', fontSize: '24px' }}>\r\n                                V\r\n                            <\/div>\r\n                            <div>\r\n                                <h1 style={{ fontSize: '30px', fontWeight: 'bold', color: '#DC143C', margin: 0 }}>BARCELONA RECALL 2025<\/h1>\r\n                                <p style={{ fontSize: '14px', color: '#999', margin: 0 }}>Visualizaci\u00f3n de Respuestas<\/p>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div style={{ padding: '24px', backgroundColor: '#2a2a2a' }}>\r\n                        <div style={{ maxWidth: '1280px', margin: '0 auto' }}>\r\n                            <label style={{ display: 'flex', alignItems: 'center', gap: '12px', padding: '16px', border: '2px dashed #DC143C', borderRadius: '8px', cursor: 'pointer', backgroundColor: '#333' }}>\r\n                                <Upload size={24} \/>\r\n                                <div>\r\n                                    <span style={{ fontWeight: '600', color: '#fff', display: 'block' }}>Carga tu archivo Excel o CSV<\/span>\r\n                                    <p style={{ fontSize: '14px', color: '#999', margin: 0 }}>Soporta .xlsx, .xls, .csv<\/p>\r\n                                <\/div>\r\n                                <input type=\"file\" accept=\".csv,.xlsx,.xls\" onChange={handleFileUpload} style={{ display: 'none' }} \/>\r\n                            <\/label>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    {data.length > 0 && (\r\n                        <>\r\n                            <div style={{ padding: '24px', backgroundColor: '#f8f8f8' }}>\r\n                                <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))', gap: '16px' }}>\r\n                                    <div style={{ padding: '16px', borderRadius: '8px', backgroundColor: 'white' }}>\r\n                                        <p style={{ fontSize: '14px', color: '#666', margin: '0 0 8px 0' }}>\ud83d\udc65 Total Asistentes<\/p>\r\n                                        <p style={{ fontSize: '30px', fontWeight: 'bold', color: '#DC143C', margin: 0 }}>{totalAsistentes}<\/p>\r\n                                    <\/div>\r\n                                    <div style={{ padding: '16px', borderRadius: '8px', backgroundColor: 'white' }}>\r\n                                        <p style={{ fontSize: '14px', color: '#666', margin: '0 0 8px 0' }}>\ud83c\udf7d\ufe0f Total Comidas\/Cenas<\/p>\r\n                                        <p style={{ fontSize: '30px', fontWeight: 'bold', color: '#DC143C', margin: 0 }}>{totalCenas}<\/p>\r\n                                    <\/div>\r\n                                    <div style={{ padding: '16px', borderRadius: '8px', backgroundColor: 'white' }}>\r\n                                        <p style={{ fontSize: '14px', color: '#666', margin: '0 0 8px 0' }}>\ud83c\udf7d\ufe0f Comida S\u00e1bado<\/p>\r\n                                        <p style={{ fontSize: '30px', fontWeight: 'bold', color: '#DC143C', margin: 0 }}>{getComidaSabado.length}<\/p>\r\n                                    <\/div>\r\n                                    <div style={{ padding: '16px', borderRadius: '8px', backgroundColor: 'white' }}>\r\n                                        <p style={{ fontSize: '14px', color: '#666', margin: '0 0 8px 0' }}>\ud83c\udf74 Cena S\u00e1bado<\/p>\r\n                                        <p style={{ fontSize: '30px', fontWeight: 'bold', color: '#DC143C', margin: 0 }}>{getCenaSabado.length}<\/p>\r\n                                    <\/div>\r\n                                    <div style={{ padding: '16px', borderRadius: '8px', backgroundColor: 'white' }}>\r\n                                        <p style={{ fontSize: '14px', color: '#666', margin: '0 0 8px 0' }}>\ud83c\udf7d\ufe0f Cena Domingo<\/p>\r\n                                        <p style={{ fontSize: '30px', fontWeight: 'bold', color: '#DC143C', margin: 0 }}>{getCenaDomingo.length}<\/p>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n\r\n                            <div style={{ padding: '24px', backgroundColor: '#f8f8f8' }}>\r\n                                <div style={{ maxWidth: '1280px', margin: '0 auto' }}>\r\n                                    <h2 style={{ fontSize: '24px', fontWeight: 'bold', marginBottom: '24px', color: '#DC143C' }}>\ud83c\udf7d\ufe0f\u2728 Listas de Comidas y Cenas<\/h2>\r\n                                    <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: '24px' }}>\r\n                                        {[\r\n                                            { title: '\ud83c\udf7d\ufe0f Comida S\u00e1bado 25', list: getComidaSabado },\r\n                                            { title: '\ud83c\udf74 Cena S\u00e1bado 25', list: getCenaSabado },\r\n                                            { title: '\ud83c\udf7d\ufe0f Cena Domingo 26', list: getCenaDomingo }\r\n                                        ].map((section, i) => (\r\n                                            <div key={i} style={{ padding: '24px', borderRadius: '8px', backgroundColor: 'white' }}>\r\n                                                <h3 style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '8px', color: '#DC143C' }}>{section.title}<\/h3>\r\n                                                <p style={{ fontSize: '14px', color: '#666', marginBottom: '16px' }}>{section.list.length} asistentes<\/p>\r\n                                                <div style={{ maxHeight: '384px', overflowY: 'auto' }}>\r\n                                                    {section.list.map((person, idx) => (\r\n                                                        <div key={idx} style={{ padding: '12px', borderRadius: '4px', backgroundColor: '#f0f0f0', borderLeft: '3px solid #DC143C', marginBottom: '8px' }}>\r\n                                                            <p style={{ fontWeight: '600', fontSize: '14px', margin: 0 }}>#{idx + 1} {person.Nombre} - {person.Tel\u00e9fono}<\/p>\r\n                                                        <\/div>\r\n                                                    ))}\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                        ))}\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n\r\n                            <div style={{ padding: '24px', backgroundColor: '#2a2a2a' }}>\r\n                                <div style={{ maxWidth: '1280px', margin: '0 auto' }}>\r\n                                    <h2 style={{ fontSize: '24px', fontWeight: 'bold', marginBottom: '24px', color: '#fff' }}>\ud83d\udcca Distribuci\u00f3n por Evento<\/h2>\r\n                                    <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: '24px' }}>\r\n                                        {['Workshop S\u00e1bado', 'Cubo S\u00e1bado', 'Cubo Domingo'].map(evento => (\r\n                                            <div key={evento} style={{ padding: '24px', borderRadius: '8px', backgroundColor: '#333' }}>\r\n                                                <h3 style={{ fontSize: '18px', fontWeight: 'bold', marginBottom: '16px', color: '#fff' }}>\r\n                                                    {evento === 'Workshop S\u00e1bado' && '\ud83d\udee0\ufe0f Workshop S\u00e1bado'}\r\n                                                    {evento === 'Cubo S\u00e1bado' && '\ud83d\udfe5 Cubo S\u00e1bado'}\r\n                                                    {evento === 'Cubo Domingo' && '\ud83d\udfe5 Cubo Domingo'}\r\n                                                <\/h3>\r\n                                                <ResponsiveContainer width=\"100%\" height={300}>\r\n                                                    <PieChart>\r\n                                                        <Pie data={getDayDistribution(evento)} dataKey=\"value\" nameKey=\"name\" cx=\"50%\" cy=\"50%\" outerRadius={80} label={{ fill: '#fff', fontSize: 12 }}>\r\n                                                            {getDayDistribution(evento).map((entry, index) => (\r\n                                                                <Cell key={`cell-${index}`} fill={COLORS[index % COLORS.length]} \/>\r\n                                                            ))}\r\n                                                        <\/Pie>\r\n                                                        <Tooltip contentStyle={{ backgroundColor: '#404040', border: '1px solid #DC143C', color: '#fff' }} \/>\r\n                                                    <\/PieChart>\r\n                                                <\/ResponsiveContainer>\r\n                                                <div style={{ marginTop: '16px' }}>\r\n                                                    {getDayDistribution(evento).map((entry, idx) => (\r\n                                                        <div key={idx} style={{ display: 'flex', alignItems: 'center', gap: '8px', color: '#fff', fontSize: '12px', marginBottom: '8px' }}>\r\n                                                            <div style={{ width: '14px', height: '14px', backgroundColor: COLORS[idx], borderRadius: '2px' }}><\/div>\r\n                                                            <span>{entry.name}: <strong>{entry.value}<\/strong><\/span>\r\n                                                        <\/div>\r\n                                                    ))}\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                        ))}\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n\r\n                            <div style={{ padding: '24px', backgroundColor: '#2a2a2a' }}>\r\n                                <div style={{ maxWidth: '1280px', margin: '0 auto' }}>\r\n                                    <h2 style={{ fontSize: '24px', fontWeight: 'bold', marginBottom: '24px', color: '#fff' }}>\ud83d\udccb Listado de Asistentes<\/h2>\r\n                                    \r\n                                    <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))', gap: '16px', marginBottom: '24px' }}>\r\n                                        <input \r\n                                            type=\"text\"\r\n                                            placeholder=\"\ud83d\udd0d Buscar nombre o tel\u00e9fono...\"\r\n                                            value={searchTerm}\r\n                                            onChange={(e) => setSearchTerm(e.target.value)}\r\n                                            style={{ padding: '8px', border: '1px solid #444', borderRadius: '4px', backgroundColor: '#333', color: '#fff' }}\r\n                                        \/>\r\n                                        <select \r\n                                            value={filters.evento}\r\n                                            onChange={(e) => setFilters({...filters, evento: e.target.value})}\r\n                                            style={{ padding: '8px', border: '1px solid #444', borderRadius: '4px', backgroundColor: '#333', color: '#fff' }}\r\n                                        >\r\n                                            <option value=\"todos\">Todos los eventos<\/option>\r\n                                            <option value={cols.workshop25}>Workshop S\u00e1bado 25<\/option>\r\n                                            <option value={cols.cube25}>Cubo S\u00e1bado 25<\/option>\r\n                                            <option value={cols.cube26}>Cubo Domingo 26<\/option>\r\n                                        <\/select>\r\n                                        <select \r\n                                            value={filters.cena}\r\n                                            onChange={(e) => setFilters({...filters, cena: e.target.value})}\r\n                                            style={{ padding: '8px', border: '1px solid #444', borderRadius: '4px', backgroundColor: '#333', color: '#fff' }}\r\n                                        >\r\n                                            <option value=\"todas\">Todas<\/option>\r\n                                            <option value=\"cenas\">Solo con cena<\/option>\r\n                                            <option value=\"sin-cena\">Sin cena<\/option>\r\n                                        <\/select>\r\n                                    <\/div>\r\n\r\n                                    <div style={{ borderRadius: '8px', overflowX: 'auto', border: '1px solid #444', backgroundColor: '#333' }}>\r\n                                        <table style={{ width: '100%', fontSize: '14px', borderCollapse: 'collapse' }}>\r\n                                            <thead style={{ backgroundColor: '#404040', borderBottom: '2px solid #444' }}>\r\n                                                <tr>\r\n                                                    <th style={{ padding: '16px', textAlign: 'left', fontWeight: '600', color: '#fff' }}>Nombre - Tel\u00e9fono<\/th>\r\n                                                    <th style={{ padding: '16px', textAlign: 'left', fontWeight: '600', color: '#fff' }}>Workshop 25<\/th>\r\n                                                    <th style={{ padding: '16px', textAlign: 'left', fontWeight: '600', color: '#fff' }}>Cubo 25<\/th>\r\n                                                    <th style={{ padding: '16px', textAlign: 'left', fontWeight: '600', color: '#fff' }}>Cubo 26<\/th>\r\n                                                <\/tr>\r\n                                            <\/thead>\r\n                                            <tbody>\r\n                                                {getAttendeesList.map((row, idx) => (\r\n                                                    <tr key={idx} style={{ borderBottom: '1px solid #444' }}>\r\n                                                        <td style={{ padding: '16px', fontWeight: '600', color: '#fff' }}>{row.Nombre} - {row.Tel\u00e9fono}<\/td>\r\n                                                        <td style={{ padding: '16px', color: '#fff' }}>\r\n                                                            {hasAttendedWithMeal(row[cols.workshop25]) ? '\u2705 Con comida' : hasAttended(row[cols.workshop25]) ? '\u274c Sin comida' : React.createElement('span', { style: { color: '#DC143C', fontWeight: 'bold' } }, 'NO IR\u00c9')}\r\n                                                        <\/td>\r\n                                                        <td style={{ padding: '16px', color: '#fff' }}>\r\n                                                            {hasAttendedWithMeal(row[cols.cube25]) ? '\u2705 Con cena' : hasAttended(row[cols.cube25]) ? '\u274c Sin cena' : React.createElement('span', { style: { color: '#DC143C', fontWeight: 'bold' } }, 'NO IR\u00c9')}\r\n                                                        <\/td>\r\n                                                        <td style={{ padding: '16px', color: '#fff' }}>\r\n                                                            {hasAttendedWithMeal(row[cols.cube26]) ? '\u2705 Con cena' : hasAttended(row[cols.cube26]) ? '\u274c Sin cena' : React.createElement('span', { style: { color: '#DC143C', fontWeight: 'bold' } }, 'NO IR\u00c9')}\r\n                                                        <\/td>\r\n                                                    <\/tr>\r\n                                                ))}\r\n                                            <\/tbody>\r\n                                        <\/table>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/>\r\n                    )}\r\n                <\/div>\r\n            );\r\n        }\r\n\r\n        const container = document.getElementById('barcelona-recall-dashboard');\r\n        if (container) {\r\n            ReactDOM.render(React.createElement(BarcelonaRecallDashboard), container);\r\n        }\r\n    })();\r\n<\/script>\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":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9"}],"version-history":[{"count":7,"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":21,"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions\/21"}],"wp:attachment":[{"href":"https:\/\/awakenforthem.motioninventory.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}