{"version":3,"sources":["components/Calendar_components/Consts.js","components/Calendar_components/Utils.js","components/Calendar_components/createIcsString.js","components/Calendar_components/IcsFileButton.js","components/Calendar_components/QrGenerator.js","components/Calendar_components/GoogleCal.js","components/Calendar_components/google_cal_icon.png","components/Calendar_components/CalendarTable.js","components/Footer.js","components/Tab.js","components/Tabs.js","components/rooms_finder_components/RoomsList.js","components/rooms_finder_components/FreeRoomsFinder.js","App.js","reportWebVitals.js","index.js"],"names":["ConstsDict","currentSemester","semesterFirstDay","year","month","day","dayOfWeek","semesterLastDay","appointmentToCleanVarsDict","appointment","cleanVarsDict","start","replace","end","Date","appointmentDate","setDate","getDate","getFullYear","String","getMonth","padStart","createIcsString","props","appointments","name","template","i","length","undefined","date","location","room","directors","map","dir","type","IcsFileButton","handleClick","bind","element","document","createElement","file","Blob","this","href","URL","createObjectURL","download","body","appendChild","click","removeChild","onClick","React","PureComponent","QrGenerator","text","useState","src","setSrc","useEffect","QRCode","toDataURL","then","data","alt","width","height","GoogleCal","encodeURIComponent","join","CalendarTable","state","search","courses","require","value","setState","ap","slice","filteredCourses","filter","course","semester","id","group","toLowerCase","includes","className","placeholder","size","onChange","e","onSearch","target","index","Fragment","apToDayAndHour","Footer","TabItem","styled","li","Tab","activeTab","label","isActive","Tabs","onClickTabItem","tab","children","child","Component","RoomsList","freeRooms","style","direction","freeRoom","allRooms","listStyleType","margin","padding","useStyles","makeStyles","theme","formControl","spacing","minWidth","button","backgroundColor","color","borderRadius","FreeRoomsFinder","classes","selectedDay","setSelectedDay","startHour","setStartHour","endHour","setEndHour","setFreeRooms","FormControl","htmlFor","Select","event","MenuItem","Button","variant","filteredFreeRooms","isFree","push","App","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.add5aea5.chunk.js","sourcesContent":["const ConstsDict = {\n currentSemester: 2,\n semesterFirstDay: {\n year: \"2025\",\n month: \"03\",\n day: \"17\",\n dayOfWeek: 2 // 1 = Sunday, 2 = Monday, 3 = Tuesday, etc.\n },\n semesterLastDay: {\n year: \"2025\",\n month: \"07\",\n day: \"02\"\n }\n};\n\nexport default ConstsDict;\n","import ConstsDict from \"./Consts\";\n\nfunction appointmentToCleanVarsDict(appointment) {\n let cleanVarsDict = {};\n\n // Remove colons from time strings\n cleanVarsDict[\"start\"] = appointment.start.replace(/:/g, '');\n cleanVarsDict[\"end\"] = appointment.end.replace(/:/g, '');\n \n // Parse the semester first day\n let semesterFirstDay = new Date(\n `${ConstsDict.semesterFirstDay.year}-${ConstsDict.semesterFirstDay.month}-${ConstsDict.semesterFirstDay.day}`\n );\n \n let appointmentDate = new Date(semesterFirstDay);\n appointmentDate.setDate(appointmentDate.getDate() + (appointment.day - ConstsDict.semesterFirstDay.dayOfWeek));\n \n // Format the date components with leading zeros\n let year = appointmentDate.getFullYear();\n let month = String(appointmentDate.getMonth() + 1).padStart(2, '0'); // Months are zero-indexed\n let day = String(appointmentDate.getDate()).padStart(2, '0');\n cleanVarsDict[\"date\"] = `${year}${month}${day}`;\n\n return cleanVarsDict;\n}\nexport default appointmentToCleanVarsDict;\n","import ConstsDict from \"./Consts\";\nimport appointmentToCleanVarsDict from \"./Utils\";\n\nfunction createIcsString(props) {\n let appointments = props.appointments;\n let name = props.name;\n // Format the semester last day\n const semesterLastDay = `${ConstsDict.semesterLastDay.year}${ConstsDict.semesterLastDay.month}${ConstsDict.semesterLastDay.day}T000000Z`;\n\n let template = `BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//bobbin v0.1//NONSGML iCal Writer//EN\nCALSCALE:GREGORIAN\nMETHOD:PUBLISH\n`;\n for (let i = 0; i < appointments.length; i++) {\n let appointment = appointments[i];\n if (appointment === undefined || appointment.start === undefined) {\n return \"No data available\";\n }\n let cleanVarsDict = appointmentToCleanVarsDict(appointment);\n template += `BEGIN:VEVENT\nDTSTART;TZID=Asia/Jerusalem:${cleanVarsDict.date}T${cleanVarsDict.start}\nDTEND;TZID=Asia/Jerusalem:${cleanVarsDict.date}T${cleanVarsDict.end}\nRRULE:FREQ=WEEKLY;UNTIL=${semesterLastDay}\nLOCATION:${appointment.location || appointment.room ? appointment.location + \" | \" + appointment.room : \"\"}\nURL:https://www.tau-cal.com\nDESCRIPTION:${appointment.directors.map(dir => \" \" + dir)}\nSEQUENCE:0\nSTATUS:CONFIRMED\nSUMMARY:${name + \" | \" + appointment.type}\nTRANSP:OPAQUE\nEND:VEVENT\n`;\n }\n template += `END:VCALENDAR`;\n\n return template;\n}\nexport default createIcsString;\n","import React from \"react\";\nimport createIcsString from \"./createIcsString\";\n\nexport class IcsFileButton extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const element = document.createElement(\"a\");\n const file = new Blob([createIcsString(this.props)], { type: 'text/calendar;charset=utf-8' });\n element.href = URL.createObjectURL(file);\n element.download = \"TAU-Cal.ics\";\n document.body.appendChild(element); // Required for this to work in FireFox\n element.click();\n document.body.removeChild(element);\n }\n\n render() {\n return (\n
שעת המפגש אינה במערכת
\n ) : (\nשעת המפגש אינה במערכת
\nGoogle Cal / ics | \n\n iPhone / iPad\n \n לחיצה ארוכה על הקוד\n | \n יום ושעה | \nשם המרצה | \nשם הקורס | \nמס׳ קורס | \n
---|---|---|---|---|---|
\n {course.appointments.map((ap, index) => (\n | \n \n {course.appointments.map((ap, index) => (\n | \n \n {course.appointments.map((ap, index) => (\n {this.apToDayAndHour(ap)} \n ))}\n | \n \n {course.appointments[0].directors.map((dir, index) => (\n {dir} \n ))}\n | \n {course.name} | \n\n {course.id.slice(0, 4)}\n \n {course.id.slice(5, 9)}\n \n {course.group}\n | \n