From e969aca5f8e028056ae9d926a506a68af618172b Mon Sep 17 00:00:00 2001 From: 821938089 <8674809+821938089@users.noreply.github.com> Date: Sun, 15 Mar 2026 09:27:18 +0000 Subject: [PATCH] Bump web v3.26.031517 --- .../{BookChapter-BzD_l61U.css => BookChapter-BsiFtdIw.css} | 2 +- app/src/main/assets/web/vue/assets/BookChapter-Bydi3OgI.js | 1 - app/src/main/assets/web/vue/assets/BookChapter-Cs3stH93.js | 1 + .../assets/{BookShelf-Ov6vQAks.js => BookShelf-DIQtBULC.js} | 2 +- .../web/vue/assets/{index-ByFGW78w.js => index-Wr40-hHf.js} | 4 ++-- app/src/main/assets/web/vue/index.html | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) rename app/src/main/assets/web/vue/assets/{BookChapter-BzD_l61U.css => BookChapter-BsiFtdIw.css} (97%) delete mode 100644 app/src/main/assets/web/vue/assets/BookChapter-Bydi3OgI.js create mode 100644 app/src/main/assets/web/vue/assets/BookChapter-Cs3stH93.js rename app/src/main/assets/web/vue/assets/{BookShelf-Ov6vQAks.js => BookShelf-DIQtBULC.js} (99%) rename app/src/main/assets/web/vue/assets/{index-ByFGW78w.js => index-Wr40-hHf.js} (99%) diff --git a/app/src/main/assets/web/vue/assets/BookChapter-BzD_l61U.css b/app/src/main/assets/web/vue/assets/BookChapter-BsiFtdIw.css similarity index 97% rename from app/src/main/assets/web/vue/assets/BookChapter-BzD_l61U.css rename to app/src/main/assets/web/vue/assets/BookChapter-BsiFtdIw.css index 34f473505..f0e8bfb82 100644 --- a/app/src/main/assets/web/vue/assets/BookChapter-BzD_l61U.css +++ b/app/src/main/assets/web/vue/assets/BookChapter-BsiFtdIw.css @@ -1 +1 @@ -@charset "UTF-8";.title[data-v-4c4e6646]{margin-bottom:57px;font:24px/32px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}p[data-v-4c4e6646]{display:block;word-wrap:break-word;letter-spacing:calc(var(--v0e306947) * 1em);line-height:calc(1 + var(--v3ff2c955));margin:calc(var(--v5b1d64ad) * 1em) 0}p[data-v-4c4e6646] img{height:1em}.full[data-v-4c4e6646]{display:block;width:100%}@font-face{font-family:FZZCYSK;src:local("☺"),url(./popfont-WaOB0hHG.ttf);font-style:normal;font-weight:400}@font-face{font-family:iconfont;src:url(./iconfont-PstzbNMW.woff) format("woff")}[data-v-dd7cfcb2] .iconfont,[data-v-dd7cfcb2] .moon-icon{font-family:iconfont;font-style:normal}.settings-wrapper[data-v-dd7cfcb2]{-webkit-user-select:none;user-select:none;margin:-13px;text-align:left;padding:40px 0 40px 24px;background:#ede7da url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=) repeat}.settings-wrapper .settings-title[data-v-dd7cfcb2]{font-size:18px;line-height:22px;margin-bottom:28px;font-family:FZZCYSK;font-weight:400}.settings-wrapper .setting-list[data-v-dd7cfcb2]{max-height:calc(70vh - 50px);overflow:auto}.settings-wrapper .setting-list ul[data-v-dd7cfcb2]{list-style:none outside none;margin:0;padding:0}.settings-wrapper .setting-list ul li[data-v-dd7cfcb2]{list-style:none outside none}.settings-wrapper .setting-list ul li i[data-v-dd7cfcb2]{font:12px/16px PingFangSC-Regular,-apple-system,Simsun;display:inline-block;min-width:48px;margin-right:16px;vertical-align:middle;color:#666}.settings-wrapper .setting-list ul li .theme-item[data-v-dd7cfcb2]{line-height:32px;width:34px;height:34px;margin-right:16px;margin-top:5px;border-radius:100%;display:inline-block;cursor:pointer;text-align:center;vertical-align:middle}.settings-wrapper .setting-list ul li .theme-item .iconfont[data-v-dd7cfcb2]{display:none}.settings-wrapper .setting-list ul li .selected[data-v-dd7cfcb2]{color:#ed4259}.settings-wrapper .setting-list ul li .selected .iconfont[data-v-dd7cfcb2]{display:inline}.settings-wrapper .setting-list ul .font-list[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading[data-v-dd7cfcb2]{margin-top:28px}.settings-wrapper .setting-list ul .font-list .font-item[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-dd7cfcb2]{width:78px;height:34px;cursor:pointer;margin-right:16px;border-radius:2px;text-align:center;vertical-align:middle;display:inline-block;font:14px/34px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}.settings-wrapper .setting-list ul .font-list .font-item-input[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .font-item-input[data-v-dd7cfcb2]{width:168px;color:#000}.settings-wrapper .setting-list ul .font-list .selected[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .selected[data-v-dd7cfcb2]{color:#ed4259;border:1px solid #ed4259}.settings-wrapper .setting-list ul .font-list .font-item[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-dd7cfcb2]:hover{border:1px solid #ed4259;color:#ed4259}.settings-wrapper .setting-list ul .font-size[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing[data-v-dd7cfcb2]{margin-top:28px}.settings-wrapper .setting-list ul .font-size .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize[data-v-dd7cfcb2]{display:inline-block;width:274px;height:34px;vertical-align:middle;border-radius:2px}.settings-wrapper .setting-list ul .font-size .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize span[data-v-dd7cfcb2]{width:89px;height:34px;line-height:34px;display:inline-block;cursor:pointer;text-align:center;vertical-align:middle}.settings-wrapper .setting-list ul .font-size .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize span em[data-v-dd7cfcb2]{font-style:normal}.settings-wrapper .setting-list ul .font-size .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .font-size .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .read-width .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .read-width .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .more[data-v-dd7cfcb2]:hover{color:#ed4259}.settings-wrapper .setting-list ul .font-size .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize .lang[data-v-dd7cfcb2]{color:#a6a6a6;font-weight:400;font-family:FZZCYSK}.settings-wrapper .setting-list ul .font-size .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize b[data-v-dd7cfcb2]{display:inline-block;height:20px;vertical-align:middle}.night[data-v-dd7cfcb2] .theme-item,.night[data-v-dd7cfcb2] .selected{border:1px solid #666}.night[data-v-dd7cfcb2] .moon-icon{color:#ed4259}.night[data-v-dd7cfcb2] .font-list .font-item,.night[data-v-dd7cfcb2] .font-list .infinite-loading-item,.night .infinite-loading .font-item[data-v-dd7cfcb2],.night .infinite-loading .infinite-loading-item[data-v-dd7cfcb2],.night[data-v-dd7cfcb2] .resize{border:1px solid #666;background:#2d2d2d80}.night[data-v-dd7cfcb2] .resize b{border-right:1px solid #666}.day[data-v-dd7cfcb2] .theme-item{border:1px solid #e5e5e5}.day[data-v-dd7cfcb2] .selected{border:1px solid #ed4259}.day[data-v-dd7cfcb2] .moon-icon{display:inline;color:#fff3}.day[data-v-dd7cfcb2] .font-list .font-item,.day[data-v-dd7cfcb2] .font-list .infinite-loading-item,.day .infinite-loading .font-item[data-v-dd7cfcb2],.day .infinite-loading .infinite-loading-item[data-v-dd7cfcb2]{background:#ffffff80;border:1px solid rgba(0,0,0,.1)}.day[data-v-dd7cfcb2] .resize{border:1px solid #e5e5e5;background:#ffffff80}.day[data-v-dd7cfcb2] .resize b{border-right:1px solid #e5e5e5}@media screen and (max-width: 500px){.settings-wrapper i[data-v-dd7cfcb2]{display:flex!important;flex-wrap:wrap;padding-bottom:5px!important}}.selected[data-v-a892cd6d]{color:#eb4259}.wrapper[data-v-a892cd6d]{display:flex}.wrapper .cata-text[data-v-a892cd6d]{width:100%;margin-right:26px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cata-wrapper[data-v-6cab38af]{margin:-16px;padding:18px 0 24px 25px}.cata-wrapper .title[data-v-6cab38af]{font-size:18px;font-weight:400;font-family:FZZCYSK;margin:0 0 20px;color:#ed4259;width:fit-content;border-bottom:1px solid #ed4259}.cata-wrapper[data-v-6cab38af] .data-wrapper .cata{height:40px;cursor:pointer;font:16px/40px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}.cata-wrapper .night[data-v-6cab38af] .cata{border-bottom:1px solid #666}.cata-wrapper .day[data-v-6cab38af] .cata{border-bottom:1px solid #f2f2f2}[data-v-fff9fad7] .pop-setting{margin-left:68px;top:0}[data-v-fff9fad7] .pop-cata{margin-left:10px}.chapter-wrapper[data-v-fff9fad7]{padding:0 4%;overflow-x:hidden}.chapter-wrapper[data-v-fff9fad7] .no-point{pointer-events:none}.chapter-wrapper .tool-bar[data-v-fff9fad7]{position:fixed;top:0;left:50%;z-index:100}.chapter-wrapper .tool-bar .tools[data-v-fff9fad7]{display:flex;flex-direction:column}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-fff9fad7]{font-size:18px;width:58px;height:48px;text-align:center;padding-top:12px;cursor:pointer;outline:none}.chapter-wrapper .tool-bar .tools .tool-icon .iconfont[data-v-fff9fad7]{font-family:iconfont;width:16px;height:16px;font-size:16px;margin:0 auto 6px}.chapter-wrapper .tool-bar .tools .tool-icon .icon-text[data-v-fff9fad7]{font-size:12px}.chapter-wrapper .read-bar[data-v-fff9fad7]{position:fixed;bottom:0;right:50%;z-index:100}.chapter-wrapper .read-bar .tools[data-v-fff9fad7]{display:flex;flex-direction:column}.chapter-wrapper .read-bar .tools .tool-icon[data-v-fff9fad7]{font-size:18px;width:42px;height:31px;padding-top:12px;text-align:center;align-items:center;cursor:pointer;outline:none;margin-top:-1px}.chapter-wrapper .read-bar .tools .tool-icon .iconfont[data-v-fff9fad7]{font-family:iconfont;width:16px;height:16px;font-size:16px;margin:0 auto 6px}.chapter-wrapper .chapter[data-v-fff9fad7]{font-family:Microsoft YaHei,PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,sans-serif;text-align:left;padding:0 65px;min-height:100vh;width:670px;margin:0 auto}.chapter-wrapper .chapter .content[data-v-fff9fad7]{font-size:18px;line-height:1.8;font-family:Microsoft YaHei,PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,sans-serif}.chapter-wrapper .chapter .content .bottom-bar[data-v-fff9fad7],.chapter-wrapper .chapter .content .top-bar[data-v-fff9fad7]{height:64px}.day[data-v-fff9fad7] .popup{box-shadow:0 2px 4px #0000001f,0 0 6px #0000000a}.day[data-v-fff9fad7] .tool-icon{border:1px solid rgba(0,0,0,.1);margin-top:-1px;color:#000}.day[data-v-fff9fad7] .tool-icon .icon-text{color:#0006}.day[data-v-fff9fad7] .chapter{border:1px solid #d8d8d8;color:#262626}.night[data-v-fff9fad7] .popup{box-shadow:0 2px 4px #0000007a,0 0 6px #00000029}.night[data-v-fff9fad7] .tool-icon{border:1px solid #444;margin-top:-1px;color:#666}.night[data-v-fff9fad7] .tool-icon .icon-text{color:#666}.night[data-v-fff9fad7] .chapter{border:1px solid #444;color:#666}.night[data-v-fff9fad7] .popper__arrow{background:#666}@media screen and (max-width: 776px){.chapter-wrapper[data-v-fff9fad7]{padding:0}.chapter-wrapper .tool-bar[data-v-fff9fad7]{left:0;width:100vw;margin-left:0!important}.chapter-wrapper .tool-bar .tools[data-v-fff9fad7]{flex-direction:row;justify-content:space-between}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-fff9fad7]{border:none}.chapter-wrapper .read-bar[data-v-fff9fad7]{right:0;width:100vw;margin-right:0!important}.chapter-wrapper .read-bar .tools[data-v-fff9fad7]{flex-direction:row;justify-content:space-between;padding:0 15px}.chapter-wrapper .read-bar .tools .tool-icon[data-v-fff9fad7]{border:none;width:auto}.chapter-wrapper .read-bar .tools .tool-icon .iconfont[data-v-fff9fad7]{display:inline-block}.chapter-wrapper .chapter[data-v-fff9fad7]{width:100vw!important;padding:0 20px;box-sizing:border-box}} +@charset "UTF-8";.title[data-v-d8efefe3]{margin-bottom:57px;font:24px/32px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}p[data-v-d8efefe3]{display:block;word-wrap:break-word;letter-spacing:calc(var(--v3af0ffa9) * 1em);line-height:calc(1 + var(--v316cdf92));margin:calc(var(--v3ab99b0b) * 1em) 0}p[data-v-d8efefe3] img{height:1em}.full[data-v-d8efefe3]{display:block;width:100%}@font-face{font-family:FZZCYSK;src:local("☺"),url(./popfont-WaOB0hHG.ttf);font-style:normal;font-weight:400}@font-face{font-family:iconfont;src:url(./iconfont-PstzbNMW.woff) format("woff")}[data-v-dd7cfcb2] .iconfont,[data-v-dd7cfcb2] .moon-icon{font-family:iconfont;font-style:normal}.settings-wrapper[data-v-dd7cfcb2]{-webkit-user-select:none;user-select:none;margin:-13px;text-align:left;padding:40px 0 40px 24px;background:#ede7da url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=) repeat}.settings-wrapper .settings-title[data-v-dd7cfcb2]{font-size:18px;line-height:22px;margin-bottom:28px;font-family:FZZCYSK;font-weight:400}.settings-wrapper .setting-list[data-v-dd7cfcb2]{max-height:calc(70vh - 50px);overflow:auto}.settings-wrapper .setting-list ul[data-v-dd7cfcb2]{list-style:none outside none;margin:0;padding:0}.settings-wrapper .setting-list ul li[data-v-dd7cfcb2]{list-style:none outside none}.settings-wrapper .setting-list ul li i[data-v-dd7cfcb2]{font:12px/16px PingFangSC-Regular,-apple-system,Simsun;display:inline-block;min-width:48px;margin-right:16px;vertical-align:middle;color:#666}.settings-wrapper .setting-list ul li .theme-item[data-v-dd7cfcb2]{line-height:32px;width:34px;height:34px;margin-right:16px;margin-top:5px;border-radius:100%;display:inline-block;cursor:pointer;text-align:center;vertical-align:middle}.settings-wrapper .setting-list ul li .theme-item .iconfont[data-v-dd7cfcb2]{display:none}.settings-wrapper .setting-list ul li .selected[data-v-dd7cfcb2]{color:#ed4259}.settings-wrapper .setting-list ul li .selected .iconfont[data-v-dd7cfcb2]{display:inline}.settings-wrapper .setting-list ul .font-list[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading[data-v-dd7cfcb2]{margin-top:28px}.settings-wrapper .setting-list ul .font-list .font-item[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-dd7cfcb2]{width:78px;height:34px;cursor:pointer;margin-right:16px;border-radius:2px;text-align:center;vertical-align:middle;display:inline-block;font:14px/34px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}.settings-wrapper .setting-list ul .font-list .font-item-input[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .font-item-input[data-v-dd7cfcb2]{width:168px;color:#000}.settings-wrapper .setting-list ul .font-list .selected[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .infinite-loading .selected[data-v-dd7cfcb2]{color:#ed4259;border:1px solid #ed4259}.settings-wrapper .setting-list ul .font-list .font-item[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-dd7cfcb2]:hover{border:1px solid #ed4259;color:#ed4259}.settings-wrapper .setting-list ul .font-size[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing[data-v-dd7cfcb2]{margin-top:28px}.settings-wrapper .setting-list ul .font-size .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize[data-v-dd7cfcb2]{display:inline-block;width:274px;height:34px;vertical-align:middle;border-radius:2px}.settings-wrapper .setting-list ul .font-size .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize span[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize span[data-v-dd7cfcb2]{width:89px;height:34px;line-height:34px;display:inline-block;cursor:pointer;text-align:center;vertical-align:middle}.settings-wrapper .setting-list ul .font-size .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize span em[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize span em[data-v-dd7cfcb2]{font-style:normal}.settings-wrapper .setting-list ul .font-size .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .font-size .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .read-width .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .read-width .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .more[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .less[data-v-dd7cfcb2]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .more[data-v-dd7cfcb2]:hover{color:#ed4259}.settings-wrapper .setting-list ul .font-size .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize .lang[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize .lang[data-v-dd7cfcb2]{color:#a6a6a6;font-weight:400;font-family:FZZCYSK}.settings-wrapper .setting-list ul .font-size .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .read-width .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .letter-spacing .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .line-spacing .resize b[data-v-dd7cfcb2],.settings-wrapper .setting-list ul .paragraph-spacing .resize b[data-v-dd7cfcb2]{display:inline-block;height:20px;vertical-align:middle}.night[data-v-dd7cfcb2] .theme-item,.night[data-v-dd7cfcb2] .selected{border:1px solid #666}.night[data-v-dd7cfcb2] .moon-icon{color:#ed4259}.night[data-v-dd7cfcb2] .font-list .font-item,.night[data-v-dd7cfcb2] .font-list .infinite-loading-item,.night .infinite-loading .font-item[data-v-dd7cfcb2],.night .infinite-loading .infinite-loading-item[data-v-dd7cfcb2],.night[data-v-dd7cfcb2] .resize{border:1px solid #666;background:#2d2d2d80}.night[data-v-dd7cfcb2] .resize b{border-right:1px solid #666}.day[data-v-dd7cfcb2] .theme-item{border:1px solid #e5e5e5}.day[data-v-dd7cfcb2] .selected{border:1px solid #ed4259}.day[data-v-dd7cfcb2] .moon-icon{display:inline;color:#fff3}.day[data-v-dd7cfcb2] .font-list .font-item,.day[data-v-dd7cfcb2] .font-list .infinite-loading-item,.day .infinite-loading .font-item[data-v-dd7cfcb2],.day .infinite-loading .infinite-loading-item[data-v-dd7cfcb2]{background:#ffffff80;border:1px solid rgba(0,0,0,.1)}.day[data-v-dd7cfcb2] .resize{border:1px solid #e5e5e5;background:#ffffff80}.day[data-v-dd7cfcb2] .resize b{border-right:1px solid #e5e5e5}@media screen and (max-width: 500px){.settings-wrapper i[data-v-dd7cfcb2]{display:flex!important;flex-wrap:wrap;padding-bottom:5px!important}}.selected[data-v-a892cd6d]{color:#eb4259}.wrapper[data-v-a892cd6d]{display:flex}.wrapper .cata-text[data-v-a892cd6d]{width:100%;margin-right:26px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cata-wrapper[data-v-6cab38af]{margin:-16px;padding:18px 0 24px 25px}.cata-wrapper .title[data-v-6cab38af]{font-size:18px;font-weight:400;font-family:FZZCYSK;margin:0 0 20px;color:#ed4259;width:fit-content;border-bottom:1px solid #ed4259}.cata-wrapper[data-v-6cab38af] .data-wrapper .cata{height:40px;cursor:pointer;font:16px/40px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}.cata-wrapper .night[data-v-6cab38af] .cata{border-bottom:1px solid #666}.cata-wrapper .day[data-v-6cab38af] .cata{border-bottom:1px solid #f2f2f2}[data-v-fff9fad7] .pop-setting{margin-left:68px;top:0}[data-v-fff9fad7] .pop-cata{margin-left:10px}.chapter-wrapper[data-v-fff9fad7]{padding:0 4%;overflow-x:hidden}.chapter-wrapper[data-v-fff9fad7] .no-point{pointer-events:none}.chapter-wrapper .tool-bar[data-v-fff9fad7]{position:fixed;top:0;left:50%;z-index:100}.chapter-wrapper .tool-bar .tools[data-v-fff9fad7]{display:flex;flex-direction:column}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-fff9fad7]{font-size:18px;width:58px;height:48px;text-align:center;padding-top:12px;cursor:pointer;outline:none}.chapter-wrapper .tool-bar .tools .tool-icon .iconfont[data-v-fff9fad7]{font-family:iconfont;width:16px;height:16px;font-size:16px;margin:0 auto 6px}.chapter-wrapper .tool-bar .tools .tool-icon .icon-text[data-v-fff9fad7]{font-size:12px}.chapter-wrapper .read-bar[data-v-fff9fad7]{position:fixed;bottom:0;right:50%;z-index:100}.chapter-wrapper .read-bar .tools[data-v-fff9fad7]{display:flex;flex-direction:column}.chapter-wrapper .read-bar .tools .tool-icon[data-v-fff9fad7]{font-size:18px;width:42px;height:31px;padding-top:12px;text-align:center;align-items:center;cursor:pointer;outline:none;margin-top:-1px}.chapter-wrapper .read-bar .tools .tool-icon .iconfont[data-v-fff9fad7]{font-family:iconfont;width:16px;height:16px;font-size:16px;margin:0 auto 6px}.chapter-wrapper .chapter[data-v-fff9fad7]{font-family:Microsoft YaHei,PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,sans-serif;text-align:left;padding:0 65px;min-height:100vh;width:670px;margin:0 auto}.chapter-wrapper .chapter .content[data-v-fff9fad7]{font-size:18px;line-height:1.8;font-family:Microsoft YaHei,PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,sans-serif}.chapter-wrapper .chapter .content .bottom-bar[data-v-fff9fad7],.chapter-wrapper .chapter .content .top-bar[data-v-fff9fad7]{height:64px}.day[data-v-fff9fad7] .popup{box-shadow:0 2px 4px #0000001f,0 0 6px #0000000a}.day[data-v-fff9fad7] .tool-icon{border:1px solid rgba(0,0,0,.1);margin-top:-1px;color:#000}.day[data-v-fff9fad7] .tool-icon .icon-text{color:#0006}.day[data-v-fff9fad7] .chapter{border:1px solid #d8d8d8;color:#262626}.night[data-v-fff9fad7] .popup{box-shadow:0 2px 4px #0000007a,0 0 6px #00000029}.night[data-v-fff9fad7] .tool-icon{border:1px solid #444;margin-top:-1px;color:#666}.night[data-v-fff9fad7] .tool-icon .icon-text{color:#666}.night[data-v-fff9fad7] .chapter{border:1px solid #444;color:#666}.night[data-v-fff9fad7] .popper__arrow{background:#666}@media screen and (max-width: 776px){.chapter-wrapper[data-v-fff9fad7]{padding:0}.chapter-wrapper .tool-bar[data-v-fff9fad7]{left:0;width:100vw;margin-left:0!important}.chapter-wrapper .tool-bar .tools[data-v-fff9fad7]{flex-direction:row;justify-content:space-between}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-fff9fad7]{border:none}.chapter-wrapper .read-bar[data-v-fff9fad7]{right:0;width:100vw;margin-right:0!important}.chapter-wrapper .read-bar .tools[data-v-fff9fad7]{flex-direction:row;justify-content:space-between;padding:0 15px}.chapter-wrapper .read-bar .tools .tool-icon[data-v-fff9fad7]{border:none;width:auto}.chapter-wrapper .read-bar .tools .tool-icon .iconfont[data-v-fff9fad7]{display:inline-block}.chapter-wrapper .chapter[data-v-fff9fad7]{width:100vw!important;padding:0 20px;box-sizing:border-box}} diff --git a/app/src/main/assets/web/vue/assets/BookChapter-Bydi3OgI.js b/app/src/main/assets/web/vue/assets/BookChapter-Bydi3OgI.js deleted file mode 100644 index 13e9372f0..000000000 --- a/app/src/main/assets/web/vue/assets/BookChapter-Bydi3OgI.js +++ /dev/null @@ -1 +0,0 @@ -import{d as ce,a4 as Je,U as Fe,a9 as Pe,o as g,e as p,F as se,h as t,z as K,R as le,u as a,aa as Z,C as l,M as D,ab as Me,N as be,y as Q,f as H,ac as Ge,w as z,ad as qe,ae as Ze,H as fe,af as Le,A as Ye,g as q,P as pe,a8 as Re,n as R,ag as je,a6 as Ke,ah as Xe,V as _e,Q as De,a7 as $e,ai as et,aj as tt,c as ot}from"./vendor-KSDcS24u.js";import{u as me,i as Qe,A as ne,_ as Ae,c as Ve}from"./index-ByFGW78w.js";import{u as nt}from"./loading-C4J6hIxs.js";const st=(c,s,d,f)=>(c/=f/2,c<1?d/2*c*c+s:(c--,-d/2*(c*(c-2)-1)+s)),at=()=>{let c,s,d,f,n,w,m,C,v,F,P,x,S;function V(){let u=c.scrollTop||c.scrollY||c.pageYOffset;return u=typeof u>"u"?0:u,u}function U(u){const i=u.getBoundingClientRect().top,A=c.getBoundingClientRect?c.getBoundingClientRect().top:0;return i-A+d}function h(u){c.scrollTo?c.scrollTo(0,u):c.scrollTop=u}function y(u){F||(F=u),P=u-F,x=w(P,d,C,v),h(x),P({v0e306947:C.spacing.letter,v3ff2c955:C.spacing.line,v5b1d64ad:C.spacing.paragraph}));const f=me(),n=l(()=>f.config.readWidth),w=l(()=>f.config.fontSize),m=l(()=>f.readingBook.bookUrl),C=c,v=/]*src=['"]([^'"]*(?:['"][^>]+\})?)['"][^>]*>/g,F=i=>i.replace(v,(A,b)=>{if(Qe(b)){const W=ne.getProxyImageUrl(m.value,b,w.value);return A.replace(b,W)}return A}),P=i=>{const A=i.match(v)[1];return Qe(A)?ne.getProxyImageUrl(m.value,A,n.value):A},x=i=>{var b;const A=(b=i.target)==null?void 0:b.getAttribute("src");A!=null&&A.length>0&&(i.target.src=ne.getProxyImageUrl(m.value,A,n.value))},S=i=>{var A;((A=i.target)==null?void 0:A.tagName)==="IMG"&&x(i)},V=i=>i.replace(v," ").length,U=l(()=>{let i=-1;return Array.from(C.contents,A=>(i+=V(A)+1,i))}),h=D(),y=D();s({scrollToReadedLength:i=>{if(i===0)return;const A=U.value.findIndex(b=>b>=i);A!==-1&&Me(()=>{te(y.value[A],{duration:0})})}});let B=null;const u=d;return Fe(()=>{B=new IntersectionObserver(i=>{for(const{target:A,isIntersecting:b}of i)b&&u("readedLengthChange",C.chapterIndex,parseInt(A.dataset.chapterpos))},{rootMargin:`0px 0px -${window.innerHeight-24}px 0px`}),B.observe(h.value),y.value.forEach(i=>{B.observe(i)})}),Pe(()=>{B==null||B.disconnect(),B=null}),(i,A)=>(g(),p(se,null,[t("div",{class:"title","data-chapterpos":"0",ref_key:"titleRef",ref:h},K(c.title),513),(g(!0),p(se,null,le(c.contents,(b,W)=>(g(),p("div",{key:W,ref_for:!0,ref_key:"paragraphRef",ref:y,"data-chapterpos":a(U)[W]},[/^\s*]*src[^>]+>$/.test(String(b))?(g(),p("img",{key:0,class:"full",src:P(b),onErrorOnce:x,loading:"lazy"},null,40,rt)):(g(),p("p",{key:1,style:Z({fontFamily:c.fontFamily,fontSize:a(w)}),innerHTML:F(b),onErrorCapture:S},null,44,lt))],8,it))),128))],64))}}),At=Ae(ct,[["__scopeId","data-v-4c4e6646"]]),dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXr5djn4dTp49bt59rT6LKxAAACnElEQVQozw3NUUwScRzA8d8R6MF8YMIx8uk47hDSJbj14IPzOGc7jPLvwTGg5uAYDbe2tt56cLtznvEnS6yDqCcEaWi91DvrbLJZz7b1aFtz1aO+2OZWvn+/+4CHeB6BMYaqBLfjPNRY6RFT2JJYby+uAk4WUTrtlmJ4hgPYb2q1XGDQjaK8pgJHvqNaAX+KyuIkDXpgQinb46nOulnn4b5laUHTxLfseeArAoNOeJlOIjdoal0n1FA7tKFv5roK+YaHOqP3P0XyKHPHY+MhTRe5uCZnKhtJKw2eSrSoBDPLtpZuNcFNJcFyiCMxOaaHIfXz1e8HQbWLySrBQ4x0x1qlhnHlnz2HQEC6TNb0gTHXa7IKhcaHqkE015hk9whA0YeWiLIXf7Fa2CZo3DjqjB4tTuF8jIcbfcEx5z/w4sXpQhXW+ju0cqh7icTFmRMaG+v6CIvTjcSpHcH8JEsF3EPh3fRthYdVLLgI2fWXm85/pGFE4l046s70L+yKCcirGFR+jbpy3kMmiCGHrSezVONsn1RBixncyk2PcVWk7DlgxHo8iZwDyq5uAUD854dZhdIFYzKoQig2haUKi1lVufz2RZUZPZ41n/hrOQB6h0Hhg8I367FNoEHgeM/KY7szSeQwD8q2WE3HM35ZLl0K1MJiOtHIkBclRQUwZnyOWcNsRQQgVLj1PSqkjF9DsoOSaSg3iinKzvfmgsNFFfpP/2T3GLGvL4fHEfwIX1sVvXcPqLztehWGcfn9nI2U9nTfCgJPe/jFPLZwgVEzimBgAm0VIyK2tt1cE/AzQdLK+SxLSQ4aDCZnnId94OG2S1XwvnTbNk/ZnhyRCQT+sZM6z9g6LXL1BOBe+zJySiFkHAINCtnQokbCJ/apCv0foqPiZVfhpywAAAAASUVORK5CYII=",ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEX6+fP8+/X+/ff///kbczPAAAACeElEQVQozxXHQUgUUQAG4P8936yzs6VvZNZmN9QxVxiF9OLBoOjtOC6rQq6ygXjI2fCQBdXBg4egtzFGdqkoI+zgBFbqkm3hQSxhFYLotOcubeKhOnVYoqQy+m4f5g5TvpX0xHLbLY9j8SMhJp+Jk4LfAUS2kVRIjILmnwGBTX42PhCVlDJQkIiy2nWAvaJ1h+oFIpJ0hMSYVbyyrgDWshcMpMyL1brPDQKWmduO+KTJ6XeXAMK9Yc3FpD7atyNwg6kt5XgFpLPhjUTFSYVn2abDiugGShwD8JTVRJVo/2ecuKtRb/qc4BK+9TboFfokog4T2Fn6Oqdnsjk90NMS76Rji6E0NmwkPBAZ4Xbkw8KoDAkAbEhkc78e9omxxgxg6qa5HvMv+UZbCV0qmHnSHKl5TxeA2XTCGWekR581mwC5crBH81PznASqB9va3TbkYAjJPLfg5uBfXaJgIgIBv9eessRIhxe7PA7kj6uUMeMaQ/OEQOYRaaHlqH2Gxwsl6E/pwVY5FH7uCypBZPKvDQyVziYBrAkMURe2MOOOxG/eQpp5PF+bFzUV5HtPj9GeiVSNZDELleifYTp9NAjsoiXg4cW+4ZORkdSMB/B74aAdjhsVakhgkugsbmqcDSLEoWp8zRjrux3tli6Q5uM3E+maT99Wy0RiP7tboiuRZle2c6CYeL2kcUc1KvPtQKucogMadKVTQOJYCeyCYlhQQ/Q7Etfd/vBygy9iqy+LyHeF46saCYvW6ingsbA9RBWtdi8GgUXW+oQx9/wP6bAAX1TWeV+CbShZDlQ9xT6SoSxZmKRAkmXb60kzEzkRF+Ccb94BGspGJoN/UzmyR4wjXHAAAAAASUVORK5CYII=",pt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAATlBMVEXdzaHh0KPgz6LdzKDezqLczJ7ezZ/fz6Dcy5zi0aXdzZ3fz6Tfz57h0KDg0aLcyZrg0KXi0qPfzZ3j06bh0qbdyJbfzJrhz5/cxpLZwo0vDconAAAFn0lEQVRIxxyPW5LjMAwDAT5FybLl2JnM3P+i6+wXWVC1GoQGaD0h4XM3Q5o4T0HgABHBi6pZ4CDXXcUOFd6VhqC3Kch4EI8w9oMXwvU6m5LOOvcxKMOhuu8i5+5cMjcgb0t4F2uvOoeI3/MlT4IqsbtM9UG2AGSXUOsxzPevnXzK1CSHytZLvx7VdQmUcJsJCxJh2nmHW12Qod1qPjt8pih47uQ9aGpoNWF+yElCt60oH7vdIU/MnlRPSBLC/VwqxcKR8PFqnADN9ih5ufqnTlG9KwCofvs7kKYqOPHTNMQ93j9qNImFw9vjHPZ0F1m8hUUVB/Q/TrRYDMXr9++APMFARAt6sPh6wVAXzxUGhZsFUwCNfPZ8/72TAHebAhvuOuT3gO1Vn5d9Jd5sBRkg0p2seL9B7ulkjFJFIt9HPpLzdSzzMP3UcodAfMqC6pBuET2heHK1itZf1GZ1bi0BwOSxiCS8f/JBHMPMM4XCu3Mt1uz9lJbDJRqsKDZuikzkvskQEz6hanfDfO494azY5JpqPqOF1RhxD9XYEdaNxiqWqakKgmPfmrsta8KAiwF4HBxGVUJAgeSqQaiRRZJ7D2jedhw5t1CIAKxag0CBA60BpoBE6DcUi8O5AuM4pLfN0kHLmeu2B4e6HofqbgxsTWUw3PAODqa1oDtyzgXBlusi1KFdclMPE8O3jvLJ8RNi5/RxDQVzVmXA233XQ4KummunfxvLOZo+iH37964YjP06995CTdu9hsvErqJNzmf4wTrZ5DL7+qW9EoLnadrx67b8dUtrJnBXaT1N1uvPaYRKpWkq52xNsMN7vv4Sdryt/f4MhQoMCKnvVxikai1CQ6ZsnwJDc8+3Y/z8HcfvYQNq66pnAu1Hwa+3KNSwbNu8h3nDPqTl9fl7tx8fBhFfdS0o0F3JUKEZtZG9b/LZEM95lzaR30OnWPzroMxyZYdBIMoMnpN0J+m7/40+/P4soFSUjgzE7yY5zrMJuoZv0CmpVguYx1pprfb5HOviRVhHUVi/352shxCYrYBZxGtVaxiAz/MsaGSIsB7R1t4zJXH//n7RTTQQwxqcGEqEvklFHUgiO2GvJV+jAIPR+N29usWDoiSOVrN3XuqT1egQJAAU9EwslVJC8u0rGcy+WPqktJhjfMpatIG6CDAb0v5H34MGKqiVRue7GGLZ9Otxtt4JIrAhxBDwDuqI9JavcO0A7GlqFt219tH/bln9jBXzaKWAEqJV0CBxs5TwM8EvUPHaa8S86vN303MVWOsl3goDBHPWSoQ9c0kQmCKljfsKNH1+ofEOHW8a9a7glZGS8fPieL/SRSs0LAhI4FDTnXs1QYtubv2+IXPZpHB4bhivRexBkYKsSrYXNjvMUbVXpVJ+N6haV72c1k2zrnv5IYBMJBYTSZx0KTkoM3vY93rU/qs7zHplc/3d2ACadhFWByrn9LUk2IWb5JywvawTQc3F0iz+lgsBmInAIemBJtft2plKIlAFOgcroigrG2XlDsAzywQECNyaI8yr2ogoh7D4qJOYmZBzQgoZAM1PAcB8sDrr1uE5CDMR+nWSSVUGUCHAs8Vd21HOE0FzNj37pX0sLp9p3K8k++xxpkmzDxK64rmTSJnDUuIgTeslui6lg92jonZXI4jqNiUuzN4IagcKMjCniMGCODoo8T4tGDprn2hRww+NrnYiCwokd9iiWrkmbRfXYGLAoZrjO1lVQKExjUy5fIkgJURmz2uGFdASwwlWx5gDVTMK7hP6ISRVsFbYNmqtZL9MQtio285PaekyzDhZmtdexCYB0SZcTmBdhvdbmAEonk8hwcHQuZN1kVqrhyKoHHsnQhQAjF7SG533Da2S4LGjx1LoZqp7XeKQLDUBmYmydG0NQHpMeR5lRIRQc1PQ2ASMQflF4YBDMt0/GFlEHeRwCcEAAAAASUVORK5CYII=",ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAALVBMVEXx58b168ny6Mjz6sn06sf27Mvw5sTz6cbw5cLy58T37svv47/168v37s7t4Ltrv0//AAAEjUlEQVQ4yw2Ty2sTURxGf3dmOqmPxb0zmaStCnfmZpL6gpmbxIpUSMZGrSJkxsZiVZimNVaqMklrUnWTRq2KIDFWWx+IFrIRFxXEB4KIgqu6EBdu7M6FIPg32PW3+DhwDmBaYrK56KP4HGIsvg/uvOV0wK+qgBMlO9BujuH4DSJlOseqV5a/BEF97gt0ChyIPqBhXI9BtqtIB8vJB/LdCQ3OVjaLNX0g7+OmoI4e7nkemAqX6o8vg0yyQAyQS7IfgvFbI+6QyI3R4KELxw7kwM2ooQfyQigYnwY5MZbMlHI1DvnQVCoVcrt+R+bO7vPDif3ybNajwqAAe443dpfDsPt379VMWZzGRuqM79mQF+DUz9nt74bQ8J/O80MtVR51U02JKKmTCvTzLVf+vuxP/aHnPo9+2bW+zVsJ0Y630/CrfzX+b+UL+7O68Rczv+7lrMh5etfKXvhc2rk6KforxuoO2xB2tcxKfeXHt18rHOiHI/0RRjW/YGRDkHiwo3nzqL60o58C/bgRuaj7vk+QOwOhpnFNdjuWpKMCGP8Yapu9Ty5FTHKQLGSEFikjd9ADwP9ciaNNjc5qMH6w50AF/LKOsOYqsOG9GjKgc7ZXolqntm6fysJ6Ma6ll2CiqmOgE6O7x1wXExklbeqMYcwsmJmOoigt8SBg2WfilDSsAZJcBxDcrqtBXzFQJqZNHfscyIhoZlygAtyYAceah+elrFbI+46gEHDGiW878Kj7JpWyfhg6iyRMymV1MKBSeVpfgLHIohyTojI6sRyK1VpcqzVZeEBLOnA9unhGKUXPJDYtV9Dxuz4iA5xSkSWhCJdAiJR9PHlvfvbntbrR14FDqUNRAYDJmSnv3oKxuz5+7fiblgVJyYLTbgUM05P7LESkoXvyWNfb0aUU6FZizgQIa25VqKQZqFrk6v6BsqqIHlQmkQ9KrBhkC20/DrFsAFEEYLjM+lj2wYHXCwnNvZQR42XJ2iVK+UBXnI+OBE6oXpUUHiQ1yg0MhA03iwGbnOdQYc1CMiPIPQrCQJFH4L4BMFktAtKd9PN5gnU2Gra4KuK+V+mjtBRpAGIqDVe4wnSnajiFGO5d7smvhVQEMEYwqshrENIEaY7YeblJYtsb3QhAHWZCEKK67swwPMKw0If1Ta+6DgHmlgPzcUTSbi3rrv1Y64/BYEMPQ5SDHUOR022B4QRF6xLUPAaPX/V4IDI5N2BMwx4LqO1uO4j6uW7NvM7lATqGAxY/ZHVgoGZbu7SvkNR75x6qGSB23FdouENVwN7sCbewTdsXGrrnQ5ZZKOCOFtMTIzxlPu6eYmtL+nMFmoK7OeXajn86r9sqWbfmvHC4IagE5qfCPGZvLSq5F55hHIxJFa4/vRxHBlz0og4TojU1l/MOHJX17lybdF0mQhFO44JYUNt3UA473IXw/iPfDWtKG5oFSXIF5iU/VnyDSjxxeDk3jAXRyVyGTNB9FxH9qcFDNJpVbt2y9LytUXkK7Py6+z1RezHQqnoY8XcLimmd8dCnBhQCuaGpJCq3SoIlmYvLz8UkWhJw7T8k+Db/DYEKwgAAAABJRU5ErkJggg==",mt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",vt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",Bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7eHl8eXj7+Pn8+eTbH1KAAACPElEQVQozxWPQWrbQABF/0xn3JFKQRTZOIuUsbCCbOgdRoYEOauxkYPcTRyTlPQWIxEltrsRwQ6hK9nEQek6F+gNTE/Q3qLLusv34cN7SH3mFicdYW4gNIhJWXPBRVXzjcFD0IqeU4o4PRbAIVjyico0vJpIifqPfL80QN9DAQY5ucRHE/hpHxBldXe9GilaHKcKMlj6pho2zXgkNdBl0oJ8kiF1DSiJF1ZHBJkQr0Dbux/5I42Zp4cFahJDFGeW6/QjBwmFY/Q7vZ2SnoOdW2parv/Cnm81+m0xrEfiVXQ3W4nOXIqVYi3l6AAQBwMFkViVBANMto4enXHPNTkHBB0oVj4r5vHzCWayrgBvxtygDlDB2CNDjd80ZInY69aKVYZcfJ8DW+fWuc+syEODALx+ojqoafHsthTI+ZW27PGpIeo/cR6YKcbqIuIFhHmBrzAovzIOOJk1ucvcDzrMRYGVBH2yvcAOf0KiKwfRovBI3tm/kW1eemtfNWwIIXE2mJNhvoszfmMBfRCv0OPwd2321uDW3nx2q/BDxFVeoN1g7a6Im8yRnoawa8kbdXnU0cHeTMxKfZGlJgvLb3sKsxgglQnDdAfvj9LUnqWRDo0GiUmPwyU7TAsD7wHeIW3Nfy1qVGKoE9NgJCdYCAexNRob9yCn4DAQmXtQuUtera6bEmTTXhZy6h856xi4mnEl6BI9mfISkLbtJyZIMJIAUd5ZOBEu88KRAk71yxfItj/hpIB0Errv4gO1os4/UICf+o3kkqwAAAAASUVORK5CYII=",kt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX0/PTx+fH2/vbz+/P4//htSO9OAAAC5UlEQVQ4yyWT0QGjMAxDZTsDWKQDmJQBYrgBUsr+M517x0+LRWw9CyA+pC1YzndrMgHaNXVKQ+di13Of1qbur48nWhuRjj8i6ON8e7pNm7zyag/DBTfS9Z4Hup1fUuXMKY4HEE8QOHCByXkIkl7lDT239RtL9quO4JItmmhOAHXg45QuYKrQFLyGJcRvaTw6kQqZy6mkR6JAPFH/XqsQjEDRmUOA+MNLHGyMUT7AHApoAhjgjIJmCxy6XHdf648AWCdGe57IUDazCeTImQOY4/z+eVYVX2IjOw9RydeAeJwl79iGi4HpgQgHEchWraUZLtayu8scq0lHHHUKMY3Ml8hB7CS1jOckDLG9ccgNeX3124phOcjL9fPnWJhTXpLHeG9DRmHnTxHEaHakS2J51lwAJcUraNbuU7q4gMTDQj3Eripc/x+qFM5VEKAB1roQfAkX5/PxqnS2QpOrxfK1Zft0/omV5T+xCSBUAIbEIwUQgvAfxFE1O8dnk233+1UZiqJ1mAbsue6Yt8tF+yOrxC/YrUhzC4qPlE3EbR5hGKhhHdlrg7J9WunV7L7BcYQwAeE59u2tnN1c6gfVYrQiLSZ9OxZdWDXQq0+r0Pbarh3UqGCwauVvbiXuDsNxCtLDdW9rTF8oQYN4EoXXdfmwNguQP26n/tRjDeo+F2W7PjWtfSr6Bn/z+cXOLp4NnMV4RytvSW4B68m+XN9XfZTFGhO/S+cHTuTqZDC21ccA0N7QsePALaDQC3D1f94U9CWo+aq6BjB3v0rxIimBM12296M3aKPHjXLQE9KQKH4By8RHraJ3AgVto2r4xdFqlaPaiAHLl1ZF4P2pI6cYc+K8UZdcmxy7lqGc1IoPxLmIFuIeEZ6j2sQT88muEg1zwrEDTIX5U/ZmcsqfgVlBumiBLF4sAyhf9BFlXOPKLZ4H0iFb3VoHrGhtHTldKrOvP2/reu2zfV8CXMPqzRdlgd0a5eI7WwB/AYcgavcqxXWEAAAAAElFTkSuQmCC",ht="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXM2t7O3ODQ3uLR4OTDp25yAAACdUlEQVQozw3P70sTcQDH8c/3/M7NG+j35mnHwjwh4hRy/QFK3zvPNbeIG1koPZmxfj2IDAwihL53zj0JYisfmEHcZJZOiBUG60lZiI8T/ANusuftgQ+kCPIPeMP7hS5mUrV9c1g6MQCAEZ8tDLHwofImAGRlX+SZK3Vu9rRRPuO4PK6/9nA4GIATsxlODS+rdCMhkAZivpYV0LWoQHSLSA4NfUg+6mY+7BKL2++F9LvnrBDYm6JO9i/YO3i/HJTGQ4pdIV82TbEDFG6vGYCd4wZchgK5J2CrKTLE+Tx0v+YGlIbdWJFcQl4ptBN8fUJQN1MCJLcZLYwUVVo+famGGty8EXJF5ofOEDzcodT3/Fb0I5sHmc1ZG7CcSl8COgxlXx09jT05OafjCZLIHJhGIaU6wDZHsuMQ41wbdjmQXbhKnMq1zlXSYrjCnyZblqexA7fC8RxS74tq2P3OxSQwTuJSApH8OZLzBBp1pOe0i3rdyDUA47GySZ31YmC4EQYSXvFSvieORGBxXF9aeVtUWKGS9WMC4Z9Y2uXnJ2nCUXVMbPOYqNYNmGWWQ7Evr+BWC+a0JAMTImcq/S4Z5INdQMeuOqDIMa9beilxfA60iC6sP1INcPDpmHBW8drZHNmqwyddJtVje9q8WGUgWAOzmbU4FCQBFi8B2Wk6pickBnYhJMenmJGuRmtt2IoKq9NuFGbNFR99sHnvrnLsLysKANDIsxbp6RNMAsoDSKuRpMwZbAAzI68QatIjmZ0aImyM3O8/4e2MNlOHZomFsa/fLDsysliHS+nlYLQJMnynxrH8QO4PaAV2Li8B/+52UgeGIVNFYf8B1XG/kFSmLcUAAAAASUVORK5CYII=",Ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7vLf7PDj8PTm8/ecW+lZAAACZElEQVQozw2RsU8TUQCHfz3fw7MS87jeI7DdmSMpDEoHE+P0HqGkvRR8vb5XC4NpN2RQZqcK9xJkwtriekcggerC4OZADDiT+A+goxv/gfwB3zd8H/T6vYF/pTZkCSmDNd3CBEtmZJP4N+CvvhecDvmntKsvwB17rpbIRTLOEoYkj9KZzRUuJsuBQFwgptyJ3Y7EL4V+ud5LO1UnMeQSSObqisiISZkbQBlliP3qWSk3GPQXjxv6VF2BTDO4ySx1zhuJXbA2wBNJF4t5vH9keg6wu5NvUpLtXrZ3OHC9ZsgVcZdOl38PM1y/L6m8GRiErj4AqezUjHGatGGIgs5NJDHh8Ua1IuB4035haVT6SaYWMoQ0eJ3rB/Gpnr3fB49YAy1Wa21YKqAHOmAveVw6CCMGMZh5bGtVI7jnZaiQNbta1Z+285oSoKoRbta1KZ/1bBdKH/RIxv2pRVpkoCmvpr097RWoo0CpMlTWllIenSjECU8mV43mHx2fIRfH/pncrJm3+58BWdbSqCS07/yiQnvHiCG4ZPGRFeAtfreoOubyctzHvLNHhjNvIhukxQzjU5O6QdOEzUp1Ef4d98Pxz+IPYX0bcpnT52dbedfz8y7C4R89RV+MjJkuCCx7mWDt4eyK/62lQB55xXGJK7p8u6bgRv4hVHylelYGGFs64W94tng8sAIVqSRJBpqRA9rFvAysS+9ak8s7557pz5HR4qhCRmWgplpTRJ+bhYfSAMO8/YBucWPuSdmFFtOnuWqvV2NbF6CJnbhNDzEZ/T0XSDrUydzkZCG1z/oIEyUFYxW/KPXNfwopuHDcO04UAAAAAElFTkSuQmCC",yt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",wt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEXm5ubo6Ojp6enr6+vt7e1FnZagAAACrklEQVQ4yx1SixUbMQgT3AKAFwDcAfzpBN1/qMrJS5w7bCQhC6IGSUGYQJd6Ox9ZPXi1AGJBavhUTT0JjYPGAab9WcDYIxsmlnxkayX8mhxCmKHA75az5cfRbWybEExiu08xDSgGym0mwuf3j4SvHeQxDJJzh2zp4iOlrD8iOb4SXyC1wiOLRTcnrje+nGamFeXVKWkmzbFIPChkmJ6Fg7mBpV8n+JGOVCd4jv1thThkjeQGNeafpeV3rsEWLfyWc8tC9jOv6FQ8rRzHOOVB+jCYEUAJpDvh8xHNFm/Tm5p5lw94Pp3NhtKEfQsGvnXhowdZE73hPwxKvjDd4i4PCdd0fe3W5fO8ktAsUAacLgstpUw60JCiPLg2XpkgiqPIYYXJd9ksGIT3q+LlevypzItvO+s0F1dBzVr2QDMUkYmuyGcrIS44mVJ7JVKwQXjYuBYp0Uetecbswzsikzu3gUR8bJC/C8Gd/NAzI/xdUGOYQQHDZ8X2d5XuzGRUiXAi9si5CRgoiToRZPtzLJkd0FUHRHZwJf0BHT1sE7gcnh0jmKKlSSF4/GBirGk5+K9NKlGDCfc9JtPhg78JdabH0YQRKNZnJ8tFnPfXHJb4xum1TTCeEmyEdbyEJLjznMLHuFD2Y9NEkSleIBs7SiCbblhgctVi9ch++kDYnn1C9DA5TvdPsToXM55wI6k+8eKT1blwPTqWb5CFJ+7dTBmab+KHy+xwNtItXhZNSpHD2fxnynrxG3ZBKRe8KBpXk11AnadlccEhr9w1nBBvBylNkv7A8eqpGBCDqhitmWQXBjjdS6idr/QjXWLDeMzMbVDoJuM8zN7WenMZWXgZ2vX3F01J3jHZbwk1LRP+DWEvDJtOUoh/AIaBUz5VpWyhuyx4QtgL/NmgC6kM/JvNe+R/C/5aL7BKIbYAAAAASUVORK5CYII=",St="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAElBMVEUQERMODxESFBYWGBkaHB0eICLm6ozJAAACkUlEQVQ4yyWTUdLbMAiEASfvoOkBkBy/O5keIE0v8E/uf5h+68qZWALELgu2MG9PP9qyvCzTVhrrsPGOCjvTfXQZvtp/W3Gy6LCITqs4q/DZ+KYl76zKzHVYpY2wNY27nqN1sbLGcrLH3/ENH4oWlGctsDu8AO+HzTLlsYdh8MzP1m6YDMz0ACfcimvakBj+mwO/+5Uta5teOD379sxK1fUxmUhv8MU3jUT5gs26PMephFznkLcpQZ6/dPL9C/GWHcCxDN6oZhD5xBm5qoYBPA+PFE/H1tXDWcWl8TW7rS+4dUzAVy0BIrvC4/HcqW2TkG1HO8q9dC23INAg7NA4AFRFkDTM2lfELPyFzi1VddcpX2z0KjHBUDmdLNJ6dDps4ytrX+FPsZwE31wSL+6OWfHOAJ3+Y0Rk/MiKfmWNPg7oVP/U3Ck9FoCkC2gBpALOiqbMNTkOe8P4FWkTD2Y9Q3+5VmV0uLUJBl68U5uAK2Kl6QDXvLxbwweOL2sixW78uU8p0ysfc7cWrF1j6B1sPJ4WgclYSnJN1bzozrhEcFHmRzBkbJWqqdG+EYJXRFmT5jnLXPUNF6WBdoFbTxYsmDXVLU/WA7MExNc93sJS5hIXDeLxzMScHzdhKvEkibr6cQXYPrmtmTA7JcInISrTzRDvShTdka0uVGrsJAAR6tSn1sKziZtfKVjAxPrJsYgZO0bye+vKTZ/DgoAoLGNO6jYHimZYTL/3pLJHawquJukjBpfz8WOGVSVIWx9ywUfS5iENutidRM4NzkAmxgUSQ68xgNOU+ZLalr4TS2V+D2xqukZig+Z9DilR7Nouzwp1cp/3E5q6Rdlf08obKvAM4qZ6pMr+w3PmQALSSBfjyZn5DwrNRVbywBQiAAAAAElFTkSuQmCC",Et="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",xt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",oe={themes:[{body:"#ede7da url("+dt+") repeat",content:"#ede7da url("+ut+") repeat",popup:"#ede7da url("+gt+") repeat"},{body:"#ede7da url("+pt+") repeat",content:"#ede7da url("+ft+") repeat",popup:"#ede7da url("+mt+") repeat"},{body:"#ede7da url("+vt+") repeat",content:"#ede7da url("+Bt+") repeat",popup:"#ede7da url("+kt+") repeat"},{body:"#ede7da url("+ht+") repeat",content:"#ede7da url("+Ct+") repeat",popup:"#ede7da url("+yt+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+It+") repeat",content:"#ede7da url("+bt+") repeat",popup:"#ede7da url("+wt+") repeat"},{body:"#ede7da url("+St+") repeat",content:"#ede7da url("+Et+") repeat",popup:"#ede7da url("+xt+") repeat"}],fonts:["Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif","PingFangSC-Regular, -apple-system, Simsun","Kaiti"]},Ut={class:"setting-list"},Dt={class:"theme-list"},Qt=["onClick"],Vt={key:0,class:"iconfont"},Ft={key:1,class:"moon-icon"},Pt={class:"font-list"},Mt=["onClick"],Lt={class:"font-list"},Rt={style:{"text-align":"right",margin:"0"}},Kt={class:"font-size"},zt={class:"resize"},Ht={class:"lang"},Ot={class:"letter-spacing"},Wt={class:"resize"},Nt={class:"lang"},Tt={class:"line-spacing"},Jt={class:"resize"},Gt={class:"lang"},qt={class:"paragraph-spacing"},Zt={class:"resize"},Yt={class:"resize"},jt={class:"lang"},Xt={key:0,class:"read-width"},_t={class:"resize"},$t={class:"lang"},eo={class:"paragraph-spacing"},to={class:"resize"},oo={class:"resize"},no={class:"lang"},so={class:"infinite-loading"},ao=ce({__name:"ReadSettings",setup(c){const s=me(),d=je(()=>ne.saveReadConfig(s.config),500);be(()=>s.config,()=>{d()},{deep:2});const f=l(()=>s.theme),n=l(()=>s.isNight),w=l(()=>f.value==6?"":""),m=[{background:"rgba(250, 245, 235, 0.8)"},{background:"rgba(245, 234, 204, 0.8)"},{background:"rgba(230, 242, 230, 0.8)"},{background:"rgba(228, 241, 245, 0.8)"},{background:"rgba(245, 228, 228, 0.8)"},{background:"rgba(224, 224, 224, 0.8)"},{background:"rgba(0, 0, 0, 0.5)"}],C=l(()=>({background:oe.themes[f.value].popup})),v=M=>{s.config.theme=M},F=D(["雅黑","宋体","楷书"]),P=M=>{s.config.font=M},x=l(()=>s.config.font),S=D(s.config.customFontName),V=D(!1),U=()=>{V.value=!1,s.config.font=-1,s.config.customFontName=S.value},h=()=>{V.value=!1,Re.prompt("请输入 字体网络链接","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^https?:.+$/,inputErrorMessage:"url 形式不正确",beforeClose:(M,e,N)=>{if(M==="confirm"){e.confirmButtonLoading=!0,e.confirmButtonText="下载中……";const Y=e.inputValue;if(typeof FontFace!="function")return R.error("浏览器不支持FontFace"),N();const _=new FontFace(S.value,`url("${Y}")`);document.fonts.add(_),_.load().then(function(){e.confirmButtonLoading=!1,R.info("字体加载成功!"),U(),N()}).catch(function(E){throw e.confirmButtonLoading=!1,e.confirmButtonText="确定",R.error("下载失败,请检查您输入的 url"),E})}else N()}})},y=l(()=>s.config.fontSize),I=()=>{s.config.fontSize<48&&(s.config.fontSize+=2)},B=()=>{s.config.fontSize>12&&(s.config.fontSize-=2)},u=l(()=>s.config.spacing),i=()=>{s.config.spacing.letter-=.01},A=()=>{s.config.spacing.letter+=.01},b=()=>{s.config.spacing.line-=.1},W=()=>{s.config.spacing.line+=.1},ve=()=>{s.config.spacing.paragraph-=.1},de=()=>{s.config.spacing.paragraph+=.1},Be=l(()=>s.config.readWidth),ue=()=>{s.config.readWidth+160+2*68>window.innerWidth||(s.config.readWidth+=160)},ke=()=>{s.config.readWidth>640&&(s.config.readWidth-=160)},he=l(()=>s.config.jumpDuration),j=()=>{s.config.jumpDuration+=100},Ce=()=>{s.config.jumpDuration!==0&&(s.config.jumpDuration-=100)},ge=l(()=>s.config.infiniteLoading),X=M=>{s.config.infiniteLoading=M};return(M,e)=>{const N=Ge,Y=Ye,_=Le;return g(),p("div",{class:Q(["settings-wrapper",{night:a(n),day:!a(n)}]),style:Z(a(C))},[e[51]||(e[51]=t("div",{class:"settings-title"},"设置",-1)),t("div",Ut,[t("ul",null,[t("li",Dt,[e[7]||(e[7]=t("i",null,"阅读主题",-1)),(g(),p(se,null,le(m,(E,L)=>t("span",{class:Q(["theme-item",{selected:a(f)==L}]),key:L,style:Z(E),ref_for:!0,ref:"themes",onClick:T=>v(L)},[L<6?(g(),p("em",Vt,"")):(g(),p("em",Ft,K(a(w)),1))],14,Qt)),64))]),t("li",Pt,[e[8]||(e[8]=t("i",null,"正文字体",-1)),(g(!0),p(se,null,le(a(F),(E,L)=>(g(),p("span",{class:Q(["font-item",{selected:a(x)==L}]),key:L,onClick:T=>P(L)},K(E),11,Mt))),128))]),t("li",Lt,[e[14]||(e[14]=t("i",null,"自定字体",-1)),H(N,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:z(()=>[qe(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":e[0]||(e[0]=E=>fe(S)?S.value=E:null),placeholder:"请输入自定义的字体名称"},null,512),[[Ze,a(S)]])]),_:1}),H(_,{placement:"top",width:"270",trigger:"click",visible:a(V),"onUpdate:visible":e[4]||(e[4]=E=>fe(V)?V.value=E:null)},{reference:z(()=>[...e[12]||(e[12]=[t("span",{type:"text",class:"font-item"},"保存",-1)])]),default:z(()=>[e[13]||(e[13]=t("p",null," 已经安装在您的设备上的字体请确认输入的字体名称完整无误,或者从网络下载字体。 ",-1)),t("div",Rt,[H(Y,{size:"small",plain:"",onClick:e[1]||(e[1]=E=>V.value=!1)},{default:z(()=>[...e[9]||(e[9]=[q("取消",-1)])]),_:1}),H(Y,{type:"primary",size:"small",onClick:e[2]||(e[2]=E=>U())},{default:z(()=>[...e[10]||(e[10]=[q("确定",-1)])]),_:1}),H(Y,{type:"primary",size:"small",onClick:e[3]||(e[3]=E=>h())},{default:z(()=>[...e[11]||(e[11]=[q("网络下载",-1)])]),_:1})])]),_:1},8,["visible"])]),t("li",Kt,[e[20]||(e[20]=t("i",null,"字体大小",-1)),t("div",zt,[t("span",{class:"less",onClick:B},[...e[15]||(e[15]=[t("em",{class:"iconfont"},"",-1)])]),e[17]||(e[17]=t("b",null,null,-1)),e[18]||(e[18]=q()),t("span",Ht,K(a(y)),1),e[19]||(e[19]=t("b",null,null,-1)),t("span",{class:"more",onClick:I},[...e[16]||(e[16]=[t("em",{class:"iconfont"},"",-1)])])])]),t("li",Ot,[e[26]||(e[26]=t("i",null,"字距",-1)),t("div",Wt,[t("span",{class:"less",onClick:i},[...e[21]||(e[21]=[t("em",{class:"iconfont"},"",-1)])]),e[23]||(e[23]=t("b",null,null,-1)),e[24]||(e[24]=q()),t("span",Nt,K(a(u).letter.toFixed(2)),1),e[25]||(e[25]=t("b",null,null,-1)),t("span",{class:"more",onClick:A},[...e[22]||(e[22]=[t("em",{class:"iconfont"},"",-1)])])])]),t("li",Tt,[e[32]||(e[32]=t("i",null,"行距",-1)),t("div",Jt,[t("span",{class:"less",onClick:b},[...e[27]||(e[27]=[t("em",{class:"iconfont"},"",-1)])]),e[29]||(e[29]=t("b",null,null,-1)),e[30]||(e[30]=q()),t("span",Gt,K(a(u).line.toFixed(1)),1),e[31]||(e[31]=t("b",null,null,-1)),t("span",{class:"more",onClick:W},[...e[28]||(e[28]=[t("em",{class:"iconfont"},"",-1)])])])]),t("li",qt,[e[37]||(e[37]=t("i",null,"段距",-1)),t("div",Zt,[t("div",Yt,[t("span",{class:"less",onClick:ve},[...e[33]||(e[33]=[t("em",{class:"iconfont"},"",-1)])]),e[35]||(e[35]=t("b",null,null,-1)),t("span",jt,K(a(u).paragraph.toFixed(1)),1),e[36]||(e[36]=t("b",null,null,-1)),t("span",{class:"more",onClick:de},[...e[34]||(e[34]=[t("em",{class:"iconfont"},"",-1)])])])])]),a(s).miniInterface?pe("",!0):(g(),p("li",Xt,[e[43]||(e[43]=t("i",null,"页面宽度",-1)),t("div",_t,[t("span",{class:"less",onClick:ke},[...e[38]||(e[38]=[t("em",{class:"iconfont"},"",-1)])]),e[40]||(e[40]=t("b",null,null,-1)),e[41]||(e[41]=q()),t("span",$t,K(a(Be)),1),e[42]||(e[42]=t("b",null,null,-1)),t("span",{class:"more",onClick:ue},[...e[39]||(e[39]=[t("em",{class:"iconfont"},"",-1)])])])])),t("li",eo,[e[49]||(e[49]=t("i",null,"翻页速度",-1)),t("div",to,[t("div",oo,[t("span",{class:"less",onClick:Ce},[...e[44]||(e[44]=[t("em",{class:"iconfont"},"",-1)])]),e[46]||(e[46]=t("b",null,null,-1)),e[47]||(e[47]=q()),t("span",no,K(a(he)),1),e[48]||(e[48]=t("b",null,null,-1)),t("span",{class:"more",onClick:j},[...e[45]||(e[45]=[t("em",{class:"iconfont"},"",-1)])])])])]),t("li",so,[e[50]||(e[50]=t("i",null,"无限加载",-1)),(g(),p("span",{class:Q(["infinite-loading-item",{selected:a(ge)==!1}]),key:0,onClick:e[5]||(e[5]=E=>X(!1))},"关闭",2)),(g(),p("span",{class:Q(["infinite-loading-item",{selected:a(ge)==!0}]),key:1,onClick:e[6]||(e[6]=E=>X(!0))},"开启",2))])])])],6)}}}),io=Ae(ao,[["__scopeId","data-v-dd7cfcb2"]]),ro={class:"wrapper"},lo=["onClick"],co=ce({__name:"CatalogItem",props:{index:{},source:{},gotoChapter:{type:Function},currentChapterIndex:{}},setup(c){const s=c,d=n=>n==s.currentChapterIndex,f=l(()=>{const n=s.source;return"catas"in n?n.catas:[s.source]});return(n,w)=>(g(),p("div",ro,[(g(!0),p(se,null,le(a(f),m=>(g(),p("div",{class:Q(["cata-text",{selected:d(m.index)}]),key:m.url,onClick:C=>c.gotoChapter(m)},K(m.title),11,lo))),128))]))}}),Ao=Ae(co,[["__scopeId","data-v-a892cd6d"]]),uo=ce({__name:"PopCatalog",emits:["getContent"],setup(c,{emit:s}){const d=me(),{catalog:f,popCataVisible:n,miniInterface:w}=Ke(d),m=l(()=>d.theme),C=l(()=>d.theme),v=l(()=>({background:oe.themes[C.value].popup})),F=l(()=>{const h=f.value;if(w.value)return h;const y=Math.ceil(h.length/2),I=new Array(y);let B=0;for(;Bd.readingBook.chapterIndex,set:h=>d.readingBook.chapterIndex=h}),S=l(()=>{const h=x.value;return w.value?h:Math.floor(h/2)});Xe(()=>{n.value&&P.value.scrollToIndex(S.value)});const V=s,U=h=>{const y=f.value.indexOf(h);x.value=y,d.setPopCataVisible(!1),d.setContentLoading(!0),d.saveBookProgress(),V("getContent",y)};return(h,y)=>(g(),p("div",{class:Q({"cata-wrapper":!0,visible:a(n)}),style:Z(a(v))},[y[0]||(y[0]=t("div",{class:"title"},"目录",-1)),H(a(_e),{style:{height:"300px",overflow:"auto"},class:Q({night:a(m),day:!a(m)}),ref_key:"virtualListRef",ref:P,"data-key":"index","wrap-class":"data-wrapper","item-class":"cata","data-sources":a(F),"data-component":Ao,"estimate-size":40,"extra-props":{gotoChapter:U,currentChapterIndex:a(x)}},null,8,["class","data-sources","extra-props"])],6))}}),go=Ae(uo,[["__scopeId","data-v-6cab38af"]]),po={class:"tools"},fo={class:"tools"},mo={key:0},vo={key:0},Bo={class:"content"},ko=["chapterIndex"],ho=ce({__name:"BookChapter",setup(c){const s=D(),{isLoading:d,loadingWrapper:f}=nt(s,"正在获取信息"),n=me(),{catalog:w,popCataVisible:m,readSettingsVisible:C,miniInterface:v,showContent:F,bookProgress:P,theme:x,isNight:S}=Ke(n),V=l({get:()=>n.readingBook.chapterPos,set:o=>n.readingBook.chapterPos=o}),U=l({get:()=>n.readingBook.chapterIndex,set:o=>n.readingBook.chapterIndex=o}),h=l({get:()=>n.readingBook.isSeachBook,set:o=>n.readingBook.isSeachBook=o});be(()=>n.readingBook,o=>{localStorage.setItem("readingRecent",JSON.stringify(o)),sessionStorage.setItem("chapterIndex",o.chapterIndex.toString()),sessionStorage.setItem("chapterPos",o.chapterPos.toString())},{deep:1});const y=l(()=>n.config.infiniteLoading);let I;const B=D();De(()=>{y.value?I==null||I.observe(B.value):I==null||I.disconnect()});const u=()=>{const o=T.value.slice(-1)[0].index;w.value.length-1>o&&(ae(o+1,!1),n.saveBookProgress())},i=o=>{if(!d.value)for(const{isIntersecting:r}of o){if(!r)return;u()}},A=l(()=>n.config.font>=0?oe.fonts[n.config.font]:n.config.customFontName),b=l(()=>n.config.fontSize+"px"),W=l(()=>oe.themes[x.value].body),ve=l(()=>oe.themes[x.value].content),de=l(()=>oe.themes[x.value].popup),Be=l(()=>v.value?window.innerWidth+"px":n.config.readWidth-130+"px"),ue=l(()=>v.value?window.innerWidth-33:n.config.readWidth-33),ke=l(()=>({background:W.value})),he=l(()=>({background:ve.value,width:Be.value})),j=D(!1),Ce=l(()=>({background:de.value,marginLeft:v.value?0:-(n.config.readWidth/2+68)+"px",display:v.value&&!j.value?"none":"block"})),ge=l(()=>({background:de.value,marginRight:v.value?0:-(n.config.readWidth/2+52)+"px",display:v.value&&!j.value?"none":"block"})),X=()=>{n.setMiniInterface(window.innerWidth<776);const o=n.config.readWidth;M(o)},M=o=>{n.miniInterface||(o<640&&(n.config.readWidth=640),o+2*68>window.innerWidth&&(n.config.readWidth-=160))};be(()=>n.config.readWidth,o=>M(o));const e=D(),N=D(),Y=()=>{te(e.value)},_=()=>{te(N.value)},E=$e(),L=()=>{E.push("/")},T=D([]),$=D(!0),ae=(o,r=!0,O=0)=>{r&&(n.setShowContent(!1),te(e.value,{duration:0}),we(o,O),T.value=[]);const J=n.readingBook.bookUrl,{title:G,index:re}=w.value[o];f(ne.getBookContent(J,re).then(k=>{if(k.data.isSuccess){const Te=k.data.data.split(/\n+/);T.value.push({index:o,content:Te,title:G}),r&&He(O)}else{R({message:k.data.errorMsg,type:"error"});const ee=[k.data.errorMsg];T.value.push({index:o,content:ee,title:G})}if(n.setContentLoading(!0),$.value=!1,n.setShowContent(!0),!k.data.isSuccess)throw k.data},k=>{const ee=["获取章节内容失败!"];throw T.value.push({index:o,content:ee,title:G}),n.setShowContent(!0),k}))},ze=D(),ye=D(),He=o=>{Me(()=>{ye.value.length===1&&ye.value[0].scrollToReadedLength(o)})},Oe=et(()=>n.saveBookProgress(),6e4),We=(o,r)=>{we(o,r),Oe()};De(()=>{var o;document.title=((o=w.value[U.value])==null?void 0:o.title)||document.title});const we=(o,r)=>{U.value=o,V.value=r},Se=()=>{const o=P.value;document.visibilityState=="hidden"&&o&&n.saveBookProgress()},Ee=()=>{n.setContentLoading(!0);const o=U.value+1;typeof w.value[o]<"u"?(R({message:"下一章",type:"info"}),ae(o),n.saveBookProgress()):R({message:"本章是最后一章",type:"error"})},xe=()=>{n.setContentLoading(!0);const o=U.value-1;typeof w.value[o]<"u"?(R({message:"上一章",type:"info"}),ae(o),n.saveBookProgress()):R({message:"本章是第一章",type:"error"})};let ie=!0;const Ie=o=>{if(ie)switch(o.key){case"ArrowLeft":o.stopPropagation(),o.preventDefault(),xe();break;case"ArrowRight":o.stopPropagation(),o.preventDefault(),Ee();break;case"ArrowUp":o.stopPropagation(),o.preventDefault(),document.documentElement.scrollTop===0?R.warning("已到达页面顶部"):(ie=!1,te(0-document.documentElement.clientHeight+100,{duration:n.config.jumpDuration,callback:()=>ie=!0}));break;case"ArrowDown":o.stopPropagation(),o.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?R.warning("已到达页面底部"):(ie=!1,te(document.documentElement.clientHeight-100,{duration:n.config.jumpDuration,callback:()=>ie=!0}));break}},Ue=o=>{(o.key==="ArrowUp"||o.key==="ArrowDown")&&(o.preventDefault(),o.stopPropagation())};Fe(async()=>{await n.loadWebConfig();const o=sessionStorage.getItem("bookUrl"),r=sessionStorage.getItem("bookName"),O=sessionStorage.getItem("bookAuthor"),J=Number(sessionStorage.getItem("chapterIndex")||0),G=Number(sessionStorage.getItem("chapterPos")||0),re=sessionStorage.getItem("isSeachBook")==="true";if(Ve(o)||Ve(r)||O===null)return R.warning("书籍信息为空,即将自动返回书架页面..."),setTimeout(L,500);const k={bookUrl:o,name:r,author:O,chapterIndex:J,chapterPos:G,isSeachBook:re};X(),window.addEventListener("resize",X),f(n.loadWebCatalog(k).then(ee=>{n.setReadingBook(k),ae(J,!0,G),window.addEventListener("keyup",Ie),window.addEventListener("keydown",Ue),document.addEventListener("visibilitychange",Se),I=new IntersectionObserver(i,{rootMargin:"-100% 0% 20% 0%"}),y.value===!0&&I.observe(B.value),document.title="...",document.title=r+" | "+ee[J].title}))}),Pe(()=>{window.removeEventListener("keyup",Ie),window.removeEventListener("keydown",Ue),window.removeEventListener("resize",X),document.removeEventListener("visibilitychange",Se),C.value=!1,m.value=!1,I==null||I.disconnect(),I=null});const Ne=async()=>{const o=n.readingBook;o.isSeachBook===!0&&await Re.confirm(`是否将《${o.name}》放入书架?`,"放入书架",{confirmButtonText:"确认",cancelButtonText:"否",type:"info",closeOnHashChange:!1}).then(()=>{h.value=!1}).catch(async()=>{await ne.deleteBook(o)}).finally(()=>sessionStorage.removeItem("isSeachBook"))};return tt(async(o,r,O)=>{window.removeEventListener("keyup",Ie),await Ne(),O()}),(o,r)=>{const O=go,J=Le,G=io,re=At;return g(),p("div",{class:Q(["chapter-wrapper",{night:a(S),day:!a(S)}]),style:Z(a(ke)),onClick:r[2]||(r[2]=k=>j.value=!a(j))},[t("div",{class:"tool-bar",style:Z(a(Ce))},[t("div",po,[H(J,{placement:"right",width:a(ue),trigger:"click","show-arrow":!1,visible:a(m),"onUpdate:visible":r[0]||(r[0]=k=>fe(m)?m.value=k:null),"popper-class":"pop-cata"},{reference:z(()=>[t("div",{class:Q(["tool-icon",{"no-point":!1}])},[...r[3]||(r[3]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"目录",-1)])])]),default:z(()=>[H(O,{onGetContent:ae,class:"popup"})]),_:1},8,["width","visible"]),H(J,{placement:"right",width:a(ue),trigger:"click","show-arrow":!1,visible:a(C),"onUpdate:visible":r[1]||(r[1]=k=>fe(C)?C.value=k:null),"popper-class":"pop-setting"},{reference:z(()=>[t("div",{class:Q(["tool-icon",{"no-point":a($)}])},[...r[4]||(r[4]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"设置",-1)])],2)]),default:z(()=>[H(G,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:L},[...r[5]||(r[5]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"书架",-1)])]),t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:Y},[...r[6]||(r[6]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"顶部",-1)])],2),t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:_},[...r[7]||(r[7]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"底部",-1)])],2)])],4),t("div",{class:"read-bar",style:Z(a(ge))},[t("div",fo,[t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:xe},[r[8]||(r[8]=t("div",{class:"iconfont"},"",-1)),a(v)?(g(),p("span",mo,"上一章")):pe("",!0)],2),t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:Ee},[a(v)?(g(),p("span",vo,"下一章")):pe("",!0),r[9]||(r[9]=t("div",{class:"iconfont"},"",-1))],2)])],4),r[10]||(r[10]=t("div",{class:"chapter-bar"},null,-1)),t("div",{class:"chapter",ref_key:"content",ref:s,style:Z(a(he))},[t("div",Bo,[t("div",{class:"top-bar",ref_key:"top",ref:e},null,512),(g(!0),p(se,null,le(a(T),k=>(g(),p("div",{key:k.index,chapterIndex:k.index,ref_for:!0,ref_key:"chapter",ref:ze},[a(F)?(g(),ot(re,{key:0,ref_for:!0,ref_key:"chapterRef",ref:ye,chapterIndex:k.index,contents:k.content,title:k.title,spacing:a(n).config.spacing,fontSize:a(b),fontFamily:a(A),onReadedLengthChange:We},null,8,["chapterIndex","contents","title","spacing","fontSize","fontFamily"])):pe("",!0)],8,ko))),128)),t("div",{class:"loading",ref_key:"loading",ref:B},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:N},null,512)])],4)],6)}}}),bo=Ae(ho,[["__scopeId","data-v-fff9fad7"]]);export{bo as default}; diff --git a/app/src/main/assets/web/vue/assets/BookChapter-Cs3stH93.js b/app/src/main/assets/web/vue/assets/BookChapter-Cs3stH93.js new file mode 100644 index 000000000..6107c782d --- /dev/null +++ b/app/src/main/assets/web/vue/assets/BookChapter-Cs3stH93.js @@ -0,0 +1 @@ +import{d as ce,a4 as Je,U as Fe,a9 as Pe,o as g,e as p,F as se,h as t,z as K,R as le,u as a,aa as Z,C as l,M as D,ab as Me,N as be,y as Q,f as H,ac as Ge,w as z,ad as qe,ae as Ze,H as fe,af as Le,A as Ye,g as q,P as pe,a8 as Re,n as R,ag as je,a6 as Ke,ah as Xe,V as _e,Q as De,a7 as $e,ai as et,aj as tt,c as ot}from"./vendor-KSDcS24u.js";import{u as me,i as Qe,A as ne,_ as Ae,c as Ve}from"./index-Wr40-hHf.js";import{u as nt}from"./loading-C4J6hIxs.js";const st=(c,s,A,f)=>(c/=f/2,c<1?A/2*c*c+s:(c--,-A/2*(c*(c-2)-1)+s)),at=()=>{let c,s,A,f,n,w,m,y,h,F,P,x,S;function V(){let u=c.scrollTop||c.scrollY||c.pageYOffset;return u=typeof u>"u"?0:u,u}function U(u){const i=u.getBoundingClientRect().top,d=c.getBoundingClientRect?c.getBoundingClientRect().top:0;return i-d+A}function C(u){c.scrollTo?c.scrollTo(0,u):c.scrollTop=u}function I(u){F||(F=u),P=u-F,x=w(P,A,y,h),C(x),P({v3af0ffa9:y.spacing.letter,v316cdf92:y.spacing.line,v3ab99b0b:y.spacing.paragraph}));const f=me(),n=l(()=>f.config.readWidth),w=l(()=>f.config.fontSize),m=l(()=>f.readingBook.bookUrl),y=c,h=/]*src=['"]([^'"]*(?:['"][^>]+\})?)['"][^>]*>/g,F=i=>i.replace(h,(d,B)=>{if(Qe(B)){const W=ne.getProxyImageUrl(m.value,B,w.value*2);return d.replace(B,W)}return d}),P=i=>{const d=/]*src=['"]([^'"]*(?:['"][^>]+\})?)['"][^>]*>/,B=i.match(d)[1];return Qe(B)?ne.getProxyImageUrl(m.value,B,n.value):B},x=i=>{var B;const d=(B=i.target)==null?void 0:B.getAttribute("src");d!=null&&d.length>0&&(i.target.src=ne.getProxyImageUrl(m.value,d,n.value))},S=i=>{var d;((d=i.target)==null?void 0:d.tagName)==="IMG"&&x(i)},V=i=>i.replace(h," ").length,U=l(()=>{let i=-1;return Array.from(y.contents,d=>(i+=V(d)+1,i))}),C=D(),I=D();s({scrollToReadedLength:i=>{if(i===0)return;const d=U.value.findIndex(B=>B>=i);d!==-1&&Me(()=>{te(I.value[d],{duration:0})})}});let v=null;const u=A;return Fe(()=>{v=new IntersectionObserver(i=>{for(const{target:d,isIntersecting:B}of i)B&&u("readedLengthChange",y.chapterIndex,parseInt(d.dataset.chapterpos))},{rootMargin:`0px 0px -${window.innerHeight-24}px 0px`}),v.observe(C.value),I.value.forEach(i=>{v.observe(i)})}),Pe(()=>{v==null||v.disconnect(),v=null}),(i,d)=>(g(),p(se,null,[t("div",{class:"title","data-chapterpos":"0",ref_key:"titleRef",ref:C},K(c.title),513),(g(!0),p(se,null,le(c.contents,(B,W)=>(g(),p("div",{key:W,ref_for:!0,ref_key:"paragraphRef",ref:I,"data-chapterpos":a(U)[W]},[/^\s*]*src[^>]+>$/.test(String(B))?(g(),p("img",{key:0,class:"full",src:P(B),onErrorOnce:x,loading:"lazy"},null,40,rt)):(g(),p("p",{key:1,style:Z({fontFamily:c.fontFamily,fontSize:a(w)}),innerHTML:F(B),onErrorCapture:S},null,44,lt))],8,it))),128))],64))}}),At=Ae(ct,[["__scopeId","data-v-d8efefe3"]]),dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXr5djn4dTp49bt59rT6LKxAAACnElEQVQozw3NUUwScRzA8d8R6MF8YMIx8uk47hDSJbj14IPzOGc7jPLvwTGg5uAYDbe2tt56cLtznvEnS6yDqCcEaWi91DvrbLJZz7b1aFtz1aO+2OZWvn+/+4CHeB6BMYaqBLfjPNRY6RFT2JJYby+uAk4WUTrtlmJ4hgPYb2q1XGDQjaK8pgJHvqNaAX+KyuIkDXpgQinb46nOulnn4b5laUHTxLfseeArAoNOeJlOIjdoal0n1FA7tKFv5roK+YaHOqP3P0XyKHPHY+MhTRe5uCZnKhtJKw2eSrSoBDPLtpZuNcFNJcFyiCMxOaaHIfXz1e8HQbWLySrBQ4x0x1qlhnHlnz2HQEC6TNb0gTHXa7IKhcaHqkE015hk9whA0YeWiLIXf7Fa2CZo3DjqjB4tTuF8jIcbfcEx5z/w4sXpQhXW+ju0cqh7icTFmRMaG+v6CIvTjcSpHcH8JEsF3EPh3fRthYdVLLgI2fWXm85/pGFE4l046s70L+yKCcirGFR+jbpy3kMmiCGHrSezVONsn1RBixncyk2PcVWk7DlgxHo8iZwDyq5uAUD854dZhdIFYzKoQig2haUKi1lVufz2RZUZPZ41n/hrOQB6h0Hhg8I367FNoEHgeM/KY7szSeQwD8q2WE3HM35ZLl0K1MJiOtHIkBclRQUwZnyOWcNsRQQgVLj1PSqkjF9DsoOSaSg3iinKzvfmgsNFFfpP/2T3GLGvL4fHEfwIX1sVvXcPqLztehWGcfn9nI2U9nTfCgJPe/jFPLZwgVEzimBgAm0VIyK2tt1cE/AzQdLK+SxLSQ4aDCZnnId94OG2S1XwvnTbNk/ZnhyRCQT+sZM6z9g6LXL1BOBe+zJySiFkHAINCtnQokbCJ/apCv0foqPiZVfhpywAAAAASUVORK5CYII=",ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEX6+fP8+/X+/ff///kbczPAAAACeElEQVQozxXHQUgUUQAG4P8936yzs6VvZNZmN9QxVxiF9OLBoOjtOC6rQq6ygXjI2fCQBdXBg4egtzFGdqkoI+zgBFbqkm3hQSxhFYLotOcubeKhOnVYoqQy+m4f5g5TvpX0xHLbLY9j8SMhJp+Jk4LfAUS2kVRIjILmnwGBTX42PhCVlDJQkIiy2nWAvaJ1h+oFIpJ0hMSYVbyyrgDWshcMpMyL1brPDQKWmduO+KTJ6XeXAMK9Yc3FpD7atyNwg6kt5XgFpLPhjUTFSYVn2abDiugGShwD8JTVRJVo/2ecuKtRb/qc4BK+9TboFfokog4T2Fn6Oqdnsjk90NMS76Rji6E0NmwkPBAZ4Xbkw8KoDAkAbEhkc78e9omxxgxg6qa5HvMv+UZbCV0qmHnSHKl5TxeA2XTCGWekR581mwC5crBH81PznASqB9va3TbkYAjJPLfg5uBfXaJgIgIBv9eessRIhxe7PA7kj6uUMeMaQ/OEQOYRaaHlqH2Gxwsl6E/pwVY5FH7uCypBZPKvDQyVziYBrAkMURe2MOOOxG/eQpp5PF+bFzUV5HtPj9GeiVSNZDELleifYTp9NAjsoiXg4cW+4ZORkdSMB/B74aAdjhsVakhgkugsbmqcDSLEoWp8zRjrux3tli6Q5uM3E+maT99Wy0RiP7tboiuRZle2c6CYeL2kcUc1KvPtQKucogMadKVTQOJYCeyCYlhQQ/Q7Etfd/vBygy9iqy+LyHeF46saCYvW6ingsbA9RBWtdi8GgUXW+oQx9/wP6bAAX1TWeV+CbShZDlQ9xT6SoSxZmKRAkmXb60kzEzkRF+Ccb94BGspGJoN/UzmyR4wjXHAAAAAASUVORK5CYII=",pt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAATlBMVEXdzaHh0KPgz6LdzKDezqLczJ7ezZ/fz6Dcy5zi0aXdzZ3fz6Tfz57h0KDg0aLcyZrg0KXi0qPfzZ3j06bh0qbdyJbfzJrhz5/cxpLZwo0vDconAAAFn0lEQVRIxxyPW5LjMAwDAT5FybLl2JnM3P+i6+wXWVC1GoQGaD0h4XM3Q5o4T0HgABHBi6pZ4CDXXcUOFd6VhqC3Kch4EI8w9oMXwvU6m5LOOvcxKMOhuu8i5+5cMjcgb0t4F2uvOoeI3/MlT4IqsbtM9UG2AGSXUOsxzPevnXzK1CSHytZLvx7VdQmUcJsJCxJh2nmHW12Qod1qPjt8pih47uQ9aGpoNWF+yElCt60oH7vdIU/MnlRPSBLC/VwqxcKR8PFqnADN9ih5ufqnTlG9KwCofvs7kKYqOPHTNMQ93j9qNImFw9vjHPZ0F1m8hUUVB/Q/TrRYDMXr9++APMFARAt6sPh6wVAXzxUGhZsFUwCNfPZ8/72TAHebAhvuOuT3gO1Vn5d9Jd5sBRkg0p2seL9B7ulkjFJFIt9HPpLzdSzzMP3UcodAfMqC6pBuET2heHK1itZf1GZ1bi0BwOSxiCS8f/JBHMPMM4XCu3Mt1uz9lJbDJRqsKDZuikzkvskQEz6hanfDfO494azY5JpqPqOF1RhxD9XYEdaNxiqWqakKgmPfmrsta8KAiwF4HBxGVUJAgeSqQaiRRZJ7D2jedhw5t1CIAKxag0CBA60BpoBE6DcUi8O5AuM4pLfN0kHLmeu2B4e6HofqbgxsTWUw3PAODqa1oDtyzgXBlusi1KFdclMPE8O3jvLJ8RNi5/RxDQVzVmXA233XQ4KummunfxvLOZo+iH37964YjP06995CTdu9hsvErqJNzmf4wTrZ5DL7+qW9EoLnadrx67b8dUtrJnBXaT1N1uvPaYRKpWkq52xNsMN7vv4Sdryt/f4MhQoMCKnvVxikai1CQ6ZsnwJDc8+3Y/z8HcfvYQNq66pnAu1Hwa+3KNSwbNu8h3nDPqTl9fl7tx8fBhFfdS0o0F3JUKEZtZG9b/LZEM95lzaR30OnWPzroMxyZYdBIMoMnpN0J+m7/40+/P4soFSUjgzE7yY5zrMJuoZv0CmpVguYx1pprfb5HOviRVhHUVi/352shxCYrYBZxGtVaxiAz/MsaGSIsB7R1t4zJXH//n7RTTQQwxqcGEqEvklFHUgiO2GvJV+jAIPR+N29usWDoiSOVrN3XuqT1egQJAAU9EwslVJC8u0rGcy+WPqktJhjfMpatIG6CDAb0v5H34MGKqiVRue7GGLZ9Otxtt4JIrAhxBDwDuqI9JavcO0A7GlqFt219tH/bln9jBXzaKWAEqJV0CBxs5TwM8EvUPHaa8S86vN303MVWOsl3goDBHPWSoQ9c0kQmCKljfsKNH1+ofEOHW8a9a7glZGS8fPieL/SRSs0LAhI4FDTnXs1QYtubv2+IXPZpHB4bhivRexBkYKsSrYXNjvMUbVXpVJ+N6haV72c1k2zrnv5IYBMJBYTSZx0KTkoM3vY93rU/qs7zHplc/3d2ACadhFWByrn9LUk2IWb5JywvawTQc3F0iz+lgsBmInAIemBJtft2plKIlAFOgcroigrG2XlDsAzywQECNyaI8yr2ogoh7D4qJOYmZBzQgoZAM1PAcB8sDrr1uE5CDMR+nWSSVUGUCHAs8Vd21HOE0FzNj37pX0sLp9p3K8k++xxpkmzDxK64rmTSJnDUuIgTeslui6lg92jonZXI4jqNiUuzN4IagcKMjCniMGCODoo8T4tGDprn2hRww+NrnYiCwokd9iiWrkmbRfXYGLAoZrjO1lVQKExjUy5fIkgJURmz2uGFdASwwlWx5gDVTMK7hP6ISRVsFbYNmqtZL9MQtio285PaekyzDhZmtdexCYB0SZcTmBdhvdbmAEonk8hwcHQuZN1kVqrhyKoHHsnQhQAjF7SG533Da2S4LGjx1LoZqp7XeKQLDUBmYmydG0NQHpMeR5lRIRQc1PQ2ASMQflF4YBDMt0/GFlEHeRwCcEAAAAASUVORK5CYII=",ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAALVBMVEXx58b168ny6Mjz6sn06sf27Mvw5sTz6cbw5cLy58T37svv47/168v37s7t4Ltrv0//AAAEjUlEQVQ4yw2Ty2sTURxGf3dmOqmPxb0zmaStCnfmZpL6gpmbxIpUSMZGrSJkxsZiVZimNVaqMklrUnWTRq2KIDFWWx+IFrIRFxXEB4KIgqu6EBdu7M6FIPg32PW3+DhwDmBaYrK56KP4HGIsvg/uvOV0wK+qgBMlO9BujuH4DSJlOseqV5a/BEF97gt0ChyIPqBhXI9BtqtIB8vJB/LdCQ3OVjaLNX0g7+OmoI4e7nkemAqX6o8vg0yyQAyQS7IfgvFbI+6QyI3R4KELxw7kwM2ooQfyQigYnwY5MZbMlHI1DvnQVCoVcrt+R+bO7vPDif3ybNajwqAAe443dpfDsPt379VMWZzGRuqM79mQF+DUz9nt74bQ8J/O80MtVR51U02JKKmTCvTzLVf+vuxP/aHnPo9+2bW+zVsJ0Y630/CrfzX+b+UL+7O68Rczv+7lrMh5etfKXvhc2rk6KforxuoO2xB2tcxKfeXHt18rHOiHI/0RRjW/YGRDkHiwo3nzqL60o58C/bgRuaj7vk+QOwOhpnFNdjuWpKMCGP8Yapu9Ty5FTHKQLGSEFikjd9ADwP9ciaNNjc5qMH6w50AF/LKOsOYqsOG9GjKgc7ZXolqntm6fysJ6Ma6ll2CiqmOgE6O7x1wXExklbeqMYcwsmJmOoigt8SBg2WfilDSsAZJcBxDcrqtBXzFQJqZNHfscyIhoZlygAtyYAceah+elrFbI+46gEHDGiW878Kj7JpWyfhg6iyRMymV1MKBSeVpfgLHIohyTojI6sRyK1VpcqzVZeEBLOnA9unhGKUXPJDYtV9Dxuz4iA5xSkSWhCJdAiJR9PHlvfvbntbrR14FDqUNRAYDJmSnv3oKxuz5+7fiblgVJyYLTbgUM05P7LESkoXvyWNfb0aUU6FZizgQIa25VqKQZqFrk6v6BsqqIHlQmkQ9KrBhkC20/DrFsAFEEYLjM+lj2wYHXCwnNvZQR42XJ2iVK+UBXnI+OBE6oXpUUHiQ1yg0MhA03iwGbnOdQYc1CMiPIPQrCQJFH4L4BMFktAtKd9PN5gnU2Gra4KuK+V+mjtBRpAGIqDVe4wnSnajiFGO5d7smvhVQEMEYwqshrENIEaY7YeblJYtsb3QhAHWZCEKK67swwPMKw0If1Ta+6DgHmlgPzcUTSbi3rrv1Y64/BYEMPQ5SDHUOR022B4QRF6xLUPAaPX/V4IDI5N2BMwx4LqO1uO4j6uW7NvM7lATqGAxY/ZHVgoGZbu7SvkNR75x6qGSB23FdouENVwN7sCbewTdsXGrrnQ5ZZKOCOFtMTIzxlPu6eYmtL+nMFmoK7OeXajn86r9sqWbfmvHC4IagE5qfCPGZvLSq5F55hHIxJFa4/vRxHBlz0og4TojU1l/MOHJX17lybdF0mQhFO44JYUNt3UA473IXw/iPfDWtKG5oFSXIF5iU/VnyDSjxxeDk3jAXRyVyGTNB9FxH9qcFDNJpVbt2y9LytUXkK7Py6+z1RezHQqnoY8XcLimmd8dCnBhQCuaGpJCq3SoIlmYvLz8UkWhJw7T8k+Db/DYEKwgAAAABJRU5ErkJggg==",mt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",vt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",Bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7eHl8eXj7+Pn8+eTbH1KAAACPElEQVQozxWPQWrbQABF/0xn3JFKQRTZOIuUsbCCbOgdRoYEOauxkYPcTRyTlPQWIxEltrsRwQ6hK9nEQek6F+gNTE/Q3qLLusv34cN7SH3mFicdYW4gNIhJWXPBRVXzjcFD0IqeU4o4PRbAIVjyico0vJpIifqPfL80QN9DAQY5ucRHE/hpHxBldXe9GilaHKcKMlj6pho2zXgkNdBl0oJ8kiF1DSiJF1ZHBJkQr0Dbux/5I42Zp4cFahJDFGeW6/QjBwmFY/Q7vZ2SnoOdW2parv/Cnm81+m0xrEfiVXQ3W4nOXIqVYi3l6AAQBwMFkViVBANMto4enXHPNTkHBB0oVj4r5vHzCWayrgBvxtygDlDB2CNDjd80ZInY69aKVYZcfJ8DW+fWuc+syEODALx+ojqoafHsthTI+ZW27PGpIeo/cR6YKcbqIuIFhHmBrzAovzIOOJk1ucvcDzrMRYGVBH2yvcAOf0KiKwfRovBI3tm/kW1eemtfNWwIIXE2mJNhvoszfmMBfRCv0OPwd2321uDW3nx2q/BDxFVeoN1g7a6Im8yRnoawa8kbdXnU0cHeTMxKfZGlJgvLb3sKsxgglQnDdAfvj9LUnqWRDo0GiUmPwyU7TAsD7wHeIW3Nfy1qVGKoE9NgJCdYCAexNRob9yCn4DAQmXtQuUtera6bEmTTXhZy6h856xi4mnEl6BI9mfISkLbtJyZIMJIAUd5ZOBEu88KRAk71yxfItj/hpIB0Errv4gO1os4/UICf+o3kkqwAAAAASUVORK5CYII=",kt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX0/PTx+fH2/vbz+/P4//htSO9OAAAC5UlEQVQ4yyWT0QGjMAxDZTsDWKQDmJQBYrgBUsr+M517x0+LRWw9CyA+pC1YzndrMgHaNXVKQ+di13Of1qbur48nWhuRjj8i6ON8e7pNm7zyag/DBTfS9Z4Hup1fUuXMKY4HEE8QOHCByXkIkl7lDT239RtL9quO4JItmmhOAHXg45QuYKrQFLyGJcRvaTw6kQqZy6mkR6JAPFH/XqsQjEDRmUOA+MNLHGyMUT7AHApoAhjgjIJmCxy6XHdf648AWCdGe57IUDazCeTImQOY4/z+eVYVX2IjOw9RydeAeJwl79iGi4HpgQgHEchWraUZLtayu8scq0lHHHUKMY3Ml8hB7CS1jOckDLG9ccgNeX3124phOcjL9fPnWJhTXpLHeG9DRmHnTxHEaHakS2J51lwAJcUraNbuU7q4gMTDQj3Eripc/x+qFM5VEKAB1roQfAkX5/PxqnS2QpOrxfK1Zft0/omV5T+xCSBUAIbEIwUQgvAfxFE1O8dnk233+1UZiqJ1mAbsue6Yt8tF+yOrxC/YrUhzC4qPlE3EbR5hGKhhHdlrg7J9WunV7L7BcYQwAeE59u2tnN1c6gfVYrQiLSZ9OxZdWDXQq0+r0Pbarh3UqGCwauVvbiXuDsNxCtLDdW9rTF8oQYN4EoXXdfmwNguQP26n/tRjDeo+F2W7PjWtfSr6Bn/z+cXOLp4NnMV4RytvSW4B68m+XN9XfZTFGhO/S+cHTuTqZDC21ccA0N7QsePALaDQC3D1f94U9CWo+aq6BjB3v0rxIimBM12296M3aKPHjXLQE9KQKH4By8RHraJ3AgVto2r4xdFqlaPaiAHLl1ZF4P2pI6cYc+K8UZdcmxy7lqGc1IoPxLmIFuIeEZ6j2sQT88muEg1zwrEDTIX5U/ZmcsqfgVlBumiBLF4sAyhf9BFlXOPKLZ4H0iFb3VoHrGhtHTldKrOvP2/reu2zfV8CXMPqzRdlgd0a5eI7WwB/AYcgavcqxXWEAAAAAElFTkSuQmCC",ht="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXM2t7O3ODQ3uLR4OTDp25yAAACdUlEQVQozw3P70sTcQDH8c/3/M7NG+j35mnHwjwh4hRy/QFK3zvPNbeIG1koPZmxfj2IDAwihL53zj0JYisfmEHcZJZOiBUG60lZiI8T/ANusuftgQ+kCPIPeMP7hS5mUrV9c1g6MQCAEZ8tDLHwofImAGRlX+SZK3Vu9rRRPuO4PK6/9nA4GIATsxlODS+rdCMhkAZivpYV0LWoQHSLSA4NfUg+6mY+7BKL2++F9LvnrBDYm6JO9i/YO3i/HJTGQ4pdIV82TbEDFG6vGYCd4wZchgK5J2CrKTLE+Tx0v+YGlIbdWJFcQl4ptBN8fUJQN1MCJLcZLYwUVVo+famGGty8EXJF5ofOEDzcodT3/Fb0I5sHmc1ZG7CcSl8COgxlXx09jT05OafjCZLIHJhGIaU6wDZHsuMQ41wbdjmQXbhKnMq1zlXSYrjCnyZblqexA7fC8RxS74tq2P3OxSQwTuJSApH8OZLzBBp1pOe0i3rdyDUA47GySZ31YmC4EQYSXvFSvieORGBxXF9aeVtUWKGS9WMC4Z9Y2uXnJ2nCUXVMbPOYqNYNmGWWQ7Evr+BWC+a0JAMTImcq/S4Z5INdQMeuOqDIMa9beilxfA60iC6sP1INcPDpmHBW8drZHNmqwyddJtVje9q8WGUgWAOzmbU4FCQBFi8B2Wk6pickBnYhJMenmJGuRmtt2IoKq9NuFGbNFR99sHnvrnLsLysKANDIsxbp6RNMAsoDSKuRpMwZbAAzI68QatIjmZ0aImyM3O8/4e2MNlOHZomFsa/fLDsysliHS+nlYLQJMnynxrH8QO4PaAV2Li8B/+52UgeGIVNFYf8B1XG/kFSmLcUAAAAASUVORK5CYII=",Ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7vLf7PDj8PTm8/ecW+lZAAACZElEQVQozw2RsU8TUQCHfz3fw7MS87jeI7DdmSMpDEoHE+P0HqGkvRR8vb5XC4NpN2RQZqcK9xJkwtriekcggerC4OZADDiT+A+goxv/gfwB3zd8H/T6vYF/pTZkCSmDNd3CBEtmZJP4N+CvvhecDvmntKsvwB17rpbIRTLOEoYkj9KZzRUuJsuBQFwgptyJ3Y7EL4V+ud5LO1UnMeQSSObqisiISZkbQBlliP3qWSk3GPQXjxv6VF2BTDO4ySx1zhuJXbA2wBNJF4t5vH9keg6wu5NvUpLtXrZ3OHC9ZsgVcZdOl38PM1y/L6m8GRiErj4AqezUjHGatGGIgs5NJDHh8Ua1IuB4035haVT6SaYWMoQ0eJ3rB/Gpnr3fB49YAy1Wa21YKqAHOmAveVw6CCMGMZh5bGtVI7jnZaiQNbta1Z+285oSoKoRbta1KZ/1bBdKH/RIxv2pRVpkoCmvpr097RWoo0CpMlTWllIenSjECU8mV43mHx2fIRfH/pncrJm3+58BWdbSqCS07/yiQnvHiCG4ZPGRFeAtfreoOubyctzHvLNHhjNvIhukxQzjU5O6QdOEzUp1Ef4d98Pxz+IPYX0bcpnT52dbedfz8y7C4R89RV+MjJkuCCx7mWDt4eyK/62lQB55xXGJK7p8u6bgRv4hVHylelYGGFs64W94tng8sAIVqSRJBpqRA9rFvAysS+9ak8s7557pz5HR4qhCRmWgplpTRJ+bhYfSAMO8/YBucWPuSdmFFtOnuWqvV2NbF6CJnbhNDzEZ/T0XSDrUydzkZCG1z/oIEyUFYxW/KPXNfwopuHDcO04UAAAAAElFTkSuQmCC",yt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",wt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEXm5ubo6Ojp6enr6+vt7e1FnZagAAACrklEQVQ4yx1SixUbMQgT3AKAFwDcAfzpBN1/qMrJS5w7bCQhC6IGSUGYQJd6Ox9ZPXi1AGJBavhUTT0JjYPGAab9WcDYIxsmlnxkayX8mhxCmKHA75az5cfRbWybEExiu08xDSgGym0mwuf3j4SvHeQxDJJzh2zp4iOlrD8iOb4SXyC1wiOLRTcnrje+nGamFeXVKWkmzbFIPChkmJ6Fg7mBpV8n+JGOVCd4jv1thThkjeQGNeafpeV3rsEWLfyWc8tC9jOv6FQ8rRzHOOVB+jCYEUAJpDvh8xHNFm/Tm5p5lw94Pp3NhtKEfQsGvnXhowdZE73hPwxKvjDd4i4PCdd0fe3W5fO8ktAsUAacLgstpUw60JCiPLg2XpkgiqPIYYXJd9ksGIT3q+LlevypzItvO+s0F1dBzVr2QDMUkYmuyGcrIS44mVJ7JVKwQXjYuBYp0Uetecbswzsikzu3gUR8bJC/C8Gd/NAzI/xdUGOYQQHDZ8X2d5XuzGRUiXAi9si5CRgoiToRZPtzLJkd0FUHRHZwJf0BHT1sE7gcnh0jmKKlSSF4/GBirGk5+K9NKlGDCfc9JtPhg78JdabH0YQRKNZnJ8tFnPfXHJb4xum1TTCeEmyEdbyEJLjznMLHuFD2Y9NEkSleIBs7SiCbblhgctVi9ch++kDYnn1C9DA5TvdPsToXM55wI6k+8eKT1blwPTqWb5CFJ+7dTBmab+KHy+xwNtItXhZNSpHD2fxnynrxG3ZBKRe8KBpXk11AnadlccEhr9w1nBBvBylNkv7A8eqpGBCDqhitmWQXBjjdS6idr/QjXWLDeMzMbVDoJuM8zN7WenMZWXgZ2vX3F01J3jHZbwk1LRP+DWEvDJtOUoh/AIaBUz5VpWyhuyx4QtgL/NmgC6kM/JvNe+R/C/5aL7BKIbYAAAAASUVORK5CYII=",St="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAElBMVEUQERMODxESFBYWGBkaHB0eICLm6ozJAAACkUlEQVQ4yyWTUdLbMAiEASfvoOkBkBy/O5keIE0v8E/uf5h+68qZWALELgu2MG9PP9qyvCzTVhrrsPGOCjvTfXQZvtp/W3Gy6LCITqs4q/DZ+KYl76zKzHVYpY2wNY27nqN1sbLGcrLH3/ENH4oWlGctsDu8AO+HzTLlsYdh8MzP1m6YDMz0ACfcimvakBj+mwO/+5Uta5teOD379sxK1fUxmUhv8MU3jUT5gs26PMephFznkLcpQZ6/dPL9C/GWHcCxDN6oZhD5xBm5qoYBPA+PFE/H1tXDWcWl8TW7rS+4dUzAVy0BIrvC4/HcqW2TkG1HO8q9dC23INAg7NA4AFRFkDTM2lfELPyFzi1VddcpX2z0KjHBUDmdLNJ6dDps4ytrX+FPsZwE31wSL+6OWfHOAJ3+Y0Rk/MiKfmWNPg7oVP/U3Ck9FoCkC2gBpALOiqbMNTkOe8P4FWkTD2Y9Q3+5VmV0uLUJBl68U5uAK2Kl6QDXvLxbwweOL2sixW78uU8p0ysfc7cWrF1j6B1sPJ4WgclYSnJN1bzozrhEcFHmRzBkbJWqqdG+EYJXRFmT5jnLXPUNF6WBdoFbTxYsmDXVLU/WA7MExNc93sJS5hIXDeLxzMScHzdhKvEkibr6cQXYPrmtmTA7JcInISrTzRDvShTdka0uVGrsJAAR6tSn1sKziZtfKVjAxPrJsYgZO0bye+vKTZ/DgoAoLGNO6jYHimZYTL/3pLJHawquJukjBpfz8WOGVSVIWx9ywUfS5iENutidRM4NzkAmxgUSQ68xgNOU+ZLalr4TS2V+D2xqukZig+Z9DilR7Nouzwp1cp/3E5q6Rdlf08obKvAM4qZ6pMr+w3PmQALSSBfjyZn5DwrNRVbywBQiAAAAAElFTkSuQmCC",Et="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",xt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",oe={themes:[{body:"#ede7da url("+dt+") repeat",content:"#ede7da url("+ut+") repeat",popup:"#ede7da url("+gt+") repeat"},{body:"#ede7da url("+pt+") repeat",content:"#ede7da url("+ft+") repeat",popup:"#ede7da url("+mt+") repeat"},{body:"#ede7da url("+vt+") repeat",content:"#ede7da url("+Bt+") repeat",popup:"#ede7da url("+kt+") repeat"},{body:"#ede7da url("+ht+") repeat",content:"#ede7da url("+Ct+") repeat",popup:"#ede7da url("+yt+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+It+") repeat",content:"#ede7da url("+bt+") repeat",popup:"#ede7da url("+wt+") repeat"},{body:"#ede7da url("+St+") repeat",content:"#ede7da url("+Et+") repeat",popup:"#ede7da url("+xt+") repeat"}],fonts:["Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif","PingFangSC-Regular, -apple-system, Simsun","Kaiti"]},Ut={class:"setting-list"},Dt={class:"theme-list"},Qt=["onClick"],Vt={key:0,class:"iconfont"},Ft={key:1,class:"moon-icon"},Pt={class:"font-list"},Mt=["onClick"],Lt={class:"font-list"},Rt={style:{"text-align":"right",margin:"0"}},Kt={class:"font-size"},zt={class:"resize"},Ht={class:"lang"},Ot={class:"letter-spacing"},Wt={class:"resize"},Nt={class:"lang"},Tt={class:"line-spacing"},Jt={class:"resize"},Gt={class:"lang"},qt={class:"paragraph-spacing"},Zt={class:"resize"},Yt={class:"resize"},jt={class:"lang"},Xt={key:0,class:"read-width"},_t={class:"resize"},$t={class:"lang"},eo={class:"paragraph-spacing"},to={class:"resize"},oo={class:"resize"},no={class:"lang"},so={class:"infinite-loading"},ao=ce({__name:"ReadSettings",setup(c){const s=me(),A=je(()=>ne.saveReadConfig(s.config),500);be(()=>s.config,()=>{A()},{deep:2});const f=l(()=>s.theme),n=l(()=>s.isNight),w=l(()=>f.value==6?"":""),m=[{background:"rgba(250, 245, 235, 0.8)"},{background:"rgba(245, 234, 204, 0.8)"},{background:"rgba(230, 242, 230, 0.8)"},{background:"rgba(228, 241, 245, 0.8)"},{background:"rgba(245, 228, 228, 0.8)"},{background:"rgba(224, 224, 224, 0.8)"},{background:"rgba(0, 0, 0, 0.5)"}],y=l(()=>({background:oe.themes[f.value].popup})),h=M=>{s.config.theme=M},F=D(["雅黑","宋体","楷书"]),P=M=>{s.config.font=M},x=l(()=>s.config.font),S=D(s.config.customFontName),V=D(!1),U=()=>{V.value=!1,s.config.font=-1,s.config.customFontName=S.value},C=()=>{V.value=!1,Re.prompt("请输入 字体网络链接","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^https?:.+$/,inputErrorMessage:"url 形式不正确",beforeClose:(M,e,N)=>{if(M==="confirm"){e.confirmButtonLoading=!0,e.confirmButtonText="下载中……";const Y=e.inputValue;if(typeof FontFace!="function")return R.error("浏览器不支持FontFace"),N();const _=new FontFace(S.value,`url("${Y}")`);document.fonts.add(_),_.load().then(function(){e.confirmButtonLoading=!1,R.info("字体加载成功!"),U(),N()}).catch(function(E){throw e.confirmButtonLoading=!1,e.confirmButtonText="确定",R.error("下载失败,请检查您输入的 url"),E})}else N()}})},I=l(()=>s.config.fontSize),b=()=>{s.config.fontSize<48&&(s.config.fontSize+=2)},v=()=>{s.config.fontSize>12&&(s.config.fontSize-=2)},u=l(()=>s.config.spacing),i=()=>{s.config.spacing.letter-=.01},d=()=>{s.config.spacing.letter+=.01},B=()=>{s.config.spacing.line-=.1},W=()=>{s.config.spacing.line+=.1},ve=()=>{s.config.spacing.paragraph-=.1},de=()=>{s.config.spacing.paragraph+=.1},Be=l(()=>s.config.readWidth),ue=()=>{s.config.readWidth+160+2*68>window.innerWidth||(s.config.readWidth+=160)},ke=()=>{s.config.readWidth>640&&(s.config.readWidth-=160)},he=l(()=>s.config.jumpDuration),j=()=>{s.config.jumpDuration+=100},Ce=()=>{s.config.jumpDuration!==0&&(s.config.jumpDuration-=100)},ge=l(()=>s.config.infiniteLoading),X=M=>{s.config.infiniteLoading=M};return(M,e)=>{const N=Ge,Y=Ye,_=Le;return g(),p("div",{class:Q(["settings-wrapper",{night:a(n),day:!a(n)}]),style:Z(a(y))},[e[51]||(e[51]=t("div",{class:"settings-title"},"设置",-1)),t("div",Ut,[t("ul",null,[t("li",Dt,[e[7]||(e[7]=t("i",null,"阅读主题",-1)),(g(),p(se,null,le(m,(E,L)=>t("span",{class:Q(["theme-item",{selected:a(f)==L}]),key:L,style:Z(E),ref_for:!0,ref:"themes",onClick:T=>h(L)},[L<6?(g(),p("em",Vt,"")):(g(),p("em",Ft,K(a(w)),1))],14,Qt)),64))]),t("li",Pt,[e[8]||(e[8]=t("i",null,"正文字体",-1)),(g(!0),p(se,null,le(a(F),(E,L)=>(g(),p("span",{class:Q(["font-item",{selected:a(x)==L}]),key:L,onClick:T=>P(L)},K(E),11,Mt))),128))]),t("li",Lt,[e[14]||(e[14]=t("i",null,"自定字体",-1)),H(N,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:z(()=>[qe(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":e[0]||(e[0]=E=>fe(S)?S.value=E:null),placeholder:"请输入自定义的字体名称"},null,512),[[Ze,a(S)]])]),_:1}),H(_,{placement:"top",width:"270",trigger:"click",visible:a(V),"onUpdate:visible":e[4]||(e[4]=E=>fe(V)?V.value=E:null)},{reference:z(()=>[...e[12]||(e[12]=[t("span",{type:"text",class:"font-item"},"保存",-1)])]),default:z(()=>[e[13]||(e[13]=t("p",null," 已经安装在您的设备上的字体请确认输入的字体名称完整无误,或者从网络下载字体。 ",-1)),t("div",Rt,[H(Y,{size:"small",plain:"",onClick:e[1]||(e[1]=E=>V.value=!1)},{default:z(()=>[...e[9]||(e[9]=[q("取消",-1)])]),_:1}),H(Y,{type:"primary",size:"small",onClick:e[2]||(e[2]=E=>U())},{default:z(()=>[...e[10]||(e[10]=[q("确定",-1)])]),_:1}),H(Y,{type:"primary",size:"small",onClick:e[3]||(e[3]=E=>C())},{default:z(()=>[...e[11]||(e[11]=[q("网络下载",-1)])]),_:1})])]),_:1},8,["visible"])]),t("li",Kt,[e[20]||(e[20]=t("i",null,"字体大小",-1)),t("div",zt,[t("span",{class:"less",onClick:v},[...e[15]||(e[15]=[t("em",{class:"iconfont"},"",-1)])]),e[17]||(e[17]=t("b",null,null,-1)),e[18]||(e[18]=q()),t("span",Ht,K(a(I)),1),e[19]||(e[19]=t("b",null,null,-1)),t("span",{class:"more",onClick:b},[...e[16]||(e[16]=[t("em",{class:"iconfont"},"",-1)])])])]),t("li",Ot,[e[26]||(e[26]=t("i",null,"字距",-1)),t("div",Wt,[t("span",{class:"less",onClick:i},[...e[21]||(e[21]=[t("em",{class:"iconfont"},"",-1)])]),e[23]||(e[23]=t("b",null,null,-1)),e[24]||(e[24]=q()),t("span",Nt,K(a(u).letter.toFixed(2)),1),e[25]||(e[25]=t("b",null,null,-1)),t("span",{class:"more",onClick:d},[...e[22]||(e[22]=[t("em",{class:"iconfont"},"",-1)])])])]),t("li",Tt,[e[32]||(e[32]=t("i",null,"行距",-1)),t("div",Jt,[t("span",{class:"less",onClick:B},[...e[27]||(e[27]=[t("em",{class:"iconfont"},"",-1)])]),e[29]||(e[29]=t("b",null,null,-1)),e[30]||(e[30]=q()),t("span",Gt,K(a(u).line.toFixed(1)),1),e[31]||(e[31]=t("b",null,null,-1)),t("span",{class:"more",onClick:W},[...e[28]||(e[28]=[t("em",{class:"iconfont"},"",-1)])])])]),t("li",qt,[e[37]||(e[37]=t("i",null,"段距",-1)),t("div",Zt,[t("div",Yt,[t("span",{class:"less",onClick:ve},[...e[33]||(e[33]=[t("em",{class:"iconfont"},"",-1)])]),e[35]||(e[35]=t("b",null,null,-1)),t("span",jt,K(a(u).paragraph.toFixed(1)),1),e[36]||(e[36]=t("b",null,null,-1)),t("span",{class:"more",onClick:de},[...e[34]||(e[34]=[t("em",{class:"iconfont"},"",-1)])])])])]),a(s).miniInterface?pe("",!0):(g(),p("li",Xt,[e[43]||(e[43]=t("i",null,"页面宽度",-1)),t("div",_t,[t("span",{class:"less",onClick:ke},[...e[38]||(e[38]=[t("em",{class:"iconfont"},"",-1)])]),e[40]||(e[40]=t("b",null,null,-1)),e[41]||(e[41]=q()),t("span",$t,K(a(Be)),1),e[42]||(e[42]=t("b",null,null,-1)),t("span",{class:"more",onClick:ue},[...e[39]||(e[39]=[t("em",{class:"iconfont"},"",-1)])])])])),t("li",eo,[e[49]||(e[49]=t("i",null,"翻页速度",-1)),t("div",to,[t("div",oo,[t("span",{class:"less",onClick:Ce},[...e[44]||(e[44]=[t("em",{class:"iconfont"},"",-1)])]),e[46]||(e[46]=t("b",null,null,-1)),e[47]||(e[47]=q()),t("span",no,K(a(he)),1),e[48]||(e[48]=t("b",null,null,-1)),t("span",{class:"more",onClick:j},[...e[45]||(e[45]=[t("em",{class:"iconfont"},"",-1)])])])])]),t("li",so,[e[50]||(e[50]=t("i",null,"无限加载",-1)),(g(),p("span",{class:Q(["infinite-loading-item",{selected:a(ge)==!1}]),key:0,onClick:e[5]||(e[5]=E=>X(!1))},"关闭",2)),(g(),p("span",{class:Q(["infinite-loading-item",{selected:a(ge)==!0}]),key:1,onClick:e[6]||(e[6]=E=>X(!0))},"开启",2))])])])],6)}}}),io=Ae(ao,[["__scopeId","data-v-dd7cfcb2"]]),ro={class:"wrapper"},lo=["onClick"],co=ce({__name:"CatalogItem",props:{index:{},source:{},gotoChapter:{type:Function},currentChapterIndex:{}},setup(c){const s=c,A=n=>n==s.currentChapterIndex,f=l(()=>{const n=s.source;return"catas"in n?n.catas:[s.source]});return(n,w)=>(g(),p("div",ro,[(g(!0),p(se,null,le(a(f),m=>(g(),p("div",{class:Q(["cata-text",{selected:A(m.index)}]),key:m.url,onClick:y=>c.gotoChapter(m)},K(m.title),11,lo))),128))]))}}),Ao=Ae(co,[["__scopeId","data-v-a892cd6d"]]),uo=ce({__name:"PopCatalog",emits:["getContent"],setup(c,{emit:s}){const A=me(),{catalog:f,popCataVisible:n,miniInterface:w}=Ke(A),m=l(()=>A.theme),y=l(()=>A.theme),h=l(()=>({background:oe.themes[y.value].popup})),F=l(()=>{const C=f.value;if(w.value)return C;const I=Math.ceil(C.length/2),b=new Array(I);let v=0;for(;vA.readingBook.chapterIndex,set:C=>A.readingBook.chapterIndex=C}),S=l(()=>{const C=x.value;return w.value?C:Math.floor(C/2)});Xe(()=>{n.value&&P.value.scrollToIndex(S.value)});const V=s,U=C=>{const I=f.value.indexOf(C);x.value=I,A.setPopCataVisible(!1),A.setContentLoading(!0),A.saveBookProgress(),V("getContent",I)};return(C,I)=>(g(),p("div",{class:Q({"cata-wrapper":!0,visible:a(n)}),style:Z(a(h))},[I[0]||(I[0]=t("div",{class:"title"},"目录",-1)),H(a(_e),{style:{height:"300px",overflow:"auto"},class:Q({night:a(m),day:!a(m)}),ref_key:"virtualListRef",ref:P,"data-key":"index","wrap-class":"data-wrapper","item-class":"cata","data-sources":a(F),"data-component":Ao,"estimate-size":40,"extra-props":{gotoChapter:U,currentChapterIndex:a(x)}},null,8,["class","data-sources","extra-props"])],6))}}),go=Ae(uo,[["__scopeId","data-v-6cab38af"]]),po={class:"tools"},fo={class:"tools"},mo={key:0},vo={key:0},Bo={class:"content"},ko=["chapterIndex"],ho=ce({__name:"BookChapter",setup(c){const s=D(),{isLoading:A,loadingWrapper:f}=nt(s,"正在获取信息"),n=me(),{catalog:w,popCataVisible:m,readSettingsVisible:y,miniInterface:h,showContent:F,bookProgress:P,theme:x,isNight:S}=Ke(n),V=l({get:()=>n.readingBook.chapterPos,set:o=>n.readingBook.chapterPos=o}),U=l({get:()=>n.readingBook.chapterIndex,set:o=>n.readingBook.chapterIndex=o}),C=l({get:()=>n.readingBook.isSeachBook,set:o=>n.readingBook.isSeachBook=o});be(()=>n.readingBook,o=>{localStorage.setItem("readingRecent",JSON.stringify(o)),sessionStorage.setItem("chapterIndex",o.chapterIndex.toString()),sessionStorage.setItem("chapterPos",o.chapterPos.toString())},{deep:1});const I=l(()=>n.config.infiniteLoading);let b;const v=D();De(()=>{I.value?b==null||b.observe(v.value):b==null||b.disconnect()});const u=()=>{const o=T.value.slice(-1)[0].index;w.value.length-1>o&&(ae(o+1,!1),n.saveBookProgress())},i=o=>{if(!A.value)for(const{isIntersecting:r}of o){if(!r)return;u()}},d=l(()=>n.config.font>=0?oe.fonts[n.config.font]:n.config.customFontName),B=l(()=>n.config.fontSize+"px"),W=l(()=>oe.themes[x.value].body),ve=l(()=>oe.themes[x.value].content),de=l(()=>oe.themes[x.value].popup),Be=l(()=>h.value?window.innerWidth+"px":n.config.readWidth-130+"px"),ue=l(()=>h.value?window.innerWidth-33:n.config.readWidth-33),ke=l(()=>({background:W.value})),he=l(()=>({background:ve.value,width:Be.value})),j=D(!1),Ce=l(()=>({background:de.value,marginLeft:h.value?0:-(n.config.readWidth/2+68)+"px",display:h.value&&!j.value?"none":"block"})),ge=l(()=>({background:de.value,marginRight:h.value?0:-(n.config.readWidth/2+52)+"px",display:h.value&&!j.value?"none":"block"})),X=()=>{n.setMiniInterface(window.innerWidth<776);const o=n.config.readWidth;M(o)},M=o=>{n.miniInterface||(o<640&&(n.config.readWidth=640),o+2*68>window.innerWidth&&(n.config.readWidth-=160))};be(()=>n.config.readWidth,o=>M(o));const e=D(),N=D(),Y=()=>{te(e.value)},_=()=>{te(N.value)},E=$e(),L=()=>{E.push("/")},T=D([]),$=D(!0),ae=(o,r=!0,O=0)=>{r&&(n.setShowContent(!1),te(e.value,{duration:0}),we(o,O),T.value=[]);const J=n.readingBook.bookUrl,{title:G,index:re}=w.value[o];f(ne.getBookContent(J,re).then(k=>{if(k.data.isSuccess){const Te=k.data.data.split(/\n+/);T.value.push({index:o,content:Te,title:G}),r&&He(O)}else{R({message:k.data.errorMsg,type:"error"});const ee=[k.data.errorMsg];T.value.push({index:o,content:ee,title:G})}if(n.setContentLoading(!0),$.value=!1,n.setShowContent(!0),!k.data.isSuccess)throw k.data},k=>{const ee=["获取章节内容失败!"];throw T.value.push({index:o,content:ee,title:G}),n.setShowContent(!0),k}))},ze=D(),ye=D(),He=o=>{Me(()=>{ye.value.length===1&&ye.value[0].scrollToReadedLength(o)})},Oe=et(()=>n.saveBookProgress(),6e4),We=(o,r)=>{we(o,r),Oe()};De(()=>{var o;document.title=((o=w.value[U.value])==null?void 0:o.title)||document.title});const we=(o,r)=>{U.value=o,V.value=r},Se=()=>{const o=P.value;document.visibilityState=="hidden"&&o&&n.saveBookProgress()},Ee=()=>{n.setContentLoading(!0);const o=U.value+1;typeof w.value[o]<"u"?(R({message:"下一章",type:"info"}),ae(o),n.saveBookProgress()):R({message:"本章是最后一章",type:"error"})},xe=()=>{n.setContentLoading(!0);const o=U.value-1;typeof w.value[o]<"u"?(R({message:"上一章",type:"info"}),ae(o),n.saveBookProgress()):R({message:"本章是第一章",type:"error"})};let ie=!0;const Ie=o=>{if(ie)switch(o.key){case"ArrowLeft":o.stopPropagation(),o.preventDefault(),xe();break;case"ArrowRight":o.stopPropagation(),o.preventDefault(),Ee();break;case"ArrowUp":o.stopPropagation(),o.preventDefault(),document.documentElement.scrollTop===0?R.warning("已到达页面顶部"):(ie=!1,te(0-document.documentElement.clientHeight+100,{duration:n.config.jumpDuration,callback:()=>ie=!0}));break;case"ArrowDown":o.stopPropagation(),o.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?R.warning("已到达页面底部"):(ie=!1,te(document.documentElement.clientHeight-100,{duration:n.config.jumpDuration,callback:()=>ie=!0}));break}},Ue=o=>{(o.key==="ArrowUp"||o.key==="ArrowDown")&&(o.preventDefault(),o.stopPropagation())};Fe(async()=>{await n.loadWebConfig();const o=sessionStorage.getItem("bookUrl"),r=sessionStorage.getItem("bookName"),O=sessionStorage.getItem("bookAuthor"),J=Number(sessionStorage.getItem("chapterIndex")||0),G=Number(sessionStorage.getItem("chapterPos")||0),re=sessionStorage.getItem("isSeachBook")==="true";if(Ve(o)||Ve(r)||O===null)return R.warning("书籍信息为空,即将自动返回书架页面..."),setTimeout(L,500);const k={bookUrl:o,name:r,author:O,chapterIndex:J,chapterPos:G,isSeachBook:re};X(),window.addEventListener("resize",X),f(n.loadWebCatalog(k).then(ee=>{n.setReadingBook(k),ae(J,!0,G),window.addEventListener("keyup",Ie),window.addEventListener("keydown",Ue),document.addEventListener("visibilitychange",Se),b=new IntersectionObserver(i,{rootMargin:"-100% 0% 20% 0%"}),I.value===!0&&b.observe(v.value),document.title="...",document.title=r+" | "+ee[J].title}))}),Pe(()=>{window.removeEventListener("keyup",Ie),window.removeEventListener("keydown",Ue),window.removeEventListener("resize",X),document.removeEventListener("visibilitychange",Se),y.value=!1,m.value=!1,b==null||b.disconnect(),b=null});const Ne=async()=>{const o=n.readingBook;o.isSeachBook===!0&&await Re.confirm(`是否将《${o.name}》放入书架?`,"放入书架",{confirmButtonText:"确认",cancelButtonText:"否",type:"info",closeOnHashChange:!1}).then(()=>{C.value=!1}).catch(async()=>{await ne.deleteBook(o)}).finally(()=>sessionStorage.removeItem("isSeachBook"))};return tt(async(o,r,O)=>{window.removeEventListener("keyup",Ie),await Ne(),O()}),(o,r)=>{const O=go,J=Le,G=io,re=At;return g(),p("div",{class:Q(["chapter-wrapper",{night:a(S),day:!a(S)}]),style:Z(a(ke)),onClick:r[2]||(r[2]=k=>j.value=!a(j))},[t("div",{class:"tool-bar",style:Z(a(Ce))},[t("div",po,[H(J,{placement:"right",width:a(ue),trigger:"click","show-arrow":!1,visible:a(m),"onUpdate:visible":r[0]||(r[0]=k=>fe(m)?m.value=k:null),"popper-class":"pop-cata"},{reference:z(()=>[t("div",{class:Q(["tool-icon",{"no-point":!1}])},[...r[3]||(r[3]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"目录",-1)])])]),default:z(()=>[H(O,{onGetContent:ae,class:"popup"})]),_:1},8,["width","visible"]),H(J,{placement:"right",width:a(ue),trigger:"click","show-arrow":!1,visible:a(y),"onUpdate:visible":r[1]||(r[1]=k=>fe(y)?y.value=k:null),"popper-class":"pop-setting"},{reference:z(()=>[t("div",{class:Q(["tool-icon",{"no-point":a($)}])},[...r[4]||(r[4]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"设置",-1)])],2)]),default:z(()=>[H(G,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:L},[...r[5]||(r[5]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"书架",-1)])]),t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:Y},[...r[6]||(r[6]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"顶部",-1)])],2),t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:_},[...r[7]||(r[7]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"底部",-1)])],2)])],4),t("div",{class:"read-bar",style:Z(a(ge))},[t("div",fo,[t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:xe},[r[8]||(r[8]=t("div",{class:"iconfont"},"",-1)),a(h)?(g(),p("span",mo,"上一章")):pe("",!0)],2),t("div",{class:Q(["tool-icon",{"no-point":a($)}]),onClick:Ee},[a(h)?(g(),p("span",vo,"下一章")):pe("",!0),r[9]||(r[9]=t("div",{class:"iconfont"},"",-1))],2)])],4),r[10]||(r[10]=t("div",{class:"chapter-bar"},null,-1)),t("div",{class:"chapter",ref_key:"content",ref:s,style:Z(a(he))},[t("div",Bo,[t("div",{class:"top-bar",ref_key:"top",ref:e},null,512),(g(!0),p(se,null,le(a(T),k=>(g(),p("div",{key:k.index,chapterIndex:k.index,ref_for:!0,ref_key:"chapter",ref:ze},[a(F)?(g(),ot(re,{key:0,ref_for:!0,ref_key:"chapterRef",ref:ye,chapterIndex:k.index,contents:k.content,title:k.title,spacing:a(n).config.spacing,fontSize:a(B),fontFamily:a(d),onReadedLengthChange:We},null,8,["chapterIndex","contents","title","spacing","fontSize","fontFamily"])):pe("",!0)],8,ko))),128)),t("div",{class:"loading",ref_key:"loading",ref:v},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:N},null,512)])],4)],6)}}}),bo=Ae(ho,[["__scopeId","data-v-fff9fad7"]]);export{bo as default}; diff --git a/app/src/main/assets/web/vue/assets/BookShelf-Ov6vQAks.js b/app/src/main/assets/web/vue/assets/BookShelf-DIQtBULC.js similarity index 99% rename from app/src/main/assets/web/vue/assets/BookShelf-Ov6vQAks.js rename to app/src/main/assets/web/vue/assets/BookShelf-DIQtBULC.js index 47a1c3ccb..0bda07682 100644 --- a/app/src/main/assets/web/vue/assets/BookShelf-Ov6vQAks.js +++ b/app/src/main/assets/web/vue/assets/BookShelf-DIQtBULC.js @@ -1 +1 @@ -import{d as H,a4 as j,o as d,e as h,h as e,F as N,R as W,z as p,c as $,w as M,g as P,a5 as J,P as x,u as o,C as V,Q as ee,a6 as te,a7 as se,U as oe,f as I,O as ae,G as ne,H as re,D as ie,y as b,M as C,s as le,n as z,a8 as ce}from"./vendor-KSDcS24u.js";import{d as de,A as B,i as ue,_ as O,u as he,a as pe,l as ge,s as ve,p as me,b as D,v as fe}from"./index-ByFGW78w.js";import{u as _e}from"./loading-C4J6hIxs.js";const we={class:"books-wrapper"},Be={class:"wrapper"},ke=["onClick"],ye={class:"cover-img"},Ae=["src"],Se={class:"info"},xe={class:"name"},Ie={class:"sub"},Ce={class:"author"},Re={key:0,class:"tags"},Ee={key:1,class:"update-info"},Le={class:"size"},be={class:"date"},ze={key:0,class:"intro"},Me={key:1,class:"dur-chapter"},Pe={class:"last-chapter"},Ve=H({__name:"BookItems",props:{books:{},isSearch:{type:Boolean}},emits:["bookClick"],setup(_,{emit:i}){j(g=>({v2a51eeb0:o(A)}));const k=_,R=i,a=g=>R("bookClick",g),y=({bookUrl:g,coverUrl:r})=>r===void 0?B.getProxyCoverUrl(g):ue(r)?B.getProxyCoverUrl(r):r,E=g=>{const r=g.target;r.src=B.getProxyCoverUrl(r.src)},A=V(()=>k.isSearch?"space-between":"flex-start");return(g,r)=>{const v=J;return d(),h("div",we,[e("div",Be,[(d(!0),h(N,null,W(_.books,n=>{var l;return d(),h("div",{class:"book",key:n.bookUrl,onClick:f=>a(n)},[e("div",ye,[(d(),h("img",{class:"cover",src:y(n),key:n.coverUrl,onErrorOnce:E,alt:"",loading:"lazy"},null,40,Ae))]),e("div",Se,[e("div",xe,p(n.name),1),e("div",Ie,[e("div",Ce,p(n.author),1),_.isSearch?(d(),h("div",Re,[(d(!0),h(N,null,W((l=n.kind)==null?void 0:l.split(",").slice(0,2),f=>(d(),$(v,{key:f},{default:M(()=>[P(p(f),1)]),_:2},1024))),128))])):x("",!0),_.isSearch?x("",!0):(d(),h("div",Ee,[r[0]||(r[0]=e("div",{class:"dot"},"•",-1)),e("div",Le,"共"+p(n.totalChapterNum)+"章",1),r[1]||(r[1]=e("div",{class:"dot"},"•",-1)),e("div",be,p(o(de)(n.lastCheckTime)),1)]))]),_.isSearch?(d(),h("div",ze,p(n.intro),1)):x("",!0),_.isSearch?x("",!0):(d(),h("div",Me," 已读:"+p(n.durChapterTitle),1)),e("div",Pe,"最新:"+p(n.latestChapterTitle),1)])],8,ke)}),128))])])}}}),Te=O(Ve,[["__scopeId","data-v-0f5f0160"]]),Ue="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAECUlEQVRYR7WXTYhcRRDHq3pY9yKrYBQ8KBsjgvHgwRhiQBTjYZm4Xe8NusawhwS/o9GLoKhgBGPAgJd1NdGIXwtZTbRf9Rqzl6gHTVyDeIkIgnEOghAM6oKHzTJd0sO8Zaa338zb7NjwmJn++Ndv+lVVVyOsoM3Ozl69sLBAiHiDc26NUuoKv9w5d14p9aeI/DI4OMgjIyN/lJXFMhOttQ8BgBaR0TLzEXEGAKzW+lCv+V0BmLmGiLtF5M5eQrFxRPxaRCaI6LOi9YUAzPwGADxxMYYjayaJ6MkoZKyTmU8AwF19Mp7LfElEW0LNZTvAzIcBYFufjedy00T0QLt2B4AxZo9S6qX/yXhT1jn3cpqme3IbSwDM/DgAvNlu3Dm3Uyl1HAA2IOJ2EdleEu5Io9H4EBHPVCqVLSISRsMuInrLazUBpqamhoaGhr4TkRsDgLVpmtbzPmPMLQBwOwD4vvzxw8P5IyJztVrtVL4my7L1iPhTx7Yj/jw/P79pfHx8vgmQZdkLiPhK+O8GBgauqVarv5f819FpxpjLlVJ/hYMi8mKSJHubAMz8KwBcF1EYI6IjqwRIlFImonGWiNZhlmVVRDxWYGTVAMx8HwB8EtMXka1orT0gIo9GJrxNRLH+FW8IMx8EgEeW5QDEgx5gTkQ2Bk7yr9b60hVb6rKAmc8BwJWBne+x4P3XiWhtPwGstV9FzpSzHuBvALgsMHaaiDp2ZbUwWZZNIuKuQOcfD7AAAJeEcaq1Xr9ao+3rmdknnscCzQse4LdWEukYazQaa2q12vl+QTDztwCwOdCr+zA8iYi3RQwREdl+ADDz9QDwIwB0OLaInPJRcEhEHoyEyAmt9d39ALDW2lg1hYjv+lfgC4WJgkTxcJIkPcuqbpC+qgKATwvm7PYAGwDgdBeRZ4notYvZCWPMDqXUe13W3to8C6y10yJyv//u6zj/2R6ziPiRiBwt6xPMrBExFZEdRcYR8WOt9bb8MNoKAJ+3Jvtwed05d4dSKtz+c4h4VGsdrRWttZMici8AXFVix+4homNLBUmWZQcQMc/9x4mommXZ84i4t11MKbV5dHR06bxvH5uZmbnZOfdN6O0RmMNE1CxulgCstdeKyBcAcFPrVTyltZ4wxiSVSuXplkhda72zh9P1rClFZFOSJHMdAP5Hq3rxR6eH+IGIvIOuqFlr94nIc10WdRzxy6riAMJnr2nn3JlcME3TppMWNWvtfhF5pmB8WX0RvZgEEEtaYUUbM2KtfUdE/FUubNHipvBmZIxZp5TaDwBprlQGIHLqzSHiPq01x4B7Xk6Z2d8TfDwPlwFozfd1f90598Hi4uKrY2NjFwrzQVkP81nNi/byAWOMv8gOp2n6fhnt/wDqJrRWLmhIrwAAAABJRU5ErkJggg==",Ne={class:"navigation-wrapper"},We={class:"search-wrapper"},De={class:"bottom-wrapper"},He={class:"recent-wrapper"},Je={class:"reading-recent"},Oe={class:"setting-wrapper"},Ze={class:"setting-item"},Fe={class:"bottom-icons"},Ke={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},Ye={class:"bottom-icon"},Qe=["src"],qe=H({__name:"BookShelf",setup(_){const i=he(),k=V(()=>i.isNight),R=s=>{try{s!==void 0&&i.setConfig(s)}catch{z.info("阅读界面配置解析错误")}},a=C({name:"尚无阅读记录",author:"",bookUrl:"",chapterIndex:0,chapterPos:0,isSeachBook:!1}),y=C(),{showLoading:E,closeLoading:A,loadingWrapper:g,isLoading:r}=_e(y,"正在获取书籍信息"),v=le([]),n=V(()=>i.shelf),l=C(""),f=C(!1);ee(()=>{if(!(f.value&&l.value!="")){if(f.value=!1,v.value=[],l.value==""){v.value=n.value;return}v.value=n.value.filter(s=>s.name.includes(l.value)||s.author.includes(l.value))}});const T=()=>{l.value!=""&&(v.value=[],i.clearSearchBooks(),E(),f.value=!0,B.search(l.value,s=>{r&&A();try{i.setSearchBooks(s),v.value=i.searchBooks}catch(t){throw z.error("后端数据错误"),t}},()=>{A(),v.value.length==0&&z.info("搜索结果为空")}))},S=pe(),{connectStatus:Z,connectType:F,newConnect:K}=te(S),Y=()=>{ce.prompt("请输入 后端地址 ( 如:http://127.0.0.1:9527 或者通过内网穿透的地址)","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPlaceholder:ge,inputValidator:s=>fe(s),inputErrorMessage:"输入的格式不对",beforeClose:(s,t,m)=>{if(s==="confirm"){S.setNewConnect(!0),t.confirmButtonLoading=!0,t.confirmButtonText="校验中……";const c=new URL(t.inputValue).toString();B.getReadConfig(c).then(function(u){S.setNewConnect(!1),R(u),t.confirmButtonLoading=!1,i.clearSearchBooks(),ve(...me(c)),c===location.origin?localStorage.removeItem(D):localStorage.setItem(D,c),i.loadBookShelf(),m()}).catch(function(u){throw S.setNewConnect(!1),t.confirmButtonLoading=!1,t.confirmButtonText="确定",u})}else m()}})},Q=se(),q=async s=>{const t="respondTime"in s;t&&await B.saveBook(s);const{bookUrl:m,name:c,author:u,durChapterIndex:w=0,durChapterPos:L=0}=s;U(m,c,u,w,L,t)},U=(s,t,m,c,u,w=!1,L=!1)=>{if(t!=="尚无阅读记录"){if(L&&n.value.every(X=>X.bookUrl!==s)){l.value=t,T();return}sessionStorage.setItem("bookUrl",s),sessionStorage.setItem("bookName",t),sessionStorage.setItem("bookAuthor",m),sessionStorage.setItem("chapterIndex",String(c)),sessionStorage.setItem("chapterPos",String(u)),sessionStorage.setItem("isSeachBook",String(w)),a.value={name:t,author:m,bookUrl:s,chapterIndex:c,chapterPos:u,isSeachBook:w},localStorage.setItem("readingRecent",JSON.stringify(a.value)),Q.push({path:"/chapter"})}},G=async()=>{await i.loadWebConfig(),await i.saveBookProgress(),await i.loadBookShelf()};return oe(()=>{const s=localStorage.getItem("readingRecent");s!=null&&(a.value=JSON.parse(s),typeof a.value.chapterIndex>"u"&&(a.value.chapterIndex=0)),g(G())}),(s,t)=>{const m=ie,c=J,u=Te;return d(),h("div",{class:b({"index-wrapper":!0,night:o(k),day:!o(k)})},[e("div",Ne,[t[4]||(t[4]=e("div",{class:"navigation-title-wrapper"},[e("div",{class:"navigation-title"},"阅读"),e("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),e("div",We,[I(m,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:o(l),"onUpdate:modelValue":t[0]||(t[0]=w=>re(l)?l.value=w:null),class:"search-input","prefix-icon":o(ne),onKeyup:ae(T,["enter"])},null,8,["modelValue","prefix-icon"])]),e("div",De,[e("div",He,[t[2]||(t[2]=e("div",{class:"recent-title"},"最近阅读",-1)),e("div",Je,[I(c,{type:o(a).name=="尚无阅读记录"?"warning":"primary",class:b(["recent-book",{"no-point":o(a).bookUrl==""}]),size:"large",onClick:t[1]||(t[1]=w=>U(o(a).bookUrl,o(a).name,o(a).author,o(a).chapterIndex,o(a).chapterPos,o(a).isSeachBook,!0))},{default:M(()=>[P(p(o(a).name),1)]),_:1},8,["type","class"])])]),e("div",Oe,[t[3]||(t[3]=e("div",{class:"setting-title"},"基本设定",-1)),e("div",Ze,[I(c,{type:o(F),size:"large",class:b(["setting-connect",{"no-point":o(K)}]),onClick:Y},{default:M(()=>[P(p(o(Z)),1)]),_:1},8,["type","class"])])])]),e("div",Fe,[e("a",Ke,[e("div",Ye,[e("img",{src:o(Ue),alt:""},null,8,Qe)])])])]),e("div",{class:"shelf-wrapper",ref_key:"shelfWrapper",ref:y},[I(u,{books:o(v),onBookClick:q,isSearch:o(f)},null,8,["books","isSearch"])],512)],2)}}}),$e=O(qe,[["__scopeId","data-v-5061e9c0"]]);export{$e as default}; +import{d as H,a4 as j,o as d,e as h,h as e,F as N,R as W,z as p,c as $,w as M,g as P,a5 as J,P as x,u as o,C as V,Q as ee,a6 as te,a7 as se,U as oe,f as I,O as ae,G as ne,H as re,D as ie,y as b,M as C,s as le,n as z,a8 as ce}from"./vendor-KSDcS24u.js";import{d as de,A as B,i as ue,_ as O,u as he,a as pe,l as ge,s as ve,p as me,b as D,v as fe}from"./index-Wr40-hHf.js";import{u as _e}from"./loading-C4J6hIxs.js";const we={class:"books-wrapper"},Be={class:"wrapper"},ke=["onClick"],ye={class:"cover-img"},Ae=["src"],Se={class:"info"},xe={class:"name"},Ie={class:"sub"},Ce={class:"author"},Re={key:0,class:"tags"},Ee={key:1,class:"update-info"},Le={class:"size"},be={class:"date"},ze={key:0,class:"intro"},Me={key:1,class:"dur-chapter"},Pe={class:"last-chapter"},Ve=H({__name:"BookItems",props:{books:{},isSearch:{type:Boolean}},emits:["bookClick"],setup(_,{emit:i}){j(g=>({v2a51eeb0:o(A)}));const k=_,R=i,a=g=>R("bookClick",g),y=({bookUrl:g,coverUrl:r})=>r===void 0?B.getProxyCoverUrl(g):ue(r)?B.getProxyCoverUrl(r):r,E=g=>{const r=g.target;r.src=B.getProxyCoverUrl(r.src)},A=V(()=>k.isSearch?"space-between":"flex-start");return(g,r)=>{const v=J;return d(),h("div",we,[e("div",Be,[(d(!0),h(N,null,W(_.books,n=>{var l;return d(),h("div",{class:"book",key:n.bookUrl,onClick:f=>a(n)},[e("div",ye,[(d(),h("img",{class:"cover",src:y(n),key:n.coverUrl,onErrorOnce:E,alt:"",loading:"lazy"},null,40,Ae))]),e("div",Se,[e("div",xe,p(n.name),1),e("div",Ie,[e("div",Ce,p(n.author),1),_.isSearch?(d(),h("div",Re,[(d(!0),h(N,null,W((l=n.kind)==null?void 0:l.split(",").slice(0,2),f=>(d(),$(v,{key:f},{default:M(()=>[P(p(f),1)]),_:2},1024))),128))])):x("",!0),_.isSearch?x("",!0):(d(),h("div",Ee,[r[0]||(r[0]=e("div",{class:"dot"},"•",-1)),e("div",Le,"共"+p(n.totalChapterNum)+"章",1),r[1]||(r[1]=e("div",{class:"dot"},"•",-1)),e("div",be,p(o(de)(n.lastCheckTime)),1)]))]),_.isSearch?(d(),h("div",ze,p(n.intro),1)):x("",!0),_.isSearch?x("",!0):(d(),h("div",Me," 已读:"+p(n.durChapterTitle),1)),e("div",Pe,"最新:"+p(n.latestChapterTitle),1)])],8,ke)}),128))])])}}}),Te=O(Ve,[["__scopeId","data-v-0f5f0160"]]),Ue="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAECUlEQVRYR7WXTYhcRRDHq3pY9yKrYBQ8KBsjgvHgwRhiQBTjYZm4Xe8NusawhwS/o9GLoKhgBGPAgJd1NdGIXwtZTbRf9Rqzl6gHTVyDeIkIgnEOghAM6oKHzTJd0sO8Zaa338zb7NjwmJn++Ndv+lVVVyOsoM3Ozl69sLBAiHiDc26NUuoKv9w5d14p9aeI/DI4OMgjIyN/lJXFMhOttQ8BgBaR0TLzEXEGAKzW+lCv+V0BmLmGiLtF5M5eQrFxRPxaRCaI6LOi9YUAzPwGADxxMYYjayaJ6MkoZKyTmU8AwF19Mp7LfElEW0LNZTvAzIcBYFufjedy00T0QLt2B4AxZo9S6qX/yXhT1jn3cpqme3IbSwDM/DgAvNlu3Dm3Uyl1HAA2IOJ2EdleEu5Io9H4EBHPVCqVLSISRsMuInrLazUBpqamhoaGhr4TkRsDgLVpmtbzPmPMLQBwOwD4vvzxw8P5IyJztVrtVL4my7L1iPhTx7Yj/jw/P79pfHx8vgmQZdkLiPhK+O8GBgauqVarv5f819FpxpjLlVJ/hYMi8mKSJHubAMz8KwBcF1EYI6IjqwRIlFImonGWiNZhlmVVRDxWYGTVAMx8HwB8EtMXka1orT0gIo9GJrxNRLH+FW8IMx8EgEeW5QDEgx5gTkQ2Bk7yr9b60hVb6rKAmc8BwJWBne+x4P3XiWhtPwGstV9FzpSzHuBvALgsMHaaiDp2ZbUwWZZNIuKuQOcfD7AAAJeEcaq1Xr9ao+3rmdknnscCzQse4LdWEukYazQaa2q12vl+QTDztwCwOdCr+zA8iYi3RQwREdl+ADDz9QDwIwB0OLaInPJRcEhEHoyEyAmt9d39ALDW2lg1hYjv+lfgC4WJgkTxcJIkPcuqbpC+qgKATwvm7PYAGwDgdBeRZ4notYvZCWPMDqXUe13W3to8C6y10yJyv//u6zj/2R6ziPiRiBwt6xPMrBExFZEdRcYR8WOt9bb8MNoKAJ+3Jvtwed05d4dSKtz+c4h4VGsdrRWttZMici8AXFVix+4homNLBUmWZQcQMc/9x4mommXZ84i4t11MKbV5dHR06bxvH5uZmbnZOfdN6O0RmMNE1CxulgCstdeKyBcAcFPrVTyltZ4wxiSVSuXplkhda72zh9P1rClFZFOSJHMdAP5Hq3rxR6eH+IGIvIOuqFlr94nIc10WdRzxy6riAMJnr2nn3JlcME3TppMWNWvtfhF5pmB8WX0RvZgEEEtaYUUbM2KtfUdE/FUubNHipvBmZIxZp5TaDwBprlQGIHLqzSHiPq01x4B7Xk6Z2d8TfDwPlwFozfd1f90598Hi4uKrY2NjFwrzQVkP81nNi/byAWOMv8gOp2n6fhnt/wDqJrRWLmhIrwAAAABJRU5ErkJggg==",Ne={class:"navigation-wrapper"},We={class:"search-wrapper"},De={class:"bottom-wrapper"},He={class:"recent-wrapper"},Je={class:"reading-recent"},Oe={class:"setting-wrapper"},Ze={class:"setting-item"},Fe={class:"bottom-icons"},Ke={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},Ye={class:"bottom-icon"},Qe=["src"],qe=H({__name:"BookShelf",setup(_){const i=he(),k=V(()=>i.isNight),R=s=>{try{s!==void 0&&i.setConfig(s)}catch{z.info("阅读界面配置解析错误")}},a=C({name:"尚无阅读记录",author:"",bookUrl:"",chapterIndex:0,chapterPos:0,isSeachBook:!1}),y=C(),{showLoading:E,closeLoading:A,loadingWrapper:g,isLoading:r}=_e(y,"正在获取书籍信息"),v=le([]),n=V(()=>i.shelf),l=C(""),f=C(!1);ee(()=>{if(!(f.value&&l.value!="")){if(f.value=!1,v.value=[],l.value==""){v.value=n.value;return}v.value=n.value.filter(s=>s.name.includes(l.value)||s.author.includes(l.value))}});const T=()=>{l.value!=""&&(v.value=[],i.clearSearchBooks(),E(),f.value=!0,B.search(l.value,s=>{r&&A();try{i.setSearchBooks(s),v.value=i.searchBooks}catch(t){throw z.error("后端数据错误"),t}},()=>{A(),v.value.length==0&&z.info("搜索结果为空")}))},S=pe(),{connectStatus:Z,connectType:F,newConnect:K}=te(S),Y=()=>{ce.prompt("请输入 后端地址 ( 如:http://127.0.0.1:9527 或者通过内网穿透的地址)","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPlaceholder:ge,inputValidator:s=>fe(s),inputErrorMessage:"输入的格式不对",beforeClose:(s,t,m)=>{if(s==="confirm"){S.setNewConnect(!0),t.confirmButtonLoading=!0,t.confirmButtonText="校验中……";const c=new URL(t.inputValue).toString();B.getReadConfig(c).then(function(u){S.setNewConnect(!1),R(u),t.confirmButtonLoading=!1,i.clearSearchBooks(),ve(...me(c)),c===location.origin?localStorage.removeItem(D):localStorage.setItem(D,c),i.loadBookShelf(),m()}).catch(function(u){throw S.setNewConnect(!1),t.confirmButtonLoading=!1,t.confirmButtonText="确定",u})}else m()}})},Q=se(),q=async s=>{const t="respondTime"in s;t&&await B.saveBook(s);const{bookUrl:m,name:c,author:u,durChapterIndex:w=0,durChapterPos:L=0}=s;U(m,c,u,w,L,t)},U=(s,t,m,c,u,w=!1,L=!1)=>{if(t!=="尚无阅读记录"){if(L&&n.value.every(X=>X.bookUrl!==s)){l.value=t,T();return}sessionStorage.setItem("bookUrl",s),sessionStorage.setItem("bookName",t),sessionStorage.setItem("bookAuthor",m),sessionStorage.setItem("chapterIndex",String(c)),sessionStorage.setItem("chapterPos",String(u)),sessionStorage.setItem("isSeachBook",String(w)),a.value={name:t,author:m,bookUrl:s,chapterIndex:c,chapterPos:u,isSeachBook:w},localStorage.setItem("readingRecent",JSON.stringify(a.value)),Q.push({path:"/chapter"})}},G=async()=>{await i.loadWebConfig(),await i.saveBookProgress(),await i.loadBookShelf()};return oe(()=>{const s=localStorage.getItem("readingRecent");s!=null&&(a.value=JSON.parse(s),typeof a.value.chapterIndex>"u"&&(a.value.chapterIndex=0)),g(G())}),(s,t)=>{const m=ie,c=J,u=Te;return d(),h("div",{class:b({"index-wrapper":!0,night:o(k),day:!o(k)})},[e("div",Ne,[t[4]||(t[4]=e("div",{class:"navigation-title-wrapper"},[e("div",{class:"navigation-title"},"阅读"),e("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),e("div",We,[I(m,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:o(l),"onUpdate:modelValue":t[0]||(t[0]=w=>re(l)?l.value=w:null),class:"search-input","prefix-icon":o(ne),onKeyup:ae(T,["enter"])},null,8,["modelValue","prefix-icon"])]),e("div",De,[e("div",He,[t[2]||(t[2]=e("div",{class:"recent-title"},"最近阅读",-1)),e("div",Je,[I(c,{type:o(a).name=="尚无阅读记录"?"warning":"primary",class:b(["recent-book",{"no-point":o(a).bookUrl==""}]),size:"large",onClick:t[1]||(t[1]=w=>U(o(a).bookUrl,o(a).name,o(a).author,o(a).chapterIndex,o(a).chapterPos,o(a).isSeachBook,!0))},{default:M(()=>[P(p(o(a).name),1)]),_:1},8,["type","class"])])]),e("div",Oe,[t[3]||(t[3]=e("div",{class:"setting-title"},"基本设定",-1)),e("div",Ze,[I(c,{type:o(F),size:"large",class:b(["setting-connect",{"no-point":o(K)}]),onClick:Y},{default:M(()=>[P(p(o(Z)),1)]),_:1},8,["type","class"])])])]),e("div",Fe,[e("a",Ke,[e("div",Ye,[e("img",{src:o(Ue),alt:""},null,8,Qe)])])])]),e("div",{class:"shelf-wrapper",ref_key:"shelfWrapper",ref:y},[I(u,{books:o(v),onBookClick:q,isSearch:o(f)},null,8,["books","isSearch"])],512)],2)}}}),$e=O(qe,[["__scopeId","data-v-5061e9c0"]]);export{$e as default}; diff --git a/app/src/main/assets/web/vue/assets/index-ByFGW78w.js b/app/src/main/assets/web/vue/assets/index-Wr40-hHf.js similarity index 99% rename from app/src/main/assets/web/vue/assets/index-ByFGW78w.js rename to app/src/main/assets/web/vue/assets/index-Wr40-hHf.js index fa61d5df1..9383c478d 100644 --- a/app/src/main/assets/web/vue/assets/index-ByFGW78w.js +++ b/app/src/main/assets/web/vue/assets/index-Wr40-hHf.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BookShelf-Ov6vQAks.js","./vendor-KSDcS24u.js","./vendor-CXe1BRiH.css","./loading-C4J6hIxs.js","./loading-DkQYEuap.css","./BookShelf-00b2QCsd.css","./BookChapter-Bydi3OgI.js","./BookChapter-BzD_l61U.css"])))=>i.map(i=>d[i]); -import{r as Ke,o as g,c as C,a as le,b as ae,d as K,e as E,F as N,f as h,E as We,u as i,l as V,w as p,g as y,h as f,i as Ce,j as He,k as Me,m as ce,t as Ue,n as k,p as me,s as Se,q as Fe,v as Be,x as qe,y as Ee,z as ee,A as ue,B as xe,C as A,D as te,G as Le,H as M,I as ze,J as Ge,K as fe,L as Ye,V as Qe,M as J,N as de,O as Xe,P as I,Q as Ze,R as W,S as Re,T as Ie,U as et,W as tt,X as ot,Y as z,Z as nt,_ as rt,$ as st,a0 as it,a1 as lt,a2 as at,a3 as ct}from"./vendor-KSDcS24u.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&n(c)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();const j=(e,o)=>{const t=e.__vccOpts||e;for(const[n,r]of o)t[n]=r;return t},ut={};function dt(e,o){const t=Ke("router-view");return g(),C(t)}const Te=j(ut,[["render",dt]]),pt="modulepreload",gt=function(e,o){return new URL(e,o).href},ye={},be=function(o,t,n){let r=Promise.resolve();if(t&&t.length>0){const c=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),_=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));r=Promise.allSettled(t.map(w=>{if(w=gt(w,n),w in ye)return;ye[w]=!0;const U=w.endsWith(".css"),x=U?'[rel="stylesheet"]':"";if(!!n)for(let b=c.length-1;b>=0;b--){const v=c[b];if(v.href===w&&(!U||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${w}"]${x}`))return;const l=document.createElement("link");if(l.rel=U?"stylesheet":pt,U||(l.as="script"),l.crossOrigin="",l.href=w,_&&l.setAttribute("nonce",_),document.head.appendChild(l),U)return new Promise((b,v)=>{l.addEventListener("load",b),l.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${w}`)))})}))}function s(c){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=c,window.dispatchEvent(a),!a.defaultPrevented)throw c}return r.then(c=>{for(const a of c||[])a.status==="rejected"&&s(a.reason);return o().catch(s)})},Ve=[{path:"/",name:"shelf",component:()=>be(()=>import("./BookShelf-Ov6vQAks.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)},{path:"/chapter",name:"chapter",component:()=>be(()=>import("./BookChapter-Bydi3OgI.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)}];le({history:ae(),routes:Ve});const ht={style:{"margin-top":"20px"}},mt=K({__name:"SourceHelp",setup(e){return(o,t)=>{const n=We,r=Ce;return g(),E(N,null,[h(n,{icon:i(V),href:"/help/#appHelp",target:"_blank"},{default:p(()=>[...t[0]||(t[0]=[y("APP帮助文档",-1)])]),_:1},8,["icon"]),t[19]||(t[19]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#ruleHelp",target:"_blank"},{default:p(()=>[...t[1]||(t[1]=[y("书源制作教程",-1)])]),_:1},8,["icon"]),t[20]||(t[20]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#jsHelp",target:"_blank"},{default:p(()=>[...t[2]||(t[2]=[y("js变量和函数",-1)])]),_:1},8,["icon"]),t[21]||(t[21]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#xpathHelp",target:"_blank"},{default:p(()=>[...t[3]||(t[3]=[y("xpath语法教程",-1)])]),_:1},8,["icon"]),t[22]||(t[22]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#regexHelp",target:"_blank"},{default:p(()=>[...t[4]||(t[4]=[y("正则表达式教程",-1)])]),_:1},8,["icon"]),t[23]||(t[23]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#txtTocRuleHelp",target:"_blank"},{default:p(()=>[...t[5]||(t[5]=[y("txt目录正则说明",-1)])]),_:1},8,["icon"]),t[24]||(t[24]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#debugHelp",target:"_blank"},{default:p(()=>[...t[6]||(t[6]=[y("书源调试说明",-1)])]),_:1},8,["icon"]),t[25]||(t[25]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#httpTTSHelp",target:"_blank"},{default:p(()=>[...t[7]||(t[7]=[y("在线朗读规则",-1)])]),_:1},8,["icon"]),t[26]||(t[26]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#webDavBookHelp",target:"_blank"},{default:p(()=>[...t[8]||(t[8]=[y(" WebDav书籍简明使用教程",-1)])]),_:1},8,["icon"]),t[27]||(t[27]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#webDavHelp",target:"_blank"},{default:p(()=>[...t[9]||(t[9]=[y(" WebDav备份教程",-1)])]),_:1},8,["icon"]),t[28]||(t[28]=f("br",null,null,-1)),h(n,{icon:i(V),href:"https://regexr-cn.com/",target:"_blank"},{default:p(()=>[...t[10]||(t[10]=[y("正则表达式在线验证工具",-1)])]),_:1},8,["icon"]),t[29]||(t[29]=f("br",null,null,-1)),f("div",ht,[f("span",null,[h(r,null,{default:p(()=>[...t[11]||(t[11]=[f("code",null,"^$()[]{}.?+*|",-1),y(" 这些是Java正则特殊符号,匹配需转义",-1)])]),_:1})]),t[15]||(t[15]=f("br",null,null,-1)),f("span",null,[h(r,null,{default:p(()=>[...t[12]||(t[12]=[f("code",null,"(?s)",-1),y(" 前缀表示跨行解析",-1)])]),_:1})]),t[16]||(t[16]=f("br",null,null,-1)),f("span",null,[h(r,null,{default:p(()=>[...t[13]||(t[13]=[f("code",null,"(?m)",-1),y(" 前缀表示逐行匹配",-1)])]),_:1})]),t[17]||(t[17]=f("br",null,null,-1)),f("span",null,[h(r,null,{default:p(()=>[...t[14]||(t[14]=[f("code",null,"(?i)",-1),y(" 前缀表示忽略大小写",-1)])]),_:1})]),t[18]||(t[18]=f("br",null,null,-1))])],64)}}}),St=j(mt,[["__scopeId","data-v-085627fb"]]),ft="remoteUrl",yt=1e3,B=He.create({baseURL:localStorage.getItem(ft)||location.origin,timeout:120*yt});let $="",pe="",ge=()=>{},H=()=>{};const bt=e=>H=e,_t=e=>{ge=e},kt=(e,o)=>{$=new URL(e).toString(),pe=new URL(o).toString(),B.defaults.baseURL=$},vt=async(e=$)=>{const{data:o}=await B.get("getReadConfig",{baseURL:e.toString(),timeout:3e3});if(o.isSuccess)try{return JSON.parse(o.data)}catch{}},wt=e=>B.post("saveReadConfig",e),Ct=e=>B.post("saveBookProgress",e),Ut=e=>{e&&navigator.sendBeacon(new URL("saveBookProgress",$),JSON.stringify(e))},Bt=()=>B.get("getBookshelf"),Et=e=>B.get("getChapterList?url="+encodeURIComponent(e)),xt=(e,o)=>B.get("getBookContent?url="+encodeURIComponent(e)+"&index="+o),Lt=(e,o,t)=>{const n=new WebSocket(new URL("searchBook",pe));n.onerror=ge,n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=r=>{try{o(JSON.parse(r.data)),H==null||H.call(n,r)}catch{t()}},n.onclose=()=>{t()}},Rt=e=>B.post("saveBook",e),It=e=>B.post("deleteBook",e),Z=/bookSource/i.test(location.href),Tt=()=>Z?B.get("getBookSources"):B.get("getRssSources"),Vt=e=>Z?B.post("saveBookSource",e):B.post("saveRssSource",e),Nt=e=>Z?B.post("saveBookSources",e):B.post("saveRssSources",e),Ot=e=>Z?B.post("deleteBookSources",e):B.post("deleteRssSources",e),Dt=(e,o,t,n)=>{const r=new URL(`${Z?"bookSource":"rssSource"}Debug`,pe),s=new WebSocket(r);s.onerror=ge,s.onopen=()=>{s.send(JSON.stringify({tag:e,key:o}))},s.onmessage=c=>{t(c.data),H==null||H.call(s,c)},s.onclose=()=>{n()}},Jt=e=>e.startsWith($)?e:new URL("cover?path="+encodeURIComponent(e),$).toString(),Pt=(e,o,t)=>o.startsWith($)?o:new URL("image?path="+encodeURIComponent(o)+"&url="+encodeURIComponent(e)+"&width="+t,$).toString(),P={getReadConfig:vt,saveReadConfig:wt,saveBookProgress:Ct,saveBookProgressWithBeacon:Ut,getBookShelf:Bt,getChapterList:Et,getBookContent:xt,search:Lt,saveBook:Rt,deleteBook:It,getSources:Tt,saveSources:Nt,saveSource:Vt,deleteSource:Ot,debug:Dt,getProxyCoverUrl:Jt,getProxyImageUrl:Pt},X=e=>e==null||e.length===0||/^\s+$/.test(e),Uo=e=>/,\s*\{/.test(e)||!(e.startsWith("http")||e.startsWith("data:")||e.startsWith("blob:")),$t=(e,o=["https:","http:"])=>{try{const t=new URL(e),{protocol:n}=t;if(!o.includes(n))throw new Error(`Expected protocol ${o.join("/")}, but ${n}`);return!0}catch{return!1}},Bo=e=>{const o=new Date().getTime(),t=Math.floor((o-e)/1e3);let n="";return t<=30?n="刚刚":t<60?n=t+"秒前":t<3600?n=Math.floor(t/60)+"分钟前":t<86400?n=Math.floor(t/3600)+"小时前":t<2592e3?n=Math.floor(t/86400)+"天前":n=Me(new Date(e),"YYYY-MM-DD"),n},jt={theme:0,font:0,fontSize:18,readWidth:800,infiniteLoading:!1,customFontName:"",jumpDuration:1e3,spacing:{paragraph:1,line:.8,letter:0}};let _e;const At=ce("book",{state:()=>({searchBooks:[],shelf:[],catalog:[],readingBook:{chapterPos:0,chapterIndex:0},popCataVisible:!1,contentLoading:!0,showContent:!1,config:jt,miniInterface:!1,readSettingsVisible:!1}),getters:{bookProgress:e=>{var c;if(e.catalog.length==0)return;const{chapterIndex:o,chapterPos:t,name:n,author:r}=e.readingBook,s=(c=e.catalog[o])==null?void 0:c.title;if(s)return{name:n,author:r,durChapterIndex:o,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:s}},theme:e=>e.config.theme,isNight:e=>e.config.theme==6},actions:{async loadBookShelf(){const e=P.getBookShelf().then(o=>{const{isSuccess:t,data:n,errorMsg:r}=o.data;if(t===!0)this.shelf.length!==n.length&&this.shelf.length>0&&n.length>0&&k.info("书架数据已更新"),this.shelf=n.sort((s,c)=>{const a=s.durChapterTime||0;return(c.durChapterTime||0)-a});else{if(r.includes("还没有添加小说")&&this.shelf.length>0)return k.info("当前书架上的书籍已经被删除"),this.shelf=[];k.error(r??"后端返回格式错误!")}return this.shelf});return this.shelf.length>0?this.shelf:await e},async loadWebCatalog(e){const{bookUrl:o,name:t,chapterIndex:n}=e,r=P.getChapterList(o).then(s=>{const{isSuccess:c,data:a,errorMsg:_}=s.data;if(c===!1)throw k.error(_),new Error;return o===this.readingBook.bookUrl&&a.length!==this.catalog.length&&a.length>0&&this.catalog.length>0&&k.info(`书籍${t}: 章节目录已更新`),this.catalog=a,this.catalog});return o===this.readingBook.bookUrl&&this.catalog.length>0&&this.catalog.length-1>=n?this.catalog:await r},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=e},async loadWebConfig(){if(_e===void 0){const e=await P.getReadConfig();return _e=new Date,this.setConfig(e)}},setConfig(e){this.config=Object.assign({},this.config,e)},setReadSettingsVisible(e){this.readSettingsVisible=e},setShowContent(e){this.showContent=e},setMiniInterface(e){this.miniInterface=e},async setSearchBooks(e){e.forEach(o=>{this.shelf.every(n=>n.bookUrl!==o.bookUrl)===!0&&this.searchBooks.push(o)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProgress(){if(!this.bookProgress)return Promise.resolve();const{bookUrl:e}=this.readingBook,o=Ue(this.shelf),t=o.findIndex(n=>n.bookUrl===e);return t>-1&&(this.shelf[t]=Object.assign({},o[t],this.bookProgress)),P.saveBookProgressWithBeacon(this.bookProgress)}}}),oe=e=>"bookSourceName"in e,Kt=e=>oe(e)?!X(e.bookSourceName)&&!X(e.bookSourceUrl)&&!X(e.bookSourceType):!X(e.sourceName)&&!X(e.sourceUrl),ne=e=>oe(e)?e.bookSourceUrl:e.sourceUrl,he=e=>oe(e)?e.bookSourceName:e.sourceName,Wt=(e,o)=>{var t,n,r,s;return oe(e)?(e.bookSourceName.includes(o)||e.bookSourceUrl.includes(o)||((t=e.bookSourceGroup)==null?void 0:t.includes(o))||((n=e.bookSourceComment)==null?void 0:n.includes(o)))??!1:(e.sourceName.includes(o)||e.sourceUrl.includes(o)||((r=e.sourceGroup)==null?void 0:r.includes(o))||((s=e.sourceComment)==null?void 0:s.includes(o)))??!1},ie=e=>{const o=new Map;return e.forEach(t=>o.set(ne(t),t)),o},Ne=e=>{for(const o in e){const t=e[o];t===""||t===null||typeof t=="string"&&!t.trim()?delete e[o]:t instanceof Object&&Ne(t)}},Ht={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleExplore:{}},Mt={},G=/bookSource/i.test(location.href),ke=G?Ht:Mt,F=ce("source",{state:()=>({bookSources:Se([]),rssSources:Se([]),savedSources:[],currentSource:JSON.parse(JSON.stringify(ke)),currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>G?e.bookSources:e.rssSources,sourcesMap:function(){return ie(this.sources)},savedSourcesMap:e=>ie(e.savedSources),currentSourceUrl:e=>G?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>{var o,t;return G?((t=(o=e.currentSource)==null?void 0:o.ruleSearch)==null?void 0:t.checkKeyWord)||"我的":""}},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){G?this.bookSources=me(e):this.rssSources=me(e)},setPushReturnSources(e){this.savedSources=e},deleteSources(e){const o=G?this.bookSources:this.rssSources;e.forEach(t=>{const n=o.indexOf(t);n>-1&&o.splice(n,1)})},saveCurrentSource(){const e=this.currentSource,o=this.sourcesMap;o.set(ne(e),JSON.parse(JSON.stringify(e))),this.saveSources(Array.from(o.values()))},changeCurrentSource(e){this.currentSource=JSON.parse(JSON.stringify(e))},changeTabName(e){this.currentTab=e,localStorage.setItem("tabName",e)},changeEditTabSource(e){this.editTabSource=JSON.parse(JSON.stringify(e))},editHistory(e){let o;if(localStorage.getItem("history"))o=JSON.parse(localStorage.getItem("history")),o.new.push(e),o.new.length>50&&o.new.shift(),o.old.length>50&&o.old.shift(),localStorage.setItem("history",JSON.stringify(o));else{const t={new:[e],old:[]};localStorage.setItem("history",JSON.stringify(t))}},editHistoryUndo(){if(localStorage.getItem("history")){const e=JSON.parse(localStorage.getItem("history"));e.old.push(this.currentSource),e.new.length&&(this.currentSource=e.new.pop()),localStorage.setItem("history",JSON.stringify(e))}},clearAllHistory(){localStorage.setItem("history",JSON.stringify({new:[],old:[]}))},clearEdit(){this.editTabSource={},this.currentSource=JSON.parse(JSON.stringify(ke))},clearAllSource(){this.bookSources=[],this.rssSources=[],this.savedSources=[]}}}),Ft=ce("connection",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"primary",newConnect:!1}),actions:{setConnectStatus(e){this.newConnect!==!0&&(this.connectStatus=e)},setConnectType(e){this.newConnect!==!0&&(this.connectType=e)},setNewConnect(e){this.newConnect=e}}}),Oe=Fe();Be(Te).use(Oe);const Y=Ft(),ve=Array.of("isSuccess","errorMsg"),De=k,qt=e=>{let o=!0;try{const t=e.data;for(const n of ve)n in t||(o=!1,ve.length=0);t.isSuccess===!0&&("data"in t||(o=!1))}catch{o=!1}if(o===!1)throw De.warning({message:"后端返回内容格式错误",grouping:!0}),new Error;return Y.setConnectType("primary"),Y.setConnectStatus("已连接 "+$),e},Je=e=>{throw De.error({message:"后端连接失败,请检查阅读WEB服务或者设置其它可用链接",grouping:!0}),Y.setConnectType("danger"),Y.setConnectStatus("连接异常"),e};B.interceptors.response.use(qt,Je);_t(Je);bt(()=>{Y.setConnectType("primary"),Y.setConnectStatus("已连接 "+$)});const zt=e=>{let o=new URL(location.origin);$t(e)&&(o=new URL(e));const{protocol:t,port:n}=o;let r;n!==""?r=String(Number(n)+1):r=t.startsWith("https:")?"444":"81";const s=t.startsWith("https:")?"wss://":"ws://",c=o.toString();o.protocol=s,o.port=r;const a=o.toString();return[c,a]};kt(...zt(B.defaults.baseURL));const Gt=K({__name:"SourceItem",props:{source:{}},setup(e){const o=e,t=F(),n=A(()=>t.currentSourceUrl),r=A(()=>ne(o.source)),s=a=>{t.changeCurrentSource(a)},c=A(()=>{const a=t.savedSourcesMap;return a.size==0?!1:!a.has(r.value)});return(a,_)=>{const w=ue,U=qe;return g(),C(U,{size:"large",border:"",value:i(r),class:Ee({error:i(c),edit:i(r)==i(n)})},{default:p(()=>[y(ee(i(he)(e.source))+" ",1),h(w,{text:"",icon:i(xe),onClick:_[0]||(_[0]=x=>s(e.source))},null,8,["icon"])]),_:1},8,["value","class"])}}}),Yt=j(Gt,[["__scopeId","data-v-d8dae8d3"]]),Qt={class:"tool"},Xt=K({__name:"SourceList",setup(e){const o=F(),t=J([]),n=J(""),r=A(()=>o.sources),s=A(()=>{const d=n.value;return d===""?r.value:r.value.filter(l=>Wt(l,d))}),c=A(()=>{const d=t.value;if(d.length==0)return[];const l=n.value==""?o.sourcesMap:ie(s.value);return d.reduce((b,v)=>{const L=l.get(v);return L&&b.push(L),b},[])}),a=()=>{const d=c.value;P.deleteSource(d).then(({data:l})=>{if(!l.isSuccess)return k.error(l.errorMsg);o.deleteSources(d);const b=Ue(t.value);d.forEach(v=>{const L=b.indexOf(ne(v));L>-1&&b.splice(L,1)}),t.value=b})},_=()=>{o.clearAllSource(),t.value=[]},w=()=>{const d=document.createElement("input");d.type="file",d.accept=".json,.txt",d.addEventListener("change",()=>{const l=d.files;if(l===null)return k.info("未选择文件");const b=new FileReader;b.readAsText(l[0]),b.onload=()=>{try{const v=JSON.parse(b.result);o.saveSources(v)}catch(v){k.error("上传的源格式错误: "+v.message)}}}),d.click()},U=/bookSource/i.test(window.location.href),x=()=>{const d=document.createElement("a"),l=t.value.length===0?s.value:c.value,b=U?"BookSource":"RssSource";d.download=`${b}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;const v=new Blob([JSON.stringify(l,null,4)],{type:"application/json"});d.href=window.URL.createObjectURL(v),d.click(),window.URL.revokeObjectURL(d.href)};return(d,l)=>{const b=te,v=ue,L=Ye;return g(),E(N,null,[h(b,{modelValue:i(n),"onUpdate:modelValue":l[0]||(l[0]=O=>M(n)?n.value=O:null),class:"search","prefix-icon":i(Le),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),f("div",Qt,[h(v,{onClick:w,icon:i(ze)},{default:p(()=>[...l[2]||(l[2]=[y("打开",-1)])]),_:1},8,["icon"]),h(v,{disabled:i(s).length===0,onClick:x,icon:i(Ge)},{default:p(()=>[...l[3]||(l[3]=[y(" 导出",-1)])]),_:1},8,["disabled","icon"]),h(v,{type:"danger",icon:i(fe),onClick:a,disabled:i(c).length===0},{default:p(()=>[...l[4]||(l[4]=[y("删除",-1)])]),_:1},8,["icon","disabled"]),h(v,{type:"danger",icon:i(fe),onClick:_,disabled:i(r).length===0},{default:p(()=>[...l[5]||(l[5]=[y("清空",-1)])]),_:1},8,["icon","disabled"])]),h(L,{id:"source-list",modelValue:i(t),"onUpdate:modelValue":l[1]||(l[1]=O=>M(t)?t.value=O:null)},{default:p(()=>[h(i(Qe),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":O=>i(he)(O),"data-sources":i(s),"data-component":Yt,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}}),Zt=j(Xt,[["__scopeId","data-v-258cd99b"]]),eo=K({__name:"SourceDebug",setup(e){const o=F(),t=J(""),n=J("");de(()=>o.isDebuging,()=>{o.isDebuging&&s()});const r=a=>{const _=document.querySelector("#debug-text");_.scrollTop=_.scrollHeight,t.value+=a+` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BookShelf-DIQtBULC.js","./vendor-KSDcS24u.js","./vendor-CXe1BRiH.css","./loading-C4J6hIxs.js","./loading-DkQYEuap.css","./BookShelf-00b2QCsd.css","./BookChapter-Cs3stH93.js","./BookChapter-BsiFtdIw.css"])))=>i.map(i=>d[i]); +import{r as Ke,o as g,c as C,a as le,b as ae,d as K,e as E,F as N,f as h,E as We,u as i,l as V,w as p,g as y,h as f,i as Ce,j as He,k as Me,m as ce,t as Ue,n as k,p as me,s as Se,q as Fe,v as Be,x as qe,y as Ee,z as ee,A as ue,B as xe,C as A,D as te,G as Le,H as M,I as ze,J as Ge,K as fe,L as Ye,V as Qe,M as J,N as de,O as Xe,P as I,Q as Ze,R as W,S as Re,T as Ie,U as et,W as tt,X as ot,Y as z,Z as nt,_ as rt,$ as st,a0 as it,a1 as lt,a2 as at,a3 as ct}from"./vendor-KSDcS24u.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&n(c)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();const j=(e,o)=>{const t=e.__vccOpts||e;for(const[n,r]of o)t[n]=r;return t},ut={};function dt(e,o){const t=Ke("router-view");return g(),C(t)}const Te=j(ut,[["render",dt]]),pt="modulepreload",gt=function(e,o){return new URL(e,o).href},ye={},be=function(o,t,n){let r=Promise.resolve();if(t&&t.length>0){const c=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),_=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));r=Promise.allSettled(t.map(w=>{if(w=gt(w,n),w in ye)return;ye[w]=!0;const U=w.endsWith(".css"),x=U?'[rel="stylesheet"]':"";if(!!n)for(let b=c.length-1;b>=0;b--){const v=c[b];if(v.href===w&&(!U||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${w}"]${x}`))return;const l=document.createElement("link");if(l.rel=U?"stylesheet":pt,U||(l.as="script"),l.crossOrigin="",l.href=w,_&&l.setAttribute("nonce",_),document.head.appendChild(l),U)return new Promise((b,v)=>{l.addEventListener("load",b),l.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${w}`)))})}))}function s(c){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=c,window.dispatchEvent(a),!a.defaultPrevented)throw c}return r.then(c=>{for(const a of c||[])a.status==="rejected"&&s(a.reason);return o().catch(s)})},Ve=[{path:"/",name:"shelf",component:()=>be(()=>import("./BookShelf-DIQtBULC.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)},{path:"/chapter",name:"chapter",component:()=>be(()=>import("./BookChapter-Cs3stH93.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)}];le({history:ae(),routes:Ve});const ht={style:{"margin-top":"20px"}},mt=K({__name:"SourceHelp",setup(e){return(o,t)=>{const n=We,r=Ce;return g(),E(N,null,[h(n,{icon:i(V),href:"/help/#appHelp",target:"_blank"},{default:p(()=>[...t[0]||(t[0]=[y("APP帮助文档",-1)])]),_:1},8,["icon"]),t[19]||(t[19]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#ruleHelp",target:"_blank"},{default:p(()=>[...t[1]||(t[1]=[y("书源制作教程",-1)])]),_:1},8,["icon"]),t[20]||(t[20]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#jsHelp",target:"_blank"},{default:p(()=>[...t[2]||(t[2]=[y("js变量和函数",-1)])]),_:1},8,["icon"]),t[21]||(t[21]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#xpathHelp",target:"_blank"},{default:p(()=>[...t[3]||(t[3]=[y("xpath语法教程",-1)])]),_:1},8,["icon"]),t[22]||(t[22]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#regexHelp",target:"_blank"},{default:p(()=>[...t[4]||(t[4]=[y("正则表达式教程",-1)])]),_:1},8,["icon"]),t[23]||(t[23]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#txtTocRuleHelp",target:"_blank"},{default:p(()=>[...t[5]||(t[5]=[y("txt目录正则说明",-1)])]),_:1},8,["icon"]),t[24]||(t[24]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#debugHelp",target:"_blank"},{default:p(()=>[...t[6]||(t[6]=[y("书源调试说明",-1)])]),_:1},8,["icon"]),t[25]||(t[25]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#httpTTSHelp",target:"_blank"},{default:p(()=>[...t[7]||(t[7]=[y("在线朗读规则",-1)])]),_:1},8,["icon"]),t[26]||(t[26]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#webDavBookHelp",target:"_blank"},{default:p(()=>[...t[8]||(t[8]=[y(" WebDav书籍简明使用教程",-1)])]),_:1},8,["icon"]),t[27]||(t[27]=f("br",null,null,-1)),h(n,{icon:i(V),href:"/help/#webDavHelp",target:"_blank"},{default:p(()=>[...t[9]||(t[9]=[y(" WebDav备份教程",-1)])]),_:1},8,["icon"]),t[28]||(t[28]=f("br",null,null,-1)),h(n,{icon:i(V),href:"https://regexr-cn.com/",target:"_blank"},{default:p(()=>[...t[10]||(t[10]=[y("正则表达式在线验证工具",-1)])]),_:1},8,["icon"]),t[29]||(t[29]=f("br",null,null,-1)),f("div",ht,[f("span",null,[h(r,null,{default:p(()=>[...t[11]||(t[11]=[f("code",null,"^$()[]{}.?+*|",-1),y(" 这些是Java正则特殊符号,匹配需转义",-1)])]),_:1})]),t[15]||(t[15]=f("br",null,null,-1)),f("span",null,[h(r,null,{default:p(()=>[...t[12]||(t[12]=[f("code",null,"(?s)",-1),y(" 前缀表示跨行解析",-1)])]),_:1})]),t[16]||(t[16]=f("br",null,null,-1)),f("span",null,[h(r,null,{default:p(()=>[...t[13]||(t[13]=[f("code",null,"(?m)",-1),y(" 前缀表示逐行匹配",-1)])]),_:1})]),t[17]||(t[17]=f("br",null,null,-1)),f("span",null,[h(r,null,{default:p(()=>[...t[14]||(t[14]=[f("code",null,"(?i)",-1),y(" 前缀表示忽略大小写",-1)])]),_:1})]),t[18]||(t[18]=f("br",null,null,-1))])],64)}}}),St=j(mt,[["__scopeId","data-v-085627fb"]]),ft="remoteUrl",yt=1e3,B=He.create({baseURL:localStorage.getItem(ft)||location.origin,timeout:120*yt});let $="",pe="",ge=()=>{},H=()=>{};const bt=e=>H=e,_t=e=>{ge=e},kt=(e,o)=>{$=new URL(e).toString(),pe=new URL(o).toString(),B.defaults.baseURL=$},vt=async(e=$)=>{const{data:o}=await B.get("getReadConfig",{baseURL:e.toString(),timeout:3e3});if(o.isSuccess)try{return JSON.parse(o.data)}catch{}},wt=e=>B.post("saveReadConfig",e),Ct=e=>B.post("saveBookProgress",e),Ut=e=>{e&&navigator.sendBeacon(new URL("saveBookProgress",$),JSON.stringify(e))},Bt=()=>B.get("getBookshelf"),Et=e=>B.get("getChapterList?url="+encodeURIComponent(e)),xt=(e,o)=>B.get("getBookContent?url="+encodeURIComponent(e)+"&index="+o),Lt=(e,o,t)=>{const n=new WebSocket(new URL("searchBook",pe));n.onerror=ge,n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=r=>{try{o(JSON.parse(r.data)),H==null||H.call(n,r)}catch{t()}},n.onclose=()=>{t()}},Rt=e=>B.post("saveBook",e),It=e=>B.post("deleteBook",e),Z=/bookSource/i.test(location.href),Tt=()=>Z?B.get("getBookSources"):B.get("getRssSources"),Vt=e=>Z?B.post("saveBookSource",e):B.post("saveRssSource",e),Nt=e=>Z?B.post("saveBookSources",e):B.post("saveRssSources",e),Ot=e=>Z?B.post("deleteBookSources",e):B.post("deleteRssSources",e),Dt=(e,o,t,n)=>{const r=new URL(`${Z?"bookSource":"rssSource"}Debug`,pe),s=new WebSocket(r);s.onerror=ge,s.onopen=()=>{s.send(JSON.stringify({tag:e,key:o}))},s.onmessage=c=>{t(c.data),H==null||H.call(s,c)},s.onclose=()=>{n()}},Jt=e=>e.startsWith($)?e:new URL("cover?path="+encodeURIComponent(e),$).toString(),Pt=(e,o,t)=>o.startsWith($)?o:new URL("image?path="+encodeURIComponent(o)+"&url="+encodeURIComponent(e)+"&width="+t,$).toString(),P={getReadConfig:vt,saveReadConfig:wt,saveBookProgress:Ct,saveBookProgressWithBeacon:Ut,getBookShelf:Bt,getChapterList:Et,getBookContent:xt,search:Lt,saveBook:Rt,deleteBook:It,getSources:Tt,saveSources:Nt,saveSource:Vt,deleteSource:Ot,debug:Dt,getProxyCoverUrl:Jt,getProxyImageUrl:Pt},X=e=>e==null||e.length===0||/^\s+$/.test(e),Uo=e=>/,\s*\{/.test(e)||!(e.startsWith("http")||e.startsWith("data:")||e.startsWith("blob:")),$t=(e,o=["https:","http:"])=>{try{const t=new URL(e),{protocol:n}=t;if(!o.includes(n))throw new Error(`Expected protocol ${o.join("/")}, but ${n}`);return!0}catch{return!1}},Bo=e=>{const o=new Date().getTime(),t=Math.floor((o-e)/1e3);let n="";return t<=30?n="刚刚":t<60?n=t+"秒前":t<3600?n=Math.floor(t/60)+"分钟前":t<86400?n=Math.floor(t/3600)+"小时前":t<2592e3?n=Math.floor(t/86400)+"天前":n=Me(new Date(e),"YYYY-MM-DD"),n},jt={theme:0,font:0,fontSize:18,readWidth:800,infiniteLoading:!1,customFontName:"",jumpDuration:1e3,spacing:{paragraph:1,line:.8,letter:0}};let _e;const At=ce("book",{state:()=>({searchBooks:[],shelf:[],catalog:[],readingBook:{chapterPos:0,chapterIndex:0},popCataVisible:!1,contentLoading:!0,showContent:!1,config:jt,miniInterface:!1,readSettingsVisible:!1}),getters:{bookProgress:e=>{var c;if(e.catalog.length==0)return;const{chapterIndex:o,chapterPos:t,name:n,author:r}=e.readingBook,s=(c=e.catalog[o])==null?void 0:c.title;if(s)return{name:n,author:r,durChapterIndex:o,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:s}},theme:e=>e.config.theme,isNight:e=>e.config.theme==6},actions:{async loadBookShelf(){const e=P.getBookShelf().then(o=>{const{isSuccess:t,data:n,errorMsg:r}=o.data;if(t===!0)this.shelf.length!==n.length&&this.shelf.length>0&&n.length>0&&k.info("书架数据已更新"),this.shelf=n.sort((s,c)=>{const a=s.durChapterTime||0;return(c.durChapterTime||0)-a});else{if(r.includes("还没有添加小说")&&this.shelf.length>0)return k.info("当前书架上的书籍已经被删除"),this.shelf=[];k.error(r??"后端返回格式错误!")}return this.shelf});return this.shelf.length>0?this.shelf:await e},async loadWebCatalog(e){const{bookUrl:o,name:t,chapterIndex:n}=e,r=P.getChapterList(o).then(s=>{const{isSuccess:c,data:a,errorMsg:_}=s.data;if(c===!1)throw k.error(_),new Error;return o===this.readingBook.bookUrl&&a.length!==this.catalog.length&&a.length>0&&this.catalog.length>0&&k.info(`书籍${t}: 章节目录已更新`),this.catalog=a,this.catalog});return o===this.readingBook.bookUrl&&this.catalog.length>0&&this.catalog.length-1>=n?this.catalog:await r},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=e},async loadWebConfig(){if(_e===void 0){const e=await P.getReadConfig();return _e=new Date,this.setConfig(e)}},setConfig(e){this.config=Object.assign({},this.config,e)},setReadSettingsVisible(e){this.readSettingsVisible=e},setShowContent(e){this.showContent=e},setMiniInterface(e){this.miniInterface=e},async setSearchBooks(e){e.forEach(o=>{this.shelf.every(n=>n.bookUrl!==o.bookUrl)===!0&&this.searchBooks.push(o)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProgress(){if(!this.bookProgress)return Promise.resolve();const{bookUrl:e}=this.readingBook,o=Ue(this.shelf),t=o.findIndex(n=>n.bookUrl===e);return t>-1&&(this.shelf[t]=Object.assign({},o[t],this.bookProgress)),P.saveBookProgressWithBeacon(this.bookProgress)}}}),oe=e=>"bookSourceName"in e,Kt=e=>oe(e)?!X(e.bookSourceName)&&!X(e.bookSourceUrl)&&!X(e.bookSourceType):!X(e.sourceName)&&!X(e.sourceUrl),ne=e=>oe(e)?e.bookSourceUrl:e.sourceUrl,he=e=>oe(e)?e.bookSourceName:e.sourceName,Wt=(e,o)=>{var t,n,r,s;return oe(e)?(e.bookSourceName.includes(o)||e.bookSourceUrl.includes(o)||((t=e.bookSourceGroup)==null?void 0:t.includes(o))||((n=e.bookSourceComment)==null?void 0:n.includes(o)))??!1:(e.sourceName.includes(o)||e.sourceUrl.includes(o)||((r=e.sourceGroup)==null?void 0:r.includes(o))||((s=e.sourceComment)==null?void 0:s.includes(o)))??!1},ie=e=>{const o=new Map;return e.forEach(t=>o.set(ne(t),t)),o},Ne=e=>{for(const o in e){const t=e[o];t===""||t===null||typeof t=="string"&&!t.trim()?delete e[o]:t instanceof Object&&Ne(t)}},Ht={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleExplore:{}},Mt={},G=/bookSource/i.test(location.href),ke=G?Ht:Mt,F=ce("source",{state:()=>({bookSources:Se([]),rssSources:Se([]),savedSources:[],currentSource:JSON.parse(JSON.stringify(ke)),currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>G?e.bookSources:e.rssSources,sourcesMap:function(){return ie(this.sources)},savedSourcesMap:e=>ie(e.savedSources),currentSourceUrl:e=>G?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>{var o,t;return G?((t=(o=e.currentSource)==null?void 0:o.ruleSearch)==null?void 0:t.checkKeyWord)||"我的":""}},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){G?this.bookSources=me(e):this.rssSources=me(e)},setPushReturnSources(e){this.savedSources=e},deleteSources(e){const o=G?this.bookSources:this.rssSources;e.forEach(t=>{const n=o.indexOf(t);n>-1&&o.splice(n,1)})},saveCurrentSource(){const e=this.currentSource,o=this.sourcesMap;o.set(ne(e),JSON.parse(JSON.stringify(e))),this.saveSources(Array.from(o.values()))},changeCurrentSource(e){this.currentSource=JSON.parse(JSON.stringify(e))},changeTabName(e){this.currentTab=e,localStorage.setItem("tabName",e)},changeEditTabSource(e){this.editTabSource=JSON.parse(JSON.stringify(e))},editHistory(e){let o;if(localStorage.getItem("history"))o=JSON.parse(localStorage.getItem("history")),o.new.push(e),o.new.length>50&&o.new.shift(),o.old.length>50&&o.old.shift(),localStorage.setItem("history",JSON.stringify(o));else{const t={new:[e],old:[]};localStorage.setItem("history",JSON.stringify(t))}},editHistoryUndo(){if(localStorage.getItem("history")){const e=JSON.parse(localStorage.getItem("history"));e.old.push(this.currentSource),e.new.length&&(this.currentSource=e.new.pop()),localStorage.setItem("history",JSON.stringify(e))}},clearAllHistory(){localStorage.setItem("history",JSON.stringify({new:[],old:[]}))},clearEdit(){this.editTabSource={},this.currentSource=JSON.parse(JSON.stringify(ke))},clearAllSource(){this.bookSources=[],this.rssSources=[],this.savedSources=[]}}}),Ft=ce("connection",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"primary",newConnect:!1}),actions:{setConnectStatus(e){this.newConnect!==!0&&(this.connectStatus=e)},setConnectType(e){this.newConnect!==!0&&(this.connectType=e)},setNewConnect(e){this.newConnect=e}}}),Oe=Fe();Be(Te).use(Oe);const Y=Ft(),ve=Array.of("isSuccess","errorMsg"),De=k,qt=e=>{let o=!0;try{const t=e.data;for(const n of ve)n in t||(o=!1,ve.length=0);t.isSuccess===!0&&("data"in t||(o=!1))}catch{o=!1}if(o===!1)throw De.warning({message:"后端返回内容格式错误",grouping:!0}),new Error;return Y.setConnectType("primary"),Y.setConnectStatus("已连接 "+$),e},Je=e=>{throw De.error({message:"后端连接失败,请检查阅读WEB服务或者设置其它可用链接",grouping:!0}),Y.setConnectType("danger"),Y.setConnectStatus("连接异常"),e};B.interceptors.response.use(qt,Je);_t(Je);bt(()=>{Y.setConnectType("primary"),Y.setConnectStatus("已连接 "+$)});const zt=e=>{let o=new URL(location.origin);$t(e)&&(o=new URL(e));const{protocol:t,port:n}=o;let r;n!==""?r=String(Number(n)+1):r=t.startsWith("https:")?"444":"81";const s=t.startsWith("https:")?"wss://":"ws://",c=o.toString();o.protocol=s,o.port=r;const a=o.toString();return[c,a]};kt(...zt(B.defaults.baseURL));const Gt=K({__name:"SourceItem",props:{source:{}},setup(e){const o=e,t=F(),n=A(()=>t.currentSourceUrl),r=A(()=>ne(o.source)),s=a=>{t.changeCurrentSource(a)},c=A(()=>{const a=t.savedSourcesMap;return a.size==0?!1:!a.has(r.value)});return(a,_)=>{const w=ue,U=qe;return g(),C(U,{size:"large",border:"",value:i(r),class:Ee({error:i(c),edit:i(r)==i(n)})},{default:p(()=>[y(ee(i(he)(e.source))+" ",1),h(w,{text:"",icon:i(xe),onClick:_[0]||(_[0]=x=>s(e.source))},null,8,["icon"])]),_:1},8,["value","class"])}}}),Yt=j(Gt,[["__scopeId","data-v-d8dae8d3"]]),Qt={class:"tool"},Xt=K({__name:"SourceList",setup(e){const o=F(),t=J([]),n=J(""),r=A(()=>o.sources),s=A(()=>{const d=n.value;return d===""?r.value:r.value.filter(l=>Wt(l,d))}),c=A(()=>{const d=t.value;if(d.length==0)return[];const l=n.value==""?o.sourcesMap:ie(s.value);return d.reduce((b,v)=>{const L=l.get(v);return L&&b.push(L),b},[])}),a=()=>{const d=c.value;P.deleteSource(d).then(({data:l})=>{if(!l.isSuccess)return k.error(l.errorMsg);o.deleteSources(d);const b=Ue(t.value);d.forEach(v=>{const L=b.indexOf(ne(v));L>-1&&b.splice(L,1)}),t.value=b})},_=()=>{o.clearAllSource(),t.value=[]},w=()=>{const d=document.createElement("input");d.type="file",d.accept=".json,.txt",d.addEventListener("change",()=>{const l=d.files;if(l===null)return k.info("未选择文件");const b=new FileReader;b.readAsText(l[0]),b.onload=()=>{try{const v=JSON.parse(b.result);o.saveSources(v)}catch(v){k.error("上传的源格式错误: "+v.message)}}}),d.click()},U=/bookSource/i.test(window.location.href),x=()=>{const d=document.createElement("a"),l=t.value.length===0?s.value:c.value,b=U?"BookSource":"RssSource";d.download=`${b}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;const v=new Blob([JSON.stringify(l,null,4)],{type:"application/json"});d.href=window.URL.createObjectURL(v),d.click(),window.URL.revokeObjectURL(d.href)};return(d,l)=>{const b=te,v=ue,L=Ye;return g(),E(N,null,[h(b,{modelValue:i(n),"onUpdate:modelValue":l[0]||(l[0]=O=>M(n)?n.value=O:null),class:"search","prefix-icon":i(Le),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),f("div",Qt,[h(v,{onClick:w,icon:i(ze)},{default:p(()=>[...l[2]||(l[2]=[y("打开",-1)])]),_:1},8,["icon"]),h(v,{disabled:i(s).length===0,onClick:x,icon:i(Ge)},{default:p(()=>[...l[3]||(l[3]=[y(" 导出",-1)])]),_:1},8,["disabled","icon"]),h(v,{type:"danger",icon:i(fe),onClick:a,disabled:i(c).length===0},{default:p(()=>[...l[4]||(l[4]=[y("删除",-1)])]),_:1},8,["icon","disabled"]),h(v,{type:"danger",icon:i(fe),onClick:_,disabled:i(r).length===0},{default:p(()=>[...l[5]||(l[5]=[y("清空",-1)])]),_:1},8,["icon","disabled"])]),h(L,{id:"source-list",modelValue:i(t),"onUpdate:modelValue":l[1]||(l[1]=O=>M(t)?t.value=O:null)},{default:p(()=>[h(i(Qe),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":O=>i(he)(O),"data-sources":i(s),"data-component":Yt,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}}),Zt=j(Xt,[["__scopeId","data-v-258cd99b"]]),eo=K({__name:"SourceDebug",setup(e){const o=F(),t=J(""),n=J("");de(()=>o.isDebuging,()=>{o.isDebuging&&s()});const r=a=>{const _=document.querySelector("#debug-text");_.scrollTop=_.scrollHeight,t.value+=a+` `},s=async()=>{t.value="";try{await P.saveSource(o.currentSource)}catch(a){throw o.debugFinish(),a}P.debug(o.currentSourceUrl,n.value||o.searchKey,r,o.debugFinish)},c=A(()=>/bookSource/i.test(window.location.href));return(a,_)=>{const w=te;return g(),E(N,null,[i(c)?(g(),C(w,{key:0,id:"debug-key",modelValue:i(n),"onUpdate:modelValue":_[0]||(_[0]=U=>M(n)?n.value=U:null),placeholder:"搜索书名、作者","prefix-icon":i(Le),style:{"padding-bottom":"4px"},onKeydown:Xe(s,["enter"])},null,8,["modelValue","prefix-icon"])):I("",!0),h(w,{id:"debug-text",modelValue:i(t),"onUpdate:modelValue":_[1]||(_[1]=U=>M(t)?t.value=U:null),type:"textarea",readonly:"",rows:29,placeholder:"这里用于输出调试信息"},null,8,["modelValue"])],64)}}}),to=j(eo,[["__scopeId","data-v-3ac68c8a"]]),oo=K({__name:"SourceJson",setup(e){const o=F(),t=J(""),n=async r=>{try{o.changeEditTabSource(JSON.parse(r))}catch{k({message:"粘贴的源格式错误",type:"error"})}};return Ze(async()=>{const r=o.editTabSource;Object.keys(r).length>0?t.value=JSON.stringify(r,null,4):t.value=""}),(r,s)=>{const c=te;return g(),C(c,{id:"source-json",modelValue:i(t),"onUpdate:modelValue":s[0]||(s[0]=a=>M(t)?t.value=a:null),type:"textarea",placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP",rows:30,onChange:n,style:{"margin-bottom":"4px"}},null,8,["modelValue"])}}}),no=j(oo,[["__scopeId","data-v-f62d9369"]]),ro=K({__name:"SourceTabTools",setup(e){const o=F(),t=A({get:()=>o.currentTab,set:r=>o.currentTab=r}),n=J([["editTab","编辑源"],["editDebug","调试源"],["editList","源列表"],["editHelp","帮助信息"]]);return(r,s)=>{const c=no,a=to,_=Zt,w=St,U=Re,x=Ie;return g(),C(x,{modelValue:i(t),"onUpdate:modelValue":s[0]||(s[0]=d=>M(t)?t.value=d:null)},{default:p(()=>[(g(!0),E(N,null,W(i(n),(d,l)=>(g(),C(U,{key:d[0],name:d[0],label:d[1]},{default:p(()=>[l==0?(g(),C(c,{key:0})):I("",!0),l==1?(g(),C(a,{key:1})):I("",!0),l==2?(g(),C(_,{key:2})):I("",!0),l==3?(g(),C(w,{key:3})):I("",!0)]),_:2},1032,["name","label"]))),128))]),_:1},8,["modelValue"])}}}),so=j(ro,[["__scopeId","data-v-fd81540f"]]),io={class:"menu flex-column-center"},lo={class:"hotkeys-header flex-space-between"},ao=["id"],co={key:0},uo={class:"hotkeys-settings flex-column-center"},po={class:"title"},go={class:"hotkeys-item__content"},ho={key:0},mo={key:0},So=K({__name:"ToolBar",setup(e){const o=F(),t=()=>{const S=k({message:"加载中……",showClose:!0,duration:0});P.getSources().then(({data:u})=>{u.isSuccess?(o.changeTabName("editList"),o.saveSources(u.data),k({message:`成功拉取${u.data.length}条源`,type:"success"})):k({message:u.errorMsg??"后端错误",type:"error"})}).finally(()=>S.close())},n=()=>{const S=o.sources;if(o.changeTabName("editList"),S.length===0)return k({message:"空空如也",type:"info"});k({message:"正在推送中",type:"info"}),P.saveSources(S).then(({data:u})=>{if(u.isSuccess){const m=u.data;if(Array.isArray(m)){let D="";S.length>m.length&&(D=` 推送失败的源将用红色字体标注!`,o.setPushReturnSources(m)),k({message:`批量推送源到「阅读3.0APP」 共计: ${S.length} 条 diff --git a/app/src/main/assets/web/vue/index.html b/app/src/main/assets/web/vue/index.html index 364c60c9e..384519fe0 100644 --- a/app/src/main/assets/web/vue/index.html +++ b/app/src/main/assets/web/vue/index.html @@ -4,7 +4,7 @@ - +