diff --git a/app/src/main/assets/web/vue/assets/BookChapter-6faa194e.js b/app/src/main/assets/web/vue/assets/BookChapter-0270f952.js
similarity index 85%
rename from app/src/main/assets/web/vue/assets/BookChapter-6faa194e.js
rename to app/src/main/assets/web/vue/assets/BookChapter-0270f952.js
index f30534067..369d6f1e9 100644
--- a/app/src/main/assets/web/vue/assets/BookChapter-6faa194e.js
+++ b/app/src/main/assets/web/vue/assets/BookChapter-0270f952.js
@@ -1 +1 @@
-import{i as Re,g as ke,l as Pe}from"./el-loading-b910ac83.js";import{_ as de,u as ue,A as ve}from"./index-f4927a88.js";import{x as m,P as Z,a8 as re,o as A,d as p,M as ae,a9 as T,u as o,F as le,v as g,aa as Ke,R as Se,g as t,n as Q,t as X,e as G,w as W,a2 as Ne,y as Ae,ab as Le,f as ce,K as ne,ac as He,G as ze,ad as Ee,p as me,i as ye,ae as he,s as we,I as se,k as z,af as Je,a6 as We,c as Te,a7 as Ge}from"./vendor-bf77f5c0.js";const qe="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=",Ze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",Ye="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=",_e="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=",Xe="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==",je="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",$e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",et="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=",tt="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",ot="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=",nt="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",st="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",at="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",it="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=",ct="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",rt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",At="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 J={themes:[{body:"#ede7da url("+qe+") repeat",content:"#ede7da url("+Ze+") repeat",popup:"#ede7da url("+Ye+") repeat"},{body:"#ede7da url("+_e+") repeat",content:"#ede7da url("+Xe+") repeat",popup:"#ede7da url("+je+") repeat"},{body:"#ede7da url("+$e+") repeat",content:"#ede7da url("+et+") repeat",popup:"#ede7da url("+tt+") repeat"},{body:"#ede7da url("+ot+") repeat",content:"#ede7da url("+nt+") repeat",popup:"#ede7da url("+st+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+at+") repeat",content:"#ede7da url("+lt+") repeat",popup:"#ede7da url("+it+") repeat"},{body:"#ede7da url("+ct+") repeat",content:"#ede7da url("+rt+") repeat",popup:"#ede7da url("+At+") repeat"}],fonts:[{fontFamily:"Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif"},{fontFamily:"PingFangSC-Regular, -apple-system, Simsun"},{fontFamily:"Kaiti"}]};const dt=["src"],ut=["innerHTML"],gt={__name:"ChapterContent",props:["carray"],setup(a){const n=ue(),d=m(()=>n.config.font>=0?J.fonts[n.config.font]:{fontFamily:n.config.customFontName}),v=m(()=>n.config.fontSize+"px"),l=m(()=>{let u=d.value;return u.fontSize=v.value,u}),D=u=>{const h=/]*src="([^"]*(?:"[^>]+\})?)"[^>]*>/,c=u.match(h)[1];return Re(c)?ke(c):c},I=u=>{u.target.src=ke(u.target.src)};return Z(v,()=>{n.setShowContent(!1),re(()=>{n.setShowContent(!0)})}),(u,h)=>(A(!0),p(le,null,ae(a.carray,(c,i)=>(A(),p("div",{key:i},[/^\s*]*src[^>]+>$/.test(c)?(A(),p("img",{key:0,class:"full",src:D(c),onErrorOnce:I,loading:"lazy"},null,40,dt)):(A(),p("p",{key:1,style:T(o(l)),innerHTML:c},null,12,ut))]))),128))}},pt=de(gt,[["__scopeId","data-v-17a45a65"]]);const B=a=>(me("data-v-9f479a0b"),a=a(),ye(),a),ft=B(()=>t("div",{class:"settings-title"},"设置",-1)),vt={class:"setting-list"},ht={class:"theme-list"},mt=B(()=>t("i",null,"阅读主题",-1)),yt=["onClick"],bt={key:0,class:"iconfont"},It={key:1,class:"moon-icon"},Bt={class:"font-list"},Ct=B(()=>t("i",null,"正文字体",-1)),kt=["onClick"],St={class:"font-list"},Et=B(()=>t("i",null,"自定字体",-1)),wt=B(()=>t("p",null," 请确认输入的字体名称完整无误,并且该字体已经安装在您的设备上。 ",-1)),Ut=B(()=>t("p",null,"确定保存吗?",-1)),Qt={style:{"text-align":"right",margin:"0"}},Dt=B(()=>t("span",{type:"text",class:"font-item"},"保存",-1)),Vt={class:"font-size"},Mt=B(()=>t("i",null,"字体大小",-1)),xt={class:"resize"},Ft=B(()=>t("em",{class:"iconfont"},"",-1)),Ot=[Ft],Rt=B(()=>t("b",null,null,-1)),Pt={class:"lang"},Kt=B(()=>t("b",null,null,-1)),Nt=B(()=>t("em",{class:"iconfont"},"",-1)),Lt=[Nt],Ht={key:0,class:"read-width"},zt=B(()=>t("i",null,"页面宽度",-1)),Jt={class:"resize"},Wt=B(()=>t("em",{class:"iconfont"},"",-1)),Tt=[Wt],Gt=B(()=>t("b",null,null,-1)),qt={class:"lang"},Zt=B(()=>t("b",null,null,-1)),Yt=B(()=>t("em",{class:"iconfont"},"",-1)),_t=[Yt],Xt={class:"infinite-loading"},jt=B(()=>t("i",null,"无限加载",-1)),$t={__name:"ReadSettings",setup(a){const n=ue(),d=g(0),v=g(n.config.theme==6),l=g(""),D=Ke([{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)"}]),I=g({display:"inline",color:"rgba(255,255,255,0.2)"}),u=g(["雅黑","宋体","楷书"]),h=g(n.config.customFontName),c=g(!1);Se(()=>{var y=n.config;d.value=y.theme,d.value==6?l.value="":l.value=""});const i=m(()=>n.config),V=m(()=>({background:J.themes[i.value.theme].popup})),x=m(()=>n.config.theme),S=m(()=>n.config.font),E=m(()=>n.config.fontSize),K=m(()=>n.config.readWidth),H=m(()=>n.config.infiniteLoading),F=y=>{y==6?(v.value=!0,l.value="",I.value.color="#ed4259"):(v.value=!1,l.value="",I.value.color="rgba(255,255,255,0.2)"),i.value.theme=y,N(i.value)},O=y=>{i.value.font=y,N(i.value)},f=()=>{i.value.font=-1,i.value.customFontName=h.value,N(i.value)},C=()=>{i.value.fontSize<48&&(i.value.fontSize+=2),N(i.value)},j=()=>{i.value.fontSize>12&&(i.value.fontSize-=2),N(i.value)},ge=()=>{i.value.readWidth+=160,N(i.value)},ie=()=>{i.value.readWidth>640&&(i.value.readWidth-=160),N(i.value)},$=y=>{i.value.infiniteLoading=y,N(i.value)},N=y=>{n.setConfig(y),localStorage.setItem("config",JSON.stringify(y)),ee(y)},ee=y=>{ve.saveReadConfig(y)};return(y,k)=>{const te=He,Y=ze,q=Ee;return A(),p("div",{class:Q(["settings-wrapper",{night:o(v),day:!o(v)}]),style:T(o(V))},[ft,t("div",vt,[t("ul",null,[t("li",ht,[mt,(A(!0),p(le,null,ae(o(D),(w,L)=>(A(),p("span",{class:Q(["theme-item",{selected:o(x)==L}]),key:L,style:T(w),ref_for:!0,ref:"themes",onClick:pe=>F(L)},[L<6?(A(),p("em",bt,"")):(A(),p("em",It,X(o(l)),1))],14,yt))),128))]),t("li",Bt,[Ct,(A(!0),p(le,null,ae(o(u),(w,L)=>(A(),p("span",{class:Q(["font-item",{selected:o(S)==L}]),key:L,onClick:pe=>O(L)},X(w),11,kt))),128))]),t("li",St,[Et,G(te,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:W(()=>[Ne(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":k[0]||(k[0]=w=>Ae(h)?h.value=w:null),placeholder:"请输入自定义的字体名称"},null,512),[[Le,o(h)]])]),_:1}),G(q,{placement:"top",width:"180",trigger:"click",visible:o(c),"onUpdate:visible":k[3]||(k[3]=w=>Ae(c)?c.value=w:null)},{reference:W(()=>[Dt]),default:W(()=>[wt,Ut,t("div",Qt,[G(Y,{size:"small",plain:"",onClick:k[1]||(k[1]=w=>c.value=!1)},{default:W(()=>[ce("取消")]),_:1}),G(Y,{type:"primary",size:"small",onClick:k[2]||(k[2]=w=>{f(),c.value=!1})},{default:W(()=>[ce("确定")]),_:1})])]),_:1},8,["visible"])]),t("li",Vt,[Mt,t("div",xt,[t("span",{class:"less",onClick:j},Ot),Rt,ce(),t("span",Pt,X(o(E)),1),Kt,t("span",{class:"more",onClick:C},Lt)])]),o(n).miniInterface?ne("",!0):(A(),p("li",Ht,[zt,t("div",Jt,[t("span",{class:"less",onClick:ie},Tt),Gt,ce(),t("span",qt,X(o(K)),1),Zt,t("span",{class:"more",onClick:ge},_t)])])),t("li",Xt,[jt,(A(),p("span",{class:Q(["infinite-loading-item",{selected:o(H)==!1}]),key:0,onClick:k[4]||(k[4]=w=>$(!1))},"关闭",2)),(A(),p("span",{class:Q(["infinite-loading-item",{selected:o(H)==!0}]),key:1,onClick:k[5]||(k[5]=w=>$(!0))},"开启",2))])])])],6)}}},eo=de($t,[["__scopeId","data-v-9f479a0b"]]),to=(a,n,d,v)=>(a/=v/2,a<1?d/2*a*a+n:(a--,-d/2*(a*(a-2)-1)+n)),oo=()=>{let a,n,d,v,l,D,I,u,h,c,i,V,x;function S(){let f=a.scrollTop||a.scrollY||a.pageYOffset;return f=typeof f>"u"?0:f,f}function E(f){const C=f.getBoundingClientRect().top,j=a.getBoundingClientRect?a.getBoundingClientRect().top:0;return C-j+d}function K(f){a.scrollTo?a.scrollTo(0,f):a.scrollTop=f}function H(f){c||(c=f),i=f-c,V=D(i,d,u,h),K(V),i(me("data-v-8da315d1"),a=a(),ye(),a),so=no(()=>t("div",{class:"title"},"目录",-1)),ao={class:"cata"},lo=["onClick"],io={class:"log-text"},co={__name:"PopCatalog",emits:["getContent"],setup(a,{emit:n}){const d=ue(),v=g(!1),{index:l}=he(d.readingBook),{catalog:D,popCataVisible:I}=we(d),u=m(()=>d.config.theme),h=m(()=>({background:J.themes[u.value].popup}));se(()=>{v.value=u.value==6});const c=g(),i=g();Z(I,()=>{re(()=>{let S=i.value;_(c.value[l.value],{container:S,duration:0})})});const V=S=>S==l.value,x=S=>{l.value=D.value.indexOf(S),d.setPopCataVisible(!1),d.setContentLoading(!0),n("getContent",l.value)};return(S,E)=>(A(),p("div",{class:"cata-wrapper",style:T(o(h))},[so,t("div",{class:Q(["data-wrapper",{night:o(v),day:!o(v)}]),ref_key:"cataData",ref:i},[t("div",ao,[(A(!0),p(le,null,ae(o(D),(K,H)=>(A(),p("div",{class:Q(["log",{selected:V(H)}]),key:K.durChapterIndex,onClick:F=>x(K),ref_for:!0,ref_key:"cata",ref:c},[t("div",io,X(K.title),1)],10,lo))),128))])],2)],4))}},ro=de(co,[["__scopeId","data-v-8da315d1"]]);const M=a=>(me("data-v-ff1ea184"),a=a(),ye(),a),Ao={class:"tools"},uo=M(()=>t("div",{class:"iconfont"},"",-1)),go=M(()=>t("div",{class:"icon-text"},"目录",-1)),po=[uo,go],fo=M(()=>t("div",{class:"iconfont"},"",-1)),vo=M(()=>t("div",{class:"icon-text"},"设置",-1)),ho=[fo,vo],mo=M(()=>t("div",{class:"iconfont"},"",-1)),yo=M(()=>t("div",{class:"icon-text"},"书架",-1)),bo=[mo,yo],Io=M(()=>t("div",{class:"iconfont"},"",-1)),Bo=M(()=>t("div",{class:"icon-text"},"顶部",-1)),Co=[Io,Bo],ko=M(()=>t("div",{class:"iconfont"},"",-1)),So=M(()=>t("div",{class:"icon-text"},"底部",-1)),Eo=[ko,So],wo={class:"tools"},Uo=M(()=>t("div",{class:"iconfont"},"",-1)),Qo={key:0},Do={key:0},Vo=M(()=>t("div",{class:"iconfont"},"",-1)),Mo=M(()=>t("div",{class:"chapter-bar"},null,-1)),xo={class:"content"},Fo=["index"],Oo={__name:"BookChapter",setup(a){const n=g(!1),d=g(null),v=g();Z(n,e=>{var s;if(!e)return(s=d.value)==null?void 0:s.close();d.value=Ge.service({target:v.value,spinner:Pe,text:"正在获取信息",lock:!0})});const l=ue();try{const e=JSON.parse(localStorage.getItem("config"));e!=null&&l.setConfig(e)}catch{localStorage.removeItem("config")}const D=g(),I=g(!0),u=g(!1),h=g([]),c=g(null),i=g(null),{catalog:V,popCataVisible:x,readSettingsVisible:S,miniInterface:E,showContent:K}=we(l),{chapterPos:H,index:F}=he(l.readingBook),{theme:O,infiniteLoading:f}=he(l.config),C=m(()=>J.themes[O.value].body),j=m(()=>J.themes[O.value].content),ge=m(()=>J.themes[O.value].popup),ie=m(()=>E.value?window.innerWidth+"px":l.config.readWidth-130+"px"),$=m(()=>E.value?window.innerWidth-33:l.config.readWidth-33),N=m(()=>({background:J.themes[O.value].body})),ee=m(()=>({background:J.themes[O.value].content,width:ie.value})),y=m(()=>({background:J.themes[O.value].popup,marginLeft:E.value?0:-(l.config.readWidth/2+68)+"px",display:E.value&&!u.value?"none":"block"})),k=m(()=>({background:J.themes[O.value].popup,marginRight:E.value?0:-(l.config.readWidth/2+52)+"px",display:E.value&&!u.value?"none":"block"})),te=g(!1);se(()=>{te.value=O.value==6}),Z(C,e=>{N.value.background=e}),Z(j,e=>{ee.value.background=e}),Z(ie,e=>{ee.value.width=e;let s=-((parseInt(e)+130)/2+68)+"px",R=-((parseInt(e)+130)/2+52)+"px";y.value.marginLeft=s,k.value.marginRight=R}),Z(ge,e=>{y.value.background=e,k.value.background=e}),se(()=>{h.value.length>0&&(l.setContentLoading(!1),Fe())}),se(()=>{var e;document.title=((e=V.value[F.value])==null?void 0:e.title)||document.title,l.saveBookProcess()}),se(()=>{var e,s;f.value?(s=c.value)==null||s.observe(D.value):(e=c.value)==null||e.disconnect()});const Y=g(),q=(e,s=!0,R=0)=>{s&&(l.setShowContent(!1),n.value=!0,_(Y.value,{duration:0}),Qe(e,R));let b=sessionStorage.getItem("bookUrl"),{title:P,index:U}=V.value[e];ve.getBookContent(b,U).then(r=>{if(r.data.isSuccess){let Oe=r.data.data.split(/\n+/);fe({index:e,content:Oe,title:P},s)}else{z({message:r.data.errorMsg,type:"error"});let oe=[r.data.errorMsg];fe({index:e,content:oe,title:P},s)}if(l.setContentLoading(!0),n.value=!1,I.value=!1,l.setShowContent(!0),!r.data.isSuccess)throw r.data},r=>{throw z({message:"获取章节内容失败",type:"error"}),fe({index:e,content:["获取章节内容失败!"],title:P},s),n.value=!1,l.setShowContent(!0),r})},w=g(),L=g(),pe=()=>{_(Y.value)},Ue=()=>{_(L.value)},be=()=>{l.setContentLoading(!0);let e=F.value+1;typeof V.value[e]<"u"?(z({message:"下一章",type:"info"}),q(e)):z({message:"本章是最后一章",type:"error"})},Ie=()=>{l.setContentLoading(!0);let e=F.value-1;typeof V.value[e]<"u"?(z({message:"上一章",type:"info"}),q(e)):z({message:"本章是第一章",type:"error"})},Qe=(e,s=H.value)=>{let R=sessionStorage.getItem("bookUrl");var b=JSON.parse(localStorage.getItem(R));b.index=e,b.chapterPos=s,localStorage.setItem(R,JSON.stringify(b)),b=JSON.parse(localStorage.getItem("readingRecent")),b.chapterIndex=e,b.chapterPos=s,localStorage.setItem("readingRecent",JSON.stringify(b)),F.value=e,H.value=s,sessionStorage.setItem("chapterIndex",e),sessionStorage.setItem("chapterPos",String(s))},fe=async(e,s)=>{s&&h.value.splice(0),h.value.push(e)},De=()=>{let e=h.value.slice(-1)[0].index;V.value.length-1>e&&q(e+1,!1)},Ve=We(),Be=()=>{Ve.push("/")},Ce=e=>{switch(e.key){case"ArrowLeft":e.stopPropagation(),e.preventDefault(),Ie();break;case"ArrowRight":e.stopPropagation(),e.preventDefault(),be();break;case"ArrowUp":e.stopPropagation(),e.preventDefault(),document.documentElement.scrollTop===0?z({message:"已到达页面顶部",type:"warn"}):_(0-document.documentElement.clientHeight+100);break;case"ArrowDown":e.stopPropagation(),e.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?z({message:"已到达页面底部",type:"warn"}):_(document.documentElement.clientHeight-100);break}},Me=e=>{if(!n.value)for(let{isIntersecting:s}of e){if(!s)return;De()}},xe=e=>{re(()=>{for(let{isIntersecting:s,target:R,boundingClientRect:b}of e){let P=R.querySelector(".title");if(!P)return;let U=parseInt(P.getAttribute("index"));s?F.value=U:b.top<0?F.value=U+1:F.value=U-1}})},Fe=()=>{re(()=>{let e=w.value;e&&e.forEach(s=>i.value.observe(s))})};return Se(()=>{n.value=!0;let e=sessionStorage.getItem("bookUrl"),s=sessionStorage.getItem("bookName"),R=sessionStorage.getItem("bookAuthor"),b=Number(sessionStorage.getItem("chapterIndex")||0),P=Number(sessionStorage.getItem("chapterPos")||0);var U=JSON.parse(localStorage.getItem(e));(U==null||b!=U.index||P!=U.chapterPos)&&(U={bookName:s,bookAuthor:R,bookUrl:e,index:b,chapterPos:P},localStorage.setItem(e,JSON.stringify(U))),ve.getChapterList(e).then(r=>{if(n.value=!1,!r.data.isSuccess){z({message:r.data.errorMsg,type:"error"}),setTimeout(Be,500);return}let oe=r.data.data;l.setCatalog(oe),l.setReadingBook(U),q(b,!0,P),window.addEventListener("keyup",Ce),c.value=new IntersectionObserver(Me,{rootMargin:"-100% 0% 20% 0%"}),f.value&&c.value.observe(D.value),i.value=new IntersectionObserver(xe),document.title=null,document.title=s+" | "+V.value[b].title},r=>{throw n.value=!1,z({message:"获取书籍目录失败",type:"error"}),r})}),Je(()=>{var e,s;window.removeEventListener("keyup",Ce),S.value=!1,x.value=!1,(e=c.value)==null||e.disconnect(),(s=i.value)==null||s.disconnect()}),(e,s)=>{const R=ro,b=Ee,P=eo,U=pt;return A(),p("div",{class:Q(["chapter-wrapper",{night:o(te),day:!o(te)}]),style:T(o(N)),onClick:s[2]||(s[2]=r=>u.value=!o(u))},[t("div",{class:"tool-bar",style:T(o(y))},[t("div",Ao,[G(b,{placement:"right",width:o($),trigger:"click","show-arrow":!1,visible:o(x),"onUpdate:visible":s[0]||(s[0]=r=>Ae(x)?x.value=r:null),"popper-class":"pop-cata"},{reference:W(()=>[t("div",{class:Q(["tool-icon",{"no-point":o(I)}])},po,2)]),default:W(()=>[G(R,{onGetContent:q,class:"popup"})]),_:1},8,["width","visible"]),G(b,{placement:"right",width:o($),trigger:"click","show-arrow":!1,visible:o(S),"onUpdate:visible":s[1]||(s[1]=r=>Ae(S)?S.value=r:null),"popper-class":"pop-setting"},{reference:W(()=>[t("div",{class:Q(["tool-icon",{"no-point":o(I)}])},ho,2)]),default:W(()=>[G(P,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:Be},bo),t("div",{class:Q(["tool-icon",{"no-point":o(I)}]),onClick:pe},Co,2),t("div",{class:Q(["tool-icon",{"no-point":o(I)}]),onClick:Ue},Eo,2)])],4),t("div",{class:"read-bar",style:T(o(k))},[t("div",wo,[t("div",{class:Q(["tool-icon",{"no-point":o(I)}]),onClick:Ie},[Uo,o(E)?(A(),p("span",Qo,"上一章")):ne("",!0)],2),t("div",{class:Q(["tool-icon",{"no-point":o(I)}]),onClick:be},[o(E)?(A(),p("span",Do,"下一章")):ne("",!0),Vo],2)])],4),Mo,t("div",{class:"chapter",ref_key:"content",ref:v,style:T(o(ee))},[t("div",xo,[t("div",{class:"top-bar",ref_key:"top",ref:Y},null,512),(A(!0),p(le,null,ae(o(h),r=>(A(),p("div",{key:r.index,ref_for:!0,ref_key:"chapter",ref:w},[o(K)?(A(),p("div",{key:0,class:"title",index:r.index},X(r.title),9,Fo)):ne("",!0),o(K)?(A(),Te(U,{key:1,carray:r.content},null,8,["carray"])):ne("",!0)]))),128)),t("div",{class:"loading",ref_key:"loading",ref:D},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:L},null,512)])],4)],6)}}},No=de(Oo,[["__scopeId","data-v-ff1ea184"]]);export{No as default};
+import{i as Re,g as ke,l as Pe}from"./el-loading-404c2b84.js";import{_ as de,u as ue,A as ve}from"./index-76057bdd.js";import{z as m,Q as Z,a8 as re,o as A,d as p,N as ae,a9 as T,u as o,F as le,y as g,aa as Ke,S as Se,g as t,q as Q,t as X,e as q,w as W,a2 as Ne,A as Ae,ab as Le,f as ce,L as ne,ac as He,v as ze,ad as Ee,p as me,i as ye,ae as he,s as we,J as se,k as z,af as Je,a6 as We,c as Te,a7 as qe}from"./vendor-93648100.js";const Ge="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=",Ze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAACVBMVEX28ef48+n69esoK7jYAAAB4UlEQVQozw2OsW4bQQxEhwLXkDrysGdEqRRgVShfQQq8wOr2jD0jSpXCLvwXbtKfADlFqgSwC/9ljqweZgYzQFnb/QGepYhA9jzmTc1WaSEtQpbFgjWATI00ZZtIckXx8q2Oe5yEByBy+RHOTcM+VVTadULsvxvRC/q8WTwgcWGD+Mnaqa0oy2gw2pKFzK+PzEsus5hP9AHojKslVynLlioVTBEN8cjDNnZoR1uMGTiZAAN47HxMtEkGUE9b8HWzkqNX5Lpk0yVziAJOs46rK1pG/xNuXLjz95fSDoJE5IqG23MAYPtWoeWPvfVtIV/Ng9oH3W0gGMPIOqd4MK4QZ55dV61gOb8Zxp7I9qayaGxp6Q91cmC0ZRdBwEQVHWzSAanlZwVWc9yljeTCeaHjBVvlPSLeyeBUT2rPdJegQI103jVS3uYkyIx1il6mslMDedZuOkwzolsagvPuQAfp7cYg7k9V1NOxfq64PNSvMdwONV4VYEmqlbpZy5OAakRKkjPnL4CBv5/OZRgoWHBmNbxB0LgB1I4vXFj93UoF2/0TPEsWwV9EhbIiTPqYoTHYoMn3enTDjmrFeDTIzaL1bUC/PBIMuF+vSSYSaxoVt90EO3Gu1zrMuMRGUk7Ffv3L+A931Gsb/yBoIgAAAABJRU5ErkJggg==",Ye="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=",_e="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=",Xe="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==",je="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAD1BMVEX48dr48Nf58tv379X17NJtIBxUAAACFUlEQVQ4y1XRUZakMAgF0Af2AiDWApDZgHZqAV1nZv9rGh7Rj7Y8McUFEg1wvcMESMNVD/neU8Xcaz7nYYkYlYO6Ti82PBI4BvIEg1aj3wKwRvIMgZsUy5LdhCawPFh1sZs4SrlyN9fQKpv8s5dgZ2eLyqqJiu+WkCmUEybXkm3INS01WAiv0PapJ0CZc0SJQUzcWnZYbOOY20iFD8Bk+/j2A3wNxH7GdShFYS5ff237kXh9I9zSkQmIAhOsOSVfJ6DIXTMDaPnzkRJ92S1BQQmXl5LdirgRLLDdcYqcGPwe3QN4xCBiGNbrqq9wpW1XCecChwaQdVOsRDpPCpeoolPdxeXp3WNB9PHVzWBHlygy4NJCCrFHREv6bDt0VGwJZASkpONmm1UseGeFKAQexgaAkrfYWl3AGxWOLL2AIMBNbCXpktmS3k3vHeYjGCPBa43wJTurO3ZFVpQSJdAZGLoHTyk1upkjxMEaIxum3iIARcCa5kSkFAW5fi1mUlL9eyOsaanFmOMruwvEdE3ZYzsRSzo5ewRLXyVPPEvknt8ij4DvCg2O7xOgBCUprEzV4z1WekSpUgI8DT2mrnSOXKRfQavwuKA1F+tFnMKdJSUpMA7wQAifWRkMgjUKKZE4lBl6MCM4B1pq1P4uIjDE6Pq6rL0FnW1nIFmta5vrSvq/Ch4tpqG/ZNyyWa5jZPktq81eYv8Bt5s4iFITOp4AAAAASUVORK5CYII=",$e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXN383Q4tDP4c/R5NEInCCXAAACVElEQVQozw3Hv2sTYRwH4M/79pJ7bZL2bXqtERJ97zjUpbZDhg6pfC8qibi8hLR0EaJ0EFxaCSWDxjfpj1zrYBcRBKE6SAfBJWsx9i8IQfdQxDlKtA6t2OnhQfN3lbG7ytYRywF8rVoPCNO0X2sQOKDpAnSDK2VwkHgmh5yLGT8qASt+2KofnNt2Xg1gf1UF8AoM6052cRMNaloLZb7RKQGrKKji2OefsZF+VqIvos5ZLVIZCX61JcwUdk56wASVkgQvzPfvmT2twTSwyYaC/Pl/UhAHorFhBgZtL6XdAZRp1tkPwC1NLa9CWs5prLhI85NBQsLdXvjDymG3/EbYfQhVNYqc3TtktQhWLY3ko0QsdMbSEp+64v0NfxyqLbIGdh6M2xHHlLBGqKTyQo4E/nebBgBfe1GpdeywYXc8CT7D3cKXuMXkBy4xN6o5OuKamYp3DVI6uccO9lxgd2CAlJgI2BGgaAgIJV/TYwKqu3WFccjbMuA+bVkWgS2bfnlRbD1Eb1sDyWMmjKYIBgGAWbqKRicfvzBkBIz3V5AKnguWdglQEysQsSuVzOg6ALy1pitA5ykGCsc857BRYcgCSZyFOdvoOigSGoPc5Ta73mgxshIcQE5sHMHd9D7yqITw7JO+GHVMxjhzYLcKPSEgmz3fU+BRy3iYNtiXLaBssCW8KguReqkQOTb3MStV0Ugt4U1eIs1RZWRII6Ww8xeNNItyGGQI4ZMlpg/3lQtkl2JFnBp1imRyFe0kK2Id3PCslMgiQNMS77gvFeDhG3cSkYvheeg/e7ClIh5oh+IAAAAASUVORK5CYII=",et="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=",tt="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",ot="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=",nt="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",st="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXm9PXq+Pno9vfs+vttWKBGAAACPElEQVQozw3RQWrbQACF4TfCMjPqZgIj4RRaxsZKE0PuMBZ2cLKaCI9RDAXFmJJknUWWI1O1UlamOMHJSjGkuFn3AD2Cr9CepDrAg+/xIxK4QwIqHHQkUhQ/WuphInVIFBojl8QXc012Tgq4RTtVHWVLZVFh1tEoI91uiN4joCqde8Ukn/zGM1B2W4ari2PtTwyw55Ld+Wways54qhGPyS6FzbIT3lIY8WwWdCq56Yolx6KmSKzoqrsCB5heAp4TGNQWJ1Pc6XlE5jQD5OlIX9I47A9uiUQcPQxcury/ToyxWJG/za6ki88crxKPocKS59Sl3EtBG7C89fCGflpfqoSzCeC4crioJA7F0V5+8MaSIk4qSCdwzpogmbqzEirVpGiS2dOVJvUuuqFEmhHao06KEpq+8lvHI14NJk3Qrmi9vBuRLwAz0qZB4hsDXQFXgtnlpDX3C6ug9BquSw/CYtwAzuTz5vuQNdr/YibhR68378ehZH30FSpjh71LpQkrsj+Q062h5WwZ5wlRoD6uQJy1DqvSYuCUapMBqT5YA4ZFw4KlWapxoUGlKWrx0eDQvmigu4WMYt97ruru98fYL8/0lG6CTOFcFWBhFK5gKw19h2JN808nh7xhkU6sWKLXdtkqBL6h+lULK5k19wFB/FldnGYf3LDeuf6IC2/MzJOSOP0qPxLqzaGIqtBcFIItrstkazONOkrc1D1czjuwEGESB4JJnjgSMN7PXAu7fZQpl1C236C+9mM4Af8P98Ch4R2TRl8AAAAASUVORK5CYII=",at="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXPz8/R0dHT09PU1NToNyAhAAACdElEQVQozw3NP0xTQQDH8d9d7sFrG+QeKVgQ4aoFCwFkYERyLY//0UB8GNGg1WAC0RBGJrzW4mCXQmpgvCYOwEAYiulSpYtza2KiW7s5FgNJFSV2/CzfL7RwpoJ20iadmgA8owOyaxmusKE44scBeb4vIv00dqYgmf6jzWcr7W6INbDQeZbQL9ytXeYgtFfzmW1Fek5msxJlwhyt6qDDxOLQzpVPompYrMPnEnhvLm7M5BxY5nowAj3zkydAkpC0FIG6g7AK+Ub25ybyNWVYwtpseP2rfrQwiGRpfqrnMuPeuvr2dA0p2YsHF2XghkrXKtZ8tLBjR7S2qIaYbKmyLd/QP+EogLjqqwNw5Lq1pDlMLkM5+gNoSvdq+Pxmz9/61EFq6GYM6GqaGvlN95zy3gsmEWI8K3k8OP9OmRLEPO6DP3Wv3g42COinJTZ33dcIvs4ESp6opMTjDs6mcYTEbFeUifuxh989yZrIx4lkpuixxz0nHLCekKbE17suKhYkMGhoYhTZtVBvg4bfq/1L1Im0AGMVpBFwumM0zwyuKiCMi5dqR4Flx47AGyF2xTbxqUdTwCH94BT3DozpLV5WuAL/N8rGtHKjotBOOuOtCJ9E21uqsyBoLOzaXbHPrK5PQBP+fBfeidvJAeMIAmzVt5IkJJ9DBWaZDAepYUhlQqHt0h72SJ3j8TZHom64f516xx9T5evgMPgwG82jZdJaJIDyWp6LAjOCclVyzNA3iTKzIULlBQEPaTXlPHok5gISclmyaWZlqY2aTHdRHpJOwTdDEQ3ZfKtbpclcNhyVClagmY+fIfyKukntPqBgnx5QvZHk/D/MK8JMClrSigAAAABJRU5ErkJggg==",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEXe3t7a2trc3Nzg4OCXP9lCAAACoklEQVQozwXBzU/TYBwA4N+QEr4CNbSFwcFuowSqMRvEAwShHWAYNsu7dS0dLnGUSWT4kZB4lGzE4VtcwgIDJqcOWLJxcv4BOoQZuCPxSNSD4WSWLJGL8XmAIiyo2RgJ4A1pxQQlOxRAszLTdnPu2oQGb05RC5slJld7ZAIfo4O44Bn1ud59F0BcjnYOa17Jhwc6EdiKettncsXjT1f8KUBZUW41pK0Jc1Az4dEV3rkkPBtDSZ83Blyt0kSf2PRjzIykoBwINisPbPPtljdVE9iAXRfUPkXLVIgYrCccp5g687NdZbcJ+xa5VE/HhTtT23IKsN5jj/pcUd0dTZNAqCVw72n4gOwnTOC0vvHfaauT8d9zAoRRfPpISZRVyUiw8ELzOG1b2DZpFzkSrHLhq52twDEdyZHwvp2j4uv/bjvOf23/AcEtTuJbY5Cp4YcAer1IGkUzOo2rn8LQOKjFJw3NTw24nprQXY5aF4wxcqcSdbFQ00H4xFl8Drx4X4CikvAM1tuR8bKIBCBoLnKN10KJG4zKAsc7c9WEB9gnCi6BhVjqoco6t20ILAJuVctvaEZK732cRHDRmGfuihOam0o2CHByUZ/epCcVlRs2wmCnMqsd6aSim3ibBJtm1LGyXW3Bb7tJCPlFtUG+SvPdeEUAB60lNdo+VQbLcwRNVtT68FsLcr1+NotgNihlpExS1V2SFgNbeC8bEhgm8sM17wSi6Us2gxVWJU/5GKBpandvfyYbU1yHCLpCgWGbbPXn40rehEsUXKIJr9DMKgICfjc4bl1YfvUhE/YIECGRqjCxSM9hrybAIkND5OeWfFZsXkxB+qDzb7pUQ3EfQ3Ml6EChEt3D+iS01VqC7EQ/Z/DuPQcz4yChoFQJce2Qr+NNAv0HxofmpXGqgHkAAAAASUVORK5CYII=",it="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=",ct="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",rt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAgMAAABjUWAiAAAADFBMVEUWGBkYGhsdHyAfISI1t/v6AAAB5ElEQVQozxXQsYoTURSA4f/EeycZsDgDdySDjihk38Hy3GWi2J2BCaziQhaiaB+tt9AFu1kwvYUPsIXNPoB9BAUfwAfwEUzKv/v4odGrroyp9/rUaC6rZ5skv5F8qPsfYYP+yKUMymmAEEeW55oUR4o8jr05KNzJ07yvB7w0KKfLwcQUSjfmMU0PJfPHFoEVU+ohNrcKMEzMQ23FDnVSI2dqtYWI7KlLu6vE4UnyvKc3SJuL7lBbeEEl42ItpGLjzIT8PRJCmkRjVpVpsbJFVN0687okJNZiHAr5Z7MV0BnGIDc+THM1zlbieBc1Fq+tH5BH+OpnbWkj40hSqC8Lw2TvFuF0SUFJCk2IytXbjeqcRAt6NHpnrUkUU4KRzZs8RCK8N/Akn2W04LwxMU/V7XK0bDyN2RxfDyx7I4h5vjZby72V8UnOWumZL3qtYc+8DTE0siSBMXGhywx2dMYPnQHbxdFZ7deiNGxCCtD/QWnbwDoGhRYPDzUdUA3krjpnkvdAgDN4ddLkEQSov9qjd42HaDjI34gEqS9TUueAk+sc4qg5ws407KQYKs8G1jv4xBlqBVk6cb4dISZIwVi1Jzu4+HLk6lyfUxkXvwy+1Q+4WVdHIhwfybZ6CWVhxMEhShOgsP/HOW0MvZJeFwAAAABJRU5ErkJggg==",At="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 J={themes:[{body:"#ede7da url("+Ge+") repeat",content:"#ede7da url("+Ze+") repeat",popup:"#ede7da url("+Ye+") repeat"},{body:"#ede7da url("+_e+") repeat",content:"#ede7da url("+Xe+") repeat",popup:"#ede7da url("+je+") repeat"},{body:"#ede7da url("+$e+") repeat",content:"#ede7da url("+et+") repeat",popup:"#ede7da url("+tt+") repeat"},{body:"#ede7da url("+ot+") repeat",content:"#ede7da url("+nt+") repeat",popup:"#ede7da url("+st+") repeat"},{body:"#ebcece repeat",content:"#f5e4e4 repeat",popup:"#faeceb repeat"},{body:"#ede7da url("+at+") repeat",content:"#ede7da url("+lt+") repeat",popup:"#ede7da url("+it+") repeat"},{body:"#ede7da url("+ct+") repeat",content:"#ede7da url("+rt+") repeat",popup:"#ede7da url("+At+") repeat"}],fonts:[{fontFamily:"Microsoft YaHei, PingFangSC-Regular, HelveticaNeue-Light, Helvetica Neue Light, sans-serif"},{fontFamily:"PingFangSC-Regular, -apple-system, Simsun"},{fontFamily:"Kaiti"}]};const dt=["src"],ut=["innerHTML"],gt={__name:"ChapterContent",props:["carray"],setup(a){const n=ue(),d=m(()=>n.config.font>=0?J.fonts[n.config.font]:{fontFamily:n.config.customFontName}),v=m(()=>n.config.fontSize+"px"),l=m(()=>{let u=d.value;return u.fontSize=v.value,u}),D=u=>{const h=/]*src="([^"]*(?:"[^>]+\})?)"[^>]*>/,c=u.match(h)[1];return Re(c)?ke(c):c},B=u=>{u.target.src=ke(u.target.src)};return Z(v,()=>{n.setShowContent(!1),re(()=>{n.setShowContent(!0)})}),(u,h)=>(A(!0),p(le,null,ae(a.carray,(c,i)=>(A(),p("div",{key:i},[/^\s*]*src[^>]+>$/.test(c)?(A(),p("img",{key:0,class:"full",src:D(c),onErrorOnce:B,loading:"lazy"},null,40,dt)):(A(),p("p",{key:1,style:T(o(l)),innerHTML:c},null,12,ut))]))),128))}},pt=de(gt,[["__scopeId","data-v-17a45a65"]]);const C=a=>(me("data-v-9f479a0b"),a=a(),ye(),a),ft=C(()=>t("div",{class:"settings-title"},"设置",-1)),vt={class:"setting-list"},ht={class:"theme-list"},mt=C(()=>t("i",null,"阅读主题",-1)),yt=["onClick"],bt={key:0,class:"iconfont"},Bt={key:1,class:"moon-icon"},Ct={class:"font-list"},It=C(()=>t("i",null,"正文字体",-1)),kt=["onClick"],St={class:"font-list"},Et=C(()=>t("i",null,"自定字体",-1)),wt=C(()=>t("p",null," 请确认输入的字体名称完整无误,并且该字体已经安装在您的设备上。 ",-1)),Ut=C(()=>t("p",null,"确定保存吗?",-1)),Qt={style:{"text-align":"right",margin:"0"}},Dt=C(()=>t("span",{type:"text",class:"font-item"},"保存",-1)),Vt={class:"font-size"},Mt=C(()=>t("i",null,"字体大小",-1)),xt={class:"resize"},Ft=C(()=>t("em",{class:"iconfont"},"",-1)),Ot=[Ft],Rt=C(()=>t("b",null,null,-1)),Pt={class:"lang"},Kt=C(()=>t("b",null,null,-1)),Nt=C(()=>t("em",{class:"iconfont"},"",-1)),Lt=[Nt],Ht={key:0,class:"read-width"},zt=C(()=>t("i",null,"页面宽度",-1)),Jt={class:"resize"},Wt=C(()=>t("em",{class:"iconfont"},"",-1)),Tt=[Wt],qt=C(()=>t("b",null,null,-1)),Gt={class:"lang"},Zt=C(()=>t("b",null,null,-1)),Yt=C(()=>t("em",{class:"iconfont"},"",-1)),_t=[Yt],Xt={class:"infinite-loading"},jt=C(()=>t("i",null,"无限加载",-1)),$t={__name:"ReadSettings",setup(a){const n=ue(),d=g(0),v=g(n.config.theme==6),l=g(""),D=Ke([{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)"}]),B=g({display:"inline",color:"rgba(255,255,255,0.2)"}),u=g(["雅黑","宋体","楷书"]),h=g(n.config.customFontName),c=g(!1);Se(()=>{var y=n.config;d.value=y.theme,d.value==6?l.value="":l.value=""});const i=m(()=>n.config),V=m(()=>({background:J.themes[i.value.theme].popup})),x=m(()=>n.config.theme),S=m(()=>n.config.font),E=m(()=>n.config.fontSize),K=m(()=>n.config.readWidth),H=m(()=>n.config.infiniteLoading),F=y=>{y==6?(v.value=!0,l.value="",B.value.color="#ed4259"):(v.value=!1,l.value="",B.value.color="rgba(255,255,255,0.2)"),i.value.theme=y,N(i.value)},O=y=>{i.value.font=y,N(i.value)},f=()=>{i.value.font=-1,i.value.customFontName=h.value,N(i.value)},I=()=>{i.value.fontSize<48&&(i.value.fontSize+=2),N(i.value)},j=()=>{i.value.fontSize>12&&(i.value.fontSize-=2),N(i.value)},ge=()=>{i.value.readWidth+=160,N(i.value)},ie=()=>{i.value.readWidth>640&&(i.value.readWidth-=160),N(i.value)},$=y=>{i.value.infiniteLoading=y,N(i.value)},N=y=>{n.setConfig(y),localStorage.setItem("config",JSON.stringify(y)),ee(y)},ee=y=>{ve.saveReadConfig(y)};return(y,k)=>{const te=He,Y=ze,G=Ee;return A(),p("div",{class:Q(["settings-wrapper",{night:o(v),day:!o(v)}]),style:T(o(V))},[ft,t("div",vt,[t("ul",null,[t("li",ht,[mt,(A(!0),p(le,null,ae(o(D),(w,L)=>(A(),p("span",{class:Q(["theme-item",{selected:o(x)==L}]),key:L,style:T(w),ref_for:!0,ref:"themes",onClick:pe=>F(L)},[L<6?(A(),p("em",bt,"")):(A(),p("em",Bt,X(o(l)),1))],14,yt))),128))]),t("li",Ct,[It,(A(!0),p(le,null,ae(o(u),(w,L)=>(A(),p("span",{class:Q(["font-item",{selected:o(S)==L}]),key:L,onClick:pe=>O(L)},X(w),11,kt))),128))]),t("li",St,[Et,q(te,{effect:"dark",content:"自定义的字体名称",placement:"top"},{default:W(()=>[Ne(t("input",{type:"text",class:"font-item font-item-input","onUpdate:modelValue":k[0]||(k[0]=w=>Ae(h)?h.value=w:null),placeholder:"请输入自定义的字体名称"},null,512),[[Le,o(h)]])]),_:1}),q(G,{placement:"top",width:"180",trigger:"click",visible:o(c),"onUpdate:visible":k[3]||(k[3]=w=>Ae(c)?c.value=w:null)},{reference:W(()=>[Dt]),default:W(()=>[wt,Ut,t("div",Qt,[q(Y,{size:"small",plain:"",onClick:k[1]||(k[1]=w=>c.value=!1)},{default:W(()=>[ce("取消")]),_:1}),q(Y,{type:"primary",size:"small",onClick:k[2]||(k[2]=w=>{f(),c.value=!1})},{default:W(()=>[ce("确定")]),_:1})])]),_:1},8,["visible"])]),t("li",Vt,[Mt,t("div",xt,[t("span",{class:"less",onClick:j},Ot),Rt,ce(),t("span",Pt,X(o(E)),1),Kt,t("span",{class:"more",onClick:I},Lt)])]),o(n).miniInterface?ne("",!0):(A(),p("li",Ht,[zt,t("div",Jt,[t("span",{class:"less",onClick:ie},Tt),qt,ce(),t("span",Gt,X(o(K)),1),Zt,t("span",{class:"more",onClick:ge},_t)])])),t("li",Xt,[jt,(A(),p("span",{class:Q(["infinite-loading-item",{selected:o(H)==!1}]),key:0,onClick:k[4]||(k[4]=w=>$(!1))},"关闭",2)),(A(),p("span",{class:Q(["infinite-loading-item",{selected:o(H)==!0}]),key:1,onClick:k[5]||(k[5]=w=>$(!0))},"开启",2))])])])],6)}}},eo=de($t,[["__scopeId","data-v-9f479a0b"]]),to=(a,n,d,v)=>(a/=v/2,a<1?d/2*a*a+n:(a--,-d/2*(a*(a-2)-1)+n)),oo=()=>{let a,n,d,v,l,D,B,u,h,c,i,V,x;function S(){let f=a.scrollTop||a.scrollY||a.pageYOffset;return f=typeof f>"u"?0:f,f}function E(f){const I=f.getBoundingClientRect().top,j=a.getBoundingClientRect?a.getBoundingClientRect().top:0;return I-j+d}function K(f){a.scrollTo?a.scrollTo(0,f):a.scrollTop=f}function H(f){c||(c=f),i=f-c,V=D(i,d,u,h),K(V),i(me("data-v-8da315d1"),a=a(),ye(),a),so=no(()=>t("div",{class:"title"},"目录",-1)),ao={class:"cata"},lo=["onClick"],io={class:"log-text"},co={__name:"PopCatalog",emits:["getContent"],setup(a,{emit:n}){const d=ue(),v=g(!1),{index:l}=he(d.readingBook),{catalog:D,popCataVisible:B}=we(d),u=m(()=>d.config.theme),h=m(()=>({background:J.themes[u.value].popup}));se(()=>{v.value=u.value==6});const c=g(),i=g();Z(B,()=>{re(()=>{let S=i.value;_(c.value[l.value],{container:S,duration:0})})});const V=S=>S==l.value,x=S=>{l.value=D.value.indexOf(S),d.setPopCataVisible(!1),d.setContentLoading(!0),n("getContent",l.value)};return(S,E)=>(A(),p("div",{class:"cata-wrapper",style:T(o(h))},[so,t("div",{class:Q(["data-wrapper",{night:o(v),day:!o(v)}]),ref_key:"cataData",ref:i},[t("div",ao,[(A(!0),p(le,null,ae(o(D),(K,H)=>(A(),p("div",{class:Q(["log",{selected:V(H)}]),key:K.durChapterIndex,onClick:F=>x(K),ref_for:!0,ref_key:"cata",ref:c},[t("div",io,X(K.title),1)],10,lo))),128))])],2)],4))}},ro=de(co,[["__scopeId","data-v-8da315d1"]]);const M=a=>(me("data-v-ff1ea184"),a=a(),ye(),a),Ao={class:"tools"},uo=M(()=>t("div",{class:"iconfont"},"",-1)),go=M(()=>t("div",{class:"icon-text"},"目录",-1)),po=[uo,go],fo=M(()=>t("div",{class:"iconfont"},"",-1)),vo=M(()=>t("div",{class:"icon-text"},"设置",-1)),ho=[fo,vo],mo=M(()=>t("div",{class:"iconfont"},"",-1)),yo=M(()=>t("div",{class:"icon-text"},"书架",-1)),bo=[mo,yo],Bo=M(()=>t("div",{class:"iconfont"},"",-1)),Co=M(()=>t("div",{class:"icon-text"},"顶部",-1)),Io=[Bo,Co],ko=M(()=>t("div",{class:"iconfont"},"",-1)),So=M(()=>t("div",{class:"icon-text"},"底部",-1)),Eo=[ko,So],wo={class:"tools"},Uo=M(()=>t("div",{class:"iconfont"},"",-1)),Qo={key:0},Do={key:0},Vo=M(()=>t("div",{class:"iconfont"},"",-1)),Mo=M(()=>t("div",{class:"chapter-bar"},null,-1)),xo={class:"content"},Fo=["index"],Oo={__name:"BookChapter",setup(a){const n=g(!1),d=g(null),v=g();Z(n,e=>{var s;if(!e)return(s=d.value)==null?void 0:s.close();d.value=qe.service({target:v.value,spinner:Pe,text:"正在获取信息",lock:!0})});const l=ue();try{const e=JSON.parse(localStorage.getItem("config"));e!=null&&l.setConfig(e)}catch{localStorage.removeItem("config")}const D=g(),B=g(!0),u=g(!1),h=g([]),c=g(null),i=g(null),{catalog:V,popCataVisible:x,readSettingsVisible:S,miniInterface:E,showContent:K}=we(l),{chapterPos:H,index:F}=he(l.readingBook),{theme:O,infiniteLoading:f}=he(l.config),I=m(()=>J.themes[O.value].body),j=m(()=>J.themes[O.value].content),ge=m(()=>J.themes[O.value].popup),ie=m(()=>E.value?window.innerWidth+"px":l.config.readWidth-130+"px"),$=m(()=>E.value?window.innerWidth-33:l.config.readWidth-33),N=m(()=>({background:J.themes[O.value].body})),ee=m(()=>({background:J.themes[O.value].content,width:ie.value})),y=m(()=>({background:J.themes[O.value].popup,marginLeft:E.value?0:-(l.config.readWidth/2+68)+"px",display:E.value&&!u.value?"none":"block"})),k=m(()=>({background:J.themes[O.value].popup,marginRight:E.value?0:-(l.config.readWidth/2+52)+"px",display:E.value&&!u.value?"none":"block"})),te=g(!1);se(()=>{te.value=O.value==6}),Z(I,e=>{N.value.background=e}),Z(j,e=>{ee.value.background=e}),Z(ie,e=>{ee.value.width=e;let s=-((parseInt(e)+130)/2+68)+"px",R=-((parseInt(e)+130)/2+52)+"px";y.value.marginLeft=s,k.value.marginRight=R}),Z(ge,e=>{y.value.background=e,k.value.background=e}),se(()=>{h.value.length>0&&(l.setContentLoading(!1),Fe())}),se(()=>{var e;document.title=((e=V.value[F.value])==null?void 0:e.title)||document.title,l.saveBookProcess()}),se(()=>{var e,s;f.value?(s=c.value)==null||s.observe(D.value):(e=c.value)==null||e.disconnect()});const Y=g(),G=(e,s=!0,R=0)=>{s&&(l.setShowContent(!1),n.value=!0,_(Y.value,{duration:0}),Qe(e,R));let b=sessionStorage.getItem("bookUrl"),{title:P,index:U}=V.value[e];ve.getBookContent(b,U).then(r=>{if(r.data.isSuccess){let Oe=r.data.data.split(/\n+/);fe({index:e,content:Oe,title:P},s)}else{z({message:r.data.errorMsg,type:"error"});let oe=[r.data.errorMsg];fe({index:e,content:oe,title:P},s)}if(l.setContentLoading(!0),n.value=!1,B.value=!1,l.setShowContent(!0),!r.data.isSuccess)throw r.data},r=>{throw z({message:"获取章节内容失败",type:"error"}),fe({index:e,content:["获取章节内容失败!"],title:P},s),n.value=!1,l.setShowContent(!0),r})},w=g(),L=g(),pe=()=>{_(Y.value)},Ue=()=>{_(L.value)},be=()=>{l.setContentLoading(!0);let e=F.value+1;typeof V.value[e]<"u"?(z({message:"下一章",type:"info"}),G(e)):z({message:"本章是最后一章",type:"error"})},Be=()=>{l.setContentLoading(!0);let e=F.value-1;typeof V.value[e]<"u"?(z({message:"上一章",type:"info"}),G(e)):z({message:"本章是第一章",type:"error"})},Qe=(e,s=H.value)=>{let R=sessionStorage.getItem("bookUrl");var b=JSON.parse(localStorage.getItem(R));b.index=e,b.chapterPos=s,localStorage.setItem(R,JSON.stringify(b)),b=JSON.parse(localStorage.getItem("readingRecent")),b.chapterIndex=e,b.chapterPos=s,localStorage.setItem("readingRecent",JSON.stringify(b)),F.value=e,H.value=s,sessionStorage.setItem("chapterIndex",e),sessionStorage.setItem("chapterPos",String(s))},fe=async(e,s)=>{s&&h.value.splice(0),h.value.push(e)},De=()=>{let e=h.value.slice(-1)[0].index;V.value.length-1>e&&G(e+1,!1)},Ve=We(),Ce=()=>{Ve.push("/")},Ie=e=>{switch(e.key){case"ArrowLeft":e.stopPropagation(),e.preventDefault(),Be();break;case"ArrowRight":e.stopPropagation(),e.preventDefault(),be();break;case"ArrowUp":e.stopPropagation(),e.preventDefault(),document.documentElement.scrollTop===0?z({message:"已到达页面顶部",type:"warn"}):_(0-document.documentElement.clientHeight+100);break;case"ArrowDown":e.stopPropagation(),e.preventDefault(),document.documentElement.clientHeight+document.documentElement.scrollTop===document.documentElement.scrollHeight?z({message:"已到达页面底部",type:"warn"}):_(document.documentElement.clientHeight-100);break}},Me=e=>{if(!n.value)for(let{isIntersecting:s}of e){if(!s)return;De()}},xe=e=>{re(()=>{for(let{isIntersecting:s,target:R,boundingClientRect:b}of e){let P=R.querySelector(".title");if(!P)return;let U=parseInt(P.getAttribute("index"));s?F.value=U:b.top<0?F.value=U+1:F.value=U-1}})},Fe=()=>{re(()=>{let e=w.value;e&&e.forEach(s=>i.value.observe(s))})};return Se(()=>{n.value=!0;let e=sessionStorage.getItem("bookUrl"),s=sessionStorage.getItem("bookName"),R=sessionStorage.getItem("bookAuthor"),b=Number(sessionStorage.getItem("chapterIndex")||0),P=Number(sessionStorage.getItem("chapterPos")||0);var U=JSON.parse(localStorage.getItem(e));(U==null||b!=U.index||P!=U.chapterPos)&&(U={bookName:s,bookAuthor:R,bookUrl:e,index:b,chapterPos:P},localStorage.setItem(e,JSON.stringify(U))),ve.getChapterList(e).then(r=>{if(n.value=!1,!r.data.isSuccess){z({message:r.data.errorMsg,type:"error"}),setTimeout(Ce,500);return}let oe=r.data.data;l.setCatalog(oe),l.setReadingBook(U),G(b,!0,P),window.addEventListener("keyup",Ie),c.value=new IntersectionObserver(Me,{rootMargin:"-100% 0% 20% 0%"}),f.value&&c.value.observe(D.value),i.value=new IntersectionObserver(xe),document.title=null,document.title=s+" | "+V.value[b].title},r=>{throw n.value=!1,z({message:"获取书籍目录失败",type:"error"}),r})}),Je(()=>{var e,s;window.removeEventListener("keyup",Ie),S.value=!1,x.value=!1,(e=c.value)==null||e.disconnect(),(s=i.value)==null||s.disconnect()}),(e,s)=>{const R=ro,b=Ee,P=eo,U=pt;return A(),p("div",{class:Q(["chapter-wrapper",{night:o(te),day:!o(te)}]),style:T(o(N)),onClick:s[2]||(s[2]=r=>u.value=!o(u))},[t("div",{class:"tool-bar",style:T(o(y))},[t("div",Ao,[q(b,{placement:"right",width:o($),trigger:"click","show-arrow":!1,visible:o(x),"onUpdate:visible":s[0]||(s[0]=r=>Ae(x)?x.value=r:null),"popper-class":"pop-cata"},{reference:W(()=>[t("div",{class:Q(["tool-icon",{"no-point":o(B)}])},po,2)]),default:W(()=>[q(R,{onGetContent:G,class:"popup"})]),_:1},8,["width","visible"]),q(b,{placement:"right",width:o($),trigger:"click","show-arrow":!1,visible:o(S),"onUpdate:visible":s[1]||(s[1]=r=>Ae(S)?S.value=r:null),"popper-class":"pop-setting"},{reference:W(()=>[t("div",{class:Q(["tool-icon",{"no-point":o(B)}])},ho,2)]),default:W(()=>[q(P,{class:"popup"})]),_:1},8,["width","visible"]),t("div",{class:"tool-icon",onClick:Ce},bo),t("div",{class:Q(["tool-icon",{"no-point":o(B)}]),onClick:pe},Io,2),t("div",{class:Q(["tool-icon",{"no-point":o(B)}]),onClick:Ue},Eo,2)])],4),t("div",{class:"read-bar",style:T(o(k))},[t("div",wo,[t("div",{class:Q(["tool-icon",{"no-point":o(B)}]),onClick:Be},[Uo,o(E)?(A(),p("span",Qo,"上一章")):ne("",!0)],2),t("div",{class:Q(["tool-icon",{"no-point":o(B)}]),onClick:be},[o(E)?(A(),p("span",Do,"下一章")):ne("",!0),Vo],2)])],4),Mo,t("div",{class:"chapter",ref_key:"content",ref:v,style:T(o(ee))},[t("div",xo,[t("div",{class:"top-bar",ref_key:"top",ref:Y},null,512),(A(!0),p(le,null,ae(o(h),r=>(A(),p("div",{key:r.index,ref_for:!0,ref_key:"chapter",ref:w},[o(K)?(A(),p("div",{key:0,class:"title",index:r.index},X(r.title),9,Fo)):ne("",!0),o(K)?(A(),Te(U,{key:1,carray:r.content},null,8,["carray"])):ne("",!0)]))),128)),t("div",{class:"loading",ref_key:"loading",ref:D},null,512),t("div",{class:"bottom-bar",ref_key:"bottom",ref:L},null,512)])],4)],6)}}},No=de(Oo,[["__scopeId","data-v-ff1ea184"]]);export{No as default};
diff --git a/app/src/main/assets/web/vue/assets/BookShelf-751754db.js b/app/src/main/assets/web/vue/assets/BookShelf-751754db.js
new file mode 100644
index 000000000..f38e85e55
--- /dev/null
+++ b/app/src/main/assets/web/vue/assets/BookShelf-751754db.js
@@ -0,0 +1 @@
+import{a1 as U,z as q,o as g,d as m,g as e,F as V,N as P,t as d,a2 as B,a3 as S,c as $,w as z,f as M,u as o,a4 as G,a5 as D,p as L,i as W,s as X,y as _,Q as j,J,S as ee,k,e as y,A as te,K as se,q as N,a6 as ae,H as oe,B as ne,a7 as ce}from"./vendor-93648100.js";import{d as re,l as ie}from"./el-loading-404c2b84.js";import{_ as H,u as le,A as E}from"./index-76057bdd.js";const Z=n=>(L("data-v-fd33c3e8"),n=n(),W(),n),de={class:"books-wrapper"},ue={class:"wrapper"},he=["onClick"],pe={class:"cover-img"},ve=["src"],_e={class:"info"},ge={class:"name"},me={class:"sub"},fe={class:"author"},we={class:"tags"},Ae={class:"update-info"},Ie=Z(()=>e("div",{class:"dot"},"•",-1)),Be={class:"size"},Se=Z(()=>e("div",{class:"dot"},"•",-1)),ke={class:"date"},ye={class:"last-chapter"},xe={__name:"BookItems",props:["books","isSearch"],emits:["bookClick"],setup(n,{emit:r}){const x=n;U(s=>({"036742a7":o(f)}));const C=s=>r("bookClick",G(s)),R=s=>/^data:/.test(s)?s:location.origin+"/cover?path="+encodeURIComponent(s),f=q(()=>x.isSearch?"space-between":"flex-start");return(s,h)=>{const w=D;return g(),m("div",de,[e("div",ue,[(g(!0),m(V,null,P(n.books,c=>{var l;return g(),m("div",{class:"book",key:c.bookUrl,onClick:i=>C(c)},[e("div",pe,[(g(),m("img",{class:"cover",src:R(c.coverUrl),key:c.coverUrl,alt:"",loading:"lazy"},null,8,ve))]),e("div",_e,[e("div",ge,d(c.name),1),e("div",me,[e("div",fe,d(c.author),1),B(e("div",we,[(g(!0),m(V,null,P((l=c.kind)==null?void 0:l.split(",").slice(0,2),i=>(g(),$(w,{key:i},{default:z(()=>[M(d(i),1)]),_:2},1024))),128))],512),[[S,n.isSearch]]),B(e("div",Ae,[Ie,e("div",Be,"共"+d(c.totalChapterNum)+"章",1),Se,e("div",ke,d(o(re)(c.lastCheckTime)),1)],512),[[S,!n.isSearch]])]),B(e("div",{class:"intro"},d(c.intro),513),[[S,n.isSearch]]),B(e("div",{class:"dur-chapter"}," 已读:"+d(c.durChapterTitle),513),[[S,!n.isSearch]]),e("div",ye,"最新:"+d(c.latestChapterTitle),1)])],8,he)}),128))])])}}},Ce=H(xe,[["__scopeId","data-v-fd33c3e8"]]);const 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==";const T=n=>(L("data-v-7e6be94e"),n=n(),W(),n),Ee={class:"index-wrapper"},ze={class:"navigation-wrapper"},Me=T(()=>e("div",{class:"navigation-title-wrapper"},[e("div",{class:"navigation-title"},"阅读"),e("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),Te={class:"search-wrapper"},be={class:"bottom-wrapper"},Ve={class:"recent-wrapper"},Pe=T(()=>e("div",{class:"recent-title"},"最近阅读",-1)),Je={class:"reading-recent"},Ne={class:"setting-wrapper"},De=T(()=>e("div",{class:"setting-title"},"基本设定",-1)),Le={class:"setting-item"},We={class:"bottom-icons"},He={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},Ze={class:"bottom-icon"},Ke=["src"],Oe={__name:"BookShelf",setup(n){const r=le(),{connectStatus:x,connectType:C,newConnect:R,shelf:f}=X(r),s=_({name:"尚无阅读记录",author:"",url:"",chapterIndex:0,chapterPos:0}),h=_(!1),w=_(null),c=_(null);j(h,t=>{var a;if(!t)return(a=c.value)==null?void 0:a.close();c.value=ce.service({target:w.value,spinner:ie,text:"正在获取书籍信息",lock:!0})});const l=_([]);J(()=>{l.value.length>0&&(h.value=!1)});const i=_(""),A=_(!1);J(()=>{if(!(A.value&&i.value!="")){if(A.value=!1,l.value=[],i.value==""){l.value=f.value;return}l.value=f.value.filter(t=>t.name.includes(i.value)||t.author.includes(i.value))}});const K=()=>{i.value!=""&&(l.value=[],r.clearSearchBooks(),h.value=!0,A.value=!0,E.search(i.value,t=>{try{r.setSearchBooks(JSON.parse(t)),r.searchBooks.forEach(a=>l.value.push(a))}catch(a){throw k.error("后端数据错误"),a}},()=>{h.value=!1,l.value.length==0&&k.info("搜索结果为空")}))},O=()=>{},F=ae(),Y=async t=>{const{bookUrl:a,name:p,author:u,durChapterIndex:v=0,durChapterPos:I=0}=t;await E.saveBook(t),b(a,p,u,v,I)},b=(t,a,p,u,v)=>{a!=="尚无阅读记录"&&(sessionStorage.setItem("bookUrl",t),sessionStorage.setItem("bookName",a),sessionStorage.setItem("bookAuthor",p),sessionStorage.setItem("chapterIndex",u),sessionStorage.setItem("chapterPos",v),s.value={name:a,author:p,url:t,chapterIndex:u,chapterPos:v},localStorage.setItem("readingRecent",JSON.stringify(s.value)),F.push({path:"/chapter"}))};ee(async()=>{let t=localStorage.getItem("readingRecent");t!=null&&(s.value=JSON.parse(t),typeof s.value.chapterIndex>"u"&&(s.value.chapterIndex=0)),h.value=!0,Q()});const Q=()=>{E.getBookShelf().then(t=>{r.setConnectType("success"),t.data.isSuccess?r.addBooks(t.data.data.sort(function(a,p){var u=a.durChapterTime||0,v=p.durChapterTime||0;return v-u})):(k.error(t.data.errorMsg),h.value=!1),r.setConnectStatus("已连接 "),r.setNewConnect(!1)}).catch(function(t){throw h.value=!1,r.setConnectType("danger"),r.setConnectStatus("连接失败"),k.error("后端连接失败"),r.setNewConnect(!1),t})};return(t,a)=>{const p=oe,u=D,v=Ce;return g(),m("div",Ee,[e("div",ze,[Me,e("div",Te,[y(p,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:o(i),"onUpdate:modelValue":a[0]||(a[0]=I=>te(i)?i.value=I:null),class:"search-input","prefix-icon":o(ne),onKeyup:se(K,["enter"])},null,8,["modelValue","prefix-icon","onKeyup"])]),e("div",be,[e("div",Ve,[Pe,e("div",Je,[y(u,{type:o(s).name=="尚无阅读记录"?"warning":"",class:N(["recent-book",{"no-point":o(s).url==""}]),size:"large",onClick:a[1]||(a[1]=I=>b(o(s).url,o(s).name,o(s).author,o(s).chapterIndex,o(s).chapterPos))},{default:z(()=>[M(d(o(s).name),1)]),_:1},8,["type","class"])])]),e("div",Ne,[De,e("div",Le,[y(u,{type:o(C),size:"large",class:N(["setting-connect",{"no-point":o(R)}]),onClick:O},{default:z(()=>[M(d(o(x)),1)]),_:1},8,["type","class"])])])]),e("div",We,[e("a",He,[e("div",Ze,[e("img",{src:o(Re),alt:""},null,8,Ke)])])])]),e("div",{class:"shelf-wrapper",ref_key:"shelfWrapper",ref:w},[y(v,{books:o(l),onBookClick:Y,isSearch:o(A)},null,8,["books","isSearch"])],512)])}}},Ue=H(Oe,[["__scopeId","data-v-7e6be94e"]]);export{Ue as default};
diff --git a/app/src/main/assets/web/vue/assets/BookShelf-c2410b56.js b/app/src/main/assets/web/vue/assets/BookShelf-c2410b56.js
deleted file mode 100644
index e72632e83..000000000
--- a/app/src/main/assets/web/vue/assets/BookShelf-c2410b56.js
+++ /dev/null
@@ -1 +0,0 @@
-import{a1 as Q,x as $,o as g,d as m,g as e,F as V,M as P,t as d,a2 as B,a3 as S,c as q,w as z,f as M,u as o,a4 as G,a5 as L,p as N,i as W,s as X,v as _,P as j,I as D,R as ee,k,e as x,y as te,J as se,n as J,a6 as ae,D as oe,z as ne,a7 as ce}from"./vendor-bf77f5c0.js";import{d as re,l as ie}from"./el-loading-b910ac83.js";import{_ as Z,u as le,A as E}from"./index-f4927a88.js";const H=n=>(N("data-v-fd33c3e8"),n=n(),W(),n),de={class:"books-wrapper"},ue={class:"wrapper"},he=["onClick"],pe={class:"cover-img"},ve=["src"],_e={class:"info"},ge={class:"name"},me={class:"sub"},fe={class:"author"},we={class:"tags"},Ie={class:"update-info"},Ae=H(()=>e("div",{class:"dot"},"•",-1)),Be={class:"size"},Se=H(()=>e("div",{class:"dot"},"•",-1)),ke={class:"date"},xe={class:"last-chapter"},ye={__name:"BookItems",props:["books","isSearch"],emits:["bookClick"],setup(n,{emit:r}){const y=n;Q(s=>({"036742a7":o(f)}));const C=s=>r("bookClick",G(s)),R=s=>/^data:/.test(s)?s:location.origin+"/cover?path="+encodeURIComponent(s),f=$(()=>y.isSearch?"space-between":"flex-start");return(s,h)=>{const w=L;return g(),m("div",de,[e("div",ue,[(g(!0),m(V,null,P(n.books,c=>{var l;return g(),m("div",{class:"book",key:c.bookUrl,onClick:i=>C(c)},[e("div",pe,[(g(),m("img",{class:"cover",src:R(c.coverUrl),key:c.coverUrl,alt:"",loading:"lazy"},null,8,ve))]),e("div",_e,[e("div",ge,d(c.name),1),e("div",me,[e("div",fe,d(c.author),1),B(e("div",we,[(g(!0),m(V,null,P((l=c.kind)==null?void 0:l.split(",").slice(0,2),i=>(g(),q(w,{key:i},{default:z(()=>[M(d(i),1)]),_:2},1024))),128))],512),[[S,n.isSearch]]),B(e("div",Ie,[Ae,e("div",Be,"共"+d(c.totalChapterNum)+"章",1),Se,e("div",ke,d(o(re)(c.lastCheckTime)),1)],512),[[S,!n.isSearch]])]),B(e("div",{class:"intro"},d(c.intro),513),[[S,n.isSearch]]),B(e("div",{class:"dur-chapter"}," 已读:"+d(c.durChapterTitle),513),[[S,!n.isSearch]]),e("div",xe,"最新:"+d(c.latestChapterTitle),1)])],8,he)}),128))])])}}},Ce=Z(ye,[["__scopeId","data-v-fd33c3e8"]]);const 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==";const T=n=>(N("data-v-7e6be94e"),n=n(),W(),n),Ee={class:"index-wrapper"},ze={class:"navigation-wrapper"},Me=T(()=>e("div",{class:"navigation-title-wrapper"},[e("div",{class:"navigation-title"},"阅读"),e("div",{class:"navigation-sub-title"},"清风不识字,何故乱翻书")],-1)),Te={class:"search-wrapper"},be={class:"bottom-wrapper"},Ve={class:"recent-wrapper"},Pe=T(()=>e("div",{class:"recent-title"},"最近阅读",-1)),De={class:"reading-recent"},Je={class:"setting-wrapper"},Le=T(()=>e("div",{class:"setting-title"},"基本设定",-1)),Ne={class:"setting-item"},We={class:"bottom-icons"},Ze={href:"https://github.com/gedoor/legado_web_bookshelf",target:"_blank"},He={class:"bottom-icon"},Oe=["src"],Fe={__name:"BookShelf",setup(n){const r=le(),{connectStatus:y,connectType:C,newConnect:R,shelf:f}=X(r),s=_({name:"尚无阅读记录",author:"",url:"",chapterIndex:0,chapterPos:0}),h=_(!1),w=_(null),c=_(null);j(h,t=>{var a;if(!t)return(a=c.value)==null?void 0:a.close();c.value=ce.service({target:w.value,spinner:ie,text:"正在获取书籍信息",lock:!0})});const l=_([]);D(()=>{l.value.length>0&&(h.value=!1)});const i=_(""),I=_(!1);D(()=>{if(!(I.value&&i.value!="")){if(I.value=!1,l.value=[],i.value==""){l.value=f.value;return}l.value=f.value.filter(t=>t.name.includes(i.value)||t.author.includes(i.value))}});const O=()=>{i.value!=""&&(l.value=[],r.clearSearchBooks(),h.value=!0,I.value=!0,E.search(i.value,t=>{try{r.setSearchBooks(JSON.parse(t)),r.searchBooks.forEach(a=>l.value.push(a))}catch(a){throw k.error("后端数据错误"),a}},()=>{h.value=!1,l.value.length==0&&k.info("搜索结果为空")}))},F=()=>{},K=ae(),Y=async t=>{const{bookUrl:a,name:p,author:u,durChapterIndex:v=0,durChapterPos:A=0}=t;await E.saveBook(t),b(a,p,u,v,A)},b=(t,a,p,u,v)=>{a!=="尚无阅读记录"&&(sessionStorage.setItem("bookUrl",t),sessionStorage.setItem("bookName",a),sessionStorage.setItem("bookAuthor",p),sessionStorage.setItem("chapterIndex",u),sessionStorage.setItem("chapterPos",v),s.value={name:a,author:p,url:t,chapterIndex:u,chapterPos:v},localStorage.setItem("readingRecent",JSON.stringify(s.value)),K.push({path:"/chapter"}))};ee(async()=>{let t=localStorage.getItem("readingRecent");t!=null&&(s.value=JSON.parse(t),typeof s.value.chapterIndex>"u"&&(s.value.chapterIndex=0)),h.value=!0,U()});const U=()=>{E.getBookShelf().then(t=>{r.setConnectType("success"),t.data.isSuccess?r.addBooks(t.data.data.sort(function(a,p){var u=a.durChapterTime||0,v=p.durChapterTime||0;return v-u})):(k.error(t.data.errorMsg),h.value=!1),r.setConnectStatus("已连接 "),r.setNewConnect(!1)}).catch(function(t){throw h.value=!1,r.setConnectType("danger"),r.setConnectStatus("连接失败"),k.error("后端连接失败"),r.setNewConnect(!1),t})};return(t,a)=>{const p=oe,u=L,v=Ce;return g(),m("div",Ee,[e("div",ze,[Me,e("div",Te,[x(p,{placeholder:"搜索书籍,在线书籍自动加入书架",modelValue:o(i),"onUpdate:modelValue":a[0]||(a[0]=A=>te(i)?i.value=A:null),class:"search-input","prefix-icon":o(ne),onKeyup:se(O,["enter"])},null,8,["modelValue","prefix-icon","onKeyup"])]),e("div",be,[e("div",Ve,[Pe,e("div",De,[x(u,{type:o(s).name=="尚无阅读记录"?"warning":"",class:J(["recent-book",{"no-point":o(s).url==""}]),size:"large",onClick:a[1]||(a[1]=A=>b(o(s).url,o(s).name,o(s).author,o(s).chapterIndex,o(s).chapterPos))},{default:z(()=>[M(d(o(s).name),1)]),_:1},8,["type","class"])])]),e("div",Je,[Le,e("div",Ne,[x(u,{type:o(C),size:"large",class:J(["setting-connect",{"no-point":o(R)}]),onClick:F},{default:z(()=>[M(d(o(y)),1)]),_:1},8,["type","class"])])])]),e("div",We,[e("a",Ze,[e("div",He,[e("img",{src:o(Re),alt:""},null,8,Oe)])])])]),e("div",{class:"shelf-wrapper",ref_key:"shelfWrapper",ref:w},[x(v,{books:o(l),onBookClick:Y,isSearch:o(I)},null,8,["books","isSearch"])],512)])}}},Qe=Z(Fe,[["__scopeId","data-v-7e6be94e"]]);export{Qe as default};
diff --git a/app/src/main/assets/web/vue/assets/config-752e04be.js b/app/src/main/assets/web/vue/assets/config-0e6be994.js
similarity index 60%
rename from app/src/main/assets/web/vue/assets/config-752e04be.js
rename to app/src/main/assets/web/vue/assets/config-0e6be994.js
index b01cf8571..8b04ccaee 100644
--- a/app/src/main/assets/web/vue/assets/config-752e04be.js
+++ b/app/src/main/assets/web/vue/assets/config-0e6be994.js
@@ -1 +1 @@
-import{u as n,A as r}from"./index-f4927a88.js";import"./vendor-bf77f5c0.js";const i=n();i.setMiniInterface(window.innerWidth<750);window.onresize=()=>{i.setMiniInterface(window.innerWidth<750)};r.getReadConfig().then(a=>{var e=a.data.data;if(e){const t=n();let o=JSON.parse(e),s=t.config;o=Object.assign(s,o),t.setConfig(o)}});
+import{u as n,A as r}from"./index-76057bdd.js";import"./vendor-93648100.js";const i=n();i.setMiniInterface(window.innerWidth<750);window.onresize=()=>{i.setMiniInterface(window.innerWidth<750)};r.getReadConfig().then(a=>{var e=a.data.data;if(e){const t=n();let o=JSON.parse(e),s=t.config;o=Object.assign(s,o),t.setConfig(o)}});
diff --git a/app/src/main/assets/web/vue/assets/el-loading-b910ac83.js b/app/src/main/assets/web/vue/assets/el-loading-404c2b84.js
similarity index 97%
rename from app/src/main/assets/web/vue/assets/el-loading-b910ac83.js
rename to app/src/main/assets/web/vue/assets/el-loading-404c2b84.js
index 365fe626f..2bf10b039 100644
--- a/app/src/main/assets/web/vue/assets/el-loading-b910ac83.js
+++ b/app/src/main/assets/web/vue/assets/el-loading-404c2b84.js
@@ -1 +1 @@
-import{u}from"./index-f4927a88.js";const f=/\[([^\]]+)]|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 D(t,n,e,a){let s=t<12?"AM":"PM";return a&&(s=s.split("").reduce((l,i)=>l+=`${i}.`,"")),e?s.toLowerCase():s}function L(t,n,e={}){var a;const s=t.getFullYear(),l=t.getMonth(),i=t.getDate(),o=t.getHours(),r=t.getMinutes(),g=t.getSeconds(),m=t.getMilliseconds(),d=t.getDay(),c=(a=e.customMeridiem)!=null?a:D,M={YY:()=>String(s).slice(-2),YYYY:()=>s,M:()=>l+1,MM:()=>`${l+1}`.padStart(2,"0"),MMM:()=>t.toLocaleDateString(e.locales,{month:"short"}),MMMM:()=>t.toLocaleDateString(e.locales,{month:"long"}),D:()=>String(i),DD:()=>`${i}`.padStart(2,"0"),H:()=>String(o),HH:()=>`${o}`.padStart(2,"0"),h:()=>`${o%12||12}`.padStart(1,"0"),hh:()=>`${o%12||12}`.padStart(2,"0"),m:()=>String(r),mm:()=>`${r}`.padStart(2,"0"),s:()=>String(g),ss:()=>`${g}`.padStart(2,"0"),SSS:()=>`${m}`.padStart(3,"0"),d:()=>d,dd:()=>t.toLocaleDateString(e.locales,{weekday:"narrow"}),ddd:()=>t.toLocaleDateString(e.locales,{weekday:"short"}),dddd:()=>t.toLocaleDateString(e.locales,{weekday:"long"}),A:()=>c(o,r),AA:()=>c(o,r,!1,!0),a:()=>c(o,r,!0),aa:()=>c(o,r,!0,!0)};return n.replace(f,(S,h)=>h||M[S]())}const w=t=>/,\s*\{/.test(t)||!(t.startsWith("http")||t.startsWith("data:")||t.startsWith("blob:"));function Y(t){return location.origin+"/image?path="+encodeURIComponent(t)+"&url="+encodeURIComponent(sessionStorage.getItem("bookUrl"))+"&width="+u().config.readWidth}const $=t=>{let n=new Date().getTime(),e=Math.floor((n-t)/1e3),a="";return e<=30?a="刚刚":e<60?a=e+"秒前":e<3600?a=Math.floor(e/60)+"分钟前":e<86400?a=Math.floor(e/3600)+"小时前":e<2592e3?a=Math.floor(e/86400)+"天前":a=L(new Date(t),"YYYY-MM-DD"),a},v='';export{$ as d,Y as g,w as i,v as l};
+import{u}from"./index-76057bdd.js";const f=/\[([^\]]+)]|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 D(t,n,e,a){let s=t<12?"AM":"PM";return a&&(s=s.split("").reduce((l,i)=>l+=`${i}.`,"")),e?s.toLowerCase():s}function L(t,n,e={}){var a;const s=t.getFullYear(),l=t.getMonth(),i=t.getDate(),o=t.getHours(),r=t.getMinutes(),g=t.getSeconds(),m=t.getMilliseconds(),d=t.getDay(),c=(a=e.customMeridiem)!=null?a:D,M={YY:()=>String(s).slice(-2),YYYY:()=>s,M:()=>l+1,MM:()=>`${l+1}`.padStart(2,"0"),MMM:()=>t.toLocaleDateString(e.locales,{month:"short"}),MMMM:()=>t.toLocaleDateString(e.locales,{month:"long"}),D:()=>String(i),DD:()=>`${i}`.padStart(2,"0"),H:()=>String(o),HH:()=>`${o}`.padStart(2,"0"),h:()=>`${o%12||12}`.padStart(1,"0"),hh:()=>`${o%12||12}`.padStart(2,"0"),m:()=>String(r),mm:()=>`${r}`.padStart(2,"0"),s:()=>String(g),ss:()=>`${g}`.padStart(2,"0"),SSS:()=>`${m}`.padStart(3,"0"),d:()=>d,dd:()=>t.toLocaleDateString(e.locales,{weekday:"narrow"}),ddd:()=>t.toLocaleDateString(e.locales,{weekday:"short"}),dddd:()=>t.toLocaleDateString(e.locales,{weekday:"long"}),A:()=>c(o,r),AA:()=>c(o,r,!1,!0),a:()=>c(o,r,!0),aa:()=>c(o,r,!0,!0)};return n.replace(f,(S,h)=>h||M[S]())}const w=t=>/,\s*\{/.test(t)||!(t.startsWith("http")||t.startsWith("data:")||t.startsWith("blob:"));function Y(t){return location.origin+"/image?path="+encodeURIComponent(t)+"&url="+encodeURIComponent(sessionStorage.getItem("bookUrl"))+"&width="+u().config.readWidth}const $=t=>{let n=new Date().getTime(),e=Math.floor((n-t)/1e3),a="";return e<=30?a="刚刚":e<60?a=e+"秒前":e<3600?a=Math.floor(e/60)+"分钟前":e<86400?a=Math.floor(e/3600)+"小时前":e<2592e3?a=Math.floor(e/86400)+"天前":a=L(new Date(t),"YYYY-MM-DD"),a},v='';export{$ as d,Y as g,w as i,v as l};
diff --git a/app/src/main/assets/web/vue/assets/index-060af40e.css b/app/src/main/assets/web/vue/assets/index-060af40e.css
deleted file mode 100644
index 4612eb831..000000000
--- a/app/src/main/assets/web/vue/assets/index-060af40e.css
+++ /dev/null
@@ -1 +0,0 @@
-.el-link[data-v-aee57c78]{padding:4px}.el-text[data-v-aee57c78]{padding-top:20px}.error[data-v-d4c4e88b]{border-color:var(--el-color-error)!important;color:var(--el-color-error)!important;--el-checkbox-checked-text-color: var(--el-color-error);--el-checkbox-checked-bg-color: var(--el-color-error);--el-checkbox-checked-input-border-color: var(--el-color-error)}.tool[data-v-76d18c9a]{display:flex;margin:4px 0;justify-content:center}#source-list[data-v-76d18c9a]{margin-top:6px;height:calc(100vh - 119px)}#source-list[data-v-76d18c9a] .el-checkbox{margin-bottom:4px;width:100%}[data-v-fe904689] #debug-text{height:calc(100vh - 86px)}[data-v-7e91a802] .el-input{width:100%}[data-v-7e91a802] #source-json{height:calc(100vh - 50px)}[data-v-dcce2457] .el-tabs__header{margin-bottom:5px}.flex-space-between[data-v-dc7cd0f9]{display:flex;justify-content:space-between;align-items:baseline}.flex-column-center[data-v-dc7cd0f9]{display:flex;flex-direction:column;justify-content:center}.menu>.el-button[data-v-dc7cd0f9]{margin:4px;padding:1em;width:6em}.hotkeys-item .title[data-v-dc7cd0f9]{width:5em;display:flex;justify-content:flex-end;margin-right:1em}.hotkeys-item__content[data-v-dc7cd0f9]{display:flex;flex-wrap:wrap;flex:1}.hotkeys-item__content div[data-v-dc7cd0f9]{margin-bottom:1em}.hotkeys-item__content span[data-v-dc7cd0f9]{margin:.5em}[data-v-2cfb5302] .el-tab-pane{height:calc(100vh - 55px);padding-top:15px;padding-right:5px;overflow-y:auto}[data-v-2cfb5302] .el-tabs__header{margin:0}kbd{background-color:#fcfcfc;border-radius:3px;border:1px solid hsl(0deg,0%,80%);padding:4px 5px;font-weight:700}code{background-color:#f2f1f1;padding:.125rem .25rem;border-radius:.25rem;font-size:.835rem}body{padding:0;margin:0}.el-tabs__header{position:sticky;top:0px;z-index:2;background-color:#fff}.editor[data-v-e99e7704]{display:flex;height:100vh;overflow:hidden}.editor .left[data-v-e99e7704]{flex:1;margin-left:20px}.editor .right[data-v-e99e7704]{flex:1;width:360px;margin-right:20px}
diff --git a/app/src/main/assets/web/vue/assets/index-3a786cf8.css b/app/src/main/assets/web/vue/assets/index-3a786cf8.css
new file mode 100644
index 000000000..b6701cd05
--- /dev/null
+++ b/app/src/main/assets/web/vue/assets/index-3a786cf8.css
@@ -0,0 +1 @@
+.el-link[data-v-aee57c78]{padding:4px}.el-text[data-v-aee57c78]{padding-top:20px}[data-v-dfd5b00c] .el-checkbox__label{flex:1;display:flex;justify-content:space-between;align-items:center}.error[data-v-dfd5b00c]{border-color:var(--el-color-error)!important;color:var(--el-color-error)!important;--el-checkbox-checked-text-color: var(--el-color-error);--el-checkbox-checked-bg-color: var(--el-color-error);--el-checkbox-checked-input-border-color: var(--el-color-error)}.edit[data-v-dfd5b00c]{border-color:var(--el-color-dark)!important}.tool[data-v-f7855a32]{display:flex;margin:4px 0;justify-content:center}#source-list[data-v-f7855a32]{margin-top:6px;height:calc(100vh - 119px)}#source-list[data-v-f7855a32] .el-checkbox{margin-bottom:4px;width:100%}[data-v-fe904689] #debug-text{height:calc(100vh - 86px)}[data-v-7e91a802] .el-input{width:100%}[data-v-7e91a802] #source-json{height:calc(100vh - 50px)}[data-v-dcce2457] .el-tabs__header{margin-bottom:5px}.flex-space-between[data-v-dc7cd0f9]{display:flex;justify-content:space-between;align-items:baseline}.flex-column-center[data-v-dc7cd0f9]{display:flex;flex-direction:column;justify-content:center}.menu>.el-button[data-v-dc7cd0f9]{margin:4px;padding:1em;width:6em}.hotkeys-item .title[data-v-dc7cd0f9]{width:5em;display:flex;justify-content:flex-end;margin-right:1em}.hotkeys-item__content[data-v-dc7cd0f9]{display:flex;flex-wrap:wrap;flex:1}.hotkeys-item__content div[data-v-dc7cd0f9]{margin-bottom:1em}.hotkeys-item__content span[data-v-dc7cd0f9]{margin:.5em}[data-v-2cfb5302] .el-tab-pane{height:calc(100vh - 55px);padding-top:15px;padding-right:5px;overflow-y:auto}[data-v-2cfb5302] .el-tabs__header{margin:0}kbd{background-color:#fcfcfc;border-radius:3px;border:1px solid hsl(0deg,0%,80%);padding:4px 5px;font-weight:700}code{background-color:#f2f1f1;padding:.125rem .25rem;border-radius:.25rem;font-size:.835rem}body{padding:0;margin:0}.el-tabs__header{position:sticky;top:0px;z-index:2;background-color:#fff}.editor[data-v-e99e7704]{display:flex;height:100vh;overflow:hidden}.editor .left[data-v-e99e7704]{flex:1;margin-left:20px}.editor .right[data-v-e99e7704]{flex:1;width:360px;margin-right:20px}
diff --git a/app/src/main/assets/web/vue/assets/index-76057bdd.js b/app/src/main/assets/web/vue/assets/index-76057bdd.js
new file mode 100644
index 000000000..db95851db
--- /dev/null
+++ b/app/src/main/assets/web/vue/assets/index-76057bdd.js
@@ -0,0 +1,13 @@
+import{r as xe,o as l,c as k,a as ne,b as re,d as U,e as p,w as u,f as y,u as i,l as q,g as _,F as O,E as Ue,h as ue,p as Be,i as Ee,j as Ie,k as w,m as de,s as X,t as G,n as pe,q as he,v as se,x as Ve,y as P,z as Q,A as j,B as _e,C as Ne,D as Te,G as ie,V as $e,H as Y,I as Le,J as ge,K as Re,L as T,M as Oe,N as A,O as me,P as Se,Q as Pe,R as z,S as De,T as Je,U as Ae,W as Ke,X as je,Y as He,Z as Fe,_ as qe,$ as ze,a0 as Me}from"./vendor-93648100.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))s(n);new MutationObserver(n=>{for(const r of n)if(r.type==="childList")for(const a of r.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function o(n){const r={};return n.integrity&&(r.integrity=n.integrity),n.referrerPolicy&&(r.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?r.credentials="include":n.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(n){if(n.ep)return;n.ep=!0;const r=o(n);fetch(n.href,r)}})();const We="modulepreload",Ge=function(e,t){return new URL(e,t).href},le={},oe=function(t,o,s){if(!o||o.length===0)return t();const n=document.getElementsByTagName("link");return Promise.all(o.map(r=>{if(r=Ge(r,s),r in le)return;le[r]=!0;const a=r.endsWith(".css"),b=a?'[rel="stylesheet"]':"";if(!!s)for(let v=n.length-1;v>=0;v--){const x=n[v];if(x.href===r&&(!a||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${r}"]${b}`))return;const g=document.createElement("link");if(g.rel=a?"stylesheet":We,a||(g.as="script",g.crossOrigin=""),g.href=r,document.head.appendChild(g),a)return new Promise((v,x)=>{g.addEventListener("load",v),g.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${r}`)))})})).then(()=>t())},D=(e,t)=>{const o=e.__vccOpts||e;for(const[s,n]of t)o[s]=n;return o},Qe={};function Xe(e,t){const o=xe("router-view");return l(),k(o)}const Ye=D(Qe,[["render",Xe]]),ye=[{path:"/",name:"shelf",component:()=>oe(()=>import("./BookShelf-751754db.js"),["./BookShelf-751754db.js","./vendor-93648100.js","./vendor-6f0d1692.css","./el-loading-404c2b84.js","./el-loading-d0f2d079.css","./BookShelf-f637327a.css"],import.meta.url)},{path:"/chapter",name:"chapter",component:()=>oe(()=>import("./BookChapter-0270f952.js"),["./BookChapter-0270f952.js","./el-loading-404c2b84.js","./el-loading-d0f2d079.css","./vendor-93648100.js","./vendor-6f0d1692.css","./BookChapter-468f2c8e.css"],import.meta.url)}];ne({history:re(),routes:ye});const $=e=>(Be("data-v-aee57c78"),e=e(),Ee(),e),Ze=$(()=>_("br",null,null,-1)),et=$(()=>_("br",null,null,-1)),tt=$(()=>_("br",null,null,-1)),ot=$(()=>_("br",null,null,-1)),nt=$(()=>_("br",null,null,-1)),rt={style:{"margin-top":"20px"}},st=$(()=>_("code",null,"^$()[]{}.?+*|",-1)),it=$(()=>_("br",null,null,-1)),lt=$(()=>_("code",null,"(?s)",-1)),ct=$(()=>_("br",null,null,-1)),at=$(()=>_("code",null,"(?m)",-1)),ut=$(()=>_("br",null,null,-1)),dt=$(()=>_("code",null,"(?i)",-1)),pt=$(()=>_("br",null,null,-1)),ht={__name:"SourceHelp",setup(e){return(t,o)=>{const s=Ue,n=ue;return l(),U(O,null,[p(s,{icon:i(q),href:"https://alanskycn.gitee.io/teachme/",target:"_blank"},{default:u(()=>[y("书源制作教程")]),_:1},8,["icon"]),Ze,p(s,{icon:i(q),href:"https://zhuanlan.zhihu.com/p/29436838",target:"_blank"},{default:u(()=>[y("xpath基础教程")]),_:1},8,["icon"]),et,p(s,{icon:i(q),href:"https://zhuanlan.zhihu.com/p/32187820",target:"_blank"},{default:u(()=>[y("xpath高级教程")]),_:1},8,["icon"]),tt,p(s,{icon:i(q),href:"https://www.w3cschool.cn/regex_rmjc",target:"_blank"},{default:u(()=>[y("正则表达式教程")]),_:1},8,["icon"]),ot,p(s,{icon:i(q),href:"https://regexr-cn.com/",target:"_blank"},{default:u(()=>[y("正则表达式在线验证工具")]),_:1},8,["icon"]),nt,_("div",rt,[_("span",null,[p(n,null,{default:u(()=>[st,y(" 这些是Java正则特殊符号,匹配需转义")]),_:1})]),it,_("span",null,[p(n,null,{default:u(()=>[lt,y(" 前缀表示跨行解析")]),_:1})]),ct,_("span",null,[p(n,null,{default:u(()=>[at,y(" 前缀表示逐行匹配")]),_:1})]),ut,_("span",null,[p(n,null,{default:u(()=>[dt,y(" 前缀表示忽略大小写")]),_:1})]),pt])],64)}}},_t=D(ht,[["__scopeId","data-v-aee57c78"]]),gt=1e3,B=Ie.create({baseURL:location.origin,timeout:120*gt}),{hostname:fe,port:be}=new URL(location.href),mt=/source/i.test(location.href),St=e=>{throw mt&&w({message:"后端错误,检查网络或者阅读app",type:"error"}),e};B.interceptors.response.use(e=>e,St);const yt=()=>B.get("/getReadConfig"),ft=e=>B.post("/saveReadConfig",e),bt=e=>B.post("/saveBookProgress",e),kt=()=>B.get("/getBookshelf"),vt=e=>B.get("/getChapterList?url="+encodeURIComponent(e)),Ct=(e,t)=>B.get("/getBookContent?url="+encodeURIComponent(e)+"&index="+t),wt=(e,t,o)=>{const s=`ws://${fe}:${Number(be)+1}/searchBook`,n=new WebSocket(s);n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=({data:r})=>t(r),n.onclose=()=>{o()}},xt=e=>B.post("/saveBook",e),Ut=e=>B.post("/deleteBook",e),W=/bookSource/i.test(location.href),Bt=()=>W?B.get("getBookSources"):B.get("getRssSources"),Et=e=>W?B.post("saveBookSource",e):B.post("saveRssSource",e),It=e=>W?B.post("saveBookSources",e):B.post("saveRssSources",e),Vt=e=>W?B.post("deleteBookSources",e):B.post("deleteRssSources",e),Nt=(e,t,o,s)=>{const n=`ws://${fe}:${Number(be)+1}/${W?"bookSource":"rssSource"}Debug`,r=new WebSocket(n);r.onopen=()=>{r.send(JSON.stringify({tag:e,key:t}))},r.onmessage=({data:a})=>o(a),r.onclose=()=>{w({message:"调试已关闭!",type:"info"}),s()}},K={getReadConfig:yt,saveReadConfig:ft,saveBookProcess:bt,getBookShelf:kt,getChapterList:vt,getBookContent:Ct,search:wt,saveBook:xt,deleteBook:Ut,getSources:Bt,saveSources:It,saveSource:Et,deleteSource:Vt,debug:Nt},M=e=>e==null||e.length===0||/^\s+$/.test(e),ke=e=>"bookSourceName"in e,Tt=e=>ke(e)?!M(e.bookSourceName)&&!M(e.bookSourceUrl)&&!M(e.bookSourceType):!M(e.sourceName)&&!M(e.sourceName),$t=(e,t)=>{var o,s,n,r,a,b,S,g;return ke(e)?(((o=e.bookSourceName)==null?void 0:o.includes(t))||((s=e.bookSourceUrl)==null?void 0:s.includes(t))||((n=e.bookSourceGroup)==null?void 0:n.includes(t))||((r=e.bookSourceComment)==null?void 0:r.includes(t)))??!1:(((a=e.sourceName)==null?void 0:a.includes(t))||((b=e.sourceUrl)==null?void 0:b.includes(t))||((S=e.sourceGroup)==null?void 0:S.includes(t))||((g=e.sourceComment)==null?void 0:g.includes(t)))??!1},Lt={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleReview:{},ruleExplore:{}},Rt={},J=/bookSource/i.test(location.href),ce=J?Lt:Rt,H=de("source",{state:()=>({bookSources:[],rssSources:[],errorPushSources:[],currentSource:ce,currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>J?e.bookSources:e.rssSources,currentSourceUrl:e=>J?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>J?e.currentSource.ruleSearch.checkKeyWord||"我的":null},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){J?this.bookSources=e:this.rssSources=e},deleteSources(e){let t=J?this.bookSources:this.rssSources;e.forEach(o=>{let s=t.indexOf(o);s>-1&&t.splice(s,1)})},saveCurrentSource(){let e=this.currentSource,t,o;J?(t=this.bookSources,o="bookSourceUrl"):(t=this.rssSources,o="sourceUrl");let s=t.findIndex(n=>n[o]===e[o]);e=JSON.parse(JSON.stringify(e)),s>-1?t.splice(s,1,e):t.push(e)},changeCurrentSource(e){const t=JSON.stringify(e);this.currentSource=JSON.parse(t)},async setPushReturnSources(e){J?this.errorPushSources=this.sources.filter(t=>e.every(o=>o.bookSourceUrl!==t.bookSourceUrl)):this.errorPushSources=this.sources.filter(t=>e.every(o=>o.sourceUrl!==t.sourceUrl))},changeTabName(e){this.currentTab=e,localStorage.setItem("tabName",e)},changeEditTabSource(e){const t=JSON.stringify(e);this.editTabSource=JSON.parse(t)},editHistory(e){let t;if(localStorage.getItem("history"))t=JSON.parse(localStorage.getItem("history")),t.new.push(e),t.new.length>50&&t.new.shift(),t.old.length>50&&t.old.shift(),localStorage.setItem("history",JSON.stringify(t));else{const o={new:[e],old:[]};localStorage.setItem("history",JSON.stringify(o))}},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=ce},clearAllSource(){this.bookSources=[],this.rssSources=[]}}});const Ot={__name:"SourceItem",props:["source"],setup(e){const t=e,o=t.source.bookSourceUrl||t.source.sourceUrl,s=H(),{errorPushSources:n,currentSourceUrl:r}=X(s),a=b=>{s.changeCurrentSource(b)};return(b,S)=>{const g=se,v=Ve;return l(),k(v,{size:"large",border:"",label:i(o),class:he({error:i(n).includes(e.source),edit:i(o)==i(r)})},{default:u(()=>[y(G(e.source.bookSourceName||e.source.sourceName)+" ",1),p(g,{text:"",icon:i(pe),onClick:S[0]||(S[0]=x=>a(e.source))},null,8,["icon"])]),_:1},8,["label","class"])}}},Pt=D(Ot,[["__scopeId","data-v-dfd5b00c"]]);const Dt={class:"tool"},Jt={__name:"SourceList",setup(e){const t=H(),o=P([]),s=P(""),{sources:n}=X(t),r=Q(()=>/bookSource/.test(window.location.href)),a=Q(()=>{let c=o.value;if(c.length==0)return[];let I="sourceUrl";return r.value&&(I="bookSourceUrl"),n.value.filter(E=>{let V=c.indexOf(E[I]);return V>-1?(c.splice(V,1),!0):!1})}),b=()=>{K.deleteSource(a.value).then(({data:c})=>{if(!c.isSuccess)return w.error(c.errorMsg);t.deleteSources(a.value),o.value=[]})},S=()=>{t.clearAllSource(),o.value=[]},g=Q(()=>{let c=s.value;return c===""?n.value:n.value.filter(m=>$t(m,c))}),v=()=>{const c=document.createElement("input");c.type="file",c.accept=".json,.txt",c.addEventListener("change",m=>{const I=m.target.files[0];var E=new FileReader;E.readAsText(I),E.onload=()=>{try{const V=JSON.parse(E.result);t.saveSources(V)}catch{w({message:"上传的源格式错误",type:"error"})}}}),c.click()},x=()=>{const c=document.createElement("a");let m=o.value.length===0?g.value:a.value,I=r.value?"BookSource":"RssSource";c.download=`${I}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let E=new Blob([JSON.stringify(m,null,4)],{type:"application/json"});c.href=window.URL.createObjectURL(E),c.click()};return(c,m)=>{const I=Y,E=se,V=Le;return l(),U(O,null,[p(I,{modelValue:i(s),"onUpdate:modelValue":m[0]||(m[0]=L=>j(s)?s.value=L:null),class:"search","prefix-icon":i(_e),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),_("div",Dt,[p(E,{onClick:v,icon:i(Ne)},{default:u(()=>[y("打开")]),_:1},8,["icon"]),p(E,{disabled:i(g).length===0,onClick:x,icon:i(Te)},{default:u(()=>[y(" 导出")]),_:1},8,["disabled","icon"]),p(E,{type:"danger",icon:i(ie),onClick:b,disabled:i(o).length===0},{default:u(()=>[y("删除")]),_:1},8,["icon","disabled"]),p(E,{type:"danger",icon:i(ie),onClick:S,disabled:i(n).length===0},{default:u(()=>[y("清空")]),_:1},8,["icon","disabled"])]),p(V,{id:"source-list",modelValue:i(o),"onUpdate:modelValue":m[1]||(m[1]=L=>j(o)?o.value=L:null)},{default:u(()=>[p(i($e),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":L=>L.bookSourceUrl||L.sourceUrl,"data-sources":i(g),"data-component":Pt,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}},At=D(Jt,[["__scopeId","data-v-f7855a32"]]);const Kt={__name:"SourceDebug",setup(e){const t=H(),o=P(""),s=P("");ge(()=>{t.isDebuging&&r()});const n=b=>{let S=document.querySelector("#debug-text");S.scrollTop=S.scrollHeight,o.value+=b+`
+`},r=async()=>{o.value="",await K.saveSource(t.currentSource),K.debug(t.currentSourceUrl,s.value||t.searchKey,n,t.debugFinish)},a=Q(()=>/bookSource/.test(window.location.href));return(b,S)=>{const g=Y;return l(),U(O,null,[i(a)?(l(),k(g,{key:0,id:"debug-key",modelValue:i(s),"onUpdate:modelValue":S[0]||(S[0]=v=>j(s)?s.value=v:null),placeholder:"搜索书名、作者","prefix-icon":i(_e),style:{"padding-bottom":"4px"},onKeydown:Re(r,["enter"])},null,8,["modelValue","prefix-icon","onKeydown"])):T("",!0),p(g,{id:"debug-text",modelValue:i(o),"onUpdate:modelValue":S[1]||(S[1]=v=>j(o)?o.value=v:null),type:"textarea",readonly:"",rows:"29",placeholder:"这里用于输出调试信息"},null,8,["modelValue"])],64)}}},jt=D(Kt,[["__scopeId","data-v-fe904689"]]),ho=de("book",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"",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:""},miniInterface:!1,readSettingsVisible:!1}),actions:{setConnectStatus(e){this.connectStatus=e},setConnectType(e){this.connectType=e},setNewConnect(e){this.newConnect=e},addBooks(e){this.shelf=e},setCatalog(e){this.catalog=e},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=e},setConfig(e){this.config=e},setReadSettingsVisible(e){this.readSettingsVisible=e},setShowContent(e){this.showContent=e},setMiniInterface(e){this.miniInterface=e},async setSearchBooks(e){e.forEach(t=>{this.shelf.find(s=>s.bookUrl==t.bookUrl)===void 0&&this.searchBooks.push(t)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProcess(){var r;if(this.catalog.length==0)return;const{index:e,chapterPos:t,bookName:o,bookAuthor:s}=this.readingBook;let n=(r=this.catalog[e])==null?void 0:r.title;n&&K.saveBookProcess({name:o,author:s,durChapterIndex:e,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:n})}}}),Ht=Oe();const Ft={__name:"SourceJson",setup(e){const t=H(),o=P(""),s=async n=>{try{t.changeEditTabSource(JSON.parse(n))}catch{w({message:"粘贴的源格式错误",type:"error"})}};return ge(async()=>{let n=t.editTabSource;Object.keys(n).length>0?o.value=JSON.stringify(n,null,4):o.value=""}),(n,r)=>{const a=Y;return l(),k(a,{id:"source-json",modelValue:i(o),"onUpdate:modelValue":r[0]||(r[0]=b=>j(o)?o.value=b:null),type:"textarea",placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP",rows:"30",onChange:s,style:{"margin-bottom":"4px"}},null,8,["modelValue"])}}},qt=D(Ft,[["__scopeId","data-v-7e91a802"]]);const zt={__name:"SourceTabTools",setup(e){const t=H(),{currentTab:o}=X(t),s=P([["editTab","编辑源"],["editDebug","调试源"],["editList","源列表"],["editHelp","帮助信息"]]);return(n,r)=>{const a=qt,b=jt,S=At,g=_t,v=me,x=Se;return l(),k(x,{modelValue:i(o),"onUpdate:modelValue":r[0]||(r[0]=c=>j(o)?o.value=c:null)},{default:u(()=>[(l(!0),U(O,null,A(i(s),(c,m)=>(l(),k(v,{key:c[0],name:c[0],label:c[1]},{default:u(()=>[m==0?(l(),k(a,{key:0})):T("",!0),m==1?(l(),k(b,{key:1})):T("",!0),m==2?(l(),k(S,{key:2})):T("",!0),m==3?(l(),k(g,{key:3})):T("",!0)]),_:2},1032,["name","label"]))),128))]),_:1},8,["modelValue"])}}},Mt=D(zt,[["__scopeId","data-v-dcce2457"]]);const Wt={class:"menu flex-column-center"},Gt={class:"hotkeys-header flex-space-between"},Qt=["id"],Xt={key:0},Yt={class:"hotkeys-settings flex-column-center"},Zt={class:"title"},eo={class:"hotkeys-item__content"},to={key:0},oo={key:0},no={__name:"ToolBar",setup(e){const t=H(),o=()=>{const h=w({message:"加载中……",showClose:!0,duration:0});K.getSources().then(({data:d})=>{d.isSuccess?(t.changeTabName("editList"),t.saveSources(d.data),w({message:`成功拉取${d.data.length}条源`,type:"success"})):w({message:d.errorMsg??"后端错误",type:"error"})}).finally(()=>h.close())},s=()=>{let h=t.sources;if(t.changeTabName("editList"),h.length===0)return w({message:"空空如也",type:"info"});w({message:"正在推送中",type:"info"}),K.saveSources(h).then(({data:d})=>{if(d.isSuccess){let C=d.data;if(Array.isArray(C)){let f="";h.length>C.length&&(f=`
+推送失败的源将用红色字体标注!`,t.setPushReturnSources(C)),w({message:`批量推送源到「阅读3.0APP」
+共计: ${h.length} 条
+成功: ${C.length} 条
+失败: ${h.length-C.length} 条${f}`,type:"success"})}}else w({message:`批量推送源失败!
+ErrorMsg: ${d.errorMsg}`,type:"error"})})},n=()=>{t.changeTabName("editTab"),t.changeEditTabSource(t.currentSource)},r=()=>{t.changeCurrentSource(t.editTabSource)},a=()=>{t.editHistoryUndo()},b=()=>{t.clearEdit(),w({message:"已清除",type:"success"})},S=()=>{t.clearEdit(),t.clearAllHistory(),w({message:"已清除所有历史记录",type:"success"})},g=()=>{let h=/bookSource/.test(location.href),d=t.currentSource;Tt(d)?K.saveSource(d).then(({data:C})=>{C.isSuccess?(w({message:`源《${h?d.bookSourceName:d.sourceName}》已成功保存到「阅读3.0APP」`,type:"success"}),t.saveCurrentSource()):w({message:`源《${h?d.bookSourceName:d.sourceName}》保存失败!
+ErrorMsg: ${C.errorMsg}`,type:"error"})}):w({message:"请检查<必填>项是否全部填写",type:"error"})},v=()=>{t.startDebug()},x=P(Array.of({name:"⇈推送源",hotKeys:[],action:s},{name:"⇊拉取源",hotKeys:[],action:o},{name:"⋙生成源",hotKeys:[],action:n},{name:"⋘编辑源",hotKeys:[],action:r},{name:"✗清空表单",hotKeys:[],action:b},{name:"↶撤销操作",hotKeys:[],action:a},{name:"↷重做操作",hotKeys:[],action:S},{name:"⇏调试源",hotKeys:[],action:v},{name:"✓保存源",hotKeys:[],action:g})),c=P(!0),m=P(!1),I=P(-1),E=()=>{m.value=!1};Pe(c,h=>{if(!h)return z.unbind("*");z.unbind(),z("*",d=>{d.preventDefault(),m.value&&I.value>-1&&(x.value[I.value].hotKeys=z.getPressedKeyString())})});const V=h=>{m.value=!0,w({message:"按ESC键或者点击空白处结束录入",type:"info"}),x.value[h].hotKeys=[],I.value=h},L=()=>{c.value=!1;const h=[];x.value.forEach(({hotKeys:d,action:C})=>{z(d.join("+"),f=>{f.preventDefault(),C.call(null)}),h.push(d)}),F(h)},F=h=>{localStorage.setItem("legado_web_hotkeys",JSON.stringify(h))},R=()=>{try{const h=JSON.parse(localStorage.getItem("legado_web_hotkeys"));if(!Array.isArray(h)||h.length==0)return;x.value.forEach((d,C)=>d.hotKeys=h[C]),c.value=!1,L()}catch{w({message:"快捷键配置错误",type:"error"}),localStorage.removeItem("legado_web_hotkeys")}};return De(()=>{R()}),(h,d)=>{const C=se,f=ue,Z=Ae;return l(),U(O,null,[_("div",Wt,[(l(!0),U(O,null,A(i(x),N=>(l(),k(C,{size:"large",key:N.name,onClick:N.action},{default:u(()=>[y(G(N.name),1)]),_:2},1032,["onClick"]))),128)),p(C,{size:"large",onClick:d[0]||(d[0]=()=>c.value=!0)},{default:u(()=>[y("快捷键")]),_:1})]),p(Z,{modelValue:i(c),"onUpdate:modelValue":d[1]||(d[1]=N=>j(c)?c.value=N:null),"show-close":!1,"before-close":E},{header:u(({titleClass:N,titleId:ee})=>[_("div",Gt,[_("div",{id:ee,class:he(N)},[y(" 快捷键设置 "),i(m)?(l(),U("span",Xt,[p(f,null,{default:u(()=>[y(" / 录入中 ")]),_:1})])):T("",!0)],10,Qt),p(C,{disabled:i(m),onClick:L,icon:i(Je)},{default:u(()=>[y("保存")]),_:1},8,["disabled","icon"])])]),default:u(()=>[_("div",Yt,[(l(!0),U(O,null,A(i(x),(N,ee)=>(l(),U("div",{key:N.name,class:"hotkeys-item flex-space-between"},[_("span",Zt,[p(f,null,{default:u(()=>[y(G(N.name),1)]),_:2},1024)]),_("div",eo,[(l(!0),U(O,null,A(N.hotKeys,(te,we)=>(l(),U("div",{key:te},[_("kbd",null,G(te),1),we+1[y("+")]),_:1})])):T("",!0)]))),128)),N.hotKeys.length==0?(l(),U("span",oo,"未设置")):T("",!0)]),p(C,{disabled:i(m),text:"",icon:i(pe),onClick:te=>V(ee)},{default:u(()=>[y("编辑")]),_:2},1032,["disabled","icon","onClick"])]))),128))])]),_:1},8,["modelValue"])],64)}}},ro=D(no,[["__scopeId","data-v-dc7cd0f9"]]);const so={__name:"SourceTabForm",props:["config"],setup(e){const t=H(),{currentSource:o}=X(t);return(s,n)=>{const r=Y,a=Ke,b=je,S=He,g=Fe,v=qe,x=ze,c=me,m=Se;return l(),k(m,{id:"source-edit"},{default:u(()=>[(l(!0),U(O,null,A(Object.values(e.config),({name:I,children:E})=>(l(),k(c,{label:I,key:I},{default:u(()=>[p(x,{"label-position":"right","label-width":"5em"},{default:u(()=>[(l(!0),U(O,null,A(E,({type:V,title:L,namespace:F,id:R,array:h,hint:d,required:C})=>(l(),k(v,{label:L,key:L,required:C},{default:u(()=>[V=="String"&&typeof F>"u"?(l(),k(r,{key:0,type:"textarea",modelValue:i(o)[R],"onUpdate:modelValue":f=>i(o)[R]=f,placeholder:d,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):T("",!0),V=="String"&&typeof F<"u"?(l(),k(r,{key:1,type:"textarea",modelValue:i(o)[F][R],"onUpdate:modelValue":f=>i(o)[F][R]=f,placeholder:d,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):T("",!0),V=="Boolean"?(l(),k(a,{key:2,modelValue:i(o)[R],"onUpdate:modelValue":f=>i(o)[R]=f},null,8,["modelValue","onUpdate:modelValue"])):T("",!0),V=="Number"?(l(),k(b,{key:3,modelValue:i(o)[R],"onUpdate:modelValue":f=>i(o)[R]=f,min:0},null,8,["modelValue","onUpdate:modelValue"])):T("",!0),V=="Array"?(l(),k(g,{key:4,modelValue:i(o)[R],"onUpdate:modelValue":f=>i(o)[R]=f},{default:u(()=>[(l(!0),U(O,null,A(h,(f,Z)=>(l(),k(S,{value:Z,key:f,label:f},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):T("",!0)]),_:2},1032,["label","required"]))),128))]),_:2},1024)]),_:2},1032,["label"]))),128))]),_:1})}}},io=D(so,[["__scopeId","data-v-2cfb5302"]]),lo={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:"variableComment",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:"concurrentRate",type:"String",hint:"并发率"},{title:"js库",id:"jsLib",type:"String",hint:"js库"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"链接验证",id:"bookUrlPattern",type:"String",hint:"当详情页URL与源URL的域名不一致时有效,用于添加网址"}]},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:`内容能显示在发现菜单
+每行一条发现分类(网址域名可省略),例:
+名称1::网址(Url)1
+名称2::网址(Url)2
+...`},{title:"发现筛选",id:"exploreScreen",type:"String",hint:"发现筛选规则"},{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:"下载URL",namespace:"ruleBookInfo",id:"downloadUrls",type:"String",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"},{title:"修改书籍",namespace:"ruleBookInfo",id:"canReName",type:"String",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"}]},directory:{name:"目录",children:[{title:"预处理",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:"isVolume",type:"String",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"收费标识",namespace:"ruleToc",id:"isVip",type:"String",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",namespace:"ruleToc",id:"isPay",type:"String",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"章节信息",namespace:"ruleToc",id:"updateTime",type:"String",hint:"选择章节信息 (规则结果为String)"},{title:"翻页规则",namespace:"ruleToc",id:"nextTocUrl",type:"String",hint:"选择目录下一页链接 (规则结果为List或String)"}]},content:{name:"正文",children:[{title:"脚本注入",namespace:"ruleContent",id:"webJs",type:"String",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"正文规则",namespace:"ruleContent",id:"content",type:"String",hint:"选择正文内容 (规则结果为String)"},{title:"翻页规则",namespace:"ruleContent",id:"nextContentUrl",type:"String",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{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:"payAction",type:"String",hint:"填写JavaScript 返回购买链接或者调用购买接口"},{title:"图片解密",namespace:"ruleContent",id:"imageDecode",type:"String",hint:"填写JavaScript 返回解密图片的bytes "}]},other:{name:"其他",children:[{title:"启用搜索",id:"enabled",type:"Boolean"},{title:"启用发现",id:"enabledExplore",type:"Boolean"},{title:"Cookie",id:"enabledCookieJar",type:"Boolean"},{title:"搜索权重",id:"weight",type:"Number"},{title:"排序编号",id:"customOrder",type:"Number"}]}},co={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链接加载白名单,英文逗号隔开"}]},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"}]}};const ao={class:"editor"},uo={__name:"SourceEditor",setup(e){const t=P({});return/bookSource/i.test(location.href)?(t.value=lo,document.title="书源管理"):(t.value=co,document.title="订阅源管理"),(o,s)=>{const n=io,r=ro,a=Mt;return l(),U("div",ao,[p(n,{class:"left",config:i(t)},null,8,["config"]),p(r),p(a,{class:"right"})])}}},ae=D(uo,[["__scopeId","data-v-e99e7704"]]),ve=[{path:"/bookSource",name:"book-home",component:ae},{path:"/rssSource",name:"rss-home",component:ae}];ne({history:re(),routes:ve});const Ce=ne({history:re(),routes:ye.concat(ve)});Ce.afterEach(e=>{e.name=="shelf"&&(document.title="书架")});Me(Ye).use(Ht).use(Ce).mount("#app");oe(()=>import("./config-0e6be994.js"),["./config-0e6be994.js","./vendor-93648100.js","./vendor-6f0d1692.css","./config-811f2a0b.css"],import.meta.url);export{K as A,D as _,ho as u};
diff --git a/app/src/main/assets/web/vue/assets/index-f4927a88.js b/app/src/main/assets/web/vue/assets/index-f4927a88.js
deleted file mode 100644
index 69162ee48..000000000
--- a/app/src/main/assets/web/vue/assets/index-f4927a88.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import{r as we,o as l,c as b,a as ne,b as re,d as U,e as p,w as a,f as m,u as i,l as q,g,F as L,E as xe,h as ae,p as Be,i as Ue,j as Ee,k as C,m as ue,s as Q,t as G,n as de,q as Ve,v as R,x as te,y as K,z as pe,A as Ie,B as Ne,C as se,V as Te,D as X,G as he,H as $e,I as _e,J as Le,K as N,L as Re,M as J,N as ge,O as me,P as Oe,Q as z,R as Pe,S as De,T as Je,U as Ae,W as Ke,X as je,Y as He,Z as Fe,_ as qe,$ as ze,a0 as Me}from"./vendor-bf77f5c0.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))s(n);new MutationObserver(n=>{for(const r of n)if(r.type==="childList")for(const u of r.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function o(n){const r={};return n.integrity&&(r.integrity=n.integrity),n.referrerPolicy&&(r.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?r.credentials="include":n.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(n){if(n.ep)return;n.ep=!0;const r=o(n);fetch(n.href,r)}})();const We="modulepreload",Ge=function(e,t){return new URL(e,t).href},ie={},oe=function(t,o,s){if(!o||o.length===0)return t();const n=document.getElementsByTagName("link");return Promise.all(o.map(r=>{if(r=Ge(r,s),r in ie)return;ie[r]=!0;const u=r.endsWith(".css"),w=u?'[rel="stylesheet"]':"";if(!!s)for(let x=n.length-1;x>=0;x--){const c=n[x];if(c.href===r&&(!u||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${r}"]${w}`))return;const y=document.createElement("link");if(y.rel=u?"stylesheet":We,u||(y.as="script",y.crossOrigin=""),y.href=r,document.head.appendChild(y),u)return new Promise((x,c)=>{y.addEventListener("load",x),y.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${r}`)))})})).then(()=>t())},O=(e,t)=>{const o=e.__vccOpts||e;for(const[s,n]of t)o[s]=n;return o},Qe={};function Xe(e,t){const o=we("router-view");return l(),b(o)}const Ye=O(Qe,[["render",Xe]]),Se=[{path:"/",name:"shelf",component:()=>oe(()=>import("./BookShelf-c2410b56.js"),["./BookShelf-c2410b56.js","./vendor-bf77f5c0.js","./vendor-6f0d1692.css","./el-loading-b910ac83.js","./el-loading-d0f2d079.css","./BookShelf-f637327a.css"],import.meta.url)},{path:"/chapter",name:"chapter",component:()=>oe(()=>import("./BookChapter-6faa194e.js"),["./BookChapter-6faa194e.js","./el-loading-b910ac83.js","./el-loading-d0f2d079.css","./vendor-bf77f5c0.js","./vendor-6f0d1692.css","./BookChapter-468f2c8e.css"],import.meta.url)}];ne({history:re(),routes:Se});const T=e=>(Be("data-v-aee57c78"),e=e(),Ue(),e),Ze=T(()=>g("br",null,null,-1)),et=T(()=>g("br",null,null,-1)),tt=T(()=>g("br",null,null,-1)),ot=T(()=>g("br",null,null,-1)),nt=T(()=>g("br",null,null,-1)),rt={style:{"margin-top":"20px"}},st=T(()=>g("code",null,"^$()[]{}.?+*|",-1)),it=T(()=>g("br",null,null,-1)),lt=T(()=>g("code",null,"(?s)",-1)),ct=T(()=>g("br",null,null,-1)),at=T(()=>g("code",null,"(?m)",-1)),ut=T(()=>g("br",null,null,-1)),dt=T(()=>g("code",null,"(?i)",-1)),pt=T(()=>g("br",null,null,-1)),ht={__name:"SourceHelp",setup(e){return(t,o)=>{const s=xe,n=ae;return l(),U(L,null,[p(s,{icon:i(q),href:"https://alanskycn.gitee.io/teachme/",target:"_blank"},{default:a(()=>[m("书源制作教程")]),_:1},8,["icon"]),Ze,p(s,{icon:i(q),href:"https://zhuanlan.zhihu.com/p/29436838",target:"_blank"},{default:a(()=>[m("xpath基础教程")]),_:1},8,["icon"]),et,p(s,{icon:i(q),href:"https://zhuanlan.zhihu.com/p/32187820",target:"_blank"},{default:a(()=>[m("xpath高级教程")]),_:1},8,["icon"]),tt,p(s,{icon:i(q),href:"https://www.w3cschool.cn/regex_rmjc",target:"_blank"},{default:a(()=>[m("正则表达式教程")]),_:1},8,["icon"]),ot,p(s,{icon:i(q),href:"https://regexr-cn.com/",target:"_blank"},{default:a(()=>[m("正则表达式在线验证工具")]),_:1},8,["icon"]),nt,g("div",rt,[g("span",null,[p(n,null,{default:a(()=>[st,m(" 这些是Java正则特殊符号,匹配需转义")]),_:1})]),it,g("span",null,[p(n,null,{default:a(()=>[lt,m(" 前缀表示跨行解析")]),_:1})]),ct,g("span",null,[p(n,null,{default:a(()=>[at,m(" 前缀表示逐行匹配")]),_:1})]),ut,g("span",null,[p(n,null,{default:a(()=>[dt,m(" 前缀表示忽略大小写")]),_:1})]),pt])],64)}}},_t=O(ht,[["__scopeId","data-v-aee57c78"]]),gt=1e3,E=Ee.create({baseURL:location.origin,timeout:120*gt}),{hostname:ye,port:fe}=new URL(location.href),mt=/source/i.test(location.href),St=e=>{throw mt&&C({message:"后端错误,检查网络或者阅读app",type:"error"}),e};E.interceptors.response.use(e=>e,St);const yt=()=>E.get("/getReadConfig"),ft=e=>E.post("/saveReadConfig",e),bt=e=>E.post("/saveBookProgress",e),kt=()=>E.get("/getBookshelf"),vt=e=>E.get("/getChapterList?url="+encodeURIComponent(e)),Ct=(e,t)=>E.get("/getBookContent?url="+encodeURIComponent(e)+"&index="+t),wt=(e,t,o)=>{const s=`ws://${ye}:${Number(fe)+1}/searchBook`,n=new WebSocket(s);n.onopen=()=>{n.send(`{"key":"${e}"}`)},n.onmessage=({data:r})=>t(r),n.onclose=()=>{o()}},xt=e=>E.post("/saveBook",e),Bt=e=>E.post("/deleteBook",e),W=/bookSource/i.test(location.href),Ut=()=>W?E.get("getBookSources"):E.get("getRssSources"),Et=e=>W?E.post("saveBookSource",e):E.post("saveRssSource",e),Vt=e=>W?E.post("saveBookSources",e):E.post("saveRssSources",e),It=e=>W?E.post("deleteBookSources",e):E.post("deleteRssSources",e),Nt=(e,t,o,s)=>{const n=`ws://${ye}:${Number(fe)+1}/${W?"bookSource":"rssSource"}Debug`,r=new WebSocket(n);r.onopen=()=>{r.send(JSON.stringify({tag:e,key:t}))},r.onmessage=({data:u})=>o(u),r.onclose=()=>{C({message:"调试已关闭!",type:"info"}),s()}},A={getReadConfig:yt,saveReadConfig:ft,saveBookProcess:bt,getBookShelf:kt,getChapterList:vt,getBookContent:Ct,search:wt,saveBook:xt,deleteBook:Bt,getSources:Ut,saveSources:Vt,saveSource:Et,deleteSource:It,debug:Nt},M=e=>e==null||e.length===0||/^\s+$/.test(e),be=e=>"bookSourceName"in e,Tt=e=>be(e)?!M(e.bookSourceName)&&!M(e.bookSourceUrl)&&!M(e.bookSourceType):!M(e.sourceName)&&!M(e.sourceName),$t=(e,t)=>{var o,s,n,r,u,w,S,y;return be(e)?(((o=e.bookSourceName)==null?void 0:o.includes(t))||((s=e.bookSourceUrl)==null?void 0:s.includes(t))||((n=e.bookSourceGroup)==null?void 0:n.includes(t))||((r=e.bookSourceComment)==null?void 0:r.includes(t)))??!1:(((u=e.sourceName)==null?void 0:u.includes(t))||((w=e.sourceUrl)==null?void 0:w.includes(t))||((S=e.sourceGroup)==null?void 0:S.includes(t))||((y=e.sourceComment)==null?void 0:y.includes(t)))??!1},Lt={ruleSearch:{},ruleBookInfo:{},ruleToc:{},ruleContent:{},ruleReview:{},ruleExplore:{}},Rt={},P=/bookSource/i.test(location.href),le=P?Lt:Rt,j=ue("source",{state:()=>({bookSources:[],rssSources:[],errorPushSources:[],currentSource:le,currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},isDebuging:!1}),getters:{sources:e=>P?e.bookSources:e.rssSources,currentSourceUrl:e=>P?e.currentSource.bookSourceUrl:e.currentSource.sourceUrl,searchKey:e=>P?e.currentSource.ruleSearch.checkKeyWord||"我的":null},actions:{startDebug(){this.currentTab="editDebug",this.isDebuging=!0},debugFinish(){this.isDebuging=!1},saveSources(e){P?this.bookSources=e:this.rssSources=e},deleteSources(e){let t=P?this.bookSources:this.rssSources;e.forEach(o=>{let s=t.indexOf(o);s>-1&&t.splice(s,1)})},saveCurrentSource(){let e=this.currentSource,t,o;P?(t=this.bookSources,o="bookSourceUrl"):(t=this.rssSources,o="sourceUrl");let s=t.findIndex(n=>n[o]===e[o]);e=JSON.parse(JSON.stringify(e)),s>-1?t.splice(s,1,e):t.push(e)},changeCurrentSource(e){const t=JSON.stringify(e);this.currentSource=JSON.parse(t)},async setPushReturnSources(e){P?this.errorPushSources=this.sources.filter(t=>e.every(o=>o.bookSourceUrl!==t.bookSourceUrl)):this.errorPushSources=this.sources.filter(t=>e.every(o=>o.sourceUrl!==t.sourceUrl))},changeTabName(e){this.currentTab=e,localStorage.setItem("tabName",e)},changeEditTabSource(e){const t=JSON.stringify(e);this.editTabSource=JSON.parse(t)},editHistory(e){let t;if(localStorage.getItem("history"))t=JSON.parse(localStorage.getItem("history")),t.new.push(e),t.new.length>50&&t.new.shift(),t.old.length>50&&t.old.shift(),localStorage.setItem("history",JSON.stringify(t));else{const o={new:[e],old:[]};localStorage.setItem("history",JSON.stringify(o))}},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=le},clearAllSource(){this.bookSources=[],this.rssSources=[]}}});const Ot={__name:"SourceItem",props:["source"],setup(e){const t=j(),{errorPushSources:o}=Q(t),s=n=>{t.changeCurrentSource(n)};return(n,r)=>{const u=Ve;return l(),b(u,{size:"large",border:"",label:e.source,class:de({error:i(o).includes(e.source)}),onChange:r[0]||(r[0]=w=>s(e.source))},{default:a(()=>[m(G(e.source.bookSourceName||e.source.sourceName),1)]),_:1},8,["label","class"])}}},Pt=O(Ot,[["__scopeId","data-v-d4c4e88b"]]);const Dt={class:"tool"},Jt={__name:"SourceList",setup(e){const t=j(),o=R([]),s=R(""),{sources:n}=Q(t),r=te(()=>/bookSource/.test(window.location.href)),u=()=>{A.deleteSource(o.value).then(({data:c})=>{if(!c.isSuccess)return C.error(c.errorMsg);t.deleteSources(o.value),o.value=[]})},w=()=>{t.clearAllSource(),o.value=[]},S=te(()=>{let c=s.value;return c===""?n.value:n.value.filter(_=>$t(_,c))}),y=()=>{const c=document.createElement("input");c.type="file",c.accept=".json,.txt",c.addEventListener("change",_=>{const k=_.target.files[0];var B=new FileReader;B.readAsText(k),B.onload=()=>{try{const D=JSON.parse(B.result);t.saveSources(D)}catch{C({message:"上传的源格式错误",type:"error"})}}}),c.click()},x=()=>{const c=document.createElement("a");let _=o.value.length===0?S.value:o.value,k=r.value?"BookSource":"RssSource";c.download=`${k}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let B=new Blob([JSON.stringify(_,null,4)],{type:"application/json"});c.href=window.URL.createObjectURL(B),c.click()};return(c,_)=>{const k=X,B=he,D=$e;return l(),U(L,null,[p(k,{modelValue:i(s),"onUpdate:modelValue":_[0]||(_[0]=V=>K(s)?s.value=V:null),class:"search","prefix-icon":i(pe),placeholder:"筛选源"},null,8,["modelValue","prefix-icon"]),g("div",Dt,[p(B,{onClick:y,icon:i(Ie)},{default:a(()=>[m("打开")]),_:1},8,["icon"]),p(B,{disabled:i(S).length===0,onClick:x,icon:i(Ne)},{default:a(()=>[m(" 导出")]),_:1},8,["disabled","icon"]),p(B,{type:"danger",icon:i(se),onClick:u,disabled:i(o).length===0},{default:a(()=>[m("删除")]),_:1},8,["icon","disabled"]),p(B,{type:"danger",icon:i(se),onClick:w,disabled:i(n).length===0},{default:a(()=>[m("清空")]),_:1},8,["icon","disabled"])]),p(D,{id:"source-list",modelValue:i(o),"onUpdate:modelValue":_[1]||(_[1]=V=>K(o)?o.value=V:null)},{default:a(()=>[p(i(Te),{style:{height:"100%","overflow-y":"auto","overflow-x":"hidden"},"data-key":V=>V.bookSourceUrl||V.sourceUrl,"data-sources":i(S),"data-component":Pt,"estimate-size":45},null,8,["data-key","data-sources"])]),_:1},8,["modelValue"])],64)}}},At=O(Jt,[["__scopeId","data-v-76d18c9a"]]);const Kt={__name:"SourceDebug",setup(e){const t=j(),o=R(""),s=R("");_e(()=>{t.isDebuging&&r()});const n=w=>{let S=document.querySelector("#debug-text");S.scrollTop=S.scrollHeight,o.value+=w+`
-`},r=async()=>{o.value="",await A.saveSource(t.currentSource),A.debug(t.currentSourceUrl,s.value||t.searchKey,n,t.debugFinish)},u=te(()=>/bookSource/.test(window.location.href));return(w,S)=>{const y=X;return l(),U(L,null,[i(u)?(l(),b(y,{key:0,id:"debug-key",modelValue:i(s),"onUpdate:modelValue":S[0]||(S[0]=x=>K(s)?s.value=x:null),placeholder:"搜索书名、作者","prefix-icon":i(pe),style:{"padding-bottom":"4px"},onKeydown:Le(r,["enter"])},null,8,["modelValue","prefix-icon","onKeydown"])):N("",!0),p(y,{id:"debug-text",modelValue:i(o),"onUpdate:modelValue":S[1]||(S[1]=x=>K(o)?o.value=x:null),type:"textarea",readonly:"",rows:"29",placeholder:"这里用于输出调试信息"},null,8,["modelValue"])],64)}}},jt=O(Kt,[["__scopeId","data-v-fe904689"]]),ho=ue("book",{state:()=>({connectStatus:"正在连接后端服务器……",connectType:"",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:""},miniInterface:!1,readSettingsVisible:!1}),actions:{setConnectStatus(e){this.connectStatus=e},setConnectType(e){this.connectType=e},setNewConnect(e){this.newConnect=e},addBooks(e){this.shelf=e},setCatalog(e){this.catalog=e},setPopCataVisible(e){this.popCataVisible=e},setContentLoading(e){this.contentLoading=e},setReadingBook(e){this.readingBook=e},setConfig(e){this.config=e},setReadSettingsVisible(e){this.readSettingsVisible=e},setShowContent(e){this.showContent=e},setMiniInterface(e){this.miniInterface=e},async setSearchBooks(e){e.forEach(t=>{this.shelf.find(s=>s.bookUrl==t.bookUrl)===void 0&&this.searchBooks.push(t)})},clearSearchBooks(){this.searchBooks=[]},async saveBookProcess(){var r;if(this.catalog.length==0)return;const{index:e,chapterPos:t,bookName:o,bookAuthor:s}=this.readingBook;let n=(r=this.catalog[e])==null?void 0:r.title;n&&A.saveBookProcess({name:o,author:s,durChapterIndex:e,durChapterPos:t,durChapterTime:new Date().getTime(),durChapterTitle:n})}}}),Ht=Re();const Ft={__name:"SourceJson",setup(e){const t=j(),o=R(""),s=async n=>{try{t.changeEditTabSource(JSON.parse(n))}catch{C({message:"粘贴的源格式错误",type:"error"})}};return _e(async()=>{let n=t.editTabSource;Object.keys(n).length>0?o.value=JSON.stringify(n,null,4):o.value=""}),(n,r)=>{const u=X;return l(),b(u,{id:"source-json",modelValue:i(o),"onUpdate:modelValue":r[0]||(r[0]=w=>K(o)?o.value=w:null),type:"textarea",placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP",rows:"30",onChange:s,style:{"margin-bottom":"4px"}},null,8,["modelValue"])}}},qt=O(Ft,[["__scopeId","data-v-7e91a802"]]);const zt={__name:"SourceTabTools",setup(e){const t=j(),{currentTab:o}=Q(t),s=R([["editTab","编辑源"],["editDebug","调试源"],["editList","源列表"],["editHelp","帮助信息"]]);return(n,r)=>{const u=qt,w=jt,S=At,y=_t,x=ge,c=me;return l(),b(c,{modelValue:i(o),"onUpdate:modelValue":r[0]||(r[0]=_=>K(o)?o.value=_:null)},{default:a(()=>[(l(!0),U(L,null,J(i(s),(_,k)=>(l(),b(x,{key:_[0],name:_[0],label:_[1]},{default:a(()=>[k==0?(l(),b(u,{key:0})):N("",!0),k==1?(l(),b(w,{key:1})):N("",!0),k==2?(l(),b(S,{key:2})):N("",!0),k==3?(l(),b(y,{key:3})):N("",!0)]),_:2},1032,["name","label"]))),128))]),_:1},8,["modelValue"])}}},Mt=O(zt,[["__scopeId","data-v-dcce2457"]]);const Wt={class:"menu flex-column-center"},Gt={class:"hotkeys-header flex-space-between"},Qt=["id"],Xt={key:0},Yt={class:"hotkeys-settings flex-column-center"},Zt={class:"title"},eo={class:"hotkeys-item__content"},to={key:0},oo={key:0},no={__name:"ToolBar",setup(e){const t=j(),o=()=>{const h=C({message:"加载中……",showClose:!0,duration:0});A.getSources().then(({data:d})=>{d.isSuccess?(t.changeTabName("editList"),t.saveSources(d.data),C({message:`成功拉取${d.data.length}条源`,type:"success"})):C({message:d.errorMsg??"后端错误",type:"error"})}).finally(()=>h.close())},s=()=>{let h=t.sources;if(t.changeTabName("editList"),h.length===0)return C({message:"空空如也",type:"info"});C({message:"正在推送中",type:"info"}),A.saveSources(h).then(({data:d})=>{if(d.isSuccess){let v=d.data;if(Array.isArray(v)){let f="";h.length>v.length&&(f=`
-推送失败的源将用红色字体标注!`,t.setPushReturnSources(v)),C({message:`批量推送源到「阅读3.0APP」
-共计: ${h.length} 条
-成功: ${v.length} 条
-失败: ${h.length-v.length} 条${f}`,type:"success"})}}else C({message:`批量推送源失败!
-ErrorMsg: ${d.errorMsg}`,type:"error"})})},n=()=>{t.changeTabName("editTab"),t.changeEditTabSource(t.currentSource)},r=()=>{t.changeCurrentSource(t.editTabSource)},u=()=>{t.editHistoryUndo()},w=()=>{t.clearEdit(),C({message:"已清除",type:"success"})},S=()=>{t.clearEdit(),t.clearAllHistory(),C({message:"已清除所有历史记录",type:"success"})},y=()=>{let h=/bookSource/.test(location.href),d=t.currentSource;Tt(d)?A.saveSource(d).then(({data:v})=>{v.isSuccess?(C({message:`源《${h?d.bookSourceName:d.sourceName}》已成功保存到「阅读3.0APP」`,type:"success"}),t.saveCurrentSource()):C({message:`源《${h?d.bookSourceName:d.sourceName}》保存失败!
-ErrorMsg: ${v.errorMsg}`,type:"error"})}):C({message:"请检查<必填>项是否全部填写",type:"error"})},x=()=>{t.startDebug()},c=R(Array.of({name:"⇈推送源",hotKeys:[],action:s},{name:"⇊拉取源",hotKeys:[],action:o},{name:"⋙生成源",hotKeys:[],action:n},{name:"⋘编辑源",hotKeys:[],action:r},{name:"✗清空表单",hotKeys:[],action:w},{name:"↶撤销操作",hotKeys:[],action:u},{name:"↷重做操作",hotKeys:[],action:S},{name:"⇏调试源",hotKeys:[],action:x},{name:"✓保存源",hotKeys:[],action:y})),_=R(!0),k=R(!1),B=R(-1),D=()=>{k.value=!1};Oe(_,h=>{if(!h)return z.unbind("*");z.unbind(),z("*",d=>{d.preventDefault(),k.value&&B.value>-1&&(c.value[B.value].hotKeys=z.getPressedKeyString())})});const V=h=>{k.value=!0,C({message:"按ESC键或者点击空白处结束录入",type:"info"}),c.value[h].hotKeys=[],B.value=h},F=()=>{_.value=!1;const h=[];c.value.forEach(({hotKeys:d,action:v})=>{z(d.join("+"),f=>{f.preventDefault(),v.call(null)}),h.push(d)}),H(h)},H=h=>{localStorage.setItem("legado_web_hotkeys",JSON.stringify(h))},$=()=>{try{const h=JSON.parse(localStorage.getItem("legado_web_hotkeys"));if(!Array.isArray(h)||h.length==0)return;c.value.forEach((d,v)=>d.hotKeys=h[v]),_.value=!1,F()}catch{C({message:"快捷键配置错误",type:"error"}),localStorage.removeItem("legado_web_hotkeys")}};return Pe(()=>{$()}),(h,d)=>{const v=he,f=ae,Y=Ae;return l(),U(L,null,[g("div",Wt,[(l(!0),U(L,null,J(i(c),I=>(l(),b(v,{size:"large",key:I.name,onClick:I.action},{default:a(()=>[m(G(I.name),1)]),_:2},1032,["onClick"]))),128)),p(v,{size:"large",onClick:d[0]||(d[0]=()=>_.value=!0)},{default:a(()=>[m("快捷键")]),_:1})]),p(Y,{modelValue:i(_),"onUpdate:modelValue":d[1]||(d[1]=I=>K(_)?_.value=I:null),"show-close":!1,"before-close":D},{header:a(({titleClass:I,titleId:Z})=>[g("div",Gt,[g("div",{id:Z,class:de(I)},[m(" 快捷键设置 "),i(k)?(l(),U("span",Xt,[p(f,null,{default:a(()=>[m(" / 录入中 ")]),_:1})])):N("",!0)],10,Qt),p(v,{disabled:i(k),onClick:F,icon:i(De)},{default:a(()=>[m("保存")]),_:1},8,["disabled","icon"])])]),default:a(()=>[g("div",Yt,[(l(!0),U(L,null,J(i(c),(I,Z)=>(l(),U("div",{key:I.name,class:"hotkeys-item flex-space-between"},[g("span",Zt,[p(f,null,{default:a(()=>[m(G(I.name),1)]),_:2},1024)]),g("div",eo,[(l(!0),U(L,null,J(I.hotKeys,(ee,Ce)=>(l(),U("div",{key:ee},[g("kbd",null,G(ee),1),Ce+1[m("+")]),_:1})])):N("",!0)]))),128)),I.hotKeys.length==0?(l(),U("span",oo,"未设置")):N("",!0)]),p(v,{disabled:i(k),text:"",icon:i(Je),onClick:ee=>V(Z)},{default:a(()=>[m("编辑")]),_:2},1032,["disabled","icon","onClick"])]))),128))])]),_:1},8,["modelValue"])],64)}}},ro=O(no,[["__scopeId","data-v-dc7cd0f9"]]);const so={__name:"SourceTabForm",props:["config"],setup(e){const t=j(),{currentSource:o}=Q(t);return(s,n)=>{const r=X,u=Ke,w=je,S=He,y=Fe,x=qe,c=ze,_=ge,k=me;return l(),b(k,{id:"source-edit"},{default:a(()=>[(l(!0),U(L,null,J(Object.values(e.config),({name:B,children:D})=>(l(),b(_,{label:B,key:B},{default:a(()=>[p(c,{"label-position":"right","label-width":"5em"},{default:a(()=>[(l(!0),U(L,null,J(D,({type:V,title:F,namespace:H,id:$,array:h,hint:d,required:v})=>(l(),b(x,{label:F,key:F,required:v},{default:a(()=>[V=="String"&&typeof H>"u"?(l(),b(r,{key:0,type:"textarea",modelValue:i(o)[$],"onUpdate:modelValue":f=>i(o)[$]=f,placeholder:d,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),V=="String"&&typeof H<"u"?(l(),b(r,{key:1,type:"textarea",modelValue:i(o)[H][$],"onUpdate:modelValue":f=>i(o)[H][$]=f,placeholder:d,autosize:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):N("",!0),V=="Boolean"?(l(),b(u,{key:2,modelValue:i(o)[$],"onUpdate:modelValue":f=>i(o)[$]=f},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),V=="Number"?(l(),b(w,{key:3,modelValue:i(o)[$],"onUpdate:modelValue":f=>i(o)[$]=f,min:0},null,8,["modelValue","onUpdate:modelValue"])):N("",!0),V=="Array"?(l(),b(y,{key:4,modelValue:i(o)[$],"onUpdate:modelValue":f=>i(o)[$]=f},{default:a(()=>[(l(!0),U(L,null,J(h,(f,Y)=>(l(),b(S,{value:Y,key:f,label:f},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):N("",!0)]),_:2},1032,["label","required"]))),128))]),_:2},1024)]),_:2},1032,["label"]))),128))]),_:1})}}},io=O(so,[["__scopeId","data-v-2cfb5302"]]),lo={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:"variableComment",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:"concurrentRate",type:"String",hint:"并发率"},{title:"js库",id:"jsLib",type:"String",hint:"js库"},{title:"请求头",id:"header",type:"String",hint:"客户端标识"},{title:"链接验证",id:"bookUrlPattern",type:"String",hint:"当详情页URL与源URL的域名不一致时有效,用于添加网址"}]},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:`内容能显示在发现菜单
-每行一条发现分类(网址域名可省略),例:
-名称1::网址(Url)1
-名称2::网址(Url)2
-...`},{title:"发现筛选",id:"exploreScreen",type:"String",hint:"发现筛选规则"},{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:"下载URL",namespace:"ruleBookInfo",id:"downloadUrls",type:"String",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"},{title:"修改书籍",namespace:"ruleBookInfo",id:"canReName",type:"String",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"}]},directory:{name:"目录",children:[{title:"预处理",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:"isVolume",type:"String",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"收费标识",namespace:"ruleToc",id:"isVip",type:"String",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",namespace:"ruleToc",id:"isPay",type:"String",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"章节信息",namespace:"ruleToc",id:"updateTime",type:"String",hint:"选择章节信息 (规则结果为String)"},{title:"翻页规则",namespace:"ruleToc",id:"nextTocUrl",type:"String",hint:"选择目录下一页链接 (规则结果为List或String)"}]},content:{name:"正文",children:[{title:"脚本注入",namespace:"ruleContent",id:"webJs",type:"String",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"正文规则",namespace:"ruleContent",id:"content",type:"String",hint:"选择正文内容 (规则结果为String)"},{title:"翻页规则",namespace:"ruleContent",id:"nextContentUrl",type:"String",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{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:"payAction",type:"String",hint:"填写JavaScript 返回购买链接或者调用购买接口"},{title:"图片解密",namespace:"ruleContent",id:"imageDecode",type:"String",hint:"填写JavaScript 返回解密图片的bytes "}]},other:{name:"其他",children:[{title:"启用搜索",id:"enabled",type:"Boolean"},{title:"启用发现",id:"enabledExplore",type:"Boolean"},{title:"Cookie",id:"enabledCookieJar",type:"Boolean"},{title:"搜索权重",id:"weight",type:"Number"},{title:"排序编号",id:"customOrder",type:"Number"}]}},co={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链接加载白名单,英文逗号隔开"}]},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"}]}};const ao={class:"editor"},uo={__name:"SourceEditor",setup(e){const t=R({});return/bookSource/i.test(location.href)?(t.value=lo,document.title="书源管理"):(t.value=co,document.title="订阅源管理"),(o,s)=>{const n=io,r=ro,u=Mt;return l(),U("div",ao,[p(n,{class:"left",config:i(t)},null,8,["config"]),p(r),p(u,{class:"right"})])}}},ce=O(uo,[["__scopeId","data-v-e99e7704"]]),ke=[{path:"/bookSource",name:"book-home",component:ce},{path:"/rssSource",name:"rss-home",component:ce}];ne({history:re(),routes:ke});const ve=ne({history:re(),routes:Se.concat(ke)});ve.afterEach(e=>{e.name=="shelf"&&(document.title="书架")});Me(Ye).use(Ht).use(ve).mount("#app");oe(()=>import("./config-752e04be.js"),["./config-752e04be.js","./vendor-bf77f5c0.js","./vendor-6f0d1692.css","./config-811f2a0b.css"],import.meta.url);export{A,O as _,ho as u};
diff --git a/app/src/main/assets/web/vue/assets/vendor-bf77f5c0.js b/app/src/main/assets/web/vue/assets/vendor-93648100.js
similarity index 99%
rename from app/src/main/assets/web/vue/assets/vendor-bf77f5c0.js
rename to app/src/main/assets/web/vue/assets/vendor-93648100.js
index 6ae2e0549..bb18003cf 100644
--- a/app/src/main/assets/web/vue/assets/vendor-bf77f5c0.js
+++ b/app/src/main/assets/web/vue/assets/vendor-93648100.js
@@ -28,4 +28,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
* pinia v2.0.34
* (c) 2023 Eduardo San Martin Morote
* @license MIT
- */let Am;const ba=e=>Am=e,Pm=Symbol();function Kl(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var os;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(os||(os={}));function gI(){const e=ap(!0),t=e.run(()=>V({}));let n=[],r=[];const o=po({install(s){ba(o),o._a=s,s.provide(Pm,o),s.config.globalProperties.$pinia=o,r.forEach(i=>n.push(i)),r=[]},use(s){return!this._a&&!v0?r.push(s):n.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const $m=()=>{};function Xd(e,t,n,r=$m){e.push(t);const o=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),r())};return!n&&Xl()&&Ql(o),o}function no(e,...t){e.slice().forEach(n=>{n(...t)})}function ql(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];Kl(o)&&Kl(r)&&e.hasOwnProperty(n)&&!qe(r)&&!Ln(r)?e[n]=ql(o,r):e[n]=r}return e}const S6=Symbol();function E6(e){return!Kl(e)||!e.hasOwnProperty(S6)}const{assign:or}=Object;function C6(e){return!!(qe(e)&&e.effect)}function O6(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=gr(n.state.value[e]);return or(c,s,Object.keys(i||{}).reduce((f,d)=>(f[d]=po(O(()=>{ba(n);const v=n._s.get(e);return i[d].call(v,v)})),f),{}))}return l=Im(e,u,t,n,r,!0),l}function Im(e,t,n={},r,o,s){let i;const a=or({actions:{}},n),l={deep:!0};let u,c,f=po([]),d=po([]),v;const m=r.state.value[e];!s&&!m&&(r.state.value[e]={}),V({});let p;function y(E){let x;u=c=!1,typeof E=="function"?(E(r.state.value[e]),x={type:os.patchFunction,storeId:e,events:v}):(ql(r.state.value[e],E),x={type:os.patchObject,payload:E,storeId:e,events:v});const F=p=Symbol();Re().then(()=>{p===F&&(u=!0)}),c=!0,no(f,x,r.state.value[e])}const g=s?function(){const{state:x}=n,F=x?x():{};this.$patch(R=>{or(R,F)})}:$m;function w(){i.stop(),f=[],d=[],r._s.delete(e)}function _(E,x){return function(){ba(r);const F=Array.from(arguments),R=[],H=[];function B(K){R.push(K)}function A(K){H.push(K)}no(d,{args:F,name:E,store:C,after:B,onError:A});let $;try{$=x.apply(this&&this.$id===e?this:C,F)}catch(K){throw no(H,K),K}return $ instanceof Promise?$.then(K=>(no(R,K),K)).catch(K=>(no(H,K),Promise.reject(K))):(no(R,$),$)}}const T={_p:r,$id:e,$onAction:Xd.bind(null,d),$patch:y,$reset:g,$subscribe(E,x={}){const F=Xd(f,E,x.detached,()=>R()),R=i.run(()=>ue(()=>r.state.value[e],H=>{(x.flush==="sync"?c:u)&&E({storeId:e,type:os.direct,events:v},H)},or({},l,x)));return F},$dispose:w},C=Et(T);r._s.set(e,C);const P=r._e.run(()=>(i=ap(),i.run(()=>t())));for(const E in P){const x=P[E];if(qe(x)&&!C6(x)||Ln(x))s||(m&&E6(x)&&(qe(x)?x.value=m[E]:ql(x,m[E])),r.state.value[e][E]=x);else if(typeof x=="function"){const F=_(E,x);P[E]=F,a.actions[E]=x}}return or(C,P),or(Ae(C),P),Object.defineProperty(C,"$state",{get:()=>r.state.value[e],set:E=>{y(x=>{or(x,E)})}}),r._p.forEach(E=>{or(C,i.run(()=>E({store:C,app:r._a,pinia:r,options:a})))}),m&&s&&n.hydrate&&n.hydrate(C.$state,m),u=!0,c=!0,C}function yI(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=st();return a=a||u&&Oe(Pm,null),a&&ba(a),a=Am,a._s.has(r)||(s?Im(r,t,o,a):O6(r,o,a)),a._s.get(r)}return i.$id=r,i}function bI(e){{e=Ae(e);const t={};for(const n in e){const r=e[n];(qe(r)||Ln(r))&&(t[n]=jt(e,n))}return t}}var Ja=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1;function Xa(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),function(){n(window.event)})}function Rm(e,t){for(var n=t.slice(0,t.length-1),r=0;r=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}function T6(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,o=!0,s=0;s=0&&Qe.splice(n,1),e.key&&e.key.toLowerCase()==="meta"&&Qe.splice(0,Qe.length),(t===93||t===224)&&(t=91),t in bt){bt[t]=!1;for(var r in xn)xn[r]===t&&(cr[r]=!1)}}function M6(e){if(typeof e>"u")Object.keys(ut).forEach(function(i){return delete ut[i]});else if(Array.isArray(e))e.forEach(function(i){i.key&&Qa(i)});else if(typeof e=="object")e.key&&Qa(e);else if(typeof e=="string"){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?Rm(xn,u):[];ut[d]=ut[d].filter(function(m){var p=o?m.method===o:!0;return!(p&&m.scope===r&&T6(m.mods,v))})}})};function Zd(e,t,n,r){if(t.element===r){var o;if(t.scope===n||t.scope==="all"){o=t.mods.length>0;for(var s in bt)Object.prototype.hasOwnProperty.call(bt,s)&&(!bt[s]&&t.mods.indexOf(+s)>-1||bt[s]&&t.mods.indexOf(+s)===-1)&&(o=!1);(t.mods.length===0&&!bt[16]&&!bt[18]&&!bt[17]&&!bt[91]||o||t.shortcut==="*")&&t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}}function ep(e,t){var n=ut["*"],r=e.keyCode||e.which||e.charCode;if(cr.filter.call(this,e)){if((r===93||r===224)&&(r=91),Qe.indexOf(r)===-1&&r!==229&&Qe.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach(function(m){var p=Ul[m];e[m]&&Qe.indexOf(p)===-1?Qe.push(p):!e[m]&&Qe.indexOf(p)>-1?Qe.splice(Qe.indexOf(p),1):m==="metaKey"&&e[m]&&Qe.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(Qe=Qe.slice(Qe.indexOf(p))))}),r in bt){bt[r]=!0;for(var o in xn)xn[o]===r&&(cr[o]=!0);if(!n)return}for(var s in bt)Object.prototype.hasOwnProperty.call(bt,s)&&(bt[s]=e[Ul[s]]);e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(Qe.indexOf(17)===-1&&Qe.push(17),Qe.indexOf(18)===-1&&Qe.push(18),bt[17]=!0,bt[18]=!0);var i=As();if(n)for(var a=0;a-1}function cr(e,t,n){Qe=[];var r=km(e),o=[],s="all",i=document,a=0,l=!1,u=!0,c="+",f=!1;for(n===void 0&&typeof t=="function"&&(n=t),Object.prototype.toString.call(t)==="[object Object]"&&(t.scope&&(s=t.scope),t.element&&(i=t.element),t.keyup&&(l=t.keyup),t.keydown!==void 0&&(u=t.keydown),t.capture!==void 0&&(f=t.capture),typeof t.splitKey=="string"&&(c=t.splitKey)),typeof t=="string"&&(s=t);a1&&(o=Rm(xn,e)),e=e[e.length-1],e=e==="*"?"*":wa(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});typeof i<"u"&&!L6(i)&&window&&(Mm.push(i),Xa(i,"keydown",function(d){ep(d,i)},f),Qd||(Qd=!0,Xa(window,"focus",function(){Qe=[]},f)),Xa(i,"keyup",function(d){ep(d,i),N6(d)},f))}function F6(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(ut).forEach(function(n){var r=ut[n].filter(function(o){return o.scope===t&&o.shortcut===e});r.forEach(function(o){o&&o.method&&o.method()})})}var Za={getPressedKeyString:$6,setScope:Lm,getScope:As,deleteScope:k6,getPressedKeyCodes:P6,isPressed:R6,filter:I6,trigger:F6,unbind:M6,keyMap:xs,modifier:xn,modifierMap:Ul};for(var el in Za)Object.prototype.hasOwnProperty.call(Za,el)&&(cr[el]=Za[el]);if(typeof window<"u"){var B6=window.hotkeys;cr.noConflict=function(e){return e&&window.hotkeys===cr&&(window.hotkeys=B6),cr},window.hotkeys=cr}export{Q6 as $,Y6 as A,W6 as B,U6 as C,Iv as D,sI as E,We as F,eI as G,nI as H,$p as I,Tt as J,ce as K,gI as L,Oa as M,fI as N,cI as O,ue as P,cr as Q,Ue as R,q6 as S,G6 as T,rI as U,mI as V,uI as W,oI as X,aI as Y,iI as Z,Z6 as _,V6 as a,fb as a0,j6 as a1,ct as a2,fn as a3,Ae as a4,UA as a5,K6 as a6,pI as a7,Re as a8,Xe as a9,Fn as aa,sb as ab,Hv as ac,lI as ad,gr as ae,qr as af,H6 as b,he as c,ne as d,ie as e,Rs as f,fe as g,dI as h,D6 as i,vI as j,hI as k,J6 as l,yI as m,Y as n,I as o,z6 as p,tI as q,Jn as r,bI as s,tt as t,h as u,V as v,pe as w,O as x,qe as y,X6 as z};
+ */let Am;const ba=e=>Am=e,Pm=Symbol();function Kl(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var os;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(os||(os={}));function gI(){const e=ap(!0),t=e.run(()=>V({}));let n=[],r=[];const o=po({install(s){ba(o),o._a=s,s.provide(Pm,o),s.config.globalProperties.$pinia=o,r.forEach(i=>n.push(i)),r=[]},use(s){return!this._a&&!v0?r.push(s):n.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const $m=()=>{};function Xd(e,t,n,r=$m){e.push(t);const o=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),r())};return!n&&Xl()&&Ql(o),o}function no(e,...t){e.slice().forEach(n=>{n(...t)})}function ql(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];Kl(o)&&Kl(r)&&e.hasOwnProperty(n)&&!qe(r)&&!Ln(r)?e[n]=ql(o,r):e[n]=r}return e}const S6=Symbol();function E6(e){return!Kl(e)||!e.hasOwnProperty(S6)}const{assign:or}=Object;function C6(e){return!!(qe(e)&&e.effect)}function O6(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=gr(n.state.value[e]);return or(c,s,Object.keys(i||{}).reduce((f,d)=>(f[d]=po(O(()=>{ba(n);const v=n._s.get(e);return i[d].call(v,v)})),f),{}))}return l=Im(e,u,t,n,r,!0),l}function Im(e,t,n={},r,o,s){let i;const a=or({actions:{}},n),l={deep:!0};let u,c,f=po([]),d=po([]),v;const m=r.state.value[e];!s&&!m&&(r.state.value[e]={}),V({});let p;function y(E){let x;u=c=!1,typeof E=="function"?(E(r.state.value[e]),x={type:os.patchFunction,storeId:e,events:v}):(ql(r.state.value[e],E),x={type:os.patchObject,payload:E,storeId:e,events:v});const F=p=Symbol();Re().then(()=>{p===F&&(u=!0)}),c=!0,no(f,x,r.state.value[e])}const g=s?function(){const{state:x}=n,F=x?x():{};this.$patch(R=>{or(R,F)})}:$m;function w(){i.stop(),f=[],d=[],r._s.delete(e)}function _(E,x){return function(){ba(r);const F=Array.from(arguments),R=[],H=[];function B(K){R.push(K)}function A(K){H.push(K)}no(d,{args:F,name:E,store:C,after:B,onError:A});let $;try{$=x.apply(this&&this.$id===e?this:C,F)}catch(K){throw no(H,K),K}return $ instanceof Promise?$.then(K=>(no(R,K),K)).catch(K=>(no(H,K),Promise.reject(K))):(no(R,$),$)}}const T={_p:r,$id:e,$onAction:Xd.bind(null,d),$patch:y,$reset:g,$subscribe(E,x={}){const F=Xd(f,E,x.detached,()=>R()),R=i.run(()=>ue(()=>r.state.value[e],H=>{(x.flush==="sync"?c:u)&&E({storeId:e,type:os.direct,events:v},H)},or({},l,x)));return F},$dispose:w},C=Et(T);r._s.set(e,C);const P=r._e.run(()=>(i=ap(),i.run(()=>t())));for(const E in P){const x=P[E];if(qe(x)&&!C6(x)||Ln(x))s||(m&&E6(x)&&(qe(x)?x.value=m[E]:ql(x,m[E])),r.state.value[e][E]=x);else if(typeof x=="function"){const F=_(E,x);P[E]=F,a.actions[E]=x}}return or(C,P),or(Ae(C),P),Object.defineProperty(C,"$state",{get:()=>r.state.value[e],set:E=>{y(x=>{or(x,E)})}}),r._p.forEach(E=>{or(C,i.run(()=>E({store:C,app:r._a,pinia:r,options:a})))}),m&&s&&n.hydrate&&n.hydrate(C.$state,m),u=!0,c=!0,C}function yI(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=st();return a=a||u&&Oe(Pm,null),a&&ba(a),a=Am,a._s.has(r)||(s?Im(r,t,o,a):O6(r,o,a)),a._s.get(r)}return i.$id=r,i}function bI(e){{e=Ae(e);const t={};for(const n in e){const r=e[n];(qe(r)||Ln(r))&&(t[n]=jt(e,n))}return t}}var Ja=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1;function Xa(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),function(){n(window.event)})}function Rm(e,t){for(var n=t.slice(0,t.length-1),r=0;r=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}function T6(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,o=!0,s=0;s=0&&Qe.splice(n,1),e.key&&e.key.toLowerCase()==="meta"&&Qe.splice(0,Qe.length),(t===93||t===224)&&(t=91),t in bt){bt[t]=!1;for(var r in xn)xn[r]===t&&(cr[r]=!1)}}function M6(e){if(typeof e>"u")Object.keys(ut).forEach(function(i){return delete ut[i]});else if(Array.isArray(e))e.forEach(function(i){i.key&&Qa(i)});else if(typeof e=="object")e.key&&Qa(e);else if(typeof e=="string"){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?Rm(xn,u):[];ut[d]=ut[d].filter(function(m){var p=o?m.method===o:!0;return!(p&&m.scope===r&&T6(m.mods,v))})}})};function Zd(e,t,n,r){if(t.element===r){var o;if(t.scope===n||t.scope==="all"){o=t.mods.length>0;for(var s in bt)Object.prototype.hasOwnProperty.call(bt,s)&&(!bt[s]&&t.mods.indexOf(+s)>-1||bt[s]&&t.mods.indexOf(+s)===-1)&&(o=!1);(t.mods.length===0&&!bt[16]&&!bt[18]&&!bt[17]&&!bt[91]||o||t.shortcut==="*")&&t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}}function ep(e,t){var n=ut["*"],r=e.keyCode||e.which||e.charCode;if(cr.filter.call(this,e)){if((r===93||r===224)&&(r=91),Qe.indexOf(r)===-1&&r!==229&&Qe.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach(function(m){var p=Ul[m];e[m]&&Qe.indexOf(p)===-1?Qe.push(p):!e[m]&&Qe.indexOf(p)>-1?Qe.splice(Qe.indexOf(p),1):m==="metaKey"&&e[m]&&Qe.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(Qe=Qe.slice(Qe.indexOf(p))))}),r in bt){bt[r]=!0;for(var o in xn)xn[o]===r&&(cr[o]=!0);if(!n)return}for(var s in bt)Object.prototype.hasOwnProperty.call(bt,s)&&(bt[s]=e[Ul[s]]);e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(Qe.indexOf(17)===-1&&Qe.push(17),Qe.indexOf(18)===-1&&Qe.push(18),bt[17]=!0,bt[18]=!0);var i=As();if(n)for(var a=0;a-1}function cr(e,t,n){Qe=[];var r=km(e),o=[],s="all",i=document,a=0,l=!1,u=!0,c="+",f=!1;for(n===void 0&&typeof t=="function"&&(n=t),Object.prototype.toString.call(t)==="[object Object]"&&(t.scope&&(s=t.scope),t.element&&(i=t.element),t.keyup&&(l=t.keyup),t.keydown!==void 0&&(u=t.keydown),t.capture!==void 0&&(f=t.capture),typeof t.splitKey=="string"&&(c=t.splitKey)),typeof t=="string"&&(s=t);a1&&(o=Rm(xn,e)),e=e[e.length-1],e=e==="*"?"*":wa(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});typeof i<"u"&&!L6(i)&&window&&(Mm.push(i),Xa(i,"keydown",function(d){ep(d,i)},f),Qd||(Qd=!0,Xa(window,"focus",function(){Qe=[]},f)),Xa(i,"keyup",function(d){ep(d,i),N6(d)},f))}function F6(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(ut).forEach(function(n){var r=ut[n].filter(function(o){return o.scope===t&&o.shortcut===e});r.forEach(function(o){o&&o.method&&o.method()})})}var Za={getPressedKeyString:$6,setScope:Lm,getScope:As,deleteScope:k6,getPressedKeyCodes:P6,isPressed:R6,filter:I6,trigger:F6,unbind:M6,keyMap:xs,modifier:xn,modifierMap:Ul};for(var el in Za)Object.prototype.hasOwnProperty.call(Za,el)&&(cr[el]=Za[el]);if(typeof window<"u"){var B6=window.hotkeys;cr.noConflict=function(e){return e&&window.hotkeys===cr&&(window.hotkeys=B6),cr},window.hotkeys=cr}export{Q6 as $,qe as A,X6 as B,Y6 as C,W6 as D,sI as E,We as F,U6 as G,Iv as H,nI as I,$p as J,Tt as K,ce as L,gI as M,Oa as N,fI as O,cI as P,ue as Q,cr as R,Ue as S,q6 as T,rI as U,mI as V,uI as W,oI as X,aI as Y,iI as Z,Z6 as _,V6 as a,fb as a0,j6 as a1,ct as a2,fn as a3,Ae as a4,UA as a5,K6 as a6,pI as a7,Re as a8,Xe as a9,Fn as aa,sb as ab,Hv as ac,lI as ad,gr as ae,qr as af,H6 as b,he as c,ne as d,ie as e,Rs as f,fe as g,dI as h,D6 as i,vI as j,hI as k,J6 as l,yI as m,G6 as n,I as o,z6 as p,Y as q,Jn as r,bI as s,tt as t,h as u,eI as v,pe as w,tI as x,V 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 e62f3f389..bdcbaf937 100644
--- a/app/src/main/assets/web/vue/index.html
+++ b/app/src/main/assets/web/vue/index.html
@@ -4,10 +4,10 @@
-
-
+
+
-
+