[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference":3,"page-\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference-zh-Hant":423,"surroundings\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference-zh-Hant":3871},[4],{"title":5,"ignore":6,"path":7,"stem":8,"children":9,"page":26},"文檔",true,"\u002Fzh-Hant\u002Fdocs","zh-Hant\u002F01.docs",[10,27,415],{"title":11,"path":12,"stem":13,"children":14,"page":-1},"開始使用","\u002Fzh-Hant\u002Fdocs\u002Fwelcome","zh-Hant\u002F01.docs\u002F01.welcome\u002F01.index",[15,17],{"title":16,"path":12,"stem":13},"Welcome",{"title":18,"path":19,"stem":20,"children":21,"page":26},"Get Started","\u002Fzh-Hant\u002Fdocs\u002Fwelcome\u002Fget-started","zh-Hant\u002F01.docs\u002F01.welcome\u002F01.get-started",[22],{"title":23,"path":24,"stem":25},"安裝","\u002Fzh-Hant\u002Fdocs\u002Fwelcome\u002Fget-started\u002Finstallation","zh-Hant\u002F01.docs\u002F01.welcome\u002F01.get-started\u002F02.installation",false,{"title":28,"path":29,"stem":30,"children":31,"page":26},"核心工具","\u002Fzh-Hant\u002Fdocs\u002Fcore","zh-Hant\u002F01.docs\u002F02.core",[32,57,69,78,87,110,142,175,184,192,201,222,246,275,303,331,358,385],{"title":33,"path":34,"stem":35,"children":36,"page":26},"MD5","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmd5","zh-Hant\u002F01.docs\u002F02.core\u002F01.md5",[37,41,45,49,53],{"title":38,"path":39,"stem":40},"介紹","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmd5\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F01.md5\u002F01.introduction",{"title":42,"path":43,"stem":44},"基本使用","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmd5\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F01.md5\u002F02.basic-usage",{"title":46,"path":47,"stem":48},"高級功能","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmd5\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F01.md5\u002F03.advanced-features",{"title":50,"path":51,"stem":52},"安全考慮","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmd5\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F01.md5\u002F04.security-considerations",{"title":54,"path":55,"stem":56},"API 參考","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmd5\u002Fapi-reference","zh-Hant\u002F01.docs\u002F02.core\u002F01.md5\u002F05.api-reference",{"title":58,"path":59,"stem":60,"children":61,"page":26},"UUID","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fuuid","zh-Hant\u002F01.docs\u002F02.core\u002F02.uuid",[62,65],{"title":38,"path":63,"stem":64},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fuuid\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F02.uuid\u002F01.introduction",{"title":66,"path":67,"stem":68},"API","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fuuid\u002Fapi","zh-Hant\u002F01.docs\u002F02.core\u002F02.uuid\u002F02.api",{"title":70,"path":71,"stem":72,"children":73,"page":26},"Clock","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fclock","zh-Hant\u002F01.docs\u002F02.core\u002F06.clock",[74],{"title":75,"path":76,"stem":77},"Clock Tool","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fclock\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F06.clock\u002F0.introduction",{"title":79,"path":80,"stem":81,"children":82,"page":26},"Screenshot Tool","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreenshot-tool","zh-Hant\u002F01.docs\u002F02.core\u002F07.screenshot-tool",[83],{"title":84,"path":85,"stem":86},"Introduction","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreenshot-tool\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F07.screenshot-tool\u002F0.introduction",{"title":88,"path":89,"stem":90,"children":91,"page":26},"Area Converter","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Farea-converter","zh-Hant\u002F01.docs\u002F02.core\u002F08.area-converter",[92,95,98,102,106],{"title":84,"path":93,"stem":94},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Farea-converter\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F08.area-converter\u002F0.introduction",{"title":42,"path":96,"stem":97},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Farea-converter\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F08.area-converter\u002F02.basic-usage",{"title":99,"path":100,"stem":101},"進階功能","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Farea-converter\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F08.area-converter\u002F03.advanced-features",{"title":103,"path":104,"stem":105},"範例","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Farea-converter\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F08.area-converter\u002F04.examples",{"title":107,"path":108,"stem":109},"常見問題","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Farea-converter\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F08.area-converter\u002F05.faq",{"title":111,"path":112,"stem":113,"children":114,"page":26},"Camera Recorder","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder",[115,118,122,126,130,134,138],{"title":84,"path":116,"stem":117},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F0.introduction",{"title":119,"path":120,"stem":121},"Basic Usage","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F02.basic-usage",{"title":123,"path":124,"stem":125},"Advanced Features","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F03.advanced-features",{"title":127,"path":128,"stem":129},"Examples","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F04.examples",{"title":131,"path":132,"stem":133},"Frequently Asked Questions","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F05.faq",{"title":135,"path":136,"stem":137},"Related Tools","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F06.related-tools",{"title":139,"path":140,"stem":141},"Security Considerations","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F07.security-considerations",{"title":143,"path":144,"stem":145,"children":146,"page":26},"Todo List","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list",[147,151,154,157,161,164,168,171],{"title":148,"path":149,"stem":150},"待辦事項清單","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F0.introduction",{"title":42,"path":152,"stem":153},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F02.basic-usage",{"title":99,"path":155,"stem":156},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F03.advanced-features",{"title":158,"path":159,"stem":160},"安全注意事項","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F04.security-considerations",{"title":54,"path":162,"stem":163},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F05.api-reference",{"title":165,"path":166,"stem":167},"使用範例","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F06.examples",{"title":107,"path":169,"stem":170},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F07.faq",{"title":172,"path":173,"stem":174},"相關工具","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftodo-list\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F08.related-tools",{"title":176,"path":177,"stem":178,"children":179,"page":26},"Keycode Info","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fkeycode-info","zh-Hant\u002F01.docs\u002F02.core\u002F13.keycode-info",[180],{"title":181,"path":182,"stem":183},"鍵碼資訊 - 介紹","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fkeycode-info\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F13.keycode-info\u002F0.introduction",{"title":185,"path":186,"stem":187,"children":188,"page":26},"Temperature Converter","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftemperature-converter","zh-Hant\u002F01.docs\u002F02.core\u002F20.temperature-converter",[189],{"title":84,"path":190,"stem":191},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftemperature-converter\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F20.temperature-converter\u002F0.introduction",{"title":193,"path":194,"stem":195,"children":196,"page":26},"Black Wallpaper","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fblack-wallpaper","zh-Hant\u002F01.docs\u002F02.core\u002F23.black-wallpaper",[197],{"title":198,"path":199,"stem":200},"全黑屏壁紙生成器","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fblack-wallpaper\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F23.black-wallpaper\u002F0.introduction",{"title":202,"path":203,"stem":204,"children":205,"page":26},"Text Diff","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftext-diff","zh-Hant\u002F01.docs\u002F02.core\u002F23.text-diff",[206,210,214,218],{"title":207,"path":208,"stem":209},"Text Diff 工具 - 介紹","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F23.text-diff\u002F0.introduction",{"title":211,"path":212,"stem":213},"基本使用 - Text Diff 工具","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F23.text-diff\u002F02.basic-usage",{"title":215,"path":216,"stem":217},"進階功能 - Text Diff 工具","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F23.text-diff\u002F03.advanced-features",{"title":219,"path":220,"stem":221},"常見問題 - Text Diff 工具","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Ftext-diff\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F23.text-diff\u002F05.faq",{"title":223,"path":224,"stem":225,"children":226,"page":26},"M3u8 Player","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fm3u8-player","zh-Hant\u002F01.docs\u002F02.core\u002F26.m3u8-player",[227,230,233,236,239,243],{"title":84,"path":228,"stem":229},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F0.introduction",{"title":42,"path":231,"stem":232},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F02.basic-usage",{"title":99,"path":234,"stem":235},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F03.advanced-features",{"title":54,"path":237,"stem":238},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fapi-reference","zh-Hant\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F05.api-reference",{"title":240,"path":241,"stem":242},"範例程式碼","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F06.examples",{"title":107,"path":244,"stem":245},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F07.faq",{"title":247,"path":248,"stem":249,"children":250,"page":26},"Markdown To Pdf","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf",[251,255,259,262,266,269,272],{"title":252,"path":253,"stem":254},"Markdown 转 PDF","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F0.introduction",{"title":256,"path":257,"stem":258},"基本用法","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F02.basic-usage",{"title":99,"path":260,"stem":261},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F03.advanced-features",{"title":263,"path":264,"stem":265},"安全说明","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F04.security-considerations",{"title":103,"path":267,"stem":268},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F06.examples",{"title":107,"path":270,"stem":271},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F07.faq",{"title":172,"path":273,"stem":274},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F08.related-tools",{"title":276,"path":277,"stem":278,"children":279,"page":26},"Screen Dead Pixel Detector","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector",[280,284,287,290,294,297,300],{"title":281,"path":282,"stem":283},"螢幕壞點檢測器","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F0.introduction",{"title":256,"path":285,"stem":286},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F02.basic-usage",{"title":99,"path":288,"stem":289},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F03.advanced-features",{"title":291,"path":292,"stem":293},"安全與隱私","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F04.security-considerations",{"title":165,"path":295,"stem":296},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F06.examples",{"title":107,"path":298,"stem":299},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F07.faq",{"title":172,"path":301,"stem":302},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F08.related-tools",{"title":304,"path":305,"stem":306,"children":307,"page":26},"Survey Tool","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool",[308,312,315,318,322,325,328],{"title":309,"path":310,"stem":311},"問卷工具","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F0.introduction",{"title":256,"path":313,"stem":314},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F02.basic-usage",{"title":99,"path":316,"stem":317},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F03.advanced-features",{"title":319,"path":320,"stem":321},"安全說明","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F04.security-considerations",{"title":165,"path":323,"stem":324},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F06.examples",{"title":107,"path":326,"stem":327},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F07.faq",{"title":172,"path":329,"stem":330},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F08.related-tools",{"title":332,"path":333,"stem":334,"children":335,"page":26},"Vue Office","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office",[336,340,343,346,349,352,355],{"title":337,"path":338,"stem":339},"Vue Office 文檔預覽","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office\u002F0.introduction",{"title":256,"path":341,"stem":342},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office\u002F02.basic-usage",{"title":99,"path":344,"stem":345},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office\u002F03.advanced-features",{"title":319,"path":347,"stem":348},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office\u002F04.security-considerations",{"title":165,"path":350,"stem":351},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office\u002F06.examples",{"title":107,"path":353,"stem":354},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office\u002F07.faq",{"title":172,"path":356,"stem":357},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fvue-office\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002F32.vue-office\u002F08.related-tools",{"title":359,"path":360,"stem":361,"children":362,"page":26},"Event Calendar","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar",[363,367,370,373,376,379,382],{"title":364,"path":365,"stem":366},"事件日曆","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F0.introduction",{"title":256,"path":368,"stem":369},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F02.basic-usage",{"title":99,"path":371,"stem":372},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F03.advanced-features",{"title":319,"path":374,"stem":375},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F04.security-considerations",{"title":165,"path":377,"stem":378},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F06.examples",{"title":107,"path":380,"stem":381},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F07.faq",{"title":172,"path":383,"stem":384},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F08.related-tools",{"title":386,"path":387,"stem":388,"children":389,"page":26},"Base64","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64",[390,393,396,399,403,406,409,412],{"title":84,"path":391,"stem":392},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Fintroduction","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F0.introduction",{"title":42,"path":394,"stem":395},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Fbasic-usage","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F02.basic-usage",{"title":99,"path":397,"stem":398},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Fadvanced-features","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F03.advanced-features",{"title":400,"path":401,"stem":402},"安全考量","\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Fsecurity-considerations","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F04.security-considerations",{"title":54,"path":404,"stem":405},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Fapi-reference","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F05.api-reference",{"title":103,"path":407,"stem":408},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Fexamples","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F06.examples",{"title":107,"path":410,"stem":411},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Ffaq","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F07.faq",{"title":172,"path":413,"stem":414},"\u002Fzh-Hant\u002Fdocs\u002Fcore\u002Fbase64\u002Frelated-tools","zh-Hant\u002F01.docs\u002F02.core\u002Fbase64\u002F08.related-tools",{"title":416,"path":417,"stem":418,"children":419,"page":26},"Troubleshooting","\u002Fzh-Hant\u002Fdocs\u002Ftroubleshooting","zh-Hant\u002F01.docs\u002F06.troubleshooting",[420],{"title":107,"path":421,"stem":422},"\u002Fzh-Hant\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues","zh-Hant\u002F01.docs\u002F06.troubleshooting\u002F01.common-issues",{"id":424,"title":54,"body":425,"description":3865,"extension":3866,"meta":3867,"navigation":6,"path":162,"seo":3868,"sitemap":3869,"stem":163,"__hash__":3870},"content_zh_Hant\u002Fzh-Hant\u002F01.docs\u002F02.core\u002F09.todo-list\u002F05.api-reference.md",{"type":426,"value":427,"toc":3825},"minimark",[428,432,436,441,602,606,692,696,699,715,718,906,910,913,1051,1054,1263,1266,1269,1507,1510,1565,1568,1572,1633,1636,2130,2133,2452,2455,2459,2484,2487,2501,2504,2507,2601,2604,2834,2837,2840,3072,3075,3311,3314,3317,3628,3632,3806,3809,3821],[429,430,54],"h1",{"id":431},"api-參考",[433,434,435],"h2",{"id":435},"資料結構",[437,438,440],"h3",{"id":439},"task-物件","Task 物件",[442,443,448],"pre",{"className":444,"code":445,"language":446,"meta":447,"style":447},"language-typescript shiki shiki-themes github-light github-light dark-plus","interface Task {\n  id: string; \u002F\u002F 唯一識別碼\n  text: string; \u002F\u002F 任務描述\n  completed: boolean; \u002F\u002F 完成狀態\n  dueDate?: string; \u002F\u002F 可選截止日期（ISO 格式）\n  priority: \"low\" | \"medium\" | \"high\"; \u002F\u002F 優先級\n  createdAt: Date; \u002F\u002F 建立時間戳記\n  completedAt?: Date; \u002F\u002F 完成時間戳記（如已完成）\n}\n","typescript","",[449,450,451,468,490,505,521,537,565,581,596],"code",{"__ignoreMap":447},[452,453,456,460,464],"span",{"class":454,"line":455},"line",1,[452,457,459],{"class":458},"sGiLm","interface",[452,461,463],{"class":462},"s_0E6"," Task",[452,465,467],{"class":466},"svVIm"," {\n",[452,469,471,475,479,483,486],{"class":454,"line":470},2,[452,472,474],{"class":473},"szM7h","  id",[452,476,478],{"class":477},"sGmsN",":",[452,480,482],{"class":481},"s2-Xe"," string",[452,484,485],{"class":466},"; ",[452,487,489],{"class":488},"sLEZ0","\u002F\u002F 唯一識別碼\n",[452,491,493,496,498,500,502],{"class":454,"line":492},3,[452,494,495],{"class":473},"  text",[452,497,478],{"class":477},[452,499,482],{"class":481},[452,501,485],{"class":466},[452,503,504],{"class":488},"\u002F\u002F 任務描述\n",[452,506,508,511,513,516,518],{"class":454,"line":507},4,[452,509,510],{"class":473},"  completed",[452,512,478],{"class":477},[452,514,515],{"class":481}," boolean",[452,517,485],{"class":466},[452,519,520],{"class":488},"\u002F\u002F 完成狀態\n",[452,522,524,527,530,532,534],{"class":454,"line":523},5,[452,525,526],{"class":473},"  dueDate",[452,528,529],{"class":477},"?:",[452,531,482],{"class":481},[452,533,485],{"class":466},[452,535,536],{"class":488},"\u002F\u002F 可選截止日期（ISO 格式）\n",[452,538,540,543,545,549,552,555,557,560,562],{"class":454,"line":539},6,[452,541,542],{"class":473},"  priority",[452,544,478],{"class":477},[452,546,548],{"class":547},"sjj1j"," \"low\"",[452,550,551],{"class":477}," |",[452,553,554],{"class":547}," \"medium\"",[452,556,551],{"class":477},[452,558,559],{"class":547}," \"high\"",[452,561,485],{"class":466},[452,563,564],{"class":488},"\u002F\u002F 優先級\n",[452,566,568,571,573,576,578],{"class":454,"line":567},7,[452,569,570],{"class":473},"  createdAt",[452,572,478],{"class":477},[452,574,575],{"class":462}," Date",[452,577,485],{"class":466},[452,579,580],{"class":488},"\u002F\u002F 建立時間戳記\n",[452,582,584,587,589,591,593],{"class":454,"line":583},8,[452,585,586],{"class":473},"  completedAt",[452,588,529],{"class":477},[452,590,575],{"class":462},[452,592,485],{"class":466},[452,594,595],{"class":488},"\u002F\u002F 完成時間戳記（如已完成）\n",[452,597,599],{"class":454,"line":598},9,[452,600,601],{"class":466},"}\n",[437,603,605],{"id":604},"historyrecord-物件","HistoryRecord 物件",[442,607,609],{"className":444,"code":608,"language":446,"meta":447,"style":447},"interface HistoryRecord {\n  id: string; \u002F\u002F 唯一識別碼\n  action: \"created\" | \"completed\" | \"deleted\" | \"updated\";\n  description: string; \u002F\u002F 人類可讀描述\n  timestamp: Date; \u002F\u002F 操作時間戳記\n}\n",[449,610,611,620,632,660,674,688],{"__ignoreMap":447},[452,612,613,615,618],{"class":454,"line":455},[452,614,459],{"class":458},[452,616,617],{"class":462}," HistoryRecord",[452,619,467],{"class":466},[452,621,622,624,626,628,630],{"class":454,"line":470},[452,623,474],{"class":473},[452,625,478],{"class":477},[452,627,482],{"class":481},[452,629,485],{"class":466},[452,631,489],{"class":488},[452,633,634,637,639,642,644,647,649,652,654,657],{"class":454,"line":492},[452,635,636],{"class":473},"  action",[452,638,478],{"class":477},[452,640,641],{"class":547}," \"created\"",[452,643,551],{"class":477},[452,645,646],{"class":547}," \"completed\"",[452,648,551],{"class":477},[452,650,651],{"class":547}," \"deleted\"",[452,653,551],{"class":477},[452,655,656],{"class":547}," \"updated\"",[452,658,659],{"class":466},";\n",[452,661,662,665,667,669,671],{"class":454,"line":507},[452,663,664],{"class":473},"  description",[452,666,478],{"class":477},[452,668,482],{"class":481},[452,670,485],{"class":466},[452,672,673],{"class":488},"\u002F\u002F 人類可讀描述\n",[452,675,676,679,681,683,685],{"class":454,"line":523},[452,677,678],{"class":473},"  timestamp",[452,680,478],{"class":477},[452,682,575],{"class":462},[452,684,485],{"class":466},[452,686,687],{"class":488},"\u002F\u002F 操作時間戳記\n",[452,689,690],{"class":454,"line":539},[452,691,601],{"class":466},[433,693,695],{"id":694},"本機儲存-api","本機儲存 API",[437,697,698],{"id":698},"儲存鍵",[700,701,702,709],"ul",{},[703,704,705,708],"li",{},[449,706,707],{},"todo-tasks","：Task 物件陣列",[703,710,711,714],{},[449,712,713],{},"todo-history","：HistoryRecord 物件陣列",[437,716,717],{"id":717},"資料持久化",[442,719,723],{"className":720,"code":721,"language":722,"meta":447,"style":447},"language-javascript shiki shiki-themes github-light github-light dark-plus","\u002F\u002F 儲存任務到本機儲存\nlocalStorage.setItem(\"todo-tasks\", JSON.stringify(tasks));\n\n\u002F\u002F 從本機儲存載入任務\nconst tasks = JSON.parse(localStorage.getItem(\"todo-tasks\") || \"[]\");\n\n\u002F\u002F 儲存歷史到本機儲存\nlocalStorage.setItem(\"todo-history\", JSON.stringify(history));\n\n\u002F\u002F 從本機儲存載入歷史\nconst history = JSON.parse(localStorage.getItem(\"todo-history\") || \"[]\");\n","javascript",[449,724,725,730,769,774,779,823,827,832,860,864,870],{"__ignoreMap":447},[452,726,727],{"class":454,"line":455},[452,728,729],{"class":488},"\u002F\u002F 儲存任務到本機儲存\n",[452,731,732,736,739,743,746,749,752,756,758,761,763,766],{"class":454,"line":470},[452,733,735],{"class":734},"szTj3","localStorage",[452,737,738],{"class":466},".",[452,740,742],{"class":741},"sqMzV","setItem",[452,744,745],{"class":466},"(",[452,747,748],{"class":547},"\"todo-tasks\"",[452,750,751],{"class":466},", ",[452,753,755],{"class":754},"sdRU0","JSON",[452,757,738],{"class":466},[452,759,760],{"class":741},"stringify",[452,762,745],{"class":466},[452,764,765],{"class":734},"tasks",[452,767,768],{"class":466},"));\n",[452,770,771],{"class":454,"line":492},[452,772,773],{"emptyLinePlaceholder":6},"\n",[452,775,776],{"class":454,"line":507},[452,777,778],{"class":488},"\u002F\u002F 從本機儲存載入任務\n",[452,780,781,784,787,790,793,795,798,800,802,804,807,809,811,814,817,820],{"class":454,"line":523},[452,782,783],{"class":458},"const",[452,785,786],{"class":754}," tasks",[452,788,789],{"class":477}," =",[452,791,792],{"class":754}," JSON",[452,794,738],{"class":466},[452,796,797],{"class":741},"parse",[452,799,745],{"class":466},[452,801,735],{"class":734},[452,803,738],{"class":466},[452,805,806],{"class":741},"getItem",[452,808,745],{"class":466},[452,810,748],{"class":547},[452,812,813],{"class":466},") ",[452,815,816],{"class":477},"||",[452,818,819],{"class":547}," \"[]\"",[452,821,822],{"class":466},");\n",[452,824,825],{"class":454,"line":539},[452,826,773],{"emptyLinePlaceholder":6},[452,828,829],{"class":454,"line":567},[452,830,831],{"class":488},"\u002F\u002F 儲存歷史到本機儲存\n",[452,833,834,836,838,840,842,845,847,849,851,853,855,858],{"class":454,"line":583},[452,835,735],{"class":734},[452,837,738],{"class":466},[452,839,742],{"class":741},[452,841,745],{"class":466},[452,843,844],{"class":547},"\"todo-history\"",[452,846,751],{"class":466},[452,848,755],{"class":754},[452,850,738],{"class":466},[452,852,760],{"class":741},[452,854,745],{"class":466},[452,856,857],{"class":734},"history",[452,859,768],{"class":466},[452,861,862],{"class":454,"line":598},[452,863,773],{"emptyLinePlaceholder":6},[452,865,867],{"class":454,"line":866},10,[452,868,869],{"class":488},"\u002F\u002F 從本機儲存載入歷史\n",[452,871,873,875,878,880,882,884,886,888,890,892,894,896,898,900,902,904],{"class":454,"line":872},11,[452,874,783],{"class":458},[452,876,877],{"class":754}," history",[452,879,789],{"class":477},[452,881,792],{"class":754},[452,883,738],{"class":466},[452,885,797],{"class":741},[452,887,745],{"class":466},[452,889,735],{"class":734},[452,891,738],{"class":466},[452,893,806],{"class":741},[452,895,745],{"class":466},[452,897,844],{"class":547},[452,899,813],{"class":466},[452,901,816],{"class":477},[452,903,819],{"class":547},[452,905,822],{"class":466},[433,907,909],{"id":908},"匯出匯入-api","匯出\u002F匯入 API",[437,911,912],{"id":912},"匯出格式",[442,914,918],{"className":915,"code":916,"language":917,"meta":447,"style":447},"language-json shiki shiki-themes github-light github-light dark-plus","{\n  \"tasks\": [\n    {\n      \"id\": \"abc123\",\n      \"text\": \"Complete project\",\n      \"completed\": false,\n      \"dueDate\": \"2024-02-15\",\n      \"priority\": \"high\",\n      \"createdAt\": \"2024-02-01T10:00:00.000Z\",\n      \"completedAt\": null\n    }\n  ],\n  \"exportDate\": \"2024-02-01T10:00:00.000Z\"\n}\n","json",[449,919,920,925,934,939,953,965,978,990,1002,1014,1024,1029,1035,1046],{"__ignoreMap":447},[452,921,922],{"class":454,"line":455},[452,923,924],{"class":466},"{\n",[452,926,927,931],{"class":454,"line":470},[452,928,930],{"class":929},"sSQ6O","  \"tasks\"",[452,932,933],{"class":466},": [\n",[452,935,936],{"class":454,"line":492},[452,937,938],{"class":466},"    {\n",[452,940,941,944,947,950],{"class":454,"line":507},[452,942,943],{"class":929},"      \"id\"",[452,945,946],{"class":466},": ",[452,948,949],{"class":547},"\"abc123\"",[452,951,952],{"class":466},",\n",[452,954,955,958,960,963],{"class":454,"line":523},[452,956,957],{"class":929},"      \"text\"",[452,959,946],{"class":466},[452,961,962],{"class":547},"\"Complete project\"",[452,964,952],{"class":466},[452,966,967,970,972,976],{"class":454,"line":539},[452,968,969],{"class":929},"      \"completed\"",[452,971,946],{"class":466},[452,973,975],{"class":974},"sLV08","false",[452,977,952],{"class":466},[452,979,980,983,985,988],{"class":454,"line":567},[452,981,982],{"class":929},"      \"dueDate\"",[452,984,946],{"class":466},[452,986,987],{"class":547},"\"2024-02-15\"",[452,989,952],{"class":466},[452,991,992,995,997,1000],{"class":454,"line":583},[452,993,994],{"class":929},"      \"priority\"",[452,996,946],{"class":466},[452,998,999],{"class":547},"\"high\"",[452,1001,952],{"class":466},[452,1003,1004,1007,1009,1012],{"class":454,"line":598},[452,1005,1006],{"class":929},"      \"createdAt\"",[452,1008,946],{"class":466},[452,1010,1011],{"class":547},"\"2024-02-01T10:00:00.000Z\"",[452,1013,952],{"class":466},[452,1015,1016,1019,1021],{"class":454,"line":866},[452,1017,1018],{"class":929},"      \"completedAt\"",[452,1020,946],{"class":466},[452,1022,1023],{"class":974},"null\n",[452,1025,1026],{"class":454,"line":872},[452,1027,1028],{"class":466},"    }\n",[452,1030,1032],{"class":454,"line":1031},12,[452,1033,1034],{"class":466},"  ],\n",[452,1036,1038,1041,1043],{"class":454,"line":1037},13,[452,1039,1040],{"class":929},"  \"exportDate\"",[452,1042,946],{"class":466},[452,1044,1045],{"class":547},"\"2024-02-01T10:00:00.000Z\"\n",[452,1047,1049],{"class":454,"line":1048},14,[452,1050,601],{"class":466},[437,1052,1053],{"id":1053},"匯入驗證",[442,1055,1057],{"className":720,"code":1056,"language":722,"meta":447,"style":447},"function validateImportData(data) {\n  if (!data.tasks || !Array.isArray(data.tasks)) {\n    throw new Error(\"Invalid data format: tasks array required\");\n  }\n\n  data.tasks.forEach((task) => {\n    if (!task.id || !task.text || typeof task.completed !== \"boolean\") {\n      throw new Error(\"Invalid task format\");\n    }\n  });\n\n  return true;\n}\n",[449,1058,1059,1075,1118,1136,1141,1145,1172,1220,1236,1240,1245,1249,1259],{"__ignoreMap":447},[452,1060,1061,1064,1067,1069,1072],{"class":454,"line":455},[452,1062,1063],{"class":458},"function",[452,1065,1066],{"class":741}," validateImportData",[452,1068,745],{"class":466},[452,1070,1071],{"class":473},"data",[452,1073,1074],{"class":466},") {\n",[452,1076,1077,1081,1084,1087,1089,1091,1093,1096,1099,1102,1104,1107,1109,1111,1113,1115],{"class":454,"line":470},[452,1078,1080],{"class":1079},"srAhW","  if",[452,1082,1083],{"class":466}," (",[452,1085,1086],{"class":477},"!",[452,1088,1071],{"class":734},[452,1090,738],{"class":466},[452,1092,765],{"class":734},[452,1094,1095],{"class":477}," ||",[452,1097,1098],{"class":477}," !",[452,1100,1101],{"class":734},"Array",[452,1103,738],{"class":466},[452,1105,1106],{"class":741},"isArray",[452,1108,745],{"class":466},[452,1110,1071],{"class":734},[452,1112,738],{"class":466},[452,1114,765],{"class":734},[452,1116,1117],{"class":466},")) {\n",[452,1119,1120,1123,1126,1129,1131,1134],{"class":454,"line":492},[452,1121,1122],{"class":1079},"    throw",[452,1124,1125],{"class":458}," new",[452,1127,1128],{"class":741}," Error",[452,1130,745],{"class":466},[452,1132,1133],{"class":547},"\"Invalid data format: tasks array required\"",[452,1135,822],{"class":466},[452,1137,1138],{"class":454,"line":507},[452,1139,1140],{"class":466},"  }\n",[452,1142,1143],{"class":454,"line":523},[452,1144,773],{"emptyLinePlaceholder":6},[452,1146,1147,1150,1152,1154,1156,1159,1162,1165,1167,1170],{"class":454,"line":539},[452,1148,1149],{"class":734},"  data",[452,1151,738],{"class":466},[452,1153,765],{"class":734},[452,1155,738],{"class":466},[452,1157,1158],{"class":741},"forEach",[452,1160,1161],{"class":466},"((",[452,1163,1164],{"class":473},"task",[452,1166,813],{"class":466},[452,1168,1169],{"class":458},"=>",[452,1171,467],{"class":466},[452,1173,1174,1177,1179,1181,1183,1185,1188,1190,1192,1194,1196,1199,1201,1204,1207,1209,1212,1215,1218],{"class":454,"line":567},[452,1175,1176],{"class":1079},"    if",[452,1178,1083],{"class":466},[452,1180,1086],{"class":477},[452,1182,1164],{"class":734},[452,1184,738],{"class":466},[452,1186,1187],{"class":734},"id",[452,1189,1095],{"class":477},[452,1191,1098],{"class":477},[452,1193,1164],{"class":734},[452,1195,738],{"class":466},[452,1197,1198],{"class":734},"text",[452,1200,1095],{"class":477},[452,1202,1203],{"class":458}," typeof",[452,1205,1206],{"class":734}," task",[452,1208,738],{"class":466},[452,1210,1211],{"class":734},"completed",[452,1213,1214],{"class":477}," !==",[452,1216,1217],{"class":547}," \"boolean\"",[452,1219,1074],{"class":466},[452,1221,1222,1225,1227,1229,1231,1234],{"class":454,"line":583},[452,1223,1224],{"class":1079},"      throw",[452,1226,1125],{"class":458},[452,1228,1128],{"class":741},[452,1230,745],{"class":466},[452,1232,1233],{"class":547},"\"Invalid task format\"",[452,1235,822],{"class":466},[452,1237,1238],{"class":454,"line":598},[452,1239,1028],{"class":466},[452,1241,1242],{"class":454,"line":866},[452,1243,1244],{"class":466},"  });\n",[452,1246,1247],{"class":454,"line":872},[452,1248,773],{"emptyLinePlaceholder":6},[452,1250,1251,1254,1257],{"class":454,"line":1031},[452,1252,1253],{"class":1079},"  return",[452,1255,1256],{"class":974}," true",[452,1258,659],{"class":466},[452,1260,1261],{"class":454,"line":1037},[452,1262,601],{"class":466},[433,1264,1265],{"id":1265},"事件系統",[437,1267,1268],{"id":1268},"任務事件",[442,1270,1272],{"className":720,"code":1271,"language":722,"meta":447,"style":447},"\u002F\u002F 任務建立\nwindow.dispatchEvent(\n  new CustomEvent(\"taskCreated\", {\n    detail: { task: newTask },\n  }),\n);\n\n\u002F\u002F 任務完成\nwindow.dispatchEvent(\n  new CustomEvent(\"taskCompleted\", {\n    detail: { task: completedTask },\n  }),\n);\n\n\u002F\u002F 任務更新\nwindow.dispatchEvent(\n  new CustomEvent(\"taskUpdated\", {\n    detail: { task: updatedTask },\n  }),\n);\n\n\u002F\u002F 任務刪除\nwindow.dispatchEvent(\n  new CustomEvent(\"taskDeleted\", {\n    detail: { taskId: deletedTaskId },\n  }),\n);\n",[449,1273,1274,1279,1292,1308,1325,1330,1334,1338,1343,1353,1366,1379,1383,1387,1391,1397,1408,1422,1436,1441,1446,1451,1457,1468,1482,1497,1502],{"__ignoreMap":447},[452,1275,1276],{"class":454,"line":455},[452,1277,1278],{"class":488},"\u002F\u002F 任務建立\n",[452,1280,1281,1284,1286,1289],{"class":454,"line":470},[452,1282,1283],{"class":734},"window",[452,1285,738],{"class":466},[452,1287,1288],{"class":741},"dispatchEvent",[452,1290,1291],{"class":466},"(\n",[452,1293,1294,1297,1300,1302,1305],{"class":454,"line":492},[452,1295,1296],{"class":458},"  new",[452,1298,1299],{"class":741}," CustomEvent",[452,1301,745],{"class":466},[452,1303,1304],{"class":547},"\"taskCreated\"",[452,1306,1307],{"class":466},", {\n",[452,1309,1310,1313,1316,1319,1322],{"class":454,"line":507},[452,1311,1312],{"class":734},"    detail:",[452,1314,1315],{"class":466}," { ",[452,1317,1318],{"class":734},"task:",[452,1320,1321],{"class":734}," newTask",[452,1323,1324],{"class":466}," },\n",[452,1326,1327],{"class":454,"line":523},[452,1328,1329],{"class":466},"  }),\n",[452,1331,1332],{"class":454,"line":539},[452,1333,822],{"class":466},[452,1335,1336],{"class":454,"line":567},[452,1337,773],{"emptyLinePlaceholder":6},[452,1339,1340],{"class":454,"line":583},[452,1341,1342],{"class":488},"\u002F\u002F 任務完成\n",[452,1344,1345,1347,1349,1351],{"class":454,"line":598},[452,1346,1283],{"class":734},[452,1348,738],{"class":466},[452,1350,1288],{"class":741},[452,1352,1291],{"class":466},[452,1354,1355,1357,1359,1361,1364],{"class":454,"line":866},[452,1356,1296],{"class":458},[452,1358,1299],{"class":741},[452,1360,745],{"class":466},[452,1362,1363],{"class":547},"\"taskCompleted\"",[452,1365,1307],{"class":466},[452,1367,1368,1370,1372,1374,1377],{"class":454,"line":872},[452,1369,1312],{"class":734},[452,1371,1315],{"class":466},[452,1373,1318],{"class":734},[452,1375,1376],{"class":734}," completedTask",[452,1378,1324],{"class":466},[452,1380,1381],{"class":454,"line":1031},[452,1382,1329],{"class":466},[452,1384,1385],{"class":454,"line":1037},[452,1386,822],{"class":466},[452,1388,1389],{"class":454,"line":1048},[452,1390,773],{"emptyLinePlaceholder":6},[452,1392,1394],{"class":454,"line":1393},15,[452,1395,1396],{"class":488},"\u002F\u002F 任務更新\n",[452,1398,1400,1402,1404,1406],{"class":454,"line":1399},16,[452,1401,1283],{"class":734},[452,1403,738],{"class":466},[452,1405,1288],{"class":741},[452,1407,1291],{"class":466},[452,1409,1411,1413,1415,1417,1420],{"class":454,"line":1410},17,[452,1412,1296],{"class":458},[452,1414,1299],{"class":741},[452,1416,745],{"class":466},[452,1418,1419],{"class":547},"\"taskUpdated\"",[452,1421,1307],{"class":466},[452,1423,1425,1427,1429,1431,1434],{"class":454,"line":1424},18,[452,1426,1312],{"class":734},[452,1428,1315],{"class":466},[452,1430,1318],{"class":734},[452,1432,1433],{"class":734}," updatedTask",[452,1435,1324],{"class":466},[452,1437,1439],{"class":454,"line":1438},19,[452,1440,1329],{"class":466},[452,1442,1444],{"class":454,"line":1443},20,[452,1445,822],{"class":466},[452,1447,1449],{"class":454,"line":1448},21,[452,1450,773],{"emptyLinePlaceholder":6},[452,1452,1454],{"class":454,"line":1453},22,[452,1455,1456],{"class":488},"\u002F\u002F 任務刪除\n",[452,1458,1460,1462,1464,1466],{"class":454,"line":1459},23,[452,1461,1283],{"class":734},[452,1463,738],{"class":466},[452,1465,1288],{"class":741},[452,1467,1291],{"class":466},[452,1469,1471,1473,1475,1477,1480],{"class":454,"line":1470},24,[452,1472,1296],{"class":458},[452,1474,1299],{"class":741},[452,1476,745],{"class":466},[452,1478,1479],{"class":547},"\"taskDeleted\"",[452,1481,1307],{"class":466},[452,1483,1485,1487,1489,1492,1495],{"class":454,"line":1484},25,[452,1486,1312],{"class":734},[452,1488,1315],{"class":466},[452,1490,1491],{"class":734},"taskId:",[452,1493,1494],{"class":734}," deletedTaskId",[452,1496,1324],{"class":466},[452,1498,1500],{"class":454,"line":1499},26,[452,1501,1329],{"class":466},[452,1503,1505],{"class":454,"line":1504},27,[452,1506,822],{"class":466},[437,1508,1509],{"id":1509},"歷史事件",[442,1511,1513],{"className":720,"code":1512,"language":722,"meta":447,"style":447},"\u002F\u002F 新增歷史記錄\nwindow.dispatchEvent(\n  new CustomEvent(\"historyAdded\", {\n    detail: { record: newRecord },\n  }),\n);\n",[449,1514,1515,1520,1530,1543,1557,1561],{"__ignoreMap":447},[452,1516,1517],{"class":454,"line":455},[452,1518,1519],{"class":488},"\u002F\u002F 新增歷史記錄\n",[452,1521,1522,1524,1526,1528],{"class":454,"line":470},[452,1523,1283],{"class":734},[452,1525,738],{"class":466},[452,1527,1288],{"class":741},[452,1529,1291],{"class":466},[452,1531,1532,1534,1536,1538,1541],{"class":454,"line":492},[452,1533,1296],{"class":458},[452,1535,1299],{"class":741},[452,1537,745],{"class":466},[452,1539,1540],{"class":547},"\"historyAdded\"",[452,1542,1307],{"class":466},[452,1544,1545,1547,1549,1552,1555],{"class":454,"line":507},[452,1546,1312],{"class":734},[452,1548,1315],{"class":466},[452,1550,1551],{"class":734},"record:",[452,1553,1554],{"class":734}," newRecord",[452,1556,1324],{"class":466},[452,1558,1559],{"class":454,"line":523},[452,1560,1329],{"class":466},[452,1562,1563],{"class":454,"line":539},[452,1564,822],{"class":466},[433,1566,1567],{"id":1567},"工具函式",[437,1569,1571],{"id":1570},"id-產生","ID 產生",[442,1573,1575],{"className":720,"code":1574,"language":722,"meta":447,"style":447},"function generateId() {\n  return Math.random().toString(36).substr(2, 9);\n}\n",[449,1576,1577,1587,1629],{"__ignoreMap":447},[452,1578,1579,1581,1584],{"class":454,"line":455},[452,1580,1063],{"class":458},[452,1582,1583],{"class":741}," generateId",[452,1585,1586],{"class":466},"() {\n",[452,1588,1589,1591,1594,1596,1599,1602,1605,1607,1611,1614,1617,1619,1622,1624,1627],{"class":454,"line":470},[452,1590,1253],{"class":1079},[452,1592,1593],{"class":734}," Math",[452,1595,738],{"class":466},[452,1597,1598],{"class":741},"random",[452,1600,1601],{"class":466},"().",[452,1603,1604],{"class":741},"toString",[452,1606,745],{"class":466},[452,1608,1610],{"class":1609},"sewGd","36",[452,1612,1613],{"class":466},").",[452,1615,1616],{"class":741},"substr",[452,1618,745],{"class":466},[452,1620,1621],{"class":1609},"2",[452,1623,751],{"class":466},[452,1625,1626],{"class":1609},"9",[452,1628,822],{"class":466},[452,1630,1631],{"class":454,"line":492},[452,1632,601],{"class":466},[437,1634,1635],{"id":1635},"日期工具",[442,1637,1639],{"className":720,"code":1638,"language":722,"meta":447,"style":447},"function getTomorrow() {\n  const tomorrow = new Date();\n  tomorrow.setDate(tomorrow.getDate() + 1);\n  return tomorrow.toISOString().split(\"T\")[0];\n}\n\nfunction isOverdue(dueDate) {\n  return new Date(dueDate) \u003C new Date();\n}\n\nfunction formatDate(date) {\n  return new Intl.DateTimeFormat(\"en-US\", {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\",\n  }).format(new Date(date));\n}\n\nfunction formatTimeAgo(date) {\n  const now = new Date();\n  const diff = now.getTime() - date.getTime();\n  const minutes = Math.floor(diff \u002F 60000);\n  const hours = Math.floor(diff \u002F 3600000);\n  const days = Math.floor(diff \u002F 86400000);\n\n  if (days > 0) return `${days} days ago`;\n  if (hours > 0) return `${hours} hours ago`;\n  if (minutes > 0) return `${minutes} minutes ago`;\n  return \"Just now\";\n}\n",[449,1640,1641,1650,1667,1698,1728,1732,1736,1750,1773,1777,1781,1795,1816,1826,1836,1845,1866,1870,1874,1887,1902,1932,1961,1987,2013,2017,2054,2084,2115,2125],{"__ignoreMap":447},[452,1642,1643,1645,1648],{"class":454,"line":455},[452,1644,1063],{"class":458},[452,1646,1647],{"class":741}," getTomorrow",[452,1649,1586],{"class":466},[452,1651,1652,1655,1658,1660,1662,1664],{"class":454,"line":470},[452,1653,1654],{"class":458},"  const",[452,1656,1657],{"class":754}," tomorrow",[452,1659,789],{"class":477},[452,1661,1125],{"class":458},[452,1663,575],{"class":741},[452,1665,1666],{"class":466},"();\n",[452,1668,1669,1672,1674,1677,1679,1682,1684,1687,1690,1693,1696],{"class":454,"line":492},[452,1670,1671],{"class":734},"  tomorrow",[452,1673,738],{"class":466},[452,1675,1676],{"class":741},"setDate",[452,1678,745],{"class":466},[452,1680,1681],{"class":734},"tomorrow",[452,1683,738],{"class":466},[452,1685,1686],{"class":741},"getDate",[452,1688,1689],{"class":466},"() ",[452,1691,1692],{"class":477},"+",[452,1694,1695],{"class":1609}," 1",[452,1697,822],{"class":466},[452,1699,1700,1702,1704,1706,1709,1711,1714,1716,1719,1722,1725],{"class":454,"line":507},[452,1701,1253],{"class":1079},[452,1703,1657],{"class":734},[452,1705,738],{"class":466},[452,1707,1708],{"class":741},"toISOString",[452,1710,1601],{"class":466},[452,1712,1713],{"class":741},"split",[452,1715,745],{"class":466},[452,1717,1718],{"class":547},"\"T\"",[452,1720,1721],{"class":466},")[",[452,1723,1724],{"class":1609},"0",[452,1726,1727],{"class":466},"];\n",[452,1729,1730],{"class":454,"line":523},[452,1731,601],{"class":466},[452,1733,1734],{"class":454,"line":539},[452,1735,773],{"emptyLinePlaceholder":6},[452,1737,1738,1740,1743,1745,1748],{"class":454,"line":567},[452,1739,1063],{"class":458},[452,1741,1742],{"class":741}," isOverdue",[452,1744,745],{"class":466},[452,1746,1747],{"class":473},"dueDate",[452,1749,1074],{"class":466},[452,1751,1752,1754,1756,1758,1760,1762,1764,1767,1769,1771],{"class":454,"line":583},[452,1753,1253],{"class":1079},[452,1755,1125],{"class":458},[452,1757,575],{"class":741},[452,1759,745],{"class":466},[452,1761,1747],{"class":734},[452,1763,813],{"class":466},[452,1765,1766],{"class":477},"\u003C",[452,1768,1125],{"class":458},[452,1770,575],{"class":741},[452,1772,1666],{"class":466},[452,1774,1775],{"class":454,"line":598},[452,1776,601],{"class":466},[452,1778,1779],{"class":454,"line":866},[452,1780,773],{"emptyLinePlaceholder":6},[452,1782,1783,1785,1788,1790,1793],{"class":454,"line":872},[452,1784,1063],{"class":458},[452,1786,1787],{"class":741}," formatDate",[452,1789,745],{"class":466},[452,1791,1792],{"class":473},"date",[452,1794,1074],{"class":466},[452,1796,1797,1799,1801,1804,1806,1809,1811,1814],{"class":454,"line":1031},[452,1798,1253],{"class":1079},[452,1800,1125],{"class":458},[452,1802,1803],{"class":734}," Intl",[452,1805,738],{"class":466},[452,1807,1808],{"class":741},"DateTimeFormat",[452,1810,745],{"class":466},[452,1812,1813],{"class":547},"\"en-US\"",[452,1815,1307],{"class":466},[452,1817,1818,1821,1824],{"class":454,"line":1037},[452,1819,1820],{"class":734},"    year:",[452,1822,1823],{"class":547}," \"numeric\"",[452,1825,952],{"class":466},[452,1827,1828,1831,1834],{"class":454,"line":1048},[452,1829,1830],{"class":734},"    month:",[452,1832,1833],{"class":547}," \"short\"",[452,1835,952],{"class":466},[452,1837,1838,1841,1843],{"class":454,"line":1393},[452,1839,1840],{"class":734},"    day:",[452,1842,1823],{"class":547},[452,1844,952],{"class":466},[452,1846,1847,1850,1853,1855,1858,1860,1862,1864],{"class":454,"line":1399},[452,1848,1849],{"class":466},"  }).",[452,1851,1852],{"class":741},"format",[452,1854,745],{"class":466},[452,1856,1857],{"class":458},"new",[452,1859,575],{"class":741},[452,1861,745],{"class":466},[452,1863,1792],{"class":734},[452,1865,768],{"class":466},[452,1867,1868],{"class":454,"line":1410},[452,1869,601],{"class":466},[452,1871,1872],{"class":454,"line":1424},[452,1873,773],{"emptyLinePlaceholder":6},[452,1875,1876,1878,1881,1883,1885],{"class":454,"line":1438},[452,1877,1063],{"class":458},[452,1879,1880],{"class":741}," formatTimeAgo",[452,1882,745],{"class":466},[452,1884,1792],{"class":473},[452,1886,1074],{"class":466},[452,1888,1889,1891,1894,1896,1898,1900],{"class":454,"line":1443},[452,1890,1654],{"class":458},[452,1892,1893],{"class":754}," now",[452,1895,789],{"class":477},[452,1897,1125],{"class":458},[452,1899,575],{"class":741},[452,1901,1666],{"class":466},[452,1903,1904,1906,1909,1911,1913,1915,1918,1920,1923,1926,1928,1930],{"class":454,"line":1448},[452,1905,1654],{"class":458},[452,1907,1908],{"class":754}," diff",[452,1910,789],{"class":477},[452,1912,1893],{"class":734},[452,1914,738],{"class":466},[452,1916,1917],{"class":741},"getTime",[452,1919,1689],{"class":466},[452,1921,1922],{"class":477},"-",[452,1924,1925],{"class":734}," date",[452,1927,738],{"class":466},[452,1929,1917],{"class":741},[452,1931,1666],{"class":466},[452,1933,1934,1936,1939,1941,1943,1945,1948,1950,1953,1956,1959],{"class":454,"line":1453},[452,1935,1654],{"class":458},[452,1937,1938],{"class":754}," minutes",[452,1940,789],{"class":477},[452,1942,1593],{"class":734},[452,1944,738],{"class":466},[452,1946,1947],{"class":741},"floor",[452,1949,745],{"class":466},[452,1951,1952],{"class":734},"diff",[452,1954,1955],{"class":477}," \u002F",[452,1957,1958],{"class":1609}," 60000",[452,1960,822],{"class":466},[452,1962,1963,1965,1968,1970,1972,1974,1976,1978,1980,1982,1985],{"class":454,"line":1459},[452,1964,1654],{"class":458},[452,1966,1967],{"class":754}," hours",[452,1969,789],{"class":477},[452,1971,1593],{"class":734},[452,1973,738],{"class":466},[452,1975,1947],{"class":741},[452,1977,745],{"class":466},[452,1979,1952],{"class":734},[452,1981,1955],{"class":477},[452,1983,1984],{"class":1609}," 3600000",[452,1986,822],{"class":466},[452,1988,1989,1991,1994,1996,1998,2000,2002,2004,2006,2008,2011],{"class":454,"line":1470},[452,1990,1654],{"class":458},[452,1992,1993],{"class":754}," days",[452,1995,789],{"class":477},[452,1997,1593],{"class":734},[452,1999,738],{"class":466},[452,2001,1947],{"class":741},[452,2003,745],{"class":466},[452,2005,1952],{"class":734},[452,2007,1955],{"class":477},[452,2009,2010],{"class":1609}," 86400000",[452,2012,822],{"class":466},[452,2014,2015],{"class":454,"line":1484},[452,2016,773],{"emptyLinePlaceholder":6},[452,2018,2019,2021,2023,2026,2029,2032,2034,2037,2040,2044,2046,2049,2052],{"class":454,"line":1499},[452,2020,1080],{"class":1079},[452,2022,1083],{"class":466},[452,2024,2025],{"class":734},"days",[452,2027,2028],{"class":477}," >",[452,2030,2031],{"class":1609}," 0",[452,2033,813],{"class":466},[452,2035,2036],{"class":1079},"return",[452,2038,2039],{"class":547}," `",[452,2041,2043],{"class":2042},"s7eq4","${",[452,2045,2025],{"class":734},[452,2047,2048],{"class":2042},"}",[452,2050,2051],{"class":547}," days ago`",[452,2053,659],{"class":466},[452,2055,2056,2058,2060,2063,2065,2067,2069,2071,2073,2075,2077,2079,2082],{"class":454,"line":1504},[452,2057,1080],{"class":1079},[452,2059,1083],{"class":466},[452,2061,2062],{"class":734},"hours",[452,2064,2028],{"class":477},[452,2066,2031],{"class":1609},[452,2068,813],{"class":466},[452,2070,2036],{"class":1079},[452,2072,2039],{"class":547},[452,2074,2043],{"class":2042},[452,2076,2062],{"class":734},[452,2078,2048],{"class":2042},[452,2080,2081],{"class":547}," hours ago`",[452,2083,659],{"class":466},[452,2085,2087,2089,2091,2094,2096,2098,2100,2102,2104,2106,2108,2110,2113],{"class":454,"line":2086},28,[452,2088,1080],{"class":1079},[452,2090,1083],{"class":466},[452,2092,2093],{"class":734},"minutes",[452,2095,2028],{"class":477},[452,2097,2031],{"class":1609},[452,2099,813],{"class":466},[452,2101,2036],{"class":1079},[452,2103,2039],{"class":547},[452,2105,2043],{"class":2042},[452,2107,2093],{"class":734},[452,2109,2048],{"class":2042},[452,2111,2112],{"class":547}," minutes ago`",[452,2114,659],{"class":466},[452,2116,2118,2120,2123],{"class":454,"line":2117},29,[452,2119,1253],{"class":1079},[452,2121,2122],{"class":547}," \"Just now\"",[452,2124,659],{"class":466},[452,2126,2128],{"class":454,"line":2127},30,[452,2129,601],{"class":466},[437,2131,2132],{"id":2132},"任務排序",[442,2134,2136],{"className":720,"code":2135,"language":722,"meta":447,"style":447},"function sortTasks(tasks) {\n  return tasks.sort((a, b) => {\n    \u002F\u002F 優先級排序\n    const priorityOrder = { high: 3, medium: 2, low: 1 };\n    const priorityDiff = priorityOrder[b.priority] - priorityOrder[a.priority];\n    if (priorityDiff !== 0) return priorityDiff;\n\n    \u002F\u002F 截止日期排序\n    if (a.dueDate && b.dueDate) {\n      return new Date(a.dueDate).getTime() - new Date(b.dueDate).getTime();\n    }\n    if (a.dueDate) return -1;\n    if (b.dueDate) return 1;\n\n    \u002F\u002F 建立時間排序\n    return b.createdAt.getTime() - a.createdAt.getTime();\n  });\n}\n",[449,2137,2138,2151,2178,2183,2219,2257,2278,2282,2287,2311,2354,2358,2382,2402,2406,2411,2444,2448],{"__ignoreMap":447},[452,2139,2140,2142,2145,2147,2149],{"class":454,"line":455},[452,2141,1063],{"class":458},[452,2143,2144],{"class":741}," sortTasks",[452,2146,745],{"class":466},[452,2148,765],{"class":473},[452,2150,1074],{"class":466},[452,2152,2153,2155,2157,2159,2162,2164,2167,2169,2172,2174,2176],{"class":454,"line":470},[452,2154,1253],{"class":1079},[452,2156,786],{"class":734},[452,2158,738],{"class":466},[452,2160,2161],{"class":741},"sort",[452,2163,1161],{"class":466},[452,2165,2166],{"class":473},"a",[452,2168,751],{"class":466},[452,2170,2171],{"class":473},"b",[452,2173,813],{"class":466},[452,2175,1169],{"class":458},[452,2177,467],{"class":466},[452,2179,2180],{"class":454,"line":492},[452,2181,2182],{"class":488},"    \u002F\u002F 優先級排序\n",[452,2184,2185,2188,2191,2193,2195,2198,2201,2203,2206,2209,2211,2214,2216],{"class":454,"line":507},[452,2186,2187],{"class":458},"    const",[452,2189,2190],{"class":754}," priorityOrder",[452,2192,789],{"class":477},[452,2194,1315],{"class":466},[452,2196,2197],{"class":734},"high:",[452,2199,2200],{"class":1609}," 3",[452,2202,751],{"class":466},[452,2204,2205],{"class":734},"medium:",[452,2207,2208],{"class":1609}," 2",[452,2210,751],{"class":466},[452,2212,2213],{"class":734},"low:",[452,2215,1695],{"class":1609},[452,2217,2218],{"class":466}," };\n",[452,2220,2221,2223,2226,2228,2230,2233,2235,2237,2240,2243,2245,2247,2249,2251,2253,2255],{"class":454,"line":523},[452,2222,2187],{"class":458},[452,2224,2225],{"class":754}," priorityDiff",[452,2227,789],{"class":477},[452,2229,2190],{"class":734},[452,2231,2232],{"class":466},"[",[452,2234,2171],{"class":734},[452,2236,738],{"class":466},[452,2238,2239],{"class":734},"priority",[452,2241,2242],{"class":466},"] ",[452,2244,1922],{"class":477},[452,2246,2190],{"class":734},[452,2248,2232],{"class":466},[452,2250,2166],{"class":734},[452,2252,738],{"class":466},[452,2254,2239],{"class":734},[452,2256,1727],{"class":466},[452,2258,2259,2261,2263,2266,2268,2270,2272,2274,2276],{"class":454,"line":539},[452,2260,1176],{"class":1079},[452,2262,1083],{"class":466},[452,2264,2265],{"class":734},"priorityDiff",[452,2267,1214],{"class":477},[452,2269,2031],{"class":1609},[452,2271,813],{"class":466},[452,2273,2036],{"class":1079},[452,2275,2225],{"class":734},[452,2277,659],{"class":466},[452,2279,2280],{"class":454,"line":567},[452,2281,773],{"emptyLinePlaceholder":6},[452,2283,2284],{"class":454,"line":583},[452,2285,2286],{"class":488},"    \u002F\u002F 截止日期排序\n",[452,2288,2289,2291,2293,2295,2297,2299,2302,2305,2307,2309],{"class":454,"line":598},[452,2290,1176],{"class":1079},[452,2292,1083],{"class":466},[452,2294,2166],{"class":734},[452,2296,738],{"class":466},[452,2298,1747],{"class":734},[452,2300,2301],{"class":477}," &&",[452,2303,2304],{"class":734}," b",[452,2306,738],{"class":466},[452,2308,1747],{"class":734},[452,2310,1074],{"class":466},[452,2312,2313,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352],{"class":454,"line":866},[452,2314,2315],{"class":1079},"      return",[452,2317,1125],{"class":458},[452,2319,575],{"class":741},[452,2321,745],{"class":466},[452,2323,2166],{"class":734},[452,2325,738],{"class":466},[452,2327,1747],{"class":734},[452,2329,1613],{"class":466},[452,2331,1917],{"class":741},[452,2333,1689],{"class":466},[452,2335,1922],{"class":477},[452,2337,1125],{"class":458},[452,2339,575],{"class":741},[452,2341,745],{"class":466},[452,2343,2171],{"class":734},[452,2345,738],{"class":466},[452,2347,1747],{"class":734},[452,2349,1613],{"class":466},[452,2351,1917],{"class":741},[452,2353,1666],{"class":466},[452,2355,2356],{"class":454,"line":872},[452,2357,1028],{"class":466},[452,2359,2360,2362,2364,2366,2368,2370,2372,2374,2377,2380],{"class":454,"line":1031},[452,2361,1176],{"class":1079},[452,2363,1083],{"class":466},[452,2365,2166],{"class":734},[452,2367,738],{"class":466},[452,2369,1747],{"class":734},[452,2371,813],{"class":466},[452,2373,2036],{"class":1079},[452,2375,2376],{"class":477}," -",[452,2378,2379],{"class":1609},"1",[452,2381,659],{"class":466},[452,2383,2384,2386,2388,2390,2392,2394,2396,2398,2400],{"class":454,"line":1037},[452,2385,1176],{"class":1079},[452,2387,1083],{"class":466},[452,2389,2171],{"class":734},[452,2391,738],{"class":466},[452,2393,1747],{"class":734},[452,2395,813],{"class":466},[452,2397,2036],{"class":1079},[452,2399,1695],{"class":1609},[452,2401,659],{"class":466},[452,2403,2404],{"class":454,"line":1048},[452,2405,773],{"emptyLinePlaceholder":6},[452,2407,2408],{"class":454,"line":1393},[452,2409,2410],{"class":488},"    \u002F\u002F 建立時間排序\n",[452,2412,2413,2416,2418,2420,2423,2425,2427,2429,2431,2434,2436,2438,2440,2442],{"class":454,"line":1399},[452,2414,2415],{"class":1079},"    return",[452,2417,2304],{"class":734},[452,2419,738],{"class":466},[452,2421,2422],{"class":734},"createdAt",[452,2424,738],{"class":466},[452,2426,1917],{"class":741},[452,2428,1689],{"class":466},[452,2430,1922],{"class":477},[452,2432,2433],{"class":734}," a",[452,2435,738],{"class":466},[452,2437,2422],{"class":734},[452,2439,738],{"class":466},[452,2441,1917],{"class":741},[452,2443,1666],{"class":466},[452,2445,2446],{"class":454,"line":1410},[452,2447,1244],{"class":466},[452,2449,2450],{"class":454,"line":1424},[452,2451,601],{"class":466},[433,2453,2454],{"id":2454},"瀏覽器相容性",[437,2456,2458],{"id":2457},"所需-api","所需 API",[700,2460,2461,2466,2472,2478],{},[703,2462,2463,2465],{},[449,2464,735],{}," — 資料持久化",[703,2467,2468,2471],{},[449,2469,2470],{},"JSON.parse\u002Fstringify"," — 資料序列化",[703,2473,2474,2477],{},[449,2475,2476],{},"CustomEvent"," — 事件系統",[703,2479,2480,2483],{},[449,2481,2482],{},"Intl.DateTimeFormat"," — 日期格式化",[437,2485,2486],{"id":2486},"支援的瀏覽器",[700,2488,2489,2492,2495,2498],{},[703,2490,2491],{},"Chrome 51+",[703,2493,2494],{},"Firefox 50+",[703,2496,2497],{},"Safari 10+",[703,2499,2500],{},"Edge 12+",[433,2502,2503],{"id":2503},"錯誤處理",[437,2505,2506],{"id":2506},"常見錯誤",[442,2508,2510],{"className":720,"code":2509,"language":722,"meta":447,"style":447},"try {\n  const tasks = JSON.parse(localStorage.getItem(\"todo-tasks\"));\n} catch (error) {\n  console.error(\"Failed to load tasks:\", error);\n  \u002F\u002F 回退到空陣列\n  tasks = [];\n}\n",[449,2511,2512,2519,2547,2562,2582,2587,2597],{"__ignoreMap":447},[452,2513,2514,2517],{"class":454,"line":455},[452,2515,2516],{"class":1079},"try",[452,2518,467],{"class":466},[452,2520,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545],{"class":454,"line":470},[452,2522,1654],{"class":458},[452,2524,786],{"class":754},[452,2526,789],{"class":477},[452,2528,792],{"class":754},[452,2530,738],{"class":466},[452,2532,797],{"class":741},[452,2534,745],{"class":466},[452,2536,735],{"class":734},[452,2538,738],{"class":466},[452,2540,806],{"class":741},[452,2542,745],{"class":466},[452,2544,748],{"class":547},[452,2546,768],{"class":466},[452,2548,2549,2552,2555,2557,2560],{"class":454,"line":492},[452,2550,2551],{"class":466},"} ",[452,2553,2554],{"class":1079},"catch",[452,2556,1083],{"class":466},[452,2558,2559],{"class":734},"error",[452,2561,1074],{"class":466},[452,2563,2564,2567,2569,2571,2573,2576,2578,2580],{"class":454,"line":507},[452,2565,2566],{"class":734},"  console",[452,2568,738],{"class":466},[452,2570,2559],{"class":741},[452,2572,745],{"class":466},[452,2574,2575],{"class":547},"\"Failed to load tasks:\"",[452,2577,751],{"class":466},[452,2579,2559],{"class":734},[452,2581,822],{"class":466},[452,2583,2584],{"class":454,"line":523},[452,2585,2586],{"class":488},"  \u002F\u002F 回退到空陣列\n",[452,2588,2589,2592,2594],{"class":454,"line":539},[452,2590,2591],{"class":734},"  tasks",[452,2593,789],{"class":477},[452,2595,2596],{"class":466}," [];\n",[452,2598,2599],{"class":454,"line":567},[452,2600,601],{"class":466},[437,2602,2603],{"id":2603},"資料驗證",[442,2605,2607],{"className":720,"code":2606,"language":722,"meta":447,"style":447},"function validateTask(task) {\n  const errors = [];\n\n  if (!task.text || task.text.trim().length === 0) {\n    errors.push(\"Task text is required\");\n  }\n\n  if (![\"low\", \"medium\", \"high\"].includes(task.priority)) {\n    errors.push(\"Invalid priority level\");\n  }\n\n  if (task.dueDate && isNaN(Date.parse(task.dueDate))) {\n    errors.push(\"Invalid due date format\");\n  }\n\n  return errors;\n}\n",[449,2608,2609,2622,2633,2637,2676,2693,2697,2701,2739,2754,2758,2762,2799,2814,2818,2822,2830],{"__ignoreMap":447},[452,2610,2611,2613,2616,2618,2620],{"class":454,"line":455},[452,2612,1063],{"class":458},[452,2614,2615],{"class":741}," validateTask",[452,2617,745],{"class":466},[452,2619,1164],{"class":473},[452,2621,1074],{"class":466},[452,2623,2624,2626,2629,2631],{"class":454,"line":470},[452,2625,1654],{"class":458},[452,2627,2628],{"class":754}," errors",[452,2630,789],{"class":477},[452,2632,2596],{"class":466},[452,2634,2635],{"class":454,"line":492},[452,2636,773],{"emptyLinePlaceholder":6},[452,2638,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2664,2666,2669,2672,2674],{"class":454,"line":507},[452,2640,1080],{"class":1079},[452,2642,1083],{"class":466},[452,2644,1086],{"class":477},[452,2646,1164],{"class":734},[452,2648,738],{"class":466},[452,2650,1198],{"class":734},[452,2652,1095],{"class":477},[452,2654,1206],{"class":734},[452,2656,738],{"class":466},[452,2658,1198],{"class":734},[452,2660,738],{"class":466},[452,2662,2663],{"class":741},"trim",[452,2665,1601],{"class":466},[452,2667,2668],{"class":929},"length",[452,2670,2671],{"class":477}," ===",[452,2673,2031],{"class":1609},[452,2675,1074],{"class":466},[452,2677,2678,2681,2683,2686,2688,2691],{"class":454,"line":523},[452,2679,2680],{"class":734},"    errors",[452,2682,738],{"class":466},[452,2684,2685],{"class":741},"push",[452,2687,745],{"class":466},[452,2689,2690],{"class":547},"\"Task text is required\"",[452,2692,822],{"class":466},[452,2694,2695],{"class":454,"line":539},[452,2696,1140],{"class":466},[452,2698,2699],{"class":454,"line":567},[452,2700,773],{"emptyLinePlaceholder":6},[452,2702,2703,2705,2707,2709,2711,2714,2716,2719,2721,2723,2726,2729,2731,2733,2735,2737],{"class":454,"line":583},[452,2704,1080],{"class":1079},[452,2706,1083],{"class":466},[452,2708,1086],{"class":477},[452,2710,2232],{"class":466},[452,2712,2713],{"class":547},"\"low\"",[452,2715,751],{"class":466},[452,2717,2718],{"class":547},"\"medium\"",[452,2720,751],{"class":466},[452,2722,999],{"class":547},[452,2724,2725],{"class":466},"].",[452,2727,2728],{"class":741},"includes",[452,2730,745],{"class":466},[452,2732,1164],{"class":734},[452,2734,738],{"class":466},[452,2736,2239],{"class":734},[452,2738,1117],{"class":466},[452,2740,2741,2743,2745,2747,2749,2752],{"class":454,"line":598},[452,2742,2680],{"class":734},[452,2744,738],{"class":466},[452,2746,2685],{"class":741},[452,2748,745],{"class":466},[452,2750,2751],{"class":547},"\"Invalid priority level\"",[452,2753,822],{"class":466},[452,2755,2756],{"class":454,"line":866},[452,2757,1140],{"class":466},[452,2759,2760],{"class":454,"line":872},[452,2761,773],{"emptyLinePlaceholder":6},[452,2763,2764,2766,2768,2770,2772,2774,2776,2779,2781,2784,2786,2788,2790,2792,2794,2796],{"class":454,"line":1031},[452,2765,1080],{"class":1079},[452,2767,1083],{"class":466},[452,2769,1164],{"class":734},[452,2771,738],{"class":466},[452,2773,1747],{"class":734},[452,2775,2301],{"class":477},[452,2777,2778],{"class":741}," isNaN",[452,2780,745],{"class":466},[452,2782,2783],{"class":734},"Date",[452,2785,738],{"class":466},[452,2787,797],{"class":741},[452,2789,745],{"class":466},[452,2791,1164],{"class":734},[452,2793,738],{"class":466},[452,2795,1747],{"class":734},[452,2797,2798],{"class":466},"))) {\n",[452,2800,2801,2803,2805,2807,2809,2812],{"class":454,"line":1037},[452,2802,2680],{"class":734},[452,2804,738],{"class":466},[452,2806,2685],{"class":741},[452,2808,745],{"class":466},[452,2810,2811],{"class":547},"\"Invalid due date format\"",[452,2813,822],{"class":466},[452,2815,2816],{"class":454,"line":1048},[452,2817,1140],{"class":466},[452,2819,2820],{"class":454,"line":1393},[452,2821,773],{"emptyLinePlaceholder":6},[452,2823,2824,2826,2828],{"class":454,"line":1399},[452,2825,1253],{"class":1079},[452,2827,2628],{"class":734},[452,2829,659],{"class":466},[452,2831,2832],{"class":454,"line":1410},[452,2833,601],{"class":466},[433,2835,2836],{"id":2836},"效能考量",[437,2838,2839],{"id":2839},"大型任務清單",[442,2841,2843],{"className":720,"code":2842,"language":722,"meta":447,"style":447},"\u002F\u002F 大清單分頁\nfunction getTasksPage(tasks, page = 1, pageSize = 50) {\n  const start = (page - 1) * pageSize;\n  const end = start + pageSize;\n  return tasks.slice(start, end);\n}\n\n\u002F\u002F 虛擬捲動支援\nfunction getVisibleTasks(tasks, scrollTop, viewportHeight, itemHeight) {\n  const startIndex = Math.floor(scrollTop \u002F itemHeight);\n  const visibleCount = Math.ceil(viewportHeight \u002F itemHeight);\n  return tasks.slice(startIndex, startIndex + visibleCount);\n}\n",[449,2844,2845,2850,2882,2909,2927,2950,2954,2958,2963,2991,3017,3043,3068],{"__ignoreMap":447},[452,2846,2847],{"class":454,"line":455},[452,2848,2849],{"class":488},"\u002F\u002F 大清單分頁\n",[452,2851,2852,2854,2857,2859,2861,2863,2866,2868,2870,2872,2875,2877,2880],{"class":454,"line":470},[452,2853,1063],{"class":458},[452,2855,2856],{"class":741}," getTasksPage",[452,2858,745],{"class":466},[452,2860,765],{"class":473},[452,2862,751],{"class":466},[452,2864,2865],{"class":473},"page",[452,2867,789],{"class":477},[452,2869,1695],{"class":1609},[452,2871,751],{"class":466},[452,2873,2874],{"class":473},"pageSize",[452,2876,789],{"class":477},[452,2878,2879],{"class":1609}," 50",[452,2881,1074],{"class":466},[452,2883,2884,2886,2889,2891,2893,2895,2897,2899,2901,2904,2907],{"class":454,"line":492},[452,2885,1654],{"class":458},[452,2887,2888],{"class":754}," start",[452,2890,789],{"class":477},[452,2892,1083],{"class":466},[452,2894,2865],{"class":734},[452,2896,2376],{"class":477},[452,2898,1695],{"class":1609},[452,2900,813],{"class":466},[452,2902,2903],{"class":477},"*",[452,2905,2906],{"class":734}," pageSize",[452,2908,659],{"class":466},[452,2910,2911,2913,2916,2918,2920,2923,2925],{"class":454,"line":507},[452,2912,1654],{"class":458},[452,2914,2915],{"class":754}," end",[452,2917,789],{"class":477},[452,2919,2888],{"class":734},[452,2921,2922],{"class":477}," +",[452,2924,2906],{"class":734},[452,2926,659],{"class":466},[452,2928,2929,2931,2933,2935,2938,2940,2943,2945,2948],{"class":454,"line":523},[452,2930,1253],{"class":1079},[452,2932,786],{"class":734},[452,2934,738],{"class":466},[452,2936,2937],{"class":741},"slice",[452,2939,745],{"class":466},[452,2941,2942],{"class":734},"start",[452,2944,751],{"class":466},[452,2946,2947],{"class":734},"end",[452,2949,822],{"class":466},[452,2951,2952],{"class":454,"line":539},[452,2953,601],{"class":466},[452,2955,2956],{"class":454,"line":567},[452,2957,773],{"emptyLinePlaceholder":6},[452,2959,2960],{"class":454,"line":583},[452,2961,2962],{"class":488},"\u002F\u002F 虛擬捲動支援\n",[452,2964,2965,2967,2970,2972,2974,2976,2979,2981,2984,2986,2989],{"class":454,"line":598},[452,2966,1063],{"class":458},[452,2968,2969],{"class":741}," getVisibleTasks",[452,2971,745],{"class":466},[452,2973,765],{"class":473},[452,2975,751],{"class":466},[452,2977,2978],{"class":473},"scrollTop",[452,2980,751],{"class":466},[452,2982,2983],{"class":473},"viewportHeight",[452,2985,751],{"class":466},[452,2987,2988],{"class":473},"itemHeight",[452,2990,1074],{"class":466},[452,2992,2993,2995,2998,3000,3002,3004,3006,3008,3010,3012,3015],{"class":454,"line":866},[452,2994,1654],{"class":458},[452,2996,2997],{"class":754}," startIndex",[452,2999,789],{"class":477},[452,3001,1593],{"class":734},[452,3003,738],{"class":466},[452,3005,1947],{"class":741},[452,3007,745],{"class":466},[452,3009,2978],{"class":734},[452,3011,1955],{"class":477},[452,3013,3014],{"class":734}," itemHeight",[452,3016,822],{"class":466},[452,3018,3019,3021,3024,3026,3028,3030,3033,3035,3037,3039,3041],{"class":454,"line":872},[452,3020,1654],{"class":458},[452,3022,3023],{"class":754}," visibleCount",[452,3025,789],{"class":477},[452,3027,1593],{"class":734},[452,3029,738],{"class":466},[452,3031,3032],{"class":741},"ceil",[452,3034,745],{"class":466},[452,3036,2983],{"class":734},[452,3038,1955],{"class":477},[452,3040,3014],{"class":734},[452,3042,822],{"class":466},[452,3044,3045,3047,3049,3051,3053,3055,3058,3060,3062,3064,3066],{"class":454,"line":1031},[452,3046,1253],{"class":1079},[452,3048,786],{"class":734},[452,3050,738],{"class":466},[452,3052,2937],{"class":741},[452,3054,745],{"class":466},[452,3056,3057],{"class":734},"startIndex",[452,3059,751],{"class":466},[452,3061,3057],{"class":734},[452,3063,2922],{"class":477},[452,3065,3023],{"class":734},[452,3067,822],{"class":466},[452,3069,3070],{"class":454,"line":1037},[452,3071,601],{"class":466},[437,3073,3074],{"id":3074},"記憶體管理",[442,3076,3078],{"className":720,"code":3077,"language":722,"meta":447,"style":447},"\u002F\u002F 限制歷史記錄數量\nfunction addHistoryRecord(history, record, maxRecords = 100) {\n  history.unshift(record);\n  if (history.length > maxRecords) {\n    history = history.slice(0, maxRecords);\n  }\n  return history;\n}\n\n\u002F\u002F 清理舊已完成任務\nfunction cleanupOldTasks(tasks, daysToKeep = 30) {\n  const cutoff = new Date();\n  cutoff.setDate(cutoff.getDate() - daysToKeep);\n\n  return tasks.filter((task) => !task.completed || task.completedAt > cutoff);\n}\n",[449,3079,3080,3085,3113,3129,3148,3171,3175,3183,3187,3191,3196,3219,3234,3261,3265,3307],{"__ignoreMap":447},[452,3081,3082],{"class":454,"line":455},[452,3083,3084],{"class":488},"\u002F\u002F 限制歷史記錄數量\n",[452,3086,3087,3089,3092,3094,3096,3098,3101,3103,3106,3108,3111],{"class":454,"line":470},[452,3088,1063],{"class":458},[452,3090,3091],{"class":741}," addHistoryRecord",[452,3093,745],{"class":466},[452,3095,857],{"class":473},[452,3097,751],{"class":466},[452,3099,3100],{"class":473},"record",[452,3102,751],{"class":466},[452,3104,3105],{"class":473},"maxRecords",[452,3107,789],{"class":477},[452,3109,3110],{"class":1609}," 100",[452,3112,1074],{"class":466},[452,3114,3115,3118,3120,3123,3125,3127],{"class":454,"line":492},[452,3116,3117],{"class":734},"  history",[452,3119,738],{"class":466},[452,3121,3122],{"class":741},"unshift",[452,3124,745],{"class":466},[452,3126,3100],{"class":734},[452,3128,822],{"class":466},[452,3130,3131,3133,3135,3137,3139,3141,3143,3146],{"class":454,"line":507},[452,3132,1080],{"class":1079},[452,3134,1083],{"class":466},[452,3136,857],{"class":734},[452,3138,738],{"class":466},[452,3140,2668],{"class":929},[452,3142,2028],{"class":477},[452,3144,3145],{"class":734}," maxRecords",[452,3147,1074],{"class":466},[452,3149,3150,3153,3155,3157,3159,3161,3163,3165,3167,3169],{"class":454,"line":523},[452,3151,3152],{"class":734},"    history",[452,3154,789],{"class":477},[452,3156,877],{"class":734},[452,3158,738],{"class":466},[452,3160,2937],{"class":741},[452,3162,745],{"class":466},[452,3164,1724],{"class":1609},[452,3166,751],{"class":466},[452,3168,3105],{"class":734},[452,3170,822],{"class":466},[452,3172,3173],{"class":454,"line":539},[452,3174,1140],{"class":466},[452,3176,3177,3179,3181],{"class":454,"line":567},[452,3178,1253],{"class":1079},[452,3180,877],{"class":734},[452,3182,659],{"class":466},[452,3184,3185],{"class":454,"line":583},[452,3186,601],{"class":466},[452,3188,3189],{"class":454,"line":598},[452,3190,773],{"emptyLinePlaceholder":6},[452,3192,3193],{"class":454,"line":866},[452,3194,3195],{"class":488},"\u002F\u002F 清理舊已完成任務\n",[452,3197,3198,3200,3203,3205,3207,3209,3212,3214,3217],{"class":454,"line":872},[452,3199,1063],{"class":458},[452,3201,3202],{"class":741}," cleanupOldTasks",[452,3204,745],{"class":466},[452,3206,765],{"class":473},[452,3208,751],{"class":466},[452,3210,3211],{"class":473},"daysToKeep",[452,3213,789],{"class":477},[452,3215,3216],{"class":1609}," 30",[452,3218,1074],{"class":466},[452,3220,3221,3223,3226,3228,3230,3232],{"class":454,"line":1031},[452,3222,1654],{"class":458},[452,3224,3225],{"class":754}," cutoff",[452,3227,789],{"class":477},[452,3229,1125],{"class":458},[452,3231,575],{"class":741},[452,3233,1666],{"class":466},[452,3235,3236,3239,3241,3243,3245,3248,3250,3252,3254,3256,3259],{"class":454,"line":1037},[452,3237,3238],{"class":734},"  cutoff",[452,3240,738],{"class":466},[452,3242,1676],{"class":741},[452,3244,745],{"class":466},[452,3246,3247],{"class":734},"cutoff",[452,3249,738],{"class":466},[452,3251,1686],{"class":741},[452,3253,1689],{"class":466},[452,3255,1922],{"class":477},[452,3257,3258],{"class":734}," daysToKeep",[452,3260,822],{"class":466},[452,3262,3263],{"class":454,"line":1048},[452,3264,773],{"emptyLinePlaceholder":6},[452,3266,3267,3269,3271,3273,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3301,3303,3305],{"class":454,"line":1393},[452,3268,1253],{"class":1079},[452,3270,786],{"class":734},[452,3272,738],{"class":466},[452,3274,3275],{"class":741},"filter",[452,3277,1161],{"class":466},[452,3279,1164],{"class":473},[452,3281,813],{"class":466},[452,3283,1169],{"class":458},[452,3285,1098],{"class":477},[452,3287,1164],{"class":734},[452,3289,738],{"class":466},[452,3291,1211],{"class":734},[452,3293,1095],{"class":477},[452,3295,1206],{"class":734},[452,3297,738],{"class":466},[452,3299,3300],{"class":734},"completedAt",[452,3302,2028],{"class":477},[452,3304,3225],{"class":734},[452,3306,822],{"class":466},[452,3308,3309],{"class":454,"line":1399},[452,3310,601],{"class":466},[433,3312,3313],{"id":3313},"整合範例",[437,3315,3316],{"id":3316},"外部工具整合",[442,3318,3320],{"className":720,"code":3319,"language":722,"meta":447,"style":447},"\u002F\u002F 匯出到外部日曆\nfunction exportToCalendar(tasks) {\n  const calendarEvents = tasks\n    .filter((task) => task.dueDate && !task.completed)\n    .map((task) => ({\n      title: task.text,\n      start: task.dueDate,\n      priority: task.priority,\n    }));\n\n  \u002F\u002F 產生日曆檔案或傳送到 API\n  return calendarEvents;\n}\n\n\u002F\u002F 從外部來源匯入\nasync function importFromExternal(source) {\n  try {\n    const response = await fetch(source);\n    const data = await response.json();\n\n    if (validateImportData(data)) {\n      return data.tasks;\n    }\n  } catch (error) {\n    console.error(\"Import failed:\", error);\n    throw error;\n  }\n}\n",[449,3321,3322,3327,3340,3352,3386,3404,3417,3430,3443,3448,3452,3457,3465,3469,3473,3478,3496,3503,3524,3543,3547,3562,3574,3578,3591,3611,3620,3624],{"__ignoreMap":447},[452,3323,3324],{"class":454,"line":455},[452,3325,3326],{"class":488},"\u002F\u002F 匯出到外部日曆\n",[452,3328,3329,3331,3334,3336,3338],{"class":454,"line":470},[452,3330,1063],{"class":458},[452,3332,3333],{"class":741}," exportToCalendar",[452,3335,745],{"class":466},[452,3337,765],{"class":473},[452,3339,1074],{"class":466},[452,3341,3342,3344,3347,3349],{"class":454,"line":492},[452,3343,1654],{"class":458},[452,3345,3346],{"class":754}," calendarEvents",[452,3348,789],{"class":477},[452,3350,3351],{"class":734}," tasks\n",[452,3353,3354,3357,3359,3361,3363,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383],{"class":454,"line":507},[452,3355,3356],{"class":466},"    .",[452,3358,3275],{"class":741},[452,3360,1161],{"class":466},[452,3362,1164],{"class":473},[452,3364,813],{"class":466},[452,3366,1169],{"class":458},[452,3368,1206],{"class":734},[452,3370,738],{"class":466},[452,3372,1747],{"class":734},[452,3374,2301],{"class":477},[452,3376,1098],{"class":477},[452,3378,1164],{"class":734},[452,3380,738],{"class":466},[452,3382,1211],{"class":734},[452,3384,3385],{"class":466},")\n",[452,3387,3388,3390,3393,3395,3397,3399,3401],{"class":454,"line":523},[452,3389,3356],{"class":466},[452,3391,3392],{"class":741},"map",[452,3394,1161],{"class":466},[452,3396,1164],{"class":473},[452,3398,813],{"class":466},[452,3400,1169],{"class":458},[452,3402,3403],{"class":466}," ({\n",[452,3405,3406,3409,3411,3413,3415],{"class":454,"line":539},[452,3407,3408],{"class":734},"      title:",[452,3410,1206],{"class":734},[452,3412,738],{"class":466},[452,3414,1198],{"class":734},[452,3416,952],{"class":466},[452,3418,3419,3422,3424,3426,3428],{"class":454,"line":567},[452,3420,3421],{"class":734},"      start:",[452,3423,1206],{"class":734},[452,3425,738],{"class":466},[452,3427,1747],{"class":734},[452,3429,952],{"class":466},[452,3431,3432,3435,3437,3439,3441],{"class":454,"line":583},[452,3433,3434],{"class":734},"      priority:",[452,3436,1206],{"class":734},[452,3438,738],{"class":466},[452,3440,2239],{"class":734},[452,3442,952],{"class":466},[452,3444,3445],{"class":454,"line":598},[452,3446,3447],{"class":466},"    }));\n",[452,3449,3450],{"class":454,"line":866},[452,3451,773],{"emptyLinePlaceholder":6},[452,3453,3454],{"class":454,"line":872},[452,3455,3456],{"class":488},"  \u002F\u002F 產生日曆檔案或傳送到 API\n",[452,3458,3459,3461,3463],{"class":454,"line":1031},[452,3460,1253],{"class":1079},[452,3462,3346],{"class":734},[452,3464,659],{"class":466},[452,3466,3467],{"class":454,"line":1037},[452,3468,601],{"class":466},[452,3470,3471],{"class":454,"line":1048},[452,3472,773],{"emptyLinePlaceholder":6},[452,3474,3475],{"class":454,"line":1393},[452,3476,3477],{"class":488},"\u002F\u002F 從外部來源匯入\n",[452,3479,3480,3483,3486,3489,3491,3494],{"class":454,"line":1399},[452,3481,3482],{"class":458},"async",[452,3484,3485],{"class":458}," function",[452,3487,3488],{"class":741}," importFromExternal",[452,3490,745],{"class":466},[452,3492,3493],{"class":473},"source",[452,3495,1074],{"class":466},[452,3497,3498,3501],{"class":454,"line":1410},[452,3499,3500],{"class":1079},"  try",[452,3502,467],{"class":466},[452,3504,3505,3507,3510,3512,3515,3518,3520,3522],{"class":454,"line":1424},[452,3506,2187],{"class":458},[452,3508,3509],{"class":754}," response",[452,3511,789],{"class":477},[452,3513,3514],{"class":1079}," await",[452,3516,3517],{"class":741}," fetch",[452,3519,745],{"class":466},[452,3521,3493],{"class":734},[452,3523,822],{"class":466},[452,3525,3526,3528,3531,3533,3535,3537,3539,3541],{"class":454,"line":1438},[452,3527,2187],{"class":458},[452,3529,3530],{"class":754}," data",[452,3532,789],{"class":477},[452,3534,3514],{"class":1079},[452,3536,3509],{"class":734},[452,3538,738],{"class":466},[452,3540,917],{"class":741},[452,3542,1666],{"class":466},[452,3544,3545],{"class":454,"line":1443},[452,3546,773],{"emptyLinePlaceholder":6},[452,3548,3549,3551,3553,3556,3558,3560],{"class":454,"line":1448},[452,3550,1176],{"class":1079},[452,3552,1083],{"class":466},[452,3554,3555],{"class":741},"validateImportData",[452,3557,745],{"class":466},[452,3559,1071],{"class":734},[452,3561,1117],{"class":466},[452,3563,3564,3566,3568,3570,3572],{"class":454,"line":1453},[452,3565,2315],{"class":1079},[452,3567,3530],{"class":734},[452,3569,738],{"class":466},[452,3571,765],{"class":734},[452,3573,659],{"class":466},[452,3575,3576],{"class":454,"line":1459},[452,3577,1028],{"class":466},[452,3579,3580,3583,3585,3587,3589],{"class":454,"line":1470},[452,3581,3582],{"class":466},"  } ",[452,3584,2554],{"class":1079},[452,3586,1083],{"class":466},[452,3588,2559],{"class":734},[452,3590,1074],{"class":466},[452,3592,3593,3596,3598,3600,3602,3605,3607,3609],{"class":454,"line":1484},[452,3594,3595],{"class":734},"    console",[452,3597,738],{"class":466},[452,3599,2559],{"class":741},[452,3601,745],{"class":466},[452,3603,3604],{"class":547},"\"Import failed:\"",[452,3606,751],{"class":466},[452,3608,2559],{"class":734},[452,3610,822],{"class":466},[452,3612,3613,3615,3618],{"class":454,"line":1499},[452,3614,1122],{"class":1079},[452,3616,3617],{"class":734}," error",[452,3619,659],{"class":466},[452,3621,3622],{"class":454,"line":1504},[452,3623,1140],{"class":466},[452,3625,3626],{"class":454,"line":2086},[452,3627,601],{"class":466},[437,3629,3631],{"id":3630},"webhook-整合","Webhook 整合",[442,3633,3635],{"className":720,"code":3634,"language":722,"meta":447,"style":447},"\u002F\u002F 任務完成時傳送 Webhook\nasync function sendWebhook(task, webhookUrl) {\n  try {\n    await fetch(webhookUrl, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application\u002Fjson\" },\n      body: JSON.stringify({\n        event: \"taskCompleted\",\n        task: task,\n        timestamp: new Date().toISOString(),\n      }),\n    });\n  } catch (error) {\n    console.error(\"Webhook failed:\", error);\n  }\n}\n",[449,3636,3637,3642,3662,3668,3681,3691,3708,3722,3732,3741,3757,3762,3767,3779,3798,3802],{"__ignoreMap":447},[452,3638,3639],{"class":454,"line":455},[452,3640,3641],{"class":488},"\u002F\u002F 任務完成時傳送 Webhook\n",[452,3643,3644,3646,3648,3651,3653,3655,3657,3660],{"class":454,"line":470},[452,3645,3482],{"class":458},[452,3647,3485],{"class":458},[452,3649,3650],{"class":741}," sendWebhook",[452,3652,745],{"class":466},[452,3654,1164],{"class":473},[452,3656,751],{"class":466},[452,3658,3659],{"class":473},"webhookUrl",[452,3661,1074],{"class":466},[452,3663,3664,3666],{"class":454,"line":492},[452,3665,3500],{"class":1079},[452,3667,467],{"class":466},[452,3669,3670,3673,3675,3677,3679],{"class":454,"line":507},[452,3671,3672],{"class":1079},"    await",[452,3674,3517],{"class":741},[452,3676,745],{"class":466},[452,3678,3659],{"class":734},[452,3680,1307],{"class":466},[452,3682,3683,3686,3689],{"class":454,"line":523},[452,3684,3685],{"class":734},"      method:",[452,3687,3688],{"class":547}," \"POST\"",[452,3690,952],{"class":466},[452,3692,3693,3696,3698,3701,3703,3706],{"class":454,"line":539},[452,3694,3695],{"class":734},"      headers:",[452,3697,1315],{"class":466},[452,3699,3700],{"class":547},"\"Content-Type\"",[452,3702,478],{"class":734},[452,3704,3705],{"class":547}," \"application\u002Fjson\"",[452,3707,1324],{"class":466},[452,3709,3710,3713,3715,3717,3719],{"class":454,"line":567},[452,3711,3712],{"class":734},"      body:",[452,3714,792],{"class":754},[452,3716,738],{"class":466},[452,3718,760],{"class":741},[452,3720,3721],{"class":466},"({\n",[452,3723,3724,3727,3730],{"class":454,"line":583},[452,3725,3726],{"class":734},"        event:",[452,3728,3729],{"class":547}," \"taskCompleted\"",[452,3731,952],{"class":466},[452,3733,3734,3737,3739],{"class":454,"line":598},[452,3735,3736],{"class":734},"        task:",[452,3738,1206],{"class":734},[452,3740,952],{"class":466},[452,3742,3743,3746,3748,3750,3752,3754],{"class":454,"line":866},[452,3744,3745],{"class":734},"        timestamp:",[452,3747,1125],{"class":458},[452,3749,575],{"class":741},[452,3751,1601],{"class":466},[452,3753,1708],{"class":741},[452,3755,3756],{"class":466},"(),\n",[452,3758,3759],{"class":454,"line":872},[452,3760,3761],{"class":466},"      }),\n",[452,3763,3764],{"class":454,"line":1031},[452,3765,3766],{"class":466},"    });\n",[452,3768,3769,3771,3773,3775,3777],{"class":454,"line":1037},[452,3770,3582],{"class":466},[452,3772,2554],{"class":1079},[452,3774,1083],{"class":466},[452,3776,2559],{"class":734},[452,3778,1074],{"class":466},[452,3780,3781,3783,3785,3787,3789,3792,3794,3796],{"class":454,"line":1048},[452,3782,3595],{"class":734},[452,3784,738],{"class":466},[452,3786,2559],{"class":741},[452,3788,745],{"class":466},[452,3790,3791],{"class":547},"\"Webhook failed:\"",[452,3793,751],{"class":466},[452,3795,2559],{"class":734},[452,3797,822],{"class":466},[452,3799,3800],{"class":454,"line":1393},[452,3801,1140],{"class":466},[452,3803,3804],{"class":454,"line":1399},[452,3805,601],{"class":466},[433,3807,3808],{"id":3808},"下一步",[3810,3811,3812,3813,3816,3817,3820],"p",{},"查看",[2166,3814,165],{"href":3815},"\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fexamples","了解實際應用場景，或瀏覽",[2166,3818,172],{"href":3819},"\u002Fdocs\u002Fcore\u002Ftodo-list\u002Frelated-tools","探索互補工具。",[3822,3823,3824],"style",{},"html pre.shiki code .sGiLm, html code.shiki .sGiLm{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#569CD6}html pre.shiki code .s_0E6, html code.shiki .s_0E6{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#4EC9B0}html pre.shiki code .svVIm, html code.shiki .svVIm{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#D4D4D4}html pre.shiki code .szM7h, html code.shiki .szM7h{--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#9CDCFE}html pre.shiki code .sGmsN, html code.shiki .sGmsN{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#D4D4D4}html pre.shiki code .s2-Xe, html code.shiki .s2-Xe{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#4EC9B0}html pre.shiki code .sLEZ0, html code.shiki .sLEZ0{--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A9955}html pre.shiki code .sjj1j, html code.shiki .sjj1j{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#CE9178}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szTj3, html code.shiki .szTj3{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#9CDCFE}html pre.shiki code .sqMzV, html code.shiki .sqMzV{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#DCDCAA}html pre.shiki code .sdRU0, html code.shiki .sdRU0{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#4FC1FF}html pre.shiki code .sSQ6O, html code.shiki .sSQ6O{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#9CDCFE}html pre.shiki code .sLV08, html code.shiki .sLV08{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#569CD6}html pre.shiki code .srAhW, html code.shiki .srAhW{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#C586C0}html pre.shiki code .sewGd, html code.shiki .sewGd{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#B5CEA8}html pre.shiki code .s7eq4, html code.shiki .s7eq4{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#569CD6}",{"title":447,"searchDepth":470,"depth":470,"links":3826},[3827,3831,3835,3839,3843,3848,3852,3856,3860,3864],{"id":435,"depth":470,"text":435,"children":3828},[3829,3830],{"id":439,"depth":492,"text":440},{"id":604,"depth":492,"text":605},{"id":694,"depth":470,"text":695,"children":3832},[3833,3834],{"id":698,"depth":492,"text":698},{"id":717,"depth":492,"text":717},{"id":908,"depth":470,"text":909,"children":3836},[3837,3838],{"id":912,"depth":492,"text":912},{"id":1053,"depth":492,"text":1053},{"id":1265,"depth":470,"text":1265,"children":3840},[3841,3842],{"id":1268,"depth":492,"text":1268},{"id":1509,"depth":492,"text":1509},{"id":1567,"depth":470,"text":1567,"children":3844},[3845,3846,3847],{"id":1570,"depth":492,"text":1571},{"id":1635,"depth":492,"text":1635},{"id":2132,"depth":492,"text":2132},{"id":2454,"depth":470,"text":2454,"children":3849},[3850,3851],{"id":2457,"depth":492,"text":2458},{"id":2486,"depth":492,"text":2486},{"id":2503,"depth":470,"text":2503,"children":3853},[3854,3855],{"id":2506,"depth":492,"text":2506},{"id":2603,"depth":492,"text":2603},{"id":2836,"depth":470,"text":2836,"children":3857},[3858,3859],{"id":2839,"depth":492,"text":2839},{"id":3074,"depth":492,"text":3074},{"id":3313,"depth":470,"text":3313,"children":3861},[3862,3863],{"id":3316,"depth":492,"text":3316},{"id":3630,"depth":492,"text":3631},{"id":3808,"depth":470,"text":3808},"待辦事項清單工具的資料結構、本機儲存 API 與整合範例","md",{},{"title":54,"description":3865},{"loc":162},"NnbiQL3axUmWouk9r1SdvtdO9cWcm9s4D5udk7gES_c",[3872,3872],null]