codex 1.6.19__py3-none-any.whl → 1.7.0a0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of codex might be problematic. Click here for more details.

Files changed (576) hide show
  1. codex/db.py +119 -0
  2. codex/librarian/covers/purge.py +1 -1
  3. codex/librarian/importer/const.py +7 -1
  4. codex/librarian/importer/create_fks.py +5 -2
  5. codex/librarian/importer/importerd.py +17 -12
  6. codex/librarian/importer/moved.py +44 -13
  7. codex/librarian/importer/tasks.py +2 -0
  8. codex/librarian/janitor/cleanup.py +21 -8
  9. codex/librarian/janitor/integrity.py +369 -0
  10. codex/librarian/janitor/janitor.py +50 -15
  11. codex/librarian/janitor/latest_version.py +2 -1
  12. codex/librarian/janitor/status.py +5 -0
  13. codex/librarian/janitor/tasks.py +37 -0
  14. codex/librarian/janitor/update.py +1 -1
  15. codex/librarian/librariand.py +32 -24
  16. codex/librarian/search/optimize.py +43 -0
  17. codex/librarian/search/remove.py +18 -46
  18. codex/librarian/search/searchd.py +14 -17
  19. codex/librarian/search/status.py +2 -1
  20. codex/librarian/search/tasks.py +4 -9
  21. codex/librarian/search/update.py +223 -301
  22. codex/librarian/watchdog/observers.py +2 -1
  23. codex/migrations/0029_comicfts.py +58 -0
  24. codex/migrations/0030_nocase_collation_day_month_indexes_status_types.py +198 -0
  25. codex/models/admin.py +15 -6
  26. codex/models/base.py +9 -0
  27. codex/models/bookmark.py +3 -3
  28. codex/models/comic.py +68 -16
  29. codex/models/functions.py +59 -2
  30. codex/models/groups.py +6 -1
  31. codex/models/library.py +1 -3
  32. codex/models/paths.py +9 -3
  33. codex/serializers/browser/page.py +2 -0
  34. codex/settings/settings.py +16 -17
  35. codex/signals/django_signals.py +4 -10
  36. codex/startup.py +1 -35
  37. codex/static_root/assets/{VCheckbox-Cko1sQK-.170726b3b8a1.js → VCheckbox-CWiqcZ7a.3feebd47daab.js} +1 -1
  38. codex/static_root/assets/VCheckbox-CWiqcZ7a.3feebd47daab.js.br +0 -0
  39. codex/static_root/assets/VCheckbox-CWiqcZ7a.3feebd47daab.js.gz +0 -0
  40. codex/static_root/assets/{VCheckbox-Cko1sQK-.js → VCheckbox-CWiqcZ7a.js} +1 -1
  41. codex/static_root/assets/VCheckbox-CWiqcZ7a.js.br +0 -0
  42. codex/static_root/assets/VCheckbox-CWiqcZ7a.js.gz +0 -0
  43. codex/static_root/assets/{VCheckboxBtn-CO3-aqQL.c9b8062fd66f.js → VCheckboxBtn-Dk3iB62X.bc66d5351baa.js} +1 -1
  44. codex/static_root/assets/VCheckboxBtn-Dk3iB62X.bc66d5351baa.js.br +0 -0
  45. codex/static_root/assets/VCheckboxBtn-Dk3iB62X.bc66d5351baa.js.gz +0 -0
  46. codex/static_root/assets/{VCheckboxBtn-CO3-aqQL.js → VCheckboxBtn-Dk3iB62X.js} +1 -1
  47. codex/static_root/assets/VCheckboxBtn-Dk3iB62X.js.br +0 -0
  48. codex/static_root/assets/VCheckboxBtn-Dk3iB62X.js.gz +0 -0
  49. codex/static_root/assets/{VCombobox-Bjp6lffE.js → VCombobox-D1_KU27A.b1d30587a973.js} +1 -1
  50. codex/static_root/assets/VCombobox-D1_KU27A.b1d30587a973.js.br +0 -0
  51. codex/static_root/assets/VCombobox-D1_KU27A.b1d30587a973.js.gz +0 -0
  52. codex/static_root/assets/{VCombobox-Bjp6lffE.caf59fba486e.js → VCombobox-D1_KU27A.js} +1 -1
  53. codex/static_root/assets/VCombobox-D1_KU27A.js.br +0 -0
  54. codex/static_root/assets/VCombobox-D1_KU27A.js.gz +0 -0
  55. codex/static_root/assets/{VDialog-BkpVGB70.6eea3ca762a5.js → VDialog-GbxvFMMN.594fb3a39ced.js} +1 -1
  56. codex/static_root/assets/VDialog-GbxvFMMN.594fb3a39ced.js.br +0 -0
  57. codex/static_root/assets/VDialog-GbxvFMMN.594fb3a39ced.js.gz +0 -0
  58. codex/static_root/assets/{VDialog-BkpVGB70.js → VDialog-GbxvFMMN.js} +1 -1
  59. codex/static_root/assets/VDialog-GbxvFMMN.js.br +0 -0
  60. codex/static_root/assets/VDialog-GbxvFMMN.js.gz +0 -0
  61. codex/static_root/assets/{VExpansionPanels-Ci2-j8XX.9c55db4ef49e.js → VExpansionPanels-Cywv_bEj.a762e63858e5.js} +1 -1
  62. codex/static_root/assets/VExpansionPanels-Cywv_bEj.a762e63858e5.js.br +0 -0
  63. codex/static_root/assets/VExpansionPanels-Cywv_bEj.a762e63858e5.js.gz +0 -0
  64. codex/static_root/assets/{VExpansionPanels-Ci2-j8XX.js → VExpansionPanels-Cywv_bEj.js} +1 -1
  65. codex/static_root/assets/VExpansionPanels-Cywv_bEj.js.br +0 -0
  66. codex/static_root/assets/VExpansionPanels-Cywv_bEj.js.gz +0 -0
  67. codex/static_root/assets/{VRadioGroup-D3Py5BfQ.a4f25edb86d3.js → VRadioGroup-C0etmxpZ.0eb3009a6300.js} +1 -1
  68. codex/static_root/assets/VRadioGroup-C0etmxpZ.0eb3009a6300.js.br +0 -0
  69. codex/static_root/assets/VRadioGroup-C0etmxpZ.0eb3009a6300.js.gz +0 -0
  70. codex/static_root/assets/{VRadioGroup-D3Py5BfQ.js → VRadioGroup-C0etmxpZ.js} +1 -1
  71. codex/static_root/assets/VRadioGroup-C0etmxpZ.js.br +0 -0
  72. codex/static_root/assets/VRadioGroup-C0etmxpZ.js.gz +0 -0
  73. codex/static_root/assets/{VSelect-DtvZsYZz.e98745d858eb.js → VSelect-txrnRiNJ.a5625760018c.js} +1 -1
  74. codex/static_root/assets/VSelect-txrnRiNJ.a5625760018c.js.br +0 -0
  75. codex/static_root/assets/VSelect-txrnRiNJ.a5625760018c.js.gz +0 -0
  76. codex/static_root/assets/{VSelect-DtvZsYZz.js → VSelect-txrnRiNJ.js} +1 -1
  77. codex/static_root/assets/VSelect-txrnRiNJ.js.br +0 -0
  78. codex/static_root/assets/VSelect-txrnRiNJ.js.gz +0 -0
  79. codex/static_root/assets/{VSelectionControl-D6kmykQW.1e1fda62ceba.js → VSelectionControl-CY6RmcvW.7e8824224f6c.js} +1 -1
  80. codex/static_root/assets/VSelectionControl-CY6RmcvW.7e8824224f6c.js.br +0 -0
  81. codex/static_root/assets/VSelectionControl-CY6RmcvW.7e8824224f6c.js.gz +0 -0
  82. codex/static_root/assets/{VSelectionControl-D6kmykQW.js → VSelectionControl-CY6RmcvW.js} +1 -1
  83. codex/static_root/assets/VSelectionControl-CY6RmcvW.js.br +0 -0
  84. codex/static_root/assets/VSelectionControl-CY6RmcvW.js.gz +0 -0
  85. codex/static_root/assets/{VSlideGroup-UGZWxpF5.360bdefcd215.js → VSlideGroup-DtEQMwY1.6c72325635ed.js} +1 -1
  86. codex/static_root/assets/VSlideGroup-DtEQMwY1.6c72325635ed.js.br +0 -0
  87. codex/static_root/assets/VSlideGroup-DtEQMwY1.6c72325635ed.js.gz +0 -0
  88. codex/static_root/assets/{VSlideGroup-UGZWxpF5.js → VSlideGroup-DtEQMwY1.js} +1 -1
  89. codex/static_root/assets/VSlideGroup-DtEQMwY1.js.br +0 -0
  90. codex/static_root/assets/VSlideGroup-DtEQMwY1.js.gz +0 -0
  91. codex/static_root/assets/{VTable-DXH_yQ0o.1149f56ad566.js → VTable-2af995xo.6c5bf36631b2.js} +1 -1
  92. codex/static_root/assets/VTable-2af995xo.6c5bf36631b2.js.br +0 -0
  93. codex/static_root/assets/VTable-2af995xo.6c5bf36631b2.js.gz +0 -0
  94. codex/static_root/assets/{VTable-DXH_yQ0o.js → VTable-2af995xo.js} +1 -1
  95. codex/static_root/assets/VTable-2af995xo.js.br +0 -0
  96. codex/static_root/assets/VTable-2af995xo.js.gz +0 -0
  97. codex/static_root/assets/{VTextField-Blqy56_L.26d8761e0155.js → VTextField-G6CMj7yO.657a130dd302.js} +1 -1
  98. codex/static_root/assets/VTextField-G6CMj7yO.657a130dd302.js.br +0 -0
  99. codex/static_root/assets/VTextField-G6CMj7yO.657a130dd302.js.gz +0 -0
  100. codex/static_root/assets/{VTextField-Blqy56_L.js → VTextField-G6CMj7yO.js} +1 -1
  101. codex/static_root/assets/VTextField-G6CMj7yO.js.br +0 -0
  102. codex/static_root/assets/VTextField-G6CMj7yO.js.gz +0 -0
  103. codex/static_root/assets/{VWindowItem-C8_ovV7e.afbc08414765.js → VWindowItem-CzoGd6Ul.721e5da11ad4.js} +1 -1
  104. codex/static_root/assets/VWindowItem-CzoGd6Ul.721e5da11ad4.js.br +0 -0
  105. codex/static_root/assets/VWindowItem-CzoGd6Ul.721e5da11ad4.js.gz +0 -0
  106. codex/static_root/assets/{VWindowItem-C8_ovV7e.js → VWindowItem-CzoGd6Ul.js} +1 -1
  107. codex/static_root/assets/VWindowItem-CzoGd6Ul.js.br +0 -0
  108. codex/static_root/assets/VWindowItem-CzoGd6Ul.js.gz +0 -0
  109. codex/static_root/assets/{admin-DTRn8bBs.d031ea42d8d0.js → admin-CsPAIQeG.5175467148a3.js} +1 -1
  110. codex/static_root/assets/admin-CsPAIQeG.5175467148a3.js.br +0 -0
  111. codex/static_root/assets/admin-CsPAIQeG.5175467148a3.js.gz +0 -0
  112. codex/static_root/assets/{admin-DTRn8bBs.js → admin-CsPAIQeG.js} +1 -1
  113. codex/static_root/assets/admin-CsPAIQeG.js.br +0 -0
  114. codex/static_root/assets/admin-CsPAIQeG.js.gz +0 -0
  115. codex/static_root/assets/{admin-drawer-panel-BaXFOcru.b1a44b05f482.js → admin-drawer-panel-BAT7GA64.73a064628c19.js} +11 -11
  116. codex/static_root/assets/admin-drawer-panel-BAT7GA64.73a064628c19.js.br +0 -0
  117. codex/static_root/assets/admin-drawer-panel-BAT7GA64.73a064628c19.js.gz +0 -0
  118. codex/static_root/assets/{admin-drawer-panel-BaXFOcru.js → admin-drawer-panel-BAT7GA64.js} +11 -11
  119. codex/static_root/assets/admin-drawer-panel-BAT7GA64.js.br +0 -0
  120. codex/static_root/assets/admin-drawer-panel-BAT7GA64.js.gz +0 -0
  121. codex/static_root/assets/browser-C18l93yc.923860009ef4.js +1 -0
  122. codex/static_root/assets/browser-C18l93yc.923860009ef4.js.br +0 -0
  123. codex/static_root/assets/browser-C18l93yc.923860009ef4.js.gz +0 -0
  124. codex/static_root/assets/browser-C18l93yc.js +1 -0
  125. codex/static_root/assets/browser-C18l93yc.js.br +0 -0
  126. codex/static_root/assets/browser-C18l93yc.js.gz +0 -0
  127. codex/static_root/assets/browser-DaAqlBYO.708ecf0904bb.css +1 -0
  128. codex/static_root/assets/browser-DaAqlBYO.708ecf0904bb.css.br +0 -0
  129. codex/static_root/assets/browser-DaAqlBYO.708ecf0904bb.css.gz +0 -0
  130. codex/static_root/assets/browser-DaAqlBYO.css +1 -0
  131. codex/static_root/assets/browser-DaAqlBYO.css.br +0 -0
  132. codex/static_root/assets/browser-DaAqlBYO.css.gz +0 -0
  133. codex/static_root/assets/change-password-dialog-BazJdNs9.0a4e02656a35.js +1 -0
  134. codex/static_root/assets/change-password-dialog-BazJdNs9.0a4e02656a35.js.br +0 -0
  135. codex/static_root/assets/change-password-dialog-BazJdNs9.0a4e02656a35.js.gz +0 -0
  136. codex/static_root/assets/change-password-dialog-BazJdNs9.js +1 -0
  137. codex/static_root/assets/change-password-dialog-BazJdNs9.js.br +0 -0
  138. codex/static_root/assets/change-password-dialog-BazJdNs9.js.gz +0 -0
  139. codex/static_root/assets/change-password-dialog-Mlmvz8_4.111421f51e79.css +1 -0
  140. codex/static_root/assets/change-password-dialog-Mlmvz8_4.111421f51e79.css.br +0 -0
  141. codex/static_root/assets/change-password-dialog-Mlmvz8_4.111421f51e79.css.gz +0 -0
  142. codex/static_root/assets/change-password-dialog-Mlmvz8_4.css +1 -0
  143. codex/static_root/assets/change-password-dialog-Mlmvz8_4.css.br +0 -0
  144. codex/static_root/assets/change-password-dialog-Mlmvz8_4.css.gz +0 -0
  145. codex/static_root/assets/{confirm-dialog-D3_s2DQy.9dde66036c72.js → confirm-dialog-CbW3hlOp.9dd39b443c31.js} +1 -1
  146. codex/static_root/assets/confirm-dialog-CbW3hlOp.9dd39b443c31.js.br +0 -0
  147. codex/static_root/assets/confirm-dialog-CbW3hlOp.9dd39b443c31.js.gz +0 -0
  148. codex/static_root/assets/{confirm-dialog-D3_s2DQy.js → confirm-dialog-CbW3hlOp.js} +1 -1
  149. codex/static_root/assets/confirm-dialog-CbW3hlOp.js.br +0 -0
  150. codex/static_root/assets/confirm-dialog-CbW3hlOp.js.gz +0 -0
  151. codex/static_root/assets/{datetime-column-BxC1Li9e.3dc314b3295d.js → datetime-column-uSqKZU37.b157b0743db5.js} +1 -1
  152. codex/static_root/assets/datetime-column-uSqKZU37.b157b0743db5.js.br +0 -0
  153. codex/static_root/assets/datetime-column-uSqKZU37.b157b0743db5.js.gz +0 -0
  154. codex/static_root/assets/{datetime-column-BxC1Li9e.js → datetime-column-uSqKZU37.js} +1 -1
  155. codex/static_root/assets/datetime-column-uSqKZU37.js.br +0 -0
  156. codex/static_root/assets/datetime-column-uSqKZU37.js.gz +0 -0
  157. codex/static_root/assets/{filter-Bzk7x841.d0c3b602e62d.js → filter-CBl5KEsB.845a81573c2e.js} +1 -1
  158. codex/static_root/assets/filter-CBl5KEsB.845a81573c2e.js.br +0 -0
  159. codex/static_root/assets/filter-CBl5KEsB.845a81573c2e.js.gz +0 -0
  160. codex/static_root/assets/{filter-Bzk7x841.js → filter-CBl5KEsB.js} +1 -1
  161. codex/static_root/assets/filter-CBl5KEsB.js.br +0 -0
  162. codex/static_root/assets/filter-CBl5KEsB.js.gz +0 -0
  163. codex/static_root/assets/flag-tab-CT8pqM4r.ecb6eee2e7a0.js +1 -0
  164. codex/static_root/assets/flag-tab-CT8pqM4r.ecb6eee2e7a0.js.br +0 -0
  165. codex/static_root/assets/flag-tab-CT8pqM4r.ecb6eee2e7a0.js.gz +0 -0
  166. codex/static_root/assets/flag-tab-CT8pqM4r.js +1 -0
  167. codex/static_root/assets/flag-tab-CT8pqM4r.js.br +0 -0
  168. codex/static_root/assets/flag-tab-CT8pqM4r.js.gz +0 -0
  169. codex/static_root/assets/{group-tab-5esH4lwX.a81fdd258117.js → group-tab-BOW9kigw.7e5007596367.js} +1 -1
  170. codex/static_root/assets/group-tab-BOW9kigw.7e5007596367.js.br +0 -0
  171. codex/static_root/assets/group-tab-BOW9kigw.7e5007596367.js.gz +0 -0
  172. codex/static_root/assets/{group-tab-5esH4lwX.js → group-tab-BOW9kigw.js} +1 -1
  173. codex/static_root/assets/group-tab-BOW9kigw.js.br +0 -0
  174. codex/static_root/assets/group-tab-BOW9kigw.js.gz +0 -0
  175. codex/static_root/assets/{http-error-BTOBfcGY.52ced6f28420.js → http-error-C6yuLApo.45cf99eb7a70.js} +1 -1
  176. codex/static_root/assets/http-error-C6yuLApo.45cf99eb7a70.js.br +4 -0
  177. codex/static_root/assets/http-error-C6yuLApo.45cf99eb7a70.js.gz +0 -0
  178. codex/static_root/assets/{http-error-BTOBfcGY.js → http-error-C6yuLApo.js} +1 -1
  179. codex/static_root/assets/http-error-C6yuLApo.js.br +4 -0
  180. codex/static_root/assets/http-error-C6yuLApo.js.gz +0 -0
  181. codex/static_root/assets/{library-tab-DiPEdOF7.ece2d642a9dc.js → library-tab-D3WOtpE0.9af34e6e7235.js} +1 -1
  182. codex/static_root/assets/library-tab-D3WOtpE0.9af34e6e7235.js.br +0 -0
  183. codex/static_root/assets/library-tab-D3WOtpE0.9af34e6e7235.js.gz +0 -0
  184. codex/static_root/assets/{library-tab-DiPEdOF7.js → library-tab-D3WOtpE0.js} +1 -1
  185. codex/static_root/assets/library-tab-D3WOtpE0.js.br +0 -0
  186. codex/static_root/assets/library-tab-D3WOtpE0.js.gz +0 -0
  187. codex/static_root/assets/main-CmjU2oTp.6a471f6900e5.js +6 -0
  188. codex/static_root/assets/main-CmjU2oTp.6a471f6900e5.js.br +0 -0
  189. codex/static_root/assets/main-CmjU2oTp.6a471f6900e5.js.gz +0 -0
  190. codex/static_root/assets/main-CmjU2oTp.js +6 -0
  191. codex/static_root/assets/main-CmjU2oTp.js.br +0 -0
  192. codex/static_root/assets/main-CmjU2oTp.js.gz +0 -0
  193. codex/static_root/assets/pager-full-pdf-BH54_5f6.6e92d0555cd7.js +1 -0
  194. codex/static_root/assets/pager-full-pdf-BH54_5f6.6e92d0555cd7.js.br +0 -0
  195. codex/static_root/assets/pager-full-pdf-BH54_5f6.6e92d0555cd7.js.gz +0 -0
  196. codex/static_root/assets/pager-full-pdf-BH54_5f6.js +1 -0
  197. codex/static_root/assets/pager-full-pdf-BH54_5f6.js.br +0 -0
  198. codex/static_root/assets/pager-full-pdf-BH54_5f6.js.gz +0 -0
  199. codex/static_root/assets/{pagination-toolbar-C45-onwe.4722195bb60b.css → pagination-toolbar-DGrxp2OD.css} +1 -1
  200. codex/static_root/assets/pagination-toolbar-DGrxp2OD.css.br +0 -0
  201. codex/static_root/assets/pagination-toolbar-DGrxp2OD.css.gz +0 -0
  202. codex/static_root/assets/{pagination-toolbar-C45-onwe.css → pagination-toolbar-DGrxp2OD.f960a624f04f.css} +1 -1
  203. codex/static_root/assets/pagination-toolbar-DGrxp2OD.f960a624f04f.css.br +0 -0
  204. codex/static_root/assets/pagination-toolbar-DGrxp2OD.f960a624f04f.css.gz +0 -0
  205. codex/static_root/assets/{pagination-toolbar-CkIzuyx1.00c354a82e6e.js → pagination-toolbar-JH3Kbffr.451171f7ac33.js} +1 -1
  206. codex/static_root/assets/pagination-toolbar-JH3Kbffr.451171f7ac33.js.br +0 -0
  207. codex/static_root/assets/pagination-toolbar-JH3Kbffr.451171f7ac33.js.gz +0 -0
  208. codex/static_root/assets/{pagination-toolbar-CkIzuyx1.js → pagination-toolbar-JH3Kbffr.js} +1 -1
  209. codex/static_root/assets/pagination-toolbar-JH3Kbffr.js.br +0 -0
  210. codex/static_root/assets/pagination-toolbar-JH3Kbffr.js.gz +0 -0
  211. codex/static_root/assets/{pdf-doc-BjlRPuf4.0f056fa321b6.js → pdf-doc-BcRNpoaW.882f6e967869.js} +1 -1
  212. codex/static_root/assets/pdf-doc-BcRNpoaW.882f6e967869.js.br +0 -0
  213. codex/static_root/assets/pdf-doc-BcRNpoaW.882f6e967869.js.gz +0 -0
  214. codex/static_root/assets/{pdf-doc-BjlRPuf4.js → pdf-doc-BcRNpoaW.js} +1 -1
  215. codex/static_root/assets/pdf-doc-BcRNpoaW.js.br +0 -0
  216. codex/static_root/assets/pdf-doc-BcRNpoaW.js.gz +0 -0
  217. codex/static_root/assets/reader-DIPRg2VB.900370e097aa.js +2 -0
  218. codex/static_root/assets/reader-DIPRg2VB.900370e097aa.js.br +0 -0
  219. codex/static_root/assets/reader-DIPRg2VB.900370e097aa.js.gz +0 -0
  220. codex/static_root/assets/reader-DIPRg2VB.js +2 -0
  221. codex/static_root/assets/reader-DIPRg2VB.js.br +0 -0
  222. codex/static_root/assets/reader-DIPRg2VB.js.gz +0 -0
  223. codex/static_root/assets/reader-DveZZr9x.7b21b9f8f628.css +1 -0
  224. codex/static_root/assets/reader-DveZZr9x.7b21b9f8f628.css.br +0 -0
  225. codex/static_root/assets/reader-DveZZr9x.7b21b9f8f628.css.gz +0 -0
  226. codex/static_root/assets/reader-DveZZr9x.css +1 -0
  227. codex/static_root/assets/reader-DveZZr9x.css.br +0 -0
  228. codex/static_root/assets/reader-DveZZr9x.css.gz +0 -0
  229. codex/static_root/assets/{relation-chips-CUSatZET.js → relation-chips-3tTlR5QH.71f18bc92adc.js} +1 -1
  230. codex/static_root/assets/relation-chips-3tTlR5QH.71f18bc92adc.js.br +0 -0
  231. codex/static_root/assets/relation-chips-3tTlR5QH.71f18bc92adc.js.gz +0 -0
  232. codex/static_root/assets/{relation-chips-CUSatZET.a58031ff8141.js → relation-chips-3tTlR5QH.js} +1 -1
  233. codex/static_root/assets/relation-chips-3tTlR5QH.js.br +0 -0
  234. codex/static_root/assets/relation-chips-3tTlR5QH.js.gz +0 -0
  235. codex/static_root/assets/{settings-drawer-BSHTAsJ9.js → settings-drawer-BdyFhA_r.151f4c3061ed.js} +2 -2
  236. codex/static_root/assets/settings-drawer-BdyFhA_r.151f4c3061ed.js.br +0 -0
  237. codex/static_root/assets/settings-drawer-BdyFhA_r.151f4c3061ed.js.gz +0 -0
  238. codex/static_root/assets/{settings-drawer-BSHTAsJ9.1d07ce084fc9.js → settings-drawer-BdyFhA_r.js} +2 -2
  239. codex/static_root/assets/settings-drawer-BdyFhA_r.js.br +0 -0
  240. codex/static_root/assets/settings-drawer-BdyFhA_r.js.gz +0 -0
  241. codex/static_root/assets/stats-tab-DeKjwvmh.7557c71b4cfa.js +1 -0
  242. codex/static_root/assets/stats-tab-DeKjwvmh.7557c71b4cfa.js.br +0 -0
  243. codex/static_root/assets/stats-tab-DeKjwvmh.7557c71b4cfa.js.gz +0 -0
  244. codex/static_root/assets/stats-tab-DeKjwvmh.js +1 -0
  245. codex/static_root/assets/stats-tab-DeKjwvmh.js.br +0 -0
  246. codex/static_root/assets/stats-tab-DeKjwvmh.js.gz +0 -0
  247. codex/static_root/assets/{stats-tab-BXGisn5N.9b7a71e7fe28.css → stats-tab-DpfGsVX3.1cb66f2649a9.css} +1 -1
  248. codex/static_root/assets/stats-tab-DpfGsVX3.1cb66f2649a9.css.br +0 -0
  249. codex/static_root/assets/stats-tab-DpfGsVX3.1cb66f2649a9.css.gz +0 -0
  250. codex/static_root/assets/{stats-tab-BXGisn5N.css → stats-tab-DpfGsVX3.css} +1 -1
  251. codex/static_root/assets/stats-tab-DpfGsVX3.css.br +0 -0
  252. codex/static_root/assets/stats-tab-DpfGsVX3.css.gz +0 -0
  253. codex/static_root/assets/{task-tab-NORFAa9p.97e07e366ddd.js → task-tab-C8D0qRP_.d4ab174c69a3.js} +1 -1
  254. codex/static_root/assets/task-tab-C8D0qRP_.d4ab174c69a3.js.br +0 -0
  255. codex/static_root/assets/task-tab-C8D0qRP_.d4ab174c69a3.js.gz +0 -0
  256. codex/static_root/assets/{task-tab-NORFAa9p.js → task-tab-C8D0qRP_.js} +1 -1
  257. codex/static_root/assets/task-tab-C8D0qRP_.js.br +0 -0
  258. codex/static_root/assets/task-tab-C8D0qRP_.js.gz +0 -0
  259. codex/static_root/assets/unauthorized-BHgBRF4z.8e5c1b9e52b0.js +1 -0
  260. codex/static_root/assets/unauthorized-BHgBRF4z.8e5c1b9e52b0.js.br +0 -0
  261. codex/static_root/assets/unauthorized-BHgBRF4z.8e5c1b9e52b0.js.gz +0 -0
  262. codex/static_root/assets/unauthorized-BHgBRF4z.js +1 -0
  263. codex/static_root/assets/unauthorized-BHgBRF4z.js.br +0 -0
  264. codex/static_root/assets/unauthorized-BHgBRF4z.js.gz +0 -0
  265. codex/static_root/assets/{unauthorized-muDsv-rC.css → unauthorized-BjhIc97q.728511c92cd0.css} +1 -1
  266. codex/static_root/assets/unauthorized-BjhIc97q.728511c92cd0.css.br +0 -0
  267. codex/static_root/assets/unauthorized-BjhIc97q.728511c92cd0.css.gz +0 -0
  268. codex/static_root/assets/{unauthorized-muDsv-rC.2166ec8b3a32.css → unauthorized-BjhIc97q.css} +1 -1
  269. codex/static_root/assets/unauthorized-BjhIc97q.css.br +0 -0
  270. codex/static_root/assets/unauthorized-BjhIc97q.css.gz +0 -0
  271. codex/static_root/assets/{user-tab-CHbyN1EW.e7206db08680.js → user-tab-BU31Z92y.35613c713faf.js} +1 -1
  272. codex/static_root/assets/user-tab-BU31Z92y.35613c713faf.js.br +0 -0
  273. codex/static_root/assets/user-tab-BU31Z92y.35613c713faf.js.gz +0 -0
  274. codex/static_root/assets/{user-tab-CHbyN1EW.js → user-tab-BU31Z92y.js} +1 -1
  275. codex/static_root/assets/user-tab-BU31Z92y.js.br +0 -0
  276. codex/static_root/assets/user-tab-BU31Z92y.js.gz +0 -0
  277. codex/static_root/js/choices-admin.8aa64c911203.json +1 -0
  278. codex/static_root/js/choices-admin.8aa64c911203.json.br +0 -0
  279. codex/static_root/js/choices-admin.8aa64c911203.json.gz +0 -0
  280. codex/static_root/js/choices-admin.json +1 -1
  281. codex/static_root/js/choices-admin.json.br +0 -0
  282. codex/static_root/js/choices-admin.json.gz +0 -0
  283. codex/static_root/manifest.45cb46e19686.json +635 -0
  284. codex/static_root/manifest.45cb46e19686.json.br +0 -0
  285. codex/static_root/manifest.45cb46e19686.json.gz +0 -0
  286. codex/static_root/manifest.json +248 -248
  287. codex/static_root/manifest.json.br +0 -0
  288. codex/static_root/manifest.json.gz +0 -0
  289. codex/static_root/staticfiles.json +1 -1
  290. codex/status_controller.py +10 -4
  291. codex/views/admin/tasks.py +46 -40
  292. codex/views/auth.py +15 -4
  293. codex/views/browser/annotations.py +94 -51
  294. codex/views/browser/base.py +1 -2
  295. codex/views/browser/browser.py +52 -21
  296. codex/views/browser/cover.py +8 -4
  297. codex/views/browser/filters/annotations.py +28 -6
  298. codex/views/browser/filters/search/__init__.py +1 -0
  299. codex/views/browser/filters/search/aliases.py +81 -0
  300. codex/views/browser/filters/search/field/__init__.py +1 -0
  301. codex/views/browser/filters/search/field/column.py +53 -0
  302. codex/views/browser/filters/search/field/expression.py +177 -0
  303. codex/views/browser/filters/search/field/filter.py +70 -0
  304. codex/views/browser/filters/search/field/optimize.py +71 -0
  305. codex/views/browser/filters/search/field/parse.py +187 -0
  306. codex/views/browser/filters/search/fts.py +38 -0
  307. codex/views/browser/filters/search/parse.py +220 -0
  308. codex/views/browser/order_by.py +8 -2
  309. codex/views/browser/page_in_bounds.py +88 -0
  310. codex/views/browser/paginate.py +28 -113
  311. codex/views/const.py +0 -1
  312. codex/views/opds/v1/feed.py +2 -1
  313. codex/views/opds/v2/feed.py +2 -1
  314. codex/views/opds/v2/links.py +1 -1
  315. codex/views/reader/books.py +1 -1
  316. codex/views/reader/page.py +3 -3
  317. {codex-1.6.19.dist-info → codex-1.7.0a0.dist-info}/METADATA +18 -10
  318. {codex-1.6.19.dist-info → codex-1.7.0a0.dist-info}/RECORD +321 -372
  319. codex/_vendor/__init__.py +0 -0
  320. codex/_vendor/django_haystack-3.2.1.dist-info/AUTHORS +0 -127
  321. codex/_vendor/django_haystack-3.2.1.dist-info/INSTALLER +0 -1
  322. codex/_vendor/django_haystack-3.2.1.dist-info/LICENSE +0 -31
  323. codex/_vendor/django_haystack-3.2.1.dist-info/METADATA +0 -98
  324. codex/_vendor/django_haystack-3.2.1.dist-info/RECORD +0 -97
  325. codex/_vendor/django_haystack-3.2.1.dist-info/REQUESTED +0 -0
  326. codex/_vendor/django_haystack-3.2.1.dist-info/WHEEL +0 -5
  327. codex/_vendor/django_haystack-3.2.1.dist-info/top_level.txt +0 -1
  328. codex/_vendor/haystack/__init__.py +0 -80
  329. codex/_vendor/haystack/admin.py +0 -163
  330. codex/_vendor/haystack/apps.py +0 -31
  331. codex/_vendor/haystack/backends/__init__.py +0 -1109
  332. codex/_vendor/haystack/backends/elasticsearch2_backend.py +0 -390
  333. codex/_vendor/haystack/backends/elasticsearch5_backend.py +0 -483
  334. codex/_vendor/haystack/backends/elasticsearch7_backend.py +0 -586
  335. codex/_vendor/haystack/backends/elasticsearch_backend.py +0 -1141
  336. codex/_vendor/haystack/backends/simple_backend.py +0 -132
  337. codex/_vendor/haystack/backends/solr_backend.py +0 -991
  338. codex/_vendor/haystack/backends/whoosh_backend.py +0 -1104
  339. codex/_vendor/haystack/constants.py +0 -57
  340. codex/_vendor/haystack/exceptions.py +0 -57
  341. codex/_vendor/haystack/fields.py +0 -562
  342. codex/_vendor/haystack/forms.py +0 -135
  343. codex/_vendor/haystack/generic_views.py +0 -141
  344. codex/_vendor/haystack/indexes.py +0 -548
  345. codex/_vendor/haystack/inputs.py +0 -169
  346. codex/_vendor/haystack/management/__init__.py +0 -0
  347. codex/_vendor/haystack/management/commands/__init__.py +0 -0
  348. codex/_vendor/haystack/management/commands/build_solr_schema.py +0 -187
  349. codex/_vendor/haystack/management/commands/clear_index.py +0 -67
  350. codex/_vendor/haystack/management/commands/haystack_info.py +0 -22
  351. codex/_vendor/haystack/management/commands/rebuild_index.py +0 -65
  352. codex/_vendor/haystack/management/commands/update_index.py +0 -438
  353. codex/_vendor/haystack/manager.py +0 -105
  354. codex/_vendor/haystack/models.py +0 -257
  355. codex/_vendor/haystack/panels.py +0 -89
  356. codex/_vendor/haystack/query.py +0 -771
  357. codex/_vendor/haystack/routers.py +0 -14
  358. codex/_vendor/haystack/signals.py +0 -88
  359. codex/_vendor/haystack/templates/panels/haystack.html +0 -33
  360. codex/_vendor/haystack/templates/search_configuration/schema.xml +0 -1056
  361. codex/_vendor/haystack/templates/search_configuration/solrconfig.xml +0 -1446
  362. codex/_vendor/haystack/templatetags/__init__.py +0 -0
  363. codex/_vendor/haystack/templatetags/highlight.py +0 -131
  364. codex/_vendor/haystack/templatetags/more_like_this.py +0 -119
  365. codex/_vendor/haystack/urls.py +0 -5
  366. codex/_vendor/haystack/utils/__init__.py +0 -84
  367. codex/_vendor/haystack/utils/app_loading.py +0 -34
  368. codex/_vendor/haystack/utils/geo.py +0 -71
  369. codex/_vendor/haystack/utils/highlighting.py +0 -165
  370. codex/_vendor/haystack/utils/loading.py +0 -374
  371. codex/_vendor/haystack/utils/log.py +0 -21
  372. codex/_vendor/haystack/version.py +0 -16
  373. codex/_vendor/haystack/views.py +0 -253
  374. codex/integrity.py +0 -492
  375. codex/librarian/search/merge.py +0 -86
  376. codex/librarian/search/version.py +0 -63
  377. codex/search/__init__.py +0 -1
  378. codex/search/backend.py +0 -524
  379. codex/search/backend_search.py +0 -229
  380. codex/search/engine.py +0 -33
  381. codex/search/indexes.py +0 -79
  382. codex/search/query.py +0 -67
  383. codex/search/writing.py +0 -180
  384. codex/static_root/assets/VCheckbox-Cko1sQK-.170726b3b8a1.js.br +0 -0
  385. codex/static_root/assets/VCheckbox-Cko1sQK-.170726b3b8a1.js.gz +0 -0
  386. codex/static_root/assets/VCheckbox-Cko1sQK-.js.br +0 -0
  387. codex/static_root/assets/VCheckbox-Cko1sQK-.js.gz +0 -0
  388. codex/static_root/assets/VCheckboxBtn-CO3-aqQL.c9b8062fd66f.js.br +0 -0
  389. codex/static_root/assets/VCheckboxBtn-CO3-aqQL.c9b8062fd66f.js.gz +0 -0
  390. codex/static_root/assets/VCheckboxBtn-CO3-aqQL.js.br +0 -0
  391. codex/static_root/assets/VCheckboxBtn-CO3-aqQL.js.gz +0 -0
  392. codex/static_root/assets/VCombobox-Bjp6lffE.caf59fba486e.js.br +0 -0
  393. codex/static_root/assets/VCombobox-Bjp6lffE.caf59fba486e.js.gz +0 -0
  394. codex/static_root/assets/VCombobox-Bjp6lffE.js.br +0 -0
  395. codex/static_root/assets/VCombobox-Bjp6lffE.js.gz +0 -0
  396. codex/static_root/assets/VDialog-BkpVGB70.6eea3ca762a5.js.br +0 -0
  397. codex/static_root/assets/VDialog-BkpVGB70.6eea3ca762a5.js.gz +0 -0
  398. codex/static_root/assets/VDialog-BkpVGB70.js.br +0 -0
  399. codex/static_root/assets/VDialog-BkpVGB70.js.gz +0 -0
  400. codex/static_root/assets/VExpansionPanels-Ci2-j8XX.9c55db4ef49e.js.br +0 -0
  401. codex/static_root/assets/VExpansionPanels-Ci2-j8XX.9c55db4ef49e.js.gz +0 -0
  402. codex/static_root/assets/VExpansionPanels-Ci2-j8XX.js.br +0 -0
  403. codex/static_root/assets/VExpansionPanels-Ci2-j8XX.js.gz +0 -0
  404. codex/static_root/assets/VRadioGroup-D3Py5BfQ.a4f25edb86d3.js.br +0 -0
  405. codex/static_root/assets/VRadioGroup-D3Py5BfQ.a4f25edb86d3.js.gz +0 -0
  406. codex/static_root/assets/VRadioGroup-D3Py5BfQ.js.br +0 -0
  407. codex/static_root/assets/VRadioGroup-D3Py5BfQ.js.gz +0 -0
  408. codex/static_root/assets/VSelect-DtvZsYZz.e98745d858eb.js.br +0 -0
  409. codex/static_root/assets/VSelect-DtvZsYZz.e98745d858eb.js.gz +0 -0
  410. codex/static_root/assets/VSelect-DtvZsYZz.js.br +0 -0
  411. codex/static_root/assets/VSelect-DtvZsYZz.js.gz +0 -0
  412. codex/static_root/assets/VSelectionControl-D6kmykQW.1e1fda62ceba.js.br +0 -0
  413. codex/static_root/assets/VSelectionControl-D6kmykQW.1e1fda62ceba.js.gz +0 -0
  414. codex/static_root/assets/VSelectionControl-D6kmykQW.js.br +0 -0
  415. codex/static_root/assets/VSelectionControl-D6kmykQW.js.gz +0 -0
  416. codex/static_root/assets/VSlideGroup-UGZWxpF5.360bdefcd215.js.br +0 -0
  417. codex/static_root/assets/VSlideGroup-UGZWxpF5.360bdefcd215.js.gz +0 -0
  418. codex/static_root/assets/VSlideGroup-UGZWxpF5.js.br +0 -0
  419. codex/static_root/assets/VSlideGroup-UGZWxpF5.js.gz +0 -0
  420. codex/static_root/assets/VTable-DXH_yQ0o.1149f56ad566.js.br +0 -0
  421. codex/static_root/assets/VTable-DXH_yQ0o.1149f56ad566.js.gz +0 -0
  422. codex/static_root/assets/VTable-DXH_yQ0o.js.br +0 -0
  423. codex/static_root/assets/VTable-DXH_yQ0o.js.gz +0 -0
  424. codex/static_root/assets/VTextField-Blqy56_L.26d8761e0155.js.br +0 -0
  425. codex/static_root/assets/VTextField-Blqy56_L.26d8761e0155.js.gz +0 -0
  426. codex/static_root/assets/VTextField-Blqy56_L.js.br +0 -0
  427. codex/static_root/assets/VTextField-Blqy56_L.js.gz +0 -0
  428. codex/static_root/assets/VWindowItem-C8_ovV7e.afbc08414765.js.br +0 -0
  429. codex/static_root/assets/VWindowItem-C8_ovV7e.afbc08414765.js.gz +0 -0
  430. codex/static_root/assets/VWindowItem-C8_ovV7e.js.br +0 -0
  431. codex/static_root/assets/VWindowItem-C8_ovV7e.js.gz +0 -0
  432. codex/static_root/assets/admin-DTRn8bBs.d031ea42d8d0.js.br +0 -0
  433. codex/static_root/assets/admin-DTRn8bBs.d031ea42d8d0.js.gz +0 -0
  434. codex/static_root/assets/admin-DTRn8bBs.js.br +0 -0
  435. codex/static_root/assets/admin-DTRn8bBs.js.gz +0 -0
  436. codex/static_root/assets/admin-drawer-panel-BaXFOcru.b1a44b05f482.js.br +0 -0
  437. codex/static_root/assets/admin-drawer-panel-BaXFOcru.b1a44b05f482.js.gz +0 -0
  438. codex/static_root/assets/admin-drawer-panel-BaXFOcru.js.br +0 -0
  439. codex/static_root/assets/admin-drawer-panel-BaXFOcru.js.gz +0 -0
  440. codex/static_root/assets/browser-BBpUyGmz.c1cb9e2d463b.js +0 -1
  441. codex/static_root/assets/browser-BBpUyGmz.c1cb9e2d463b.js.br +0 -0
  442. codex/static_root/assets/browser-BBpUyGmz.c1cb9e2d463b.js.gz +0 -0
  443. codex/static_root/assets/browser-BBpUyGmz.js +0 -1
  444. codex/static_root/assets/browser-BBpUyGmz.js.br +0 -0
  445. codex/static_root/assets/browser-BBpUyGmz.js.gz +0 -0
  446. codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css +0 -1
  447. codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css.br +0 -0
  448. codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css.gz +0 -0
  449. codex/static_root/assets/browser-Binc3n9H.css +0 -1
  450. codex/static_root/assets/browser-Binc3n9H.css.br +0 -0
  451. codex/static_root/assets/browser-Binc3n9H.css.gz +0 -0
  452. codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css +0 -1
  453. codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css.br +0 -0
  454. codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css.gz +0 -0
  455. codex/static_root/assets/change-password-dialog-Cebek1-c.css +0 -1
  456. codex/static_root/assets/change-password-dialog-Cebek1-c.css.br +0 -0
  457. codex/static_root/assets/change-password-dialog-Cebek1-c.css.gz +0 -0
  458. codex/static_root/assets/change-password-dialog-DlHoLhDF.76ab4a29bb9b.js +0 -1
  459. codex/static_root/assets/change-password-dialog-DlHoLhDF.76ab4a29bb9b.js.br +0 -0
  460. codex/static_root/assets/change-password-dialog-DlHoLhDF.76ab4a29bb9b.js.gz +0 -0
  461. codex/static_root/assets/change-password-dialog-DlHoLhDF.js +0 -1
  462. codex/static_root/assets/change-password-dialog-DlHoLhDF.js.br +0 -0
  463. codex/static_root/assets/change-password-dialog-DlHoLhDF.js.gz +0 -0
  464. codex/static_root/assets/confirm-dialog-D3_s2DQy.9dde66036c72.js.br +0 -0
  465. codex/static_root/assets/confirm-dialog-D3_s2DQy.9dde66036c72.js.gz +0 -0
  466. codex/static_root/assets/confirm-dialog-D3_s2DQy.js.br +0 -0
  467. codex/static_root/assets/confirm-dialog-D3_s2DQy.js.gz +0 -0
  468. codex/static_root/assets/datetime-column-BxC1Li9e.3dc314b3295d.js.br +0 -0
  469. codex/static_root/assets/datetime-column-BxC1Li9e.3dc314b3295d.js.gz +0 -0
  470. codex/static_root/assets/datetime-column-BxC1Li9e.js.br +0 -0
  471. codex/static_root/assets/datetime-column-BxC1Li9e.js.gz +0 -0
  472. codex/static_root/assets/filter-Bzk7x841.d0c3b602e62d.js.br +0 -0
  473. codex/static_root/assets/filter-Bzk7x841.d0c3b602e62d.js.gz +0 -0
  474. codex/static_root/assets/filter-Bzk7x841.js.br +0 -0
  475. codex/static_root/assets/filter-Bzk7x841.js.gz +0 -0
  476. codex/static_root/assets/flag-tab-C2bI5zq3.8f8c297600a6.js +0 -1
  477. codex/static_root/assets/flag-tab-C2bI5zq3.8f8c297600a6.js.br +0 -0
  478. codex/static_root/assets/flag-tab-C2bI5zq3.8f8c297600a6.js.gz +0 -0
  479. codex/static_root/assets/flag-tab-C2bI5zq3.js +0 -1
  480. codex/static_root/assets/flag-tab-C2bI5zq3.js.br +0 -0
  481. codex/static_root/assets/flag-tab-C2bI5zq3.js.gz +0 -0
  482. codex/static_root/assets/group-tab-5esH4lwX.a81fdd258117.js.br +0 -0
  483. codex/static_root/assets/group-tab-5esH4lwX.a81fdd258117.js.gz +0 -0
  484. codex/static_root/assets/group-tab-5esH4lwX.js.br +0 -0
  485. codex/static_root/assets/group-tab-5esH4lwX.js.gz +0 -0
  486. codex/static_root/assets/http-error-BTOBfcGY.52ced6f28420.js.br +0 -0
  487. codex/static_root/assets/http-error-BTOBfcGY.52ced6f28420.js.gz +0 -0
  488. codex/static_root/assets/http-error-BTOBfcGY.js.br +0 -0
  489. codex/static_root/assets/http-error-BTOBfcGY.js.gz +0 -0
  490. codex/static_root/assets/library-tab-DiPEdOF7.ece2d642a9dc.js.br +0 -0
  491. codex/static_root/assets/library-tab-DiPEdOF7.ece2d642a9dc.js.gz +0 -0
  492. codex/static_root/assets/library-tab-DiPEdOF7.js.br +0 -0
  493. codex/static_root/assets/library-tab-DiPEdOF7.js.gz +0 -0
  494. codex/static_root/assets/main-BPIPjzsc.66def8991e38.js +0 -6
  495. codex/static_root/assets/main-BPIPjzsc.66def8991e38.js.br +0 -0
  496. codex/static_root/assets/main-BPIPjzsc.66def8991e38.js.gz +0 -0
  497. codex/static_root/assets/main-BPIPjzsc.js +0 -6
  498. codex/static_root/assets/main-BPIPjzsc.js.br +0 -0
  499. codex/static_root/assets/main-BPIPjzsc.js.gz +0 -0
  500. codex/static_root/assets/pager-full-pdf-CiyC6Al9.278b9978f36f.js +0 -1
  501. codex/static_root/assets/pager-full-pdf-CiyC6Al9.278b9978f36f.js.br +0 -0
  502. codex/static_root/assets/pager-full-pdf-CiyC6Al9.278b9978f36f.js.gz +0 -0
  503. codex/static_root/assets/pager-full-pdf-CiyC6Al9.js +0 -1
  504. codex/static_root/assets/pager-full-pdf-CiyC6Al9.js.br +0 -0
  505. codex/static_root/assets/pager-full-pdf-CiyC6Al9.js.gz +0 -0
  506. codex/static_root/assets/pagination-toolbar-C45-onwe.4722195bb60b.css.br +0 -0
  507. codex/static_root/assets/pagination-toolbar-C45-onwe.4722195bb60b.css.gz +0 -0
  508. codex/static_root/assets/pagination-toolbar-C45-onwe.css.br +0 -0
  509. codex/static_root/assets/pagination-toolbar-C45-onwe.css.gz +0 -0
  510. codex/static_root/assets/pagination-toolbar-CkIzuyx1.00c354a82e6e.js.br +0 -0
  511. codex/static_root/assets/pagination-toolbar-CkIzuyx1.00c354a82e6e.js.gz +0 -0
  512. codex/static_root/assets/pagination-toolbar-CkIzuyx1.js.br +0 -0
  513. codex/static_root/assets/pagination-toolbar-CkIzuyx1.js.gz +0 -0
  514. codex/static_root/assets/pdf-doc-BjlRPuf4.0f056fa321b6.js.br +0 -0
  515. codex/static_root/assets/pdf-doc-BjlRPuf4.0f056fa321b6.js.gz +0 -0
  516. codex/static_root/assets/pdf-doc-BjlRPuf4.js.br +0 -0
  517. codex/static_root/assets/pdf-doc-BjlRPuf4.js.gz +0 -0
  518. codex/static_root/assets/reader-_stAWL-4.5089e9144795.css +0 -1
  519. codex/static_root/assets/reader-_stAWL-4.5089e9144795.css.br +0 -0
  520. codex/static_root/assets/reader-_stAWL-4.5089e9144795.css.gz +0 -0
  521. codex/static_root/assets/reader-_stAWL-4.css +0 -1
  522. codex/static_root/assets/reader-_stAWL-4.css.br +0 -0
  523. codex/static_root/assets/reader-_stAWL-4.css.gz +0 -0
  524. codex/static_root/assets/reader-ucxnLi2K.d0fbce0f03c1.js +0 -2
  525. codex/static_root/assets/reader-ucxnLi2K.d0fbce0f03c1.js.br +0 -0
  526. codex/static_root/assets/reader-ucxnLi2K.d0fbce0f03c1.js.gz +0 -0
  527. codex/static_root/assets/reader-ucxnLi2K.js +0 -2
  528. codex/static_root/assets/reader-ucxnLi2K.js.br +0 -0
  529. codex/static_root/assets/reader-ucxnLi2K.js.gz +0 -0
  530. codex/static_root/assets/relation-chips-CUSatZET.a58031ff8141.js.br +0 -0
  531. codex/static_root/assets/relation-chips-CUSatZET.a58031ff8141.js.gz +0 -0
  532. codex/static_root/assets/relation-chips-CUSatZET.js.br +0 -0
  533. codex/static_root/assets/relation-chips-CUSatZET.js.gz +0 -0
  534. codex/static_root/assets/settings-drawer-BSHTAsJ9.1d07ce084fc9.js.br +0 -0
  535. codex/static_root/assets/settings-drawer-BSHTAsJ9.1d07ce084fc9.js.gz +0 -0
  536. codex/static_root/assets/settings-drawer-BSHTAsJ9.js.br +0 -0
  537. codex/static_root/assets/settings-drawer-BSHTAsJ9.js.gz +0 -0
  538. codex/static_root/assets/stats-tab-BXGisn5N.9b7a71e7fe28.css.br +0 -0
  539. codex/static_root/assets/stats-tab-BXGisn5N.9b7a71e7fe28.css.gz +0 -0
  540. codex/static_root/assets/stats-tab-BXGisn5N.css.br +0 -0
  541. codex/static_root/assets/stats-tab-BXGisn5N.css.gz +0 -0
  542. codex/static_root/assets/stats-tab-DKXVB2Cc.0a3de58bf5ee.js +0 -1
  543. codex/static_root/assets/stats-tab-DKXVB2Cc.0a3de58bf5ee.js.br +0 -0
  544. codex/static_root/assets/stats-tab-DKXVB2Cc.0a3de58bf5ee.js.gz +0 -0
  545. codex/static_root/assets/stats-tab-DKXVB2Cc.js +0 -1
  546. codex/static_root/assets/stats-tab-DKXVB2Cc.js.br +0 -0
  547. codex/static_root/assets/stats-tab-DKXVB2Cc.js.gz +0 -0
  548. codex/static_root/assets/task-tab-NORFAa9p.97e07e366ddd.js.br +0 -0
  549. codex/static_root/assets/task-tab-NORFAa9p.97e07e366ddd.js.gz +0 -0
  550. codex/static_root/assets/task-tab-NORFAa9p.js.br +0 -0
  551. codex/static_root/assets/task-tab-NORFAa9p.js.gz +0 -0
  552. codex/static_root/assets/unauthorized-RHaQZRfr.a234e9403f60.js +0 -1
  553. codex/static_root/assets/unauthorized-RHaQZRfr.a234e9403f60.js.br +0 -0
  554. codex/static_root/assets/unauthorized-RHaQZRfr.a234e9403f60.js.gz +0 -0
  555. codex/static_root/assets/unauthorized-RHaQZRfr.js +0 -1
  556. codex/static_root/assets/unauthorized-RHaQZRfr.js.br +0 -0
  557. codex/static_root/assets/unauthorized-RHaQZRfr.js.gz +0 -0
  558. codex/static_root/assets/unauthorized-muDsv-rC.2166ec8b3a32.css.br +0 -0
  559. codex/static_root/assets/unauthorized-muDsv-rC.2166ec8b3a32.css.gz +0 -0
  560. codex/static_root/assets/unauthorized-muDsv-rC.css.br +0 -0
  561. codex/static_root/assets/unauthorized-muDsv-rC.css.gz +0 -0
  562. codex/static_root/assets/user-tab-CHbyN1EW.e7206db08680.js.br +0 -0
  563. codex/static_root/assets/user-tab-CHbyN1EW.e7206db08680.js.gz +0 -0
  564. codex/static_root/assets/user-tab-CHbyN1EW.js.br +0 -0
  565. codex/static_root/assets/user-tab-CHbyN1EW.js.gz +0 -0
  566. codex/static_root/js/choices-admin.1a20a5648f20.json +0 -1
  567. codex/static_root/js/choices-admin.1a20a5648f20.json.br +0 -0
  568. codex/static_root/js/choices-admin.1a20a5648f20.json.gz +0 -0
  569. codex/static_root/manifest.0fe31a6cb99f.json +0 -635
  570. codex/static_root/manifest.0fe31a6cb99f.json.br +0 -0
  571. codex/static_root/manifest.0fe31a6cb99f.json.gz +0 -0
  572. codex/templates/search/indexes/codex/comic_text.txt +0 -47
  573. codex/views/browser/filters/search.py +0 -196
  574. {codex-1.6.19.dist-info → codex-1.7.0a0.dist-info}/LICENSE +0 -0
  575. {codex-1.6.19.dist-info → codex-1.7.0a0.dist-info}/WHEEL +0 -0
  576. {codex-1.6.19.dist-info → codex-1.7.0a0.dist-info}/entry_points.txt +0 -0
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-doc-BjlRPuf4.js","assets/admin-drawer-panel-BaXFOcru.js","assets/admin-drawer-panel-Bs2wgKj3.css","assets/main-BPIPjzsc.js","assets/main-BZ73p_WW.css","assets/pdf-doc-CG5-AZ2M.css","assets/pager-full-pdf-CiyC6Al9.js","assets/settings-drawer-BSHTAsJ9.js","assets/unauthorized-RHaQZRfr.js","assets/change-password-dialog-DlHoLhDF.js","assets/VTextField-Blqy56_L.js","assets/VDialog-BkpVGB70.js","assets/VDialog-38np3TSA.css","assets/VSelectionControl-D6kmykQW.js","assets/VSelectionControl-CiViEYoC.css","assets/VTextField-Crc3gdNh.css","assets/change-password-dialog-Cebek1-c.css","assets/unauthorized-muDsv-rC.css","assets/copy-to-clipboard-DoUvDJVx.js","assets/settings-drawer-DKncO_vX.css","assets/VWindowItem-C8_ovV7e.js","assets/VWindowItem-ByIod57Y.css","assets/VSelect-DtvZsYZz.js","assets/VCheckboxBtn-CO3-aqQL.js","assets/VSlideGroup-UGZWxpF5.js","assets/VSlideGroup-Dk_1upHt.css","assets/VSelect-Ca2bIOso.css","assets/VExpansionPanels-Ci2-j8XX.js","assets/VExpansionPanels-6G1AUajL.css","assets/VRadioGroup-D3Py5BfQ.js","assets/VRadioGroup-i2qP9Wu9.css","assets/VCheckbox-Cko1sQK-.js","assets/VCheckbox-CMKdyl0R.css","assets/pagination-toolbar-CkIzuyx1.js","assets/pagination-toolbar-C45-onwe.css"])))=>i.map(i=>d[i]);
2
- import{az as w,R as _,S as f,_ as k,U as h,V as c,T as g,W as d,Q as r,aL as y,af as b,aC as v,ag as R,aE as S,aA as P,aR as J,al as C,bw as _e,bx as Pe,am as U,by as ee,bz as te,aD as oe,bA as ae,bB as ve,b0 as we,aN as B,bt as Se,aB as O,bm as se,bC as ye,aK as s,a_ as Re,aH as re,bD as Ce,bE as Be,A as M,bF as W,bG as Te,bH as De,bI as Ie,bJ as Le,bK as $e,aI as Oe,aT as Ve,m as T,ak as ne,aO as H,bL as Ne,aP as F,bM as Ae,bN as Ee,bO as xe,bc as Ue,bd as Fe,be as ze,bf as Me,bP as We,aS as He,bQ as qe,bR as ie,bg as Ke,bj as je,bS as Ge,bT as Ye}from"./admin-drawer-panel-BaXFOcru.js";import{b as u,e as Qe,_ as le,S as A,r as ce,h as Xe,i as Ze,j as Je,d as z}from"./main-BPIPjzsc.js";import{d as et,b as tt,S as ot,V as at,a as st}from"./settings-drawer-BSHTAsJ9.js";import{P as rt,E as de,U as nt,V as it}from"./unauthorized-RHaQZRfr.js";import{b as ue,V as he}from"./VWindowItem-C8_ovV7e.js";import{a as lt}from"./VSelect-DtvZsYZz.js";import{V as ct,a as dt,b as ut,c as ht}from"./VExpansionPanels-Ci2-j8XX.js";import{V as D,a as E}from"./VRadioGroup-D3Py5BfQ.js";import{V as I}from"./VCheckbox-Cko1sQK-.js";import{T as gt,M as pt,V as x,a as mt,P as ge,b as kt,c as bt}from"./pagination-toolbar-CkIzuyx1.js";const ft={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...w(u,["isBTT"]),..._(u,{computedDirection(){return this.normalizeDirection(this.direction)},params(e){return e.routes.books[this.computedDirection]},isDrawerOpen(e){return e.bookChange===this.computedDirection},icon(){return this.bookChangeIcon(this.computedDirection)}}),drawerLocation(){return this.bookChangeLocation(this.direction)},cursorClass(){return this.bookChangeCursorClass(this.computedDirection)},show(){return this.bookChangeShow(this.computedDirection)},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Book")}},methods:{...f(u,["linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function _t(e,t,a,p,i,o){const l=h("router-link");return o.show?(c(),g(et,{key:0,class:R(["bookChangeDrawer",{drawerActivated:e.isDrawerOpen}]),"disable-resize-watcher":"","disable-route-watcher":"",location:o.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:d(()=>[r(l,{class:R({navLink:!0,[o.cursorClass]:!0}),to:o.route,"aria-label":o.label,title:o.label,onClick:t[0]||(t[0]=n=>n.stopImmediatePropagation())},{default:d(()=>[r(y,{class:"bookChangeIcon"},{default:d(()=>[b(v(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value","class"])):S("",!0)}const Pt=k(ft,[["render",_t],["__scopeId","data-v-bd4115bf"]]),vt={name:"BookChangeActivator",components:{BookChangeDrawer:Pt},props:{direction:{type:String,required:!0}},computed:{show(){return this.bookChangeShow(this.computedDirection)},computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)}},methods:{...f(u,["bookChangeCursorClass","bookChangeLocation","bookChangeShow","normalizeDirection","setBookChangeFlag"])}};function wt(e,t,a,p,i,o){const l=h("BookChangeDrawer");return c(),P(C,null,[o.show?(c(),P("div",{key:0,class:R(["changeColumn",{[o.positionClass]:!0,[o.cursorClass]:!0}]),onClick:t[0]||(t[0]=J(n=>e.setBookChangeFlag(a.direction),["stop"]))},null,2)):S("",!0),r(l,{direction:a.direction},null,8,["direction"])],64)}const St=k(vt,[["render",wt],["__scopeId","data-v-a8fdaab3"]]),yt={name:"LoadingPage",components:{Placeholder:rt},props:{twoPages:{type:Boolean,required:!0}}};function Rt(e,t,a,p,i,o){const l=h("Placeholder");return c(),P("div",{class:R(["pageLoading",{twoPages:a.twoPages}])},[r(l,{class:"pagePlaceholder"})],2)}const Ct=k(yt,[["render",Rt],["__scopeId","data-v-04027168"]]),q="unauthorized",Bt={name:"ErrorPage",components:{EmptyState:de},props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},emits:["retry"],computed:{text(){return this.type===q?"Protected page":"Failed to load page"},icon(){return this.type===q?_e:Pe}},methods:{onAction(e){this.$emit("retry",e)}}};function Tt(e,t,a,p,i,o){const l=h("EmptyState");return c(),g(l,{class:R(["pageError",{twoPages:a.twoPages}]),headline:o.text,icon:o.icon,"action-text":"Retry","onClick:action":o.onAction},null,8,["class","headline","icon","onClick:action"])}const Dt=k(Bt,[["render",Tt],["__scopeId","data-v-97fa48e8"]]),It={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{..._(u,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.scale==1)return e;const t=this.$el;if(!(t!=null&&t.naturalWidth))return e;const a=t.naturalWidth/2;return e.transformOrigin=`${a}px top`,e.transform=`scale(${this.scale})`,e},bookSettings(){return this.getBookSettings(this.book)},classes(){return this.bookSettings.fitToClass}},methods:{...f(u,["getBookSettings"])}},Lt=["src"];function $t(e,t,a,p,i,o){return c(),P("img",U({class:[o.classes,"img"],draggable:"false",src:a.src,style:o.style},e.$attrs,{onError:t[0]||(t[0]=l=>e.$emit("error",l)),onLoad:t[1]||(t[1]=l=>e.$emit("load",l))}),null,16,Lt)}const K=k(It,[["render",$t],["__scopeId","data-v-f0601a0d"]]),j=ee(te(()=>le(()=>import("./pdf-doc-BjlRPuf4.js"),__vite__mapDeps([0,1,2,3,4,5])))),Ot=333,Vt={name:"BookPage",components:{ErrorPage:Dt,LoadingPage:Ct,PDFDoc:j,ImgPage:K},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:"",ts:0}},computed:{..._(u,{scale:e=>e.clientSettings.scale}),style(){var a;const e={};if(this.book.fileType==="PDF"||this.scale==1)return e;const t=(a=this.$refs.pageComponent)==null?void 0:a.$el;return t!=null&&t.naturalHeight&&(e.height=t.naturalHeight*this.scale+"px",e.width=t.naturalWidth*this.scale+"px"),e},src(){const e=Math.max(this.book.mtime,this.ts),t={pk:this.book.pk,page:this.page,mtime:e};return Qe(t)},component(){return this.book.fileType==="PDF"?j:K}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},Ot)},methods:{onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1},onRetry(){this.ts=Date.now()}}},Nt=["id","data-page"];function At(e,t,a,p,i,o){const l=h("ErrorPage"),n=h("LoadingPage");return c(),P("div",{id:`page${a.page}`,key:i.ts,"data-page":a.page,class:"page",style:ae(o.style)},[i.error?(c(),g(l,{key:0,"two-pages":e.settings.twoPages,type:i.error,onRetry:o.onRetry},null,8,["two-pages","type","onRetry"])):i.showProgress&&!i.loaded?(c(),g(n,{key:1,"two-pages":e.settings.twoPages},null,8,["two-pages"])):(c(),g(oe(o.component),{key:2,ref:"pageComponent",book:a.book,page:1,src:o.src,onError:o.onError,onLoad:o.onLoad,onUnauthorized:o.onUnauthorized},null,40,["book","src","onError","onLoad","onUnauthorized"]))],12,Nt)}const pe=k(Vt,[["render",At],["__scopeId","data-v-ea178cb3"]]),Et=.5,xt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:ve}},computed:{..._(u,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=A},style(){return{cursor:this.scale==A?"zoom-in":"all-scroll"}}},methods:{...f(u,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Et;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:A})}}};function Ut(e,t,a,p,i,o){const l=we("drag-scroller");return B((c(),P("div",{class:"scaleForScroll",style:ae(o.style),onDblclick:t[0]||(t[0]=(...n)=>o.onDoubleClick&&o.onDoubleClick(...n))},[Se(e.$slots,"default",{},void 0,!0),o.showReset?(c(),g(y,{key:0,class:"resetIcon",onClick:J(o.scaleReset,["stop"])},{default:d(()=>[b(v(i.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):S("",!0)],36)),[[l,,void 0,{onlyX:!0}]])}const me=k(xt,[["render",Ut],["__scopeId","data-v-a222c504"]]),Ft={name:"HorizontalPages",components:{BookPage:pe,ScaleForScroll:me},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{bookSettings(){return this.getBookSettings(this.book)},isReadInReverse(){return this.bookSettings.isReadInReverse},showSecondPage(){return this.bookSettings.twoPages&&this.page<this.book.maxPage&&!this.isCoverPage(this.book,this.page)},showPageOne(){return!this.isReadInReverse||this.showSecondPage},showPageTwo(){return this.isReadInReverse||this.showSecondPage},pageOne(){return this.isReadInReverse?this.page+1:this.page},pageTwo(){return this.isReadInReverse?this.page:this.page+1}},methods:{...f(u,["getBookSettings","isCoverPage"])}};function zt(e,t,a,p,i,o){const l=h("BookPage"),n=h("ScaleForScroll");return c(),g(n,{class:"noWrap"},{default:d(()=>[o.showPageOne?(c(),g(l,{key:0,ref:"pageOne",book:a.book,page:o.pageOne,class:"horizontalPage"},null,8,["book","page"])):S("",!0),o.showPageTwo?(c(),g(l,{key:1,book:a.book,page:o.pageTwo,class:"horizontalPage"},null,8,["book","page"])):S("",!0)]),_:1})}const Mt=k(Ft,[["render",zt],["__scopeId","data-v-ce77a1b1"]]),Wt={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...w(u,["isFirstPage","isLastPage"]),..._(u,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){return"pageChangeColumn"},directionClass(){return this.direction},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...f(u,["linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function Ht(e,t,a,p,i,o){const l=h("router-link");return o.show?(c(),g(l,{key:0,to:o.route,"aria-label":o.label,class:R(["changeColumn",{[o.directionClass]:!0}]),onClick:t[0]||(t[0]=n=>n.stopImmediatePropagation())},null,8,["to","aria-label","class"])):S("",!0)}const qt=k(Wt,[["render",Ht],["__scopeId","data-v-349ebac6"]]),Kt=48,jt=48,Gt={name:"PagerHorizontal",components:{HorizontalPages:Mt,PageChangeLink:qt},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{..._(u,{prevBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.prev},nextBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.next},storePage:e=>e.page,storePk:e=>e.books.current.pk}),bookSettings(){return this.getBookSettings(this.book)},twoPages(){return this.bookSettings.twoPages},isReadInReverse(){return this.bookSettings.isReadInReverse},windowIndex(){const e=this.activePage-this.pages[0];return Math.min(Math.max(0,e),this.book.maxPage)}},watch:{twoPages(){this.setActivePage(this.storePage,!0)},storePage(e){if(this.book.pk===this.storePk){this.activePage=e;const t=this.pages.at(0),a=this.pages.at(-1);(e<t||e>a)&&this.setPages()}},prevBook(e){this.book.pk===e.pk&&(this.activePage=this.book.maxPage)},nextBook(e){this.book.pk===e.pk&&(this.activePage=0)}},created(){this.book.pk===this.storePk?this.activePage=+this.$route.params.page:this.book.pk===this.prevBook.pk?this.activePage=this.book.maxPage:this.activePage=0,this.setPages()},methods:{...f(u,["getBookSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-Kt,0),t=Math.min(this.activePage+jt,this.book.maxPage);this.pages=ce(e,t+1)}}};function Yt(e,t,a,p,i,o){const l=h("PageChangeLink"),n=h("HorizontalPages");return c(),g(he,{"show-arrows":"",continuous:"","model-value":o.windowIndex,reverse:o.isReadInReverse},{prev:d(()=>[r(l,{direction:"prev"})]),next:d(()=>[r(l,{direction:"next"})]),default:d(()=>[(c(!0),P(C,null,O(i.pages,m=>(c(),g(ue,{key:`c/${a.book.pk}/${m}`,class:"windowItem",disabled:"",eager:m>=e.storePage-1&&m<=e.storePage+2,"model-value":m,transition:!0},{default:d(()=>[r(n,{book:a.book,page:m},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const G=k(Gt,[["render",Yt],["__scopeId","data-v-17343bd0"]]),Y=250,Qt={name:"PagerVertical",components:{BookPage:pe,ScaleForScroll:me},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1,intersectOptions:{handler:this.onIntersect,options:{threshold:[.75]}}}},computed:{..._(u,{storePage:e=>e.page,showToolbars:e=>e.showToolbars}),...se(u,["reactWithScroll"]),bookSettings(){return this.getBookSettings(this.book)},isReadInReverse(){return this.bookSettings.isReadInReverse},items(){var a;const e=(a=this.book)!=null&&a.maxPage?this.book.maxPage+1:0,t=ce(0,e);return this.isReadInReverse&&t.reverse(),t}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},Y)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...f(u,["getBookSettings","setActivePage","setBookChangeFlag"]),onIntersect(e,t){if(e&&this.intersectorOn){const p=+t[0].target.dataset.page;this.setActivePage(p,!1)}},onScroll(){if(this.programmaticScroll)return;this.intersectorOn=!0;const e=this.$refs.verticalScroll.$el,t=e.scrollTop;if(this.storePage===0&&t===0)this.setBookChangeFlag("prev");else if(this.storePage===this.book.maxPage){const a=e.scrollTopMax||e.scrollHeight-e.clientTop;window.innerHeight+t+1>=a&&this.setBookChangeFlag("next")}},scrollToPage(e){this.intersectorOn=!1,this.programmaticScroll=!0;const t=this.$refs.verticalScroll;t?t.scrollToIndex(e):console.debug("Can't find verticalScroll component."),setTimeout(()=>{this.programmaticScroll=!1},Y)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},Xt=["data-page"];function Zt(e,t,a,p,i,o){const l=h("BookPage"),n=h("ScaleForScroll");return c(),g(n,null,{default:d(()=>[B((c(),g(lt,{id:"verticalScroll",key:o.isReadInReverse,ref:"verticalScroll",items:o.items,height:i.innerHeight,width:i.innerWidth},{default:d(({item:m})=>[r(l,{book:a.book,page:m,class:"verticalPage"},null,8,["book","page"]),B(s("div",{class:R(["pageTracker",{pageTrackerToolbars:e.showToolbars}]),"data-page":m},null,10,Xt),[[Re,i.intersectOptions,void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[ye,o.onScroll,"#verticalScroll"]])]),_:1})}const Q=k(Qt,[["render",Zt],["__scopeId","data-v-17541277"]]),X=ee(te(()=>le(()=>import("./pager-full-pdf-CiyC6Al9.js"),__vite__mapDeps([6,1,2,3,4,0,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])))),Jt={name:"PagerSelector",components:{PagerHorizontal:G,PagerPDF:X,PagerVertical:Q},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...w(u,["cacheBook"]),..._(u,{storePk:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.pk)||0}}),isActiveBook(){var e;return this.book&&this.storePk===((e=this.book)==null?void 0:e.pk)},bookSettings(){return this.getBookSettings(this.book)},readerFullPdf(){var e;return((e=this.book)==null?void 0:e.fileType)=="PDF"&&this.cacheBook&&!this.bookSettings.isVertical},component(){return this.readerFullPdf?X:this.bookSettings.isVertical?Q:G}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.isActiveBook&&this.setActivePage(+this.$route.params.page,!0)},methods:{...f(u,["getBookSettings","isBookVertical","setActivePage","prefetchBook"])}};function eo(e,t,a,p,i,o){return c(),g(oe(o.component),{book:a.book},null,8,["book"])}const to=k(Jt,[["render",eo]]),oo={name:"BooksWindow",components:{BookChangeActivator:St,Pager:to},computed:{...w(u,["isBTT"]),..._(u,{books:e=>[e.books.prev,e.books.current,e.books.next].filter(Boolean),bookChange:e=>e.bookChange,currentBookPk:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.pk)||0},bookRoutes:e=>e.routes.books}),bookChangePrev(){return this.bookChangeShow("prev")},bookChangeNext(){return this.bookChangeShow("next")}},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks({params:e.params})}},beforeMount(){this.setBookChangeFlag(),this.loadBooks({})},methods:{...f(u,["loadBooks","setBookChangeFlag","toggleToolbars"]),click(){this.toggleToolbars(),this.setBookChangeFlag()},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function ao(e,t,a,p,i,o){const l=h("BookChangeActivator"),n=h("Pager");return c(),g(he,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:e.toggleToolbars},{prev:d(()=>[r(l,{direction:"prev"})]),next:d(()=>[r(l,{direction:"next"})]),default:d(()=>[(c(!0),P(C,null,O(e.books,m=>(c(),g(ue,{key:`c/${m.pk}`,class:"windowItem",disabled:"",eager:o.eager(m.pk),value:m.pk,transition:!0},{default:d(()=>[r(n,{book:m,onClick:o.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const so=k(oo,[["render",ao],["__scopeId","data-v-36f4263b"]]),ro={name:"DownloadPanel",components:{DrawerItem:re},data(){return{mdiDownload:Ce,mdiFileImage:Be}},computed:{...w(u,["activeTitle","routeParams"]),..._(u,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return Xe(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return Ze({pk:e,page:this.storePage,mtime:t})},pageName(){const e=this.currentBook.fileType==="PDF"?"pdf":"jpg";return`${this.activeTitle} - page ${this.storePage}.${e}`},downloadPageTitle(){return`Download Page ${this.storePage}`}},methods:{...f(M,["downloadIOSPWAFix"]),downloadPage(){W(this.pageSrc,this.pageName)},downloadBook(){W(this.downloadURL,this.filename)}}},no={key:0,id:"downloadPanel"};function io(e,t,a,p,i,o){const l=h("DrawerItem");return e.currentBook?(c(),P("div",no,[r(l,{"prepend-icon":i.mdiFileImage,title:o.downloadPageTitle,onClick:o.downloadPage},null,8,["prepend-icon","title","onClick"]),r(l,{"prepend-icon":i.mdiDownload,title:"Download Book",onClick:o.downloadBook},null,8,["prepend-icon","onClick"])])):S("",!0)}const lo=k(ro,[["render",io],["__scopeId","data-v-5eb3869f"]]),co={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:Te,mdiMenuRight:De,mdiKeyboardOutline:Ie,mdiKeyboardSpace:Le,mdiAppleKeyboardShift:$e}},computed:{...w(M,["isMobile"])}},uo={class:"highlight-table"};function ho(e,t,a,p,i,o){return e.isMobile?S("",!0):(c(),g(ht,{key:0},{default:d(()=>[r(ct,{id:"readerKeyboardShortcuts"},{default:d(()=>[r(dt,{id:"shortcutsTitle"},{default:d(()=>[r(y,{id:"keyboardIcon"},{default:d(()=>[b(v(i.mdiKeyboardOutline),1)]),_:1}),t[0]||(t[0]=b("Keyboard Shortcuts "))]),_:1}),r(ut,null,{default:d(()=>[t[10]||(t[10]=s("h4",null,"Navigation",-1)),s("table",uo,[s("tbody",null,[s("tr",null,[s("td",null,[r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiMenuLeft),1)]),_:1}),t[1]||(t[1]=b(", j, ")),s("div",null,[r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiAppleKeyboardShift),1)]),_:1}),r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiKeyboardSpace),1)]),_:1})])]),t[2]||(t[2]=s("td",null,"Previous page",-1))]),s("tr",null,[s("td",null,[r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiMenuRight),1)]),_:1}),t[3]||(t[3]=b(", k, ")),r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiKeyboardSpace),1)]),_:1})]),t[4]||(t[4]=s("td",null,"Next page",-1))]),t[5]||(t[5]=s("tr",null,[s("td",null,","),s("td",null,[b("Next "),s("em",null,"only"),b(" one page in two page mode.")])],-1)),t[6]||(t[6]=s("tr",null,[s("td",null,"."),s("td",null,[b("Previous "),s("em",null,"only"),b(" one page in two page mode.")])],-1)),t[7]||(t[7]=s("tr",null,[s("td",null,"p"),s("td",null,"Previous Book")],-1)),t[8]||(t[8]=s("tr",null,[s("td",null,"n"),s("td",null,"Next Book")],-1)),t[9]||(t[9]=s("tr",null,[s("td",null,"esc"),s("td",null,"Close book")],-1))])]),t[11]||(t[11]=s("h4",null,"Fit Page To",-1)),t[12]||(t[12]=s("table",{class:"highlight-table"},[s("tbody",null,[s("tr",null,[s("td",null,"s"),s("td",null,"screen")]),s("tr",null,[s("td",null,"h"),s("td",null,"screen height")]),s("tr",null,[s("td",null,"w"),s("td",null,"screen width")]),s("tr",null,[s("td",null,"o"),s("td",null,"Show page at original size")]),s("tr",null,[s("td",null,"2"),s("td",null,"Toggle two page view")]),s("tr",null,[s("td",null,"r"),s("td",null,"Read Right to Left")]),s("tr",null,[s("td",null,"l"),s("td",null,"Read Left to Right")]),s("tr",null,[s("td",null,"t"),s("td",null,"Read Top to Bottom")]),s("tr",null,[s("td",null,"b"),s("td",null,"Read in Bottom to Top")])])],-1)),t[13]||(t[13]=s("h4",null,"Other",-1)),t[14]||(t[14]=s("table",{class:"highlight-table"},[s("tbody",null,[s("tr",null,[s("td",null,"m"),s("td",null,"Show comic's metadata")]),s("tr",null,[s("td",null,"double click"),s("td",null,"Zoom page")])])],-1))]),_:1})]),_:1})]),_:1}))}const go=k(co,[["render",ho],["__scopeId","data-v-a8b4ac47"]]),ke=["fitTo","readingDirection","twoPages"];Object.freeze(ke);const po={name:"ReaderSettingsPanel",components:{DrawerItem:re},data(){return{isGlobalScope:!1,mdiOpenInNew:Oe,mdiEye:Ve,openDelay:2e3}},computed:{...w(T,["isAuthDialogOpen"]),...w(u,["isVertical","isPDF","cacheBook"]),..._(u,{choices:e=>e.choices,validBook:e=>{var t;return!!((t=e.books)!=null&&t.current)},selectedSettings(e){var t,a;return this.isGlobalScope||!((t=e.books)!=null&&t.current)?e.readerSettings:(a=e.books)==null?void 0:a.current.settings},isClearSettingsButtonDisabled(e){var t,a;if(this.isGlobalScope||!((t=e.books)!=null&&t.current))return!0;for(const p of ke){const i=(a=e.books)==null?void 0:a.current.settings[p];if(!e.choices.nullValues.has(i))return!1}return!0},pdfInBrowserURL(e){var t,a;return this.isPDF&&((t=e.books)!=null&&t.current)?Je((a=e.books)==null?void 0:a.current):""},finishOnLastPage:e=>e.readerSettings.finishOnLastPage}),...se(u,["readRtlInReverse"]),fitToChoices(){return this.choicesWithoutNull("fitTo")},readingDirectionChoices(){return this.choicesWithoutNull("readingDirection")},disableTwoPages(){return this.isVertical||this.isPDF&&this.cacheBook},disableCacheBook(){return this.isVertical&&this.isPDF}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(u,["clearSettingsLocal","setSettingsGlobal","setSettingsLocal","setSettingsClient"]),settingsDialogChanged(e){this.isGlobalScope?this.setSettingsGlobal(e):this.setSettingsLocal(e)},choicesWithoutNull(e){const t=[];for(const a of this.choices[e])a.value&&t.push(a);return Object.freeze(t),t},_keyUpListener(e){if(e.stopPropagation(),this.isAuthDialogOpen)return;let t;switch(e.key){case"w":t={fitTo:"W"};break;case"h":t={fitTo:"H"};break;case"s":t={fitTo:"S"};break;case"o":t={fitTo:"O"};break;case"2":t={twoPages:!this.selectedSettings.twoPages};break;case"l":t={readingDirection:"ltr"};break;case"r":t={readingDirection:"rtl"};break;case"t":t={readingDirection:"ttb"};break;case"b":t={readingDirection:"bbt"};break}t&&this.setSettingsLocal(t)}}},mo={id:"readerScopedSettings",class:"readerDrawerItem"};function ko(e,t,a,p,i,o){const l=h("DrawerItem");return c(),P(C,null,[r(E,{modelValue:i.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=n=>i.isGlobalScope=n),class:"scopeRadioButton readerDrawerItem",density:"compact",label:"Scope","hide-details":"auto"},{default:d(()=>[r(D,{label:"Only this comic",value:!1}),r(D,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),r(Ne,null,{default:d(()=>[s("div",mo,[r(E,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=n=>o.settingsDialogChanged({fitTo:n}))},{default:d(()=>[(c(!0),P(C,null,O(o.fitToChoices,n=>(c(),g(D,{key:n.value,label:n.title,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),r(I,{disabled:o.disableTwoPages,class:"displayTwoPages",density:"compact",label:"Two pages","hide-details":"auto","model-value":e.selectedSettings.twoPages,"true-value":!0,indeterminate:e.selectedSettings.twoPages===null||e.selectedSettings.twoPages===void 0,"onUpdate:modelValue":t[2]||(t[2]=n=>o.settingsDialogChanged({twoPages:n}))},null,8,["disabled","model-value","indeterminate"]),r(E,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=n=>o.settingsDialogChanged({readingDirection:n}))},{default:d(()=>[(c(!0),P(C,null,O(o.readingDirectionChoices,n=>(c(),g(D,{key:n.value,label:n.title,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),i.isGlobalScope?S("",!0):B((c(),g(ne,{key:0,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,onClick:e.clearSettingsLocal},{default:d(()=>t[7]||(t[7]=[b(" Clear Settings ")])),_:1},8,["disabled","onClick"])),[[H,{openDelay:i.openDelay,text:"Use the default settings for all comics for this comic"}]])])]),_:1}),r(F),r(I,{class:"readerDrawerItem","model-value":e.finishOnLastPage,density:"compact",label:"Finish Book On Last Page","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=n=>o.settingsDialogChanged({finishOnLastPage:n}))},null,8,["model-value"]),r(I,{"model-value":e.selectedSettings.readRtlInReverse,class:"readerDrawerItem",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=n=>o.settingsDialogChanged({readRtlInReverse:n}))},null,8,["model-value"]),B(r(I,{"model-value":e.cacheBook,class:"readerDrawerItem cacheBook",density:"compact",disabled:o.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[6]||(t[6]=n=>e.setSettingsClient({cacheBook:n}))},null,8,["model-value","disabled"]),[[H,{openDelay:i.openDelay,text:"Cache all pages from this book in the browser"}]]),e.pdfInBrowserURL?(c(),g(l,{key:0,"prepend-icon":i.mdiEye,"append-icon":i.mdiOpenInNew,title:"Read in Tab",href:e.pdfInBrowserURL,target:"_blank"},null,8,["prepend-icon","append-icon","href"])):S("",!0)],64)}const bo=k(po,[["render",ko],["__scopeId","data-v-42dbb202"]]),fo={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:lo,ReaderKeyboardShortcutsPanel:go,ReaderSettingsPanel:bo}};function _o(e,t,a,p,i,o){const l=h("ReaderSettingsPanel"),n=h("ReaderKeyboardShortcutsPanel"),m=h("DownloadPanel");return c(),P(C,null,[r(l),r(F),r(n),r(F),r(m)],64)}const Po=k(fo,[["render",_o]]),vo={name:"ReaderSettingsDrawer",components:{SettingsDrawer:tt,ReaderSettingsSuperPanel:Po}};function wo(e,t,a,p,i,o){const l=h("ReaderSettingsSuperPanel"),n=h("SettingsDrawer");return c(),g(n,{title:"Reader",temporary:"","disable-resize-watcher":""},{panel:d(()=>[r(l)]),_:1})}const So=k(vo,[["render",wo]]),Z={a:xe,f:Ue,p:Fe,i:ze,s:Me,v:We},yo={a:"Story Arc",f:"Folder",p:"Publisher",i:"Imprint",s:"Series",v:"Volume"},Ro={name:"ReaderArcSelect",components:{ToolbarSelect:gt},data(){return{mdiFilterOutline:Ae}},computed:{..._(u,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arc:e=>e.arc,arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pks===t.pks)return t.name;return"Unknown"},arcItems:e=>{const t=[];for(const a of e.arcs){const p={value:a,title:a.name,group:a.group,filters:a.filters,subtitle:yo[a.group],prependIcon:Z[a.group]};t.push(p)}return t}})},methods:{...f(u,["loadBooks"]),arcIcon(e){return Z[e]},checkIcon(e){return e.group===this.arc.group&&e.pks==this.arc.pks?Ee:""},subtitle(e){let t=e.subtitle;return e.filters&&(t+=" (filtered)"),t},onUpdate(e){const t={group:e.group,pks:e.pks};this.loadBooks({arc:t})}}},Co={id:"arcPos"};function Bo(e,t,a,p,i,o){const l=h("ToolbarSelect");return c(),g(l,{"model-value":e.arc,class:"arcSelect","select-label":"reading order",items:e.arcItems,disabled:!e.arcItems||e.arcItems.length<=1,"onUpdate:modelValue":o.onUpdate},{item:d(({item:n,props:m})=>[r(He,U(m,{density:"compact",variant:"plain","prepend-icon":n.raw.prependIcon,subtitle:o.subtitle(n.raw),"append-icon":o.checkIcon(m.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:d(({item:n,props:m})=>[r(y,U({size:"large"},m,{class:"arcSelectIcon"}),{default:d(()=>[b(v(o.arcIcon(n.raw.group)),1)]),_:2},1040),s("span",Co,v(e.arc.index)+" / "+v(e.arc.count),1)]),_:1},8,["model-value","items","disabled","onUpdate:modelValue"])}const To=k(Ro,[["render",Bo],["__scopeId","data-v-62bf79bd"]]),Do={name:"ReaderTitleToolbar",components:{MetadataDialog:pt,ReaderArcSelect:To,SettingsDrawerButton:ot},data(){return{mdiClose:qe,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...w(T,["isAuthDialogOpen"]),...w(u,["activeTitle","closeBookRoute"]),..._(u,{showToolbars:e=>e.showToolbars,currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}},empty:e=>e.empty,subtitle:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.name)||""}}),title(){return this.activeTitle},extensionHeight(){let e=32;return this.subtitle&&(e*=2),e+=4,e},closeRoute(){const e=z(this.closeBookRoute),t=z(e.params);return delete t.name,e.params=t,e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(M,["setTimestamp"]),...f(u,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.empty||this.openMetadata();break}}}},Io={id:"title"},Lo={key:0,id:"subtitle"};function $o(e,t,a,p,i,o){const l=h("ReaderArcSelect"),n=h("MetadataDialog"),m=h("SettingsDrawerButton");return c(),g(je,null,{default:d(()=>[B(r(st,{id:"readerToolbarTop",density:"compact","extension-height":o.extensionHeight},Ke({default:d(()=>[r(x,null,{default:d(()=>[r(ne,{ref:"closeBook",class:"closeBook",to:o.closeRoute,size:"large",density:"compact",variant:"plain",onClick:o.onCloseBook},{default:d(()=>t[0]||(t[0]=[b(" close book ")])),_:1},8,["to","onClick"])]),_:1}),r(mt),e.empty?S("",!0):(c(),g(x,{key:0},{default:d(()=>[r(l),r(n,{ref:"metadataDialog",group:"c",toolbar:!0,book:e.currentBook},null,8,["book"])]),_:1})),r(x,null,{default:d(()=>[r(m)]),_:1})]),_:2},[o.title?{name:"extension",fn:d(()=>[r(at,{class:"readerTitle"},{default:d(()=>[s("div",Io,v(o.title),1),e.subtitle?(c(),P("div",Lo,v(e.subtitle),1)):S("",!0)]),_:1})]),key:"0"}:void 0]),1032,["extension-height"]),[[ie,e.showToolbars]])]),_:1})}const be=k(Do,[["render",$o],["__scopeId","data-v-dc4c0fde"]]),Oo={name:"ReaderEmptyBooks",components:{ReaderTopToolbar:be,EmptyState:de},data(){return{mdiBookRemoveOutline:Ge}},methods:{...f(u,["loadBooks"]),onAction(){this.loadBooks({mtime:Date.now()})}}};function Vo(e,t,a,p,i,o){const l=h("ReaderTopToolbar"),n=h("EmptyState");return c(),P(C,null,[r(l),r(n,{headline:"Book Not Found",title:"Close the reader and find another book",icon:i.mdiBookRemoveOutline,"action-text":"Try to load book again","onClick:action":o.onAction},null,8,["icon","onClick:action"])],64)}const No=k(Oo,[["render",Vo]]),Ao={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:ge},props:{direction:{type:String,required:!0}},computed:{...w(u,["isBTT"]),..._(u,{toRoute(e){var a;const t=(a=e==null?void 0:e.routes)==null?void 0:a.books[this.direction];return t?{params:z(t)}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},classes(){return{bookChangeNavButtonLeft:this.direction==="prev",bookChangeNavButtonRight:this.direction==="next"}}},methods:{...f(u,["bookChangeIcon"])}};function Eo(e,t,a,p,i,o){const l=h("PaginationNavButton");return e.toRoute?(c(),g(l,{key:0,class:R(o.classes),icon:"",variant:"plain",title:o.title,to:e.toRoute},{default:d(()=>[r(y,null,{default:d(()=>[b(v(o.icon),1)]),_:1})]),_:1},8,["class","title","to"])):S("",!0)}const xo=k(Ao,[["render",Eo],["__scopeId","data-v-f8015577"]]),Uo={name:"ReaderNavButton",components:{PaginationNavButton:ge},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...w(u,["isVertical"]),..._(u,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}},isBookPrev:e=>!!e.routes.books.prev,isBookNext:e=>!!e.routes.books.next}),classes(){return{readerNavButtonLeft:!this.isBookPrev&&this.value===0,readerNavButtonRight:!this.isBookNext&&this.value!=0}},title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...f(u,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function Fo(e,t,a,p,i,o){const l=h("PaginationNavButton");return c(),g(l,{key:e.isVertical,disabled:o.disabled,class:R(["readerNavButton",o.classes]),title:o.title,to:e.toRoute,onClick:o.onClick},{default:d(()=>[b(v(a.value),1)]),_:1},8,["disabled","class","title","to","onClick"])}const zo=k(Uo,[["render",Fo],["__scopeId","data-v-530fba8c"]]),L="prev",$="next",Mo={name:"ReaderNavToolbar",components:{PaginationSlider:kt,ReaderNavButton:zo,PaginationToolbar:bt,ReaderBookChangeNavButton:xo},computed:{...w(T,["isAuthDialogOpen"]),...w(u,["activeSettings","isReadInReverse","isVertical"]),..._(u,{showToolbars:e=>e.showToolbars,storePage:e=>e.page,key(e){var a,p;return`${(p=(a=e.books)==null?void 0:a.current)==null?void 0:p.pk}:${this.step}:${this.isReadInReverse}`},maxPage:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.maxPage)||0}}),twoPages(){return this.activeSettings.twoPages},step(){return this.activeSettings.twoPages?2:1},trackColor(){return this.twoPages&&+this.storePage>=this.maxPage-1?this.$vuetify.theme.current.colors.primary:""},min(){return this.isReadInReverse?this.maxPage:0},max(){return this.isReadInReverse?0:this.maxPage},bookPrev(){return this.isReadInReverse?"next":"prev"},bookNext(){return this.isReadInReverse?"prev":"next"}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(u,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection($):e.shiftKey&&window.scrollY===0&&this.routeToDirection(L);break;case"j":case"ArrowRight":this.routeToDirection($);break;case"k":case"ArrowLeft":this.routeToDirection(L);break;case",":this.routeToDirectionOne(L);break;case".":this.routeToDirectionOne($);break;case"n":this.routeToBook($);break;case"p":this.routeToBook(L);break}}}};function Wo(e,t,a,p,i,o){const l=h("ReaderBookChangeNavButton"),n=h("ReaderNavButton"),m=h("PaginationSlider"),V=h("PaginationToolbar");return c(),g(Ye,null,{default:d(()=>[e.maxPage?B((c(),g(V,{key:0,id:"readerToolbarNav"},{default:d(()=>[r(l,{direction:o.bookPrev,narrow:!1},null,8,["direction"]),r(n,{value:o.min,"two-pages":o.twoPages},null,8,["value","two-pages"]),(c(),g(m,{key:e.key,"model-value":e.storePage,min:0,max:e.maxPage,step:o.step,"track-color":o.trackColor,reverse:e.isReadInReverse,"onUpdate:modelValue":t[0]||(t[0]=N=>o.onSliderUpdate(N))},null,8,["model-value","max","step","track-color","reverse"])),r(n,{value:o.max,"two-pages":o.twoPages},null,8,["value","two-pages"]),r(l,{direction:o.bookNext,narrow:!1},null,8,["direction"])]),_:1},512)),[[ie,e.showToolbars]]):S("",!0)]),_:1})}const Ho=k(Mo,[["render",Wo],["__scopeId","data-v-955ab3ce"]]),qo={name:"MainReader",components:{BooksWindow:so,ReaderEmpty:No,ReaderNavToolbar:Ho,ReaderTopToolbar:be,ReaderSettingsDrawer:So,Unauthorized:nt},data(){return{showToolbars:!1}},computed:{...w(T,["isAuthorized"]),..._(T,{user:e=>e.user}),..._(u,{empty:e=>e.empty,arc:e=>e.arc})},watch:{user(){this.loadReaderSettings()},isAuthorized(){this.loadReaderSettings()}},beforeMount(){this.reset(),this.loadReaderSettings()},methods:{...f(u,["loadReaderSettings","reset"])}},Ko={key:0},jo={id:"readerContainer"};function Go(e,t,a,p,i,o){const l=h("ReaderTopToolbar"),n=h("BooksWindow"),m=h("ReaderNavToolbar"),V=h("ReaderEmpty"),N=h("ReaderSettingsDrawer"),fe=h("Unauthorized");return e.isAuthorized?(c(),g(it,{key:0,id:"readerWrapper"},{default:d(()=>[e.empty?(c(),g(V,{key:1})):(c(),P("div",Ko,[s("div",jo,[r(l),r(n),r(m)])])),r(N)]),_:1})):(c(),g(fe,{key:1}))}const Yo=k(qo,[["render",Go],["__scopeId","data-v-4f31abfa"]]),na=Object.freeze(Object.defineProperty({__proto__:null,default:Yo},Symbol.toStringTag,{value:"Module"}));export{qt as P,me as S,na as r};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-doc-BjlRPuf4.js","assets/admin-drawer-panel-BaXFOcru.js","assets/admin-drawer-panel-Bs2wgKj3.css","assets/main-BPIPjzsc.js","assets/main-BZ73p_WW.css","assets/pdf-doc-CG5-AZ2M.css","assets/pager-full-pdf-CiyC6Al9.js","assets/settings-drawer-BSHTAsJ9.js","assets/unauthorized-RHaQZRfr.js","assets/change-password-dialog-DlHoLhDF.js","assets/VTextField-Blqy56_L.js","assets/VDialog-BkpVGB70.js","assets/VDialog-38np3TSA.css","assets/VSelectionControl-D6kmykQW.js","assets/VSelectionControl-CiViEYoC.css","assets/VTextField-Crc3gdNh.css","assets/change-password-dialog-Cebek1-c.css","assets/unauthorized-muDsv-rC.css","assets/copy-to-clipboard-DoUvDJVx.js","assets/settings-drawer-DKncO_vX.css","assets/VWindowItem-C8_ovV7e.js","assets/VWindowItem-ByIod57Y.css","assets/VSelect-DtvZsYZz.js","assets/VCheckboxBtn-CO3-aqQL.js","assets/VSlideGroup-UGZWxpF5.js","assets/VSlideGroup-Dk_1upHt.css","assets/VSelect-Ca2bIOso.css","assets/VExpansionPanels-Ci2-j8XX.js","assets/VExpansionPanels-6G1AUajL.css","assets/VRadioGroup-D3Py5BfQ.js","assets/VRadioGroup-i2qP9Wu9.css","assets/VCheckbox-Cko1sQK-.js","assets/VCheckbox-CMKdyl0R.css","assets/pagination-toolbar-CkIzuyx1.js","assets/pagination-toolbar-C45-onwe.css"])))=>i.map(i=>d[i]);
2
- import{az as w,R as _,S as f,_ as k,U as h,V as c,T as g,W as d,Q as r,aL as y,af as b,aC as v,ag as R,aE as S,aA as P,aR as J,al as C,bw as _e,bx as Pe,am as U,by as ee,bz as te,aD as oe,bA as ae,bB as ve,b0 as we,aN as B,bt as Se,aB as O,bm as se,bC as ye,aK as s,a_ as Re,aH as re,bD as Ce,bE as Be,A as M,bF as W,bG as Te,bH as De,bI as Ie,bJ as Le,bK as $e,aI as Oe,aT as Ve,m as T,ak as ne,aO as H,bL as Ne,aP as F,bM as Ae,bN as Ee,bO as xe,bc as Ue,bd as Fe,be as ze,bf as Me,bP as We,aS as He,bQ as qe,bR as ie,bg as Ke,bj as je,bS as Ge,bT as Ye}from"./admin-drawer-panel-BaXFOcru.js";import{b as u,e as Qe,_ as le,S as A,r as ce,h as Xe,i as Ze,j as Je,d as z}from"./main-BPIPjzsc.js";import{d as et,b as tt,S as ot,V as at,a as st}from"./settings-drawer-BSHTAsJ9.js";import{P as rt,E as de,U as nt,V as it}from"./unauthorized-RHaQZRfr.js";import{b as ue,V as he}from"./VWindowItem-C8_ovV7e.js";import{a as lt}from"./VSelect-DtvZsYZz.js";import{V as ct,a as dt,b as ut,c as ht}from"./VExpansionPanels-Ci2-j8XX.js";import{V as D,a as E}from"./VRadioGroup-D3Py5BfQ.js";import{V as I}from"./VCheckbox-Cko1sQK-.js";import{T as gt,M as pt,V as x,a as mt,P as ge,b as kt,c as bt}from"./pagination-toolbar-CkIzuyx1.js";const ft={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...w(u,["isBTT"]),..._(u,{computedDirection(){return this.normalizeDirection(this.direction)},params(e){return e.routes.books[this.computedDirection]},isDrawerOpen(e){return e.bookChange===this.computedDirection},icon(){return this.bookChangeIcon(this.computedDirection)}}),drawerLocation(){return this.bookChangeLocation(this.direction)},cursorClass(){return this.bookChangeCursorClass(this.computedDirection)},show(){return this.bookChangeShow(this.computedDirection)},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Book")}},methods:{...f(u,["linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function _t(e,t,a,p,i,o){const l=h("router-link");return o.show?(c(),g(et,{key:0,class:R(["bookChangeDrawer",{drawerActivated:e.isDrawerOpen}]),"disable-resize-watcher":"","disable-route-watcher":"",location:o.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:d(()=>[r(l,{class:R({navLink:!0,[o.cursorClass]:!0}),to:o.route,"aria-label":o.label,title:o.label,onClick:t[0]||(t[0]=n=>n.stopImmediatePropagation())},{default:d(()=>[r(y,{class:"bookChangeIcon"},{default:d(()=>[b(v(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value","class"])):S("",!0)}const Pt=k(ft,[["render",_t],["__scopeId","data-v-bd4115bf"]]),vt={name:"BookChangeActivator",components:{BookChangeDrawer:Pt},props:{direction:{type:String,required:!0}},computed:{show(){return this.bookChangeShow(this.computedDirection)},computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)}},methods:{...f(u,["bookChangeCursorClass","bookChangeLocation","bookChangeShow","normalizeDirection","setBookChangeFlag"])}};function wt(e,t,a,p,i,o){const l=h("BookChangeDrawer");return c(),P(C,null,[o.show?(c(),P("div",{key:0,class:R(["changeColumn",{[o.positionClass]:!0,[o.cursorClass]:!0}]),onClick:t[0]||(t[0]=J(n=>e.setBookChangeFlag(a.direction),["stop"]))},null,2)):S("",!0),r(l,{direction:a.direction},null,8,["direction"])],64)}const St=k(vt,[["render",wt],["__scopeId","data-v-a8fdaab3"]]),yt={name:"LoadingPage",components:{Placeholder:rt},props:{twoPages:{type:Boolean,required:!0}}};function Rt(e,t,a,p,i,o){const l=h("Placeholder");return c(),P("div",{class:R(["pageLoading",{twoPages:a.twoPages}])},[r(l,{class:"pagePlaceholder"})],2)}const Ct=k(yt,[["render",Rt],["__scopeId","data-v-04027168"]]),q="unauthorized",Bt={name:"ErrorPage",components:{EmptyState:de},props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},emits:["retry"],computed:{text(){return this.type===q?"Protected page":"Failed to load page"},icon(){return this.type===q?_e:Pe}},methods:{onAction(e){this.$emit("retry",e)}}};function Tt(e,t,a,p,i,o){const l=h("EmptyState");return c(),g(l,{class:R(["pageError",{twoPages:a.twoPages}]),headline:o.text,icon:o.icon,"action-text":"Retry","onClick:action":o.onAction},null,8,["class","headline","icon","onClick:action"])}const Dt=k(Bt,[["render",Tt],["__scopeId","data-v-97fa48e8"]]),It={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{..._(u,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.scale==1)return e;const t=this.$el;if(!(t!=null&&t.naturalWidth))return e;const a=t.naturalWidth/2;return e.transformOrigin=`${a}px top`,e.transform=`scale(${this.scale})`,e},bookSettings(){return this.getBookSettings(this.book)},classes(){return this.bookSettings.fitToClass}},methods:{...f(u,["getBookSettings"])}},Lt=["src"];function $t(e,t,a,p,i,o){return c(),P("img",U({class:[o.classes,"img"],draggable:"false",src:a.src,style:o.style},e.$attrs,{onError:t[0]||(t[0]=l=>e.$emit("error",l)),onLoad:t[1]||(t[1]=l=>e.$emit("load",l))}),null,16,Lt)}const K=k(It,[["render",$t],["__scopeId","data-v-f0601a0d"]]),j=ee(te(()=>le(()=>import("./pdf-doc-BjlRPuf4.js"),__vite__mapDeps([0,1,2,3,4,5])))),Ot=333,Vt={name:"BookPage",components:{ErrorPage:Dt,LoadingPage:Ct,PDFDoc:j,ImgPage:K},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:"",ts:0}},computed:{..._(u,{scale:e=>e.clientSettings.scale}),style(){var a;const e={};if(this.book.fileType==="PDF"||this.scale==1)return e;const t=(a=this.$refs.pageComponent)==null?void 0:a.$el;return t!=null&&t.naturalHeight&&(e.height=t.naturalHeight*this.scale+"px",e.width=t.naturalWidth*this.scale+"px"),e},src(){const e=Math.max(this.book.mtime,this.ts),t={pk:this.book.pk,page:this.page,mtime:e};return Qe(t)},component(){return this.book.fileType==="PDF"?j:K}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},Ot)},methods:{onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1},onRetry(){this.ts=Date.now()}}},Nt=["id","data-page"];function At(e,t,a,p,i,o){const l=h("ErrorPage"),n=h("LoadingPage");return c(),P("div",{id:`page${a.page}`,key:i.ts,"data-page":a.page,class:"page",style:ae(o.style)},[i.error?(c(),g(l,{key:0,"two-pages":e.settings.twoPages,type:i.error,onRetry:o.onRetry},null,8,["two-pages","type","onRetry"])):i.showProgress&&!i.loaded?(c(),g(n,{key:1,"two-pages":e.settings.twoPages},null,8,["two-pages"])):(c(),g(oe(o.component),{key:2,ref:"pageComponent",book:a.book,page:1,src:o.src,onError:o.onError,onLoad:o.onLoad,onUnauthorized:o.onUnauthorized},null,40,["book","src","onError","onLoad","onUnauthorized"]))],12,Nt)}const pe=k(Vt,[["render",At],["__scopeId","data-v-ea178cb3"]]),Et=.5,xt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:ve}},computed:{..._(u,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=A},style(){return{cursor:this.scale==A?"zoom-in":"all-scroll"}}},methods:{...f(u,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Et;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:A})}}};function Ut(e,t,a,p,i,o){const l=we("drag-scroller");return B((c(),P("div",{class:"scaleForScroll",style:ae(o.style),onDblclick:t[0]||(t[0]=(...n)=>o.onDoubleClick&&o.onDoubleClick(...n))},[Se(e.$slots,"default",{},void 0,!0),o.showReset?(c(),g(y,{key:0,class:"resetIcon",onClick:J(o.scaleReset,["stop"])},{default:d(()=>[b(v(i.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):S("",!0)],36)),[[l,,void 0,{onlyX:!0}]])}const me=k(xt,[["render",Ut],["__scopeId","data-v-a222c504"]]),Ft={name:"HorizontalPages",components:{BookPage:pe,ScaleForScroll:me},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{bookSettings(){return this.getBookSettings(this.book)},isReadInReverse(){return this.bookSettings.isReadInReverse},showSecondPage(){return this.bookSettings.twoPages&&this.page<this.book.maxPage&&!this.isCoverPage(this.book,this.page)},showPageOne(){return!this.isReadInReverse||this.showSecondPage},showPageTwo(){return this.isReadInReverse||this.showSecondPage},pageOne(){return this.isReadInReverse?this.page+1:this.page},pageTwo(){return this.isReadInReverse?this.page:this.page+1}},methods:{...f(u,["getBookSettings","isCoverPage"])}};function zt(e,t,a,p,i,o){const l=h("BookPage"),n=h("ScaleForScroll");return c(),g(n,{class:"noWrap"},{default:d(()=>[o.showPageOne?(c(),g(l,{key:0,ref:"pageOne",book:a.book,page:o.pageOne,class:"horizontalPage"},null,8,["book","page"])):S("",!0),o.showPageTwo?(c(),g(l,{key:1,book:a.book,page:o.pageTwo,class:"horizontalPage"},null,8,["book","page"])):S("",!0)]),_:1})}const Mt=k(Ft,[["render",zt],["__scopeId","data-v-ce77a1b1"]]),Wt={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...w(u,["isFirstPage","isLastPage"]),..._(u,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){return"pageChangeColumn"},directionClass(){return this.direction},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...f(u,["linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function Ht(e,t,a,p,i,o){const l=h("router-link");return o.show?(c(),g(l,{key:0,to:o.route,"aria-label":o.label,class:R(["changeColumn",{[o.directionClass]:!0}]),onClick:t[0]||(t[0]=n=>n.stopImmediatePropagation())},null,8,["to","aria-label","class"])):S("",!0)}const qt=k(Wt,[["render",Ht],["__scopeId","data-v-349ebac6"]]),Kt=48,jt=48,Gt={name:"PagerHorizontal",components:{HorizontalPages:Mt,PageChangeLink:qt},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{..._(u,{prevBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.prev},nextBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.next},storePage:e=>e.page,storePk:e=>e.books.current.pk}),bookSettings(){return this.getBookSettings(this.book)},twoPages(){return this.bookSettings.twoPages},isReadInReverse(){return this.bookSettings.isReadInReverse},windowIndex(){const e=this.activePage-this.pages[0];return Math.min(Math.max(0,e),this.book.maxPage)}},watch:{twoPages(){this.setActivePage(this.storePage,!0)},storePage(e){if(this.book.pk===this.storePk){this.activePage=e;const t=this.pages.at(0),a=this.pages.at(-1);(e<t||e>a)&&this.setPages()}},prevBook(e){this.book.pk===e.pk&&(this.activePage=this.book.maxPage)},nextBook(e){this.book.pk===e.pk&&(this.activePage=0)}},created(){this.book.pk===this.storePk?this.activePage=+this.$route.params.page:this.book.pk===this.prevBook.pk?this.activePage=this.book.maxPage:this.activePage=0,this.setPages()},methods:{...f(u,["getBookSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-Kt,0),t=Math.min(this.activePage+jt,this.book.maxPage);this.pages=ce(e,t+1)}}};function Yt(e,t,a,p,i,o){const l=h("PageChangeLink"),n=h("HorizontalPages");return c(),g(he,{"show-arrows":"",continuous:"","model-value":o.windowIndex,reverse:o.isReadInReverse},{prev:d(()=>[r(l,{direction:"prev"})]),next:d(()=>[r(l,{direction:"next"})]),default:d(()=>[(c(!0),P(C,null,O(i.pages,m=>(c(),g(ue,{key:`c/${a.book.pk}/${m}`,class:"windowItem",disabled:"",eager:m>=e.storePage-1&&m<=e.storePage+2,"model-value":m,transition:!0},{default:d(()=>[r(n,{book:a.book,page:m},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const G=k(Gt,[["render",Yt],["__scopeId","data-v-17343bd0"]]),Y=250,Qt={name:"PagerVertical",components:{BookPage:pe,ScaleForScroll:me},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1,intersectOptions:{handler:this.onIntersect,options:{threshold:[.75]}}}},computed:{..._(u,{storePage:e=>e.page,showToolbars:e=>e.showToolbars}),...se(u,["reactWithScroll"]),bookSettings(){return this.getBookSettings(this.book)},isReadInReverse(){return this.bookSettings.isReadInReverse},items(){var a;const e=(a=this.book)!=null&&a.maxPage?this.book.maxPage+1:0,t=ce(0,e);return this.isReadInReverse&&t.reverse(),t}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},Y)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...f(u,["getBookSettings","setActivePage","setBookChangeFlag"]),onIntersect(e,t){if(e&&this.intersectorOn){const p=+t[0].target.dataset.page;this.setActivePage(p,!1)}},onScroll(){if(this.programmaticScroll)return;this.intersectorOn=!0;const e=this.$refs.verticalScroll.$el,t=e.scrollTop;if(this.storePage===0&&t===0)this.setBookChangeFlag("prev");else if(this.storePage===this.book.maxPage){const a=e.scrollTopMax||e.scrollHeight-e.clientTop;window.innerHeight+t+1>=a&&this.setBookChangeFlag("next")}},scrollToPage(e){this.intersectorOn=!1,this.programmaticScroll=!0;const t=this.$refs.verticalScroll;t?t.scrollToIndex(e):console.debug("Can't find verticalScroll component."),setTimeout(()=>{this.programmaticScroll=!1},Y)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},Xt=["data-page"];function Zt(e,t,a,p,i,o){const l=h("BookPage"),n=h("ScaleForScroll");return c(),g(n,null,{default:d(()=>[B((c(),g(lt,{id:"verticalScroll",key:o.isReadInReverse,ref:"verticalScroll",items:o.items,height:i.innerHeight,width:i.innerWidth},{default:d(({item:m})=>[r(l,{book:a.book,page:m,class:"verticalPage"},null,8,["book","page"]),B(s("div",{class:R(["pageTracker",{pageTrackerToolbars:e.showToolbars}]),"data-page":m},null,10,Xt),[[Re,i.intersectOptions,void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[ye,o.onScroll,"#verticalScroll"]])]),_:1})}const Q=k(Qt,[["render",Zt],["__scopeId","data-v-17541277"]]),X=ee(te(()=>le(()=>import("./pager-full-pdf-CiyC6Al9.js"),__vite__mapDeps([6,1,2,3,4,0,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])))),Jt={name:"PagerSelector",components:{PagerHorizontal:G,PagerPDF:X,PagerVertical:Q},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...w(u,["cacheBook"]),..._(u,{storePk:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.pk)||0}}),isActiveBook(){var e;return this.book&&this.storePk===((e=this.book)==null?void 0:e.pk)},bookSettings(){return this.getBookSettings(this.book)},readerFullPdf(){var e;return((e=this.book)==null?void 0:e.fileType)=="PDF"&&this.cacheBook&&!this.bookSettings.isVertical},component(){return this.readerFullPdf?X:this.bookSettings.isVertical?Q:G}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.isActiveBook&&this.setActivePage(+this.$route.params.page,!0)},methods:{...f(u,["getBookSettings","isBookVertical","setActivePage","prefetchBook"])}};function eo(e,t,a,p,i,o){return c(),g(oe(o.component),{book:a.book},null,8,["book"])}const to=k(Jt,[["render",eo]]),oo={name:"BooksWindow",components:{BookChangeActivator:St,Pager:to},computed:{...w(u,["isBTT"]),..._(u,{books:e=>[e.books.prev,e.books.current,e.books.next].filter(Boolean),bookChange:e=>e.bookChange,currentBookPk:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.pk)||0},bookRoutes:e=>e.routes.books}),bookChangePrev(){return this.bookChangeShow("prev")},bookChangeNext(){return this.bookChangeShow("next")}},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks({params:e.params})}},beforeMount(){this.setBookChangeFlag(),this.loadBooks({})},methods:{...f(u,["loadBooks","setBookChangeFlag","toggleToolbars"]),click(){this.toggleToolbars(),this.setBookChangeFlag()},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function ao(e,t,a,p,i,o){const l=h("BookChangeActivator"),n=h("Pager");return c(),g(he,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:e.toggleToolbars},{prev:d(()=>[r(l,{direction:"prev"})]),next:d(()=>[r(l,{direction:"next"})]),default:d(()=>[(c(!0),P(C,null,O(e.books,m=>(c(),g(ue,{key:`c/${m.pk}`,class:"windowItem",disabled:"",eager:o.eager(m.pk),value:m.pk,transition:!0},{default:d(()=>[r(n,{book:m,onClick:o.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const so=k(oo,[["render",ao],["__scopeId","data-v-36f4263b"]]),ro={name:"DownloadPanel",components:{DrawerItem:re},data(){return{mdiDownload:Ce,mdiFileImage:Be}},computed:{...w(u,["activeTitle","routeParams"]),..._(u,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return Xe(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return Ze({pk:e,page:this.storePage,mtime:t})},pageName(){const e=this.currentBook.fileType==="PDF"?"pdf":"jpg";return`${this.activeTitle} - page ${this.storePage}.${e}`},downloadPageTitle(){return`Download Page ${this.storePage}`}},methods:{...f(M,["downloadIOSPWAFix"]),downloadPage(){W(this.pageSrc,this.pageName)},downloadBook(){W(this.downloadURL,this.filename)}}},no={key:0,id:"downloadPanel"};function io(e,t,a,p,i,o){const l=h("DrawerItem");return e.currentBook?(c(),P("div",no,[r(l,{"prepend-icon":i.mdiFileImage,title:o.downloadPageTitle,onClick:o.downloadPage},null,8,["prepend-icon","title","onClick"]),r(l,{"prepend-icon":i.mdiDownload,title:"Download Book",onClick:o.downloadBook},null,8,["prepend-icon","onClick"])])):S("",!0)}const lo=k(ro,[["render",io],["__scopeId","data-v-5eb3869f"]]),co={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:Te,mdiMenuRight:De,mdiKeyboardOutline:Ie,mdiKeyboardSpace:Le,mdiAppleKeyboardShift:$e}},computed:{...w(M,["isMobile"])}},uo={class:"highlight-table"};function ho(e,t,a,p,i,o){return e.isMobile?S("",!0):(c(),g(ht,{key:0},{default:d(()=>[r(ct,{id:"readerKeyboardShortcuts"},{default:d(()=>[r(dt,{id:"shortcutsTitle"},{default:d(()=>[r(y,{id:"keyboardIcon"},{default:d(()=>[b(v(i.mdiKeyboardOutline),1)]),_:1}),t[0]||(t[0]=b("Keyboard Shortcuts "))]),_:1}),r(ut,null,{default:d(()=>[t[10]||(t[10]=s("h4",null,"Navigation",-1)),s("table",uo,[s("tbody",null,[s("tr",null,[s("td",null,[r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiMenuLeft),1)]),_:1}),t[1]||(t[1]=b(", j, ")),s("div",null,[r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiAppleKeyboardShift),1)]),_:1}),r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiKeyboardSpace),1)]),_:1})])]),t[2]||(t[2]=s("td",null,"Previous page",-1))]),s("tr",null,[s("td",null,[r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiMenuRight),1)]),_:1}),t[3]||(t[3]=b(", k, ")),r(y,{class:"keyIcon",density:"compact"},{default:d(()=>[b(v(i.mdiKeyboardSpace),1)]),_:1})]),t[4]||(t[4]=s("td",null,"Next page",-1))]),t[5]||(t[5]=s("tr",null,[s("td",null,","),s("td",null,[b("Next "),s("em",null,"only"),b(" one page in two page mode.")])],-1)),t[6]||(t[6]=s("tr",null,[s("td",null,"."),s("td",null,[b("Previous "),s("em",null,"only"),b(" one page in two page mode.")])],-1)),t[7]||(t[7]=s("tr",null,[s("td",null,"p"),s("td",null,"Previous Book")],-1)),t[8]||(t[8]=s("tr",null,[s("td",null,"n"),s("td",null,"Next Book")],-1)),t[9]||(t[9]=s("tr",null,[s("td",null,"esc"),s("td",null,"Close book")],-1))])]),t[11]||(t[11]=s("h4",null,"Fit Page To",-1)),t[12]||(t[12]=s("table",{class:"highlight-table"},[s("tbody",null,[s("tr",null,[s("td",null,"s"),s("td",null,"screen")]),s("tr",null,[s("td",null,"h"),s("td",null,"screen height")]),s("tr",null,[s("td",null,"w"),s("td",null,"screen width")]),s("tr",null,[s("td",null,"o"),s("td",null,"Show page at original size")]),s("tr",null,[s("td",null,"2"),s("td",null,"Toggle two page view")]),s("tr",null,[s("td",null,"r"),s("td",null,"Read Right to Left")]),s("tr",null,[s("td",null,"l"),s("td",null,"Read Left to Right")]),s("tr",null,[s("td",null,"t"),s("td",null,"Read Top to Bottom")]),s("tr",null,[s("td",null,"b"),s("td",null,"Read in Bottom to Top")])])],-1)),t[13]||(t[13]=s("h4",null,"Other",-1)),t[14]||(t[14]=s("table",{class:"highlight-table"},[s("tbody",null,[s("tr",null,[s("td",null,"m"),s("td",null,"Show comic's metadata")]),s("tr",null,[s("td",null,"double click"),s("td",null,"Zoom page")])])],-1))]),_:1})]),_:1})]),_:1}))}const go=k(co,[["render",ho],["__scopeId","data-v-a8b4ac47"]]),ke=["fitTo","readingDirection","twoPages"];Object.freeze(ke);const po={name:"ReaderSettingsPanel",components:{DrawerItem:re},data(){return{isGlobalScope:!1,mdiOpenInNew:Oe,mdiEye:Ve,openDelay:2e3}},computed:{...w(T,["isAuthDialogOpen"]),...w(u,["isVertical","isPDF","cacheBook"]),..._(u,{choices:e=>e.choices,validBook:e=>{var t;return!!((t=e.books)!=null&&t.current)},selectedSettings(e){var t,a;return this.isGlobalScope||!((t=e.books)!=null&&t.current)?e.readerSettings:(a=e.books)==null?void 0:a.current.settings},isClearSettingsButtonDisabled(e){var t,a;if(this.isGlobalScope||!((t=e.books)!=null&&t.current))return!0;for(const p of ke){const i=(a=e.books)==null?void 0:a.current.settings[p];if(!e.choices.nullValues.has(i))return!1}return!0},pdfInBrowserURL(e){var t,a;return this.isPDF&&((t=e.books)!=null&&t.current)?Je((a=e.books)==null?void 0:a.current):""},finishOnLastPage:e=>e.readerSettings.finishOnLastPage}),...se(u,["readRtlInReverse"]),fitToChoices(){return this.choicesWithoutNull("fitTo")},readingDirectionChoices(){return this.choicesWithoutNull("readingDirection")},disableTwoPages(){return this.isVertical||this.isPDF&&this.cacheBook},disableCacheBook(){return this.isVertical&&this.isPDF}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(u,["clearSettingsLocal","setSettingsGlobal","setSettingsLocal","setSettingsClient"]),settingsDialogChanged(e){this.isGlobalScope?this.setSettingsGlobal(e):this.setSettingsLocal(e)},choicesWithoutNull(e){const t=[];for(const a of this.choices[e])a.value&&t.push(a);return Object.freeze(t),t},_keyUpListener(e){if(e.stopPropagation(),this.isAuthDialogOpen)return;let t;switch(e.key){case"w":t={fitTo:"W"};break;case"h":t={fitTo:"H"};break;case"s":t={fitTo:"S"};break;case"o":t={fitTo:"O"};break;case"2":t={twoPages:!this.selectedSettings.twoPages};break;case"l":t={readingDirection:"ltr"};break;case"r":t={readingDirection:"rtl"};break;case"t":t={readingDirection:"ttb"};break;case"b":t={readingDirection:"bbt"};break}t&&this.setSettingsLocal(t)}}},mo={id:"readerScopedSettings",class:"readerDrawerItem"};function ko(e,t,a,p,i,o){const l=h("DrawerItem");return c(),P(C,null,[r(E,{modelValue:i.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=n=>i.isGlobalScope=n),class:"scopeRadioButton readerDrawerItem",density:"compact",label:"Scope","hide-details":"auto"},{default:d(()=>[r(D,{label:"Only this comic",value:!1}),r(D,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),r(Ne,null,{default:d(()=>[s("div",mo,[r(E,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=n=>o.settingsDialogChanged({fitTo:n}))},{default:d(()=>[(c(!0),P(C,null,O(o.fitToChoices,n=>(c(),g(D,{key:n.value,label:n.title,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),r(I,{disabled:o.disableTwoPages,class:"displayTwoPages",density:"compact",label:"Two pages","hide-details":"auto","model-value":e.selectedSettings.twoPages,"true-value":!0,indeterminate:e.selectedSettings.twoPages===null||e.selectedSettings.twoPages===void 0,"onUpdate:modelValue":t[2]||(t[2]=n=>o.settingsDialogChanged({twoPages:n}))},null,8,["disabled","model-value","indeterminate"]),r(E,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=n=>o.settingsDialogChanged({readingDirection:n}))},{default:d(()=>[(c(!0),P(C,null,O(o.readingDirectionChoices,n=>(c(),g(D,{key:n.value,label:n.title,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),i.isGlobalScope?S("",!0):B((c(),g(ne,{key:0,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,onClick:e.clearSettingsLocal},{default:d(()=>t[7]||(t[7]=[b(" Clear Settings ")])),_:1},8,["disabled","onClick"])),[[H,{openDelay:i.openDelay,text:"Use the default settings for all comics for this comic"}]])])]),_:1}),r(F),r(I,{class:"readerDrawerItem","model-value":e.finishOnLastPage,density:"compact",label:"Finish Book On Last Page","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=n=>o.settingsDialogChanged({finishOnLastPage:n}))},null,8,["model-value"]),r(I,{"model-value":e.selectedSettings.readRtlInReverse,class:"readerDrawerItem",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=n=>o.settingsDialogChanged({readRtlInReverse:n}))},null,8,["model-value"]),B(r(I,{"model-value":e.cacheBook,class:"readerDrawerItem cacheBook",density:"compact",disabled:o.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[6]||(t[6]=n=>e.setSettingsClient({cacheBook:n}))},null,8,["model-value","disabled"]),[[H,{openDelay:i.openDelay,text:"Cache all pages from this book in the browser"}]]),e.pdfInBrowserURL?(c(),g(l,{key:0,"prepend-icon":i.mdiEye,"append-icon":i.mdiOpenInNew,title:"Read in Tab",href:e.pdfInBrowserURL,target:"_blank"},null,8,["prepend-icon","append-icon","href"])):S("",!0)],64)}const bo=k(po,[["render",ko],["__scopeId","data-v-42dbb202"]]),fo={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:lo,ReaderKeyboardShortcutsPanel:go,ReaderSettingsPanel:bo}};function _o(e,t,a,p,i,o){const l=h("ReaderSettingsPanel"),n=h("ReaderKeyboardShortcutsPanel"),m=h("DownloadPanel");return c(),P(C,null,[r(l),r(F),r(n),r(F),r(m)],64)}const Po=k(fo,[["render",_o]]),vo={name:"ReaderSettingsDrawer",components:{SettingsDrawer:tt,ReaderSettingsSuperPanel:Po}};function wo(e,t,a,p,i,o){const l=h("ReaderSettingsSuperPanel"),n=h("SettingsDrawer");return c(),g(n,{title:"Reader",temporary:"","disable-resize-watcher":""},{panel:d(()=>[r(l)]),_:1})}const So=k(vo,[["render",wo]]),Z={a:xe,f:Ue,p:Fe,i:ze,s:Me,v:We},yo={a:"Story Arc",f:"Folder",p:"Publisher",i:"Imprint",s:"Series",v:"Volume"},Ro={name:"ReaderArcSelect",components:{ToolbarSelect:gt},data(){return{mdiFilterOutline:Ae}},computed:{..._(u,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arc:e=>e.arc,arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pks===t.pks)return t.name;return"Unknown"},arcItems:e=>{const t=[];for(const a of e.arcs){const p={value:a,title:a.name,group:a.group,filters:a.filters,subtitle:yo[a.group],prependIcon:Z[a.group]};t.push(p)}return t}})},methods:{...f(u,["loadBooks"]),arcIcon(e){return Z[e]},checkIcon(e){return e.group===this.arc.group&&e.pks==this.arc.pks?Ee:""},subtitle(e){let t=e.subtitle;return e.filters&&(t+=" (filtered)"),t},onUpdate(e){const t={group:e.group,pks:e.pks};this.loadBooks({arc:t})}}},Co={id:"arcPos"};function Bo(e,t,a,p,i,o){const l=h("ToolbarSelect");return c(),g(l,{"model-value":e.arc,class:"arcSelect","select-label":"reading order",items:e.arcItems,disabled:!e.arcItems||e.arcItems.length<=1,"onUpdate:modelValue":o.onUpdate},{item:d(({item:n,props:m})=>[r(He,U(m,{density:"compact",variant:"plain","prepend-icon":n.raw.prependIcon,subtitle:o.subtitle(n.raw),"append-icon":o.checkIcon(m.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:d(({item:n,props:m})=>[r(y,U({size:"large"},m,{class:"arcSelectIcon"}),{default:d(()=>[b(v(o.arcIcon(n.raw.group)),1)]),_:2},1040),s("span",Co,v(e.arc.index)+" / "+v(e.arc.count),1)]),_:1},8,["model-value","items","disabled","onUpdate:modelValue"])}const To=k(Ro,[["render",Bo],["__scopeId","data-v-62bf79bd"]]),Do={name:"ReaderTitleToolbar",components:{MetadataDialog:pt,ReaderArcSelect:To,SettingsDrawerButton:ot},data(){return{mdiClose:qe,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...w(T,["isAuthDialogOpen"]),...w(u,["activeTitle","closeBookRoute"]),..._(u,{showToolbars:e=>e.showToolbars,currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}},empty:e=>e.empty,subtitle:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.name)||""}}),title(){return this.activeTitle},extensionHeight(){let e=32;return this.subtitle&&(e*=2),e+=4,e},closeRoute(){const e=z(this.closeBookRoute),t=z(e.params);return delete t.name,e.params=t,e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(M,["setTimestamp"]),...f(u,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.empty||this.openMetadata();break}}}},Io={id:"title"},Lo={key:0,id:"subtitle"};function $o(e,t,a,p,i,o){const l=h("ReaderArcSelect"),n=h("MetadataDialog"),m=h("SettingsDrawerButton");return c(),g(je,null,{default:d(()=>[B(r(st,{id:"readerToolbarTop",density:"compact","extension-height":o.extensionHeight},Ke({default:d(()=>[r(x,null,{default:d(()=>[r(ne,{ref:"closeBook",class:"closeBook",to:o.closeRoute,size:"large",density:"compact",variant:"plain",onClick:o.onCloseBook},{default:d(()=>t[0]||(t[0]=[b(" close book ")])),_:1},8,["to","onClick"])]),_:1}),r(mt),e.empty?S("",!0):(c(),g(x,{key:0},{default:d(()=>[r(l),r(n,{ref:"metadataDialog",group:"c",toolbar:!0,book:e.currentBook},null,8,["book"])]),_:1})),r(x,null,{default:d(()=>[r(m)]),_:1})]),_:2},[o.title?{name:"extension",fn:d(()=>[r(at,{class:"readerTitle"},{default:d(()=>[s("div",Io,v(o.title),1),e.subtitle?(c(),P("div",Lo,v(e.subtitle),1)):S("",!0)]),_:1})]),key:"0"}:void 0]),1032,["extension-height"]),[[ie,e.showToolbars]])]),_:1})}const be=k(Do,[["render",$o],["__scopeId","data-v-dc4c0fde"]]),Oo={name:"ReaderEmptyBooks",components:{ReaderTopToolbar:be,EmptyState:de},data(){return{mdiBookRemoveOutline:Ge}},methods:{...f(u,["loadBooks"]),onAction(){this.loadBooks({mtime:Date.now()})}}};function Vo(e,t,a,p,i,o){const l=h("ReaderTopToolbar"),n=h("EmptyState");return c(),P(C,null,[r(l),r(n,{headline:"Book Not Found",title:"Close the reader and find another book",icon:i.mdiBookRemoveOutline,"action-text":"Try to load book again","onClick:action":o.onAction},null,8,["icon","onClick:action"])],64)}const No=k(Oo,[["render",Vo]]),Ao={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:ge},props:{direction:{type:String,required:!0}},computed:{...w(u,["isBTT"]),..._(u,{toRoute(e){var a;const t=(a=e==null?void 0:e.routes)==null?void 0:a.books[this.direction];return t?{params:z(t)}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},classes(){return{bookChangeNavButtonLeft:this.direction==="prev",bookChangeNavButtonRight:this.direction==="next"}}},methods:{...f(u,["bookChangeIcon"])}};function Eo(e,t,a,p,i,o){const l=h("PaginationNavButton");return e.toRoute?(c(),g(l,{key:0,class:R(o.classes),icon:"",variant:"plain",title:o.title,to:e.toRoute},{default:d(()=>[r(y,null,{default:d(()=>[b(v(o.icon),1)]),_:1})]),_:1},8,["class","title","to"])):S("",!0)}const xo=k(Ao,[["render",Eo],["__scopeId","data-v-f8015577"]]),Uo={name:"ReaderNavButton",components:{PaginationNavButton:ge},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...w(u,["isVertical"]),..._(u,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}},isBookPrev:e=>!!e.routes.books.prev,isBookNext:e=>!!e.routes.books.next}),classes(){return{readerNavButtonLeft:!this.isBookPrev&&this.value===0,readerNavButtonRight:!this.isBookNext&&this.value!=0}},title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...f(u,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function Fo(e,t,a,p,i,o){const l=h("PaginationNavButton");return c(),g(l,{key:e.isVertical,disabled:o.disabled,class:R(["readerNavButton",o.classes]),title:o.title,to:e.toRoute,onClick:o.onClick},{default:d(()=>[b(v(a.value),1)]),_:1},8,["disabled","class","title","to","onClick"])}const zo=k(Uo,[["render",Fo],["__scopeId","data-v-530fba8c"]]),L="prev",$="next",Mo={name:"ReaderNavToolbar",components:{PaginationSlider:kt,ReaderNavButton:zo,PaginationToolbar:bt,ReaderBookChangeNavButton:xo},computed:{...w(T,["isAuthDialogOpen"]),...w(u,["activeSettings","isReadInReverse","isVertical"]),..._(u,{showToolbars:e=>e.showToolbars,storePage:e=>e.page,key(e){var a,p;return`${(p=(a=e.books)==null?void 0:a.current)==null?void 0:p.pk}:${this.step}:${this.isReadInReverse}`},maxPage:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.maxPage)||0}}),twoPages(){return this.activeSettings.twoPages},step(){return this.activeSettings.twoPages?2:1},trackColor(){return this.twoPages&&+this.storePage>=this.maxPage-1?this.$vuetify.theme.current.colors.primary:""},min(){return this.isReadInReverse?this.maxPage:0},max(){return this.isReadInReverse?0:this.maxPage},bookPrev(){return this.isReadInReverse?"next":"prev"},bookNext(){return this.isReadInReverse?"prev":"next"}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(u,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection($):e.shiftKey&&window.scrollY===0&&this.routeToDirection(L);break;case"j":case"ArrowRight":this.routeToDirection($);break;case"k":case"ArrowLeft":this.routeToDirection(L);break;case",":this.routeToDirectionOne(L);break;case".":this.routeToDirectionOne($);break;case"n":this.routeToBook($);break;case"p":this.routeToBook(L);break}}}};function Wo(e,t,a,p,i,o){const l=h("ReaderBookChangeNavButton"),n=h("ReaderNavButton"),m=h("PaginationSlider"),V=h("PaginationToolbar");return c(),g(Ye,null,{default:d(()=>[e.maxPage?B((c(),g(V,{key:0,id:"readerToolbarNav"},{default:d(()=>[r(l,{direction:o.bookPrev,narrow:!1},null,8,["direction"]),r(n,{value:o.min,"two-pages":o.twoPages},null,8,["value","two-pages"]),(c(),g(m,{key:e.key,"model-value":e.storePage,min:0,max:e.maxPage,step:o.step,"track-color":o.trackColor,reverse:e.isReadInReverse,"onUpdate:modelValue":t[0]||(t[0]=N=>o.onSliderUpdate(N))},null,8,["model-value","max","step","track-color","reverse"])),r(n,{value:o.max,"two-pages":o.twoPages},null,8,["value","two-pages"]),r(l,{direction:o.bookNext,narrow:!1},null,8,["direction"])]),_:1},512)),[[ie,e.showToolbars]]):S("",!0)]),_:1})}const Ho=k(Mo,[["render",Wo],["__scopeId","data-v-955ab3ce"]]),qo={name:"MainReader",components:{BooksWindow:so,ReaderEmpty:No,ReaderNavToolbar:Ho,ReaderTopToolbar:be,ReaderSettingsDrawer:So,Unauthorized:nt},data(){return{showToolbars:!1}},computed:{...w(T,["isAuthorized"]),..._(T,{user:e=>e.user}),..._(u,{empty:e=>e.empty,arc:e=>e.arc})},watch:{user(){this.loadReaderSettings()},isAuthorized(){this.loadReaderSettings()}},beforeMount(){this.reset(),this.loadReaderSettings()},methods:{...f(u,["loadReaderSettings","reset"])}},Ko={key:0},jo={id:"readerContainer"};function Go(e,t,a,p,i,o){const l=h("ReaderTopToolbar"),n=h("BooksWindow"),m=h("ReaderNavToolbar"),V=h("ReaderEmpty"),N=h("ReaderSettingsDrawer"),fe=h("Unauthorized");return e.isAuthorized?(c(),g(it,{key:0,id:"readerWrapper"},{default:d(()=>[e.empty?(c(),g(V,{key:1})):(c(),P("div",Ko,[s("div",jo,[r(l),r(n),r(m)])])),r(N)]),_:1})):(c(),g(fe,{key:1}))}const Yo=k(qo,[["render",Go],["__scopeId","data-v-4f31abfa"]]),na=Object.freeze(Object.defineProperty({__proto__:null,default:Yo},Symbol.toStringTag,{value:"Module"}));export{qt as P,me as S,na as r};
@@ -1 +0,0 @@
1
- import{_ as O,aW as w,V as c,aA as u,aK as l,aC as b,Q as d,W as k,al as y,aB as _,ag as K,bt as P,R as T,A as L,z as C,cg as B,ch as E,S as v,aE as N,U as g,af as R}from"./admin-drawer-panel-BaXFOcru.js";import{C as p,t as V,c as A}from"./main-BPIPjzsc.js";import{V as D}from"./VTable-DXH_yQ0o.js";import{C as x}from"./confirm-dialog-D3_s2DQy.js";import{c as G}from"./copy-to-clipboard-DoUvDJVx.js";import"./VDialog-BkpVGB70.js";const U={name:"StatsTable",props:{title:{type:String,required:!0},items:{type:Object,required:!0}},data(){return{}},methods:{valueTable(e){return e&&typeof e=="object"?e:{}},tdClasses(e){return{indent:e[0]==="+"}},tdLabel(e){return e.replace(/^\+/,"")},nf(e){return typeof e=="number"?w.format(e):e}}},z={class:"statBlock"},$={key:0},F={colspan:"2",class:"subtitleRow"},H={key:1},M={class:"indent"};function q(e,s,t,r,a,o){return c(),u("div",z,[l("h3",null,b(t.title),1),d(D,{class:"highlight-table"},{default:k(()=>[(c(!0),u(y,null,_(Object.entries(t.items),([n,i])=>(c(),u("tbody",{key:n},[typeof i=="object"?(c(),u("tr",$,[l("th",F,b(n),1)])):(c(),u("tr",H,[l("td",{class:K(o.tdClasses(n))},b(o.tdLabel(n)),3),l("td",null,b(o.nf(i)),1)])),(c(!0),u(y,null,_(Object.entries(o.valueTable(i)),([m,f])=>(c(),u("tr",{key:m},[l("td",M,b(m),1),l("td",null,b(o.nf(f)),1)]))),128))]))),128)),P(e.$slots,"default",{},void 0,!0)]),_:3})])}const W=O(U,[["render",q],["__scopeId","data-v-4bb3ecd9"]]),Q="Copy API Key to clipboard",h=e=>{const s={};for(const t of e)s[t.value]=t.title;return s},S={topGroup:p.browser.groupNames,orderBy:h(p.browser.orderBy),fitTo:h(p.reader.fitTo),readingDirection:h(p.reader.readingDirection)},I={authGroupCount:"Authorization Groups",libraryCount:"Libraries",userAnonymousCount:"Anonymous Users",userRegisteredCount:"Registered Users"};Object.freeze(I);Object.freeze(S);const j=new Set(["storyArcNumbersCount","identifierTypesCount","contributorPersonsCount","contributorRolesCount"]);Object.freeze(j);const X={name:"AdminTasksTab",components:{ConfirmDialog:x,StatsTable:W},data(){return{showTooltip:{show:!1},schemaHref:`${window.CODEX.API_V3_PATH}#/api/api_v3_admin_stats_retrieve`}},computed:{...T(L,{}),...T(C,{stats:e=>e.stats}),clipBoardEnabled(){return location.prototcal=="https:"},apiTooltip(){return Q?this.clipBoardEnabled:void 0},clipBoardIcon(){return this.showTooltip?B:E},platformTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.platform)){const a=this.keyToLabel(t),o=t==="system"?`${r.name} ${r.release}`:r;e[a]=o}return e},configTable(){var t;const e={};let s="";for(const[r,a]of Object.entries((t=this.stats)==null?void 0:t.config)){let o;if(r=="apiKey"){s=a;continue}else o=I[r];e[o]=a}return e["API Key"]=s,e},userSettingsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.sessions)){const a={},o=S[t];for(const[i,m]of Object.entries(r)){let f;o?f=o[V(i)]:f=i,a[f]=m}const n=this.keyToLabel(t);e[n]=a}return e},browserGroupsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.groups)){let a=this.keyToLabel(t);a!=="Series"&&(a+="s"),e[a]=r}return e},fileTypesTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.fileTypes)){const a=t==="unknown"?A(t):this.keyToLabel(t).toUpperCase();e[a]=r}return e},metadataTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.metadata)){let a=t==="countryCount"?"Countries":this.keyToLabel(t)+"s";j.has(t)&&(a=a.replace(/^\w+ /,"+")),e[a]=r}return e}},created(){this.loadStats()},methods:{...v(C,["loadStats","updateAPIKey"]),regenAPIKey(){this.updateAPIKey().then(this.loadStats).catch(console.warn)},onClickAPIKey(){this.clipBoardEnabled&&G(this.stats.config.apiKey,this.showTooltip)},keyToLabel(e){return e=e.replace(/Count$/,""),A(e)}}},Y={key:0,id:"stats"},J={id:"schemaDoc"},Z={colspan:"2"},ee=["href"],te={colspan:"2"};function se(e,s,t,r,a,o){const n=g("StatsTable"),i=g("ConfirmDialog");return e.stats?(c(),u("div",Y,[d(n,{title:"Platform",items:o.platformTable},null,8,["items"]),d(n,{title:"Config",items:o.configTable},{default:k(()=>[l("tbody",null,[l("tr",J,[l("td",Z,[s[0]||(s[0]=R(" The only endpoint accessible by API Key is ")),l("a",{href:a.schemaHref,target:"_blank"},"/admin/stats",8,ee)])]),l("tr",null,[l("td",te,[d(i,{"button-text":"Regenerate API Key","title-text":"Regenerate","object-name":"API Key","confirm-text":"Regenerate",onConfirm:o.regenAPIKey},null,8,["onConfirm"])])])])]),_:1},8,["items"]),d(n,{title:"User Settings",items:o.userSettingsTable},null,8,["items"]),d(n,{title:"Browser Groups",items:o.browserGroupsTable},null,8,["items"]),d(n,{title:"File Types",items:o.fileTypesTable},null,8,["items"]),d(n,{title:"Metadata",items:o.metadataTable},null,8,["items"])])):N("",!0)}const ce=O(X,[["render",se],["__scopeId","data-v-7d4f247b"]]);export{ce as default};
@@ -1 +0,0 @@
1
- import{_ as O,aW as w,V as c,aA as u,aK as l,aC as b,Q as d,W as k,al as y,aB as _,ag as K,bt as P,R as T,A as L,z as C,cg as B,ch as E,S as v,aE as N,U as g,af as R}from"./admin-drawer-panel-BaXFOcru.js";import{C as p,t as V,c as A}from"./main-BPIPjzsc.js";import{V as D}from"./VTable-DXH_yQ0o.js";import{C as x}from"./confirm-dialog-D3_s2DQy.js";import{c as G}from"./copy-to-clipboard-DoUvDJVx.js";import"./VDialog-BkpVGB70.js";const U={name:"StatsTable",props:{title:{type:String,required:!0},items:{type:Object,required:!0}},data(){return{}},methods:{valueTable(e){return e&&typeof e=="object"?e:{}},tdClasses(e){return{indent:e[0]==="+"}},tdLabel(e){return e.replace(/^\+/,"")},nf(e){return typeof e=="number"?w.format(e):e}}},z={class:"statBlock"},$={key:0},F={colspan:"2",class:"subtitleRow"},H={key:1},M={class:"indent"};function q(e,s,t,r,a,o){return c(),u("div",z,[l("h3",null,b(t.title),1),d(D,{class:"highlight-table"},{default:k(()=>[(c(!0),u(y,null,_(Object.entries(t.items),([n,i])=>(c(),u("tbody",{key:n},[typeof i=="object"?(c(),u("tr",$,[l("th",F,b(n),1)])):(c(),u("tr",H,[l("td",{class:K(o.tdClasses(n))},b(o.tdLabel(n)),3),l("td",null,b(o.nf(i)),1)])),(c(!0),u(y,null,_(Object.entries(o.valueTable(i)),([m,f])=>(c(),u("tr",{key:m},[l("td",M,b(m),1),l("td",null,b(o.nf(f)),1)]))),128))]))),128)),P(e.$slots,"default",{},void 0,!0)]),_:3})])}const W=O(U,[["render",q],["__scopeId","data-v-4bb3ecd9"]]),Q="Copy API Key to clipboard",h=e=>{const s={};for(const t of e)s[t.value]=t.title;return s},S={topGroup:p.browser.groupNames,orderBy:h(p.browser.orderBy),fitTo:h(p.reader.fitTo),readingDirection:h(p.reader.readingDirection)},I={authGroupCount:"Authorization Groups",libraryCount:"Libraries",userAnonymousCount:"Anonymous Users",userRegisteredCount:"Registered Users"};Object.freeze(I);Object.freeze(S);const j=new Set(["storyArcNumbersCount","identifierTypesCount","contributorPersonsCount","contributorRolesCount"]);Object.freeze(j);const X={name:"AdminTasksTab",components:{ConfirmDialog:x,StatsTable:W},data(){return{showTooltip:{show:!1},schemaHref:`${window.CODEX.API_V3_PATH}#/api/api_v3_admin_stats_retrieve`}},computed:{...T(L,{}),...T(C,{stats:e=>e.stats}),clipBoardEnabled(){return location.prototcal=="https:"},apiTooltip(){return Q?this.clipBoardEnabled:void 0},clipBoardIcon(){return this.showTooltip?B:E},platformTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.platform)){const a=this.keyToLabel(t),o=t==="system"?`${r.name} ${r.release}`:r;e[a]=o}return e},configTable(){var t;const e={};let s="";for(const[r,a]of Object.entries((t=this.stats)==null?void 0:t.config)){let o;if(r=="apiKey"){s=a;continue}else o=I[r];e[o]=a}return e["API Key"]=s,e},userSettingsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.sessions)){const a={},o=S[t];for(const[i,m]of Object.entries(r)){let f;o?f=o[V(i)]:f=i,a[f]=m}const n=this.keyToLabel(t);e[n]=a}return e},browserGroupsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.groups)){let a=this.keyToLabel(t);a!=="Series"&&(a+="s"),e[a]=r}return e},fileTypesTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.fileTypes)){const a=t==="unknown"?A(t):this.keyToLabel(t).toUpperCase();e[a]=r}return e},metadataTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.metadata)){let a=t==="countryCount"?"Countries":this.keyToLabel(t)+"s";j.has(t)&&(a=a.replace(/^\w+ /,"+")),e[a]=r}return e}},created(){this.loadStats()},methods:{...v(C,["loadStats","updateAPIKey"]),regenAPIKey(){this.updateAPIKey().then(this.loadStats).catch(console.warn)},onClickAPIKey(){this.clipBoardEnabled&&G(this.stats.config.apiKey,this.showTooltip)},keyToLabel(e){return e=e.replace(/Count$/,""),A(e)}}},Y={key:0,id:"stats"},J={id:"schemaDoc"},Z={colspan:"2"},ee=["href"],te={colspan:"2"};function se(e,s,t,r,a,o){const n=g("StatsTable"),i=g("ConfirmDialog");return e.stats?(c(),u("div",Y,[d(n,{title:"Platform",items:o.platformTable},null,8,["items"]),d(n,{title:"Config",items:o.configTable},{default:k(()=>[l("tbody",null,[l("tr",J,[l("td",Z,[s[0]||(s[0]=R(" The only endpoint accessible by API Key is ")),l("a",{href:a.schemaHref,target:"_blank"},"/admin/stats",8,ee)])]),l("tr",null,[l("td",te,[d(i,{"button-text":"Regenerate API Key","title-text":"Regenerate","object-name":"API Key","confirm-text":"Regenerate",onConfirm:o.regenAPIKey},null,8,["onConfirm"])])])])]),_:1},8,["items"]),d(n,{title:"User Settings",items:o.userSettingsTable},null,8,["items"]),d(n,{title:"Browser Groups",items:o.browserGroupsTable},null,8,["items"]),d(n,{title:"File Types",items:o.fileTypesTable},null,8,["items"]),d(n,{title:"Metadata",items:o.metadataTable},null,8,["items"])])):N("",!0)}const ce=O(X,[["render",se],["__scopeId","data-v-7d4f247b"]]);export{ce as default};
@@ -1 +0,0 @@
1
- import{aH as T,bf as de,az as H,_ as b,U as m,V as u,T as c,B as z,M as N,aq as O,cv as ue,r as ce,ac as me,h as q,D as fe,P as W,cw as ge,Q as a,am as V,al as Q,ba as R,ca as he,aL as Y,cx as pe,cy as J,aF as ve,R as P,A as we,m as w,bm as ye,S as X,W as g,bi as U,bL as _e,aE as A,af as ke,cz as be,aA as Se,aR as Ve,b7 as Ce,K as Z,aY as ee,cA as Le,L as Pe,N as Ae,au as Be,av as De,a$ as te,cq as Me,c2 as Ee,G as Ie,ak as $e,bg as xe,aB as Ue,bt as Fe,as as Re,b$ as Te,bw as ze,aK as Ne}from"./admin-drawer-panel-BaXFOcru.js";import{u as We,p as Ke}from"./main-BPIPjzsc.js";import{C as Oe}from"./change-password-dialog-DlHoLhDF.js";import{S as qe,V as F,a as je}from"./VTextField-Blqy56_L.js";import{a as Ge,c as He,u as Qe,V as j,d as G}from"./VSelectionControl-D6kmykQW.js";import{V as Ye}from"./VDialog-BkpVGB70.js";const Je={name:"AdminBrowserLink",components:{DrawerItem:T},data(){return{mdiBookshelf:de}},computed:{...H(We,["lastRoute"])}};function Xe(e,s,r,t,o,i){const l=m("DrawerItem");return u(),c(l,{to:e.lastRoute,"prepend-icon":o.mdiBookshelf,title:"Browser"},null,8,["to","prepend-icon"])}const Ze=b(Je,[["render",Xe]]),et=z({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...Ge(),...He()},"VSwitch"),tt=N()({name:"VSwitch",inheritAttrs:!1,props:et(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,s){let{attrs:r,slots:t}=s;const o=O(e,"indeterminate"),i=O(e,"modelValue"),{loaderClasses:l}=ue(e),{isFocused:d,focus:n,blur:y}=Qe(e),_=ce(),C=me&&window.matchMedia("(forced-colors: active)").matches,B=q(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),D=fe(),M=q(()=>e.id||`switch-${D}`);function k(){o.value&&(o.value=!1)}function L(h){var p,v;h.stopPropagation(),h.preventDefault(),(v=(p=_.value)==null?void 0:p.input)==null||v.click()}return W(()=>{const[h,p]=ge(r),v=j.filterProps(e),se=G.filterProps(e);return a(j,V({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":o.value},l.value,e.class]},h,v,{modelValue:i.value,"onUpdate:modelValue":E=>i.value=E,id:M.value,focused:d.value,style:e.style}),{...t,default:E=>{let{id:ae,messagesId:oe,isDisabled:ne,isReadonly:re,isValid:K}=E;const I={model:i,isValid:K};return a(G,V({ref:_},se,{modelValue:i.value,"onUpdate:modelValue":[S=>i.value=S,k],id:ae.value,"aria-describedby":oe.value,type:"checkbox","aria-checked":o.value?"mixed":void 0,disabled:ne.value,readonly:re.value,onFocus:n,onBlur:y},p),{...t,default:S=>{let{backgroundColorClasses:$,backgroundColorStyles:f}=S;return a("div",{class:["v-switch__track",C?void 0:$.value],style:f.value,onClick:L},[t["track-true"]&&a("div",{key:"prepend",class:"v-switch__track-true"},[t["track-true"](I)]),t["track-false"]&&a("div",{key:"append",class:"v-switch__track-false"},[t["track-false"](I)])])},input:S=>{let{inputNode:$,icon:f,backgroundColorClasses:ie,backgroundColorStyles:le}=S;return a(Q,null,[$,a("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":f||e.loading},e.inset||C?void 0:ie.value],style:e.inset?void 0:le.value},[t.thumb?a(R,{defaults:{VIcon:{icon:f,size:"x-small"}}},{default:()=>[t.thumb({...I,icon:f})]}):a(he,null,{default:()=>[e.loading?a(pe,{name:"v-switch",active:!0,color:K.value===!1?void 0:B.value},{default:x=>t.loader?t.loader(x):a(J,{active:x.isActive,color:x.color,indeterminate:!0,size:"16",width:"2"},null)}):f&&a(Y,{key:String(f),icon:f,size:"x-small"},null)]})])])}})}})}),{}}}),st={name:"AuthLoginDialog",components:{SubmitFooter:qe,DrawerItem:T},data(){return{rules:{username:[e=>!!e||"Username is required"],password:[e=>e?this.registerMode&&e.length<this.MIN_PASSWORD_LEN?`Password must be ${this.MIN_PASSWORD_LEN} characters long`:!0:"Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},formModel:{},credentials:{username:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,registerMode:!1,mdiLogin:ve}},computed:{...P(we,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success}),...P(w,{adminFlags:e=>e.adminFlags,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...ye(w,["showLoginDialog"]),submitButtonLabel(){return this.registerMode?"Register":"Login"},loginLabel(){let e="Login";return this.adminFlags.registration&&(e+=" or Register"),e}},watch:{showLoginDialog(e){e&&(this.loadAdminFlags(),this.$refs.form&&this.$refs.form.reset())},credentials:{handler(){const e=this.$refs.form;e?e.validate().then(({valid:s})=>(this.submitButtonEnabled=s,s)).catch(console.error):this.submitButtonEnabled=!1},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...X(w,["loadAdminFlags","login","register"]),doAuth(e){return this[e](this.credentials).then(()=>(this.showLoginDialog=this.formErrors&&this.formErrors.length>0,this.showLoginDialog)).catch(console.error)},submit(){this.$refs.form.validate().then(({valid:s})=>{if(!s)return;const r=this.registerMode?"register":"login";return this.doAuth(r)}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}};function at(e,s,r,t,o,i){const l=m("DrawerItem"),d=m("SubmitFooter");return u(),c(Ye,{modelValue:e.showLoginDialog,"onUpdate:modelValue":s[7]||(s[7]=n=>e.showLoginDialog=n),origin:"center-top",transition:"slide-y-transition","max-width":"20em"},{activator:g(({props:n})=>[a(l,V(n,{"prepend-icon":o.mdiLogin,title:i.loginLabel}),null,16,["prepend-icon","title"])]),default:g(()=>[a(je,{id:"authDialog",ref:"form"},{default:g(()=>[a(F,{modelValue:o.credentials.username,"onUpdate:modelValue":s[0]||(s[0]=n=>o.credentials.username=n),autocomplete:"username",label:"Username",rules:o.rules.username,clearable:"",autofocus:"",onKeydown:s[1]||(s[1]=U(n=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"]),a(F,{ref:"password",modelValue:o.credentials.password,"onUpdate:modelValue":s[2]||(s[2]=n=>o.credentials.password=n),autocomplete:o.registerMode?"new-password":"current-password",label:"Password",rules:o.rules.password,clearable:"",type:"password",onKeydown:s[3]||(s[3]=U(n=>{o.registerMode?e.$refs.passwordConfirm.focus():i.submit()},["enter"]))},null,8,["modelValue","autocomplete","rules"]),a(_e,null,{default:g(()=>[o.registerMode?(u(),c(F,{key:0,ref:"passwordConfirm",modelValue:o.credentials.passwordConfirm,"onUpdate:modelValue":s[4]||(s[4]=n=>o.credentials.passwordConfirm=n),autocomplete:"new-password",label:"Confirm Password",rules:o.rules.passwordConfirm,clearable:"",type:"password",onKeydown:U(i.submit,["enter"])},null,8,["modelValue","rules","onKeydown"])):A("",!0)]),_:1}),e.adminFlags.registration?(u(),c(tt,{key:0,modelValue:o.registerMode,"onUpdate:modelValue":s[5]||(s[5]=n=>o.registerMode=n),label:"Register"},{default:g(()=>s[8]||(s[8]=[ke(" Register ")])),_:1},8,["modelValue"])):A("",!0),a(d,{verb:o.registerMode?"Register":"Login",table:"",disabled:!o.submitButtonEnabled,onSubmit:i.submit,onCancel:s[6]||(s[6]=n=>e.showLoginDialog=!1)},null,8,["verb","disabled","onSubmit"])]),_:1},512)]),_:1},8,["modelValue"])}const ot=b(st,[["render",at],["__scopeId","data-v-11855db1"]]),nt={name:"AuthMenu",components:{AuthLoginDialog:ot,ChangePasswordDialog:Oe,DrawerItem:T},props:{showChangePassword:{type:Boolean,default:!0}},data(){return{mdiLogout:be}},computed:{...P(w,{user:e=>e.user}),logoutTitle(){return`Logout ${this.user.username}`}},methods:{...X(w,["logout"])}},rt={key:0};function it(e,s,r,t,o,i){const l=m("DrawerItem"),d=m("ChangePasswordDialog"),n=m("AuthLoginDialog");return e.user?(u(),Se("div",rt,[a(l,{"prepend-icon":o.mdiLogout,title:i.logoutTitle,onClick:Ve(e.logout,["stop"])},null,8,["prepend-icon","title","onClick"]),r.showChangePassword?(u(),c(d,{key:0,user:e.user},null,8,["user"])):A("",!0)])):(u(),c(n,{key:1}))}const lt=b(nt,[["render",it]]),dt={name:"PlaceholderLoading",props:{indeterminate:{type:Boolean,default:!0}}};function ut(e,s,r,t,o,i){return u(),c(J,V({"aria-label":"loading",class:"codexProgressCircular",indeterminate:r.indeterminate},e.$attrs),null,16,["indeterminate"])}const ct=b(dt,[["render",ut],["__scopeId","data-v-7bb4cf22"]]),mt=z({actionText:String,bgColor:String,color:String,icon:Ce,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String,...Z(),...ee(),...Le({size:void 0}),...Pe()},"VEmptyState"),ft=N()({name:"VEmptyState",props:mt(),emits:{"click:action":e=>!0},setup(e,s){let{emit:r,slots:t}=s;const{themeClasses:o}=Ae(e),{backgroundColorClasses:i,backgroundColorStyles:l}=Be(De(e,"bgColor")),{dimensionStyles:d}=te(e),{displayClasses:n}=Me();function y(_){r("click:action",_)}return W(()=>{var L,h,p;const _=!!(t.actions||e.actionText),C=!!(t.headline||e.headline),B=!!(t.title||e.title),D=!!(t.text||e.text),M=!!(t.media||e.image||e.icon),k=e.size||(e.image?200:96);return a("div",{class:["v-empty-state",{[`v-empty-state--${e.justify}`]:!0},o.value,i.value,n.value,e.class],style:[l.value,d.value,e.style]},[M&&a("div",{key:"media",class:"v-empty-state__media"},[t.media?a(R,{key:"media-defaults",defaults:{VImg:{src:e.image,height:k},VIcon:{size:k,icon:e.icon}}},{default:()=>[t.media()]}):a(Q,null,[e.image?a(Ee,{key:"image",src:e.image,height:k},null):e.icon?a(Y,{key:"icon",color:e.color,size:k,icon:e.icon},null):void 0])]),C&&a("div",{key:"headline",class:"v-empty-state__headline"},[((L=t.headline)==null?void 0:L.call(t))??e.headline]),B&&a("div",{key:"title",class:"v-empty-state__title"},[((h=t.title)==null?void 0:h.call(t))??e.title]),D&&a("div",{key:"text",class:"v-empty-state__text",style:{maxWidth:Ie(e.textWidth)}},[((p=t.text)==null?void 0:p.call(t))??e.text]),t.default&&a("div",{key:"content",class:"v-empty-state__content"},[t.default()]),_&&a("div",{key:"actions",class:"v-empty-state__actions"},[a(R,{defaults:{VBtn:{class:"v-empty-state__action-btn",color:e.color??"surface-variant",text:e.actionText}}},{default:()=>{var v;return[((v=t.actions)==null?void 0:v.call(t,{props:{onClick:y}}))??a($e,{onClick:y},null)]}})])])}),{}}}),gt={name:"EmptyState"};function ht(e,s,r,t,o,i){return u(),c(ft,{class:"empty"},xe({_:2},[Ue(e.$slots,(l,d)=>({name:d,fn:g(n=>[Fe(e.$slots,d,V({props:l},n),void 0,!0)])}))]),1024)}const pt=b(gt,[["render",ht],["__scopeId","data-v-c7e33c8c"]]),vt=z({scrollable:Boolean,...Z(),...ee(),...Re({tag:"main"})},"VMain"),wt=N()({name:"VMain",props:vt(),setup(e,s){let{slots:r}=s;const{dimensionStyles:t}=te(e),{mainStyles:o}=Ke(),{ssrBootStyles:i}=Te();return W(()=>a(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[o.value,i.value,t.value,e.style]},{default:()=>{var l,d;return[e.scrollable?a("div",{class:"v-main__scroller"},[(l=r.default)==null?void 0:l.call(r)]):(d=r.default)==null?void 0:d.call(r)]}})),{}}}),yt={name:"UnauthorizedEmptyState",components:{AdminBrowserLink:Ze,AuthMenu:lt,PlaceholderLoading:ct,EmptyState:pt},props:{admin:{type:Boolean,default:!1}},data(){return{mdiLockOutline:ze}},computed:{...H(w,["isAuthChecked","isAuthorized","isUserAdmin"]),...P(w,{showAdminBrowserLink(e){var s,r,t;return((t=(r=(s=this.$router.currentRoute)==null?void 0:s.value)==null?void 0:r.name)==null?void 0:t.startsWith("admin"))&&e.adminFlags.nonUsers},text(e){return e.adminFlags.registration?"":"Registration is disabled"}})}},_t={class:"login"};function kt(e,s,r,t,o,i){const l=m("AdminBrowserLink"),d=m("AuthMenu"),n=m("EmptyState"),y=m("PlaceholderLoading");return u(),c(wt,{id:"unauthorized"},{default:g(()=>[e.isAuthChecked?(u(),c(n,{key:0,class:"empty",headline:"Unauthorized",text:e.text,icon:o.mdiLockOutline},{default:g(()=>[Ne("div",_t,[e.showAdminBrowserLink?(u(),c(l,{key:0})):A("",!0),a(d,{"show-change-password":!1})])]),_:1},8,["text","icon"])):(u(),c(y,{key:1,id:"unauthorizedPlaceholder"}))]),_:1})}const At=b(yt,[["render",kt],["__scopeId","data-v-a56ad455"]]);export{Ze as A,pt as E,ct as P,At as U,wt as V,lt as a};
@@ -1 +0,0 @@
1
- import{aH as T,bf as de,az as H,_ as b,U as m,V as u,T as c,B as z,M as N,aq as O,cv as ue,r as ce,ac as me,h as q,D as fe,P as W,cw as ge,Q as a,am as V,al as Q,ba as R,ca as he,aL as Y,cx as pe,cy as J,aF as ve,R as P,A as we,m as w,bm as ye,S as X,W as g,bi as U,bL as _e,aE as A,af as ke,cz as be,aA as Se,aR as Ve,b7 as Ce,K as Z,aY as ee,cA as Le,L as Pe,N as Ae,au as Be,av as De,a$ as te,cq as Me,c2 as Ee,G as Ie,ak as $e,bg as xe,aB as Ue,bt as Fe,as as Re,b$ as Te,bw as ze,aK as Ne}from"./admin-drawer-panel-BaXFOcru.js";import{u as We,p as Ke}from"./main-BPIPjzsc.js";import{C as Oe}from"./change-password-dialog-DlHoLhDF.js";import{S as qe,V as F,a as je}from"./VTextField-Blqy56_L.js";import{a as Ge,c as He,u as Qe,V as j,d as G}from"./VSelectionControl-D6kmykQW.js";import{V as Ye}from"./VDialog-BkpVGB70.js";const Je={name:"AdminBrowserLink",components:{DrawerItem:T},data(){return{mdiBookshelf:de}},computed:{...H(We,["lastRoute"])}};function Xe(e,s,r,t,o,i){const l=m("DrawerItem");return u(),c(l,{to:e.lastRoute,"prepend-icon":o.mdiBookshelf,title:"Browser"},null,8,["to","prepend-icon"])}const Ze=b(Je,[["render",Xe]]),et=z({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...Ge(),...He()},"VSwitch"),tt=N()({name:"VSwitch",inheritAttrs:!1,props:et(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,s){let{attrs:r,slots:t}=s;const o=O(e,"indeterminate"),i=O(e,"modelValue"),{loaderClasses:l}=ue(e),{isFocused:d,focus:n,blur:y}=Qe(e),_=ce(),C=me&&window.matchMedia("(forced-colors: active)").matches,B=q(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),D=fe(),M=q(()=>e.id||`switch-${D}`);function k(){o.value&&(o.value=!1)}function L(h){var p,v;h.stopPropagation(),h.preventDefault(),(v=(p=_.value)==null?void 0:p.input)==null||v.click()}return W(()=>{const[h,p]=ge(r),v=j.filterProps(e),se=G.filterProps(e);return a(j,V({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":o.value},l.value,e.class]},h,v,{modelValue:i.value,"onUpdate:modelValue":E=>i.value=E,id:M.value,focused:d.value,style:e.style}),{...t,default:E=>{let{id:ae,messagesId:oe,isDisabled:ne,isReadonly:re,isValid:K}=E;const I={model:i,isValid:K};return a(G,V({ref:_},se,{modelValue:i.value,"onUpdate:modelValue":[S=>i.value=S,k],id:ae.value,"aria-describedby":oe.value,type:"checkbox","aria-checked":o.value?"mixed":void 0,disabled:ne.value,readonly:re.value,onFocus:n,onBlur:y},p),{...t,default:S=>{let{backgroundColorClasses:$,backgroundColorStyles:f}=S;return a("div",{class:["v-switch__track",C?void 0:$.value],style:f.value,onClick:L},[t["track-true"]&&a("div",{key:"prepend",class:"v-switch__track-true"},[t["track-true"](I)]),t["track-false"]&&a("div",{key:"append",class:"v-switch__track-false"},[t["track-false"](I)])])},input:S=>{let{inputNode:$,icon:f,backgroundColorClasses:ie,backgroundColorStyles:le}=S;return a(Q,null,[$,a("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":f||e.loading},e.inset||C?void 0:ie.value],style:e.inset?void 0:le.value},[t.thumb?a(R,{defaults:{VIcon:{icon:f,size:"x-small"}}},{default:()=>[t.thumb({...I,icon:f})]}):a(he,null,{default:()=>[e.loading?a(pe,{name:"v-switch",active:!0,color:K.value===!1?void 0:B.value},{default:x=>t.loader?t.loader(x):a(J,{active:x.isActive,color:x.color,indeterminate:!0,size:"16",width:"2"},null)}):f&&a(Y,{key:String(f),icon:f,size:"x-small"},null)]})])])}})}})}),{}}}),st={name:"AuthLoginDialog",components:{SubmitFooter:qe,DrawerItem:T},data(){return{rules:{username:[e=>!!e||"Username is required"],password:[e=>e?this.registerMode&&e.length<this.MIN_PASSWORD_LEN?`Password must be ${this.MIN_PASSWORD_LEN} characters long`:!0:"Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},formModel:{},credentials:{username:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,registerMode:!1,mdiLogin:ve}},computed:{...P(we,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success}),...P(w,{adminFlags:e=>e.adminFlags,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...ye(w,["showLoginDialog"]),submitButtonLabel(){return this.registerMode?"Register":"Login"},loginLabel(){let e="Login";return this.adminFlags.registration&&(e+=" or Register"),e}},watch:{showLoginDialog(e){e&&(this.loadAdminFlags(),this.$refs.form&&this.$refs.form.reset())},credentials:{handler(){const e=this.$refs.form;e?e.validate().then(({valid:s})=>(this.submitButtonEnabled=s,s)).catch(console.error):this.submitButtonEnabled=!1},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...X(w,["loadAdminFlags","login","register"]),doAuth(e){return this[e](this.credentials).then(()=>(this.showLoginDialog=this.formErrors&&this.formErrors.length>0,this.showLoginDialog)).catch(console.error)},submit(){this.$refs.form.validate().then(({valid:s})=>{if(!s)return;const r=this.registerMode?"register":"login";return this.doAuth(r)}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}};function at(e,s,r,t,o,i){const l=m("DrawerItem"),d=m("SubmitFooter");return u(),c(Ye,{modelValue:e.showLoginDialog,"onUpdate:modelValue":s[7]||(s[7]=n=>e.showLoginDialog=n),origin:"center-top",transition:"slide-y-transition","max-width":"20em"},{activator:g(({props:n})=>[a(l,V(n,{"prepend-icon":o.mdiLogin,title:i.loginLabel}),null,16,["prepend-icon","title"])]),default:g(()=>[a(je,{id:"authDialog",ref:"form"},{default:g(()=>[a(F,{modelValue:o.credentials.username,"onUpdate:modelValue":s[0]||(s[0]=n=>o.credentials.username=n),autocomplete:"username",label:"Username",rules:o.rules.username,clearable:"",autofocus:"",onKeydown:s[1]||(s[1]=U(n=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"]),a(F,{ref:"password",modelValue:o.credentials.password,"onUpdate:modelValue":s[2]||(s[2]=n=>o.credentials.password=n),autocomplete:o.registerMode?"new-password":"current-password",label:"Password",rules:o.rules.password,clearable:"",type:"password",onKeydown:s[3]||(s[3]=U(n=>{o.registerMode?e.$refs.passwordConfirm.focus():i.submit()},["enter"]))},null,8,["modelValue","autocomplete","rules"]),a(_e,null,{default:g(()=>[o.registerMode?(u(),c(F,{key:0,ref:"passwordConfirm",modelValue:o.credentials.passwordConfirm,"onUpdate:modelValue":s[4]||(s[4]=n=>o.credentials.passwordConfirm=n),autocomplete:"new-password",label:"Confirm Password",rules:o.rules.passwordConfirm,clearable:"",type:"password",onKeydown:U(i.submit,["enter"])},null,8,["modelValue","rules","onKeydown"])):A("",!0)]),_:1}),e.adminFlags.registration?(u(),c(tt,{key:0,modelValue:o.registerMode,"onUpdate:modelValue":s[5]||(s[5]=n=>o.registerMode=n),label:"Register"},{default:g(()=>s[8]||(s[8]=[ke(" Register ")])),_:1},8,["modelValue"])):A("",!0),a(d,{verb:o.registerMode?"Register":"Login",table:"",disabled:!o.submitButtonEnabled,onSubmit:i.submit,onCancel:s[6]||(s[6]=n=>e.showLoginDialog=!1)},null,8,["verb","disabled","onSubmit"])]),_:1},512)]),_:1},8,["modelValue"])}const ot=b(st,[["render",at],["__scopeId","data-v-11855db1"]]),nt={name:"AuthMenu",components:{AuthLoginDialog:ot,ChangePasswordDialog:Oe,DrawerItem:T},props:{showChangePassword:{type:Boolean,default:!0}},data(){return{mdiLogout:be}},computed:{...P(w,{user:e=>e.user}),logoutTitle(){return`Logout ${this.user.username}`}},methods:{...X(w,["logout"])}},rt={key:0};function it(e,s,r,t,o,i){const l=m("DrawerItem"),d=m("ChangePasswordDialog"),n=m("AuthLoginDialog");return e.user?(u(),Se("div",rt,[a(l,{"prepend-icon":o.mdiLogout,title:i.logoutTitle,onClick:Ve(e.logout,["stop"])},null,8,["prepend-icon","title","onClick"]),r.showChangePassword?(u(),c(d,{key:0,user:e.user},null,8,["user"])):A("",!0)])):(u(),c(n,{key:1}))}const lt=b(nt,[["render",it]]),dt={name:"PlaceholderLoading",props:{indeterminate:{type:Boolean,default:!0}}};function ut(e,s,r,t,o,i){return u(),c(J,V({"aria-label":"loading",class:"codexProgressCircular",indeterminate:r.indeterminate},e.$attrs),null,16,["indeterminate"])}const ct=b(dt,[["render",ut],["__scopeId","data-v-7bb4cf22"]]),mt=z({actionText:String,bgColor:String,color:String,icon:Ce,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String,...Z(),...ee(),...Le({size:void 0}),...Pe()},"VEmptyState"),ft=N()({name:"VEmptyState",props:mt(),emits:{"click:action":e=>!0},setup(e,s){let{emit:r,slots:t}=s;const{themeClasses:o}=Ae(e),{backgroundColorClasses:i,backgroundColorStyles:l}=Be(De(e,"bgColor")),{dimensionStyles:d}=te(e),{displayClasses:n}=Me();function y(_){r("click:action",_)}return W(()=>{var L,h,p;const _=!!(t.actions||e.actionText),C=!!(t.headline||e.headline),B=!!(t.title||e.title),D=!!(t.text||e.text),M=!!(t.media||e.image||e.icon),k=e.size||(e.image?200:96);return a("div",{class:["v-empty-state",{[`v-empty-state--${e.justify}`]:!0},o.value,i.value,n.value,e.class],style:[l.value,d.value,e.style]},[M&&a("div",{key:"media",class:"v-empty-state__media"},[t.media?a(R,{key:"media-defaults",defaults:{VImg:{src:e.image,height:k},VIcon:{size:k,icon:e.icon}}},{default:()=>[t.media()]}):a(Q,null,[e.image?a(Ee,{key:"image",src:e.image,height:k},null):e.icon?a(Y,{key:"icon",color:e.color,size:k,icon:e.icon},null):void 0])]),C&&a("div",{key:"headline",class:"v-empty-state__headline"},[((L=t.headline)==null?void 0:L.call(t))??e.headline]),B&&a("div",{key:"title",class:"v-empty-state__title"},[((h=t.title)==null?void 0:h.call(t))??e.title]),D&&a("div",{key:"text",class:"v-empty-state__text",style:{maxWidth:Ie(e.textWidth)}},[((p=t.text)==null?void 0:p.call(t))??e.text]),t.default&&a("div",{key:"content",class:"v-empty-state__content"},[t.default()]),_&&a("div",{key:"actions",class:"v-empty-state__actions"},[a(R,{defaults:{VBtn:{class:"v-empty-state__action-btn",color:e.color??"surface-variant",text:e.actionText}}},{default:()=>{var v;return[((v=t.actions)==null?void 0:v.call(t,{props:{onClick:y}}))??a($e,{onClick:y},null)]}})])])}),{}}}),gt={name:"EmptyState"};function ht(e,s,r,t,o,i){return u(),c(ft,{class:"empty"},xe({_:2},[Ue(e.$slots,(l,d)=>({name:d,fn:g(n=>[Fe(e.$slots,d,V({props:l},n),void 0,!0)])}))]),1024)}const pt=b(gt,[["render",ht],["__scopeId","data-v-c7e33c8c"]]),vt=z({scrollable:Boolean,...Z(),...ee(),...Re({tag:"main"})},"VMain"),wt=N()({name:"VMain",props:vt(),setup(e,s){let{slots:r}=s;const{dimensionStyles:t}=te(e),{mainStyles:o}=Ke(),{ssrBootStyles:i}=Te();return W(()=>a(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[o.value,i.value,t.value,e.style]},{default:()=>{var l,d;return[e.scrollable?a("div",{class:"v-main__scroller"},[(l=r.default)==null?void 0:l.call(r)]):(d=r.default)==null?void 0:d.call(r)]}})),{}}}),yt={name:"UnauthorizedEmptyState",components:{AdminBrowserLink:Ze,AuthMenu:lt,PlaceholderLoading:ct,EmptyState:pt},props:{admin:{type:Boolean,default:!1}},data(){return{mdiLockOutline:ze}},computed:{...H(w,["isAuthChecked","isAuthorized","isUserAdmin"]),...P(w,{showAdminBrowserLink(e){var s,r,t;return((t=(r=(s=this.$router.currentRoute)==null?void 0:s.value)==null?void 0:r.name)==null?void 0:t.startsWith("admin"))&&e.adminFlags.nonUsers},text(e){return e.adminFlags.registration?"":"Registration is disabled"}})}},_t={class:"login"};function kt(e,s,r,t,o,i){const l=m("AdminBrowserLink"),d=m("AuthMenu"),n=m("EmptyState"),y=m("PlaceholderLoading");return u(),c(wt,{id:"unauthorized"},{default:g(()=>[e.isAuthChecked?(u(),c(n,{key:0,class:"empty",headline:"Unauthorized",text:e.text,icon:o.mdiLockOutline},{default:g(()=>[Ne("div",_t,[e.showAdminBrowserLink?(u(),c(l,{key:0})):A("",!0),a(d,{"show-change-password":!1})])]),_:1},8,["text","icon"])):(u(),c(y,{key:1,id:"unauthorizedPlaceholder"}))]),_:1})}const At=b(yt,[["render",kt],["__scopeId","data-v-a56ad455"]]);export{Ze as A,pt as E,ct as P,At as U,wt as V,lt as a};
@@ -1 +0,0 @@
1
- {"statusTitles":{"CCC":"Create Covers","CCD":"Remove Covers","CFO":"Find Orphan Covers","IDM":"Move Folders","IFM":"Move Books","ITR":"Read Book Tags","ITQ":"Discover Missing Tags","ITC":"Create Missing Tags","IDU":"Modify Folders","IFU":"Modify Books","IFC":"Create Books","IMQ":"Prepare Tags for Linking","IMC":"Link Books to Tags","ICQ":"Discover Missing Custom Covers","ICM":"Custom Covers Moved","ICU":"Modify Custom Covers","ICC":"Create Custom Covers","ICD":"Delete Custom Covers","ICL":"Link Custom Covers","IDD":"Remove Folders","IFD":"Remove Books","IFI":"Record Failed Imports","IGU":"Update First Covers","JTD":"Cleanup Stale Tags","JLV":"Check Codex Latest Version","JCU":"Update Codex Software","JCR":"Restart Codex","JCS":"Stop Codex","JCD":"Cleanup Custom Covers","JDO":"Optimize Database","JDB":"Backup Database","JSD":"Cleanup Expired Sessions","SIX":"Search Index Clear","SIU":"Search Index Update","SID":"Search Index Remove Stale Records","SIM":"Search Index Optimize","WPO":"Poll Library","IAF":"Adopt Orphan Folders"},"tasks":[{"title":"Libraries","tasks":[{"value":"poll","title":"Poll All Libraries","desc":"Update Libraries if changes detected"},{"value":"poll_force","title":"Force Update All Libraries","desc":"Forcibly update all comics in all libraries","confirm":"This can take a long time"},{"value":"force_update_all_failed_imports","title":"Update All Failed Imports","desc":"Forcibly update all failed imports in all libraries","confirm":"This can take a long time"},{"value":"watchdog_sync","title":"Sync Watchdog with DB","desc":"Ensure the Watchdog file watcher is enabled per database preferences for each library"}]},{"title":"Covers","tasks":[{"value":"purge_comic_covers","title":"Remove Comic Covers","desc":"from every library","confirm":"Are you sure?"},{"value":"create_all_comic_covers","title":"Create All Comic Covers","desc":"Pre-generate covers for every comic in every library and all custom covers","confirm":"Are you sure?"},{"value":"force_update_groups","title":"Update Group Timestamps","desc":"Force the update of group timestamps. Will bust the browser cache for browser views and covers."}]},{"title":"Search Index","tasks":[{"value":"search_index_update","title":"Update Search Index","desc":"with recently changed comics"},{"value":"search_index_rebuild","title":"Rebuild Search Index","desc":"Delete and rebuild the search index from scratch","confirm":"This can take a long time"},{"value":"search_index_remove_stale","title":"Remove Stale Index Entries","desc":"Remove search index entries that are no longer in the library."},{"value":"search_index_merge_small","title":"Merge Small Search Index Segments","desc":"Improves search lookup times. Runs nightly if the Optimize Admin Flag is off."},{"value":"search_index_optimize","title":"Merge Search Index Into One Segment","desc":"Reduces disk space and improves search lookup times. Runs nightly if the Optimize Admin Flag is on.","confirm":"This can take a long time."},{"value":"search_index_abort","title":"Abort Search Indexing","desc":"Aborts search index update and remove tasks."},{"value":"search_index_clear","title":"Clear Search Index","desc":"of all entries"}]},{"title":"Database","tasks":[{"value":"db_vacuum","title":"Optimize & Compact Database","desc":"Run the sqlite3 OPTIMIZE and VACUUM pragmas. Runs nightly"},{"value":"db_backup","title":"Backup Database","desc":"Runs nightly"},{"value":"db_search_sync","title":"Sync Search Index to DB","desc":"Check to see if this database matches the current search index. If there is a mismatch, rebuild the search index. Runs on startup."}]},{"title":"Codex Software","tasks":[{"value":"codex_latest_version","title":"Check for Codex Latest Version","desc":"Check PyPi for the latest version of Codex"},{"value":"codex_update","title":"Update Codex","desc":"If Codex updates to a new version, it will restart","confirm":"Are you sure?"},{"value":"codex_restart","title":"Restart Codex Server","desc":"Immediately","confirm":"Are you sure?"},{"value":"codex_shutdown","title":"Shutdown Codex Server","desc":"Immediately","confirm":"Are you sure?"}]},{"title":"Notify","tasks":[{"value":"notify_library_changed","title":"Notify Library Changed ","desc":"Signal all clients that the libraries have changed and the browser should fetch new data."},{"value":"notify_librarian_status","title":"Notify Librarian Status","desc":"Signal Admin clients to fetch librarian status."}]},{"title":"Cleanup","tasks":[{"value":"cleanup_fks","title":"Remove Orphan Tags","desc":"After deleting comics, unused linked objects remain in case new comics use them. Runs nightly."},{"value":"cleanup_db_custom_covers","title":"Remove Orphan Database Custom Covers","desc":"Remove Custom Covers from the db that no longer represent custom cover images on disk. Runs nightly."},{"value":"cleanup_sessions","title":"Cleanup Sessions","desc":"Remove corrupt and expired sessions. Runs nightly."},{"value":"cleanup_covers","title":"Remove Orphan Cover Thumbnails","desc":"no longer have source comics or custom images. Runs nightly."},{"value":"adopt_folders","title":"Adopt Orphan Folders","desc":"Move orphaned folders from the top of the folder tree to under their correct parent. Runs nightly and at startup."},{"value":"librarian_clear_status","title":"Clear Librarian Statuses","desc":"Mark all Librarian tasks finished."},{"value":"janitor_nightly","title":"Run Nightly Maintenance","desc":"Runs several tasks above that also run nightly.","confirm":"Launches several tasks that run nightly anyway."}]}],"adminFlags":{"FV":"Folder View","RG":"Registration","NU":"Non Users","AU":"Auto Update","SO":"Search Index Full Optimization","IM":"Import Metadata on Library Scan","ST":"Send Stats"}}