From 341dc1c6ec1904ce76448236fb175bc445eb9999 Mon Sep 17 00:00:00 2001 From: Xwite Date: Thu, 3 Oct 2024 08:34:24 +0000 Subject: [PATCH] Bump web v3.24.100316 --- .../main/assets/web/vue/assets/BookChapter-C2Ggbplx.js | 1 + ...okChapter-C8lBKSzj.css => BookChapter-CtVBKsqC.css} | 2 +- .../main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js | 1 - .../{BookShelf-CKnr6cT1.js => BookShelf-BBPgNbMt.js} | 2 +- .../{BookShelf-DxMHgvyY.css => BookShelf-DNC_Xk3n.css} | 2 +- app/src/main/assets/web/vue/assets/index-B8eMuqu8.js | 10 ++++++++++ .../assets/{index-l5n--pGs.css => index-BIDNUcJo.css} | 2 +- app/src/main/assets/web/vue/assets/index-DfNldNYB.js | 10 ---------- app/src/main/assets/web/vue/index.html | 4 ++-- 9 files changed, 17 insertions(+), 17 deletions(-) create mode 100644 app/src/main/assets/web/vue/assets/BookChapter-C2Ggbplx.js rename app/src/main/assets/web/vue/assets/{BookChapter-C8lBKSzj.css => BookChapter-CtVBKsqC.css} (79%) delete mode 100644 app/src/main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js rename app/src/main/assets/web/vue/assets/{BookShelf-CKnr6cT1.js => BookShelf-BBPgNbMt.js} (93%) rename app/src/main/assets/web/vue/assets/{BookShelf-DxMHgvyY.css => BookShelf-DNC_Xk3n.css} (62%) create mode 100644 app/src/main/assets/web/vue/assets/index-B8eMuqu8.js rename app/src/main/assets/web/vue/assets/{index-l5n--pGs.css => index-BIDNUcJo.css} (51%) delete mode 100644 app/src/main/assets/web/vue/assets/index-DfNldNYB.js diff --git a/app/src/main/assets/web/vue/assets/BookChapter-C2Ggbplx.js b/app/src/main/assets/web/vue/assets/BookChapter-C2Ggbplx.js new file mode 100644 index 000000000..ccc9df43a --- /dev/null +++ b/app/src/main/assets/web/vue/assets/BookChapter-C2Ggbplx.js @@ -0,0 +1 @@ +import{a0 as Ne,m as l,v as U,Q as Ee,a6 as Ue,o as p,d as v,g as t,t as H,F as ee,M as re,u as a,a7 as Z,a8 as xe,H as De,p as x,e as J,w as W,a9 as Oe,x as pe,aa as He,f as G,J as ue,a5 as We,j as F,ab as Je,q as Te,ac as Qe,ad as Ve,ae as qe,V as Ge,a4 as Ze,af as Ye,L as we,ag as je,c as Xe}from"./vendor-MihKrDrn.js";import{i as _e,u as $e}from"./loading-DPd2-h-z.js";import{_ as Ae,A as Y,u as le}from"./index-B8eMuqu8.js";const et=(A,n,c,f)=>(A/=f/2,A<1?c/2*A*A+n:(A--,-c/2*(A*(A-2)-1)+n)),tt=()=>{let A,n,c,f,s,S,C,w,k,D,K,u,E;function d(){let B=A.scrollTop||A.scrollY||A.pageYOffset;return B=typeof B>"u"?0:B,B}function m(B){const b=B.getBoundingClientRect().top,te=A.getBoundingClientRect?A.getBoundingClientRect().top:0;return b-te+c}function r(B){A.scrollTo?A.scrollTo(0,B):A.scrollTop=B}function I(B){D||(D=B),K=B-D,u=S(K,c,w,k),r(u),K({f67eb5da:f.spacing.letter,"5690efbe":f.spacing.line,"9487f53e":f.spacing.paragraph}));const f=A,s=d=>{const m=/]*src="([^"]*(?:"[^>]+\})?)"[^>]*>/,r=d.match(m)[1];return _e(r)?Y.getProxyImageUrl(r,le().config.readWidth):r},S=d=>{d.target.src=Y.getProxyImageUrl(d.target.src,le().config.readWidth)},C=d=>{const m=/]*src="[^"]*(?:"[^>]+\})?"[^>]*>/g;return d.replaceAll(m," ").length},w=l(()=>{let d=-1;return Array.from(f.contents,m=>(d+=C(m)+1,d))}),k=U(),D=U();n({scrollToReadedLength:d=>{if(d===0)return;let m=w.value.findIndex(r=>r>=d);m!==-1&&xe(()=>{_(D.value[m],{duration:0})})}});let u=null;const E=c;return Ee(()=>{u=new IntersectionObserver(d=>{for(let{target:m,isIntersecting:r}of d)r&&E("readedLengthChange",f.chapterIndex,parseInt(m.dataset.chapterpos))},{rootMargin:`0px 0px -${window.innerHeight-24}px 0px`}),u.observe(k.value),D.value.forEach(d=>{u.observe(d)})}),Ue(()=>{u==null||u.disconnect(),u=null}),(d,m)=>(p(),v(ee,null,[t("div",{class:"title","data-chapterpos":"0",ref_key:"titleRef",ref:k},H(A.title),513),(p(!0),v(ee,null,re(A.contents,(r,I)=>(p(),v("div",{key:I,ref_for:!0,ref_key:"paragraphRef",ref:D,"data-chapterpos":a(w)[I]},[/^\s*]*src[^>]+>$/.test(String(r))?(p(),v("img",{key:0,class:"full",src:s(r),onErrorOnce:S,loading:"lazy"},null,40,nt)):(p(),v("p",{key:1,style:Z({fontFamily:A.fontFamily,fontSize:A.fontSize}),innerHTML:r},null,12,st))],8,ot))),128))],64))}},it=Ae(at,[["__scopeId","data-v-d37de557"]]),rt="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=",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",At="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=",ct="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=",dt="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==",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",pt="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=",ft="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",mt="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=",vt="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",kt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",Bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",Ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",ht="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=",yt="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",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==";var $={themes:[{body:"#ede7da url("+rt+") repeat",content:"#ede7da url("+lt+") repeat",popup:"#ede7da url("+At+") repeat"},{body:"#ede7da url("+ct+") repeat",content:"#ede7da url("+dt+") repeat",popup:"#ede7da url("+gt+") repeat"},{body:"#ede7da url("+ut+") repeat",content:"#ede7da url("+pt+") repeat",popup:"#ede7da url("+ft+") repeat"},{body:"#ede7da url("+mt+") repeat",content:"#ede7da url("+vt+") repeat",popup:"#ede7da url("+kt+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+Bt+") repeat",content:"#ede7da url("+Ct+") repeat",popup:"#ede7da url("+ht+") repeat"},{body:"#ede7da url("+yt+") repeat",content:"#ede7da url("+It+") repeat",popup:"#ede7da url("+bt+") repeat"}],fonts:["Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif","PingFangSC-Regular, -apple-system, Simsun","Kaiti"]};const St={class:"setting-list"},wt={class:"theme-list"},Et=["onClick"],Ut={key:0,class:"iconfont"},xt={key:1,class:"moon-icon"},Dt={class:"font-list"},Qt=["onClick"],Vt={class:"font-list"},Pt={style:{"text-align":"right",margin:"0"}},Ft={class:"font-size"},Lt={class:"resize"},Mt={class:"lang"},Rt={class:"letter-spacing"},Kt={class:"resize"},zt={class:"lang"},Nt={class:"line-spacing"},Ot={class:"resize"},Ht={class:"lang"},Wt={class:"paragraph-spacing"},Jt={class:"resize"},Tt={class:"resize"},qt={class:"lang"},Gt={key:0,class:"read-width"},Zt={class:"resize"},Yt={class:"lang"},jt={class:"paragraph-spacing"},Xt={class:"resize"},_t={class:"resize"},$t={class:"lang"},eo={class:"infinite-loading"},to={__name:"ReadSettings",setup(A){const n=le();De(()=>n.config,V=>{localStorage.setItem("config",JSON.stringify(V)),Y.saveReadConfig(V)},{deep:2});const c=l(()=>n.theme),f=l(()=>n.isNight),s=l(()=>c.value==6?"":""),S=[{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:$.themes[c.value].popup})),w=V=>{n.config.theme=V},k=U(["雅黑","宋体","楷书"]),D=V=>{n.config.font=V},K=l(()=>n.config.font),u=U(n.config.customFontName),E=U(!1),d=()=>{n.config.font=-1,n.config.customFontName=u.value},m=()=>{We.prompt("请输入 字体网络链接","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^https?:.+$/,inputErrorMessage:"url 形式不正确",beforeClose:(V,e,q)=>{if(V==="confirm"){e.confirmButtonLoading=!0,e.confirmButtonText="下载中……";const L=e.inputValue;if(typeof FontFace!="function")return F.error("浏览器不支持FontFace"),q();const M=new FontFace(u.value,`url("${L}")`);document.fonts.add(M),M.load().then(function(){e.confirmButtonLoading=!1,F.info("字体加载成功!"),d(),q()}).catch(function(h){throw e.confirmButtonLoading=!1,e.confirmButtonText="确定",F.error("下载失败,请检查您输入的 url"),h})}else q()}})},r=l(()=>n.config.fontSize),I=()=>{n.config.fontSize<48&&(n.config.fontSize+=2)},T=()=>{n.config.fontSize>12&&(n.config.fontSize-=2)},Q=l(()=>n.config.spacing),B=()=>{n.config.spacing.letter-=.01},b=()=>{n.config.spacing.letter+=.01},te=()=>{n.config.spacing.line-=.1},ce=()=>{n.config.spacing.line+=.1},fe=()=>{n.config.spacing.paragraph-=.1},me=()=>{n.config.spacing.paragraph+=.1},j=l(()=>n.config.readWidth),ve=()=>{n.config.readWidth+160+2*68>window.innerWidth||(n.config.readWidth+=160)},ke=()=>{n.config.readWidth>640&&(n.config.readWidth-=160)},oe=l(()=>n.config.jumpDuration),de=()=>{n.config.jumpDuration+=100},ne=()=>{n.config.jumpDuration!==0&&(n.config.jumpDuration-=100)},se=l(()=>n.config.infiniteLoading),ge=V=>{n.config.infiniteLoading=V};return(V,e)=>{const q=Je,L=Te,M=Qe;return p(),v("div",{class:x(["settings-wrapper",{night:a(f),day:!a(f)}]),style:Z(a(C))},[e[50]||(e[50]=t("div",{class:"settings-title"},"设置",-1)),t("div",St,[t("ul",null,[t("li",wt,[e[6]||(e[6]=t("i",null,"阅读主题",-1)),(p(),v(ee,null,re(S,(h,z)=>t("span",{class:x(["theme-item",{selected:a(c)==z}]),key:z,style:Z(h),ref_for:!0,ref:"themes",onClick:ae=>w(z)},[z<6?(p(),v("em",Ut,"")):(p(),v("em",xt,H(a(s)),1))],14,Et)),64))]),t("li",Dt,[e[7]||(e[7]=t("i",null,"正文字体",-1)),(p(!0),v(ee,null,re(a(k),(h,z)=>(p(),v("span",{class:x(["font-item",{selected:a(K)==z}]),key:z,onClick:ae=>D(z)},H(h),11,Qt))),128))]),t("li",Vt,[e[13]||(e[13]=t("i",null,"自定字体",-1)),J(q,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:W(()=>[Oe(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":e[0]||(e[0]=h=>pe(u)?u.value=h:null),placeholder:"请输入自定义的字体名称"},null,512),[[He,a(u)]])]),_:1}),J(M,{placement:"top",width:"270",trigger:"click",visible:a(E),"onUpdate:visible":e[3]||(e[3]=h=>pe(E)?E.value=h:null)},{reference:W(()=>e[11]||(e[11]=[t("span",{type:"text",class:"font-item"},"保存",-1)])),default:W(()=>[e[12]||(e[12]=t("p",null," 已经安装在您的设备上的字体请确认输入的字体名称完整无误,或者从网络下载字体。 ",-1)),t("div",Pt,[J(L,{size:"small",plain:"",onClick:e[1]||(e[1]=h=>E.value=!1)},{default:W(()=>e[8]||(e[8]=[G("取消")])),_:1}),J(L,{type:"primary",size:"small",onClick:e[2]||(e[2]=h=>{d(),E.value=!1})},{default:W(()=>e[9]||(e[9]=[G("确定")])),_:1}),J(L,{type:"primary",size:"small",onClick:m},{default:W(()=>e[10]||(e[10]=[G("网络下载")])),_:1})])]),_:1},8,["visible"])]),t("li",Ft,[e[19]||(e[19]=t("i",null,"字体大小",-1)),t("div",Lt,[t("span",{class:"less",onClick:T},e[14]||(e[14]=[t("em",{class:"iconfont"},"",-1)])),e[16]||(e[16]=t("b",null,null,-1)),e[17]||(e[17]=G()),t("span",Mt,H(a(r)),1),e[18]||(e[18]=t("b",null,null,-1)),t("span",{class:"more",onClick:I},e[15]||(e[15]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Rt,[e[25]||(e[25]=t("i",null,"字距",-1)),t("div",Kt,[t("span",{class:"less",onClick:B},e[20]||(e[20]=[t("em",{class:"iconfont"},"",-1)])),e[22]||(e[22]=t("b",null,null,-1)),e[23]||(e[23]=G()),t("span",zt,H(a(Q).letter.toFixed(2)),1),e[24]||(e[24]=t("b",null,null,-1)),t("span",{class:"more",onClick:b},e[21]||(e[21]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Nt,[e[31]||(e[31]=t("i",null,"行距",-1)),t("div",Ot,[t("span",{class:"less",onClick:te},e[26]||(e[26]=[t("em",{class:"iconfont"},"",-1)])),e[28]||(e[28]=t("b",null,null,-1)),e[29]||(e[29]=G()),t("span",Ht,H(a(Q).line.toFixed(1)),1),e[30]||(e[30]=t("b",null,null,-1)),t("span",{class:"more",onClick:ce},e[27]||(e[27]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Wt,[e[36]||(e[36]=t("i",null,"段距",-1)),t("div",Jt,[t("div",Tt,[t("span",{class:"less",onClick:fe},e[32]||(e[32]=[t("em",{class:"iconfont"},"",-1)])),e[34]||(e[34]=t("b",null,null,-1)),t("span",qt,H(a(Q).paragraph.toFixed(1)),1),e[35]||(e[35]=t("b",null,null,-1)),t("span",{class:"more",onClick:me},e[33]||(e[33]=[t("em",{class:"iconfont"},"",-1)]))])])]),a(n).miniInterface?ue("",!0):(p(),v("li",Gt,[e[42]||(e[42]=t("i",null,"页面宽度",-1)),t("div",Zt,[t("span",{class:"less",onClick:ke},e[37]||(e[37]=[t("em",{class:"iconfont"},"",-1)])),e[39]||(e[39]=t("b",null,null,-1)),e[40]||(e[40]=G()),t("span",Yt,H(a(j)),1),e[41]||(e[41]=t("b",null,null,-1)),t("span",{class:"more",onClick:ve},e[38]||(e[38]=[t("em",{class:"iconfont"},"",-1)]))])])),t("li",jt,[e[48]||(e[48]=t("i",null,"翻页速度",-1)),t("div",Xt,[t("div",_t,[t("span",{class:"less",onClick:ne},e[43]||(e[43]=[t("em",{class:"iconfont"},"",-1)])),e[45]||(e[45]=t("b",null,null,-1)),e[46]||(e[46]=G()),t("span",$t,H(a(oe)),1),e[47]||(e[47]=t("b",null,null,-1)),t("span",{class:"more",onClick:de},e[44]||(e[44]=[t("em",{class:"iconfont"},"",-1)]))])])]),t("li",eo,[e[49]||(e[49]=t("i",null,"无限加载",-1)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!1}]),key:0,onClick:e[4]||(e[4]=h=>ge(!1))},"关闭",2)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!0}]),key:1,onClick:e[5]||(e[5]=h=>ge(!0))},"开启",2))])])])],6)}}},oo=Ae(to,[["__scopeId","data-v-a07727de"]]),no={class:"wrapper"},so=["onClick"],ao={__name:"CatalogItem",props:["index","source","gotoChapter","currentChapterIndex"],setup(A){const n=A,c=s=>s==n.currentChapterIndex,f=l(()=>{var s;return((s=n.source)==null?void 0:s.catas)??[n.source]});return(s,S)=>(p(),v("div",no,[(p(!0),v(ee,null,re(a(f),C=>(p(),v("div",{class:x(["cata-text",{selected:c(C.index)}]),key:C.url,onClick:w=>A.gotoChapter(C)},H(C.title),11,so))),128))]))}},io=Ae(ao,[["__scopeId","data-v-86592297"]]),ro={__name:"PopCatalog",emits:["getContent"],setup(A,{emit:n}){const c=le(),{catalog:f,popCataVisible:s,miniInterface:S}=Ve(c),C=l(()=>c.theme),w=l(()=>c.theme),k=l(()=>({background:$.themes[w.value].popup})),D=l(()=>{let r=f.value;if(S.value)return r;let I=Math.ceil(r.length/2),T=new Array(I),Q=0;for(;Qc.readingBook.index,set:r=>c.readingBook.index=r}),E=l(()=>{let r=u.value;return S.value?r:Math.floor(r/2)});qe(()=>{s.value&&K.value.scrollToIndex(E.value)});const d=n,m=r=>{const I=f.value.indexOf(r);u.value=I,c.setPopCataVisible(!1),c.setContentLoading(!0),c.saveBookProgress(),d("getContent",I)};return(r,I)=>(p(),v("div",{class:x({"cata-wrapper":!0,visible:a(s)}),style:Z(a(k))},[I[0]||(I[0]=t("div",{class:"title"},"目录",-1)),J(a(Ge),{style:{height:"300px",overflow:"auto"},class:x({night:a(C),day:!a(C)}),ref_key:"virtualListRef",ref:K,"data-key":"index","wrap-class":"data-wrapper","item-class":"cata","data-sources":a(D),"data-component":io,"estimate-size":40,"extra-props":{gotoChapter:m,currentChapterIndex:a(u)}},null,8,["class","data-sources","extra-props"])],6))}},lo=Ae(ro,[["__scopeId","data-v-6b8fd950"]]),Ao={class:"tools"},co={class:"tools"},go={key:0},uo={key:0},po={class:"content"},fo=["chapterIndex"],mo={__name:"BookChapter",setup(A){const n=U(),{isLoading:c,loadingWrapper:f}=$e(n,"正在获取信息"),s=le();try{const o=JSON.parse(localStorage.getItem("config"));o!=null&&s.setConfig(o)}catch{localStorage.removeItem("config")}const{catalog:S,popCataVisible:C,readSettingsVisible:w,miniInterface:k,showContent:D,bookProgress:K,theme:u,isNight:E}=Ve(s),d=l({get:()=>s.readingBook.chapterPos,set:o=>s.readingBook.chapterPos=o}),m=l({get:()=>s.readingBook.index,set:o=>s.readingBook.index=o}),r=l(()=>s.config.infiniteLoading),I=l(()=>s.config.font>=0?$.fonts[s.config.font]:s.config.customFontName),T=l(()=>s.config.fontSize+"px"),Q=l(()=>$.themes[u.value].body),B=l(()=>$.themes[u.value].content),b=l(()=>$.themes[u.value].popup),te=l(()=>k.value?window.innerWidth+"px":s.config.readWidth-130+"px"),ce=l(()=>k.value?window.innerWidth-33:s.config.readWidth-33),fe=l(()=>({background:Q.value})),me=l(()=>({background:B.value,width:te.value})),j=U(!1),ve=l(()=>({background:b.value,marginLeft:k.value?0:-(s.config.readWidth/2+68)+"px",display:k.value&&!j.value?"none":"block"})),ke=l(()=>({background:b.value,marginRight:k.value?0:-(s.config.readWidth/2+52)+"px",display:k.value&&!j.value?"none":"block"})),oe=()=>{s.setMiniInterface(window.innerWidth<776);const o=s.config.readWidth;de(o)},de=o=>{s.miniInterface||o+2*68>window.innerWidth&&(s.config.readWidth-=160)};De(()=>s.config.readWidth,o=>de(o));const ne=U(),se=U(),ge=()=>{_(ne.value)},V=()=>{_(se.value)},e=Ze(),q=()=>{e.push("/")},L=U([]),M=U(!0),h=(o,i=!0,P=0)=>{i&&(s.setShowContent(!1),_(ne.value,{duration:0}),Ce(o,P),L.value=[]);let y=sessionStorage.getItem("bookUrl"),{title:N,index:O}=S.value[o];f(Y.getBookContent(y,O).then(g=>{if(g.data.isSuccess){let ze=g.data.data.split(/\n+/);L.value.push({index:o,content:ze,title:N}),i&&Pe(P)}else{F({message:g.data.errorMsg,type:"error"});let X=[g.data.errorMsg];L.value.push({index:o,content:X,title:N})}if(s.setContentLoading(!0),M.value=!1,s.setShowContent(!0),!g.data.isSuccess)throw g.data},g=>{F({message:"获取章节内容失败",type:"error"});let X=["获取章节内容失败!"];throw L.value.push({index:o,content:X,title:N}),s.setShowContent(!0),g}))},z=U(),ae=U(),Pe=o=>{xe(()=>{ae.value.length===1&&ae.value[0].scrollToReadedLength(o)})},Fe=Ye(()=>s.saveBookProgress(),6e4),Le=(o,i)=>{Ce(o,i),Fe()};we(()=>{var o;document.title=((o=S.value[m.value])==null?void 0:o.title)||document.title});const Ce=(o,i)=>{let P=sessionStorage.getItem("bookUrl");var y=JSON.parse(localStorage.getItem(P));y.index=o,y.chapterPos=i,localStorage.setItem(P,JSON.stringify(y)),y=JSON.parse(localStorage.getItem("readingRecent")),y.chapterIndex=o,y.chapterPos=i,localStorage.setItem("readingRecent",JSON.stringify(y)),m.value=o,d.value=i,sessionStorage.setItem("chapterIndex",o),sessionStorage.setItem("chapterPos",String(i))},he=()=>{document.visibilityState=="hidden"&&Y.saveBookProgressWithBeacon(K.value)},ye=()=>{s.setContentLoading(!0);let o=m.value+1;typeof S.value[o]<"u"?(F({message:"下一章",type:"info"}),h(o),s.saveBookProgress()):F({message:"本章是最后一章",type:"error"})},Ie=()=>{s.setContentLoading(!0);let o=m.value-1;typeof S.value[o]<"u"?(F({message:"上一章",type:"info"}),h(o),s.saveBookProgress()):F({message:"本章是第一章",type:"error"})};let R;const Be=U();we(()=>{r.value?R==null||R.observe(Be.value):R==null||R.disconnect()});const Me=()=>{let o=L.value.slice(-1)[0].index;S.value.length-1>o&&(h(o+1,!1),s.saveBookProgress())},Re=o=>{if(!c.value)for(let{isIntersecting:i}of o){if(!i)return;Me()}};let ie=!0;const be=o=>{if(ie)switch(o.key){case"ArrowLeft":o.stopPropagation(),o.preventDefault(),Ie();break;case"ArrowRight":o.stopPropagation(),o.preventDefault(),ye();break;case"ArrowUp":o.stopPropagation(),o.preventDefault(),document.documentElement.scrollTop===0?F.warning("已到达页面顶部"):(ie=!1,_(0-document.documentElement.clientHeight+100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break;case"ArrowDown":o.stopPropagation(),o.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?F.warning("已到达页面底部"):(ie=!1,_(document.documentElement.clientHeight-100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break}},Se=o=>{(o.key==="ArrowUp"||o.key==="ArrowDown")&&(o.preventDefault(),o.stopPropagation())};Ee(()=>{let o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("bookAuthor"),y=Number(sessionStorage.getItem("chapterIndex")||0),N=Number(sessionStorage.getItem("chapterPos")||0);var O=JSON.parse(localStorage.getItem(o));(O==null||y!=O.index||N!=O.chapterPos)&&(O={bookName:i,bookAuthor:P,bookUrl:o,index:y,chapterPos:N},localStorage.setItem(o,JSON.stringify(O))),oe(),window.addEventListener("resize",oe),f(Y.getChapterList(o).then(g=>{if(!g.data.isSuccess){F({message:g.data.errorMsg,type:"error"}),setTimeout(q,500);return}let X=g.data.data;s.setCatalog(X),s.setReadingBook(O),h(y,!0,N),window.addEventListener("keyup",be),window.addEventListener("keydown",Se),document.addEventListener("visibilitychange",he),R=new IntersectionObserver(Re,{rootMargin:"-100% 0% 20% 0%"}),r.value&&R.observe(Be.value),document.title=null,document.title=i+" | "+S.value[y].title},g=>{throw F({message:"获取书籍目录失败",type:"error"}),g}))}),Ue(()=>{window.removeEventListener("keyup",be),window.removeEventListener("keydown",Se),window.removeEventListener("resize",oe),document.removeEventListener("visibilitychange",he),w.value=!1,C.value=!1,R==null||R.disconnect(),R=null});const Ke=async()=>{const o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("isSeachBook"),y=JSON.parse(localStorage.getItem(o));sessionStorage.removeItem("isSeachBook"),P==="true"&&(window.confirm(`是否将《${i}》放入书架?`)||await Y.deleteBook(y))};return je(async(o,i,P)=>{await Ke(),P()}),(o,i)=>{const P=lo,y=Qe,N=oo,O=it;return p(),v("div",{class:x(["chapter-wrapper",{night:a(E),day:!a(E)}]),style:Z(a(fe)),onClick:i[2]||(i[2]=g=>j.value=!a(j))},[t("div",{class:"tool-bar",style:Z(a(ve))},[t("div",Ao,[J(y,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(C),"onUpdate:visible":i[0]||(i[0]=g=>pe(C)?C.value=g:null),"popper-class":"pop-cata"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[3]||(i[3]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"目录",-1)]),2)]),default:W(()=>[J(P,{onGetContent:h,class:"popup"})]),_:1},8,["width","visible"]),J(y,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(w),"onUpdate:visible":i[1]||(i[1]=g=>pe(w)?w.value=g:null),"popper-class":"pop-setting"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[4]||(i[4]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"设置",-1)]),2)]),default:W(()=>[J(N,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:q},i[5]||(i[5]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"书架",-1)])),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:ge},i[6]||(i[6]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"顶部",-1)]),2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:V},i[7]||(i[7]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"底部",-1)]),2)])],4),t("div",{class:"read-bar",style:Z(a(ke))},[t("div",co,[t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:Ie},[i[8]||(i[8]=t("div",{class:"iconfont"},"",-1)),a(k)?(p(),v("span",go,"上一章")):ue("",!0)],2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:ye},[a(k)?(p(),v("span",uo,"下一章")):ue("",!0),i[9]||(i[9]=t("div",{class:"iconfont"},"",-1))],2)])],4),i[10]||(i[10]=t("div",{class:"chapter-bar"},null,-1)),t("div",{class:"chapter",ref_key:"content",ref:n,style:Z(a(me))},[t("div",po,[t("div",{class:"top-bar",ref_key:"top",ref:ne},null,512),(p(!0),v(ee,null,re(a(L),g=>(p(),v("div",{key:g.index,chapterIndex:g.index,ref_for:!0,ref_key:"chapter",ref:z},[a(D)?(p(),Xe(O,{key:0,ref_for:!0,ref_key:"chapterRef",ref:ae,chapterIndex:g.index,contents:g.content,title:g.title,spacing:a(s).config.spacing,fontSize:a(T),fontFamily:a(I),onReadedLengthChange:Le},null,8,["chapterIndex","contents","title","spacing","fontSize","fontFamily"])):ue("",!0)],8,fo))),128)),t("div",{class:"loading",ref_key:"loading",ref:Be},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:se},null,512)])],4)],6)}}},Co=Ae(mo,[["__scopeId","data-v-fdc0f985"]]);export{Co as default}; diff --git a/app/src/main/assets/web/vue/assets/BookChapter-C8lBKSzj.css b/app/src/main/assets/web/vue/assets/BookChapter-CtVBKsqC.css similarity index 79% rename from app/src/main/assets/web/vue/assets/BookChapter-C8lBKSzj.css rename to app/src/main/assets/web/vue/assets/BookChapter-CtVBKsqC.css index 4f695f637..870e3312e 100644 --- a/app/src/main/assets/web/vue/assets/BookChapter-C8lBKSzj.css +++ b/app/src/main/assets/web/vue/assets/BookChapter-CtVBKsqC.css @@ -1 +1 @@ -@charset "UTF-8";.title[data-v-26df22f8]{margin-bottom:57px;font:24px/32px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}p[data-v-26df22f8]{display:block;word-wrap:break-word;letter-spacing:calc(var(--3cc208fd) * 1em);line-height:calc(1 + var(--16b4de8b));margin:calc(var(--c0f3bd92) * 1em) 0}p[data-v-26df22f8] img{height:1em}.full[data-v-26df22f8]{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-a07727de] .iconfont,[data-v-a07727de] .moon-icon{font-family:iconfont;font-style:normal}.settings-wrapper[data-v-a07727de]{-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-a07727de]{font-size:18px;line-height:22px;margin-bottom:28px;font-family:FZZCYSK;font-weight:400}.settings-wrapper .setting-list[data-v-a07727de]{max-height:calc(70vh - 50px);overflow:auto}.settings-wrapper .setting-list ul[data-v-a07727de]{list-style:none outside none;margin:0;padding:0}.settings-wrapper .setting-list ul li[data-v-a07727de]{list-style:none outside none}.settings-wrapper .setting-list ul li i[data-v-a07727de]{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-a07727de]{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-a07727de]{display:none}.settings-wrapper .setting-list ul li .selected[data-v-a07727de]{color:#ed4259}.settings-wrapper .setting-list ul li .selected .iconfont[data-v-a07727de]{display:inline}.settings-wrapper .setting-list ul .font-list[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading[data-v-a07727de]{margin-top:28px}.settings-wrapper .setting-list ul .font-list .font-item[data-v-a07727de],.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-a07727de]{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-a07727de],.settings-wrapper .setting-list ul .infinite-loading .font-item-input[data-v-a07727de]{width:168px;color:#000}.settings-wrapper .setting-list ul .font-list .selected[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading .selected[data-v-a07727de]{color:#ed4259;border:1px solid #ed4259}.settings-wrapper .setting-list ul .font-list .font-item[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-a07727de]:hover{border:1px solid #ed4259;color:#ed4259}.settings-wrapper .setting-list ul .font-size[data-v-a07727de],.settings-wrapper .setting-list ul .read-width[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing[data-v-a07727de]{margin-top:28px}.settings-wrapper .setting-list ul .font-size .resize[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize[data-v-a07727de]{display:inline-block;width:274px;height:34px;vertical-align:middle;border-radius:2px}.settings-wrapper .setting-list ul .font-size .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize span[data-v-a07727de]{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-a07727de],.settings-wrapper .setting-list ul .read-width .resize span em[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize span em[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize span em[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize span em[data-v-a07727de]{font-style:normal}.settings-wrapper .setting-list ul .font-size .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .font-size .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .read-width .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .read-width .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .more[data-v-a07727de]:hover{color:#ed4259}.settings-wrapper .setting-list ul .font-size .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize .lang[data-v-a07727de]{color:#a6a6a6;font-weight:400;font-family:FZZCYSK}.settings-wrapper .setting-list ul .font-size .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize b[data-v-a07727de]{display:inline-block;height:20px;vertical-align:middle}.night[data-v-a07727de] .theme-item,.night[data-v-a07727de] .selected{border:1px solid #666}.night[data-v-a07727de] .moon-icon{color:#ed4259}.night[data-v-a07727de] .font-list .font-item,.night[data-v-a07727de] .font-list .infinite-loading-item,.night .infinite-loading .font-item[data-v-a07727de],.night .infinite-loading .infinite-loading-item[data-v-a07727de],.night[data-v-a07727de] .resize{border:1px solid #666;background:#2d2d2d80}.night[data-v-a07727de] .resize b{border-right:1px solid #666}.day[data-v-a07727de] .theme-item{border:1px solid #e5e5e5}.day[data-v-a07727de] .selected{border:1px solid #ed4259}.day[data-v-a07727de] .moon-icon{display:inline;color:#fff3}.day[data-v-a07727de] .font-list .font-item,.day[data-v-a07727de] .font-list .infinite-loading-item,.day .infinite-loading .font-item[data-v-a07727de],.day .infinite-loading .infinite-loading-item[data-v-a07727de]{background:#ffffff80;border:1px solid rgba(0,0,0,.1)}.day[data-v-a07727de] .resize{border:1px solid #e5e5e5;background:#ffffff80}.day[data-v-a07727de] .resize b{border-right:1px solid #e5e5e5}@media screen and (max-width: 500px){.settings-wrapper i[data-v-a07727de]{display:flex!important;flex-wrap:wrap;padding-bottom:5px!important}}.selected[data-v-86592297]{color:#eb4259}.wrapper[data-v-86592297]{display:flex}.wrapper .cata-text[data-v-86592297]{width:100%;margin-right:26px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cata-wrapper[data-v-6b8fd950]{margin:-16px;padding:18px 0 24px 25px}.cata-wrapper .title[data-v-6b8fd950]{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-6b8fd950] .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-6b8fd950] .cata{border-bottom:1px solid #666}.cata-wrapper .day[data-v-6b8fd950] .cata{border-bottom:1px solid #f2f2f2}[data-v-1ee927f9] .pop-setting{margin-left:68px;top:0}[data-v-1ee927f9] .pop-cata{margin-left:10px}.chapter-wrapper[data-v-1ee927f9]{padding:0 4%;overflow-x:hidden}.chapter-wrapper[data-v-1ee927f9] .no-point{pointer-events:none}.chapter-wrapper .tool-bar[data-v-1ee927f9]{position:fixed;top:0;left:50%;z-index:100}.chapter-wrapper .tool-bar .tools[data-v-1ee927f9]{display:flex;flex-direction:column}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-1ee927f9]{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-1ee927f9]{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-1ee927f9]{font-size:12px}.chapter-wrapper .read-bar[data-v-1ee927f9]{position:fixed;bottom:0;right:50%;z-index:100}.chapter-wrapper .read-bar .tools[data-v-1ee927f9]{display:flex;flex-direction:column}.chapter-wrapper .read-bar .tools .tool-icon[data-v-1ee927f9]{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-1ee927f9]{font-family:iconfont;width:16px;height:16px;font-size:16px;margin:0 auto 6px}.chapter-wrapper .chapter[data-v-1ee927f9]{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-1ee927f9]{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-1ee927f9],.chapter-wrapper .chapter .content .top-bar[data-v-1ee927f9]{height:64px}.day[data-v-1ee927f9] .popup{box-shadow:0 2px 4px #0000001f,0 0 6px #0000000a}.day[data-v-1ee927f9] .tool-icon{border:1px solid rgba(0,0,0,.1);margin-top:-1px;color:#000}.day[data-v-1ee927f9] .tool-icon .icon-text{color:#0006}.day[data-v-1ee927f9] .chapter{border:1px solid #d8d8d8;color:#262626}.night[data-v-1ee927f9] .popup{box-shadow:0 2px 4px #0000007a,0 0 6px #00000029}.night[data-v-1ee927f9] .tool-icon{border:1px solid #444;margin-top:-1px;color:#666}.night[data-v-1ee927f9] .tool-icon .icon-text{color:#666}.night[data-v-1ee927f9] .chapter{border:1px solid #444;color:#666}.night[data-v-1ee927f9] .popper__arrow{background:#666}@media screen and (max-width: 776px){.chapter-wrapper[data-v-1ee927f9]{padding:0}.chapter-wrapper .tool-bar[data-v-1ee927f9]{left:0;width:100vw;margin-left:0!important}.chapter-wrapper .tool-bar .tools[data-v-1ee927f9]{flex-direction:row;justify-content:space-between}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-1ee927f9]{border:none}.chapter-wrapper .read-bar[data-v-1ee927f9]{right:0;width:100vw;margin-right:0!important}.chapter-wrapper .read-bar .tools[data-v-1ee927f9]{flex-direction:row;justify-content:space-between;padding:0 15px}.chapter-wrapper .read-bar .tools .tool-icon[data-v-1ee927f9]{border:none;width:auto}.chapter-wrapper .read-bar .tools .tool-icon .iconfont[data-v-1ee927f9]{display:inline-block}.chapter-wrapper .chapter[data-v-1ee927f9]{width:100vw!important;padding:0 20px;box-sizing:border-box}} +@charset "UTF-8";.title[data-v-d37de557]{margin-bottom:57px;font:24px/32px PingFangSC-Regular,HelveticaNeue-Light,Helvetica Neue Light,Microsoft YaHei,sans-serif}p[data-v-d37de557]{display:block;word-wrap:break-word;letter-spacing:calc(var(--f67eb5da) * 1em);line-height:calc(1 + var(--5690efbe));margin:calc(var(--9487f53e) * 1em) 0}p[data-v-d37de557] img{height:1em}.full[data-v-d37de557]{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-a07727de] .iconfont,[data-v-a07727de] .moon-icon{font-family:iconfont;font-style:normal}.settings-wrapper[data-v-a07727de]{-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-a07727de]{font-size:18px;line-height:22px;margin-bottom:28px;font-family:FZZCYSK;font-weight:400}.settings-wrapper .setting-list[data-v-a07727de]{max-height:calc(70vh - 50px);overflow:auto}.settings-wrapper .setting-list ul[data-v-a07727de]{list-style:none outside none;margin:0;padding:0}.settings-wrapper .setting-list ul li[data-v-a07727de]{list-style:none outside none}.settings-wrapper .setting-list ul li i[data-v-a07727de]{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-a07727de]{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-a07727de]{display:none}.settings-wrapper .setting-list ul li .selected[data-v-a07727de]{color:#ed4259}.settings-wrapper .setting-list ul li .selected .iconfont[data-v-a07727de]{display:inline}.settings-wrapper .setting-list ul .font-list[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading[data-v-a07727de]{margin-top:28px}.settings-wrapper .setting-list ul .font-list .font-item[data-v-a07727de],.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-a07727de]{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-a07727de],.settings-wrapper .setting-list ul .infinite-loading .font-item-input[data-v-a07727de]{width:168px;color:#000}.settings-wrapper .setting-list ul .font-list .selected[data-v-a07727de],.settings-wrapper .setting-list ul .infinite-loading .selected[data-v-a07727de]{color:#ed4259;border:1px solid #ed4259}.settings-wrapper .setting-list ul .font-list .font-item[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .font-list .infinite-loading-item[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .infinite-loading .font-item[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .infinite-loading .infinite-loading-item[data-v-a07727de]:hover{border:1px solid #ed4259;color:#ed4259}.settings-wrapper .setting-list ul .font-size[data-v-a07727de],.settings-wrapper .setting-list ul .read-width[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing[data-v-a07727de]{margin-top:28px}.settings-wrapper .setting-list ul .font-size .resize[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize[data-v-a07727de]{display:inline-block;width:274px;height:34px;vertical-align:middle;border-radius:2px}.settings-wrapper .setting-list ul .font-size .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize span[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize span[data-v-a07727de]{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-a07727de],.settings-wrapper .setting-list ul .read-width .resize span em[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize span em[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize span em[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize span em[data-v-a07727de]{font-style:normal}.settings-wrapper .setting-list ul .font-size .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .font-size .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .read-width .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .read-width .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .letter-spacing .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .line-spacing .resize .more[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .less[data-v-a07727de]:hover,.settings-wrapper .setting-list ul .paragraph-spacing .resize .more[data-v-a07727de]:hover{color:#ed4259}.settings-wrapper .setting-list ul .font-size .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize .lang[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize .lang[data-v-a07727de]{color:#a6a6a6;font-weight:400;font-family:FZZCYSK}.settings-wrapper .setting-list ul .font-size .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .read-width .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .letter-spacing .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .line-spacing .resize b[data-v-a07727de],.settings-wrapper .setting-list ul .paragraph-spacing .resize b[data-v-a07727de]{display:inline-block;height:20px;vertical-align:middle}.night[data-v-a07727de] .theme-item,.night[data-v-a07727de] .selected{border:1px solid #666}.night[data-v-a07727de] .moon-icon{color:#ed4259}.night[data-v-a07727de] .font-list .font-item,.night[data-v-a07727de] .font-list .infinite-loading-item,.night .infinite-loading .font-item[data-v-a07727de],.night .infinite-loading .infinite-loading-item[data-v-a07727de],.night[data-v-a07727de] .resize{border:1px solid #666;background:#2d2d2d80}.night[data-v-a07727de] .resize b{border-right:1px solid #666}.day[data-v-a07727de] .theme-item{border:1px solid #e5e5e5}.day[data-v-a07727de] .selected{border:1px solid #ed4259}.day[data-v-a07727de] .moon-icon{display:inline;color:#fff3}.day[data-v-a07727de] .font-list .font-item,.day[data-v-a07727de] .font-list .infinite-loading-item,.day .infinite-loading .font-item[data-v-a07727de],.day .infinite-loading .infinite-loading-item[data-v-a07727de]{background:#ffffff80;border:1px solid rgba(0,0,0,.1)}.day[data-v-a07727de] .resize{border:1px solid #e5e5e5;background:#ffffff80}.day[data-v-a07727de] .resize b{border-right:1px solid #e5e5e5}@media screen and (max-width: 500px){.settings-wrapper i[data-v-a07727de]{display:flex!important;flex-wrap:wrap;padding-bottom:5px!important}}.selected[data-v-86592297]{color:#eb4259}.wrapper[data-v-86592297]{display:flex}.wrapper .cata-text[data-v-86592297]{width:100%;margin-right:26px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cata-wrapper[data-v-6b8fd950]{margin:-16px;padding:18px 0 24px 25px}.cata-wrapper .title[data-v-6b8fd950]{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-6b8fd950] .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-6b8fd950] .cata{border-bottom:1px solid #666}.cata-wrapper .day[data-v-6b8fd950] .cata{border-bottom:1px solid #f2f2f2}[data-v-fdc0f985] .pop-setting{margin-left:68px;top:0}[data-v-fdc0f985] .pop-cata{margin-left:10px}.chapter-wrapper[data-v-fdc0f985]{padding:0 4%;overflow-x:hidden}.chapter-wrapper[data-v-fdc0f985] .no-point{pointer-events:none}.chapter-wrapper .tool-bar[data-v-fdc0f985]{position:fixed;top:0;left:50%;z-index:100}.chapter-wrapper .tool-bar .tools[data-v-fdc0f985]{display:flex;flex-direction:column}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-fdc0f985]{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-fdc0f985]{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-fdc0f985]{font-size:12px}.chapter-wrapper .read-bar[data-v-fdc0f985]{position:fixed;bottom:0;right:50%;z-index:100}.chapter-wrapper .read-bar .tools[data-v-fdc0f985]{display:flex;flex-direction:column}.chapter-wrapper .read-bar .tools .tool-icon[data-v-fdc0f985]{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-fdc0f985]{font-family:iconfont;width:16px;height:16px;font-size:16px;margin:0 auto 6px}.chapter-wrapper .chapter[data-v-fdc0f985]{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-fdc0f985]{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-fdc0f985],.chapter-wrapper .chapter .content .top-bar[data-v-fdc0f985]{height:64px}.day[data-v-fdc0f985] .popup{box-shadow:0 2px 4px #0000001f,0 0 6px #0000000a}.day[data-v-fdc0f985] .tool-icon{border:1px solid rgba(0,0,0,.1);margin-top:-1px;color:#000}.day[data-v-fdc0f985] .tool-icon .icon-text{color:#0006}.day[data-v-fdc0f985] .chapter{border:1px solid #d8d8d8;color:#262626}.night[data-v-fdc0f985] .popup{box-shadow:0 2px 4px #0000007a,0 0 6px #00000029}.night[data-v-fdc0f985] .tool-icon{border:1px solid #444;margin-top:-1px;color:#666}.night[data-v-fdc0f985] .tool-icon .icon-text{color:#666}.night[data-v-fdc0f985] .chapter{border:1px solid #444;color:#666}.night[data-v-fdc0f985] .popper__arrow{background:#666}@media screen and (max-width: 776px){.chapter-wrapper[data-v-fdc0f985]{padding:0}.chapter-wrapper .tool-bar[data-v-fdc0f985]{left:0;width:100vw;margin-left:0!important}.chapter-wrapper .tool-bar .tools[data-v-fdc0f985]{flex-direction:row;justify-content:space-between}.chapter-wrapper .tool-bar .tools .tool-icon[data-v-fdc0f985]{border:none}.chapter-wrapper .read-bar[data-v-fdc0f985]{right:0;width:100vw;margin-right:0!important}.chapter-wrapper .read-bar .tools[data-v-fdc0f985]{flex-direction:row;justify-content:space-between;padding:0 15px}.chapter-wrapper .read-bar .tools .tool-icon[data-v-fdc0f985]{border:none;width:auto}.chapter-wrapper .read-bar .tools .tool-icon .iconfont[data-v-fdc0f985]{display:inline-block}.chapter-wrapper .chapter[data-v-fdc0f985]{width:100vw!important;padding:0 20px;box-sizing:border-box}} diff --git a/app/src/main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js b/app/src/main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js deleted file mode 100644 index 36e385bd3..000000000 --- a/app/src/main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js +++ /dev/null @@ -1 +0,0 @@ -import{a0 as Ne,m as l,v as U,Q as Ee,a6 as Ue,o as p,d as v,g as t,t as H,F as ee,M as re,u as a,a7 as Z,a8 as xe,H as De,p as x,e as J,w as W,a9 as Oe,x as pe,aa as He,f as G,J as ue,a5 as We,j as F,ab as Je,q as Te,ac as Qe,ad as Ve,ae as qe,V as Ge,a4 as Ze,af as Ye,L as we,ag as je,c as Xe}from"./vendor-MihKrDrn.js";import{i as _e,u as $e}from"./loading-DPd2-h-z.js";import{_ as Ae,A as Y,u as le}from"./index-DfNldNYB.js";const et=(A,n,c,f)=>(A/=f/2,A<1?c/2*A*A+n:(A--,-c/2*(A*(A-2)-1)+n)),tt=()=>{let A,n,c,f,s,S,y,w,k,D,K,u,E;function d(){let B=A.scrollTop||A.scrollY||A.pageYOffset;return B=typeof B>"u"?0:B,B}function m(B){const b=B.getBoundingClientRect().top,te=A.getBoundingClientRect?A.getBoundingClientRect().top:0;return b-te+c}function r(B){A.scrollTo?A.scrollTo(0,B):A.scrollTop=B}function I(B){D||(D=B),K=B-D,u=S(K,c,w,k),r(u),K({"3cc208fd":f.spacing.letter,"16b4de8b":f.spacing.line,c0f3bd92:f.spacing.paragraph}));const f=A,s=d=>{const m=/]*src="([^"]*(?:"[^>]+\})?)"[^>]*>/,r=d.match(m)[1];return _e(r)?Y.getProxyImageUrl(r,le().config.readWidth):r},S=d=>{d.target.src=Y.getProxyImageUrl(d.target.src,le().config.readWidth)},y=d=>{const m=/]*src="[^"]*(?:"[^>]+\})?"[^>]*>/g;return d.replaceAll(m," ").length},w=l(()=>{let d=-1;return Array.from(f.contents,m=>(d+=y(m)+1,d))}),k=U(),D=U();n({scrollToReadedLength:d=>{if(d===0)return;let m=w.value.findIndex(r=>r>=d);m!==-1&&xe(()=>{_(D.value[m],{duration:0})})}});let u=null;const E=c;return Ee(()=>{u=new IntersectionObserver(d=>{for(let{target:m,isIntersecting:r}of d)r&&E("readedLengthChange",f.chapterIndex,parseInt(m.dataset.chapterpos))},{rootMargin:`0px 0px -${window.innerHeight-24}px 0px`}),u.observe(k.value),D.value.forEach(d=>{u.observe(d)})}),Ue(()=>{u==null||u.disconnect(),u=null}),(d,m)=>(p(),v(ee,null,[t("div",{class:"title","data-chapterpos":"0",ref_key:"titleRef",ref:k},H(A.title),513),(p(!0),v(ee,null,re(A.contents,(r,I)=>(p(),v("div",{key:I,ref_for:!0,ref_key:"paragraphRef",ref:D,"data-chapterpos":a(w)[I]},[/^\s*]*src[^>]+>$/.test(r)?(p(),v("img",{key:0,class:"full",src:s(r),onErrorOnce:S,loading:"lazy"},null,40,nt)):(p(),v("p",{key:1,style:Z({fontFamily:A.fontFamily,fontSize:A.fontSize}),innerHTML:r},null,12,st))],8,ot))),128))],64))}},it=Ae(at,[["__scopeId","data-v-26df22f8"]]),rt="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=",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",At="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=",ct="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=",dt="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==",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",pt="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=",ft="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",mt="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=",vt="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",kt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",Bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",yt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",Ct="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=",ht="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",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==";var $={themes:[{body:"#ede7da url("+rt+") repeat",content:"#ede7da url("+lt+") repeat",popup:"#ede7da url("+At+") repeat"},{body:"#ede7da url("+ct+") repeat",content:"#ede7da url("+dt+") repeat",popup:"#ede7da url("+gt+") repeat"},{body:"#ede7da url("+ut+") repeat",content:"#ede7da url("+pt+") repeat",popup:"#ede7da url("+ft+") repeat"},{body:"#ede7da url("+mt+") repeat",content:"#ede7da url("+vt+") repeat",popup:"#ede7da url("+kt+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+Bt+") repeat",content:"#ede7da url("+yt+") repeat",popup:"#ede7da url("+Ct+") repeat"},{body:"#ede7da url("+ht+") repeat",content:"#ede7da url("+It+") repeat",popup:"#ede7da url("+bt+") repeat"}],fonts:["Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif","PingFangSC-Regular, -apple-system, Simsun","Kaiti"]};const St={class:"setting-list"},wt={class:"theme-list"},Et=["onClick"],Ut={key:0,class:"iconfont"},xt={key:1,class:"moon-icon"},Dt={class:"font-list"},Qt=["onClick"],Vt={class:"font-list"},Pt={style:{"text-align":"right",margin:"0"}},Ft={class:"font-size"},Lt={class:"resize"},Mt={class:"lang"},Rt={class:"letter-spacing"},Kt={class:"resize"},zt={class:"lang"},Nt={class:"line-spacing"},Ot={class:"resize"},Ht={class:"lang"},Wt={class:"paragraph-spacing"},Jt={class:"resize"},Tt={class:"resize"},qt={class:"lang"},Gt={key:0,class:"read-width"},Zt={class:"resize"},Yt={class:"lang"},jt={class:"paragraph-spacing"},Xt={class:"resize"},_t={class:"resize"},$t={class:"lang"},eo={class:"infinite-loading"},to={__name:"ReadSettings",setup(A){const n=le();De(()=>n.config,V=>{localStorage.setItem("config",JSON.stringify(V)),Y.saveReadConfig(V)},{deep:2});const c=l(()=>n.theme),f=l(()=>n.isNight),s=l(()=>c.value==6?"":""),S=[{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:$.themes[c.value].popup})),w=V=>{n.config.theme=V},k=U(["雅黑","宋体","楷书"]),D=V=>{n.config.font=V},K=l(()=>n.config.font),u=U(n.config.customFontName),E=U(!1),d=()=>{n.config.font=-1,n.config.customFontName=u.value},m=()=>{We.prompt("请输入 字体网络链接","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^https?:.+$/,inputErrorMessage:"url 形式不正确",beforeClose:(V,e,q)=>{if(V==="confirm"){e.confirmButtonLoading=!0,e.confirmButtonText="下载中……";const L=e.inputValue;if(typeof FontFace!="function")return F.error("浏览器不支持FontFace"),q();const M=new FontFace(u.value,`url("${L}")`);document.fonts.add(M),M.load().then(function(){e.confirmButtonLoading=!1,F.info("字体加载成功!"),d(),q()}).catch(function(C){throw e.confirmButtonLoading=!1,e.confirmButtonText="确定",F.error("下载失败,请检查您输入的 url"),C})}else q()}})},r=l(()=>n.config.fontSize),I=()=>{n.config.fontSize<48&&(n.config.fontSize+=2)},T=()=>{n.config.fontSize>12&&(n.config.fontSize-=2)},Q=l(()=>n.config.spacing),B=()=>{n.config.spacing.letter-=.01},b=()=>{n.config.spacing.letter+=.01},te=()=>{n.config.spacing.line-=.1},ce=()=>{n.config.spacing.line+=.1},fe=()=>{n.config.spacing.paragraph-=.1},me=()=>{n.config.spacing.paragraph+=.1},j=l(()=>n.config.readWidth),ve=()=>{n.config.readWidth+160+2*68>window.innerWidth||(n.config.readWidth+=160)},ke=()=>{n.config.readWidth>640&&(n.config.readWidth-=160)},oe=l(()=>n.config.jumpDuration),de=()=>{n.config.jumpDuration+=100},ne=()=>{n.config.jumpDuration!==0&&(n.config.jumpDuration-=100)},se=l(()=>n.config.infiniteLoading),ge=V=>{n.config.infiniteLoading=V};return(V,e)=>{const q=Je,L=Te,M=Qe;return p(),v("div",{class:x(["settings-wrapper",{night:a(f),day:!a(f)}]),style:Z(a(y))},[e[50]||(e[50]=t("div",{class:"settings-title"},"设置",-1)),t("div",St,[t("ul",null,[t("li",wt,[e[6]||(e[6]=t("i",null,"阅读主题",-1)),(p(),v(ee,null,re(S,(C,z)=>t("span",{class:x(["theme-item",{selected:a(c)==z}]),key:z,style:Z(C),ref_for:!0,ref:"themes",onClick:ae=>w(z)},[z<6?(p(),v("em",Ut,"")):(p(),v("em",xt,H(a(s)),1))],14,Et)),64))]),t("li",Dt,[e[7]||(e[7]=t("i",null,"正文字体",-1)),(p(!0),v(ee,null,re(a(k),(C,z)=>(p(),v("span",{class:x(["font-item",{selected:a(K)==z}]),key:z,onClick:ae=>D(z)},H(C),11,Qt))),128))]),t("li",Vt,[e[13]||(e[13]=t("i",null,"自定字体",-1)),J(q,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:W(()=>[Oe(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":e[0]||(e[0]=C=>pe(u)?u.value=C:null),placeholder:"请输入自定义的字体名称"},null,512),[[He,a(u)]])]),_:1}),J(M,{placement:"top",width:"270",trigger:"click",visible:a(E),"onUpdate:visible":e[3]||(e[3]=C=>pe(E)?E.value=C:null)},{reference:W(()=>e[11]||(e[11]=[t("span",{type:"text",class:"font-item"},"保存",-1)])),default:W(()=>[e[12]||(e[12]=t("p",null," 已经安装在您的设备上的字体请确认输入的字体名称完整无误,或者从网络下载字体。 ",-1)),t("div",Pt,[J(L,{size:"small",plain:"",onClick:e[1]||(e[1]=C=>E.value=!1)},{default:W(()=>e[8]||(e[8]=[G("取消")])),_:1}),J(L,{type:"primary",size:"small",onClick:e[2]||(e[2]=C=>{d(),E.value=!1})},{default:W(()=>e[9]||(e[9]=[G("确定")])),_:1}),J(L,{type:"primary",size:"small",onClick:m},{default:W(()=>e[10]||(e[10]=[G("网络下载")])),_:1})])]),_:1},8,["visible"])]),t("li",Ft,[e[19]||(e[19]=t("i",null,"字体大小",-1)),t("div",Lt,[t("span",{class:"less",onClick:T},e[14]||(e[14]=[t("em",{class:"iconfont"},"",-1)])),e[16]||(e[16]=t("b",null,null,-1)),e[17]||(e[17]=G()),t("span",Mt,H(a(r)),1),e[18]||(e[18]=t("b",null,null,-1)),t("span",{class:"more",onClick:I},e[15]||(e[15]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Rt,[e[25]||(e[25]=t("i",null,"字距",-1)),t("div",Kt,[t("span",{class:"less",onClick:B},e[20]||(e[20]=[t("em",{class:"iconfont"},"",-1)])),e[22]||(e[22]=t("b",null,null,-1)),e[23]||(e[23]=G()),t("span",zt,H(a(Q).letter.toFixed(2)),1),e[24]||(e[24]=t("b",null,null,-1)),t("span",{class:"more",onClick:b},e[21]||(e[21]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Nt,[e[31]||(e[31]=t("i",null,"行距",-1)),t("div",Ot,[t("span",{class:"less",onClick:te},e[26]||(e[26]=[t("em",{class:"iconfont"},"",-1)])),e[28]||(e[28]=t("b",null,null,-1)),e[29]||(e[29]=G()),t("span",Ht,H(a(Q).line.toFixed(1)),1),e[30]||(e[30]=t("b",null,null,-1)),t("span",{class:"more",onClick:ce},e[27]||(e[27]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Wt,[e[36]||(e[36]=t("i",null,"段距",-1)),t("div",Jt,[t("div",Tt,[t("span",{class:"less",onClick:fe},e[32]||(e[32]=[t("em",{class:"iconfont"},"",-1)])),e[34]||(e[34]=t("b",null,null,-1)),t("span",qt,H(a(Q).paragraph.toFixed(1)),1),e[35]||(e[35]=t("b",null,null,-1)),t("span",{class:"more",onClick:me},e[33]||(e[33]=[t("em",{class:"iconfont"},"",-1)]))])])]),a(n).miniInterface?ue("",!0):(p(),v("li",Gt,[e[42]||(e[42]=t("i",null,"页面宽度",-1)),t("div",Zt,[t("span",{class:"less",onClick:ke},e[37]||(e[37]=[t("em",{class:"iconfont"},"",-1)])),e[39]||(e[39]=t("b",null,null,-1)),e[40]||(e[40]=G()),t("span",Yt,H(a(j)),1),e[41]||(e[41]=t("b",null,null,-1)),t("span",{class:"more",onClick:ve},e[38]||(e[38]=[t("em",{class:"iconfont"},"",-1)]))])])),t("li",jt,[e[48]||(e[48]=t("i",null,"翻页速度",-1)),t("div",Xt,[t("div",_t,[t("span",{class:"less",onClick:ne},e[43]||(e[43]=[t("em",{class:"iconfont"},"",-1)])),e[45]||(e[45]=t("b",null,null,-1)),e[46]||(e[46]=G()),t("span",$t,H(a(oe)),1),e[47]||(e[47]=t("b",null,null,-1)),t("span",{class:"more",onClick:de},e[44]||(e[44]=[t("em",{class:"iconfont"},"",-1)]))])])]),t("li",eo,[e[49]||(e[49]=t("i",null,"无限加载",-1)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!1}]),key:0,onClick:e[4]||(e[4]=C=>ge(!1))},"关闭",2)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!0}]),key:1,onClick:e[5]||(e[5]=C=>ge(!0))},"开启",2))])])])],6)}}},oo=Ae(to,[["__scopeId","data-v-a07727de"]]),no={class:"wrapper"},so=["onClick"],ao={__name:"CatalogItem",props:["index","source","gotoChapter","currentChapterIndex"],setup(A){const n=A,c=s=>s==n.currentChapterIndex,f=l(()=>{var s;return((s=n.source)==null?void 0:s.catas)??[n.source]});return(s,S)=>(p(),v("div",no,[(p(!0),v(ee,null,re(a(f),y=>(p(),v("div",{class:x(["cata-text",{selected:c(y.index)}]),key:y.url,onClick:w=>A.gotoChapter(y)},H(y.title),11,so))),128))]))}},io=Ae(ao,[["__scopeId","data-v-86592297"]]),ro={__name:"PopCatalog",emits:["getContent"],setup(A,{emit:n}){const c=le(),{catalog:f,popCataVisible:s,miniInterface:S}=Ve(c),y=l(()=>c.theme),w=l(()=>c.theme),k=l(()=>({background:$.themes[w.value].popup})),D=l(()=>{let r=f.value;if(S.value)return r;let I=Math.ceil(r.length/2),T=new Array(I),Q=0;for(;Qc.readingBook.index,set:r=>c.readingBook.index=r}),E=l(()=>{let r=u.value;return S.value?r:Math.floor(r/2)});qe(()=>{s.value&&K.value.scrollToIndex(E.value)});const d=n,m=r=>{const I=f.value.indexOf(r);u.value=I,c.setPopCataVisible(!1),c.setContentLoading(!0),c.saveBookProgress(),d("getContent",I)};return(r,I)=>(p(),v("div",{class:x({"cata-wrapper":!0,visible:a(s)}),style:Z(a(k))},[I[0]||(I[0]=t("div",{class:"title"},"目录",-1)),J(a(Ge),{style:{height:"300px",overflow:"auto"},class:x({night:a(y),day:!a(y)}),ref_key:"virtualListRef",ref:K,"data-key":"index","wrap-class":"data-wrapper","item-class":"cata","data-sources":a(D),"data-component":io,"estimate-size":40,"extra-props":{gotoChapter:m,currentChapterIndex:a(u)}},null,8,["class","data-sources","extra-props"])],6))}},lo=Ae(ro,[["__scopeId","data-v-6b8fd950"]]),Ao={class:"tools"},co={class:"tools"},go={key:0},uo={key:0},po={class:"content"},fo=["chapterIndex"],mo={__name:"BookChapter",setup(A){const n=U(),{isLoading:c,loadingWrapper:f}=$e(n,"正在获取信息"),s=le();try{const o=JSON.parse(localStorage.getItem("config"));o!=null&&s.setConfig(o)}catch{localStorage.removeItem("config")}const{catalog:S,popCataVisible:y,readSettingsVisible:w,miniInterface:k,showContent:D,bookProgress:K,theme:u,isNight:E}=Ve(s),d=l({get:()=>s.readingBook.chapterPos,set:o=>s.readingBook.chapterPos=o}),m=l({get:()=>s.readingBook.index,set:o=>s.readingBook.index=o}),r=l(()=>s.config.infiniteLoading),I=l(()=>s.config.font>=0?$.fonts[s.config.font]:s.config.customFontName),T=l(()=>s.config.fontSize+"px"),Q=l(()=>$.themes[u.value].body),B=l(()=>$.themes[u.value].content),b=l(()=>$.themes[u.value].popup),te=l(()=>k.value?window.innerWidth+"px":s.config.readWidth-130+"px"),ce=l(()=>k.value?window.innerWidth-33:s.config.readWidth-33),fe=l(()=>({background:Q.value})),me=l(()=>({background:B.value,width:te.value})),j=U(!1),ve=l(()=>({background:b.value,marginLeft:k.value?0:-(s.config.readWidth/2+68)+"px",display:k.value&&!j.value?"none":"block"})),ke=l(()=>({background:b.value,marginRight:k.value?0:-(s.config.readWidth/2+52)+"px",display:k.value&&!j.value?"none":"block"})),oe=()=>{s.setMiniInterface(window.innerWidth<776);const o=s.config.readWidth;de(o)},de=o=>{s.miniInterface||o+2*68>window.innerWidth&&(s.config.readWidth-=160)};De(()=>s.config.readWidth,o=>de(o));const ne=U(),se=U(),ge=()=>{_(ne.value)},V=()=>{_(se.value)},e=Ze(),q=()=>{e.push("/")},L=U([]),M=U(!0),C=(o,i=!0,P=0)=>{i&&(s.setShowContent(!1),_(ne.value,{duration:0}),ye(o,P),L.value=[]);let h=sessionStorage.getItem("bookUrl"),{title:N,index:O}=S.value[o];f(Y.getBookContent(h,O).then(g=>{if(g.data.isSuccess){let ze=g.data.data.split(/\n+/);L.value.push({index:o,content:ze,title:N}),i&&Pe(P)}else{F({message:g.data.errorMsg,type:"error"});let X=[g.data.errorMsg];L.value.push({index:o,content:X,title:N})}if(s.setContentLoading(!0),M.value=!1,s.setShowContent(!0),!g.data.isSuccess)throw g.data},g=>{F({message:"获取章节内容失败",type:"error"});let X=["获取章节内容失败!"];throw L.value.push({index:o,content:X,title:N}),s.setShowContent(!0),g}))},z=U(),ae=U(),Pe=o=>{xe(()=>{ae.value.length===1&&ae.value[0].scrollToReadedLength(o)})},Fe=Ye(()=>s.saveBookProgress(),6e4),Le=(o,i)=>{ye(o,i),Fe()};we(()=>{var o;document.title=((o=S.value[m.value])==null?void 0:o.title)||document.title});const ye=(o,i)=>{let P=sessionStorage.getItem("bookUrl");var h=JSON.parse(localStorage.getItem(P));h.index=o,h.chapterPos=i,localStorage.setItem(P,JSON.stringify(h)),h=JSON.parse(localStorage.getItem("readingRecent")),h.chapterIndex=o,h.chapterPos=i,localStorage.setItem("readingRecent",JSON.stringify(h)),m.value=o,d.value=i,sessionStorage.setItem("chapterIndex",o),sessionStorage.setItem("chapterPos",String(i))},Ce=()=>{document.visibilityState=="hidden"&&Y.saveBookProgressWithBeacon(K.value)},he=()=>{s.setContentLoading(!0);let o=m.value+1;typeof S.value[o]<"u"?(F({message:"下一章",type:"info"}),C(o),s.saveBookProgress()):F({message:"本章是最后一章",type:"error"})},Ie=()=>{s.setContentLoading(!0);let o=m.value-1;typeof S.value[o]<"u"?(F({message:"上一章",type:"info"}),C(o),s.saveBookProgress()):F({message:"本章是第一章",type:"error"})};let R;const Be=U();we(()=>{r.value?R==null||R.observe(Be.value):R==null||R.disconnect()});const Me=()=>{let o=L.value.slice(-1)[0].index;S.value.length-1>o&&(C(o+1,!1),s.saveBookProgress())},Re=o=>{if(!c.value)for(let{isIntersecting:i}of o){if(!i)return;Me()}};let ie=!0;const be=o=>{if(ie)switch(o.key){case"ArrowLeft":o.stopPropagation(),o.preventDefault(),Ie();break;case"ArrowRight":o.stopPropagation(),o.preventDefault(),he();break;case"ArrowUp":o.stopPropagation(),o.preventDefault(),document.documentElement.scrollTop===0?F({message:"已到达页面顶部",type:"warn"}):(ie=!1,_(0-document.documentElement.clientHeight+100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break;case"ArrowDown":o.stopPropagation(),o.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?F({message:"已到达页面底部",type:"warn"}):(ie=!1,_(document.documentElement.clientHeight-100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break}},Se=o=>{(o.key==="ArrowUp"||o.key==="ArrowDown")&&(o.preventDefault(),o.stopPropagation())};Ee(()=>{let o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("bookAuthor"),h=Number(sessionStorage.getItem("chapterIndex")||0),N=Number(sessionStorage.getItem("chapterPos")||0);var O=JSON.parse(localStorage.getItem(o));(O==null||h!=O.index||N!=O.chapterPos)&&(O={bookName:i,bookAuthor:P,bookUrl:o,index:h,chapterPos:N},localStorage.setItem(o,JSON.stringify(O))),oe(),window.addEventListener("resize",oe),f(Y.getChapterList(o).then(g=>{if(!g.data.isSuccess){F({message:g.data.errorMsg,type:"error"}),setTimeout(q,500);return}let X=g.data.data;s.setCatalog(X),s.setReadingBook(O),C(h,!0,N),window.addEventListener("keyup",be),window.addEventListener("keydown",Se),document.addEventListener("visibilitychange",Ce),R=new IntersectionObserver(Re,{rootMargin:"-100% 0% 20% 0%"}),r.value&&R.observe(Be.value),document.title=null,document.title=i+" | "+S.value[h].title},g=>{throw F({message:"获取书籍目录失败",type:"error"}),g}))}),Ue(()=>{window.removeEventListener("keyup",be),window.removeEventListener("keydown",Se),window.removeEventListener("resize",oe),document.removeEventListener("visibilitychange",Ce),w.value=!1,y.value=!1,R==null||R.disconnect(),R=null});const Ke=async()=>{const o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("isSeachBook"),h=JSON.parse(localStorage.getItem(o));sessionStorage.removeItem("isSeachBook"),P==="true"&&(window.confirm(`是否将《${i}》放入书架?`)||await Y.deleteBook(h))};return je(async(o,i,P)=>{await Ke(),P()}),(o,i)=>{const P=lo,h=Qe,N=oo,O=it;return p(),v("div",{class:x(["chapter-wrapper",{night:a(E),day:!a(E)}]),style:Z(a(fe)),onClick:i[2]||(i[2]=g=>j.value=!a(j))},[t("div",{class:"tool-bar",style:Z(a(ve))},[t("div",Ao,[J(h,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(y),"onUpdate:visible":i[0]||(i[0]=g=>pe(y)?y.value=g:null),"popper-class":"pop-cata"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[3]||(i[3]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"目录",-1)]),2)]),default:W(()=>[J(P,{onGetContent:C,class:"popup"})]),_:1},8,["width","visible"]),J(h,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(w),"onUpdate:visible":i[1]||(i[1]=g=>pe(w)?w.value=g:null),"popper-class":"pop-setting"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[4]||(i[4]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"设置",-1)]),2)]),default:W(()=>[J(N,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:q},i[5]||(i[5]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"书架",-1)])),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:ge},i[6]||(i[6]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"顶部",-1)]),2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:V},i[7]||(i[7]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"底部",-1)]),2)])],4),t("div",{class:"read-bar",style:Z(a(ke))},[t("div",co,[t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:Ie},[i[8]||(i[8]=t("div",{class:"iconfont"},"",-1)),a(k)?(p(),v("span",go,"上一章")):ue("",!0)],2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:he},[a(k)?(p(),v("span",uo,"下一章")):ue("",!0),i[9]||(i[9]=t("div",{class:"iconfont"},"",-1))],2)])],4),i[10]||(i[10]=t("div",{class:"chapter-bar"},null,-1)),t("div",{class:"chapter",ref_key:"content",ref:n,style:Z(a(me))},[t("div",po,[t("div",{class:"top-bar",ref_key:"top",ref:ne},null,512),(p(!0),v(ee,null,re(a(L),g=>(p(),v("div",{key:g.index,chapterIndex:g.index,ref_for:!0,ref_key:"chapter",ref:z},[a(D)?(p(),Xe(O,{key:0,ref_for:!0,ref_key:"chapterRef",ref:ae,chapterIndex:g.index,contents:g.content,title:g.title,spacing:a(s).config.spacing,fontSize:a(T),fontFamily:a(I),onReadedLengthChange:Le},null,8,["chapterIndex","contents","title","spacing","fontSize","fontFamily"])):ue("",!0)],8,fo))),128)),t("div",{class:"loading",ref_key:"loading",ref:Be},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:se},null,512)])],4)],6)}}},yo=Ae(mo,[["__scopeId","data-v-1ee927f9"]]);export{yo as default}; diff --git a/app/src/main/assets/web/vue/assets/BookShelf-CKnr6cT1.js b/app/src/main/assets/web/vue/assets/BookShelf-BBPgNbMt.js similarity index 93% rename from app/src/main/assets/web/vue/assets/BookShelf-CKnr6cT1.js rename to app/src/main/assets/web/vue/assets/BookShelf-BBPgNbMt.js index cd1f10040..3668ef28a 100644 --- a/app/src/main/assets/web/vue/assets/BookShelf-CKnr6cT1.js +++ b/app/src/main/assets/web/vue/assets/BookShelf-BBPgNbMt.js @@ -1 +1 @@ -import{a0 as Q,m as A,o as l,d as h,g as t,F as b,M as W,t as g,c as $,w as L,f as N,J as _,u as J,a1 as x,a2 as q,e as R,I as G,p as z,v as E,a3 as X,L as j,a4 as ee,Q as te,j as k,y as se,D as oe,a5 as ae}from"./vendor-MihKrDrn.js";import{d as ne,i as re,u as ie}from"./loading-DPd2-h-z.js";import{_ as D,A as p,u as ce}from"./index-DfNldNYB.js";const le={class:"books-wrapper"},de={class:"wrapper"},ue=["onClick"],he={class:"cover-img"},ge=["src"],pe={class:"info"},me={class:"name"},fe={class:"sub"},ve={class:"author"},we={key:0,class:"tags"},Be={key:1,class:"update-info"},Ce={class:"size"},ke={class:"date"},Ae={key:0,class:"intro"},Ie={key:1,class:"dur-chapter"},ye={class:"last-chapter"},Se={__name:"BookItems",props:["books","isSearch"],emits:["bookClick"],setup(e,{emit:r}){Q(o=>({"6068553a":J(C)}));const i=e,v=r,B=o=>v("bookClick",o),w=o=>re(o)?p.getProxyCoverUrl(o):o,I=o=>{o.target.src=p.getProxyCoverUrl(o.target.src)},C=A(()=>i.isSearch?"space-between":"flex-start");return(o,d)=>{const m=x;return l(),h("div",le,[t("div",de,[(l(!0),h(b,null,W(e.books,n=>{var S;return l(),h("div",{class:"book",key:n.bookUrl,onClick:y=>B(n)},[t("div",he,[(l(),h("img",{class:"cover",src:w(n.coverUrl),key:n.coverUrl,onErrorOnce:I,alt:"",loading:"lazy"},null,40,ge))]),t("div",pe,[t("div",me,g(n.name),1),t("div",fe,[t("div",ve,g(n.author),1),e.isSearch?(l(),h("div",we,[(l(!0),h(b,null,W((S=n.kind)==null?void 0:S.split(",").slice(0,2),y=>(l(),$(m,{key:y},{default:L(()=>[N(g(y),1)]),_:2},1024))),128))])):_("",!0),e.isSearch?_("",!0):(l(),h("div",Be,[d[0]||(d[0]=t("div",{class:"dot"},"•",-1)),t("div",Ce,"共"+g(n.totalChapterNum)+"章",1),d[1]||(d[1]=t("div",{class:"dot"},"•",-1)),t("div",ke,g(J(ne)(n.lastCheckTime)),1)]))]),e.isSearch?(l(),h("div",Ae,g(n.intro),1)):_("",!0),e.isSearch?_("",!0):(l(),h("div",Ie," 已读:"+g(n.durChapterTitle),1)),t("div",ye,"最新:"+g(n.latestChapterTitle),1)])],8,ue)}),128))])])}}},_e=D(Se,[["__scopeId","data-v-136fc284"]]),Re="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==",Ee=q({beforeRouteEnter:(e,r,i)=>{p.getReadConfig().then(v=>v.data).then(({isSuccess:v,data:B})=>{v&&i(w=>{w.saveReadConfig(B)})}).catch(()=>i())},setup:()=>{const e=ce(),r=A(()=>e.isNight),i=E({name:"尚无阅读记录",author:"",url:"",chapterIndex:0,chapterPos:0}),v=E(null),{showLoading:B,closeLoading:w,loadingWrapper:I,isLoading:C}=ie(v,"正在获取书籍信息"),o=X([]),d=A(()=>e.shelf),m=E(""),n=E(!1);j(()=>{if(!(n.value&&m.value!="")){if(n.value=!1,o.value=[],m.value==""){o.value=d.value;return}o.value=d.value.filter(s=>s.name.includes(m.value)||s.author.includes(m.value))}});const S=()=>{m.value!=""&&(o.value=[],e.clearSearchBooks(),B(),n.value=!0,p.search(m.value,s=>{C&&w();try{e.setSearchBooks(JSON.parse(s)),o.value=e.searchBooks}catch(a){throw k.error("后端数据错误"),a}},()=>{w(),o.value.length==0&&k.info("搜索结果为空")}))},y=A(()=>e.connectStatus),Z=A(()=>e.connectType),H=A(()=>e.newConnect),U=()=>{ae.prompt("请输入 IP 和端口 ( 如:127.0.0.1:9527 或者通过内网穿透的地址)","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?:([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6][0-5][0-5][0-3][0-5])$/,inputErrorMessage:"url 形式不正确",beforeClose:(s,a,f)=>{if(s==="confirm"){e.setNewConnect(!0),a.confirmButtonLoading=!0,a.confirmButtonText="校验中……";const c=a.inputValue;p.testLeagdoHttpUrlConnection("http://"+c).then(function(u){P(u),a.confirmButtonLoading=!1,e.setConnectType("success"),e.setConnectStatus("已连接 "+c),e.clearSearchBooks(),e.setNewConnect(!1),p.setLeagdoHttpUrl("http://"+c),localStorage.setItem("remoteIp",c),M(),f()}).catch(function(u){throw a.confirmButtonLoading=!1,a.confirmButtonText="确定",k.error("访问失败,请检查您输入的 url"),e.setNewConnect(!1),u})}else f()}})},O=ee(),F=async s=>{const{bookUrl:a,name:f,author:c,durChapterIndex:u=0,durChapterPos:T=0}=s,V="respondTime"in s;V&&await p.saveBook(s),K(a,f,c,u,T,V)},K=(s,a,f,c,u,T)=>{a!=="尚无阅读记录"&&(sessionStorage.setItem("bookUrl",s),sessionStorage.setItem("bookName",a),sessionStorage.setItem("bookAuthor",f),sessionStorage.setItem("chapterIndex",c),sessionStorage.setItem("chapterPos",u),sessionStorage.setItem("isSeachBook",T),i.value={name:a,author:f,url:s,chapterIndex:c,chapterPos:u},localStorage.setItem("readingRecent",JSON.stringify(i.value)),O.push({path:"/chapter"}))},Y=()=>{I(e.saveBookProgress().finally(M))},P=s=>{try{e.setConfig(JSON.parse(s))}catch{k.info("阅读界面配置解析错误")}},M=()=>p.getBookShelf().then(s=>{e.setConnectType("success"),s.data.isSuccess?e.addBooks(s.data.data.sort(function(a,f){var c=a.durChapterTime||0,u=f.durChapterTime||0;return u-c})):k.error(s.data.errorMsg??"后端返回格式错误!"),e.setConnectStatus("已连接 "+p.legado_http_origin),e.setNewConnect(!1)});return te(()=>{let s=localStorage.getItem("readingRecent");s!=null&&(i.value=JSON.parse(s),typeof i.value.chapterIndex>"u"&&(i.value.chapterIndex=0)),p.testLeagdoHttpUrlConnection().then(Y).catch(function(a){throw e.setConnectType("danger"),e.setConnectStatus("连接异常"),k.error("后端连接失败异常,请检查阅读WEB服务或者设置其它可用IP"),e.setNewConnect(!1),a})}),{setIP:U,isNight:r,connectStatus:y,connectType:Z,newConnect:H,saveReadConfig:P,readingRecent:i,searchBook:S,books:o,handleBookClick:F,isSearching:n,SearchIcon:se,githubUrl:Re,searchWord:m}}}),Te={class:"navigation-wrapper"},ze={class:"search-wrapper"},Le={class:"bottom-wrapper"},Ne={class:"recent-wrapper"},Pe={class:"reading-recent"},Me={class:"setting-wrapper"},Ve={class:"setting-item"},be={class:"bottom-icons"},We={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},Je={class:"bottom-icon"},xe=["src"],De={class:"shelf-wrapper",ref:"shelfWrapper"};function Ze(e,r,i,v,B,w){const I=oe,C=x,o=_e;return l(),h("div",{class:z({"index-wrapper":!0,night:e.isNight,day:!e.isNight})},[t("div",Te,[r[4]||(r[4]=t("div",{class:"navigation-title-wrapper"},[t("div",{class:"navigation-title"},"阅读"),t("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),t("div",ze,[R(I,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:e.searchWord,"onUpdate:modelValue":r[0]||(r[0]=d=>e.searchWord=d),class:"search-input","prefix-icon":e.SearchIcon,onKeyup:G(e.searchBook,["enter"])},null,8,["modelValue","prefix-icon","onKeyup"])]),t("div",Le,[t("div",Ne,[r[2]||(r[2]=t("div",{class:"recent-title"},"最近阅读",-1)),t("div",Pe,[R(C,{type:e.readingRecent.name=="尚无阅读记录"?"warning":"primary",class:z(["recent-book",{"no-point":e.readingRecent.url==""}]),size:"large",onClick:r[1]||(r[1]=d=>e.toDetail(e.readingRecent.url,e.readingRecent.name,e.readingRecent.author,e.readingRecent.chapterIndex,e.readingRecent.chapterPos))},{default:L(()=>[N(g(e.readingRecent.name),1)]),_:1},8,["type","class"])])]),t("div",Me,[r[3]||(r[3]=t("div",{class:"setting-title"},"基本设定",-1)),t("div",Ve,[R(C,{type:e.connectType,size:"large",class:z(["setting-connect",{"no-point":e.newConnect}]),onClick:e.setIP},{default:L(()=>[N(g(e.connectStatus),1)]),_:1},8,["type","class","onClick"])])])]),t("div",be,[t("a",We,[t("div",Je,[t("img",{src:e.githubUrl,alt:""},null,8,xe)])])])]),t("div",De,[R(o,{books:e.books,onBookClick:e.handleBookClick,isSearch:e.isSearching},null,8,["books","onBookClick","isSearch"])],512)],2)}const Fe=D(Ee,[["render",Ze],["__scopeId","data-v-9cef10fa"]]);export{Fe as default}; +import{a0 as Q,m as A,o as l,d as h,g as t,F as V,M as W,t as g,c as $,w as L,f as N,J as _,u as J,a1 as x,a2 as q,e as R,I as G,p as z,v as E,a3 as X,L as j,a4 as ee,Q as te,j as k,y as se,D as oe,a5 as ae}from"./vendor-MihKrDrn.js";import{d as ne,i as re,u as ie}from"./loading-DPd2-h-z.js";import{_ as D,A as p,u as ce}from"./index-B8eMuqu8.js";const le={class:"books-wrapper"},de={class:"wrapper"},ue=["onClick"],he={class:"cover-img"},ge=["src"],pe={class:"info"},me={class:"name"},fe={class:"sub"},ve={class:"author"},we={key:0,class:"tags"},Be={key:1,class:"update-info"},Ce={class:"size"},ke={class:"date"},Ae={key:0,class:"intro"},Ie={key:1,class:"dur-chapter"},ye={class:"last-chapter"},Se={__name:"BookItems",props:["books","isSearch"],emits:["bookClick"],setup(e,{emit:r}){Q(o=>({"6068553a":J(C)}));const i=e,v=r,B=o=>v("bookClick",o),w=o=>re(o)?p.getProxyCoverUrl(o):o,I=o=>{o.target.src=p.getProxyCoverUrl(o.target.src)},C=A(()=>i.isSearch?"space-between":"flex-start");return(o,d)=>{const m=x;return l(),h("div",le,[t("div",de,[(l(!0),h(V,null,W(e.books,n=>{var S;return l(),h("div",{class:"book",key:n.bookUrl,onClick:y=>B(n)},[t("div",he,[(l(),h("img",{class:"cover",src:w(n.coverUrl),key:n.coverUrl,onErrorOnce:I,alt:"",loading:"lazy"},null,40,ge))]),t("div",pe,[t("div",me,g(n.name),1),t("div",fe,[t("div",ve,g(n.author),1),e.isSearch?(l(),h("div",we,[(l(!0),h(V,null,W((S=n.kind)==null?void 0:S.split(",").slice(0,2),y=>(l(),$(m,{key:y},{default:L(()=>[N(g(y),1)]),_:2},1024))),128))])):_("",!0),e.isSearch?_("",!0):(l(),h("div",Be,[d[0]||(d[0]=t("div",{class:"dot"},"•",-1)),t("div",Ce,"共"+g(n.totalChapterNum)+"章",1),d[1]||(d[1]=t("div",{class:"dot"},"•",-1)),t("div",ke,g(J(ne)(n.lastCheckTime)),1)]))]),e.isSearch?(l(),h("div",Ae,g(n.intro),1)):_("",!0),e.isSearch?_("",!0):(l(),h("div",Ie," 已读:"+g(n.durChapterTitle),1)),t("div",ye,"最新:"+g(n.latestChapterTitle),1)])],8,ue)}),128))])])}}},_e=D(Se,[["__scopeId","data-v-136fc284"]]),Re="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==",Ee=q({beforeRouteEnter:(e,r,i)=>{p.getReadConfig().then(v=>v.data).then(({isSuccess:v,data:B})=>{v&&i(w=>{w.saveReadConfig(B)})}).catch(()=>i())},setup:()=>{const e=ce(),r=A(()=>e.isNight),i=E({name:"尚无阅读记录",author:"",url:"",chapterIndex:0,chapterPos:0}),v=E(null),{showLoading:B,closeLoading:w,loadingWrapper:I,isLoading:C}=ie(v,"正在获取书籍信息"),o=X([]),d=A(()=>e.shelf),m=E(""),n=E(!1);j(()=>{if(!(n.value&&m.value!="")){if(n.value=!1,o.value=[],m.value==""){o.value=d.value;return}o.value=d.value.filter(s=>s.name.includes(m.value)||s.author.includes(m.value))}});const S=()=>{m.value!=""&&(o.value=[],e.clearSearchBooks(),B(),n.value=!0,p.search(m.value,s=>{C&&w();try{e.setSearchBooks(JSON.parse(s)),o.value=e.searchBooks}catch(a){throw k.error("后端数据错误"),a}},()=>{w(),o.value.length==0&&k.info("搜索结果为空")}))},y=A(()=>e.connectStatus),Z=A(()=>e.connectType),H=A(()=>e.newConnect),U=()=>{ae.prompt("请输入 IP 和端口 ( 如:127.0.0.1:9527 或者通过内网穿透的地址)","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?:([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6][0-5][0-5][0-3][0-5])$/,inputErrorMessage:"url 形式不正确",beforeClose:(s,a,f)=>{if(s==="confirm"){e.setNewConnect(!0),a.confirmButtonLoading=!0,a.confirmButtonText="校验中……";const c=a.inputValue;p.testLeagdoHttpUrlConnection("http://"+c).then(function(u){P(u),a.confirmButtonLoading=!1,e.setConnectType("success"),e.setConnectStatus("已连接 "+c),e.clearSearchBooks(),e.setNewConnect(!1),p.setLeagdoHttpUrl("http://"+c),localStorage.setItem("remoteIp",c),M(),f()}).catch(function(u){throw a.confirmButtonLoading=!1,a.confirmButtonText="确定",k.error("访问失败,请检查您输入的 url"),e.setNewConnect(!1),u})}else f()}})},O=ee(),F=async s=>{const{bookUrl:a,name:f,author:c,durChapterIndex:u=0,durChapterPos:T=0}=s,b="respondTime"in s;b&&await p.saveBook(s),K(a,f,c,u,T,b)},K=(s,a,f,c,u,T)=>{a!=="尚无阅读记录"&&(sessionStorage.setItem("bookUrl",s),sessionStorage.setItem("bookName",a),sessionStorage.setItem("bookAuthor",f),sessionStorage.setItem("chapterIndex",c),sessionStorage.setItem("chapterPos",u),sessionStorage.setItem("isSeachBook",T),i.value={name:a,author:f,url:s,chapterIndex:c,chapterPos:u},localStorage.setItem("readingRecent",JSON.stringify(i.value)),O.push({path:"/chapter"}))},Y=()=>{I(e.saveBookProgress().finally(M))},P=s=>{try{e.setConfig(JSON.parse(s))}catch{k.info("阅读界面配置解析错误")}},M=()=>p.getBookShelf().then(s=>{e.setConnectType("success"),s.data.isSuccess?e.addBooks(s.data.data.sort(function(a,f){var c=a.durChapterTime||0,u=f.durChapterTime||0;return u-c})):k.error(s.data.errorMsg??"后端返回格式错误!"),e.setConnectStatus("已连接 "+p.legado_http_origin),e.setNewConnect(!1)});return te(()=>{let s=localStorage.getItem("readingRecent");s!=null&&(i.value=JSON.parse(s),typeof i.value.chapterIndex>"u"&&(i.value.chapterIndex=0)),p.testLeagdoHttpUrlConnection().then(Y).catch(function(a){throw e.setConnectType("danger"),e.setConnectStatus("连接异常"),k.error("后端连接失败异常,请检查阅读WEB服务或者设置其它可用IP"),e.setNewConnect(!1),a})}),{setIP:U,isNight:r,connectStatus:y,connectType:Z,newConnect:H,saveReadConfig:P,readingRecent:i,searchBook:S,books:o,handleBookClick:F,isSearching:n,SearchIcon:se,githubUrl:Re,searchWord:m}}}),Te={class:"navigation-wrapper"},ze={class:"search-wrapper"},Le={class:"bottom-wrapper"},Ne={class:"recent-wrapper"},Pe={class:"reading-recent"},Me={class:"setting-wrapper"},be={class:"setting-item"},Ve={class:"bottom-icons"},We={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},Je={class:"bottom-icon"},xe=["src"],De={class:"shelf-wrapper",ref:"shelfWrapper"};function Ze(e,r,i,v,B,w){const I=oe,C=x,o=_e;return l(),h("div",{class:z({"index-wrapper":!0,night:e.isNight,day:!e.isNight})},[t("div",Te,[r[4]||(r[4]=t("div",{class:"navigation-title-wrapper"},[t("div",{class:"navigation-title"},"阅读"),t("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),t("div",ze,[R(I,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:e.searchWord,"onUpdate:modelValue":r[0]||(r[0]=d=>e.searchWord=d),class:"search-input","prefix-icon":e.SearchIcon,onKeyup:G(e.searchBook,["enter"])},null,8,["modelValue","prefix-icon","onKeyup"])]),t("div",Le,[t("div",Ne,[r[2]||(r[2]=t("div",{class:"recent-title"},"最近阅读",-1)),t("div",Pe,[R(C,{type:e.readingRecent.name=="尚无阅读记录"?"warning":"primary",class:z(["recent-book",{"no-point":e.readingRecent.url==""}]),size:"large",onClick:r[1]||(r[1]=d=>e.toDetail(e.readingRecent.url,e.readingRecent.name,e.readingRecent.author,e.readingRecent.chapterIndex,e.readingRecent.chapterPos))},{default:L(()=>[N(g(e.readingRecent.name),1)]),_:1},8,["type","class"])])]),t("div",Me,[r[3]||(r[3]=t("div",{class:"setting-title"},"基本设定",-1)),t("div",be,[R(C,{type:e.connectType,size:"large",class:z(["setting-connect",{"no-point":e.newConnect}]),onClick:e.setIP},{default:L(()=>[N(g(e.connectStatus),1)]),_:1},8,["type","class","onClick"])])])]),t("div",Ve,[t("a",We,[t("div",Je,[t("img",{src:e.githubUrl,alt:""},null,8,xe)])])])]),t("div",De,[R(o,{books:e.books,onBookClick:e.handleBookClick,isSearch:e.isSearching},null,8,["books","onBookClick","isSearch"])],512)],2)}const Fe=D(Ee,[["render",Ze],["__scopeId","data-v-2f491dbf"]]);export{Fe as default}; diff --git a/app/src/main/assets/web/vue/assets/BookShelf-DxMHgvyY.css b/app/src/main/assets/web/vue/assets/BookShelf-DNC_Xk3n.css similarity index 62% rename from app/src/main/assets/web/vue/assets/BookShelf-DxMHgvyY.css rename to app/src/main/assets/web/vue/assets/BookShelf-DNC_Xk3n.css index d2bbbbea6..198314333 100644 --- a/app/src/main/assets/web/vue/assets/BookShelf-DxMHgvyY.css +++ b/app/src/main/assets/web/vue/assets/BookShelf-DNC_Xk3n.css @@ -1 +1 @@ -@charset "UTF-8";.books-wrapper[data-v-136fc284]{overflow:auto}.books-wrapper .wrapper[data-v-136fc284]{display:grid;grid-template-columns:repeat(auto-fill,380px);justify-content:space-around;grid-gap:10px}.books-wrapper .wrapper .book[data-v-136fc284]{-webkit-user-select:none;user-select:none;display:flex;cursor:pointer;margin-bottom:18px;padding:24px;width:360px;flex-direction:row;justify-content:space-around}.books-wrapper .wrapper .book .cover-img[data-v-136fc284],.books-wrapper .wrapper .book .cover-img .cover[data-v-136fc284]{width:84px;height:112px}.books-wrapper .wrapper .book .info[data-v-136fc284]{display:flex;flex-direction:column;justify-content:space-around;align-items:left;height:112px;margin-left:20px;flex:1;overflow:hidden}.books-wrapper .wrapper .book .info .name[data-v-136fc284]{width:fit-content;font-size:16px;font-weight:700;color:#33373d}.books-wrapper .wrapper .book .info .sub[data-v-136fc284]{display:flex;flex-direction:row;align-items:baseline;justify-content:var(--6068553a);font-size:12px;font-weight:600;color:#6b6b6b}.books-wrapper .wrapper .book .info .sub .tags[data-v-136fc284] .el-tag{margin-right:.5em}.books-wrapper .wrapper .book .info .sub .update-info[data-v-136fc284]{display:flex}.books-wrapper .wrapper .book .info .sub .update-info .dot[data-v-136fc284]{margin:0 7px}.books-wrapper .wrapper .book .info .intro[data-v-136fc284],.books-wrapper .wrapper .book .info .dur-chapter[data-v-136fc284],.books-wrapper .wrapper .book .info .last-chapter[data-v-136fc284]{color:#969ba3;font-size:13px;margin-top:3px;font-weight:500;word-wrap:break-word;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;text-align:left}.books-wrapper .wrapper .book[data-v-136fc284]:hover{background:#0000001a;transition-duration:.5s}.books-wrapper .wrapper[data-v-136fc284]:last-child{margin-right:auto}.books-wrapper[data-v-136fc284]::-webkit-scrollbar{width:0!important}@media screen and (max-width: 750px){.books-wrapper .wrapper[data-v-136fc284]{display:flex;flex-direction:column}.books-wrapper .wrapper .book[data-v-136fc284]{box-sizing:border-box;width:100%;margin-bottom:0;padding:10px 20px}}body{padding:0;margin:0;height:100vh}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;margin:0;height:100%}@font-face{font-family:FZZCYSK;src:local("☺"),url(./shelffont-D-W4UqG-.ttf);font-style:normal;font-weight:400}.index-wrapper[data-v-9cef10fa]{height:100%;width:100%;display:flex;flex-direction:row}.index-wrapper .navigation-wrapper[data-v-9cef10fa]{width:260px;min-width:260px;padding:48px 36px;background-color:#f7f7f7}.index-wrapper .navigation-wrapper .navigation-title[data-v-9cef10fa]{font-size:24px;font-weight:500;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .navigation-sub-title[data-v-9cef10fa]{font-size:16px;font-weight:300;font-family:FZZCYSK;margin-top:16px;color:#b1b1b1}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-9cef10fa]{border-radius:50%;margin-top:24px}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-9cef10fa] .el-input__wrapper{border-radius:50px;border-color:#e3e3e3}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-9cef10fa]{display:flex;flex-direction:column}.index-wrapper .navigation-wrapper .recent-wrapper[data-v-9cef10fa]{margin-top:36px}.index-wrapper .navigation-wrapper .recent-wrapper .recent-title[data-v-9cef10fa]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent[data-v-9cef10fa]{margin:18px 0}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent .recent-book[data-v-9cef10fa]{font-size:10px;cursor:pointer}.index-wrapper .navigation-wrapper .setting-wrapper[data-v-9cef10fa]{margin-top:36px}.index-wrapper .navigation-wrapper .setting-wrapper .setting-title[data-v-9cef10fa]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .setting-wrapper .no-point[data-v-9cef10fa]{pointer-events:none}.index-wrapper .navigation-wrapper .setting-wrapper .setting-connect[data-v-9cef10fa]{font-size:8px;margin-top:16px;cursor:pointer}.index-wrapper .navigation-wrapper .bottom-icons[data-v-9cef10fa]{position:fixed;bottom:0;height:120px;width:260px;align-items:center;display:flex;flex-direction:row}.index-wrapper .shelf-wrapper[data-v-9cef10fa]{padding:48px;width:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}@media screen and (max-width: 750px){.index-wrapper[data-v-9cef10fa]{overflow-x:hidden;flex-direction:column}.index-wrapper .navigation-wrapper[data-v-9cef10fa]{padding:20px 24px;box-sizing:border-box;width:100%}.index-wrapper .navigation-wrapper .navigation-title-wrapper[data-v-9cef10fa]{white-space:nowrap;display:flex;justify-content:space-between;align-items:flex-end}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-9cef10fa]{flex-direction:row}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-9cef10fa]>*{flex-grow:1;margin-top:18px}.index-wrapper .navigation-wrapper .bottom-wrapper>* .reading-recent[data-v-9cef10fa],.index-wrapper .navigation-wrapper .bottom-wrapper>* .setting-item[data-v-9cef10fa]{margin-bottom:0}.index-wrapper .navigation-wrapper .bottom-icons[data-v-9cef10fa]{display:none}.index-wrapper .shelf-wrapper[data-v-9cef10fa]{padding:0;flex-grow:1}.index-wrapper .shelf-wrapper[data-v-9cef10fa] .el-loading-spinner{display:none}}.night[data-v-9cef10fa] .navigation-wrapper{background-color:#454545}.night[data-v-9cef10fa] .navigation-wrapper .navigation-title{color:#aeaeae}.night[data-v-9cef10fa] .navigation-wrapper .search-wrapper .search-input .el-input__wrapper{background-color:#454545}.night[data-v-9cef10fa] .navigation-wrapper .search-wrapper .search-input .el-input__inner{color:#b1b1b1}.night[data-v-9cef10fa] .shelf-wrapper{background-color:#161819} +@charset "UTF-8";.books-wrapper[data-v-136fc284]{overflow:auto}.books-wrapper .wrapper[data-v-136fc284]{display:grid;grid-template-columns:repeat(auto-fill,380px);justify-content:space-around;grid-gap:10px}.books-wrapper .wrapper .book[data-v-136fc284]{-webkit-user-select:none;user-select:none;display:flex;cursor:pointer;margin-bottom:18px;padding:24px;width:360px;flex-direction:row;justify-content:space-around}.books-wrapper .wrapper .book .cover-img[data-v-136fc284],.books-wrapper .wrapper .book .cover-img .cover[data-v-136fc284]{width:84px;height:112px}.books-wrapper .wrapper .book .info[data-v-136fc284]{display:flex;flex-direction:column;justify-content:space-around;align-items:left;height:112px;margin-left:20px;flex:1;overflow:hidden}.books-wrapper .wrapper .book .info .name[data-v-136fc284]{width:fit-content;font-size:16px;font-weight:700;color:#33373d}.books-wrapper .wrapper .book .info .sub[data-v-136fc284]{display:flex;flex-direction:row;align-items:baseline;justify-content:var(--6068553a);font-size:12px;font-weight:600;color:#6b6b6b}.books-wrapper .wrapper .book .info .sub .tags[data-v-136fc284] .el-tag{margin-right:.5em}.books-wrapper .wrapper .book .info .sub .update-info[data-v-136fc284]{display:flex}.books-wrapper .wrapper .book .info .sub .update-info .dot[data-v-136fc284]{margin:0 7px}.books-wrapper .wrapper .book .info .intro[data-v-136fc284],.books-wrapper .wrapper .book .info .dur-chapter[data-v-136fc284],.books-wrapper .wrapper .book .info .last-chapter[data-v-136fc284]{color:#969ba3;font-size:13px;margin-top:3px;font-weight:500;word-wrap:break-word;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;text-align:left}.books-wrapper .wrapper .book[data-v-136fc284]:hover{background:#0000001a;transition-duration:.5s}.books-wrapper .wrapper[data-v-136fc284]:last-child{margin-right:auto}.books-wrapper[data-v-136fc284]::-webkit-scrollbar{width:0!important}@media screen and (max-width: 750px){.books-wrapper .wrapper[data-v-136fc284]{display:flex;flex-direction:column}.books-wrapper .wrapper .book[data-v-136fc284]{box-sizing:border-box;width:100%;margin-bottom:0;padding:10px 20px}}body{padding:0;margin:0;height:100vh}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;margin:0;height:100%}@font-face{font-family:FZZCYSK;src:local("☺"),url(./shelffont-D-W4UqG-.ttf);font-style:normal;font-weight:400}.index-wrapper[data-v-2f491dbf]{height:100%;width:100%;display:flex;flex-direction:row}.index-wrapper .navigation-wrapper[data-v-2f491dbf]{width:260px;min-width:260px;padding:48px 36px;background-color:#f7f7f7}.index-wrapper .navigation-wrapper .navigation-title[data-v-2f491dbf]{font-size:24px;font-weight:500;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .navigation-sub-title[data-v-2f491dbf]{font-size:16px;font-weight:300;font-family:FZZCYSK;margin-top:16px;color:#b1b1b1}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-2f491dbf]{border-radius:50%;margin-top:24px}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-2f491dbf] .el-input__wrapper{border-radius:50px;border-color:#e3e3e3}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-2f491dbf]{display:flex;flex-direction:column}.index-wrapper .navigation-wrapper .recent-wrapper[data-v-2f491dbf]{margin-top:36px}.index-wrapper .navigation-wrapper .recent-wrapper .recent-title[data-v-2f491dbf]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent[data-v-2f491dbf]{margin:18px 0}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent .recent-book[data-v-2f491dbf]{font-size:10px;cursor:pointer}.index-wrapper .navigation-wrapper .setting-wrapper[data-v-2f491dbf]{margin-top:36px}.index-wrapper .navigation-wrapper .setting-wrapper .setting-title[data-v-2f491dbf]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .setting-wrapper .no-point[data-v-2f491dbf]{pointer-events:none}.index-wrapper .navigation-wrapper .setting-wrapper .setting-connect[data-v-2f491dbf]{font-size:8px;margin-top:16px;cursor:pointer}.index-wrapper .navigation-wrapper .bottom-icons[data-v-2f491dbf]{position:fixed;bottom:0;height:120px;width:260px;align-items:center;display:flex;flex-direction:row}.index-wrapper .shelf-wrapper[data-v-2f491dbf]{padding:48px;width:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}@media screen and (max-width: 750px){.index-wrapper[data-v-2f491dbf]{overflow-x:hidden;flex-direction:column}.index-wrapper .navigation-wrapper[data-v-2f491dbf]{padding:20px 24px;box-sizing:border-box;width:100%}.index-wrapper .navigation-wrapper .navigation-title-wrapper[data-v-2f491dbf]{white-space:nowrap;display:flex;justify-content:space-between;align-items:flex-end}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-2f491dbf]{flex-direction:row}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-2f491dbf]>*{flex-grow:1;margin-top:18px}.index-wrapper .navigation-wrapper .bottom-wrapper>* .reading-recent[data-v-2f491dbf],.index-wrapper .navigation-wrapper .bottom-wrapper>* .setting-item[data-v-2f491dbf]{margin-bottom:0}.index-wrapper .navigation-wrapper .bottom-icons[data-v-2f491dbf]{display:none}.index-wrapper .shelf-wrapper[data-v-2f491dbf]{padding:0;flex-grow:1}.index-wrapper .shelf-wrapper[data-v-2f491dbf] .el-loading-spinner{display:none}}.night[data-v-2f491dbf] .navigation-wrapper{background-color:#454545}.night[data-v-2f491dbf] .navigation-wrapper .navigation-title{color:#aeaeae}.night[data-v-2f491dbf] .navigation-wrapper .search-wrapper .search-input .el-input__wrapper{background-color:#454545}.night[data-v-2f491dbf] .navigation-wrapper .search-wrapper .search-input .el-input__inner{color:#b1b1b1}.night[data-v-2f491dbf] .shelf-wrapper{background-color:#161819} diff --git a/app/src/main/assets/web/vue/assets/index-B8eMuqu8.js b/app/src/main/assets/web/vue/assets/index-B8eMuqu8.js new file mode 100644 index 000000000..90cdcec7b --- /dev/null +++ b/app/src/main/assets/web/vue/assets/index-B8eMuqu8.js @@ -0,0 +1,10 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BookShelf-BBPgNbMt.js","./vendor-MihKrDrn.js","./vendor-Bui7wm94.css","./loading-DPd2-h-z.js","./loading-DyaW7RXx.css","./BookShelf-DNC_Xk3n.css","./BookChapter-C2Ggbplx.js","./BookChapter-CtVBKsqC.css"])))=>i.map(i=>d[i]); +import{r as xe,o as g,c as w,a as ne,b as re,d as E,e as m,w as p,f as y,u as s,l as L,g as h,F as O,E as Ee,h as me,i as Ne,j as B,k as Se,m as J,t as X,n as he,p as fe,q as se,s as Ie,v as P,x as H,y as ye,z as Ve,A as Te,B as ue,V as Re,C as Le,D as Y,G as Oe,H as ie,I as Pe,J as V,K as $e,L as Je,M as j,N as be,O as _e,P as F,Q as De,R as je,S as Ae,T as He,U as Ke,W as Me,X as We,Y as Fe,Z as qe,_ as ze,$ as Ge}from"./vendor-MihKrDrn.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function t(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=t(n);fetch(n.href,i)}})();const $=(e,o)=>{const t=e.__vccOpts||e;for(const[r,n]of o)t[r]=n;return t},Qe={};function Xe(e,o){const t=xe("router-view");return g(),w(t)}const Ye=$(Qe,[["render",Xe]]),Ze="modulepreload",et=function(e,o){return new URL(e,o).href},ce={},de=function(o,t,r){let n=Promise.resolve();if(t&&t.length>0){const c=document.getElementsByTagName("link"),d=document.querySelector("meta[property=csp-nonce]"),k=(d==null?void 0:d.nonce)||(d==null?void 0:d.getAttribute("nonce"));n=Promise.allSettled(t.map(b=>{if(b=et(b,r),b in ce)return;ce[b]=!0;const U=b.endsWith(".css"),N=U?'[rel="stylesheet"]':"";if(!!r)for(let _=c.length-1;_>=0;_--){const v=c[_];if(v.href===b&&(!U||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${N}`))return;const l=document.createElement("link");if(l.rel=U?"stylesheet":Ze,U||(l.as="script"),l.crossOrigin="",l.href=b,k&&l.setAttribute("nonce",k),document.head.appendChild(l),U)return new Promise((_,v)=>{l.addEventListener("load",_),l.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${b}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return n.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return o().catch(i)})},ke=[{path:"/",name:"shelf",component:()=>de(()=>import("./BookShelf-BBPgNbMt.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)},{path:"/chapter",name:"chapter",component:()=>de(()=>import("./BookChapter-C2Ggbplx.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)}];ne({history:re(),routes:ke});const tt={style:{"margin-top":"20px"}},ot={__name:"SourceHelp",setup(e){return(o,t)=>{const r=Ee,n=me;return g(),E(O,null,[m(r,{icon:s(L),href:"/help/#appHelp",target:"_blank"},{default:p(()=>t[0]||(t[0]=[y("APP帮助文档")])),_:1},8,["icon"]),t[19]||(t[19]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#ruleHelp",target:"_blank"},{default:p(()=>t[1]||(t[1]=[y("书源制作教程")])),_:1},8,["icon"]),t[20]||(t[20]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#jsHelp",target:"_blank"},{default:p(()=>t[2]||(t[2]=[y("js变量和函数")])),_:1},8,["icon"]),t[21]||(t[21]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#xpathHelp",target:"_blank"},{default:p(()=>t[3]||(t[3]=[y("xpath语法教程")])),_:1},8,["icon"]),t[22]||(t[22]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#regexHelp",target:"_blank"},{default:p(()=>t[4]||(t[4]=[y("正则表达式教程")])),_:1},8,["icon"]),t[23]||(t[23]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#txtTocRuleHelp",target:"_blank"},{default:p(()=>t[5]||(t[5]=[y("txt目录正则说明")])),_:1},8,["icon"]),t[24]||(t[24]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#debugHelp",target:"_blank"},{default:p(()=>t[6]||(t[6]=[y("书源调试说明")])),_:1},8,["icon"]),t[25]||(t[25]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#httpTTSHelp",target:"_blank"},{default:p(()=>t[7]||(t[7]=[y("在线朗读规则")])),_:1},8,["icon"]),t[26]||(t[26]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavBookHelp",target:"_blank"},{default:p(()=>t[8]||(t[8]=[y(" WebDav书籍简明使用教程")])),_:1},8,["icon"]),t[27]||(t[27]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavHelp",target:"_blank"},{default:p(()=>t[9]||(t[9]=[y(" WebDav备份教程")])),_:1},8,["icon"]),t[28]||(t[28]=h("br",null,null,-1)),m(r,{icon:s(L),href:"https://regexr-cn.com/",target:"_blank"},{default:p(()=>t[10]||(t[10]=[y("正则表达式在线验证工具")])),_:1},8,["icon"]),t[29]||(t[29]=h("br",null,null,-1)),h("div",tt,[h("span",null,[m(n,null,{default:p(()=>t[11]||(t[11]=[h("code",null,"^$()[]{}.?+*|",-1),y(" 这些是Java正则特殊符号,匹配需转义")])),_:1})]),t[15]||(t[15]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[12]||(t[12]=[h("code",null,"(?s)",-1),y(" 前缀表示跨行解析")])),_:1})]),t[16]||(t[16]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[13]||(t[13]=[h("code",null,"(?m)",-1),y(" 前缀表示逐行匹配")])),_:1})]),t[17]||(t[17]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[14]||(t[14]=[h("code",null,"(?i)",-1),y(" 前缀表示忽略大小写")])),_:1})]),t[18]||(t[18]=h("br",null,null,-1))])],64)}}},nt=$(ot,[["__scopeId","data-v-fe99b178"]]),rt=1e3,C=Ne.create({baseURL:localStorage.getItem("remoteIp")||location.origin,timeout:120*rt});let K,le;const ve=e=>{let o;const{protocol:t,hostname:r,port:n}=new URL(e);if(!t.startsWith("http"))throw new Error("unexpect protocol:"+e);C.defaults.baseURL=e,K=e,n!==""?o=Number(n)+1:o=t.startsWith("https:")?"444":"81",le=`${t.startsWith("https:")?"wss://":"ws://"}${r}:${o}`};ve(C.defaults.baseURL);const st=async e=>{const{data:o={}}=await C.get("/getReadConfig",{baseURL:e,timeout:3e3});try{if("isSuccess"in o)return o.data;throw new Error("ReadConfig后端返回格式错误")}catch{throw new Error("ReadConfig后端返回格式错误")}},it=/source/i.test(location.href),lt=e=>{throw it&&B({message:"后端错误,检查网络或者阅读app",type:"error"}),e};C.interceptors.response.use(e=>e,lt);const at=()=>C.get("/getReadConfig",{timeout:3e3}),ut=e=>C.post("/saveReadConfig",e),ct=e=>C.post("/saveBookProgress",e),dt=e=>{e&&navigator.sendBeacon(`${K}/saveBookProgress`,JSON.stringify(e))},pt=()=>C.get("/getBookshelf"),gt=e=>C.get("/getChapterList?url="+encodeURIComponent(e)),mt=(e,o)=>C.get("/getBookContent?url="+encodeURIComponent(e)+"&index="+o),St=(e,o,t)=>{const r=`${le}/searchBook`,n=new WebSocket(r);n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=({data:i})=>o(i),n.onclose=()=>{t()}},ht=e=>C.post("/saveBook",e),ft=e=>C.post("/deleteBook",e),Q=/bookSource/i.test(location.href),yt=()=>Q?C.get("/getBookSources"):C.get("/getRssSources"),bt=e=>Q?C.post("/saveBookSource",e):C.post("/saveRssSource",e),_t=e=>Q?C.post("/saveBookSources",e):C.post("/saveRssSources",e),kt=e=>Q?C.post("/deleteBookSources",e):C.post("/deleteRssSources",e),vt=(e,o,t,r)=>{const n=`${le}/${Q?"bookSource":"rssSource"}Debug`,i=new WebSocket(n);i.onopen=()=>{i.send(JSON.stringify({tag:e,key:o}))},i.onmessage=({data:c})=>t(c),i.onclose=()=>{B({message:"调试已关闭!",type:"info"}),r()}},wt=e=>e.startsWith(K)?e:K+"/cover?path="+encodeURIComponent(e),Ct=(e,o)=>e.startsWith(K)?e:K+"/image?path="+encodeURIComponent(e)+"&url="+encodeURIComponent(sessionStorage.getItem("bookUrl"))+"&width="+o,A={getReadConfig:at,saveReadConfig:ut,saveBookProgress:ct,saveBookProgressWithBeacon:dt,getBookShelf:pt,getChapterList:gt,getBookContent:mt,search:St,saveBook:ht,deleteBook:ft,getSources:yt,saveSources:_t,saveSource:bt,deleteSource:kt,debug:vt,getProxyCoverUrl:wt,getProxyImageUrl:Ct,testLeagdoHttpUrlConnection:st,setLeagdoHttpUrl:ve,legado_http_origin:K},G=e=>e==null||e.length===0||/^\s+$/.test(e),ae=e=>"bookSourceName"in e,Ut=e=>ae(e)?!G(e.bookSourceName)&&!G(e.bookSourceUrl)&&!G(e.bookSourceType):!G(e.sourceName)&&!G(e.sourceUrl),Z=e=>ae(e)?e.bookSourceUrl:e.sourceUrl,Bt=(e,o)=>{var t,r,n,i,c,d,k,b;return ae(e)?(((t=e.bookSourceName)==null?void 0:t.includes(o))||((r=e.bookSourceUrl)==null?void 0:r.includes(o))||((n=e.bookSourceGroup)==null?void 0:n.includes(o))||((i=e.bookSourceComment)==null?void 0:i.includes(o)))??!1:(((c=e.sourceName)==null?void 0:c.includes(o))||((d=e.sourceUrl)==null?void 0:d.includes(o))||((k=e.sourceGroup)==null?void 0:k.includes(o))||((b=e.sourceComment)==null?void 0:b.includes(o)))??!1},oe=e=>{const o=new Map;return e.forEach(t=>o.set(Z(t),t)),o},xt={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleReview:{},ruleExplore:{}},Et={},q=/bookSource/i.test(location.href),pe=q?xt:Et,M=Se("source",{state:()=>({bookSources:[],rssSources:[],savedSources:[],currentSource:JSON.parse(JSON.stringify(pe)),currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>q?e.bookSources:e.rssSources,sourcesMap:e=>oe(e.sources),savedSourcesMap:e=>oe(e.savedSources),currentSourceUrl:e=>q?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>q?e.currentSource.ruleSearch.checkKeyWord||"我的":null},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){q?this.bookSources=e:this.rssSources=e},setPushReturnSources(e){this.savedSources=e},deleteSources(e){let o=q?this.bookSources:this.rssSources;e.forEach(t=>{let r=o.indexOf(t);r>-1&&o.splice(r,1)})},saveCurrentSource(){let e=this.currentSource,o=this.sourcesMap;o.set(Z(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")){let 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(pe))},clearAllSource(){this.bookSources=[],this.rssSources=[],this.savedSources=[]}}}),Nt={__name:"SourceItem",props:["source"],setup(e){const o=e,t=M(),r=J(()=>t.currentSourceUrl),n=J(()=>Z(o.source)),i=d=>{t.changeCurrentSource(d)},c=J(()=>{const d=t.savedSourcesMap;return d.size==0?!1:!d.has(n.value)});return(d,k)=>{const b=se,U=Ie;return g(),w(U,{size:"large",border:"",value:s(n),class:fe({error:s(c),edit:s(n)==s(r)})},{default:p(()=>[y(X(e.source.bookSourceName||e.source.sourceName)+" ",1),m(b,{text:"",icon:s(he),onClick:k[0]||(k[0]=N=>i(e.source))},null,8,["icon"])]),_:1},8,["value","class"])}}},It=$(Nt,[["__scopeId","data-v-c62441eb"]]),Vt={class:"tool"},Tt={__name:"SourceList",setup(e){const o=M(),t=P([]),r=P(""),n=J(()=>o.sources),i=J(()=>{const u=r.value;return u===""?n.value:n.value.filter(l=>Bt(l,u))}),c=J(()=>{const u=t.value;if(u.length==0)return[];const l=r.value==""?o.sourcesMap:oe(i.value);return u.reduce((_,v)=>{const x=l.get(v);return x&&_.push(x),_},[])}),d=()=>{const u=c.value;A.deleteSource(u).then(({data:l})=>{if(!l.isSuccess)return B.error(l.errorMsg);o.deleteSources(u);const _=Le(t.value);u.forEach(v=>{const x=_.indexOf(Z(v));x>-1&&_.splice(x,1)}),t.value=_})},k=()=>{o.clearAllSource(),t.value=[]},b=()=>{const u=document.createElement("input");u.type="file",u.accept=".json,.txt",u.addEventListener("change",l=>{const _=l.target.files[0],v=new FileReader;v.readAsText(_),v.onload=()=>{try{const x=JSON.parse(v.result);o.saveSources(x)}catch{B({message:"上传的源格式错误",type:"error"})}}}),u.click()},U=/bookSource/i.test(window.location.href),N=()=>{const u=document.createElement("a");let l=t.value.length===0?i.value:c.value,_=U?"BookSource":"RssSource";u.download=`${_}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let v=new Blob([JSON.stringify(l,null,4)],{type:"application/json"});u.href=window.URL.createObjectURL(v),u.click(),window.URL.revokeObjectURL(u.href)};return(u,l)=>{const _=Y,v=se,x=Oe;return g(),E(O,null,[m(_,{modelValue:s(r),"onUpdate:modelValue":l[0]||(l[0]=R=>H(r)?r.value=R:null),class:"search","prefix-icon":s(ye),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),h("div",Vt,[m(v,{onClick:b,icon:s(Ve)},{default:p(()=>l[2]||(l[2]=[y("打开")])),_:1},8,["icon"]),m(v,{disabled:s(i).length===0,onClick:N,icon:s(Te)},{default:p(()=>l[3]||(l[3]=[y(" 导出")])),_:1},8,["disabled","icon"]),m(v,{type:"danger",icon:s(ue),onClick:d,disabled:s(c).length===0},{default:p(()=>l[4]||(l[4]=[y("删除")])),_:1},8,["icon","disabled"]),m(v,{type:"danger",icon:s(ue),onClick:k,disabled:s(n).length===0},{default:p(()=>l[5]||(l[5]=[y("清空")])),_:1},8,["icon","disabled"])]),m(x,{id:"source-list",modelValue:s(t),"onUpdate:modelValue":l[1]||(l[1]=R=>H(t)?t.value=R:null)},{default:p(()=>[m(s(Re),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":R=>R.bookSourceUrl||R.sourceUrl,"data-sources":s(i),"data-component":It,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}},Rt=$(Tt,[["__scopeId","data-v-ece64d32"]]),Lt={__name:"SourceDebug",setup(e){const o=M(),t=P(""),r=P("");ie(()=>o.isDebuging,()=>{o.isDebuging&&i()});const n=d=>{let k=document.querySelector("#debug-text");k.scrollTop=k.scrollHeight,t.value+=d+` +`},i=async()=>{t.value="";try{await A.saveSource(o.currentSource)}catch(d){throw o.debugFinish(),d}A.debug(o.currentSourceUrl,r.value||o.searchKey,n,o.debugFinish)},c=J(()=>/bookSource/i.test(window.location.href));return(d,k)=>{const b=Y;return g(),E(O,null,[s(c)?(g(),w(b,{key:0,id:"debug-key",modelValue:s(r),"onUpdate:modelValue":k[0]||(k[0]=U=>H(r)?r.value=U:null),placeholder:"搜索书名、作者","prefix-icon":s(ye),style:{"padding-bottom":"4px"},onKeydown:Pe(i,["enter"])},null,8,["modelValue","prefix-icon"])):V("",!0),m(b,{id:"debug-text",modelValue:s(t),"onUpdate:modelValue":k[1]||(k[1]=U=>H(t)?t.value=U:null),type:"textarea",readonly:"",rows:29,placeholder:"这里用于输出调试信息"},null,8,["modelValue"])],64)}}},Ot=$(Lt,[["__scopeId","data-v-e289b5e4"]]),Pt=Se("book",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"primary",newConnect:!0,searchBooks:[],shelf:[],catalog:[],readingBook:{index:0,chapterPos:0},popCataVisible:!1,contentLoading:!0,showContent:!1,config:{theme:0,font:0,fontSize:18,readWidth:800,infiniteLoading:!1,customFontName:"",jumpDuration:1e3,spacing:{paragraph:1,line:.8,letter:0}},miniInterface:!1,readSettingsVisible:!1}),getters:{bookProgress:e=>{var c;if(e.catalog.length==0)return;const{index:o,chapterPos:t,bookName:r,bookAuthor:n}=e.readingBook;let i=(c=e.catalog[o])==null?void 0:c.title;if(i)return{name:r,author:n,durChapterIndex:o,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:i}},theme:e=>e.config.theme,isNight:e=>e.config.theme==6},actions:{setConnectStatus(e){this.connectStatus=e},setConnectType(e){this.connectType=e},setNewConnect(e){this.newConnect=e},addBooks(e){this.shelf=e},clearBooks(){this.shelf=[]},setCatalog(e){this.catalog=e},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=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.find(r=>r.bookUrl==o.bookUrl)===void 0&&this.searchBooks.push(o)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProgress(){return this.bookProgress?A.saveBookProgress(this.bookProgress):Promise.resolve()}}}),$t=$e(),Jt={__name:"SourceJson",setup(e){const o=M(),t=P(""),r=async n=>{try{o.changeEditTabSource(JSON.parse(n))}catch{B({message:"粘贴的源格式错误",type:"error"})}};return Je(async()=>{let n=o.editTabSource;Object.keys(n).length>0?t.value=JSON.stringify(n,null,4):t.value=""}),(n,i)=>{const c=Y;return g(),w(c,{id:"source-json",modelValue:s(t),"onUpdate:modelValue":i[0]||(i[0]=d=>H(t)?t.value=d:null),type:"textarea",placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP",rows:30,onChange:r,style:{"margin-bottom":"4px"}},null,8,["modelValue"])}}},Dt=$(Jt,[["__scopeId","data-v-4e022d46"]]),jt={__name:"SourceTabTools",setup(e){const o=M(),t=J({get:()=>o.currentTab,set:n=>o.currentTab=n}),r=P([["editTab","编辑源"],["editDebug","调试源"],["editList","源列表"],["editHelp","帮助信息"]]);return(n,i)=>{const c=Dt,d=Ot,k=Rt,b=nt,U=be,N=_e;return g(),w(N,{modelValue:s(t),"onUpdate:modelValue":i[0]||(i[0]=u=>H(t)?t.value=u:null)},{default:p(()=>[(g(!0),E(O,null,j(s(r),(u,l)=>(g(),w(U,{key:u[0],name:u[0],label:u[1]},{default:p(()=>[l==0?(g(),w(c,{key:0})):V("",!0),l==1?(g(),w(d,{key:1})):V("",!0),l==2?(g(),w(k,{key:2})):V("",!0),l==3?(g(),w(b,{key:3})):V("",!0)]),_:2},1032,["name","label"]))),128))]),_:1},8,["modelValue"])}}},At=$(jt,[["__scopeId","data-v-9b8b9ad0"]]),Ht={class:"menu flex-column-center"},Kt={class:"hotkeys-header flex-space-between"},Mt=["id"],Wt={key:0},Ft={class:"hotkeys-settings flex-column-center"},qt={class:"title"},zt={class:"hotkeys-item__content"},Gt={key:0},Qt={key:0},Xt={__name:"ToolBar",setup(e){const o=M(),t=()=>{const f=B({message:"加载中……",showClose:!0,duration:0});A.getSources().then(({data:a})=>{a.isSuccess?(o.changeTabName("editList"),o.saveSources(a.data),B({message:`成功拉取${a.data.length}条源`,type:"success"})):B({message:a.errorMsg??"后端错误",type:"error"})}).finally(()=>f.close())},r=()=>{let f=o.sources;if(o.changeTabName("editList"),f.length===0)return B({message:"空空如也",type:"info"});B({message:"正在推送中",type:"info"}),A.saveSources(f).then(({data:a})=>{if(a.isSuccess){let S=a.data;if(Array.isArray(S)){let D="";f.length>S.length&&(D=` +推送失败的源将用红色字体标注!`,o.setPushReturnSources(S)),B({message:`批量推送源到「阅读3.0APP」 +共计: ${f.length} 条 +成功: ${S.length} 条 +失败: ${f.length-S.length} 条${D}`,type:"success"})}}else B({message:`批量推送源失败! +ErrorMsg: ${a.errorMsg}`,type:"error"})})},n=()=>{o.changeTabName("editTab"),o.changeEditTabSource(o.currentSource)},i=()=>{o.changeCurrentSource(o.editTabSource)},c=()=>{o.editHistoryUndo()},d=()=>{o.clearEdit(),B({message:"已清除",type:"success"})},k=()=>{o.clearEdit(),o.clearAllHistory(),B({message:"已清除所有历史记录",type:"success"})},b=()=>{let f=/bookSource/i.test(location.href),a=o.currentSource;Ut(a)?A.saveSource(a).then(({data:S})=>{S.isSuccess?(B({message:`源《${f?a.bookSourceName:a.sourceName}》已成功保存到「阅读3.0APP」`,type:"success"}),o.saveCurrentSource()):B({message:`源《${f?a.bookSourceName:a.sourceName}》保存失败! +ErrorMsg: ${S.errorMsg}`,type:"error"})}):B({message:"请检查<必填>项是否全部填写",type:"error"})},U=()=>{o.startDebug()},N=P(Array.of({name:"⇈推送源",hotKeys:[],action:r},{name:"⇊拉取源",hotKeys:[],action:t},{name:"⋙生成源",hotKeys:[],action:n},{name:"⋘编辑源",hotKeys:[],action:i},{name:"✗清空表单",hotKeys:[],action:d},{name:"↶撤销操作",hotKeys:[],action:c},{name:"↷重做操作",hotKeys:[],action:k},{name:"⇏调试源",hotKeys:[],action:U},{name:"✓保存源",hotKeys:[],action:b})),u=P(!0),l=P(!1),_=P(-1),v=()=>{l.value||(u.value=!1),l.value=!1};ie(u,f=>{if(!f){F.unbind("*"),z(),W();return}z(),F.unbind(),F("*",a=>{a.preventDefault();let S=F.getPressedKeyString();S.length==1&&S[0]=="esc"||l.value&&_.value>-1&&(N.value[_.value].hotKeys=S)})},{immediate:!0});const x=f=>{l.value=!0,B({message:"按ESC键或者点击空白处结束录入",type:"info"}),N.value[f].hotKeys=[],_.value=f},R=()=>{const f=[];N.value.forEach(({hotKeys:a})=>{f.push(a)}),T(f),u.value=!1},W=()=>{F.filter=()=>!0,N.value.forEach(({hotKeys:f,action:a})=>{f.length!=0&&F(f.join("+"),S=>{S.preventDefault(),a.call(null)})})},T=f=>{localStorage.setItem("legado_web_hotkeys",JSON.stringify(f))};function z(){try{const f=JSON.parse(localStorage.getItem("legado_web_hotkeys"));return!Array.isArray(f)||f.length==0?!1:(N.value.forEach((a,S)=>a.hotKeys=f[S]),!0)}catch{B({message:"快捷键配置错误",type:"error"}),localStorage.removeItem("legado_web_hotkeys")}return!1}return De(()=>{z()&&(u.value=!1)}),(f,a)=>{const S=se,D=me,Ue=Ae;return g(),E(O,null,[h("div",Ht,[(g(!0),E(O,null,j(s(N),I=>(g(),w(S,{size:"large",key:I.name,onClick:I.action},{default:p(()=>[y(X(I.name),1)]),_:2},1032,["onClick"]))),128)),m(S,{size:"large",onClick:a[0]||(a[0]=()=>u.value=!0)},{default:p(()=>a[2]||(a[2]=[y("快捷键")])),_:1})]),m(Ue,{modelValue:s(u),"onUpdate:modelValue":a[1]||(a[1]=I=>H(u)?u.value=I:null),"show-close":!1,"before-close":v},{header:p(({titleClass:I,titleId:ee})=>[h("div",Kt,[h("div",{id:ee,class:fe(I)},[a[4]||(a[4]=y(" 快捷键设置 ")),s(l)?(g(),E("span",Wt,[m(D,null,{default:p(()=>a[3]||(a[3]=[y(" / 录入中 ")])),_:1})])):V("",!0)],10,Mt),m(S,{disabled:s(l),onClick:R,icon:s(je)},{default:p(()=>a[5]||(a[5]=[y("保存")])),_:1},8,["disabled","icon"])])]),default:p(()=>[h("div",Ft,[(g(!0),E(O,null,j(s(N),(I,ee)=>(g(),E("div",{key:I.name,class:"hotkeys-item flex-space-between"},[h("span",qt,[m(D,null,{default:p(()=>[y(X(I.name),1)]),_:2},1024)]),h("div",zt,[(g(!0),E(O,null,j(I.hotKeys,(te,Be)=>(g(),E("div",{key:te},[h("kbd",null,X(te),1),Be+1a[6]||(a[6]=[y("+")])),_:1})])):V("",!0)]))),128)),I.hotKeys.length==0?(g(),E("span",Qt,"未设置")):V("",!0)]),m(S,{disabled:s(l),text:"",icon:s(he),onClick:te=>x(ee)},{default:p(()=>a[7]||(a[7]=[y("编辑")])),_:2},1032,["disabled","icon","onClick"])]))),128))])]),_:1},8,["modelValue"])],64)}}},Yt=$(Xt,[["__scopeId","data-v-9f61bfde"]]),Zt={__name:"SourceTabForm",props:["config"],setup(e){const o=M(),t=J(()=>o.currentSource);return(r,n)=>{const i=Y,c=He,d=Ke,k=Me,b=We,U=Fe,N=qe,u=be,l=_e;return g(),w(l,{id:"source-edit"},{default:p(()=>[(g(!0),E(O,null,j(Object.values(e.config),({name:_,children:v})=>(g(),w(u,{label:_,key:_},{default:p(()=>[m(N,{"label-position":"right","label-width":"auto"},{default:p(()=>[(g(!0),E(O,null,j(v,({type:x,title:R,namespace:W,id:T,array:z,hint:f,required:a})=>(g(),w(U,{label:R,key:R,required:a},{default:p(()=>[x=="String"&&typeof W>"u"?(g(),w(i,{key:0,type:"textarea",modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):V("",!0),x=="String"&&typeof W<"u"?(g(),w(i,{key:1,type:"textarea",modelValue:s(t)[W][T],"onUpdate:modelValue":S=>s(t)[W][T]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):V("",!0),x=="Boolean"?(g(),w(c,{key:2,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S},null,8,["modelValue","onUpdate:modelValue"])):V("",!0),x=="Number"?(g(),w(d,{key:3,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S,min:0},null,8,["modelValue","onUpdate:modelValue"])):V("",!0),x=="Array"?(g(),w(b,{key:4,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S},{default:p(()=>[(g(!0),E(O,null,j(z,(S,D)=>(g(),w(k,{value:D,key:S,label:S},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):V("",!0)]),_:2},1032,["label","required"]))),128))]),_:2},1024)]),_:2},1032,["label"]))),128))]),_:1})}}},eo=$(Zt,[["__scopeId","data-v-0cb9f194"]]),to={base:{name:"基础",children:[{title:"源类型",id:"bookSourceType",type:"Array",array:["文本","音频","图片","文件"],required:!0},{title:"源域名",id:"bookSourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"源名称",id:"bookSourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"bookSourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"bookSourceComment",type:"String",hint:"描述源作者和状态"},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"链接验证",id:"bookUrlPattern",type:"String",hint:"书籍URL正则,当详情页URL与源URL的域名不一致时有效,用于添加网址"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"书源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率,如1000(访问间隔1000ms)或者1/1000(1000ms内访问1次)"},{title:"js库",id:"jsLib",type:"String",hint:"js库, 可填写js或者key-value object获取在线js文件"}]},search:{name:"搜索",children:[{title:"搜索地址",id:"searchUrl",type:"String",hint:"[域名可省略]/search.php@kw={{key}}"},{title:"校验文字",namespace:"ruleSearch",id:"checkKeyWord",type:"String",hint:"校验关键字,强烈建议填写"},{title:"列表规则",namespace:"ruleSearch",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleSearch",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleSearch",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleSearch",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleSearch",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleSearch",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleSearch",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleSearch",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleSearch",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},find:{name:"发现",children:[{title:"发现地址",id:"exploreUrl",type:"String",hint:"单个发现格式::或者{url:,title:,style:...};前者用换行符或者&&连接,后者放在数组内;可用js动态生成"},{title:"列表规则",namespace:"ruleExplore",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleExplore",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleExplore",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleExplore",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleExplore",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleExplore",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleExplore",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleExplore",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleExplore",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},detail:{name:"详情",children:[{title:"预处理",namespace:"ruleBookInfo",id:"init",type:"String",hint:"用于加速详情信息检索,只支持AllInOne规则"},{title:"书名规则",namespace:"ruleBookInfo",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleBookInfo",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleBookInfo",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleBookInfo",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleBookInfo",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleBookInfo",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleBookInfo",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"目录地址",namespace:"ruleBookInfo",id:"tocUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url, 与详情页相同时可省略)"},{title:"修改书籍",namespace:"ruleBookInfo",id:"canReName",type:"String",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"},{title:"下载URL",namespace:"ruleBookInfo",id:"downloadUrls",type:"String",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"}]},directory:{name:"目录",children:[{title:"更新前JS",namespace:"ruleToc",id:"preUpdateJs",type:"String",hint:"更新目录前调用JS 动态更新目录链接"},{title:"列表规则",namespace:"ruleToc",id:"chapterList",type:"String",hint:"选择目录列表的章节节点 (规则结果为List)"},{title:"章节名称",namespace:"ruleToc",id:"chapterName",type:"String",hint:"选择章节名称 (规则结果为String)"},{title:"章节地址",namespace:"ruleToc",id:"chapterUrl",type:"String",hint:"选择章节链接 (规则结果为String类型的Url)"},{title:"标题处理",namespace:"ruleToc",id:"formatJs",type:"String",hint:"遍历去重后的章节列表的回调,提供index(章节序号从1开始)、title(章节标题)变量,额外提供gInt(初始值0),返回值作为新的标题"},{title:"卷名标识",namespace:"ruleToc",id:"isVolume",type:"String",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"章节信息",namespace:"ruleToc",id:"updateTime",type:"String",hint:"选择章节信息(如更新时间) (规则结果为String)"},{title:"收费标识",namespace:"ruleToc",id:"isVip",type:"String",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",namespace:"ruleToc",id:"isPay",type:"String",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"翻页规则",namespace:"ruleToc",id:"nextTocUrl",type:"String",hint:"选择目录下一页链接 (规则结果为List或String)"}]},content:{name:"正文",children:[{title:"正文规则",namespace:"ruleContent",id:"content",type:"String",hint:"选择正文内容 (规则结果为String)"},{title:"标题规则",namespace:"ruleContent",id:"title",type:"String",hint:"获取结果将会覆盖章节标题 (规则结果为String)"},{title:"翻页规则",namespace:"ruleContent",id:"nextContentUrl",type:"String",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{title:"脚本注入",namespace:"ruleContent",id:"webJs",type:"String",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"资源正则",namespace:"ruleContent",id:"sourceRegex",type:"String",hint:"匹配资源的url特征,用于嗅探"},{title:"替换规则",namespace:"ruleContent",id:"replaceRegex",type:"String",hint:"多页内容合并后替换,用于正文净化"},{title:"图片样式",namespace:"ruleContent",id:"imageStyle",type:"String",hint:"FULL:铺满 不填:默认样式"},{title:"图片解密",namespace:"ruleContent",id:"imageDecode",type:"String",hint:"填写JavaScript 返回解密图片的bytes "},{title:"购买操作",namespace:"ruleContent",id:"payAction",type:"String",hint:"填写JavaScript 返回购买链接或者调用购买接口"}]},other:{name:"其他",children:[{title:"启用搜索",id:"enabled",type:"Boolean"},{title:"启用发现",id:"enabledExplore",type:"Boolean"},{title:"CookieJar",id:"enabledCookieJar",type:"Boolean"},{title:"搜索权重",id:"weight",type:"Number"},{title:"排序编号",id:"customOrder",type:"Number"}]}},oo={base:{name:"基础",children:[{title:"源域名",id:"sourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"图标",id:"sourceIcon",type:"String",hint:"填写图片网络链接"},{title:"源名称",id:"sourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"sourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"sourceComment",type:"String",hint:"描述源作者和状态"},{title:"分类地址",id:"sortUrl",type:"String",hint:`名称1::链接1 +名称2::链接2`},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率"}]},list:{name:"列表",children:[{title:"列表规则",id:"ruleArticles",type:"String",hint:"规则结果为List"},{title:"翻页规则",id:"ruleNextPage",type:"String",hint:"下一页链接 规则结果为List或String"},{title:"标题规则",id:"ruleTitle",type:"String",hint:"文章标题 规则结果为String"},{title:"时间规则",id:"rulePubDate",type:"String",hint:"文章发布时间 规则结果为String"},{title:"描述规则",id:"ruleDescription",type:"String",hint:"文章简要描述 规则结果为String"},{title:"图片规则",id:"ruleImage",type:"String",hint:"文章图片链接 规则结果为String"},{title:"链接规则",id:"ruleLink",type:"String",hint:"文章链接 规则结果为String"}]},webView:{name:"WebView",children:[{title:"内容规则",id:"ruleContent",type:"String",hint:"文章正文"},{title:"样式规则",id:"style",type:"String",hint:"文章正文样式 填写css"},{title:"注入规则",id:"injectJs",type:"String",hint:"注入网页的JavaScript"},{title:"黑名单",id:"contentBlacklist",type:"String",hint:"webView链接加载黑名单,英文逗号隔开"},{title:"白名单",id:"contentWhitelist",type:"String",hint:"webView链接加载白名单,英文逗号隔开"},{title:"链接拦截",id:"shouldOverrideUrlLoading",type:"String",hint:"填写js,变量url为当前资源链接,返回true拦截"}]},other:{name:"其他",children:[{title:"列表样式",id:"articleStyle",type:"Array",array:["默认","大图","双列"]},{title:"加载地址",id:"loadWithBaseUrl",type:"Boolean"},{title:"启用JS",id:"enableJs",type:"Boolean"},{title:"启用",id:"enabled",type:"Boolean"},{title:"Cookie",id:"enabledCookieJar",type:"Boolean"},{title:"单URL",id:"singleUrl",type:"Boolean"},{title:"排序编号",id:"customOrder",type:"Number"}]}},no={class:"editor"},ro={__name:"SourceEditor",setup(e){ze();let o;return/bookSource/i.test(location.href)?(o=to,document.title="书源管理"):(o=oo,document.title="订阅源管理"),(t,r)=>{const n=eo,i=Yt,c=At;return g(),E("div",no,[m(n,{class:"left",config:s(o)},null,8,["config"]),m(i),m(c,{class:"right"})])}}},ge=$(ro,[["__scopeId","data-v-9682883a"]]),we=[{path:"/bookSource",name:"book-home",component:ge},{path:"/rssSource",name:"rss-home",component:ge}];ne({history:re(),routes:we});const Ce=ne({history:re(),routes:ke.concat(we)});Ce.afterEach(e=>{e.name=="shelf"&&(document.title="书架")});Ge(Ye).use($t).use(Ce).mount("#app");ie(()=>Pt().isNight,e=>{e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")});export{A,$ as _,Pt as u}; diff --git a/app/src/main/assets/web/vue/assets/index-l5n--pGs.css b/app/src/main/assets/web/vue/assets/index-BIDNUcJo.css similarity index 51% rename from app/src/main/assets/web/vue/assets/index-l5n--pGs.css rename to app/src/main/assets/web/vue/assets/index-BIDNUcJo.css index 2426ea684..fa2ad31b4 100644 --- a/app/src/main/assets/web/vue/assets/index-l5n--pGs.css +++ b/app/src/main/assets/web/vue/assets/index-BIDNUcJo.css @@ -1 +1 @@ -.el-link[data-v-fe99b178]{padding:4px}.el-text[data-v-fe99b178]{padding-top:20px}[data-v-c8501b1a] .el-checkbox__label{flex:1;display:flex;justify-content:space-between;align-items:center}.error[data-v-c8501b1a]{border-color:var(--el-color-error)!important;color:var(--el-color-error)!important;--el-checkbox-checked-text-color: var(--el-color-error);--el-checkbox-checked-bg-color: var(--el-color-error);--el-checkbox-checked-input-border-color: var(--el-color-error)}.edit[data-v-c8501b1a]{border-color:var(--el-color-dark)!important}.tool[data-v-d2d7f7ec]{display:flex;margin:4px 0;justify-content:center}#source-list[data-v-d2d7f7ec]{margin-top:6px;height:calc(100vh - 119px)}#source-list[data-v-d2d7f7ec] .el-checkbox{margin-bottom:4px;width:100%}[data-v-c516d335] #debug-text{height:calc(100vh - 86px)}[data-v-4e022d46] .el-input{width:100%}[data-v-4e022d46] #source-json{height:calc(100vh - 50px)}[data-v-3e4574c1] .el-tabs__header{margin-bottom:5px}.flex-space-between[data-v-9fd45dad]{display:flex;justify-content:space-between;align-items:baseline}.flex-column-center[data-v-9fd45dad]{display:flex;flex-direction:column;justify-content:center}.menu>.el-button[data-v-9fd45dad]{margin:4px;padding:1em;width:6em}.hotkeys-item .title[data-v-9fd45dad]{width:5em;display:flex;justify-content:flex-end;margin-right:1em}.hotkeys-item__content[data-v-9fd45dad]{display:flex;flex-wrap:wrap;flex:1}.hotkeys-item__content div[data-v-9fd45dad]{margin-bottom:1em}.hotkeys-item__content span[data-v-9fd45dad]{margin:.5em}[data-v-ffcf3f30] .el-tab-pane{height:calc(100vh - 55px);padding-top:15px;padding-right:5px;overflow-y:auto}[data-v-ffcf3f30] .el-tabs__header{margin:0}kbd{align-items:center;background:#7d7d7d1a;border-radius:3px;border:0;padding:4px 5px;font-weight:700;box-shadow:inset 0 -2px #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66}code{border-radius:4px;padding:.15rem .5rem;background-color:var(--el-fill-color-light);transition:color .25s,background-color .5s;font-size:14px}body{padding:0;margin:0}.el-tabs__header{position:sticky;top:0;z-index:2}.editor[data-v-9682883a]{display:flex;height:100vh;overflow:hidden}.editor .left[data-v-9682883a]{flex:1;margin-left:20px}.editor .right[data-v-9682883a]{flex:1;width:360px;margin-right:20px} +.el-link[data-v-fe99b178]{padding:4px}.el-text[data-v-fe99b178]{padding-top:20px}[data-v-c62441eb] .el-checkbox__label{flex:1;display:flex;justify-content:space-between;align-items:center}.error[data-v-c62441eb]{border-color:var(--el-color-error)!important;color:var(--el-color-error)!important;--el-checkbox-checked-text-color: var(--el-color-error);--el-checkbox-checked-bg-color: var(--el-color-error);--el-checkbox-checked-input-border-color: var(--el-color-error)}.edit[data-v-c62441eb]{border-color:var(--el-color-dark)!important}.tool[data-v-ece64d32]{display:flex;margin:4px 0;justify-content:center}#source-list[data-v-ece64d32]{margin-top:6px;height:calc(100vh - 119px)}#source-list[data-v-ece64d32] .el-checkbox{margin-bottom:4px;width:100%}[data-v-e289b5e4] #debug-text{height:calc(100vh - 86px)}[data-v-4e022d46] .el-input{width:100%}[data-v-4e022d46] #source-json{height:calc(100vh - 50px)}[data-v-9b8b9ad0] .el-tabs__header{margin-bottom:5px}.flex-space-between[data-v-9f61bfde]{display:flex;justify-content:space-between;align-items:baseline}.flex-column-center[data-v-9f61bfde]{display:flex;flex-direction:column;justify-content:center}.menu>.el-button[data-v-9f61bfde]{margin:4px;padding:1em;width:6em}.hotkeys-item .title[data-v-9f61bfde]{width:5em;display:flex;justify-content:flex-end;margin-right:1em}.hotkeys-item__content[data-v-9f61bfde]{display:flex;flex-wrap:wrap;flex:1}.hotkeys-item__content div[data-v-9f61bfde]{margin-bottom:1em}.hotkeys-item__content span[data-v-9f61bfde]{margin:.5em}[data-v-0cb9f194] .el-tab-pane{height:calc(100vh - 55px);padding-top:15px;padding-right:5px;overflow-y:auto}[data-v-0cb9f194] .el-tabs__header{margin:0}kbd{align-items:center;background:#7d7d7d1a;border-radius:3px;border:0;padding:4px 5px;font-weight:700;box-shadow:inset 0 -2px #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66}code{border-radius:4px;padding:.15rem .5rem;background-color:var(--el-fill-color-light);transition:color .25s,background-color .5s;font-size:14px}body{padding:0;margin:0}.el-tabs__header{position:sticky;top:0;z-index:2}.editor[data-v-9682883a]{display:flex;height:100vh;overflow:hidden}.editor .left[data-v-9682883a]{flex:1;margin-left:20px}.editor .right[data-v-9682883a]{flex:1;width:360px;margin-right:20px} diff --git a/app/src/main/assets/web/vue/assets/index-DfNldNYB.js b/app/src/main/assets/web/vue/assets/index-DfNldNYB.js deleted file mode 100644 index f2220bf54..000000000 --- a/app/src/main/assets/web/vue/assets/index-DfNldNYB.js +++ /dev/null @@ -1,10 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BookShelf-CKnr6cT1.js","./vendor-MihKrDrn.js","./vendor-Bui7wm94.css","./loading-DPd2-h-z.js","./loading-DyaW7RXx.css","./BookShelf-DxMHgvyY.css","./BookChapter-Pt7OGRfg.js","./BookChapter-C8lBKSzj.css"])))=>i.map(i=>d[i]); -import{r as xe,o as g,c as w,a as ne,b as re,d as E,e as m,w as p,f as y,u as s,l as L,g as h,F as O,E as Ee,h as me,i as Ie,j as B,k as Se,m as J,t as X,n as he,p as fe,q as se,s as Ve,v as P,x as H,y as ye,z as Ne,A as Te,B as ue,V as Re,C as Le,D as Y,G as Oe,H as le,I as Pe,J as N,K as $e,L as De,M as j,N as be,O as _e,P as F,Q as Je,R as je,S as Ae,T as He,U as Ke,W as Me,X as We,Y as Fe,Z as qe,_ as ze,$ as Ge}from"./vendor-MihKrDrn.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const l of n)if(l.type==="childList")for(const c of l.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function t(n){const l={};return n.integrity&&(l.integrity=n.integrity),n.referrerPolicy&&(l.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?l.credentials="include":n.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(n){if(n.ep)return;n.ep=!0;const l=t(n);fetch(n.href,l)}})();const $=(e,o)=>{const t=e.__vccOpts||e;for(const[r,n]of o)t[r]=n;return t},Qe={};function Xe(e,o){const t=xe("router-view");return g(),w(t)}const Ye=$(Qe,[["render",Xe]]),Ze="modulepreload",et=function(e,o){return new URL(e,o).href},ce={},de=function(o,t,r){let n=Promise.resolve();if(t&&t.length>0){const c=document.getElementsByTagName("link"),d=document.querySelector("meta[property=csp-nonce]"),k=(d==null?void 0:d.nonce)||(d==null?void 0:d.getAttribute("nonce"));n=Promise.allSettled(t.map(b=>{if(b=et(b,r),b in ce)return;ce[b]=!0;const U=b.endsWith(".css"),I=U?'[rel="stylesheet"]':"";if(!!r)for(let _=c.length-1;_>=0;_--){const v=c[_];if(v.href===b&&(!U||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${I}`))return;const i=document.createElement("link");if(i.rel=U?"stylesheet":Ze,U||(i.as="script"),i.crossOrigin="",i.href=b,k&&i.setAttribute("nonce",k),document.head.appendChild(i),U)return new Promise((_,v)=>{i.addEventListener("load",_),i.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${b}`)))})}))}function l(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return n.then(c=>{for(const d of c||[])d.status==="rejected"&&l(d.reason);return o().catch(l)})},ke=[{path:"/",name:"shelf",component:()=>de(()=>import("./BookShelf-CKnr6cT1.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)},{path:"/chapter",name:"chapter",component:()=>de(()=>import("./BookChapter-Pt7OGRfg.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)}];ne({history:re(),routes:ke});const tt={style:{"margin-top":"20px"}},ot={__name:"SourceHelp",setup(e){return(o,t)=>{const r=Ee,n=me;return g(),E(O,null,[m(r,{icon:s(L),href:"/help/#appHelp",target:"_blank"},{default:p(()=>t[0]||(t[0]=[y("APP帮助文档")])),_:1},8,["icon"]),t[19]||(t[19]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#ruleHelp",target:"_blank"},{default:p(()=>t[1]||(t[1]=[y("书源制作教程")])),_:1},8,["icon"]),t[20]||(t[20]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#jsHelp",target:"_blank"},{default:p(()=>t[2]||(t[2]=[y("js变量和函数")])),_:1},8,["icon"]),t[21]||(t[21]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#xpathHelp",target:"_blank"},{default:p(()=>t[3]||(t[3]=[y("xpath语法教程")])),_:1},8,["icon"]),t[22]||(t[22]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#regexHelp",target:"_blank"},{default:p(()=>t[4]||(t[4]=[y("正则表达式教程")])),_:1},8,["icon"]),t[23]||(t[23]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#txtTocRuleHelp",target:"_blank"},{default:p(()=>t[5]||(t[5]=[y("txt目录正则说明")])),_:1},8,["icon"]),t[24]||(t[24]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#debugHelp",target:"_blank"},{default:p(()=>t[6]||(t[6]=[y("书源调试说明")])),_:1},8,["icon"]),t[25]||(t[25]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#httpTTSHelp",target:"_blank"},{default:p(()=>t[7]||(t[7]=[y("在线朗读规则")])),_:1},8,["icon"]),t[26]||(t[26]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavBookHelp",target:"_blank"},{default:p(()=>t[8]||(t[8]=[y(" WebDav书籍简明使用教程")])),_:1},8,["icon"]),t[27]||(t[27]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavHelp",target:"_blank"},{default:p(()=>t[9]||(t[9]=[y(" WebDav备份教程")])),_:1},8,["icon"]),t[28]||(t[28]=h("br",null,null,-1)),m(r,{icon:s(L),href:"https://regexr-cn.com/",target:"_blank"},{default:p(()=>t[10]||(t[10]=[y("正则表达式在线验证工具")])),_:1},8,["icon"]),t[29]||(t[29]=h("br",null,null,-1)),h("div",tt,[h("span",null,[m(n,null,{default:p(()=>t[11]||(t[11]=[h("code",null,"^$()[]{}.?+*|",-1),y(" 这些是Java正则特殊符号,匹配需转义")])),_:1})]),t[15]||(t[15]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[12]||(t[12]=[h("code",null,"(?s)",-1),y(" 前缀表示跨行解析")])),_:1})]),t[16]||(t[16]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[13]||(t[13]=[h("code",null,"(?m)",-1),y(" 前缀表示逐行匹配")])),_:1})]),t[17]||(t[17]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[14]||(t[14]=[h("code",null,"(?i)",-1),y(" 前缀表示忽略大小写")])),_:1})]),t[18]||(t[18]=h("br",null,null,-1))])],64)}}},nt=$(ot,[["__scopeId","data-v-fe99b178"]]),rt=1e3,C=Ie.create({baseURL:localStorage.getItem("remoteIp")||location.origin,timeout:120*rt});let K,ie;const ve=e=>{let o;const{protocol:t,hostname:r,port:n}=new URL(e);if(!t.startsWith("http"))throw new Error("unexpect protocol:"+e);C.defaults.baseURL=e,K=e,n!==""?o=Number(n)+1:o=t.startsWith("https:")?"444":"81",ie=`${t.startsWith("https:")?"wss://":"ws://"}${r}:${o}`};ve(C.defaults.baseURL);const st=async e=>{const{data:o={}}=await C.get("/getReadConfig",{baseURL:e,timeout:3e3});try{if("isSuccess"in o)return o.data;throw new Error("ReadConfig后端返回格式错误")}catch{throw new Error("ReadConfig后端返回格式错误")}},lt=/source/i.test(location.href),it=e=>{throw lt&&B({message:"后端错误,检查网络或者阅读app",type:"error"}),e};C.interceptors.response.use(e=>e,it);const at=()=>C.get("/getReadConfig",{timeout:3e3}),ut=e=>C.post("/saveReadConfig",e),ct=e=>C.post("/saveBookProgress",e),dt=e=>{e&&navigator.sendBeacon(`${K}/saveBookProgress`,JSON.stringify(e))},pt=()=>C.get("/getBookshelf"),gt=e=>C.get("/getChapterList?url="+encodeURIComponent(e)),mt=(e,o)=>C.get("/getBookContent?url="+encodeURIComponent(e)+"&index="+o),St=(e,o,t)=>{const r=`${ie}/searchBook`,n=new WebSocket(r);n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=({data:l})=>o(l),n.onclose=()=>{t()}},ht=e=>C.post("/saveBook",e),ft=e=>C.post("/deleteBook",e),Q=/bookSource/i.test(location.href),yt=()=>Q?C.get("/getBookSources"):C.get("/getRssSources"),bt=e=>Q?C.post("/saveBookSource",e):C.post("/saveRssSource",e),_t=e=>Q?C.post("/saveBookSources",e):C.post("/saveRssSources",e),kt=e=>Q?C.post("/deleteBookSources",e):C.post("/deleteRssSources",e),vt=(e,o,t,r)=>{const n=`${ie}/${Q?"bookSource":"rssSource"}Debug`,l=new WebSocket(n);l.onopen=()=>{l.send(JSON.stringify({tag:e,key:o}))},l.onmessage=({data:c})=>t(c),l.onclose=()=>{B({message:"调试已关闭!",type:"info"}),r()}},wt=e=>e.startsWith(K)?e:K+"/cover?path="+encodeURIComponent(e),Ct=(e,o)=>e.startsWith(K)?e:K+"/image?path="+encodeURIComponent(e)+"&url="+encodeURIComponent(sessionStorage.getItem("bookUrl"))+"&width="+o,A={getReadConfig:at,saveReadConfig:ut,saveBookProgress:ct,saveBookProgressWithBeacon:dt,getBookShelf:pt,getChapterList:gt,getBookContent:mt,search:St,saveBook:ht,deleteBook:ft,getSources:yt,saveSources:_t,saveSource:bt,deleteSource:kt,debug:vt,getProxyCoverUrl:wt,getProxyImageUrl:Ct,testLeagdoHttpUrlConnection:st,setLeagdoHttpUrl:ve,legado_http_origin:K},G=e=>e==null||e.length===0||/^\s+$/.test(e),ae=e=>"bookSourceName"in e,Ut=e=>ae(e)?!G(e.bookSourceName)&&!G(e.bookSourceUrl)&&!G(e.bookSourceType):!G(e.sourceName)&&!G(e.sourceUrl),Z=e=>ae(e)?e.bookSourceUrl:e.sourceUrl,Bt=(e,o)=>{var t,r,n,l,c,d,k,b;return ae(e)?(((t=e.bookSourceName)==null?void 0:t.includes(o))||((r=e.bookSourceUrl)==null?void 0:r.includes(o))||((n=e.bookSourceGroup)==null?void 0:n.includes(o))||((l=e.bookSourceComment)==null?void 0:l.includes(o)))??!1:(((c=e.sourceName)==null?void 0:c.includes(o))||((d=e.sourceUrl)==null?void 0:d.includes(o))||((k=e.sourceGroup)==null?void 0:k.includes(o))||((b=e.sourceComment)==null?void 0:b.includes(o)))??!1},oe=e=>{const o=new Map;return e.forEach(t=>o.set(Z(t),t)),o},xt={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleReview:{},ruleExplore:{}},Et={},q=/bookSource/i.test(location.href),pe=q?xt:Et,M=Se("source",{state:()=>({bookSources:[],rssSources:[],savedSources:[],currentSource:pe,currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>q?e.bookSources:e.rssSources,sourcesMap:e=>oe(e.sources),savedSourcesMap:e=>oe(e.savedSources),currentSourceUrl:e=>q?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>q?e.currentSource.ruleSearch.checkKeyWord||"我的":null},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){q?this.bookSources=e:this.rssSources=e},setPushReturnSources(e){this.savedSources=e},deleteSources(e){let o=q?this.bookSources:this.rssSources;e.forEach(t=>{let r=o.indexOf(t);r>-1&&o.splice(r,1)})},saveCurrentSource(){let e=this.currentSource,o=this.sourcesMap;o.set(Z(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")){let 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=pe},clearAllSource(){this.bookSources=[],this.rssSources=[],this.savedSources=[]}}}),It={__name:"SourceItem",props:["source"],setup(e){const o=e,t=M(),r=J(()=>t.currentSourceUrl),n=J(()=>Z(o.source)),l=d=>{t.changeCurrentSource(d)},c=J(()=>{const d=t.savedSourcesMap;return d.size==0?!1:!d.has(n.value)});return(d,k)=>{const b=se,U=Ve;return g(),w(U,{size:"large",border:"",label:s(n),class:fe({error:s(c),edit:s(n)==s(r)})},{default:p(()=>[y(X(e.source.bookSourceName||e.source.sourceName)+" ",1),m(b,{text:"",icon:s(he),onClick:k[0]||(k[0]=I=>l(e.source))},null,8,["icon"])]),_:1},8,["label","class"])}}},Vt=$(It,[["__scopeId","data-v-c8501b1a"]]),Nt={class:"tool"},Tt={__name:"SourceList",setup(e){const o=M(),t=P([]),r=P(""),n=J(()=>o.sources),l=J(()=>{const u=r.value;return u===""?n.value:n.value.filter(i=>Bt(i,u))}),c=J(()=>{const u=t.value;if(u.length==0)return[];const i=r.value==""?o.sourcesMap:oe(l.value);return u.reduce((_,v)=>{const x=i.get(v);return x&&_.push(x),_},[])}),d=()=>{const u=c.value;A.deleteSource(u).then(({data:i})=>{if(!i.isSuccess)return B.error(i.errorMsg);o.deleteSources(u);const _=Le(t.value);u.forEach(v=>{const x=_.indexOf(Z(v));x>-1&&_.splice(x,1)}),t.value=_})},k=()=>{o.clearAllSource(),t.value=[]},b=()=>{const u=document.createElement("input");u.type="file",u.accept=".json,.txt",u.addEventListener("change",i=>{const _=i.target.files[0],v=new FileReader;v.readAsText(_),v.onload=()=>{try{const x=JSON.parse(v.result);o.saveSources(x)}catch{B({message:"上传的源格式错误",type:"error"})}}}),u.click()},U=/bookSource/.test(window.location.href),I=()=>{const u=document.createElement("a");let i=t.value.length===0?l.value:c.value,_=U?"BookSource":"RssSource";u.download=`${_}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let v=new Blob([JSON.stringify(i,null,4)],{type:"application/json"});u.href=window.URL.createObjectURL(v),u.click(),window.URL.revokeObjectURL(u.href)};return(u,i)=>{const _=Y,v=se,x=Oe;return g(),E(O,null,[m(_,{modelValue:s(r),"onUpdate:modelValue":i[0]||(i[0]=R=>H(r)?r.value=R:null),class:"search","prefix-icon":s(ye),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),h("div",Nt,[m(v,{onClick:b,icon:s(Ne)},{default:p(()=>i[2]||(i[2]=[y("打开")])),_:1},8,["icon"]),m(v,{disabled:s(l).length===0,onClick:I,icon:s(Te)},{default:p(()=>i[3]||(i[3]=[y(" 导出")])),_:1},8,["disabled","icon"]),m(v,{type:"danger",icon:s(ue),onClick:d,disabled:s(c).length===0},{default:p(()=>i[4]||(i[4]=[y("删除")])),_:1},8,["icon","disabled"]),m(v,{type:"danger",icon:s(ue),onClick:k,disabled:s(n).length===0},{default:p(()=>i[5]||(i[5]=[y("清空")])),_:1},8,["icon","disabled"])]),m(x,{id:"source-list",modelValue:s(t),"onUpdate:modelValue":i[1]||(i[1]=R=>H(t)?t.value=R:null)},{default:p(()=>[m(s(Re),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":R=>R.bookSourceUrl||R.sourceUrl,"data-sources":s(l),"data-component":Vt,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}},Rt=$(Tt,[["__scopeId","data-v-d2d7f7ec"]]),Lt={__name:"SourceDebug",setup(e){const o=M(),t=P(""),r=P("");le(()=>o.isDebuging,()=>{o.isDebuging&&l()});const n=d=>{let k=document.querySelector("#debug-text");k.scrollTop=k.scrollHeight,t.value+=d+` -`},l=async()=>{t.value="";try{await A.saveSource(o.currentSource)}catch(d){throw o.debugFinish(),d}A.debug(o.currentSourceUrl,r.value||o.searchKey,n,o.debugFinish)},c=J(()=>/bookSource/.test(window.location.href));return(d,k)=>{const b=Y;return g(),E(O,null,[s(c)?(g(),w(b,{key:0,id:"debug-key",modelValue:s(r),"onUpdate:modelValue":k[0]||(k[0]=U=>H(r)?r.value=U:null),placeholder:"搜索书名、作者","prefix-icon":s(ye),style:{"padding-bottom":"4px"},onKeydown:Pe(l,["enter"])},null,8,["modelValue","prefix-icon"])):N("",!0),m(b,{id:"debug-text",modelValue:s(t),"onUpdate:modelValue":k[1]||(k[1]=U=>H(t)?t.value=U:null),type:"textarea",readonly:"",rows:29,placeholder:"这里用于输出调试信息"},null,8,["modelValue"])],64)}}},Ot=$(Lt,[["__scopeId","data-v-c516d335"]]),Pt=Se("book",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"primary",newConnect:!0,searchBooks:[],shelf:[],catalog:[],readingBook:{index:0,chapterPos:0},popCataVisible:!1,contentLoading:!0,showContent:!1,config:{theme:0,font:0,fontSize:18,readWidth:800,infiniteLoading:!1,customFontName:"",jumpDuration:1e3,spacing:{paragraph:1,line:.8,letter:0}},miniInterface:!1,readSettingsVisible:!1}),getters:{bookProgress:e=>{var c;if(e.catalog.length==0)return;const{index:o,chapterPos:t,bookName:r,bookAuthor:n}=e.readingBook;let l=(c=e.catalog[o])==null?void 0:c.title;if(l)return{name:r,author:n,durChapterIndex:o,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:l}},theme:e=>e.config.theme,isNight:e=>e.config.theme==6},actions:{setConnectStatus(e){this.connectStatus=e},setConnectType(e){this.connectType=e},setNewConnect(e){this.newConnect=e},addBooks(e){this.shelf=e},clearBooks(){this.shelf=[]},setCatalog(e){this.catalog=e},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=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.find(r=>r.bookUrl==o.bookUrl)===void 0&&this.searchBooks.push(o)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProgress(){return this.bookProgress?A.saveBookProgress(this.bookProgress):Promise.resolve()}}}),$t=$e(),Dt={__name:"SourceJson",setup(e){const o=M(),t=P(""),r=async n=>{try{o.changeEditTabSource(JSON.parse(n))}catch{B({message:"粘贴的源格式错误",type:"error"})}};return De(async()=>{let n=o.editTabSource;Object.keys(n).length>0?t.value=JSON.stringify(n,null,4):t.value=""}),(n,l)=>{const c=Y;return g(),w(c,{id:"source-json",modelValue:s(t),"onUpdate:modelValue":l[0]||(l[0]=d=>H(t)?t.value=d:null),type:"textarea",placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP",rows:30,onChange:r,style:{"margin-bottom":"4px"}},null,8,["modelValue"])}}},Jt=$(Dt,[["__scopeId","data-v-4e022d46"]]),jt={__name:"SourceTabTools",setup(e){const t=M().currentTab,r=P([["editTab","编辑源"],["editDebug","调试源"],["editList","源列表"],["editHelp","帮助信息"]]);return(n,l)=>{const c=Jt,d=Ot,k=Rt,b=nt,U=be,I=_e;return g(),w(I,{modelValue:s(t),"onUpdate:modelValue":l[0]||(l[0]=u=>H(t)?t.value=u:null)},{default:p(()=>[(g(!0),E(O,null,j(s(r),(u,i)=>(g(),w(U,{key:u[0],name:u[0],label:u[1]},{default:p(()=>[i==0?(g(),w(c,{key:0})):N("",!0),i==1?(g(),w(d,{key:1})):N("",!0),i==2?(g(),w(k,{key:2})):N("",!0),i==3?(g(),w(b,{key:3})):N("",!0)]),_:2},1032,["name","label"]))),128))]),_:1},8,["modelValue"])}}},At=$(jt,[["__scopeId","data-v-3e4574c1"]]),Ht={class:"menu flex-column-center"},Kt={class:"hotkeys-header flex-space-between"},Mt=["id"],Wt={key:0},Ft={class:"hotkeys-settings flex-column-center"},qt={class:"title"},zt={class:"hotkeys-item__content"},Gt={key:0},Qt={key:0},Xt={__name:"ToolBar",setup(e){const o=M(),t=()=>{const f=B({message:"加载中……",showClose:!0,duration:0});A.getSources().then(({data:a})=>{a.isSuccess?(o.changeTabName("editList"),o.saveSources(a.data),B({message:`成功拉取${a.data.length}条源`,type:"success"})):B({message:a.errorMsg??"后端错误",type:"error"})}).finally(()=>f.close())},r=()=>{let f=o.sources;if(o.changeTabName("editList"),f.length===0)return B({message:"空空如也",type:"info"});B({message:"正在推送中",type:"info"}),A.saveSources(f).then(({data:a})=>{if(a.isSuccess){let S=a.data;if(Array.isArray(S)){let D="";f.length>S.length&&(D=` -推送失败的源将用红色字体标注!`,o.setPushReturnSources(S)),B({message:`批量推送源到「阅读3.0APP」 -共计: ${f.length} 条 -成功: ${S.length} 条 -失败: ${f.length-S.length} 条${D}`,type:"success"})}}else B({message:`批量推送源失败! -ErrorMsg: ${a.errorMsg}`,type:"error"})})},n=()=>{o.changeTabName("editTab"),o.changeEditTabSource(o.currentSource)},l=()=>{o.changeCurrentSource(o.editTabSource)},c=()=>{o.editHistoryUndo()},d=()=>{o.clearEdit(),B({message:"已清除",type:"success"})},k=()=>{o.clearEdit(),o.clearAllHistory(),B({message:"已清除所有历史记录",type:"success"})},b=()=>{let f=/bookSource/.test(location.href),a=o.currentSource;Ut(a)?A.saveSource(a).then(({data:S})=>{S.isSuccess?(B({message:`源《${f?a.bookSourceName:a.sourceName}》已成功保存到「阅读3.0APP」`,type:"success"}),o.saveCurrentSource()):B({message:`源《${f?a.bookSourceName:a.sourceName}》保存失败! -ErrorMsg: ${S.errorMsg}`,type:"error"})}):B({message:"请检查<必填>项是否全部填写",type:"error"})},U=()=>{o.startDebug()},I=P(Array.of({name:"⇈推送源",hotKeys:[],action:r},{name:"⇊拉取源",hotKeys:[],action:t},{name:"⋙生成源",hotKeys:[],action:n},{name:"⋘编辑源",hotKeys:[],action:l},{name:"✗清空表单",hotKeys:[],action:d},{name:"↶撤销操作",hotKeys:[],action:c},{name:"↷重做操作",hotKeys:[],action:k},{name:"⇏调试源",hotKeys:[],action:U},{name:"✓保存源",hotKeys:[],action:b})),u=P(!0),i=P(!1),_=P(-1),v=()=>{i.value||(u.value=!1),i.value=!1};le(u,f=>{if(!f){F.unbind("*"),z(),W();return}z(),F.unbind(),F("*",a=>{a.preventDefault();let S=F.getPressedKeyString();S.length==1&&S[0]=="esc"||i.value&&_.value>-1&&(I.value[_.value].hotKeys=S)})},{immediate:!0});const x=f=>{i.value=!0,B({message:"按ESC键或者点击空白处结束录入",type:"info"}),I.value[f].hotKeys=[],_.value=f},R=()=>{const f=[];I.value.forEach(({hotKeys:a})=>{f.push(a)}),T(f),u.value=!1},W=()=>{F.filter=()=>!0,I.value.forEach(({hotKeys:f,action:a})=>{f.length!=0&&F(f.join("+"),S=>{S.preventDefault(),a.call(null)})})},T=f=>{localStorage.setItem("legado_web_hotkeys",JSON.stringify(f))};function z(){try{const f=JSON.parse(localStorage.getItem("legado_web_hotkeys"));return!Array.isArray(f)||f.length==0?!1:(I.value.forEach((a,S)=>a.hotKeys=f[S]),!0)}catch{B({message:"快捷键配置错误",type:"error"}),localStorage.removeItem("legado_web_hotkeys")}return!1}return Je(()=>{z()&&(u.value=!1)}),(f,a)=>{const S=se,D=me,Ue=Ae;return g(),E(O,null,[h("div",Ht,[(g(!0),E(O,null,j(s(I),V=>(g(),w(S,{size:"large",key:V.name,onClick:V.action},{default:p(()=>[y(X(V.name),1)]),_:2},1032,["onClick"]))),128)),m(S,{size:"large",onClick:a[0]||(a[0]=()=>u.value=!0)},{default:p(()=>a[2]||(a[2]=[y("快捷键")])),_:1})]),m(Ue,{modelValue:s(u),"onUpdate:modelValue":a[1]||(a[1]=V=>H(u)?u.value=V:null),"show-close":!1,"before-close":v},{header:p(({titleClass:V,titleId:ee})=>[h("div",Kt,[h("div",{id:ee,class:fe(V)},[a[4]||(a[4]=y(" 快捷键设置 ")),s(i)?(g(),E("span",Wt,[m(D,null,{default:p(()=>a[3]||(a[3]=[y(" / 录入中 ")])),_:1})])):N("",!0)],10,Mt),m(S,{disabled:s(i),onClick:R,icon:s(je)},{default:p(()=>a[5]||(a[5]=[y("保存")])),_:1},8,["disabled","icon"])])]),default:p(()=>[h("div",Ft,[(g(!0),E(O,null,j(s(I),(V,ee)=>(g(),E("div",{key:V.name,class:"hotkeys-item flex-space-between"},[h("span",qt,[m(D,null,{default:p(()=>[y(X(V.name),1)]),_:2},1024)]),h("div",zt,[(g(!0),E(O,null,j(V.hotKeys,(te,Be)=>(g(),E("div",{key:te},[h("kbd",null,X(te),1),Be+1a[6]||(a[6]=[y("+")])),_:1})])):N("",!0)]))),128)),V.hotKeys.length==0?(g(),E("span",Qt,"未设置")):N("",!0)]),m(S,{disabled:s(i),text:"",icon:s(he),onClick:te=>x(ee)},{default:p(()=>a[7]||(a[7]=[y("编辑")])),_:2},1032,["disabled","icon","onClick"])]))),128))])]),_:1},8,["modelValue"])],64)}}},Yt=$(Xt,[["__scopeId","data-v-9fd45dad"]]),Zt={__name:"SourceTabForm",props:["config"],setup(e){const t=M().currentSource;return(r,n)=>{const l=Y,c=He,d=Ke,k=Me,b=We,U=Fe,I=qe,u=be,i=_e;return g(),w(i,{id:"source-edit"},{default:p(()=>[(g(!0),E(O,null,j(Object.values(e.config),({name:_,children:v})=>(g(),w(u,{label:_,key:_},{default:p(()=>[m(I,{"label-position":"right","label-width":"auto"},{default:p(()=>[(g(!0),E(O,null,j(v,({type:x,title:R,namespace:W,id:T,array:z,hint:f,required:a})=>(g(),w(U,{label:R,key:R,required:a},{default:p(()=>[x=="String"&&typeof W>"u"?(g(),w(l,{key:0,type:"textarea",modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),x=="String"&&typeof W<"u"?(g(),w(l,{key:1,type:"textarea",modelValue:s(t)[W][T],"onUpdate:modelValue":S=>s(t)[W][T]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),x=="Boolean"?(g(),w(c,{key:2,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),x=="Number"?(g(),w(d,{key:3,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S,min:0},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),x=="Array"?(g(),w(b,{key:4,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S},{default:p(()=>[(g(!0),E(O,null,j(z,(S,D)=>(g(),w(k,{value:D,key:S,label:S},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):N("",!0)]),_:2},1032,["label","required"]))),128))]),_:2},1024)]),_:2},1032,["label"]))),128))]),_:1})}}},eo=$(Zt,[["__scopeId","data-v-ffcf3f30"]]),to={base:{name:"基础",children:[{title:"源类型",id:"bookSourceType",type:"Array",array:["文本","音频","图片","文件"],required:!0},{title:"源域名",id:"bookSourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"源名称",id:"bookSourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"bookSourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"bookSourceComment",type:"String",hint:"描述源作者和状态"},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"链接验证",id:"bookUrlPattern",type:"String",hint:"书籍URL正则,当详情页URL与源URL的域名不一致时有效,用于添加网址"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"书源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率,如1000(访问间隔1000ms)或者1/1000(1000ms内访问1次)"},{title:"js库",id:"jsLib",type:"String",hint:"js库, 可填写js或者key-value object获取在线js文件"}]},search:{name:"搜索",children:[{title:"搜索地址",id:"searchUrl",type:"String",hint:"[域名可省略]/search.php@kw={{key}}"},{title:"校验文字",namespace:"ruleSearch",id:"checkKeyWord",type:"String",hint:"校验关键字,强烈建议填写"},{title:"列表规则",namespace:"ruleSearch",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleSearch",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleSearch",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleSearch",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleSearch",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleSearch",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleSearch",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleSearch",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleSearch",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},find:{name:"发现",children:[{title:"发现地址",id:"exploreUrl",type:"String",hint:"单个发现格式::或者{url:,title:,style:...};前者用换行符或者&&连接,后者放在数组内;可用js动态生成"},{title:"列表规则",namespace:"ruleExplore",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleExplore",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleExplore",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleExplore",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleExplore",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleExplore",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleExplore",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleExplore",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleExplore",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},detail:{name:"详情",children:[{title:"预处理",namespace:"ruleBookInfo",id:"init",type:"String",hint:"用于加速详情信息检索,只支持AllInOne规则"},{title:"书名规则",namespace:"ruleBookInfo",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleBookInfo",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleBookInfo",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleBookInfo",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleBookInfo",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleBookInfo",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleBookInfo",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"目录地址",namespace:"ruleBookInfo",id:"tocUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url, 与详情页相同时可省略)"},{title:"修改书籍",namespace:"ruleBookInfo",id:"canReName",type:"String",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"},{title:"下载URL",namespace:"ruleBookInfo",id:"downloadUrls",type:"String",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"}]},directory:{name:"目录",children:[{title:"更新前JS",namespace:"ruleToc",id:"preUpdateJs",type:"String",hint:"更新目录前调用JS 动态更新目录链接"},{title:"列表规则",namespace:"ruleToc",id:"chapterList",type:"String",hint:"选择目录列表的章节节点 (规则结果为List)"},{title:"章节名称",namespace:"ruleToc",id:"chapterName",type:"String",hint:"选择章节名称 (规则结果为String)"},{title:"章节地址",namespace:"ruleToc",id:"chapterUrl",type:"String",hint:"选择章节链接 (规则结果为String类型的Url)"},{title:"标题处理",namespace:"ruleToc",id:"formatJs",type:"String",hint:"遍历去重后的章节列表的回调,提供index(章节序号从1开始)、title(章节标题)变量,额外提供gInt(初始值0),返回值作为新的标题"},{title:"卷名标识",namespace:"ruleToc",id:"isVolume",type:"String",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"章节信息",namespace:"ruleToc",id:"updateTime",type:"String",hint:"选择章节信息(如更新时间) (规则结果为String)"},{title:"收费标识",namespace:"ruleToc",id:"isVip",type:"String",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",namespace:"ruleToc",id:"isPay",type:"String",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"翻页规则",namespace:"ruleToc",id:"nextTocUrl",type:"String",hint:"选择目录下一页链接 (规则结果为List或String)"}]},content:{name:"正文",children:[{title:"正文规则",namespace:"ruleContent",id:"content",type:"String",hint:"选择正文内容 (规则结果为String)"},{title:"标题规则",namespace:"ruleContent",id:"title",type:"String",hint:"获取结果将会覆盖章节标题 (规则结果为String)"},{title:"翻页规则",namespace:"ruleContent",id:"nextContentUrl",type:"String",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{title:"脚本注入",namespace:"ruleContent",id:"webJs",type:"String",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"资源正则",namespace:"ruleContent",id:"sourceRegex",type:"String",hint:"匹配资源的url特征,用于嗅探"},{title:"替换规则",namespace:"ruleContent",id:"replaceRegex",type:"String",hint:"多页内容合并后替换,用于正文净化"},{title:"图片样式",namespace:"ruleContent",id:"imageStyle",type:"String",hint:"FULL:铺满 不填:默认样式"},{title:"图片解密",namespace:"ruleContent",id:"imageDecode",type:"String",hint:"填写JavaScript 返回解密图片的bytes "},{title:"购买操作",namespace:"ruleContent",id:"payAction",type:"String",hint:"填写JavaScript 返回购买链接或者调用购买接口"}]},other:{name:"其他",children:[{title:"启用搜索",id:"enabled",type:"Boolean"},{title:"启用发现",id:"enabledExplore",type:"Boolean"},{title:"CookieJar",id:"enabledCookieJar",type:"Boolean"},{title:"搜索权重",id:"weight",type:"Number"},{title:"排序编号",id:"customOrder",type:"Number"}]}},oo={base:{name:"基础",children:[{title:"源域名",id:"sourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"图标",id:"sourceIcon",type:"String",hint:"填写图片网络链接"},{title:"源名称",id:"sourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"sourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"sourceComment",type:"String",hint:"描述源作者和状态"},{title:"分类地址",id:"sortUrl",type:"String",hint:`名称1::链接1 -名称2::链接2`},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率"}]},list:{name:"列表",children:[{title:"列表规则",id:"ruleArticles",type:"String",hint:"规则结果为List"},{title:"翻页规则",id:"ruleNextPage",type:"String",hint:"下一页链接 规则结果为List或String"},{title:"标题规则",id:"ruleTitle",type:"String",hint:"文章标题 规则结果为String"},{title:"时间规则",id:"rulePubDate",type:"String",hint:"文章发布时间 规则结果为String"},{title:"描述规则",id:"ruleDescription",type:"String",hint:"文章简要描述 规则结果为String"},{title:"图片规则",id:"ruleImage",type:"String",hint:"文章图片链接 规则结果为String"},{title:"链接规则",id:"ruleLink",type:"String",hint:"文章链接 规则结果为String"}]},webView:{name:"WebView",children:[{title:"内容规则",id:"ruleContent",type:"String",hint:"文章正文"},{title:"样式规则",id:"style",type:"String",hint:"文章正文样式 填写css"},{title:"注入规则",id:"injectJs",type:"String",hint:"注入网页的JavaScript"},{title:"黑名单",id:"contentBlacklist",type:"String",hint:"webView链接加载黑名单,英文逗号隔开"},{title:"白名单",id:"contentWhitelist",type:"String",hint:"webView链接加载白名单,英文逗号隔开"},{title:"链接拦截",id:"shouldOverrideUrlLoading",type:"String",hint:"填写js,变量url为当前资源链接,返回true拦截"}]},other:{name:"其他",children:[{title:"列表样式",id:"articleStyle",type:"Array",array:["默认","大图","双列"]},{title:"加载地址",id:"loadWithBaseUrl",type:"Boolean"},{title:"启用JS",id:"enableJs",type:"Boolean"},{title:"启用",id:"enabled",type:"Boolean"},{title:"Cookie",id:"enabledCookieJar",type:"Boolean"},{title:"单URL",id:"singleUrl",type:"Boolean"},{title:"排序编号",id:"customOrder",type:"Number"}]}},no={class:"editor"},ro={__name:"SourceEditor",setup(e){ze();let o;return/bookSource/i.test(location.href)?(o=to,document.title="书源管理"):(o=oo,document.title="订阅源管理"),(t,r)=>{const n=eo,l=Yt,c=At;return g(),E("div",no,[m(n,{class:"left",config:s(o)},null,8,["config"]),m(l),m(c,{class:"right"})])}}},ge=$(ro,[["__scopeId","data-v-9682883a"]]),we=[{path:"/bookSource",name:"book-home",component:ge},{path:"/rssSource",name:"rss-home",component:ge}];ne({history:re(),routes:we});const Ce=ne({history:re(),routes:ke.concat(we)});Ce.afterEach(e=>{e.name=="shelf"&&(document.title="书架")});Ge(Ye).use($t).use(Ce).mount("#app");le(()=>Pt().isNight,e=>{e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")});export{A,$ as _,Pt as u}; diff --git a/app/src/main/assets/web/vue/index.html b/app/src/main/assets/web/vue/index.html index 30dcaf88e..dfc2f6210 100644 --- a/app/src/main/assets/web/vue/index.html +++ b/app/src/main/assets/web/vue/index.html @@ -4,10 +4,10 @@ - + - +