forked from 1143520/deadline
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
5 lines (5 loc) · 60 KB
/
index.html
1
2
3
4
5
<script>
<!--
document.write(unescape("%3C%21DOCTYPE%20html%3E%0A%3Chtml%20lang%3D%22zh-CN%22%3E%0A%0A%3Chead%3E%0A%20%20%20%20%3Cmeta%20charset%3D%22UTF-8%22%3E%0A%20%20%20%20%3Cmeta%20name%3D%22viewport%22%20content%3D%22width%3Ddevice-width%2C%20initial-scale%3D1.0%22%3E%0A%20%20%20%20%3Ctitle%3EMJJ%u63D0%u9192%uD83D%uDE0B%3C/title%3E%0A%20%20%20%20%3Clink%20rel%3D%22icon%22%20href%3D%22logo.png%22%20type%3D%22image/png%22%3E%0A%20%20%20%20%3Clink%20rel%3D%22shortcut%20icon%22%20href%3D%22logo.png%22%20type%3D%22image/png%22%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-icon%22%20href%3D%22logo.png%22%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css%22%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22https%3A//cdn.jsdelivr.net/npm/flatpickr/dist/themes/material_blue.css%22%3E%0A%20%20%20%20%3Clink%20rel%3D%22stylesheet%22%20href%3D%22style.css%22%3E%0A%3C/head%3E%0A%0A%3Cbody%3E%0A%20%20%20%20%3C%21--%20%u5728body%u5F00%u59CB%u5904%u6DFB%u52A0%u5BC6%u7801%u9A8C%u8BC1%u5C42%20--%3E%0A%20%20%20%20%3Cdiv%20id%3D%22password-overlay%22%20class%3D%22password-overlay%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22password-container%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22password%22%20id%3D%22password-input%22%20placeholder%3D%22%u8BF7%u8F93%u5165%u5BC6%u7801%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20onclick%3D%22verifyPassword%28%29%22%3E%u786E%u8BA4%3C/button%3E%0A%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%3C/div%3E%0A%20%20%20%20%3Cdiv%20class%3D%22container%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22header%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22title-wrapper%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20href%3D%22https%3A//xinai.de/%22%20class%3D%22logo-link%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cimg%20src%3D%22logo.png%22%20alt%3D%22%u7F51%u7AD9Logo%22%20class%3D%22logo%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/a%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch1%3EMJJ%u63D0%u9192%uD83D%uDE0B%3C/h1%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20id%3D%22openAddForm%22%20class%3D%22add-button%22%3E%uD83D%uDCD1%u6DFB%u52A0%u65B0%u63D0%u9192%3C/button%3E%0A%20%20%20%20%20%20%20%20%3C/div%3E%0A%0A%20%20%20%20%20%20%20%20%3C%21--%20%u51FA%u5F0F%u6DFB%u52A0%u63D0%u9192%u8868%u5355%20--%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20id%3D%22addFormModal%22%20class%3D%22modal%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22modal-content%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22modal-header%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3E%u2795%u6DFB%u52A0%u65B0%u63D0%u9192%3C/h2%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22close%22%3E%26times%3B%3C/span%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cform%20id%3D%22reminderForm%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Clabel%20for%3D%22title%22%3E%uD83E%uDEAA%u9879%u76EE%u540D%u79F0%3A%3C/label%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22text%22%20id%3D%22title%22%20required%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Clabel%20for%3D%22link%22%3E%uD83D%uDCCC%u94FE%u63A5%u5730%u5740%3A%3C/label%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22url%22%20id%3D%22link%22%20placeholder%3D%22%u53EF%u9009%uFF0C%u4F8B%u5982%3A%20https%3A//example.com%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%20full-width%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Clabel%20for%3D%22content%22%3E%uD83D%uDD16%u9879%u76EE%u5185%u5BB9%3A%3C/label%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctextarea%20id%3D%22content%22%20required%3E%3C/textarea%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%20full-width%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Clabel%20for%3D%22remindTime%22%3E%u23F0%u63D0%u9192%u65F6%u95F4%3A%3C/label%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22time-shortcuts%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setQuickTime%283%29%22%3E3%u5206%u949F%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setQuickTime%2815%29%22%3E15%u5206%u949F%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setQuickTime%2830%29%22%3E30%u5206%u949F%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setQuickTime%2860%29%22%3E1%u5C0F%u65F6%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setQuickTime%28120%29%22%3E2%u5C0F%u65F6%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setTomorrowMorning%28%29%22%3E%u660E%u65E99%u70B9%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setTomorrowNoon%28%29%22%3E%u660E%u5929%u4E2D%u534812%u70B9%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setDaysLater%286%29%22%3E6%u5929%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setDaysLater%2829%29%22%3E29%u5929%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22time-shortcut-btn%22%20onclick%3D%22setDaysLater%28364%29%22%3E364%u5929%u540E%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22datetime-local%22%20id%3D%22remindTime%22%20required%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Clabel%20for%3D%22cycleType%22%3E%uD83D%uDD01%u5FAA%u73AF%u7C7B%u578B%3A%3C/label%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cselect%20id%3D%22cycleType%22%20required%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22once%22%3E%u5355%u6B21%u63D0%u9192%3C/option%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22weekly%22%3E%u6BCF%u5468%u5FAA%u73AF%3C/option%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22monthly%22%3E%u6BCF%u6708%u5FAA%u73AF%3C/option%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22yearly%22%3E%u6BCF%u5E74%u5FAA%u73AF%3C/option%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/select%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-actions%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22submit%22%20class%3D%22submit-btn%22%3E%u6DFB%u52A0%u63D0%u9192%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22cancel-btn%22%20onclick%3D%22closeModal%28%29%22%3E%u53D6%u6D88%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/form%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%3C/div%3E%0A%0A%20%20%20%20%20%20%20%20%3C%21--%20%u63D0%u9192%u5217%u8868%20--%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22reminders-grid%22%20id%3D%22remindersList%22%3E%3C/div%3E%0A%20%20%20%20%3C/div%3E%0A%0A%20%20%20%20%3C%21--%20%u81EA%u5B9A%u4E49%u786E%u8BA4%u7A97%u53E3%20--%3E%0A%20%20%20%20%3Cdiv%20id%3D%22confirmModal%22%20class%3D%22modal%20confirm-modal%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22modal-content%20confirm-content%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22modal-header%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3E%u786E%u8BA4%u64CD%u4F5C%3C/h2%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22modal-body%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20id%3D%22confirmMessage%22%3E%3C/p%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22modal-footer%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20class%3D%22cancel-btn%22%20onclick%3D%22closeConfirmModal%28false%29%22%3E%u53D6%u6D88%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20class%3D%22confirm-btn%22%20onclick%3D%22closeConfirmModal%28true%29%22%3E%u786E%u8BA4%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%3C/div%3E%0A%0A%20%20%20%20%3C%21--%20%u63D0%u793A%u6761%20--%3E%0A%20%20%20%20%3Cdiv%20id%3D%22toast%22%20class%3D%22toast%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22toast-content%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22toast-icon%20success%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20d%3D%22M512%2064C264.6%2064%2064%20264.6%2064%20512s200.6%20448%20448%20448%20448-200.6%20448-448S759.4%2064%20512%2064zm193.5%20301.7l-210.6%20292a31.8%2031.8%200%200%201-51.7%200L318.5%20484.9c-3.8-5.3%200-12.7%206.5-12.7h46.9c10.2%200%2019.9%204.9%2025.9%2013.3l71.2%2098.8%20157.2-218c6-8.3%2015.6-13.3%2025.9-13.3H699c6.5%200%2010.3%207.4%206.5%2012.7z%22%20/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20id%3D%22toastMessage%22%3E%3C/span%3E%0A%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%3C/div%3E%0A%0A%20%20%20%20%3Cscript%20src%3D%22https%3A//cdn.jsdelivr.net/npm/flatpickr%22%3E%3C/script%3E%0A%20%20%20%20%3Cscript%20src%3D%22https%3A//cdn.jsdelivr.net/npm/flatpickr/dist/l10n/zh.js%22%3E%3C/script%3E%0A%20%20%20%20%3Cscript%3E%0A%20%20%20%20%20%20%20%20//%20%u5FEB%u901F%u65F6%u95F4%u8BBE%u7F6E%u51FD%u6570%0A%20%20%20%20%20%20%20%20function%20setQuickTime%28minutes%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20now%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20futureTime%20%3D%20new%20Date%28now.getTime%28%29%20+%20minutes%20*%2060000%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u683C%u5F0F%u5316%u65E5%u671F%u65F6%u95F4%u4E3Adatetime-local%u683C%u5F0F%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20formattedDateTime%20%3D%20formatDateTimeForInput%28futureTime%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27remindTime%27%29.value%20%3D%20formattedDateTime%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20function%20setTomorrowMorning%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20tomorrow%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tomorrow.setDate%28tomorrow.getDate%28%29%20+%201%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tomorrow.setHours%289%2C%200%2C%200%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27remindTime%27%29.value%20%3D%20formatDateTimeForInput%28tomorrow%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20function%20setTomorrowNoon%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20tomorrow%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tomorrow.setDate%28tomorrow.getDate%28%29%20+%201%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tomorrow.setHours%2812%2C%200%2C%200%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27remindTime%27%29.value%20%3D%20formatDateTimeForInput%28tomorrow%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20function%20setDaysLater%28days%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20now%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20futureTime%20%3D%20new%20Date%28now.getTime%28%29%20+%20days%20*%2024%20*%2060%20*%2060%20*%201000%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u4FDD%u6301%u5F53%u524D%u65F6%u95F4%0A%20%20%20%20%20%20%20%20%20%20%20%20futureTime.setHours%28now.getHours%28%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20futureTime.setMinutes%28now.getMinutes%28%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27remindTime%27%29.value%20%3D%20formatDateTimeForInput%28futureTime%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u683C%u5F0F%u5316%u65E5%u671F%u65F6%u95F4%u4E3Adatetime-local%u8F93%u5165%u6846%u683C%u5F0F%0A%20%20%20%20%20%20%20%20function%20formatDateTimeForInput%28date%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20year%20%3D%20date.getFullYear%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20month%20%3D%20String%28date.getMonth%28%29%20+%201%29.padStart%282%2C%20%270%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20day%20%3D%20String%28date.getDate%28%29%29.padStart%282%2C%20%270%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20hours%20%3D%20String%28date.getHours%28%29%29.padStart%282%2C%20%270%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20minutes%20%3D%20String%28date.getMinutes%28%29%29.padStart%282%2C%20%270%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%60%24%7Byear%7D-%24%7Bmonth%7D-%24%7Bday%7DT%24%7Bhours%7D%3A%24%7Bminutes%7D%60%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u4F7F%u7528%u76F8%u5BF9%u8DEF%u5F84%uFF0C%u81EA%u52A8%u9002%u5E94%u5F53%u524D%u57DF%u540D%0A%20%20%20%20%20%20%20%20const%20API_BASE%20%3D%20%27/api/reminders%27%3B%0A%0A%20%20%20%20%20%20%20%20//%20%u683C%u5F0F%u5316%u65F6%u95F4%0A%20%20%20%20%20%20%20%20function%20formatDateTime%28date%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20d%20%3D%20new%20Date%28date%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u4F7F%u7528%u65F6%u95F4%u6233%u51CF%u53BB8%u5C0F%u65F6%uFF088%20*%2060%20*%2060%20*%201000%20%u6BEB%u79D2%uFF09%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20adjustedDate%20%3D%20new%20Date%28d.getTime%28%29%20-%208%20*%2060%20*%2060%20*%201000%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20adjustedDate.toLocaleString%28%27zh-CN%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u8F6C%u6362%u672C%u5730%u65F6%u95F4%u4E3AUTC%u65F6%u95F4%0A%20%20%20%20%20%20%20%20function%20localToUTC%28dateString%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20date%20%3D%20new%20Date%28dateString%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20new%20Date%28date.getTime%28%29%20-%20%28date.getTimezoneOffset%28%29%20*%2060000%29%29.toISOString%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u81EA%u5B9A%u4E49%u786E%u8BA4%u7A97%u53E3%0A%20%20%20%20%20%20%20%20let%20confirmResolve%20%3D%20null%3B%0A%0A%20%20%20%20%20%20%20%20function%20showConfirm%28message%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20new%20Promise%28%28resolve%29%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20modal%20%3D%20document.getElementById%28%27confirmModal%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20messageEl%20%3D%20document.getElementById%28%27confirmMessage%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20messageEl.textContent%20%3D%20message%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20modal.style.display%20%3D%20%27block%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20confirmResolve%20%3D%20resolve%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20function%20closeConfirmModal%28result%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20modal%20%3D%20document.getElementById%28%27confirmModal%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20modal.style.display%20%3D%20%27none%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28confirmResolve%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20confirmResolve%28result%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20confirmResolve%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u663E%u793A%u63D0%u793A%u6761%0A%20%20%20%20%20%20%20%20function%20showToast%28message%2C%20type%20%3D%20%27success%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20toast%20%3D%20document.getElementById%28%27toast%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20toastMessage%20%3D%20document.getElementById%28%27toastMessage%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20icon%20%3D%20toast.querySelector%28%27.toast-icon%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20toastMessage.textContent%20%3D%20message%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20toast.className%20%3D%20%60toast%20show%20%24%7Btype%7D%60%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20icon.className%20%3D%20%60toast-icon%20%24%7Btype%7D%60%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%203%u79D2%u540E%u81EA%u52A8%u6D88%u5931%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toast.className%20%3D%20%27toast%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%203000%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u5220%u9664%u63D0%u9192%0A%20%20%20%20%20%20%20%20async%20function%20deleteReminder%28id%2C%20cronJobId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20confirmed%20%3D%20await%20showConfirm%28%27%u786E%u5B9A%u8981%u5220%u9664%u8FD9%u4E2A%u63D0%u9192%u5417%uFF1F%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21confirmed%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20response%20%3D%20await%20fetch%28%60%24%7BAPI_BASE%7D/%24%7Bid%7D%60%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20method%3A%20%27DELETE%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20headers%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27Content-Type%27%3A%20%27application/json%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20body%3A%20JSON.stringify%28%7B%20cronJobId%20%7D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28response.ok%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showToast%28%27%u63D0%u9192%u5220%u9664%u6210%u529F%uFF01%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20loadReminders%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20error%20%3D%20await%20response.text%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20Error%28error%20%7C%7C%20%27%u5220%u9664%u5931%u8D25%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28error%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.error%28%27Error%3A%27%2C%20error%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showToast%28%27%u5220%u9664%u63D0%u9192%u5931%u8D25%uFF1A%27%20+%20error.message%2C%20%27error%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u6DFB%u52A0%u63D0%u9192%0A%20%20%20%20%20%20%20%20async%20function%20addReminder%28event%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20title%20%3D%20document.getElementById%28%27title%27%29.value%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20content%20%3D%20document.getElementById%28%27content%27%29.value%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20remindTime%20%3D%20document.getElementById%28%27remindTime%27%29.value%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20cycleType%20%3D%20document.getElementById%28%27cycleType%27%29.value%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20link%20%3D%20document.getElementById%28%27link%27%29.value%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20reminder%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20id%3A%20Date.now%28%29.toString%28%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20content%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20remind_time%3A%20localToUTC%28remindTime%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cycle_type%3A%20cycleType%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20status%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link%3A%20link%20%7C%7C%20%27https%3A//xinai.de%27%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20response%20%3D%20await%20fetch%28API_BASE%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20method%3A%20%27POST%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20headers%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27Content-Type%27%3A%20%27application/json%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20body%3A%20JSON.stringify%28reminder%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20responseText%20%3D%20await%20response.text%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27Response%3A%27%2C%20responseText%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28response.ok%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showToast%28%27%u63D0%u9192%u6DFB%u52A0%u6210%u529F%uFF01%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20closeModal%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20loadReminders%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20Error%28responseText%20%7C%7C%20%27%u6DFB%u52A0%u5931%u8D25%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28error%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.error%28%27Error%3A%27%2C%20error%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showToast%28%27%u6DFB%u52A0%u63D0%u9192%u5931%u8D25%uFF1A%27%20+%20error.message%2C%20%27error%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u8BA1%u7B97%u4E0B%u4E00%u6B21%u63D0%u9192%u65F6%u95F4%0A%20%20%20%20%20%20%20%20function%20calculateNextRemindTime%28currentTime%2C%20cycleType%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20date%20%3D%20new%20Date%28currentTime%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20timestamp%20%3D%20date.getTime%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u8BA1%u7B97%u5404%u4E2A%u5468%u671F%u7684%u6BEB%u79D2%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20DAY_MS%20%3D%2024%20*%2060%20*%2060%20*%201000%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20WEEK_MS%20%3D%207%20*%20DAY_MS%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20switch%20%28cycleType%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%27weekly%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20new%20Date%28timestamp%20+%20WEEK_MS%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%27monthly%27%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u83B7%u53D6%u5F53%u524D%u6708%u4EFD%u7684%u5929%u6570%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20year%20%3D%20date.getFullYear%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20month%20%3D%20date.getMonth%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20day%20%3D%20date.getDate%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20hour%20%3D%20date.getHours%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20minute%20%3D%20date.getMinutes%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20second%20%3D%20date.getSeconds%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u521B%u5EFA%u4E0B%u4E2A%u6708%u7684%u540C%u4E00%u5929%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20let%20nextDate%20%3D%20new%20Date%28year%2C%20month%20+%201%2C%20day%2C%20hour%2C%20minute%2C%20second%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u5982%u679C%u7ED3%u679C%u662F%u65E0%u6548%u65E5%u671F%uFF08%u6BD4%u5982%201%u670831%u65E5%20-%3E%202%u670831%u65E5%uFF09%uFF0C%u56DE%u9000%u5230%u6708%u5E95%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28nextDate.getMonth%28%29%20%21%3D%3D%20%28month%20+%201%29%20%25%2012%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nextDate%20%3D%20new%20Date%28year%2C%20month%20+%202%2C%200%2C%20hour%2C%20minute%2C%20second%29%3B%20//%20%u8BBE%u7F6E%u4E3A%u4E0B%u4E2A%u6708%u7684%u6700%u540E%u4E00%u5929%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20nextDate%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%27yearly%27%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20year%20%3D%20date.getFullYear%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20month%20%3D%20date.getMonth%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20day%20%3D%20date.getDate%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20hour%20%3D%20date.getHours%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20minute%20%3D%20date.getMinutes%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20second%20%3D%20date.getSeconds%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u521B%u5EFA%u660E%u5E74%u7684%u540C%u4E00%u5929%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20let%20nextDate%20%3D%20new%20Date%28year%20+%201%2C%20month%2C%20day%2C%20hour%2C%20minute%2C%20second%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u5904%u74062%u670829%u65E5%u7684%u7279%u6B8A%u60C5%u51B5%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28month%20%3D%3D%3D%201%20%26%26%20day%20%3D%3D%3D%2029%20%26%26%20%21isLeapYear%28year%20+%201%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nextDate%20%3D%20new%20Date%28year%20+%201%2C%201%2C%2028%2C%20hour%2C%20minute%2C%20second%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20nextDate%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u5224%u65AD%u662F%u5426%u95F0%u5E74%0A%20%20%20%20%20%20%20%20function%20isLeapYear%28year%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%28year%20%25%204%20%3D%3D%3D%200%20%26%26%20year%20%25%20100%20%21%3D%3D%200%29%20%7C%7C%20%28year%20%25%20400%20%3D%3D%3D%200%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u52A0%u8F7D%u63D0%u9192%u5217%u8868%0A%20%20%20%20%20%20%20%20async%20function%20loadReminders%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20response%20%3D%20await%20fetch%28API_BASE%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21response.ok%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20error%20%3D%20await%20response.text%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20Error%28error%20%7C%7C%20%27%u52A0%u8F7D%u5931%u8D25%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20reminders%20%3D%20await%20response.json%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20listElement%20%3D%20document.getElementById%28%27remindersList%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20listElement.innerHTML%20%3D%20%27%27%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reminders.sort%28%28a%2C%20b%29%20%3D%3E%20new%20Date%28a.remind_time%29%20-%20new%20Date%28b.remind_time%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reminders.forEach%28reminder%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20cycleText%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27once%27%3A%20%27%u5355%u6B21%u63D0%u9192%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27weekly%27%3A%20%27%u6BCF%u5468%u5FAA%u73AF%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27monthly%27%3A%20%27%u6BCF%u6708%u5FAA%u73AF%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27yearly%27%3A%20%27%u6BCF%u5E74%u5FAA%u73AF%27%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Breminder.cycle_type%5D%20%7C%7C%20%27%u5355%u6B21%u63D0%u9192%27%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u8BA1%u7B97%u4E0B%u4E00%u6B21%u63D0%u9192%u65F6%u95F4%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20let%20nextRemindTime%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20currentTime%20%3D%20new%20Date%28reminder.remind_time%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20now%20%3D%20new%20Date%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28reminder.cycle_type%20%21%3D%3D%20%27once%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nextRemindTime%20%3D%20currentTime%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20reminderElement%20%3D%20document.createElement%28%27div%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reminderElement.className%20%3D%20%60card-container%20theme-%24%7Breminder.cycle_type%7D%60%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reminderElement.innerHTML%20%3D%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22dashed-border%22%3E%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22reminder-card%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22card-header%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22card-title%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22type-icon%20%24%7Breminder.cycle_type%7D%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%7Breminder.cycle_type%20%3D%3D%3D%20%27once%27%20%3F%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20viewBox%3D%220%200%201024%201024%22%20width%3D%2220%22%20height%3D%2220%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M512%2064C264.6%2064%2064%20264.6%2064%20512s200.6%20448%20448%20448%20448-200.6%20448-448S759.4%2064%20512%2064zm0%20820c-205.4%200-372-166.6-372-372s166.6-372%20372-372%20372%20166.6%20372%20372-166.6%20372-372%20372z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M686.7%20638.6L544.1%20535.5V288c0-4.4-3.6-8-8-8H488c-4.4%200-8%203.6-8%208v275.4c0%202.6%201.2%205%203.3%206.5l165.4%20120.6c3.6%202.6%208.6%201.8%2011.2-1.7l28.6-39c2.6-3.7%201.8-8.7-1.8-11.2z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%20%3A%20reminder.cycle_type%20%3D%3D%3D%20%27weekly%27%20%3F%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20viewBox%3D%220%200%201024%201024%22%20width%3D%2220%22%20height%3D%2220%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M112%20880c0%2017.7%2014.3%2032%2032%2032h736c17.7%200%2032-14.3%2032-32V460H112v420zm768-696H712v-64c0-4.4-3.6-8-8-8h-56c-4.4%200-8%203.6-8%208v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4%200-8%203.6-8%208v64H144c-17.7%200-32%2014.3-32%2032v176h800V216c0-17.7-14.3-32-32-32z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%20%3A%20reminder.cycle_type%20%3D%3D%3D%20%27monthly%27%20%3F%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20viewBox%3D%220%200%201024%201024%22%20width%3D%2220%22%20height%3D%2220%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M512%20832c-176.448%200-320-143.552-320-320S335.552%20192%20512%20192c23.232%200%2045.888%202.56%2067.84%207.232a2.4832%202.4832%200%200%201%201.984%202.816%203.3792%203.3792%200%200%201-.512%201.408C560.512%20242.688%20548.288%20287.744%20548.288%20336c0%20189.632%20153.088%20343.36%20341.952%20345.088%201.088.064%202.048.768%202.56%201.792s.448%202.24-.256%203.136C815.36%20772.672%20670.784%20832%20512%20832zM512%20256c-141.152%200-256%20114.848-256%20256s114.848%20256%20256%20256c117.632%200%20217.088-79.36%20246.912-189.248C609.472%20547.968%20516.032%20454.528%20484.288%20305.088%20461.056%20273.408%20425.984%20256%20388.032%20256H512z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%20%3A%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20viewBox%3D%220%200%201024%201024%22%20width%3D%2220%22%20height%3D%2220%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M880%20184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4%200-8%203.6-8%208v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4%200-8%203.6-8%208v64H144c-17.7%200-32%2014.3-32%2032v736c0%2017.7%2014.3%2032%2032%2032h736c17.7%200%2032-14.3%2032-32V216c0-17.7-14.3-32-32-32zM648.3%20426.8l-87.7%20161.1h45.7c5.5%200%2010%204.5%2010%2010v21.3c0%205.5-4.5%2010-10%2010h-63.4v29.7h63.4c5.5%200%2010%204.5%2010%2010v21.3c0%205.5-4.5%2010-10%2010h-63.4V752c0%205.5-4.5%2010-10%2010h-41.3c-5.5%200-10-4.5-10-10v-51.8h-63.1c-5.5%200-10-4.5-10-10v-21.3c0-5.5%204.5-10%2010-10h63.1v-29.7h-63.1c-5.5%200-10-4.5-10-10v-21.3c0-5.5%204.5-10%2010-10h45.2l-88-161.1c-2.6-4.8-.9-10.9%204-13.6%201.5-.8%203.1-1.2%204.8-1.2h46c3.8%200%207.2%202.1%208.9%205.5l72.9%20144.3%2073.2-144.3c1.7-3.4%205.2-5.5%208.9-5.5h45c5.5%200%2010%204.5%2010%2010%200%201.7-.4%203.3-1.2%204.8z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch3%3E%24%7Breminder.title%7D%3C/h3%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22status%20%24%7Breminder.status%20%3D%3D%3D%200%20%3F%20%27pending%27%20%3A%20%27completed%27%7D%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%7Breminder.status%20%3D%3D%3D%200%20%3F%20%27%u5F85%u63D0%u9192%27%20%3A%20%27%u5DF2%u63D0%u9192%27%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/span%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22card-content%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class%3D%22content-text%22%3E%24%7Breminder.content%7D%3C/p%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class%3D%22time-text%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22icon%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M512%2064C264.6%2064%2064%20264.6%2064%20512s200.6%20448%20448%20448%20448-200.6%20448-448S759.4%2064%20512%2064zm0%20820c-205.4%200-372-166.6-372-372s166.6-372%20372-372%20372%20166.6%20372%20372-166.6%20372-372%20372z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M686.7%20638.6L544.1%20535.5V288c0-4.4-3.6-8-8-8H488c-4.4%200-8%203.6-8%208v275.4c0%202.6%201.2%205%203.3%206.5l165.4%20120.6c3.6%202.6%208.6%201.8%2011.2-1.7l28.6-39c2.6-3.7%201.8-8.7-1.8-11.2z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%7BformatDateTime%28reminder.remind_time%29%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/p%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%7BnextRemindTime%20%3F%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class%3D%22time-text%20next-remind%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22icon%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M908.1%20353.1l-253.9-36.9L540.7%2086.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9%2014.5L369.8%20316.2l-253.9%2036.9c-7%201-13.4%204.3-18.3%209.3a32.05%2032.05%200%200%200%20.6%2045.3l183.7%20179.1-43.4%20252.9a31.95%2031.95%200%200%200%2046.4%2033.7L512%20754l227.1%20119.4c6.2%203.3%2013.4%204.4%2020.3%203.2%2017.4-3%2029.1-19.5%2026.1-36.9l-43.4-252.9%20183.7-179.1c5-4.9%208.3-11.3%209.3-18.3%202.7-17.5-9.5-33.7-27-36.3z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u4E0B%u6B21%u63D0%u9192%3A%20%24%7BformatDateTime%28nextRemindTime%29%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/p%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%20%3A%20reminder.cycle_type%20%3D%3D%3D%20%27once%27%20%3F%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class%3D%22time-text%20next-remind%20disabled%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22icon%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M685.4%20354.8c0-4.4-3.6-8-8-8l-66%20.3L512%20465.6l-99.3-118.4-66.1-.3c-4.4%200-8%203.5-8%208%200%201.9.7%203.7%201.9%205.2l130.1%20155L340.5%20670a8.32%208.32%200%200%200-1.9%205.2c0%204.4%203.6%208%208%208l66.1-.3L512%20564.4l99.3%20118.4%2066%20.3c4.4%200%208-3.5%208-8%200-1.9-.7-3.7-1.9-5.2L553.5%20515l130.1-155c1.2-1.4%201.8-3.3%201.8-5.2z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M512%2065C264.6%2065%2064%20265.6%2064%20513s200.6%20448%20448%20448%20448-200.6%20448-448S759.4%2065%20512%2065zm0%20820c-205.4%200-372-166.6-372-372s166.6-372%20372-372%20372%20166.6%20372%20372-166.6%20372-372%20372z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u5355%u6B21%u63D0%u9192%u65E0%u4E0B%u6B21%u63D0%u9192%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/p%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%20%3A%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class%3D%22time-text%20next-remind%20waiting%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22icon%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M512%2064C264.6%2064%2064%20264.6%2064%20512s200.6%20448%20448%20448%20448-200.6%20448-448S759.4%2064%20512%2064zm0%20820c-205.4%200-372-166.6-372-372s166.6-372%20372-372%20372%20166.6%20372%20372-166.6%20372-372%20372z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M508%20280c-4.4%200-8%203.6-8%208v284c0%204.4%203.6%208%208%208h284c4.4%200%208-3.6%208-8s-3.6-8-8-8H516V288c0-4.4-3.6-8-8-8z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u7B49%u5F85%u7B2C%u4E00%u6B21%u63D0%u9192%u540E%u663E%u793A%u4E0B%u6B21%u65F6%u95F4%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/p%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class%3D%22cycle-text%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22icon%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M909.1%20209.3l-56.4%2044.1C775.8%20155.1%20656.2%2092%20521.9%2092%20290%2092%20102.3%20279.5%20102%20511.5%20101.7%20743.7%20289.8%20932%20521.9%20932c181.3%200%20335.8-115%20394.6-276.1%201.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5c-4.1-1.4-8.6.7-10.1%204.8-1.8%205-3.8%2010-5.9%2014.9-17.3%2041-42.1%2077.8-73.7%20109.4-31.6%2031.6-68.4%2056.4-109.3%2073.8-42.3%2017.9-87.4%2027-133.8%2027-46.5%200-91.5-9.1-133.8-27-40.9-17.3-77.7-42.1-109.3-73.8-31.6-31.6-56.4-68.4-73.7-109.4-17.9-42.4-27-87.4-27-133.9s9.1-91.5%2027-133.9c17.3-41%2042.1-77.8%2073.7-109.4%2031.6-31.6%2068.4-56.4%20109.3-73.8%2042.3-17.9%2087.4-27%20133.8-27%2046.5%200%2091.5%209.1%20133.8%2027%2040.9%2017.3%2077.7%2042.1%20109.3%2073.8%209.9%209.9%2019.2%2020.4%2027.8%2031.4l-60.2%2047c-5.3%204.1-3.5%2012.5%203%2014.1l175.6%2043c5%201.2%209.9-2.6%209.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%7BcycleText%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/p%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22card-actions%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20href%3D%22%24%7Breminder.link%7D%22%20class%3D%22link-btn%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22icon%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M853.333333%20469.333333a42.666667%2042.666667%200%200%200-42.666666%2042.666667v256a42.666667%2042.666667%200%200%201-42.666667%2042.666667H256a42.666667%2042.666667%200%200%201-42.666667-42.666667V256a42.666667%2042.666667%200%200%201%2042.666667-42.666667h256a42.666667%2042.666667%200%200%200%200-85.333333H256a128%20128%200%200%200-128%20128v512a128%20128%200%200%200%20128%20128h512a128%20128%200%200%200%20128-128v-256a42.666667%2042.666667%200%200%200-42.666667-42.666667z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M682.666667%20213.333333h67.413333l-268.373333%20267.946667a42.666667%2042.666667%200%200%200%200%2060.586667%2042.666667%2042.666667%200%200%200%2060.586666%200L810.666667%20273.92V341.333333a42.666667%2042.666667%200%200%200%2085.333333%200V170.666667a42.666667%2042.666667%200%200%200-42.666667-42.666667h-170.666666a42.666667%2042.666667%200%200%200%200%2085.333333z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u76F4%u8FBE%u94FE%u63A5%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/a%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20class%3D%22delete-btn%22%20onclick%3D%22deleteReminder%28%27%24%7Breminder.id%7D%27%2C%20%27%24%7Breminder.cron_job_id%7D%27%29%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Csvg%20class%3D%22icon%22%20viewBox%3D%220%200%201024%201024%22%20width%3D%2216%22%20height%3D%2216%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M360%20184h-8c4.4%200%208-3.6%208-8v8h304v-8c0%204.4%203.6%208%208%208h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3%200-64%2028.7-64%2064v80h72v-72z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M864%20256H160c-17.7%200-32%2014.3-32%2032v32c0%204.4%203.6%208%208%208h60.4l24.7%20523c1.6%2034.1%2029.8%2061%2063.9%2061h454c34.2%200%2062.3-26.8%2063.9-61l24.7-523H888c4.4%200%208-3.6%208-8v-32c0-17.7-14.3-32-32-32zM731.3%20840H292.7l-24.2-512h487l-24.2%20512z%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/svg%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u5220%u9664%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/button%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20listElement.appendChild%28reminderElement%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28error%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.error%28%27Error%3A%27%2C%20error%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showToast%28%27%u52A0%u8F7D%u63D0%u9192%u5217%u8868%u5931%u8D25%uFF1A%27%20+%20error.message%2C%20%27error%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u6DFB%u52A0%u6A21%u6001%u7A97%u53E3%u76F8%u5173%u7684%u4EE3%u7801%0A%20%20%20%20%20%20%20%20const%20modal%20%3D%20document.getElementById%28%27addFormModal%27%29%3B%0A%20%20%20%20%20%20%20%20const%20openBtn%20%3D%20document.getElementById%28%27openAddForm%27%29%3B%0A%20%20%20%20%20%20%20%20const%20closeBtn%20%3D%20document.getElementsByClassName%28%27close%27%29%5B0%5D%3B%0A%0A%20%20%20%20%20%20%20%20openBtn.onclick%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20modal.style.display%20%3D%20%22block%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20closeBtn.onclick%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20closeModal%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20function%20closeModal%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20modal.style.display%20%3D%20%22none%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27reminderForm%27%29.reset%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20window.onclick%20%3D%20function%20%28event%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28event.target%20%3D%3D%20modal%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20closeModal%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u4E8B%u4EF6%u76D1%u542C%0A%20%20%20%20%20%20%20%20document.getElementById%28%27reminderForm%27%29.addEventListener%28%27submit%27%2C%20addReminder%29%3B%0A%0A%20%20%20%20%20%20%20%20//%20%u521D%u59CB%u52A0%u8F7D%0A%20%20%20%20%20%20%20%20loadReminders%28%29%3B%0A%0A%20%20%20%20%20%20%20%20//%20%u8BBE%u7F6Edatetime-local%u7684%u6700%u5C0F%u503C%u4E3A%u5F53%u524D%u65F6%u95F4%0A%20%20%20%20%20%20%20%20const%20remindTimeInput%20%3D%20document.getElementById%28%27remindTime%27%29%3B%0A%20%20%20%20%20%20%20%20const%20now%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20%20%20%20%20now.setMinutes%28now.getMinutes%28%29%20-%20now.getTimezoneOffset%28%29%29%3B%0A%20%20%20%20%20%20%20%20remindTimeInput.min%20%3D%20now.toISOString%28%29.slice%280%2C%2016%29%3B%0A%0A%20%20%20%20%20%20%20%20//%20%u6DFB%u52A0%u5BC6%u7801%u9A8C%u8BC1%u76F8%u5173%u51FD%u6570%0A%20%20%20%20%20%20%20%20async%20function%20verifyPassword%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20password%20%3D%20document.getElementById%28%27password-input%27%29.value%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20response%20%3D%20await%20fetch%28%27/api/verify-password%27%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20method%3A%20%27POST%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20headers%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27Content-Type%27%3A%20%27application/json%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20body%3A%20JSON.stringify%28%7B%20password%20%7D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28response.ok%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27password-overlay%27%29.style.display%20%3D%20%27none%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.body.classList.remove%28%27locked%27%29%3B%20//%20%u79FB%u9664%u9501%u5B9A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u8BBE%u7F6Ecookie%uFF0C%u6709%u6548%u671F30%u5929%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20expiryDate%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20expiryDate.setDate%28expiryDate.getDate%28%29%20+%2030%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.cookie%20%3D%20%60auth%3Dtrue%3B%20expires%3D%24%7BexpiryDate.toUTCString%28%29%7D%3B%20path%3D/%60%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alert%28%27%u5BC6%u7801%u9519%u8BEF%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28error%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alert%28%27%u9A8C%u8BC1%u5931%u8D25%uFF0C%u8BF7%u91CD%u8BD5%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20%u68C0%u67E5cookie%0A%20%20%20%20%20%20%20%20window.onload%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u5982%u679C%u5DF2%u7ECF%u6709%20auth%20cookie%uFF0C%u76F4%u63A5%u79FB%u9664%u9501%u5B9A%u72B6%u6001%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28document.cookie.includes%28%27auth%3Dtrue%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27password-overlay%27%29.style.display%20%3D%20%27none%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.body.classList.remove%28%27locked%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%20//%20%u76F4%u63A5%u8FD4%u56DE%uFF0C%u4E0D%u518D%u8FDB%u884C%u9A8C%u8BC1%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u53EA%u6709%u5728%u6CA1%u6709%20auth%20cookie%20%u7684%u60C5%u51B5%u4E0B%u624D%u68C0%u67E5%u5BC6%u7801%0A%20%20%20%20%20%20%20%20%20%20%20%20fetch%28%27/api/verify-password%27%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20method%3A%20%27POST%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20headers%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27Content-Type%27%3A%20%27application/json%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20body%3A%20JSON.stringify%28%7B%20password%3A%20%27%27%20%7D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.then%28response%20%3D%3E%20response.json%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.then%28data%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28data.success%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u5982%u679C%u670D%u52A1%u5668%u6CA1%u6709%u8BBE%u7F6E%u5BC6%u7801%uFF0C%u76F4%u63A5%u8BBE%u7F6Ecookie%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20const%20expiryDate%20%3D%20new%20Date%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20expiryDate.setDate%28expiryDate.getDate%28%29%20+%2030%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.cookie%20%3D%20%60auth%3Dtrue%3B%20expires%3D%24%7BexpiryDate.toUTCString%28%29%7D%3B%20path%3D/%60%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.body.classList.remove%28%27locked%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u5982%u679C%u9700%u8981%u5BC6%u7801%u4E14%u6CA1%u6709%u9A8C%u8BC1%u8FC7%uFF0C%u663E%u793A%u5BC6%u7801%u8F93%u5165%u6846%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27password-overlay%27%29.style.display%20%3D%20%27flex%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.body.classList.add%28%27locked%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.catch%28error%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.error%28%27Error%20checking%20password%20requirement%3A%27%2C%20error%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%3C/script%3E%0A%3C/body%3E%0A%0A%3C/html%3E"));
//-->
</script>