{"mappings":"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","sources":["","frontend/index.js"],"sourcesContent":["var $3a52b41e31fb443b$exports = {};\nlet $3a52b41e31fb443b$var$periodText;\nlet $3a52b41e31fb443b$var$endTimeText;\nlet $3a52b41e31fb443b$var$nextText;\nlet $3a52b41e31fb443b$var$schedulenameElement;\nlet $3a52b41e31fb443b$var$lastData;\n// Gets data from /today/now/near\nlet $3a52b41e31fb443b$var$progressIntervals = [];\nfunction $3a52b41e31fb443b$var$display(data) {\n if (!data) return;\n for (const interval of $3a52b41e31fb443b$var$progressIntervals)clearInterval(interval);\n $3a52b41e31fb443b$var$progressIntervals = [];\n if (data[2] && (!data[1] || !data[1][0] || data[1][0].kind !== \"BeforeSchool\")) {\n getel(\"next_period\").innerHTML = getel(\"next_period_template\").innerHTML;\n put_period_to_element(getel(\"next_period\"), data[2]);\n getel(\"next_parent\").style.display = \"block\";\n } else getel(\"next_parent\").style.display = \"none\";\n const template = getel(\"current_period_time_template\");\n const parent = getel(\"current_parent\");\n parent.innerHTML = \"\";\n if (data[1][0]) {\n if ($3a52b41e31fb443b$var$lastData) {\n const oldPeriods = $3a52b41e31fb443b$var$lastData.flat().filter((x)=>x).map((x)=>x.friendly_name);\n const nowPeriods = new Set(data[1].filter((x)=>x).map((x)=>x.friendly_name));\n if (oldPeriods.every((x)=>!nowPeriods.has(x))) $3a52b41e31fb443b$var$schedule();\n }\n for (const i of data[1]){\n const new_element = document.createElement(\"div\");\n new_element.innerHTML = template.innerHTML;\n const didPutProgress = put_period_to_element(new_element, i);\n parent.append(new_element);\n if (didPutProgress) {\n const size = Number.parseFloat(document.defaultView.getComputedStyle(new_element, null).fontSize.slice(0, -2));\n const svg = new_element.querySelector(\".progress-ring\");\n svg.setAttribute(\"width\", size);\n svg.setAttribute(\"height\", size);\n const circle = new_element.querySelector(\".progress-ring__circle\");\n const border = new_element.querySelector(\".progress-ring__border\");\n circle.setAttribute(\"cx\", size / 2);\n circle.setAttribute(\"cy\", size / 2);\n circle.setAttribute(\"r\", size / 4 - 1);\n circle.setAttribute(\"stroke-width\", size / 2 - 2);\n border.setAttribute(\"cx\", size / 2);\n border.setAttribute(\"cy\", size / 2);\n border.setAttribute(\"r\", size / 2 - 2);\n $3a52b41e31fb443b$var$progressIntervals.push(setInterval(()=>{\n update_progress_circular(i, new_element);\n }, 1000));\n update_progress_circular(i, new_element);\n }\n }\n } else {\n const new_element = document.createElement(\"div\");\n new_element.innerHTML = template.innerHTML;\n put_period_to_element(new_element, null);\n parent.append(new_element);\n }\n $3a52b41e31fb443b$var$lastData = data;\n}\nwindow.addEventListener(\"resize\", ()=>$3a52b41e31fb443b$var$display($3a52b41e31fb443b$var$lastData));\nasync function $3a52b41e31fb443b$var$schedule() {\n const day = await get(\"/api/v1/today\");\n if (!day) return;\n $3a52b41e31fb443b$var$setColors(bytes_to_color(day.color));\n if (day.periods.length > 0) {\n $3a52b41e31fb443b$var$schedulenameElement.innerHTML = `${day.friendly_name}`;\n $3a52b41e31fb443b$var$schedulenameElement.style.display = \"inline-block\";\n } else {\n $3a52b41e31fb443b$var$schedulenameElement.innerHTML = \"\";\n $3a52b41e31fb443b$var$schedulenameElement.style.display = \"none\";\n }\n}\nfunction $3a52b41e31fb443b$var$setColors(color) {\n if (!config.use_schedule_color) return;\n color ??= getCookie(\"schedule_color\");\n if (color) setCookie(\"schedule_color\", color, new Date().setHours(24, 0, 0, 0));\n document.body.style.setProperty(\"--background_color\", color || config.background_color);\n document.body.style.setProperty(\"--background_text_color\", color ? black_or_white(color) : config.background_text_color);\n}\n$3a52b41e31fb443b$var$setColors();\nwindow.addEventListener(\"load\", ()=>{\n $3a52b41e31fb443b$var$periodText = document.querySelector(\"#period\");\n $3a52b41e31fb443b$var$endTimeText = document.querySelector(\"#end_time\");\n $3a52b41e31fb443b$var$nextText = document.querySelector(\"#next\");\n $3a52b41e31fb443b$var$schedulenameElement = document.querySelector(\"#schedulename\");\n go($3a52b41e31fb443b$var$display);\n $3a52b41e31fb443b$var$schedule();\n});\n\n\n//# sourceMappingURL=index.1197a17a.js.map\n","let periodText;\nlet endTimeText;\nlet nextText;\nlet schedulenameElement;\n\nlet lastData;\n// Gets data from /today/now/near\n\nlet progressIntervals = [];\n\nfunction display(data) {\n\tif (!data) {\n\t\treturn;\n\t}\n\n\tfor (const interval of progressIntervals) {\n\t\tclearInterval(interval);\n\t}\n\n\tprogressIntervals = [];\n\n\tif (data[2] && (!data[1] || !data[1][0] || data[1][0].kind !== 'BeforeSchool')) {\n\t\tgetel('next_period').innerHTML = getel('next_period_template').innerHTML;\n\t\tput_period_to_element(getel('next_period'), data[2]);\n\t\tgetel('next_parent').style.display = 'block';\n\t} else {\n\t\tgetel('next_parent').style.display = 'none';\n\t}\n\n\tconst template = getel('current_period_time_template');\n\tconst parent = getel('current_parent');\n\tparent.innerHTML = '';\n\tif (data[1][0]) {\n\t\tif (lastData) {\n\t\t\tconst oldPeriods = lastData\n\t\t\t\t.flat()\n\t\t\t\t.filter(x => x)\n\t\t\t\t.map(x => x.friendly_name);\n\t\t\tconst nowPeriods = new Set(data[1].filter(x => x).map(x => x.friendly_name));\n\n\t\t\tif (oldPeriods.every(x => !nowPeriods.has(x))) {\n\t\t\t\tschedule();\n\t\t\t}\n\t\t}\n\n\t\tfor (const i of data[1]) {\n\t\t\tconst new_element = document.createElement('div');\n\t\t\tnew_element.innerHTML = template.innerHTML;\n\t\t\tconst didPutProgress = put_period_to_element(new_element, i);\n\t\t\tparent.append(new_element);\n\t\t\tif (didPutProgress) {\n\t\t\t\tconst size = Number.parseFloat(document.defaultView.getComputedStyle(new_element, null).fontSize.slice(0, -2));\n\t\t\t\tconst svg = new_element.querySelector('.progress-ring');\n\t\t\t\tsvg.setAttribute('width', size);\n\t\t\t\tsvg.setAttribute('height', size);\n\t\t\t\tconst circle = new_element.querySelector('.progress-ring__circle');\n\t\t\t\tconst border = new_element.querySelector('.progress-ring__border');\n\t\t\t\tcircle.setAttribute('cx', size / 2);\n\t\t\t\tcircle.setAttribute('cy', size / 2);\n\t\t\t\tcircle.setAttribute('r', size / 4 - 1);\n\t\t\t\tcircle.setAttribute('stroke-width', size / 2 - 2);\n\t\t\t\tborder.setAttribute('cx', size / 2);\n\t\t\t\tborder.setAttribute('cy', size / 2);\n\t\t\t\tborder.setAttribute('r', size / 2 - 2);\n\n\t\t\t\tprogressIntervals.push(\n\t\t\t\t\tsetInterval(() => {\n\t\t\t\t\t\tupdate_progress_circular(i, new_element);\n\t\t\t\t\t}, 1000),\n\t\t\t\t);\n\t\t\t\tupdate_progress_circular(i, new_element);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst new_element = document.createElement('div');\n\t\tnew_element.innerHTML = template.innerHTML;\n\t\tput_period_to_element(new_element, null);\n\t\tparent.append(new_element);\n\t}\n\n\tlastData = data;\n}\n\nwindow.addEventListener('resize', () => display(lastData));\n\nasync function schedule() {\n\tconst day = await get('/api/v1/today');\n\tif (!day) {\n\t\treturn;\n\t}\n\n\tsetColors(bytes_to_color(day.color));\n\n\tif (day.periods.length > 0) {\n\t\tschedulenameElement.innerHTML = `${day.friendly_name}`;\n\t\tschedulenameElement.style.display = 'inline-block';\n\t} else {\n\t\tschedulenameElement.innerHTML = '';\n\t\tschedulenameElement.style.display = 'none';\n\t}\n}\n\nfunction setColors(color) {\n\tif (!config.use_schedule_color) {\n\t\treturn;\n\t}\n\n\tcolor ??= getCookie('schedule_color');\n\tif (color) {\n\t\tsetCookie('schedule_color', color, new Date().setHours(24, 0, 0, 0));\n\t}\n\n\tdocument.body.style.setProperty('--background_color', color || config.background_color);\n\tdocument.body.style.setProperty('--background_text_color', color ? black_or_white(color) : config.background_text_color);\n}\n\nsetColors();\n\nwindow.addEventListener('load', () => {\n\tperiodText = document.querySelector('#period');\n\tendTimeText = document.querySelector('#end_time');\n\tnextText = document.querySelector('#next');\n\tschedulenameElement = document.querySelector('#schedulename');\n\n\tgo(display);\n\tschedule();\n});\n"],"names":["$3a52b41e31fb443b$var$schedulenameElement","$3a52b41e31fb443b$var$lastData","$3a52b41e31fb443b$var$progressIntervals","$3a52b41e31fb443b$var$display","data","interval","clearInterval","kind","getel","style","display","innerHTML","put_period_to_element","template","parent","oldPeriods","flat","filter","x","map","friendly_name","nowPeriods","Set","every","has","$3a52b41e31fb443b$var$schedule","i","new_element","document","createElement","didPutProgress","append","size","Number","parseFloat","defaultView","getComputedStyle","fontSize","slice","svg","querySelector","setAttribute","circle","border","push","setInterval","update_progress_circular","day","get","$3a52b41e31fb443b$var$setColors","bytes_to_color","color","periods","length","config","use_schedule_color","getCookie","setCookie","Date","setHours","body","setProperty","background_color","black_or_white","background_text_color","window","addEventListener","go"],"version":3,"file":"index.1197a17a.js.map"}