11export default ( ) => {
22 const tbody = document . getElementById ( 'schedule' ) . tBodies [ 0 ] ;
33 [
4- //{block: ' - ', author: 'AUTH', title: '', photos: [''], level: '', category: ''},
4+ {
5+ block : '10:00 - 10:15' ,
6+ title : '🎫 Registro' ,
7+ } ,
8+ {
9+ block : '10:15 - 10:30' ,
10+ title : '🌄 Bienvenida' ,
11+ } ,
12+ {
13+ block : '10:30 - 11:00' ,
14+ author : 'Alejando Weinstein' ,
15+ title : 'Procesando señales definidas sobre grafos usando Python' ,
16+ photos : [ 'alejandro-weinstein.jpg' ] ,
17+ level : 'Intermedio' ,
18+ category : 'Datos' ,
19+ twitter : 'ajweinstein' ,
20+ linkedin : 'alejandro-weinstein-8610a43' ,
21+ instagram : 'ajweinsteino'
22+ } ,
23+ {
24+ block : '11:15 - 11:45' ,
25+ author : 'Jorge Marin & Mario Romero' ,
26+ title : 'Diseño de chips analógicos asistida con Python' ,
27+ photos : [ 'jorge-marin.png' , 'mario-romero.png' ] ,
28+ level : 'Intermedio' ,
29+ category : 'Diseño' ,
30+ linkedin : 'jorge-mar%C3%ADn-a1258417' ,
31+ } ,
32+ {
33+ block : '12:00 - 12:30' ,
34+ author : 'Francisco Alfaro' ,
35+ title : 'Potenciando tu Perfil en GitHub: Estrategias y Herramientas para Destacar como Desarrollador' ,
36+ photos : [ 'francisco-alfaro.png' ] ,
37+ level : 'Principiante' ,
38+ category : 'Comunidades' ,
39+ linkedin : 'faam' } ,
40+ {
41+ block : '12:30 - 14:00' ,
42+ title : '🍝 Almuerzo' } ,
43+ {
44+ block : '14:00 - 14:30' ,
45+ author : 'Jesús Henríquez' ,
46+ title : 'Construyendo un game engine en Python' ,
47+ photos : [ 'jesus-henriquez.jpg' ] ,
48+ level : 'Intermedio' ,
49+ category : 'Juegos' ,
50+ twitter : 'xhenryx14' ,
51+ linkedin : 'hernaldo-henriquez' } ,
52+ {
53+ block : '14:45 - 15:15' ,
54+ author : 'Oscar Cariceo' ,
55+ title : 'Inteligencia Artificial Generativa con LangChain y Python' ,
56+ photos : [ 'oscar-cariceo.png' ] ,
57+ level : 'Intermedio' ,
58+ category : 'Inteligencia Artificial' ,
59+ linkedin : 'ocariceo' ,
60+ instagram : 'kintuai' ,
61+ } ,
62+ {
63+ block : '15:30 - 16:00' ,
64+ author : 'Elizabeth Fuentes' ,
65+ title : 'Prompt engineering: la llave maestra para aprovechar al máximo la generative IA' ,
66+ photos : [ 'elizabeth-fuentes.jpg' ] ,
67+ level : 'Principiante' ,
68+ category : 'Inteligencia Artificial' ,
69+ linkedin : 'lizfue' ,
70+ twitter : 'ElizabethFue12' ,
71+ instagram : 'elifue.tech' } ,
72+ {
73+ block : '16:00 - 16:20' ,
74+ title : '⚡ Charlas Relámpagos y 🎲 Trivia' ,
75+ } ,
76+ {
77+ block : '16:00 - 16:20' ,
78+ title : '🌅 Cierre' ,
79+ } ,
80+
581 ] . forEach ( obj => {
682 const row = tbody . insertRow ( ) ;
783 const blockCell = row . insertCell ( ) ;
84+
85+ blockCell . className = "text-center py-5 fw-bolder"
886 blockCell . innerHTML = obj . block ;
987 const eventCell = row . insertCell ( ) ;
88+ if ( ! ( 'author' in obj ) ) {
89+ eventCell . className = 'special-event'
90+ eventCell . innerHTML = obj . title ;
91+ return null ;
92+ }
93+ eventCell . className = "d-flex align-items-center"
94+ const profileDiv = document . createElement ( "div" ) ;
95+
96+ const photosDiv = document . createElement ( "div" ) ;
97+ photosDiv . className = "photo-speaker-container" ;
98+
99+ const mediaDiv = document . createElement ( "div" ) ;
100+
101+ const eventDiv = document . createElement ( "div" ) ;
102+ eventDiv . className = 'event ml-3' ;
103+
10104 obj . photos . forEach ( photo => {
11105 const img = document . createElement ( 'img' )
12106 img . className = 'photo-speaker' ;
13107 img . src = 'assets/speakers/valparaiso/' + photo ;
14- eventCell . appendChild ( img )
108+ photosDiv . appendChild ( img )
15109 } ) ;
16- const eventDiv = document . createElement ( "div" ) ;
17- eventDiv . className = 'event'
18110 const titleDiv = document . createElement ( "div" ) ;
19111 titleDiv . className = 'title' ;
20- titleDiv . innerHTML = obj . title ;
112+ titleDiv . innerHTML = obj . title ;
21113 eventDiv . appendChild ( titleDiv ) ;
22114 const authorDiv = document . createElement ( "div" ) ;
23115 authorDiv . className = 'author' ;
24- authorDiv . innerHTML = obj . author ;
116+ authorDiv . innerHTML = obj . author ;
25117 eventDiv . appendChild ( authorDiv ) ;
26- const levelDiv = document . createElement ( "div" ) ;
27- levelDiv . className = 'level ' + obj . level ;
28- levelDiv . innerHTML = obj . level ;
29- eventDiv . appendChild ( levelDiv ) ;
30- const categoryDiv = document . createElement ( "div" ) ;
31- categoryDiv . className = 'category ' + ( [ 'Data' , 'Web' ] . includes ( obj . category ) ? obj . category : 'Auto' ) ;
32- categoryDiv . innerHTML = obj . category ;
33- eventDiv . appendChild ( categoryDiv ) ;
118+ if ( obj . level ) {
119+ const levelDiv = document . createElement ( "div" ) ;
120+ levelDiv . className = 'level ' + obj . level ;
121+ levelDiv . innerHTML = obj . level ;
122+ eventDiv . appendChild ( levelDiv ) ;
123+ }
124+ if ( obj . category ) {
125+ const categoryDiv = document . createElement ( "div" ) ;
126+ categoryDiv . className = 'category ' + ( [ 'Datos' , 'Web' ] . includes ( obj . category ) ? obj . category : 'Auto' ) ;
127+ categoryDiv . innerHTML = obj . category ;
128+ eventDiv . appendChild ( categoryDiv ) ;
129+ }
130+ let link , icon
131+ const urls = {
132+ github : 'https://github.com/' ,
133+ facebook : 'https://www.facebook.com/' ,
134+ instagram : 'https://www.instagram.com/' ,
135+ youtube : 'https://www.youtube.com/' ,
136+ twitter : 'https://x.com/' ,
137+ linkedin : 'https://www.linkedin.com/in/' ,
138+ twitch : 'https://www.twitch.com/' ,
139+ discord : 'https://discord.gg/' ,
140+ }
141+ Object . keys ( urls ) . forEach ( key => {
142+ if ( key in obj ) {
143+ link = document . createElement ( "a" ) ;
144+ link . href = `${ urls [ key ] } ${ obj [ key ] } ` ;
145+ link . target = '_blank'
146+ icon = document . createElement ( "i" ) ;
147+ icon . className = `media-icon bi bi-${ key } ` + key ;
148+ link . appendChild ( icon ) ;
149+ mediaDiv . appendChild ( link ) ;
150+ }
151+ } )
152+ profileDiv . appendChild ( photosDiv )
153+ profileDiv . appendChild ( mediaDiv )
154+ eventCell . appendChild ( profileDiv )
34155 eventCell . appendChild ( eventDiv )
156+
35157 } )
36158}
0 commit comments