codex 1.8.6__py3-none-any.whl → 1.8.9__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 (531) hide show
  1. codex/choices/admin.py +1 -0
  2. codex/librarian/scribe/importer/const.py +7 -3
  3. codex/librarian/scribe/importer/create/comics.py +0 -3
  4. codex/librarian/scribe/importer/delete/comics.py +5 -2
  5. codex/librarian/scribe/importer/delete/folders.py +2 -1
  6. codex/librarian/scribe/importer/link/many_to_many.py +1 -0
  7. codex/librarian/scribe/importer/link/prepare.py +6 -1
  8. codex/librarian/scribe/importer/query/update_comics.py +22 -12
  9. codex/librarian/scribe/importer/read/aggregate_path.py +53 -13
  10. codex/librarian/scribe/importer/read/extract.py +16 -13
  11. codex/librarian/scribe/importer/search/prepare.py +1 -8
  12. codex/librarian/scribe/importer/search/sync_m2m.py +2 -1
  13. codex/librarian/scribe/importer/search/update.py +28 -86
  14. codex/librarian/scribe/{importer/search → search}/const.py +1 -13
  15. codex/librarian/scribe/search/prepare.py +162 -0
  16. codex/librarian/scribe/search/remove.py +22 -2
  17. codex/librarian/scribe/search/sync.py +47 -134
  18. codex/migrations/0035_fts_optmize.py +136 -0
  19. codex/models/comic.py +0 -16
  20. codex/models/functions.py +3 -1
  21. codex/serializers/admin/tasks.py +1 -1
  22. codex/settings/__init__.py +17 -1
  23. codex/static_root/assets/VCheckbox-BI6iNIZR.0d8e2dbdeb09.js +1 -0
  24. codex/static_root/assets/VCheckbox-BI6iNIZR.0d8e2dbdeb09.js.br +0 -0
  25. codex/static_root/assets/VCheckbox-BI6iNIZR.0d8e2dbdeb09.js.gz +0 -0
  26. codex/static_root/assets/VCheckbox-BI6iNIZR.js +1 -0
  27. codex/static_root/assets/VCheckbox-BI6iNIZR.js.br +0 -0
  28. codex/static_root/assets/VCheckbox-BI6iNIZR.js.gz +0 -0
  29. codex/static_root/assets/{VCheckboxBtn-BzgViWAb.1400a41af9da.js → VCheckboxBtn-D_jRtvPm.7d253b804bed.js} +1 -1
  30. codex/static_root/assets/VCheckboxBtn-D_jRtvPm.7d253b804bed.js.br +0 -0
  31. codex/static_root/assets/VCheckboxBtn-D_jRtvPm.7d253b804bed.js.gz +0 -0
  32. codex/static_root/assets/{VCheckboxBtn-BzgViWAb.js → VCheckboxBtn-D_jRtvPm.js} +1 -1
  33. codex/static_root/assets/VCheckboxBtn-D_jRtvPm.js.br +0 -0
  34. codex/static_root/assets/VCheckboxBtn-D_jRtvPm.js.gz +0 -0
  35. codex/static_root/assets/VCombobox-lKOmP-Yq.85384eec8906.js +1 -0
  36. codex/static_root/assets/VCombobox-lKOmP-Yq.85384eec8906.js.br +0 -0
  37. codex/static_root/assets/VCombobox-lKOmP-Yq.85384eec8906.js.gz +0 -0
  38. codex/static_root/assets/VCombobox-lKOmP-Yq.js +1 -0
  39. codex/static_root/assets/VCombobox-lKOmP-Yq.js.br +0 -0
  40. codex/static_root/assets/VCombobox-lKOmP-Yq.js.gz +0 -0
  41. codex/static_root/assets/VDialog-DwpHVF2o.f988d86f776c.js +1 -0
  42. codex/static_root/assets/VDialog-DwpHVF2o.f988d86f776c.js.br +0 -0
  43. codex/static_root/assets/VDialog-DwpHVF2o.f988d86f776c.js.gz +0 -0
  44. codex/static_root/assets/VDialog-DwpHVF2o.js +1 -0
  45. codex/static_root/assets/VDialog-DwpHVF2o.js.br +0 -0
  46. codex/static_root/assets/VDialog-DwpHVF2o.js.gz +0 -0
  47. codex/static_root/assets/{VDivider-CSRFyKQO.5f8e1ffafbaf.js → VDivider-CGh9hHPI.8fac42f0d85c.js} +1 -1
  48. codex/static_root/assets/VDivider-CGh9hHPI.8fac42f0d85c.js.br +0 -0
  49. codex/static_root/assets/VDivider-CGh9hHPI.8fac42f0d85c.js.gz +0 -0
  50. codex/static_root/assets/{VDivider-CSRFyKQO.js → VDivider-CGh9hHPI.js} +1 -1
  51. codex/static_root/assets/VDivider-CGh9hHPI.js.br +0 -0
  52. codex/static_root/assets/VDivider-CGh9hHPI.js.gz +0 -0
  53. codex/static_root/assets/{VExpansionPanels-82Ocr2Kh.1ccaea91f07c.js → VExpansionPanels-DFd72CFw.b232fadc31db.js} +1 -1
  54. codex/static_root/assets/VExpansionPanels-DFd72CFw.b232fadc31db.js.br +0 -0
  55. codex/static_root/assets/VExpansionPanels-DFd72CFw.b232fadc31db.js.gz +0 -0
  56. codex/static_root/assets/{VExpansionPanels-82Ocr2Kh.js → VExpansionPanels-DFd72CFw.js} +1 -1
  57. codex/static_root/assets/VExpansionPanels-DFd72CFw.js.br +0 -0
  58. codex/static_root/assets/VExpansionPanels-DFd72CFw.js.gz +0 -0
  59. codex/static_root/assets/{VForm-BaeKMRS9.be058cf1518f.js → VForm-C7W9kTbJ.02412068f578.js} +1 -1
  60. codex/static_root/assets/VForm-C7W9kTbJ.02412068f578.js.br +0 -0
  61. codex/static_root/assets/VForm-C7W9kTbJ.02412068f578.js.gz +0 -0
  62. codex/static_root/assets/{VForm-BaeKMRS9.js → VForm-C7W9kTbJ.js} +1 -1
  63. codex/static_root/assets/VForm-C7W9kTbJ.js.br +0 -0
  64. codex/static_root/assets/VForm-C7W9kTbJ.js.gz +0 -0
  65. codex/static_root/assets/{VRadioGroup-DeB10IRm.4ea874709ffb.js → VRadioGroup-E0wBXF2E.fd8052060d44.js} +1 -1
  66. codex/static_root/assets/VRadioGroup-E0wBXF2E.fd8052060d44.js.br +0 -0
  67. codex/static_root/assets/VRadioGroup-E0wBXF2E.fd8052060d44.js.gz +0 -0
  68. codex/static_root/assets/{VRadioGroup-DeB10IRm.js → VRadioGroup-E0wBXF2E.js} +1 -1
  69. codex/static_root/assets/VRadioGroup-E0wBXF2E.js.br +0 -0
  70. codex/static_root/assets/VRadioGroup-E0wBXF2E.js.gz +0 -0
  71. codex/static_root/assets/VSelect-DLKX5Mr6.d84e1c59fa18.js +1 -0
  72. codex/static_root/assets/VSelect-DLKX5Mr6.d84e1c59fa18.js.br +0 -0
  73. codex/static_root/assets/VSelect-DLKX5Mr6.d84e1c59fa18.js.gz +0 -0
  74. codex/static_root/assets/VSelect-DLKX5Mr6.js +1 -0
  75. codex/static_root/assets/VSelect-DLKX5Mr6.js.br +0 -0
  76. codex/static_root/assets/VSelect-DLKX5Mr6.js.gz +0 -0
  77. codex/static_root/assets/VSelectionControl-B8hJUO0p.1dda62fe0677.js +1 -0
  78. codex/static_root/assets/VSelectionControl-B8hJUO0p.1dda62fe0677.js.br +0 -0
  79. codex/static_root/assets/VSelectionControl-B8hJUO0p.1dda62fe0677.js.gz +0 -0
  80. codex/static_root/assets/VSelectionControl-B8hJUO0p.js +1 -0
  81. codex/static_root/assets/VSelectionControl-B8hJUO0p.js.br +0 -0
  82. codex/static_root/assets/VSelectionControl-B8hJUO0p.js.gz +0 -0
  83. codex/static_root/assets/VTable-BsI6FsWH.css +1 -0
  84. codex/static_root/assets/VTable-BsI6FsWH.css.br +0 -0
  85. codex/static_root/assets/VTable-BsI6FsWH.css.gz +0 -0
  86. codex/static_root/assets/VTable-BsI6FsWH.d4c54d44a5ab.css +1 -0
  87. codex/static_root/assets/VTable-BsI6FsWH.d4c54d44a5ab.css.br +0 -0
  88. codex/static_root/assets/VTable-BsI6FsWH.d4c54d44a5ab.css.gz +0 -0
  89. codex/static_root/assets/VTable-D0uqeonL.a9897896b818.js +1 -0
  90. codex/static_root/assets/VTable-D0uqeonL.a9897896b818.js.br +0 -0
  91. codex/static_root/assets/VTable-D0uqeonL.a9897896b818.js.gz +0 -0
  92. codex/static_root/assets/VTable-D0uqeonL.js +1 -0
  93. codex/static_root/assets/VTable-D0uqeonL.js.br +0 -0
  94. codex/static_root/assets/VTable-D0uqeonL.js.gz +0 -0
  95. codex/static_root/assets/{VWindowItem-Dwb7oeu0.6a4505330db3.js → VWindowItem-DnxUM-gG.242f232488e3.js} +1 -1
  96. codex/static_root/assets/VWindowItem-DnxUM-gG.242f232488e3.js.br +0 -0
  97. codex/static_root/assets/VWindowItem-DnxUM-gG.242f232488e3.js.gz +0 -0
  98. codex/static_root/assets/{VWindowItem-Dwb7oeu0.js → VWindowItem-DnxUM-gG.js} +1 -1
  99. codex/static_root/assets/VWindowItem-DnxUM-gG.js.br +0 -0
  100. codex/static_root/assets/VWindowItem-DnxUM-gG.js.gz +0 -0
  101. codex/static_root/assets/VWindowItem-QQWUVqMX.c22e707ac99c.css +1 -0
  102. codex/static_root/assets/VWindowItem-QQWUVqMX.c22e707ac99c.css.br +5 -0
  103. codex/static_root/assets/VWindowItem-QQWUVqMX.c22e707ac99c.css.gz +0 -0
  104. codex/static_root/assets/VWindowItem-QQWUVqMX.css +1 -0
  105. codex/static_root/assets/VWindowItem-QQWUVqMX.css.br +5 -0
  106. codex/static_root/assets/VWindowItem-QQWUVqMX.css.gz +0 -0
  107. codex/static_root/assets/{admin-mQ-F7brp.cc388b064f3a.js → admin-B9U01BEM.7c8747c54803.js} +1 -1
  108. codex/static_root/assets/admin-B9U01BEM.7c8747c54803.js.br +0 -0
  109. codex/static_root/assets/admin-B9U01BEM.7c8747c54803.js.gz +0 -0
  110. codex/static_root/assets/{admin-mQ-F7brp.js → admin-B9U01BEM.js} +1 -1
  111. codex/static_root/assets/admin-B9U01BEM.js.br +0 -0
  112. codex/static_root/assets/admin-B9U01BEM.js.gz +0 -0
  113. codex/static_root/assets/{admin-nYIgbfe8.d2acbae0b198.js → admin-DmYMMUnm.58b7b9f4dadf.js} +1 -1
  114. codex/static_root/assets/admin-DmYMMUnm.58b7b9f4dadf.js.br +0 -0
  115. codex/static_root/assets/admin-DmYMMUnm.58b7b9f4dadf.js.gz +0 -0
  116. codex/static_root/assets/{admin-nYIgbfe8.js → admin-DmYMMUnm.js} +1 -1
  117. codex/static_root/assets/admin-DmYMMUnm.js.br +0 -0
  118. codex/static_root/assets/admin-DmYMMUnm.js.gz +0 -0
  119. codex/static_root/assets/admin-menu-CuNW4Urn.25020f907bb8.js +1 -0
  120. codex/static_root/assets/admin-menu-CuNW4Urn.25020f907bb8.js.br +0 -0
  121. codex/static_root/assets/admin-menu-CuNW4Urn.25020f907bb8.js.gz +0 -0
  122. codex/static_root/assets/admin-menu-CuNW4Urn.js +1 -0
  123. codex/static_root/assets/admin-menu-CuNW4Urn.js.br +0 -0
  124. codex/static_root/assets/admin-menu-CuNW4Urn.js.gz +0 -0
  125. codex/static_root/assets/{admin-settings-button-progress-BBRW69l3.697026d00887.js → admin-settings-button-progress-Bzr-gkG2.b17f5bcba7bb.js} +1 -1
  126. codex/static_root/assets/admin-settings-button-progress-Bzr-gkG2.b17f5bcba7bb.js.br +3 -0
  127. codex/static_root/assets/admin-settings-button-progress-Bzr-gkG2.b17f5bcba7bb.js.gz +0 -0
  128. codex/static_root/assets/{admin-settings-button-progress-BBRW69l3.js → admin-settings-button-progress-Bzr-gkG2.js} +1 -1
  129. codex/static_root/assets/admin-settings-button-progress-Bzr-gkG2.js.br +3 -0
  130. codex/static_root/assets/admin-settings-button-progress-Bzr-gkG2.js.gz +0 -0
  131. codex/static_root/assets/browser-CIw7xQ-1.8d16d2b270d5.js +1 -0
  132. codex/static_root/assets/browser-CIw7xQ-1.8d16d2b270d5.js.br +0 -0
  133. codex/static_root/assets/browser-CIw7xQ-1.8d16d2b270d5.js.gz +0 -0
  134. codex/static_root/assets/browser-CIw7xQ-1.js +1 -0
  135. codex/static_root/assets/browser-CIw7xQ-1.js.br +0 -0
  136. codex/static_root/assets/browser-CIw7xQ-1.js.gz +0 -0
  137. codex/static_root/assets/{browser-Cdi7U5ku.bab9fccf0326.css → browser-TRzEFz_k.css} +1 -1
  138. codex/static_root/assets/browser-TRzEFz_k.css.br +0 -0
  139. codex/static_root/assets/browser-TRzEFz_k.css.gz +0 -0
  140. codex/static_root/assets/{browser-Cdi7U5ku.css → browser-TRzEFz_k.e8ae750c4a41.css} +1 -1
  141. codex/static_root/assets/browser-TRzEFz_k.e8ae750c4a41.css.br +0 -0
  142. codex/static_root/assets/browser-TRzEFz_k.e8ae750c4a41.css.gz +0 -0
  143. codex/static_root/assets/change-password-dialog-CXaB7k3y.01788b2cb59e.js +1 -0
  144. codex/static_root/assets/change-password-dialog-CXaB7k3y.01788b2cb59e.js.br +0 -0
  145. codex/static_root/assets/change-password-dialog-CXaB7k3y.01788b2cb59e.js.gz +0 -0
  146. codex/static_root/assets/change-password-dialog-CXaB7k3y.js +1 -0
  147. codex/static_root/assets/change-password-dialog-CXaB7k3y.js.br +0 -0
  148. codex/static_root/assets/change-password-dialog-CXaB7k3y.js.gz +0 -0
  149. codex/static_root/assets/{confirm-dialog-uoXMmYq3.0ec4c4eba588.js → confirm-dialog-gXeRF5bD.4ae6e7a9790a.js} +1 -1
  150. codex/static_root/assets/confirm-dialog-gXeRF5bD.4ae6e7a9790a.js.br +0 -0
  151. codex/static_root/assets/confirm-dialog-gXeRF5bD.4ae6e7a9790a.js.gz +0 -0
  152. codex/static_root/assets/{confirm-dialog-uoXMmYq3.js → confirm-dialog-gXeRF5bD.js} +1 -1
  153. codex/static_root/assets/confirm-dialog-gXeRF5bD.js.br +0 -0
  154. codex/static_root/assets/confirm-dialog-gXeRF5bD.js.gz +0 -0
  155. codex/static_root/assets/{datetime-column-GkTrMP1-.bf4adfaa4e02.js → datetime-column-C5ZBHxV-.35957e684ec2.js} +1 -1
  156. codex/static_root/assets/datetime-column-C5ZBHxV-.35957e684ec2.js.br +0 -0
  157. codex/static_root/assets/datetime-column-C5ZBHxV-.35957e684ec2.js.gz +0 -0
  158. codex/static_root/assets/{datetime-column-GkTrMP1-.js → datetime-column-C5ZBHxV-.js} +1 -1
  159. codex/static_root/assets/datetime-column-C5ZBHxV-.js.br +0 -0
  160. codex/static_root/assets/datetime-column-C5ZBHxV-.js.gz +0 -0
  161. codex/static_root/assets/{filter-CRnAKgPp.cc654b8f8155.js → filter-CQ83UjMF.7cd979df64da.js} +1 -1
  162. codex/static_root/assets/filter-CQ83UjMF.7cd979df64da.js.br +0 -0
  163. codex/static_root/assets/filter-CQ83UjMF.7cd979df64da.js.gz +0 -0
  164. codex/static_root/assets/{filter-CRnAKgPp.js → filter-CQ83UjMF.js} +1 -1
  165. codex/static_root/assets/filter-CQ83UjMF.js.br +0 -0
  166. codex/static_root/assets/filter-CQ83UjMF.js.gz +0 -0
  167. codex/static_root/assets/{flag-tab-BA4kiUXn.408cc0a71ec1.js → flag-tab-CN3Y0PZS.f5f7122a015e.js} +1 -1
  168. codex/static_root/assets/flag-tab-CN3Y0PZS.f5f7122a015e.js.br +0 -0
  169. codex/static_root/assets/flag-tab-CN3Y0PZS.f5f7122a015e.js.gz +0 -0
  170. codex/static_root/assets/{flag-tab-BA4kiUXn.js → flag-tab-CN3Y0PZS.js} +1 -1
  171. codex/static_root/assets/flag-tab-CN3Y0PZS.js.br +0 -0
  172. codex/static_root/assets/flag-tab-CN3Y0PZS.js.gz +0 -0
  173. codex/static_root/assets/{forwardRefs-B_sUWZn6.css → forwardRefs-C3Z4qL85.48fb131ece85.css} +1 -1
  174. codex/static_root/assets/forwardRefs-C3Z4qL85.48fb131ece85.css.br +0 -0
  175. codex/static_root/assets/forwardRefs-C3Z4qL85.48fb131ece85.css.gz +0 -0
  176. codex/static_root/assets/{forwardRefs-B_sUWZn6.5114f206ca9c.css → forwardRefs-C3Z4qL85.css} +1 -1
  177. codex/static_root/assets/forwardRefs-C3Z4qL85.css.br +0 -0
  178. codex/static_root/assets/forwardRefs-C3Z4qL85.css.gz +0 -0
  179. codex/static_root/assets/forwardRefs-DBxFdh0r.03d9552a8e4c.js +1 -0
  180. codex/static_root/assets/forwardRefs-DBxFdh0r.03d9552a8e4c.js.br +0 -0
  181. codex/static_root/assets/forwardRefs-DBxFdh0r.03d9552a8e4c.js.gz +0 -0
  182. codex/static_root/assets/forwardRefs-DBxFdh0r.js +1 -0
  183. codex/static_root/assets/forwardRefs-DBxFdh0r.js.br +0 -0
  184. codex/static_root/assets/forwardRefs-DBxFdh0r.js.gz +0 -0
  185. codex/static_root/assets/{group-tab-BD9iJZwB.b3e2b1b68d3a.js → group-tab-DMPL6FiK.82f53e5c353a.js} +1 -1
  186. codex/static_root/assets/group-tab-DMPL6FiK.82f53e5c353a.js.br +0 -0
  187. codex/static_root/assets/group-tab-DMPL6FiK.82f53e5c353a.js.gz +0 -0
  188. codex/static_root/assets/{group-tab-BD9iJZwB.js → group-tab-DMPL6FiK.js} +1 -1
  189. codex/static_root/assets/group-tab-DMPL6FiK.js.br +0 -0
  190. codex/static_root/assets/group-tab-DMPL6FiK.js.gz +0 -0
  191. codex/static_root/assets/http-error-DgJ8-SFZ.da2fe4d026ce.js +1 -0
  192. codex/static_root/assets/http-error-DgJ8-SFZ.da2fe4d026ce.js.br +0 -0
  193. codex/static_root/assets/http-error-DgJ8-SFZ.da2fe4d026ce.js.gz +0 -0
  194. codex/static_root/assets/http-error-DgJ8-SFZ.js +1 -0
  195. codex/static_root/assets/http-error-DgJ8-SFZ.js.br +0 -0
  196. codex/static_root/assets/http-error-DgJ8-SFZ.js.gz +0 -0
  197. codex/static_root/assets/{index-DCZ6v5x6.848976e7722c.js → index-CQ0ue0KC.b38e465abad4.js} +1 -1
  198. codex/static_root/assets/index-CQ0ue0KC.b38e465abad4.js.br +0 -0
  199. codex/static_root/assets/index-CQ0ue0KC.b38e465abad4.js.gz +0 -0
  200. codex/static_root/assets/{index-DCZ6v5x6.js → index-CQ0ue0KC.js} +1 -1
  201. codex/static_root/assets/index-CQ0ue0KC.js.br +0 -0
  202. codex/static_root/assets/index-CQ0ue0KC.js.gz +0 -0
  203. codex/static_root/assets/library-tab-CfuZgnol.880ba8bd0149.js +1 -0
  204. codex/static_root/assets/library-tab-CfuZgnol.880ba8bd0149.js.br +0 -0
  205. codex/static_root/assets/library-tab-CfuZgnol.880ba8bd0149.js.gz +0 -0
  206. codex/static_root/assets/library-tab-CfuZgnol.js +1 -0
  207. codex/static_root/assets/library-tab-CfuZgnol.js.br +0 -0
  208. codex/static_root/assets/library-tab-CfuZgnol.js.gz +0 -0
  209. codex/static_root/assets/{main-Bmi4BPiO.d75c8b55081b.js → main-G8n9PNCf.cad6fa53a574.js} +16 -16
  210. codex/static_root/assets/main-G8n9PNCf.cad6fa53a574.js.br +0 -0
  211. codex/static_root/assets/main-G8n9PNCf.cad6fa53a574.js.gz +0 -0
  212. codex/static_root/assets/{main-Bmi4BPiO.js → main-G8n9PNCf.js} +16 -16
  213. codex/static_root/assets/main-G8n9PNCf.js.br +0 -0
  214. codex/static_root/assets/main-G8n9PNCf.js.gz +0 -0
  215. codex/static_root/assets/pager-full-pdf-BKZayLN3.4b724ad0595f.js +1 -0
  216. codex/static_root/assets/pager-full-pdf-BKZayLN3.4b724ad0595f.js.br +0 -0
  217. codex/static_root/assets/pager-full-pdf-BKZayLN3.4b724ad0595f.js.gz +0 -0
  218. codex/static_root/assets/pager-full-pdf-BKZayLN3.js +1 -0
  219. codex/static_root/assets/pager-full-pdf-BKZayLN3.js.br +0 -0
  220. codex/static_root/assets/pager-full-pdf-BKZayLN3.js.gz +0 -0
  221. codex/static_root/assets/pagination-toolbar-0vkF7yjo.d32720f76776.js +1 -0
  222. codex/static_root/assets/pagination-toolbar-0vkF7yjo.d32720f76776.js.br +0 -0
  223. codex/static_root/assets/pagination-toolbar-0vkF7yjo.d32720f76776.js.gz +0 -0
  224. codex/static_root/assets/pagination-toolbar-0vkF7yjo.js +1 -0
  225. codex/static_root/assets/pagination-toolbar-0vkF7yjo.js.br +0 -0
  226. codex/static_root/assets/pagination-toolbar-0vkF7yjo.js.gz +0 -0
  227. codex/static_root/assets/{pagination-toolbar-741OafNw.4f9155469274.css → pagination-toolbar-rUdD4-Qi.3a224c7806a5.css} +1 -1
  228. codex/static_root/assets/pagination-toolbar-rUdD4-Qi.3a224c7806a5.css.br +0 -0
  229. codex/static_root/assets/pagination-toolbar-rUdD4-Qi.3a224c7806a5.css.gz +0 -0
  230. codex/static_root/assets/{pagination-toolbar-741OafNw.css → pagination-toolbar-rUdD4-Qi.css} +1 -1
  231. codex/static_root/assets/pagination-toolbar-rUdD4-Qi.css.br +0 -0
  232. codex/static_root/assets/pagination-toolbar-rUdD4-Qi.css.gz +0 -0
  233. codex/static_root/assets/{pdf-doc-DQBmNe4l.8dbdebf30643.js → pdf-doc-CHmFdwy6.4142a4f31d20.js} +1 -1
  234. codex/static_root/assets/pdf-doc-CHmFdwy6.4142a4f31d20.js.br +0 -0
  235. codex/static_root/assets/pdf-doc-CHmFdwy6.4142a4f31d20.js.gz +0 -0
  236. codex/static_root/assets/{pdf-doc-DQBmNe4l.js → pdf-doc-CHmFdwy6.js} +1 -1
  237. codex/static_root/assets/pdf-doc-CHmFdwy6.js.br +0 -0
  238. codex/static_root/assets/pdf-doc-CHmFdwy6.js.gz +0 -0
  239. codex/static_root/assets/reader-YIWmNjj6.c96fc7891aec.js +2 -0
  240. codex/static_root/assets/reader-YIWmNjj6.c96fc7891aec.js.br +0 -0
  241. codex/static_root/assets/reader-YIWmNjj6.c96fc7891aec.js.gz +0 -0
  242. codex/static_root/assets/reader-YIWmNjj6.js +2 -0
  243. codex/static_root/assets/reader-YIWmNjj6.js.br +0 -0
  244. codex/static_root/assets/reader-YIWmNjj6.js.gz +0 -0
  245. codex/static_root/assets/{relation-chips-CcFgPQOM.0b468249b62e.css → relation-chips-CpiT_4k-.b72d78f512e6.css} +1 -1
  246. codex/static_root/assets/relation-chips-CpiT_4k-.b72d78f512e6.css.br +0 -0
  247. codex/static_root/assets/relation-chips-CpiT_4k-.b72d78f512e6.css.gz +0 -0
  248. codex/static_root/assets/{relation-chips-CcFgPQOM.css → relation-chips-CpiT_4k-.css} +1 -1
  249. codex/static_root/assets/relation-chips-CpiT_4k-.css.br +0 -0
  250. codex/static_root/assets/relation-chips-CpiT_4k-.css.gz +0 -0
  251. codex/static_root/assets/relation-chips-DzoiGrOj.95f663c6c18d.js +1 -0
  252. codex/static_root/assets/relation-chips-DzoiGrOj.95f663c6c18d.js.br +0 -0
  253. codex/static_root/assets/relation-chips-DzoiGrOj.95f663c6c18d.js.gz +0 -0
  254. codex/static_root/assets/relation-chips-DzoiGrOj.js +1 -0
  255. codex/static_root/assets/relation-chips-DzoiGrOj.js.br +0 -0
  256. codex/static_root/assets/relation-chips-DzoiGrOj.js.gz +0 -0
  257. codex/static_root/assets/settings-drawer-CUC-r4sg.e019f5467d25.js +2 -0
  258. codex/static_root/assets/settings-drawer-CUC-r4sg.e019f5467d25.js.br +0 -0
  259. codex/static_root/assets/settings-drawer-CUC-r4sg.e019f5467d25.js.gz +0 -0
  260. codex/static_root/assets/settings-drawer-CUC-r4sg.js +2 -0
  261. codex/static_root/assets/settings-drawer-CUC-r4sg.js.br +0 -0
  262. codex/static_root/assets/settings-drawer-CUC-r4sg.js.gz +0 -0
  263. codex/static_root/assets/{ssrBoot-B6P0M2z2.38ab2f4bde57.js → ssrBoot-D7foQ-7h.31c07ef6f646.js} +1 -1
  264. codex/static_root/assets/ssrBoot-D7foQ-7h.31c07ef6f646.js.br +0 -0
  265. codex/static_root/assets/ssrBoot-D7foQ-7h.31c07ef6f646.js.gz +0 -0
  266. codex/static_root/assets/{ssrBoot-B6P0M2z2.js → ssrBoot-D7foQ-7h.js} +1 -1
  267. codex/static_root/assets/ssrBoot-D7foQ-7h.js.br +0 -0
  268. codex/static_root/assets/ssrBoot-D7foQ-7h.js.gz +0 -0
  269. codex/static_root/assets/{stats-tab-C5m62fu3.8482d96809e9.js → stats-tab-BSy-9tZm.2a7560872f5c.js} +1 -1
  270. codex/static_root/assets/stats-tab-BSy-9tZm.2a7560872f5c.js.br +0 -0
  271. codex/static_root/assets/stats-tab-BSy-9tZm.2a7560872f5c.js.gz +0 -0
  272. codex/static_root/assets/{stats-tab-C5m62fu3.js → stats-tab-BSy-9tZm.js} +1 -1
  273. codex/static_root/assets/stats-tab-BSy-9tZm.js.br +0 -0
  274. codex/static_root/assets/stats-tab-BSy-9tZm.js.gz +0 -0
  275. codex/static_root/assets/task-tab-Sp49fYRT.3a1aab3f3716.js +1 -0
  276. codex/static_root/assets/task-tab-Sp49fYRT.3a1aab3f3716.js.br +0 -0
  277. codex/static_root/assets/task-tab-Sp49fYRT.3a1aab3f3716.js.gz +0 -0
  278. codex/static_root/assets/task-tab-Sp49fYRT.js +1 -0
  279. codex/static_root/assets/task-tab-Sp49fYRT.js.br +0 -0
  280. codex/static_root/assets/task-tab-Sp49fYRT.js.gz +0 -0
  281. codex/static_root/assets/{unauthorized-DXoWE_v2.19c70a140f9b.js → unauthorized-BM6KzvCy.4c114d9693c1.js} +1 -1
  282. codex/static_root/assets/unauthorized-BM6KzvCy.4c114d9693c1.js.br +0 -0
  283. codex/static_root/assets/unauthorized-BM6KzvCy.4c114d9693c1.js.gz +0 -0
  284. codex/static_root/assets/{unauthorized-DXoWE_v2.js → unauthorized-BM6KzvCy.js} +1 -1
  285. codex/static_root/assets/unauthorized-BM6KzvCy.js.br +0 -0
  286. codex/static_root/assets/unauthorized-BM6KzvCy.js.gz +0 -0
  287. codex/static_root/assets/user-tab-yQ60jtVd.ad593cc6e6ea.js +1 -0
  288. codex/static_root/assets/user-tab-yQ60jtVd.ad593cc6e6ea.js.br +0 -0
  289. codex/static_root/assets/user-tab-yQ60jtVd.ad593cc6e6ea.js.gz +0 -0
  290. codex/static_root/assets/user-tab-yQ60jtVd.js +1 -0
  291. codex/static_root/assets/user-tab-yQ60jtVd.js.br +0 -0
  292. codex/static_root/assets/user-tab-yQ60jtVd.js.gz +0 -0
  293. codex/static_root/{manifest.db295ed1ca03.json → manifest.a059c4dc5443.json} +308 -308
  294. codex/static_root/manifest.a059c4dc5443.json.br +0 -0
  295. codex/static_root/manifest.a059c4dc5443.json.gz +0 -0
  296. codex/static_root/manifest.json +308 -308
  297. codex/static_root/manifest.json.br +0 -0
  298. codex/static_root/manifest.json.gz +0 -0
  299. codex/static_root/staticfiles.json +1 -1
  300. codex/views/browser/filters/filter.py +1 -1
  301. codex/views/browser/filters/search/field/column.py +3 -3
  302. codex/views/browser/filters/search/parse.py +15 -10
  303. {codex-1.8.6.dist-info → codex-1.8.9.dist-info}/METADATA +5 -5
  304. {codex-1.8.6.dist-info → codex-1.8.9.dist-info}/RECORD +307 -305
  305. codex/static_root/assets/VCheckbox--IZv20K5.121e571f623b.js +0 -1
  306. codex/static_root/assets/VCheckbox--IZv20K5.121e571f623b.js.br +0 -0
  307. codex/static_root/assets/VCheckbox--IZv20K5.121e571f623b.js.gz +0 -0
  308. codex/static_root/assets/VCheckbox--IZv20K5.js +0 -1
  309. codex/static_root/assets/VCheckbox--IZv20K5.js.br +0 -0
  310. codex/static_root/assets/VCheckbox--IZv20K5.js.gz +0 -0
  311. codex/static_root/assets/VCheckboxBtn-BzgViWAb.1400a41af9da.js.br +0 -0
  312. codex/static_root/assets/VCheckboxBtn-BzgViWAb.1400a41af9da.js.gz +0 -0
  313. codex/static_root/assets/VCheckboxBtn-BzgViWAb.js.br +0 -0
  314. codex/static_root/assets/VCheckboxBtn-BzgViWAb.js.gz +0 -0
  315. codex/static_root/assets/VCombobox-0VKjtXTP.f7c9bb8e7f77.js +0 -1
  316. codex/static_root/assets/VCombobox-0VKjtXTP.f7c9bb8e7f77.js.br +0 -0
  317. codex/static_root/assets/VCombobox-0VKjtXTP.f7c9bb8e7f77.js.gz +0 -0
  318. codex/static_root/assets/VCombobox-0VKjtXTP.js +0 -1
  319. codex/static_root/assets/VCombobox-0VKjtXTP.js.br +0 -0
  320. codex/static_root/assets/VCombobox-0VKjtXTP.js.gz +0 -0
  321. codex/static_root/assets/VDialog-Oz6-kM3S.2244675141c7.js +0 -1
  322. codex/static_root/assets/VDialog-Oz6-kM3S.2244675141c7.js.br +0 -0
  323. codex/static_root/assets/VDialog-Oz6-kM3S.2244675141c7.js.gz +0 -0
  324. codex/static_root/assets/VDialog-Oz6-kM3S.js +0 -1
  325. codex/static_root/assets/VDialog-Oz6-kM3S.js.br +0 -0
  326. codex/static_root/assets/VDialog-Oz6-kM3S.js.gz +0 -0
  327. codex/static_root/assets/VDivider-CSRFyKQO.5f8e1ffafbaf.js.br +0 -0
  328. codex/static_root/assets/VDivider-CSRFyKQO.5f8e1ffafbaf.js.gz +0 -0
  329. codex/static_root/assets/VDivider-CSRFyKQO.js.br +0 -0
  330. codex/static_root/assets/VDivider-CSRFyKQO.js.gz +0 -0
  331. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.1ccaea91f07c.js.br +0 -0
  332. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.1ccaea91f07c.js.gz +0 -0
  333. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.js.br +0 -0
  334. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.js.gz +0 -0
  335. codex/static_root/assets/VForm-BaeKMRS9.be058cf1518f.js.br +0 -0
  336. codex/static_root/assets/VForm-BaeKMRS9.be058cf1518f.js.gz +0 -0
  337. codex/static_root/assets/VForm-BaeKMRS9.js.br +0 -0
  338. codex/static_root/assets/VForm-BaeKMRS9.js.gz +0 -0
  339. codex/static_root/assets/VRadioGroup-DeB10IRm.4ea874709ffb.js.br +0 -0
  340. codex/static_root/assets/VRadioGroup-DeB10IRm.4ea874709ffb.js.gz +0 -0
  341. codex/static_root/assets/VRadioGroup-DeB10IRm.js.br +0 -0
  342. codex/static_root/assets/VRadioGroup-DeB10IRm.js.gz +0 -0
  343. codex/static_root/assets/VSelect-4ozzBEef.36f749b6f4ab.js +0 -1
  344. codex/static_root/assets/VSelect-4ozzBEef.36f749b6f4ab.js.br +0 -0
  345. codex/static_root/assets/VSelect-4ozzBEef.36f749b6f4ab.js.gz +0 -0
  346. codex/static_root/assets/VSelect-4ozzBEef.js +0 -1
  347. codex/static_root/assets/VSelect-4ozzBEef.js.br +0 -0
  348. codex/static_root/assets/VSelect-4ozzBEef.js.gz +0 -0
  349. codex/static_root/assets/VSelectionControl-D3h7FjSM.6cf4ba197995.js +0 -1
  350. codex/static_root/assets/VSelectionControl-D3h7FjSM.6cf4ba197995.js.br +0 -0
  351. codex/static_root/assets/VSelectionControl-D3h7FjSM.6cf4ba197995.js.gz +0 -0
  352. codex/static_root/assets/VSelectionControl-D3h7FjSM.js +0 -1
  353. codex/static_root/assets/VSelectionControl-D3h7FjSM.js.br +0 -0
  354. codex/static_root/assets/VSelectionControl-D3h7FjSM.js.gz +0 -0
  355. codex/static_root/assets/VTable-CQyv0wyO.1740239d481b.css +0 -1
  356. codex/static_root/assets/VTable-CQyv0wyO.1740239d481b.css.br +0 -0
  357. codex/static_root/assets/VTable-CQyv0wyO.1740239d481b.css.gz +0 -0
  358. codex/static_root/assets/VTable-CQyv0wyO.css +0 -1
  359. codex/static_root/assets/VTable-CQyv0wyO.css.br +0 -0
  360. codex/static_root/assets/VTable-CQyv0wyO.css.gz +0 -0
  361. codex/static_root/assets/VTable-Dj5EC5Aq.7abc9daf78be.js +0 -1
  362. codex/static_root/assets/VTable-Dj5EC5Aq.7abc9daf78be.js.br +0 -0
  363. codex/static_root/assets/VTable-Dj5EC5Aq.7abc9daf78be.js.gz +0 -0
  364. codex/static_root/assets/VTable-Dj5EC5Aq.js +0 -1
  365. codex/static_root/assets/VTable-Dj5EC5Aq.js.br +0 -0
  366. codex/static_root/assets/VTable-Dj5EC5Aq.js.gz +0 -0
  367. codex/static_root/assets/VWindowItem-ChYLiXSE.a9c679a2977e.css +0 -1
  368. codex/static_root/assets/VWindowItem-ChYLiXSE.a9c679a2977e.css.br +0 -0
  369. codex/static_root/assets/VWindowItem-ChYLiXSE.a9c679a2977e.css.gz +0 -0
  370. codex/static_root/assets/VWindowItem-ChYLiXSE.css +0 -1
  371. codex/static_root/assets/VWindowItem-ChYLiXSE.css.br +0 -0
  372. codex/static_root/assets/VWindowItem-ChYLiXSE.css.gz +0 -0
  373. codex/static_root/assets/VWindowItem-Dwb7oeu0.6a4505330db3.js.br +0 -0
  374. codex/static_root/assets/VWindowItem-Dwb7oeu0.6a4505330db3.js.gz +0 -0
  375. codex/static_root/assets/VWindowItem-Dwb7oeu0.js.br +0 -0
  376. codex/static_root/assets/VWindowItem-Dwb7oeu0.js.gz +0 -0
  377. codex/static_root/assets/admin-mQ-F7brp.cc388b064f3a.js.br +0 -0
  378. codex/static_root/assets/admin-mQ-F7brp.cc388b064f3a.js.gz +0 -0
  379. codex/static_root/assets/admin-mQ-F7brp.js.br +0 -0
  380. codex/static_root/assets/admin-mQ-F7brp.js.gz +0 -0
  381. codex/static_root/assets/admin-menu-CfGPKhvz.1e224da855f5.js +0 -1
  382. codex/static_root/assets/admin-menu-CfGPKhvz.1e224da855f5.js.br +0 -0
  383. codex/static_root/assets/admin-menu-CfGPKhvz.1e224da855f5.js.gz +0 -0
  384. codex/static_root/assets/admin-menu-CfGPKhvz.js +0 -1
  385. codex/static_root/assets/admin-menu-CfGPKhvz.js.br +0 -0
  386. codex/static_root/assets/admin-menu-CfGPKhvz.js.gz +0 -0
  387. codex/static_root/assets/admin-nYIgbfe8.d2acbae0b198.js.br +0 -0
  388. codex/static_root/assets/admin-nYIgbfe8.d2acbae0b198.js.gz +0 -0
  389. codex/static_root/assets/admin-nYIgbfe8.js.br +0 -0
  390. codex/static_root/assets/admin-nYIgbfe8.js.gz +0 -0
  391. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.697026d00887.js.br +0 -0
  392. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.697026d00887.js.gz +0 -0
  393. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.js.br +0 -0
  394. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.js.gz +0 -0
  395. codex/static_root/assets/browser-BzV_-1Jg.e39184a92bab.js +0 -1
  396. codex/static_root/assets/browser-BzV_-1Jg.e39184a92bab.js.br +0 -0
  397. codex/static_root/assets/browser-BzV_-1Jg.e39184a92bab.js.gz +0 -0
  398. codex/static_root/assets/browser-BzV_-1Jg.js +0 -1
  399. codex/static_root/assets/browser-BzV_-1Jg.js.br +0 -0
  400. codex/static_root/assets/browser-BzV_-1Jg.js.gz +0 -0
  401. codex/static_root/assets/browser-Cdi7U5ku.bab9fccf0326.css.br +0 -0
  402. codex/static_root/assets/browser-Cdi7U5ku.bab9fccf0326.css.gz +0 -0
  403. codex/static_root/assets/browser-Cdi7U5ku.css.br +0 -0
  404. codex/static_root/assets/browser-Cdi7U5ku.css.gz +0 -0
  405. codex/static_root/assets/change-password-dialog-DpqXgZ53.3f22c3114669.js +0 -1
  406. codex/static_root/assets/change-password-dialog-DpqXgZ53.3f22c3114669.js.br +0 -0
  407. codex/static_root/assets/change-password-dialog-DpqXgZ53.3f22c3114669.js.gz +0 -0
  408. codex/static_root/assets/change-password-dialog-DpqXgZ53.js +0 -1
  409. codex/static_root/assets/change-password-dialog-DpqXgZ53.js.br +0 -0
  410. codex/static_root/assets/change-password-dialog-DpqXgZ53.js.gz +0 -0
  411. codex/static_root/assets/confirm-dialog-uoXMmYq3.0ec4c4eba588.js.br +0 -0
  412. codex/static_root/assets/confirm-dialog-uoXMmYq3.0ec4c4eba588.js.gz +0 -0
  413. codex/static_root/assets/confirm-dialog-uoXMmYq3.js.br +0 -0
  414. codex/static_root/assets/confirm-dialog-uoXMmYq3.js.gz +0 -0
  415. codex/static_root/assets/datetime-column-GkTrMP1-.bf4adfaa4e02.js.br +0 -0
  416. codex/static_root/assets/datetime-column-GkTrMP1-.bf4adfaa4e02.js.gz +0 -0
  417. codex/static_root/assets/datetime-column-GkTrMP1-.js.br +0 -0
  418. codex/static_root/assets/datetime-column-GkTrMP1-.js.gz +0 -0
  419. codex/static_root/assets/filter-CRnAKgPp.cc654b8f8155.js.br +0 -0
  420. codex/static_root/assets/filter-CRnAKgPp.cc654b8f8155.js.gz +0 -0
  421. codex/static_root/assets/filter-CRnAKgPp.js.br +0 -0
  422. codex/static_root/assets/filter-CRnAKgPp.js.gz +0 -0
  423. codex/static_root/assets/flag-tab-BA4kiUXn.408cc0a71ec1.js.br +0 -0
  424. codex/static_root/assets/flag-tab-BA4kiUXn.408cc0a71ec1.js.gz +0 -0
  425. codex/static_root/assets/flag-tab-BA4kiUXn.js.br +0 -0
  426. codex/static_root/assets/flag-tab-BA4kiUXn.js.gz +0 -0
  427. codex/static_root/assets/forwardRefs-B_sUWZn6.5114f206ca9c.css.br +0 -0
  428. codex/static_root/assets/forwardRefs-B_sUWZn6.5114f206ca9c.css.gz +0 -0
  429. codex/static_root/assets/forwardRefs-B_sUWZn6.css.br +0 -0
  430. codex/static_root/assets/forwardRefs-B_sUWZn6.css.gz +0 -0
  431. codex/static_root/assets/forwardRefs-FxOC1qa_.6e14881eedf1.js +0 -1
  432. codex/static_root/assets/forwardRefs-FxOC1qa_.6e14881eedf1.js.br +0 -0
  433. codex/static_root/assets/forwardRefs-FxOC1qa_.6e14881eedf1.js.gz +0 -0
  434. codex/static_root/assets/forwardRefs-FxOC1qa_.js +0 -1
  435. codex/static_root/assets/forwardRefs-FxOC1qa_.js.br +0 -0
  436. codex/static_root/assets/forwardRefs-FxOC1qa_.js.gz +0 -0
  437. codex/static_root/assets/group-tab-BD9iJZwB.b3e2b1b68d3a.js.br +0 -0
  438. codex/static_root/assets/group-tab-BD9iJZwB.b3e2b1b68d3a.js.gz +0 -0
  439. codex/static_root/assets/group-tab-BD9iJZwB.js.br +0 -0
  440. codex/static_root/assets/group-tab-BD9iJZwB.js.gz +0 -0
  441. codex/static_root/assets/http-error-D-b5OfHC.e661fa6e0000.js +0 -1
  442. codex/static_root/assets/http-error-D-b5OfHC.e661fa6e0000.js.br +0 -2
  443. codex/static_root/assets/http-error-D-b5OfHC.e661fa6e0000.js.gz +0 -0
  444. codex/static_root/assets/http-error-D-b5OfHC.js +0 -1
  445. codex/static_root/assets/http-error-D-b5OfHC.js.br +0 -2
  446. codex/static_root/assets/http-error-D-b5OfHC.js.gz +0 -0
  447. codex/static_root/assets/index-DCZ6v5x6.848976e7722c.js.br +0 -0
  448. codex/static_root/assets/index-DCZ6v5x6.848976e7722c.js.gz +0 -0
  449. codex/static_root/assets/index-DCZ6v5x6.js.br +0 -0
  450. codex/static_root/assets/index-DCZ6v5x6.js.gz +0 -0
  451. codex/static_root/assets/library-tab-ju4WtRth.97949bf344d7.js +0 -1
  452. codex/static_root/assets/library-tab-ju4WtRth.97949bf344d7.js.br +0 -0
  453. codex/static_root/assets/library-tab-ju4WtRth.97949bf344d7.js.gz +0 -0
  454. codex/static_root/assets/library-tab-ju4WtRth.js +0 -1
  455. codex/static_root/assets/library-tab-ju4WtRth.js.br +0 -0
  456. codex/static_root/assets/library-tab-ju4WtRth.js.gz +0 -0
  457. codex/static_root/assets/main-Bmi4BPiO.d75c8b55081b.js.br +0 -0
  458. codex/static_root/assets/main-Bmi4BPiO.d75c8b55081b.js.gz +0 -0
  459. codex/static_root/assets/main-Bmi4BPiO.js.br +0 -0
  460. codex/static_root/assets/main-Bmi4BPiO.js.gz +0 -0
  461. codex/static_root/assets/pager-full-pdf-BjSr3CzH.ffbe3d735455.js +0 -1
  462. codex/static_root/assets/pager-full-pdf-BjSr3CzH.ffbe3d735455.js.br +0 -0
  463. codex/static_root/assets/pager-full-pdf-BjSr3CzH.ffbe3d735455.js.gz +0 -0
  464. codex/static_root/assets/pager-full-pdf-BjSr3CzH.js +0 -1
  465. codex/static_root/assets/pager-full-pdf-BjSr3CzH.js.br +0 -0
  466. codex/static_root/assets/pager-full-pdf-BjSr3CzH.js.gz +0 -0
  467. codex/static_root/assets/pagination-toolbar-741OafNw.4f9155469274.css.br +0 -0
  468. codex/static_root/assets/pagination-toolbar-741OafNw.4f9155469274.css.gz +0 -0
  469. codex/static_root/assets/pagination-toolbar-741OafNw.css.br +0 -0
  470. codex/static_root/assets/pagination-toolbar-741OafNw.css.gz +0 -0
  471. codex/static_root/assets/pagination-toolbar-DpMVSiz_.86ce692ff9b4.js +0 -1
  472. codex/static_root/assets/pagination-toolbar-DpMVSiz_.86ce692ff9b4.js.br +0 -0
  473. codex/static_root/assets/pagination-toolbar-DpMVSiz_.86ce692ff9b4.js.gz +0 -0
  474. codex/static_root/assets/pagination-toolbar-DpMVSiz_.js +0 -1
  475. codex/static_root/assets/pagination-toolbar-DpMVSiz_.js.br +0 -0
  476. codex/static_root/assets/pagination-toolbar-DpMVSiz_.js.gz +0 -0
  477. codex/static_root/assets/pdf-doc-DQBmNe4l.8dbdebf30643.js.br +0 -0
  478. codex/static_root/assets/pdf-doc-DQBmNe4l.8dbdebf30643.js.gz +0 -0
  479. codex/static_root/assets/pdf-doc-DQBmNe4l.js.br +0 -0
  480. codex/static_root/assets/pdf-doc-DQBmNe4l.js.gz +0 -0
  481. codex/static_root/assets/reader-BQVYc_LF.e327430a14a1.js +0 -2
  482. codex/static_root/assets/reader-BQVYc_LF.e327430a14a1.js.br +0 -0
  483. codex/static_root/assets/reader-BQVYc_LF.e327430a14a1.js.gz +0 -0
  484. codex/static_root/assets/reader-BQVYc_LF.js +0 -2
  485. codex/static_root/assets/reader-BQVYc_LF.js.br +0 -0
  486. codex/static_root/assets/reader-BQVYc_LF.js.gz +0 -0
  487. codex/static_root/assets/relation-chips-CcFgPQOM.0b468249b62e.css.br +0 -0
  488. codex/static_root/assets/relation-chips-CcFgPQOM.0b468249b62e.css.gz +0 -0
  489. codex/static_root/assets/relation-chips-CcFgPQOM.css.br +0 -0
  490. codex/static_root/assets/relation-chips-CcFgPQOM.css.gz +0 -0
  491. codex/static_root/assets/relation-chips-TRmABTTI.918cb21596f9.js +0 -1
  492. codex/static_root/assets/relation-chips-TRmABTTI.918cb21596f9.js.br +0 -0
  493. codex/static_root/assets/relation-chips-TRmABTTI.918cb21596f9.js.gz +0 -0
  494. codex/static_root/assets/relation-chips-TRmABTTI.js +0 -1
  495. codex/static_root/assets/relation-chips-TRmABTTI.js.br +0 -0
  496. codex/static_root/assets/relation-chips-TRmABTTI.js.gz +0 -0
  497. codex/static_root/assets/settings-drawer-BoAnrKCI.46b6a030c81f.js +0 -2
  498. codex/static_root/assets/settings-drawer-BoAnrKCI.46b6a030c81f.js.br +0 -0
  499. codex/static_root/assets/settings-drawer-BoAnrKCI.46b6a030c81f.js.gz +0 -0
  500. codex/static_root/assets/settings-drawer-BoAnrKCI.js +0 -2
  501. codex/static_root/assets/settings-drawer-BoAnrKCI.js.br +0 -0
  502. codex/static_root/assets/settings-drawer-BoAnrKCI.js.gz +0 -0
  503. codex/static_root/assets/ssrBoot-B6P0M2z2.38ab2f4bde57.js.br +0 -0
  504. codex/static_root/assets/ssrBoot-B6P0M2z2.38ab2f4bde57.js.gz +0 -0
  505. codex/static_root/assets/ssrBoot-B6P0M2z2.js.br +0 -0
  506. codex/static_root/assets/ssrBoot-B6P0M2z2.js.gz +0 -0
  507. codex/static_root/assets/stats-tab-C5m62fu3.8482d96809e9.js.br +0 -0
  508. codex/static_root/assets/stats-tab-C5m62fu3.8482d96809e9.js.gz +0 -0
  509. codex/static_root/assets/stats-tab-C5m62fu3.js.br +0 -0
  510. codex/static_root/assets/stats-tab-C5m62fu3.js.gz +0 -0
  511. codex/static_root/assets/task-tab-B3WOGyYT.508fce185a28.js +0 -1
  512. codex/static_root/assets/task-tab-B3WOGyYT.508fce185a28.js.br +0 -0
  513. codex/static_root/assets/task-tab-B3WOGyYT.508fce185a28.js.gz +0 -0
  514. codex/static_root/assets/task-tab-B3WOGyYT.js +0 -1
  515. codex/static_root/assets/task-tab-B3WOGyYT.js.br +0 -0
  516. codex/static_root/assets/task-tab-B3WOGyYT.js.gz +0 -0
  517. codex/static_root/assets/unauthorized-DXoWE_v2.19c70a140f9b.js.br +0 -0
  518. codex/static_root/assets/unauthorized-DXoWE_v2.19c70a140f9b.js.gz +0 -0
  519. codex/static_root/assets/unauthorized-DXoWE_v2.js.br +0 -0
  520. codex/static_root/assets/unauthorized-DXoWE_v2.js.gz +0 -0
  521. codex/static_root/assets/user-tab-DhsQxTkZ.8a8167f9f2c4.js +0 -1
  522. codex/static_root/assets/user-tab-DhsQxTkZ.8a8167f9f2c4.js.br +0 -0
  523. codex/static_root/assets/user-tab-DhsQxTkZ.8a8167f9f2c4.js.gz +0 -0
  524. codex/static_root/assets/user-tab-DhsQxTkZ.js +0 -1
  525. codex/static_root/assets/user-tab-DhsQxTkZ.js.br +0 -0
  526. codex/static_root/assets/user-tab-DhsQxTkZ.js.gz +0 -0
  527. codex/static_root/manifest.db295ed1ca03.json.br +0 -0
  528. codex/static_root/manifest.db295ed1ca03.json.gz +0 -0
  529. {codex-1.8.6.dist-info → codex-1.8.9.dist-info}/WHEEL +0 -0
  530. {codex-1.8.6.dist-info → codex-1.8.9.dist-info}/entry_points.txt +0 -0
  531. {codex-1.8.6.dist-info → codex-1.8.9.dist-info}/licenses/LICENSE +0 -0
@@ -1 +0,0 @@
1
- import{_,B as k,D as y,C as T,q as C,v as p,a as r,w as s,m as L,X as q,x as w,G as F,s as u,A as v,L as E,ad as X,M as J,an as H,$ as B,bz as Q,bA as Z,bB as ee,V as te,b as o,d as oe,y as a,k as re,bC as le,F as se,z as ie}from"./main-Bmi4BPiO.js";import{A as ne,R as ae,a as $,b as de,c as me}from"./relation-chips-TRmABTTI.js";import{useAdminStore as h}from"./admin-mQ-F7brp.js";import{a as ue}from"./VDialog-Oz6-kM3S.js";import{V as pe}from"./VCombobox-0VKjtXTP.js";import{V as D}from"./VCheckbox--IZv20K5.js";import{c as ce,d as U}from"./VSelectionControl-D3h7FjSM.js";import{D as N}from"./datetime-column-GkTrMP1-.js";import{C as he}from"./confirm-dialog-uoXMmYq3.js";import{V as z}from"./VCheckboxBtn-BzgViWAb.js";import{V as A,a as x,b as I,c as P}from"./VExpansionPanels-82Ocr2Kh.js";import{k as R}from"./forwardRefs-FxOC1qa_.js";import{V as fe}from"./VTable-Dj5EC5Aq.js";import"./VForm-BaeKMRS9.js";import"./VSelect-4ozzBEef.js";import"./ssrBoot-B6P0M2z2.js";import"./VDivider-CSRFyKQO.js";import"./filter-CRnAKgPp.js";const be={name:"AdminServerFolderPicker",emits:["change","menu"],data(){return{path:"",originalPath:"",showHidden:!1,menuOpen:!1}},computed:{...y(h,{folders:e=>e.folderPicker.folders,rootFolder:e=>e.folderPicker.rootFolder}),...y(T,{formErrors:e=>e.form.errors}),appendOuterIcon(){return this.showHidden?this.mdiFolderHidden:this.mdiFolderOutline},showHiddenTooltipPrefix(){return this.showHidden?"Hide":"Show"}},watch:{menuOpen(e){e&&this.$emit("menu",e)}},created(){this.loadFolders().then(()=>(this.path=this.rootFolder,this.originalPath=this.rootFolder,!0)).catch(console.warn)},methods:{...k(h,["clearFolders","loadFolders"]),...k(T,["clearErrors"]),change(e){let t;e?t=e.startsWith("/")||e.startsWith("\\")?e:[this.rootFolder,e].join("/"):t=this.rootFolder;const m=this.menuOpen;this.clearErrors(),this.loadFolders(t,this.showHidden).then(()=>{this.menuOpen=m;let b="";return this.formErrors.length===0&&(this.path=b=this.rootFolder),this.$emit("change",b)}).catch(console.warn)},onBlur(){this.menuOpen=!1,this.change(this.path)},onClear(){this.clearFolders(this.orignalPath).then(()=>this.change(this.orginalPath)).catch(console.error)},onKeyDownEnter(){this.change(this.path)},onItemClick(e){this.change(e)}}},ye={id:"folderPicker"};function ve(e,t,m,b,l,i){return p(),C("div",ye,[r(pe,L({modelValue:l.path,"onUpdate:modelValue":t[0]||(t[0]=d=>l.path=d),menu:l.menuOpen,"onUpdate:menu":t[1]||(t[1]=d=>l.menuOpen=d)},e.$attrs,{"aria-label":"Library folder",clearable:"","error-messages":e.formErrors,"full-width":"","hide-details":"auto",items:e.folders,"menu-props":{maxHeight:"370px"},"validate-on":"blur",variant:"filled",onBlur:i.onBlur,"onClick:clear":i.onClear,onKeydown:q(i.onKeyDownEnter,["enter"])}),{item:s(({item:d,props:f})=>[r(ue,L(f,{title:d.title,value:d.value,onClick:g=>i.onItemClick(d.value)}),null,16,["title","value","onClick"])]),_:1},16,["modelValue","menu","error-messages","items","onBlur","onClick:clear","onKeydown"]),r(D,{modelValue:l.showHidden,"onUpdate:modelValue":t[2]||(t[2]=d=>l.showHidden=d),density:"compact",class:"showHidden","hide-details":"auto",label:"Show Hidden Folders"},null,8,["modelValue"])])}const ge=_(be,[["render",ve],["__scopeId","data-v-61ca3769"]]),O="DDD HH:mm:SS",Ce=/^(?:[0-3]?\d?\d\s)?(?:[01]?\d|2[0-3])(?::[0-5]\d){2}$/,we={name:"TimeTextField",data(){return{FORMAT:O,timeRules:[e=>Ce.test(e)||`Invalid time format ${O}`]}}};function _e(e,t,m,b,l,i){return p(),w(ce,L({ref:"timeField",density:"compact",filled:"",hint:l.FORMAT,round:"",rules:l.timeRules},e.$attrs),null,16,["hint","rules"])}const ke=_(we,[["render",_e]]),j=["events","poll","pollEvery","groups"];Object.freeze(j);const V={path:"",events:!0,poll:!0,pollEvery:"01:00:00",groups:[]};Object.freeze(V);const S=(e,t)=>(e=e.replaceAll("\\","/"),t=t.replaceAll("\\","/"),e.endsWith("/")||(e+="/"),t.endsWith("/")||(t+="/"),t.startsWith(e)),Fe={name:"AdminLibraryCreateUpdateInputs",components:{AdminRelationPicker:ne,AdminServerFolderPicker:ge,TimeTextField:ke},props:{oldRow:{type:[Object,Boolean],default:!1}},emits:["change"],data(){return{rules:{path:[e=>!!e||"Path is required",e=>{if(!e)return!1;for(const t of this.paths){if(S(t,e))return"Path is a child of an existing library";if(S(e,t))return"Path is a parent of an existing library"}return!0}]},row:E(this.oldRow||V)}},computed:{...y(h,["normalLibraries"]),...y(h,{groups:e=>e.groups}),paths(){return this.nameSet(this.normalLibraries,"path",this.oldRow,!1)}},watch:{row:{handler(e){this.$emit("change",e)},deep:!0},oldRow:{handler(e){this.row=E(e)},deep:!0}},methods:{...k(h,["nameSet"])},UPDATE_KEYS:j,EMPTY_ROW:V},Ae={key:1};function xe(e,t,m,b,l,i){const d=u("AdminServerFolderPicker"),f=u("TimeTextField"),g=u("AdminRelationPicker");return p(),C("section",null,[m.oldRow?(p(),C("div",Ae,v(m.oldRow.path),1)):(p(),w(d,{key:0,rules:l.rules.path,autofocus:"",label:"Library Folder",onChange:t[0]||(t[0]=c=>l.row.path=c)},null,8,["rules"])),r(D,{modelValue:l.row.events,"onUpdate:modelValue":t[1]||(t[1]=c=>l.row.events=c),"hide-details":"auto",hint:"Update Codex instantly when the filesystem changes",label:"Watch Filesystem Events","persistent-hint":!0},null,8,["modelValue"]),r(D,{modelValue:l.row.poll,"onUpdate:modelValue":t[2]||(t[2]=c=>l.row.poll=c),label:"Poll Filesystem Periodically","hide-details":"auto",hint:"Periodically poll the library for changes","persistent-hint":!0},null,8,["modelValue"]),r(f,{modelValue:l.row.pollEvery,"onUpdate:modelValue":t[3]||(t[3]=c=>l.row.pollEvery=c),label:"Poll Every",disabled:!l.row.poll},null,8,["modelValue","disabled"]),l.row.coversOnly?F("",!0):(p(),w(g,{key:2,modelValue:l.row.groups,"onUpdate:modelValue":t[4]||(t[4]=c=>l.row.groups=c),label:"Groups",objs:e.groups,"group-type":"","title-key":"name"},null,8,["modelValue","objs"]))])}const G=_(Fe,[["render",xe]]),Ie={name:"AdminLibrariesTab",components:{AdminTable:me,AdminDeleteRowDialog:de,AdminCreateUpdateDialog:$,RelationChips:ae,ConfirmDialog:he,DateTimeColumn:N},props:{coversDir:{type:Boolean,default:!1}},data(){return{lastUpdate:{pk:0,field:void 0},mdiCircleOffOutline:ee,mdiDatabaseClockOutline:Z,mdiDatabaseSyncOutline:Q,mdiOpenInNew:B,AdminLibraryCreateUpdateInputs:H(G)}},computed:{...y(h,["normalLibraries","customCoverLibraries"]),...y(h,{groups:e=>e.groups,isFailedImports:e=>!!e?.failedImports?.length}),...y(T,{formErrors:e=>e.form?.errors}),...y(J,{twentyFourHourTime:e=>e.settings.twentyFourHourTime}),headers(){const e=this.coversDir?"Covers":"Comics",t=[{title:"Path",key:"path",align:"start"},{title:e,key:"comicCount"}];return this.isFailedImports&&t.push({title:"Failed",key:"failedCount"}),t.push({title:"Watch File Events",key:"events"},{title:"Poll Files Periodically",key:"poll"},{title:"Poll Every",key:"pollEvery"},{title:"Last Poll",key:"lastPoll"}),!this.coversDir&&this.isGroups&&t.push({title:"Groups",key:"groups"}),t.push({title:"Actions",key:"actions",sortable:!1}),t},items(){return globalThis.coversDir?this.customCoverLibraries:this.normalLibraries},updateLabel(){return this.coversDir?"Cover Dir":""},itemName(){return this.coversDir?"custom covers":"comics"},iconSize(){const e=this.$vuetify.display;return e.xlAndUp?"x-large":e.lgAndUp?"large":e.mdAndUp?"default":"small"},isGroups(){return!!this.groups?.length}},mounted(){this.loadTables(["Group","Library","FailedImport"])},methods:{...k(h,["updateRow","clearErrors","librarianTask","loadTables"]),formatNumber(e){return X.format(e)},changeCol(e,t,m){this.lastUpdate.pk=e,this.lastUpdate.field=t;const b={[t]:m};this.updateRow("Library",e,b)},getFormErrors(e,t){if(e===this.lastUpdate.pk&&t===this.lastUpdate.field)return this.formErrors},libraryLabel(e,t=!0){let m="";return e.coversOnly?(t&&(m+="Custom Group "),m+="Cover Dir"):m+="Library",m},poll(e){const t=this.libraryLabel(e);this.librarianTask("poll",`Poll ${t} ${e.pk}`,e.pk)},forcePoll(e){const t=this.libraryLabel(e);this.librarianTask("poll_force",`Force Poll ${t} ${e.pk}`,e.pk)},pollConfirmText(e){return`Poll ${this.libraryLabel(e,!1)}`}}},Pe={class:"failedComics"},Te={class:"actionButtonCell"};function Le(e,t,m,b,l,i){const d=u("DateTimeColumn"),f=u("RelationChips"),g=u("ConfirmDialog"),c=u("AdminCreateUpdateDialog"),M=u("AdminDeleteRowDialog"),K=u("AdminTable");return p(),w(K,{headers:i.headers},te({"no-data":s(()=>[t[0]||(t[0]=o("td",{class:"adminNoData",colspan:"100%"}," Add a Library to start using Codex ",-1))]),"item.comicCount":s(({item:n})=>[a(v(i.formatNumber(n.comicCount)),1)]),"item.events":s(({item:n})=>[r(z,{"model-value":n.events,disabled:""},null,8,["model-value"])]),"item.poll":s(({item:n})=>[r(z,{"model-value":n.poll,disabled:""},null,8,["model-value"])]),"item.pollEvery":s(({item:n})=>[o("span",{class:oe({disabled:!n.poll})},v(n.pollEvery),3)]),"item.lastPoll":s(({item:n})=>[r(d,{dttm:n.lastPoll},null,8,["dttm"])]),"item.actions":s(({item:n})=>[o("span",Te,[r(g,{icon:l.mdiDatabaseClockOutline,"title-text":`Poll for updated ${i.itemName}`,text:n.path,"confirm-text":i.pollConfirmText(n),size:i.iconSize,density:"compact",onConfirm:Y=>i.poll(n)},null,8,["icon","title-text","text","confirm-text","size","onConfirm"]),r(g,{icon:l.mdiDatabaseSyncOutline,"title-text":`Force update ${i.itemName}`,text:n.path,"confirm-text":"Force Update",size:i.iconSize,density:"compact",onConfirm:Y=>i.forcePoll(n)},null,8,["icon","title-text","text","size","onConfirm"]),r(c,{table:"Library","old-row":n,inputs:l.AdminLibraryCreateUpdateInputs,label:i.updateLabel,"max-width":"22em",size:i.iconSize,density:"compact"},null,8,["old-row","inputs","label","size"]),n.coversOnly?F("",!0):(p(),w(M,{key:0,table:"Library",pk:n.pk,name:n.path,size:i.iconSize,density:"compact"},null,8,["pk","name","size"]))])]),_:2},[e.isFailedImports?{name:"item.failedCount",fn:s(({item:n})=>[o("span",Pe,v(i.formatNumber(n.failedCount)),1)]),key:"0"}:void 0,i.isGroups?{name:"item.groups",fn:s(({item:n})=>[r(f,{pks:n.groups,objs:e.groups,"group-type":"","title-key":"name"},null,8,["pks","objs"])]),key:"1"}:void 0]),1032,["headers"])}const W=_(Ie,[["render",Le],["__scopeId","data-v-e99f2f5e"]]),De={name:"AdminCustomCoversPanel",components:{AdminLibraryTable:W},computed:{...y(h,["customCoverLibraries"])}};function Ve(e,t,m,b,l,i){const d=u("AdminLibraryTable");return p(),w(A,null,{default:s(()=>[r(x,null,{default:s(()=>[r(I,null,{default:s(()=>t[0]||(t[0]=[o("h4",{id:"coverDirHeader"},"Custom Covers",-1)])),_:1,__:[0]}),r(P,null,{default:s(()=>[r(d,{items:e.customCoverLibraries,"disable-sort":"","covers-dir":!0},null,8,["items"]),r(A,null,{default:s(()=>[r(x,{id:"customCoversHelp"},{default:s(()=>[r(I,null,{default:s(()=>t[1]||(t[1]=[o("h4",null,"Custom Covers Help",-1)])),_:1,__:[1]}),r(P,null,{default:s(()=>t[2]||(t[2]=[o("p",null,"Custom covers may be added to the browser in two locations:",-1),o("h4",null,"Folders",-1),o("p",null,[a(" A library folder with a file named "),o("code",null,".codex-cover.jpg"),a(" will show a custom cover for that folder in Folder view. The addition and removal of these covers by watching filesystem events and polling is handled by the library that folder belongs to. ")],-1),o("h4",null,"Custom Covers Dir",-1),o("p",null,[a(" The Codex config directory has a special folder named "),o("code",null,"custom-covers"),a(" under which are subdirectories for each of the browser groups that may adopt custom covers. Images in these subdirectories that match the name of the browser group will be used as custom covers. For instance: "),o("code",null,".../custom-covers/publishers/American Comics Group.webp"),a(' would be used as the cover for the publisher "American Comics Group". '),o("code",null,".../custom-covers/series/arrow.png"),a(' would be used as the cover for every series named "Arrow", for '),o("em",null,"every"),a(" publisher. Similar to a comic library, the "),o("code",null,"custom-covers"),a(" directory may be watched and polled for changes. By default it is neither watched nor polled and must be enabled by the admin. ")],-1),o("h4",null,"Image Formats & Size",-1),o("p",null,[a(" Custom covers are detected only for files with the extensions: "),o("code",null,".bmp, .gif, .jpeg, .jpg, .png, .webp"),a(". ")],-1),o("p",null," Browser covers are transformed from their sources to 165px x 254px thumbnails. Custom covers will transform most aesthetically the closer to that ratio they are. ",-1),o("h4",null,"Priority",-1),o("p",null," Custom covers supersede covers set by the user's individual browser settings. ",-1)])),_:1,__:[2]})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const Ee=_(De,[["render",Ve],["__scopeId","data-v-268927b7"]]),Ue={name:"AdminFailedImportsPanel",components:{DateTimeColumn:N},data(){return{mdiBookAlert:le,mdiOpenInNew:B}},computed:{...y(h,{failedImports:e=>e.failedImports,showFailedImports:e=>e.failedImports&&e.failedImports.length>0}),...re(h,["unseenFailedImports"])}},ze={key:0},Re={class:"dateCol"},Oe={href:"https://github.com/ajslater/codex/issues/",target:"_blank"};function Se(e,t,m,b,l,i){const d=u("DateTimeColumn");return e.showFailedImports?(p(),C("div",ze,[r(A,null,{default:s(()=>[r(x,{id:"failedImportsPanel",onClick:t[0]||(t[0]=f=>e.unseenFailedImports=!1)},{default:s(()=>[r(I,null,{default:s(()=>[o("h4",null,"Failed Imports: "+v(e.failedImports.length),1),e.unseenFailedImports?(p(),w(R,{key:0,id:"failedImportsIcon",title:"New Failed Imports"},{default:s(()=>[a(v(l.mdiBookAlert),1)]),_:1})):F("",!0)]),_:1}),r(P,null,{default:s(()=>[r(fe,{class:"highlight-table"},{default:s(()=>[t[1]||(t[1]=o("thead",null,[o("tr",null,[o("th",null,"Path"),o("th",null,"Created")])],-1)),o("tbody",null,[(p(!0),C(se,null,ie(e.failedImports,f=>(p(),C("tr",{key:`fi:${f.path}`},[o("td",null,v(f.path),1),o("td",Re,[r(d,{dttm:f.createdAt},null,8,["dttm"])])]))),128))])]),_:1}),r(A,null,{default:s(()=>[r(x,{id:"failedImportsHelp"},{default:s(()=>[r(I,null,{default:s(()=>t[2]||(t[2]=[o("h4",null,"Failed Imports Help",-1)])),_:1,__:[2]}),r(P,null,{default:s(()=>[t[8]||(t[8]=o("p",null," These are Comic archives that have failed to import. This list is updated every time the library updates. You should probably review these files and fix or remove them. ",-1)),t[9]||(t[9]=o("h4",null,"Fixing comics",-1)),t[10]||(t[10]=o("p",null,[a(" Try using the zip fixer to fix comics: "),o("code",{class:"cli"},[a(" cp problem-comic.cbz /somewhere/safe/problem-comic.cbz.backup"),o("br"),a(" zip -F problem-comic.cbz --out fixed.zip"),o("br"),a(" mv fixed.zip problem-comic.cbz ")]),a(" You may also try "),o("code",null,"zip -FF"),a(" to fix comics which uses a different (not necissarily better) algorithm. If you fix some imports, and Codex does not immediately detect the change, poll the library which contains the fixed comics. ")],-1)),t[11]||(t[11]=o("h4",null,"Reporting Issues",-1)),o("p",null,[t[4]||(t[4]=a(" If the comic looks good to you, but still shows up as a failed import, it might be Codex's fault for not importing it correctly. Please file an ",-1)),o("a",Oe,[t[3]||(t[3]=a("Issue Report",-1)),r(R,{size:"small"},{default:s(()=>[a(v(l.mdiOpenInNew),1)]),_:1})]),t[5]||(t[5]=a(" and include the stack trace from the logs at ",-1)),t[6]||(t[6]=o("code",null,"config/logs/codex.log",-1)),t[7]||(t[7]=a(" if you can. ",-1))])]),_:1,__:[8,9,10,11]})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})])):F("",!0)}const He=_(Ue,[["render",Se],["__scopeId","data-v-827c9a0b"]]),Be={name:"AdminLibrariesTab",components:{AdminFailedImportsPanel:He,AdminLibraryTable:W,AdminCreateUpdateDialog:$,AdminCustomCoversPanel:Ee},data(){return{AdminLibraryCreateUpdateInputs:H(G)}},computed:{...y(h,["normalLibraries"])},mounted(){this.loadTables(["Group","Library","FailedImport"])},methods:{...k(h,["loadTables"])}},$e={class:"tabHeader"};function Ne(e,t,m,b,l,i){const d=u("AdminCreateUpdateDialog"),f=u("AdminLibraryTable"),g=u("AdminFailedImportsPanel"),c=u("AdminCustomCoversPanel");return p(),C("div",null,[o("header",$e,[r(d,{table:"Library",inputs:l.AdminLibraryCreateUpdateInputs},null,8,["inputs"])]),r(f,{items:e.normalLibraries,"sort-by":[{key:"path",order:"asc"}]},null,8,["items"]),r(U,null,{default:s(()=>[r(g,{id:"failedImports"})]),_:1}),r(U,null,{default:s(()=>[r(c,{id:"customCovers"})]),_:1}),t[0]||(t[0]=o("p",{id:"libraryHelp"}," Each Watched File Events box checked creates a thread to monitor the Library. An large number of watching threads may exceed the limits of your operating system or container. ",-1))])}const nt=_(Be,[["render",Ne],["__scopeId","data-v-66bb908f"]]);export{nt as default};
@@ -1 +0,0 @@
1
- import{_ as m,D as c,s as e,q as s,v as l,a as o,w as u,aJ as _,ak as d}from"./main-Bmi4BPiO.js";import{S as g,P as k}from"./reader-BQVYc_LF.js";import P from"./pdf-doc-DQBmNe4l.js";import"./settings-drawer-BoAnrKCI.js";import"./forwardRefs-FxOC1qa_.js";import"./unauthorized-DXoWE_v2.js";import"./VDialog-Oz6-kM3S.js";import"./change-password-dialog-DpqXgZ53.js";import"./VForm-BaeKMRS9.js";import"./VSelectionControl-D3h7FjSM.js";import"./admin-mQ-F7brp.js";import"./ssrBoot-B6P0M2z2.js";import"./copy-to-clipboard-DoUvDJVx.js";import"./VDivider-CSRFyKQO.js";import"./VWindowItem-Dwb7oeu0.js";import"./VSelect-4ozzBEef.js";import"./VCheckboxBtn-BzgViWAb.js";import"./pagination-toolbar-DpMVSiz_.js";import"./VTable-Dj5EC5Aq.js";import"./confirm-dialog-uoXMmYq3.js";import"./VExpansionPanels-82Ocr2Kh.js";import"./VRadioGroup-DeB10IRm.js";import"./VCheckbox--IZv20K5.js";import"./index-DCZ6v5x6.js";const f={name:"PagerFullPDF",components:{PageChangeLink:k,PDFDoc:P,ScaleForScroll:g},props:{book:{type:Object,required:!0}},emits:["load","error","unauthorized"],computed:{...c(d,{page:r=>r.page||0}),src(){return _(this.book)}}};function F(r,D,a,S,h,p){const t=e("PageChangeLink"),n=e("PDFDoc"),i=e("ScaleForScroll");return l(),s("span",null,[o(t,{direction:"prev"}),o(t,{direction:"next"}),o(i,null,{default:u(()=>[o(n,{book:a.book,page:r.page,src:p.src},null,8,["book","page","src"])]),_:1})])}const M=m(f,[["render",F]]);export{M as default};
@@ -1 +0,0 @@
1
- import{_ as m,D as c,s as e,q as s,v as l,a as o,w as u,aJ as _,ak as d}from"./main-Bmi4BPiO.js";import{S as g,P as k}from"./reader-BQVYc_LF.js";import P from"./pdf-doc-DQBmNe4l.js";import"./settings-drawer-BoAnrKCI.js";import"./forwardRefs-FxOC1qa_.js";import"./unauthorized-DXoWE_v2.js";import"./VDialog-Oz6-kM3S.js";import"./change-password-dialog-DpqXgZ53.js";import"./VForm-BaeKMRS9.js";import"./VSelectionControl-D3h7FjSM.js";import"./admin-mQ-F7brp.js";import"./ssrBoot-B6P0M2z2.js";import"./copy-to-clipboard-DoUvDJVx.js";import"./VDivider-CSRFyKQO.js";import"./VWindowItem-Dwb7oeu0.js";import"./VSelect-4ozzBEef.js";import"./VCheckboxBtn-BzgViWAb.js";import"./pagination-toolbar-DpMVSiz_.js";import"./VTable-Dj5EC5Aq.js";import"./confirm-dialog-uoXMmYq3.js";import"./VExpansionPanels-82Ocr2Kh.js";import"./VRadioGroup-DeB10IRm.js";import"./VCheckbox--IZv20K5.js";import"./index-DCZ6v5x6.js";const f={name:"PagerFullPDF",components:{PageChangeLink:k,PDFDoc:P,ScaleForScroll:g},props:{book:{type:Object,required:!0}},emits:["load","error","unauthorized"],computed:{...c(d,{page:r=>r.page||0}),src(){return _(this.book)}}};function F(r,D,a,S,h,p){const t=e("PageChangeLink"),n=e("PDFDoc"),i=e("ScaleForScroll");return l(),s("span",null,[o(t,{direction:"prev"}),o(t,{direction:"next"}),o(i,null,{default:u(()=>[o(n,{book:a.book,page:r.page,src:p.src},null,8,["book","page","src"])]),_:1})])}const M=m(f,[["render",F]]);export{M as default};
@@ -1 +0,0 @@
1
- import{g as pe,p as me,f as rt,t as D,u as ve,b as m,n as de,d as I,J as Te,aX as Ie,_ as C,x as f,V as Ce,z as le,w as T,m as Q,v as l,a5 as Me,a as u,D as B,aY as ot,M as L,q as p,G as h,A as w,av as lt,ad as Se,aZ as ut,a_ as dt,ay as ct,s as y,B as ue,a$ as mt,b0 as ht,T as ft,$ as Be,y as $,b1 as pt,b2 as Le,l as vt,b3 as gt,F as ce,af as bt,ab as kt,ac as yt,a8 as Ae,E as _t,b4 as St,aa as wt,X as Tt,c as g,b5 as xe,aC as Ve,aT as Pe,r as fe,b6 as Ct,b7 as we,aW as Mt,aV as Bt,i as Ge,b8 as Vt,h as ie,S as $e,aQ as Rt,e as Nt}from"./main-Bmi4BPiO.js";import{B as It,V as ge,k as ne,n as Lt,v as xt,j as Pt,R as Fe,t as $t,u as Ft,i as Dt,c as De,f as Et}from"./forwardRefs-FxOC1qa_.js";import{c as zt,d as Ot}from"./VSelect-4ozzBEef.js";import{a as At,c as Gt,d as jt,V as Ut}from"./VDialog-Oz6-kM3S.js";import{C as qt}from"./change-password-dialog-DpqXgZ53.js";import{d as Ht,f as Kt,u as Wt,g as Ee,m as Yt,h as Zt,i as Xt}from"./VSelectionControl-D3h7FjSM.js";import{V as je}from"./VTable-Dj5EC5Aq.js";import{C as Ue}from"./confirm-dialog-uoXMmYq3.js";import{P as Qt,V as Jt}from"./unauthorized-DXoWE_v2.js";const ea=me({...Te(),...It({variant:"text"})},"VToolbarItems"),fi=pe()({name:"VToolbarItems",props:ea(),setup(e,t){let{slots:a}=t;return rt({VBtn:{color:D(()=>e.color),height:"inherit",variant:D(()=>e.variant)}}),ve(()=>m("div",{class:I(["v-toolbar-items",e.class]),style:de(e.style)},[a.default?.()])),{}}}),_e=new Set(["",Ie,Ie.toString(),void 0]),ta=function(e){let t;if(_e.has(e))t=e;else if(e instanceof Object)if("ids"in e){const a=new Set(e.ids);_e.intersection(a).size>0?t=void 0:t={value:e.ids.join(","),title:e.name}}else _e.has(e.pk)?t=void 0:t={value:e.pk,title:e.name};else t={value:e,title:e.toString()};return e?.url&&(t.url=e.url),t},aa=function(e,t){return e.title.localeCompare(t.title)},sa=function(e,t){return Number.parseFloat(e.title)-Number.parseFloat(t.title)},ze=function({items:e,filter:t,numeric:a=!1,sort:r=!0}){const n=e||[],s=t&&t.toLowerCase();let i=[];for(const o of n){const d=ta(o);d!=null&&(!s||d?.title?.toLowerCase().includes(s))&&i.push(d)}if(r){const o=a?sa:aa;i=i.sort(o)}return i},ia={name:"ToolbarSelect",props:{selectLabel:{type:String,default:""},maxSelectLen:{type:Number,default:0}},computed:{style(){if(this.maxSelectLen){const e=this.$vuetify.display.xs?"max-width":"width",t=this.maxSelectLen*.7+"em";return`${e}: ${t}`}return""}}};function na(e,t,a,r,n,s){return l(),f(zt,Q(e.$attrs,{label:a.selectLabel,"aria-label":a.selectLabel,class:"toolbarSelect",density:"compact","full-width":"","menu-props":{maxHeight:void 0},"hide-details":"auto",style:s.style,variant:"plain"}),Ce({item:T(({item:i,props:o})=>[u(At,Q(o,{density:"compact",variant:"plain",title:i.title,value:i.value}),null,16,["title","value"])]),_:2},[le(e.$slots,(i,o)=>({name:o,fn:T(d=>[Me(e.$slots,o,Q({props:i},d),void 0,!0)])}))]),1040,["label","aria-label","style"])}const pi=C(ia,[["render",na],["__scopeId","data-v-cda2da63"]]),vi=Gt("v-spacer","div","VSpacer"),ra={name:"BookCover",props:{group:{type:String,required:!0},pks:{type:Array,required:!0},childCount:{type:Number,default:1},finished:{type:Boolean},mtime:{type:Number,default:Date.now()}},data(){return{showPlaceholder:!1}},computed:{...B(L,["coverSettings"]),coverSrc(){return ot({group:this.group,pks:this.pks},this.coverSettings,this.mtime)},multiPkClasses(){const e=this.pks.length,t={};return e>=4?t.stack4=!0:e>1&&(t[`stack${e}`]=!0),t}},mounted:function(){this.delayPlaceholder()},methods:{delayPlaceholder:function(){setTimeout(()=>{this.showPlaceholder=!0},2e3)}}},oa={class:"bookCover"},la={key:1,class:"childCount"};function ua(e,t,a,r,n,s){return l(),p("div",oa,[u(jt,{src:s.coverSrc,class:I(["coverImg",s.multiPkClasses])},null,8,["src","class"]),a.finished!==!0?(l(),p("div",{key:0,class:I({unreadFlag:!0,mixedreadFlag:a.finished===null})},null,2)):h("",!0),a.group!=="c"?(l(),p("span",la,w(a.childCount),1)):h("",!0)])}const da=C(ra,[["render",ua],["__scopeId","data-v-8e8f21d5"]]),ca=10,ma={name:"DownloadButton",components:{ConfirmDialog:Ue},props:{button:{type:Boolean,default:!1},item:{type:Object,required:!0}},data(){return{mdiDownload:ct}},computed:{...B(L,["filterOnlySettings","groupNames"]),show(){return this.item?.ids?.length>0&&!this.item.ids.includes(0)},isOneComic(){return this.item?.group==="c"&&this.item?.ids?.length===1},downloadFn(){return this.isOneComic?this.item.name:`${this.groupNames[this.item?.group]} - ${this.item.name} Comics.zip`},downloadURL(){let e="";if(this.isOneComic){const t=this.item.ids[0];e=ut({pk:t},this.downloadFn,this.item?.mtime)}else{const t=this.item?.group,a=this.item?.ids,r=this.filterOnlySettings;e=dt({group:t,pks:a},this.downloadFn,r,this.item?.mtime)}return e},formattedChildren(){return Se.format(this.item?.childCount)},title(){let e="Download";return e+=this.isOneComic?" Book":` ${this.formattedChildren} Books`,e},confirm(){return this.item?.childCount>ca},confirmText(){return this.confirm?`Download ${this.formattedChildren} books`:""}},methods:{download(){const e=this.downloadURL,t=this.downloadFn;if(this.isOneComic)lt(e,t);else{const a=document.createElement("a");a.download=this.downloadFn,a.href=this.downloadURL,a.click(),a.remove()}}}};function ha(e,t,a,r,n,s){const i=y("ConfirmDialog");return s.show?(l(),f(i,{key:0,button:a.button,"button-text":s.title,confirm:s.confirm,"confirm-text":"Download","prepend-icon":n.mdiDownload,"title-text":s.title,text:"May take a while",onConfirm:s.download},null,8,["button","button-text","confirm","prepend-icon","title-text","onConfirm"])):h("",!0)}const fa=C(ma,[["render",ha],["__scopeId","data-v-4c14087b"]]),pa=1,va={name:"MarkReadButton",components:{ConfirmDialog:Ue},props:{button:{type:Boolean,default:!1},item:{type:Object,required:!0}},computed:{...B(L,["groupNames"]),verb(){return this.item.finished?"Unread":"Read"},confirm(){return this.item.children>pa},show(){return this.item?.ids?.length>0&&!this.item.ids.includes(0)},icon(){return this.item.finished?mt:ht},confirmText(){return this.confirm?`Mark ${this.verb}`:""},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");const t=this.groupNames[this.item.group];return e.push(t,this.verb),e.join(" ")},itemName(){return this.item.name||"(Empty)"}},methods:{...ue(L,["setBookmarkFinished"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished)}}};function ga(e,t,a,r,n,s){const i=y("ConfirmDialog");return s.show?(l(),f(i,{key:0,button:a.button,"button-text":s.markReadText,confirm:s.confirm,"confirm-text":s.confirmText,"prepend-icon":s.icon,"title-text":s.markReadText,text:s.itemName,onConfirm:s.toggleRead},null,8,["button","button-text","confirm","confirm-text","prepend-icon","title-text","text","onConfirm"])):h("",!0)}const ba=C(va,[["render",ga],["__scopeId","data-v-7b148c61"]]),ka=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],ya=["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],_a=["b","kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],Sa=["b","kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],Oe=(e,t,a)=>{let r=e;return typeof t=="string"||Array.isArray(t)?r=e.toLocaleString(t,a):(t===!0||a!==void 0)&&(r=e.toLocaleString(void 0,a)),r},qe=e=>{if(typeof e=="number")return Math.log10(e);const t=e.toString(10);return t.length+Math.log10("0."+t.slice(0,15))},wa=e=>typeof e=="number"?Math.log(e):qe(e)*Math.log(10),Ta=(e,t)=>{if(typeof e=="number")return e/t;const a=e/BigInt(t),r=e%BigInt(t);return Number(a)+Number(r)/t};function He(e,t){if(typeof e!="bigint"&&!Number.isFinite(e))throw new TypeError(`Expected a finite number, got ${typeof e}: ${e}`);t={bits:!1,binary:!1,space:!0,...t};const a=t.bits?t.binary?Sa:_a:t.binary?ya:ka,r=t.space?" ":"";if(t.signed&&(typeof e=="number"?e===0:e===0n))return` 0${r}${a[0]}`;const n=e<0,s=n?"-":t.signed?"+":"";n&&(e=-e);let i;if(t.minimumFractionDigits!==void 0&&(i={minimumFractionDigits:t.minimumFractionDigits}),t.maximumFractionDigits!==void 0&&(i={maximumFractionDigits:t.maximumFractionDigits,...i}),e<1){const M=Oe(e,t.locale,i);return s+M+r+a[0]}const o=Math.min(Math.floor(t.binary?wa(e)/Math.log(1024):qe(e)/3),a.length-1);e=Ta(e,(t.binary?1024:1e3)**o),i||(e=e.toPrecision(3));const d=Oe(Number(e),t.locale,i),b=a[o];return s+d+r+b}const Ca={name:"MetadataExpandButton"};function Ma(e,t,a,r,n,s){return l(),f(ge,{density:"compact",text:"...expand",variant:"text"})}const Ba=C(Ca,[["render",Ma]]),Va={name:"MetadataTextBox",components:{ExpandButton:Ba},props:{group:{type:String,default:""},highlight:{type:Boolean,default:!1},label:{type:String,default:""},maxHeight:{type:Number,default:0},value:{type:[Object,String,Number,Boolean],default:void 0}},data(){return{mdiOpenInNew:Be,expanded:!1,mounted:!1}},computed:{...B(L,["groupNames"]),...B(L,{browserShow:e=>e.settings.show,browserTopGroup:e=>e.settings.topGroup,folderViewEnabled:e=>e.page.adminFlags.folderView}),computedValue(){return this.value&&this.value.name!==void 0?this.value.name:this.value},lastSlashIndex(){return this.computedValue.lastIndexOf("/")+1},displayValue(){let e;return this.group==="f"&&this.computedValue?e=this.computedValue.slice(0,Math.max(0,this.lastSlashIndex)):this.group==="v"&&this.computedValue?e=ft(this.computedValue,this.value.numberTo):e=this.computedValue,e},textValueStyles(){const e=this.maxHeight>0&&!this.expanded?this.maxHeight:0;return e?"max-height: "+e+"px;":""},textValueRefName(){return"mdTextValue"+this.label.replaceAll(" ","")},isOverflow(){if(!this.mounted)return!1;const e=this.$refs[this.textValueRefName];return e?e.clientHeight<e.scrollHeight:!1},showExpandButton(){return!this.expanded&&this.maxHeight>0&&this.isOverflow},linkPks(){return(this.value.ids||[this.value.pk]).join(",")},clickable(){const e=this.$router.currentRoute.value.params;return!this.group||e.group===this.group||this.group==="f"&&!this.folderViewEnabled||!["a","f"].includes(this.group)&&!this.browserShow[this.group]?!1:!!this.linkPks?.length},classes(){return{clickable:this.clickable,highlight:this.highlight}},toRoute(){if(!this.clickable)return"";const e=this.group,t=this.linkPks;return{name:"browser",params:{group:e,pks:t,page:1}}},linkSettings(){return{topGroup:this.getTopGroup(this.group)}},title(){let e;return this.label?e=this.label:this.group?e=this.groupNames[this.group]:e="",this.toRoute?`Browse to ${e}`:e},baseName(){return this.group==="f"?this.computedValue.slice(Math.max(0,this.lastSlashIndex)):""}},mounted(){this.mounted=!0},methods:{...ue(L,["routeWithSettings","getTopGroup"]),onClick(){this.clickable&&this.routeWithSettings(this.linkSettings,this.toRoute)}}},Ra={key:0,class:"text"},Na={key:0,class:"textLabel"},Ia=["title"],La={key:0,class:"textContent"};function xa(e,t,a,r,n,s){const i=y("ExpandButton");return s.displayValue?(l(),p("div",Ra,[a.label?(l(),p("div",Na,[$(w(a.label)+" ",1),s.showExpandButton?(l(),f(i,{key:0,class:"expandButton",onClick:t[0]||(t[0]=o=>n.expanded=!0)})):h("",!0)])):h("",!0),u(Ht,null,{default:T(()=>[m("div",null,[m("div",{ref:s.textValueRefName,class:"textValue",style:de(s.textValueStyles)},[m("span",{class:I(["textContent",s.classes]),title:s.title,onClick:t[1]||(t[1]=(...o)=>s.onClick&&s.onClick(...o))},w(s.displayValue),11,Ia),s.baseName?(l(),p("span",La,w(s.baseName),1)):h("",!0)],4),s.showExpandButton&&!a.label?(l(),f(i,{key:0,class:"expandButton",onClick:t[2]||(t[2]=o=>n.expanded=!0)})):h("",!0)])]),_:1})])):h("",!0)}const Re=C(Va,[["render",xa],["__scopeId","data-v-847af0f1"]]),Ke=["writer","author","plotter","plot","script","scripter","story","interviewer","translator","artist","penciller","breakdowns","pencils","illustrator","layouts","inker","finishes","inks","embellisher","inkAssists","colorist","colorer","colourer","colors","colours","colorDesigner","colorFlats","colorSeparations","designer","digitalArtTechnician","grayTone","letterer","cover","covers","coverArtist","editor","edits","editing"];Object.freeze(Ke);const We=["genres","characters","teams","locations","seriesGroups","stories","storyArcNumbers","tags","universes"];Object.freeze(We);const Ye=new Set(["Characters","Teams"]);Object.freeze(Ye);function Pa(e,t){const a=e.name.split(" ").pop(),r=t.name.split(" ").pop();return a.localeCompare(r)}const A=pt("metadata",{state:()=>({md:void 0}),getters:{roleMap(e){const t={};for(const{role:a}of e.md.credits){const r=a?.name?a.name:"Other";t[r]=a}return t},_mappedCredits(e){const t={};if(!e?.md?.credits)return t;for(const{role:a,person:r}of e.md.credits){const n=a?.name?a.name:"Other";n in t||(t[n]=[]),t[n].push(r)}for(const[a,r]of Object.entries(t))t[a]=r.sort(Pa);return t},_sortedRoles(e){const t=new Set(Object.keys(e._mappedCredits)),a=[];for(const n of Ke)t.has(n)&&(a.push(n),t.delete(n));const r=[...t].sort();return[...a,...r]},credits(e){return this.mapTag(e._mappedCredits,e._sortedRoles)},identifiers(e){const t=[];if(!e.md?.identifiers)return t;for(const a of e.md.identifiers){const r=a.name.split(":"),n=r[0],s=r[1],i=L().identifierSourceTitle(n);let o="";i&&i!=="None"&&(o+=i+":"),o+=s;const d={pk:a.pk,url:a.url,name:o};t.push(d)}return t},tags(e){const t=e.mapTag(e.md,We);e.identifiers?.length&&(t.Identifiers={filter:"identifiers",tags:this.identifiers});for(const a of Object.values(t))a.tags=a.tags.sort((r,n)=>r.name.localeCompare(n.name));return t}},actions:{async loadMetadata({group:e,pks:t}){await Le.getMetadata({group:e,pks:t},L().metadataSettings).then(a=>{const r={...a.data};return r.loaded=!0,this.md=r,!0}).catch(a=>{console.error(a),this.clearMetadata()})},clearMetadata(){this.md=void 0},getTagName(e){var t;return e==="storyArcNumbers"?t="Story Arcs":t=vt(e),t},markTagMain(e,t){const a="main"+e.slice(0,-1),r=this.md[a]?.pk,n=[];var s=[];for(const i of t)r===i.pk?s.push(i):n.push(i);return{mainTags:s,regularTags:n}},mapTag(e,t){const a={};for(const s of t){const i=e[s];if(!i?.length)continue;const o=this.getTagName(s);var r=[],n=[];Ye.has(o)?{mainTags:r,regularTags:n}=this.markTagMain(o,i):n=i,a[o]={filter:s,tags:n,mainTags:r}}return a},lazyImport({group:e,ids:t}){return Le.getLazyImport({group:e,pks:t})}}}),$a={name:"MetadataRatings",components:{MetadataText:Re},computed:{...B(A,{md:e=>e.md}),show(){return this.md?.criticRating!==void 0||this.md?.ageRating}}},Fa={key:0},Da={key:1};function Ea(e,t,a,r,n,s){const i=y("MetadataText");return s.show?(l(),f(je,{key:0},{default:T(()=>[m("tbody",null,[e.md.criticalRating?(l(),p("tr",Fa,[t[0]||(t[0]=m("td",{class:"key"},"Critical Rating",-1)),m("td",null,[u(i,{value:e.md.criticalRating},null,8,["value"])])])):h("",!0),e.md.ageRating?(l(),p("tr",Da,[t[1]||(t[1]=m("td",{class:"key"},"Age Rating",-1)),m("td",null,[u(i,{value:e.md.ageRating.name},null,8,["value"])])])):h("",!0)])]),_:1})):h("",!0)}const za=C($a,[["render",Ea],["__scopeId","data-v-8b5cb217"]]),Oa=new Set(["p","i","s","v"]),Aa={name:"MetadataTags",props:{item:{type:Object,required:!0},filter:{type:String,default:""},main:{type:Boolean,default:!1}},data(){return{mdiStar:gt,mdiOpenInNew:Be}},computed:{...B(L,{browserShow:e=>e.settings.show,filterValues(e){return e.settings.filters[this.filter]},topGroup:e=>e.settings.topGroup}),...B(A,{mdGroup:e=>e.md.group,mdIds:e=>e.md.ids}),groupMode(){return Oa.has(this.filter)},clickable(){return this.filter&&this.item.value&&(!this.groupMode||this.browserShow[this.filter])},classes(){return{clickable:(this.clickable||this.item.url)&&!this.highlight}},highlight(){return!!(this.groupMode&&this.filter===this.mdGroup&&this.mdIds.includes(this.item.value)||this.filterValues?.includes(this.item.value))},variant(){return this.highlight?"flat":"tonal"},color(){const e=this.$vuetify.theme.current.colors;return this.highlight?e["primary-darken-1"]:""},linkGroup(){let e;return this.groupMode?e=this.filter:e=["f","s"].includes(this.topGroup)?this.topGroup:"r",e},linkPks(){return this.groupMode||this.linkGroup!=="a"&&this.filter==="storyArcs"?this.item.value.toString():"0"},toRoute(){if(!this.clickable)return"";const e=this.linkGroup,t=this.linkPks;return{name:"browser",params:{group:e,pks:t,page:1}}},linkSettings(){let e;return this.linkPks==="0"?e={filters:{[this.filter]:[this.item.value]}}:e={topGroup:this.getTopGroup(this.linkGroup)},e},title(){return this.filter==="identifiers"?this.identifierSourceTitle(this.item.title):this.item.title}},methods:{...ue(L,["routeWithSettings","getTopGroup","identifierSourceTitle"]),async onClick(){this.clickable&&this.routeWithSettings(this.linkSettings,this.toRoute)}}},Ga=["href"],ja={key:1};function Ua(e,t,a,r,n,s){return l(),f(Ot,{class:I(s.classes),color:s.color,value:a.item.value,variant:s.variant,onClick:s.onClick},{default:T(()=>[a.item.url?(l(),p("a",{key:0,href:a.item.url,target:"_blank"},[a.main?(l(),f(ne,{key:0,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0),$(w(s.title)+" ",1),a.main?(l(),f(ne,{key:1,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0),u(ne,null,{default:T(()=>[$(w(n.mdiOpenInNew),1)]),_:1})],8,Ga)):(l(),p("span",ja,[a.main?(l(),f(ne,{key:0,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0),$(" "+w(s.title)+" ",1),a.main?(l(),f(ne,{key:1,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0)]))]),_:1},8,["class","color","value","variant","onClick"])}const qa=C(Aa,[["render",Ua],["__scopeId","data-v-1da1eb5b"]]),Ha={name:"MetadataTags",components:{MetadataChip:qa},props:{label:{type:String,default:""},values:{type:Array,default(){return[]}},mainValues:{type:Array,default(){return[]}},filter:{type:String,required:!1,default:void 0}},computed:{mainItems(){return ze({items:this.mainValues,sort:!1})},items(){let e;return this.filter==="universes"?e=this.fixUniverseTitles(this.values):e=this.values,ze({items:e,sort:!1})}},methods:{...ue(L,["fixUniverseTitles"])}},Ka={key:0},Wa={key:0,class:"chipGroupLabel"};function Ya(e,t,a,r,n,s){const i=y("MetadataChip");return s.items?.length>0?(l(),p("div",Ka,[a.label?(l(),p("div",Wa,w(a.label),1)):h("",!0),m("div",null,[(l(!0),p(ce,null,le(s.mainItems,o=>(l(),f(i,{key:`${a.filter}/${o.value}`,filter:a.filter,item:o,main:!0},null,8,["filter","item"]))),128)),(l(!0),p(ce,null,le(s.items,o=>(l(),f(i,{key:`${a.filter}/${o.value}`,filter:a.filter,item:o},null,8,["filter","item"]))),128))])])):h("",!0)}const Ze=C(Ha,[["render",Ya],["__scopeId","data-v-836d9fbb"]]),Za={name:"MetadataTagsTable",components:{MetadataTags:Ze},data(){return{mdiOpenInNew:Be}},props:{keyMap:{type:Object,default:void 0},tagMap:{type:Object,required:!0}},computed:{show(){return Object.keys(this.tagMap).length>0}}},Xa={key:0,class:"key keyLink"},Qa={href:"keyMap[key].url"},Ja={key:1,class:"key"},es={class:"tags"};function ts(e,t,a,r,n,s){const i=y("MetadataTags");return s.show?(l(),f(je,{key:0},{default:T(()=>[m("tbody",null,[(l(!0),p(ce,null,le(Object.entries(a.tagMap),([o,{filter:d,tags:b,mainTags:M}])=>(l(),p("tr",{key:o},[a.keyMap&&a.keyMap[o]&&a.keyMap[o].url?(l(),p("td",Xa,[m("a",Qa,[$(w(o),1),u(ne,null,{default:T(()=>[$(w(n.mdiOpenInNew),1)]),_:1})])])):(l(),p("td",Ja,w(o),1)),m("td",es,[u(i,{filter:d,values:b,mainValues:M},null,8,["filter","values","mainValues"])])]))),128))])]),_:1})):h("",!0)}const as=C(Za,[["render",ts],["__scopeId","data-v-56102c2c"]]),ss={name:"MetadataBody",components:{MetadataRatings:za,MetadataTagsTable:as,MetadataText:Re},props:{book:{type:Object,required:!0}},computed:{...B(A,["credits","ratings","tags"]),...B(L,{twentyFourHourTime:e=>e.settings?.twentyFourHourTime,readingDirectionTitles:e=>e.choices.static.readingDirection}),...B(A,{md:e=>e.md,roleMap:e=>e.roleMap}),readingDirectionText(){return this.md?this.readingDirectionTitles[this.md.readingDirection]:"Unknown"},size(){return this?.md?.size>0?He(this.md.size):0},sizeLabel(){return this?.md?.group==="c"?"Size":"Total Size"},fileType(){return this?.md?.fileType||"Unknown"}},methods:{formatDateTime(e){return bt(e,this.twentyFourHourTime)}}},is={id:"metadataBody"},ns={class:"mdSection"},rs={class:"mdSection"},os={class:"quarterRow"},ls={class:"thirdRow"},us={class:"lastSmallRow"},ds={key:0,class:"halfRow mdSection"},cs={class:"mdSection"},ms={class:"inlineRow"},hs={class:"inlineRow"};function fs(e,t,a,r,n,s){const i=y("MetadataText"),o=y("MetadataTagsTable"),d=y("MetadataRatings");return l(),p("div",is,[m("section",ns,[u(i,{value:e.md.summary,"max-height":100},null,8,["value"]),u(i,{value:e.md.review,label:"Review","max-height":100},null,8,["value"])]),u(o,{"key-map":e.roleMap,"tag-map":e.credits,class:"mdSection"},null,8,["key-map","tag-map"]),m("section",rs,[m("div",os,[e.md.createdAt?(l(),f(i,{key:0,value:s.formatDateTime(e.md.createdAt),label:"Created at",class:"mtime"},null,8,["value"])):h("",!0),e.md.updatedAt?(l(),f(i,{key:1,value:s.formatDateTime(e.md.updatedAt),label:"Updated at",class:"mtime"},null,8,["value"])):h("",!0),u(i,{value:s.size,label:s.sizeLabel},null,8,["value","label"]),u(i,{value:s.fileType,label:"File Type"},null,8,["value"])]),m("div",ls,[u(i,{label:"Reading Direction",value:s.readingDirectionText},null,8,["value"]),u(i,{value:e.md.originalFormat?.name,label:"Original Format"},null,8,["value"]),u(i,{value:(!!e.md.monochrome).toString(),label:"Monochrome"},null,8,["value"])]),m("div",us,[u(i,{group:"f",value:{pk:e.md.parentFolderId,name:e.md.path},label:"Path"},null,8,["value"])])]),e.md?.country||e.md?.language?(l(),p("section",ds,[u(i,{value:e.md.country?.name,label:"Country"},null,8,["value"]),u(i,{value:e.md.language?.name,label:"Language"},null,8,["value"])])):h("",!0),u(d,{class:"mdSection"}),u(o,{"tag-map":e.tags,class:"mdSection"},null,8,["tag-map"]),m("section",cs,[m("section",ms,[u(i,{value:e.md.notes,label:"Notes"},null,8,["value"])]),m("section",hs,[u(i,{value:e.md.tagger,label:"Tagger"},null,8,["value"]),u(i,{value:e.md.scanInfo,label:"Scan"},null,8,["value"])])])])}const ps=C(ss,[["render",fs],["__scopeId","data-v-e65fff8f"]]),Xe=new Set("rtl","btt");Object.freeze(Xe);const Qe=({ids:e,page:t,readingDirection:a,pageCount:r},n)=>{if(e.length===0||n&&!r)return"";const s=e[0];if(t)t=Number(t);else if(Xe.has(a)){const i=Number(r)-1;t=Math.max(i,0)}else t=0;return{name:"reader",params:{pk:s,page:t}}},Je={p:"publisher",i:"imprint",s:"series",v:"volume",f:"folder",a:"storyArc"};Object.freeze(Je);const vs={name:"MetadataControls",components:{DownloadButton:fa,MarkReadButton:ba},props:{group:{type:String,required:!0}},computed:{...B(A,{md:e=>e.md}),...B(L,{importMetadata:e=>e.page?.adminFlags?.importMetadata}),downloadName(){const e=this.md;let t;if(!e)t="Unknown.cbz";else if(e.fileName)t=e.fileName;else{if(this.md.group==="f")return[this.firstNameFromList(e.folderList)];if(this.md.group==="a")return[this.firstNameFromList(e.storyArcList)];t=[this.firstNameFromList(e.publisherList),this.firstNameFromList(e.imprintList),this.firstNameFromList(e.seriesList),this.firstNameFromList(e.volumeList),Ae(this.md,3),this.md.name].filter(Boolean).join(" ")}return t},downloadItem(){return{group:this.md?.group,ids:this.md?.ids,childCount:this.md?.childCount,mtime:this.md?.mtime,name:this.downloadName}},isReadButtonShown(){return this.group==="c"&&this.$route.name!="reader"},isReadButtonEnabled(){return!!this.readerRoute},markReadItem(){let e="";const t=Je[this.md.group];return t?e=(this.md[t+"List"]||[]).map(({name:n})=>n).join(", "):e=this.md.name,{group:this.md.group,ids:this.md.ids,finished:this.md.finished,name:e,children:this.md.childCount||1}},readButtonIcon(){return this.isReadButtonEnabled?kt:yt},readerRoute(){return this.md?.ids?Qe(this.md,this.importMetadata):{}},size(){return this.$vuetify.display.smAndDown?"x-small":"default"}},methods:{firstNameFromList(e){let t="";if(!e)return t;for(const a of Object.values(e))if(a.name){t=a.name;break}return t}}},gs={class:"controlRow"};function bs(e,t,a,r,n,s){const i=y("DownloadButton"),o=y("MarkReadButton");return l(),p("section",gs,[u(i,{id:"downloadButton",button:!0,item:s.downloadItem,size:s.size},null,8,["item","size"]),u(o,{id:"markReadButton",button:!0,item:s.markReadItem,size:s.size},null,8,["item","size"]),s.isReadButtonShown?(l(),f(ge,{key:0,id:"readButton",title:"Read Comic",disabled:!s.isReadButtonEnabled,size:s.size,to:s.readerRoute},{default:T(()=>[u(ne,null,{default:T(()=>[$(w(s.readButtonIcon),1)]),_:1}),t[0]||(t[0]=$(" Read ",-1))]),_:1,__:[0]},8,["disabled","size","to"])):h("",!0)])}const ks=C(vs,[["render",bs],["__scopeId","data-v-d254bb05"]]),ys={name:"MetadataBookCover",components:{BookCover:da},props:{group:{type:String,required:!0}},computed:{...B(A,{md:e=>e.md})}},_s={class:"bookCoverWrapper"};function Ss(e,t,a,r,n,s){const i=y("BookCover");return l(),p("div",_s,[u(i,{id:"bookCover",group:a.group,pks:e.md.ids,"child-count":e.md.childCount,finished:e.md.finished,mtime:e.md.mtime},null,8,["group","pks","child-count","finished","mtime"]),u(Lt,{class:"bookCoverProgress","model-value":e.md.progress,rounded:"","background-color":"inherit",height:"2","aria-label":"% read"},null,8,["model-value"])])}const ws=C(ys,[["render",Ss],["__scopeId","data-v-3a0db03b"]]),Ts={name:"MetadataHeader",components:{MetadataBookCover:ws,MetadataControls:ks,MetadataTags:Ze,MetadataText:Re},props:{group:{type:String,required:!0}},computed:{...B(L,{importMetadata:e=>e.page?.adminFlags?.importMetadata,q:e=>e.settings.q}),...B(A,{md:e=>e.md}),collectionTitle(){if(this.md.collectionTitle)return`${this.md.collectionTitle}:`},date(){if(!this.md.year&&!this.md.month&&!this.md.day)return"";const e=new Date(this.md.year||1970,this.md.month||1,this.md.day||1),t={};return this.md.year&&(t.year="numeric"),this.md.month&&(t.month=this.$vuetify.display.smAndDown?"short":"long"),this.md.day&&(t.day="numeric"),e.toLocaleDateString("default",t)},readerRoute(){return this.md?.ids?Qe(this.md,this.importMetadata):{}},formattedIssueNumber(){if(!this.md)return"Unknown";if(!((this.md.issueNumber===null||this.md.issueNumber===void 0)&&!this.md.issueSuffix))return"#"+Ae(this.md)},pages(){let e="";if(!this.md)return e;if(this.md.page){const a=Se.format(this.md.page);e+=this.$vuetify.display.smAndDown?`${a} / `:`Read ${a} of `}const t=Se.format(this.md.pageCount);return e+=`${t} page`,this.md.pageCount!==1&&(e+="s"),this.$vuetify.display.smAndUp&&this.md.progress>0&&(e+=` (${Math.round(this.md.progress)}%)`),e},size(){return this?.md?.size>0?He(this.md.size):0},fileType(){return this?.md?.fileType||"Unknown"},seriesVolumeCount(){const e=this.md.seriesVolumeCount;return e?`of ${e}`:""},volumeIssueCount(){const e=this.md.volumeIssueCount;return e?`/ ${e}`:""}}},Cs={id:"metadataHeader"},Ms={key:1,id:"seriesHeader"},Bs={id:"seriesRow",class:"inlineRow"},Vs={key:2,id:"titleRow"},Rs={key:4,id:"publisherRow",class:"inlineRow"},Ns={key:7,id:"pageDateRow",class:"inlineRow"};function Is(e,t,a,r,n,s){const i=y("MetadataText"),o=y("MetadataBookCover"),d=y("MetadataTags"),b=y("MetadataControls");return l(),p(ce,null,[m("header",Cs,[e.q?(l(),f(i,{key:0,id:"search",value:e.q,label:"Search Query",highlight:!0},null,8,["value"])):h("",!0),u(o,{id:"metadataBookCover",group:a.group},null,8,["group"]),e.md.seriesList?.length===1?(l(),p("section",Ms,[m("div",Bs,[(l(),f(i,{id:"series",key:e.md.seriesList[0].ids,value:e.md.seriesList[0],group:"s",highlight:e.md.group==="s"},null,8,["value","highlight"])),e.md.volumeList?.length===1?(l(),f(i,{id:"volume",key:e.md.volumeList[0].ids,value:e.md.volumeList[0],group:"v",highlight:e.md.group==="v"},null,8,["value","highlight"])):h("",!0),u(i,{value:s.seriesVolumeCount,class:"subdued"},null,8,["value"]),u(i,{id:"issue",value:s.formattedIssueNumber,group:"c",highlight:e.md.group==="c"},null,8,["value","highlight"]),u(i,{value:s.volumeIssueCount,class:"subdued"},null,8,["value"])])])):h("",!0),e.md.name?(l(),p("span",Vs,w(s.collectionTitle)+" "+w(e.md.name),1)):h("",!0),e.md.seriesList?.length>1?(l(),f(d,{key:3,id:"seriesTags",class:"groupTags",label:"Series",values:e.md.seriesList,filter:"s"},null,8,["values"])):h("",!0),m("div",null,[e.md.volumeList?.length>1?(l(),f(d,{key:0,id:"volumeTags",class:"groupTags",label:"Volumes",values:e.md.volumeList,filter:"v"},null,8,["values"])):h("",!0)]),e.md.publisherList?.length===1?(l(),p("div",Rs,[(l(),f(i,{id:"publisher",key:e.md.publisherList[0].ids,group:"p",highlight:e.md.group==="p",value:e.md.publisherList[0]},null,8,["highlight","value"])),e.md.imprintList?.length===1?(l(),f(i,{id:"imprint",key:e.md.imprintList[0].ids,group:"i",highlight:e.md.group==="i",value:e.md.imprintList[0]},null,8,["highlight","value"])):h("",!0)])):h("",!0),e.md.publisherList?.length>1?(l(),f(d,{key:5,id:"publisherTags",class:"groupTags",label:"Publishers",values:e.md.publisherList,filter:"p"},null,8,["values"])):h("",!0),e.md.imprintList?.length>1?(l(),f(d,{key:6,id:"imprintTags",class:"groupTags",label:"Imprints",values:e.md.imprintList,filter:"i"},null,8,["values"])):h("",!0),s.pages||e.md.year||e.md.month||e.md.day?(l(),p("div",Ns,[u(i,{value:s.pages},null,8,["value"]),u(i,{value:s.date,class:"datePicker"},null,8,["value"])])):h("",!0)]),u(b,{id:"controls",group:a.group},null,8,["group"])],64)}const Ls=C(Ts,[["render",Is],["__scopeId","data-v-a05541e5"]]),xs={name:"MetadataActivator",props:{book:{type:Object,required:!0},toolbar:{type:Boolean,require:!0}},data(){return{mdiTagOutline:St}},computed:{...B(_t,{lazyImportEnabled:e=>e.adminFlags.lazyImportMetadata}),variant(){return this.toolbar?"plain":"text"}},methods:{...ue(A,["lazyImport"]),onMouseEnter(){if(this.lazyImportEnabled&&this.book.group==="c"&&!this.book.hasMetadata){const e=this.book.ids||[this.book.pk];this.lazyImport({group:this.book.group,ids:e}),this.book.hasMetadata=!0}}}};function Ps(e,t,a,r,n,s){return l(),f(ge,{onMouseenter:s.onMouseEnter,"aria-label":"tags",class:"tagButton cardControlButton",variant:s.variant,icon:n.mdiTagOutline,title:"Tags",onClick:t[0]||(t[0]=wt(()=>{},["prevent"]))},null,8,["onMouseenter","variant","icon"])}const $s=C(xs,[["render",Ps]]),Fs=1160,Ds=.05,Es=250,zs={name:"MetadataButton",components:{CloseButton:qt,MetadataActivator:$s,MetadataBody:ps,MetadataHeader:Ls,PlaceholderLoading:Qt},props:{book:{type:Object,required:!0},toolbar:{type:Boolean,default:!1}},data(){return{dialog:!1,progress:0}},computed:{...B(A,{md:e=>e.md}),showContainer(){return this.md?.loaded||!1},children(){return this.book.childCount||0}},watch:{dialog(e){e?this.dialogOpened():this.clearMetadata()}},methods:{...ue(A,["clearMetadata","loadMetadata"]),dialogOpened(){const e=this.book.ids||[this.book.pk],t={group:this.book.group,pks:e};this.loadMetadata(t),this.startProgress()},startProgress(){this.startTime=Date.now(),this.estimatedMS=Math.max(Ds,this.children/Fs)*1e3,this.updateProgress()},updateProgress(){const e=Date.now()-this.startTime;this.progress=e/this.estimatedMS*100,!(this.progress>=100||this.md)&&setTimeout(()=>{this.updateProgress()},Es)}}},Os={key:1,id:"placeholderContainer"};function As(e,t,a,r,n,s){const i=y("MetadataActivator"),o=y("CloseButton"),d=y("MetadataHeader"),b=y("MetadataBody"),M=y("PlaceholderLoading");return l(),f(Ut,{modelValue:n.dialog,"onUpdate:modelValue":t[2]||(t[2]=_=>n.dialog=_),fullscreen:"",transition:"dialog-bottom-transition"},{activator:T(({props:_})=>[u(i,Q(_,{book:a.book,toolbar:a.toolbar}),null,16,["book","toolbar"])]),default:T(()=>[u(o,{class:"closeButton",title:"Close Metadata (esc)",onClick:t[0]||(t[0]=_=>n.dialog=!1)}),s.showContainer?(l(),p("div",{key:0,id:"metadataContainer",onKeyup:t[1]||(t[1]=Tt(_=>n.dialog=!1,["esc"]))},[u(d,{group:a.book.group},null,8,["group"]),u(b,{book:a.book},null,8,["book"])],32)):(l(),p("div",Os,[t[3]||(t[3]=m("div",{id:"placeholderTitle"},"Tags Loading",-1)),u(M,{"model-value":n.progress,indeterminate:n.progress>=100,class:"placeholder"},null,8,["model-value","indeterminate"])]))]),_:1},8,["modelValue"])}const gi=C(zs,[["render",As],["__scopeId","data-v-e1a86bc1"]]),Gs={name:"PaginationNavButton",props:{narrow:{type:Boolean,default:!0}},computed:{classes(){return{narrowButton:this.narrow}}}};function js(e,t,a,r,n,s){return l(),f(ge,{variant:"plain",density:"compact",class:I(["paginationNavButton",s.classes]),size:"medium"},Ce({_:2},[le(e.$slots,(i,o)=>({name:o,fn:T(d=>[Me(e.$slots,o,Q({props:i},d),void 0,!0)])}))]),1032,["class"])}const bi=C(Gs,[["render",js],["__scopeId","data-v-cf061c30"]]),Ne=Symbol.for("vuetify:v-slider");function Us(e,t,a){const r=a==="vertical",n=t.getBoundingClientRect(),s="touches"in e?e.touches[0]:e;return r?s.clientY-(n.top+n.height/2):s.clientX-(n.left+n.width/2)}function qs(e,t){return"touches"in e&&e.touches.length?e.touches[0][t]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][t]:e[t]}const Hs=me({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,...Pt(),...xt({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),Ks=e=>{const t=g(()=>parseFloat(e.min)),a=g(()=>parseFloat(e.max)),r=g(()=>Number(e.step)>0?parseFloat(e.step):0),n=g(()=>Math.max(xe(r.value),xe(t.value)));function s(i){if(i=parseFloat(i),r.value<=0)return i;const o=we(i,t.value,a.value),d=t.value%r.value;let b=Math.round((o-d)/r.value)*r.value+d;return o>b&&b+r.value>a.value&&(b=a.value),parseFloat(Math.min(b,a.value).toFixed(n.value))}return{min:t,max:a,step:r,decimals:n,roundValue:s}},Ws=e=>{let{props:t,steps:a,onSliderStart:r,onSliderMove:n,onSliderEnd:s,getActiveThumb:i}=e;const{isRtl:o}=Ve(),d=D(()=>t.reverse),b=g(()=>t.direction==="vertical"),M=g(()=>b.value!==d.value),{min:_,max:P,step:E,decimals:H,roundValue:K}=a,J=g(()=>parseInt(t.thumbSize,10)),W=g(()=>parseInt(t.tickSize,10)),Y=g(()=>parseInt(t.trackSize,10)),z=g(()=>(P.value-_.value)/E.value),ee=D(()=>t.disabled),O=g(()=>t.error||t.disabled?void 0:t.thumbColor??t.color),G=g(()=>t.error||t.disabled?void 0:t.trackColor??t.color),x=g(()=>t.error||t.disabled?void 0:t.trackFillColor??t.color),N=Pe(!1),S=Pe(0),j=fe(),F=fe();function k(c){const v=j.value?.$el;if(!v)return;const se=t.direction==="vertical",et=se?"top":"left",tt=se?"height":"width",at=se?"clientY":"clientX",{[et]:st,[tt]:it}=v.getBoundingClientRect(),nt=qs(c,at);let ye=we((nt-st-S.value)/it)||0;return(se?M.value:M.value!==o.value)&&(ye=1-ye),K(_.value+ye*(P.value-_.value))}const te=c=>{const v=k(c);v!=null&&s({value:v}),N.value=!1,S.value=0},U=c=>{const v=k(c);F.value=i(c),F.value&&(N.value=!0,F.value.contains(c.target)?S.value=Us(c,F.value,t.direction):(S.value=0,v!=null&&n({value:v})),v!=null&&r({value:v}),Mt(()=>F.value?.focus()))},q={passive:!0,capture:!0};function Z(c){const v=k(c);v!=null&&n({value:v})}function X(c){c.stopPropagation(),c.preventDefault(),te(c),window.removeEventListener("mousemove",Z,q),window.removeEventListener("mouseup",X)}function he(c){te(c),window.removeEventListener("touchmove",Z,q),c.target?.removeEventListener("touchend",he)}function be(c){U(c),window.addEventListener("touchmove",Z,q),c.target?.addEventListener("touchend",he,{passive:!1})}function ke(c){c.button===0&&(c.preventDefault(),U(c),window.addEventListener("mousemove",Z,q),window.addEventListener("mouseup",X,{passive:!1}))}const re=c=>{const v=(c-_.value)/(P.value-_.value)*100;return we(isNaN(v)?0:v,0,100)},V=D(()=>t.showTicks),R=g(()=>V.value?t.ticks?Array.isArray(t.ticks)?t.ticks.map(c=>({value:c,position:re(c),label:c.toString()})):Object.keys(t.ticks).map(c=>({value:parseFloat(c),position:re(parseFloat(c)),label:t.ticks[c]})):z.value!==1/0?Ct(z.value+1).map(c=>{const v=_.value+c*E.value;return{value:v,position:re(v)}}):[]:[]),oe=g(()=>R.value.some(c=>{let{label:v}=c;return!!v})),ae={activeThumbRef:F,color:D(()=>t.color),decimals:H,disabled:ee,direction:D(()=>t.direction),elevation:D(()=>t.elevation),hasLabels:oe,isReversed:d,indexFromEnd:M,min:_,max:P,mousePressed:N,numTicks:z,onSliderMousedown:ke,onSliderTouchstart:be,parsedTicks:R,parseMouseMove:k,position:re,readonly:D(()=>t.readonly),rounded:D(()=>t.rounded),roundValue:K,showTicks:V,startOffset:S,step:E,thumbSize:J,thumbColor:O,thumbLabel:D(()=>t.thumbLabel),ticks:D(()=>t.ticks),tickSize:W,trackColor:G,trackContainerRef:j,trackFillColor:x,trackSize:Y,vertical:b};return Bt(Ne,ae),ae},Ys=me({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,...Te()},"VSliderThumb"),Zs=pe()({name:"VSliderThumb",directives:{vRipple:Fe},props:Ys(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a,emit:r}=t;const n=Ge(Ne),{isRtl:s,rtlClasses:i}=Ve();if(!n)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{min:o,max:d,thumbColor:b,step:M,disabled:_,thumbSize:P,thumbLabel:E,direction:H,isReversed:K,vertical:J,readonly:W,elevation:Y,mousePressed:z,decimals:ee,indexFromEnd:O}=n,G=g(()=>_.value?void 0:Y.value),{elevationClasses:x}=$t(G),{textColorClasses:N,textColorStyles:S}=Ft(b),{pageup:j,pagedown:F,end:k,home:te,left:U,right:q,down:Z,up:X}=Vt,he=[j,F,k,te,U,q,Z,X],be=g(()=>M.value?[1,2,3]:[1,5,10]);function ke(V,R){if(!he.includes(V.key))return;V.preventDefault();const oe=M.value||.1,ae=(d.value-o.value)/oe;if([U,q,Z,X].includes(V.key)){const v=(J.value?[s.value?U:q,K.value?Z:X]:O.value!==s.value?[U,X]:[q,X]).includes(V.key)?1:-1,se=V.shiftKey?2:V.ctrlKey?1:0;v===-1&&R===d.value&&!se&&!Number.isInteger(ae)?R=R-ae%1*oe:R=R+v*oe*be.value[se]}else if(V.key===te)R=o.value;else if(V.key===k)R=d.value;else{const c=V.key===F?1:-1;R=R-c*oe*(ae>100?ae/10:10)}return Math.max(e.min,Math.min(e.max,R))}function re(V){const R=ke(V,e.modelValue);R!=null&&r("update:modelValue",R)}return ve(()=>{const V=ie(O.value?100-e.position:e.position,"%");return m("div",{class:I(["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&z.value},e.class,i.value]),style:de([{"--v-slider-thumb-position":V,"--v-slider-thumb-size":ie(P.value)},e.style]),role:"slider",tabindex:_.value?-1:0,"aria-label":e.name,"aria-valuemin":o.value,"aria-valuemax":d.value,"aria-valuenow":e.modelValue,"aria-readonly":!!W.value,"aria-orientation":H.value,onKeydown:W.value?void 0:re},[m("div",{class:I(["v-slider-thumb__surface",N.value,x.value]),style:{...S.value}},null),$e(m("div",{class:I(["v-slider-thumb__ripple",N.value]),style:de(S.value)},null),[[Fe,e.ripple,null,{circle:!0,center:!0}]]),u(Kt,{origin:"bottom center"},{default:()=>[$e(m("div",{class:"v-slider-thumb__label-container"},[m("div",{class:I(["v-slider-thumb__label",N.value])},[m("div",null,[a["thumb-label"]?.({modelValue:e.modelValue})??e.modelValue.toFixed(M.value?ee.value:1)])])]),[[Rt,E.value&&e.focused||E.value==="always"]])]})])}),{}}}),Xs=me({start:{type:Number,required:!0},stop:{type:Number,required:!0},...Te()},"VSliderTrack"),Qs=pe()({name:"VSliderTrack",props:Xs(),emits:{},setup(e,t){let{slots:a}=t;const r=Ge(Ne);if(!r)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:n,parsedTicks:s,rounded:i,showTicks:o,tickSize:d,trackColor:b,trackFillColor:M,trackSize:_,vertical:P,min:E,max:H,indexFromEnd:K}=r,{roundedClasses:J}=Dt(i),{backgroundColorClasses:W,backgroundColorStyles:Y}=De(M),{backgroundColorClasses:z,backgroundColorStyles:ee}=De(b),O=g(()=>`inset-${P.value?"block":"inline"}-${K.value?"end":"start"}`),G=g(()=>P.value?"height":"width"),x=g(()=>({[O.value]:"0%",[G.value]:"100%"})),N=g(()=>e.stop-e.start),S=g(()=>({[O.value]:ie(e.start,"%"),[G.value]:ie(N.value,"%")})),j=g(()=>o.value?(P.value?s.value.slice().reverse():s.value).map((k,te)=>{const U=k.value!==E.value&&k.value!==H.value?ie(k.position,"%"):void 0;return m("div",{key:k.value,class:I(["v-slider-track__tick",{"v-slider-track__tick--filled":k.position>=e.start&&k.position<=e.stop,"v-slider-track__tick--first":k.value===E.value,"v-slider-track__tick--last":k.value===H.value}]),style:{[O.value]:U}},[(k.label||a["tick-label"])&&m("div",{class:"v-slider-track__tick-label"},[a["tick-label"]?.({tick:k,index:te})??k.label])])}):[]);return ve(()=>m("div",{class:I(["v-slider-track",J.value,e.class]),style:de([{"--v-slider-track-size":ie(_.value),"--v-slider-tick-size":ie(d.value)},e.style])},[m("div",{class:I(["v-slider-track__background",z.value,{"v-slider-track__background--opacity":!!n.value||!M.value}]),style:{...x.value,...ee.value}},null),m("div",{class:I(["v-slider-track__fill",W.value]),style:{...S.value,...Y.value}},null),o.value&&m("div",{class:I(["v-slider-track__ticks",{"v-slider-track__ticks--always-show":o.value==="always"}])},[j.value])])),{}}}),Js=me({...Zt(),...Hs(),...Yt(),modelValue:{type:[Number,String],default:0}},"VSlider"),ei=pe()({name:"VSlider",props:Js(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,t){let{slots:a,emit:r}=t;const n=fe(),s=fe(),{rtlClasses:i}=Ve(),o=Ks(e),d=Nt(e,"modelValue",void 0,x=>o.roundValue(x??o.min.value)),{min:b,max:M,mousePressed:_,roundValue:P,onSliderMousedown:E,onSliderTouchstart:H,trackContainerRef:K,position:J,hasLabels:W,readonly:Y}=Ws({props:e,steps:o,onSliderStart:()=>{r("start",d.value)},onSliderEnd:x=>{let{value:N}=x;const S=P(N);d.value=S,r("end",S)},onSliderMove:x=>{let{value:N}=x;return d.value=P(N)},getActiveThumb:()=>n.value?.$el}),{isFocused:z,focus:ee,blur:O}=Wt(e),G=g(()=>J(d.value));return ve(()=>{const x=Ee.filterProps(e),N=!!(e.label||a.label||a.prepend);return u(Ee,Q({ref:s,class:["v-slider",{"v-slider--has-labels":!!a["tick-label"]||W.value,"v-slider--focused":z.value,"v-slider--pressed":_.value,"v-slider--disabled":e.disabled},i.value,e.class],style:e.style},x,{focused:z.value}),{...a,prepend:N?S=>m(ce,null,[a.label?.(S)??(e.label?u(Xt,{id:S.id.value,class:"v-slider__label",text:e.label},null):void 0),a.prepend?.(S)]):void 0,default:S=>{let{id:j,messagesId:F}=S;return m("div",{class:"v-slider__container",onMousedown:Y.value?void 0:E,onTouchstartPassive:Y.value?void 0:H},[m("input",{id:j.value,name:e.name||j.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:d.value},null),u(Qs,{ref:K,start:0,stop:G.value},{"tick-label":a["tick-label"]}),u(Zs,{ref:n,"aria-describedby":F.value,focused:z.value,min:b.value,max:M.value,modelValue:d.value,"onUpdate:modelValue":k=>d.value=k,position:G.value,elevation:e.elevation,onFocus:ee,onBlur:O,ripple:e.ripple,name:e.name},{"thumb-label":a["thumb-label"]})])}})}),Et({focus:()=>n.value?.$el.focus()},s)}}),ti={name:"PaginationSlider",props:{min:{type:Number,default:0}}};function ai(e,t,a,r,n,s){return l(),f(ei,Q({"thumb-size":"36",class:"paginationSlider",density:"compact","hide-details":"auto",min:a.min,rounded:!0,"show-ticks":"always",step:1,"thumb-label":"always"},e.$attrs),{"tick-label":T(({index:i})=>[$(w(i+a.min),1)]),_:1},16,["min"])}const ki=C(ti,[["render",ai],["__scopeId","data-v-01b67afd"]]),si={name:"PaginationToolbar"};function ii(e,t,a,r,n,s){return l(),f(Jt,{class:"paginationToolbar codexToolbar",density:"compact",transform:"center bottom"},Ce({_:2},[le(e.$slots,(i,o)=>({name:o,fn:T(d=>[Me(e.$slots,o,Q({props:i},d),void 0,!0)])}))]),1024)}const yi=C(si,[["render",ii],["__scopeId","data-v-cfa8cce0"]]);export{da as B,fa as D,ba as M,_e as N,bi as P,pi as T,fi as V,vi as a,gi as b,yi as c,ki as d,Qe as g,He as p,ze as t};
@@ -1 +0,0 @@
1
- import{g as pe,p as me,f as rt,t as D,u as ve,b as m,n as de,d as I,J as Te,aX as Ie,_ as C,x as f,V as Ce,z as le,w as T,m as Q,v as l,a5 as Me,a as u,D as B,aY as ot,M as L,q as p,G as h,A as w,av as lt,ad as Se,aZ as ut,a_ as dt,ay as ct,s as y,B as ue,a$ as mt,b0 as ht,T as ft,$ as Be,y as $,b1 as pt,b2 as Le,l as vt,b3 as gt,F as ce,af as bt,ab as kt,ac as yt,a8 as Ae,E as _t,b4 as St,aa as wt,X as Tt,c as g,b5 as xe,aC as Ve,aT as Pe,r as fe,b6 as Ct,b7 as we,aW as Mt,aV as Bt,i as Ge,b8 as Vt,h as ie,S as $e,aQ as Rt,e as Nt}from"./main-Bmi4BPiO.js";import{B as It,V as ge,k as ne,n as Lt,v as xt,j as Pt,R as Fe,t as $t,u as Ft,i as Dt,c as De,f as Et}from"./forwardRefs-FxOC1qa_.js";import{c as zt,d as Ot}from"./VSelect-4ozzBEef.js";import{a as At,c as Gt,d as jt,V as Ut}from"./VDialog-Oz6-kM3S.js";import{C as qt}from"./change-password-dialog-DpqXgZ53.js";import{d as Ht,f as Kt,u as Wt,g as Ee,m as Yt,h as Zt,i as Xt}from"./VSelectionControl-D3h7FjSM.js";import{V as je}from"./VTable-Dj5EC5Aq.js";import{C as Ue}from"./confirm-dialog-uoXMmYq3.js";import{P as Qt,V as Jt}from"./unauthorized-DXoWE_v2.js";const ea=me({...Te(),...It({variant:"text"})},"VToolbarItems"),fi=pe()({name:"VToolbarItems",props:ea(),setup(e,t){let{slots:a}=t;return rt({VBtn:{color:D(()=>e.color),height:"inherit",variant:D(()=>e.variant)}}),ve(()=>m("div",{class:I(["v-toolbar-items",e.class]),style:de(e.style)},[a.default?.()])),{}}}),_e=new Set(["",Ie,Ie.toString(),void 0]),ta=function(e){let t;if(_e.has(e))t=e;else if(e instanceof Object)if("ids"in e){const a=new Set(e.ids);_e.intersection(a).size>0?t=void 0:t={value:e.ids.join(","),title:e.name}}else _e.has(e.pk)?t=void 0:t={value:e.pk,title:e.name};else t={value:e,title:e.toString()};return e?.url&&(t.url=e.url),t},aa=function(e,t){return e.title.localeCompare(t.title)},sa=function(e,t){return Number.parseFloat(e.title)-Number.parseFloat(t.title)},ze=function({items:e,filter:t,numeric:a=!1,sort:r=!0}){const n=e||[],s=t&&t.toLowerCase();let i=[];for(const o of n){const d=ta(o);d!=null&&(!s||d?.title?.toLowerCase().includes(s))&&i.push(d)}if(r){const o=a?sa:aa;i=i.sort(o)}return i},ia={name:"ToolbarSelect",props:{selectLabel:{type:String,default:""},maxSelectLen:{type:Number,default:0}},computed:{style(){if(this.maxSelectLen){const e=this.$vuetify.display.xs?"max-width":"width",t=this.maxSelectLen*.7+"em";return`${e}: ${t}`}return""}}};function na(e,t,a,r,n,s){return l(),f(zt,Q(e.$attrs,{label:a.selectLabel,"aria-label":a.selectLabel,class:"toolbarSelect",density:"compact","full-width":"","menu-props":{maxHeight:void 0},"hide-details":"auto",style:s.style,variant:"plain"}),Ce({item:T(({item:i,props:o})=>[u(At,Q(o,{density:"compact",variant:"plain",title:i.title,value:i.value}),null,16,["title","value"])]),_:2},[le(e.$slots,(i,o)=>({name:o,fn:T(d=>[Me(e.$slots,o,Q({props:i},d),void 0,!0)])}))]),1040,["label","aria-label","style"])}const pi=C(ia,[["render",na],["__scopeId","data-v-cda2da63"]]),vi=Gt("v-spacer","div","VSpacer"),ra={name:"BookCover",props:{group:{type:String,required:!0},pks:{type:Array,required:!0},childCount:{type:Number,default:1},finished:{type:Boolean},mtime:{type:Number,default:Date.now()}},data(){return{showPlaceholder:!1}},computed:{...B(L,["coverSettings"]),coverSrc(){return ot({group:this.group,pks:this.pks},this.coverSettings,this.mtime)},multiPkClasses(){const e=this.pks.length,t={};return e>=4?t.stack4=!0:e>1&&(t[`stack${e}`]=!0),t}},mounted:function(){this.delayPlaceholder()},methods:{delayPlaceholder:function(){setTimeout(()=>{this.showPlaceholder=!0},2e3)}}},oa={class:"bookCover"},la={key:1,class:"childCount"};function ua(e,t,a,r,n,s){return l(),p("div",oa,[u(jt,{src:s.coverSrc,class:I(["coverImg",s.multiPkClasses])},null,8,["src","class"]),a.finished!==!0?(l(),p("div",{key:0,class:I({unreadFlag:!0,mixedreadFlag:a.finished===null})},null,2)):h("",!0),a.group!=="c"?(l(),p("span",la,w(a.childCount),1)):h("",!0)])}const da=C(ra,[["render",ua],["__scopeId","data-v-8e8f21d5"]]),ca=10,ma={name:"DownloadButton",components:{ConfirmDialog:Ue},props:{button:{type:Boolean,default:!1},item:{type:Object,required:!0}},data(){return{mdiDownload:ct}},computed:{...B(L,["filterOnlySettings","groupNames"]),show(){return this.item?.ids?.length>0&&!this.item.ids.includes(0)},isOneComic(){return this.item?.group==="c"&&this.item?.ids?.length===1},downloadFn(){return this.isOneComic?this.item.name:`${this.groupNames[this.item?.group]} - ${this.item.name} Comics.zip`},downloadURL(){let e="";if(this.isOneComic){const t=this.item.ids[0];e=ut({pk:t},this.downloadFn,this.item?.mtime)}else{const t=this.item?.group,a=this.item?.ids,r=this.filterOnlySettings;e=dt({group:t,pks:a},this.downloadFn,r,this.item?.mtime)}return e},formattedChildren(){return Se.format(this.item?.childCount)},title(){let e="Download";return e+=this.isOneComic?" Book":` ${this.formattedChildren} Books`,e},confirm(){return this.item?.childCount>ca},confirmText(){return this.confirm?`Download ${this.formattedChildren} books`:""}},methods:{download(){const e=this.downloadURL,t=this.downloadFn;if(this.isOneComic)lt(e,t);else{const a=document.createElement("a");a.download=this.downloadFn,a.href=this.downloadURL,a.click(),a.remove()}}}};function ha(e,t,a,r,n,s){const i=y("ConfirmDialog");return s.show?(l(),f(i,{key:0,button:a.button,"button-text":s.title,confirm:s.confirm,"confirm-text":"Download","prepend-icon":n.mdiDownload,"title-text":s.title,text:"May take a while",onConfirm:s.download},null,8,["button","button-text","confirm","prepend-icon","title-text","onConfirm"])):h("",!0)}const fa=C(ma,[["render",ha],["__scopeId","data-v-4c14087b"]]),pa=1,va={name:"MarkReadButton",components:{ConfirmDialog:Ue},props:{button:{type:Boolean,default:!1},item:{type:Object,required:!0}},computed:{...B(L,["groupNames"]),verb(){return this.item.finished?"Unread":"Read"},confirm(){return this.item.children>pa},show(){return this.item?.ids?.length>0&&!this.item.ids.includes(0)},icon(){return this.item.finished?mt:ht},confirmText(){return this.confirm?`Mark ${this.verb}`:""},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");const t=this.groupNames[this.item.group];return e.push(t,this.verb),e.join(" ")},itemName(){return this.item.name||"(Empty)"}},methods:{...ue(L,["setBookmarkFinished"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished)}}};function ga(e,t,a,r,n,s){const i=y("ConfirmDialog");return s.show?(l(),f(i,{key:0,button:a.button,"button-text":s.markReadText,confirm:s.confirm,"confirm-text":s.confirmText,"prepend-icon":s.icon,"title-text":s.markReadText,text:s.itemName,onConfirm:s.toggleRead},null,8,["button","button-text","confirm","confirm-text","prepend-icon","title-text","text","onConfirm"])):h("",!0)}const ba=C(va,[["render",ga],["__scopeId","data-v-7b148c61"]]),ka=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],ya=["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],_a=["b","kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],Sa=["b","kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],Oe=(e,t,a)=>{let r=e;return typeof t=="string"||Array.isArray(t)?r=e.toLocaleString(t,a):(t===!0||a!==void 0)&&(r=e.toLocaleString(void 0,a)),r},qe=e=>{if(typeof e=="number")return Math.log10(e);const t=e.toString(10);return t.length+Math.log10("0."+t.slice(0,15))},wa=e=>typeof e=="number"?Math.log(e):qe(e)*Math.log(10),Ta=(e,t)=>{if(typeof e=="number")return e/t;const a=e/BigInt(t),r=e%BigInt(t);return Number(a)+Number(r)/t};function He(e,t){if(typeof e!="bigint"&&!Number.isFinite(e))throw new TypeError(`Expected a finite number, got ${typeof e}: ${e}`);t={bits:!1,binary:!1,space:!0,...t};const a=t.bits?t.binary?Sa:_a:t.binary?ya:ka,r=t.space?" ":"";if(t.signed&&(typeof e=="number"?e===0:e===0n))return` 0${r}${a[0]}`;const n=e<0,s=n?"-":t.signed?"+":"";n&&(e=-e);let i;if(t.minimumFractionDigits!==void 0&&(i={minimumFractionDigits:t.minimumFractionDigits}),t.maximumFractionDigits!==void 0&&(i={maximumFractionDigits:t.maximumFractionDigits,...i}),e<1){const M=Oe(e,t.locale,i);return s+M+r+a[0]}const o=Math.min(Math.floor(t.binary?wa(e)/Math.log(1024):qe(e)/3),a.length-1);e=Ta(e,(t.binary?1024:1e3)**o),i||(e=e.toPrecision(3));const d=Oe(Number(e),t.locale,i),b=a[o];return s+d+r+b}const Ca={name:"MetadataExpandButton"};function Ma(e,t,a,r,n,s){return l(),f(ge,{density:"compact",text:"...expand",variant:"text"})}const Ba=C(Ca,[["render",Ma]]),Va={name:"MetadataTextBox",components:{ExpandButton:Ba},props:{group:{type:String,default:""},highlight:{type:Boolean,default:!1},label:{type:String,default:""},maxHeight:{type:Number,default:0},value:{type:[Object,String,Number,Boolean],default:void 0}},data(){return{mdiOpenInNew:Be,expanded:!1,mounted:!1}},computed:{...B(L,["groupNames"]),...B(L,{browserShow:e=>e.settings.show,browserTopGroup:e=>e.settings.topGroup,folderViewEnabled:e=>e.page.adminFlags.folderView}),computedValue(){return this.value&&this.value.name!==void 0?this.value.name:this.value},lastSlashIndex(){return this.computedValue.lastIndexOf("/")+1},displayValue(){let e;return this.group==="f"&&this.computedValue?e=this.computedValue.slice(0,Math.max(0,this.lastSlashIndex)):this.group==="v"&&this.computedValue?e=ft(this.computedValue,this.value.numberTo):e=this.computedValue,e},textValueStyles(){const e=this.maxHeight>0&&!this.expanded?this.maxHeight:0;return e?"max-height: "+e+"px;":""},textValueRefName(){return"mdTextValue"+this.label.replaceAll(" ","")},isOverflow(){if(!this.mounted)return!1;const e=this.$refs[this.textValueRefName];return e?e.clientHeight<e.scrollHeight:!1},showExpandButton(){return!this.expanded&&this.maxHeight>0&&this.isOverflow},linkPks(){return(this.value.ids||[this.value.pk]).join(",")},clickable(){const e=this.$router.currentRoute.value.params;return!this.group||e.group===this.group||this.group==="f"&&!this.folderViewEnabled||!["a","f"].includes(this.group)&&!this.browserShow[this.group]?!1:!!this.linkPks?.length},classes(){return{clickable:this.clickable,highlight:this.highlight}},toRoute(){if(!this.clickable)return"";const e=this.group,t=this.linkPks;return{name:"browser",params:{group:e,pks:t,page:1}}},linkSettings(){return{topGroup:this.getTopGroup(this.group)}},title(){let e;return this.label?e=this.label:this.group?e=this.groupNames[this.group]:e="",this.toRoute?`Browse to ${e}`:e},baseName(){return this.group==="f"?this.computedValue.slice(Math.max(0,this.lastSlashIndex)):""}},mounted(){this.mounted=!0},methods:{...ue(L,["routeWithSettings","getTopGroup"]),onClick(){this.clickable&&this.routeWithSettings(this.linkSettings,this.toRoute)}}},Ra={key:0,class:"text"},Na={key:0,class:"textLabel"},Ia=["title"],La={key:0,class:"textContent"};function xa(e,t,a,r,n,s){const i=y("ExpandButton");return s.displayValue?(l(),p("div",Ra,[a.label?(l(),p("div",Na,[$(w(a.label)+" ",1),s.showExpandButton?(l(),f(i,{key:0,class:"expandButton",onClick:t[0]||(t[0]=o=>n.expanded=!0)})):h("",!0)])):h("",!0),u(Ht,null,{default:T(()=>[m("div",null,[m("div",{ref:s.textValueRefName,class:"textValue",style:de(s.textValueStyles)},[m("span",{class:I(["textContent",s.classes]),title:s.title,onClick:t[1]||(t[1]=(...o)=>s.onClick&&s.onClick(...o))},w(s.displayValue),11,Ia),s.baseName?(l(),p("span",La,w(s.baseName),1)):h("",!0)],4),s.showExpandButton&&!a.label?(l(),f(i,{key:0,class:"expandButton",onClick:t[2]||(t[2]=o=>n.expanded=!0)})):h("",!0)])]),_:1})])):h("",!0)}const Re=C(Va,[["render",xa],["__scopeId","data-v-847af0f1"]]),Ke=["writer","author","plotter","plot","script","scripter","story","interviewer","translator","artist","penciller","breakdowns","pencils","illustrator","layouts","inker","finishes","inks","embellisher","inkAssists","colorist","colorer","colourer","colors","colours","colorDesigner","colorFlats","colorSeparations","designer","digitalArtTechnician","grayTone","letterer","cover","covers","coverArtist","editor","edits","editing"];Object.freeze(Ke);const We=["genres","characters","teams","locations","seriesGroups","stories","storyArcNumbers","tags","universes"];Object.freeze(We);const Ye=new Set(["Characters","Teams"]);Object.freeze(Ye);function Pa(e,t){const a=e.name.split(" ").pop(),r=t.name.split(" ").pop();return a.localeCompare(r)}const A=pt("metadata",{state:()=>({md:void 0}),getters:{roleMap(e){const t={};for(const{role:a}of e.md.credits){const r=a?.name?a.name:"Other";t[r]=a}return t},_mappedCredits(e){const t={};if(!e?.md?.credits)return t;for(const{role:a,person:r}of e.md.credits){const n=a?.name?a.name:"Other";n in t||(t[n]=[]),t[n].push(r)}for(const[a,r]of Object.entries(t))t[a]=r.sort(Pa);return t},_sortedRoles(e){const t=new Set(Object.keys(e._mappedCredits)),a=[];for(const n of Ke)t.has(n)&&(a.push(n),t.delete(n));const r=[...t].sort();return[...a,...r]},credits(e){return this.mapTag(e._mappedCredits,e._sortedRoles)},identifiers(e){const t=[];if(!e.md?.identifiers)return t;for(const a of e.md.identifiers){const r=a.name.split(":"),n=r[0],s=r[1],i=L().identifierSourceTitle(n);let o="";i&&i!=="None"&&(o+=i+":"),o+=s;const d={pk:a.pk,url:a.url,name:o};t.push(d)}return t},tags(e){const t=e.mapTag(e.md,We);e.identifiers?.length&&(t.Identifiers={filter:"identifiers",tags:this.identifiers});for(const a of Object.values(t))a.tags=a.tags.sort((r,n)=>r.name.localeCompare(n.name));return t}},actions:{async loadMetadata({group:e,pks:t}){await Le.getMetadata({group:e,pks:t},L().metadataSettings).then(a=>{const r={...a.data};return r.loaded=!0,this.md=r,!0}).catch(a=>{console.error(a),this.clearMetadata()})},clearMetadata(){this.md=void 0},getTagName(e){var t;return e==="storyArcNumbers"?t="Story Arcs":t=vt(e),t},markTagMain(e,t){const a="main"+e.slice(0,-1),r=this.md[a]?.pk,n=[];var s=[];for(const i of t)r===i.pk?s.push(i):n.push(i);return{mainTags:s,regularTags:n}},mapTag(e,t){const a={};for(const s of t){const i=e[s];if(!i?.length)continue;const o=this.getTagName(s);var r=[],n=[];Ye.has(o)?{mainTags:r,regularTags:n}=this.markTagMain(o,i):n=i,a[o]={filter:s,tags:n,mainTags:r}}return a},lazyImport({group:e,ids:t}){return Le.getLazyImport({group:e,pks:t})}}}),$a={name:"MetadataRatings",components:{MetadataText:Re},computed:{...B(A,{md:e=>e.md}),show(){return this.md?.criticRating!==void 0||this.md?.ageRating}}},Fa={key:0},Da={key:1};function Ea(e,t,a,r,n,s){const i=y("MetadataText");return s.show?(l(),f(je,{key:0},{default:T(()=>[m("tbody",null,[e.md.criticalRating?(l(),p("tr",Fa,[t[0]||(t[0]=m("td",{class:"key"},"Critical Rating",-1)),m("td",null,[u(i,{value:e.md.criticalRating},null,8,["value"])])])):h("",!0),e.md.ageRating?(l(),p("tr",Da,[t[1]||(t[1]=m("td",{class:"key"},"Age Rating",-1)),m("td",null,[u(i,{value:e.md.ageRating.name},null,8,["value"])])])):h("",!0)])]),_:1})):h("",!0)}const za=C($a,[["render",Ea],["__scopeId","data-v-8b5cb217"]]),Oa=new Set(["p","i","s","v"]),Aa={name:"MetadataTags",props:{item:{type:Object,required:!0},filter:{type:String,default:""},main:{type:Boolean,default:!1}},data(){return{mdiStar:gt,mdiOpenInNew:Be}},computed:{...B(L,{browserShow:e=>e.settings.show,filterValues(e){return e.settings.filters[this.filter]},topGroup:e=>e.settings.topGroup}),...B(A,{mdGroup:e=>e.md.group,mdIds:e=>e.md.ids}),groupMode(){return Oa.has(this.filter)},clickable(){return this.filter&&this.item.value&&(!this.groupMode||this.browserShow[this.filter])},classes(){return{clickable:(this.clickable||this.item.url)&&!this.highlight}},highlight(){return!!(this.groupMode&&this.filter===this.mdGroup&&this.mdIds.includes(this.item.value)||this.filterValues?.includes(this.item.value))},variant(){return this.highlight?"flat":"tonal"},color(){const e=this.$vuetify.theme.current.colors;return this.highlight?e["primary-darken-1"]:""},linkGroup(){let e;return this.groupMode?e=this.filter:e=["f","s"].includes(this.topGroup)?this.topGroup:"r",e},linkPks(){return this.groupMode||this.linkGroup!=="a"&&this.filter==="storyArcs"?this.item.value.toString():"0"},toRoute(){if(!this.clickable)return"";const e=this.linkGroup,t=this.linkPks;return{name:"browser",params:{group:e,pks:t,page:1}}},linkSettings(){let e;return this.linkPks==="0"?e={filters:{[this.filter]:[this.item.value]}}:e={topGroup:this.getTopGroup(this.linkGroup)},e},title(){return this.filter==="identifiers"?this.identifierSourceTitle(this.item.title):this.item.title}},methods:{...ue(L,["routeWithSettings","getTopGroup","identifierSourceTitle"]),async onClick(){this.clickable&&this.routeWithSettings(this.linkSettings,this.toRoute)}}},Ga=["href"],ja={key:1};function Ua(e,t,a,r,n,s){return l(),f(Ot,{class:I(s.classes),color:s.color,value:a.item.value,variant:s.variant,onClick:s.onClick},{default:T(()=>[a.item.url?(l(),p("a",{key:0,href:a.item.url,target:"_blank"},[a.main?(l(),f(ne,{key:0,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0),$(w(s.title)+" ",1),a.main?(l(),f(ne,{key:1,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0),u(ne,null,{default:T(()=>[$(w(n.mdiOpenInNew),1)]),_:1})],8,Ga)):(l(),p("span",ja,[a.main?(l(),f(ne,{key:0,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0),$(" "+w(s.title)+" ",1),a.main?(l(),f(ne,{key:1,class:"mainStar"},{default:T(()=>[$(w(n.mdiStar),1)]),_:1})):h("",!0)]))]),_:1},8,["class","color","value","variant","onClick"])}const qa=C(Aa,[["render",Ua],["__scopeId","data-v-1da1eb5b"]]),Ha={name:"MetadataTags",components:{MetadataChip:qa},props:{label:{type:String,default:""},values:{type:Array,default(){return[]}},mainValues:{type:Array,default(){return[]}},filter:{type:String,required:!1,default:void 0}},computed:{mainItems(){return ze({items:this.mainValues,sort:!1})},items(){let e;return this.filter==="universes"?e=this.fixUniverseTitles(this.values):e=this.values,ze({items:e,sort:!1})}},methods:{...ue(L,["fixUniverseTitles"])}},Ka={key:0},Wa={key:0,class:"chipGroupLabel"};function Ya(e,t,a,r,n,s){const i=y("MetadataChip");return s.items?.length>0?(l(),p("div",Ka,[a.label?(l(),p("div",Wa,w(a.label),1)):h("",!0),m("div",null,[(l(!0),p(ce,null,le(s.mainItems,o=>(l(),f(i,{key:`${a.filter}/${o.value}`,filter:a.filter,item:o,main:!0},null,8,["filter","item"]))),128)),(l(!0),p(ce,null,le(s.items,o=>(l(),f(i,{key:`${a.filter}/${o.value}`,filter:a.filter,item:o},null,8,["filter","item"]))),128))])])):h("",!0)}const Ze=C(Ha,[["render",Ya],["__scopeId","data-v-836d9fbb"]]),Za={name:"MetadataTagsTable",components:{MetadataTags:Ze},data(){return{mdiOpenInNew:Be}},props:{keyMap:{type:Object,default:void 0},tagMap:{type:Object,required:!0}},computed:{show(){return Object.keys(this.tagMap).length>0}}},Xa={key:0,class:"key keyLink"},Qa={href:"keyMap[key].url"},Ja={key:1,class:"key"},es={class:"tags"};function ts(e,t,a,r,n,s){const i=y("MetadataTags");return s.show?(l(),f(je,{key:0},{default:T(()=>[m("tbody",null,[(l(!0),p(ce,null,le(Object.entries(a.tagMap),([o,{filter:d,tags:b,mainTags:M}])=>(l(),p("tr",{key:o},[a.keyMap&&a.keyMap[o]&&a.keyMap[o].url?(l(),p("td",Xa,[m("a",Qa,[$(w(o),1),u(ne,null,{default:T(()=>[$(w(n.mdiOpenInNew),1)]),_:1})])])):(l(),p("td",Ja,w(o),1)),m("td",es,[u(i,{filter:d,values:b,mainValues:M},null,8,["filter","values","mainValues"])])]))),128))])]),_:1})):h("",!0)}const as=C(Za,[["render",ts],["__scopeId","data-v-56102c2c"]]),ss={name:"MetadataBody",components:{MetadataRatings:za,MetadataTagsTable:as,MetadataText:Re},props:{book:{type:Object,required:!0}},computed:{...B(A,["credits","ratings","tags"]),...B(L,{twentyFourHourTime:e=>e.settings?.twentyFourHourTime,readingDirectionTitles:e=>e.choices.static.readingDirection}),...B(A,{md:e=>e.md,roleMap:e=>e.roleMap}),readingDirectionText(){return this.md?this.readingDirectionTitles[this.md.readingDirection]:"Unknown"},size(){return this?.md?.size>0?He(this.md.size):0},sizeLabel(){return this?.md?.group==="c"?"Size":"Total Size"},fileType(){return this?.md?.fileType||"Unknown"}},methods:{formatDateTime(e){return bt(e,this.twentyFourHourTime)}}},is={id:"metadataBody"},ns={class:"mdSection"},rs={class:"mdSection"},os={class:"quarterRow"},ls={class:"thirdRow"},us={class:"lastSmallRow"},ds={key:0,class:"halfRow mdSection"},cs={class:"mdSection"},ms={class:"inlineRow"},hs={class:"inlineRow"};function fs(e,t,a,r,n,s){const i=y("MetadataText"),o=y("MetadataTagsTable"),d=y("MetadataRatings");return l(),p("div",is,[m("section",ns,[u(i,{value:e.md.summary,"max-height":100},null,8,["value"]),u(i,{value:e.md.review,label:"Review","max-height":100},null,8,["value"])]),u(o,{"key-map":e.roleMap,"tag-map":e.credits,class:"mdSection"},null,8,["key-map","tag-map"]),m("section",rs,[m("div",os,[e.md.createdAt?(l(),f(i,{key:0,value:s.formatDateTime(e.md.createdAt),label:"Created at",class:"mtime"},null,8,["value"])):h("",!0),e.md.updatedAt?(l(),f(i,{key:1,value:s.formatDateTime(e.md.updatedAt),label:"Updated at",class:"mtime"},null,8,["value"])):h("",!0),u(i,{value:s.size,label:s.sizeLabel},null,8,["value","label"]),u(i,{value:s.fileType,label:"File Type"},null,8,["value"])]),m("div",ls,[u(i,{label:"Reading Direction",value:s.readingDirectionText},null,8,["value"]),u(i,{value:e.md.originalFormat?.name,label:"Original Format"},null,8,["value"]),u(i,{value:(!!e.md.monochrome).toString(),label:"Monochrome"},null,8,["value"])]),m("div",us,[u(i,{group:"f",value:{pk:e.md.parentFolderId,name:e.md.path},label:"Path"},null,8,["value"])])]),e.md?.country||e.md?.language?(l(),p("section",ds,[u(i,{value:e.md.country?.name,label:"Country"},null,8,["value"]),u(i,{value:e.md.language?.name,label:"Language"},null,8,["value"])])):h("",!0),u(d,{class:"mdSection"}),u(o,{"tag-map":e.tags,class:"mdSection"},null,8,["tag-map"]),m("section",cs,[m("section",ms,[u(i,{value:e.md.notes,label:"Notes"},null,8,["value"])]),m("section",hs,[u(i,{value:e.md.tagger,label:"Tagger"},null,8,["value"]),u(i,{value:e.md.scanInfo,label:"Scan"},null,8,["value"])])])])}const ps=C(ss,[["render",fs],["__scopeId","data-v-e65fff8f"]]),Xe=new Set("rtl","btt");Object.freeze(Xe);const Qe=({ids:e,page:t,readingDirection:a,pageCount:r},n)=>{if(e.length===0||n&&!r)return"";const s=e[0];if(t)t=Number(t);else if(Xe.has(a)){const i=Number(r)-1;t=Math.max(i,0)}else t=0;return{name:"reader",params:{pk:s,page:t}}},Je={p:"publisher",i:"imprint",s:"series",v:"volume",f:"folder",a:"storyArc"};Object.freeze(Je);const vs={name:"MetadataControls",components:{DownloadButton:fa,MarkReadButton:ba},props:{group:{type:String,required:!0}},computed:{...B(A,{md:e=>e.md}),...B(L,{importMetadata:e=>e.page?.adminFlags?.importMetadata}),downloadName(){const e=this.md;let t;if(!e)t="Unknown.cbz";else if(e.fileName)t=e.fileName;else{if(this.md.group==="f")return[this.firstNameFromList(e.folderList)];if(this.md.group==="a")return[this.firstNameFromList(e.storyArcList)];t=[this.firstNameFromList(e.publisherList),this.firstNameFromList(e.imprintList),this.firstNameFromList(e.seriesList),this.firstNameFromList(e.volumeList),Ae(this.md,3),this.md.name].filter(Boolean).join(" ")}return t},downloadItem(){return{group:this.md?.group,ids:this.md?.ids,childCount:this.md?.childCount,mtime:this.md?.mtime,name:this.downloadName}},isReadButtonShown(){return this.group==="c"&&this.$route.name!="reader"},isReadButtonEnabled(){return!!this.readerRoute},markReadItem(){let e="";const t=Je[this.md.group];return t?e=(this.md[t+"List"]||[]).map(({name:n})=>n).join(", "):e=this.md.name,{group:this.md.group,ids:this.md.ids,finished:this.md.finished,name:e,children:this.md.childCount||1}},readButtonIcon(){return this.isReadButtonEnabled?kt:yt},readerRoute(){return this.md?.ids?Qe(this.md,this.importMetadata):{}},size(){return this.$vuetify.display.smAndDown?"x-small":"default"}},methods:{firstNameFromList(e){let t="";if(!e)return t;for(const a of Object.values(e))if(a.name){t=a.name;break}return t}}},gs={class:"controlRow"};function bs(e,t,a,r,n,s){const i=y("DownloadButton"),o=y("MarkReadButton");return l(),p("section",gs,[u(i,{id:"downloadButton",button:!0,item:s.downloadItem,size:s.size},null,8,["item","size"]),u(o,{id:"markReadButton",button:!0,item:s.markReadItem,size:s.size},null,8,["item","size"]),s.isReadButtonShown?(l(),f(ge,{key:0,id:"readButton",title:"Read Comic",disabled:!s.isReadButtonEnabled,size:s.size,to:s.readerRoute},{default:T(()=>[u(ne,null,{default:T(()=>[$(w(s.readButtonIcon),1)]),_:1}),t[0]||(t[0]=$(" Read ",-1))]),_:1,__:[0]},8,["disabled","size","to"])):h("",!0)])}const ks=C(vs,[["render",bs],["__scopeId","data-v-d254bb05"]]),ys={name:"MetadataBookCover",components:{BookCover:da},props:{group:{type:String,required:!0}},computed:{...B(A,{md:e=>e.md})}},_s={class:"bookCoverWrapper"};function Ss(e,t,a,r,n,s){const i=y("BookCover");return l(),p("div",_s,[u(i,{id:"bookCover",group:a.group,pks:e.md.ids,"child-count":e.md.childCount,finished:e.md.finished,mtime:e.md.mtime},null,8,["group","pks","child-count","finished","mtime"]),u(Lt,{class:"bookCoverProgress","model-value":e.md.progress,rounded:"","background-color":"inherit",height:"2","aria-label":"% read"},null,8,["model-value"])])}const ws=C(ys,[["render",Ss],["__scopeId","data-v-3a0db03b"]]),Ts={name:"MetadataHeader",components:{MetadataBookCover:ws,MetadataControls:ks,MetadataTags:Ze,MetadataText:Re},props:{group:{type:String,required:!0}},computed:{...B(L,{importMetadata:e=>e.page?.adminFlags?.importMetadata,q:e=>e.settings.q}),...B(A,{md:e=>e.md}),collectionTitle(){if(this.md.collectionTitle)return`${this.md.collectionTitle}:`},date(){if(!this.md.year&&!this.md.month&&!this.md.day)return"";const e=new Date(this.md.year||1970,this.md.month||1,this.md.day||1),t={};return this.md.year&&(t.year="numeric"),this.md.month&&(t.month=this.$vuetify.display.smAndDown?"short":"long"),this.md.day&&(t.day="numeric"),e.toLocaleDateString("default",t)},readerRoute(){return this.md?.ids?Qe(this.md,this.importMetadata):{}},formattedIssueNumber(){if(!this.md)return"Unknown";if(!((this.md.issueNumber===null||this.md.issueNumber===void 0)&&!this.md.issueSuffix))return"#"+Ae(this.md)},pages(){let e="";if(!this.md)return e;if(this.md.page){const a=Se.format(this.md.page);e+=this.$vuetify.display.smAndDown?`${a} / `:`Read ${a} of `}const t=Se.format(this.md.pageCount);return e+=`${t} page`,this.md.pageCount!==1&&(e+="s"),this.$vuetify.display.smAndUp&&this.md.progress>0&&(e+=` (${Math.round(this.md.progress)}%)`),e},size(){return this?.md?.size>0?He(this.md.size):0},fileType(){return this?.md?.fileType||"Unknown"},seriesVolumeCount(){const e=this.md.seriesVolumeCount;return e?`of ${e}`:""},volumeIssueCount(){const e=this.md.volumeIssueCount;return e?`/ ${e}`:""}}},Cs={id:"metadataHeader"},Ms={key:1,id:"seriesHeader"},Bs={id:"seriesRow",class:"inlineRow"},Vs={key:2,id:"titleRow"},Rs={key:4,id:"publisherRow",class:"inlineRow"},Ns={key:7,id:"pageDateRow",class:"inlineRow"};function Is(e,t,a,r,n,s){const i=y("MetadataText"),o=y("MetadataBookCover"),d=y("MetadataTags"),b=y("MetadataControls");return l(),p(ce,null,[m("header",Cs,[e.q?(l(),f(i,{key:0,id:"search",value:e.q,label:"Search Query",highlight:!0},null,8,["value"])):h("",!0),u(o,{id:"metadataBookCover",group:a.group},null,8,["group"]),e.md.seriesList?.length===1?(l(),p("section",Ms,[m("div",Bs,[(l(),f(i,{id:"series",key:e.md.seriesList[0].ids,value:e.md.seriesList[0],group:"s",highlight:e.md.group==="s"},null,8,["value","highlight"])),e.md.volumeList?.length===1?(l(),f(i,{id:"volume",key:e.md.volumeList[0].ids,value:e.md.volumeList[0],group:"v",highlight:e.md.group==="v"},null,8,["value","highlight"])):h("",!0),u(i,{value:s.seriesVolumeCount,class:"subdued"},null,8,["value"]),u(i,{id:"issue",value:s.formattedIssueNumber,group:"c",highlight:e.md.group==="c"},null,8,["value","highlight"]),u(i,{value:s.volumeIssueCount,class:"subdued"},null,8,["value"])])])):h("",!0),e.md.name?(l(),p("span",Vs,w(s.collectionTitle)+" "+w(e.md.name),1)):h("",!0),e.md.seriesList?.length>1?(l(),f(d,{key:3,id:"seriesTags",class:"groupTags",label:"Series",values:e.md.seriesList,filter:"s"},null,8,["values"])):h("",!0),m("div",null,[e.md.volumeList?.length>1?(l(),f(d,{key:0,id:"volumeTags",class:"groupTags",label:"Volumes",values:e.md.volumeList,filter:"v"},null,8,["values"])):h("",!0)]),e.md.publisherList?.length===1?(l(),p("div",Rs,[(l(),f(i,{id:"publisher",key:e.md.publisherList[0].ids,group:"p",highlight:e.md.group==="p",value:e.md.publisherList[0]},null,8,["highlight","value"])),e.md.imprintList?.length===1?(l(),f(i,{id:"imprint",key:e.md.imprintList[0].ids,group:"i",highlight:e.md.group==="i",value:e.md.imprintList[0]},null,8,["highlight","value"])):h("",!0)])):h("",!0),e.md.publisherList?.length>1?(l(),f(d,{key:5,id:"publisherTags",class:"groupTags",label:"Publishers",values:e.md.publisherList,filter:"p"},null,8,["values"])):h("",!0),e.md.imprintList?.length>1?(l(),f(d,{key:6,id:"imprintTags",class:"groupTags",label:"Imprints",values:e.md.imprintList,filter:"i"},null,8,["values"])):h("",!0),s.pages||e.md.year||e.md.month||e.md.day?(l(),p("div",Ns,[u(i,{value:s.pages},null,8,["value"]),u(i,{value:s.date,class:"datePicker"},null,8,["value"])])):h("",!0)]),u(b,{id:"controls",group:a.group},null,8,["group"])],64)}const Ls=C(Ts,[["render",Is],["__scopeId","data-v-a05541e5"]]),xs={name:"MetadataActivator",props:{book:{type:Object,required:!0},toolbar:{type:Boolean,require:!0}},data(){return{mdiTagOutline:St}},computed:{...B(_t,{lazyImportEnabled:e=>e.adminFlags.lazyImportMetadata}),variant(){return this.toolbar?"plain":"text"}},methods:{...ue(A,["lazyImport"]),onMouseEnter(){if(this.lazyImportEnabled&&this.book.group==="c"&&!this.book.hasMetadata){const e=this.book.ids||[this.book.pk];this.lazyImport({group:this.book.group,ids:e}),this.book.hasMetadata=!0}}}};function Ps(e,t,a,r,n,s){return l(),f(ge,{onMouseenter:s.onMouseEnter,"aria-label":"tags",class:"tagButton cardControlButton",variant:s.variant,icon:n.mdiTagOutline,title:"Tags",onClick:t[0]||(t[0]=wt(()=>{},["prevent"]))},null,8,["onMouseenter","variant","icon"])}const $s=C(xs,[["render",Ps]]),Fs=1160,Ds=.05,Es=250,zs={name:"MetadataButton",components:{CloseButton:qt,MetadataActivator:$s,MetadataBody:ps,MetadataHeader:Ls,PlaceholderLoading:Qt},props:{book:{type:Object,required:!0},toolbar:{type:Boolean,default:!1}},data(){return{dialog:!1,progress:0}},computed:{...B(A,{md:e=>e.md}),showContainer(){return this.md?.loaded||!1},children(){return this.book.childCount||0}},watch:{dialog(e){e?this.dialogOpened():this.clearMetadata()}},methods:{...ue(A,["clearMetadata","loadMetadata"]),dialogOpened(){const e=this.book.ids||[this.book.pk],t={group:this.book.group,pks:e};this.loadMetadata(t),this.startProgress()},startProgress(){this.startTime=Date.now(),this.estimatedMS=Math.max(Ds,this.children/Fs)*1e3,this.updateProgress()},updateProgress(){const e=Date.now()-this.startTime;this.progress=e/this.estimatedMS*100,!(this.progress>=100||this.md)&&setTimeout(()=>{this.updateProgress()},Es)}}},Os={key:1,id:"placeholderContainer"};function As(e,t,a,r,n,s){const i=y("MetadataActivator"),o=y("CloseButton"),d=y("MetadataHeader"),b=y("MetadataBody"),M=y("PlaceholderLoading");return l(),f(Ut,{modelValue:n.dialog,"onUpdate:modelValue":t[2]||(t[2]=_=>n.dialog=_),fullscreen:"",transition:"dialog-bottom-transition"},{activator:T(({props:_})=>[u(i,Q(_,{book:a.book,toolbar:a.toolbar}),null,16,["book","toolbar"])]),default:T(()=>[u(o,{class:"closeButton",title:"Close Metadata (esc)",onClick:t[0]||(t[0]=_=>n.dialog=!1)}),s.showContainer?(l(),p("div",{key:0,id:"metadataContainer",onKeyup:t[1]||(t[1]=Tt(_=>n.dialog=!1,["esc"]))},[u(d,{group:a.book.group},null,8,["group"]),u(b,{book:a.book},null,8,["book"])],32)):(l(),p("div",Os,[t[3]||(t[3]=m("div",{id:"placeholderTitle"},"Tags Loading",-1)),u(M,{"model-value":n.progress,indeterminate:n.progress>=100,class:"placeholder"},null,8,["model-value","indeterminate"])]))]),_:1},8,["modelValue"])}const gi=C(zs,[["render",As],["__scopeId","data-v-e1a86bc1"]]),Gs={name:"PaginationNavButton",props:{narrow:{type:Boolean,default:!0}},computed:{classes(){return{narrowButton:this.narrow}}}};function js(e,t,a,r,n,s){return l(),f(ge,{variant:"plain",density:"compact",class:I(["paginationNavButton",s.classes]),size:"medium"},Ce({_:2},[le(e.$slots,(i,o)=>({name:o,fn:T(d=>[Me(e.$slots,o,Q({props:i},d),void 0,!0)])}))]),1032,["class"])}const bi=C(Gs,[["render",js],["__scopeId","data-v-cf061c30"]]),Ne=Symbol.for("vuetify:v-slider");function Us(e,t,a){const r=a==="vertical",n=t.getBoundingClientRect(),s="touches"in e?e.touches[0]:e;return r?s.clientY-(n.top+n.height/2):s.clientX-(n.left+n.width/2)}function qs(e,t){return"touches"in e&&e.touches.length?e.touches[0][t]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][t]:e[t]}const Hs=me({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,...Pt(),...xt({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),Ks=e=>{const t=g(()=>parseFloat(e.min)),a=g(()=>parseFloat(e.max)),r=g(()=>Number(e.step)>0?parseFloat(e.step):0),n=g(()=>Math.max(xe(r.value),xe(t.value)));function s(i){if(i=parseFloat(i),r.value<=0)return i;const o=we(i,t.value,a.value),d=t.value%r.value;let b=Math.round((o-d)/r.value)*r.value+d;return o>b&&b+r.value>a.value&&(b=a.value),parseFloat(Math.min(b,a.value).toFixed(n.value))}return{min:t,max:a,step:r,decimals:n,roundValue:s}},Ws=e=>{let{props:t,steps:a,onSliderStart:r,onSliderMove:n,onSliderEnd:s,getActiveThumb:i}=e;const{isRtl:o}=Ve(),d=D(()=>t.reverse),b=g(()=>t.direction==="vertical"),M=g(()=>b.value!==d.value),{min:_,max:P,step:E,decimals:H,roundValue:K}=a,J=g(()=>parseInt(t.thumbSize,10)),W=g(()=>parseInt(t.tickSize,10)),Y=g(()=>parseInt(t.trackSize,10)),z=g(()=>(P.value-_.value)/E.value),ee=D(()=>t.disabled),O=g(()=>t.error||t.disabled?void 0:t.thumbColor??t.color),G=g(()=>t.error||t.disabled?void 0:t.trackColor??t.color),x=g(()=>t.error||t.disabled?void 0:t.trackFillColor??t.color),N=Pe(!1),S=Pe(0),j=fe(),F=fe();function k(c){const v=j.value?.$el;if(!v)return;const se=t.direction==="vertical",et=se?"top":"left",tt=se?"height":"width",at=se?"clientY":"clientX",{[et]:st,[tt]:it}=v.getBoundingClientRect(),nt=qs(c,at);let ye=we((nt-st-S.value)/it)||0;return(se?M.value:M.value!==o.value)&&(ye=1-ye),K(_.value+ye*(P.value-_.value))}const te=c=>{const v=k(c);v!=null&&s({value:v}),N.value=!1,S.value=0},U=c=>{const v=k(c);F.value=i(c),F.value&&(N.value=!0,F.value.contains(c.target)?S.value=Us(c,F.value,t.direction):(S.value=0,v!=null&&n({value:v})),v!=null&&r({value:v}),Mt(()=>F.value?.focus()))},q={passive:!0,capture:!0};function Z(c){const v=k(c);v!=null&&n({value:v})}function X(c){c.stopPropagation(),c.preventDefault(),te(c),window.removeEventListener("mousemove",Z,q),window.removeEventListener("mouseup",X)}function he(c){te(c),window.removeEventListener("touchmove",Z,q),c.target?.removeEventListener("touchend",he)}function be(c){U(c),window.addEventListener("touchmove",Z,q),c.target?.addEventListener("touchend",he,{passive:!1})}function ke(c){c.button===0&&(c.preventDefault(),U(c),window.addEventListener("mousemove",Z,q),window.addEventListener("mouseup",X,{passive:!1}))}const re=c=>{const v=(c-_.value)/(P.value-_.value)*100;return we(isNaN(v)?0:v,0,100)},V=D(()=>t.showTicks),R=g(()=>V.value?t.ticks?Array.isArray(t.ticks)?t.ticks.map(c=>({value:c,position:re(c),label:c.toString()})):Object.keys(t.ticks).map(c=>({value:parseFloat(c),position:re(parseFloat(c)),label:t.ticks[c]})):z.value!==1/0?Ct(z.value+1).map(c=>{const v=_.value+c*E.value;return{value:v,position:re(v)}}):[]:[]),oe=g(()=>R.value.some(c=>{let{label:v}=c;return!!v})),ae={activeThumbRef:F,color:D(()=>t.color),decimals:H,disabled:ee,direction:D(()=>t.direction),elevation:D(()=>t.elevation),hasLabels:oe,isReversed:d,indexFromEnd:M,min:_,max:P,mousePressed:N,numTicks:z,onSliderMousedown:ke,onSliderTouchstart:be,parsedTicks:R,parseMouseMove:k,position:re,readonly:D(()=>t.readonly),rounded:D(()=>t.rounded),roundValue:K,showTicks:V,startOffset:S,step:E,thumbSize:J,thumbColor:O,thumbLabel:D(()=>t.thumbLabel),ticks:D(()=>t.ticks),tickSize:W,trackColor:G,trackContainerRef:j,trackFillColor:x,trackSize:Y,vertical:b};return Bt(Ne,ae),ae},Ys=me({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,...Te()},"VSliderThumb"),Zs=pe()({name:"VSliderThumb",directives:{vRipple:Fe},props:Ys(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a,emit:r}=t;const n=Ge(Ne),{isRtl:s,rtlClasses:i}=Ve();if(!n)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{min:o,max:d,thumbColor:b,step:M,disabled:_,thumbSize:P,thumbLabel:E,direction:H,isReversed:K,vertical:J,readonly:W,elevation:Y,mousePressed:z,decimals:ee,indexFromEnd:O}=n,G=g(()=>_.value?void 0:Y.value),{elevationClasses:x}=$t(G),{textColorClasses:N,textColorStyles:S}=Ft(b),{pageup:j,pagedown:F,end:k,home:te,left:U,right:q,down:Z,up:X}=Vt,he=[j,F,k,te,U,q,Z,X],be=g(()=>M.value?[1,2,3]:[1,5,10]);function ke(V,R){if(!he.includes(V.key))return;V.preventDefault();const oe=M.value||.1,ae=(d.value-o.value)/oe;if([U,q,Z,X].includes(V.key)){const v=(J.value?[s.value?U:q,K.value?Z:X]:O.value!==s.value?[U,X]:[q,X]).includes(V.key)?1:-1,se=V.shiftKey?2:V.ctrlKey?1:0;v===-1&&R===d.value&&!se&&!Number.isInteger(ae)?R=R-ae%1*oe:R=R+v*oe*be.value[se]}else if(V.key===te)R=o.value;else if(V.key===k)R=d.value;else{const c=V.key===F?1:-1;R=R-c*oe*(ae>100?ae/10:10)}return Math.max(e.min,Math.min(e.max,R))}function re(V){const R=ke(V,e.modelValue);R!=null&&r("update:modelValue",R)}return ve(()=>{const V=ie(O.value?100-e.position:e.position,"%");return m("div",{class:I(["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&z.value},e.class,i.value]),style:de([{"--v-slider-thumb-position":V,"--v-slider-thumb-size":ie(P.value)},e.style]),role:"slider",tabindex:_.value?-1:0,"aria-label":e.name,"aria-valuemin":o.value,"aria-valuemax":d.value,"aria-valuenow":e.modelValue,"aria-readonly":!!W.value,"aria-orientation":H.value,onKeydown:W.value?void 0:re},[m("div",{class:I(["v-slider-thumb__surface",N.value,x.value]),style:{...S.value}},null),$e(m("div",{class:I(["v-slider-thumb__ripple",N.value]),style:de(S.value)},null),[[Fe,e.ripple,null,{circle:!0,center:!0}]]),u(Kt,{origin:"bottom center"},{default:()=>[$e(m("div",{class:"v-slider-thumb__label-container"},[m("div",{class:I(["v-slider-thumb__label",N.value])},[m("div",null,[a["thumb-label"]?.({modelValue:e.modelValue})??e.modelValue.toFixed(M.value?ee.value:1)])])]),[[Rt,E.value&&e.focused||E.value==="always"]])]})])}),{}}}),Xs=me({start:{type:Number,required:!0},stop:{type:Number,required:!0},...Te()},"VSliderTrack"),Qs=pe()({name:"VSliderTrack",props:Xs(),emits:{},setup(e,t){let{slots:a}=t;const r=Ge(Ne);if(!r)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:n,parsedTicks:s,rounded:i,showTicks:o,tickSize:d,trackColor:b,trackFillColor:M,trackSize:_,vertical:P,min:E,max:H,indexFromEnd:K}=r,{roundedClasses:J}=Dt(i),{backgroundColorClasses:W,backgroundColorStyles:Y}=De(M),{backgroundColorClasses:z,backgroundColorStyles:ee}=De(b),O=g(()=>`inset-${P.value?"block":"inline"}-${K.value?"end":"start"}`),G=g(()=>P.value?"height":"width"),x=g(()=>({[O.value]:"0%",[G.value]:"100%"})),N=g(()=>e.stop-e.start),S=g(()=>({[O.value]:ie(e.start,"%"),[G.value]:ie(N.value,"%")})),j=g(()=>o.value?(P.value?s.value.slice().reverse():s.value).map((k,te)=>{const U=k.value!==E.value&&k.value!==H.value?ie(k.position,"%"):void 0;return m("div",{key:k.value,class:I(["v-slider-track__tick",{"v-slider-track__tick--filled":k.position>=e.start&&k.position<=e.stop,"v-slider-track__tick--first":k.value===E.value,"v-slider-track__tick--last":k.value===H.value}]),style:{[O.value]:U}},[(k.label||a["tick-label"])&&m("div",{class:"v-slider-track__tick-label"},[a["tick-label"]?.({tick:k,index:te})??k.label])])}):[]);return ve(()=>m("div",{class:I(["v-slider-track",J.value,e.class]),style:de([{"--v-slider-track-size":ie(_.value),"--v-slider-tick-size":ie(d.value)},e.style])},[m("div",{class:I(["v-slider-track__background",z.value,{"v-slider-track__background--opacity":!!n.value||!M.value}]),style:{...x.value,...ee.value}},null),m("div",{class:I(["v-slider-track__fill",W.value]),style:{...S.value,...Y.value}},null),o.value&&m("div",{class:I(["v-slider-track__ticks",{"v-slider-track__ticks--always-show":o.value==="always"}])},[j.value])])),{}}}),Js=me({...Zt(),...Hs(),...Yt(),modelValue:{type:[Number,String],default:0}},"VSlider"),ei=pe()({name:"VSlider",props:Js(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,t){let{slots:a,emit:r}=t;const n=fe(),s=fe(),{rtlClasses:i}=Ve(),o=Ks(e),d=Nt(e,"modelValue",void 0,x=>o.roundValue(x??o.min.value)),{min:b,max:M,mousePressed:_,roundValue:P,onSliderMousedown:E,onSliderTouchstart:H,trackContainerRef:K,position:J,hasLabels:W,readonly:Y}=Ws({props:e,steps:o,onSliderStart:()=>{r("start",d.value)},onSliderEnd:x=>{let{value:N}=x;const S=P(N);d.value=S,r("end",S)},onSliderMove:x=>{let{value:N}=x;return d.value=P(N)},getActiveThumb:()=>n.value?.$el}),{isFocused:z,focus:ee,blur:O}=Wt(e),G=g(()=>J(d.value));return ve(()=>{const x=Ee.filterProps(e),N=!!(e.label||a.label||a.prepend);return u(Ee,Q({ref:s,class:["v-slider",{"v-slider--has-labels":!!a["tick-label"]||W.value,"v-slider--focused":z.value,"v-slider--pressed":_.value,"v-slider--disabled":e.disabled},i.value,e.class],style:e.style},x,{focused:z.value}),{...a,prepend:N?S=>m(ce,null,[a.label?.(S)??(e.label?u(Xt,{id:S.id.value,class:"v-slider__label",text:e.label},null):void 0),a.prepend?.(S)]):void 0,default:S=>{let{id:j,messagesId:F}=S;return m("div",{class:"v-slider__container",onMousedown:Y.value?void 0:E,onTouchstartPassive:Y.value?void 0:H},[m("input",{id:j.value,name:e.name||j.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:d.value},null),u(Qs,{ref:K,start:0,stop:G.value},{"tick-label":a["tick-label"]}),u(Zs,{ref:n,"aria-describedby":F.value,focused:z.value,min:b.value,max:M.value,modelValue:d.value,"onUpdate:modelValue":k=>d.value=k,position:G.value,elevation:e.elevation,onFocus:ee,onBlur:O,ripple:e.ripple,name:e.name},{"thumb-label":a["thumb-label"]})])}})}),Et({focus:()=>n.value?.$el.focus()},s)}}),ti={name:"PaginationSlider",props:{min:{type:Number,default:0}}};function ai(e,t,a,r,n,s){return l(),f(ei,Q({"thumb-size":"36",class:"paginationSlider",density:"compact","hide-details":"auto",min:a.min,rounded:!0,"show-ticks":"always",step:1,"thumb-label":"always"},e.$attrs),{"tick-label":T(({index:i})=>[$(w(i+a.min),1)]),_:1},16,["min"])}const ki=C(ti,[["render",ai],["__scopeId","data-v-01b67afd"]]),si={name:"PaginationToolbar"};function ii(e,t,a,r,n,s){return l(),f(Jt,{class:"paginationToolbar codexToolbar",density:"compact",transform:"center bottom"},Ce({_:2},[le(e.$slots,(i,o)=>({name:o,fn:T(d=>[Me(e.$slots,o,Q({props:i},d),void 0,!0)])}))]),1024)}const yi=C(si,[["render",ii],["__scopeId","data-v-cfa8cce0"]]);export{da as B,fa as D,ba as M,_e as N,bi as P,pi as T,fi as V,vi as a,gi as b,yi as c,ki as d,Qe as g,He as p,ze as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-doc-DQBmNe4l.js","assets/main-Bmi4BPiO.js","assets/main-B8_0rUnw.css","assets/pdf-doc-DxqOo2k2.css","assets/pager-full-pdf-BjSr3CzH.js","assets/settings-drawer-BoAnrKCI.js","assets/forwardRefs-FxOC1qa_.js","assets/forwardRefs-B_sUWZn6.css","assets/unauthorized-DXoWE_v2.js","assets/VDialog-Oz6-kM3S.js","assets/VDialog-CpWjrJ0R.css","assets/change-password-dialog-DpqXgZ53.js","assets/VForm-BaeKMRS9.js","assets/VSelectionControl-D3h7FjSM.js","assets/VSelectionControl-RqBzwjYi.css","assets/VForm-DxBt30-N.css","assets/admin-mQ-F7brp.js","assets/change-password-dialog-DL8UMjmX.css","assets/ssrBoot-B6P0M2z2.js","assets/unauthorized-BBwsmi0O.css","assets/copy-to-clipboard-DoUvDJVx.js","assets/VDivider-CSRFyKQO.js","assets/VDivider-DU47sRrT.css","assets/settings-drawer-B-pwZRSy.css","assets/VWindowItem-Dwb7oeu0.js","assets/VWindowItem-ChYLiXSE.css","assets/VSelect-4ozzBEef.js","assets/VCheckboxBtn-BzgViWAb.js","assets/VSelect-DQPZyfSb.css","assets/pagination-toolbar-DpMVSiz_.js","assets/VTable-Dj5EC5Aq.js","assets/VTable-CQyv0wyO.css","assets/confirm-dialog-uoXMmYq3.js","assets/confirm-dialog-YfC8mRQA.css","assets/pagination-toolbar-741OafNw.css","assets/VExpansionPanels-82Ocr2Kh.js","assets/VExpansionPanels-RsCANmDP.css","assets/VRadioGroup-DeB10IRm.js","assets/VRadioGroup-Cp9mZ7cb.css","assets/VCheckbox--IZv20K5.js","assets/VCheckbox-CvH8ekHL.css","assets/index-DCZ6v5x6.js","assets/index-Czf-fUM7.css"])))=>i.map(i=>d[i]);
2
- import{_ as b,B as v,D as k,ak as d,x as m,G as T,w as g,d as R,s as h,v as u,a as r,y as w,A as L,q as _,aa as we,F as D,al as it,am as lt,m as ee,an as Ce,ao as ct,ap as Te,H as Re,n as O,aq as Be,ar as q,as as ut,S as $,a5 as dt,at as ht,au as De,z as U,k as Ie,b as n,av as pt,C as $e,aw as gt,ax as mt,ay as kt,g as xe,p as ae,az as Le,u as Ve,aA as Oe,J as Ae,aB as ft,aC as bt,c as x,aD as vt,aE as yt,aF as _t,aG as Pt,aH as St,aI as wt,aJ as Ct,E as F,ab as Tt,$ as Rt,aK as Bt,O as Dt,P as It,Q as $t,R as xt,aL as Lt,aM as Vt,aN as Ot,aO as At,L as te,aP as Et,V as Nt,aQ as Ee,aR as Ut}from"./main-Bmi4BPiO.js";import{V as Ft,a as Wt,S as zt}from"./settings-drawer-BoAnrKCI.js";import{k as K,I as Mt,r as Ne,i as Ue,c as Kt,t as Fe,v as We,d as Ht,j as ze,w as Me,x as jt,V as Ke}from"./forwardRefs-FxOC1qa_.js";import{P as qt,E as He,A as Gt,V as Yt,a as Jt,U as Qt,c as Xt}from"./unauthorized-DXoWE_v2.js";import{V as je,a as qe}from"./VWindowItem-Dwb7oeu0.js";import{b as Zt}from"./VSelect-4ozzBEef.js";import{C as ne,a as eo}from"./VDialog-Oz6-kM3S.js";import{D as to,T as oo,b as so,V as G,a as ao,P as Ge,c as no,d as ro}from"./pagination-toolbar-DpMVSiz_.js";import{V as io,a as lo,b as co,c as uo}from"./VExpansionPanels-82Ocr2Kh.js";import{d as ho,V as po,e as go}from"./VSelectionControl-D3h7FjSM.js";import{V as Y,a as J}from"./VRadioGroup-DeB10IRm.js";import{a as oe}from"./VDivider-CSRFyKQO.js";import{V as N}from"./VCheckbox--IZv20K5.js";import{T as Q}from"./index-DCZ6v5x6.js";const mo={control:"ctrl",command:"cmd",option:"alt",up:"arrowup",down:"arrowdown",left:"arrowleft",right:"arrowright",esc:"escape",spacebar:" ",space:" ",return:"enter",del:"delete",minus:"-",hyphen:"-"};function ge(e){const t=e.toLowerCase();return mo[t]||t}function Ye(e){if(!e)return[];const l=(e.startsWith("+")||e.startsWith("_"))&&!(e.startsWith("++")||e.startsWith("__"));if(e.length>1&&l||e.includes("++")||e.includes("__")||e==="+"||e==="_"||e.length>1&&(e.endsWith("+")||e.endsWith("_"))&&e.at(-2)!==e.at(-1)||e==="++"||e==="--"||e==="__")return[];const a=[];let o="";const s=()=>{o&&(a.push(ge(o)),o="")};for(let p=0;p<e.length;p++){const f=e[p],B=e[p+1];f==="+"||f==="_"||f==="-"?f===B?(s(),a.push(f),p++):f==="+"||f==="_"?s():o+=f:o+=f}return s(),a.some(p=>p.length>1&&p.includes("-")&&p!=="--")?[]:a.length===0&&e?[ge(e)]:a}function ko(e){if(!e)return[];const t=e.startsWith("-")&&!["---","--+"].includes(e),l=e.endsWith("-")&&!e.endsWith("+-")&&!e.endsWith("_-")&&e!=="-"&&e!=="---";if(t||l)return[];const c=[];let a="",o=0;for(;o<e.length;){const f=e[o];if(f==="-"){const B=e[o-1],A=o>1?e[o-2]:void 0;(B==="+"||B==="_")&&A!=="+"?(a+=f,o++):(a?(c.push(a),a=""):c.push("-"),o++)}else a+=f,o++}a&&c.push(a);const s=[];let i=0;for(const f of c)f==="-"?(i%2===0&&s.push("-"),i++):(i=0,s.push(f));return s.every(f=>Ye(f).length>0)?s:[]}function Je(e,t){const{self:l=!1}=t.modifiers??{},c=t.value,a=typeof c=="object"&&c.options||{passive:!0},o=typeof c=="function"||"handleEvent"in c?c:c.handler,s=l?e:t.arg?document.querySelector(t.arg):window;s&&(s.addEventListener("scroll",o,a),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:o,options:a,target:l?void 0:s})}function Qe(e,t){if(!e._onScroll?.[t.instance.$.uid])return;const{handler:l,options:c,target:a=e}=e._onScroll[t.instance.$.uid];a.removeEventListener("scroll",l,c),delete e._onScroll[t.instance.$.uid]}function fo(e,t){t.value!==t.oldValue&&(Qe(e,t),Je(e,t))}const bo={mounted:Je,unmounted:Qe,updated:fo},vo={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...k(d,["isBTT"]),...k(d,{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:{...v(d,["linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function yo(e,t,l,c,a,o){const s=h("router-link");return o.show?(u(),m(Ft,{key:0,class:R(["bookChangeDrawer",{drawerActivated:e.isDrawerOpen}]),"disable-resize-watcher":"","disable-route-watcher":"",location:o.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:g(()=>[r(s,{class:R({navLink:!0,[o.cursorClass]:!0}),to:o.route,"aria-label":o.label,title:o.label,onClick:t[0]||(t[0]=i=>i.stopImmediatePropagation())},{default:g(()=>[r(K,{class:"bookChangeIcon"},{default:g(()=>[w(L(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value","class"])):T("",!0)}const _o=b(vo,[["render",yo],["__scopeId","data-v-0340b976"]]),Po={name:"BookChangeActivator",components:{BookChangeDrawer:_o},props:{direction:{type:String,required:!0}},computed:{show(){return this.bookChangeShow(this.computedDirection)},computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)}},methods:{...v(d,["bookChangeCursorClass","bookChangeLocation","bookChangeShow","normalizeDirection","setBookChangeFlag"])}};function So(e,t,l,c,a,o){const s=h("BookChangeDrawer");return u(),_(D,null,[o.show?(u(),_("div",{key:0,class:R(["changeColumn",{[o.positionClass]:!0,[o.cursorClass]:!0}]),onClick:t[0]||(t[0]=we(i=>e.setBookChangeFlag(l.direction),["stop"]))},null,2)):T("",!0),r(s,{direction:l.direction},null,8,["direction"])],64)}const wo=b(Po,[["render",So],["__scopeId","data-v-67df236c"]]),Co={name:"LoadingPage",components:{Placeholder:qt},props:{twoPages:{type:Boolean,required:!0}}};function To(e,t,l,c,a,o){const s=h("Placeholder");return u(),_("div",{class:R(["pageLoading",{twoPages:l.twoPages}])},[r(s,{class:"pagePlaceholder"})],2)}const Ro=b(Co,[["render",To],["__scopeId","data-v-04027168"]]),me="unauthorized",Bo={name:"ErrorPage",components:{EmptyState:He},props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},emits:["retry"],computed:{text(){return this.type===me?"Protected page":"Failed to load page"},icon(){return this.type===me?it:lt}},methods:{onAction(e){this.$emit("retry",e)}}};function Do(e,t,l,c,a,o){const s=h("EmptyState");return u(),m(s,{class:R(["pageError",{twoPages:l.twoPages}]),headline:o.text,icon:o.icon,"action-text":"Retry","onClick:action":o.onAction},null,8,["class","headline","icon","onClick:action"])}const Io=b(Bo,[["render",Do],["__scopeId","data-v-97fa48e8"]]),$o={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{...k(d,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.scale==1)return e;const t=this.$el;if(!t?.naturalWidth)return e;const l=t.naturalWidth/2;return e.transformOrigin=`${l}px top`,e.transform=`scale(${this.scale})`,e},bookSettings(){return this.getBookSettings(this.book)},classes(){return this.bookSettings.fitToClass}},methods:{...v(d,["getBookSettings"])}},xo=["src"];function Lo(e,t,l,c,a,o){return u(),_("img",ee({class:[o.classes,"img"],draggable:"false",src:l.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,xo)}const ke=b($o,[["render",Lo],["__scopeId","data-v-014c2ac0"]]),fe=Ce(Te(()=>Be(()=>import("./pdf-doc-DQBmNe4l.js"),__vite__mapDeps([0,1,2,3])))),Vo=333,Oo={name:"BookPage",components:{ErrorPage:Io,LoadingPage:Ro,PDFDoc:fe,ImgPage:ke},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:"",ts:0}},computed:{...k(d,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.book.fileType==="PDF"||this.scale==1)return e;const t=this.$refs.pageComponent?.$el;return t?.naturalHeight&&(e.height=t.naturalHeight*this.scale+"px",e.width=t.naturalWidth*this.scale+"px"),e},src(){const e=Math.max(this.book.mtime,this.ts),t={pk:this.book.pk,page:this.page,mtime:e};return ct(t)},component(){return this.book.fileType==="PDF"?fe:ke},bookSettings(){return this.getBookSettings(this.book)},twoPages(){return this.bookSettings.twoPages}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},Vo)},methods:{...v(d,["getBookSettings"]),onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1},onRetry(){this.ts=Date.now()}}},Ao=["id","data-page"];function Eo(e,t,l,c,a,o){const s=h("ErrorPage"),i=h("LoadingPage");return u(),_("div",{id:`page${l.page}`,key:a.ts,"data-page":l.page,class:"page",style:O(o.style)},[a.error?(u(),m(s,{key:0,"two-pages":o.twoPages,type:a.error,onRetry:o.onRetry},null,8,["two-pages","type","onRetry"])):a.showProgress&&!a.loaded?(u(),m(i,{key:1,"two-pages":o.twoPages},null,8,["two-pages"])):(u(),m(Re(o.component),{key:2,ref:"pageComponent",book:l.book,page:1,src:o.src,onError:o.onError,onLoad:o.onLoad,onUnauthorized:o.onUnauthorized},null,40,["book","src","onError","onLoad","onUnauthorized"]))],12,Ao)}const Xe=b(Oo,[["render",Eo],["__scopeId","data-v-cdb69b0e"]]),No=.5,Uo={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:ut}},computed:{...k(d,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=q},style(){return{cursor:this.scale==q?"zoom-in":"all-scroll"}}},methods:{...v(d,["setSettingsClient"]),clearSelection(){globalThis.getSelection&&globalThis.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+No;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:q})}}};function Fo(e,t,l,c,a,o){const s=ht("drag-scroller");return $((u(),_("div",{class:"scaleForScroll",style:O(o.style),onDblclick:t[0]||(t[0]=(...i)=>o.onDoubleClick&&o.onDoubleClick(...i))},[dt(e.$slots,"default",{},void 0,!0),o.showReset?(u(),m(K,{key:0,class:"resetIcon",onClick:we(o.scaleReset,["stop"])},{default:g(()=>[w(L(a.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):T("",!0)],36)),[[s,,void 0,{onlyX:!0}]])}const Ze=b(Uo,[["render",Fo],["__scopeId","data-v-88f3df90"]]),Wo={name:"HorizontalPages",components:{BookPage:Xe,ScaleForScroll:Ze},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{bookSettings(){return this.getBookSettings(this.book)},isReadInReverse(){return this.bookSettings.isReadInReverse},showSecondPage(){return this.bookSettings.twoPages&&this.page<this.book.maxPage&&!this.isCoverPage(this.book,this.page)},showPageOne(){return!this.isReadInReverse||this.showSecondPage},showPageTwo(){return this.isReadInReverse||this.showSecondPage},pageOne(){return this.isReadInReverse?this.page+1:this.page},pageTwo(){return this.isReadInReverse?this.page:this.page+1}},methods:{...v(d,["getBookSettings","isCoverPage"])}};function zo(e,t,l,c,a,o){const s=h("BookPage"),i=h("ScaleForScroll");return u(),m(i,{class:"noWrap"},{default:g(()=>[o.showPageOne?(u(),m(s,{key:0,ref:"pageOne",book:l.book,page:o.pageOne,class:"horizontalPage"},null,8,["book","page"])):T("",!0),o.showPageTwo?(u(),m(s,{key:1,book:l.book,page:o.pageTwo,class:"horizontalPage"},null,8,["book","page"])):T("",!0)]),_:1})}const Mo=b(Wo,[["render",zo],["__scopeId","data-v-ce77a1b1"]]),Ko={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...k(d,["isFirstPage","isLastPage"]),...k(d,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){return"pageChangeColumn"},directionClass(){return this.direction},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...v(d,["linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function Ho(e,t,l,c,a,o){const s=h("router-link");return o.show?(u(),m(s,{key:0,to:o.route,"aria-label":o.label,class:R(["changeColumn",{[o.directionClass]:!0}]),onClick:t[0]||(t[0]=i=>i.stopImmediatePropagation())},null,8,["to","aria-label","class"])):T("",!0)}const jo=b(Ko,[["render",Ho],["__scopeId","data-v-8a0b30bf"]]),qo=48,Go=48,Yo={name:"PagerHorizontal",components:{HorizontalPages:Mo,PageChangeLink:jo},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{...k(d,{prevBook:e=>e.routes.books?.prev,nextBook:e=>e.routes.books?.next,storePage:e=>e.page,storePk:e=>e.books.current.pk,transition:e=>e.readerSettings.pageTransition}),bookSettings(){return this.getBookSettings(this.book)},twoPages(){return this.bookSettings.twoPages},isReadInReverse(){return this.bookSettings.isReadInReverse},windowIndex(){const e=this.activePage-this.pages[0];return Math.min(Math.max(0,e),this.book.maxPage)}},watch:{twoPages(){this.setActivePage(this.storePage,!0)},storePage(e){if(this.book.pk===this.storePk){this.activePage=e;const t=this.pages.at(0),l=this.pages.at(-1);(e<t||e>l)&&this.setPages()}}},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:{...v(d,["getBookSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-qo,0),t=Math.min(this.activePage+Go,this.book.maxPage);this.pages=De(e,t+1)}}};function Jo(e,t,l,c,a,o){const s=h("PageChangeLink"),i=h("HorizontalPages");return u(),m(je,{"show-arrows":"",continuous:"","model-value":o.windowIndex,reverse:o.isReadInReverse},{prev:g(()=>[r(s,{direction:"prev"})]),next:g(()=>[r(s,{direction:"next"})]),default:g(()=>[(u(!0),_(D,null,U(a.pages,p=>(u(),m(qe,{key:`c/${l.book.pk}/${p}`,class:"windowItem",disabled:"",eager:p>=e.storePage-1&&p<=e.storePage+2,"model-value":p,transition:e.transition,"reverse-transition":e.transition},{default:g(()=>[r(i,{book:l.book,page:p},null,8,["book","page"])]),_:2},1032,["eager","model-value","transition","reverse-transition"]))),128))]),_:1},8,["model-value","reverse"])}const be=b(Yo,[["render",Jo],["__scopeId","data-v-a55977d3"]]),ve=250,Qo={name:"PagerVertical",components:{BookPage:Xe,ScaleForScroll:Ze},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1,intersectOptions:{handler:this.onIntersect,options:{threshold:[.75]}}}},computed:{...k(d,{storePage:e=>e.page,showToolbars:e=>e.showToolbars}),...Ie(d,["reactWithScroll"]),bookSettings(){return this.getBookSettings(this.book)},isReadInReverse(){return this.bookSettings.isReadInReverse},items(){const e=this.book?.maxPage?this.book.maxPage+1:0,t=De(0,e);return this.isReadInReverse&&t.reverse(),t}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},ve)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...v(d,["getBookSettings","setActivePage","setBookChangeFlag"]),onIntersect(e,t){if(e&&this.intersectorOn){const c=+t[0].target.dataset.page;this.setActivePage(c,!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 l=e.scrollTopMax||e.scrollHeight-e.clientTop;window.innerHeight+t+1>=l&&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},ve)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},Xo=["data-page"];function Zo(e,t,l,c,a,o){const s=h("BookPage"),i=h("ScaleForScroll");return u(),m(i,null,{default:g(()=>[$((u(),m(Zt,{id:"verticalScroll",key:o.isReadInReverse,ref:"verticalScroll",items:o.items,height:a.innerHeight,width:a.innerWidth},{default:g(({item:p})=>[r(s,{book:l.book,page:p,class:"verticalPage"},null,8,["book","page"]),$(n("div",{class:R(["pageTracker",{pageTrackerToolbars:e.showToolbars}]),"data-page":p},null,10,Xo),[[Mt,a.intersectOptions,void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[bo,o.onScroll,"#verticalScroll"]])]),_:1})}const ye=b(Qo,[["render",Zo],["__scopeId","data-v-4fdc17f1"]]),_e=Ce(Te(()=>Be(()=>import("./pager-full-pdf-BjSr3CzH.js"),__vite__mapDeps([4,1,2,0,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42])))),es={name:"PagerSelector",components:{PagerHorizontal:be,PagerPDF:_e,PagerVertical:ye},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...k(d,["cacheBook"]),...k(d,{storePk:e=>e.books?.current?.pk||0}),isActiveBook(){return this.book&&this.storePk===this.book?.pk},bookSettings(){return this.getBookSettings(this.book)},readerFullPdf(){return this.book?.fileType=="PDF"&&this.cacheBook&&!this.bookSettings.isVertical},component(){let e;return this.readerFullPdf?e=_e:this.bookSettings.isVertical?e=ye:e=be,e}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.isActiveBook&&this.setActivePage(+this.$route.params.page,!0)},methods:{...v(d,["getBookSettings","isBookVertical","setActivePage","prefetchBook"])}};function ts(e,t,l,c,a,o){return u(),m(Re(o.component),{book:l.book},null,8,["book"])}const os=b(es,[["render",ts]]),ss={name:"BooksWindow",components:{BookChangeActivator:wo,Pager:os},computed:{...k(d,["isBTT"]),...k(d,{books:e=>[e.books.prev,e.books.current,e.books.next].filter(Boolean),bookChange:e=>e.bookChange,currentBookPk:e=>e.books?.current?.pk||0,bookRoutes:e=>e.routes.books,transition:e=>e.readerSettings.pageTransition}),bookChangePrev(){return this.bookChangeShow("prev")},bookChangeNext(){return this.bookChangeShow("next")}},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks({params:e.params})}},beforeMount(){this.setBookChangeFlag(),this.loadBooks({})},methods:{...v(d,["loadBooks","setBookChangeFlag","toggleToolbars"]),click(){this.toggleToolbars(),this.setBookChangeFlag()},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function as(e,t,l,c,a,o){const s=h("BookChangeActivator"),i=h("Pager");return u(),m(je,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:e.toggleToolbars},{prev:g(()=>[r(s,{direction:"prev"})]),next:g(()=>[r(s,{direction:"next"})]),default:g(()=>[(u(!0),_(D,null,U(e.books,p=>(u(),m(qe,{key:`c/${p.pk}`,class:"windowItem",disabled:"",eager:o.eager(p.pk),value:p.pk,transition:e.transition,"reverse-transitin":e.transition},{default:g(()=>[r(i,{book:p,onClick:o.click},null,8,["book","onClick"])]),_:2},1032,["eager","value","transition","reverse-transitin"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const ns=b(ss,[["render",as],["__scopeId","data-v-3b8d07f2"]]),rs={name:"DownloadPanel",components:{CodexListItem:ne,DownloadButton:to},data(){return{mdiDownload:kt,mdiFileImage:mt}},computed:{...k(d,["activeTitle","routeParams"]),...k(d,{currentBook:e=>e.books?.current,fileType:e=>e.books?.current?.fileType,mtime:e=>e.books?.current?.mtime,pk:e=>e.books?.current?.pk,filename:e=>e.books?.current?.filename,storePage:e=>e.page}),pageSrc(){const e={pk:this.pk,page:this.storePage,ts:this.ts};return gt(e)},pageName(){const e=this.fileType==="PDF"?"pdf":"jpg";return`${this.activeTitle} - page ${this.storePage}.${e}`},downloadPageTitle(){return`Download Page ${this.storePage}`},downloadItem(){return{group:"c",ids:[this.pk],childCount:1,name:this.filename,mtime:this.mtime}}},methods:{...v($e,["downloadIOSPWAFix"]),downloadPage(){pt(this.pageSrc,this.pageName)}}},is={key:0,id:"downloadPanel"};function ls(e,t,l,c,a,o){const s=h("CodexListItem"),i=h("DownloadButton");return e.currentBook?(u(),_("div",is,[r(s,{"prepend-icon":a.mdiFileImage,title:o.downloadPageTitle,onClick:o.downloadPage},null,8,["prepend-icon","title","onClick"]),r(i,{button:!1,item:o.downloadItem},null,8,["item"])])):T("",!0)}const cs=b(rs,[["render",ls],["__scopeId","data-v-a873b002"]]),us=ae({color:String,...Me(),...Ae(),...ze(),...Ht({tag:"kbd"}),...Oe(),...We()},"VKbd"),Pe=xe()({name:"VKbd",props:us(),setup(e,t){let{slots:l}=t;const{themeClasses:c}=Le(e),{borderClasses:a}=Ne(e),{roundedClasses:o}=Ue(e),{backgroundColorClasses:s,backgroundColorStyles:i}=Kt(()=>e.color),{elevationClasses:p}=Fe(e);return Ve(()=>r(e.tag,{class:R(["v-kbd",c.value,s.value,a.value,p.value,o.value,e.class]),style:O([i.value,e.style])},l)),{}}});function et(e,t,l){const c=l&&e.mac?e.mac:e.default,a=t==="icon"&&!l||t==="icon"&&!c.icon||t==="symbol"&&!c.symbol?"text":t;let o=c[a]??c.text;return a==="text"&&typeof o=="string"&&o.startsWith("$")&&!o.startsWith("$vuetify.")&&(o=o.slice(1).toUpperCase()),a==="icon"?["icon",o]:[a,o]}const tt={ctrl:{mac:{symbol:"⌃",icon:"$ctrl",text:"$vuetify.hotkey.ctrl"},default:{text:"Ctrl"}},meta:{mac:{symbol:"⌘",icon:"$command",text:"$vuetify.hotkey.command"},default:{text:"Ctrl"}},cmd:{mac:{symbol:"⌘",icon:"$command",text:"$vuetify.hotkey.command"},default:{text:"Ctrl"}},shift:{mac:{symbol:"⇧",icon:"$shift",text:"$vuetify.hotkey.shift"},default:{text:"Shift"}},alt:{mac:{symbol:"⌥",icon:"$alt",text:"$vuetify.hotkey.option"},default:{text:"Alt"}},enter:{default:{symbol:"↵",icon:"$enter",text:"$vuetify.hotkey.enter"}},arrowup:{default:{symbol:"↑",icon:"$arrowup",text:"$vuetify.hotkey.upArrow"}},arrowdown:{default:{symbol:"↓",icon:"$arrowdown",text:"$vuetify.hotkey.downArrow"}},arrowleft:{default:{symbol:"←",icon:"$arrowleft",text:"$vuetify.hotkey.leftArrow"}},arrowright:{default:{symbol:"→",icon:"$arrowright",text:"$vuetify.hotkey.rightArrow"}},backspace:{default:{symbol:"⌫",icon:"$backspace",text:"$vuetify.hotkey.backspace"}},escape:{default:{text:"$vuetify.hotkey.escape"}}," ":{mac:{symbol:"␣",icon:"$space",text:"$vuetify.hotkey.space"},default:{text:"$vuetify.hotkey.space"}},"-":{default:{text:"-"}}},ds=ae({variant:{type:String,default:"elevated",validator:e=>["elevated","flat","tonal","outlined","text","plain","contained"].includes(e)}},"VHotkeyVariant"),hs=ae({keys:String,displayMode:{type:String,default:"icon"},keyMap:{type:Object,default:()=>tt},platform:{type:String,default:"auto"},inline:Boolean,disabled:Boolean,prefix:String,suffix:String,...Ae(),...Oe(),...Me(),...ze(),...We(),...ds(),color:String},"VHotkey");class se{constructor(t){if(["and","then"].includes(t))this.val=t;else throw new Error("Not a valid delineator")}isEqual(t){return this.val===t.val}}function X(e){return e instanceof se}function ps(e){return typeof e=="string"}function gs(e,t,l){const c=t.toLowerCase();if(c in e){const a=et(e[c],"text",l);return typeof a[1]=="string"?a[1]:String(a[1])}return t.toUpperCase()}function Se(e,t,l,c){const a=l.toLowerCase();if(a in e){const o=et(e[a],t,c);return o[0]==="text"&&typeof o[1]=="string"&&o[1].startsWith("$")&&!o[1].startsWith("$vuetify.")?["text",o[1].replace("$","").toUpperCase(),l]:[...o,l]}return["text",l.toUpperCase(),l]}const ms=xe()({name:"VHotkey",props:hs(),setup(e){const{t}=ft(),{themeClasses:l}=Le(e),{rtlClasses:c}=bt(),{borderClasses:a}=Ne(e),{roundedClasses:o}=Ue(e),{elevationClasses:s}=Fe(e),i=x(()=>e.variant==="contained"),p=x(()=>({...e,variant:i.value?"elevated":e.variant})),{colorClasses:f,colorStyles:B,variantClasses:A}=jt(p),W=x(()=>e.platform==="auto"?typeof navigator<"u"&&/macintosh/i.test(navigator.userAgent):e.platform==="mac"),re=x(()=>e.displayMode),H=new se("and"),ie=new se("then"),le=x(()=>e.keyMap),E=x(()=>e.keys?e.keys.split(" ").map(y=>{const P=ko(y);return P.flatMap((S,C)=>{const he=Ye(S).reduce((V,pe,rt)=>rt!==0?[...V,H,pe]:[...V,pe],[]).map(V=>ps(V)?Se(le.value,re.value,V,W.value):V);return C<P.length-1&&he.push(ie),he})}):[]),at=x(()=>{if(!e.keys)return"";const P=E.value.map(S=>{const C=[];for(const I of S)if(X(I))H.isEqual(I)?C.push(t("$vuetify.hotkey.plus")):ie.isEqual(I)&&C.push(t("$vuetify.hotkey.then"));else{const de=I[0]==="icon"||I[0]==="symbol"?Se(vt(tt,e.keyMap),"text",String(I[1]),W.value)[1]:I[1];C.push(j(de))}return C.join(" ")}).join(", ");return t("$vuetify.hotkey.shortcut",P)});function j(y){return y.startsWith("$vuetify.")?t(y):y}function nt(y){if(re.value==="text")return;const P=gs(le.value,String(y[2]),W.value);return j(P)}function ce(y,P,S){const C=S?"kbd":Pe,I=["v-hotkey__key",`v-hotkey__key-${y[0]}`,...S?["v-hotkey__key--nested"]:[a.value,o.value,s.value,f.value]];return r(C,{key:P,class:R(I),style:O(S?void 0:B.value),"aria-hidden":"true",title:nt(y)},{default:()=>[y[0]==="icon"?r(K,{icon:y[1],"aria-hidden":"true"},null):j(y[1])]})}function ue(y,P){return n("span",{key:P,class:"v-hotkey__divider","aria-hidden":"true"},[H.isEqual(y)?"+":t("$vuetify.hotkey.then")])}Ve(()=>n("div",{class:R(["v-hotkey",{"v-hotkey--disabled":e.disabled,"v-hotkey--inline":e.inline,"v-hotkey--contained":i.value},l.value,c.value,A.value,e.class]),style:O(e.style),role:"img","aria-label":at.value},[i.value?r(Pe,{key:"contained",class:R(["v-hotkey__contained-wrapper",a.value,o.value,s.value,f.value]),style:O(B.value),"aria-hidden":"true"},{default:()=>[e.prefix&&n("span",{key:"contained-prefix",class:"v-hotkey__prefix"},[e.prefix]),E.value.map((y,P)=>n("span",{class:"v-hotkey__combination",key:P},[y.map((S,C)=>X(S)?ue(S,C):ce(S,C,!0)),P<E.value.length-1&&n("span",{"aria-hidden":"true"},[w(" ")])])),e.suffix&&n("span",{key:"contained-suffix",class:"v-hotkey__suffix"},[e.suffix])]}):n(D,null,[e.prefix&&n("span",{key:"prefix",class:"v-hotkey__prefix"},[e.prefix]),E.value.map((y,P)=>n("span",{class:"v-hotkey__combination",key:P},[y.map((S,C)=>X(S)?ue(S,C):ce(S,C,!1)),P<E.value.length-1&&n("span",{"aria-hidden":"true"},[w(" ")])])),e.suffix&&n("span",{key:"suffix",class:"v-hotkey__suffix"},[e.suffix])])]))}}),ks={name:"KeyboardShortcutsTable",components:{VHotkey:ms},data(){return{mdiMenuLeft:St,mdiMenuRight:Pt,mdiKeyboardSpace:_t,mdiAppleKeyboardShift:yt}}},fs={class:"highlight-table"},bs={class:"highlight-table"},vs={class:"highlight-table"};function ys(e,t,l,c,a,o){const s=h("v-hotkey");return u(),_(D,null,[t[22]||(t[22]=n("h4",null,"Navigation",-1)),n("table",fs,[n("tbody",null,[n("tr",null,[n("td",null,[r(s,{keys:"j"}),t[0]||(t[0]=w(", ",-1)),r(s,{keys:"arrowleft"}),t[1]||(t[1]=w(", ",-1)),r(s,{keys:"shift+space"})]),t[2]||(t[2]=n("td",null,"Previous page",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"k"}),t[3]||(t[3]=w(", ",-1)),r(s,{keys:"arrowright"}),t[4]||(t[4]=w(", ",-1)),r(s,{keys:"space"})]),t[5]||(t[5]=n("td",null,"Next page",-1))]),n("tr",null,[n("td",null,[r(s,{keys:","})]),t[6]||(t[6]=n("td",null,[w("Next "),n("em",null,"only"),w(" one page in two page mode.")],-1))]),n("tr",null,[n("td",null,[r(s,{keys:"."})]),t[7]||(t[7]=n("td",null,[w("Previous "),n("em",null,"only"),w(" one page in two page mode.")],-1))]),n("tr",null,[n("td",null,[r(s,{keys:"p"})]),t[8]||(t[8]=n("td",null,"Previous Book",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"n"})]),t[9]||(t[9]=n("td",null,"Next Book",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"esc"})]),t[10]||(t[10]=n("td",null,"Close book",-1))])])]),t[23]||(t[23]=n("h4",null,"Fit Page To",-1)),n("table",bs,[n("tbody",null,[n("tr",null,[n("td",null,[r(s,{keys:"s"})]),t[11]||(t[11]=n("td",null,"screen",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"h"})]),t[12]||(t[12]=n("td",null,"screen height",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"w"})]),t[13]||(t[13]=n("td",null,"screen width",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"o"})]),t[14]||(t[14]=n("td",null,"Show page at original size",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"2"})]),t[15]||(t[15]=n("td",null,"Toggle two page view",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"r"})]),t[16]||(t[16]=n("td",null,"Read Right to Left",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"l"})]),t[17]||(t[17]=n("td",null,"Read Left to Right",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"t"})]),t[18]||(t[18]=n("td",null,"Read Top to Bottom",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"b"})]),t[19]||(t[19]=n("td",null,"Read in Bottom to Top",-1))])])]),t[24]||(t[24]=n("h4",null,"Other",-1)),n("table",vs,[n("tbody",null,[n("tr",null,[n("td",null,[r(s,{keys:"m"})]),t[20]||(t[20]=n("td",null,"Show comic's metadata",-1))]),n("tr",null,[n("td",null,[r(s,{keys:"doubleclick"})]),t[21]||(t[21]=n("td",null,"Zoom page",-1))])])])],64)}const _s=b(ks,[["render",ys],["__scopeId","data-v-11cb1561"]]),Ps=/iP(?:ad|hone|od)|Android/,Ss=Ps.test(navigator.userAgent),ws=Ss||globalThis.orientation!==void 0,Cs={name:"KeyboardShortcutsPanel",components:{CodexListItem:ne,KeyboardShortcutsTable:_s},data(){return{mdiKeyboardOutline:wt,IS_MOBILE:ws}}};function Ts(e,t,l,c,a,o){const s=h("CodexListItem"),i=h("KeyboardShortcutsTable");return a.IS_MOBILE?T("",!0):(u(),m(io,{key:0},{default:g(()=>[r(lo,{id:"readerKeyboardShortcuts"},{default:g(()=>[r(co,{id:"shortcutsTitle"},{default:g(()=>[r(s,{id:"keyboardShortcutsItem","prepend-icon":a.mdiKeyboardOutline,title:"Keyboard Shortcuts"},null,8,["prepend-icon"])]),_:1}),r(uo,null,{default:g(()=>[r(i)]),_:1})]),_:1})]),_:1}))}const Rs=b(Cs,[["render",Ts],["__scopeId","data-v-8285795a"]]),ot=["fitTo","readingDirection","twoPages"];Object.freeze(ot);const Bs={name:"ReaderSettingsPanel",components:{CodexListItem:ne},data(){return{isGlobalScope:!1,mdiOpenInNew:Rt,mdiEye:Tt,openDelay:2e3,scopeItems:[{title:"Only this comic",value:!1},{title:"Default for all comics",value:!0}]}},computed:{...k(F,["isAuthDialogOpen"]),...k(d,["isVertical","isPDF","cacheBook"]),...k(d,{choices:e=>e.choices,validBook:e=>!!e.books?.current,selectedSettings(e){return this.isGlobalScope||!e.books?.current?e.readerSettings:e.books?.current.settings},isClearSettingsButtonDisabled(e){if(this.isGlobalScope||!e.books?.current)return!0;for(const t of ot){const l=e.books?.current.settings[t];if(!e.choices.nullValues.has(l))return!1}return!0},pdfInBrowserURL(e){return this.isPDF&&e.books?.current?Ct(e.books?.current):""},finishOnLastPage:e=>e.readerSettings.finishOnLastPage,pageTransition:e=>e.readerSettings.pageTransition}),...Ie(d,["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},disablePageTransition(){return this.isVertical&&this.isPDF}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...v(d,["clearSettingsLocal","setSettingsGlobal","setSettingsLocal","setSettingsClient"]),settingsDialogChanged(e){this.isGlobalScope?this.setSettingsGlobal(e):this.setSettingsLocal(e)},choicesWithoutNull(e){const t=[];for(const l of this.choices[e])l.value&&t.push(l);return Object.freeze(t),t},_keyUpListener(e){if(e.stopPropagation(),this.isAuthDialogOpen)return;let t;switch(e.key){case"w":t={fitTo:"W"};break;case"h":t={fitTo:"H"};break;case"s":t={fitTo:"S"};break;case"o":t={fitTo:"O"};break;case"2":t={twoPages:!this.selectedSettings.twoPages};break;case"l":t={readingDirection:"ltr"};break;case"r":t={readingDirection:"rtl"};break;case"t":t={readingDirection:"ttb"};break;case"b":t={readingDirection:"bbt"};break}t&&this.setSettingsLocal(t)}}},Ds={id:"readerScopedSettings",class:"readerCodexListItem"};function Is(e,t,l,c,a,o){const s=h("CodexListItem");return u(),_(D,null,[t[9]||(t[9]=n("h4",{class:"readerSettingsHeader"},"Comic Settings Scope",-1)),r(Y,{modelValue:a.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=i=>a.isGlobalScope=i),class:"scopeRadioGroup readerCodexListItem",density:"compact","hide-details":"auto"},{default:g(()=>[(u(!0),_(D,null,U(a.scopeItems,i=>(u(),m(J,{key:i.value,label:i.title,value:i.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),r(ho,null,{default:g(()=>[n("div",Ds,[r(Y,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=i=>o.settingsDialogChanged({fitTo:i}))},{default:g(()=>[(u(!0),_(D,null,U(o.fitToChoices,i=>(u(),m(J,{key:i.value,label:i.title,value:i.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),r(N,{disabled:o.disableTwoPages,class:"scopedCheckbox",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]=i=>o.settingsDialogChanged({twoPages:i}))},null,8,["disabled","model-value","indeterminate"]),r(Y,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=i=>o.settingsDialogChanged({readingDirection:i}))},{default:g(()=>[(u(!0),_(D,null,U(o.readingDirectionChoices,i=>(u(),m(J,{key:i.value,label:i.title,value:i.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),r(N,{"model-value":e.selectedSettings.readRtlInReverse,class:"scopedCheckbox",density:"compact",label:"Read RTL Comics LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=i=>o.settingsDialogChanged({readRtlInReverse:i}))},null,8,["model-value"]),a.isGlobalScope?T("",!0):$((u(),m(Ke,{key:0,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,onClick:e.clearSettingsLocal},{default:g(()=>t[8]||(t[8]=[w(" Clear Settings ",-1)])),_:1,__:[8]},8,["disabled","onClick"])),[[Q,{openDelay:a.openDelay,text:"Use the default settings for all comics for this comic"}]])])]),_:1}),r(oe),t[10]||(t[10]=n("h4",{class:"readerSettingsHeader"},"Reader Settings",-1)),r(N,{class:"readerCodexListItem","model-value":e.finishOnLastPage,density:"compact",label:"Finish Book On Last Page","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=i=>e.setSettingsGlobal({finishOnLastPage:i}))},null,8,["model-value"]),$(r(N,{"model-value":e.pageTransition,class:"readerCodexListItem",density:"compact",disabled:o.disablePageTransition,label:"Animate Page Turns","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[6]||(t[6]=i=>e.setSettingsGlobal({pageTransition:i}))},null,8,["model-value","disabled"]),[[Q,{openDelay:a.openDelay,text:"Animate page turns when reading horizontally."}]]),$(r(N,{"model-value":e.cacheBook,class:"readerCodexListItem",density:"compact",disabled:o.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[7]||(t[7]=i=>e.setSettingsClient({cacheBook:i}))},null,8,["model-value","disabled"]),[[Q,{openDelay:a.openDelay,text:"Cache all pages from this book in the browser"}]]),e.pdfInBrowserURL?(u(),m(s,{key:0,"prepend-icon":a.mdiEye,"append-icon":a.mdiOpenInNew,title:"Read in Tab",href:e.pdfInBrowserURL,target:"_blank"},null,8,["prepend-icon","append-icon","href"])):T("",!0)],64)}const $s=b(Bs,[["render",Is],["__scopeId","data-v-252309d7"]]),xs={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:cs,ReaderKeyboardShortcutsPanel:Rs,ReaderSettingsPanel:$s}};function Ls(e,t,l,c,a,o){const s=h("ReaderSettingsPanel"),i=h("ReaderKeyboardShortcutsPanel"),p=h("DownloadPanel");return u(),_(D,null,[r(s),r(oe),r(i),r(oe),r(p)],64)}const Vs=b(xs,[["render",Ls]]),Os={name:"ReaderSettingsDrawer",components:{SettingsDrawer:Wt,ReaderSettingsSuperPanel:Vs}};function As(e,t,l,c,a,o){const s=h("ReaderSettingsSuperPanel"),i=h("SettingsDrawer");return u(),m(i,{title:"Reader",temporary:"","disable-resize-watcher":""},{panel:g(()=>[r(s)]),_:1})}const Es=b(Os,[["render",As]]),Z={a:Lt,f:xt,p:$t,i:It,s:Dt,v:Bt},Ns={name:"ReaderArcSelect",components:{ToolbarSelect:oo},data(){return{mdiFilterOutline:At}},computed:{...k(d,{arc:e=>e.arc,arcs:e=>e.arcs}),items(){const e=[];if(!this.arcs)return e;for(const[t,l]of Object.entries(this.arcs))for(const[c,a]of Object.entries(l)){let o=Vt[t];t!=="s"&&(o=o.slice(0,-1));const s=Z[t],i=t===this.arc?.group&&c==this.arc?.ids?Ot:"",p={group:t,ids:c,prependIcon:s,...a},f={group:t,value:p,title:a.name,subtitle:o,prependIcon:s,appendIcon:i};e.push(f)}return e},arcInfo(){if(!this.arcs||!this.arc)return{};const e=this.arcs[this.arc?.group];return e?e[this.arc?.ids]:{}},arcIcon(){return Z[this.arc?.group]}},methods:{...v(d,["loadBooks"]),onUpdate(e){const t={group:e.group,ids:e.ids.split(",").map(Number)};this.loadBooks({arc:t})},prependIcon(e){return Z[e]}}},Us={id:"arcPos"};function Fs(e,t,l,c,a,o){const s=h("ToolbarSelect");return u(),m(s,{"model-value":e.arc,class:"arcSelect","select-label":"reading order",items:o.items,disabled:!o.items||o.items.length<=1,"onUpdate:modelValue":o.onUpdate},{item:g(({item:i,props:p})=>[r(eo,ee(p,{density:"compact",variant:"plain","prepend-icon":i.raw.prependIcon,subtitle:i.raw.subtitle,"append-icon":i.raw.appendIcon}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:g(({props:i})=>[r(K,ee({icon:o.prependIcon(e.arc.group),size:"large"},i,{class:"arcSelectIcon"}),null,16,["icon"]),n("span",Us,L(e.arc.index)+" / "+L(e.arc.count),1)]),_:1},8,["model-value","items","disabled","onUpdate:modelValue"])}const Ws=b(Ns,[["render",Fs],["__scopeId","data-v-0f33d301"]]),zs={name:"ReaderTitleToolbar",components:{AppBanner:Gt,MetadataDialog:so,ReaderArcSelect:Ws,SettingsDrawerButton:zt},data(){return{mdiClose:Et,routeChanged:!1}},head(){const e=`Read / ${this.activeTitle} / page ${this.storePage}`,t=`reader ${e}`;return{title:e,meta:[{hid:"description",name:"description",content:t}]}},computed:{...k(F,["isAuthDialogOpen"]),...k(d,["activeTitle","closeBookRoute"]),...k(d,{showToolbars:e=>e.showToolbars,currentBook:e=>e.books?.current||{},empty:e=>e.empty,subtitle:e=>e.books?.current?.name||"",storePage:e=>e.page}),title(){return this.activeTitle},extensionHeight(){let e=32;return this.subtitle&&(e*=2),e+=4,e},closeRoute(){const e=te(this.closeBookRoute),t=te(e.params);return delete t.name,e.params=t,e},metadataBook(){const e={...this.currentBook};return e.group="c",e.childCount=0,e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...v($e,["setTimestamp"]),...v(d,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.empty||this.openMetadata();break}}}},Ms={id:"readerTopToolbarHeader"},Ks={id:"title"},Hs={key:0,id:"subtitle"};function js(e,t,l,c,a,o){const s=h("AppBanner"),i=h("ReaderArcSelect"),p=h("MetadataDialog"),f=h("SettingsDrawerButton");return u(),m(po,null,{default:g(()=>[$(n("header",Ms,[r(s),r(Yt,{id:"readerToolbarTop",density:"compact","extension-height":o.extensionHeight},Nt({default:g(()=>[r(G,null,{default:g(()=>[r(Ke,{ref:"closeBook",class:"closeBook",to:o.closeRoute,size:"large",density:"compact",variant:"plain",onClick:o.onCloseBook},{default:g(()=>t[0]||(t[0]=[w(" close book ",-1)])),_:1,__:[0]},8,["to","onClick"])]),_:1}),r(ao),e.empty?T("",!0):(u(),m(G,{key:0},{default:g(()=>[r(i),r(p,{ref:"metadataDialog",book:o.metadataBook,toolbar:!0},null,8,["book"])]),_:1})),r(G,null,{default:g(()=>[r(f)]),_:1})]),_:2},[o.title?{name:"extension",fn:g(()=>[r(Jt,{class:"readerTitle"},{default:g(()=>[n("div",Ks,L(o.title),1),e.subtitle?(u(),_("div",Hs,L(e.subtitle),1)):T("",!0)]),_:1})]),key:"0"}:void 0]),1032,["extension-height"])],512),[[Ee,e.showToolbars]])]),_:1})}const st=b(zs,[["render",js],["__scopeId","data-v-ac089588"]]),qs={name:"ReaderEmptyBooks",components:{ReaderTopToolbar:st,EmptyState:He},data(){return{mdiBookRemoveOutline:Ut}},methods:{...v(d,["loadBooks","setShowToolbars"]),onAction(){this.loadBooks({mtime:Date.now()})}},created(){this.setShowToolbars()}};function Gs(e,t,l,c,a,o){const s=h("ReaderTopToolbar"),i=h("EmptyState");return u(),_(D,null,[r(s),r(i,{headline:"Book Not Found",title:"Close the reader and find another book",icon:a.mdiBookRemoveOutline,"action-text":"Try to load book again","onClick:action":o.onAction},null,8,["icon","onClick:action"])],64)}const Ys=b(qs,[["render",Gs]]),Js={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:Ge},props:{direction:{type:String,required:!0}},computed:{...k(d,["isBTT"]),...k(d,{toRoute(e){const t=e?.routes?.books[this.direction];return t?{params:te(t)}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},classes(){return{bookChangeNavButtonLeft:this.direction==="prev",bookChangeNavButtonRight:this.direction==="next"}}},methods:{...v(d,["bookChangeIcon"])}};function Qs(e,t,l,c,a,o){const s=h("PaginationNavButton");return e.toRoute?(u(),m(s,{key:0,class:R(o.classes),icon:o.icon,variant:"plain",title:o.title,to:e.toRoute},null,8,["class","icon","title","to"])):T("",!0)}const Xs=b(Js,[["render",Qs],["__scopeId","data-v-e6c3b493"]]),Zs={name:"ReaderNavButton",components:{PaginationNavButton:Ge},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...k(d,["isVertical"]),...k(d,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}},isBookPrev:e=>!!e.routes.books.prev,isBookNext:e=>!!e.routes.books.next}),classes(){return{readerNavButtonLeft:!this.isBookPrev&&this.value===0,readerNavButtonRight:!this.isBookNext&&this.value!=0}},title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...v(d,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function ea(e,t,l,c,a,o){const s=h("PaginationNavButton");return u(),m(s,{key:e.isVertical,disabled:o.disabled,class:R(["readerNavButton",o.classes]),title:o.title,to:e.toRoute,onClick:o.onClick},{default:g(()=>[w(L(l.value),1)]),_:1},8,["disabled","class","title","to","onClick"])}const ta=b(Zs,[["render",ea],["__scopeId","data-v-f60d8fb5"]]),z="prev",M="next",oa={name:"ReaderNavToolbar",components:{PaginationSlider:ro,ReaderNavButton:ta,PaginationToolbar:no,ReaderBookChangeNavButton:Xs},computed:{...k(F,["isAuthDialogOpen"]),...k(d,["activeSettings","isReadInReverse","isVertical"]),...k(d,{showToolbars:e=>e.showToolbars,storePage:e=>e.page,key(e){return`${e.books?.current?.pk}:${this.step}:${this.isReadInReverse}`},maxPage:e=>e.books?.current?.maxPage||0}),twoPages(){return this.activeSettings.twoPages},step(){return this.activeSettings.twoPages?2:1},trackColor(){return this.twoPages&&+this.storePage>=this.maxPage-1?this.$vuetify.theme.current.colors.primary:""},min(){return this.isReadInReverse?this.maxPage:0},max(){return this.isReadInReverse?0:this.maxPage},bookPrev(){return this.isReadInReverse?"next":"prev"},bookNext(){return this.isReadInReverse?"prev":"next"}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...v(d,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection(M):e.shiftKey&&window.scrollY===0&&this.routeToDirection(z);break;case"j":case"ArrowRight":this.routeToDirection(M);break;case"k":case"ArrowLeft":this.routeToDirection(z);break;case",":this.routeToDirectionOne(z);break;case".":this.routeToDirectionOne(M);break;case"n":this.routeToBook(M);break;case"p":this.routeToBook(z);break}}}};function sa(e,t,l,c,a,o){const s=h("ReaderBookChangeNavButton"),i=h("ReaderNavButton"),p=h("PaginationSlider"),f=h("PaginationToolbar");return u(),m(go,null,{default:g(()=>[e.maxPage?$((u(),m(f,{key:0,id:"readerToolbarNav"},{default:g(()=>[r(s,{direction:o.bookPrev,narrow:!1},null,8,["direction"]),r(i,{value:o.min,"two-pages":o.twoPages},null,8,["value","two-pages"]),(u(),m(p,{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]=B=>o.onSliderUpdate(B))},null,8,["model-value","max","step","track-color","reverse"])),r(i,{value:o.max,"two-pages":o.twoPages},null,8,["value","two-pages"]),r(s,{direction:o.bookNext,narrow:!1},null,8,["direction"])]),_:1},512)),[[Ee,e.showToolbars]]):T("",!0)]),_:1})}const aa=b(oa,[["render",sa],["__scopeId","data-v-ebe715c2"]]),na={name:"MainReader",components:{BooksWindow:ns,ReaderEmpty:Ys,ReaderNavToolbar:aa,ReaderTopToolbar:st,ReaderSettingsDrawer:Es,Unauthorized:Qt},data(){return{showToolbars:!1}},computed:{...k(F,["isAuthorized"]),...k(F,{user:e=>e.user}),...k(d,{empty:e=>e.empty})},watch:{user(){this.loadReaderSettings()}},created(){this.reset();const e=this.user?0:300,t=this.user;setTimeout(()=>{this.user?.id===t?.id&&this.loadReaderSettings()},e)},methods:{...v(d,["loadReaderSettings","reset"])}},ra={key:0},ia={id:"readerContainer"};function la(e,t,l,c,a,o){const s=h("ReaderTopToolbar"),i=h("BooksWindow"),p=h("ReaderNavToolbar"),f=h("ReaderEmpty"),B=h("ReaderSettingsDrawer"),A=h("Unauthorized");return e.isAuthorized?(u(),m(Xt,{key:0,id:"readerWrapper"},{default:g(()=>[e.empty?(u(),m(f,{key:1})):(u(),_("div",ra,[n("div",ia,[r(s),r(i),r(p)])])),r(B)]),_:1})):(u(),m(A,{key:1}))}const ca=b(na,[["render",la],["__scopeId","data-v-6df2b556"]]),wa=Object.freeze(Object.defineProperty({__proto__:null,default:ca},Symbol.toStringTag,{value:"Module"}));export{jo as P,Ze as S,wa as r};