diff --git a/app/src/main/assets/web/vue/assets/BookChapter-DtmKdqmP.js b/app/src/main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js similarity index 98% rename from app/src/main/assets/web/vue/assets/BookChapter-DtmKdqmP.js rename to app/src/main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js index 96012b3b2..36e385bd3 100644 --- a/app/src/main/assets/web/vue/assets/BookChapter-DtmKdqmP.js +++ b/app/src/main/assets/web/vue/assets/BookChapter-Pt7OGRfg.js @@ -1 +1 @@ -import{a0 as Ne,m as l,v as U,Q as Ee,a5 as Ue,o as p,d as v,g as t,t as H,F as ee,M as re,u as a,a6 as Z,a7 as xe,H as De,p as x,e as J,w as W,a8 as Oe,x as pe,a9 as He,f as G,J as ue,a4 as We,j as F,aa as Je,q as Te,ab as Qe,ac as Ve,ad as qe,V as Ge,a3 as Ze,ae as Ye,L as we,af as je,c as Xe}from"./vendor-Blq-ceJ6.js";import{i as _e,u as $e}from"./loading-F0lQefyD.js";import{_ as Ae,A as Y,u as le}from"./index-DmLQnM_t.js";const et=(A,n,c,f)=>(A/=f/2,A<1?c/2*A*A+n:(A--,-c/2*(A*(A-2)-1)+n)),tt=()=>{let A,n,c,f,s,S,y,w,k,D,K,u,E;function d(){let B=A.scrollTop||A.scrollY||A.pageYOffset;return B=typeof B>"u"?0:B,B}function m(B){const b=B.getBoundingClientRect().top,te=A.getBoundingClientRect?A.getBoundingClientRect().top:0;return b-te+c}function r(B){A.scrollTo?A.scrollTo(0,B):A.scrollTop=B}function I(B){D||(D=B),K=B-D,u=S(K,c,w,k),r(u),K({"3cc208fd":f.spacing.letter,"16b4de8b":f.spacing.line,c0f3bd92:f.spacing.paragraph}));const f=A,s=d=>{const m=/]*src="([^"]*(?:"[^>]+\})?)"[^>]*>/,r=d.match(m)[1];return _e(r)?Y.getProxyImageUrl(r,le().config.readWidth):r},S=d=>{d.target.src=Y.getProxyImageUrl(d.target.src,le().config.readWidth)},y=d=>{const m=/]*src="[^"]*(?:"[^>]+\})?"[^>]*>/g;return d.replaceAll(m," ").length},w=l(()=>{let d=-1;return Array.from(f.contents,m=>(d+=y(m)+1,d))}),k=U(),D=U();n({scrollToReadedLength:d=>{if(d===0)return;let m=w.value.findIndex(r=>r>=d);m!==-1&&xe(()=>{_(D.value[m],{duration:0})})}});let u=null;const E=c;return Ee(()=>{u=new IntersectionObserver(d=>{for(let{target:m,isIntersecting:r}of d)r&&E("readedLengthChange",f.chapterIndex,parseInt(m.dataset.chapterpos))},{rootMargin:`0px 0px -${window.innerHeight-24}px 0px`}),u.observe(k.value),D.value.forEach(d=>{u.observe(d)})}),Ue(()=>{u==null||u.disconnect(),u=null}),(d,m)=>(p(),v(ee,null,[t("div",{class:"title","data-chapterpos":"0",ref_key:"titleRef",ref:k},H(A.title),513),(p(!0),v(ee,null,re(A.contents,(r,I)=>(p(),v("div",{key:I,ref_for:!0,ref_key:"paragraphRef",ref:D,"data-chapterpos":a(w)[I]},[/^\s*]*src[^>]+>$/.test(r)?(p(),v("img",{key:0,class:"full",src:s(r),onErrorOnce:S,loading:"lazy"},null,40,nt)):(p(),v("p",{key:1,style:Z({fontFamily:A.fontFamily,fontSize:A.fontSize}),innerHTML:r},null,12,st))],8,ot))),128))],64))}},it=Ae(at,[["__scopeId","data-v-26df22f8"]]),rt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXr5djn4dTp49bt59rT6LKxAAACnElEQVQozw3NUUwScRzA8d8R6MF8YMIx8uk47hDSJbj14IPzOGc7jPLvwTGg5uAYDbe2tt56cLtznvEnS6yDqCcEaWi91DvrbLJZz7b1aFtz1aO+2OZWvn+/+4CHeB6BMYaqBLfjPNRY6RFT2JJYby+uAk4WUTrtlmJ4hgPYb2q1XGDQjaK8pgJHvqNaAX+KyuIkDXpgQinb46nOulnn4b5laUHTxLfseeArAoNOeJlOIjdoal0n1FA7tKFv5roK+YaHOqP3P0XyKHPHY+MhTRe5uCZnKhtJKw2eSrSoBDPLtpZuNcFNJcFyiCMxOaaHIfXz1e8HQbWLySrBQ4x0x1qlhnHlnz2HQEC6TNb0gTHXa7IKhcaHqkE015hk9whA0YeWiLIXf7Fa2CZo3DjqjB4tTuF8jIcbfcEx5z/w4sXpQhXW+ju0cqh7icTFmRMaG+v6CIvTjcSpHcH8JEsF3EPh3fRthYdVLLgI2fWXm85/pGFE4l046s70L+yKCcirGFR+jbpy3kMmiCGHrSezVONsn1RBixncyk2PcVWk7DlgxHo8iZwDyq5uAUD854dZhdIFYzKoQig2haUKi1lVufz2RZUZPZ41n/hrOQB6h0Hhg8I367FNoEHgeM/KY7szSeQwD8q2WE3HM35ZLl0K1MJiOtHIkBclRQUwZnyOWcNsRQQgVLj1PSqkjF9DsoOSaSg3iinKzvfmgsNFFfpP/2T3GLGvL4fHEfwIX1sVvXcPqLztehWGcfn9nI2U9nTfCgJPe/jFPLZwgVEzimBgAm0VIyK2tt1cE/AzQdLK+SxLSQ4aDCZnnId94OG2S1XwvnTbNk/ZnhyRCQT+sZM6z9g6LXL1BOBe+zJySiFkHAINCtnQokbCJ/apCv0foqPiZVfhpywAAAAASUVORK5CYII=",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",At="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEX6+fP8+/X+/ff///kbczPAAAACeElEQVQozxXHQUgUUQAG4P8936yzs6VvZNZmN9QxVxiF9OLBoOjtOC6rQq6ygXjI2fCQBdXBg4egtzFGdqkoI+zgBFbqkm3hQSxhFYLotOcubeKhOnVYoqQy+m4f5g5TvpX0xHLbLY9j8SMhJp+Jk4LfAUS2kVRIjILmnwGBTX42PhCVlDJQkIiy2nWAvaJ1h+oFIpJ0hMSYVbyyrgDWshcMpMyL1brPDQKWmduO+KTJ6XeXAMK9Yc3FpD7atyNwg6kt5XgFpLPhjUTFSYVn2abDiugGShwD8JTVRJVo/2ecuKtRb/qc4BK+9TboFfokog4T2Fn6Oqdnsjk90NMS76Rji6E0NmwkPBAZ4Xbkw8KoDAkAbEhkc78e9omxxgxg6qa5HvMv+UZbCV0qmHnSHKl5TxeA2XTCGWekR581mwC5crBH81PznASqB9va3TbkYAjJPLfg5uBfXaJgIgIBv9eessRIhxe7PA7kj6uUMeMaQ/OEQOYRaaHlqH2Gxwsl6E/pwVY5FH7uCypBZPKvDQyVziYBrAkMURe2MOOOxG/eQpp5PF+bFzUV5HtPj9GeiVSNZDELleifYTp9NAjsoiXg4cW+4ZORkdSMB/B74aAdjhsVakhgkugsbmqcDSLEoWp8zRjrux3tli6Q5uM3E+maT99Wy0RiP7tboiuRZle2c6CYeL2kcUc1KvPtQKucogMadKVTQOJYCeyCYlhQQ/Q7Etfd/vBygy9iqy+LyHeF46saCYvW6ingsbA9RBWtdi8GgUXW+oQx9/wP6bAAX1TWeV+CbShZDlQ9xT6SoSxZmKRAkmXb60kzEzkRF+Ccb94BGspGJoN/UzmyR4wjXHAAAAAASUVORK5CYII=",ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAATlBMVEXdzaHh0KPgz6LdzKDezqLczJ7ezZ/fz6Dcy5zi0aXdzZ3fz6Tfz57h0KDg0aLcyZrg0KXi0qPfzZ3j06bh0qbdyJbfzJrhz5/cxpLZwo0vDconAAAFn0lEQVRIxxyPW5LjMAwDAT5FybLl2JnM3P+i6+wXWVC1GoQGaD0h4XM3Q5o4T0HgABHBi6pZ4CDXXcUOFd6VhqC3Kch4EI8w9oMXwvU6m5LOOvcxKMOhuu8i5+5cMjcgb0t4F2uvOoeI3/MlT4IqsbtM9UG2AGSXUOsxzPevnXzK1CSHytZLvx7VdQmUcJsJCxJh2nmHW12Qod1qPjt8pih47uQ9aGpoNWF+yElCt60oH7vdIU/MnlRPSBLC/VwqxcKR8PFqnADN9ih5ufqnTlG9KwCofvs7kKYqOPHTNMQ93j9qNImFw9vjHPZ0F1m8hUUVB/Q/TrRYDMXr9++APMFARAt6sPh6wVAXzxUGhZsFUwCNfPZ8/72TAHebAhvuOuT3gO1Vn5d9Jd5sBRkg0p2seL9B7ulkjFJFIt9HPpLzdSzzMP3UcodAfMqC6pBuET2heHK1itZf1GZ1bi0BwOSxiCS8f/JBHMPMM4XCu3Mt1uz9lJbDJRqsKDZuikzkvskQEz6hanfDfO494azY5JpqPqOF1RhxD9XYEdaNxiqWqakKgmPfmrsta8KAiwF4HBxGVUJAgeSqQaiRRZJ7D2jedhw5t1CIAKxag0CBA60BpoBE6DcUi8O5AuM4pLfN0kHLmeu2B4e6HofqbgxsTWUw3PAODqa1oDtyzgXBlusi1KFdclMPE8O3jvLJ8RNi5/RxDQVzVmXA233XQ4KummunfxvLOZo+iH37964YjP06995CTdu9hsvErqJNzmf4wTrZ5DL7+qW9EoLnadrx67b8dUtrJnBXaT1N1uvPaYRKpWkq52xNsMN7vv4Sdryt/f4MhQoMCKnvVxikai1CQ6ZsnwJDc8+3Y/z8HcfvYQNq66pnAu1Hwa+3KNSwbNu8h3nDPqTl9fl7tx8fBhFfdS0o0F3JUKEZtZG9b/LZEM95lzaR30OnWPzroMxyZYdBIMoMnpN0J+m7/40+/P4soFSUjgzE7yY5zrMJuoZv0CmpVguYx1pprfb5HOviRVhHUVi/352shxCYrYBZxGtVaxiAz/MsaGSIsB7R1t4zJXH//n7RTTQQwxqcGEqEvklFHUgiO2GvJV+jAIPR+N29usWDoiSOVrN3XuqT1egQJAAU9EwslVJC8u0rGcy+WPqktJhjfMpatIG6CDAb0v5H34MGKqiVRue7GGLZ9Otxtt4JIrAhxBDwDuqI9JavcO0A7GlqFt219tH/bln9jBXzaKWAEqJV0CBxs5TwM8EvUPHaa8S86vN303MVWOsl3goDBHPWSoQ9c0kQmCKljfsKNH1+ofEOHW8a9a7glZGS8fPieL/SRSs0LAhI4FDTnXs1QYtubv2+IXPZpHB4bhivRexBkYKsSrYXNjvMUbVXpVJ+N6haV72c1k2zrnv5IYBMJBYTSZx0KTkoM3vY93rU/qs7zHplc/3d2ACadhFWByrn9LUk2IWb5JywvawTQc3F0iz+lgsBmInAIemBJtft2plKIlAFOgcroigrG2XlDsAzywQECNyaI8yr2ogoh7D4qJOYmZBzQgoZAM1PAcB8sDrr1uE5CDMR+nWSSVUGUCHAs8Vd21HOE0FzNj37pX0sLp9p3K8k++xxpkmzDxK64rmTSJnDUuIgTeslui6lg92jonZXI4jqNiUuzN4IagcKMjCniMGCODoo8T4tGDprn2hRww+NrnYiCwokd9iiWrkmbRfXYGLAoZrjO1lVQKExjUy5fIkgJURmz2uGFdASwwlWx5gDVTMK7hP6ISRVsFbYNmqtZL9MQtio285PaekyzDhZmtdexCYB0SZcTmBdhvdbmAEonk8hwcHQuZN1kVqrhyKoHHsnQhQAjF7SG533Da2S4LGjx1LoZqp7XeKQLDUBmYmydG0NQHpMeR5lRIRQc1PQ2ASMQflF4YBDMt0/GFlEHeRwCcEAAAAASUVORK5CYII=",dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAALVBMVEXx58b168ny6Mjz6sn06sf27Mvw5sTz6cbw5cLy58T37svv47/168v37s7t4Ltrv0//AAAEjUlEQVQ4yw2Ty2sTURxGf3dmOqmPxb0zmaStCnfmZpL6gpmbxIpUSMZGrSJkxsZiVZimNVaqMklrUnWTRq2KIDFWWx+IFrIRFxXEB4KIgqu6EBdu7M6FIPg32PW3+DhwDmBaYrK56KP4HGIsvg/uvOV0wK+qgBMlO9BujuH4DSJlOseqV5a/BEF97gt0ChyIPqBhXI9BtqtIB8vJB/LdCQ3OVjaLNX0g7+OmoI4e7nkemAqX6o8vg0yyQAyQS7IfgvFbI+6QyI3R4KELxw7kwM2ooQfyQigYnwY5MZbMlHI1DvnQVCoVcrt+R+bO7vPDif3ybNajwqAAe443dpfDsPt379VMWZzGRuqM79mQF+DUz9nt74bQ8J/O80MtVR51U02JKKmTCvTzLVf+vuxP/aHnPo9+2bW+zVsJ0Y630/CrfzX+b+UL+7O68Rczv+7lrMh5etfKXvhc2rk6KforxuoO2xB2tcxKfeXHt18rHOiHI/0RRjW/YGRDkHiwo3nzqL60o58C/bgRuaj7vk+QOwOhpnFNdjuWpKMCGP8Yapu9Ty5FTHKQLGSEFikjd9ADwP9ciaNNjc5qMH6w50AF/LKOsOYqsOG9GjKgc7ZXolqntm6fysJ6Ma6ll2CiqmOgE6O7x1wXExklbeqMYcwsmJmOoigt8SBg2WfilDSsAZJcBxDcrqtBXzFQJqZNHfscyIhoZlygAtyYAceah+elrFbI+46gEHDGiW878Kj7JpWyfhg6iyRMymV1MKBSeVpfgLHIohyTojI6sRyK1VpcqzVZeEBLOnA9unhGKUXPJDYtV9Dxuz4iA5xSkSWhCJdAiJR9PHlvfvbntbrR14FDqUNRAYDJmSnv3oKxuz5+7fiblgVJyYLTbgUM05P7LESkoXvyWNfb0aUU6FZizgQIa25VqKQZqFrk6v6BsqqIHlQmkQ9KrBhkC20/DrFsAFEEYLjM+lj2wYHXCwnNvZQR42XJ2iVK+UBXnI+OBE6oXpUUHiQ1yg0MhA03iwGbnOdQYc1CMiPIPQrCQJFH4L4BMFktAtKd9PN5gnU2Gra4KuK+V+mjtBRpAGIqDVe4wnSnajiFGO5d7smvhVQEMEYwqshrENIEaY7YeblJYtsb3QhAHWZCEKK67swwPMKw0If1Ta+6DgHmlgPzcUTSbi3rrv1Y64/BYEMPQ5SDHUOR022B4QRF6xLUPAaPX/V4IDI5N2BMwx4LqO1uO4j6uW7NvM7lATqGAxY/ZHVgoGZbu7SvkNR75x6qGSB23FdouENVwN7sCbewTdsXGrrnQ5ZZKOCOFtMTIzxlPu6eYmtL+nMFmoK7OeXajn86r9sqWbfmvHC4IagE5qfCPGZvLSq5F55hHIxJFa4/vRxHBlz0og4TojU1l/MOHJX17lybdF0mQhFO44JYUNt3UA473IXw/iPfDWtKG5oFSXIF5iU/VnyDSjxxeDk3jAXRyVyGTNB9FxH9qcFDNJpVbt2y9LytUXkK7Py6+z1RezHQqnoY8XcLimmd8dCnBhQCuaGpJCq3SoIlmYvLz8UkWhJw7T8k+Db/DYEKwgAAAABJRU5ErkJggg==",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",pt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7eHl8eXj7+Pn8+eTbH1KAAACPElEQVQozxWPQWrbQABF/0xn3JFKQRTZOIuUsbCCbOgdRoYEOauxkYPcTRyTlPQWIxEltrsRwQ6hK9nEQek6F+gNTE/Q3qLLusv34cN7SH3mFicdYW4gNIhJWXPBRVXzjcFD0IqeU4o4PRbAIVjyico0vJpIifqPfL80QN9DAQY5ucRHE/hpHxBldXe9GilaHKcKMlj6pho2zXgkNdBl0oJ8kiF1DSiJF1ZHBJkQr0Dbux/5I42Zp4cFahJDFGeW6/QjBwmFY/Q7vZ2SnoOdW2parv/Cnm81+m0xrEfiVXQ3W4nOXIqVYi3l6AAQBwMFkViVBANMto4enXHPNTkHBB0oVj4r5vHzCWayrgBvxtygDlDB2CNDjd80ZInY69aKVYZcfJ8DW+fWuc+syEODALx+ojqoafHsthTI+ZW27PGpIeo/cR6YKcbqIuIFhHmBrzAovzIOOJk1ucvcDzrMRYGVBH2yvcAOf0KiKwfRovBI3tm/kW1eemtfNWwIIXE2mJNhvoszfmMBfRCv0OPwd2321uDW3nx2q/BDxFVeoN1g7a6Im8yRnoawa8kbdXnU0cHeTMxKfZGlJgvLb3sKsxgglQnDdAfvj9LUnqWRDo0GiUmPwyU7TAsD7wHeIW3Nfy1qVGKoE9NgJCdYCAexNRob9yCn4DAQmXtQuUtera6bEmTTXhZy6h856xi4mnEl6BI9mfISkLbtJyZIMJIAUd5ZOBEu88KRAk71yxfItj/hpIB0Errv4gO1os4/UICf+o3kkqwAAAAASUVORK5CYII=",ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX0/PTx+fH2/vbz+/P4//htSO9OAAAC5UlEQVQ4yyWT0QGjMAxDZTsDWKQDmJQBYrgBUsr+M517x0+LRWw9CyA+pC1YzndrMgHaNXVKQ+di13Of1qbur48nWhuRjj8i6ON8e7pNm7zyag/DBTfS9Z4Hup1fUuXMKY4HEE8QOHCByXkIkl7lDT239RtL9quO4JItmmhOAHXg45QuYKrQFLyGJcRvaTw6kQqZy6mkR6JAPFH/XqsQjEDRmUOA+MNLHGyMUT7AHApoAhjgjIJmCxy6XHdf648AWCdGe57IUDazCeTImQOY4/z+eVYVX2IjOw9RydeAeJwl79iGi4HpgQgHEchWraUZLtayu8scq0lHHHUKMY3Ml8hB7CS1jOckDLG9ccgNeX3124phOcjL9fPnWJhTXpLHeG9DRmHnTxHEaHakS2J51lwAJcUraNbuU7q4gMTDQj3Eripc/x+qFM5VEKAB1roQfAkX5/PxqnS2QpOrxfK1Zft0/omV5T+xCSBUAIbEIwUQgvAfxFE1O8dnk233+1UZiqJ1mAbsue6Yt8tF+yOrxC/YrUhzC4qPlE3EbR5hGKhhHdlrg7J9WunV7L7BcYQwAeE59u2tnN1c6gfVYrQiLSZ9OxZdWDXQq0+r0Pbarh3UqGCwauVvbiXuDsNxCtLDdW9rTF8oQYN4EoXXdfmwNguQP26n/tRjDeo+F2W7PjWtfSr6Bn/z+cXOLp4NnMV4RytvSW4B68m+XN9XfZTFGhO/S+cHTuTqZDC21ccA0N7QsePALaDQC3D1f94U9CWo+aq6BjB3v0rxIimBM12296M3aKPHjXLQE9KQKH4By8RHraJ3AgVto2r4xdFqlaPaiAHLl1ZF4P2pI6cYc+K8UZdcmxy7lqGc1IoPxLmIFuIeEZ6j2sQT88muEg1zwrEDTIX5U/ZmcsqfgVlBumiBLF4sAyhf9BFlXOPKLZ4H0iFb3VoHrGhtHTldKrOvP2/reu2zfV8CXMPqzRdlgd0a5eI7WwB/AYcgavcqxXWEAAAAAElFTkSuQmCC",mt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXM2t7O3ODQ3uLR4OTDp25yAAACdUlEQVQozw3P70sTcQDH8c/3/M7NG+j35mnHwjwh4hRy/QFK3zvPNbeIG1koPZmxfj2IDAwihL53zj0JYisfmEHcZJZOiBUG60lZiI8T/ANusuftgQ+kCPIPeMP7hS5mUrV9c1g6MQCAEZ8tDLHwofImAGRlX+SZK3Vu9rRRPuO4PK6/9nA4GIATsxlODS+rdCMhkAZivpYV0LWoQHSLSA4NfUg+6mY+7BKL2++F9LvnrBDYm6JO9i/YO3i/HJTGQ4pdIV82TbEDFG6vGYCd4wZchgK5J2CrKTLE+Tx0v+YGlIbdWJFcQl4ptBN8fUJQN1MCJLcZLYwUVVo+famGGty8EXJF5ofOEDzcodT3/Fb0I5sHmc1ZG7CcSl8COgxlXx09jT05OafjCZLIHJhGIaU6wDZHsuMQ41wbdjmQXbhKnMq1zlXSYrjCnyZblqexA7fC8RxS74tq2P3OxSQwTuJSApH8OZLzBBp1pOe0i3rdyDUA47GySZ31YmC4EQYSXvFSvieORGBxXF9aeVtUWKGS9WMC4Z9Y2uXnJ2nCUXVMbPOYqNYNmGWWQ7Evr+BWC+a0JAMTImcq/S4Z5INdQMeuOqDIMa9beilxfA60iC6sP1INcPDpmHBW8drZHNmqwyddJtVje9q8WGUgWAOzmbU4FCQBFi8B2Wk6pickBnYhJMenmJGuRmtt2IoKq9NuFGbNFR99sHnvrnLsLysKANDIsxbp6RNMAsoDSKuRpMwZbAAzI68QatIjmZ0aImyM3O8/4e2MNlOHZomFsa/fLDsysliHS+nlYLQJMnynxrH8QO4PaAV2Li8B/+52UgeGIVNFYf8B1XG/kFSmLcUAAAAASUVORK5CYII=",vt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7vLf7PDj8PTm8/ecW+lZAAACZElEQVQozw2RsU8TUQCHfz3fw7MS87jeI7DdmSMpDEoHE+P0HqGkvRR8vb5XC4NpN2RQZqcK9xJkwtriekcggerC4OZADDiT+A+goxv/gfwB3zd8H/T6vYF/pTZkCSmDNd3CBEtmZJP4N+CvvhecDvmntKsvwB17rpbIRTLOEoYkj9KZzRUuJsuBQFwgptyJ3Y7EL4V+ud5LO1UnMeQSSObqisiISZkbQBlliP3qWSk3GPQXjxv6VF2BTDO4ySx1zhuJXbA2wBNJF4t5vH9keg6wu5NvUpLtXrZ3OHC9ZsgVcZdOl38PM1y/L6m8GRiErj4AqezUjHGatGGIgs5NJDHh8Ua1IuB4035haVT6SaYWMoQ0eJ3rB/Gpnr3fB49YAy1Wa21YKqAHOmAveVw6CCMGMZh5bGtVI7jnZaiQNbta1Z+285oSoKoRbta1KZ/1bBdKH/RIxv2pRVpkoCmvpr097RWoo0CpMlTWllIenSjECU8mV43mHx2fIRfH/pncrJm3+58BWdbSqCS07/yiQnvHiCG4ZPGRFeAtfreoOubyctzHvLNHhjNvIhukxQzjU5O6QdOEzUp1Ef4d98Pxz+IPYX0bcpnT52dbedfz8y7C4R89RV+MjJkuCCx7mWDt4eyK/62lQB55xXGJK7p8u6bgRv4hVHylelYGGFs64W94tng8sAIVqSRJBpqRA9rFvAysS+9ak8s7557pz5HR4qhCRmWgplpTRJ+bhYfSAMO8/YBucWPuSdmFFtOnuWqvV2NbF6CJnbhNDzEZ/T0XSDrUydzkZCG1z/oIEyUFYxW/KPXNfwopuHDcO04UAAAAAElFTkSuQmCC",kt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",Bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",yt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",Ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEXm5ubo6Ojp6enr6+vt7e1FnZagAAACrklEQVQ4yx1SixUbMQgT3AKAFwDcAfzpBN1/qMrJS5w7bCQhC6IGSUGYQJd6Ox9ZPXi1AGJBavhUTT0JjYPGAab9WcDYIxsmlnxkayX8mhxCmKHA75az5cfRbWybEExiu08xDSgGym0mwuf3j4SvHeQxDJJzh2zp4iOlrD8iOb4SXyC1wiOLRTcnrje+nGamFeXVKWkmzbFIPChkmJ6Fg7mBpV8n+JGOVCd4jv1thThkjeQGNeafpeV3rsEWLfyWc8tC9jOv6FQ8rRzHOOVB+jCYEUAJpDvh8xHNFm/Tm5p5lw94Pp3NhtKEfQsGvnXhowdZE73hPwxKvjDd4i4PCdd0fe3W5fO8ktAsUAacLgstpUw60JCiPLg2XpkgiqPIYYXJd9ksGIT3q+LlevypzItvO+s0F1dBzVr2QDMUkYmuyGcrIS44mVJ7JVKwQXjYuBYp0Uetecbswzsikzu3gUR8bJC/C8Gd/NAzI/xdUGOYQQHDZ8X2d5XuzGRUiXAi9si5CRgoiToRZPtzLJkd0FUHRHZwJf0BHT1sE7gcnh0jmKKlSSF4/GBirGk5+K9NKlGDCfc9JtPhg78JdabH0YQRKNZnJ8tFnPfXHJb4xum1TTCeEmyEdbyEJLjznMLHuFD2Y9NEkSleIBs7SiCbblhgctVi9ch++kDYnn1C9DA5TvdPsToXM55wI6k+8eKT1blwPTqWb5CFJ+7dTBmab+KHy+xwNtItXhZNSpHD2fxnynrxG3ZBKRe8KBpXk11AnadlccEhr9w1nBBvBylNkv7A8eqpGBCDqhitmWQXBjjdS6idr/QjXWLDeMzMbVDoJuM8zN7WenMZWXgZ2vX3F01J3jHZbwk1LRP+DWEvDJtOUoh/AIaBUz5VpWyhuyx4QtgL/NmgC6kM/JvNe+R/C/5aL7BKIbYAAAAASUVORK5CYII=",ht="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAElBMVEUQERMODxESFBYWGBkaHB0eICLm6ozJAAACkUlEQVQ4yyWTUdLbMAiEASfvoOkBkBy/O5keIE0v8E/uf5h+68qZWALELgu2MG9PP9qyvCzTVhrrsPGOCjvTfXQZvtp/W3Gy6LCITqs4q/DZ+KYl76zKzHVYpY2wNY27nqN1sbLGcrLH3/ENH4oWlGctsDu8AO+HzTLlsYdh8MzP1m6YDMz0ACfcimvakBj+mwO/+5Uta5teOD379sxK1fUxmUhv8MU3jUT5gs26PMephFznkLcpQZ6/dPL9C/GWHcCxDN6oZhD5xBm5qoYBPA+PFE/H1tXDWcWl8TW7rS+4dUzAVy0BIrvC4/HcqW2TkG1HO8q9dC23INAg7NA4AFRFkDTM2lfELPyFzi1VddcpX2z0KjHBUDmdLNJ6dDps4ytrX+FPsZwE31wSL+6OWfHOAJ3+Y0Rk/MiKfmWNPg7oVP/U3Ck9FoCkC2gBpALOiqbMNTkOe8P4FWkTD2Y9Q3+5VmV0uLUJBl68U5uAK2Kl6QDXvLxbwweOL2sixW78uU8p0ysfc7cWrF1j6B1sPJ4WgclYSnJN1bzozrhEcFHmRzBkbJWqqdG+EYJXRFmT5jnLXPUNF6WBdoFbTxYsmDXVLU/WA7MExNc93sJS5hIXDeLxzMScHzdhKvEkibr6cQXYPrmtmTA7JcInISrTzRDvShTdka0uVGrsJAAR6tSn1sKziZtfKVjAxPrJsYgZO0bye+vKTZ/DgoAoLGNO6jYHimZYTL/3pLJHawquJukjBpfz8WOGVSVIWx9ywUfS5iENutidRM4NzkAmxgUSQ68xgNOU+ZLalr4TS2V+D2xqukZig+Z9DilR7Nouzwp1cp/3E5q6Rdlf08obKvAM4qZ6pMr+w3PmQALSSBfjyZn5DwrNRVbywBQiAAAAAElFTkSuQmCC",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==";var $={themes:[{body:"#ede7da url("+rt+") repeat",content:"#ede7da url("+lt+") repeat",popup:"#ede7da url("+At+") repeat"},{body:"#ede7da url("+ct+") repeat",content:"#ede7da url("+dt+") repeat",popup:"#ede7da url("+gt+") repeat"},{body:"#ede7da url("+ut+") repeat",content:"#ede7da url("+pt+") repeat",popup:"#ede7da url("+ft+") repeat"},{body:"#ede7da url("+mt+") repeat",content:"#ede7da url("+vt+") repeat",popup:"#ede7da url("+kt+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+Bt+") repeat",content:"#ede7da url("+yt+") repeat",popup:"#ede7da url("+Ct+") repeat"},{body:"#ede7da url("+ht+") repeat",content:"#ede7da url("+It+") repeat",popup:"#ede7da url("+bt+") repeat"}],fonts:["Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif","PingFangSC-Regular, -apple-system, Simsun","Kaiti"]};const St={class:"setting-list"},wt={class:"theme-list"},Et=["onClick"],Ut={key:0,class:"iconfont"},xt={key:1,class:"moon-icon"},Dt={class:"font-list"},Qt=["onClick"],Vt={class:"font-list"},Pt={style:{"text-align":"right",margin:"0"}},Ft={class:"font-size"},Lt={class:"resize"},Mt={class:"lang"},Rt={class:"letter-spacing"},Kt={class:"resize"},zt={class:"lang"},Nt={class:"line-spacing"},Ot={class:"resize"},Ht={class:"lang"},Wt={class:"paragraph-spacing"},Jt={class:"resize"},Tt={class:"resize"},qt={class:"lang"},Gt={key:0,class:"read-width"},Zt={class:"resize"},Yt={class:"lang"},jt={class:"paragraph-spacing"},Xt={class:"resize"},_t={class:"resize"},$t={class:"lang"},eo={class:"infinite-loading"},to={__name:"ReadSettings",setup(A){const n=le();De(()=>n.config,V=>{localStorage.setItem("config",JSON.stringify(V)),Y.saveReadConfig(V)},{deep:2});const c=l(()=>n.theme),f=l(()=>n.isNight),s=l(()=>c.value==6?"":""),S=[{background:"rgba(250, 245, 235, 0.8)"},{background:"rgba(245, 234, 204, 0.8)"},{background:"rgba(230, 242, 230, 0.8)"},{background:"rgba(228, 241, 245, 0.8)"},{background:"rgba(245, 228, 228, 0.8)"},{background:"rgba(224, 224, 224, 0.8)"},{background:"rgba(0, 0, 0, 0.5)"}],y=l(()=>({background:$.themes[c.value].popup})),w=V=>{n.config.theme=V},k=U(["雅黑","宋体","楷书"]),D=V=>{n.config.font=V},K=l(()=>n.config.font),u=U(n.config.customFontName),E=U(!1),d=()=>{n.config.font=-1,n.config.customFontName=u.value},m=()=>{We.prompt("请输入 字体网络链接","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^https?:.+$/,inputErrorMessage:"url 形式不正确",beforeClose:(V,e,q)=>{if(V==="confirm"){e.confirmButtonLoading=!0,e.confirmButtonText="下载中……";const L=e.inputValue;if(typeof FontFace!="function")return F.error("浏览器不支持FontFace"),q();const M=new FontFace(u.value,`url("${L}")`);document.fonts.add(M),M.load().then(function(){e.confirmButtonLoading=!1,F.info("字体加载成功!"),d(),q()}).catch(function(C){throw e.confirmButtonLoading=!1,e.confirmButtonText="确定",F.error("下载失败,请检查您输入的 url"),C})}else q()}})},r=l(()=>n.config.fontSize),I=()=>{n.config.fontSize<48&&(n.config.fontSize+=2)},T=()=>{n.config.fontSize>12&&(n.config.fontSize-=2)},Q=l(()=>n.config.spacing),B=()=>{n.config.spacing.letter-=.01},b=()=>{n.config.spacing.letter+=.01},te=()=>{n.config.spacing.line-=.1},ce=()=>{n.config.spacing.line+=.1},fe=()=>{n.config.spacing.paragraph-=.1},me=()=>{n.config.spacing.paragraph+=.1},j=l(()=>n.config.readWidth),ve=()=>{n.config.readWidth+160+2*68>window.innerWidth||(n.config.readWidth+=160)},ke=()=>{n.config.readWidth>640&&(n.config.readWidth-=160)},oe=l(()=>n.config.jumpDuration),de=()=>{n.config.jumpDuration+=100},ne=()=>{n.config.jumpDuration!==0&&(n.config.jumpDuration-=100)},se=l(()=>n.config.infiniteLoading),ge=V=>{n.config.infiniteLoading=V};return(V,e)=>{const q=Je,L=Te,M=Qe;return p(),v("div",{class:x(["settings-wrapper",{night:a(f),day:!a(f)}]),style:Z(a(y))},[e[50]||(e[50]=t("div",{class:"settings-title"},"设置",-1)),t("div",St,[t("ul",null,[t("li",wt,[e[6]||(e[6]=t("i",null,"阅读主题",-1)),(p(),v(ee,null,re(S,(C,z)=>t("span",{class:x(["theme-item",{selected:a(c)==z}]),key:z,style:Z(C),ref_for:!0,ref:"themes",onClick:ae=>w(z)},[z<6?(p(),v("em",Ut,"")):(p(),v("em",xt,H(a(s)),1))],14,Et)),64))]),t("li",Dt,[e[7]||(e[7]=t("i",null,"正文字体",-1)),(p(!0),v(ee,null,re(a(k),(C,z)=>(p(),v("span",{class:x(["font-item",{selected:a(K)==z}]),key:z,onClick:ae=>D(z)},H(C),11,Qt))),128))]),t("li",Vt,[e[13]||(e[13]=t("i",null,"自定字体",-1)),J(q,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:W(()=>[Oe(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":e[0]||(e[0]=C=>pe(u)?u.value=C:null),placeholder:"请输入自定义的字体名称"},null,512),[[He,a(u)]])]),_:1}),J(M,{placement:"top",width:"270",trigger:"click",visible:a(E),"onUpdate:visible":e[3]||(e[3]=C=>pe(E)?E.value=C:null)},{reference:W(()=>e[11]||(e[11]=[t("span",{type:"text",class:"font-item"},"保存",-1)])),default:W(()=>[e[12]||(e[12]=t("p",null," 已经安装在您的设备上的字体请确认输入的字体名称完整无误,或者从网络下载字体。 ",-1)),t("div",Pt,[J(L,{size:"small",plain:"",onClick:e[1]||(e[1]=C=>E.value=!1)},{default:W(()=>e[8]||(e[8]=[G("取消")])),_:1}),J(L,{type:"primary",size:"small",onClick:e[2]||(e[2]=C=>{d(),E.value=!1})},{default:W(()=>e[9]||(e[9]=[G("确定")])),_:1}),J(L,{type:"primary",size:"small",onClick:m},{default:W(()=>e[10]||(e[10]=[G("网络下载")])),_:1})])]),_:1},8,["visible"])]),t("li",Ft,[e[19]||(e[19]=t("i",null,"字体大小",-1)),t("div",Lt,[t("span",{class:"less",onClick:T},e[14]||(e[14]=[t("em",{class:"iconfont"},"",-1)])),e[16]||(e[16]=t("b",null,null,-1)),e[17]||(e[17]=G()),t("span",Mt,H(a(r)),1),e[18]||(e[18]=t("b",null,null,-1)),t("span",{class:"more",onClick:I},e[15]||(e[15]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Rt,[e[25]||(e[25]=t("i",null,"字距",-1)),t("div",Kt,[t("span",{class:"less",onClick:B},e[20]||(e[20]=[t("em",{class:"iconfont"},"",-1)])),e[22]||(e[22]=t("b",null,null,-1)),e[23]||(e[23]=G()),t("span",zt,H(a(Q).letter.toFixed(2)),1),e[24]||(e[24]=t("b",null,null,-1)),t("span",{class:"more",onClick:b},e[21]||(e[21]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Nt,[e[31]||(e[31]=t("i",null,"行距",-1)),t("div",Ot,[t("span",{class:"less",onClick:te},e[26]||(e[26]=[t("em",{class:"iconfont"},"",-1)])),e[28]||(e[28]=t("b",null,null,-1)),e[29]||(e[29]=G()),t("span",Ht,H(a(Q).line.toFixed(1)),1),e[30]||(e[30]=t("b",null,null,-1)),t("span",{class:"more",onClick:ce},e[27]||(e[27]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Wt,[e[36]||(e[36]=t("i",null,"段距",-1)),t("div",Jt,[t("div",Tt,[t("span",{class:"less",onClick:fe},e[32]||(e[32]=[t("em",{class:"iconfont"},"",-1)])),e[34]||(e[34]=t("b",null,null,-1)),t("span",qt,H(a(Q).paragraph.toFixed(1)),1),e[35]||(e[35]=t("b",null,null,-1)),t("span",{class:"more",onClick:me},e[33]||(e[33]=[t("em",{class:"iconfont"},"",-1)]))])])]),a(n).miniInterface?ue("",!0):(p(),v("li",Gt,[e[42]||(e[42]=t("i",null,"页面宽度",-1)),t("div",Zt,[t("span",{class:"less",onClick:ke},e[37]||(e[37]=[t("em",{class:"iconfont"},"",-1)])),e[39]||(e[39]=t("b",null,null,-1)),e[40]||(e[40]=G()),t("span",Yt,H(a(j)),1),e[41]||(e[41]=t("b",null,null,-1)),t("span",{class:"more",onClick:ve},e[38]||(e[38]=[t("em",{class:"iconfont"},"",-1)]))])])),t("li",jt,[e[48]||(e[48]=t("i",null,"翻页速度",-1)),t("div",Xt,[t("div",_t,[t("span",{class:"less",onClick:ne},e[43]||(e[43]=[t("em",{class:"iconfont"},"",-1)])),e[45]||(e[45]=t("b",null,null,-1)),e[46]||(e[46]=G()),t("span",$t,H(a(oe)),1),e[47]||(e[47]=t("b",null,null,-1)),t("span",{class:"more",onClick:de},e[44]||(e[44]=[t("em",{class:"iconfont"},"",-1)]))])])]),t("li",eo,[e[49]||(e[49]=t("i",null,"无限加载",-1)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!1}]),key:0,onClick:e[4]||(e[4]=C=>ge(!1))},"关闭",2)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!0}]),key:1,onClick:e[5]||(e[5]=C=>ge(!0))},"开启",2))])])])],6)}}},oo=Ae(to,[["__scopeId","data-v-a07727de"]]),no={class:"wrapper"},so=["onClick"],ao={__name:"CatalogItem",props:["index","source","gotoChapter","currentChapterIndex"],setup(A){const n=A,c=s=>s==n.currentChapterIndex,f=l(()=>{var s;return((s=n.source)==null?void 0:s.catas)??[n.source]});return(s,S)=>(p(),v("div",no,[(p(!0),v(ee,null,re(a(f),y=>(p(),v("div",{class:x(["cata-text",{selected:c(y.index)}]),key:y.url,onClick:w=>A.gotoChapter(y)},H(y.title),11,so))),128))]))}},io=Ae(ao,[["__scopeId","data-v-86592297"]]),ro={__name:"PopCatalog",emits:["getContent"],setup(A,{emit:n}){const c=le(),{catalog:f,popCataVisible:s,miniInterface:S}=Ve(c),y=l(()=>c.theme),w=l(()=>c.theme),k=l(()=>({background:$.themes[w.value].popup})),D=l(()=>{let r=f.value;if(S.value)return r;let I=Math.ceil(r.length/2),T=new Array(I),Q=0;for(;Qc.readingBook.index,set:r=>c.readingBook.index=r}),E=l(()=>{let r=u.value;return S.value?r:Math.floor(r/2)});qe(()=>{s.value&&K.value.scrollToIndex(E.value)});const d=n,m=r=>{const I=f.value.indexOf(r);u.value=I,c.setPopCataVisible(!1),c.setContentLoading(!0),c.saveBookProgress(),d("getContent",I)};return(r,I)=>(p(),v("div",{class:x({"cata-wrapper":!0,visible:a(s)}),style:Z(a(k))},[I[0]||(I[0]=t("div",{class:"title"},"目录",-1)),J(a(Ge),{style:{height:"300px",overflow:"auto"},class:x({night:a(y),day:!a(y)}),ref_key:"virtualListRef",ref:K,"data-key":"index","wrap-class":"data-wrapper","item-class":"cata","data-sources":a(D),"data-component":io,"estimate-size":40,"extra-props":{gotoChapter:m,currentChapterIndex:a(u)}},null,8,["class","data-sources","extra-props"])],6))}},lo=Ae(ro,[["__scopeId","data-v-6b8fd950"]]),Ao={class:"tools"},co={class:"tools"},go={key:0},uo={key:0},po={class:"content"},fo=["chapterIndex"],mo={__name:"BookChapter",setup(A){const n=U(),{isLoading:c,loadingWrapper:f}=$e(n,"正在获取信息"),s=le();try{const o=JSON.parse(localStorage.getItem("config"));o!=null&&s.setConfig(o)}catch{localStorage.removeItem("config")}const{catalog:S,popCataVisible:y,readSettingsVisible:w,miniInterface:k,showContent:D,bookProgress:K,theme:u,isNight:E}=Ve(s),d=l({get:()=>s.readingBook.chapterPos,set:o=>s.readingBook.chapterPos=o}),m=l({get:()=>s.readingBook.index,set:o=>s.readingBook.index=o}),r=l(()=>s.config.infiniteLoading),I=l(()=>s.config.font>=0?$.fonts[s.config.font]:s.config.customFontName),T=l(()=>s.config.fontSize+"px"),Q=l(()=>$.themes[u.value].body),B=l(()=>$.themes[u.value].content),b=l(()=>$.themes[u.value].popup),te=l(()=>k.value?window.innerWidth+"px":s.config.readWidth-130+"px"),ce=l(()=>k.value?window.innerWidth-33:s.config.readWidth-33),fe=l(()=>({background:Q.value})),me=l(()=>({background:B.value,width:te.value})),j=U(!1),ve=l(()=>({background:b.value,marginLeft:k.value?0:-(s.config.readWidth/2+68)+"px",display:k.value&&!j.value?"none":"block"})),ke=l(()=>({background:b.value,marginRight:k.value?0:-(s.config.readWidth/2+52)+"px",display:k.value&&!j.value?"none":"block"})),oe=()=>{s.setMiniInterface(window.innerWidth<776);const o=s.config.readWidth;de(o)},de=o=>{s.miniInterface||o+2*68>window.innerWidth&&(s.config.readWidth-=160)};De(()=>s.config.readWidth,o=>de(o));const ne=U(),se=U(),ge=()=>{_(ne.value)},V=()=>{_(se.value)},e=Ze(),q=()=>{e.push("/")},L=U([]),M=U(!0),C=(o,i=!0,P=0)=>{i&&(s.setShowContent(!1),_(ne.value,{duration:0}),ye(o,P),L.value=[]);let h=sessionStorage.getItem("bookUrl"),{title:N,index:O}=S.value[o];f(Y.getBookContent(h,O).then(g=>{if(g.data.isSuccess){let ze=g.data.data.split(/\n+/);L.value.push({index:o,content:ze,title:N}),i&&Pe(P)}else{F({message:g.data.errorMsg,type:"error"});let X=[g.data.errorMsg];L.value.push({index:o,content:X,title:N})}if(s.setContentLoading(!0),M.value=!1,s.setShowContent(!0),!g.data.isSuccess)throw g.data},g=>{F({message:"获取章节内容失败",type:"error"});let X=["获取章节内容失败!"];throw L.value.push({index:o,content:X,title:N}),s.setShowContent(!0),g}))},z=U(),ae=U(),Pe=o=>{xe(()=>{ae.value.length===1&&ae.value[0].scrollToReadedLength(o)})},Fe=Ye(()=>s.saveBookProgress(),6e4),Le=(o,i)=>{ye(o,i),Fe()};we(()=>{var o;document.title=((o=S.value[m.value])==null?void 0:o.title)||document.title});const ye=(o,i)=>{let P=sessionStorage.getItem("bookUrl");var h=JSON.parse(localStorage.getItem(P));h.index=o,h.chapterPos=i,localStorage.setItem(P,JSON.stringify(h)),h=JSON.parse(localStorage.getItem("readingRecent")),h.chapterIndex=o,h.chapterPos=i,localStorage.setItem("readingRecent",JSON.stringify(h)),m.value=o,d.value=i,sessionStorage.setItem("chapterIndex",o),sessionStorage.setItem("chapterPos",String(i))},Ce=()=>{document.visibilityState=="hidden"&&Y.saveBookProgressWithBeacon(K.value)},he=()=>{s.setContentLoading(!0);let o=m.value+1;typeof S.value[o]<"u"?(F({message:"下一章",type:"info"}),C(o),s.saveBookProgress()):F({message:"本章是最后一章",type:"error"})},Ie=()=>{s.setContentLoading(!0);let o=m.value-1;typeof S.value[o]<"u"?(F({message:"上一章",type:"info"}),C(o),s.saveBookProgress()):F({message:"本章是第一章",type:"error"})};let R;const Be=U();we(()=>{r.value?R==null||R.observe(Be.value):R==null||R.disconnect()});const Me=()=>{let o=L.value.slice(-1)[0].index;S.value.length-1>o&&(C(o+1,!1),s.saveBookProgress())},Re=o=>{if(!c.value)for(let{isIntersecting:i}of o){if(!i)return;Me()}};let ie=!0;const be=o=>{if(ie)switch(o.key){case"ArrowLeft":o.stopPropagation(),o.preventDefault(),Ie();break;case"ArrowRight":o.stopPropagation(),o.preventDefault(),he();break;case"ArrowUp":o.stopPropagation(),o.preventDefault(),document.documentElement.scrollTop===0?F({message:"已到达页面顶部",type:"warn"}):(ie=!1,_(0-document.documentElement.clientHeight+100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break;case"ArrowDown":o.stopPropagation(),o.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?F({message:"已到达页面底部",type:"warn"}):(ie=!1,_(document.documentElement.clientHeight-100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break}},Se=o=>{(o.key==="ArrowUp"||o.key==="ArrowDown")&&(o.preventDefault(),o.stopPropagation())};Ee(()=>{let o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("bookAuthor"),h=Number(sessionStorage.getItem("chapterIndex")||0),N=Number(sessionStorage.getItem("chapterPos")||0);var O=JSON.parse(localStorage.getItem(o));(O==null||h!=O.index||N!=O.chapterPos)&&(O={bookName:i,bookAuthor:P,bookUrl:o,index:h,chapterPos:N},localStorage.setItem(o,JSON.stringify(O))),oe(),window.addEventListener("resize",oe),f(Y.getChapterList(o).then(g=>{if(!g.data.isSuccess){F({message:g.data.errorMsg,type:"error"}),setTimeout(q,500);return}let X=g.data.data;s.setCatalog(X),s.setReadingBook(O),C(h,!0,N),window.addEventListener("keyup",be),window.addEventListener("keydown",Se),document.addEventListener("visibilitychange",Ce),R=new IntersectionObserver(Re,{rootMargin:"-100% 0% 20% 0%"}),r.value&&R.observe(Be.value),document.title=null,document.title=i+" | "+S.value[h].title},g=>{throw F({message:"获取书籍目录失败",type:"error"}),g}))}),Ue(()=>{window.removeEventListener("keyup",be),window.removeEventListener("keydown",Se),window.removeEventListener("resize",oe),document.removeEventListener("visibilitychange",Ce),w.value=!1,y.value=!1,R==null||R.disconnect(),R=null});const Ke=async()=>{const o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("isSeachBook"),h=JSON.parse(localStorage.getItem(o));sessionStorage.removeItem("isSeachBook"),P==="true"&&(window.confirm(`是否将《${i}》放入书架?`)||await Y.deleteBook(h))};return je(async(o,i,P)=>{await Ke(),P()}),(o,i)=>{const P=lo,h=Qe,N=oo,O=it;return p(),v("div",{class:x(["chapter-wrapper",{night:a(E),day:!a(E)}]),style:Z(a(fe)),onClick:i[2]||(i[2]=g=>j.value=!a(j))},[t("div",{class:"tool-bar",style:Z(a(ve))},[t("div",Ao,[J(h,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(y),"onUpdate:visible":i[0]||(i[0]=g=>pe(y)?y.value=g:null),"popper-class":"pop-cata"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[3]||(i[3]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"目录",-1)]),2)]),default:W(()=>[J(P,{onGetContent:C,class:"popup"})]),_:1},8,["width","visible"]),J(h,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(w),"onUpdate:visible":i[1]||(i[1]=g=>pe(w)?w.value=g:null),"popper-class":"pop-setting"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[4]||(i[4]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"设置",-1)]),2)]),default:W(()=>[J(N,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:q},i[5]||(i[5]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"书架",-1)])),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:ge},i[6]||(i[6]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"顶部",-1)]),2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:V},i[7]||(i[7]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"底部",-1)]),2)])],4),t("div",{class:"read-bar",style:Z(a(ke))},[t("div",co,[t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:Ie},[i[8]||(i[8]=t("div",{class:"iconfont"},"",-1)),a(k)?(p(),v("span",go,"上一章")):ue("",!0)],2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:he},[a(k)?(p(),v("span",uo,"下一章")):ue("",!0),i[9]||(i[9]=t("div",{class:"iconfont"},"",-1))],2)])],4),i[10]||(i[10]=t("div",{class:"chapter-bar"},null,-1)),t("div",{class:"chapter",ref_key:"content",ref:n,style:Z(a(me))},[t("div",po,[t("div",{class:"top-bar",ref_key:"top",ref:ne},null,512),(p(!0),v(ee,null,re(a(L),g=>(p(),v("div",{key:g.index,chapterIndex:g.index,ref_for:!0,ref_key:"chapter",ref:z},[a(D)?(p(),Xe(O,{key:0,ref_for:!0,ref_key:"chapterRef",ref:ae,chapterIndex:g.index,contents:g.content,title:g.title,spacing:a(s).config.spacing,fontSize:a(T),fontFamily:a(I),onReadedLengthChange:Le},null,8,["chapterIndex","contents","title","spacing","fontSize","fontFamily"])):ue("",!0)],8,fo))),128)),t("div",{class:"loading",ref_key:"loading",ref:Be},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:se},null,512)])],4)],6)}}},yo=Ae(mo,[["__scopeId","data-v-1ee927f9"]]);export{yo as default}; +import{a0 as Ne,m as l,v as U,Q as Ee,a6 as Ue,o as p,d as v,g as t,t as H,F as ee,M as re,u as a,a7 as Z,a8 as xe,H as De,p as x,e as J,w as W,a9 as Oe,x as pe,aa as He,f as G,J as ue,a5 as We,j as F,ab as Je,q as Te,ac as Qe,ad as Ve,ae as qe,V as Ge,a4 as Ze,af as Ye,L as we,ag as je,c as Xe}from"./vendor-MihKrDrn.js";import{i as _e,u as $e}from"./loading-DPd2-h-z.js";import{_ as Ae,A as Y,u as le}from"./index-DfNldNYB.js";const et=(A,n,c,f)=>(A/=f/2,A<1?c/2*A*A+n:(A--,-c/2*(A*(A-2)-1)+n)),tt=()=>{let A,n,c,f,s,S,y,w,k,D,K,u,E;function d(){let B=A.scrollTop||A.scrollY||A.pageYOffset;return B=typeof B>"u"?0:B,B}function m(B){const b=B.getBoundingClientRect().top,te=A.getBoundingClientRect?A.getBoundingClientRect().top:0;return b-te+c}function r(B){A.scrollTo?A.scrollTo(0,B):A.scrollTop=B}function I(B){D||(D=B),K=B-D,u=S(K,c,w,k),r(u),K({"3cc208fd":f.spacing.letter,"16b4de8b":f.spacing.line,c0f3bd92:f.spacing.paragraph}));const f=A,s=d=>{const m=/]*src="([^"]*(?:"[^>]+\})?)"[^>]*>/,r=d.match(m)[1];return _e(r)?Y.getProxyImageUrl(r,le().config.readWidth):r},S=d=>{d.target.src=Y.getProxyImageUrl(d.target.src,le().config.readWidth)},y=d=>{const m=/]*src="[^"]*(?:"[^>]+\})?"[^>]*>/g;return d.replaceAll(m," ").length},w=l(()=>{let d=-1;return Array.from(f.contents,m=>(d+=y(m)+1,d))}),k=U(),D=U();n({scrollToReadedLength:d=>{if(d===0)return;let m=w.value.findIndex(r=>r>=d);m!==-1&&xe(()=>{_(D.value[m],{duration:0})})}});let u=null;const E=c;return Ee(()=>{u=new IntersectionObserver(d=>{for(let{target:m,isIntersecting:r}of d)r&&E("readedLengthChange",f.chapterIndex,parseInt(m.dataset.chapterpos))},{rootMargin:`0px 0px -${window.innerHeight-24}px 0px`}),u.observe(k.value),D.value.forEach(d=>{u.observe(d)})}),Ue(()=>{u==null||u.disconnect(),u=null}),(d,m)=>(p(),v(ee,null,[t("div",{class:"title","data-chapterpos":"0",ref_key:"titleRef",ref:k},H(A.title),513),(p(!0),v(ee,null,re(A.contents,(r,I)=>(p(),v("div",{key:I,ref_for:!0,ref_key:"paragraphRef",ref:D,"data-chapterpos":a(w)[I]},[/^\s*]*src[^>]+>$/.test(r)?(p(),v("img",{key:0,class:"full",src:s(r),onErrorOnce:S,loading:"lazy"},null,40,nt)):(p(),v("p",{key:1,style:Z({fontFamily:A.fontFamily,fontSize:A.fontSize}),innerHTML:r},null,12,st))],8,ot))),128))],64))}},it=Ae(at,[["__scopeId","data-v-26df22f8"]]),rt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXr5djn4dTp49bt59rT6LKxAAACnElEQVQozw3NUUwScRzA8d8R6MF8YMIx8uk47hDSJbj14IPzOGc7jPLvwTGg5uAYDbe2tt56cLtznvEnS6yDqCcEaWi91DvrbLJZz7b1aFtz1aO+2OZWvn+/+4CHeB6BMYaqBLfjPNRY6RFT2JJYby+uAk4WUTrtlmJ4hgPYb2q1XGDQjaK8pgJHvqNaAX+KyuIkDXpgQinb46nOulnn4b5laUHTxLfseeArAoNOeJlOIjdoal0n1FA7tKFv5roK+YaHOqP3P0XyKHPHY+MhTRe5uCZnKhtJKw2eSrSoBDPLtpZuNcFNJcFyiCMxOaaHIfXz1e8HQbWLySrBQ4x0x1qlhnHlnz2HQEC6TNb0gTHXa7IKhcaHqkE015hk9whA0YeWiLIXf7Fa2CZo3DjqjB4tTuF8jIcbfcEx5z/w4sXpQhXW+ju0cqh7icTFmRMaG+v6CIvTjcSpHcH8JEsF3EPh3fRthYdVLLgI2fWXm85/pGFE4l046s70L+yKCcirGFR+jbpy3kMmiCGHrSezVONsn1RBixncyk2PcVWk7DlgxHo8iZwDyq5uAUD854dZhdIFYzKoQig2haUKi1lVufz2RZUZPZ41n/hrOQB6h0Hhg8I367FNoEHgeM/KY7szSeQwD8q2WE3HM35ZLl0K1MJiOtHIkBclRQUwZnyOWcNsRQQgVLj1PSqkjF9DsoOSaSg3iinKzvfmgsNFFfpP/2T3GLGvL4fHEfwIX1sVvXcPqLztehWGcfn9nI2U9nTfCgJPe/jFPLZwgVEzimBgAm0VIyK2tt1cE/AzQdLK+SxLSQ4aDCZnnId94OG2S1XwvnTbNk/ZnhyRCQT+sZM6z9g6LXL1BOBe+zJySiFkHAINCtnQokbCJ/apCv0foqPiZVfhpywAAAAASUVORK5CYII=",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",At="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEX6+fP8+/X+/ff///kbczPAAAACeElEQVQozxXHQUgUUQAG4P8936yzs6VvZNZmN9QxVxiF9OLBoOjtOC6rQq6ygXjI2fCQBdXBg4egtzFGdqkoI+zgBFbqkm3hQSxhFYLotOcubeKhOnVYoqQy+m4f5g5TvpX0xHLbLY9j8SMhJp+Jk4LfAUS2kVRIjILmnwGBTX42PhCVlDJQkIiy2nWAvaJ1h+oFIpJ0hMSYVbyyrgDWshcMpMyL1brPDQKWmduO+KTJ6XeXAMK9Yc3FpD7atyNwg6kt5XgFpLPhjUTFSYVn2abDiugGShwD8JTVRJVo/2ecuKtRb/qc4BK+9TboFfokog4T2Fn6Oqdnsjk90NMS76Rji6E0NmwkPBAZ4Xbkw8KoDAkAbEhkc78e9omxxgxg6qa5HvMv+UZbCV0qmHnSHKl5TxeA2XTCGWekR581mwC5crBH81PznASqB9va3TbkYAjJPLfg5uBfXaJgIgIBv9eessRIhxe7PA7kj6uUMeMaQ/OEQOYRaaHlqH2Gxwsl6E/pwVY5FH7uCypBZPKvDQyVziYBrAkMURe2MOOOxG/eQpp5PF+bFzUV5HtPj9GeiVSNZDELleifYTp9NAjsoiXg4cW+4ZORkdSMB/B74aAdjhsVakhgkugsbmqcDSLEoWp8zRjrux3tli6Q5uM3E+maT99Wy0RiP7tboiuRZle2c6CYeL2kcUc1KvPtQKucogMadKVTQOJYCeyCYlhQQ/Q7Etfd/vBygy9iqy+LyHeF46saCYvW6ingsbA9RBWtdi8GgUXW+oQx9/wP6bAAX1TWeV+CbShZDlQ9xT6SoSxZmKRAkmXb60kzEzkRF+Ccb94BGspGJoN/UzmyR4wjXHAAAAAASUVORK5CYII=",ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAATlBMVEXdzaHh0KPgz6LdzKDezqLczJ7ezZ/fz6Dcy5zi0aXdzZ3fz6Tfz57h0KDg0aLcyZrg0KXi0qPfzZ3j06bh0qbdyJbfzJrhz5/cxpLZwo0vDconAAAFn0lEQVRIxxyPW5LjMAwDAT5FybLl2JnM3P+i6+wXWVC1GoQGaD0h4XM3Q5o4T0HgABHBi6pZ4CDXXcUOFd6VhqC3Kch4EI8w9oMXwvU6m5LOOvcxKMOhuu8i5+5cMjcgb0t4F2uvOoeI3/MlT4IqsbtM9UG2AGSXUOsxzPevnXzK1CSHytZLvx7VdQmUcJsJCxJh2nmHW12Qod1qPjt8pih47uQ9aGpoNWF+yElCt60oH7vdIU/MnlRPSBLC/VwqxcKR8PFqnADN9ih5ufqnTlG9KwCofvs7kKYqOPHTNMQ93j9qNImFw9vjHPZ0F1m8hUUVB/Q/TrRYDMXr9++APMFARAt6sPh6wVAXzxUGhZsFUwCNfPZ8/72TAHebAhvuOuT3gO1Vn5d9Jd5sBRkg0p2seL9B7ulkjFJFIt9HPpLzdSzzMP3UcodAfMqC6pBuET2heHK1itZf1GZ1bi0BwOSxiCS8f/JBHMPMM4XCu3Mt1uz9lJbDJRqsKDZuikzkvskQEz6hanfDfO494azY5JpqPqOF1RhxD9XYEdaNxiqWqakKgmPfmrsta8KAiwF4HBxGVUJAgeSqQaiRRZJ7D2jedhw5t1CIAKxag0CBA60BpoBE6DcUi8O5AuM4pLfN0kHLmeu2B4e6HofqbgxsTWUw3PAODqa1oDtyzgXBlusi1KFdclMPE8O3jvLJ8RNi5/RxDQVzVmXA233XQ4KummunfxvLOZo+iH37964YjP06995CTdu9hsvErqJNzmf4wTrZ5DL7+qW9EoLnadrx67b8dUtrJnBXaT1N1uvPaYRKpWkq52xNsMN7vv4Sdryt/f4MhQoMCKnvVxikai1CQ6ZsnwJDc8+3Y/z8HcfvYQNq66pnAu1Hwa+3KNSwbNu8h3nDPqTl9fl7tx8fBhFfdS0o0F3JUKEZtZG9b/LZEM95lzaR30OnWPzroMxyZYdBIMoMnpN0J+m7/40+/P4soFSUjgzE7yY5zrMJuoZv0CmpVguYx1pprfb5HOviRVhHUVi/352shxCYrYBZxGtVaxiAz/MsaGSIsB7R1t4zJXH//n7RTTQQwxqcGEqEvklFHUgiO2GvJV+jAIPR+N29usWDoiSOVrN3XuqT1egQJAAU9EwslVJC8u0rGcy+WPqktJhjfMpatIG6CDAb0v5H34MGKqiVRue7GGLZ9Otxtt4JIrAhxBDwDuqI9JavcO0A7GlqFt219tH/bln9jBXzaKWAEqJV0CBxs5TwM8EvUPHaa8S86vN303MVWOsl3goDBHPWSoQ9c0kQmCKljfsKNH1+ofEOHW8a9a7glZGS8fPieL/SRSs0LAhI4FDTnXs1QYtubv2+IXPZpHB4bhivRexBkYKsSrYXNjvMUbVXpVJ+N6haV72c1k2zrnv5IYBMJBYTSZx0KTkoM3vY93rU/qs7zHplc/3d2ACadhFWByrn9LUk2IWb5JywvawTQc3F0iz+lgsBmInAIemBJtft2plKIlAFOgcroigrG2XlDsAzywQECNyaI8yr2ogoh7D4qJOYmZBzQgoZAM1PAcB8sDrr1uE5CDMR+nWSSVUGUCHAs8Vd21HOE0FzNj37pX0sLp9p3K8k++xxpkmzDxK64rmTSJnDUuIgTeslui6lg92jonZXI4jqNiUuzN4IagcKMjCniMGCODoo8T4tGDprn2hRww+NrnYiCwokd9iiWrkmbRfXYGLAoZrjO1lVQKExjUy5fIkgJURmz2uGFdASwwlWx5gDVTMK7hP6ISRVsFbYNmqtZL9MQtio285PaekyzDhZmtdexCYB0SZcTmBdhvdbmAEonk8hwcHQuZN1kVqrhyKoHHsnQhQAjF7SG533Da2S4LGjx1LoZqp7XeKQLDUBmYmydG0NQHpMeR5lRIRQc1PQ2ASMQflF4YBDMt0/GFlEHeRwCcEAAAAASUVORK5CYII=",dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAALVBMVEXx58b168ny6Mjz6sn06sf27Mvw5sTz6cbw5cLy58T37svv47/168v37s7t4Ltrv0//AAAEjUlEQVQ4yw2Ty2sTURxGf3dmOqmPxb0zmaStCnfmZpL6gpmbxIpUSMZGrSJkxsZiVZimNVaqMklrUnWTRq2KIDFWWx+IFrIRFxXEB4KIgqu6EBdu7M6FIPg32PW3+DhwDmBaYrK56KP4HGIsvg/uvOV0wK+qgBMlO9BujuH4DSJlOseqV5a/BEF97gt0ChyIPqBhXI9BtqtIB8vJB/LdCQ3OVjaLNX0g7+OmoI4e7nkemAqX6o8vg0yyQAyQS7IfgvFbI+6QyI3R4KELxw7kwM2ooQfyQigYnwY5MZbMlHI1DvnQVCoVcrt+R+bO7vPDif3ybNajwqAAe443dpfDsPt379VMWZzGRuqM79mQF+DUz9nt74bQ8J/O80MtVR51U02JKKmTCvTzLVf+vuxP/aHnPo9+2bW+zVsJ0Y630/CrfzX+b+UL+7O68Rczv+7lrMh5etfKXvhc2rk6KforxuoO2xB2tcxKfeXHt18rHOiHI/0RRjW/YGRDkHiwo3nzqL60o58C/bgRuaj7vk+QOwOhpnFNdjuWpKMCGP8Yapu9Ty5FTHKQLGSEFikjd9ADwP9ciaNNjc5qMH6w50AF/LKOsOYqsOG9GjKgc7ZXolqntm6fysJ6Ma6ll2CiqmOgE6O7x1wXExklbeqMYcwsmJmOoigt8SBg2WfilDSsAZJcBxDcrqtBXzFQJqZNHfscyIhoZlygAtyYAceah+elrFbI+46gEHDGiW878Kj7JpWyfhg6iyRMymV1MKBSeVpfgLHIohyTojI6sRyK1VpcqzVZeEBLOnA9unhGKUXPJDYtV9Dxuz4iA5xSkSWhCJdAiJR9PHlvfvbntbrR14FDqUNRAYDJmSnv3oKxuz5+7fiblgVJyYLTbgUM05P7LESkoXvyWNfb0aUU6FZizgQIa25VqKQZqFrk6v6BsqqIHlQmkQ9KrBhkC20/DrFsAFEEYLjM+lj2wYHXCwnNvZQR42XJ2iVK+UBXnI+OBE6oXpUUHiQ1yg0MhA03iwGbnOdQYc1CMiPIPQrCQJFH4L4BMFktAtKd9PN5gnU2Gra4KuK+V+mjtBRpAGIqDVe4wnSnajiFGO5d7smvhVQEMEYwqshrENIEaY7YeblJYtsb3QhAHWZCEKK67swwPMKw0If1Ta+6DgHmlgPzcUTSbi3rrv1Y64/BYEMPQ5SDHUOR022B4QRF6xLUPAaPX/V4IDI5N2BMwx4LqO1uO4j6uW7NvM7lATqGAxY/ZHVgoGZbu7SvkNR75x6qGSB23FdouENVwN7sCbewTdsXGrrnQ5ZZKOCOFtMTIzxlPu6eYmtL+nMFmoK7OeXajn86r9sqWbfmvHC4IagE5qfCPGZvLSq5F55hHIxJFa4/vRxHBlz0og4TojU1l/MOHJX17lybdF0mQhFO44JYUNt3UA473IXw/iPfDWtKG5oFSXIF5iU/VnyDSjxxeDk3jAXRyVyGTNB9FxH9qcFDNJpVbt2y9LytUXkK7Py6+z1RezHQqnoY8XcLimmd8dCnBhQCuaGpJCq3SoIlmYvLz8UkWhJw7T8k+Db/DYEKwgAAAABJRU5ErkJggg==",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",pt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7eHl8eXj7+Pn8+eTbH1KAAACPElEQVQozxWPQWrbQABF/0xn3JFKQRTZOIuUsbCCbOgdRoYEOauxkYPcTRyTlPQWIxEltrsRwQ6hK9nEQek6F+gNTE/Q3qLLusv34cN7SH3mFicdYW4gNIhJWXPBRVXzjcFD0IqeU4o4PRbAIVjyico0vJpIifqPfL80QN9DAQY5ucRHE/hpHxBldXe9GilaHKcKMlj6pho2zXgkNdBl0oJ8kiF1DSiJF1ZHBJkQr0Dbux/5I42Zp4cFahJDFGeW6/QjBwmFY/Q7vZ2SnoOdW2parv/Cnm81+m0xrEfiVXQ3W4nOXIqVYi3l6AAQBwMFkViVBANMto4enXHPNTkHBB0oVj4r5vHzCWayrgBvxtygDlDB2CNDjd80ZInY69aKVYZcfJ8DW+fWuc+syEODALx+ojqoafHsthTI+ZW27PGpIeo/cR6YKcbqIuIFhHmBrzAovzIOOJk1ucvcDzrMRYGVBH2yvcAOf0KiKwfRovBI3tm/kW1eemtfNWwIIXE2mJNhvoszfmMBfRCv0OPwd2321uDW3nx2q/BDxFVeoN1g7a6Im8yRnoawa8kbdXnU0cHeTMxKfZGlJgvLb3sKsxgglQnDdAfvj9LUnqWRDo0GiUmPwyU7TAsD7wHeIW3Nfy1qVGKoE9NgJCdYCAexNRob9yCn4DAQmXtQuUtera6bEmTTXhZy6h856xi4mnEl6BI9mfISkLbtJyZIMJIAUd5ZOBEu88KRAk71yxfItj/hpIB0Errv4gO1os4/UICf+o3kkqwAAAAASUVORK5CYII=",ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX0/PTx+fH2/vbz+/P4//htSO9OAAAC5UlEQVQ4yyWT0QGjMAxDZTsDWKQDmJQBYrgBUsr+M517x0+LRWw9CyA+pC1YzndrMgHaNXVKQ+di13Of1qbur48nWhuRjj8i6ON8e7pNm7zyag/DBTfS9Z4Hup1fUuXMKY4HEE8QOHCByXkIkl7lDT239RtL9quO4JItmmhOAHXg45QuYKrQFLyGJcRvaTw6kQqZy6mkR6JAPFH/XqsQjEDRmUOA+MNLHGyMUT7AHApoAhjgjIJmCxy6XHdf648AWCdGe57IUDazCeTImQOY4/z+eVYVX2IjOw9RydeAeJwl79iGi4HpgQgHEchWraUZLtayu8scq0lHHHUKMY3Ml8hB7CS1jOckDLG9ccgNeX3124phOcjL9fPnWJhTXpLHeG9DRmHnTxHEaHakS2J51lwAJcUraNbuU7q4gMTDQj3Eripc/x+qFM5VEKAB1roQfAkX5/PxqnS2QpOrxfK1Zft0/omV5T+xCSBUAIbEIwUQgvAfxFE1O8dnk233+1UZiqJ1mAbsue6Yt8tF+yOrxC/YrUhzC4qPlE3EbR5hGKhhHdlrg7J9WunV7L7BcYQwAeE59u2tnN1c6gfVYrQiLSZ9OxZdWDXQq0+r0Pbarh3UqGCwauVvbiXuDsNxCtLDdW9rTF8oQYN4EoXXdfmwNguQP26n/tRjDeo+F2W7PjWtfSr6Bn/z+cXOLp4NnMV4RytvSW4B68m+XN9XfZTFGhO/S+cHTuTqZDC21ccA0N7QsePALaDQC3D1f94U9CWo+aq6BjB3v0rxIimBM12296M3aKPHjXLQE9KQKH4By8RHraJ3AgVto2r4xdFqlaPaiAHLl1ZF4P2pI6cYc+K8UZdcmxy7lqGc1IoPxLmIFuIeEZ6j2sQT88muEg1zwrEDTIX5U/ZmcsqfgVlBumiBLF4sAyhf9BFlXOPKLZ4H0iFb3VoHrGhtHTldKrOvP2/reu2zfV8CXMPqzRdlgd0a5eI7WwB/AYcgavcqxXWEAAAAAElFTkSuQmCC",mt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXM2t7O3ODQ3uLR4OTDp25yAAACdUlEQVQozw3P70sTcQDH8c/3/M7NG+j35mnHwjwh4hRy/QFK3zvPNbeIG1koPZmxfj2IDAwihL53zj0JYisfmEHcZJZOiBUG60lZiI8T/ANusuftgQ+kCPIPeMP7hS5mUrV9c1g6MQCAEZ8tDLHwofImAGRlX+SZK3Vu9rRRPuO4PK6/9nA4GIATsxlODS+rdCMhkAZivpYV0LWoQHSLSA4NfUg+6mY+7BKL2++F9LvnrBDYm6JO9i/YO3i/HJTGQ4pdIV82TbEDFG6vGYCd4wZchgK5J2CrKTLE+Tx0v+YGlIbdWJFcQl4ptBN8fUJQN1MCJLcZLYwUVVo+famGGty8EXJF5ofOEDzcodT3/Fb0I5sHmc1ZG7CcSl8COgxlXx09jT05OafjCZLIHJhGIaU6wDZHsuMQ41wbdjmQXbhKnMq1zlXSYrjCnyZblqexA7fC8RxS74tq2P3OxSQwTuJSApH8OZLzBBp1pOe0i3rdyDUA47GySZ31YmC4EQYSXvFSvieORGBxXF9aeVtUWKGS9WMC4Z9Y2uXnJ2nCUXVMbPOYqNYNmGWWQ7Evr+BWC+a0JAMTImcq/S4Z5INdQMeuOqDIMa9beilxfA60iC6sP1INcPDpmHBW8drZHNmqwyddJtVje9q8WGUgWAOzmbU4FCQBFi8B2Wk6pickBnYhJMenmJGuRmtt2IoKq9NuFGbNFR99sHnvrnLsLysKANDIsxbp6RNMAsoDSKuRpMwZbAAzI68QatIjmZ0aImyM3O8/4e2MNlOHZomFsa/fLDsysliHS+nlYLQJMnynxrH8QO4PaAV2Li8B/+52UgeGIVNFYf8B1XG/kFSmLcUAAAAASUVORK5CYII=",vt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXh7vLf7PDj8PTm8/ecW+lZAAACZElEQVQozw2RsU8TUQCHfz3fw7MS87jeI7DdmSMpDEoHE+P0HqGkvRR8vb5XC4NpN2RQZqcK9xJkwtriekcggerC4OZADDiT+A+goxv/gfwB3zd8H/T6vYF/pTZkCSmDNd3CBEtmZJP4N+CvvhecDvmntKsvwB17rpbIRTLOEoYkj9KZzRUuJsuBQFwgptyJ3Y7EL4V+ud5LO1UnMeQSSObqisiISZkbQBlliP3qWSk3GPQXjxv6VF2BTDO4ySx1zhuJXbA2wBNJF4t5vH9keg6wu5NvUpLtXrZ3OHC9ZsgVcZdOl38PM1y/L6m8GRiErj4AqezUjHGatGGIgs5NJDHh8Ua1IuB4035haVT6SaYWMoQ0eJ3rB/Gpnr3fB49YAy1Wa21YKqAHOmAveVw6CCMGMZh5bGtVI7jnZaiQNbta1Z+285oSoKoRbta1KZ/1bBdKH/RIxv2pRVpkoCmvpr097RWoo0CpMlTWllIenSjECU8mV43mHx2fIRfH/pncrJm3+58BWdbSqCS07/yiQnvHiCG4ZPGRFeAtfreoOubyctzHvLNHhjNvIhukxQzjU5O6QdOEzUp1Ef4d98Pxz+IPYX0bcpnT52dbedfz8y7C4R89RV+MjJkuCCx7mWDt4eyK/62lQB55xXGJK7p8u6bgRv4hVHylelYGGFs64W94tng8sAIVqSRJBpqRA9rFvAysS+9ak8s7557pz5HR4qhCRmWgplpTRJ+bhYfSAMO8/YBucWPuSdmFFtOnuWqvV2NbF6CJnbhNDzEZ/T0XSDrUydzkZCG1z/oIEyUFYxW/KPXNfwopuHDcO04UAAAAAElFTkSuQmCC",kt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",Bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",yt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",Ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEXm5ubo6Ojp6enr6+vt7e1FnZagAAACrklEQVQ4yx1SixUbMQgT3AKAFwDcAfzpBN1/qMrJS5w7bCQhC6IGSUGYQJd6Ox9ZPXi1AGJBavhUTT0JjYPGAab9WcDYIxsmlnxkayX8mhxCmKHA75az5cfRbWybEExiu08xDSgGym0mwuf3j4SvHeQxDJJzh2zp4iOlrD8iOb4SXyC1wiOLRTcnrje+nGamFeXVKWkmzbFIPChkmJ6Fg7mBpV8n+JGOVCd4jv1thThkjeQGNeafpeV3rsEWLfyWc8tC9jOv6FQ8rRzHOOVB+jCYEUAJpDvh8xHNFm/Tm5p5lw94Pp3NhtKEfQsGvnXhowdZE73hPwxKvjDd4i4PCdd0fe3W5fO8ktAsUAacLgstpUw60JCiPLg2XpkgiqPIYYXJd9ksGIT3q+LlevypzItvO+s0F1dBzVr2QDMUkYmuyGcrIS44mVJ7JVKwQXjYuBYp0Uetecbswzsikzu3gUR8bJC/C8Gd/NAzI/xdUGOYQQHDZ8X2d5XuzGRUiXAi9si5CRgoiToRZPtzLJkd0FUHRHZwJf0BHT1sE7gcnh0jmKKlSSF4/GBirGk5+K9NKlGDCfc9JtPhg78JdabH0YQRKNZnJ8tFnPfXHJb4xum1TTCeEmyEdbyEJLjznMLHuFD2Y9NEkSleIBs7SiCbblhgctVi9ch++kDYnn1C9DA5TvdPsToXM55wI6k+8eKT1blwPTqWb5CFJ+7dTBmab+KHy+xwNtItXhZNSpHD2fxnynrxG3ZBKRe8KBpXk11AnadlccEhr9w1nBBvBylNkv7A8eqpGBCDqhitmWQXBjjdS6idr/QjXWLDeMzMbVDoJuM8zN7WenMZWXgZ2vX3F01J3jHZbwk1LRP+DWEvDJtOUoh/AIaBUz5VpWyhuyx4QtgL/NmgC6kM/JvNe+R/C/5aL7BKIbYAAAAASUVORK5CYII=",ht="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAElBMVEUQERMODxESFBYWGBkaHB0eICLm6ozJAAACkUlEQVQ4yyWTUdLbMAiEASfvoOkBkBy/O5keIE0v8E/uf5h+68qZWALELgu2MG9PP9qyvCzTVhrrsPGOCjvTfXQZvtp/W3Gy6LCITqs4q/DZ+KYl76zKzHVYpY2wNY27nqN1sbLGcrLH3/ENH4oWlGctsDu8AO+HzTLlsYdh8MzP1m6YDMz0ACfcimvakBj+mwO/+5Uta5teOD379sxK1fUxmUhv8MU3jUT5gs26PMephFznkLcpQZ6/dPL9C/GWHcCxDN6oZhD5xBm5qoYBPA+PFE/H1tXDWcWl8TW7rS+4dUzAVy0BIrvC4/HcqW2TkG1HO8q9dC23INAg7NA4AFRFkDTM2lfELPyFzi1VddcpX2z0KjHBUDmdLNJ6dDps4ytrX+FPsZwE31wSL+6OWfHOAJ3+Y0Rk/MiKfmWNPg7oVP/U3Ck9FoCkC2gBpALOiqbMNTkOe8P4FWkTD2Y9Q3+5VmV0uLUJBl68U5uAK2Kl6QDXvLxbwweOL2sixW78uU8p0ysfc7cWrF1j6B1sPJ4WgclYSnJN1bzozrhEcFHmRzBkbJWqqdG+EYJXRFmT5jnLXPUNF6WBdoFbTxYsmDXVLU/WA7MExNc93sJS5hIXDeLxzMScHzdhKvEkibr6cQXYPrmtmTA7JcInISrTzRDvShTdka0uVGrsJAAR6tSn1sKziZtfKVjAxPrJsYgZO0bye+vKTZ/DgoAoLGNO6jYHimZYTL/3pLJHawquJukjBpfz8WOGVSVIWx9ywUfS5iENutidRM4NzkAmxgUSQ68xgNOU+ZLalr4TS2V+D2xqukZig+Z9DilR7Nouzwp1cp/3E5q6Rdlf08obKvAM4qZ6pMr+w3PmQALSSBfjyZn5DwrNRVbywBQiAAAAAElFTkSuQmCC",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==";var $={themes:[{body:"#ede7da url("+rt+") repeat",content:"#ede7da url("+lt+") repeat",popup:"#ede7da url("+At+") repeat"},{body:"#ede7da url("+ct+") repeat",content:"#ede7da url("+dt+") repeat",popup:"#ede7da url("+gt+") repeat"},{body:"#ede7da url("+ut+") repeat",content:"#ede7da url("+pt+") repeat",popup:"#ede7da url("+ft+") repeat"},{body:"#ede7da url("+mt+") repeat",content:"#ede7da url("+vt+") repeat",popup:"#ede7da url("+kt+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+Bt+") repeat",content:"#ede7da url("+yt+") repeat",popup:"#ede7da url("+Ct+") repeat"},{body:"#ede7da url("+ht+") repeat",content:"#ede7da url("+It+") repeat",popup:"#ede7da url("+bt+") repeat"}],fonts:["Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif","PingFangSC-Regular, -apple-system, Simsun","Kaiti"]};const St={class:"setting-list"},wt={class:"theme-list"},Et=["onClick"],Ut={key:0,class:"iconfont"},xt={key:1,class:"moon-icon"},Dt={class:"font-list"},Qt=["onClick"],Vt={class:"font-list"},Pt={style:{"text-align":"right",margin:"0"}},Ft={class:"font-size"},Lt={class:"resize"},Mt={class:"lang"},Rt={class:"letter-spacing"},Kt={class:"resize"},zt={class:"lang"},Nt={class:"line-spacing"},Ot={class:"resize"},Ht={class:"lang"},Wt={class:"paragraph-spacing"},Jt={class:"resize"},Tt={class:"resize"},qt={class:"lang"},Gt={key:0,class:"read-width"},Zt={class:"resize"},Yt={class:"lang"},jt={class:"paragraph-spacing"},Xt={class:"resize"},_t={class:"resize"},$t={class:"lang"},eo={class:"infinite-loading"},to={__name:"ReadSettings",setup(A){const n=le();De(()=>n.config,V=>{localStorage.setItem("config",JSON.stringify(V)),Y.saveReadConfig(V)},{deep:2});const c=l(()=>n.theme),f=l(()=>n.isNight),s=l(()=>c.value==6?"":""),S=[{background:"rgba(250, 245, 235, 0.8)"},{background:"rgba(245, 234, 204, 0.8)"},{background:"rgba(230, 242, 230, 0.8)"},{background:"rgba(228, 241, 245, 0.8)"},{background:"rgba(245, 228, 228, 0.8)"},{background:"rgba(224, 224, 224, 0.8)"},{background:"rgba(0, 0, 0, 0.5)"}],y=l(()=>({background:$.themes[c.value].popup})),w=V=>{n.config.theme=V},k=U(["雅黑","宋体","楷书"]),D=V=>{n.config.font=V},K=l(()=>n.config.font),u=U(n.config.customFontName),E=U(!1),d=()=>{n.config.font=-1,n.config.customFontName=u.value},m=()=>{We.prompt("请输入 字体网络链接","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^https?:.+$/,inputErrorMessage:"url 形式不正确",beforeClose:(V,e,q)=>{if(V==="confirm"){e.confirmButtonLoading=!0,e.confirmButtonText="下载中……";const L=e.inputValue;if(typeof FontFace!="function")return F.error("浏览器不支持FontFace"),q();const M=new FontFace(u.value,`url("${L}")`);document.fonts.add(M),M.load().then(function(){e.confirmButtonLoading=!1,F.info("字体加载成功!"),d(),q()}).catch(function(C){throw e.confirmButtonLoading=!1,e.confirmButtonText="确定",F.error("下载失败,请检查您输入的 url"),C})}else q()}})},r=l(()=>n.config.fontSize),I=()=>{n.config.fontSize<48&&(n.config.fontSize+=2)},T=()=>{n.config.fontSize>12&&(n.config.fontSize-=2)},Q=l(()=>n.config.spacing),B=()=>{n.config.spacing.letter-=.01},b=()=>{n.config.spacing.letter+=.01},te=()=>{n.config.spacing.line-=.1},ce=()=>{n.config.spacing.line+=.1},fe=()=>{n.config.spacing.paragraph-=.1},me=()=>{n.config.spacing.paragraph+=.1},j=l(()=>n.config.readWidth),ve=()=>{n.config.readWidth+160+2*68>window.innerWidth||(n.config.readWidth+=160)},ke=()=>{n.config.readWidth>640&&(n.config.readWidth-=160)},oe=l(()=>n.config.jumpDuration),de=()=>{n.config.jumpDuration+=100},ne=()=>{n.config.jumpDuration!==0&&(n.config.jumpDuration-=100)},se=l(()=>n.config.infiniteLoading),ge=V=>{n.config.infiniteLoading=V};return(V,e)=>{const q=Je,L=Te,M=Qe;return p(),v("div",{class:x(["settings-wrapper",{night:a(f),day:!a(f)}]),style:Z(a(y))},[e[50]||(e[50]=t("div",{class:"settings-title"},"设置",-1)),t("div",St,[t("ul",null,[t("li",wt,[e[6]||(e[6]=t("i",null,"阅读主题",-1)),(p(),v(ee,null,re(S,(C,z)=>t("span",{class:x(["theme-item",{selected:a(c)==z}]),key:z,style:Z(C),ref_for:!0,ref:"themes",onClick:ae=>w(z)},[z<6?(p(),v("em",Ut,"")):(p(),v("em",xt,H(a(s)),1))],14,Et)),64))]),t("li",Dt,[e[7]||(e[7]=t("i",null,"正文字体",-1)),(p(!0),v(ee,null,re(a(k),(C,z)=>(p(),v("span",{class:x(["font-item",{selected:a(K)==z}]),key:z,onClick:ae=>D(z)},H(C),11,Qt))),128))]),t("li",Vt,[e[13]||(e[13]=t("i",null,"自定字体",-1)),J(q,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:W(()=>[Oe(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":e[0]||(e[0]=C=>pe(u)?u.value=C:null),placeholder:"请输入自定义的字体名称"},null,512),[[He,a(u)]])]),_:1}),J(M,{placement:"top",width:"270",trigger:"click",visible:a(E),"onUpdate:visible":e[3]||(e[3]=C=>pe(E)?E.value=C:null)},{reference:W(()=>e[11]||(e[11]=[t("span",{type:"text",class:"font-item"},"保存",-1)])),default:W(()=>[e[12]||(e[12]=t("p",null," 已经安装在您的设备上的字体请确认输入的字体名称完整无误,或者从网络下载字体。 ",-1)),t("div",Pt,[J(L,{size:"small",plain:"",onClick:e[1]||(e[1]=C=>E.value=!1)},{default:W(()=>e[8]||(e[8]=[G("取消")])),_:1}),J(L,{type:"primary",size:"small",onClick:e[2]||(e[2]=C=>{d(),E.value=!1})},{default:W(()=>e[9]||(e[9]=[G("确定")])),_:1}),J(L,{type:"primary",size:"small",onClick:m},{default:W(()=>e[10]||(e[10]=[G("网络下载")])),_:1})])]),_:1},8,["visible"])]),t("li",Ft,[e[19]||(e[19]=t("i",null,"字体大小",-1)),t("div",Lt,[t("span",{class:"less",onClick:T},e[14]||(e[14]=[t("em",{class:"iconfont"},"",-1)])),e[16]||(e[16]=t("b",null,null,-1)),e[17]||(e[17]=G()),t("span",Mt,H(a(r)),1),e[18]||(e[18]=t("b",null,null,-1)),t("span",{class:"more",onClick:I},e[15]||(e[15]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Rt,[e[25]||(e[25]=t("i",null,"字距",-1)),t("div",Kt,[t("span",{class:"less",onClick:B},e[20]||(e[20]=[t("em",{class:"iconfont"},"",-1)])),e[22]||(e[22]=t("b",null,null,-1)),e[23]||(e[23]=G()),t("span",zt,H(a(Q).letter.toFixed(2)),1),e[24]||(e[24]=t("b",null,null,-1)),t("span",{class:"more",onClick:b},e[21]||(e[21]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Nt,[e[31]||(e[31]=t("i",null,"行距",-1)),t("div",Ot,[t("span",{class:"less",onClick:te},e[26]||(e[26]=[t("em",{class:"iconfont"},"",-1)])),e[28]||(e[28]=t("b",null,null,-1)),e[29]||(e[29]=G()),t("span",Ht,H(a(Q).line.toFixed(1)),1),e[30]||(e[30]=t("b",null,null,-1)),t("span",{class:"more",onClick:ce},e[27]||(e[27]=[t("em",{class:"iconfont"},"",-1)]))])]),t("li",Wt,[e[36]||(e[36]=t("i",null,"段距",-1)),t("div",Jt,[t("div",Tt,[t("span",{class:"less",onClick:fe},e[32]||(e[32]=[t("em",{class:"iconfont"},"",-1)])),e[34]||(e[34]=t("b",null,null,-1)),t("span",qt,H(a(Q).paragraph.toFixed(1)),1),e[35]||(e[35]=t("b",null,null,-1)),t("span",{class:"more",onClick:me},e[33]||(e[33]=[t("em",{class:"iconfont"},"",-1)]))])])]),a(n).miniInterface?ue("",!0):(p(),v("li",Gt,[e[42]||(e[42]=t("i",null,"页面宽度",-1)),t("div",Zt,[t("span",{class:"less",onClick:ke},e[37]||(e[37]=[t("em",{class:"iconfont"},"",-1)])),e[39]||(e[39]=t("b",null,null,-1)),e[40]||(e[40]=G()),t("span",Yt,H(a(j)),1),e[41]||(e[41]=t("b",null,null,-1)),t("span",{class:"more",onClick:ve},e[38]||(e[38]=[t("em",{class:"iconfont"},"",-1)]))])])),t("li",jt,[e[48]||(e[48]=t("i",null,"翻页速度",-1)),t("div",Xt,[t("div",_t,[t("span",{class:"less",onClick:ne},e[43]||(e[43]=[t("em",{class:"iconfont"},"",-1)])),e[45]||(e[45]=t("b",null,null,-1)),e[46]||(e[46]=G()),t("span",$t,H(a(oe)),1),e[47]||(e[47]=t("b",null,null,-1)),t("span",{class:"more",onClick:de},e[44]||(e[44]=[t("em",{class:"iconfont"},"",-1)]))])])]),t("li",eo,[e[49]||(e[49]=t("i",null,"无限加载",-1)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!1}]),key:0,onClick:e[4]||(e[4]=C=>ge(!1))},"关闭",2)),(p(),v("span",{class:x(["infinite-loading-item",{selected:a(se)==!0}]),key:1,onClick:e[5]||(e[5]=C=>ge(!0))},"开启",2))])])])],6)}}},oo=Ae(to,[["__scopeId","data-v-a07727de"]]),no={class:"wrapper"},so=["onClick"],ao={__name:"CatalogItem",props:["index","source","gotoChapter","currentChapterIndex"],setup(A){const n=A,c=s=>s==n.currentChapterIndex,f=l(()=>{var s;return((s=n.source)==null?void 0:s.catas)??[n.source]});return(s,S)=>(p(),v("div",no,[(p(!0),v(ee,null,re(a(f),y=>(p(),v("div",{class:x(["cata-text",{selected:c(y.index)}]),key:y.url,onClick:w=>A.gotoChapter(y)},H(y.title),11,so))),128))]))}},io=Ae(ao,[["__scopeId","data-v-86592297"]]),ro={__name:"PopCatalog",emits:["getContent"],setup(A,{emit:n}){const c=le(),{catalog:f,popCataVisible:s,miniInterface:S}=Ve(c),y=l(()=>c.theme),w=l(()=>c.theme),k=l(()=>({background:$.themes[w.value].popup})),D=l(()=>{let r=f.value;if(S.value)return r;let I=Math.ceil(r.length/2),T=new Array(I),Q=0;for(;Qc.readingBook.index,set:r=>c.readingBook.index=r}),E=l(()=>{let r=u.value;return S.value?r:Math.floor(r/2)});qe(()=>{s.value&&K.value.scrollToIndex(E.value)});const d=n,m=r=>{const I=f.value.indexOf(r);u.value=I,c.setPopCataVisible(!1),c.setContentLoading(!0),c.saveBookProgress(),d("getContent",I)};return(r,I)=>(p(),v("div",{class:x({"cata-wrapper":!0,visible:a(s)}),style:Z(a(k))},[I[0]||(I[0]=t("div",{class:"title"},"目录",-1)),J(a(Ge),{style:{height:"300px",overflow:"auto"},class:x({night:a(y),day:!a(y)}),ref_key:"virtualListRef",ref:K,"data-key":"index","wrap-class":"data-wrapper","item-class":"cata","data-sources":a(D),"data-component":io,"estimate-size":40,"extra-props":{gotoChapter:m,currentChapterIndex:a(u)}},null,8,["class","data-sources","extra-props"])],6))}},lo=Ae(ro,[["__scopeId","data-v-6b8fd950"]]),Ao={class:"tools"},co={class:"tools"},go={key:0},uo={key:0},po={class:"content"},fo=["chapterIndex"],mo={__name:"BookChapter",setup(A){const n=U(),{isLoading:c,loadingWrapper:f}=$e(n,"正在获取信息"),s=le();try{const o=JSON.parse(localStorage.getItem("config"));o!=null&&s.setConfig(o)}catch{localStorage.removeItem("config")}const{catalog:S,popCataVisible:y,readSettingsVisible:w,miniInterface:k,showContent:D,bookProgress:K,theme:u,isNight:E}=Ve(s),d=l({get:()=>s.readingBook.chapterPos,set:o=>s.readingBook.chapterPos=o}),m=l({get:()=>s.readingBook.index,set:o=>s.readingBook.index=o}),r=l(()=>s.config.infiniteLoading),I=l(()=>s.config.font>=0?$.fonts[s.config.font]:s.config.customFontName),T=l(()=>s.config.fontSize+"px"),Q=l(()=>$.themes[u.value].body),B=l(()=>$.themes[u.value].content),b=l(()=>$.themes[u.value].popup),te=l(()=>k.value?window.innerWidth+"px":s.config.readWidth-130+"px"),ce=l(()=>k.value?window.innerWidth-33:s.config.readWidth-33),fe=l(()=>({background:Q.value})),me=l(()=>({background:B.value,width:te.value})),j=U(!1),ve=l(()=>({background:b.value,marginLeft:k.value?0:-(s.config.readWidth/2+68)+"px",display:k.value&&!j.value?"none":"block"})),ke=l(()=>({background:b.value,marginRight:k.value?0:-(s.config.readWidth/2+52)+"px",display:k.value&&!j.value?"none":"block"})),oe=()=>{s.setMiniInterface(window.innerWidth<776);const o=s.config.readWidth;de(o)},de=o=>{s.miniInterface||o+2*68>window.innerWidth&&(s.config.readWidth-=160)};De(()=>s.config.readWidth,o=>de(o));const ne=U(),se=U(),ge=()=>{_(ne.value)},V=()=>{_(se.value)},e=Ze(),q=()=>{e.push("/")},L=U([]),M=U(!0),C=(o,i=!0,P=0)=>{i&&(s.setShowContent(!1),_(ne.value,{duration:0}),ye(o,P),L.value=[]);let h=sessionStorage.getItem("bookUrl"),{title:N,index:O}=S.value[o];f(Y.getBookContent(h,O).then(g=>{if(g.data.isSuccess){let ze=g.data.data.split(/\n+/);L.value.push({index:o,content:ze,title:N}),i&&Pe(P)}else{F({message:g.data.errorMsg,type:"error"});let X=[g.data.errorMsg];L.value.push({index:o,content:X,title:N})}if(s.setContentLoading(!0),M.value=!1,s.setShowContent(!0),!g.data.isSuccess)throw g.data},g=>{F({message:"获取章节内容失败",type:"error"});let X=["获取章节内容失败!"];throw L.value.push({index:o,content:X,title:N}),s.setShowContent(!0),g}))},z=U(),ae=U(),Pe=o=>{xe(()=>{ae.value.length===1&&ae.value[0].scrollToReadedLength(o)})},Fe=Ye(()=>s.saveBookProgress(),6e4),Le=(o,i)=>{ye(o,i),Fe()};we(()=>{var o;document.title=((o=S.value[m.value])==null?void 0:o.title)||document.title});const ye=(o,i)=>{let P=sessionStorage.getItem("bookUrl");var h=JSON.parse(localStorage.getItem(P));h.index=o,h.chapterPos=i,localStorage.setItem(P,JSON.stringify(h)),h=JSON.parse(localStorage.getItem("readingRecent")),h.chapterIndex=o,h.chapterPos=i,localStorage.setItem("readingRecent",JSON.stringify(h)),m.value=o,d.value=i,sessionStorage.setItem("chapterIndex",o),sessionStorage.setItem("chapterPos",String(i))},Ce=()=>{document.visibilityState=="hidden"&&Y.saveBookProgressWithBeacon(K.value)},he=()=>{s.setContentLoading(!0);let o=m.value+1;typeof S.value[o]<"u"?(F({message:"下一章",type:"info"}),C(o),s.saveBookProgress()):F({message:"本章是最后一章",type:"error"})},Ie=()=>{s.setContentLoading(!0);let o=m.value-1;typeof S.value[o]<"u"?(F({message:"上一章",type:"info"}),C(o),s.saveBookProgress()):F({message:"本章是第一章",type:"error"})};let R;const Be=U();we(()=>{r.value?R==null||R.observe(Be.value):R==null||R.disconnect()});const Me=()=>{let o=L.value.slice(-1)[0].index;S.value.length-1>o&&(C(o+1,!1),s.saveBookProgress())},Re=o=>{if(!c.value)for(let{isIntersecting:i}of o){if(!i)return;Me()}};let ie=!0;const be=o=>{if(ie)switch(o.key){case"ArrowLeft":o.stopPropagation(),o.preventDefault(),Ie();break;case"ArrowRight":o.stopPropagation(),o.preventDefault(),he();break;case"ArrowUp":o.stopPropagation(),o.preventDefault(),document.documentElement.scrollTop===0?F({message:"已到达页面顶部",type:"warn"}):(ie=!1,_(0-document.documentElement.clientHeight+100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break;case"ArrowDown":o.stopPropagation(),o.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?F({message:"已到达页面底部",type:"warn"}):(ie=!1,_(document.documentElement.clientHeight-100,{duration:s.config.jumpDuration,callback:()=>ie=!0}));break}},Se=o=>{(o.key==="ArrowUp"||o.key==="ArrowDown")&&(o.preventDefault(),o.stopPropagation())};Ee(()=>{let o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("bookAuthor"),h=Number(sessionStorage.getItem("chapterIndex")||0),N=Number(sessionStorage.getItem("chapterPos")||0);var O=JSON.parse(localStorage.getItem(o));(O==null||h!=O.index||N!=O.chapterPos)&&(O={bookName:i,bookAuthor:P,bookUrl:o,index:h,chapterPos:N},localStorage.setItem(o,JSON.stringify(O))),oe(),window.addEventListener("resize",oe),f(Y.getChapterList(o).then(g=>{if(!g.data.isSuccess){F({message:g.data.errorMsg,type:"error"}),setTimeout(q,500);return}let X=g.data.data;s.setCatalog(X),s.setReadingBook(O),C(h,!0,N),window.addEventListener("keyup",be),window.addEventListener("keydown",Se),document.addEventListener("visibilitychange",Ce),R=new IntersectionObserver(Re,{rootMargin:"-100% 0% 20% 0%"}),r.value&&R.observe(Be.value),document.title=null,document.title=i+" | "+S.value[h].title},g=>{throw F({message:"获取书籍目录失败",type:"error"}),g}))}),Ue(()=>{window.removeEventListener("keyup",be),window.removeEventListener("keydown",Se),window.removeEventListener("resize",oe),document.removeEventListener("visibilitychange",Ce),w.value=!1,y.value=!1,R==null||R.disconnect(),R=null});const Ke=async()=>{const o=sessionStorage.getItem("bookUrl"),i=sessionStorage.getItem("bookName"),P=sessionStorage.getItem("isSeachBook"),h=JSON.parse(localStorage.getItem(o));sessionStorage.removeItem("isSeachBook"),P==="true"&&(window.confirm(`是否将《${i}》放入书架?`)||await Y.deleteBook(h))};return je(async(o,i,P)=>{await Ke(),P()}),(o,i)=>{const P=lo,h=Qe,N=oo,O=it;return p(),v("div",{class:x(["chapter-wrapper",{night:a(E),day:!a(E)}]),style:Z(a(fe)),onClick:i[2]||(i[2]=g=>j.value=!a(j))},[t("div",{class:"tool-bar",style:Z(a(ve))},[t("div",Ao,[J(h,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(y),"onUpdate:visible":i[0]||(i[0]=g=>pe(y)?y.value=g:null),"popper-class":"pop-cata"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[3]||(i[3]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"目录",-1)]),2)]),default:W(()=>[J(P,{onGetContent:C,class:"popup"})]),_:1},8,["width","visible"]),J(h,{placement:"right",width:a(ce),trigger:"click","show-arrow":!1,visible:a(w),"onUpdate:visible":i[1]||(i[1]=g=>pe(w)?w.value=g:null),"popper-class":"pop-setting"},{reference:W(()=>[t("div",{class:x(["tool-icon",{"no-point":a(M)}])},i[4]||(i[4]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"设置",-1)]),2)]),default:W(()=>[J(N,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:q},i[5]||(i[5]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"书架",-1)])),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:ge},i[6]||(i[6]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"顶部",-1)]),2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:V},i[7]||(i[7]=[t("div",{class:"iconfont"},"",-1),t("div",{class:"icon-text"},"底部",-1)]),2)])],4),t("div",{class:"read-bar",style:Z(a(ke))},[t("div",co,[t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:Ie},[i[8]||(i[8]=t("div",{class:"iconfont"},"",-1)),a(k)?(p(),v("span",go,"上一章")):ue("",!0)],2),t("div",{class:x(["tool-icon",{"no-point":a(M)}]),onClick:he},[a(k)?(p(),v("span",uo,"下一章")):ue("",!0),i[9]||(i[9]=t("div",{class:"iconfont"},"",-1))],2)])],4),i[10]||(i[10]=t("div",{class:"chapter-bar"},null,-1)),t("div",{class:"chapter",ref_key:"content",ref:n,style:Z(a(me))},[t("div",po,[t("div",{class:"top-bar",ref_key:"top",ref:ne},null,512),(p(!0),v(ee,null,re(a(L),g=>(p(),v("div",{key:g.index,chapterIndex:g.index,ref_for:!0,ref_key:"chapter",ref:z},[a(D)?(p(),Xe(O,{key:0,ref_for:!0,ref_key:"chapterRef",ref:ae,chapterIndex:g.index,contents:g.content,title:g.title,spacing:a(s).config.spacing,fontSize:a(T),fontFamily:a(I),onReadedLengthChange:Le},null,8,["chapterIndex","contents","title","spacing","fontSize","fontFamily"])):ue("",!0)],8,fo))),128)),t("div",{class:"loading",ref_key:"loading",ref:Be},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:se},null,512)])],4)],6)}}},yo=Ae(mo,[["__scopeId","data-v-1ee927f9"]]);export{yo as default}; diff --git a/app/src/main/assets/web/vue/assets/BookShelf-CKnr6cT1.js b/app/src/main/assets/web/vue/assets/BookShelf-CKnr6cT1.js new file mode 100644 index 000000000..cd1f10040 --- /dev/null +++ b/app/src/main/assets/web/vue/assets/BookShelf-CKnr6cT1.js @@ -0,0 +1 @@ +import{a0 as Q,m as A,o as l,d as h,g as t,F as b,M as W,t as g,c as $,w as L,f as N,J as _,u as J,a1 as x,a2 as q,e as R,I as G,p as z,v as E,a3 as X,L as j,a4 as ee,Q as te,j as k,y as se,D as oe,a5 as ae}from"./vendor-MihKrDrn.js";import{d as ne,i as re,u as ie}from"./loading-DPd2-h-z.js";import{_ as D,A as p,u as ce}from"./index-DfNldNYB.js";const le={class:"books-wrapper"},de={class:"wrapper"},ue=["onClick"],he={class:"cover-img"},ge=["src"],pe={class:"info"},me={class:"name"},fe={class:"sub"},ve={class:"author"},we={key:0,class:"tags"},Be={key:1,class:"update-info"},Ce={class:"size"},ke={class:"date"},Ae={key:0,class:"intro"},Ie={key:1,class:"dur-chapter"},ye={class:"last-chapter"},Se={__name:"BookItems",props:["books","isSearch"],emits:["bookClick"],setup(e,{emit:r}){Q(o=>({"6068553a":J(C)}));const i=e,v=r,B=o=>v("bookClick",o),w=o=>re(o)?p.getProxyCoverUrl(o):o,I=o=>{o.target.src=p.getProxyCoverUrl(o.target.src)},C=A(()=>i.isSearch?"space-between":"flex-start");return(o,d)=>{const m=x;return l(),h("div",le,[t("div",de,[(l(!0),h(b,null,W(e.books,n=>{var S;return l(),h("div",{class:"book",key:n.bookUrl,onClick:y=>B(n)},[t("div",he,[(l(),h("img",{class:"cover",src:w(n.coverUrl),key:n.coverUrl,onErrorOnce:I,alt:"",loading:"lazy"},null,40,ge))]),t("div",pe,[t("div",me,g(n.name),1),t("div",fe,[t("div",ve,g(n.author),1),e.isSearch?(l(),h("div",we,[(l(!0),h(b,null,W((S=n.kind)==null?void 0:S.split(",").slice(0,2),y=>(l(),$(m,{key:y},{default:L(()=>[N(g(y),1)]),_:2},1024))),128))])):_("",!0),e.isSearch?_("",!0):(l(),h("div",Be,[d[0]||(d[0]=t("div",{class:"dot"},"•",-1)),t("div",Ce,"共"+g(n.totalChapterNum)+"章",1),d[1]||(d[1]=t("div",{class:"dot"},"•",-1)),t("div",ke,g(J(ne)(n.lastCheckTime)),1)]))]),e.isSearch?(l(),h("div",Ae,g(n.intro),1)):_("",!0),e.isSearch?_("",!0):(l(),h("div",Ie," 已读:"+g(n.durChapterTitle),1)),t("div",ye,"最新:"+g(n.latestChapterTitle),1)])],8,ue)}),128))])])}}},_e=D(Se,[["__scopeId","data-v-136fc284"]]),Re="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAECUlEQVRYR7WXTYhcRRDHq3pY9yKrYBQ8KBsjgvHgwRhiQBTjYZm4Xe8NusawhwS/o9GLoKhgBGPAgJd1NdGIXwtZTbRf9Rqzl6gHTVyDeIkIgnEOghAM6oKHzTJd0sO8Zaa338zb7NjwmJn++Ndv+lVVVyOsoM3Ozl69sLBAiHiDc26NUuoKv9w5d14p9aeI/DI4OMgjIyN/lJXFMhOttQ8BgBaR0TLzEXEGAKzW+lCv+V0BmLmGiLtF5M5eQrFxRPxaRCaI6LOi9YUAzPwGADxxMYYjayaJ6MkoZKyTmU8AwF19Mp7LfElEW0LNZTvAzIcBYFufjedy00T0QLt2B4AxZo9S6qX/yXhT1jn3cpqme3IbSwDM/DgAvNlu3Dm3Uyl1HAA2IOJ2EdleEu5Io9H4EBHPVCqVLSISRsMuInrLazUBpqamhoaGhr4TkRsDgLVpmtbzPmPMLQBwOwD4vvzxw8P5IyJztVrtVL4my7L1iPhTx7Yj/jw/P79pfHx8vgmQZdkLiPhK+O8GBgauqVarv5f819FpxpjLlVJ/hYMi8mKSJHubAMz8KwBcF1EYI6IjqwRIlFImonGWiNZhlmVVRDxWYGTVAMx8HwB8EtMXka1orT0gIo9GJrxNRLH+FW8IMx8EgEeW5QDEgx5gTkQ2Bk7yr9b60hVb6rKAmc8BwJWBne+x4P3XiWhtPwGstV9FzpSzHuBvALgsMHaaiDp2ZbUwWZZNIuKuQOcfD7AAAJeEcaq1Xr9ao+3rmdknnscCzQse4LdWEukYazQaa2q12vl+QTDztwCwOdCr+zA8iYi3RQwREdl+ADDz9QDwIwB0OLaInPJRcEhEHoyEyAmt9d39ALDW2lg1hYjv+lfgC4WJgkTxcJIkPcuqbpC+qgKATwvm7PYAGwDgdBeRZ4notYvZCWPMDqXUe13W3to8C6y10yJyv//u6zj/2R6ziPiRiBwt6xPMrBExFZEdRcYR8WOt9bb8MNoKAJ+3Jvtwed05d4dSKtz+c4h4VGsdrRWttZMici8AXFVix+4homNLBUmWZQcQMc/9x4mommXZ84i4t11MKbV5dHR06bxvH5uZmbnZOfdN6O0RmMNE1CxulgCstdeKyBcAcFPrVTyltZ4wxiSVSuXplkhda72zh9P1rClFZFOSJHMdAP5Hq3rxR6eH+IGIvIOuqFlr94nIc10WdRzxy6riAMJnr2nn3JlcME3TppMWNWvtfhF5pmB8WX0RvZgEEEtaYUUbM2KtfUdE/FUubNHipvBmZIxZp5TaDwBprlQGIHLqzSHiPq01x4B7Xk6Z2d8TfDwPlwFozfd1f90598Hi4uKrY2NjFwrzQVkP81nNi/byAWOMv8gOp2n6fhnt/wDqJrRWLmhIrwAAAABJRU5ErkJggg==",Ee=q({beforeRouteEnter:(e,r,i)=>{p.getReadConfig().then(v=>v.data).then(({isSuccess:v,data:B})=>{v&&i(w=>{w.saveReadConfig(B)})}).catch(()=>i())},setup:()=>{const e=ce(),r=A(()=>e.isNight),i=E({name:"尚无阅读记录",author:"",url:"",chapterIndex:0,chapterPos:0}),v=E(null),{showLoading:B,closeLoading:w,loadingWrapper:I,isLoading:C}=ie(v,"正在获取书籍信息"),o=X([]),d=A(()=>e.shelf),m=E(""),n=E(!1);j(()=>{if(!(n.value&&m.value!="")){if(n.value=!1,o.value=[],m.value==""){o.value=d.value;return}o.value=d.value.filter(s=>s.name.includes(m.value)||s.author.includes(m.value))}});const S=()=>{m.value!=""&&(o.value=[],e.clearSearchBooks(),B(),n.value=!0,p.search(m.value,s=>{C&&w();try{e.setSearchBooks(JSON.parse(s)),o.value=e.searchBooks}catch(a){throw k.error("后端数据错误"),a}},()=>{w(),o.value.length==0&&k.info("搜索结果为空")}))},y=A(()=>e.connectStatus),Z=A(()=>e.connectType),H=A(()=>e.newConnect),U=()=>{ae.prompt("请输入 IP 和端口 ( 如:127.0.0.1:9527 或者通过内网穿透的地址)","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?:([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6][0-5][0-5][0-3][0-5])$/,inputErrorMessage:"url 形式不正确",beforeClose:(s,a,f)=>{if(s==="confirm"){e.setNewConnect(!0),a.confirmButtonLoading=!0,a.confirmButtonText="校验中……";const c=a.inputValue;p.testLeagdoHttpUrlConnection("http://"+c).then(function(u){P(u),a.confirmButtonLoading=!1,e.setConnectType("success"),e.setConnectStatus("已连接 "+c),e.clearSearchBooks(),e.setNewConnect(!1),p.setLeagdoHttpUrl("http://"+c),localStorage.setItem("remoteIp",c),M(),f()}).catch(function(u){throw a.confirmButtonLoading=!1,a.confirmButtonText="确定",k.error("访问失败,请检查您输入的 url"),e.setNewConnect(!1),u})}else f()}})},O=ee(),F=async s=>{const{bookUrl:a,name:f,author:c,durChapterIndex:u=0,durChapterPos:T=0}=s,V="respondTime"in s;V&&await p.saveBook(s),K(a,f,c,u,T,V)},K=(s,a,f,c,u,T)=>{a!=="尚无阅读记录"&&(sessionStorage.setItem("bookUrl",s),sessionStorage.setItem("bookName",a),sessionStorage.setItem("bookAuthor",f),sessionStorage.setItem("chapterIndex",c),sessionStorage.setItem("chapterPos",u),sessionStorage.setItem("isSeachBook",T),i.value={name:a,author:f,url:s,chapterIndex:c,chapterPos:u},localStorage.setItem("readingRecent",JSON.stringify(i.value)),O.push({path:"/chapter"}))},Y=()=>{I(e.saveBookProgress().finally(M))},P=s=>{try{e.setConfig(JSON.parse(s))}catch{k.info("阅读界面配置解析错误")}},M=()=>p.getBookShelf().then(s=>{e.setConnectType("success"),s.data.isSuccess?e.addBooks(s.data.data.sort(function(a,f){var c=a.durChapterTime||0,u=f.durChapterTime||0;return u-c})):k.error(s.data.errorMsg??"后端返回格式错误!"),e.setConnectStatus("已连接 "+p.legado_http_origin),e.setNewConnect(!1)});return te(()=>{let s=localStorage.getItem("readingRecent");s!=null&&(i.value=JSON.parse(s),typeof i.value.chapterIndex>"u"&&(i.value.chapterIndex=0)),p.testLeagdoHttpUrlConnection().then(Y).catch(function(a){throw e.setConnectType("danger"),e.setConnectStatus("连接异常"),k.error("后端连接失败异常,请检查阅读WEB服务或者设置其它可用IP"),e.setNewConnect(!1),a})}),{setIP:U,isNight:r,connectStatus:y,connectType:Z,newConnect:H,saveReadConfig:P,readingRecent:i,searchBook:S,books:o,handleBookClick:F,isSearching:n,SearchIcon:se,githubUrl:Re,searchWord:m}}}),Te={class:"navigation-wrapper"},ze={class:"search-wrapper"},Le={class:"bottom-wrapper"},Ne={class:"recent-wrapper"},Pe={class:"reading-recent"},Me={class:"setting-wrapper"},Ve={class:"setting-item"},be={class:"bottom-icons"},We={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},Je={class:"bottom-icon"},xe=["src"],De={class:"shelf-wrapper",ref:"shelfWrapper"};function Ze(e,r,i,v,B,w){const I=oe,C=x,o=_e;return l(),h("div",{class:z({"index-wrapper":!0,night:e.isNight,day:!e.isNight})},[t("div",Te,[r[4]||(r[4]=t("div",{class:"navigation-title-wrapper"},[t("div",{class:"navigation-title"},"阅读"),t("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),t("div",ze,[R(I,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:e.searchWord,"onUpdate:modelValue":r[0]||(r[0]=d=>e.searchWord=d),class:"search-input","prefix-icon":e.SearchIcon,onKeyup:G(e.searchBook,["enter"])},null,8,["modelValue","prefix-icon","onKeyup"])]),t("div",Le,[t("div",Ne,[r[2]||(r[2]=t("div",{class:"recent-title"},"最近阅读",-1)),t("div",Pe,[R(C,{type:e.readingRecent.name=="尚无阅读记录"?"warning":"primary",class:z(["recent-book",{"no-point":e.readingRecent.url==""}]),size:"large",onClick:r[1]||(r[1]=d=>e.toDetail(e.readingRecent.url,e.readingRecent.name,e.readingRecent.author,e.readingRecent.chapterIndex,e.readingRecent.chapterPos))},{default:L(()=>[N(g(e.readingRecent.name),1)]),_:1},8,["type","class"])])]),t("div",Me,[r[3]||(r[3]=t("div",{class:"setting-title"},"基本设定",-1)),t("div",Ve,[R(C,{type:e.connectType,size:"large",class:z(["setting-connect",{"no-point":e.newConnect}]),onClick:e.setIP},{default:L(()=>[N(g(e.connectStatus),1)]),_:1},8,["type","class","onClick"])])])]),t("div",be,[t("a",We,[t("div",Je,[t("img",{src:e.githubUrl,alt:""},null,8,xe)])])])]),t("div",De,[R(o,{books:e.books,onBookClick:e.handleBookClick,isSearch:e.isSearching},null,8,["books","onBookClick","isSearch"])],512)],2)}const Fe=D(Ee,[["render",Ze],["__scopeId","data-v-9cef10fa"]]);export{Fe as default}; diff --git a/app/src/main/assets/web/vue/assets/BookShelf-CYjbkvcG.js b/app/src/main/assets/web/vue/assets/BookShelf-CYjbkvcG.js deleted file mode 100644 index 5acf1453a..000000000 --- a/app/src/main/assets/web/vue/assets/BookShelf-CYjbkvcG.js +++ /dev/null @@ -1 +0,0 @@ -import{a0 as q,m as B,o as h,d as p,g as t,F as J,M as b,t as g,c as G,w as L,f as M,J as x,u as n,a1 as Z,v as S,a2 as X,L as j,a3 as $,Q as ee,j as w,e as E,x as te,I as se,p as z,a4 as oe,D as ae,y as ne}from"./vendor-Blq-ceJ6.js";import{d as re,i as ce,u as ie}from"./loading-F0lQefyD.js";import{_ as D,A as m,u as le}from"./index-DmLQnM_t.js";const de={class:"books-wrapper"},ue={class:"wrapper"},he=["onClick"],pe={class:"cover-img"},ge=["src"],me={class:"info"},ve={class:"name"},fe={class:"sub"},_e={class:"author"},we={key:0,class:"tags"},Be={key:1,class:"update-info"},Ae={class:"size"},Ce={class:"date"},Ie={key:0,class:"intro"},ye={key:1,class:"dur-chapter"},ke={class:"last-chapter"},xe={__name:"BookItems",props:["books","isSearch"],emits:["bookClick"],setup(v,{emit:s}){q(i=>({"6068553a":n(T)}));const C=v,r=s,I=i=>r("bookClick",i),R=i=>ce(i)?m.getProxyCoverUrl(i):i,y=i=>{i.target.src=m.getProxyCoverUrl(i.target.src)},T=B(()=>C.isSearch?"space-between":"flex-start");return(i,l)=>{const k=Z;return h(),p("div",de,[t("div",ue,[(h(!0),p(J,null,b(v.books,a=>{var f;return h(),p("div",{class:"book",key:a.bookUrl,onClick:A=>I(a)},[t("div",pe,[(h(),p("img",{class:"cover",src:R(a.coverUrl),key:a.coverUrl,onErrorOnce:y,alt:"",loading:"lazy"},null,40,ge))]),t("div",me,[t("div",ve,g(a.name),1),t("div",fe,[t("div",_e,g(a.author),1),v.isSearch?(h(),p("div",we,[(h(!0),p(J,null,b((f=a.kind)==null?void 0:f.split(",").slice(0,2),A=>(h(),G(k,{key:A},{default:L(()=>[M(g(A),1)]),_:2},1024))),128))])):x("",!0),v.isSearch?x("",!0):(h(),p("div",Be,[l[0]||(l[0]=t("div",{class:"dot"},"•",-1)),t("div",Ae,"共"+g(a.totalChapterNum)+"章",1),l[1]||(l[1]=t("div",{class:"dot"},"•",-1)),t("div",Ce,g(n(re)(a.lastCheckTime)),1)]))]),v.isSearch?(h(),p("div",Ie,g(a.intro),1)):x("",!0),v.isSearch?x("",!0):(h(),p("div",ye," 已读:"+g(a.durChapterTitle),1)),t("div",ke,"最新:"+g(a.latestChapterTitle),1)])],8,he)}),128))])])}}},Se=D(xe,[["__scopeId","data-v-136fc284"]]),Ee="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==",Re={class:"navigation-wrapper"},Te={class:"search-wrapper"},ze={class:"bottom-wrapper"},Le={class:"recent-wrapper"},Me={class:"reading-recent"},Pe={class:"setting-wrapper"},Ne={class:"setting-item"},Ve={class:"bottom-icons"},Je={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},be={class:"bottom-icon"},Ze=["src"],De={__name:"BookShelf",setup(v){const s=le(),C=B(()=>s.isNight),r=S({name:"尚无阅读记录",author:"",url:"",chapterIndex:0,chapterPos:0}),I=S(null),{showLoading:R,closeLoading:y,loadingWrapper:T,isLoading:i}=ie(I,"正在获取书籍信息"),l=X([]),k=B(()=>s.shelf),a=S(""),f=S(!1);j(()=>{if(!(f.value&&a.value!="")){if(f.value=!1,l.value=[],a.value==""){l.value=k.value;return}l.value=k.value.filter(o=>o.name.includes(a.value)||o.author.includes(a.value))}});const A=()=>{a.value!=""&&(l.value=[],s.clearSearchBooks(),R(),f.value=!0,m.search(a.value,o=>{i&&y();try{s.setSearchBooks(JSON.parse(o)),l.value=s.searchBooks}catch(e){throw w.error("后端数据错误"),e}},()=>{y(),l.value.length==0&&w.info("搜索结果为空")}))},W=B(()=>s.connectStatus),H=B(()=>s.connectType),O=B(()=>s.newConnect),U=()=>{oe.prompt("请输入 IP 和端口 ( 如:127.0.0.1:9527 或者通过内网穿透的地址)","提示",{confirmButtonText:"确定",cancelButtonText:"取消",inputPattern:/^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?:([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6][0-5][0-5][0-3][0-5])$/,inputErrorMessage:"url 形式不正确",beforeClose:(o,e,u)=>{if(o==="confirm"){s.setNewConnect(!0),e.confirmButtonLoading=!0,e.confirmButtonText="校验中……";const c=e.inputValue;m.testLeagdoHttpUrlConnection("http://"+c).then(function(d){Q(d),e.confirmButtonLoading=!1,s.setConnectType("success"),s.setConnectStatus("已连接 "+c),s.clearSearchBooks(),s.setNewConnect(!1),m.setLeagdoHttpUrl("http://"+c),localStorage.setItem("remoteIp",c),N(),u()}).catch(function(d){throw e.confirmButtonLoading=!1,e.confirmButtonText="确定",w.error("访问失败,请检查您输入的 url"),s.setNewConnect(!1),d})}else u()}})},F=$(),K=async o=>{const{bookUrl:e,name:u,author:c,durChapterIndex:d=0,durChapterPos:_=0}=o,V="respondTime"in o;V&&await m.saveBook(o),P(e,u,c,d,_,V)},P=(o,e,u,c,d,_)=>{e!=="尚无阅读记录"&&(sessionStorage.setItem("bookUrl",o),sessionStorage.setItem("bookName",e),sessionStorage.setItem("bookAuthor",u),sessionStorage.setItem("chapterIndex",c),sessionStorage.setItem("chapterPos",d),sessionStorage.setItem("isSeachBook",_),r.value={name:e,author:u,url:o,chapterIndex:c,chapterPos:d},localStorage.setItem("readingRecent",JSON.stringify(r.value)),F.push({path:"/chapter"}))},Y=()=>{T(s.saveBookProgress().finally(N))},Q=o=>{try{s.setConfig(JSON.parse(o))}catch{w.info("阅读界面解析错误")}},N=()=>m.getBookShelf().then(o=>{s.setConnectType("success"),o.data.isSuccess?s.addBooks(o.data.data.sort(function(e,u){var c=e.durChapterTime||0,d=u.durChapterTime||0;return d-c})):w.error(o.data.errorMsg??"后端返回格式错误!"),s.setConnectStatus("已连接 "+m.legado_http_origin),s.setNewConnect(!1)});return ee(()=>{let o=localStorage.getItem("readingRecent");o!=null&&(r.value=JSON.parse(o),typeof r.value.chapterIndex>"u"&&(r.value.chapterIndex=0)),m.testLeagdoHttpUrlConnection().then(Y).catch(function(e){throw s.setConnectType("danger"),s.setConnectStatus("连接异常"),w.error("后端连接失败异常,请检查阅读WEB服务或者设置其它可用IP"),s.setNewConnect(!1),e})}),(o,e)=>{const u=ae,c=Z,d=Se;return h(),p("div",{class:z({"index-wrapper":!0,night:n(C),day:!n(C)})},[t("div",Re,[e[4]||(e[4]=t("div",{class:"navigation-title-wrapper"},[t("div",{class:"navigation-title"},"阅读"),t("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),t("div",Te,[E(u,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:n(a),"onUpdate:modelValue":e[0]||(e[0]=_=>te(a)?a.value=_:null),class:"search-input","prefix-icon":n(ne),onKeyup:se(A,["enter"])},null,8,["modelValue","prefix-icon"])]),t("div",ze,[t("div",Le,[e[2]||(e[2]=t("div",{class:"recent-title"},"最近阅读",-1)),t("div",Me,[E(c,{type:n(r).name=="尚无阅读记录"?"warning":"primary",class:z(["recent-book",{"no-point":n(r).url==""}]),size:"large",onClick:e[1]||(e[1]=_=>P(n(r).url,n(r).name,n(r).author,n(r).chapterIndex,n(r).chapterPos))},{default:L(()=>[M(g(n(r).name),1)]),_:1},8,["type","class"])])]),t("div",Pe,[e[3]||(e[3]=t("div",{class:"setting-title"},"基本设定",-1)),t("div",Ne,[E(c,{type:n(H),size:"large",class:z(["setting-connect",{"no-point":n(O)}]),onClick:U},{default:L(()=>[M(g(n(W)),1)]),_:1},8,["type","class"])])])]),t("div",Ve,[t("a",Je,[t("div",be,[t("img",{src:n(Ee),alt:""},null,8,Ze)])])])]),t("div",{class:"shelf-wrapper",ref_key:"shelfWrapper",ref:I},[E(d,{books:n(l),onBookClick:K,isSearch:n(f)},null,8,["books","isSearch"])],512)],2)}}},Ue=D(De,[["__scopeId","data-v-cdefedfd"]]);export{Ue as default}; diff --git a/app/src/main/assets/web/vue/assets/BookShelf-BFNzrMuY.css b/app/src/main/assets/web/vue/assets/BookShelf-DxMHgvyY.css similarity index 62% rename from app/src/main/assets/web/vue/assets/BookShelf-BFNzrMuY.css rename to app/src/main/assets/web/vue/assets/BookShelf-DxMHgvyY.css index 865d6e29d..d2bbbbea6 100644 --- a/app/src/main/assets/web/vue/assets/BookShelf-BFNzrMuY.css +++ b/app/src/main/assets/web/vue/assets/BookShelf-DxMHgvyY.css @@ -1 +1 @@ -@charset "UTF-8";.books-wrapper[data-v-136fc284]{overflow:auto}.books-wrapper .wrapper[data-v-136fc284]{display:grid;grid-template-columns:repeat(auto-fill,380px);justify-content:space-around;grid-gap:10px}.books-wrapper .wrapper .book[data-v-136fc284]{-webkit-user-select:none;user-select:none;display:flex;cursor:pointer;margin-bottom:18px;padding:24px;width:360px;flex-direction:row;justify-content:space-around}.books-wrapper .wrapper .book .cover-img[data-v-136fc284],.books-wrapper .wrapper .book .cover-img .cover[data-v-136fc284]{width:84px;height:112px}.books-wrapper .wrapper .book .info[data-v-136fc284]{display:flex;flex-direction:column;justify-content:space-around;align-items:left;height:112px;margin-left:20px;flex:1;overflow:hidden}.books-wrapper .wrapper .book .info .name[data-v-136fc284]{width:fit-content;font-size:16px;font-weight:700;color:#33373d}.books-wrapper .wrapper .book .info .sub[data-v-136fc284]{display:flex;flex-direction:row;align-items:baseline;justify-content:var(--6068553a);font-size:12px;font-weight:600;color:#6b6b6b}.books-wrapper .wrapper .book .info .sub .tags[data-v-136fc284] .el-tag{margin-right:.5em}.books-wrapper .wrapper .book .info .sub .update-info[data-v-136fc284]{display:flex}.books-wrapper .wrapper .book .info .sub .update-info .dot[data-v-136fc284]{margin:0 7px}.books-wrapper .wrapper .book .info .intro[data-v-136fc284],.books-wrapper .wrapper .book .info .dur-chapter[data-v-136fc284],.books-wrapper .wrapper .book .info .last-chapter[data-v-136fc284]{color:#969ba3;font-size:13px;margin-top:3px;font-weight:500;word-wrap:break-word;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;text-align:left}.books-wrapper .wrapper .book[data-v-136fc284]:hover{background:#0000001a;transition-duration:.5s}.books-wrapper .wrapper[data-v-136fc284]:last-child{margin-right:auto}.books-wrapper[data-v-136fc284]::-webkit-scrollbar{width:0!important}@media screen and (max-width: 750px){.books-wrapper .wrapper[data-v-136fc284]{display:flex;flex-direction:column}.books-wrapper .wrapper .book[data-v-136fc284]{box-sizing:border-box;width:100%;margin-bottom:0;padding:10px 20px}}body{padding:0;margin:0;height:100vh}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;margin:0;height:100%}@font-face{font-family:FZZCYSK;src:local("☺"),url(./shelffont-D-W4UqG-.ttf);font-style:normal;font-weight:400}.index-wrapper[data-v-cdefedfd]{height:100%;width:100%;display:flex;flex-direction:row}.index-wrapper .navigation-wrapper[data-v-cdefedfd]{width:260px;min-width:260px;padding:48px 36px;background-color:#f7f7f7}.index-wrapper .navigation-wrapper .navigation-title[data-v-cdefedfd]{font-size:24px;font-weight:500;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .navigation-sub-title[data-v-cdefedfd]{font-size:16px;font-weight:300;font-family:FZZCYSK;margin-top:16px;color:#b1b1b1}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-cdefedfd]{border-radius:50%;margin-top:24px}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-cdefedfd] .el-input__wrapper{border-radius:50px;border-color:#e3e3e3}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-cdefedfd]{display:flex;flex-direction:column}.index-wrapper .navigation-wrapper .recent-wrapper[data-v-cdefedfd]{margin-top:36px}.index-wrapper .navigation-wrapper .recent-wrapper .recent-title[data-v-cdefedfd]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent[data-v-cdefedfd]{margin:18px 0}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent .recent-book[data-v-cdefedfd]{font-size:10px;cursor:pointer}.index-wrapper .navigation-wrapper .setting-wrapper[data-v-cdefedfd]{margin-top:36px}.index-wrapper .navigation-wrapper .setting-wrapper .setting-title[data-v-cdefedfd]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .setting-wrapper .no-point[data-v-cdefedfd]{pointer-events:none}.index-wrapper .navigation-wrapper .setting-wrapper .setting-connect[data-v-cdefedfd]{font-size:8px;margin-top:16px;cursor:pointer}.index-wrapper .navigation-wrapper .bottom-icons[data-v-cdefedfd]{position:fixed;bottom:0;height:120px;width:260px;align-items:center;display:flex;flex-direction:row}.index-wrapper .shelf-wrapper[data-v-cdefedfd]{padding:48px;width:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}@media screen and (max-width: 750px){.index-wrapper[data-v-cdefedfd]{overflow-x:hidden;flex-direction:column}.index-wrapper .navigation-wrapper[data-v-cdefedfd]{padding:20px 24px;box-sizing:border-box;width:100%}.index-wrapper .navigation-wrapper .navigation-title-wrapper[data-v-cdefedfd]{white-space:nowrap;display:flex;justify-content:space-between;align-items:flex-end}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-cdefedfd]{flex-direction:row}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-cdefedfd]>*{flex-grow:1;margin-top:18px}.index-wrapper .navigation-wrapper .bottom-wrapper>* .reading-recent[data-v-cdefedfd],.index-wrapper .navigation-wrapper .bottom-wrapper>* .setting-item[data-v-cdefedfd]{margin-bottom:0}.index-wrapper .navigation-wrapper .bottom-icons[data-v-cdefedfd]{display:none}.index-wrapper .shelf-wrapper[data-v-cdefedfd]{padding:0;flex-grow:1}.index-wrapper .shelf-wrapper[data-v-cdefedfd] .el-loading-spinner{display:none}}.night[data-v-cdefedfd] .navigation-wrapper{background-color:#454545}.night[data-v-cdefedfd] .navigation-wrapper .navigation-title{color:#aeaeae}.night[data-v-cdefedfd] .navigation-wrapper .search-wrapper .search-input .el-input__wrapper{background-color:#454545}.night[data-v-cdefedfd] .navigation-wrapper .search-wrapper .search-input .el-input__inner{color:#b1b1b1}.night[data-v-cdefedfd] .shelf-wrapper{background-color:#161819} +@charset "UTF-8";.books-wrapper[data-v-136fc284]{overflow:auto}.books-wrapper .wrapper[data-v-136fc284]{display:grid;grid-template-columns:repeat(auto-fill,380px);justify-content:space-around;grid-gap:10px}.books-wrapper .wrapper .book[data-v-136fc284]{-webkit-user-select:none;user-select:none;display:flex;cursor:pointer;margin-bottom:18px;padding:24px;width:360px;flex-direction:row;justify-content:space-around}.books-wrapper .wrapper .book .cover-img[data-v-136fc284],.books-wrapper .wrapper .book .cover-img .cover[data-v-136fc284]{width:84px;height:112px}.books-wrapper .wrapper .book .info[data-v-136fc284]{display:flex;flex-direction:column;justify-content:space-around;align-items:left;height:112px;margin-left:20px;flex:1;overflow:hidden}.books-wrapper .wrapper .book .info .name[data-v-136fc284]{width:fit-content;font-size:16px;font-weight:700;color:#33373d}.books-wrapper .wrapper .book .info .sub[data-v-136fc284]{display:flex;flex-direction:row;align-items:baseline;justify-content:var(--6068553a);font-size:12px;font-weight:600;color:#6b6b6b}.books-wrapper .wrapper .book .info .sub .tags[data-v-136fc284] .el-tag{margin-right:.5em}.books-wrapper .wrapper .book .info .sub .update-info[data-v-136fc284]{display:flex}.books-wrapper .wrapper .book .info .sub .update-info .dot[data-v-136fc284]{margin:0 7px}.books-wrapper .wrapper .book .info .intro[data-v-136fc284],.books-wrapper .wrapper .book .info .dur-chapter[data-v-136fc284],.books-wrapper .wrapper .book .info .last-chapter[data-v-136fc284]{color:#969ba3;font-size:13px;margin-top:3px;font-weight:500;word-wrap:break-word;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;text-align:left}.books-wrapper .wrapper .book[data-v-136fc284]:hover{background:#0000001a;transition-duration:.5s}.books-wrapper .wrapper[data-v-136fc284]:last-child{margin-right:auto}.books-wrapper[data-v-136fc284]::-webkit-scrollbar{width:0!important}@media screen and (max-width: 750px){.books-wrapper .wrapper[data-v-136fc284]{display:flex;flex-direction:column}.books-wrapper .wrapper .book[data-v-136fc284]{box-sizing:border-box;width:100%;margin-bottom:0;padding:10px 20px}}body{padding:0;margin:0;height:100vh}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;margin:0;height:100%}@font-face{font-family:FZZCYSK;src:local("☺"),url(./shelffont-D-W4UqG-.ttf);font-style:normal;font-weight:400}.index-wrapper[data-v-9cef10fa]{height:100%;width:100%;display:flex;flex-direction:row}.index-wrapper .navigation-wrapper[data-v-9cef10fa]{width:260px;min-width:260px;padding:48px 36px;background-color:#f7f7f7}.index-wrapper .navigation-wrapper .navigation-title[data-v-9cef10fa]{font-size:24px;font-weight:500;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .navigation-sub-title[data-v-9cef10fa]{font-size:16px;font-weight:300;font-family:FZZCYSK;margin-top:16px;color:#b1b1b1}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-9cef10fa]{border-radius:50%;margin-top:24px}.index-wrapper .navigation-wrapper .search-wrapper .search-input[data-v-9cef10fa] .el-input__wrapper{border-radius:50px;border-color:#e3e3e3}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-9cef10fa]{display:flex;flex-direction:column}.index-wrapper .navigation-wrapper .recent-wrapper[data-v-9cef10fa]{margin-top:36px}.index-wrapper .navigation-wrapper .recent-wrapper .recent-title[data-v-9cef10fa]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent[data-v-9cef10fa]{margin:18px 0}.index-wrapper .navigation-wrapper .recent-wrapper .reading-recent .recent-book[data-v-9cef10fa]{font-size:10px;cursor:pointer}.index-wrapper .navigation-wrapper .setting-wrapper[data-v-9cef10fa]{margin-top:36px}.index-wrapper .navigation-wrapper .setting-wrapper .setting-title[data-v-9cef10fa]{font-size:14px;color:#b1b1b1;font-family:FZZCYSK}.index-wrapper .navigation-wrapper .setting-wrapper .no-point[data-v-9cef10fa]{pointer-events:none}.index-wrapper .navigation-wrapper .setting-wrapper .setting-connect[data-v-9cef10fa]{font-size:8px;margin-top:16px;cursor:pointer}.index-wrapper .navigation-wrapper .bottom-icons[data-v-9cef10fa]{position:fixed;bottom:0;height:120px;width:260px;align-items:center;display:flex;flex-direction:row}.index-wrapper .shelf-wrapper[data-v-9cef10fa]{padding:48px;width:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}@media screen and (max-width: 750px){.index-wrapper[data-v-9cef10fa]{overflow-x:hidden;flex-direction:column}.index-wrapper .navigation-wrapper[data-v-9cef10fa]{padding:20px 24px;box-sizing:border-box;width:100%}.index-wrapper .navigation-wrapper .navigation-title-wrapper[data-v-9cef10fa]{white-space:nowrap;display:flex;justify-content:space-between;align-items:flex-end}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-9cef10fa]{flex-direction:row}.index-wrapper .navigation-wrapper .bottom-wrapper[data-v-9cef10fa]>*{flex-grow:1;margin-top:18px}.index-wrapper .navigation-wrapper .bottom-wrapper>* .reading-recent[data-v-9cef10fa],.index-wrapper .navigation-wrapper .bottom-wrapper>* .setting-item[data-v-9cef10fa]{margin-bottom:0}.index-wrapper .navigation-wrapper .bottom-icons[data-v-9cef10fa]{display:none}.index-wrapper .shelf-wrapper[data-v-9cef10fa]{padding:0;flex-grow:1}.index-wrapper .shelf-wrapper[data-v-9cef10fa] .el-loading-spinner{display:none}}.night[data-v-9cef10fa] .navigation-wrapper{background-color:#454545}.night[data-v-9cef10fa] .navigation-wrapper .navigation-title{color:#aeaeae}.night[data-v-9cef10fa] .navigation-wrapper .search-wrapper .search-input .el-input__wrapper{background-color:#454545}.night[data-v-9cef10fa] .navigation-wrapper .search-wrapper .search-input .el-input__inner{color:#b1b1b1}.night[data-v-9cef10fa] .shelf-wrapper{background-color:#161819} diff --git a/app/src/main/assets/web/vue/assets/index-DmLQnM_t.js b/app/src/main/assets/web/vue/assets/index-DfNldNYB.js similarity index 69% rename from app/src/main/assets/web/vue/assets/index-DmLQnM_t.js rename to app/src/main/assets/web/vue/assets/index-DfNldNYB.js index 34ba2cc01..f2220bf54 100644 --- a/app/src/main/assets/web/vue/assets/index-DmLQnM_t.js +++ b/app/src/main/assets/web/vue/assets/index-DfNldNYB.js @@ -1,10 +1,10 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BookShelf-CYjbkvcG.js","./vendor-Blq-ceJ6.js","./vendor-Bui7wm94.css","./loading-F0lQefyD.js","./loading-DyaW7RXx.css","./BookShelf-BFNzrMuY.css","./BookChapter-DtmKdqmP.js","./BookChapter-C8lBKSzj.css"])))=>i.map(i=>d[i]); -import{r as Ee,o as g,c as C,a as ne,b as re,d as E,e as m,w as p,f as y,u as s,l as L,g as h,F as O,E as Ie,h as me,i as Ve,j as B,k as Se,m as j,t as X,n as he,p as fe,q as se,s as Ne,v as P,x as H,y as ye,z as Re,A as Te,B as ue,V as Le,C as Oe,D as Y,G as Pe,H as ie,I as $e,J as N,K as De,L as Je,M as A,N as be,O as _e,P as F,Q as je,R as Ae,S as He,T as Ke,U as Me,W as We,X as Fe,Y as qe,Z as ze,_ as Ge,$ as Qe}from"./vendor-Blq-ceJ6.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function t(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=t(n);fetch(n.href,i)}})();const $=(e,o)=>{const t=e.__vccOpts||e;for(const[r,n]of o)t[r]=n;return t},Xe={};function Ye(e,o){const t=Ee("router-view");return g(),C(t)}const Ze=$(Xe,[["render",Ye]]),et="modulepreload",tt=function(e,o){return new URL(e,o).href},ce={},de=function(o,t,r){let n=Promise.resolve();if(t&&t.length>0){const c=document.getElementsByTagName("link"),d=document.querySelector("meta[property=csp-nonce]"),k=(d==null?void 0:d.nonce)||(d==null?void 0:d.getAttribute("nonce"));n=Promise.allSettled(t.map(b=>{if(b=tt(b,r),b in ce)return;ce[b]=!0;const U=b.endsWith(".css"),I=U?'[rel="stylesheet"]':"";if(!!r)for(let _=c.length-1;_>=0;_--){const v=c[_];if(v.href===b&&(!U||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${I}`))return;const l=document.createElement("link");if(l.rel=U?"stylesheet":et,U||(l.as="script"),l.crossOrigin="",l.href=b,k&&l.setAttribute("nonce",k),document.head.appendChild(l),U)return new Promise((_,v)=>{l.addEventListener("load",_),l.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${b}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return n.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return o().catch(i)})},ke=[{path:"/",name:"shelf",component:()=>de(()=>import("./BookShelf-CYjbkvcG.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)},{path:"/chapter",name:"chapter",component:()=>de(()=>import("./BookChapter-DtmKdqmP.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)}];ne({history:re(),routes:ke});const ot={style:{"margin-top":"20px"}},nt={__name:"SourceHelp",setup(e){return(o,t)=>{const r=Ie,n=me;return g(),E(O,null,[m(r,{icon:s(L),href:"/help/#appHelp",target:"_blank"},{default:p(()=>t[0]||(t[0]=[y("APP帮助文档")])),_:1},8,["icon"]),t[19]||(t[19]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#ruleHelp",target:"_blank"},{default:p(()=>t[1]||(t[1]=[y("书源制作教程")])),_:1},8,["icon"]),t[20]||(t[20]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#jsHelp",target:"_blank"},{default:p(()=>t[2]||(t[2]=[y("js变量和函数")])),_:1},8,["icon"]),t[21]||(t[21]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#xpathHelp",target:"_blank"},{default:p(()=>t[3]||(t[3]=[y("xpath语法教程")])),_:1},8,["icon"]),t[22]||(t[22]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#regexHelp",target:"_blank"},{default:p(()=>t[4]||(t[4]=[y("正则表达式教程")])),_:1},8,["icon"]),t[23]||(t[23]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#txtTocRuleHelp",target:"_blank"},{default:p(()=>t[5]||(t[5]=[y("txt目录正则说明")])),_:1},8,["icon"]),t[24]||(t[24]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#debugHelp",target:"_blank"},{default:p(()=>t[6]||(t[6]=[y("书源调试说明")])),_:1},8,["icon"]),t[25]||(t[25]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#httpTTSHelp",target:"_blank"},{default:p(()=>t[7]||(t[7]=[y("在线朗读规则")])),_:1},8,["icon"]),t[26]||(t[26]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavBookHelp",target:"_blank"},{default:p(()=>t[8]||(t[8]=[y(" WebDav书籍简明使用教程")])),_:1},8,["icon"]),t[27]||(t[27]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavHelp",target:"_blank"},{default:p(()=>t[9]||(t[9]=[y(" WebDav备份教程")])),_:1},8,["icon"]),t[28]||(t[28]=h("br",null,null,-1)),m(r,{icon:s(L),href:"https://regexr-cn.com/",target:"_blank"},{default:p(()=>t[10]||(t[10]=[y("正则表达式在线验证工具")])),_:1},8,["icon"]),t[29]||(t[29]=h("br",null,null,-1)),h("div",ot,[h("span",null,[m(n,null,{default:p(()=>t[11]||(t[11]=[h("code",null,"^$()[]{}.?+*|",-1),y(" 这些是Java正则特殊符号,匹配需转义")])),_:1})]),t[15]||(t[15]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[12]||(t[12]=[h("code",null,"(?s)",-1),y(" 前缀表示跨行解析")])),_:1})]),t[16]||(t[16]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[13]||(t[13]=[h("code",null,"(?m)",-1),y(" 前缀表示逐行匹配")])),_:1})]),t[17]||(t[17]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[14]||(t[14]=[h("code",null,"(?i)",-1),y(" 前缀表示忽略大小写")])),_:1})]),t[18]||(t[18]=h("br",null,null,-1))])],64)}}},rt=$(nt,[["__scopeId","data-v-fe99b178"]]),st=1e3,w=Ve.create({baseURL:localStorage.getItem("remoteIp")||location.origin,timeout:120*st});let K,le;const ve=e=>{let o;const{protocol:t,hostname:r,port:n}=new URL(e);if(!t.startsWith("http"))throw new Error("unexpect protocol:"+e);w.defaults.baseURL=e,K=e,n!==""?o=Number(n)+1:o=t.startsWith("https:")?"444":"81",le=`${t.startsWith("https:")?"wss://":"ws://"}${r}:${o}`};ve(w.defaults.baseURL);const it=async e=>{const{data:o={}}=await w.get("/getReadConfig",{baseURL:e,timeout:3e3});try{if("isSuccess"in o)return o.data;throw new Error("ReadConfig后端返回格式错误")}catch{throw new Error("ReadConfig后端返回格式错误")}},lt=/source/i.test(location.href),at=e=>{throw lt&&B({message:"后端错误,检查网络或者阅读app",type:"error"}),e};w.interceptors.response.use(e=>e,at);const ut=()=>w.get("/getReadConfig",{timeout:3e3}),ct=e=>w.post("/saveReadConfig",e),dt=e=>w.post("/saveBookProgress",e),pt=e=>{e&&navigator.sendBeacon(`${K}/saveBookProgress`,JSON.stringify(e))},gt=()=>w.get("/getBookshelf"),mt=e=>w.get("/getChapterList?url="+encodeURIComponent(e)),St=(e,o)=>w.get("/getBookContent?url="+encodeURIComponent(e)+"&index="+o),ht=(e,o,t)=>{const r=`${le}/searchBook`,n=new WebSocket(r);n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=({data:i})=>o(i),n.onclose=()=>{t()}},ft=e=>w.post("/saveBook",e),yt=e=>w.post("/deleteBook",e),Q=/bookSource/i.test(location.href),bt=()=>Q?w.get("/getBookSources"):w.get("/getRssSources"),_t=e=>Q?w.post("/saveBookSource",e):w.post("/saveRssSource",e),kt=e=>Q?w.post("/saveBookSources",e):w.post("/saveRssSources",e),vt=e=>Q?w.post("/deleteBookSources",e):w.post("/deleteRssSources",e),Ct=(e,o,t,r)=>{const n=`${le}/${Q?"bookSource":"rssSource"}Debug`,i=new WebSocket(n);i.onopen=()=>{i.send(JSON.stringify({tag:e,key:o}))},i.onmessage=({data:c})=>t(c),i.onclose=()=>{B({message:"调试已关闭!",type:"info"}),r()}},wt=e=>e.startsWith(K)?e:K+"/cover?path="+encodeURIComponent(e),Ut=(e,o)=>e.startsWith(K)?e:K+"/image?path="+encodeURIComponent(e)+"&url="+encodeURIComponent(sessionStorage.getItem("bookUrl"))+"&width="+o,J={getReadConfig:ut,saveReadConfig:ct,saveBookProgress:dt,saveBookProgressWithBeacon:pt,getBookShelf:gt,getChapterList:mt,getBookContent:St,search:ht,saveBook:ft,deleteBook:yt,getSources:bt,saveSources:kt,saveSource:_t,deleteSource:vt,debug:Ct,getProxyCoverUrl:wt,getProxyImageUrl:Ut,testLeagdoHttpUrlConnection:it,setLeagdoHttpUrl:ve,legado_http_origin:K},G=e=>e==null||e.length===0||/^\s+$/.test(e),ae=e=>"bookSourceName"in e,Bt=e=>ae(e)?!G(e.bookSourceName)&&!G(e.bookSourceUrl)&&!G(e.bookSourceType):!G(e.sourceName)&&!G(e.sourceUrl),Z=e=>ae(e)?e.bookSourceUrl:e.sourceUrl,xt=(e,o)=>{var t,r,n,i,c,d,k,b;return ae(e)?(((t=e.bookSourceName)==null?void 0:t.includes(o))||((r=e.bookSourceUrl)==null?void 0:r.includes(o))||((n=e.bookSourceGroup)==null?void 0:n.includes(o))||((i=e.bookSourceComment)==null?void 0:i.includes(o)))??!1:(((c=e.sourceName)==null?void 0:c.includes(o))||((d=e.sourceUrl)==null?void 0:d.includes(o))||((k=e.sourceGroup)==null?void 0:k.includes(o))||((b=e.sourceComment)==null?void 0:b.includes(o)))??!1},oe=e=>{const o=new Map;return e.forEach(t=>o.set(Z(t),t)),o},Et={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleReview:{},ruleExplore:{}},It={},q=/bookSource/i.test(location.href),pe=q?Et:It,M=Se("source",{state:()=>({bookSources:[],rssSources:[],savedSources:[],currentSource:pe,currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>q?e.bookSources:e.rssSources,sourcesMap:e=>oe(e.sources),savedSourcesMap:e=>oe(e.savedSources),currentSourceUrl:e=>q?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>q?e.currentSource.ruleSearch.checkKeyWord||"我的":null},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){q?this.bookSources=e:this.rssSources=e},setPushReturnSources(e){this.savedSources=e},deleteSources(e){let o=q?this.bookSources:this.rssSources;e.forEach(t=>{let r=o.indexOf(t);r>-1&&o.splice(r,1)})},saveCurrentSource(){let e=this.currentSource,o=this.sourcesMap;o.set(Z(e),JSON.parse(JSON.stringify(e))),this.saveSources(Array.from(o.values()))},changeCurrentSource(e){this.currentSource=JSON.parse(JSON.stringify(e))},changeTabName(e){this.currentTab=e,localStorage.setItem("tabName",e)},changeEditTabSource(e){this.editTabSource=JSON.parse(JSON.stringify(e))},editHistory(e){let o;if(localStorage.getItem("history"))o=JSON.parse(localStorage.getItem("history")),o.new.push(e),o.new.length>50&&o.new.shift(),o.old.length>50&&o.old.shift(),localStorage.setItem("history",JSON.stringify(o));else{const t={new:[e],old:[]};localStorage.setItem("history",JSON.stringify(t))}},editHistoryUndo(){if(localStorage.getItem("history")){let e=JSON.parse(localStorage.getItem("history"));e.old.push(this.currentSource),e.new.length&&(this.currentSource=e.new.pop()),localStorage.setItem("history",JSON.stringify(e))}},clearAllHistory(){localStorage.setItem("history",JSON.stringify({new:[],old:[]}))},clearEdit(){this.editTabSource={},this.currentSource=pe},clearAllSource(){this.bookSources=[],this.rssSources=[],this.savedSources=[]}}}),Vt={__name:"SourceItem",props:["source"],setup(e){const o=e,t=M(),r=j(()=>t.currentSourceUrl),n=j(()=>Z(o.source)),i=d=>{t.changeCurrentSource(d)},c=j(()=>{const d=t.savedSourcesMap;return d.size==0?!1:!d.has(n.value)});return(d,k)=>{const b=se,U=Ne;return g(),C(U,{size:"large",border:"",label:s(n),class:fe({error:s(c),edit:s(n)==s(r)})},{default:p(()=>[y(X(e.source.bookSourceName||e.source.sourceName)+" ",1),m(b,{text:"",icon:s(he),onClick:k[0]||(k[0]=I=>i(e.source))},null,8,["icon"])]),_:1},8,["label","class"])}}},Nt=$(Vt,[["__scopeId","data-v-c8501b1a"]]),Rt={class:"tool"},Tt={__name:"SourceList",setup(e){const o=M(),t=P([]),r=P(""),n=j(()=>o.sources),i=j(()=>{const u=r.value;return u===""?n.value:n.value.filter(l=>xt(l,u))}),c=j(()=>{const u=t.value;if(u.length==0)return[];const l=r.value==""?o.sourcesMap:oe(i.value);return u.reduce((_,v)=>{const x=l.get(v);return x&&_.push(x),_},[])}),d=()=>{const u=c.value;J.deleteSource(u).then(({data:l})=>{if(!l.isSuccess)return B.error(l.errorMsg);o.deleteSources(u);const _=Oe(t.value);u.forEach(v=>{const x=_.indexOf(Z(v));x>-1&&_.splice(x,1)}),t.value=_})},k=()=>{o.clearAllSource(),t.value=[]},b=()=>{const u=document.createElement("input");u.type="file",u.accept=".json,.txt",u.addEventListener("change",l=>{const _=l.target.files[0],v=new FileReader;v.readAsText(_),v.onload=()=>{try{const x=JSON.parse(v.result);o.saveSources(x)}catch{B({message:"上传的源格式错误",type:"error"})}}}),u.click()},U=/bookSource/.test(window.location.href),I=()=>{const u=document.createElement("a");let l=t.value.length===0?i.value:c.value,_=U?"BookSource":"RssSource";u.download=`${_}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let v=new Blob([JSON.stringify(l,null,4)],{type:"application/json"});u.href=window.URL.createObjectURL(v),u.click(),window.URL.revokeObjectURL(u.href)};return(u,l)=>{const _=Y,v=se,x=Pe;return g(),E(O,null,[m(_,{modelValue:s(r),"onUpdate:modelValue":l[0]||(l[0]=T=>H(r)?r.value=T:null),class:"search","prefix-icon":s(ye),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),h("div",Rt,[m(v,{onClick:b,icon:s(Re)},{default:p(()=>l[2]||(l[2]=[y("打开")])),_:1},8,["icon"]),m(v,{disabled:s(i).length===0,onClick:I,icon:s(Te)},{default:p(()=>l[3]||(l[3]=[y(" 导出")])),_:1},8,["disabled","icon"]),m(v,{type:"danger",icon:s(ue),onClick:d,disabled:s(c).length===0},{default:p(()=>l[4]||(l[4]=[y("删除")])),_:1},8,["icon","disabled"]),m(v,{type:"danger",icon:s(ue),onClick:k,disabled:s(n).length===0},{default:p(()=>l[5]||(l[5]=[y("清空")])),_:1},8,["icon","disabled"])]),m(x,{id:"source-list",modelValue:s(t),"onUpdate:modelValue":l[1]||(l[1]=T=>H(t)?t.value=T:null)},{default:p(()=>[m(s(Le),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":T=>T.bookSourceUrl||T.sourceUrl,"data-sources":s(i),"data-component":Nt,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}},Lt=$(Tt,[["__scopeId","data-v-d2d7f7ec"]]),Ot={__name:"SourceDebug",setup(e){const o=M(),t=P(""),r=P("");ie(()=>o.isDebuging,()=>{o.isDebuging&&i()});const n=d=>{let k=document.querySelector("#debug-text");k.scrollTop=k.scrollHeight,t.value+=d+` -`},i=async()=>{t.value="";try{await J.saveSource(o.currentSource)}catch(d){throw o.debugFinish(),d}J.debug(o.currentSourceUrl,r.value||o.searchKey,n,o.debugFinish)},c=j(()=>/bookSource/.test(window.location.href));return(d,k)=>{const b=Y;return g(),E(O,null,[s(c)?(g(),C(b,{key:0,id:"debug-key",modelValue:s(r),"onUpdate:modelValue":k[0]||(k[0]=U=>H(r)?r.value=U:null),placeholder:"搜索书名、作者","prefix-icon":s(ye),style:{"padding-bottom":"4px"},onKeydown:$e(i,["enter"])},null,8,["modelValue","prefix-icon"])):N("",!0),m(b,{id:"debug-text",modelValue:s(t),"onUpdate:modelValue":k[1]||(k[1]=U=>H(t)?t.value=U:null),type:"textarea",readonly:"",rows:29,placeholder:"这里用于输出调试信息"},null,8,["modelValue"])],64)}}},Pt=$(Ot,[["__scopeId","data-v-c516d335"]]),Ce=Se("book",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"primary",newConnect:!0,searchBooks:[],shelf:[],catalog:[],readingBook:{index:0,chapterPos:0},popCataVisible:!1,contentLoading:!0,showContent:!1,config:{theme:0,font:0,fontSize:18,readWidth:800,infiniteLoading:!1,customFontName:"",jumpDuration:1e3,spacing:{paragraph:1,line:.8,letter:0}},miniInterface:!1,readSettingsVisible:!1}),getters:{bookProgress:e=>{var c;if(e.catalog.length==0)return;const{index:o,chapterPos:t,bookName:r,bookAuthor:n}=e.readingBook;let i=(c=e.catalog[o])==null?void 0:c.title;if(i)return{name:r,author:n,durChapterIndex:o,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:i}},theme:e=>e.config.theme,isNight:e=>e.config.theme==6},actions:{setConnectStatus(e){this.connectStatus=e},setConnectType(e){this.connectType=e},setNewConnect(e){this.newConnect=e},addBooks(e){this.shelf=e},clearBooks(){this.shelf=[]},setCatalog(e){this.catalog=e},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=e},setConfig(e){this.config=Object.assign({},this.config,e)},setReadSettingsVisible(e){this.readSettingsVisible=e},setShowContent(e){this.showContent=e},setMiniInterface(e){this.miniInterface=e},async setSearchBooks(e){e.forEach(o=>{this.shelf.find(r=>r.bookUrl==o.bookUrl)===void 0&&this.searchBooks.push(o)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProgress(){return this.bookProgress?J.saveBookProgress(this.bookProgress):Promise.resolve()},async loadReadConfig(){return J.getReadConfig().then(e=>e.data).then(({isSuccess:e,data:o})=>e&&this.setConfig(JSON.parse(o)))}}}),$t=De(),Dt={__name:"SourceJson",setup(e){const o=M(),t=P(""),r=async n=>{try{o.changeEditTabSource(JSON.parse(n))}catch{B({message:"粘贴的源格式错误",type:"error"})}};return Je(async()=>{let n=o.editTabSource;Object.keys(n).length>0?t.value=JSON.stringify(n,null,4):t.value=""}),(n,i)=>{const c=Y;return g(),C(c,{id:"source-json",modelValue:s(t),"onUpdate:modelValue":i[0]||(i[0]=d=>H(t)?t.value=d:null),type:"textarea",placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP",rows:30,onChange:r,style:{"margin-bottom":"4px"}},null,8,["modelValue"])}}},Jt=$(Dt,[["__scopeId","data-v-4e022d46"]]),jt={__name:"SourceTabTools",setup(e){const t=M().currentTab,r=P([["editTab","编辑源"],["editDebug","调试源"],["editList","源列表"],["editHelp","帮助信息"]]);return(n,i)=>{const c=Jt,d=Pt,k=Lt,b=rt,U=be,I=_e;return g(),C(I,{modelValue:s(t),"onUpdate:modelValue":i[0]||(i[0]=u=>H(t)?t.value=u:null)},{default:p(()=>[(g(!0),E(O,null,A(s(r),(u,l)=>(g(),C(U,{key:u[0],name:u[0],label:u[1]},{default:p(()=>[l==0?(g(),C(c,{key:0})):N("",!0),l==1?(g(),C(d,{key:1})):N("",!0),l==2?(g(),C(k,{key:2})):N("",!0),l==3?(g(),C(b,{key:3})):N("",!0)]),_:2},1032,["name","label"]))),128))]),_:1},8,["modelValue"])}}},At=$(jt,[["__scopeId","data-v-3e4574c1"]]),Ht={class:"menu flex-column-center"},Kt={class:"hotkeys-header flex-space-between"},Mt=["id"],Wt={key:0},Ft={class:"hotkeys-settings flex-column-center"},qt={class:"title"},zt={class:"hotkeys-item__content"},Gt={key:0},Qt={key:0},Xt={__name:"ToolBar",setup(e){const o=M(),t=()=>{const f=B({message:"加载中……",showClose:!0,duration:0});J.getSources().then(({data:a})=>{a.isSuccess?(o.changeTabName("editList"),o.saveSources(a.data),B({message:`成功拉取${a.data.length}条源`,type:"success"})):B({message:a.errorMsg??"后端错误",type:"error"})}).finally(()=>f.close())},r=()=>{let f=o.sources;if(o.changeTabName("editList"),f.length===0)return B({message:"空空如也",type:"info"});B({message:"正在推送中",type:"info"}),J.saveSources(f).then(({data:a})=>{if(a.isSuccess){let S=a.data;if(Array.isArray(S)){let D="";f.length>S.length&&(D=` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BookShelf-CKnr6cT1.js","./vendor-MihKrDrn.js","./vendor-Bui7wm94.css","./loading-DPd2-h-z.js","./loading-DyaW7RXx.css","./BookShelf-DxMHgvyY.css","./BookChapter-Pt7OGRfg.js","./BookChapter-C8lBKSzj.css"])))=>i.map(i=>d[i]); +import{r as xe,o as g,c as w,a as ne,b as re,d as E,e as m,w as p,f as y,u as s,l as L,g as h,F as O,E as Ee,h as me,i as Ie,j as B,k as Se,m as J,t as X,n as he,p as fe,q as se,s as Ve,v as P,x as H,y as ye,z as Ne,A as Te,B as ue,V as Re,C as Le,D as Y,G as Oe,H as le,I as Pe,J as N,K as $e,L as De,M as j,N as be,O as _e,P as F,Q as Je,R as je,S as Ae,T as He,U as Ke,W as Me,X as We,Y as Fe,Z as qe,_ as ze,$ as Ge}from"./vendor-MihKrDrn.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const l of n)if(l.type==="childList")for(const c of l.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function t(n){const l={};return n.integrity&&(l.integrity=n.integrity),n.referrerPolicy&&(l.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?l.credentials="include":n.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(n){if(n.ep)return;n.ep=!0;const l=t(n);fetch(n.href,l)}})();const $=(e,o)=>{const t=e.__vccOpts||e;for(const[r,n]of o)t[r]=n;return t},Qe={};function Xe(e,o){const t=xe("router-view");return g(),w(t)}const Ye=$(Qe,[["render",Xe]]),Ze="modulepreload",et=function(e,o){return new URL(e,o).href},ce={},de=function(o,t,r){let n=Promise.resolve();if(t&&t.length>0){const c=document.getElementsByTagName("link"),d=document.querySelector("meta[property=csp-nonce]"),k=(d==null?void 0:d.nonce)||(d==null?void 0:d.getAttribute("nonce"));n=Promise.allSettled(t.map(b=>{if(b=et(b,r),b in ce)return;ce[b]=!0;const U=b.endsWith(".css"),I=U?'[rel="stylesheet"]':"";if(!!r)for(let _=c.length-1;_>=0;_--){const v=c[_];if(v.href===b&&(!U||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${I}`))return;const i=document.createElement("link");if(i.rel=U?"stylesheet":Ze,U||(i.as="script"),i.crossOrigin="",i.href=b,k&&i.setAttribute("nonce",k),document.head.appendChild(i),U)return new Promise((_,v)=>{i.addEventListener("load",_),i.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${b}`)))})}))}function l(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return n.then(c=>{for(const d of c||[])d.status==="rejected"&&l(d.reason);return o().catch(l)})},ke=[{path:"/",name:"shelf",component:()=>de(()=>import("./BookShelf-CKnr6cT1.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)},{path:"/chapter",name:"chapter",component:()=>de(()=>import("./BookChapter-Pt7OGRfg.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)}];ne({history:re(),routes:ke});const tt={style:{"margin-top":"20px"}},ot={__name:"SourceHelp",setup(e){return(o,t)=>{const r=Ee,n=me;return g(),E(O,null,[m(r,{icon:s(L),href:"/help/#appHelp",target:"_blank"},{default:p(()=>t[0]||(t[0]=[y("APP帮助文档")])),_:1},8,["icon"]),t[19]||(t[19]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#ruleHelp",target:"_blank"},{default:p(()=>t[1]||(t[1]=[y("书源制作教程")])),_:1},8,["icon"]),t[20]||(t[20]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#jsHelp",target:"_blank"},{default:p(()=>t[2]||(t[2]=[y("js变量和函数")])),_:1},8,["icon"]),t[21]||(t[21]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#xpathHelp",target:"_blank"},{default:p(()=>t[3]||(t[3]=[y("xpath语法教程")])),_:1},8,["icon"]),t[22]||(t[22]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#regexHelp",target:"_blank"},{default:p(()=>t[4]||(t[4]=[y("正则表达式教程")])),_:1},8,["icon"]),t[23]||(t[23]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#txtTocRuleHelp",target:"_blank"},{default:p(()=>t[5]||(t[5]=[y("txt目录正则说明")])),_:1},8,["icon"]),t[24]||(t[24]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#debugHelp",target:"_blank"},{default:p(()=>t[6]||(t[6]=[y("书源调试说明")])),_:1},8,["icon"]),t[25]||(t[25]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#httpTTSHelp",target:"_blank"},{default:p(()=>t[7]||(t[7]=[y("在线朗读规则")])),_:1},8,["icon"]),t[26]||(t[26]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavBookHelp",target:"_blank"},{default:p(()=>t[8]||(t[8]=[y(" WebDav书籍简明使用教程")])),_:1},8,["icon"]),t[27]||(t[27]=h("br",null,null,-1)),m(r,{icon:s(L),href:"/help/#webDavHelp",target:"_blank"},{default:p(()=>t[9]||(t[9]=[y(" WebDav备份教程")])),_:1},8,["icon"]),t[28]||(t[28]=h("br",null,null,-1)),m(r,{icon:s(L),href:"https://regexr-cn.com/",target:"_blank"},{default:p(()=>t[10]||(t[10]=[y("正则表达式在线验证工具")])),_:1},8,["icon"]),t[29]||(t[29]=h("br",null,null,-1)),h("div",tt,[h("span",null,[m(n,null,{default:p(()=>t[11]||(t[11]=[h("code",null,"^$()[]{}.?+*|",-1),y(" 这些是Java正则特殊符号,匹配需转义")])),_:1})]),t[15]||(t[15]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[12]||(t[12]=[h("code",null,"(?s)",-1),y(" 前缀表示跨行解析")])),_:1})]),t[16]||(t[16]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[13]||(t[13]=[h("code",null,"(?m)",-1),y(" 前缀表示逐行匹配")])),_:1})]),t[17]||(t[17]=h("br",null,null,-1)),h("span",null,[m(n,null,{default:p(()=>t[14]||(t[14]=[h("code",null,"(?i)",-1),y(" 前缀表示忽略大小写")])),_:1})]),t[18]||(t[18]=h("br",null,null,-1))])],64)}}},nt=$(ot,[["__scopeId","data-v-fe99b178"]]),rt=1e3,C=Ie.create({baseURL:localStorage.getItem("remoteIp")||location.origin,timeout:120*rt});let K,ie;const ve=e=>{let o;const{protocol:t,hostname:r,port:n}=new URL(e);if(!t.startsWith("http"))throw new Error("unexpect protocol:"+e);C.defaults.baseURL=e,K=e,n!==""?o=Number(n)+1:o=t.startsWith("https:")?"444":"81",ie=`${t.startsWith("https:")?"wss://":"ws://"}${r}:${o}`};ve(C.defaults.baseURL);const st=async e=>{const{data:o={}}=await C.get("/getReadConfig",{baseURL:e,timeout:3e3});try{if("isSuccess"in o)return o.data;throw new Error("ReadConfig后端返回格式错误")}catch{throw new Error("ReadConfig后端返回格式错误")}},lt=/source/i.test(location.href),it=e=>{throw lt&&B({message:"后端错误,检查网络或者阅读app",type:"error"}),e};C.interceptors.response.use(e=>e,it);const at=()=>C.get("/getReadConfig",{timeout:3e3}),ut=e=>C.post("/saveReadConfig",e),ct=e=>C.post("/saveBookProgress",e),dt=e=>{e&&navigator.sendBeacon(`${K}/saveBookProgress`,JSON.stringify(e))},pt=()=>C.get("/getBookshelf"),gt=e=>C.get("/getChapterList?url="+encodeURIComponent(e)),mt=(e,o)=>C.get("/getBookContent?url="+encodeURIComponent(e)+"&index="+o),St=(e,o,t)=>{const r=`${ie}/searchBook`,n=new WebSocket(r);n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=({data:l})=>o(l),n.onclose=()=>{t()}},ht=e=>C.post("/saveBook",e),ft=e=>C.post("/deleteBook",e),Q=/bookSource/i.test(location.href),yt=()=>Q?C.get("/getBookSources"):C.get("/getRssSources"),bt=e=>Q?C.post("/saveBookSource",e):C.post("/saveRssSource",e),_t=e=>Q?C.post("/saveBookSources",e):C.post("/saveRssSources",e),kt=e=>Q?C.post("/deleteBookSources",e):C.post("/deleteRssSources",e),vt=(e,o,t,r)=>{const n=`${ie}/${Q?"bookSource":"rssSource"}Debug`,l=new WebSocket(n);l.onopen=()=>{l.send(JSON.stringify({tag:e,key:o}))},l.onmessage=({data:c})=>t(c),l.onclose=()=>{B({message:"调试已关闭!",type:"info"}),r()}},wt=e=>e.startsWith(K)?e:K+"/cover?path="+encodeURIComponent(e),Ct=(e,o)=>e.startsWith(K)?e:K+"/image?path="+encodeURIComponent(e)+"&url="+encodeURIComponent(sessionStorage.getItem("bookUrl"))+"&width="+o,A={getReadConfig:at,saveReadConfig:ut,saveBookProgress:ct,saveBookProgressWithBeacon:dt,getBookShelf:pt,getChapterList:gt,getBookContent:mt,search:St,saveBook:ht,deleteBook:ft,getSources:yt,saveSources:_t,saveSource:bt,deleteSource:kt,debug:vt,getProxyCoverUrl:wt,getProxyImageUrl:Ct,testLeagdoHttpUrlConnection:st,setLeagdoHttpUrl:ve,legado_http_origin:K},G=e=>e==null||e.length===0||/^\s+$/.test(e),ae=e=>"bookSourceName"in e,Ut=e=>ae(e)?!G(e.bookSourceName)&&!G(e.bookSourceUrl)&&!G(e.bookSourceType):!G(e.sourceName)&&!G(e.sourceUrl),Z=e=>ae(e)?e.bookSourceUrl:e.sourceUrl,Bt=(e,o)=>{var t,r,n,l,c,d,k,b;return ae(e)?(((t=e.bookSourceName)==null?void 0:t.includes(o))||((r=e.bookSourceUrl)==null?void 0:r.includes(o))||((n=e.bookSourceGroup)==null?void 0:n.includes(o))||((l=e.bookSourceComment)==null?void 0:l.includes(o)))??!1:(((c=e.sourceName)==null?void 0:c.includes(o))||((d=e.sourceUrl)==null?void 0:d.includes(o))||((k=e.sourceGroup)==null?void 0:k.includes(o))||((b=e.sourceComment)==null?void 0:b.includes(o)))??!1},oe=e=>{const o=new Map;return e.forEach(t=>o.set(Z(t),t)),o},xt={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleReview:{},ruleExplore:{}},Et={},q=/bookSource/i.test(location.href),pe=q?xt:Et,M=Se("source",{state:()=>({bookSources:[],rssSources:[],savedSources:[],currentSource:pe,currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>q?e.bookSources:e.rssSources,sourcesMap:e=>oe(e.sources),savedSourcesMap:e=>oe(e.savedSources),currentSourceUrl:e=>q?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>q?e.currentSource.ruleSearch.checkKeyWord||"我的":null},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){q?this.bookSources=e:this.rssSources=e},setPushReturnSources(e){this.savedSources=e},deleteSources(e){let o=q?this.bookSources:this.rssSources;e.forEach(t=>{let r=o.indexOf(t);r>-1&&o.splice(r,1)})},saveCurrentSource(){let e=this.currentSource,o=this.sourcesMap;o.set(Z(e),JSON.parse(JSON.stringify(e))),this.saveSources(Array.from(o.values()))},changeCurrentSource(e){this.currentSource=JSON.parse(JSON.stringify(e))},changeTabName(e){this.currentTab=e,localStorage.setItem("tabName",e)},changeEditTabSource(e){this.editTabSource=JSON.parse(JSON.stringify(e))},editHistory(e){let o;if(localStorage.getItem("history"))o=JSON.parse(localStorage.getItem("history")),o.new.push(e),o.new.length>50&&o.new.shift(),o.old.length>50&&o.old.shift(),localStorage.setItem("history",JSON.stringify(o));else{const t={new:[e],old:[]};localStorage.setItem("history",JSON.stringify(t))}},editHistoryUndo(){if(localStorage.getItem("history")){let e=JSON.parse(localStorage.getItem("history"));e.old.push(this.currentSource),e.new.length&&(this.currentSource=e.new.pop()),localStorage.setItem("history",JSON.stringify(e))}},clearAllHistory(){localStorage.setItem("history",JSON.stringify({new:[],old:[]}))},clearEdit(){this.editTabSource={},this.currentSource=pe},clearAllSource(){this.bookSources=[],this.rssSources=[],this.savedSources=[]}}}),It={__name:"SourceItem",props:["source"],setup(e){const o=e,t=M(),r=J(()=>t.currentSourceUrl),n=J(()=>Z(o.source)),l=d=>{t.changeCurrentSource(d)},c=J(()=>{const d=t.savedSourcesMap;return d.size==0?!1:!d.has(n.value)});return(d,k)=>{const b=se,U=Ve;return g(),w(U,{size:"large",border:"",label:s(n),class:fe({error:s(c),edit:s(n)==s(r)})},{default:p(()=>[y(X(e.source.bookSourceName||e.source.sourceName)+" ",1),m(b,{text:"",icon:s(he),onClick:k[0]||(k[0]=I=>l(e.source))},null,8,["icon"])]),_:1},8,["label","class"])}}},Vt=$(It,[["__scopeId","data-v-c8501b1a"]]),Nt={class:"tool"},Tt={__name:"SourceList",setup(e){const o=M(),t=P([]),r=P(""),n=J(()=>o.sources),l=J(()=>{const u=r.value;return u===""?n.value:n.value.filter(i=>Bt(i,u))}),c=J(()=>{const u=t.value;if(u.length==0)return[];const i=r.value==""?o.sourcesMap:oe(l.value);return u.reduce((_,v)=>{const x=i.get(v);return x&&_.push(x),_},[])}),d=()=>{const u=c.value;A.deleteSource(u).then(({data:i})=>{if(!i.isSuccess)return B.error(i.errorMsg);o.deleteSources(u);const _=Le(t.value);u.forEach(v=>{const x=_.indexOf(Z(v));x>-1&&_.splice(x,1)}),t.value=_})},k=()=>{o.clearAllSource(),t.value=[]},b=()=>{const u=document.createElement("input");u.type="file",u.accept=".json,.txt",u.addEventListener("change",i=>{const _=i.target.files[0],v=new FileReader;v.readAsText(_),v.onload=()=>{try{const x=JSON.parse(v.result);o.saveSources(x)}catch{B({message:"上传的源格式错误",type:"error"})}}}),u.click()},U=/bookSource/.test(window.location.href),I=()=>{const u=document.createElement("a");let i=t.value.length===0?l.value:c.value,_=U?"BookSource":"RssSource";u.download=`${_}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let v=new Blob([JSON.stringify(i,null,4)],{type:"application/json"});u.href=window.URL.createObjectURL(v),u.click(),window.URL.revokeObjectURL(u.href)};return(u,i)=>{const _=Y,v=se,x=Oe;return g(),E(O,null,[m(_,{modelValue:s(r),"onUpdate:modelValue":i[0]||(i[0]=R=>H(r)?r.value=R:null),class:"search","prefix-icon":s(ye),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),h("div",Nt,[m(v,{onClick:b,icon:s(Ne)},{default:p(()=>i[2]||(i[2]=[y("打开")])),_:1},8,["icon"]),m(v,{disabled:s(l).length===0,onClick:I,icon:s(Te)},{default:p(()=>i[3]||(i[3]=[y(" 导出")])),_:1},8,["disabled","icon"]),m(v,{type:"danger",icon:s(ue),onClick:d,disabled:s(c).length===0},{default:p(()=>i[4]||(i[4]=[y("删除")])),_:1},8,["icon","disabled"]),m(v,{type:"danger",icon:s(ue),onClick:k,disabled:s(n).length===0},{default:p(()=>i[5]||(i[5]=[y("清空")])),_:1},8,["icon","disabled"])]),m(x,{id:"source-list",modelValue:s(t),"onUpdate:modelValue":i[1]||(i[1]=R=>H(t)?t.value=R:null)},{default:p(()=>[m(s(Re),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":R=>R.bookSourceUrl||R.sourceUrl,"data-sources":s(l),"data-component":Vt,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}},Rt=$(Tt,[["__scopeId","data-v-d2d7f7ec"]]),Lt={__name:"SourceDebug",setup(e){const o=M(),t=P(""),r=P("");le(()=>o.isDebuging,()=>{o.isDebuging&&l()});const n=d=>{let k=document.querySelector("#debug-text");k.scrollTop=k.scrollHeight,t.value+=d+` +`},l=async()=>{t.value="";try{await A.saveSource(o.currentSource)}catch(d){throw o.debugFinish(),d}A.debug(o.currentSourceUrl,r.value||o.searchKey,n,o.debugFinish)},c=J(()=>/bookSource/.test(window.location.href));return(d,k)=>{const b=Y;return g(),E(O,null,[s(c)?(g(),w(b,{key:0,id:"debug-key",modelValue:s(r),"onUpdate:modelValue":k[0]||(k[0]=U=>H(r)?r.value=U:null),placeholder:"搜索书名、作者","prefix-icon":s(ye),style:{"padding-bottom":"4px"},onKeydown:Pe(l,["enter"])},null,8,["modelValue","prefix-icon"])):N("",!0),m(b,{id:"debug-text",modelValue:s(t),"onUpdate:modelValue":k[1]||(k[1]=U=>H(t)?t.value=U:null),type:"textarea",readonly:"",rows:29,placeholder:"这里用于输出调试信息"},null,8,["modelValue"])],64)}}},Ot=$(Lt,[["__scopeId","data-v-c516d335"]]),Pt=Se("book",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"primary",newConnect:!0,searchBooks:[],shelf:[],catalog:[],readingBook:{index:0,chapterPos:0},popCataVisible:!1,contentLoading:!0,showContent:!1,config:{theme:0,font:0,fontSize:18,readWidth:800,infiniteLoading:!1,customFontName:"",jumpDuration:1e3,spacing:{paragraph:1,line:.8,letter:0}},miniInterface:!1,readSettingsVisible:!1}),getters:{bookProgress:e=>{var c;if(e.catalog.length==0)return;const{index:o,chapterPos:t,bookName:r,bookAuthor:n}=e.readingBook;let l=(c=e.catalog[o])==null?void 0:c.title;if(l)return{name:r,author:n,durChapterIndex:o,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:l}},theme:e=>e.config.theme,isNight:e=>e.config.theme==6},actions:{setConnectStatus(e){this.connectStatus=e},setConnectType(e){this.connectType=e},setNewConnect(e){this.newConnect=e},addBooks(e){this.shelf=e},clearBooks(){this.shelf=[]},setCatalog(e){this.catalog=e},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=e},setConfig(e){this.config=Object.assign({},this.config,e)},setReadSettingsVisible(e){this.readSettingsVisible=e},setShowContent(e){this.showContent=e},setMiniInterface(e){this.miniInterface=e},async setSearchBooks(e){e.forEach(o=>{this.shelf.find(r=>r.bookUrl==o.bookUrl)===void 0&&this.searchBooks.push(o)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProgress(){return this.bookProgress?A.saveBookProgress(this.bookProgress):Promise.resolve()}}}),$t=$e(),Dt={__name:"SourceJson",setup(e){const o=M(),t=P(""),r=async n=>{try{o.changeEditTabSource(JSON.parse(n))}catch{B({message:"粘贴的源格式错误",type:"error"})}};return De(async()=>{let n=o.editTabSource;Object.keys(n).length>0?t.value=JSON.stringify(n,null,4):t.value=""}),(n,l)=>{const c=Y;return g(),w(c,{id:"source-json",modelValue:s(t),"onUpdate:modelValue":l[0]||(l[0]=d=>H(t)?t.value=d:null),type:"textarea",placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP",rows:30,onChange:r,style:{"margin-bottom":"4px"}},null,8,["modelValue"])}}},Jt=$(Dt,[["__scopeId","data-v-4e022d46"]]),jt={__name:"SourceTabTools",setup(e){const t=M().currentTab,r=P([["editTab","编辑源"],["editDebug","调试源"],["editList","源列表"],["editHelp","帮助信息"]]);return(n,l)=>{const c=Jt,d=Ot,k=Rt,b=nt,U=be,I=_e;return g(),w(I,{modelValue:s(t),"onUpdate:modelValue":l[0]||(l[0]=u=>H(t)?t.value=u:null)},{default:p(()=>[(g(!0),E(O,null,j(s(r),(u,i)=>(g(),w(U,{key:u[0],name:u[0],label:u[1]},{default:p(()=>[i==0?(g(),w(c,{key:0})):N("",!0),i==1?(g(),w(d,{key:1})):N("",!0),i==2?(g(),w(k,{key:2})):N("",!0),i==3?(g(),w(b,{key:3})):N("",!0)]),_:2},1032,["name","label"]))),128))]),_:1},8,["modelValue"])}}},At=$(jt,[["__scopeId","data-v-3e4574c1"]]),Ht={class:"menu flex-column-center"},Kt={class:"hotkeys-header flex-space-between"},Mt=["id"],Wt={key:0},Ft={class:"hotkeys-settings flex-column-center"},qt={class:"title"},zt={class:"hotkeys-item__content"},Gt={key:0},Qt={key:0},Xt={__name:"ToolBar",setup(e){const o=M(),t=()=>{const f=B({message:"加载中……",showClose:!0,duration:0});A.getSources().then(({data:a})=>{a.isSuccess?(o.changeTabName("editList"),o.saveSources(a.data),B({message:`成功拉取${a.data.length}条源`,type:"success"})):B({message:a.errorMsg??"后端错误",type:"error"})}).finally(()=>f.close())},r=()=>{let f=o.sources;if(o.changeTabName("editList"),f.length===0)return B({message:"空空如也",type:"info"});B({message:"正在推送中",type:"info"}),A.saveSources(f).then(({data:a})=>{if(a.isSuccess){let S=a.data;if(Array.isArray(S)){let D="";f.length>S.length&&(D=` 推送失败的源将用红色字体标注!`,o.setPushReturnSources(S)),B({message:`批量推送源到「阅读3.0APP」 共计: ${f.length} 条 成功: ${S.length} 条 失败: ${f.length-S.length} 条${D}`,type:"success"})}}else B({message:`批量推送源失败! -ErrorMsg: ${a.errorMsg}`,type:"error"})})},n=()=>{o.changeTabName("editTab"),o.changeEditTabSource(o.currentSource)},i=()=>{o.changeCurrentSource(o.editTabSource)},c=()=>{o.editHistoryUndo()},d=()=>{o.clearEdit(),B({message:"已清除",type:"success"})},k=()=>{o.clearEdit(),o.clearAllHistory(),B({message:"已清除所有历史记录",type:"success"})},b=()=>{let f=/bookSource/.test(location.href),a=o.currentSource;Bt(a)?J.saveSource(a).then(({data:S})=>{S.isSuccess?(B({message:`源《${f?a.bookSourceName:a.sourceName}》已成功保存到「阅读3.0APP」`,type:"success"}),o.saveCurrentSource()):B({message:`源《${f?a.bookSourceName:a.sourceName}》保存失败! -ErrorMsg: ${S.errorMsg}`,type:"error"})}):B({message:"请检查<必填>项是否全部填写",type:"error"})},U=()=>{o.startDebug()},I=P(Array.of({name:"⇈推送源",hotKeys:[],action:r},{name:"⇊拉取源",hotKeys:[],action:t},{name:"⋙生成源",hotKeys:[],action:n},{name:"⋘编辑源",hotKeys:[],action:i},{name:"✗清空表单",hotKeys:[],action:d},{name:"↶撤销操作",hotKeys:[],action:c},{name:"↷重做操作",hotKeys:[],action:k},{name:"⇏调试源",hotKeys:[],action:U},{name:"✓保存源",hotKeys:[],action:b})),u=P(!0),l=P(!1),_=P(-1),v=()=>{l.value||(u.value=!1),l.value=!1};ie(u,f=>{if(!f){F.unbind("*"),z(),W();return}z(),F.unbind(),F("*",a=>{a.preventDefault();let S=F.getPressedKeyString();S.length==1&&S[0]=="esc"||l.value&&_.value>-1&&(I.value[_.value].hotKeys=S)})},{immediate:!0});const x=f=>{l.value=!0,B({message:"按ESC键或者点击空白处结束录入",type:"info"}),I.value[f].hotKeys=[],_.value=f},T=()=>{const f=[];I.value.forEach(({hotKeys:a})=>{f.push(a)}),R(f),u.value=!1},W=()=>{F.filter=()=>!0,I.value.forEach(({hotKeys:f,action:a})=>{f.length!=0&&F(f.join("+"),S=>{S.preventDefault(),a.call(null)})})},R=f=>{localStorage.setItem("legado_web_hotkeys",JSON.stringify(f))};function z(){try{const f=JSON.parse(localStorage.getItem("legado_web_hotkeys"));return!Array.isArray(f)||f.length==0?!1:(I.value.forEach((a,S)=>a.hotKeys=f[S]),!0)}catch{B({message:"快捷键配置错误",type:"error"}),localStorage.removeItem("legado_web_hotkeys")}return!1}return je(()=>{z()&&(u.value=!1)}),(f,a)=>{const S=se,D=me,Be=He;return g(),E(O,null,[h("div",Ht,[(g(!0),E(O,null,A(s(I),V=>(g(),C(S,{size:"large",key:V.name,onClick:V.action},{default:p(()=>[y(X(V.name),1)]),_:2},1032,["onClick"]))),128)),m(S,{size:"large",onClick:a[0]||(a[0]=()=>u.value=!0)},{default:p(()=>a[2]||(a[2]=[y("快捷键")])),_:1})]),m(Be,{modelValue:s(u),"onUpdate:modelValue":a[1]||(a[1]=V=>H(u)?u.value=V:null),"show-close":!1,"before-close":v},{header:p(({titleClass:V,titleId:ee})=>[h("div",Kt,[h("div",{id:ee,class:fe(V)},[a[4]||(a[4]=y(" 快捷键设置 ")),s(l)?(g(),E("span",Wt,[m(D,null,{default:p(()=>a[3]||(a[3]=[y(" / 录入中 ")])),_:1})])):N("",!0)],10,Mt),m(S,{disabled:s(l),onClick:T,icon:s(Ae)},{default:p(()=>a[5]||(a[5]=[y("保存")])),_:1},8,["disabled","icon"])])]),default:p(()=>[h("div",Ft,[(g(!0),E(O,null,A(s(I),(V,ee)=>(g(),E("div",{key:V.name,class:"hotkeys-item flex-space-between"},[h("span",qt,[m(D,null,{default:p(()=>[y(X(V.name),1)]),_:2},1024)]),h("div",zt,[(g(!0),E(O,null,A(V.hotKeys,(te,xe)=>(g(),E("div",{key:te},[h("kbd",null,X(te),1),xe+1a[6]||(a[6]=[y("+")])),_:1})])):N("",!0)]))),128)),V.hotKeys.length==0?(g(),E("span",Qt,"未设置")):N("",!0)]),m(S,{disabled:s(l),text:"",icon:s(he),onClick:te=>x(ee)},{default:p(()=>a[7]||(a[7]=[y("编辑")])),_:2},1032,["disabled","icon","onClick"])]))),128))])]),_:1},8,["modelValue"])],64)}}},Yt=$(Xt,[["__scopeId","data-v-9fd45dad"]]),Zt={__name:"SourceTabForm",props:["config"],setup(e){const t=M().currentSource;return(r,n)=>{const i=Y,c=Ke,d=Me,k=We,b=Fe,U=qe,I=ze,u=be,l=_e;return g(),C(l,{id:"source-edit"},{default:p(()=>[(g(!0),E(O,null,A(Object.values(e.config),({name:_,children:v})=>(g(),C(u,{label:_,key:_},{default:p(()=>[m(I,{"label-position":"right","label-width":"auto"},{default:p(()=>[(g(!0),E(O,null,A(v,({type:x,title:T,namespace:W,id:R,array:z,hint:f,required:a})=>(g(),C(U,{label:T,key:T,required:a},{default:p(()=>[x=="String"&&typeof W>"u"?(g(),C(i,{key:0,type:"textarea",modelValue:s(t)[R],"onUpdate:modelValue":S=>s(t)[R]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),x=="String"&&typeof W<"u"?(g(),C(i,{key:1,type:"textarea",modelValue:s(t)[W][R],"onUpdate:modelValue":S=>s(t)[W][R]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),x=="Boolean"?(g(),C(c,{key:2,modelValue:s(t)[R],"onUpdate:modelValue":S=>s(t)[R]=S},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),x=="Number"?(g(),C(d,{key:3,modelValue:s(t)[R],"onUpdate:modelValue":S=>s(t)[R]=S,min:0},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),x=="Array"?(g(),C(b,{key:4,modelValue:s(t)[R],"onUpdate:modelValue":S=>s(t)[R]=S},{default:p(()=>[(g(!0),E(O,null,A(z,(S,D)=>(g(),C(k,{value:D,key:S,label:S},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):N("",!0)]),_:2},1032,["label","required"]))),128))]),_:2},1024)]),_:2},1032,["label"]))),128))]),_:1})}}},eo=$(Zt,[["__scopeId","data-v-ffcf3f30"]]),to={base:{name:"基础",children:[{title:"源类型",id:"bookSourceType",type:"Array",array:["文本","音频","图片","文件"],required:!0},{title:"源域名",id:"bookSourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"源名称",id:"bookSourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"bookSourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"bookSourceComment",type:"String",hint:"描述源作者和状态"},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"链接验证",id:"bookUrlPattern",type:"String",hint:"书籍URL正则,当详情页URL与源URL的域名不一致时有效,用于添加网址"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"书源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率,如1000(访问间隔1000ms)或者1/1000(1000ms内访问1次)"},{title:"js库",id:"jsLib",type:"String",hint:"js库, 可填写js或者key-value object获取在线js文件"}]},search:{name:"搜索",children:[{title:"搜索地址",id:"searchUrl",type:"String",hint:"[域名可省略]/search.php@kw={{key}}"},{title:"校验文字",namespace:"ruleSearch",id:"checkKeyWord",type:"String",hint:"校验关键字,强烈建议填写"},{title:"列表规则",namespace:"ruleSearch",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleSearch",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleSearch",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleSearch",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleSearch",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleSearch",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleSearch",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleSearch",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleSearch",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},find:{name:"发现",children:[{title:"发现地址",id:"exploreUrl",type:"String",hint:"单个发现格式::或者{url:,title:,style:...};前者用换行符或者&&连接,后者放在数组内;可用js动态生成"},{title:"列表规则",namespace:"ruleExplore",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleExplore",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleExplore",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleExplore",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleExplore",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleExplore",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleExplore",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleExplore",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleExplore",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},detail:{name:"详情",children:[{title:"预处理",namespace:"ruleBookInfo",id:"init",type:"String",hint:"用于加速详情信息检索,只支持AllInOne规则"},{title:"书名规则",namespace:"ruleBookInfo",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleBookInfo",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleBookInfo",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleBookInfo",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleBookInfo",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleBookInfo",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleBookInfo",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"目录地址",namespace:"ruleBookInfo",id:"tocUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url, 与详情页相同时可省略)"},{title:"修改书籍",namespace:"ruleBookInfo",id:"canReName",type:"String",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"},{title:"下载URL",namespace:"ruleBookInfo",id:"downloadUrls",type:"String",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"}]},directory:{name:"目录",children:[{title:"更新前JS",namespace:"ruleToc",id:"preUpdateJs",type:"String",hint:"更新目录前调用JS 动态更新目录链接"},{title:"列表规则",namespace:"ruleToc",id:"chapterList",type:"String",hint:"选择目录列表的章节节点 (规则结果为List)"},{title:"章节名称",namespace:"ruleToc",id:"chapterName",type:"String",hint:"选择章节名称 (规则结果为String)"},{title:"章节地址",namespace:"ruleToc",id:"chapterUrl",type:"String",hint:"选择章节链接 (规则结果为String类型的Url)"},{title:"标题处理",namespace:"ruleToc",id:"formatJs",type:"String",hint:"遍历去重后的章节列表的回调,提供index(章节序号从1开始)、title(章节标题)变量,额外提供gInt(初始值0),返回值作为新的标题"},{title:"卷名标识",namespace:"ruleToc",id:"isVolume",type:"String",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"章节信息",namespace:"ruleToc",id:"updateTime",type:"String",hint:"选择章节信息(如更新时间) (规则结果为String)"},{title:"收费标识",namespace:"ruleToc",id:"isVip",type:"String",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",namespace:"ruleToc",id:"isPay",type:"String",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"翻页规则",namespace:"ruleToc",id:"nextTocUrl",type:"String",hint:"选择目录下一页链接 (规则结果为List或String)"}]},content:{name:"正文",children:[{title:"正文规则",namespace:"ruleContent",id:"content",type:"String",hint:"选择正文内容 (规则结果为String)"},{title:"标题规则",namespace:"ruleContent",id:"title",type:"String",hint:"获取结果将会覆盖章节标题 (规则结果为String)"},{title:"翻页规则",namespace:"ruleContent",id:"nextContentUrl",type:"String",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{title:"脚本注入",namespace:"ruleContent",id:"webJs",type:"String",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"资源正则",namespace:"ruleContent",id:"sourceRegex",type:"String",hint:"匹配资源的url特征,用于嗅探"},{title:"替换规则",namespace:"ruleContent",id:"replaceRegex",type:"String",hint:"多页内容合并后替换,用于正文净化"},{title:"图片样式",namespace:"ruleContent",id:"imageStyle",type:"String",hint:"FULL:铺满 不填:默认样式"},{title:"图片解密",namespace:"ruleContent",id:"imageDecode",type:"String",hint:"填写JavaScript 返回解密图片的bytes "},{title:"购买操作",namespace:"ruleContent",id:"payAction",type:"String",hint:"填写JavaScript 返回购买链接或者调用购买接口"}]},other:{name:"其他",children:[{title:"启用搜索",id:"enabled",type:"Boolean"},{title:"启用发现",id:"enabledExplore",type:"Boolean"},{title:"CookieJar",id:"enabledCookieJar",type:"Boolean"},{title:"搜索权重",id:"weight",type:"Number"},{title:"排序编号",id:"customOrder",type:"Number"}]}},oo={base:{name:"基础",children:[{title:"源域名",id:"sourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"图标",id:"sourceIcon",type:"String",hint:"填写图片网络链接"},{title:"源名称",id:"sourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"sourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"sourceComment",type:"String",hint:"描述源作者和状态"},{title:"分类地址",id:"sortUrl",type:"String",hint:`名称1::链接1 -名称2::链接2`},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率"}]},list:{name:"列表",children:[{title:"列表规则",id:"ruleArticles",type:"String",hint:"规则结果为List"},{title:"翻页规则",id:"ruleNextPage",type:"String",hint:"下一页链接 规则结果为List或String"},{title:"标题规则",id:"ruleTitle",type:"String",hint:"文章标题 规则结果为String"},{title:"时间规则",id:"rulePubDate",type:"String",hint:"文章发布时间 规则结果为String"},{title:"描述规则",id:"ruleDescription",type:"String",hint:"文章简要描述 规则结果为String"},{title:"图片规则",id:"ruleImage",type:"String",hint:"文章图片链接 规则结果为String"},{title:"链接规则",id:"ruleLink",type:"String",hint:"文章链接 规则结果为String"}]},webView:{name:"WebView",children:[{title:"内容规则",id:"ruleContent",type:"String",hint:"文章正文"},{title:"样式规则",id:"style",type:"String",hint:"文章正文样式 填写css"},{title:"注入规则",id:"injectJs",type:"String",hint:"注入网页的JavaScript"},{title:"黑名单",id:"contentBlacklist",type:"String",hint:"webView链接加载黑名单,英文逗号隔开"},{title:"白名单",id:"contentWhitelist",type:"String",hint:"webView链接加载白名单,英文逗号隔开"},{title:"链接拦截",id:"shouldOverrideUrlLoading",type:"String",hint:"填写js,变量url为当前资源链接,返回true拦截"}]},other:{name:"其他",children:[{title:"列表样式",id:"articleStyle",type:"Array",array:["默认","大图","双列"]},{title:"加载地址",id:"loadWithBaseUrl",type:"Boolean"},{title:"启用JS",id:"enableJs",type:"Boolean"},{title:"启用",id:"enabled",type:"Boolean"},{title:"Cookie",id:"enabledCookieJar",type:"Boolean"},{title:"单URL",id:"singleUrl",type:"Boolean"},{title:"排序编号",id:"customOrder",type:"Number"}]}},no={class:"editor"},ro={__name:"SourceEditor",setup(e){Ge();let o;return/bookSource/i.test(location.href)?(o=to,document.title="书源管理"):(o=oo,document.title="订阅源管理"),(t,r)=>{const n=eo,i=Yt,c=At;return g(),E("div",no,[m(n,{class:"left",config:s(o)},null,8,["config"]),m(i),m(c,{class:"right"})])}}},ge=$(ro,[["__scopeId","data-v-9682883a"]]),we=[{path:"/bookSource",name:"book-home",component:ge},{path:"/rssSource",name:"rss-home",component:ge}];ne({history:re(),routes:we});const Ue=ne({history:re(),routes:ke.concat(we)});Ue.afterEach(e=>{e.name=="shelf"&&(document.title="书架")});Qe(Ze).use($t).use(Ue).mount("#app");Ce().loadReadConfig();ie(()=>Ce().isNight,e=>{e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")});export{J as A,$ as _,Ce as u}; +ErrorMsg: ${a.errorMsg}`,type:"error"})})},n=()=>{o.changeTabName("editTab"),o.changeEditTabSource(o.currentSource)},l=()=>{o.changeCurrentSource(o.editTabSource)},c=()=>{o.editHistoryUndo()},d=()=>{o.clearEdit(),B({message:"已清除",type:"success"})},k=()=>{o.clearEdit(),o.clearAllHistory(),B({message:"已清除所有历史记录",type:"success"})},b=()=>{let f=/bookSource/.test(location.href),a=o.currentSource;Ut(a)?A.saveSource(a).then(({data:S})=>{S.isSuccess?(B({message:`源《${f?a.bookSourceName:a.sourceName}》已成功保存到「阅读3.0APP」`,type:"success"}),o.saveCurrentSource()):B({message:`源《${f?a.bookSourceName:a.sourceName}》保存失败! +ErrorMsg: ${S.errorMsg}`,type:"error"})}):B({message:"请检查<必填>项是否全部填写",type:"error"})},U=()=>{o.startDebug()},I=P(Array.of({name:"⇈推送源",hotKeys:[],action:r},{name:"⇊拉取源",hotKeys:[],action:t},{name:"⋙生成源",hotKeys:[],action:n},{name:"⋘编辑源",hotKeys:[],action:l},{name:"✗清空表单",hotKeys:[],action:d},{name:"↶撤销操作",hotKeys:[],action:c},{name:"↷重做操作",hotKeys:[],action:k},{name:"⇏调试源",hotKeys:[],action:U},{name:"✓保存源",hotKeys:[],action:b})),u=P(!0),i=P(!1),_=P(-1),v=()=>{i.value||(u.value=!1),i.value=!1};le(u,f=>{if(!f){F.unbind("*"),z(),W();return}z(),F.unbind(),F("*",a=>{a.preventDefault();let S=F.getPressedKeyString();S.length==1&&S[0]=="esc"||i.value&&_.value>-1&&(I.value[_.value].hotKeys=S)})},{immediate:!0});const x=f=>{i.value=!0,B({message:"按ESC键或者点击空白处结束录入",type:"info"}),I.value[f].hotKeys=[],_.value=f},R=()=>{const f=[];I.value.forEach(({hotKeys:a})=>{f.push(a)}),T(f),u.value=!1},W=()=>{F.filter=()=>!0,I.value.forEach(({hotKeys:f,action:a})=>{f.length!=0&&F(f.join("+"),S=>{S.preventDefault(),a.call(null)})})},T=f=>{localStorage.setItem("legado_web_hotkeys",JSON.stringify(f))};function z(){try{const f=JSON.parse(localStorage.getItem("legado_web_hotkeys"));return!Array.isArray(f)||f.length==0?!1:(I.value.forEach((a,S)=>a.hotKeys=f[S]),!0)}catch{B({message:"快捷键配置错误",type:"error"}),localStorage.removeItem("legado_web_hotkeys")}return!1}return Je(()=>{z()&&(u.value=!1)}),(f,a)=>{const S=se,D=me,Ue=Ae;return g(),E(O,null,[h("div",Ht,[(g(!0),E(O,null,j(s(I),V=>(g(),w(S,{size:"large",key:V.name,onClick:V.action},{default:p(()=>[y(X(V.name),1)]),_:2},1032,["onClick"]))),128)),m(S,{size:"large",onClick:a[0]||(a[0]=()=>u.value=!0)},{default:p(()=>a[2]||(a[2]=[y("快捷键")])),_:1})]),m(Ue,{modelValue:s(u),"onUpdate:modelValue":a[1]||(a[1]=V=>H(u)?u.value=V:null),"show-close":!1,"before-close":v},{header:p(({titleClass:V,titleId:ee})=>[h("div",Kt,[h("div",{id:ee,class:fe(V)},[a[4]||(a[4]=y(" 快捷键设置 ")),s(i)?(g(),E("span",Wt,[m(D,null,{default:p(()=>a[3]||(a[3]=[y(" / 录入中 ")])),_:1})])):N("",!0)],10,Mt),m(S,{disabled:s(i),onClick:R,icon:s(je)},{default:p(()=>a[5]||(a[5]=[y("保存")])),_:1},8,["disabled","icon"])])]),default:p(()=>[h("div",Ft,[(g(!0),E(O,null,j(s(I),(V,ee)=>(g(),E("div",{key:V.name,class:"hotkeys-item flex-space-between"},[h("span",qt,[m(D,null,{default:p(()=>[y(X(V.name),1)]),_:2},1024)]),h("div",zt,[(g(!0),E(O,null,j(V.hotKeys,(te,Be)=>(g(),E("div",{key:te},[h("kbd",null,X(te),1),Be+1a[6]||(a[6]=[y("+")])),_:1})])):N("",!0)]))),128)),V.hotKeys.length==0?(g(),E("span",Qt,"未设置")):N("",!0)]),m(S,{disabled:s(i),text:"",icon:s(he),onClick:te=>x(ee)},{default:p(()=>a[7]||(a[7]=[y("编辑")])),_:2},1032,["disabled","icon","onClick"])]))),128))])]),_:1},8,["modelValue"])],64)}}},Yt=$(Xt,[["__scopeId","data-v-9fd45dad"]]),Zt={__name:"SourceTabForm",props:["config"],setup(e){const t=M().currentSource;return(r,n)=>{const l=Y,c=He,d=Ke,k=Me,b=We,U=Fe,I=qe,u=be,i=_e;return g(),w(i,{id:"source-edit"},{default:p(()=>[(g(!0),E(O,null,j(Object.values(e.config),({name:_,children:v})=>(g(),w(u,{label:_,key:_},{default:p(()=>[m(I,{"label-position":"right","label-width":"auto"},{default:p(()=>[(g(!0),E(O,null,j(v,({type:x,title:R,namespace:W,id:T,array:z,hint:f,required:a})=>(g(),w(U,{label:R,key:R,required:a},{default:p(()=>[x=="String"&&typeof W>"u"?(g(),w(l,{key:0,type:"textarea",modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),x=="String"&&typeof W<"u"?(g(),w(l,{key:1,type:"textarea",modelValue:s(t)[W][T],"onUpdate:modelValue":S=>s(t)[W][T]=S,placeholder:f,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),x=="Boolean"?(g(),w(c,{key:2,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),x=="Number"?(g(),w(d,{key:3,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S,min:0},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),x=="Array"?(g(),w(b,{key:4,modelValue:s(t)[T],"onUpdate:modelValue":S=>s(t)[T]=S},{default:p(()=>[(g(!0),E(O,null,j(z,(S,D)=>(g(),w(k,{value:D,key:S,label:S},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):N("",!0)]),_:2},1032,["label","required"]))),128))]),_:2},1024)]),_:2},1032,["label"]))),128))]),_:1})}}},eo=$(Zt,[["__scopeId","data-v-ffcf3f30"]]),to={base:{name:"基础",children:[{title:"源类型",id:"bookSourceType",type:"Array",array:["文本","音频","图片","文件"],required:!0},{title:"源域名",id:"bookSourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"源名称",id:"bookSourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"bookSourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"bookSourceComment",type:"String",hint:"描述源作者和状态"},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"链接验证",id:"bookUrlPattern",type:"String",hint:"书籍URL正则,当详情页URL与源URL的域名不一致时有效,用于添加网址"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"书源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率,如1000(访问间隔1000ms)或者1/1000(1000ms内访问1次)"},{title:"js库",id:"jsLib",type:"String",hint:"js库, 可填写js或者key-value object获取在线js文件"}]},search:{name:"搜索",children:[{title:"搜索地址",id:"searchUrl",type:"String",hint:"[域名可省略]/search.php@kw={{key}}"},{title:"校验文字",namespace:"ruleSearch",id:"checkKeyWord",type:"String",hint:"校验关键字,强烈建议填写"},{title:"列表规则",namespace:"ruleSearch",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleSearch",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleSearch",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleSearch",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleSearch",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleSearch",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleSearch",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleSearch",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleSearch",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},find:{name:"发现",children:[{title:"发现地址",id:"exploreUrl",type:"String",hint:"单个发现格式::或者{url:,title:,style:...};前者用换行符或者&&连接,后者放在数组内;可用js动态生成"},{title:"列表规则",namespace:"ruleExplore",id:"bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",namespace:"ruleExplore",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleExplore",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleExplore",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleExplore",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleExplore",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleExplore",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleExplore",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",namespace:"ruleExplore",id:"bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}]},detail:{name:"详情",children:[{title:"预处理",namespace:"ruleBookInfo",id:"init",type:"String",hint:"用于加速详情信息检索,只支持AllInOne规则"},{title:"书名规则",namespace:"ruleBookInfo",id:"name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",namespace:"ruleBookInfo",id:"author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",namespace:"ruleBookInfo",id:"kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",namespace:"ruleBookInfo",id:"wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",namespace:"ruleBookInfo",id:"lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",namespace:"ruleBookInfo",id:"intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",namespace:"ruleBookInfo",id:"coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"目录地址",namespace:"ruleBookInfo",id:"tocUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url, 与详情页相同时可省略)"},{title:"修改书籍",namespace:"ruleBookInfo",id:"canReName",type:"String",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"},{title:"下载URL",namespace:"ruleBookInfo",id:"downloadUrls",type:"String",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"}]},directory:{name:"目录",children:[{title:"更新前JS",namespace:"ruleToc",id:"preUpdateJs",type:"String",hint:"更新目录前调用JS 动态更新目录链接"},{title:"列表规则",namespace:"ruleToc",id:"chapterList",type:"String",hint:"选择目录列表的章节节点 (规则结果为List)"},{title:"章节名称",namespace:"ruleToc",id:"chapterName",type:"String",hint:"选择章节名称 (规则结果为String)"},{title:"章节地址",namespace:"ruleToc",id:"chapterUrl",type:"String",hint:"选择章节链接 (规则结果为String类型的Url)"},{title:"标题处理",namespace:"ruleToc",id:"formatJs",type:"String",hint:"遍历去重后的章节列表的回调,提供index(章节序号从1开始)、title(章节标题)变量,额外提供gInt(初始值0),返回值作为新的标题"},{title:"卷名标识",namespace:"ruleToc",id:"isVolume",type:"String",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"章节信息",namespace:"ruleToc",id:"updateTime",type:"String",hint:"选择章节信息(如更新时间) (规则结果为String)"},{title:"收费标识",namespace:"ruleToc",id:"isVip",type:"String",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",namespace:"ruleToc",id:"isPay",type:"String",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"翻页规则",namespace:"ruleToc",id:"nextTocUrl",type:"String",hint:"选择目录下一页链接 (规则结果为List或String)"}]},content:{name:"正文",children:[{title:"正文规则",namespace:"ruleContent",id:"content",type:"String",hint:"选择正文内容 (规则结果为String)"},{title:"标题规则",namespace:"ruleContent",id:"title",type:"String",hint:"获取结果将会覆盖章节标题 (规则结果为String)"},{title:"翻页规则",namespace:"ruleContent",id:"nextContentUrl",type:"String",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{title:"脚本注入",namespace:"ruleContent",id:"webJs",type:"String",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"资源正则",namespace:"ruleContent",id:"sourceRegex",type:"String",hint:"匹配资源的url特征,用于嗅探"},{title:"替换规则",namespace:"ruleContent",id:"replaceRegex",type:"String",hint:"多页内容合并后替换,用于正文净化"},{title:"图片样式",namespace:"ruleContent",id:"imageStyle",type:"String",hint:"FULL:铺满 不填:默认样式"},{title:"图片解密",namespace:"ruleContent",id:"imageDecode",type:"String",hint:"填写JavaScript 返回解密图片的bytes "},{title:"购买操作",namespace:"ruleContent",id:"payAction",type:"String",hint:"填写JavaScript 返回购买链接或者调用购买接口"}]},other:{name:"其他",children:[{title:"启用搜索",id:"enabled",type:"Boolean"},{title:"启用发现",id:"enabledExplore",type:"Boolean"},{title:"CookieJar",id:"enabledCookieJar",type:"Boolean"},{title:"搜索权重",id:"weight",type:"Number"},{title:"排序编号",id:"customOrder",type:"Number"}]}},oo={base:{name:"基础",children:[{title:"源域名",id:"sourceUrl",type:"String",hint:"通常填写网站主页,例: https://www.qidian.com",required:!0},{title:"图标",id:"sourceIcon",type:"String",hint:"填写图片网络链接"},{title:"源名称",id:"sourceName",type:"String",hint:"会显示在源列表",required:!0},{title:"源分组",id:"sourceGroup",type:"String",hint:"描述源的特征信息"},{title:"源注释",id:"sourceComment",type:"String",hint:"描述源作者和状态"},{title:"分类地址",id:"sortUrl",type:"String",hint:`名称1::链接1 +名称2::链接2`},{title:"登录地址",id:"loginUrl",type:"String",hint:"填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",id:"loginUi",type:"String",hint:"自定义登录界面"},{title:"登录检测",id:"loginCheckJs",type:"String",hint:"登录检测js"},{title:"封面解密",id:"coverDecodeJs",type:"String",hint:"封面解密js"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"变量说明",id:"variableComment",type:"String",hint:"源变量说明"},{title:"并发率",id:"concurrentRate",type:"String",hint:"并发率"}]},list:{name:"列表",children:[{title:"列表规则",id:"ruleArticles",type:"String",hint:"规则结果为List"},{title:"翻页规则",id:"ruleNextPage",type:"String",hint:"下一页链接 规则结果为List或String"},{title:"标题规则",id:"ruleTitle",type:"String",hint:"文章标题 规则结果为String"},{title:"时间规则",id:"rulePubDate",type:"String",hint:"文章发布时间 规则结果为String"},{title:"描述规则",id:"ruleDescription",type:"String",hint:"文章简要描述 规则结果为String"},{title:"图片规则",id:"ruleImage",type:"String",hint:"文章图片链接 规则结果为String"},{title:"链接规则",id:"ruleLink",type:"String",hint:"文章链接 规则结果为String"}]},webView:{name:"WebView",children:[{title:"内容规则",id:"ruleContent",type:"String",hint:"文章正文"},{title:"样式规则",id:"style",type:"String",hint:"文章正文样式 填写css"},{title:"注入规则",id:"injectJs",type:"String",hint:"注入网页的JavaScript"},{title:"黑名单",id:"contentBlacklist",type:"String",hint:"webView链接加载黑名单,英文逗号隔开"},{title:"白名单",id:"contentWhitelist",type:"String",hint:"webView链接加载白名单,英文逗号隔开"},{title:"链接拦截",id:"shouldOverrideUrlLoading",type:"String",hint:"填写js,变量url为当前资源链接,返回true拦截"}]},other:{name:"其他",children:[{title:"列表样式",id:"articleStyle",type:"Array",array:["默认","大图","双列"]},{title:"加载地址",id:"loadWithBaseUrl",type:"Boolean"},{title:"启用JS",id:"enableJs",type:"Boolean"},{title:"启用",id:"enabled",type:"Boolean"},{title:"Cookie",id:"enabledCookieJar",type:"Boolean"},{title:"单URL",id:"singleUrl",type:"Boolean"},{title:"排序编号",id:"customOrder",type:"Number"}]}},no={class:"editor"},ro={__name:"SourceEditor",setup(e){ze();let o;return/bookSource/i.test(location.href)?(o=to,document.title="书源管理"):(o=oo,document.title="订阅源管理"),(t,r)=>{const n=eo,l=Yt,c=At;return g(),E("div",no,[m(n,{class:"left",config:s(o)},null,8,["config"]),m(l),m(c,{class:"right"})])}}},ge=$(ro,[["__scopeId","data-v-9682883a"]]),we=[{path:"/bookSource",name:"book-home",component:ge},{path:"/rssSource",name:"rss-home",component:ge}];ne({history:re(),routes:we});const Ce=ne({history:re(),routes:ke.concat(we)});Ce.afterEach(e=>{e.name=="shelf"&&(document.title="书架")});Ge(Ye).use($t).use(Ce).mount("#app");le(()=>Pt().isNight,e=>{e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")});export{A,$ as _,Pt as u}; diff --git a/app/src/main/assets/web/vue/assets/loading-F0lQefyD.js b/app/src/main/assets/web/vue/assets/loading-DPd2-h-z.js similarity index 85% rename from app/src/main/assets/web/vue/assets/loading-F0lQefyD.js rename to app/src/main/assets/web/vue/assets/loading-DPd2-h-z.js index 66fe81d02..57dee15b8 100644 --- a/app/src/main/assets/web/vue/assets/loading-F0lQefyD.js +++ b/app/src/main/assets/web/vue/assets/loading-DPd2-h-z.js @@ -1 +1 @@ -import{ag as f,v as g,H as u,ah as c,u as d,a5 as h,ai as m}from"./vendor-Blq-ceJ6.js";const L=a=>/,\s*\{/.test(a)||!(a.startsWith("http")||a.startsWith("data:")||a.startsWith("blob:")),M=a=>{let r=new Date().getTime(),e=Math.floor((r-a)/1e3),t="";return e<=30?t="刚刚":e<60?t=e+"秒前":e<3600?t=Math.floor(e/60)+"分钟前":e<86400?t=Math.floor(e/3600)+"小时前":e<2592e3?t=Math.floor(e/86400)+"天前":t=f(new Date(a),"YYYY-MM-DD"),t},b=(a,r,e=m)=>{const t=g(!1);let s=null;const n=()=>t.value=!1,i=()=>t.value=!0;u(t,o=>{if(!o)return s==null?void 0:s.close();s=c.service({target:d(a),spinner:e,text:r,lock:!0,background:"rgba(0, 0, 0, 0)"})});const l=o=>{if(!(o instanceof Promise))throw TypeError("loadingWrapper argument must be Promise");return i(),o.finally(n)};return h(()=>{n()}),{isLoading:t,showLoading:i,closeLoading:n,loadingWrapper:l}};export{M as d,L as i,b as u}; +import{ah as f,v as g,H as u,ai as c,u as d,a6 as h,aj as m}from"./vendor-MihKrDrn.js";const L=a=>/,\s*\{/.test(a)||!(a.startsWith("http")||a.startsWith("data:")||a.startsWith("blob:")),M=a=>{let r=new Date().getTime(),e=Math.floor((r-a)/1e3),t="";return e<=30?t="刚刚":e<60?t=e+"秒前":e<3600?t=Math.floor(e/60)+"分钟前":e<86400?t=Math.floor(e/3600)+"小时前":e<2592e3?t=Math.floor(e/86400)+"天前":t=f(new Date(a),"YYYY-MM-DD"),t},b=(a,r,e=m)=>{const t=g(!1);let s=null;const n=()=>t.value=!1,i=()=>t.value=!0;u(t,o=>{if(!o)return s==null?void 0:s.close();s=c.service({target:d(a),spinner:e,text:r,lock:!0,background:"rgba(0, 0, 0, 0)"})});const l=o=>{if(!(o instanceof Promise))throw TypeError("loadingWrapper argument must be Promise");return i(),o.finally(n)};return h(()=>{n()}),{isLoading:t,showLoading:i,closeLoading:n,loadingWrapper:l}};export{M as d,L as i,b as u}; diff --git a/app/src/main/assets/web/vue/assets/vendor-Blq-ceJ6.js b/app/src/main/assets/web/vue/assets/vendor-MihKrDrn.js similarity index 99% rename from app/src/main/assets/web/vue/assets/vendor-Blq-ceJ6.js rename to app/src/main/assets/web/vue/assets/vendor-MihKrDrn.js index 5f693509a..88d23b7c7 100644 --- a/app/src/main/assets/web/vue/assets/vendor-Blq-ceJ6.js +++ b/app/src/main/assets/web/vue/assets/vendor-MihKrDrn.js @@ -47,4 +47,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * pinia v2.2.4 * (c) 2024 Eduardo San Martin Morote * @license MIT - */let hy;const ll=e=>hy=e,vy=Symbol();function Nu(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Cs;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Cs||(Cs={}));function W$(){const e=Eh(!0),t=e.run(()=>B({}));let n=[],r=[];const o=xs({install(s){ll(o),o._a=s,s.provide(vy,o),s.config.globalProperties.$pinia=o,r.forEach(i=>n.push(i)),r=[]},use(s){return!this._a&&!O1?r.push(s):n.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const my=()=>{};function ah(e,t,n,r=my){e.push(t);const o=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),r())};return!n&&Ca()&&Ta(o),o}function _o(e,...t){e.slice().forEach(n=>{n(...t)})}const P8=e=>e(),lh=Symbol(),zl=Symbol();function Fu(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],o=e[n];Nu(o)&&Nu(r)&&e.hasOwnProperty(n)&&!Ue(r)&&!Xn(r)?e[n]=Fu(o,r):e[n]=r}return e}const I8=Symbol();function $8(e){return!Nu(e)||!e.hasOwnProperty(I8)}const{assign:wr}=Object;function M8(e){return!!(Ue(e)&&e.effect)}function k8(e,t,n,r){const{state:o,actions:s,getters:i}=t,a=n.state.value[e];let l;function u(){a||(n.state.value[e]=o?o():{});const c=or(n.state.value[e]);return wr(c,s,Object.keys(i||{}).reduce((f,d)=>(f[d]=xs(T(()=>{ll(n);const v=n._s.get(e);return i[d].call(v,v)})),f),{}))}return l=gy(e,u,t,n,r,!0),l}function gy(e,t,n={},r,o,s){let i;const a=wr({actions:{}},n),l={deep:!0};let u,c,f=[],d=[],v;const p=r.state.value[e];!s&&!p&&(r.state.value[e]={}),B({});let h;function y(P){let R;u=c=!1,typeof P=="function"?(P(r.state.value[e]),R={type:Cs.patchFunction,storeId:e,events:v}):(Fu(r.state.value[e],P),R={type:Cs.patchObject,payload:P,storeId:e,events:v});const I=h=Symbol();$e().then(()=>{h===I&&(u=!0)}),c=!0,_o(f,R,r.state.value[e])}const m=s?function(){const{state:R}=n,I=R?R():{};this.$patch(N=>{wr(N,I)})}:my;function _(){i.stop(),f=[],d=[],r._s.delete(e)}const E=(P,R="")=>{if(lh in P)return P[zl]=R,P;const I=function(){ll(r);const N=Array.from(arguments),k=[],D=[];function X(H){k.push(H)}function $(H){D.push(H)}_o(d,{args:N,name:I[zl],store:b,after:X,onError:$});let x;try{x=P.apply(this&&this.$id===e?this:b,N)}catch(H){throw _o(D,H),H}return x instanceof Promise?x.then(H=>(_o(k,H),H)).catch(H=>(_o(D,H),Promise.reject(H))):(_o(k,x),x)};return I[lh]=!0,I[zl]=R,I},w={_p:r,$id:e,$onAction:ah.bind(null,d),$patch:y,$reset:m,$subscribe(P,R={}){const I=ah(f,P,R.detached,()=>N()),N=i.run(()=>ve(()=>r.state.value[e],k=>{(R.flush==="sync"?c:u)&&P({storeId:e,type:Cs.direct,events:v},k)},wr({},l,R)));return I},$dispose:_},b=St(w);r._s.set(e,b);const A=(r._a&&r._a.runWithContext||P8)(()=>r._e.run(()=>(i=Eh()).run(()=>t({action:E}))));for(const P in A){const R=A[P];if(Ue(R)&&!M8(R)||Xn(R))s||(p&&$8(R)&&(Ue(R)?R.value=p[P]:Fu(R,p[P])),r.state.value[e][P]=R);else if(typeof R=="function"){const I=E(R,P);A[P]=I,a.actions[P]=R}}return wr(b,A),wr(Me(b),A),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:P=>{y(R=>{wr(R,P)})}}),r._p.forEach(P=>{wr(b,i.run(()=>P({store:b,app:r._a,pinia:r,options:a})))}),p&&s&&n.hydrate&&n.hydrate(b.$state,p),u=!0,c=!0,b}function G$(e,t,n){let r,o;const s=typeof t=="function";typeof e=="string"?(r=e,o=s?n:t):(o=e,r=e.id);function i(a,l){const u=s0();return a=a||(u?Se(vy,null):null),a&&ll(a),a=hy,a._s.has(r)||(s?gy(r,t,o,a):k8(r,o,a)),a._s.get(r)}return i.$id=r,i}function Y$(e){{e=Me(e);const t={};for(const n in e){const r=e[n];(Ue(r)||Xn(r))&&(t[n]=Gt(e,n))}return t}}const Hl=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1;function Kl(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),n)}function ls(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r):e.detachEvent&&e.detachEvent("on".concat(t),n)}function yy(e,t){const n=t.slice(0,t.length-1);for(let r=0;r=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}function L8(e,t){const n=e.length>=t.length?e:t,r=e.length>=t.length?t:e;let o=!0;for(let s=0;sWs[e.toLowerCase()]||Dn[e.toLowerCase()]||e.toUpperCase().charCodeAt(0),N8=e=>Object.keys(Ws).find(t=>Ws[t]===e),F8=e=>Object.keys(Dn).find(t=>Dn[t]===e);function Sy(e){wy=e||"all"}function Gs(){return wy||"all"}function B8(){return tt.slice(0)}function D8(){return tt.map(e=>N8(e)||F8(e)||String.fromCharCode(e))}function V8(){const e=[];return Object.keys(ut).forEach(t=>{ut[t].forEach(n=>{let{key:r,scope:o,mods:s,shortcut:i}=n;e.push({scope:o,shortcut:i,mods:s,keys:r.split("+").map(a=>li(a))})})}),e}function j8(e){const t=e.target||e.srcElement,{tagName:n}=t;let r=!0;const o=n==="INPUT"&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(t.type);return(t.isContentEditable||(o||n==="TEXTAREA"||n==="SELECT")&&!t.readOnly)&&(r=!1),r}function z8(e){return typeof e=="string"&&(e=li(e)),tt.indexOf(e)!==-1}function H8(e,t){let n,r;e||(e=Gs());for(const o in ut)if(Object.prototype.hasOwnProperty.call(ut,o))for(n=ut[o],r=0;r{let{element:a}=i;return Gc(a)}):r++;Gs()===e&&Sy(t||"all")}function K8(e){let t=e.keyCode||e.which||e.charCode;const n=tt.indexOf(t);if(n>=0&&tt.splice(n,1),e.key&&e.key.toLowerCase()==="meta"&&tt.splice(0,tt.length),(t===93||t===224)&&(t=91),t in Et){Et[t]=!1;for(const r in Dn)Dn[r]===t&&(Ar[r]=!1)}}function _y(e){if(typeof e>"u")Object.keys(ut).forEach(o=>{Array.isArray(ut[o])&&ut[o].forEach(s=>$i(s)),delete ut[o]}),Gc(null);else if(Array.isArray(e))e.forEach(o=>{o.key&&$i(o)});else if(typeof e=="object")e.key&&$i(e);else if(typeof e=="string"){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{let{key:t,scope:n,method:r,splitKey:o="+"}=e;by(t).forEach(i=>{const a=i.split(o),l=a.length,u=a[l-1],c=u==="*"?"*":li(u);if(!ut[c])return;n||(n=Gs());const f=l>1?yy(Dn,a):[],d=[];ut[c]=ut[c].filter(v=>{const h=(r?v.method===r:!0)&&v.scope===n&&L8(v.mods,f);return h&&d.push(v.element),!h}),d.forEach(v=>Gc(v))})};function uh(e,t,n,r){if(t.element!==r)return;let o;if(t.scope===n||t.scope==="all"){o=t.mods.length>0;for(const s in Et)Object.prototype.hasOwnProperty.call(Et,s)&&(!Et[s]&&t.mods.indexOf(+s)>-1||Et[s]&&t.mods.indexOf(+s)===-1)&&(o=!1);(t.mods.length===0&&!Et[16]&&!Et[18]&&!Et[17]&&!Et[91]||o||t.shortcut==="*")&&(t.keys=[],t.keys=t.keys.concat(tt),t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0)))}}function ch(e,t){const n=ut["*"];let r=e.keyCode||e.which||e.charCode;if(!Ar.filter.call(this,e))return;if((r===93||r===224)&&(r=91),tt.indexOf(r)===-1&&r!==229&&tt.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach(a=>{const l=Bu[a];e[a]&&tt.indexOf(l)===-1?tt.push(l):!e[a]&&tt.indexOf(l)>-1?tt.splice(tt.indexOf(l),1):a==="metaKey"&&e[a]&&tt.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(tt=tt.slice(tt.indexOf(l))))}),r in Et){Et[r]=!0;for(const a in Dn)Dn[a]===r&&(Ar[a]=!0);if(!n)return}for(const a in Et)Object.prototype.hasOwnProperty.call(Et,a)&&(Et[a]=e[Bu[a]]);e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(tt.indexOf(17)===-1&&tt.push(17),tt.indexOf(18)===-1&&tt.push(18),Et[17]=!0,Et[18]=!0);const o=Gs();if(n)for(let a=0;a1&&(o=yy(Dn,e)),e=e[e.length-1],e=e==="*"?"*":li(e),e in ut||(ut[e]=[]),ut[e].push({keyup:l,keydown:u,scope:s,mods:o,shortcut:r[a],method:n,key:r[a],splitKey:c,element:i});if(typeof i<"u"&&window){if(!qn.has(i)){const v=function(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.event;return ch(h,i)},p=function(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.event;ch(h,i),K8(h)};qn.set(i,{keydownListener:v,keyupListenr:p,capture:f}),Kl(i,"keydown",v,f),Kl(i,"keyup",p,f)}if(!Ts){const v=()=>{tt=[]};Ts={listener:v,capture:f},Kl(window,"focus",v,f)}}}function U8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(ut).forEach(n=>{ut[n].filter(o=>o.scope===t&&o.shortcut===e).forEach(o=>{o&&o.method&&o.method()})})}function Gc(e){const t=Object.values(ut).flat();if(t.findIndex(r=>{let{element:o}=r;return o===e})<0){const{keydownListener:r,keyupListenr:o,capture:s}=qn.get(e)||{};r&&o&&(ls(e,"keyup",o,s),ls(e,"keydown",r,s),qn.delete(e))}if((t.length<=0||qn.size<=0)&&(Object.keys(qn).forEach(o=>{const{keydownListener:s,keyupListenr:i,capture:a}=qn.get(o)||{};s&&i&&(ls(o,"keyup",i,a),ls(o,"keydown",s,a),qn.delete(o))}),qn.clear(),Object.keys(ut).forEach(o=>delete ut[o]),Ts)){const{listener:o,capture:s}=Ts;ls(window,"focus",o,s),Ts=null}}const Ul={getPressedKeyString:D8,setScope:Sy,getScope:Gs,deleteScope:H8,getPressedKeyCodes:B8,getAllKeyCodes:V8,isPressed:z8,filter:j8,trigger:U8,unbind:_y,keyMap:Ws,modifier:Dn,modifierMap:Bu};for(const e in Ul)Object.prototype.hasOwnProperty.call(Ul,e)&&(Ar[e]=Ul[e]);if(typeof window<"u"){const e=window.hotkeys;Ar.noConflict=t=>(t&&window.hotkeys===Ar&&(window.hotkeys=e),Ar),window.hotkeys=Ar}function Ey(e){return Ca()?(Ta(e),!0):!1}function ul(e){return typeof e=="function"?e():g(e)}const q8=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const W8=Object.prototype.toString,G8=e=>W8.call(e)==="[object Object]",Cy=()=>{};function Y8(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const Ty=e=>e();function J8(e=Ty){const t=B(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:lo(t),pause:n,resume:r,eventFilter:o}}function X8(e){return Ze()}function Z8(...e){if(e.length!==1)return Gt(...e);const t=e[0];return typeof t=="function"?lo(Ob(()=>({get:t,set:Cy}))):B(t)}function Q8(e,t,n={}){const{eventFilter:r=Ty,...o}=n;return ve(e,Y8(r,t),o)}function e$(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:i,resume:a,isActive:l}=J8(r);return{stop:Q8(e,t,{...o,eventFilter:s}),pause:i,resume:a,isActive:l}}function Oy(e,t=!0,n){X8()?Ke(e,n):t?e():$e(e)}const Ko=q8?window:void 0;function Ay(e){var t;const n=ul(e);return(t=n==null?void 0:n.$el)!=null?t:n}function fh(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=Ko):[t,n,r,o]=e,!t)return Cy;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(c=>c()),s.length=0},a=(c,f,d,v)=>(c.addEventListener(f,d,v),()=>c.removeEventListener(f,d,v)),l=ve(()=>[Ay(t),ul(o)],([c,f])=>{if(i(),!c)return;const d=G8(f)?{...f}:f;s.push(...n.flatMap(v=>r.map(p=>a(c,v,p,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),i()};return Ey(u),u}function t$(){const e=B(!1),t=Ze();return t&&Ke(()=>{e.value=!0},t),e}function n$(e){const t=t$();return T(()=>(t.value,!!e()))}function r$(e,t={}){const{window:n=Ko}=t,r=n$(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=B(!1),i=u=>{s.value=u.matches},a=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i))},l=ka(()=>{r.value&&(a(),o=n.matchMedia(ul(e)),"addEventListener"in o?o.addEventListener("change",i):o.addListener(i),s.value=o.matches)});return Ey(()=>{l(),a(),o=void 0}),s}const Mi=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ki="__vueuse_ssr_handlers__",o$=s$();function s$(){return ki in Mi||(Mi[ki]=Mi[ki]||{}),Mi[ki]}function xy(e,t){return o$[e]||t}function Ry(e){return r$("(prefers-color-scheme: dark)",e)}function i$(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const a$={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},dh="vueuse-storage";function l$(e,t,n,r={}){var o;const{flush:s="pre",deep:i=!0,listenToStorageChanges:a=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=Ko,eventFilter:d,onError:v=I=>{},initOnMounted:p}=r,h=(c?Zn:B)(typeof t=="function"?t():t);if(!n)try{n=xy("getDefaultStorage",()=>{var I;return(I=Ko)==null?void 0:I.localStorage})()}catch(I){v(I)}if(!n)return h;const y=ul(t),m=i$(y),_=(o=r.serializer)!=null?o:a$[m],{pause:E,resume:w}=e$(h,()=>O(h.value),{flush:s,deep:i,eventFilter:d});f&&a&&Oy(()=>{n instanceof Storage?fh(f,"storage",P):fh(f,dh,R),p&&P()}),p||P();function b(I,N){if(f){const k={key:e,oldValue:I,newValue:N,storageArea:n};f.dispatchEvent(n instanceof Storage?new StorageEvent("storage",k):new CustomEvent(dh,{detail:k}))}}function O(I){try{const N=n.getItem(e);if(I==null)b(N,null),n.removeItem(e);else{const k=_.write(I);N!==k&&(n.setItem(e,k),b(N,k))}}catch(N){v(N)}}function A(I){const N=I?I.newValue:n.getItem(e);if(N==null)return l&&y!=null&&n.setItem(e,_.write(y)),y;if(!I&&u){const k=_.read(N);return typeof u=="function"?u(k,y):m==="object"&&!Array.isArray(k)?{...y,...k}:k}else return typeof N!="string"?N:_.read(N)}function P(I){if(!(I&&I.storageArea!==n)){if(I&&I.key==null){h.value=y;return}if(!(I&&I.key!==e)){E();try{(I==null?void 0:I.newValue)!==_.write(h.value)&&(h.value=A(I))}catch(N){v(N)}finally{I?$e(w):w()}}}}function R(I){P(I.detail)}return h}const u$="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function c$(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:o=Ko,storage:s,storageKey:i="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:l,emitAuto:u,disableTransition:c=!0}=e,f={auto:"",light:"light",dark:"dark",...e.modes||{}},d=Ry({window:o}),v=T(()=>d.value?"dark":"light"),p=l||(i==null?Z8(r):l$(i,r,s,{window:o,listenToStorageChanges:a})),h=T(()=>p.value==="auto"?v.value:p.value),y=xy("updateHTMLAttrs",(w,b,O)=>{const A=typeof w=="string"?o==null?void 0:o.document.querySelector(w):Ay(w);if(!A)return;const P=new Set,R=new Set;let I=null;if(b==="class"){const k=O.split(/\s/g);Object.values(f).flatMap(D=>(D||"").split(/\s/g)).filter(Boolean).forEach(D=>{k.includes(D)?P.add(D):R.add(D)})}else I={key:b,value:O};if(P.size===0&&R.size===0&&I===null)return;let N;c&&(N=o.document.createElement("style"),N.appendChild(document.createTextNode(u$)),o.document.head.appendChild(N));for(const k of P)A.classList.add(k);for(const k of R)A.classList.remove(k);I&&A.setAttribute(I.key,I.value),c&&(o.getComputedStyle(N).opacity,document.head.removeChild(N))});function m(w){var b;y(t,n,(b=f[w])!=null?b:w)}function _(w){e.onChanged?e.onChanged(w,m):m(w)}ve(h,_,{flush:"post",immediate:!0}),Oy(()=>_(h.value));const E=T({get(){return u?p.value:h.value},set(w){p.value=w}});try{return Object.assign(E,{store:p,system:v,state:h})}catch{return E}}function J$(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Ko}=e,o=c$({...e,onChanged:(a,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,a==="dark",l,a):l(a)},modes:{dark:t,light:n}}),s=T(()=>o.system?o.system.value:Ry({window:r}).value?"dark":"light");return T({get(){return o.value==="dark"},set(a){const l=a?"dark":"light";s.value===l?o.value="auto":o.value=l}})}function f$(e){return typeof e=="function"?e():g(e)}typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ph=()=>{};function d$(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}function p$(...e){let t=0,n,r=!0,o=ph,s,i,a,l,u;!Ue(e[0])&&typeof e[0]=="object"?{delay:i,trailing:a=!0,leading:l=!0,rejectOnCancel:u=!1}=e[0]:[i,a=!0,l=!0,u=!1]=e;const c=()=>{n&&(clearTimeout(n),n=void 0,o(),o=ph)};return d=>{const v=f$(i),p=Date.now()-t,h=()=>s=d();return c(),v<=0?(t=Date.now(),h()):(p>v&&(l||!r)?(t=Date.now(),h()):a&&(s=new Promise((y,m)=>{o=u?m:y,n=setTimeout(()=>{t=Date.now(),r=!0,y(h()),c()},Math.max(0,v-p))})),!l&&!n&&(n=setTimeout(()=>r=!0,v)),r=!1,s)}}function X$(e,t=200,n=!1,r=!0,o=!1){return d$(p$(t,n,r,o),e)}const h$=/[YMDHhms]o|\[([^\]]+)\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;function v$(e,t,n,r){let o=e<12?"AM":"PM";return r&&(o=o.split("").reduce((s,i)=>s+=`${i}.`,"")),n?o.toLowerCase():o}function Hr(e){const t=["th","st","nd","rd"],n=e%100;return e+(t[(n-20)%10]||t[n]||t[0])}function Z$(e,t,n={}){var r;const o=e.getFullYear(),s=e.getMonth(),i=e.getDate(),a=e.getHours(),l=e.getMinutes(),u=e.getSeconds(),c=e.getMilliseconds(),f=e.getDay(),d=(r=n.customMeridiem)!=null?r:v$,v={Yo:()=>Hr(o),YY:()=>String(o).slice(-2),YYYY:()=>o,M:()=>s+1,Mo:()=>Hr(s+1),MM:()=>`${s+1}`.padStart(2,"0"),MMM:()=>e.toLocaleDateString(n.locales,{month:"short"}),MMMM:()=>e.toLocaleDateString(n.locales,{month:"long"}),D:()=>String(i),Do:()=>Hr(i),DD:()=>`${i}`.padStart(2,"0"),H:()=>String(a),Ho:()=>Hr(a),HH:()=>`${a}`.padStart(2,"0"),h:()=>`${a%12||12}`.padStart(1,"0"),ho:()=>Hr(a%12||12),hh:()=>`${a%12||12}`.padStart(2,"0"),m:()=>String(l),mo:()=>Hr(l),mm:()=>`${l}`.padStart(2,"0"),s:()=>String(u),so:()=>Hr(u),ss:()=>`${u}`.padStart(2,"0"),SSS:()=>`${c}`.padStart(3,"0"),d:()=>f,dd:()=>e.toLocaleDateString(n.locales,{weekday:"narrow"}),ddd:()=>e.toLocaleDateString(n.locales,{weekday:"short"}),dddd:()=>e.toLocaleDateString(n.locales,{weekday:"long"}),A:()=>d(a,l),AA:()=>d(a,l,!1,!0),a:()=>d(a,l,!0),aa:()=>d(a,l,!0,!0)};return t.replace(h$,(p,h)=>{var y,m;return(m=h??((y=v[p])==null?void 0:y.call(v)))!=null?m:p})}const Q$='';export{bw as $,C$ as A,E$ as B,Me as C,pg as D,L$ as E,ot as F,$$ as G,ve as H,Bt as I,ae as J,W$ as K,ka as L,pf as M,j$ as N,V$ as O,Ar as P,Ke as Q,_$ as R,M$ as S,D$ as T,k$ as U,q$ as V,F$ as W,N$ as X,P$ as Y,R$ as Z,J$ as _,w$ as a,g$ as a0,Kx as a1,Zn as a2,S$ as a3,U$ as a4,$r as a5,it as a6,$e as a7,ct as a8,pw as a9,Eg as aa,B$ as ab,Y$ as ac,uo as ad,X$ as ae,b$ as af,Z$ as ag,H$ as ah,Q$ as ai,y$ as b,ce as c,Q as d,oe as e,Mn as f,le as g,z$ as h,mt as i,K$ as j,G$ as k,A$ as l,T as m,T$ as n,M as o,j as p,_x as q,Wt as r,I$ as s,He as t,g as u,B as v,ue as w,Ue as x,x$ as y,O$ as z}; + */let hy;const ll=e=>hy=e,vy=Symbol();function Nu(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Cs;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Cs||(Cs={}));function W$(){const e=Eh(!0),t=e.run(()=>B({}));let n=[],r=[];const o=xs({install(s){ll(o),o._a=s,s.provide(vy,o),s.config.globalProperties.$pinia=o,r.forEach(i=>n.push(i)),r=[]},use(s){return!this._a&&!O1?r.push(s):n.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const my=()=>{};function ah(e,t,n,r=my){e.push(t);const o=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),r())};return!n&&Ca()&&Ta(o),o}function _o(e,...t){e.slice().forEach(n=>{n(...t)})}const P8=e=>e(),lh=Symbol(),zl=Symbol();function Fu(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],o=e[n];Nu(o)&&Nu(r)&&e.hasOwnProperty(n)&&!Ue(r)&&!Xn(r)?e[n]=Fu(o,r):e[n]=r}return e}const I8=Symbol();function $8(e){return!Nu(e)||!e.hasOwnProperty(I8)}const{assign:wr}=Object;function M8(e){return!!(Ue(e)&&e.effect)}function k8(e,t,n,r){const{state:o,actions:s,getters:i}=t,a=n.state.value[e];let l;function u(){a||(n.state.value[e]=o?o():{});const c=or(n.state.value[e]);return wr(c,s,Object.keys(i||{}).reduce((f,d)=>(f[d]=xs(T(()=>{ll(n);const v=n._s.get(e);return i[d].call(v,v)})),f),{}))}return l=gy(e,u,t,n,r,!0),l}function gy(e,t,n={},r,o,s){let i;const a=wr({actions:{}},n),l={deep:!0};let u,c,f=[],d=[],v;const p=r.state.value[e];!s&&!p&&(r.state.value[e]={}),B({});let h;function y(P){let R;u=c=!1,typeof P=="function"?(P(r.state.value[e]),R={type:Cs.patchFunction,storeId:e,events:v}):(Fu(r.state.value[e],P),R={type:Cs.patchObject,payload:P,storeId:e,events:v});const I=h=Symbol();$e().then(()=>{h===I&&(u=!0)}),c=!0,_o(f,R,r.state.value[e])}const m=s?function(){const{state:R}=n,I=R?R():{};this.$patch(N=>{wr(N,I)})}:my;function _(){i.stop(),f=[],d=[],r._s.delete(e)}const E=(P,R="")=>{if(lh in P)return P[zl]=R,P;const I=function(){ll(r);const N=Array.from(arguments),k=[],D=[];function X(H){k.push(H)}function $(H){D.push(H)}_o(d,{args:N,name:I[zl],store:b,after:X,onError:$});let x;try{x=P.apply(this&&this.$id===e?this:b,N)}catch(H){throw _o(D,H),H}return x instanceof Promise?x.then(H=>(_o(k,H),H)).catch(H=>(_o(D,H),Promise.reject(H))):(_o(k,x),x)};return I[lh]=!0,I[zl]=R,I},w={_p:r,$id:e,$onAction:ah.bind(null,d),$patch:y,$reset:m,$subscribe(P,R={}){const I=ah(f,P,R.detached,()=>N()),N=i.run(()=>ve(()=>r.state.value[e],k=>{(R.flush==="sync"?c:u)&&P({storeId:e,type:Cs.direct,events:v},k)},wr({},l,R)));return I},$dispose:_},b=St(w);r._s.set(e,b);const A=(r._a&&r._a.runWithContext||P8)(()=>r._e.run(()=>(i=Eh()).run(()=>t({action:E}))));for(const P in A){const R=A[P];if(Ue(R)&&!M8(R)||Xn(R))s||(p&&$8(R)&&(Ue(R)?R.value=p[P]:Fu(R,p[P])),r.state.value[e][P]=R);else if(typeof R=="function"){const I=E(R,P);A[P]=I,a.actions[P]=R}}return wr(b,A),wr(Me(b),A),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:P=>{y(R=>{wr(R,P)})}}),r._p.forEach(P=>{wr(b,i.run(()=>P({store:b,app:r._a,pinia:r,options:a})))}),p&&s&&n.hydrate&&n.hydrate(b.$state,p),u=!0,c=!0,b}function G$(e,t,n){let r,o;const s=typeof t=="function";typeof e=="string"?(r=e,o=s?n:t):(o=e,r=e.id);function i(a,l){const u=s0();return a=a||(u?Se(vy,null):null),a&&ll(a),a=hy,a._s.has(r)||(s?gy(r,t,o,a):k8(r,o,a)),a._s.get(r)}return i.$id=r,i}function Y$(e){{e=Me(e);const t={};for(const n in e){const r=e[n];(Ue(r)||Xn(r))&&(t[n]=Gt(e,n))}return t}}const Hl=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1;function Kl(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),n)}function ls(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r):e.detachEvent&&e.detachEvent("on".concat(t),n)}function yy(e,t){const n=t.slice(0,t.length-1);for(let r=0;r=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}function L8(e,t){const n=e.length>=t.length?e:t,r=e.length>=t.length?t:e;let o=!0;for(let s=0;sWs[e.toLowerCase()]||Dn[e.toLowerCase()]||e.toUpperCase().charCodeAt(0),N8=e=>Object.keys(Ws).find(t=>Ws[t]===e),F8=e=>Object.keys(Dn).find(t=>Dn[t]===e);function Sy(e){wy=e||"all"}function Gs(){return wy||"all"}function B8(){return tt.slice(0)}function D8(){return tt.map(e=>N8(e)||F8(e)||String.fromCharCode(e))}function V8(){const e=[];return Object.keys(ut).forEach(t=>{ut[t].forEach(n=>{let{key:r,scope:o,mods:s,shortcut:i}=n;e.push({scope:o,shortcut:i,mods:s,keys:r.split("+").map(a=>li(a))})})}),e}function j8(e){const t=e.target||e.srcElement,{tagName:n}=t;let r=!0;const o=n==="INPUT"&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(t.type);return(t.isContentEditable||(o||n==="TEXTAREA"||n==="SELECT")&&!t.readOnly)&&(r=!1),r}function z8(e){return typeof e=="string"&&(e=li(e)),tt.indexOf(e)!==-1}function H8(e,t){let n,r;e||(e=Gs());for(const o in ut)if(Object.prototype.hasOwnProperty.call(ut,o))for(n=ut[o],r=0;r{let{element:a}=i;return Gc(a)}):r++;Gs()===e&&Sy(t||"all")}function K8(e){let t=e.keyCode||e.which||e.charCode;const n=tt.indexOf(t);if(n>=0&&tt.splice(n,1),e.key&&e.key.toLowerCase()==="meta"&&tt.splice(0,tt.length),(t===93||t===224)&&(t=91),t in Et){Et[t]=!1;for(const r in Dn)Dn[r]===t&&(Ar[r]=!1)}}function _y(e){if(typeof e>"u")Object.keys(ut).forEach(o=>{Array.isArray(ut[o])&&ut[o].forEach(s=>$i(s)),delete ut[o]}),Gc(null);else if(Array.isArray(e))e.forEach(o=>{o.key&&$i(o)});else if(typeof e=="object")e.key&&$i(e);else if(typeof e=="string"){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{let{key:t,scope:n,method:r,splitKey:o="+"}=e;by(t).forEach(i=>{const a=i.split(o),l=a.length,u=a[l-1],c=u==="*"?"*":li(u);if(!ut[c])return;n||(n=Gs());const f=l>1?yy(Dn,a):[],d=[];ut[c]=ut[c].filter(v=>{const h=(r?v.method===r:!0)&&v.scope===n&&L8(v.mods,f);return h&&d.push(v.element),!h}),d.forEach(v=>Gc(v))})};function uh(e,t,n,r){if(t.element!==r)return;let o;if(t.scope===n||t.scope==="all"){o=t.mods.length>0;for(const s in Et)Object.prototype.hasOwnProperty.call(Et,s)&&(!Et[s]&&t.mods.indexOf(+s)>-1||Et[s]&&t.mods.indexOf(+s)===-1)&&(o=!1);(t.mods.length===0&&!Et[16]&&!Et[18]&&!Et[17]&&!Et[91]||o||t.shortcut==="*")&&(t.keys=[],t.keys=t.keys.concat(tt),t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0)))}}function ch(e,t){const n=ut["*"];let r=e.keyCode||e.which||e.charCode;if(!Ar.filter.call(this,e))return;if((r===93||r===224)&&(r=91),tt.indexOf(r)===-1&&r!==229&&tt.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach(a=>{const l=Bu[a];e[a]&&tt.indexOf(l)===-1?tt.push(l):!e[a]&&tt.indexOf(l)>-1?tt.splice(tt.indexOf(l),1):a==="metaKey"&&e[a]&&tt.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(tt=tt.slice(tt.indexOf(l))))}),r in Et){Et[r]=!0;for(const a in Dn)Dn[a]===r&&(Ar[a]=!0);if(!n)return}for(const a in Et)Object.prototype.hasOwnProperty.call(Et,a)&&(Et[a]=e[Bu[a]]);e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(tt.indexOf(17)===-1&&tt.push(17),tt.indexOf(18)===-1&&tt.push(18),Et[17]=!0,Et[18]=!0);const o=Gs();if(n)for(let a=0;a1&&(o=yy(Dn,e)),e=e[e.length-1],e=e==="*"?"*":li(e),e in ut||(ut[e]=[]),ut[e].push({keyup:l,keydown:u,scope:s,mods:o,shortcut:r[a],method:n,key:r[a],splitKey:c,element:i});if(typeof i<"u"&&window){if(!qn.has(i)){const v=function(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.event;return ch(h,i)},p=function(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.event;ch(h,i),K8(h)};qn.set(i,{keydownListener:v,keyupListenr:p,capture:f}),Kl(i,"keydown",v,f),Kl(i,"keyup",p,f)}if(!Ts){const v=()=>{tt=[]};Ts={listener:v,capture:f},Kl(window,"focus",v,f)}}}function U8(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(ut).forEach(n=>{ut[n].filter(o=>o.scope===t&&o.shortcut===e).forEach(o=>{o&&o.method&&o.method()})})}function Gc(e){const t=Object.values(ut).flat();if(t.findIndex(r=>{let{element:o}=r;return o===e})<0){const{keydownListener:r,keyupListenr:o,capture:s}=qn.get(e)||{};r&&o&&(ls(e,"keyup",o,s),ls(e,"keydown",r,s),qn.delete(e))}if((t.length<=0||qn.size<=0)&&(Object.keys(qn).forEach(o=>{const{keydownListener:s,keyupListenr:i,capture:a}=qn.get(o)||{};s&&i&&(ls(o,"keyup",i,a),ls(o,"keydown",s,a),qn.delete(o))}),qn.clear(),Object.keys(ut).forEach(o=>delete ut[o]),Ts)){const{listener:o,capture:s}=Ts;ls(window,"focus",o,s),Ts=null}}const Ul={getPressedKeyString:D8,setScope:Sy,getScope:Gs,deleteScope:H8,getPressedKeyCodes:B8,getAllKeyCodes:V8,isPressed:z8,filter:j8,trigger:U8,unbind:_y,keyMap:Ws,modifier:Dn,modifierMap:Bu};for(const e in Ul)Object.prototype.hasOwnProperty.call(Ul,e)&&(Ar[e]=Ul[e]);if(typeof window<"u"){const e=window.hotkeys;Ar.noConflict=t=>(t&&window.hotkeys===Ar&&(window.hotkeys=e),Ar),window.hotkeys=Ar}function Ey(e){return Ca()?(Ta(e),!0):!1}function ul(e){return typeof e=="function"?e():g(e)}const q8=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const W8=Object.prototype.toString,G8=e=>W8.call(e)==="[object Object]",Cy=()=>{};function Y8(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const Ty=e=>e();function J8(e=Ty){const t=B(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:lo(t),pause:n,resume:r,eventFilter:o}}function X8(e){return Ze()}function Z8(...e){if(e.length!==1)return Gt(...e);const t=e[0];return typeof t=="function"?lo(Ob(()=>({get:t,set:Cy}))):B(t)}function Q8(e,t,n={}){const{eventFilter:r=Ty,...o}=n;return ve(e,Y8(r,t),o)}function e$(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:i,resume:a,isActive:l}=J8(r);return{stop:Q8(e,t,{...o,eventFilter:s}),pause:i,resume:a,isActive:l}}function Oy(e,t=!0,n){X8()?Ke(e,n):t?e():$e(e)}const Ko=q8?window:void 0;function Ay(e){var t;const n=ul(e);return(t=n==null?void 0:n.$el)!=null?t:n}function fh(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=Ko):[t,n,r,o]=e,!t)return Cy;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(c=>c()),s.length=0},a=(c,f,d,v)=>(c.addEventListener(f,d,v),()=>c.removeEventListener(f,d,v)),l=ve(()=>[Ay(t),ul(o)],([c,f])=>{if(i(),!c)return;const d=G8(f)?{...f}:f;s.push(...n.flatMap(v=>r.map(p=>a(c,v,p,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),i()};return Ey(u),u}function t$(){const e=B(!1),t=Ze();return t&&Ke(()=>{e.value=!0},t),e}function n$(e){const t=t$();return T(()=>(t.value,!!e()))}function r$(e,t={}){const{window:n=Ko}=t,r=n$(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=B(!1),i=u=>{s.value=u.matches},a=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i))},l=ka(()=>{r.value&&(a(),o=n.matchMedia(ul(e)),"addEventListener"in o?o.addEventListener("change",i):o.addListener(i),s.value=o.matches)});return Ey(()=>{l(),a(),o=void 0}),s}const Mi=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ki="__vueuse_ssr_handlers__",o$=s$();function s$(){return ki in Mi||(Mi[ki]=Mi[ki]||{}),Mi[ki]}function xy(e,t){return o$[e]||t}function Ry(e){return r$("(prefers-color-scheme: dark)",e)}function i$(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const a$={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},dh="vueuse-storage";function l$(e,t,n,r={}){var o;const{flush:s="pre",deep:i=!0,listenToStorageChanges:a=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=Ko,eventFilter:d,onError:v=I=>{},initOnMounted:p}=r,h=(c?Zn:B)(typeof t=="function"?t():t);if(!n)try{n=xy("getDefaultStorage",()=>{var I;return(I=Ko)==null?void 0:I.localStorage})()}catch(I){v(I)}if(!n)return h;const y=ul(t),m=i$(y),_=(o=r.serializer)!=null?o:a$[m],{pause:E,resume:w}=e$(h,()=>O(h.value),{flush:s,deep:i,eventFilter:d});f&&a&&Oy(()=>{n instanceof Storage?fh(f,"storage",P):fh(f,dh,R),p&&P()}),p||P();function b(I,N){if(f){const k={key:e,oldValue:I,newValue:N,storageArea:n};f.dispatchEvent(n instanceof Storage?new StorageEvent("storage",k):new CustomEvent(dh,{detail:k}))}}function O(I){try{const N=n.getItem(e);if(I==null)b(N,null),n.removeItem(e);else{const k=_.write(I);N!==k&&(n.setItem(e,k),b(N,k))}}catch(N){v(N)}}function A(I){const N=I?I.newValue:n.getItem(e);if(N==null)return l&&y!=null&&n.setItem(e,_.write(y)),y;if(!I&&u){const k=_.read(N);return typeof u=="function"?u(k,y):m==="object"&&!Array.isArray(k)?{...y,...k}:k}else return typeof N!="string"?N:_.read(N)}function P(I){if(!(I&&I.storageArea!==n)){if(I&&I.key==null){h.value=y;return}if(!(I&&I.key!==e)){E();try{(I==null?void 0:I.newValue)!==_.write(h.value)&&(h.value=A(I))}catch(N){v(N)}finally{I?$e(w):w()}}}}function R(I){P(I.detail)}return h}const u$="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function c$(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:o=Ko,storage:s,storageKey:i="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:l,emitAuto:u,disableTransition:c=!0}=e,f={auto:"",light:"light",dark:"dark",...e.modes||{}},d=Ry({window:o}),v=T(()=>d.value?"dark":"light"),p=l||(i==null?Z8(r):l$(i,r,s,{window:o,listenToStorageChanges:a})),h=T(()=>p.value==="auto"?v.value:p.value),y=xy("updateHTMLAttrs",(w,b,O)=>{const A=typeof w=="string"?o==null?void 0:o.document.querySelector(w):Ay(w);if(!A)return;const P=new Set,R=new Set;let I=null;if(b==="class"){const k=O.split(/\s/g);Object.values(f).flatMap(D=>(D||"").split(/\s/g)).filter(Boolean).forEach(D=>{k.includes(D)?P.add(D):R.add(D)})}else I={key:b,value:O};if(P.size===0&&R.size===0&&I===null)return;let N;c&&(N=o.document.createElement("style"),N.appendChild(document.createTextNode(u$)),o.document.head.appendChild(N));for(const k of P)A.classList.add(k);for(const k of R)A.classList.remove(k);I&&A.setAttribute(I.key,I.value),c&&(o.getComputedStyle(N).opacity,document.head.removeChild(N))});function m(w){var b;y(t,n,(b=f[w])!=null?b:w)}function _(w){e.onChanged?e.onChanged(w,m):m(w)}ve(h,_,{flush:"post",immediate:!0}),Oy(()=>_(h.value));const E=T({get(){return u?p.value:h.value},set(w){p.value=w}});try{return Object.assign(E,{store:p,system:v,state:h})}catch{return E}}function J$(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Ko}=e,o=c$({...e,onChanged:(a,l)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,a==="dark",l,a):l(a)},modes:{dark:t,light:n}}),s=T(()=>o.system?o.system.value:Ry({window:r}).value?"dark":"light");return T({get(){return o.value==="dark"},set(a){const l=a?"dark":"light";s.value===l?o.value="auto":o.value=l}})}function f$(e){return typeof e=="function"?e():g(e)}typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ph=()=>{};function d$(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}function p$(...e){let t=0,n,r=!0,o=ph,s,i,a,l,u;!Ue(e[0])&&typeof e[0]=="object"?{delay:i,trailing:a=!0,leading:l=!0,rejectOnCancel:u=!1}=e[0]:[i,a=!0,l=!0,u=!1]=e;const c=()=>{n&&(clearTimeout(n),n=void 0,o(),o=ph)};return d=>{const v=f$(i),p=Date.now()-t,h=()=>s=d();return c(),v<=0?(t=Date.now(),h()):(p>v&&(l||!r)?(t=Date.now(),h()):a&&(s=new Promise((y,m)=>{o=u?m:y,n=setTimeout(()=>{t=Date.now(),r=!0,y(h()),c()},Math.max(0,v-p))})),!l&&!n&&(n=setTimeout(()=>r=!0,v)),r=!1,s)}}function X$(e,t=200,n=!1,r=!0,o=!1){return d$(p$(t,n,r,o),e)}const h$=/[YMDHhms]o|\[([^\]]+)\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;function v$(e,t,n,r){let o=e<12?"AM":"PM";return r&&(o=o.split("").reduce((s,i)=>s+=`${i}.`,"")),n?o.toLowerCase():o}function Hr(e){const t=["th","st","nd","rd"],n=e%100;return e+(t[(n-20)%10]||t[n]||t[0])}function Z$(e,t,n={}){var r;const o=e.getFullYear(),s=e.getMonth(),i=e.getDate(),a=e.getHours(),l=e.getMinutes(),u=e.getSeconds(),c=e.getMilliseconds(),f=e.getDay(),d=(r=n.customMeridiem)!=null?r:v$,v={Yo:()=>Hr(o),YY:()=>String(o).slice(-2),YYYY:()=>o,M:()=>s+1,Mo:()=>Hr(s+1),MM:()=>`${s+1}`.padStart(2,"0"),MMM:()=>e.toLocaleDateString(n.locales,{month:"short"}),MMMM:()=>e.toLocaleDateString(n.locales,{month:"long"}),D:()=>String(i),Do:()=>Hr(i),DD:()=>`${i}`.padStart(2,"0"),H:()=>String(a),Ho:()=>Hr(a),HH:()=>`${a}`.padStart(2,"0"),h:()=>`${a%12||12}`.padStart(1,"0"),ho:()=>Hr(a%12||12),hh:()=>`${a%12||12}`.padStart(2,"0"),m:()=>String(l),mo:()=>Hr(l),mm:()=>`${l}`.padStart(2,"0"),s:()=>String(u),so:()=>Hr(u),ss:()=>`${u}`.padStart(2,"0"),SSS:()=>`${c}`.padStart(3,"0"),d:()=>f,dd:()=>e.toLocaleDateString(n.locales,{weekday:"narrow"}),ddd:()=>e.toLocaleDateString(n.locales,{weekday:"short"}),dddd:()=>e.toLocaleDateString(n.locales,{weekday:"long"}),A:()=>d(a,l),AA:()=>d(a,l,!1,!0),a:()=>d(a,l,!0),aa:()=>d(a,l,!0,!0)};return t.replace(h$,(p,h)=>{var y,m;return(m=h??((y=v[p])==null?void 0:y.call(v)))!=null?m:p})}const Q$='';export{bw as $,C$ as A,E$ as B,Me as C,pg as D,L$ as E,ot as F,$$ as G,ve as H,Bt as I,ae as J,W$ as K,ka as L,pf as M,j$ as N,V$ as O,Ar as P,Ke as Q,_$ as R,M$ as S,D$ as T,k$ as U,q$ as V,F$ as W,N$ as X,P$ as Y,R$ as Z,J$ as _,w$ as a,g$ as a0,Kx as a1,J as a2,Zn as a3,S$ as a4,U$ as a5,$r as a6,it as a7,$e as a8,ct as a9,pw as aa,Eg as ab,B$ as ac,Y$ as ad,uo as ae,X$ as af,b$ as ag,Z$ as ah,H$ as ai,Q$ as aj,y$ as b,ce as c,Q as d,oe as e,Mn as f,le as g,z$ as h,mt as i,K$ as j,G$ as k,A$ as l,T as m,T$ as n,M as o,j as p,_x as q,Wt as r,I$ as s,He as t,g as u,B as v,ue as w,Ue as x,x$ as y,O$ as z}; diff --git a/app/src/main/assets/web/vue/index.html b/app/src/main/assets/web/vue/index.html index 46f7f3e1b..30dcaf88e 100644 --- a/app/src/main/assets/web/vue/index.html +++ b/app/src/main/assets/web/vue/index.html @@ -4,8 +4,8 @@ - - + +