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