codex 1.5.17__py3-none-any.whl → 1.6.0__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 (921) hide show
  1. codex/exceptions.py +25 -12
  2. codex/integrity.py +66 -3
  3. codex/librarian/covers/coverd.py +2 -2
  4. codex/librarian/covers/create.py +52 -30
  5. codex/librarian/covers/path.py +9 -8
  6. codex/librarian/covers/purge.py +28 -18
  7. codex/librarian/covers/tasks.py +3 -2
  8. codex/librarian/importer/{aggregate_metadata.py → aggregate.py} +58 -88
  9. codex/librarian/importer/cache.py +93 -0
  10. codex/librarian/importer/const.py +77 -23
  11. codex/librarian/importer/create_comics.py +101 -18
  12. codex/librarian/importer/create_covers.py +96 -0
  13. codex/librarian/importer/create_fks.py +129 -150
  14. codex/librarian/importer/deleted.py +103 -28
  15. codex/librarian/importer/{clean_metadata.py → extract.py} +33 -4
  16. codex/librarian/importer/failed_imports.py +44 -66
  17. codex/librarian/importer/importer.py +96 -0
  18. codex/librarian/importer/importerd.py +71 -290
  19. codex/librarian/importer/init.py +265 -0
  20. codex/librarian/importer/link_comics.py +26 -26
  21. codex/librarian/importer/link_covers.py +73 -0
  22. codex/librarian/importer/moved.py +138 -89
  23. codex/librarian/importer/query_covers.py +52 -0
  24. codex/librarian/importer/query_fks.py +255 -189
  25. codex/librarian/importer/status.py +8 -39
  26. codex/librarian/importer/tasks.py +26 -9
  27. codex/librarian/janitor/cleanup.py +61 -16
  28. codex/librarian/janitor/failed_imports.py +1 -1
  29. codex/librarian/janitor/janitor.py +13 -1
  30. codex/librarian/janitor/janitord.py +1 -1
  31. codex/librarian/janitor/status.py +1 -0
  32. codex/librarian/janitor/tasks.py +5 -0
  33. codex/librarian/librariand.py +9 -5
  34. codex/librarian/notifier/notifierd.py +1 -1
  35. codex/librarian/notifier/tasks.py +4 -4
  36. codex/librarian/search/update.py +1 -1
  37. codex/librarian/watchdog/db_snapshot.py +9 -6
  38. codex/librarian/watchdog/emitter.py +3 -0
  39. codex/librarian/watchdog/event_batcherd.py +19 -3
  40. codex/librarian/watchdog/events.py +176 -36
  41. codex/librarian/watchdog/observers.py +13 -3
  42. codex/middleware.py +1 -2
  43. codex/migrations/0027_import_order_and_covers.py +280 -0
  44. codex/models/admin.py +0 -1
  45. codex/models/base.py +6 -0
  46. codex/models/comic.py +41 -44
  47. codex/models/functions.py +12 -0
  48. codex/models/groups.py +58 -12
  49. codex/models/library.py +11 -3
  50. codex/models/paths.py +65 -13
  51. codex/models/query.py +91 -0
  52. codex/models/util.py +31 -0
  53. codex/permissions.py +1 -1
  54. codex/search/backend.py +2 -2
  55. codex/search/backend_search.py +229 -0
  56. codex/search/engine.py +1 -9
  57. codex/search/query.py +67 -0
  58. codex/search/writing.py +1 -1
  59. codex/serializers/admin.py +56 -45
  60. codex/serializers/browser/choices.py +37 -42
  61. codex/serializers/browser/filters.py +32 -136
  62. codex/serializers/browser/metadata.py +59 -0
  63. codex/serializers/browser/mixins.py +65 -0
  64. codex/serializers/browser/mtime.py +21 -0
  65. codex/serializers/browser/page.py +6 -21
  66. codex/serializers/browser/settings.py +43 -11
  67. codex/serializers/choices.py +35 -12
  68. codex/serializers/fields.py +149 -0
  69. codex/serializers/mixins.py +0 -22
  70. codex/serializers/models/pycountry.py +11 -51
  71. codex/serializers/opds/urls.py +10 -0
  72. codex/serializers/opds/v2.py +10 -16
  73. codex/serializers/opds/v2_unused.py +5 -3
  74. codex/serializers/reader.py +24 -16
  75. codex/serializers/redirect.py +3 -2
  76. codex/serializers/route.py +45 -0
  77. codex/serializers/settings.py +12 -0
  78. codex/settings/settings.py +79 -32
  79. codex/signals/django_signals.py +6 -0
  80. codex/startup.py +77 -3
  81. codex/static_root/assets/VCheckbox-DanrzdHo.8ec5e2094cbf.js +1 -0
  82. codex/static_root/assets/VCheckbox-DanrzdHo.8ec5e2094cbf.js.br +0 -0
  83. codex/static_root/assets/VCheckbox-DanrzdHo.8ec5e2094cbf.js.gz +0 -0
  84. codex/static_root/assets/VCheckbox-DanrzdHo.js +1 -0
  85. codex/static_root/assets/VCheckbox-DanrzdHo.js.br +0 -0
  86. codex/static_root/assets/VCheckbox-DanrzdHo.js.gz +0 -0
  87. codex/static_root/assets/VCheckboxBtn-DxNOKONG.5ab34c4c47aa.js +1 -0
  88. codex/static_root/assets/VCheckboxBtn-DxNOKONG.5ab34c4c47aa.js.br +0 -0
  89. codex/static_root/assets/VCheckboxBtn-DxNOKONG.5ab34c4c47aa.js.gz +0 -0
  90. codex/static_root/assets/VCheckboxBtn-DxNOKONG.js +1 -0
  91. codex/static_root/assets/VCheckboxBtn-DxNOKONG.js.br +0 -0
  92. codex/static_root/assets/VCheckboxBtn-DxNOKONG.js.gz +0 -0
  93. codex/static_root/assets/VCombobox-DDvdoPTG.11d080e8edd7.js +1 -0
  94. codex/static_root/assets/VCombobox-DDvdoPTG.11d080e8edd7.js.br +0 -0
  95. codex/static_root/assets/VCombobox-DDvdoPTG.11d080e8edd7.js.gz +0 -0
  96. codex/static_root/assets/VCombobox-DDvdoPTG.js +1 -0
  97. codex/static_root/assets/VCombobox-DDvdoPTG.js.br +0 -0
  98. codex/static_root/assets/VCombobox-DDvdoPTG.js.gz +0 -0
  99. codex/static_root/assets/VDialog-Bd5dN_E1.457666d7fce1.js +1 -0
  100. codex/static_root/assets/VDialog-Bd5dN_E1.457666d7fce1.js.br +0 -0
  101. codex/static_root/assets/VDialog-Bd5dN_E1.457666d7fce1.js.gz +0 -0
  102. codex/static_root/assets/VDialog-Bd5dN_E1.js +1 -0
  103. codex/static_root/assets/VDialog-Bd5dN_E1.js.br +0 -0
  104. codex/static_root/assets/VDialog-Bd5dN_E1.js.gz +0 -0
  105. codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css +1 -0
  106. codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css.br +0 -0
  107. codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css.gz +0 -0
  108. codex/static_root/assets/VDialog-lQ13FnRR.css +1 -0
  109. codex/static_root/assets/VDialog-lQ13FnRR.css.br +0 -0
  110. codex/static_root/assets/VDialog-lQ13FnRR.css.gz +0 -0
  111. codex/static_root/assets/VExpansionPanels-DqTuYpTR.12673cf9f391.js +1 -0
  112. codex/static_root/assets/VExpansionPanels-DqTuYpTR.12673cf9f391.js.br +0 -0
  113. codex/static_root/assets/VExpansionPanels-DqTuYpTR.12673cf9f391.js.gz +0 -0
  114. codex/static_root/assets/VExpansionPanels-DqTuYpTR.js +1 -0
  115. codex/static_root/assets/VExpansionPanels-DqTuYpTR.js.br +0 -0
  116. codex/static_root/assets/VExpansionPanels-DqTuYpTR.js.gz +0 -0
  117. codex/static_root/assets/VRadioGroup-DKb8XPr-.3cf6bf5bf3bc.js +1 -0
  118. codex/static_root/assets/VRadioGroup-DKb8XPr-.3cf6bf5bf3bc.js.br +0 -0
  119. codex/static_root/assets/VRadioGroup-DKb8XPr-.3cf6bf5bf3bc.js.gz +0 -0
  120. codex/static_root/assets/VRadioGroup-DKb8XPr-.js +1 -0
  121. codex/static_root/assets/VRadioGroup-DKb8XPr-.js.br +0 -0
  122. codex/static_root/assets/VRadioGroup-DKb8XPr-.js.gz +0 -0
  123. codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css +1 -0
  124. codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css.br +0 -0
  125. codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css.gz +0 -0
  126. codex/static_root/assets/VSelect-ARDhJiQK.css +1 -0
  127. codex/static_root/assets/VSelect-ARDhJiQK.css.br +0 -0
  128. codex/static_root/assets/VSelect-ARDhJiQK.css.gz +0 -0
  129. codex/static_root/assets/VSelect-C_yPbyCG.08bd6b53a7ce.js +1 -0
  130. codex/static_root/assets/VSelect-C_yPbyCG.08bd6b53a7ce.js.br +0 -0
  131. codex/static_root/assets/VSelect-C_yPbyCG.08bd6b53a7ce.js.gz +0 -0
  132. codex/static_root/assets/VSelect-C_yPbyCG.js +1 -0
  133. codex/static_root/assets/VSelect-C_yPbyCG.js.br +0 -0
  134. codex/static_root/assets/VSelect-C_yPbyCG.js.gz +0 -0
  135. codex/static_root/assets/VSelectionControl-CmFPvGMS.802c9b3e6e28.js +1 -0
  136. codex/static_root/assets/VSelectionControl-CmFPvGMS.802c9b3e6e28.js.br +0 -0
  137. codex/static_root/assets/VSelectionControl-CmFPvGMS.802c9b3e6e28.js.gz +0 -0
  138. codex/static_root/assets/VSelectionControl-CmFPvGMS.js +1 -0
  139. codex/static_root/assets/VSelectionControl-CmFPvGMS.js.br +0 -0
  140. codex/static_root/assets/VSelectionControl-CmFPvGMS.js.gz +0 -0
  141. codex/static_root/assets/VSlideGroup-D5FZWsM1.a47491fe3e6d.js +1 -0
  142. codex/static_root/assets/VSlideGroup-D5FZWsM1.a47491fe3e6d.js.br +0 -0
  143. codex/static_root/assets/VSlideGroup-D5FZWsM1.a47491fe3e6d.js.gz +0 -0
  144. codex/static_root/assets/VSlideGroup-D5FZWsM1.js +1 -0
  145. codex/static_root/assets/VSlideGroup-D5FZWsM1.js.br +0 -0
  146. codex/static_root/assets/VSlideGroup-D5FZWsM1.js.gz +0 -0
  147. codex/static_root/assets/VSlideGroup-Dk_1upHt.2c836070ec75.css +1 -0
  148. codex/static_root/assets/VSlideGroup-Dk_1upHt.2c836070ec75.css.br +0 -0
  149. codex/static_root/assets/VSlideGroup-Dk_1upHt.2c836070ec75.css.gz +0 -0
  150. codex/static_root/assets/VSlideGroup-Dk_1upHt.css +1 -0
  151. codex/static_root/assets/VSlideGroup-Dk_1upHt.css.br +0 -0
  152. codex/static_root/assets/VSlideGroup-Dk_1upHt.css.gz +0 -0
  153. codex/static_root/assets/{VTable-XNBBnB2q.b2784736062a.js → VTable-2RHFqfg6.f0f2106b158b.js} +1 -1
  154. codex/static_root/assets/VTable-2RHFqfg6.f0f2106b158b.js.br +0 -0
  155. codex/static_root/assets/VTable-2RHFqfg6.f0f2106b158b.js.gz +0 -0
  156. codex/static_root/assets/{VTable-XNBBnB2q.js → VTable-2RHFqfg6.js} +1 -1
  157. codex/static_root/assets/VTable-2RHFqfg6.js.br +0 -0
  158. codex/static_root/assets/VTable-2RHFqfg6.js.gz +0 -0
  159. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css +1 -0
  160. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.br +0 -0
  161. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.gz +0 -0
  162. codex/static_root/assets/VTextField-BssVoDhB.css +1 -0
  163. codex/static_root/assets/VTextField-BssVoDhB.css.br +0 -0
  164. codex/static_root/assets/VTextField-BssVoDhB.css.gz +0 -0
  165. codex/static_root/assets/VTextField-o1N9ylIb.7fffaeff8d40.js +1 -0
  166. codex/static_root/assets/VTextField-o1N9ylIb.7fffaeff8d40.js.br +0 -0
  167. codex/static_root/assets/VTextField-o1N9ylIb.7fffaeff8d40.js.gz +0 -0
  168. codex/static_root/assets/VTextField-o1N9ylIb.js +1 -0
  169. codex/static_root/assets/VTextField-o1N9ylIb.js.br +0 -0
  170. codex/static_root/assets/VTextField-o1N9ylIb.js.gz +0 -0
  171. codex/static_root/assets/VWindowItem-C_zvuz9C.663fa48efea4.js +1 -0
  172. codex/static_root/assets/VWindowItem-C_zvuz9C.663fa48efea4.js.br +0 -0
  173. codex/static_root/assets/VWindowItem-C_zvuz9C.663fa48efea4.js.gz +0 -0
  174. codex/static_root/assets/VWindowItem-C_zvuz9C.js +1 -0
  175. codex/static_root/assets/VWindowItem-C_zvuz9C.js.br +0 -0
  176. codex/static_root/assets/VWindowItem-C_zvuz9C.js.gz +0 -0
  177. codex/static_root/assets/admin-B8Bp2Uih.82c98714bcf1.css +1 -0
  178. codex/static_root/assets/admin-B8Bp2Uih.82c98714bcf1.css.br +0 -0
  179. codex/static_root/assets/admin-B8Bp2Uih.82c98714bcf1.css.gz +0 -0
  180. codex/static_root/assets/admin-B8Bp2Uih.css +1 -0
  181. codex/static_root/assets/admin-B8Bp2Uih.css.br +0 -0
  182. codex/static_root/assets/admin-B8Bp2Uih.css.gz +0 -0
  183. codex/static_root/assets/admin-DHyHEWZ3.7a8015456c0f.js +1 -0
  184. codex/static_root/assets/admin-DHyHEWZ3.7a8015456c0f.js.br +0 -0
  185. codex/static_root/assets/admin-DHyHEWZ3.7a8015456c0f.js.gz +0 -0
  186. codex/static_root/assets/admin-DHyHEWZ3.js +1 -0
  187. codex/static_root/assets/admin-DHyHEWZ3.js.br +0 -0
  188. codex/static_root/assets/admin-DHyHEWZ3.js.gz +0 -0
  189. codex/static_root/assets/admin-drawer-panel-BXpIDQXM.19507a95375b.js +30 -0
  190. codex/static_root/assets/admin-drawer-panel-BXpIDQXM.19507a95375b.js.br +0 -0
  191. codex/static_root/assets/admin-drawer-panel-BXpIDQXM.19507a95375b.js.gz +0 -0
  192. codex/static_root/assets/admin-drawer-panel-BXpIDQXM.js +30 -0
  193. codex/static_root/assets/admin-drawer-panel-BXpIDQXM.js.br +0 -0
  194. codex/static_root/assets/admin-drawer-panel-BXpIDQXM.js.gz +0 -0
  195. codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css +1 -0
  196. codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css.br +0 -0
  197. codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css.gz +0 -0
  198. codex/static_root/assets/admin-drawer-panel-mne3FIj6.css +1 -0
  199. codex/static_root/assets/admin-drawer-panel-mne3FIj6.css.br +0 -0
  200. codex/static_root/assets/admin-drawer-panel-mne3FIj6.css.gz +0 -0
  201. codex/static_root/assets/browser-D0Vjmmp_.a1bfaf48d65f.js +1 -0
  202. codex/static_root/assets/browser-D0Vjmmp_.a1bfaf48d65f.js.br +0 -0
  203. codex/static_root/assets/browser-D0Vjmmp_.a1bfaf48d65f.js.gz +0 -0
  204. codex/static_root/assets/browser-D0Vjmmp_.js +1 -0
  205. codex/static_root/assets/browser-D0Vjmmp_.js.br +0 -0
  206. codex/static_root/assets/browser-D0Vjmmp_.js.gz +0 -0
  207. codex/static_root/assets/browser-D7QQDneO.155cb612ed0c.css +1 -0
  208. codex/static_root/assets/browser-D7QQDneO.155cb612ed0c.css.br +0 -0
  209. codex/static_root/assets/browser-D7QQDneO.155cb612ed0c.css.gz +0 -0
  210. codex/static_root/assets/browser-D7QQDneO.css +1 -0
  211. codex/static_root/assets/browser-D7QQDneO.css.br +0 -0
  212. codex/static_root/assets/browser-D7QQDneO.css.gz +0 -0
  213. codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css +1 -0
  214. codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css.br +0 -0
  215. codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css.gz +0 -0
  216. codex/static_root/assets/change-password-dialog-0u6IJA87.css +1 -0
  217. codex/static_root/assets/change-password-dialog-0u6IJA87.css.br +0 -0
  218. codex/static_root/assets/change-password-dialog-0u6IJA87.css.gz +0 -0
  219. codex/static_root/assets/change-password-dialog-BBsJLPXZ.e642f7e2b96f.js +1 -0
  220. codex/static_root/assets/change-password-dialog-BBsJLPXZ.e642f7e2b96f.js.br +0 -0
  221. codex/static_root/assets/change-password-dialog-BBsJLPXZ.e642f7e2b96f.js.gz +0 -0
  222. codex/static_root/assets/change-password-dialog-BBsJLPXZ.js +1 -0
  223. codex/static_root/assets/change-password-dialog-BBsJLPXZ.js.br +0 -0
  224. codex/static_root/assets/change-password-dialog-BBsJLPXZ.js.gz +0 -0
  225. codex/static_root/assets/confirm-dialog-DCKvg3ai.2a3277b3c147.js +1 -0
  226. codex/static_root/assets/confirm-dialog-DCKvg3ai.2a3277b3c147.js.br +0 -0
  227. codex/static_root/assets/confirm-dialog-DCKvg3ai.2a3277b3c147.js.gz +0 -0
  228. codex/static_root/assets/confirm-dialog-DCKvg3ai.js +1 -0
  229. codex/static_root/assets/confirm-dialog-DCKvg3ai.js.br +0 -0
  230. codex/static_root/assets/confirm-dialog-DCKvg3ai.js.gz +0 -0
  231. codex/static_root/assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js +1 -0
  232. codex/static_root/assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js.br +0 -0
  233. codex/static_root/assets/copy-to-clipboard-DoUvDJVx.js +1 -0
  234. codex/static_root/assets/copy-to-clipboard-DoUvDJVx.js.br +0 -0
  235. codex/static_root/assets/datetime-column-DeCthByU.1f3bf499e063.css +1 -0
  236. codex/static_root/assets/datetime-column-DeCthByU.css +1 -0
  237. codex/static_root/assets/datetime-column-jHKA_uNm.039c7da2036f.js +1 -0
  238. codex/static_root/assets/datetime-column-jHKA_uNm.039c7da2036f.js.br +0 -0
  239. codex/static_root/assets/datetime-column-jHKA_uNm.039c7da2036f.js.gz +0 -0
  240. codex/static_root/assets/datetime-column-jHKA_uNm.js +1 -0
  241. codex/static_root/assets/datetime-column-jHKA_uNm.js.br +0 -0
  242. codex/static_root/assets/datetime-column-jHKA_uNm.js.gz +0 -0
  243. codex/static_root/assets/filter-DgPg2ts9.af0fcf0888c6.js +1 -0
  244. codex/static_root/assets/filter-DgPg2ts9.af0fcf0888c6.js.br +0 -0
  245. codex/static_root/assets/filter-DgPg2ts9.af0fcf0888c6.js.gz +0 -0
  246. codex/static_root/assets/filter-DgPg2ts9.js +1 -0
  247. codex/static_root/assets/filter-DgPg2ts9.js.br +0 -0
  248. codex/static_root/assets/filter-DgPg2ts9.js.gz +0 -0
  249. codex/static_root/assets/flag-tab-9qxOALxP.f89bc9891671.js +1 -0
  250. codex/static_root/assets/flag-tab-9qxOALxP.f89bc9891671.js.br +0 -0
  251. codex/static_root/assets/flag-tab-9qxOALxP.f89bc9891671.js.gz +0 -0
  252. codex/static_root/assets/flag-tab-9qxOALxP.js +1 -0
  253. codex/static_root/assets/flag-tab-9qxOALxP.js.br +0 -0
  254. codex/static_root/assets/flag-tab-9qxOALxP.js.gz +0 -0
  255. codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css +1 -0
  256. codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css.br +0 -0
  257. codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css.gz +0 -0
  258. codex/static_root/assets/flag-tab-BNwbLfrN.css +1 -0
  259. codex/static_root/assets/flag-tab-BNwbLfrN.css.br +0 -0
  260. codex/static_root/assets/flag-tab-BNwbLfrN.css.gz +0 -0
  261. codex/static_root/assets/group-tab-CBKuS3Iv.7e4746634782.css +1 -0
  262. codex/static_root/assets/group-tab-CBKuS3Iv.7e4746634782.css.br +0 -0
  263. codex/static_root/assets/group-tab-CBKuS3Iv.7e4746634782.css.gz +0 -0
  264. codex/static_root/assets/group-tab-CBKuS3Iv.css +1 -0
  265. codex/static_root/assets/group-tab-CBKuS3Iv.css.br +0 -0
  266. codex/static_root/assets/group-tab-CBKuS3Iv.css.gz +0 -0
  267. codex/static_root/assets/group-tab-D5vWrihT.1afb2ce453ff.js +1 -0
  268. codex/static_root/assets/group-tab-D5vWrihT.1afb2ce453ff.js.br +0 -0
  269. codex/static_root/assets/group-tab-D5vWrihT.1afb2ce453ff.js.gz +0 -0
  270. codex/static_root/assets/group-tab-D5vWrihT.js +1 -0
  271. codex/static_root/assets/group-tab-D5vWrihT.js.br +0 -0
  272. codex/static_root/assets/group-tab-D5vWrihT.js.gz +0 -0
  273. codex/static_root/assets/http-error-B4FHoKfs.141fdae409bc.js +1 -0
  274. codex/static_root/assets/http-error-B4FHoKfs.141fdae409bc.js.br +0 -0
  275. codex/static_root/assets/http-error-B4FHoKfs.141fdae409bc.js.gz +0 -0
  276. codex/static_root/assets/http-error-B4FHoKfs.js +1 -0
  277. codex/static_root/assets/http-error-B4FHoKfs.js.br +0 -0
  278. codex/static_root/assets/http-error-B4FHoKfs.js.gz +0 -0
  279. codex/static_root/assets/http-error-DKulXuTl.95e42988d5d5.css +1 -0
  280. codex/static_root/assets/http-error-DKulXuTl.95e42988d5d5.css.br +0 -0
  281. codex/static_root/assets/http-error-DKulXuTl.95e42988d5d5.css.gz +0 -0
  282. codex/static_root/assets/http-error-DKulXuTl.css +1 -0
  283. codex/static_root/assets/http-error-DKulXuTl.css.br +0 -0
  284. codex/static_root/assets/http-error-DKulXuTl.css.gz +0 -0
  285. codex/static_root/assets/library-tab-BN0SfPcH.913e236f625e.css +1 -0
  286. codex/static_root/assets/library-tab-BN0SfPcH.913e236f625e.css.br +0 -0
  287. codex/static_root/assets/library-tab-BN0SfPcH.913e236f625e.css.gz +0 -0
  288. codex/static_root/assets/library-tab-BN0SfPcH.css +1 -0
  289. codex/static_root/assets/library-tab-BN0SfPcH.css.br +0 -0
  290. codex/static_root/assets/library-tab-BN0SfPcH.css.gz +0 -0
  291. codex/static_root/assets/library-tab-BWo0cmzk.0e3d67d0c41a.js +1 -0
  292. codex/static_root/assets/library-tab-BWo0cmzk.0e3d67d0c41a.js.br +0 -0
  293. codex/static_root/assets/library-tab-BWo0cmzk.0e3d67d0c41a.js.gz +0 -0
  294. codex/static_root/assets/library-tab-BWo0cmzk.js +1 -0
  295. codex/static_root/assets/library-tab-BWo0cmzk.js.br +0 -0
  296. codex/static_root/assets/library-tab-BWo0cmzk.js.gz +0 -0
  297. codex/static_root/assets/{main-ClKzvaJK.css → main-Ztp855PW.css} +1 -1
  298. codex/static_root/assets/main-Ztp855PW.css.br +0 -0
  299. codex/static_root/assets/{main-ClKzvaJK.css.gz → main-Ztp855PW.css.gz} +0 -0
  300. codex/static_root/assets/{main-ClKzvaJK.04ea1888c6b4.css → main-Ztp855PW.d46d718fac45.css} +1 -1
  301. codex/static_root/assets/main-Ztp855PW.d46d718fac45.css.br +0 -0
  302. codex/static_root/assets/{main-ClKzvaJK.04ea1888c6b4.css.gz → main-Ztp855PW.d46d718fac45.css.gz} +0 -0
  303. codex/static_root/assets/main-ipmlipkF.5e60e6e8e447.js +32 -0
  304. codex/static_root/assets/main-ipmlipkF.5e60e6e8e447.js.br +0 -0
  305. codex/static_root/assets/main-ipmlipkF.5e60e6e8e447.js.gz +0 -0
  306. codex/static_root/assets/main-ipmlipkF.js +32 -0
  307. codex/static_root/assets/main-ipmlipkF.js.br +0 -0
  308. codex/static_root/assets/main-ipmlipkF.js.gz +0 -0
  309. codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css +1 -0
  310. codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css.br +0 -0
  311. codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css.gz +0 -0
  312. codex/static_root/assets/pagination-toolbar-BA9ifTed.css +1 -0
  313. codex/static_root/assets/pagination-toolbar-BA9ifTed.css.br +0 -0
  314. codex/static_root/assets/pagination-toolbar-BA9ifTed.css.gz +0 -0
  315. codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.b3341b8028df.js +1 -0
  316. codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.b3341b8028df.js.br +0 -0
  317. codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.b3341b8028df.js.gz +0 -0
  318. codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.js +1 -0
  319. codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.js.br +0 -0
  320. codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.js.gz +0 -0
  321. codex/static_root/assets/pdf-doc-C2StaYUz.cb848834dbe1.js +305 -0
  322. codex/static_root/assets/pdf-doc-C2StaYUz.cb848834dbe1.js.br +0 -0
  323. codex/static_root/assets/pdf-doc-C2StaYUz.cb848834dbe1.js.gz +0 -0
  324. codex/static_root/assets/pdf-doc-C2StaYUz.js +305 -0
  325. codex/static_root/assets/pdf-doc-C2StaYUz.js.br +0 -0
  326. codex/static_root/assets/pdf-doc-C2StaYUz.js.gz +0 -0
  327. codex/static_root/assets/reader-CCnq3j1-.b6b38ed5521e.js +2 -0
  328. codex/static_root/assets/reader-CCnq3j1-.b6b38ed5521e.js.br +0 -0
  329. codex/static_root/assets/reader-CCnq3j1-.b6b38ed5521e.js.gz +0 -0
  330. codex/static_root/assets/reader-CCnq3j1-.js +2 -0
  331. codex/static_root/assets/reader-CCnq3j1-.js.br +0 -0
  332. codex/static_root/assets/reader-CCnq3j1-.js.gz +0 -0
  333. codex/static_root/assets/reader-CqXFa_gE.78267e9de0c2.css +1 -0
  334. codex/static_root/assets/reader-CqXFa_gE.78267e9de0c2.css.br +0 -0
  335. codex/static_root/assets/reader-CqXFa_gE.78267e9de0c2.css.gz +0 -0
  336. codex/static_root/assets/reader-CqXFa_gE.css +1 -0
  337. codex/static_root/assets/reader-CqXFa_gE.css.br +0 -0
  338. codex/static_root/assets/reader-CqXFa_gE.css.gz +0 -0
  339. codex/static_root/assets/relation-chips-Bsc-gUxE.98e65384c3c9.css +1 -0
  340. codex/static_root/assets/relation-chips-Bsc-gUxE.98e65384c3c9.css.br +0 -0
  341. codex/static_root/assets/relation-chips-Bsc-gUxE.98e65384c3c9.css.gz +0 -0
  342. codex/static_root/assets/relation-chips-Bsc-gUxE.css +1 -0
  343. codex/static_root/assets/relation-chips-Bsc-gUxE.css.br +0 -0
  344. codex/static_root/assets/relation-chips-Bsc-gUxE.css.gz +0 -0
  345. codex/static_root/assets/relation-chips-C9ysW0tU.670f1d1f273f.js +1 -0
  346. codex/static_root/assets/relation-chips-C9ysW0tU.670f1d1f273f.js.br +0 -0
  347. codex/static_root/assets/relation-chips-C9ysW0tU.670f1d1f273f.js.gz +0 -0
  348. codex/static_root/assets/relation-chips-C9ysW0tU.js +1 -0
  349. codex/static_root/assets/relation-chips-C9ysW0tU.js.br +0 -0
  350. codex/static_root/assets/relation-chips-C9ysW0tU.js.gz +0 -0
  351. codex/static_root/assets/settings-drawer-C0ofzAhW.c0def8f383cb.js +2 -0
  352. codex/static_root/assets/settings-drawer-C0ofzAhW.c0def8f383cb.js.br +0 -0
  353. codex/static_root/assets/settings-drawer-C0ofzAhW.c0def8f383cb.js.gz +0 -0
  354. codex/static_root/assets/settings-drawer-C0ofzAhW.js +2 -0
  355. codex/static_root/assets/settings-drawer-C0ofzAhW.js.br +0 -0
  356. codex/static_root/assets/settings-drawer-C0ofzAhW.js.gz +0 -0
  357. codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css +1 -0
  358. codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.br +0 -0
  359. codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.gz +0 -0
  360. codex/static_root/assets/settings-drawer-nZ9HvKSZ.css +1 -0
  361. codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.br +0 -0
  362. codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.gz +0 -0
  363. codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css +1 -0
  364. codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css.br +0 -0
  365. codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css.gz +0 -0
  366. codex/static_root/assets/stats-tab-B4yKuY0c.css +1 -0
  367. codex/static_root/assets/stats-tab-B4yKuY0c.css.br +0 -0
  368. codex/static_root/assets/stats-tab-B4yKuY0c.css.gz +0 -0
  369. codex/static_root/assets/stats-tab-BqJj7j1w.38a3459d61ea.js +1 -0
  370. codex/static_root/assets/stats-tab-BqJj7j1w.38a3459d61ea.js.br +0 -0
  371. codex/static_root/assets/stats-tab-BqJj7j1w.38a3459d61ea.js.gz +0 -0
  372. codex/static_root/assets/stats-tab-BqJj7j1w.js +1 -0
  373. codex/static_root/assets/stats-tab-BqJj7j1w.js.br +0 -0
  374. codex/static_root/assets/stats-tab-BqJj7j1w.js.gz +0 -0
  375. codex/static_root/assets/task-tab-1XiWn9xP.06cb8e1b794d.css +1 -0
  376. codex/static_root/assets/{task-tab-DoX9OA37.9bb355f36dbf.css.br → task-tab-1XiWn9xP.06cb8e1b794d.css.br} +1 -1
  377. codex/static_root/assets/task-tab-1XiWn9xP.06cb8e1b794d.css.gz +0 -0
  378. codex/static_root/assets/task-tab-1XiWn9xP.css +1 -0
  379. codex/static_root/assets/{task-tab-DoX9OA37.css.br → task-tab-1XiWn9xP.css.br} +1 -1
  380. codex/static_root/assets/task-tab-1XiWn9xP.css.gz +0 -0
  381. codex/static_root/assets/task-tab-BsPzNk8S.e00630a60b43.js +1 -0
  382. codex/static_root/assets/task-tab-BsPzNk8S.e00630a60b43.js.br +0 -0
  383. codex/static_root/assets/task-tab-BsPzNk8S.e00630a60b43.js.gz +0 -0
  384. codex/static_root/assets/task-tab-BsPzNk8S.js +1 -0
  385. codex/static_root/assets/task-tab-BsPzNk8S.js.br +0 -0
  386. codex/static_root/assets/task-tab-BsPzNk8S.js.gz +0 -0
  387. codex/static_root/assets/to-case-KvqtSug2.9c02da2e47c7.js +1 -0
  388. codex/static_root/assets/to-case-KvqtSug2.9c02da2e47c7.js.br +0 -0
  389. codex/static_root/assets/to-case-KvqtSug2.js +1 -0
  390. codex/static_root/assets/to-case-KvqtSug2.js.br +0 -0
  391. codex/static_root/assets/unauthorized-CibJYD8o.4c2de98c2b53.css +1 -0
  392. codex/static_root/assets/unauthorized-CibJYD8o.4c2de98c2b53.css.br +0 -0
  393. codex/static_root/assets/unauthorized-CibJYD8o.4c2de98c2b53.css.gz +0 -0
  394. codex/static_root/assets/unauthorized-CibJYD8o.css +1 -0
  395. codex/static_root/assets/unauthorized-CibJYD8o.css.br +0 -0
  396. codex/static_root/assets/unauthorized-CibJYD8o.css.gz +0 -0
  397. codex/static_root/assets/unauthorized-DwSdNzX2.f418e69f3afe.js +1 -0
  398. codex/static_root/assets/unauthorized-DwSdNzX2.f418e69f3afe.js.br +0 -0
  399. codex/static_root/assets/unauthorized-DwSdNzX2.f418e69f3afe.js.gz +0 -0
  400. codex/static_root/assets/unauthorized-DwSdNzX2.js +1 -0
  401. codex/static_root/assets/unauthorized-DwSdNzX2.js.br +0 -0
  402. codex/static_root/assets/unauthorized-DwSdNzX2.js.gz +0 -0
  403. codex/static_root/assets/user-tab-DrJOb9Ys.083d993726d8.js +1 -0
  404. codex/static_root/assets/user-tab-DrJOb9Ys.083d993726d8.js.br +0 -0
  405. codex/static_root/assets/user-tab-DrJOb9Ys.083d993726d8.js.gz +0 -0
  406. codex/static_root/assets/user-tab-DrJOb9Ys.js +1 -0
  407. codex/static_root/assets/user-tab-DrJOb9Ys.js.br +0 -0
  408. codex/static_root/assets/user-tab-DrJOb9Ys.js.gz +0 -0
  409. codex/static_root/img/folder.f28936a3701d.svg +1 -0
  410. codex/static_root/img/folder.f28936a3701d.svg.br +0 -0
  411. codex/static_root/img/folder.f28936a3701d.svg.gz +0 -0
  412. codex/static_root/img/folder.svg +1 -0
  413. codex/static_root/img/folder.svg.br +0 -0
  414. codex/static_root/img/folder.svg.gz +0 -0
  415. codex/static_root/img/imprint.7c2adebb76d6.svg +1 -0
  416. codex/static_root/img/imprint.7c2adebb76d6.svg.br +0 -0
  417. codex/static_root/img/imprint.7c2adebb76d6.svg.gz +0 -0
  418. codex/static_root/img/imprint.svg +1 -0
  419. codex/static_root/img/imprint.svg.br +0 -0
  420. codex/static_root/img/imprint.svg.gz +0 -0
  421. codex/static_root/img/logo-32.5688944495bf.webp +0 -0
  422. codex/static_root/img/logo-32.webp +0 -0
  423. codex/static_root/img/logo-maskable-180.c58d966aa64e.webp +0 -0
  424. codex/static_root/img/logo-maskable-180.webp +0 -0
  425. codex/static_root/img/logo-maskable.8f7de7f1c6a8.svg +1 -0
  426. codex/static_root/img/logo-maskable.8f7de7f1c6a8.svg.br +0 -0
  427. codex/static_root/img/logo-maskable.8f7de7f1c6a8.svg.gz +0 -0
  428. codex/static_root/img/logo-maskable.svg +1 -83
  429. codex/static_root/img/logo-maskable.svg.br +0 -0
  430. codex/static_root/img/logo-maskable.svg.gz +0 -0
  431. codex/static_root/img/logo.0f5344a028ca.svg +1 -0
  432. codex/static_root/img/logo.0f5344a028ca.svg.br +0 -0
  433. codex/static_root/img/logo.0f5344a028ca.svg.gz +0 -0
  434. codex/static_root/img/logo.svg +1 -80
  435. codex/static_root/img/logo.svg.br +0 -0
  436. codex/static_root/img/logo.svg.gz +0 -0
  437. codex/static_root/img/missing-cover-165.0743171f2148.webp +0 -0
  438. codex/static_root/img/missing-cover-165.webp +0 -0
  439. codex/static_root/img/missing-cover.ddb038cc2c56.svg +1 -0
  440. codex/static_root/img/missing-cover.ddb038cc2c56.svg.br +0 -0
  441. codex/static_root/img/missing-cover.ddb038cc2c56.svg.gz +0 -0
  442. codex/static_root/img/missing-cover.svg +1 -0
  443. codex/static_root/img/missing-cover.svg.br +0 -0
  444. codex/static_root/img/missing-cover.svg.gz +0 -0
  445. codex/static_root/img/publisher.82d378fcd601.svg +1 -0
  446. codex/static_root/img/publisher.82d378fcd601.svg.br +0 -0
  447. codex/static_root/img/publisher.82d378fcd601.svg.gz +0 -0
  448. codex/static_root/img/publisher.svg +1 -0
  449. codex/static_root/img/publisher.svg.br +0 -0
  450. codex/static_root/img/publisher.svg.gz +0 -0
  451. codex/static_root/img/series.ec8a889b8f95.svg +1 -0
  452. codex/static_root/img/series.ec8a889b8f95.svg.br +0 -0
  453. codex/static_root/img/series.ec8a889b8f95.svg.gz +0 -0
  454. codex/static_root/img/series.svg +1 -0
  455. codex/static_root/img/series.svg.br +0 -0
  456. codex/static_root/img/series.svg.gz +0 -0
  457. codex/static_root/img/story-arc.ca10014355ef.svg +1 -0
  458. codex/static_root/img/story-arc.ca10014355ef.svg.br +1 -0
  459. codex/static_root/img/story-arc.ca10014355ef.svg.gz +0 -0
  460. codex/static_root/img/story-arc.svg +1 -0
  461. codex/static_root/img/story-arc.svg.br +1 -0
  462. codex/static_root/img/story-arc.svg.gz +0 -0
  463. codex/static_root/img/volume.814e4c79461a.svg +1 -0
  464. codex/static_root/img/volume.814e4c79461a.svg.br +0 -0
  465. codex/static_root/img/volume.814e4c79461a.svg.gz +0 -0
  466. codex/static_root/img/volume.svg +1 -0
  467. codex/static_root/img/volume.svg.br +0 -0
  468. codex/static_root/img/volume.svg.gz +0 -0
  469. codex/static_root/js/choices-admin.3521e2a863df.json +1 -0
  470. codex/static_root/js/choices-admin.3521e2a863df.json.br +0 -0
  471. codex/static_root/js/choices-admin.3521e2a863df.json.gz +0 -0
  472. codex/static_root/js/choices-admin.json +1 -1
  473. codex/static_root/js/choices-admin.json.br +0 -0
  474. codex/static_root/js/choices-admin.json.gz +0 -0
  475. codex/static_root/js/choices.2f6b0359e1ef.json +1 -0
  476. codex/static_root/js/choices.2f6b0359e1ef.json.br +0 -0
  477. codex/static_root/js/choices.2f6b0359e1ef.json.gz +0 -0
  478. codex/static_root/js/choices.json +1 -1
  479. codex/static_root/js/choices.json.br +0 -0
  480. codex/static_root/js/choices.json.gz +0 -0
  481. codex/static_root/manifest.1c84116d9a0a.json +622 -0
  482. codex/static_root/manifest.1c84116d9a0a.json.br +0 -0
  483. codex/static_root/manifest.1c84116d9a0a.json.gz +0 -0
  484. codex/static_root/manifest.json +342 -327
  485. codex/static_root/manifest.json.br +0 -0
  486. codex/static_root/manifest.json.gz +0 -0
  487. codex/static_root/staticfiles.json +1 -1
  488. codex/status_controller.py +11 -2
  489. codex/templates/headers-script-globals.html +1 -4
  490. codex/urls/api/admin.py +5 -7
  491. codex/urls/api/auth.py +2 -1
  492. codex/urls/api/browser.py +18 -9
  493. codex/urls/api/reader.py +5 -11
  494. codex/urls/api/v3.py +4 -0
  495. codex/urls/app.py +8 -3
  496. codex/urls/converters.py +39 -0
  497. codex/urls/opds/binary.py +1 -1
  498. codex/urls/opds/root.py +3 -4
  499. codex/urls/opds/v1.py +1 -1
  500. codex/urls/opds/v2.py +6 -1
  501. codex/urls/root.py +2 -1
  502. codex/util.py +12 -0
  503. codex/views/admin/api_key.py +7 -8
  504. codex/views/admin/auth.py +28 -0
  505. codex/views/admin/flag.py +2 -7
  506. codex/views/admin/group.py +2 -6
  507. codex/views/admin/library.py +44 -37
  508. codex/views/admin/stats.py +20 -83
  509. codex/views/admin/tasks.py +26 -12
  510. codex/views/admin/user.py +3 -14
  511. codex/views/auth.py +39 -64
  512. codex/views/bookmark.py +93 -72
  513. codex/views/browser/annotations.py +293 -0
  514. codex/views/browser/base.py +101 -87
  515. codex/views/browser/breadcrumbs.py +202 -0
  516. codex/views/browser/browser.py +165 -518
  517. codex/views/browser/choices.py +67 -120
  518. codex/views/browser/cover.py +165 -0
  519. codex/views/browser/filters/annotations.py +102 -0
  520. codex/views/browser/filters/bookmark.py +24 -12
  521. codex/views/browser/filters/field.py +8 -6
  522. codex/views/browser/filters/group.py +38 -16
  523. codex/views/browser/filters/search.py +169 -25
  524. codex/views/browser/metadata.py +169 -136
  525. codex/views/browser/mtime.py +61 -0
  526. codex/views/browser/order_by.py +65 -0
  527. codex/views/browser/paginate.py +106 -0
  528. codex/views/browser/settings.py +66 -0
  529. codex/views/browser/title.py +48 -0
  530. codex/views/browser/validate.py +161 -0
  531. codex/views/const.py +157 -0
  532. codex/views/download.py +8 -20
  533. codex/views/error.py +2 -2
  534. codex/views/frontend.py +8 -3
  535. codex/views/mixins.py +76 -0
  536. codex/views/opds/auth.py +17 -0
  537. codex/views/opds/authentication_v1.py +46 -45
  538. codex/views/opds/binary.py +5 -10
  539. codex/views/opds/const.py +13 -0
  540. codex/views/opds/urls.py +30 -0
  541. codex/views/opds/util.py +11 -19
  542. codex/views/opds/v1/entry/data.py +2 -2
  543. codex/views/opds/v1/entry/entry.py +5 -5
  544. codex/views/opds/v1/entry/links.py +68 -58
  545. codex/views/opds/v1/facets.py +11 -11
  546. codex/views/opds/v1/feed.py +84 -63
  547. codex/views/opds/v1/links.py +21 -19
  548. codex/views/opds/v1/opensearch_v1.py +5 -6
  549. codex/views/opds/v2/feed.py +69 -53
  550. codex/views/opds/v2/links.py +4 -2
  551. codex/views/opds/v2/publications.py +50 -68
  552. codex/views/opds/v2/top_links.py +4 -4
  553. codex/views/public.py +36 -0
  554. codex/views/reader/arcs.py +92 -0
  555. codex/views/reader/books.py +181 -0
  556. codex/views/reader/init.py +125 -0
  557. codex/views/reader/page.py +16 -5
  558. codex/views/reader/reader.py +22 -236
  559. codex/views/reader/{session.py → settings.py} +4 -2
  560. codex/views/session.py +92 -102
  561. codex/views/settings.py +47 -0
  562. codex/views/template.py +3 -3
  563. codex/views/util.py +77 -0
  564. codex/views/version.py +2 -2
  565. codex/websockets/consumers.py +14 -10
  566. {codex-1.5.17.dist-info → codex-1.6.0.dist-info}/METADATA +36 -18
  567. codex-1.6.0.dist-info/RECORD +1013 -0
  568. codex/db_functions.py +0 -25
  569. codex/img/missing-cover.webp +0 -0
  570. codex/librarian/importer/update_comics.py +0 -90
  571. codex/serializers/metadata.py +0 -15
  572. codex/static_root/assets/VCheckbox-CFqm2IhY.60c7775eda9e.js +0 -1
  573. codex/static_root/assets/VCheckbox-CFqm2IhY.60c7775eda9e.js.br +0 -0
  574. codex/static_root/assets/VCheckbox-CFqm2IhY.60c7775eda9e.js.gz +0 -0
  575. codex/static_root/assets/VCheckbox-CFqm2IhY.js +0 -1
  576. codex/static_root/assets/VCheckbox-CFqm2IhY.js.br +0 -0
  577. codex/static_root/assets/VCheckbox-CFqm2IhY.js.gz +0 -0
  578. codex/static_root/assets/VCheckboxBtn-BjWW08N8.bee4c9c1c3b4.js +0 -1
  579. codex/static_root/assets/VCheckboxBtn-BjWW08N8.bee4c9c1c3b4.js.br +0 -0
  580. codex/static_root/assets/VCheckboxBtn-BjWW08N8.bee4c9c1c3b4.js.gz +0 -0
  581. codex/static_root/assets/VCheckboxBtn-BjWW08N8.js +0 -1
  582. codex/static_root/assets/VCheckboxBtn-BjWW08N8.js.br +0 -0
  583. codex/static_root/assets/VCheckboxBtn-BjWW08N8.js.gz +0 -0
  584. codex/static_root/assets/VCombobox-BiHR4LaF.7487536b173b.js +0 -1
  585. codex/static_root/assets/VCombobox-BiHR4LaF.7487536b173b.js.br +0 -0
  586. codex/static_root/assets/VCombobox-BiHR4LaF.7487536b173b.js.gz +0 -0
  587. codex/static_root/assets/VCombobox-BiHR4LaF.js +0 -1
  588. codex/static_root/assets/VCombobox-BiHR4LaF.js.br +0 -0
  589. codex/static_root/assets/VCombobox-BiHR4LaF.js.gz +0 -0
  590. codex/static_root/assets/VDataTableVirtual--XFLD9jr.ecfcb691279b.js +0 -1
  591. codex/static_root/assets/VDataTableVirtual--XFLD9jr.ecfcb691279b.js.br +0 -0
  592. codex/static_root/assets/VDataTableVirtual--XFLD9jr.ecfcb691279b.js.gz +0 -0
  593. codex/static_root/assets/VDataTableVirtual--XFLD9jr.js +0 -1
  594. codex/static_root/assets/VDataTableVirtual--XFLD9jr.js.br +0 -0
  595. codex/static_root/assets/VDataTableVirtual--XFLD9jr.js.gz +0 -0
  596. codex/static_root/assets/VDataTableVirtual-CSBxS0yr.825a0ca38f9d.css +0 -1
  597. codex/static_root/assets/VDataTableVirtual-CSBxS0yr.825a0ca38f9d.css.br +0 -0
  598. codex/static_root/assets/VDataTableVirtual-CSBxS0yr.825a0ca38f9d.css.gz +0 -0
  599. codex/static_root/assets/VDataTableVirtual-CSBxS0yr.css +0 -1
  600. codex/static_root/assets/VDataTableVirtual-CSBxS0yr.css.br +0 -0
  601. codex/static_root/assets/VDataTableVirtual-CSBxS0yr.css.gz +0 -0
  602. codex/static_root/assets/VExpansionPanel-CSSnZFhG.bb54c6635f82.js +0 -1
  603. codex/static_root/assets/VExpansionPanel-CSSnZFhG.bb54c6635f82.js.br +0 -0
  604. codex/static_root/assets/VExpansionPanel-CSSnZFhG.bb54c6635f82.js.gz +0 -0
  605. codex/static_root/assets/VExpansionPanel-CSSnZFhG.js +0 -1
  606. codex/static_root/assets/VExpansionPanel-CSSnZFhG.js.br +0 -0
  607. codex/static_root/assets/VExpansionPanel-CSSnZFhG.js.gz +0 -0
  608. codex/static_root/assets/VMain-BJLquw4_.0d36762696df.js +0 -1
  609. codex/static_root/assets/VMain-BJLquw4_.0d36762696df.js.br +0 -0
  610. codex/static_root/assets/VMain-BJLquw4_.0d36762696df.js.gz +0 -0
  611. codex/static_root/assets/VMain-BJLquw4_.js +0 -1
  612. codex/static_root/assets/VMain-BJLquw4_.js.br +0 -0
  613. codex/static_root/assets/VMain-BJLquw4_.js.gz +0 -0
  614. codex/static_root/assets/VMain-Byt37V4c.a00e206f3cfa.css +0 -1
  615. codex/static_root/assets/VMain-Byt37V4c.a00e206f3cfa.css.br +0 -0
  616. codex/static_root/assets/VMain-Byt37V4c.a00e206f3cfa.css.gz +0 -0
  617. codex/static_root/assets/VMain-Byt37V4c.css +0 -1
  618. codex/static_root/assets/VMain-Byt37V4c.css.br +0 -0
  619. codex/static_root/assets/VMain-Byt37V4c.css.gz +0 -0
  620. codex/static_root/assets/VRadioGroup-BrO5lLMK.60b07cdd1b52.js +0 -1
  621. codex/static_root/assets/VRadioGroup-BrO5lLMK.60b07cdd1b52.js.br +0 -0
  622. codex/static_root/assets/VRadioGroup-BrO5lLMK.60b07cdd1b52.js.gz +0 -0
  623. codex/static_root/assets/VRadioGroup-BrO5lLMK.js +0 -1
  624. codex/static_root/assets/VRadioGroup-BrO5lLMK.js.br +0 -0
  625. codex/static_root/assets/VRadioGroup-BrO5lLMK.js.gz +0 -0
  626. codex/static_root/assets/VSelect-BdGop3V2.604c1785fbff.css +0 -1
  627. codex/static_root/assets/VSelect-BdGop3V2.604c1785fbff.css.br +0 -0
  628. codex/static_root/assets/VSelect-BdGop3V2.604c1785fbff.css.gz +0 -0
  629. codex/static_root/assets/VSelect-BdGop3V2.css +0 -1
  630. codex/static_root/assets/VSelect-BdGop3V2.css.br +0 -0
  631. codex/static_root/assets/VSelect-BdGop3V2.css.gz +0 -0
  632. codex/static_root/assets/VSelect-CAEbdtAK.6d93a3800567.js +0 -1
  633. codex/static_root/assets/VSelect-CAEbdtAK.6d93a3800567.js.br +0 -0
  634. codex/static_root/assets/VSelect-CAEbdtAK.6d93a3800567.js.gz +0 -0
  635. codex/static_root/assets/VSelect-CAEbdtAK.js +0 -1
  636. codex/static_root/assets/VSelect-CAEbdtAK.js.br +0 -0
  637. codex/static_root/assets/VSelect-CAEbdtAK.js.gz +0 -0
  638. codex/static_root/assets/VSelectionControl-BoyRbIct.7cfcfa9ae20b.js +0 -1
  639. codex/static_root/assets/VSelectionControl-BoyRbIct.7cfcfa9ae20b.js.br +0 -0
  640. codex/static_root/assets/VSelectionControl-BoyRbIct.7cfcfa9ae20b.js.gz +0 -0
  641. codex/static_root/assets/VSelectionControl-BoyRbIct.js +0 -1
  642. codex/static_root/assets/VSelectionControl-BoyRbIct.js.br +0 -0
  643. codex/static_root/assets/VSelectionControl-BoyRbIct.js.gz +0 -0
  644. codex/static_root/assets/VSlideGroup-C3lY91uv.css +0 -1
  645. codex/static_root/assets/VSlideGroup-C3lY91uv.css.br +0 -0
  646. codex/static_root/assets/VSlideGroup-C3lY91uv.css.gz +0 -0
  647. codex/static_root/assets/VSlideGroup-C3lY91uv.d268067bd078.css +0 -1
  648. codex/static_root/assets/VSlideGroup-C3lY91uv.d268067bd078.css.br +0 -0
  649. codex/static_root/assets/VSlideGroup-C3lY91uv.d268067bd078.css.gz +0 -0
  650. codex/static_root/assets/VSlideGroup-IIebYuJm.d50fd68270e6.js +0 -1
  651. codex/static_root/assets/VSlideGroup-IIebYuJm.d50fd68270e6.js.br +0 -0
  652. codex/static_root/assets/VSlideGroup-IIebYuJm.d50fd68270e6.js.gz +0 -0
  653. codex/static_root/assets/VSlideGroup-IIebYuJm.js +0 -1
  654. codex/static_root/assets/VSlideGroup-IIebYuJm.js.br +0 -0
  655. codex/static_root/assets/VSlideGroup-IIebYuJm.js.gz +0 -0
  656. codex/static_root/assets/VTable-XNBBnB2q.b2784736062a.js.br +0 -0
  657. codex/static_root/assets/VTable-XNBBnB2q.b2784736062a.js.gz +0 -0
  658. codex/static_root/assets/VTable-XNBBnB2q.js.br +0 -0
  659. codex/static_root/assets/VTable-XNBBnB2q.js.gz +0 -0
  660. codex/static_root/assets/VToolbar-CLYsoOKq.acca0b6c0684.js +0 -2
  661. codex/static_root/assets/VToolbar-CLYsoOKq.acca0b6c0684.js.br +0 -0
  662. codex/static_root/assets/VToolbar-CLYsoOKq.acca0b6c0684.js.gz +0 -0
  663. codex/static_root/assets/VToolbar-CLYsoOKq.js +0 -2
  664. codex/static_root/assets/VToolbar-CLYsoOKq.js.br +0 -0
  665. codex/static_root/assets/VToolbar-CLYsoOKq.js.gz +0 -0
  666. codex/static_root/assets/VToolbar-DqQLg1UA.614d6a4a8a09.css +0 -1
  667. codex/static_root/assets/VToolbar-DqQLg1UA.614d6a4a8a09.css.br +0 -0
  668. codex/static_root/assets/VToolbar-DqQLg1UA.614d6a4a8a09.css.gz +0 -0
  669. codex/static_root/assets/VToolbar-DqQLg1UA.css +0 -1
  670. codex/static_root/assets/VToolbar-DqQLg1UA.css.br +0 -0
  671. codex/static_root/assets/VToolbar-DqQLg1UA.css.gz +0 -0
  672. codex/static_root/assets/VWindowItem-CPevuSn_.27817d5bd8e4.js +0 -1
  673. codex/static_root/assets/VWindowItem-CPevuSn_.27817d5bd8e4.js.br +0 -0
  674. codex/static_root/assets/VWindowItem-CPevuSn_.27817d5bd8e4.js.gz +0 -0
  675. codex/static_root/assets/VWindowItem-CPevuSn_.js +0 -1
  676. codex/static_root/assets/VWindowItem-CPevuSn_.js.br +0 -0
  677. codex/static_root/assets/VWindowItem-CPevuSn_.js.gz +0 -0
  678. codex/static_root/assets/admin-CzWbM7Nl.95cf937f31ff.js +0 -1
  679. codex/static_root/assets/admin-CzWbM7Nl.95cf937f31ff.js.br +0 -0
  680. codex/static_root/assets/admin-CzWbM7Nl.95cf937f31ff.js.gz +0 -0
  681. codex/static_root/assets/admin-CzWbM7Nl.js +0 -1
  682. codex/static_root/assets/admin-CzWbM7Nl.js.br +0 -0
  683. codex/static_root/assets/admin-CzWbM7Nl.js.gz +0 -0
  684. codex/static_root/assets/admin-Df82-Qcj.4c3f0406ee54.css +0 -1
  685. codex/static_root/assets/admin-Df82-Qcj.4c3f0406ee54.css.br +0 -0
  686. codex/static_root/assets/admin-Df82-Qcj.4c3f0406ee54.css.gz +0 -0
  687. codex/static_root/assets/admin-Df82-Qcj.css +0 -1
  688. codex/static_root/assets/admin-Df82-Qcj.css.br +0 -0
  689. codex/static_root/assets/admin-Df82-Qcj.css.gz +0 -0
  690. codex/static_root/assets/admin-drawer-panel-B4-04ET4.ff74b52952d0.js +0 -30
  691. codex/static_root/assets/admin-drawer-panel-B4-04ET4.ff74b52952d0.js.br +0 -0
  692. codex/static_root/assets/admin-drawer-panel-B4-04ET4.ff74b52952d0.js.gz +0 -0
  693. codex/static_root/assets/admin-drawer-panel-B4-04ET4.js +0 -30
  694. codex/static_root/assets/admin-drawer-panel-B4-04ET4.js.br +0 -0
  695. codex/static_root/assets/admin-drawer-panel-B4-04ET4.js.gz +0 -0
  696. codex/static_root/assets/admin-drawer-panel-Cr-0BCQv.b519336cb005.css +0 -1
  697. codex/static_root/assets/admin-drawer-panel-Cr-0BCQv.b519336cb005.css.br +0 -0
  698. codex/static_root/assets/admin-drawer-panel-Cr-0BCQv.b519336cb005.css.gz +0 -0
  699. codex/static_root/assets/admin-drawer-panel-Cr-0BCQv.css +0 -1
  700. codex/static_root/assets/admin-drawer-panel-Cr-0BCQv.css.br +0 -0
  701. codex/static_root/assets/admin-drawer-panel-Cr-0BCQv.css.gz +0 -0
  702. codex/static_root/assets/browser-BldK4CGS.ce8c71552de0.js +0 -1
  703. codex/static_root/assets/browser-BldK4CGS.ce8c71552de0.js.br +0 -0
  704. codex/static_root/assets/browser-BldK4CGS.ce8c71552de0.js.gz +0 -0
  705. codex/static_root/assets/browser-BldK4CGS.js +0 -1
  706. codex/static_root/assets/browser-BldK4CGS.js.br +0 -0
  707. codex/static_root/assets/browser-BldK4CGS.js.gz +0 -0
  708. codex/static_root/assets/browser-HtKThxA9.69be059a55f4.css +0 -1
  709. codex/static_root/assets/browser-HtKThxA9.69be059a55f4.css.br +0 -0
  710. codex/static_root/assets/browser-HtKThxA9.69be059a55f4.css.gz +0 -0
  711. codex/static_root/assets/browser-HtKThxA9.css +0 -1
  712. codex/static_root/assets/browser-HtKThxA9.css.br +0 -0
  713. codex/static_root/assets/browser-HtKThxA9.css.gz +0 -0
  714. codex/static_root/assets/change-password-dialog-BRmvkNir.2fead58a78c7.css +0 -1
  715. codex/static_root/assets/change-password-dialog-BRmvkNir.2fead58a78c7.css.br +0 -0
  716. codex/static_root/assets/change-password-dialog-BRmvkNir.2fead58a78c7.css.gz +0 -0
  717. codex/static_root/assets/change-password-dialog-BRmvkNir.css +0 -1
  718. codex/static_root/assets/change-password-dialog-BRmvkNir.css.br +0 -0
  719. codex/static_root/assets/change-password-dialog-BRmvkNir.css.gz +0 -0
  720. codex/static_root/assets/change-password-dialog-DAvSz_BT.89752c597186.js +0 -1
  721. codex/static_root/assets/change-password-dialog-DAvSz_BT.89752c597186.js.br +0 -0
  722. codex/static_root/assets/change-password-dialog-DAvSz_BT.89752c597186.js.gz +0 -0
  723. codex/static_root/assets/change-password-dialog-DAvSz_BT.js +0 -1
  724. codex/static_root/assets/change-password-dialog-DAvSz_BT.js.br +0 -0
  725. codex/static_root/assets/change-password-dialog-DAvSz_BT.js.gz +0 -0
  726. codex/static_root/assets/confirm-dialog-0mqMQack.a2b39e1d65f7.js +0 -1
  727. codex/static_root/assets/confirm-dialog-0mqMQack.a2b39e1d65f7.js.br +0 -0
  728. codex/static_root/assets/confirm-dialog-0mqMQack.a2b39e1d65f7.js.gz +0 -0
  729. codex/static_root/assets/confirm-dialog-0mqMQack.js +0 -1
  730. codex/static_root/assets/confirm-dialog-0mqMQack.js.br +0 -0
  731. codex/static_root/assets/confirm-dialog-0mqMQack.js.gz +0 -0
  732. codex/static_root/assets/confirm-footer-VFepxcJs.4150131304bd.css +0 -1
  733. codex/static_root/assets/confirm-footer-VFepxcJs.4150131304bd.css.br +0 -0
  734. codex/static_root/assets/confirm-footer-VFepxcJs.4150131304bd.css.gz +0 -0
  735. codex/static_root/assets/confirm-footer-VFepxcJs.css +0 -1
  736. codex/static_root/assets/confirm-footer-VFepxcJs.css.br +0 -0
  737. codex/static_root/assets/confirm-footer-VFepxcJs.css.gz +0 -0
  738. codex/static_root/assets/confirm-footer-oTUv06_v.99f172061491.js +0 -1
  739. codex/static_root/assets/confirm-footer-oTUv06_v.99f172061491.js.br +0 -0
  740. codex/static_root/assets/confirm-footer-oTUv06_v.99f172061491.js.gz +0 -0
  741. codex/static_root/assets/confirm-footer-oTUv06_v.js +0 -1
  742. codex/static_root/assets/confirm-footer-oTUv06_v.js.br +0 -0
  743. codex/static_root/assets/confirm-footer-oTUv06_v.js.gz +0 -0
  744. codex/static_root/assets/datetime-column-BWWfvyhn.a4a94ba57c73.css +0 -1
  745. codex/static_root/assets/datetime-column-BWWfvyhn.a4a94ba57c73.css.br +0 -0
  746. codex/static_root/assets/datetime-column-BWWfvyhn.css +0 -1
  747. codex/static_root/assets/datetime-column-BWWfvyhn.css.br +0 -0
  748. codex/static_root/assets/datetime-column-D3I95kw3.26791f31ac02.js +0 -1
  749. codex/static_root/assets/datetime-column-D3I95kw3.26791f31ac02.js.br +0 -0
  750. codex/static_root/assets/datetime-column-D3I95kw3.26791f31ac02.js.gz +0 -0
  751. codex/static_root/assets/datetime-column-D3I95kw3.js +0 -1
  752. codex/static_root/assets/datetime-column-D3I95kw3.js.br +0 -0
  753. codex/static_root/assets/datetime-column-D3I95kw3.js.gz +0 -0
  754. codex/static_root/assets/filter-D95Y3XYa.b69f5d543997.js +0 -1
  755. codex/static_root/assets/filter-D95Y3XYa.b69f5d543997.js.br +0 -0
  756. codex/static_root/assets/filter-D95Y3XYa.b69f5d543997.js.gz +0 -0
  757. codex/static_root/assets/filter-D95Y3XYa.js +0 -1
  758. codex/static_root/assets/filter-D95Y3XYa.js.br +0 -0
  759. codex/static_root/assets/filter-D95Y3XYa.js.gz +0 -0
  760. codex/static_root/assets/flag-tab-C9vu256Y.bd43f22c727b.js +0 -1
  761. codex/static_root/assets/flag-tab-C9vu256Y.bd43f22c727b.js.br +0 -0
  762. codex/static_root/assets/flag-tab-C9vu256Y.bd43f22c727b.js.gz +0 -0
  763. codex/static_root/assets/flag-tab-C9vu256Y.js +0 -1
  764. codex/static_root/assets/flag-tab-C9vu256Y.js.br +0 -0
  765. codex/static_root/assets/flag-tab-C9vu256Y.js.gz +0 -0
  766. codex/static_root/assets/flag-tab-D_HjkAta.203bedf35ce7.css +0 -1
  767. codex/static_root/assets/flag-tab-D_HjkAta.203bedf35ce7.css.br +0 -0
  768. codex/static_root/assets/flag-tab-D_HjkAta.203bedf35ce7.css.gz +0 -0
  769. codex/static_root/assets/flag-tab-D_HjkAta.css +0 -1
  770. codex/static_root/assets/flag-tab-D_HjkAta.css.br +0 -0
  771. codex/static_root/assets/flag-tab-D_HjkAta.css.gz +0 -0
  772. codex/static_root/assets/group-tab-DKqBg4yc.22ea16c1e331.js +0 -1
  773. codex/static_root/assets/group-tab-DKqBg4yc.22ea16c1e331.js.br +0 -0
  774. codex/static_root/assets/group-tab-DKqBg4yc.22ea16c1e331.js.gz +0 -0
  775. codex/static_root/assets/group-tab-DKqBg4yc.js +0 -1
  776. codex/static_root/assets/group-tab-DKqBg4yc.js.br +0 -0
  777. codex/static_root/assets/group-tab-DKqBg4yc.js.gz +0 -0
  778. codex/static_root/assets/group-tab-GFacGljN.98df9e04f2a7.css +0 -1
  779. codex/static_root/assets/group-tab-GFacGljN.98df9e04f2a7.css.br +0 -0
  780. codex/static_root/assets/group-tab-GFacGljN.98df9e04f2a7.css.gz +0 -0
  781. codex/static_root/assets/group-tab-GFacGljN.css +0 -1
  782. codex/static_root/assets/group-tab-GFacGljN.css.br +0 -0
  783. codex/static_root/assets/group-tab-GFacGljN.css.gz +0 -0
  784. codex/static_root/assets/http-error-C25WdjWC.1c7337ad6e1d.css +0 -1
  785. codex/static_root/assets/http-error-C25WdjWC.1c7337ad6e1d.css.br +0 -0
  786. codex/static_root/assets/http-error-C25WdjWC.1c7337ad6e1d.css.gz +0 -0
  787. codex/static_root/assets/http-error-C25WdjWC.css +0 -1
  788. codex/static_root/assets/http-error-C25WdjWC.css.br +0 -0
  789. codex/static_root/assets/http-error-C25WdjWC.css.gz +0 -0
  790. codex/static_root/assets/http-error-F_AIFiVP.1d3b95f22256.js +0 -1
  791. codex/static_root/assets/http-error-F_AIFiVP.1d3b95f22256.js.br +0 -0
  792. codex/static_root/assets/http-error-F_AIFiVP.1d3b95f22256.js.gz +0 -0
  793. codex/static_root/assets/http-error-F_AIFiVP.js +0 -1
  794. codex/static_root/assets/http-error-F_AIFiVP.js.br +0 -0
  795. codex/static_root/assets/http-error-F_AIFiVP.js.gz +0 -0
  796. codex/static_root/assets/index-DUjeNg4x.36d50c91b2c1.js +0 -1
  797. codex/static_root/assets/index-DUjeNg4x.36d50c91b2c1.js.br +0 -0
  798. codex/static_root/assets/index-DUjeNg4x.36d50c91b2c1.js.gz +0 -0
  799. codex/static_root/assets/index-DUjeNg4x.js +0 -1
  800. codex/static_root/assets/index-DUjeNg4x.js.br +0 -0
  801. codex/static_root/assets/index-DUjeNg4x.js.gz +0 -0
  802. codex/static_root/assets/library-tab-CKYjhIWV.a1119d2cb417.js +0 -1
  803. codex/static_root/assets/library-tab-CKYjhIWV.a1119d2cb417.js.br +0 -0
  804. codex/static_root/assets/library-tab-CKYjhIWV.a1119d2cb417.js.gz +0 -0
  805. codex/static_root/assets/library-tab-CKYjhIWV.js +0 -1
  806. codex/static_root/assets/library-tab-CKYjhIWV.js.br +0 -0
  807. codex/static_root/assets/library-tab-CKYjhIWV.js.gz +0 -0
  808. codex/static_root/assets/library-tab-DZKDtQ5v.c8123e4bc5a4.css +0 -1
  809. codex/static_root/assets/library-tab-DZKDtQ5v.c8123e4bc5a4.css.br +0 -3
  810. codex/static_root/assets/library-tab-DZKDtQ5v.c8123e4bc5a4.css.gz +0 -0
  811. codex/static_root/assets/library-tab-DZKDtQ5v.css +0 -1
  812. codex/static_root/assets/library-tab-DZKDtQ5v.css.br +0 -3
  813. codex/static_root/assets/library-tab-DZKDtQ5v.css.gz +0 -0
  814. codex/static_root/assets/main-BJxn-WA7.a04c671bd796.js +0 -32
  815. codex/static_root/assets/main-BJxn-WA7.a04c671bd796.js.br +0 -0
  816. codex/static_root/assets/main-BJxn-WA7.a04c671bd796.js.gz +0 -0
  817. codex/static_root/assets/main-BJxn-WA7.js +0 -32
  818. codex/static_root/assets/main-BJxn-WA7.js.br +0 -0
  819. codex/static_root/assets/main-BJxn-WA7.js.gz +0 -0
  820. codex/static_root/assets/main-ClKzvaJK.04ea1888c6b4.css.br +0 -0
  821. codex/static_root/assets/main-ClKzvaJK.css.br +0 -0
  822. codex/static_root/assets/metadata-dialog-DNdhw8Y2.21df0d7eff56.js +0 -1
  823. codex/static_root/assets/metadata-dialog-DNdhw8Y2.21df0d7eff56.js.br +0 -0
  824. codex/static_root/assets/metadata-dialog-DNdhw8Y2.21df0d7eff56.js.gz +0 -0
  825. codex/static_root/assets/metadata-dialog-DNdhw8Y2.js +0 -1
  826. codex/static_root/assets/metadata-dialog-DNdhw8Y2.js.br +0 -0
  827. codex/static_root/assets/metadata-dialog-DNdhw8Y2.js.gz +0 -0
  828. codex/static_root/assets/metadata-dialog-DqTRiI3h.ac34b1bcab82.css +0 -1
  829. codex/static_root/assets/metadata-dialog-DqTRiI3h.ac34b1bcab82.css.br +0 -0
  830. codex/static_root/assets/metadata-dialog-DqTRiI3h.ac34b1bcab82.css.gz +0 -0
  831. codex/static_root/assets/metadata-dialog-DqTRiI3h.css +0 -1
  832. codex/static_root/assets/metadata-dialog-DqTRiI3h.css.br +0 -0
  833. codex/static_root/assets/metadata-dialog-DqTRiI3h.css.gz +0 -0
  834. codex/static_root/assets/pdf-doc-DQV6XqAo.38b6ebeec5bc.js +0 -35
  835. codex/static_root/assets/pdf-doc-DQV6XqAo.38b6ebeec5bc.js.br +0 -0
  836. codex/static_root/assets/pdf-doc-DQV6XqAo.38b6ebeec5bc.js.gz +0 -0
  837. codex/static_root/assets/pdf-doc-DQV6XqAo.js +0 -35
  838. codex/static_root/assets/pdf-doc-DQV6XqAo.js.br +0 -0
  839. codex/static_root/assets/pdf-doc-DQV6XqAo.js.gz +0 -0
  840. codex/static_root/assets/reader-BuAYRwBN.3f834951f509.js +0 -2
  841. codex/static_root/assets/reader-BuAYRwBN.3f834951f509.js.br +0 -0
  842. codex/static_root/assets/reader-BuAYRwBN.3f834951f509.js.gz +0 -0
  843. codex/static_root/assets/reader-BuAYRwBN.js +0 -2
  844. codex/static_root/assets/reader-BuAYRwBN.js.br +0 -0
  845. codex/static_root/assets/reader-BuAYRwBN.js.gz +0 -0
  846. codex/static_root/assets/reader-CG6zrLXl.css +0 -1
  847. codex/static_root/assets/reader-CG6zrLXl.css.br +0 -0
  848. codex/static_root/assets/reader-CG6zrLXl.css.gz +0 -0
  849. codex/static_root/assets/reader-CG6zrLXl.ed017042cd53.css +0 -1
  850. codex/static_root/assets/reader-CG6zrLXl.ed017042cd53.css.br +0 -0
  851. codex/static_root/assets/reader-CG6zrLXl.ed017042cd53.css.gz +0 -0
  852. codex/static_root/assets/stats-tab-BTZLMBCU.7e0a9547c12e.css +0 -1
  853. codex/static_root/assets/stats-tab-BTZLMBCU.7e0a9547c12e.css.br +0 -0
  854. codex/static_root/assets/stats-tab-BTZLMBCU.7e0a9547c12e.css.gz +0 -0
  855. codex/static_root/assets/stats-tab-BTZLMBCU.css +0 -1
  856. codex/static_root/assets/stats-tab-BTZLMBCU.css.br +0 -0
  857. codex/static_root/assets/stats-tab-BTZLMBCU.css.gz +0 -0
  858. codex/static_root/assets/stats-tab-wzOFMrgw.ffc62bf814ce.js +0 -1
  859. codex/static_root/assets/stats-tab-wzOFMrgw.ffc62bf814ce.js.br +0 -0
  860. codex/static_root/assets/stats-tab-wzOFMrgw.ffc62bf814ce.js.gz +0 -0
  861. codex/static_root/assets/stats-tab-wzOFMrgw.js +0 -1
  862. codex/static_root/assets/stats-tab-wzOFMrgw.js.br +0 -0
  863. codex/static_root/assets/stats-tab-wzOFMrgw.js.gz +0 -0
  864. codex/static_root/assets/task-tab-DoX9OA37.9bb355f36dbf.css +0 -1
  865. codex/static_root/assets/task-tab-DoX9OA37.9bb355f36dbf.css.gz +0 -0
  866. codex/static_root/assets/task-tab-DoX9OA37.css +0 -1
  867. codex/static_root/assets/task-tab-DoX9OA37.css.gz +0 -0
  868. codex/static_root/assets/task-tab-UYMTSKl-.c37096a07f51.js +0 -1
  869. codex/static_root/assets/task-tab-UYMTSKl-.c37096a07f51.js.br +0 -0
  870. codex/static_root/assets/task-tab-UYMTSKl-.c37096a07f51.js.gz +0 -0
  871. codex/static_root/assets/task-tab-UYMTSKl-.js +0 -1
  872. codex/static_root/assets/task-tab-UYMTSKl-.js.br +0 -0
  873. codex/static_root/assets/task-tab-UYMTSKl-.js.gz +0 -0
  874. codex/static_root/assets/to-case-kUm8NPpW.5b3369f511b8.js +0 -1
  875. codex/static_root/assets/to-case-kUm8NPpW.js +0 -1
  876. codex/static_root/assets/user-tab-ByP2OwxN.255023553b2e.js +0 -1
  877. codex/static_root/assets/user-tab-ByP2OwxN.255023553b2e.js.br +0 -0
  878. codex/static_root/assets/user-tab-ByP2OwxN.255023553b2e.js.gz +0 -0
  879. codex/static_root/assets/user-tab-ByP2OwxN.js +0 -1
  880. codex/static_root/assets/user-tab-ByP2OwxN.js.br +0 -0
  881. codex/static_root/assets/user-tab-ByP2OwxN.js.gz +0 -0
  882. codex/static_root/img/logo-32.dbb98f6dfde4.webp +0 -0
  883. codex/static_root/img/logo-maskable-180.201cbde62d55.webp +0 -0
  884. codex/static_root/img/logo-maskable.d618c2d7943f.svg +0 -83
  885. codex/static_root/img/logo-maskable.d618c2d7943f.svg.br +0 -0
  886. codex/static_root/img/logo-maskable.d618c2d7943f.svg.gz +0 -0
  887. codex/static_root/img/logo.3fb129bfbd92.svg +0 -80
  888. codex/static_root/img/logo.3fb129bfbd92.svg.br +0 -0
  889. codex/static_root/img/logo.3fb129bfbd92.svg.gz +0 -0
  890. codex/static_root/img/missing-cover.8c8c1d4f6782.webp +0 -0
  891. codex/static_root/img/missing-cover.webp +0 -0
  892. codex/static_root/img/missing-page.71bb10f7c72a.svg +0 -13
  893. codex/static_root/img/missing-page.71bb10f7c72a.svg.br +0 -0
  894. codex/static_root/img/missing-page.71bb10f7c72a.svg.gz +0 -0
  895. codex/static_root/img/missing-page.svg +0 -13
  896. codex/static_root/img/missing-page.svg.br +0 -0
  897. codex/static_root/img/missing-page.svg.gz +0 -0
  898. codex/static_root/js/choices-admin.bb730e4f26ac.json +0 -1
  899. codex/static_root/js/choices-admin.bb730e4f26ac.json.br +0 -0
  900. codex/static_root/js/choices-admin.bb730e4f26ac.json.gz +0 -0
  901. codex/static_root/js/choices.fedcbd1ec085.json +0 -1
  902. codex/static_root/js/choices.fedcbd1ec085.json.br +0 -0
  903. codex/static_root/js/choices.fedcbd1ec085.json.gz +0 -0
  904. codex/static_root/manifest.d2fc837c9c53.json +0 -607
  905. codex/static_root/manifest.d2fc837c9c53.json.br +0 -0
  906. codex/static_root/manifest.d2fc837c9c53.json.gz +0 -0
  907. codex/views/browser/browser_annotations.py +0 -298
  908. codex/views/browser/browser_order_by.py +0 -108
  909. codex/views/browser/const.py +0 -3
  910. codex/views/browser/session.py +0 -12
  911. codex/views/cover.py +0 -59
  912. codex-1.5.17.dist-info/RECORD +0 -936
  913. /codex/static_root/assets/{VExpansionPanel-DsEXVcCv.20b475255e66.css → VExpansionPanels-DsEXVcCv.20b475255e66.css} +0 -0
  914. /codex/static_root/assets/{VExpansionPanel-DsEXVcCv.20b475255e66.css.br → VExpansionPanels-DsEXVcCv.20b475255e66.css.br} +0 -0
  915. /codex/static_root/assets/{VExpansionPanel-DsEXVcCv.20b475255e66.css.gz → VExpansionPanels-DsEXVcCv.20b475255e66.css.gz} +0 -0
  916. /codex/static_root/assets/{VExpansionPanel-DsEXVcCv.css → VExpansionPanels-DsEXVcCv.css} +0 -0
  917. /codex/static_root/assets/{VExpansionPanel-DsEXVcCv.css.br → VExpansionPanels-DsEXVcCv.css.br} +0 -0
  918. /codex/static_root/assets/{VExpansionPanel-DsEXVcCv.css.gz → VExpansionPanels-DsEXVcCv.css.gz} +0 -0
  919. {codex-1.5.17.dist-info → codex-1.6.0.dist-info}/LICENSE +0 -0
  920. {codex-1.5.17.dist-info → codex-1.6.0.dist-info}/WHEEL +0 -0
  921. {codex-1.5.17.dist-info → codex-1.6.0.dist-info}/entry_points.txt +0 -0
@@ -1,2 +0,0 @@
1
- const __vite__fileDeps=["assets/pdf-doc-DQV6XqAo.js","assets/admin-drawer-panel-B4-04ET4.js","assets/admin-drawer-panel-Cr-0BCQv.css","assets/main-BJxn-WA7.js","assets/main-ClKzvaJK.css","assets/VToolbar-CLYsoOKq.js","assets/index-DUjeNg4x.js","assets/confirm-footer-oTUv06_v.js","assets/confirm-footer-VFepxcJs.css","assets/change-password-dialog-DAvSz_BT.js","assets/VSlideGroup-IIebYuJm.js","assets/VSelectionControl-BoyRbIct.js","assets/VSelectionControl-BFq--28I.css","assets/VSlideGroup-C3lY91uv.css","assets/change-password-dialog-BRmvkNir.css","assets/VToolbar-DqQLg1UA.css","assets/pdf-doc-CMzaSV_K.css"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
2
- import{u as c,c as U,d as Ve,S as Oe,V as xe,a as Ee,e as Ae,h as Ne,i as Fe,_ as re}from"./VToolbar-CLYsoOKq.js";import{_ as A,a as ne,b as ie,P as Ue,c as le,V as K}from"./metadata-dialog-DNdhw8Y2.js";import{ax as w,M as P,N as f,_ as m,R as u,O as g,P as i,aa as h,ae as _,L as n,ad as v,aB as S,bj as ze,bf as Me,be as B,ay as b,aK as We,b7 as O,bk as ce,Q as y,ab as D,bl as qe,bm as He,aD as r,am as W,aC as H,bn as ue,aA as de,az as x,al as R,a9 as G,bc as Ge,bo as Ke,bp as je,bq as Ye,br as Xe,ag as E,bs as Ze,k as T,ak as q,bt as Qe,bu as Je,af as j,a$ as et,bv as tt,bw as ot,bx as at,by as st,bz as rt,bA as nt,aH as it,aI as lt,aT as Y,m as X,bB as ct,bh as Z,bC as ut}from"./admin-drawer-panel-B4-04ET4.js";import{_ as dt,a as he,u as ht,C as pt}from"./main-BJxn-WA7.js";import{V as pe,a as ge}from"./VWindowItem-CPevuSn_.js";import{b as gt,V as mt}from"./VSelect-CAEbdtAK.js";import{V as $,a as z}from"./VRadioGroup-BrO5lLMK.js";import{V as M}from"./VCheckbox-CFqm2IhY.js";import{V as kt,a as _t,b as bt,c as ft}from"./VExpansionPanel-CSSnZFhG.js";import{V as Pt}from"./VMain-BJLquw4_.js";import"./index-DUjeNg4x.js";import"./confirm-footer-oTUv06_v.js";import"./change-password-dialog-DAvSz_BT.js";import"./VSlideGroup-IIebYuJm.js";import"./VSelectionControl-BoyRbIct.js";import"./to-case-kUm8NPpW.js";import"./VCheckboxBtn-BjWW08N8.js";const vt={name:"ReaderNavButton",components:{PaginationNavButton:A},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...w(c,["isVertical"]),...P(c,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}}}),title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...f(c,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function wt(e,t,a,d,l,o){const s=A;return u(),g(s,{key:e.isVertical,disabled:o.disabled,title:o.title,to:e.toRoute,onClick:o.onClick},{default:i(()=>[h(_(a.value),1)]),_:1},8,["disabled","title","to","onClick"])}const me=m(vt,[["render",wt]]),St={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:A},props:{direction:{type:String,required:!0}},computed:{...w(c,["isBTT"]),...P(c,{toRoute(e){var a;const t=(a=e==null?void 0:e.routes)==null?void 0:a.books[this.direction];return t?{params:{...t}}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},disabled(){return!this.toRoute}},methods:{...f(c,["bookChangeIcon"])}};function Ct(e,t,a,d,l,o){const s=A;return u(),g(s,{icon:"",variant:"plain",disabled:o.disabled,title:o.title,to:e.toRoute},{default:i(()=>[n(v,null,{default:i(()=>[h(_(o.icon),1)]),_:1})]),_:1},8,["disabled","title","to"])}const ke=m(St,[["render",Ct]]),L="prev",V="next",yt={name:"ReaderNavToolbar",components:{PaginationSlider:ne,ReaderNavButton:me,PaginationToolbar:ie,ReaderBookChangeNavButton:ke},computed:{...w(c,["activeSettings","isReadInReverse","isVertical"]),...P(c,{storePage:e=>e.page,key(e){var t,a;return`${(a=(t=e.books)==null?void 0:t.current)==null?void 0:a.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._keyListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyListener)},methods:{...f(c,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyListener(e){switch(e.stopPropagation(),e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection(V):e.shiftKey&&window.scrollY===0&&this.routeToDirection(L);break;case"j":case"ArrowRight":this.routeToDirection(V);break;case"k":case"ArrowLeft":this.routeToDirection(L);break;case",":this.routeToDirectionOne(L);break;case".":this.routeToDirectionOne(V);break;case"n":this.routeToBook(V);break;case"p":this.routeToBook(L);break}}}};function Rt(e,t,a,d,l,o){const s=ke,p=me,k=ne,I=ie;return e.maxPage?(u(),g(I,{key:0},{default:i(()=>[n(s,{direction:o.bookPrev},null,8,["direction"]),n(p,{value:o.min,"two-pages":o.twoPages},null,8,["value","two-pages"]),(u(),g(k,{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]=F=>o.onSliderUpdate(F))},null,8,["model-value","max","step","track-color","reverse"])),n(p,{value:o.max,"two-pages":o.twoPages},null,8,["value","two-pages"]),n(s,{direction:o.bookNext},null,8,["direction"])]),_:1})):S("",!0)}const _e=m(yt,[["render",Rt]]),Bt=.5,Tt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:ze}},computed:{...P(c,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=U},style(){return{cursor:this.scale==U?"zoom-in":"all-scroll"}}},methods:{...f(c,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Bt;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:U})}}};function Dt(e,t,a,d,l,o){const s=Me("drag-scroller");return B((u(),b("div",{class:"scaleForScroll",style:ce(o.style),onDblclick:t[0]||(t[0]=(...p)=>o.onDoubleClick&&o.onDoubleClick(...p))},[We(e.$slots,"default",{},void 0,!0),o.showReset?(u(),g(v,{key:0,class:"resetIcon",onClick:O(o.scaleReset,["stop"])},{default:i(()=>[h(_(l.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):S("",!0)],36)),[[s,,void 0,{onlyX:!0}]])}const N=m(Tt,[["render",Dt],["__scopeId","data-v-b24267c0"]]),It={name:"LoadingPage",components:{Placeholder:Ue},props:{twoPages:{type:Boolean,required:!0}}};function $t(e,t,a,d,l,o){const s=y("Placeholder");return u(),b("div",{class:D(["pageLoading",{twoPages:a.twoPages}])},[n(s,{class:"pagePlaceholder"})],2)}const Lt=m(It,[["render",$t],["__scopeId","data-v-04027168"]]),Q="unauthorized",Vt={name:"ErrorPage",props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},computed:{text(){return this.type===Q?"Protected page":"Failed to load page"},icon(){return this.type===Q?qe:He}}},Ot={class:"pageErrorContainer"},xt={class:"pageErrorText"};function Et(e,t,a,d,l,o){return u(),b("div",{class:D(["pageError",{twoPages:a.twoPages}])},[r("div",Ot,[r("div",xt,_(o.text),1),n(v,{class:"pageErrorIcon"},{default:i(()=>[h(_(o.icon),1)]),_:1})])],2)}const At=m(Vt,[["render",Et],["__scopeId","data-v-cea0843d"]]),Nt={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{...P(c,{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},classes(){return this.fitToClass(this.book)}},methods:{...f(c,["fitToClass"])}},Ft=["src"];function Ut(e,t,a,d,l,o){return u(),b("img",W({class:[o.classes,"img"],draggable:"false",src:a.src,style:o.style},e.$attrs,{onError:t[0]||(t[0]=s=>e.$emit("error",s)),onLoad:t[1]||(t[1]=s=>e.$emit("load",s))}),null,16,Ft)}const J=m(Nt,[["render",Ut],["__scopeId","data-v-559e2ecc"]]),ee=H(ue(()=>dt(()=>import("./pdf-doc-DQV6XqAo.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])))),zt=333,Mt={name:"BookPage",components:{ErrorPage:At,LoadingPage:Lt,PDFDoc:ee,ImgPage:J},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:!1}},computed:{...w(c,["isVertical"]),...P(c,{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={pk:this.book.pk,page:this.page,mtime:this.book.mtime};return Ve(e)},component(){return this.book.fileType==="PDF"?ee:J},settings(){return this.getSettings(this.book)}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},zt)},methods:{...f(c,["getSettings"]),onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1}}},Wt=["id","data-page"];function qt(e,t,a,d,l,o){const s=y("ErrorPage"),p=y("LoadingPage");return u(),b("div",{id:`page${a.page}`,"data-page":a.page,class:"page",style:ce(o.style)},[l.error?(u(),g(s,{key:0,"two-pages":o.settings.twoPages,type:l.error},null,8,["two-pages","type"])):l.showProgress&&!l.loaded?(u(),g(p,{key:1,"two-pages":o.settings.twoPages},null,8,["two-pages"])):(u(),g(de(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,Wt)}const be=m(Mt,[["render",qt],["__scopeId","data-v-87996fa1"]]),Ht={name:"HorizontalPages",components:{BookPage:be,ScaleForScroll:N},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{...w(c,["isCoverPage","isReadInReverse"]),showSecondPage(){return this.getSettings(this.book).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(c,["getSettings"])}};function Gt(e,t,a,d,l,o){const s=y("BookPage"),p=N;return u(),g(p,{class:"noWrap"},{default:i(()=>[o.showPageOne?(u(),g(s,{key:0,ref:"pageOne",book:a.book,page:o.pageOne,class:"horizontalPage"},null,8,["book","page"])):S("",!0),o.showPageTwo?(u(),g(s,{key:1,book:a.book,page:o.pageTwo,class:"horizontalPage"},null,8,["book","page"])):S("",!0)]),_:1})}const fe=m(Ht,[["render",Gt],["__scopeId","data-v-9a560964"]]),Kt={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...w(c,["isVertical","isFirstPage","isLastPage"]),...P(c,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){let e="pageChange";return e+=this.isVertical?"Row":"Column",e},directionClass(){let e=this.direction;return this.isVertical&&(e+="Vertical"),e},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...f(c,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function jt(e,t,a,d,l,o){const s=y("router-link");return o.show?(u(),g(s,{key:0,to:o.route,"aria-label":o.label,class:D({[o.pageChangeClass]:!0,[o.directionClass]:!0}),onClick:t[0]||(t[0]=p=>p.stopImmediatePropagation())},null,8,["to","aria-label","class"])):S("",!0)}const Pe=m(Kt,[["render",jt],["__scopeId","data-v-9ade7d96"]]),Yt=48,Xt=48,Zt={name:"PagerHorizontal",components:{HorizontalPages:fe,PageChangeLink:Pe},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{...w(c,["isReadInReverse"]),...P(c,{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}),twoPages(){return this.getSettings(this.book).twoPages},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(c,["getSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-Yt,0),t=Math.min(this.activePage+Xt,this.book.maxPage),a=he.range(e,t+1);this.pages=a}}};function Qt(e,t,a,d,l,o){const s=Pe,p=fe;return u(),g(ge,{"show-arrows":"",continuous:"","model-value":o.windowIndex,reverse:e.isReadInReverse},{prev:i(()=>[n(s,{direction:"prev"})]),next:i(()=>[n(s,{direction:"next"})]),default:i(()=>[(u(!0),b(R,null,x(l.pages,k=>(u(),g(pe,{key:`c/${a.book.pk}/${k}`,class:"windowItem",disabled:"",eager:k>=e.storePage-1&&k<=e.storePage+2,"model-value":k,transition:!0},{default:i(()=>[n(p,{book:a.book,page:k},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const te=m(Zt,[["render",Qt],["__scopeId","data-v-e04bbc00"]]);function ve(e,t){const{self:a=!1}=t.modifiers??{},d=t.value,l=typeof d=="object"&&d.options||{passive:!0},o=typeof d=="function"||"handleEvent"in d?d:d.handler,s=a?e:t.arg?document.querySelector(t.arg):window;s&&(s.addEventListener("scroll",o,l),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:o,options:l,target:a?void 0:s})}function we(e,t){var o;if(!((o=e._onScroll)!=null&&o[t.instance.$.uid]))return;const{handler:a,options:d,target:l=e}=e._onScroll[t.instance.$.uid];l.removeEventListener("scroll",a,d),delete e._onScroll[t.instance.$.uid]}function Jt(e,t){t.value!==t.oldValue&&(we(e,t),ve(e,t))}const eo={mounted:ve,unmounted:we,updated:Jt},to=12,oe=250,oo={name:"PagerVertical",components:{BookPage:be,ScaleForScroll:N},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1}},computed:{...P(c,{storePage:e=>e.page}),...G(c,["reactWithScroll"]),settings(){return this.getSettings(this.book)},readInReverse(){return this.settings.readInReverse},items(){var a;const e=((a=this.book)==null?void 0:a.maxPage)+1,t=he.range(0,e);return this.readInReverse&&t.reverse(),t},visibleItems(){var e;return Math.min(((e=this.book)==null?void 0:e.maxPage)??0,to)}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},oe)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...f(c,["setActivePage","setBookChangeFlag","getSettings"]),onIntersect(e,t){if(e&&this.intersectorOn){const d=+t[0].target.dataset.page;this.setActivePage(d,!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},oe)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},ao=["data-page"];function so(e,t,a,d,l,o){const s=y("BookPage"),p=N;return u(),g(p,null,{default:i(()=>[B((u(),g(gt,{id:"verticalScroll",key:o.readInReverse,ref:"verticalScroll",items:o.items,height:l.innerHeight,width:l.innerWidth},{default:i(({item:k})=>[n(s,{book:a.book,page:k,class:"verticalPage"},null,8,["book","page"]),B(r("div",{class:"pageTracker","data-page":k},null,8,ao),[[Ge,{handler:o.onIntersect,options:{threshold:[.75]}},void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[eo,o.onScroll,"#verticalScroll"]])]),_:1})}const ae=m(oo,[["render",so],["__scopeId","data-v-0836627c"]]),se=H(ue(()=>"@/components/reader/pager/pager-full-pdf.vue")),ro={name:"PagerSelector",components:{PagerHorizontal:te,PagerPDF:se,PagerVertical:ae},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...w(c,["isVertical","cacheBook"]),...P(c,{storePk:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.pk)||0}}),readFullPdf(){return this.book.fileType=="PDF"&&this.cacheBook},component(){return this.readFullPdf?se:this.isVertical?ae:te}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.book.pk===this.storePk&&this.setActivePage(+this.$route.params.page,!0)},methods:{...f(c,["getSettings","setActivePage","prefetchBook"])}};function no(e,t,a,d,l,o){return u(),g(de(o.component),{book:a.book},null,8,["book"])}const Se=m(ro,[["render",no]]),io={name:"BookChangeActivator",props:{direction:{type:String,required:!0}},computed:{computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)},show(){return this.bookChangeShow(this.computedDirection)}},methods:{...f(c,["setBookChangeFlag","normalizeDirection","bookChangeLocation","bookChangeCursorClass","bookChangeShow"])}};function lo(e,t,a,d,l,o){return o.show?(u(),b("div",{key:0,class:D(["bookChangeColumn",{[o.positionClass]:!0,[o.cursorClass]:!0}]),onClick:t[0]||(t[0]=O(s=>e.setBookChangeFlag(a.direction),["stop"]))},null,2)):S("",!0)}const Ce=m(io,[["render",lo],["__scopeId","data-v-2b81f2ae"]]),co={name:"BooksWindow",components:{BookChangeActivator:Ce,Pager:Se},emits:["click"],computed:{...w(c,["isBTT"]),...P(c,{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})},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks(e.params)}},beforeMount(){this.setBookChangeFlag(),this.loadBooks(this.$route.params)},methods:{...f(c,["setBookChangeFlag","loadBooks"]),click(){this.setBookChangeFlag(),this.$emit("click")},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function uo(e,t,a,d,l,o){const s=Ce,p=Se;return u(),g(ge,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:o.click},{prev:i(()=>[n(s,{direction:"prev"})]),next:i(()=>[n(s,{direction:"next"})]),default:i(()=>[(u(!0),b(R,null,x(e.books,k=>(u(),g(pe,{key:`c/${k.pk}`,class:"windowItem",disabled:"",eager:o.eager(k.pk),value:k.pk,transition:!0},{default:i(()=>[n(p,{book:k,onClick:o.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const ye=m(co,[["render",uo],["__scopeId","data-v-2a90783e"]]),ho={a:je,f:Ye,s:Xe},po={a:"Story Arc",f:"Folder",s:"Series"},go={name:"ReaderArcSelect",computed:{...P(c,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pk===t.pk)return t.name;return"Unknown"},arcKey:e=>`${e.arc.group}:${e.arc.pk}`,arcItems:e=>{const t=[];for(const a of e.arcs){const d={value:`${a.group}:${a.pk}`,title:a.name,group:a.group};t.push(d)}return t},arcPosition:function(e){const t=e.arc;return t&&t.index&&t.count?`${t.index}/${t.count}`:""}}),arc:{get(){return this.arcKey},set(e){const t=this.$route.params;if(!t)return;const[a,d]=e.split(":"),l={...t,arcGroup:a,arcPk:d};this.loadBooks(l)}}},methods:{...f(c,["loadBooks"]),arcIcon(e){return ho[e]},arcLabel(e){return po[e]},checkIcon(e){return e===this.arc?Ke:""}}},mo={key:2,id:"arcPosition"};function ko(e,t,a,d,l,o){return u(),b(R,null,[e.arcItems.length>1?(u(),g(mt,{key:0,modelValue:o.arc,"onUpdate:modelValue":t[0]||(t[0]=s=>o.arc=s),class:"arcSelect",density:"compact","hide-details":"auto",label:"Order",variant:"plain",items:e.arcItems},{item:i(({item:s,props:p})=>[n(E,W(p,{density:"compact",variant:"plain","prepend-icon":o.arcIcon(s.raw.group),subtitle:o.arcLabel(s.raw.group),"append-icon":o.checkIcon(p.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:i(({item:s,props:p})=>[n(E,W(p,{density:"compact",variant:"plain"}),{default:i(()=>[n(v,null,{default:i(()=>[h(_(o.arcIcon(s.raw.group)),1)]),_:2},1024)]),_:2},1040)]),_:1},8,["modelValue","items"])):(u(),g(v,{key:1,id:"onlyArc",title:e.arcName},{default:i(()=>[h(_(o.arcIcon(e.arcGroup)),1)]),_:1},8,["title"])),e.arcPosition?(u(),b("span",mo,_(e.arcPosition),1)):S("",!0)],64)}const Re=m(go,[["render",ko],["__scopeId","data-v-90090a3c"]]),_o={name:"ReaderTitleToolbar",components:{MetadataDialog:le,ReaderArcSelect:Re,SettingsDrawerButton:Oe},data(){return{mdiClose:Ze,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...w(c,["activeTitle"]),...P(c,{currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}}}),...P(ht,{lastRoute:e=>e.page.routes.last}),...G(T,["isSettingsDrawerOpen"]),closeBookRoute:function(){var t;const e={name:"browser",params:this.lastRoute};return e.params?e.hash=`#card-${(t=this.currentBook)==null?void 0:t.pk}`:e.params=window.CODEX.LAST_ROUTE||pt.browser.route,e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(T,["setTimestamp"]),...f(c,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){switch(e.stopPropagation(),e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.openMetadata();break}}}},bo={key:0};function fo(e,t,a,d,l,o){const s=Re,p=le,k=y("SettingsDrawerButton");return u(),g(Ee,{id:"readerTopToolbar",class:"codexToolbar",density:"compact"},{default:i(()=>[n(K,null,{default:i(()=>[n(q,{id:"closeBook",ref:"closeBook",to:o.closeBookRoute,size:"large",onClick:o.onCloseBook},{default:i(()=>[e.$vuetify.display.smAndDown?(u(),g(v,{key:1,title:"Close Book"},{default:i(()=>[h(_(l.mdiClose),1)]),_:1})):(u(),b("span",bo,"close book"))]),_:1},8,["to","onClick"])]),_:1}),n(xe,{id:"toolbarTitle",class:"codexToolbarTitle"},{default:i(()=>[h(_(e.activeTitle),1)]),_:1}),n(K,null,{default:i(()=>[n(s),n(q,{id:"tagButton",onClick:O(o.openMetadata,["stop"])},{default:i(()=>[n(p,{ref:"metadataDialog",group:"c",book:e.currentBook},null,8,["book"])]),_:1},8,["onClick"]),n(k,{id:"settingsButton",onClick:t[0]||(t[0]=O(I=>e.isSettingsDrawerOpen=!0,["stop"]))})]),_:1})]),_:1})}const Be=m(_o,[["render",fo],["__scopeId","data-v-5d12ffc0"]]),Po={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...w(c,["isBTT"]),...P(c,{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(c,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function vo(e,t,a,d,l,o){const s=y("router-link");return o.show?(u(),g(Ae,{key:0,class:"bookChangeDrawer","disable-resize-watcher":"","disable-route-watcher":"",location:o.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:i(()=>[n(s,{class:D({navLink:!0,[o.cursorClass]:!0}),to:o.route,"aria-label":o.label,title:o.label,onClick:t[0]||(t[0]=p=>p.stopImmediatePropagation())},{default:i(()=>[n(v,{class:"bookChangeIcon"},{default:i(()=>[h(_(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value"])):S("",!0)}const Te=m(Po,[["render",vo],["__scopeId","data-v-457facfc"]]),wo={name:"DownloadPanel",data(){return{mdiDownload:Qe,mdiFileImage:Je}},computed:{...w(c,["activeTitle","routeParams"]),...P(c,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return Ne(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return Fe({pk:e,page:this.storePage,mtime:t})},pageName(){return`${this.activeTitle} - page ${this.storePage}.jpg`}},methods:{...f(T,["downloadIOSPWAFix"]),downloadPage(){this.downloadIOSPWAFix(this.pageSrc,this.pageName)},downloadBook(){this.downloadIOSPWAFix(this.downloadURL,this.filename)}}},So={id:"downloadPanel"};function Co(e,t,a,d,l,o){return u(),b("div",So,[n(E,{onClick:o.downloadPage},{default:i(()=>[n(j,null,{default:i(()=>[n(v,null,{default:i(()=>[h(_(l.mdiFileImage),1)]),_:1}),h("Download Page "+_(e.storePage),1)]),_:1})]),_:1},8,["onClick"]),n(E,{onClick:o.downloadBook},{default:i(()=>[n(j,null,{default:i(()=>[n(v,null,{default:i(()=>[h(_(l.mdiDownload),1)]),_:1}),h("Download Book ")]),_:1})]),_:1},8,["onClick"])])}const De=m(wo,[["render",Co],["__scopeId","data-v-079b7d8d"]]),Ie=["fitTo","readingDirection","twoPages"];Object.freeze(Ie);const yo={name:"ReaderSettingsPanel",data(){return{isGlobalScope:!1,mdiOpenInNew:et}},computed:{...w(c,["isVertical","isPDF","cacheBook"]),...P(c,{choices:e=>e.choices,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 d of Ie){const l=(a=e.books)==null?void 0:a.current.settings[d];if(!e.choices.nullValues.has(l))return!1}return!0},bookInBrowserURL(e){var t;return tt((t=e.books)==null?void 0:t.current)}}),...G(c,["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(c,["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){e.stopPropagation();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)}}},Ro={id:"readerSettings"},Bo=["href"];function To(e,t,a,d,l,o){return u(),b("div",Ro,[n(z,{modelValue:l.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=s=>l.isGlobalScope=s),density:"compact",label:"Scope","hide-details":"auto"},{default:i(()=>[n($,{label:"Only this comic",value:!1}),n($,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),n(z,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=s=>o.settingsDialogChanged({fitTo:s}))},{default:i(()=>[(u(!0),b(R,null,x(o.fitToChoices,s=>(u(),g($,{key:s.value,label:s.title,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),n(M,{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]=s=>o.settingsDialogChanged({twoPages:s}))},null,8,["disabled","model-value","indeterminate"]),n(z,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=s=>o.settingsDialogChanged({readingDirection:s}))},{default:i(()=>[(u(!0),b(R,null,x(o.readingDirectionChoices,s=>(u(),g($,{key:s.value,label:s.title,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),n(M,{"model-value":e.cacheBook,class:"cacheBook",density:"compact",disabled:o.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=s=>e.setSettingsClient({cacheBook:s}))},null,8,["model-value","disabled"]),e.isPDF?(u(),b("a",{key:0,id:"readPDFInBrowser",href:e.bookInBrowserURL,target:"_blank"},[n(v,null,{default:i(()=>[h(_(l.mdiOpenInNew),1)]),_:1}),h("Read PDF in Browser ")],8,Bo)):S("",!0),l.isGlobalScope?(u(),g(M,{key:1,"model-value":e.selectedSettings.readRtlInReverse,class:"readRtlInReverse",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=s=>o.settingsDialogChanged({readRtlInReverse:s}))},null,8,["model-value"])):S("",!0),l.isGlobalScope?S("",!0):(u(),g(q,{key:2,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,title:"Use the default settings for all comics for this comic",onClick:e.clearSettingsLocal},{default:i(()=>[h(" Clear Comic Settings ")]),_:1},8,["disabled","onClick"]))])}const $e=m(yo,[["render",To],["__scopeId","data-v-953d00f1"]]),Do={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:ot,mdiMenuRight:at,mdiKeyboardOutline:st,mdiKeyboardSpace:rt,mdiAppleKeyboardShift:nt}},computed:{...w(T,["isMobile"])}},C=e=>(it("data-v-a8b4ac47"),e=e(),lt(),e),Io=C(()=>r("h4",null,"Navigation",-1)),$o={class:"highlight-table"},Lo=C(()=>r("td",null,"Previous page",-1)),Vo=C(()=>r("td",null,"Next page",-1)),Oo=C(()=>r("tr",null,[r("td",null,","),r("td",null,[h("Next "),r("em",null,"only"),h(" one page in two page mode.")])],-1)),xo=C(()=>r("tr",null,[r("td",null,"."),r("td",null,[h("Previous "),r("em",null,"only"),h(" one page in two page mode.")])],-1)),Eo=C(()=>r("tr",null,[r("td",null,"p"),r("td",null,"Previous Book")],-1)),Ao=C(()=>r("tr",null,[r("td",null,"n"),r("td",null,"Next Book")],-1)),No=C(()=>r("tr",null,[r("td",null,"esc"),r("td",null,"Close book")],-1)),Fo=C(()=>r("h4",null,"Fit Page To",-1)),Uo=C(()=>r("table",{class:"highlight-table"},[r("tbody",null,[r("tr",null,[r("td",null,"s"),r("td",null,"screen")]),r("tr",null,[r("td",null,"h"),r("td",null,"screen height")]),r("tr",null,[r("td",null,"w"),r("td",null,"screen width")]),r("tr",null,[r("td",null,"o"),r("td",null,"Show page at original size")]),r("tr",null,[r("td",null,"2"),r("td",null,"Toggle two page view")]),r("tr",null,[r("td",null,"r"),r("td",null,"Read Right to Left")]),r("tr",null,[r("td",null,"l"),r("td",null,"Read Left to Right")]),r("tr",null,[r("td",null,"t"),r("td",null,"Read Top to Bottom")]),r("tr",null,[r("td",null,"b"),r("td",null,"Read in Bottom to Top")])])],-1)),zo=C(()=>r("h4",null,"Other",-1)),Mo=C(()=>r("table",{class:"highlight-table"},[r("tbody",null,[r("tr",null,[r("td",null,"m"),r("td",null,"Show comic's metadata")]),r("tr",null,[r("td",null,"double click"),r("td",null,"Zoom page")])])],-1));function Wo(e,t,a,d,l,o){return e.isMobile?S("",!0):(u(),g(ft,{key:0},{default:i(()=>[n(kt,{id:"readerKeyboardShortcuts"},{default:i(()=>[n(_t,{id:"shortcutsTitle"},{default:i(()=>[n(v,{id:"keyboardIcon"},{default:i(()=>[h(_(l.mdiKeyboardOutline),1)]),_:1}),h("Keyboard Shortcuts ")]),_:1}),n(bt,null,{default:i(()=>[Io,r("table",$o,[r("tbody",null,[r("tr",null,[r("td",null,[n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiMenuLeft),1)]),_:1}),h(", j, "),r("div",null,[n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiAppleKeyboardShift),1)]),_:1}),n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiKeyboardSpace),1)]),_:1})])]),Lo]),r("tr",null,[r("td",null,[n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiMenuRight),1)]),_:1}),h(", k, "),n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiKeyboardSpace),1)]),_:1})]),Vo]),Oo,xo,Eo,Ao,No])]),Fo,Uo,zo,Mo]),_:1})]),_:1})]),_:1}))}const qo=m(Do,[["render",Wo],["__scopeId","data-v-a8b4ac47"]]),Ho={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:De,ReaderKeyboardShortcutsPanel:qo,ReaderSettingsPanel:$e}};function Go(e,t,a,d,l,o){const s=$e,p=y("ReaderKeyboardShortcutsPanel"),k=De;return u(),b(R,null,[n(s),n(Y),n(p),n(Y),n(k)],64)}const Ko=m(Ho,[["render",Go]]),jo={name:"MainReader",components:{BookChangeDrawer:Te,BooksWindow:ye,ReaderNavToolbar:_e,ReaderTitleToolbar:Be,SettingsDrawer:re},data(){return{showToolbars:!1,ReaderSettingsSuperPanel:H(Ko)}},computed:{...w(X,["isCodexViewable"]),...P(X,{user:e=>e.user})},watch:{user(){this.loadReaderSettings()},isCodexViewable(){this.loadReaderSettings()}},created(){T().isSettingsDrawerOpen=!1},beforeMount(){c().$reset,this.loadReaderSettings()},methods:{...f(c,["loadReaderSettings"]),toggleToolbars(){this.showToolbars=!this.showToolbars}}},Yo={key:0,id:"readerContainer"},Xo={key:1,id:"announcement"};function Zo(e,t,a,d,l,o){const s=Te,p=Be,k=ye,I=_e,F=y("router-link"),Le=re;return u(),b(R,null,[n(Pt,{id:"readerWrapper"},{default:i(()=>[n(s,{direction:"prev"}),e.isCodexViewable?(u(),b("div",Yo,[n(ct,null,{default:i(()=>[B(n(p,null,null,512),[[Z,l.showToolbars]])]),_:1}),n(k,{onClick:o.toggleToolbars},null,8,["onClick"]),n(ut,null,{default:i(()=>[B(n(I,null,null,512),[[Z,l.showToolbars]])]),_:1})])):(u(),b("div",Xo,[r("h1",null,[n(F,{to:{name:"home"}},{default:i(()=>[h(" Log in ")]),_:1}),h(" to read comics ")])]))]),_:1}),n(s,{direction:"next"}),n(Le,{title:"Reader Settings",panel:l.ReaderSettingsSuperPanel,temporary:""},null,8,["panel"])],64)}const ma=m(jo,[["render",Zo],["__scopeId","data-v-fd949081"]]);export{ma as default};
@@ -1,2 +0,0 @@
1
- const __vite__fileDeps=["assets/pdf-doc-DQV6XqAo.js","assets/admin-drawer-panel-B4-04ET4.js","assets/admin-drawer-panel-Cr-0BCQv.css","assets/main-BJxn-WA7.js","assets/main-ClKzvaJK.css","assets/VToolbar-CLYsoOKq.js","assets/index-DUjeNg4x.js","assets/confirm-footer-oTUv06_v.js","assets/confirm-footer-VFepxcJs.css","assets/change-password-dialog-DAvSz_BT.js","assets/VSlideGroup-IIebYuJm.js","assets/VSelectionControl-BoyRbIct.js","assets/VSelectionControl-BFq--28I.css","assets/VSlideGroup-C3lY91uv.css","assets/change-password-dialog-BRmvkNir.css","assets/VToolbar-DqQLg1UA.css","assets/pdf-doc-CMzaSV_K.css"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
2
- import{u as c,c as U,d as Ve,S as Oe,V as xe,a as Ee,e as Ae,h as Ne,i as Fe,_ as re}from"./VToolbar-CLYsoOKq.js";import{_ as A,a as ne,b as ie,P as Ue,c as le,V as K}from"./metadata-dialog-DNdhw8Y2.js";import{ax as w,M as P,N as f,_ as m,R as u,O as g,P as i,aa as h,ae as _,L as n,ad as v,aB as S,bj as ze,bf as Me,be as B,ay as b,aK as We,b7 as O,bk as ce,Q as y,ab as D,bl as qe,bm as He,aD as r,am as W,aC as H,bn as ue,aA as de,az as x,al as R,a9 as G,bc as Ge,bo as Ke,bp as je,bq as Ye,br as Xe,ag as E,bs as Ze,k as T,ak as q,bt as Qe,bu as Je,af as j,a$ as et,bv as tt,bw as ot,bx as at,by as st,bz as rt,bA as nt,aH as it,aI as lt,aT as Y,m as X,bB as ct,bh as Z,bC as ut}from"./admin-drawer-panel-B4-04ET4.js";import{_ as dt,a as he,u as ht,C as pt}from"./main-BJxn-WA7.js";import{V as pe,a as ge}from"./VWindowItem-CPevuSn_.js";import{b as gt,V as mt}from"./VSelect-CAEbdtAK.js";import{V as $,a as z}from"./VRadioGroup-BrO5lLMK.js";import{V as M}from"./VCheckbox-CFqm2IhY.js";import{V as kt,a as _t,b as bt,c as ft}from"./VExpansionPanel-CSSnZFhG.js";import{V as Pt}from"./VMain-BJLquw4_.js";import"./index-DUjeNg4x.js";import"./confirm-footer-oTUv06_v.js";import"./change-password-dialog-DAvSz_BT.js";import"./VSlideGroup-IIebYuJm.js";import"./VSelectionControl-BoyRbIct.js";import"./to-case-kUm8NPpW.js";import"./VCheckboxBtn-BjWW08N8.js";const vt={name:"ReaderNavButton",components:{PaginationNavButton:A},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...w(c,["isVertical"]),...P(c,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}}}),title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...f(c,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function wt(e,t,a,d,l,o){const s=A;return u(),g(s,{key:e.isVertical,disabled:o.disabled,title:o.title,to:e.toRoute,onClick:o.onClick},{default:i(()=>[h(_(a.value),1)]),_:1},8,["disabled","title","to","onClick"])}const me=m(vt,[["render",wt]]),St={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:A},props:{direction:{type:String,required:!0}},computed:{...w(c,["isBTT"]),...P(c,{toRoute(e){var a;const t=(a=e==null?void 0:e.routes)==null?void 0:a.books[this.direction];return t?{params:{...t}}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},disabled(){return!this.toRoute}},methods:{...f(c,["bookChangeIcon"])}};function Ct(e,t,a,d,l,o){const s=A;return u(),g(s,{icon:"",variant:"plain",disabled:o.disabled,title:o.title,to:e.toRoute},{default:i(()=>[n(v,null,{default:i(()=>[h(_(o.icon),1)]),_:1})]),_:1},8,["disabled","title","to"])}const ke=m(St,[["render",Ct]]),L="prev",V="next",yt={name:"ReaderNavToolbar",components:{PaginationSlider:ne,ReaderNavButton:me,PaginationToolbar:ie,ReaderBookChangeNavButton:ke},computed:{...w(c,["activeSettings","isReadInReverse","isVertical"]),...P(c,{storePage:e=>e.page,key(e){var t,a;return`${(a=(t=e.books)==null?void 0:t.current)==null?void 0:a.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._keyListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyListener)},methods:{...f(c,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyListener(e){switch(e.stopPropagation(),e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection(V):e.shiftKey&&window.scrollY===0&&this.routeToDirection(L);break;case"j":case"ArrowRight":this.routeToDirection(V);break;case"k":case"ArrowLeft":this.routeToDirection(L);break;case",":this.routeToDirectionOne(L);break;case".":this.routeToDirectionOne(V);break;case"n":this.routeToBook(V);break;case"p":this.routeToBook(L);break}}}};function Rt(e,t,a,d,l,o){const s=ke,p=me,k=ne,I=ie;return e.maxPage?(u(),g(I,{key:0},{default:i(()=>[n(s,{direction:o.bookPrev},null,8,["direction"]),n(p,{value:o.min,"two-pages":o.twoPages},null,8,["value","two-pages"]),(u(),g(k,{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]=F=>o.onSliderUpdate(F))},null,8,["model-value","max","step","track-color","reverse"])),n(p,{value:o.max,"two-pages":o.twoPages},null,8,["value","two-pages"]),n(s,{direction:o.bookNext},null,8,["direction"])]),_:1})):S("",!0)}const _e=m(yt,[["render",Rt]]),Bt=.5,Tt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:ze}},computed:{...P(c,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=U},style(){return{cursor:this.scale==U?"zoom-in":"all-scroll"}}},methods:{...f(c,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Bt;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:U})}}};function Dt(e,t,a,d,l,o){const s=Me("drag-scroller");return B((u(),b("div",{class:"scaleForScroll",style:ce(o.style),onDblclick:t[0]||(t[0]=(...p)=>o.onDoubleClick&&o.onDoubleClick(...p))},[We(e.$slots,"default",{},void 0,!0),o.showReset?(u(),g(v,{key:0,class:"resetIcon",onClick:O(o.scaleReset,["stop"])},{default:i(()=>[h(_(l.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):S("",!0)],36)),[[s,,void 0,{onlyX:!0}]])}const N=m(Tt,[["render",Dt],["__scopeId","data-v-b24267c0"]]),It={name:"LoadingPage",components:{Placeholder:Ue},props:{twoPages:{type:Boolean,required:!0}}};function $t(e,t,a,d,l,o){const s=y("Placeholder");return u(),b("div",{class:D(["pageLoading",{twoPages:a.twoPages}])},[n(s,{class:"pagePlaceholder"})],2)}const Lt=m(It,[["render",$t],["__scopeId","data-v-04027168"]]),Q="unauthorized",Vt={name:"ErrorPage",props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},computed:{text(){return this.type===Q?"Protected page":"Failed to load page"},icon(){return this.type===Q?qe:He}}},Ot={class:"pageErrorContainer"},xt={class:"pageErrorText"};function Et(e,t,a,d,l,o){return u(),b("div",{class:D(["pageError",{twoPages:a.twoPages}])},[r("div",Ot,[r("div",xt,_(o.text),1),n(v,{class:"pageErrorIcon"},{default:i(()=>[h(_(o.icon),1)]),_:1})])],2)}const At=m(Vt,[["render",Et],["__scopeId","data-v-cea0843d"]]),Nt={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{...P(c,{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},classes(){return this.fitToClass(this.book)}},methods:{...f(c,["fitToClass"])}},Ft=["src"];function Ut(e,t,a,d,l,o){return u(),b("img",W({class:[o.classes,"img"],draggable:"false",src:a.src,style:o.style},e.$attrs,{onError:t[0]||(t[0]=s=>e.$emit("error",s)),onLoad:t[1]||(t[1]=s=>e.$emit("load",s))}),null,16,Ft)}const J=m(Nt,[["render",Ut],["__scopeId","data-v-559e2ecc"]]),ee=H(ue(()=>dt(()=>import("./pdf-doc-DQV6XqAo.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])))),zt=333,Mt={name:"BookPage",components:{ErrorPage:At,LoadingPage:Lt,PDFDoc:ee,ImgPage:J},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:!1}},computed:{...w(c,["isVertical"]),...P(c,{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={pk:this.book.pk,page:this.page,mtime:this.book.mtime};return Ve(e)},component(){return this.book.fileType==="PDF"?ee:J},settings(){return this.getSettings(this.book)}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},zt)},methods:{...f(c,["getSettings"]),onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1}}},Wt=["id","data-page"];function qt(e,t,a,d,l,o){const s=y("ErrorPage"),p=y("LoadingPage");return u(),b("div",{id:`page${a.page}`,"data-page":a.page,class:"page",style:ce(o.style)},[l.error?(u(),g(s,{key:0,"two-pages":o.settings.twoPages,type:l.error},null,8,["two-pages","type"])):l.showProgress&&!l.loaded?(u(),g(p,{key:1,"two-pages":o.settings.twoPages},null,8,["two-pages"])):(u(),g(de(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,Wt)}const be=m(Mt,[["render",qt],["__scopeId","data-v-87996fa1"]]),Ht={name:"HorizontalPages",components:{BookPage:be,ScaleForScroll:N},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{...w(c,["isCoverPage","isReadInReverse"]),showSecondPage(){return this.getSettings(this.book).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(c,["getSettings"])}};function Gt(e,t,a,d,l,o){const s=y("BookPage"),p=N;return u(),g(p,{class:"noWrap"},{default:i(()=>[o.showPageOne?(u(),g(s,{key:0,ref:"pageOne",book:a.book,page:o.pageOne,class:"horizontalPage"},null,8,["book","page"])):S("",!0),o.showPageTwo?(u(),g(s,{key:1,book:a.book,page:o.pageTwo,class:"horizontalPage"},null,8,["book","page"])):S("",!0)]),_:1})}const fe=m(Ht,[["render",Gt],["__scopeId","data-v-9a560964"]]),Kt={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...w(c,["isVertical","isFirstPage","isLastPage"]),...P(c,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){let e="pageChange";return e+=this.isVertical?"Row":"Column",e},directionClass(){let e=this.direction;return this.isVertical&&(e+="Vertical"),e},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...f(c,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function jt(e,t,a,d,l,o){const s=y("router-link");return o.show?(u(),g(s,{key:0,to:o.route,"aria-label":o.label,class:D({[o.pageChangeClass]:!0,[o.directionClass]:!0}),onClick:t[0]||(t[0]=p=>p.stopImmediatePropagation())},null,8,["to","aria-label","class"])):S("",!0)}const Pe=m(Kt,[["render",jt],["__scopeId","data-v-9ade7d96"]]),Yt=48,Xt=48,Zt={name:"PagerHorizontal",components:{HorizontalPages:fe,PageChangeLink:Pe},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{...w(c,["isReadInReverse"]),...P(c,{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}),twoPages(){return this.getSettings(this.book).twoPages},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(c,["getSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-Yt,0),t=Math.min(this.activePage+Xt,this.book.maxPage),a=he.range(e,t+1);this.pages=a}}};function Qt(e,t,a,d,l,o){const s=Pe,p=fe;return u(),g(ge,{"show-arrows":"",continuous:"","model-value":o.windowIndex,reverse:e.isReadInReverse},{prev:i(()=>[n(s,{direction:"prev"})]),next:i(()=>[n(s,{direction:"next"})]),default:i(()=>[(u(!0),b(R,null,x(l.pages,k=>(u(),g(pe,{key:`c/${a.book.pk}/${k}`,class:"windowItem",disabled:"",eager:k>=e.storePage-1&&k<=e.storePage+2,"model-value":k,transition:!0},{default:i(()=>[n(p,{book:a.book,page:k},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const te=m(Zt,[["render",Qt],["__scopeId","data-v-e04bbc00"]]);function ve(e,t){const{self:a=!1}=t.modifiers??{},d=t.value,l=typeof d=="object"&&d.options||{passive:!0},o=typeof d=="function"||"handleEvent"in d?d:d.handler,s=a?e:t.arg?document.querySelector(t.arg):window;s&&(s.addEventListener("scroll",o,l),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:o,options:l,target:a?void 0:s})}function we(e,t){var o;if(!((o=e._onScroll)!=null&&o[t.instance.$.uid]))return;const{handler:a,options:d,target:l=e}=e._onScroll[t.instance.$.uid];l.removeEventListener("scroll",a,d),delete e._onScroll[t.instance.$.uid]}function Jt(e,t){t.value!==t.oldValue&&(we(e,t),ve(e,t))}const eo={mounted:ve,unmounted:we,updated:Jt},to=12,oe=250,oo={name:"PagerVertical",components:{BookPage:be,ScaleForScroll:N},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1}},computed:{...P(c,{storePage:e=>e.page}),...G(c,["reactWithScroll"]),settings(){return this.getSettings(this.book)},readInReverse(){return this.settings.readInReverse},items(){var a;const e=((a=this.book)==null?void 0:a.maxPage)+1,t=he.range(0,e);return this.readInReverse&&t.reverse(),t},visibleItems(){var e;return Math.min(((e=this.book)==null?void 0:e.maxPage)??0,to)}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},oe)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...f(c,["setActivePage","setBookChangeFlag","getSettings"]),onIntersect(e,t){if(e&&this.intersectorOn){const d=+t[0].target.dataset.page;this.setActivePage(d,!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},oe)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},ao=["data-page"];function so(e,t,a,d,l,o){const s=y("BookPage"),p=N;return u(),g(p,null,{default:i(()=>[B((u(),g(gt,{id:"verticalScroll",key:o.readInReverse,ref:"verticalScroll",items:o.items,height:l.innerHeight,width:l.innerWidth},{default:i(({item:k})=>[n(s,{book:a.book,page:k,class:"verticalPage"},null,8,["book","page"]),B(r("div",{class:"pageTracker","data-page":k},null,8,ao),[[Ge,{handler:o.onIntersect,options:{threshold:[.75]}},void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[eo,o.onScroll,"#verticalScroll"]])]),_:1})}const ae=m(oo,[["render",so],["__scopeId","data-v-0836627c"]]),se=H(ue(()=>"@/components/reader/pager/pager-full-pdf.vue")),ro={name:"PagerSelector",components:{PagerHorizontal:te,PagerPDF:se,PagerVertical:ae},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...w(c,["isVertical","cacheBook"]),...P(c,{storePk:e=>{var t,a;return((a=(t=e.books)==null?void 0:t.current)==null?void 0:a.pk)||0}}),readFullPdf(){return this.book.fileType=="PDF"&&this.cacheBook},component(){return this.readFullPdf?se:this.isVertical?ae:te}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.book.pk===this.storePk&&this.setActivePage(+this.$route.params.page,!0)},methods:{...f(c,["getSettings","setActivePage","prefetchBook"])}};function no(e,t,a,d,l,o){return u(),g(de(o.component),{book:a.book},null,8,["book"])}const Se=m(ro,[["render",no]]),io={name:"BookChangeActivator",props:{direction:{type:String,required:!0}},computed:{computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)},show(){return this.bookChangeShow(this.computedDirection)}},methods:{...f(c,["setBookChangeFlag","normalizeDirection","bookChangeLocation","bookChangeCursorClass","bookChangeShow"])}};function lo(e,t,a,d,l,o){return o.show?(u(),b("div",{key:0,class:D(["bookChangeColumn",{[o.positionClass]:!0,[o.cursorClass]:!0}]),onClick:t[0]||(t[0]=O(s=>e.setBookChangeFlag(a.direction),["stop"]))},null,2)):S("",!0)}const Ce=m(io,[["render",lo],["__scopeId","data-v-2b81f2ae"]]),co={name:"BooksWindow",components:{BookChangeActivator:Ce,Pager:Se},emits:["click"],computed:{...w(c,["isBTT"]),...P(c,{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})},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks(e.params)}},beforeMount(){this.setBookChangeFlag(),this.loadBooks(this.$route.params)},methods:{...f(c,["setBookChangeFlag","loadBooks"]),click(){this.setBookChangeFlag(),this.$emit("click")},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function uo(e,t,a,d,l,o){const s=Ce,p=Se;return u(),g(ge,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:o.click},{prev:i(()=>[n(s,{direction:"prev"})]),next:i(()=>[n(s,{direction:"next"})]),default:i(()=>[(u(!0),b(R,null,x(e.books,k=>(u(),g(pe,{key:`c/${k.pk}`,class:"windowItem",disabled:"",eager:o.eager(k.pk),value:k.pk,transition:!0},{default:i(()=>[n(p,{book:k,onClick:o.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const ye=m(co,[["render",uo],["__scopeId","data-v-2a90783e"]]),ho={a:je,f:Ye,s:Xe},po={a:"Story Arc",f:"Folder",s:"Series"},go={name:"ReaderArcSelect",computed:{...P(c,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pk===t.pk)return t.name;return"Unknown"},arcKey:e=>`${e.arc.group}:${e.arc.pk}`,arcItems:e=>{const t=[];for(const a of e.arcs){const d={value:`${a.group}:${a.pk}`,title:a.name,group:a.group};t.push(d)}return t},arcPosition:function(e){const t=e.arc;return t&&t.index&&t.count?`${t.index}/${t.count}`:""}}),arc:{get(){return this.arcKey},set(e){const t=this.$route.params;if(!t)return;const[a,d]=e.split(":"),l={...t,arcGroup:a,arcPk:d};this.loadBooks(l)}}},methods:{...f(c,["loadBooks"]),arcIcon(e){return ho[e]},arcLabel(e){return po[e]},checkIcon(e){return e===this.arc?Ke:""}}},mo={key:2,id:"arcPosition"};function ko(e,t,a,d,l,o){return u(),b(R,null,[e.arcItems.length>1?(u(),g(mt,{key:0,modelValue:o.arc,"onUpdate:modelValue":t[0]||(t[0]=s=>o.arc=s),class:"arcSelect",density:"compact","hide-details":"auto",label:"Order",variant:"plain",items:e.arcItems},{item:i(({item:s,props:p})=>[n(E,W(p,{density:"compact",variant:"plain","prepend-icon":o.arcIcon(s.raw.group),subtitle:o.arcLabel(s.raw.group),"append-icon":o.checkIcon(p.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:i(({item:s,props:p})=>[n(E,W(p,{density:"compact",variant:"plain"}),{default:i(()=>[n(v,null,{default:i(()=>[h(_(o.arcIcon(s.raw.group)),1)]),_:2},1024)]),_:2},1040)]),_:1},8,["modelValue","items"])):(u(),g(v,{key:1,id:"onlyArc",title:e.arcName},{default:i(()=>[h(_(o.arcIcon(e.arcGroup)),1)]),_:1},8,["title"])),e.arcPosition?(u(),b("span",mo,_(e.arcPosition),1)):S("",!0)],64)}const Re=m(go,[["render",ko],["__scopeId","data-v-90090a3c"]]),_o={name:"ReaderTitleToolbar",components:{MetadataDialog:le,ReaderArcSelect:Re,SettingsDrawerButton:Oe},data(){return{mdiClose:Ze,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...w(c,["activeTitle"]),...P(c,{currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}}}),...P(ht,{lastRoute:e=>e.page.routes.last}),...G(T,["isSettingsDrawerOpen"]),closeBookRoute:function(){var t;const e={name:"browser",params:this.lastRoute};return e.params?e.hash=`#card-${(t=this.currentBook)==null?void 0:t.pk}`:e.params=window.CODEX.LAST_ROUTE||pt.browser.route,e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...f(T,["setTimestamp"]),...f(c,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){switch(e.stopPropagation(),e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.openMetadata();break}}}},bo={key:0};function fo(e,t,a,d,l,o){const s=Re,p=le,k=y("SettingsDrawerButton");return u(),g(Ee,{id:"readerTopToolbar",class:"codexToolbar",density:"compact"},{default:i(()=>[n(K,null,{default:i(()=>[n(q,{id:"closeBook",ref:"closeBook",to:o.closeBookRoute,size:"large",onClick:o.onCloseBook},{default:i(()=>[e.$vuetify.display.smAndDown?(u(),g(v,{key:1,title:"Close Book"},{default:i(()=>[h(_(l.mdiClose),1)]),_:1})):(u(),b("span",bo,"close book"))]),_:1},8,["to","onClick"])]),_:1}),n(xe,{id:"toolbarTitle",class:"codexToolbarTitle"},{default:i(()=>[h(_(e.activeTitle),1)]),_:1}),n(K,null,{default:i(()=>[n(s),n(q,{id:"tagButton",onClick:O(o.openMetadata,["stop"])},{default:i(()=>[n(p,{ref:"metadataDialog",group:"c",book:e.currentBook},null,8,["book"])]),_:1},8,["onClick"]),n(k,{id:"settingsButton",onClick:t[0]||(t[0]=O(I=>e.isSettingsDrawerOpen=!0,["stop"]))})]),_:1})]),_:1})}const Be=m(_o,[["render",fo],["__scopeId","data-v-5d12ffc0"]]),Po={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...w(c,["isBTT"]),...P(c,{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(c,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function vo(e,t,a,d,l,o){const s=y("router-link");return o.show?(u(),g(Ae,{key:0,class:"bookChangeDrawer","disable-resize-watcher":"","disable-route-watcher":"",location:o.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:i(()=>[n(s,{class:D({navLink:!0,[o.cursorClass]:!0}),to:o.route,"aria-label":o.label,title:o.label,onClick:t[0]||(t[0]=p=>p.stopImmediatePropagation())},{default:i(()=>[n(v,{class:"bookChangeIcon"},{default:i(()=>[h(_(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value"])):S("",!0)}const Te=m(Po,[["render",vo],["__scopeId","data-v-457facfc"]]),wo={name:"DownloadPanel",data(){return{mdiDownload:Qe,mdiFileImage:Je}},computed:{...w(c,["activeTitle","routeParams"]),...P(c,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return Ne(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return Fe({pk:e,page:this.storePage,mtime:t})},pageName(){return`${this.activeTitle} - page ${this.storePage}.jpg`}},methods:{...f(T,["downloadIOSPWAFix"]),downloadPage(){this.downloadIOSPWAFix(this.pageSrc,this.pageName)},downloadBook(){this.downloadIOSPWAFix(this.downloadURL,this.filename)}}},So={id:"downloadPanel"};function Co(e,t,a,d,l,o){return u(),b("div",So,[n(E,{onClick:o.downloadPage},{default:i(()=>[n(j,null,{default:i(()=>[n(v,null,{default:i(()=>[h(_(l.mdiFileImage),1)]),_:1}),h("Download Page "+_(e.storePage),1)]),_:1})]),_:1},8,["onClick"]),n(E,{onClick:o.downloadBook},{default:i(()=>[n(j,null,{default:i(()=>[n(v,null,{default:i(()=>[h(_(l.mdiDownload),1)]),_:1}),h("Download Book ")]),_:1})]),_:1},8,["onClick"])])}const De=m(wo,[["render",Co],["__scopeId","data-v-079b7d8d"]]),Ie=["fitTo","readingDirection","twoPages"];Object.freeze(Ie);const yo={name:"ReaderSettingsPanel",data(){return{isGlobalScope:!1,mdiOpenInNew:et}},computed:{...w(c,["isVertical","isPDF","cacheBook"]),...P(c,{choices:e=>e.choices,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 d of Ie){const l=(a=e.books)==null?void 0:a.current.settings[d];if(!e.choices.nullValues.has(l))return!1}return!0},bookInBrowserURL(e){var t;return tt((t=e.books)==null?void 0:t.current)}}),...G(c,["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(c,["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){e.stopPropagation();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)}}},Ro={id:"readerSettings"},Bo=["href"];function To(e,t,a,d,l,o){return u(),b("div",Ro,[n(z,{modelValue:l.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=s=>l.isGlobalScope=s),density:"compact",label:"Scope","hide-details":"auto"},{default:i(()=>[n($,{label:"Only this comic",value:!1}),n($,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),n(z,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=s=>o.settingsDialogChanged({fitTo:s}))},{default:i(()=>[(u(!0),b(R,null,x(o.fitToChoices,s=>(u(),g($,{key:s.value,label:s.title,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),n(M,{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]=s=>o.settingsDialogChanged({twoPages:s}))},null,8,["disabled","model-value","indeterminate"]),n(z,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=s=>o.settingsDialogChanged({readingDirection:s}))},{default:i(()=>[(u(!0),b(R,null,x(o.readingDirectionChoices,s=>(u(),g($,{key:s.value,label:s.title,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),n(M,{"model-value":e.cacheBook,class:"cacheBook",density:"compact",disabled:o.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=s=>e.setSettingsClient({cacheBook:s}))},null,8,["model-value","disabled"]),e.isPDF?(u(),b("a",{key:0,id:"readPDFInBrowser",href:e.bookInBrowserURL,target:"_blank"},[n(v,null,{default:i(()=>[h(_(l.mdiOpenInNew),1)]),_:1}),h("Read PDF in Browser ")],8,Bo)):S("",!0),l.isGlobalScope?(u(),g(M,{key:1,"model-value":e.selectedSettings.readRtlInReverse,class:"readRtlInReverse",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=s=>o.settingsDialogChanged({readRtlInReverse:s}))},null,8,["model-value"])):S("",!0),l.isGlobalScope?S("",!0):(u(),g(q,{key:2,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,title:"Use the default settings for all comics for this comic",onClick:e.clearSettingsLocal},{default:i(()=>[h(" Clear Comic Settings ")]),_:1},8,["disabled","onClick"]))])}const $e=m(yo,[["render",To],["__scopeId","data-v-953d00f1"]]),Do={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:ot,mdiMenuRight:at,mdiKeyboardOutline:st,mdiKeyboardSpace:rt,mdiAppleKeyboardShift:nt}},computed:{...w(T,["isMobile"])}},C=e=>(it("data-v-a8b4ac47"),e=e(),lt(),e),Io=C(()=>r("h4",null,"Navigation",-1)),$o={class:"highlight-table"},Lo=C(()=>r("td",null,"Previous page",-1)),Vo=C(()=>r("td",null,"Next page",-1)),Oo=C(()=>r("tr",null,[r("td",null,","),r("td",null,[h("Next "),r("em",null,"only"),h(" one page in two page mode.")])],-1)),xo=C(()=>r("tr",null,[r("td",null,"."),r("td",null,[h("Previous "),r("em",null,"only"),h(" one page in two page mode.")])],-1)),Eo=C(()=>r("tr",null,[r("td",null,"p"),r("td",null,"Previous Book")],-1)),Ao=C(()=>r("tr",null,[r("td",null,"n"),r("td",null,"Next Book")],-1)),No=C(()=>r("tr",null,[r("td",null,"esc"),r("td",null,"Close book")],-1)),Fo=C(()=>r("h4",null,"Fit Page To",-1)),Uo=C(()=>r("table",{class:"highlight-table"},[r("tbody",null,[r("tr",null,[r("td",null,"s"),r("td",null,"screen")]),r("tr",null,[r("td",null,"h"),r("td",null,"screen height")]),r("tr",null,[r("td",null,"w"),r("td",null,"screen width")]),r("tr",null,[r("td",null,"o"),r("td",null,"Show page at original size")]),r("tr",null,[r("td",null,"2"),r("td",null,"Toggle two page view")]),r("tr",null,[r("td",null,"r"),r("td",null,"Read Right to Left")]),r("tr",null,[r("td",null,"l"),r("td",null,"Read Left to Right")]),r("tr",null,[r("td",null,"t"),r("td",null,"Read Top to Bottom")]),r("tr",null,[r("td",null,"b"),r("td",null,"Read in Bottom to Top")])])],-1)),zo=C(()=>r("h4",null,"Other",-1)),Mo=C(()=>r("table",{class:"highlight-table"},[r("tbody",null,[r("tr",null,[r("td",null,"m"),r("td",null,"Show comic's metadata")]),r("tr",null,[r("td",null,"double click"),r("td",null,"Zoom page")])])],-1));function Wo(e,t,a,d,l,o){return e.isMobile?S("",!0):(u(),g(ft,{key:0},{default:i(()=>[n(kt,{id:"readerKeyboardShortcuts"},{default:i(()=>[n(_t,{id:"shortcutsTitle"},{default:i(()=>[n(v,{id:"keyboardIcon"},{default:i(()=>[h(_(l.mdiKeyboardOutline),1)]),_:1}),h("Keyboard Shortcuts ")]),_:1}),n(bt,null,{default:i(()=>[Io,r("table",$o,[r("tbody",null,[r("tr",null,[r("td",null,[n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiMenuLeft),1)]),_:1}),h(", j, "),r("div",null,[n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiAppleKeyboardShift),1)]),_:1}),n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiKeyboardSpace),1)]),_:1})])]),Lo]),r("tr",null,[r("td",null,[n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiMenuRight),1)]),_:1}),h(", k, "),n(v,{class:"keyIcon",density:"compact"},{default:i(()=>[h(_(l.mdiKeyboardSpace),1)]),_:1})]),Vo]),Oo,xo,Eo,Ao,No])]),Fo,Uo,zo,Mo]),_:1})]),_:1})]),_:1}))}const qo=m(Do,[["render",Wo],["__scopeId","data-v-a8b4ac47"]]),Ho={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:De,ReaderKeyboardShortcutsPanel:qo,ReaderSettingsPanel:$e}};function Go(e,t,a,d,l,o){const s=$e,p=y("ReaderKeyboardShortcutsPanel"),k=De;return u(),b(R,null,[n(s),n(Y),n(p),n(Y),n(k)],64)}const Ko=m(Ho,[["render",Go]]),jo={name:"MainReader",components:{BookChangeDrawer:Te,BooksWindow:ye,ReaderNavToolbar:_e,ReaderTitleToolbar:Be,SettingsDrawer:re},data(){return{showToolbars:!1,ReaderSettingsSuperPanel:H(Ko)}},computed:{...w(X,["isCodexViewable"]),...P(X,{user:e=>e.user})},watch:{user(){this.loadReaderSettings()},isCodexViewable(){this.loadReaderSettings()}},created(){T().isSettingsDrawerOpen=!1},beforeMount(){c().$reset,this.loadReaderSettings()},methods:{...f(c,["loadReaderSettings"]),toggleToolbars(){this.showToolbars=!this.showToolbars}}},Yo={key:0,id:"readerContainer"},Xo={key:1,id:"announcement"};function Zo(e,t,a,d,l,o){const s=Te,p=Be,k=ye,I=_e,F=y("router-link"),Le=re;return u(),b(R,null,[n(Pt,{id:"readerWrapper"},{default:i(()=>[n(s,{direction:"prev"}),e.isCodexViewable?(u(),b("div",Yo,[n(ct,null,{default:i(()=>[B(n(p,null,null,512),[[Z,l.showToolbars]])]),_:1}),n(k,{onClick:o.toggleToolbars},null,8,["onClick"]),n(ut,null,{default:i(()=>[B(n(I,null,null,512),[[Z,l.showToolbars]])]),_:1})])):(u(),b("div",Xo,[r("h1",null,[n(F,{to:{name:"home"}},{default:i(()=>[h(" Log in ")]),_:1}),h(" to read comics ")])]))]),_:1}),n(s,{direction:"next"}),n(Le,{title:"Reader Settings",panel:l.ReaderSettingsSuperPanel,temporary:""},null,8,["panel"])],64)}const ma=m(jo,[["render",Zo],["__scopeId","data-v-fd949081"]]);export{ma as default};
@@ -1 +0,0 @@
1
- .scaleForScroll[data-v-b24267c0]{overflow:scroll;-webkit-overflow-scrolling:touch}.resetIcon[data-v-b24267c0]{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 45px);right:50%;transform:translate(50%);z-index:200;font-size:50px;color:#fff;filter:drop-shadow(1px 1px 1px black);opacity:.666}.resetIcon[data-v-b24267c0]:hover{opacity:1}.pageLoading[data-v-04027168]{display:inline-flex;height:100vh;width:100vw;justify-content:center;align-items:center}.twoPages[data-v-04027168]{max-width:50vw}.pagePlaceholder[data-v-04027168]{height:50%!important;width:50%!important}.pageError[data-v-cea0843d]{display:inline-block;height:100vh}.twoPages[data-v-cea0843d]{max-width:50vw}.pageErrorContainer[data-v-cea0843d]{display:grid;place-items:center;height:100%}.pageErrorText[data-v-cea0843d]{position:relative;text-align:center;font-size:4vw;color:rgb(var(--v-theme-textDisabled));padding:.5em}.pageErrorIcon[data-v-cea0843d]{color:rgb(var(--v-theme-error));width:75%;height:75%;opacity:.33}.pageErrorText[data-v-cea0843d],.pageErrorIcon[data-v-cea0843d]{grid-row:1;grid-column:1}.img[data-v-559e2ecc]{transition:transform .5s ease-in-out}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{object-fit:contain}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc],.fitToHeight[data-v-559e2ecc],.fitToHeightTwo[data-v-559e2ecc],.fitToHeightVertical[data-v-559e2ecc]{height:100vh}.fitToScreenTwo[data-v-559e2ecc]{max-width:50vw}.fitToWidth[data-v-559e2ecc],.fitToWidthVertical[data-v-559e2ecc],.fitToScreen[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{width:100vw}.fitToWidthTwo[data-v-559e2ecc]{width:50vw}.fitToOrig[data-v-559e2ecc],.fitToOrigTwo[data-v-559e2ecc],.fitToOrigVertical[data-v-559e2ecc]{object-fit:none}.page[data-v-87996fa1]{font-size:0}.noWrap[data-v-9a560964]{white-space:nowrap}.horizontalPage[data-v-9a560964]{display:inline-block}.pageChangeColumn[data-v-9ade7d96]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.pageChangeRow[data-v-9ade7d96]{position:fixed;height:33vh;width:100%}.prev[data-v-9ade7d96]{left:0;cursor:w-resize}.prevVertical[data-v-9ade7d96]{top:0;cursor:n-resize}.next[data-v-9ade7d96]{right:0;cursor:e-resize}.nextVertical[data-v-9ade7d96]{bottom:0;cursor:s-resize}.windowItem[data-v-e04bbc00]{font-size:0}.verticalPage[data-v-0836627c]{display:block}[data-v-0836627c] .v-virtual-scroll__item{position:relative}.pageTracker[data-v-0836627c]{position:absolute;top:0;left:2.5%;z-index:15;width:95vw;height:85vh;z-index:10}.bookChangeColumn[data-v-2b81f2ae]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.leftPos[data-v-2b81f2ae]{left:0}.rightPos[data-v-2b81f2ae]{right:0}.upCursor[data-v-2b81f2ae]{cursor:n-resize}.downCursor[data-v-2b81f2ae]{cursor:s-resize}[data-v-2a90783e] .windowItem{min-height:100vh;text-align:center}[data-v-2a90783e] .v-window__controls{position:fixed;top:48px;height:calc(100vh - 96px);padding:0}[data-v-90090a3c] .v-label.v-field-label{top:13px}[data-v-90090a3c] .v-field__input{padding-right:0}[data-v-90090a3c] .v-list-item{padding:0}[data-v-90090a3c] .v-list-item__prepend{display:block;width:24px!important;margin-right:5px}[data-v-90090a3c] .v-select__menu-icon{margin:0}#onlyArc[data-v-90090a3c]{margin-top:13px;color:rgb(var(--v-theme-textSecondary))}#arcPosition[data-v-90090a3c]{padding-top:13px;padding-left:10px;padding-right:10px;color:rgb(var(--v-theme-textSecondary));text-align:center}@media (max-width: 959.98px){#arcPosition[data-v-90090a3c]{padding-left:0;padding-right:0}}#readerTopToolbar[data-v-5d12ffc0]{width:100%;top:0;padding-top:env(safe-area-inset-top);padding-left:calc(env(safe-area-inset-left)/2);padding-right:calc(env(safe-area-inset-right)/2);z-index:20}[data-v-5d12ffc0] .v-toolbar__content{padding:0}#toolbarTitle[data-v-5d12ffc0]{font-size:clamp(8pt,2.5vw,18pt);line-height:normal}[data-v-5d12ffc0] .v-toolbar-title__placeholder{text-overflow:clip;white-space:normal}#tagButton[data-v-5d12ffc0]{min-width:24px;height:24px;width:24px;margin:0}@media (max-width: 959.98px){#closeBook[data-v-5d12ffc0]{min-width:32px}#tagButton[data-v-5d12ffc0]{padding-left:2px;padding-right:2px;min-width:16px}#settingsButton[data-v-5d12ffc0]{padding-left:2px;padding-right:2px}}.prevCursor[data-v-457facfc]{cursor:n-resize}.nextCursor[data-v-457facfc]{cursor:s-resize}.navLink[data-v-457facfc]{display:block;height:100%}.bookChangeIcon[data-v-457facfc]{top:50%;left:50%;transform:translate(-50%) translateY(-50%);height:25%;width:25%;color:#fff}.bookChangeDrawer{width:33vw!important;opacity:.75!important;z-index:15!important}#downloadPanel[data-v-079b7d8d]{background-color:rgb(var(--v-theme-background))}#readerSettings[data-v-953d00f1]{padding-top:10px;padding-left:15px;padding-right:env(safe-area-inset-right);padding-bottom:10px;background-color:inherit}.displayRadioGroup[data-v-953d00f1]{margin-top:15px}.displayTwoPages[data-v-953d00f1]{margin-top:5px;margin-bottom:10px}.readRtlInReverse[data-v-953d00f1]{transition:visibility .25s,opacity .25s}#clearSettingsButton[data-v-953d00f1]{margin-top:4px;margin-bottom:4px;transition:visibility .25s,opacity .25s}#readPDFInBrowser[data-v-953d00f1]{display:block;padding-left:2px;color:rgba(var(--v-theme-textSecondary))}#readerKeyboardShortcuts[data-v-a8b4ac47]{background-color:rgb(var(--v-theme-background))}#shortcutsTitle[data-v-a8b4ac47]{padding:0 10px 0 17px;font-size:16px}#keyboardIcon[data-v-a8b4ac47]{margin-right:.33em!important;color:rgb(var(--v-theme-textDisabled))}[data-v-a8b4ac47] .v-expansion-panel-title--active{min-height:48px!important}[data-v-a8b4ac47] .v-expansion-panel-text__wrapper{padding-left:10px;padding-right:10px}.highlight-table[data-v-a8b4ac47]{margin-top:10px;border-collapse:collapse;color:rgb(var(--v-theme-textDisabled))}h4[data-v-a8b4ac47]{padding-left:.5em;color:rgb(var(--v-theme-textSecondary))}.highlight-table tr[data-v-a8b4ac47]:nth-child(odd){background-color:rgb(var(--v-theme-surface))!important}.highlight-table td[data-v-a8b4ac47]{min-width:60px;padding:5px}.highlight-table td[data-v-a8b4ac47]:first-child{text-align:center}.keyIcon[data-v-a8b4ac47]{margin:0}#readerContainer[data-v-fd949081]{max-width:100%;position:relative}#announcement[data-v-fd949081]{text-align:center}
@@ -1 +0,0 @@
1
- .scaleForScroll[data-v-b24267c0]{overflow:scroll;-webkit-overflow-scrolling:touch}.resetIcon[data-v-b24267c0]{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 45px);right:50%;transform:translate(50%);z-index:200;font-size:50px;color:#fff;filter:drop-shadow(1px 1px 1px black);opacity:.666}.resetIcon[data-v-b24267c0]:hover{opacity:1}.pageLoading[data-v-04027168]{display:inline-flex;height:100vh;width:100vw;justify-content:center;align-items:center}.twoPages[data-v-04027168]{max-width:50vw}.pagePlaceholder[data-v-04027168]{height:50%!important;width:50%!important}.pageError[data-v-cea0843d]{display:inline-block;height:100vh}.twoPages[data-v-cea0843d]{max-width:50vw}.pageErrorContainer[data-v-cea0843d]{display:grid;place-items:center;height:100%}.pageErrorText[data-v-cea0843d]{position:relative;text-align:center;font-size:4vw;color:rgb(var(--v-theme-textDisabled));padding:.5em}.pageErrorIcon[data-v-cea0843d]{color:rgb(var(--v-theme-error));width:75%;height:75%;opacity:.33}.pageErrorText[data-v-cea0843d],.pageErrorIcon[data-v-cea0843d]{grid-row:1;grid-column:1}.img[data-v-559e2ecc]{transition:transform .5s ease-in-out}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{object-fit:contain}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc],.fitToHeight[data-v-559e2ecc],.fitToHeightTwo[data-v-559e2ecc],.fitToHeightVertical[data-v-559e2ecc]{height:100vh}.fitToScreenTwo[data-v-559e2ecc]{max-width:50vw}.fitToWidth[data-v-559e2ecc],.fitToWidthVertical[data-v-559e2ecc],.fitToScreen[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{width:100vw}.fitToWidthTwo[data-v-559e2ecc]{width:50vw}.fitToOrig[data-v-559e2ecc],.fitToOrigTwo[data-v-559e2ecc],.fitToOrigVertical[data-v-559e2ecc]{object-fit:none}.page[data-v-87996fa1]{font-size:0}.noWrap[data-v-9a560964]{white-space:nowrap}.horizontalPage[data-v-9a560964]{display:inline-block}.pageChangeColumn[data-v-9ade7d96]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.pageChangeRow[data-v-9ade7d96]{position:fixed;height:33vh;width:100%}.prev[data-v-9ade7d96]{left:0;cursor:w-resize}.prevVertical[data-v-9ade7d96]{top:0;cursor:n-resize}.next[data-v-9ade7d96]{right:0;cursor:e-resize}.nextVertical[data-v-9ade7d96]{bottom:0;cursor:s-resize}.windowItem[data-v-e04bbc00]{font-size:0}.verticalPage[data-v-0836627c]{display:block}[data-v-0836627c] .v-virtual-scroll__item{position:relative}.pageTracker[data-v-0836627c]{position:absolute;top:0;left:2.5%;z-index:15;width:95vw;height:85vh;z-index:10}.bookChangeColumn[data-v-2b81f2ae]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.leftPos[data-v-2b81f2ae]{left:0}.rightPos[data-v-2b81f2ae]{right:0}.upCursor[data-v-2b81f2ae]{cursor:n-resize}.downCursor[data-v-2b81f2ae]{cursor:s-resize}[data-v-2a90783e] .windowItem{min-height:100vh;text-align:center}[data-v-2a90783e] .v-window__controls{position:fixed;top:48px;height:calc(100vh - 96px);padding:0}[data-v-90090a3c] .v-label.v-field-label{top:13px}[data-v-90090a3c] .v-field__input{padding-right:0}[data-v-90090a3c] .v-list-item{padding:0}[data-v-90090a3c] .v-list-item__prepend{display:block;width:24px!important;margin-right:5px}[data-v-90090a3c] .v-select__menu-icon{margin:0}#onlyArc[data-v-90090a3c]{margin-top:13px;color:rgb(var(--v-theme-textSecondary))}#arcPosition[data-v-90090a3c]{padding-top:13px;padding-left:10px;padding-right:10px;color:rgb(var(--v-theme-textSecondary));text-align:center}@media (max-width: 959.98px){#arcPosition[data-v-90090a3c]{padding-left:0;padding-right:0}}#readerTopToolbar[data-v-5d12ffc0]{width:100%;top:0;padding-top:env(safe-area-inset-top);padding-left:calc(env(safe-area-inset-left)/2);padding-right:calc(env(safe-area-inset-right)/2);z-index:20}[data-v-5d12ffc0] .v-toolbar__content{padding:0}#toolbarTitle[data-v-5d12ffc0]{font-size:clamp(8pt,2.5vw,18pt);line-height:normal}[data-v-5d12ffc0] .v-toolbar-title__placeholder{text-overflow:clip;white-space:normal}#tagButton[data-v-5d12ffc0]{min-width:24px;height:24px;width:24px;margin:0}@media (max-width: 959.98px){#closeBook[data-v-5d12ffc0]{min-width:32px}#tagButton[data-v-5d12ffc0]{padding-left:2px;padding-right:2px;min-width:16px}#settingsButton[data-v-5d12ffc0]{padding-left:2px;padding-right:2px}}.prevCursor[data-v-457facfc]{cursor:n-resize}.nextCursor[data-v-457facfc]{cursor:s-resize}.navLink[data-v-457facfc]{display:block;height:100%}.bookChangeIcon[data-v-457facfc]{top:50%;left:50%;transform:translate(-50%) translateY(-50%);height:25%;width:25%;color:#fff}.bookChangeDrawer{width:33vw!important;opacity:.75!important;z-index:15!important}#downloadPanel[data-v-079b7d8d]{background-color:rgb(var(--v-theme-background))}#readerSettings[data-v-953d00f1]{padding-top:10px;padding-left:15px;padding-right:env(safe-area-inset-right);padding-bottom:10px;background-color:inherit}.displayRadioGroup[data-v-953d00f1]{margin-top:15px}.displayTwoPages[data-v-953d00f1]{margin-top:5px;margin-bottom:10px}.readRtlInReverse[data-v-953d00f1]{transition:visibility .25s,opacity .25s}#clearSettingsButton[data-v-953d00f1]{margin-top:4px;margin-bottom:4px;transition:visibility .25s,opacity .25s}#readPDFInBrowser[data-v-953d00f1]{display:block;padding-left:2px;color:rgba(var(--v-theme-textSecondary))}#readerKeyboardShortcuts[data-v-a8b4ac47]{background-color:rgb(var(--v-theme-background))}#shortcutsTitle[data-v-a8b4ac47]{padding:0 10px 0 17px;font-size:16px}#keyboardIcon[data-v-a8b4ac47]{margin-right:.33em!important;color:rgb(var(--v-theme-textDisabled))}[data-v-a8b4ac47] .v-expansion-panel-title--active{min-height:48px!important}[data-v-a8b4ac47] .v-expansion-panel-text__wrapper{padding-left:10px;padding-right:10px}.highlight-table[data-v-a8b4ac47]{margin-top:10px;border-collapse:collapse;color:rgb(var(--v-theme-textDisabled))}h4[data-v-a8b4ac47]{padding-left:.5em;color:rgb(var(--v-theme-textSecondary))}.highlight-table tr[data-v-a8b4ac47]:nth-child(odd){background-color:rgb(var(--v-theme-surface))!important}.highlight-table td[data-v-a8b4ac47]{min-width:60px;padding:5px}.highlight-table td[data-v-a8b4ac47]:first-child{text-align:center}.keyIcon[data-v-a8b4ac47]{margin:0}#readerContainer[data-v-fd949081]{max-width:100%;position:relative}#announcement[data-v-fd949081]{text-align:center}
@@ -1 +0,0 @@
1
- .statBlock[data-v-dbe3be76]{display:inline-block;vertical-align:top;margin-right:40px}h3[data-v-dbe3be76]{margin-top:1em;text-align:center}.highlight-table[data-v-dbe3be76]{color:rgb(var(--v-theme-textSecondary))}tr td[data-v-dbe3be76]:nth-child(2){text-align:right}.indent[data-v-dbe3be76]{padding-left:2em!important}.copied[data-v-dbe3be76]{font-size:small;font-weight:400;color:rgb(var(--v-theme-textSecondary))}.clipBoardIcon[data-v-dbe3be76]{color:rgb(var(--v-theme-iconsInactive))}#apiKeyRow[data-v-dbe3be76]:hover{background-color:rgb(var(--v-theme-surface))}#apiKeyRow:hover .clipBoardIcon[data-v-dbe3be76],#apiKeyRow:hover #apiKey[data-v-dbe3be76]{color:rgb(var(--v-theme-textPrimary))}#schemaDocValue[data-v-dbe3be76]{max-width:15em}
@@ -1 +0,0 @@
1
- .statBlock[data-v-dbe3be76]{display:inline-block;vertical-align:top;margin-right:40px}h3[data-v-dbe3be76]{margin-top:1em;text-align:center}.highlight-table[data-v-dbe3be76]{color:rgb(var(--v-theme-textSecondary))}tr td[data-v-dbe3be76]:nth-child(2){text-align:right}.indent[data-v-dbe3be76]{padding-left:2em!important}.copied[data-v-dbe3be76]{font-size:small;font-weight:400;color:rgb(var(--v-theme-textSecondary))}.clipBoardIcon[data-v-dbe3be76]{color:rgb(var(--v-theme-iconsInactive))}#apiKeyRow[data-v-dbe3be76]:hover{background-color:rgb(var(--v-theme-surface))}#apiKeyRow:hover .clipBoardIcon[data-v-dbe3be76],#apiKeyRow:hover #apiKey[data-v-dbe3be76]{color:rgb(var(--v-theme-textPrimary))}#schemaDocValue[data-v-dbe3be76]{max-width:15em}
@@ -1 +0,0 @@
1
- import{_ as b}from"./confirm-dialog-0mqMQack.js";import{_ as g,M as m,k as I,t as y,c0 as k,c1 as A,N as B,b4 as P,ay as a,aD as t,L as i,P as u,aB as r,R as d,ae as l,al as w,az as S,aa as _,ad as K,c2 as v,be as R,bh as D,aH as V,aI as N}from"./admin-drawer-panel-B4-04ET4.js";import{c as E}from"./index-DUjeNg4x.js";import{c as L}from"./to-case-kUm8NPpW.js";import{V as c}from"./VTable-XNBBnB2q.js";import"./confirm-footer-oTUv06_v.js";import"./main-BJxn-WA7.js";const M="Copy API Key to clipboard",p="&nbsp;&nbsp;&nbsp;&nbsp;",O={name:"AdminTasksTab",components:{ConfirmDialog:b},data(){return{showTooltip:{show:!1},apiSchemaURL:window.CODEX.API_V3_PATH}},computed:{...m(I,{}),...m(y,{stats:s=>s.stats}),clipBoardEnabled(){return location.prototcal=="https:"},apiTooltip(){return M?this.clipBoardEnabled:void 0},clipBoardIcon(){return this.showTooltip?k:A}},created(){this.loadStats()},methods:{...B(y,["loadStats","updateAPIKey"]),regenAPIKey(){this.updateAPIKey().then(this.loadStats).catch(console.warn)},nf(s){return P.format(s)},onClickAPIKey(){this.clipBoardEnabled&&E(this.stats.config.apiKey,this.showTooltip)},metadataTitle(s){let o=s.replace(/Count$/,"");return o=L(o),o=o.replace(/^Contributor\s/,p),o=o.replace(/^Identifier\s/,p),o=o.replace(/^Story\sArc\s/,p),o}}},e=s=>(V("data-v-dbe3be76"),s=s(),N(),s),U={key:0,id:"stats"},F={class:"statBlock"},z=e(()=>t("h3",null,"Platform",-1)),H=e(()=>t("td",null,"Docker",-1)),j=e(()=>t("td",null,"Machine",-1)),G=e(()=>t("td",null,"System",-1)),X=e(()=>t("td",null,"Python",-1)),Z=e(()=>t("td",null,"Codex",-1)),q={class:"statBlock"},J=e(()=>t("h3",null,"Config",-1)),Q=e(()=>t("td",null,"Libraries",-1)),W=e(()=>t("td",null,"Anonymous Users",-1)),Y=e(()=>t("td",null,"Registered Users",-1)),x=e(()=>t("td",null,"Groups",-1)),$={class:"statBlock"},tt=e(()=>t("h3",null,"Groups",-1)),st=e(()=>t("td",null,"Folders",-1)),et=e(()=>t("td",null,"Publishers",-1)),lt=e(()=>t("td",null,"Imprints",-1)),nt=e(()=>t("td",null,"Series",-1)),ot=e(()=>t("td",null,"Volumes",-1)),at=e(()=>t("td",null,"Issues",-1)),dt={key:0},it=e(()=>t("td",{class:"indent"},"CBZ",-1)),rt={key:1},ut=e(()=>t("td",{class:"indent"},"CBR",-1)),ct={key:2},ht=e(()=>t("td",{class:"indent"},"CBX",-1)),_t={key:3},pt=e(()=>t("td",{class:"indent"},"CBT",-1)),ft={key:4},mt=e(()=>t("td",{class:"indent"},"PDF",-1)),yt={key:5},bt=e(()=>t("td",{class:"indent"},"Unknown",-1)),Ct={class:"statBlock"},Tt=e(()=>t("h3",null,"Metadata",-1)),gt=["innerHTML"],It={class:"statBlock"},kt=e(()=>t("h3",null,"API",-1)),At=e(()=>t("td",null,"Schema Documentation:",-1)),Bt={id:"schemaDocValue"},Pt=["href"],wt=["title"],St={key:0},Kt={class:"copied"},vt={id:"apiKey"},Rt={colspan:"2"};function Dt(s,o,Vt,Nt,f,n){const C=b;return s.stats?(d(),a("div",U,[t("div",F,[z,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[H,t("td",null,l(s.stats.platform.docker),1)]),t("tr",null,[j,t("td",null,l(s.stats.platform.machine),1)]),t("tr",null,[G,t("td",null,l(s.stats.platform.system)+" "+l(s.stats.platform.systemRelease),1)]),t("tr",null,[X,t("td",null,l(s.stats.platform.python),1)]),t("tr",null,[Z,t("td",null,l(s.stats.platform.codex),1)])])]),_:1})]),t("div",q,[J,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[Q,t("td",null,l(n.nf(s.stats.config.librariesCount)),1)]),t("tr",null,[W,t("td",null,l(n.nf(s.stats.config.sessionsAnonCount)),1)]),t("tr",null,[Y,t("td",null,l(n.nf(s.stats.config.usersCount)),1)]),t("tr",null,[x,t("td",null,l(n.nf(s.stats.config.groupsCount)),1)])])]),_:1})]),t("div",$,[tt,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[st,t("td",null,l(n.nf(s.stats.groups.foldersCount)),1)]),t("tr",null,[et,t("td",null,l(n.nf(s.stats.groups.publishersCount)),1)]),t("tr",null,[lt,t("td",null,l(n.nf(s.stats.groups.imprintsCount)),1)]),t("tr",null,[nt,t("td",null,l(n.nf(s.stats.groups.seriesCount)),1)]),t("tr",null,[ot,t("td",null,l(n.nf(s.stats.groups.volumesCount)),1)]),t("tr",null,[at,t("td",null,l(n.nf(s.stats.groups.issuesCount)),1)]),s.stats.fileTypes.cbzCount?(d(),a("tr",dt,[it,t("td",null,l(n.nf(s.stats.fileTypes.cbzCount)),1)])):r("",!0),s.stats.fileTypes.cbrCount?(d(),a("tr",rt,[ut,t("td",null,l(n.nf(s.stats.fileTypes.cbrCount)),1)])):r("",!0),s.stats.fileTypes.cbxCount?(d(),a("tr",ct,[ht,t("td",null,l(n.nf(s.stats.fileTypes.cbxCount)),1)])):r("",!0),s.stats.fileTypes.cbtCount?(d(),a("tr",_t,[pt,t("td",null,l(n.nf(s.stats.fileTypes.cbtCount)),1)])):r("",!0),s.stats.fileTypes.pdfCount?(d(),a("tr",ft,[mt,t("td",null,l(n.nf(s.stats.fileTypes.pdfCount)),1)])):r("",!0),s.stats.fileTypes.unknownCount?(d(),a("tr",yt,[bt,t("td",null,l(n.nf(s.stats.fileTypes.unknownCount)),1)])):r("",!0)])]),_:1})]),t("div",Ct,[Tt,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[(d(!0),a(w,null,S(Object.entries(s.stats.metadata),([h,T])=>(d(),a("tr",{key:h},[t("td",{innerHTML:n.metadataTitle(h)},null,8,gt),t("td",null,l(n.nf(T)),1)]))),128))])]),_:1})]),t("div",It,[kt,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[At,t("td",Bt,[_(" The only endpoint accessible with API Key access is "),t("a",{href:`${f.apiSchemaURL}#/api/api_v3_admin_stats_retrieve`,target:"_blank"},"/admin/stats",8,Pt)])]),t("tr",{id:"apiKeyRow",title:n.apiTooltip,onClick:o[0]||(o[0]=(...h)=>n.onClickAPIKey&&n.onClickAPIKey(...h))},[t("td",null,[_(" API Key "),n.clipBoardEnabled?(d(),a("span",St,[i(K,{class:"clipBoardIcon",size:"small"},{default:u(()=>[_(l(n.clipBoardIcon),1)]),_:1}),i(v,null,{default:u(()=>[R(t("span",Kt,"Copied",512),[[D,f.showTooltip.show]])]),_:1})])):r("",!0)]),t("td",vt,l(s.stats.config.apiKey),1)],8,wt),t("tr",null,[t("td",Rt,[i(C,{"button-text":"Regenerate API Key","title-text":"Regenerate","object-name":"API Key","confirm-text":"Regenerate",onConfirm:n.regenAPIKey},null,8,["onConfirm"])])])])]),_:1})])])):r("",!0)}const Ht=g(O,[["render",Dt],["__scopeId","data-v-dbe3be76"]]);export{Ht as default};
@@ -1 +0,0 @@
1
- import{_ as b}from"./confirm-dialog-0mqMQack.js";import{_ as g,M as m,k as I,t as y,c0 as k,c1 as A,N as B,b4 as P,ay as a,aD as t,L as i,P as u,aB as r,R as d,ae as l,al as w,az as S,aa as _,ad as K,c2 as v,be as R,bh as D,aH as V,aI as N}from"./admin-drawer-panel-B4-04ET4.js";import{c as E}from"./index-DUjeNg4x.js";import{c as L}from"./to-case-kUm8NPpW.js";import{V as c}from"./VTable-XNBBnB2q.js";import"./confirm-footer-oTUv06_v.js";import"./main-BJxn-WA7.js";const M="Copy API Key to clipboard",p="&nbsp;&nbsp;&nbsp;&nbsp;",O={name:"AdminTasksTab",components:{ConfirmDialog:b},data(){return{showTooltip:{show:!1},apiSchemaURL:window.CODEX.API_V3_PATH}},computed:{...m(I,{}),...m(y,{stats:s=>s.stats}),clipBoardEnabled(){return location.prototcal=="https:"},apiTooltip(){return M?this.clipBoardEnabled:void 0},clipBoardIcon(){return this.showTooltip?k:A}},created(){this.loadStats()},methods:{...B(y,["loadStats","updateAPIKey"]),regenAPIKey(){this.updateAPIKey().then(this.loadStats).catch(console.warn)},nf(s){return P.format(s)},onClickAPIKey(){this.clipBoardEnabled&&E(this.stats.config.apiKey,this.showTooltip)},metadataTitle(s){let o=s.replace(/Count$/,"");return o=L(o),o=o.replace(/^Contributor\s/,p),o=o.replace(/^Identifier\s/,p),o=o.replace(/^Story\sArc\s/,p),o}}},e=s=>(V("data-v-dbe3be76"),s=s(),N(),s),U={key:0,id:"stats"},F={class:"statBlock"},z=e(()=>t("h3",null,"Platform",-1)),H=e(()=>t("td",null,"Docker",-1)),j=e(()=>t("td",null,"Machine",-1)),G=e(()=>t("td",null,"System",-1)),X=e(()=>t("td",null,"Python",-1)),Z=e(()=>t("td",null,"Codex",-1)),q={class:"statBlock"},J=e(()=>t("h3",null,"Config",-1)),Q=e(()=>t("td",null,"Libraries",-1)),W=e(()=>t("td",null,"Anonymous Users",-1)),Y=e(()=>t("td",null,"Registered Users",-1)),x=e(()=>t("td",null,"Groups",-1)),$={class:"statBlock"},tt=e(()=>t("h3",null,"Groups",-1)),st=e(()=>t("td",null,"Folders",-1)),et=e(()=>t("td",null,"Publishers",-1)),lt=e(()=>t("td",null,"Imprints",-1)),nt=e(()=>t("td",null,"Series",-1)),ot=e(()=>t("td",null,"Volumes",-1)),at=e(()=>t("td",null,"Issues",-1)),dt={key:0},it=e(()=>t("td",{class:"indent"},"CBZ",-1)),rt={key:1},ut=e(()=>t("td",{class:"indent"},"CBR",-1)),ct={key:2},ht=e(()=>t("td",{class:"indent"},"CBX",-1)),_t={key:3},pt=e(()=>t("td",{class:"indent"},"CBT",-1)),ft={key:4},mt=e(()=>t("td",{class:"indent"},"PDF",-1)),yt={key:5},bt=e(()=>t("td",{class:"indent"},"Unknown",-1)),Ct={class:"statBlock"},Tt=e(()=>t("h3",null,"Metadata",-1)),gt=["innerHTML"],It={class:"statBlock"},kt=e(()=>t("h3",null,"API",-1)),At=e(()=>t("td",null,"Schema Documentation:",-1)),Bt={id:"schemaDocValue"},Pt=["href"],wt=["title"],St={key:0},Kt={class:"copied"},vt={id:"apiKey"},Rt={colspan:"2"};function Dt(s,o,Vt,Nt,f,n){const C=b;return s.stats?(d(),a("div",U,[t("div",F,[z,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[H,t("td",null,l(s.stats.platform.docker),1)]),t("tr",null,[j,t("td",null,l(s.stats.platform.machine),1)]),t("tr",null,[G,t("td",null,l(s.stats.platform.system)+" "+l(s.stats.platform.systemRelease),1)]),t("tr",null,[X,t("td",null,l(s.stats.platform.python),1)]),t("tr",null,[Z,t("td",null,l(s.stats.platform.codex),1)])])]),_:1})]),t("div",q,[J,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[Q,t("td",null,l(n.nf(s.stats.config.librariesCount)),1)]),t("tr",null,[W,t("td",null,l(n.nf(s.stats.config.sessionsAnonCount)),1)]),t("tr",null,[Y,t("td",null,l(n.nf(s.stats.config.usersCount)),1)]),t("tr",null,[x,t("td",null,l(n.nf(s.stats.config.groupsCount)),1)])])]),_:1})]),t("div",$,[tt,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[st,t("td",null,l(n.nf(s.stats.groups.foldersCount)),1)]),t("tr",null,[et,t("td",null,l(n.nf(s.stats.groups.publishersCount)),1)]),t("tr",null,[lt,t("td",null,l(n.nf(s.stats.groups.imprintsCount)),1)]),t("tr",null,[nt,t("td",null,l(n.nf(s.stats.groups.seriesCount)),1)]),t("tr",null,[ot,t("td",null,l(n.nf(s.stats.groups.volumesCount)),1)]),t("tr",null,[at,t("td",null,l(n.nf(s.stats.groups.issuesCount)),1)]),s.stats.fileTypes.cbzCount?(d(),a("tr",dt,[it,t("td",null,l(n.nf(s.stats.fileTypes.cbzCount)),1)])):r("",!0),s.stats.fileTypes.cbrCount?(d(),a("tr",rt,[ut,t("td",null,l(n.nf(s.stats.fileTypes.cbrCount)),1)])):r("",!0),s.stats.fileTypes.cbxCount?(d(),a("tr",ct,[ht,t("td",null,l(n.nf(s.stats.fileTypes.cbxCount)),1)])):r("",!0),s.stats.fileTypes.cbtCount?(d(),a("tr",_t,[pt,t("td",null,l(n.nf(s.stats.fileTypes.cbtCount)),1)])):r("",!0),s.stats.fileTypes.pdfCount?(d(),a("tr",ft,[mt,t("td",null,l(n.nf(s.stats.fileTypes.pdfCount)),1)])):r("",!0),s.stats.fileTypes.unknownCount?(d(),a("tr",yt,[bt,t("td",null,l(n.nf(s.stats.fileTypes.unknownCount)),1)])):r("",!0)])]),_:1})]),t("div",Ct,[Tt,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[(d(!0),a(w,null,S(Object.entries(s.stats.metadata),([h,T])=>(d(),a("tr",{key:h},[t("td",{innerHTML:n.metadataTitle(h)},null,8,gt),t("td",null,l(n.nf(T)),1)]))),128))])]),_:1})]),t("div",It,[kt,i(c,{class:"highlight-table"},{default:u(()=>[t("tbody",null,[t("tr",null,[At,t("td",Bt,[_(" The only endpoint accessible with API Key access is "),t("a",{href:`${f.apiSchemaURL}#/api/api_v3_admin_stats_retrieve`,target:"_blank"},"/admin/stats",8,Pt)])]),t("tr",{id:"apiKeyRow",title:n.apiTooltip,onClick:o[0]||(o[0]=(...h)=>n.onClickAPIKey&&n.onClickAPIKey(...h))},[t("td",null,[_(" API Key "),n.clipBoardEnabled?(d(),a("span",St,[i(K,{class:"clipBoardIcon",size:"small"},{default:u(()=>[_(l(n.clipBoardIcon),1)]),_:1}),i(v,null,{default:u(()=>[R(t("span",Kt,"Copied",512),[[D,f.showTooltip.show]])]),_:1})])):r("",!0)]),t("td",vt,l(s.stats.config.apiKey),1)],8,wt),t("tr",null,[t("td",Rt,[i(C,{"button-text":"Regenerate API Key","title-text":"Regenerate","object-name":"API Key","confirm-text":"Regenerate",onConfirm:n.regenAPIKey},null,8,["onConfirm"])])])])]),_:1})])])):r("",!0)}const Ht=g(O,[["render",Dt],["__scopeId","data-v-dbe3be76"]]);export{Ht as default};
@@ -1 +0,0 @@
1
- #lastTaskLabel[data-v-e6ffa3c6]{margin-right:1em}#success[data-v-e6ffa3c6]{color:rgb(var(--v-theme-success))}#error[data-v-e6ffa3c6]{color:rgb(var(--v-theme-error))}#noRecentTask[data-v-e6ffa3c6]{color:rgb(var(--v-theme-textDisabled))}.taskGroup[data-v-e6ffa3c6]{margin-top:1em}.taskBox[data-v-e6ffa3c6]{padding:12px;margin:10px;border-radius:5px;background-color:rgb(var(--v-theme-surface-light))}.taskDesc[data-v-e6ffa3c6]{vertical-align:top;color:rgb(var(--v-theme-textSecondary));padding-top:.25em}#tasks[data-v-e6ffa3c6]{max-width:512px;margin-left:auto;margin-right:auto}
@@ -1 +0,0 @@
1
- #lastTaskLabel[data-v-e6ffa3c6]{margin-right:1em}#success[data-v-e6ffa3c6]{color:rgb(var(--v-theme-success))}#error[data-v-e6ffa3c6]{color:rgb(var(--v-theme-error))}#noRecentTask[data-v-e6ffa3c6]{color:rgb(var(--v-theme-textDisabled))}.taskGroup[data-v-e6ffa3c6]{margin-top:1em}.taskBox[data-v-e6ffa3c6]{padding:12px;margin:10px;border-radius:5px;background-color:rgb(var(--v-theme-surface-light))}.taskDesc[data-v-e6ffa3c6]{vertical-align:top;color:rgb(var(--v-theme-textSecondary));padding-top:.25em}#tasks[data-v-e6ffa3c6]{max-width:512px;margin-left:auto;margin-right:auto}
@@ -1 +0,0 @@
1
- import{_ as d}from"./confirm-dialog-0mqMQack.js";import{_ as m,d8 as p,M as _,k as h,N as v,t as b,ay as t,aD as n,ae as r,al as c,az as l,R as e,ab as y,O as i,P as C,aa as S,ak as T,aH as B,aI as x}from"./admin-drawer-panel-B4-04ET4.js";import"./confirm-footer-oTUv06_v.js";import"./main-BJxn-WA7.js";const D={name:"AdminTasksTab",components:{ConfirmDialog:d},data(){return{tasks:p}},computed:{..._(h,{formSuccess:s=>s.form.success,formErrors:s=>s.form.errors})},methods:{...v(b,["librarianTask"])}},E=s=>(B("data-v-e6ffa3c6"),s=s(),x(),s),I={id:"tasks"},$=E(()=>n("span",{id:"lastTaskLabel"},"Last Task Queued:",-1)),g={key:0,id:"success"},N={key:1,id:"error"},w={key:2,id:"noRecentTask"},A={class:"taskBox"},L={class:"taskDesc"};function V(s,j,z,R,u,F){const k=d;return e(),t("div",I,[n("div",null,[$,n("span",null,[s.formSuccess?(e(),t("span",g,r(s.formSuccess),1)):s.formErrors&&s.formErrors.length>0?(e(),t("span",N,[(e(!0),t(c,null,l(s.formErrors,o=>(e(),t("span",{key:o},r(o),1))),128))])):(e(),t("span",w,"No recent task"))])]),(e(!0),t(c,null,l(u.tasks,o=>(e(),t("div",{key:o.title,"fixed-header":"",class:"taskGroup"},[n("h3",null,r(o.title),1),(e(!0),t(c,null,l(o.tasks,a=>(e(),t("div",{key:a.value,class:y(["trow",{selected:!1}])},[n("div",A,[a.confirm?(e(),i(k,{key:0,"button-text":a.title,"title-text":a.title,"object-name":a.confirm,"confirm-text":"Confirm",onConfirm:f=>s.librarianTask(a.value,a.title)},null,8,["button-text","title-text","object-name","onConfirm"])):(e(),i(T,{key:1,block:"",onClick:f=>s.librarianTask(a.value,a.title)},{default:C(()=>[S(r(a.title),1)]),_:2},1032,["onClick"])),n("div",L,r(a.desc),1)])]))),128))]))),128))])}const P=m(D,[["render",V],["__scopeId","data-v-e6ffa3c6"]]);export{P as default};
@@ -1 +0,0 @@
1
- import{_ as d}from"./confirm-dialog-0mqMQack.js";import{_ as m,d8 as p,M as _,k as h,N as v,t as b,ay as t,aD as n,ae as r,al as c,az as l,R as e,ab as y,O as i,P as C,aa as S,ak as T,aH as B,aI as x}from"./admin-drawer-panel-B4-04ET4.js";import"./confirm-footer-oTUv06_v.js";import"./main-BJxn-WA7.js";const D={name:"AdminTasksTab",components:{ConfirmDialog:d},data(){return{tasks:p}},computed:{..._(h,{formSuccess:s=>s.form.success,formErrors:s=>s.form.errors})},methods:{...v(b,["librarianTask"])}},E=s=>(B("data-v-e6ffa3c6"),s=s(),x(),s),I={id:"tasks"},$=E(()=>n("span",{id:"lastTaskLabel"},"Last Task Queued:",-1)),g={key:0,id:"success"},N={key:1,id:"error"},w={key:2,id:"noRecentTask"},A={class:"taskBox"},L={class:"taskDesc"};function V(s,j,z,R,u,F){const k=d;return e(),t("div",I,[n("div",null,[$,n("span",null,[s.formSuccess?(e(),t("span",g,r(s.formSuccess),1)):s.formErrors&&s.formErrors.length>0?(e(),t("span",N,[(e(!0),t(c,null,l(s.formErrors,o=>(e(),t("span",{key:o},r(o),1))),128))])):(e(),t("span",w,"No recent task"))])]),(e(!0),t(c,null,l(u.tasks,o=>(e(),t("div",{key:o.title,"fixed-header":"",class:"taskGroup"},[n("h3",null,r(o.title),1),(e(!0),t(c,null,l(o.tasks,a=>(e(),t("div",{key:a.value,class:y(["trow",{selected:!1}])},[n("div",A,[a.confirm?(e(),i(k,{key:0,"button-text":a.title,"title-text":a.title,"object-name":a.confirm,"confirm-text":"Confirm",onConfirm:f=>s.librarianTask(a.value,a.title)},null,8,["button-text","title-text","object-name","onConfirm"])):(e(),i(T,{key:1,block:"",onClick:f=>s.librarianTask(a.value,a.title)},{default:C(()=>[S(r(a.title),1)]),_:2},1032,["onClick"])),n("div",L,r(a.desc),1)])]))),128))]))),128))])}const P=m(D,[["render",V],["__scopeId","data-v-e6ffa3c6"]]);export{P as default};
@@ -1 +0,0 @@
1
- import{t}from"./index-DUjeNg4x.js";const o=function(e){return e=e.replaceAll(/([A-Z])/g," $1"),t(e)};export{o as c};
@@ -1 +0,0 @@
1
- import{t}from"./index-DUjeNg4x.js";const o=function(e){return e=e.replaceAll(/([A-Z])/g," $1"),t(e)};export{o as c};
@@ -1 +0,0 @@
1
- import{_ as k}from"./change-password-dialog-DAvSz_BT.js";import{A as j,a as x,b as I,_,V as N}from"./VDataTableVirtual--XFLD9jr.js";import{M as f,t as d,N as y,_ as v,Q as u,R as p,ay as b,L as a,aX as A,aB as D,aC as B,m as L,aD as n,P as l,O,aa as i}from"./admin-drawer-panel-B4-04ET4.js";import{D as z}from"./datetime-column-D3I95kw3.js";import{a as C}from"./main-BJxn-WA7.js";import{a as c}from"./VSlideGroup-IIebYuJm.js";import{V as U}from"./VCheckbox-CFqm2IhY.js";import{V}from"./VCheckboxBtn-BjWW08N8.js";import"./confirm-footer-oTUv06_v.js";import"./confirm-dialog-0mqMQack.js";import"./VSelect-CAEbdtAK.js";import"./VSelectionControl-BoyRbIct.js";import"./VTable-XNBBnB2q.js";import"./filter-D95Y3XYa.js";const R=["username","isStaff","isActive","groups"];Object.freeze(R);const g={username:"",password:"",passwordConfirm:"",isStaff:!1,isActive:!0,groups:[]};Object.freeze(g);const J={name:"AdminUserCreateUpdateInputs",components:{AdminRelationPicker:j},props:{oldRow:{type:[Object,Boolean],default:!1}},emits:["change"],data(){return{rules:{username:[e=>!!e||"Username is required",e=>!!e&&!this.usernames.has(e.trim())||"Username already used"],password:[e=>!!e||"Password is required"],passwordConfirm:[e=>e===this.row.password||"Passwords must match"]},row:C.cloneDeep(this.oldRow||g)}},computed:{...f(d,{groups:e=>e.groups,users:e=>e.users}),usernames(){return this.nameSet(this.users,"username",this.oldRow,!0)}},watch:{row:{handler(e){this.$emit("change",e)},deep:!0},oldRow:{handler(e){this.row=C.cloneDeep(e)},deep:!0}},methods:{...y(d,["nameSet"])},UPDATE_KEYS:R,EMPTY_ROW:g},K={key:0};function M(e,o,h,S,s,T){const m=u("AdminRelationPicker");return p(),b("div",null,[a(c,{modelValue:s.row.username,"onUpdate:modelValue":o[0]||(o[0]=r=>s.row.username=r),autocomplete:"username",label:"Username",rules:s.rules.username,clearable:"",autofocus:"",onKeydown:o[1]||(o[1]=A(r=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"]),h.oldRow?D("",!0):(p(),b("div",K,[a(c,{ref:"password",modelValue:s.row.password,"onUpdate:modelValue":o[2]||(o[2]=r=>s.row.password=r),autocomplete:"new-password",label:"Password",rules:s.rules.password,clearable:"",type:"password",onKeydown:o[3]||(o[3]=A(r=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules"]),a(c,{ref:"passwordConfirm",modelValue:s.row.passwordConfirm,"onUpdate:modelValue":o[4]||(o[4]=r=>s.row.passwordConfirm=r),autocomplete:"new-password",label:"Confirm Password",rules:s.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"])])),a(U,{modelValue:s.row.isStaff,"onUpdate:modelValue":o[5]||(o[5]=r=>s.row.isStaff=r),label:"Is Staff"},null,8,["modelValue"]),a(U,{modelValue:s.row.isActive,"onUpdate:modelValue":o[6]||(o[6]=r=>s.row.isActive=r),label:"Is Active"},null,8,["modelValue"]),a(m,{modelValue:s.row.groups,"onUpdate:modelValue":o[7]||(o[7]=r=>s.row.groups=r),label:"Groups",objs:e.groups,"title-key":"name","group-type":""},null,8,["modelValue","objs"])])}const Y=v(J,[["render",M]]),G={name:"AdminUsersTab",components:{AdminDeleteRowDialog:x,ChangePasswordDialog:k,AdminCreateUpdateDialog:I,DateTimeColumn:z,RelationChips:_},data(){return{AdminUserCreateUpdateInputs:B(Y),headers:[{title:"Username",key:"username",align:"start"},{title:"Staff",key:"isStaff"},{title:"Active",key:"isActive"},{title:"Groups",key:"groups"},{title:"Last Active",key:"lastActive"},{title:"Last Login",key:"lastLogin"},{title:"Joined",key:"dateJoined"},{title:"Actions",key:"actions",sortable:!1}]}},computed:{...f(d,{users:e=>e.users,groups:e=>e.groups}),...f(L,{me:e=>e.user})},mounted(){this.loadTables(["Group","User"])},methods:{...y(d,["loadTables"])}},q={class:"tabHeader"},X=n("td",{class:"adminNoData",colspan:"100%"},[i(" No Users. "),n("div",null,[i(" This is an error. There should always be at least one Staff user."),n("br"),i(" You should not be able to see this page"),n("br"),i(" You should restart Codex with the CODEX_RESET_ADMIN=1 variable set."),n("br"),i(" See the "),n("a",{href:"https://github.com/ajslater/codex#reset-the-admin-password",target:"_blank"}," README ")])],-1);function F(e,o,h,S,s,T){const m=u("AdminCreateUpdateDialog"),r=_,w=u("DateTimeColumn"),P=k,E=u("AdminDeleteRowDialog");return p(),b("div",null,[n("header",q,[a(m,{table:"User",inputs:s.AdminUserCreateUpdateInputs,"max-width":"20em"},null,8,["inputs"])]),a(N,{"fixed-header":"","item-value":"pk","item-title":"username",headers:s.headers,items:e.users,class:"adminTable"},{"no-data":l(()=>[X]),"item.isStaff":l(({item:t})=>[a(V,{"model-value":t.isStaff,disabled:""},null,8,["model-value"])]),"item.isActive":l(({item:t})=>[a(V,{"model-value":t.isActive,disabled:""},null,8,["model-value"])]),"item.groups":l(({item:t})=>[a(r,{pks:t.groups,objs:e.groups,"title-key":"name","group-type":""},null,8,["pks","objs"])]),"item.lastActive":l(({item:t})=>[a(w,{dttm:t.lastActive},null,8,["dttm"])]),"item.lastLogin":l(({item:t})=>[a(w,{dttm:t.lastLogin},null,8,["dttm"])]),"item.dateJoined":l(({item:t})=>[a(w,{dttm:t.dateJoined},null,8,["dttm"])]),"item.actions":l(({item:t})=>[a(m,{table:"User",inputs:s.AdminUserCreateUpdateInputs,"old-row":t,"max-width":"20em",size:"small",density:"compact"},null,8,["inputs","old-row"]),a(P,{user:t,"is-admin-mode":!0,size:"small",density:"compact"},null,8,["user"]),e.me.id!==t.pk?(p(),O(E,{key:0,table:"User",pk:t.pk,name:t.username,size:"small",density:"compact"},null,8,["pk","name"])):D("",!0)]),_:2},1032,["headers","items"])])}const me=v(G,[["render",F]]);export{me as default};
@@ -1 +0,0 @@
1
- import{_ as k}from"./change-password-dialog-DAvSz_BT.js";import{A as j,a as x,b as I,_,V as N}from"./VDataTableVirtual--XFLD9jr.js";import{M as f,t as d,N as y,_ as v,Q as u,R as p,ay as b,L as a,aX as A,aB as D,aC as B,m as L,aD as n,P as l,O,aa as i}from"./admin-drawer-panel-B4-04ET4.js";import{D as z}from"./datetime-column-D3I95kw3.js";import{a as C}from"./main-BJxn-WA7.js";import{a as c}from"./VSlideGroup-IIebYuJm.js";import{V as U}from"./VCheckbox-CFqm2IhY.js";import{V}from"./VCheckboxBtn-BjWW08N8.js";import"./confirm-footer-oTUv06_v.js";import"./confirm-dialog-0mqMQack.js";import"./VSelect-CAEbdtAK.js";import"./VSelectionControl-BoyRbIct.js";import"./VTable-XNBBnB2q.js";import"./filter-D95Y3XYa.js";const R=["username","isStaff","isActive","groups"];Object.freeze(R);const g={username:"",password:"",passwordConfirm:"",isStaff:!1,isActive:!0,groups:[]};Object.freeze(g);const J={name:"AdminUserCreateUpdateInputs",components:{AdminRelationPicker:j},props:{oldRow:{type:[Object,Boolean],default:!1}},emits:["change"],data(){return{rules:{username:[e=>!!e||"Username is required",e=>!!e&&!this.usernames.has(e.trim())||"Username already used"],password:[e=>!!e||"Password is required"],passwordConfirm:[e=>e===this.row.password||"Passwords must match"]},row:C.cloneDeep(this.oldRow||g)}},computed:{...f(d,{groups:e=>e.groups,users:e=>e.users}),usernames(){return this.nameSet(this.users,"username",this.oldRow,!0)}},watch:{row:{handler(e){this.$emit("change",e)},deep:!0},oldRow:{handler(e){this.row=C.cloneDeep(e)},deep:!0}},methods:{...y(d,["nameSet"])},UPDATE_KEYS:R,EMPTY_ROW:g},K={key:0};function M(e,o,h,S,s,T){const m=u("AdminRelationPicker");return p(),b("div",null,[a(c,{modelValue:s.row.username,"onUpdate:modelValue":o[0]||(o[0]=r=>s.row.username=r),autocomplete:"username",label:"Username",rules:s.rules.username,clearable:"",autofocus:"",onKeydown:o[1]||(o[1]=A(r=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"]),h.oldRow?D("",!0):(p(),b("div",K,[a(c,{ref:"password",modelValue:s.row.password,"onUpdate:modelValue":o[2]||(o[2]=r=>s.row.password=r),autocomplete:"new-password",label:"Password",rules:s.rules.password,clearable:"",type:"password",onKeydown:o[3]||(o[3]=A(r=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules"]),a(c,{ref:"passwordConfirm",modelValue:s.row.passwordConfirm,"onUpdate:modelValue":o[4]||(o[4]=r=>s.row.passwordConfirm=r),autocomplete:"new-password",label:"Confirm Password",rules:s.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"])])),a(U,{modelValue:s.row.isStaff,"onUpdate:modelValue":o[5]||(o[5]=r=>s.row.isStaff=r),label:"Is Staff"},null,8,["modelValue"]),a(U,{modelValue:s.row.isActive,"onUpdate:modelValue":o[6]||(o[6]=r=>s.row.isActive=r),label:"Is Active"},null,8,["modelValue"]),a(m,{modelValue:s.row.groups,"onUpdate:modelValue":o[7]||(o[7]=r=>s.row.groups=r),label:"Groups",objs:e.groups,"title-key":"name","group-type":""},null,8,["modelValue","objs"])])}const Y=v(J,[["render",M]]),G={name:"AdminUsersTab",components:{AdminDeleteRowDialog:x,ChangePasswordDialog:k,AdminCreateUpdateDialog:I,DateTimeColumn:z,RelationChips:_},data(){return{AdminUserCreateUpdateInputs:B(Y),headers:[{title:"Username",key:"username",align:"start"},{title:"Staff",key:"isStaff"},{title:"Active",key:"isActive"},{title:"Groups",key:"groups"},{title:"Last Active",key:"lastActive"},{title:"Last Login",key:"lastLogin"},{title:"Joined",key:"dateJoined"},{title:"Actions",key:"actions",sortable:!1}]}},computed:{...f(d,{users:e=>e.users,groups:e=>e.groups}),...f(L,{me:e=>e.user})},mounted(){this.loadTables(["Group","User"])},methods:{...y(d,["loadTables"])}},q={class:"tabHeader"},X=n("td",{class:"adminNoData",colspan:"100%"},[i(" No Users. "),n("div",null,[i(" This is an error. There should always be at least one Staff user."),n("br"),i(" You should not be able to see this page"),n("br"),i(" You should restart Codex with the CODEX_RESET_ADMIN=1 variable set."),n("br"),i(" See the "),n("a",{href:"https://github.com/ajslater/codex#reset-the-admin-password",target:"_blank"}," README ")])],-1);function F(e,o,h,S,s,T){const m=u("AdminCreateUpdateDialog"),r=_,w=u("DateTimeColumn"),P=k,E=u("AdminDeleteRowDialog");return p(),b("div",null,[n("header",q,[a(m,{table:"User",inputs:s.AdminUserCreateUpdateInputs,"max-width":"20em"},null,8,["inputs"])]),a(N,{"fixed-header":"","item-value":"pk","item-title":"username",headers:s.headers,items:e.users,class:"adminTable"},{"no-data":l(()=>[X]),"item.isStaff":l(({item:t})=>[a(V,{"model-value":t.isStaff,disabled:""},null,8,["model-value"])]),"item.isActive":l(({item:t})=>[a(V,{"model-value":t.isActive,disabled:""},null,8,["model-value"])]),"item.groups":l(({item:t})=>[a(r,{pks:t.groups,objs:e.groups,"title-key":"name","group-type":""},null,8,["pks","objs"])]),"item.lastActive":l(({item:t})=>[a(w,{dttm:t.lastActive},null,8,["dttm"])]),"item.lastLogin":l(({item:t})=>[a(w,{dttm:t.lastLogin},null,8,["dttm"])]),"item.dateJoined":l(({item:t})=>[a(w,{dttm:t.dateJoined},null,8,["dttm"])]),"item.actions":l(({item:t})=>[a(m,{table:"User",inputs:s.AdminUserCreateUpdateInputs,"old-row":t,"max-width":"20em",size:"small",density:"compact"},null,8,["inputs","old-row"]),a(P,{user:t,"is-admin-mode":!0,size:"small",density:"compact"},null,8,["user"]),e.me.id!==t.pk?(p(),O(E,{key:0,table:"User",pk:t.pk,name:t.username,size:"small",density:"compact"},null,8,["pk","name"])):D("",!0)]),_:2},1032,["headers","items"])])}const me=v(G,[["render",F]]);export{me as default};
@@ -1,83 +0,0 @@
1
- <svg
2
- xmlns="http://www.w3.org/2000/svg"
3
- xmlns:xlink="http://www.w3.org/1999/xlink"
4
- xml:space="preserve"
5
- width="512"
6
- height="512"
7
- class="snail_eye"
8
- style="background-color:transparent"
9
- >
10
- <defs>
11
- <linearGradient id="b">
12
- <stop offset="0" style="stop-color:#d97700" />
13
- <stop offset=".8" style="stop-color:#a85c00" />
14
- </linearGradient>
15
- <linearGradient id="a">
16
- <stop offset="0" style="stop-color:#d97700" />
17
- <stop offset=".2" style="stop-color:#a85c00" />
18
- </linearGradient>
19
- <linearGradient
20
- xlink:href="#a"
21
- id="c"
22
- x1="0"
23
- x2="512"
24
- y1="0"
25
- y2="512"
26
- gradientUnits="userSpaceOnUse"
27
- />
28
- <linearGradient
29
- xlink:href="#b"
30
- id="d"
31
- x1="221.125"
32
- x2="331.379"
33
- y1="191.955"
34
- y2="382.636"
35
- gradientTransform="translate(3 3)"
36
- gradientUnits="userSpaceOnUse"
37
- />
38
- <linearGradient
39
- xlink:href="#a"
40
- id="f"
41
- x1="190"
42
- x2="512"
43
- y1="190"
44
- y2="512"
45
- gradientUnits="userSpaceOnUse"
46
- />
47
- <linearGradient
48
- xlink:href="#b"
49
- id="e"
50
- x1="173"
51
- x2="401"
52
- y1="155"
53
- y2="468"
54
- gradientTransform="translate(.5 .5)"
55
- gradientUnits="userSpaceOnUse"
56
- />
57
- </defs>
58
- <g
59
- style="display:inline;mix-blend-mode:normal;fill:url(#c);fill-opacity:0"
60
- transform="matrix(.8 0 0 .8 51.5 51.5)"
61
- >
62
- <circle
63
- cx="256"
64
- cy="256"
65
- r="256"
66
- style="background-color:#1e1e1e;display:inline;mix-blend-mode:normal;fill:#000;fill-opacity:1;stroke-width:2;image-rendering:auto;opacity:1"
67
- />
68
- <circle
69
- cx="256"
70
- cy="256"
71
- r="69"
72
- style="display:inline;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#d);stroke-width:58.5486;stroke-dasharray:none;stroke-opacity:1"
73
- />
74
- <path
75
- d="M256 139c-93.648 0-173.75 47.591-206.182 114.803l-1.3 2.697 1.3 2.668C82.249 326.38 162.352 374 256 374c93.648 0 173.786-47.62 206.217-114.832l1.3-2.668-1.3-2.697C430.278 186.582 350.14 138.99 256.492 138.99Zm0 18.688c84.825 0 154.891 38.584 185.566 98.783-30.668 60.211-100.73 98.841-185.566 98.841s-154.862-38.63-185.53-98.84c30.675-60.2 100.705-98.784 185.53-98.784z"
76
- style="color:#000;fill:url(#e);fill-opacity:1;-inkscape-stroke:none"
77
- />
78
- <path
79
- d="M244.444 38.097c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.265 24.032-5.03 28.509 7.493 2.685 7.514 1.187 15.656-6.522 21.1-6.436 4.547-15.465 4.399-21.802-.62zm88.784 17.66c-8.38-7.042-8.737-20.779-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.399-21.802-.62zm75.267 50.293c-8.38-7.042-8.737-20.78-.186-27.973 8.636-7.265 24.033-5.03 28.51 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm50.29 75.268c-8.38-7.042-8.736-20.78-.185-27.973 8.636-7.264 24.033-5.03 28.51 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm17.659 88.785c-8.38-7.042-8.737-20.78-.186-27.973 8.636-7.264 24.033-5.03 28.51 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm-17.69 88.77c-8.38-7.043-8.737-20.78-.185-27.974 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.188 15.655-6.522 21.1-6.436 4.546-15.464 4.398-21.802-.62zm-50.287 75.255c-8.38-7.042-8.736-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.188 15.655-6.522 21.1-6.436 4.546-15.464 4.398-21.802-.62zm-75.245 50.31c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.188 15.655-6.522 21.1-6.436 4.546-15.464 4.398-21.802-.62zm-88.782 17.628c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm-88.771-17.659c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm-75.276-50.264c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zM30.13 358.866c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm-17.657-88.772c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm17.63-88.78c-8.38-7.043-8.736-20.78-.184-27.974 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm50.313-75.245c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.265 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zm75.257-50.285c-8.38-7.042-8.737-20.78-.185-27.973 8.635-7.264 24.032-5.03 28.509 7.494 2.685 7.513 1.187 15.655-6.522 21.1-6.436 4.546-15.465 4.398-21.802-.62zM256 0C152.527 0 59.084 62.436 19.488 158.031c-39.595 95.596-17.665 205.815 55.5 278.98 73.166 73.166 183.385 95.096 278.98 55.5C449.565 452.917 512 359.474 512 256 512 114.9 397.1 0 256 0Zm0 48c115.16 0 208 92.84 208 208 0 84.197-50.615 159.947-128.4 192.166-77.786 32.219-167.134 14.44-226.67-45.096-59.537-59.536-77.315-148.884-45.096-226.67C96.053 98.615 171.804 48 256 48Z"
80
- style="color:#000;display:inline;fill:url(#f);fill-opacity:1;paint-order:markers fill stroke"
81
- />
82
- </g>
83
- </svg>