codex 1.7.11a0__py3-none-any.whl → 1.7.12__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 (622) hide show
  1. codex/choices/reader.py +1 -0
  2. codex/librarian/bookmark/bookmarkd.py +46 -14
  3. codex/librarian/bookmark/tasks.py +7 -0
  4. codex/librarian/bookmark/update.py +1 -22
  5. codex/librarian/bookmark/user_active.py +37 -0
  6. codex/serializers/reader.py +1 -0
  7. codex/settings/settings.py +14 -14
  8. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js +1 -0
  9. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js.br +0 -0
  10. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js.gz +0 -0
  11. codex/static_root/assets/VCheckbox-DtuP7Cwl.js +1 -0
  12. codex/static_root/assets/VCheckbox-DtuP7Cwl.js.br +0 -0
  13. codex/static_root/assets/VCheckbox-DtuP7Cwl.js.gz +0 -0
  14. codex/static_root/assets/{VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js → VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js} +1 -1
  15. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js.br +0 -0
  16. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js.gz +0 -0
  17. codex/static_root/assets/{VCheckboxBtn-1PexCc2F.js → VCheckboxBtn-D8jQ_2In.js} +1 -1
  18. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.js.br +0 -0
  19. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.js.gz +0 -0
  20. codex/static_root/assets/{VCombobox-BQHELb_o.9f25a34994e2.css → VCombobox-Ckm4HgDu.css} +1 -1
  21. codex/static_root/assets/VCombobox-Ckm4HgDu.css.br +0 -0
  22. codex/static_root/assets/VCombobox-Ckm4HgDu.css.gz +0 -0
  23. codex/static_root/assets/{VCombobox-BQHELb_o.css → VCombobox-Ckm4HgDu.ece2fa32eddd.css} +1 -1
  24. codex/static_root/assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css.br +0 -0
  25. codex/static_root/assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css.gz +0 -0
  26. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js +1 -0
  27. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js.br +0 -0
  28. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js.gz +0 -0
  29. codex/static_root/assets/VCombobox-Da-CC3-D.js +1 -0
  30. codex/static_root/assets/VCombobox-Da-CC3-D.js.br +0 -0
  31. codex/static_root/assets/VCombobox-Da-CC3-D.js.gz +0 -0
  32. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css +1 -0
  33. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css.br +0 -0
  34. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css.gz +0 -0
  35. codex/static_root/assets/VDialog-Cj6z437E.css +1 -0
  36. codex/static_root/assets/VDialog-Cj6z437E.css.br +0 -0
  37. codex/static_root/assets/VDialog-Cj6z437E.css.gz +0 -0
  38. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js +1 -0
  39. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js.br +0 -0
  40. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js.gz +0 -0
  41. codex/static_root/assets/VDialog-CoOMSEbM.js +1 -0
  42. codex/static_root/assets/VDialog-CoOMSEbM.js.br +0 -0
  43. codex/static_root/assets/VDialog-CoOMSEbM.js.gz +0 -0
  44. codex/static_root/assets/{VDivider-CGYMLgJf.fbcb910c5e2b.js → VDivider-BXrVdmrm.94f80a82fabf.js} +1 -1
  45. codex/static_root/assets/VDivider-BXrVdmrm.94f80a82fabf.js.br +0 -0
  46. codex/static_root/assets/VDivider-BXrVdmrm.94f80a82fabf.js.gz +0 -0
  47. codex/static_root/assets/{VDivider-CGYMLgJf.js → VDivider-BXrVdmrm.js} +1 -1
  48. codex/static_root/assets/VDivider-BXrVdmrm.js.br +0 -0
  49. codex/static_root/assets/VDivider-BXrVdmrm.js.gz +0 -0
  50. codex/static_root/assets/{VExpansionPanels-ape8k2o6.235735bba3cc.js → VExpansionPanels-BvZsXmp0.288d3ac96c36.js} +1 -1
  51. codex/static_root/assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js.br +0 -0
  52. codex/static_root/assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js.gz +0 -0
  53. codex/static_root/assets/{VExpansionPanels-ape8k2o6.js → VExpansionPanels-BvZsXmp0.js} +1 -1
  54. codex/static_root/assets/VExpansionPanels-BvZsXmp0.js.br +0 -0
  55. codex/static_root/assets/VExpansionPanels-BvZsXmp0.js.gz +0 -0
  56. codex/static_root/assets/{VForm-ZManiwIB.a4ee873a7650.js → VForm-DXrmSq46.940c782abacb.js} +1 -1
  57. codex/static_root/assets/VForm-DXrmSq46.940c782abacb.js.br +0 -0
  58. codex/static_root/assets/VForm-DXrmSq46.940c782abacb.js.gz +0 -0
  59. codex/static_root/assets/{VForm-ZManiwIB.js → VForm-DXrmSq46.js} +1 -1
  60. codex/static_root/assets/VForm-DXrmSq46.js.br +0 -0
  61. codex/static_root/assets/VForm-DXrmSq46.js.gz +0 -0
  62. codex/static_root/assets/{VRadioGroup-BqJIH3Pa.22a036a63862.js → VRadioGroup-DgtijQjG.a3093b0a1608.js} +1 -1
  63. codex/static_root/assets/VRadioGroup-DgtijQjG.a3093b0a1608.js.br +0 -0
  64. codex/static_root/assets/VRadioGroup-DgtijQjG.a3093b0a1608.js.gz +0 -0
  65. codex/static_root/assets/{VRadioGroup-BqJIH3Pa.js → VRadioGroup-DgtijQjG.js} +1 -1
  66. codex/static_root/assets/VRadioGroup-DgtijQjG.js.br +0 -0
  67. codex/static_root/assets/VRadioGroup-DgtijQjG.js.gz +0 -0
  68. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js +1 -0
  69. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js.br +0 -0
  70. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js.gz +0 -0
  71. codex/static_root/assets/VSelect-BpkoCPsm.js +1 -0
  72. codex/static_root/assets/VSelect-BpkoCPsm.js.br +0 -0
  73. codex/static_root/assets/VSelect-BpkoCPsm.js.gz +0 -0
  74. codex/static_root/assets/{VSelect-CP_CVb8s.6309f7bf17bb.css → VSelect-CBNrI-XP.css} +1 -1
  75. codex/static_root/assets/VSelect-CBNrI-XP.css.br +0 -0
  76. codex/static_root/assets/VSelect-CBNrI-XP.css.gz +0 -0
  77. codex/static_root/assets/{VSelect-CP_CVb8s.css → VSelect-CBNrI-XP.f03b50289345.css} +1 -1
  78. codex/static_root/assets/VSelect-CBNrI-XP.f03b50289345.css.br +0 -0
  79. codex/static_root/assets/VSelect-CBNrI-XP.f03b50289345.css.gz +0 -0
  80. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js +1 -0
  81. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js.br +0 -0
  82. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js.gz +0 -0
  83. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js +1 -0
  84. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js.br +0 -0
  85. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js.gz +0 -0
  86. codex/static_root/assets/VSelectionControl-RqBzwjYi.css +1 -0
  87. codex/static_root/assets/VSelectionControl-RqBzwjYi.css.br +0 -0
  88. codex/static_root/assets/VSelectionControl-RqBzwjYi.css.gz +0 -0
  89. codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css +1 -0
  90. codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css.br +0 -0
  91. codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css.gz +0 -0
  92. codex/static_root/assets/{VTable-DWCA1lvG.1562d6d70dbe.js → VTable-DbFt9lJE.9ef6aa0ef98b.js} +1 -1
  93. codex/static_root/assets/VTable-DbFt9lJE.9ef6aa0ef98b.js.br +0 -0
  94. codex/static_root/assets/VTable-DbFt9lJE.9ef6aa0ef98b.js.gz +0 -0
  95. codex/static_root/assets/{VTable-DWCA1lvG.js → VTable-DbFt9lJE.js} +1 -1
  96. codex/static_root/assets/VTable-DbFt9lJE.js.br +0 -0
  97. codex/static_root/assets/VTable-DbFt9lJE.js.gz +0 -0
  98. codex/static_root/assets/{VWindowItem-DSXaWHkP.89ac2ece629a.js → VWindowItem-rXg83yw2.0fd72e50001d.js} +1 -1
  99. codex/static_root/assets/VWindowItem-rXg83yw2.0fd72e50001d.js.br +0 -0
  100. codex/static_root/assets/VWindowItem-rXg83yw2.0fd72e50001d.js.gz +0 -0
  101. codex/static_root/assets/{VWindowItem-DSXaWHkP.js → VWindowItem-rXg83yw2.js} +1 -1
  102. codex/static_root/assets/VWindowItem-rXg83yw2.js.br +0 -0
  103. codex/static_root/assets/VWindowItem-rXg83yw2.js.gz +0 -0
  104. codex/static_root/assets/{admin-C81J8xOG.772d05753583.js → admin--bDFN8Oq.a4abe921cf7c.js} +1 -1
  105. codex/static_root/assets/admin--bDFN8Oq.a4abe921cf7c.js.br +0 -0
  106. codex/static_root/assets/admin--bDFN8Oq.a4abe921cf7c.js.gz +0 -0
  107. codex/static_root/assets/{admin-C81J8xOG.js → admin--bDFN8Oq.js} +1 -1
  108. codex/static_root/assets/admin--bDFN8Oq.js.br +0 -0
  109. codex/static_root/assets/admin--bDFN8Oq.js.gz +0 -0
  110. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css +1 -0
  111. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css.br +0 -0
  112. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css.gz +0 -0
  113. codex/static_root/assets/admin-BNNYZVYA.css +1 -0
  114. codex/static_root/assets/admin-BNNYZVYA.css.br +0 -0
  115. codex/static_root/assets/admin-BNNYZVYA.css.gz +0 -0
  116. codex/static_root/assets/{admin-Bxwc8451.b2a8c85c5c82.js → admin-BpE7-fB4.8c4508dad617.js} +1 -1
  117. codex/static_root/assets/admin-BpE7-fB4.8c4508dad617.js.br +0 -0
  118. codex/static_root/assets/admin-BpE7-fB4.8c4508dad617.js.gz +0 -0
  119. codex/static_root/assets/{admin-Bxwc8451.js → admin-BpE7-fB4.js} +1 -1
  120. codex/static_root/assets/admin-BpE7-fB4.js.br +0 -0
  121. codex/static_root/assets/admin-BpE7-fB4.js.gz +0 -0
  122. codex/static_root/assets/{admin-menu-Bts5DypF.83389408d5df.js → admin-menu-DEQXJH4i.bac02d0bea36.js} +1 -1
  123. codex/static_root/assets/admin-menu-DEQXJH4i.bac02d0bea36.js.br +0 -0
  124. codex/static_root/assets/admin-menu-DEQXJH4i.bac02d0bea36.js.gz +0 -0
  125. codex/static_root/assets/{admin-menu-Bts5DypF.js → admin-menu-DEQXJH4i.js} +1 -1
  126. codex/static_root/assets/admin-menu-DEQXJH4i.js.br +0 -0
  127. codex/static_root/assets/admin-menu-DEQXJH4i.js.gz +0 -0
  128. codex/static_root/assets/{admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js → admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js} +1 -1
  129. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js.br +0 -0
  130. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js.gz +0 -0
  131. codex/static_root/assets/{admin-settings-button-progress-CLrIYn4d.js → admin-settings-button-progress-wIXv-9g2.js} +1 -1
  132. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.js.br +0 -0
  133. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.js.gz +0 -0
  134. codex/static_root/assets/{browser-yJ6Noi8Y.624ef6fbd20b.js → browser-Bu37CzsR.483b0af62dd4.js} +1 -1
  135. codex/static_root/assets/browser-Bu37CzsR.483b0af62dd4.js.br +0 -0
  136. codex/static_root/assets/browser-Bu37CzsR.483b0af62dd4.js.gz +0 -0
  137. codex/static_root/assets/{browser-yJ6Noi8Y.js → browser-Bu37CzsR.js} +1 -1
  138. codex/static_root/assets/browser-Bu37CzsR.js.br +0 -0
  139. codex/static_root/assets/browser-Bu37CzsR.js.gz +0 -0
  140. codex/static_root/assets/{browser-Bf8JG2CE.3af978c1f766.css → browser-ClPcbrsf.c8620affa34d.css} +1 -1
  141. codex/static_root/assets/browser-ClPcbrsf.c8620affa34d.css.br +0 -0
  142. codex/static_root/assets/browser-ClPcbrsf.c8620affa34d.css.gz +0 -0
  143. codex/static_root/assets/{browser-Bf8JG2CE.css → browser-ClPcbrsf.css} +1 -1
  144. codex/static_root/assets/browser-ClPcbrsf.css.br +0 -0
  145. codex/static_root/assets/browser-ClPcbrsf.css.gz +0 -0
  146. codex/static_root/assets/{change-password-dialog-Bw5_buVm.d199b40591de.js → change-password-dialog-DOioR_QK.75126226aeee.js} +1 -1
  147. codex/static_root/assets/change-password-dialog-DOioR_QK.75126226aeee.js.br +0 -0
  148. codex/static_root/assets/change-password-dialog-DOioR_QK.75126226aeee.js.gz +0 -0
  149. codex/static_root/assets/{change-password-dialog-Bw5_buVm.js → change-password-dialog-DOioR_QK.js} +1 -1
  150. codex/static_root/assets/change-password-dialog-DOioR_QK.js.br +0 -0
  151. codex/static_root/assets/change-password-dialog-DOioR_QK.js.gz +0 -0
  152. codex/static_root/assets/{confirm-dialog-CDmsC-9_.cb51658bfb81.js → confirm-dialog-BRUkbajJ.9670ca0df005.js} +1 -1
  153. codex/static_root/assets/confirm-dialog-BRUkbajJ.9670ca0df005.js.br +0 -0
  154. codex/static_root/assets/confirm-dialog-BRUkbajJ.9670ca0df005.js.gz +0 -0
  155. codex/static_root/assets/{confirm-dialog-CDmsC-9_.js → confirm-dialog-BRUkbajJ.js} +1 -1
  156. codex/static_root/assets/confirm-dialog-BRUkbajJ.js.br +0 -0
  157. codex/static_root/assets/confirm-dialog-BRUkbajJ.js.gz +0 -0
  158. codex/static_root/assets/{datetime-column-PBwaoZso.4b7946b97468.js → datetime-column-CdYfgPon.662194dbed49.js} +1 -1
  159. codex/static_root/assets/datetime-column-CdYfgPon.662194dbed49.js.br +0 -0
  160. codex/static_root/assets/datetime-column-CdYfgPon.662194dbed49.js.gz +0 -0
  161. codex/static_root/assets/{datetime-column-PBwaoZso.js → datetime-column-CdYfgPon.js} +1 -1
  162. codex/static_root/assets/datetime-column-CdYfgPon.js.br +0 -0
  163. codex/static_root/assets/datetime-column-CdYfgPon.js.gz +0 -0
  164. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js +1 -0
  165. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js.br +0 -0
  166. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js.gz +0 -0
  167. codex/static_root/assets/filter-D-aPctKp.js +1 -0
  168. codex/static_root/assets/filter-D-aPctKp.js.br +0 -0
  169. codex/static_root/assets/filter-D-aPctKp.js.gz +0 -0
  170. codex/static_root/assets/{flag-tab-Bfd3wqbW.eb77780e8a45.js → flag-tab-kMgSs3vx.7ca3ec2db15e.js} +1 -1
  171. codex/static_root/assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js.br +0 -0
  172. codex/static_root/assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js.gz +0 -0
  173. codex/static_root/assets/{flag-tab-Bfd3wqbW.js → flag-tab-kMgSs3vx.js} +1 -1
  174. codex/static_root/assets/flag-tab-kMgSs3vx.js.br +0 -0
  175. codex/static_root/assets/flag-tab-kMgSs3vx.js.gz +0 -0
  176. codex/static_root/assets/{forwardRefs-Dyi06MPF.601ab1fd99b1.css → forwardRefs-BhPKpkYY.1032af9ac8fd.css} +1 -1
  177. codex/static_root/assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css.br +0 -0
  178. codex/static_root/assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css.gz +0 -0
  179. codex/static_root/assets/{forwardRefs-Dyi06MPF.css → forwardRefs-BhPKpkYY.css} +1 -1
  180. codex/static_root/assets/forwardRefs-BhPKpkYY.css.br +0 -0
  181. codex/static_root/assets/forwardRefs-BhPKpkYY.css.gz +0 -0
  182. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js +1 -0
  183. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js.br +0 -0
  184. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js.gz +0 -0
  185. codex/static_root/assets/forwardRefs-BxFNqo8E.js +1 -0
  186. codex/static_root/assets/forwardRefs-BxFNqo8E.js.br +0 -0
  187. codex/static_root/assets/forwardRefs-BxFNqo8E.js.gz +0 -0
  188. codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css +1 -0
  189. codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css.br +0 -0
  190. codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css.gz +0 -0
  191. codex/static_root/assets/group-tab-Bi681uR0.css +1 -0
  192. codex/static_root/assets/group-tab-Bi681uR0.css.br +0 -0
  193. codex/static_root/assets/group-tab-Bi681uR0.css.gz +0 -0
  194. codex/static_root/assets/{group-tab-J2MqClVb.ff59e8269756.js → group-tab-DK0pQx_6.e02dab76e8e6.js} +1 -1
  195. codex/static_root/assets/group-tab-DK0pQx_6.e02dab76e8e6.js.br +0 -0
  196. codex/static_root/assets/group-tab-DK0pQx_6.e02dab76e8e6.js.gz +0 -0
  197. codex/static_root/assets/{group-tab-J2MqClVb.js → group-tab-DK0pQx_6.js} +1 -1
  198. codex/static_root/assets/group-tab-DK0pQx_6.js.br +0 -0
  199. codex/static_root/assets/group-tab-DK0pQx_6.js.gz +0 -0
  200. codex/static_root/assets/{http-error-BYu6Kcz7.9e6d6753260e.js → http-error-D4kgjRm6.71e8ec284567.js} +1 -1
  201. codex/static_root/assets/http-error-D4kgjRm6.71e8ec284567.js.br +0 -0
  202. codex/static_root/assets/http-error-D4kgjRm6.71e8ec284567.js.gz +0 -0
  203. codex/static_root/assets/{http-error-BYu6Kcz7.js → http-error-D4kgjRm6.js} +1 -1
  204. codex/static_root/assets/http-error-D4kgjRm6.js.br +0 -0
  205. codex/static_root/assets/http-error-D4kgjRm6.js.gz +0 -0
  206. codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css +1 -0
  207. codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css.br +3 -0
  208. codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css.gz +0 -0
  209. codex/static_root/assets/index-Czf-fUM7.css +1 -0
  210. codex/static_root/assets/index-Czf-fUM7.css.br +3 -0
  211. codex/static_root/assets/index-Czf-fUM7.css.gz +0 -0
  212. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js +1 -0
  213. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js.br +0 -0
  214. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js.gz +0 -0
  215. codex/static_root/assets/index-D3gnYqT3.js +1 -0
  216. codex/static_root/assets/index-D3gnYqT3.js.br +0 -0
  217. codex/static_root/assets/index-D3gnYqT3.js.gz +0 -0
  218. codex/static_root/assets/{library-tab-B5EpvS2Z.ce7f598b989c.js → library-tab-MhD2T2Fw.052fe1d43941.js} +1 -1
  219. codex/static_root/assets/library-tab-MhD2T2Fw.052fe1d43941.js.br +0 -0
  220. codex/static_root/assets/library-tab-MhD2T2Fw.052fe1d43941.js.gz +0 -0
  221. codex/static_root/assets/{library-tab-B5EpvS2Z.js → library-tab-MhD2T2Fw.js} +1 -1
  222. codex/static_root/assets/library-tab-MhD2T2Fw.js.br +0 -0
  223. codex/static_root/assets/library-tab-MhD2T2Fw.js.gz +0 -0
  224. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js +35 -0
  225. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js.br +0 -0
  226. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js.gz +0 -0
  227. codex/static_root/assets/main-JUy8mnXG.js +35 -0
  228. codex/static_root/assets/main-JUy8mnXG.js.br +0 -0
  229. codex/static_root/assets/main-JUy8mnXG.js.gz +0 -0
  230. codex/static_root/assets/{main-K8cER0IH.d529e8b3f52a.css → main-Of3aYkZ7.91c75c4fbaa6.css} +1 -1
  231. codex/static_root/assets/main-Of3aYkZ7.91c75c4fbaa6.css.br +0 -0
  232. codex/static_root/assets/{main-K8cER0IH.d529e8b3f52a.css.gz → main-Of3aYkZ7.91c75c4fbaa6.css.gz} +0 -0
  233. codex/static_root/assets/{main-K8cER0IH.css → main-Of3aYkZ7.css} +1 -1
  234. codex/static_root/assets/main-Of3aYkZ7.css.br +0 -0
  235. codex/static_root/assets/{main-K8cER0IH.css.gz → main-Of3aYkZ7.css.gz} +0 -0
  236. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js +1 -0
  237. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js.br +0 -0
  238. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js.gz +0 -0
  239. codex/static_root/assets/pager-full-pdf-CcORwqD4.js +1 -0
  240. codex/static_root/assets/pager-full-pdf-CcORwqD4.js.br +0 -0
  241. codex/static_root/assets/pager-full-pdf-CcORwqD4.js.gz +0 -0
  242. codex/static_root/assets/{pagination-toolbar-2endB3w1.f94e6a3535e4.js → pagination-toolbar-Cufj0Rqv.3f3244ad0590.js} +1 -1
  243. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js.br +0 -0
  244. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js.gz +0 -0
  245. codex/static_root/assets/{pagination-toolbar-2endB3w1.js → pagination-toolbar-Cufj0Rqv.js} +1 -1
  246. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.js.br +0 -0
  247. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.js.gz +0 -0
  248. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css +1 -0
  249. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css.br +0 -0
  250. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css.gz +0 -0
  251. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css +1 -0
  252. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css.br +0 -0
  253. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css.gz +0 -0
  254. codex/static_root/assets/{pdf-doc-CW06S-ga.e7c567b9d4cd.js → pdf-doc-HpDB0I3q.a991cdc377eb.js} +1 -1
  255. codex/static_root/assets/pdf-doc-HpDB0I3q.a991cdc377eb.js.br +0 -0
  256. codex/static_root/assets/{pdf-doc-CW06S-ga.js.gz → pdf-doc-HpDB0I3q.a991cdc377eb.js.gz} +0 -0
  257. codex/static_root/assets/{pdf-doc-CW06S-ga.js → pdf-doc-HpDB0I3q.js} +1 -1
  258. codex/static_root/assets/pdf-doc-HpDB0I3q.js.br +0 -0
  259. codex/static_root/assets/{pdf-doc-CW06S-ga.e7c567b9d4cd.js.gz → pdf-doc-HpDB0I3q.js.gz} +0 -0
  260. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css +1 -0
  261. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css.br +0 -0
  262. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css.gz +0 -0
  263. codex/static_root/assets/reader-BIqif2zL.css +1 -0
  264. codex/static_root/assets/reader-BIqif2zL.css.br +0 -0
  265. codex/static_root/assets/reader-BIqif2zL.css.gz +0 -0
  266. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js +2 -0
  267. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js.br +0 -0
  268. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js.gz +0 -0
  269. codex/static_root/assets/reader-CgmGRxud.js +2 -0
  270. codex/static_root/assets/reader-CgmGRxud.js.br +0 -0
  271. codex/static_root/assets/reader-CgmGRxud.js.gz +0 -0
  272. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js +1 -0
  273. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js.br +0 -0
  274. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js.gz +0 -0
  275. codex/static_root/assets/relation-chips-CV_iMj1X.js +1 -0
  276. codex/static_root/assets/relation-chips-CV_iMj1X.js.br +0 -0
  277. codex/static_root/assets/relation-chips-CV_iMj1X.js.gz +0 -0
  278. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css +1 -0
  279. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css.br +0 -0
  280. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css.gz +0 -0
  281. codex/static_root/assets/relation-chips-D7i-g7Zv.css +1 -0
  282. codex/static_root/assets/relation-chips-D7i-g7Zv.css.br +0 -0
  283. codex/static_root/assets/relation-chips-D7i-g7Zv.css.gz +0 -0
  284. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css +1 -0
  285. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css.br +0 -0
  286. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css.gz +0 -0
  287. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css +1 -0
  288. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css.br +0 -0
  289. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css.gz +0 -0
  290. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js +2 -0
  291. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js.br +0 -0
  292. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js.gz +0 -0
  293. codex/static_root/assets/settings-drawer-p6ZjyJ07.js +2 -0
  294. codex/static_root/assets/settings-drawer-p6ZjyJ07.js.br +0 -0
  295. codex/static_root/assets/settings-drawer-p6ZjyJ07.js.gz +0 -0
  296. codex/static_root/assets/{ssrBoot-B6yWBylJ.27fba7483f5d.js → ssrBoot-B73_e82Z.3d5063c17c68.js} +1 -1
  297. codex/static_root/assets/ssrBoot-B73_e82Z.3d5063c17c68.js.br +0 -0
  298. codex/static_root/assets/ssrBoot-B73_e82Z.3d5063c17c68.js.gz +0 -0
  299. codex/static_root/assets/{ssrBoot-B6yWBylJ.js → ssrBoot-B73_e82Z.js} +1 -1
  300. codex/static_root/assets/ssrBoot-B73_e82Z.js.br +0 -0
  301. codex/static_root/assets/ssrBoot-B73_e82Z.js.gz +0 -0
  302. codex/static_root/assets/{stats-tab-B6L711cO.b6a42655cd70.css → stats-tab-CGY8r-es.b06c55bdaeaa.css} +1 -1
  303. codex/static_root/assets/stats-tab-CGY8r-es.b06c55bdaeaa.css.br +0 -0
  304. codex/static_root/assets/stats-tab-CGY8r-es.b06c55bdaeaa.css.gz +0 -0
  305. codex/static_root/assets/{stats-tab-B6L711cO.css → stats-tab-CGY8r-es.css} +1 -1
  306. codex/static_root/assets/stats-tab-CGY8r-es.css.br +0 -0
  307. codex/static_root/assets/stats-tab-CGY8r-es.css.gz +0 -0
  308. codex/static_root/assets/{stats-tab-DC24C65C.58280bd367e1.js → stats-tab-Kt45gqtN.858a124412d0.js} +1 -1
  309. codex/static_root/assets/stats-tab-Kt45gqtN.858a124412d0.js.br +0 -0
  310. codex/static_root/assets/stats-tab-Kt45gqtN.858a124412d0.js.gz +0 -0
  311. codex/static_root/assets/{stats-tab-DC24C65C.js → stats-tab-Kt45gqtN.js} +1 -1
  312. codex/static_root/assets/stats-tab-Kt45gqtN.js.br +0 -0
  313. codex/static_root/assets/stats-tab-Kt45gqtN.js.gz +0 -0
  314. codex/static_root/assets/{task-tab-DI9bXb-m.52aad0736a2b.js → task-tab-DDKv2JN0.ea54c5cf8e0f.js} +1 -1
  315. codex/static_root/assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js.br +0 -0
  316. codex/static_root/assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js.gz +0 -0
  317. codex/static_root/assets/{task-tab-DI9bXb-m.js → task-tab-DDKv2JN0.js} +1 -1
  318. codex/static_root/assets/task-tab-DDKv2JN0.js.br +0 -0
  319. codex/static_root/assets/task-tab-DDKv2JN0.js.gz +0 -0
  320. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js +1 -0
  321. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js.br +0 -0
  322. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js.gz +0 -0
  323. codex/static_root/assets/unauthorized-CvdCW-Cq.js +1 -0
  324. codex/static_root/assets/unauthorized-CvdCW-Cq.js.br +0 -0
  325. codex/static_root/assets/unauthorized-CvdCW-Cq.js.gz +0 -0
  326. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css +1 -0
  327. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css.br +0 -0
  328. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css.gz +0 -0
  329. codex/static_root/assets/unauthorized-DeuhBNVr.css +1 -0
  330. codex/static_root/assets/unauthorized-DeuhBNVr.css.br +0 -0
  331. codex/static_root/assets/unauthorized-DeuhBNVr.css.gz +0 -0
  332. codex/static_root/assets/{user-tab-B7e9oz0-.03fd3875c9e3.js → user-tab-77Bjv-sy.994ac66245a1.js} +1 -1
  333. codex/static_root/assets/user-tab-77Bjv-sy.994ac66245a1.js.br +0 -0
  334. codex/static_root/assets/user-tab-77Bjv-sy.994ac66245a1.js.gz +0 -0
  335. codex/static_root/assets/{user-tab-B7e9oz0-.js → user-tab-77Bjv-sy.js} +1 -1
  336. codex/static_root/assets/user-tab-77Bjv-sy.js.br +0 -0
  337. codex/static_root/assets/user-tab-77Bjv-sy.js.gz +0 -0
  338. codex/static_root/manifest.800f1750bf03.json +757 -0
  339. codex/static_root/manifest.800f1750bf03.json.br +0 -0
  340. codex/static_root/manifest.800f1750bf03.json.gz +0 -0
  341. codex/static_root/manifest.json +335 -335
  342. codex/static_root/manifest.json.br +0 -0
  343. codex/static_root/manifest.json.gz +0 -0
  344. codex/static_root/staticfiles.json +1 -1
  345. codex/views/browser/bookmark.py +1 -1
  346. codex/views/download.py +1 -0
  347. codex/views/frontend.py +3 -1
  348. codex/views/mixins.py +13 -0
  349. codex/views/opds/v1/feed.py +3 -1
  350. codex/views/opds/v2/feed.py +3 -1
  351. {codex-1.7.11a0.dist-info → codex-1.7.12.dist-info}/METADATA +7 -4
  352. {codex-1.7.11a0.dist-info → codex-1.7.12.dist-info}/RECORD +355 -354
  353. {codex-1.7.11a0.dist-info → codex-1.7.12.dist-info}/WHEEL +1 -1
  354. codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js +0 -1
  355. codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js.br +0 -0
  356. codex/static_root/assets/VCheckbox-t1haz9-P.38cb3995b2f3.js.gz +0 -0
  357. codex/static_root/assets/VCheckbox-t1haz9-P.js +0 -1
  358. codex/static_root/assets/VCheckbox-t1haz9-P.js.br +0 -0
  359. codex/static_root/assets/VCheckbox-t1haz9-P.js.gz +0 -0
  360. codex/static_root/assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js.br +0 -0
  361. codex/static_root/assets/VCheckboxBtn-1PexCc2F.ac78c4bfe6bd.js.gz +0 -0
  362. codex/static_root/assets/VCheckboxBtn-1PexCc2F.js.br +0 -0
  363. codex/static_root/assets/VCheckboxBtn-1PexCc2F.js.gz +0 -0
  364. codex/static_root/assets/VCombobox-BQHELb_o.9f25a34994e2.css.br +0 -0
  365. codex/static_root/assets/VCombobox-BQHELb_o.9f25a34994e2.css.gz +0 -0
  366. codex/static_root/assets/VCombobox-BQHELb_o.css.br +0 -0
  367. codex/static_root/assets/VCombobox-BQHELb_o.css.gz +0 -0
  368. codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js +0 -1
  369. codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js.br +0 -0
  370. codex/static_root/assets/VCombobox-DpadV2-4.ea605785117d.js.gz +0 -0
  371. codex/static_root/assets/VCombobox-DpadV2-4.js +0 -1
  372. codex/static_root/assets/VCombobox-DpadV2-4.js.br +0 -0
  373. codex/static_root/assets/VCombobox-DpadV2-4.js.gz +0 -0
  374. codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js +0 -1
  375. codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js.br +0 -0
  376. codex/static_root/assets/VDialog-BR4MrJeK.a2c876dbfac0.js.gz +0 -0
  377. codex/static_root/assets/VDialog-BR4MrJeK.js +0 -1
  378. codex/static_root/assets/VDialog-BR4MrJeK.js.br +0 -0
  379. codex/static_root/assets/VDialog-BR4MrJeK.js.gz +0 -0
  380. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css +0 -1
  381. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.br +0 -0
  382. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.gz +0 -0
  383. codex/static_root/assets/VDialog-DYkXmPin.css +0 -1
  384. codex/static_root/assets/VDialog-DYkXmPin.css.br +0 -0
  385. codex/static_root/assets/VDialog-DYkXmPin.css.gz +0 -0
  386. codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js.br +0 -0
  387. codex/static_root/assets/VDivider-CGYMLgJf.fbcb910c5e2b.js.gz +0 -0
  388. codex/static_root/assets/VDivider-CGYMLgJf.js.br +0 -0
  389. codex/static_root/assets/VDivider-CGYMLgJf.js.gz +0 -0
  390. codex/static_root/assets/VExpansionPanels-ape8k2o6.235735bba3cc.js.br +0 -0
  391. codex/static_root/assets/VExpansionPanels-ape8k2o6.235735bba3cc.js.gz +0 -0
  392. codex/static_root/assets/VExpansionPanels-ape8k2o6.js.br +0 -0
  393. codex/static_root/assets/VExpansionPanels-ape8k2o6.js.gz +0 -0
  394. codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js.br +0 -0
  395. codex/static_root/assets/VForm-ZManiwIB.a4ee873a7650.js.gz +0 -0
  396. codex/static_root/assets/VForm-ZManiwIB.js.br +0 -0
  397. codex/static_root/assets/VForm-ZManiwIB.js.gz +0 -0
  398. codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js.br +0 -0
  399. codex/static_root/assets/VRadioGroup-BqJIH3Pa.22a036a63862.js.gz +0 -0
  400. codex/static_root/assets/VRadioGroup-BqJIH3Pa.js.br +0 -0
  401. codex/static_root/assets/VRadioGroup-BqJIH3Pa.js.gz +0 -0
  402. codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js +0 -1
  403. codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js.br +0 -0
  404. codex/static_root/assets/VSelect-Bi5KABMc.1268bafd6469.js.gz +0 -0
  405. codex/static_root/assets/VSelect-Bi5KABMc.js +0 -1
  406. codex/static_root/assets/VSelect-Bi5KABMc.js.br +0 -0
  407. codex/static_root/assets/VSelect-Bi5KABMc.js.gz +0 -0
  408. codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.br +0 -0
  409. codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.gz +0 -0
  410. codex/static_root/assets/VSelect-CP_CVb8s.css.br +0 -0
  411. codex/static_root/assets/VSelect-CP_CVb8s.css.gz +0 -0
  412. codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js +0 -1
  413. codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js.br +0 -0
  414. codex/static_root/assets/VSelectionControl-CRVWANOr.bac2136c7c25.js.gz +0 -0
  415. codex/static_root/assets/VSelectionControl-CRVWANOr.js +0 -1
  416. codex/static_root/assets/VSelectionControl-CRVWANOr.js.br +0 -0
  417. codex/static_root/assets/VSelectionControl-CRVWANOr.js.gz +0 -0
  418. codex/static_root/assets/VSelectionControl-DtEh26JD.css +0 -1
  419. codex/static_root/assets/VSelectionControl-DtEh26JD.css.br +0 -0
  420. codex/static_root/assets/VSelectionControl-DtEh26JD.css.gz +0 -0
  421. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css +0 -1
  422. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.br +0 -0
  423. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.gz +0 -0
  424. codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js.br +0 -0
  425. codex/static_root/assets/VTable-DWCA1lvG.1562d6d70dbe.js.gz +0 -0
  426. codex/static_root/assets/VTable-DWCA1lvG.js.br +0 -0
  427. codex/static_root/assets/VTable-DWCA1lvG.js.gz +0 -0
  428. codex/static_root/assets/VWindowItem-DSXaWHkP.89ac2ece629a.js.br +0 -0
  429. codex/static_root/assets/VWindowItem-DSXaWHkP.89ac2ece629a.js.gz +0 -0
  430. codex/static_root/assets/VWindowItem-DSXaWHkP.js.br +0 -0
  431. codex/static_root/assets/VWindowItem-DSXaWHkP.js.gz +0 -0
  432. codex/static_root/assets/admin-Bxwc8451.b2a8c85c5c82.js.br +0 -0
  433. codex/static_root/assets/admin-Bxwc8451.b2a8c85c5c82.js.gz +0 -0
  434. codex/static_root/assets/admin-Bxwc8451.js.br +0 -0
  435. codex/static_root/assets/admin-Bxwc8451.js.gz +0 -0
  436. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css +0 -1
  437. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.br +0 -0
  438. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.gz +0 -0
  439. codex/static_root/assets/admin-C3iCIUnm.css +0 -1
  440. codex/static_root/assets/admin-C3iCIUnm.css.br +0 -0
  441. codex/static_root/assets/admin-C3iCIUnm.css.gz +0 -0
  442. codex/static_root/assets/admin-C81J8xOG.772d05753583.js.br +0 -0
  443. codex/static_root/assets/admin-C81J8xOG.772d05753583.js.gz +0 -0
  444. codex/static_root/assets/admin-C81J8xOG.js.br +0 -0
  445. codex/static_root/assets/admin-C81J8xOG.js.gz +0 -0
  446. codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js.br +0 -0
  447. codex/static_root/assets/admin-menu-Bts5DypF.83389408d5df.js.gz +0 -0
  448. codex/static_root/assets/admin-menu-Bts5DypF.js.br +0 -0
  449. codex/static_root/assets/admin-menu-Bts5DypF.js.gz +0 -0
  450. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js.br +0 -0
  451. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.cec2cfd322a1.js.gz +0 -0
  452. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.js.br +0 -0
  453. codex/static_root/assets/admin-settings-button-progress-CLrIYn4d.js.gz +0 -0
  454. codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.br +0 -0
  455. codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.gz +0 -0
  456. codex/static_root/assets/browser-Bf8JG2CE.css.br +0 -0
  457. codex/static_root/assets/browser-Bf8JG2CE.css.gz +0 -0
  458. codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js.br +0 -0
  459. codex/static_root/assets/browser-yJ6Noi8Y.624ef6fbd20b.js.gz +0 -0
  460. codex/static_root/assets/browser-yJ6Noi8Y.js.br +0 -0
  461. codex/static_root/assets/browser-yJ6Noi8Y.js.gz +0 -0
  462. codex/static_root/assets/change-password-dialog-Bw5_buVm.d199b40591de.js.br +0 -0
  463. codex/static_root/assets/change-password-dialog-Bw5_buVm.d199b40591de.js.gz +0 -0
  464. codex/static_root/assets/change-password-dialog-Bw5_buVm.js.br +0 -0
  465. codex/static_root/assets/change-password-dialog-Bw5_buVm.js.gz +0 -0
  466. codex/static_root/assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js.br +0 -0
  467. codex/static_root/assets/confirm-dialog-CDmsC-9_.cb51658bfb81.js.gz +0 -0
  468. codex/static_root/assets/confirm-dialog-CDmsC-9_.js.br +0 -0
  469. codex/static_root/assets/confirm-dialog-CDmsC-9_.js.gz +0 -0
  470. codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js.br +0 -1
  471. codex/static_root/assets/datetime-column-PBwaoZso.4b7946b97468.js.gz +0 -0
  472. codex/static_root/assets/datetime-column-PBwaoZso.js.br +0 -1
  473. codex/static_root/assets/datetime-column-PBwaoZso.js.gz +0 -0
  474. codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js +0 -1
  475. codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js.br +0 -0
  476. codex/static_root/assets/filter-D2ELuNq3.2b1c1f24a6b4.js.gz +0 -0
  477. codex/static_root/assets/filter-D2ELuNq3.js +0 -1
  478. codex/static_root/assets/filter-D2ELuNq3.js.br +0 -0
  479. codex/static_root/assets/filter-D2ELuNq3.js.gz +0 -0
  480. codex/static_root/assets/flag-tab-Bfd3wqbW.eb77780e8a45.js.br +0 -0
  481. codex/static_root/assets/flag-tab-Bfd3wqbW.eb77780e8a45.js.gz +0 -0
  482. codex/static_root/assets/flag-tab-Bfd3wqbW.js.br +0 -0
  483. codex/static_root/assets/flag-tab-Bfd3wqbW.js.gz +0 -0
  484. codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js +0 -1
  485. codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js.br +0 -0
  486. codex/static_root/assets/forwardRefs-Cvn3Vptr.26250646de8c.js.gz +0 -0
  487. codex/static_root/assets/forwardRefs-Cvn3Vptr.js +0 -1
  488. codex/static_root/assets/forwardRefs-Cvn3Vptr.js.br +0 -0
  489. codex/static_root/assets/forwardRefs-Cvn3Vptr.js.gz +0 -0
  490. codex/static_root/assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css.br +0 -0
  491. codex/static_root/assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css.gz +0 -0
  492. codex/static_root/assets/forwardRefs-Dyi06MPF.css.br +0 -0
  493. codex/static_root/assets/forwardRefs-Dyi06MPF.css.gz +0 -0
  494. codex/static_root/assets/group-tab-J2MqClVb.ff59e8269756.js.br +0 -0
  495. codex/static_root/assets/group-tab-J2MqClVb.ff59e8269756.js.gz +0 -0
  496. codex/static_root/assets/group-tab-J2MqClVb.js.br +0 -0
  497. codex/static_root/assets/group-tab-J2MqClVb.js.gz +0 -0
  498. codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css +0 -1
  499. codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css.br +0 -0
  500. codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css.gz +0 -0
  501. codex/static_root/assets/group-tab-_vKWzoyd.css +0 -1
  502. codex/static_root/assets/group-tab-_vKWzoyd.css.br +0 -0
  503. codex/static_root/assets/group-tab-_vKWzoyd.css.gz +0 -0
  504. codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js.br +0 -0
  505. codex/static_root/assets/http-error-BYu6Kcz7.9e6d6753260e.js.gz +0 -0
  506. codex/static_root/assets/http-error-BYu6Kcz7.js.br +0 -0
  507. codex/static_root/assets/http-error-BYu6Kcz7.js.gz +0 -0
  508. codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js +0 -1
  509. codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js.br +0 -0
  510. codex/static_root/assets/index-70Ak1yZF.6341f252a26f.js.gz +0 -0
  511. codex/static_root/assets/index-70Ak1yZF.js +0 -1
  512. codex/static_root/assets/index-70Ak1yZF.js.br +0 -0
  513. codex/static_root/assets/index-70Ak1yZF.js.gz +0 -0
  514. codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css +0 -1
  515. codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css.br +0 -0
  516. codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css.gz +0 -0
  517. codex/static_root/assets/index-BHXJTQ4V.css +0 -1
  518. codex/static_root/assets/index-BHXJTQ4V.css.br +0 -0
  519. codex/static_root/assets/index-BHXJTQ4V.css.gz +0 -0
  520. codex/static_root/assets/library-tab-B5EpvS2Z.ce7f598b989c.js.br +0 -0
  521. codex/static_root/assets/library-tab-B5EpvS2Z.ce7f598b989c.js.gz +0 -0
  522. codex/static_root/assets/library-tab-B5EpvS2Z.js.br +0 -0
  523. codex/static_root/assets/library-tab-B5EpvS2Z.js.gz +0 -0
  524. codex/static_root/assets/main-K8cER0IH.css.br +0 -0
  525. codex/static_root/assets/main-K8cER0IH.d529e8b3f52a.css.br +0 -0
  526. codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js +0 -35
  527. codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js.br +0 -0
  528. codex/static_root/assets/main-nb_FhQoD.5279ea775ff6.js.gz +0 -0
  529. codex/static_root/assets/main-nb_FhQoD.js +0 -35
  530. codex/static_root/assets/main-nb_FhQoD.js.br +0 -0
  531. codex/static_root/assets/main-nb_FhQoD.js.gz +0 -0
  532. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js +0 -1
  533. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js.br +0 -0
  534. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.015647f33ab1.js.gz +0 -0
  535. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js +0 -1
  536. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js.br +0 -0
  537. codex/static_root/assets/pager-full-pdf-vSb0Gv-4.js.gz +0 -0
  538. codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js.br +0 -0
  539. codex/static_root/assets/pagination-toolbar-2endB3w1.f94e6a3535e4.js.gz +0 -0
  540. codex/static_root/assets/pagination-toolbar-2endB3w1.js.br +0 -0
  541. codex/static_root/assets/pagination-toolbar-2endB3w1.js.gz +0 -0
  542. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css +0 -1
  543. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css.br +0 -0
  544. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css.gz +0 -0
  545. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css +0 -1
  546. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css.br +0 -0
  547. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css.gz +0 -0
  548. codex/static_root/assets/pdf-doc-CW06S-ga.e7c567b9d4cd.js.br +0 -0
  549. codex/static_root/assets/pdf-doc-CW06S-ga.js.br +0 -0
  550. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css +0 -1
  551. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.br +0 -0
  552. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.gz +0 -0
  553. codex/static_root/assets/reader-DdWNjEED.css +0 -1
  554. codex/static_root/assets/reader-DdWNjEED.css.br +0 -0
  555. codex/static_root/assets/reader-DdWNjEED.css.gz +0 -0
  556. codex/static_root/assets/reader-myd-70jV.2a363255ca47.js +0 -2
  557. codex/static_root/assets/reader-myd-70jV.2a363255ca47.js.br +0 -0
  558. codex/static_root/assets/reader-myd-70jV.2a363255ca47.js.gz +0 -0
  559. codex/static_root/assets/reader-myd-70jV.js +0 -2
  560. codex/static_root/assets/reader-myd-70jV.js.br +0 -0
  561. codex/static_root/assets/reader-myd-70jV.js.gz +0 -0
  562. codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js +0 -1
  563. codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js.br +0 -0
  564. codex/static_root/assets/relation-chips-Bd8Jicbj.35d8fe15b532.js.gz +0 -0
  565. codex/static_root/assets/relation-chips-Bd8Jicbj.js +0 -1
  566. codex/static_root/assets/relation-chips-Bd8Jicbj.js.br +0 -0
  567. codex/static_root/assets/relation-chips-Bd8Jicbj.js.gz +0 -0
  568. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css +0 -1
  569. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.br +0 -0
  570. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.gz +0 -0
  571. codex/static_root/assets/relation-chips-eQkZvJcT.css +0 -1
  572. codex/static_root/assets/relation-chips-eQkZvJcT.css.br +0 -0
  573. codex/static_root/assets/relation-chips-eQkZvJcT.css.gz +0 -0
  574. codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js +0 -2
  575. codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js.br +0 -0
  576. codex/static_root/assets/settings-drawer-DBftv9u0.afd25184f6d8.js.gz +0 -0
  577. codex/static_root/assets/settings-drawer-DBftv9u0.js +0 -2
  578. codex/static_root/assets/settings-drawer-DBftv9u0.js.br +0 -0
  579. codex/static_root/assets/settings-drawer-DBftv9u0.js.gz +0 -0
  580. codex/static_root/assets/settings-drawer-WyG6HLH-.css +0 -1
  581. codex/static_root/assets/settings-drawer-WyG6HLH-.css.br +0 -0
  582. codex/static_root/assets/settings-drawer-WyG6HLH-.css.gz +0 -0
  583. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css +0 -1
  584. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.br +0 -0
  585. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.gz +0 -0
  586. codex/static_root/assets/ssrBoot-B6yWBylJ.27fba7483f5d.js.br +0 -0
  587. codex/static_root/assets/ssrBoot-B6yWBylJ.27fba7483f5d.js.gz +0 -0
  588. codex/static_root/assets/ssrBoot-B6yWBylJ.js.br +0 -0
  589. codex/static_root/assets/ssrBoot-B6yWBylJ.js.gz +0 -0
  590. codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.br +0 -2
  591. codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.gz +0 -0
  592. codex/static_root/assets/stats-tab-B6L711cO.css.br +0 -2
  593. codex/static_root/assets/stats-tab-B6L711cO.css.gz +0 -0
  594. codex/static_root/assets/stats-tab-DC24C65C.58280bd367e1.js.br +0 -0
  595. codex/static_root/assets/stats-tab-DC24C65C.58280bd367e1.js.gz +0 -0
  596. codex/static_root/assets/stats-tab-DC24C65C.js.br +0 -0
  597. codex/static_root/assets/stats-tab-DC24C65C.js.gz +0 -0
  598. codex/static_root/assets/task-tab-DI9bXb-m.52aad0736a2b.js.br +0 -0
  599. codex/static_root/assets/task-tab-DI9bXb-m.52aad0736a2b.js.gz +0 -0
  600. codex/static_root/assets/task-tab-DI9bXb-m.js.br +0 -0
  601. codex/static_root/assets/task-tab-DI9bXb-m.js.gz +0 -0
  602. codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js +0 -1
  603. codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js.br +0 -0
  604. codex/static_root/assets/unauthorized-C0p00au3.983dc96cbe2b.js.gz +0 -0
  605. codex/static_root/assets/unauthorized-C0p00au3.js +0 -1
  606. codex/static_root/assets/unauthorized-C0p00au3.js.br +0 -0
  607. codex/static_root/assets/unauthorized-C0p00au3.js.gz +0 -0
  608. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css +0 -1
  609. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.br +0 -0
  610. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.gz +0 -0
  611. codex/static_root/assets/unauthorized-CtkV01lw.css +0 -1
  612. codex/static_root/assets/unauthorized-CtkV01lw.css.br +0 -0
  613. codex/static_root/assets/unauthorized-CtkV01lw.css.gz +0 -0
  614. codex/static_root/assets/user-tab-B7e9oz0-.03fd3875c9e3.js.br +0 -0
  615. codex/static_root/assets/user-tab-B7e9oz0-.03fd3875c9e3.js.gz +0 -0
  616. codex/static_root/assets/user-tab-B7e9oz0-.js.br +0 -0
  617. codex/static_root/assets/user-tab-B7e9oz0-.js.gz +0 -0
  618. codex/static_root/manifest.fd580176863a.json +0 -757
  619. codex/static_root/manifest.fd580176863a.json.br +0 -0
  620. codex/static_root/manifest.fd580176863a.json.gz +0 -0
  621. {codex-1.7.11a0.dist-info → codex-1.7.12.dist-info}/LICENSE +0 -0
  622. {codex-1.7.11a0.dist-info → codex-1.7.12.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
1
- import{g as U,p as G,u as z,a as i,J as j,c as Q,m as V,t as N,d as we,K as Se,F as $,_ as f,C as _,D as C,L as Be,M as h,B as Ce,v as u,w as m,N as de,O as Te,P as ke,Q as xe,R as Me,q as n,S as D,k as v,x as B,z as w,l as c,T as L,E as M,U as le,V as ce,A as T,W as Y,X as te,s as g,Y as Fe,y as O,Z as Ve,$ as ue,G as y,h as me,a0 as $e,a1 as Ne,j as De,a2 as he,a3 as pe,a4 as Pe,n as E,a5 as Oe,a6 as Ie,a7 as Ae,a8 as Re,a9 as He,aa as qe,ab as re,ac as ae,ad as oe,ae as Ee,af as Le,ag as Ue,ah as Ge,b as ze,ai as je,aj as Ye,ak as Ke}from"./main-nb_FhQoD.js";import{V as K,a as se,A as Qe,E as We,P as Xe,c as be,U as Je}from"./unauthorized-C0p00au3.js";import{g as Ze,u as et,d as X,h as tt,c as rt,b as at,i as ot,j as st,e as it,k as F,l as nt,V as fe,n as J,I as dt,o as lt,p as ct,q as ut,M as mt}from"./forwardRefs-Cvn3Vptr.js";import{T as H}from"./index-70Ak1yZF.js";import{V as ht}from"./VCombobox-DpadV2-4.js";import{V as pt}from"./VTable-DWCA1lvG.js";import{V as bt,a as x}from"./VDialog-BR4MrJeK.js";import{V as ft,a as gt,b as _t,c as vt}from"./VSelectionControl-CRVWANOr.js";import{V as W,t as yt,N as ie,T as P,a as wt,M as St,D as Bt,b as Ct,p as Tt,B as kt,g as xt,P as Mt,c as Ft,d as Vt}from"./pagination-toolbar-2endB3w1.js";import{V as ge,a as $t}from"./VSelect-Bi5KABMc.js";import{a as q}from"./VDivider-CGYMLgJf.js";import{b as Nt,S as Dt,a as Pt}from"./settings-drawer-DBftv9u0.js";import{V as R}from"./VCheckbox-t1haz9-P.js";import"./change-password-dialog-Bw5_buVm.js";import"./VForm-ZManiwIB.js";import"./admin-Bxwc8451.js";import"./ssrBoot-B6yWBylJ.js";import"./filter-D2ELuNq3.js";import"./VCheckboxBtn-1PexCc2F.js";import"./confirm-dialog-CDmsC-9_.js";import"./copy-to-clipboard-DoUvDJVx.js";const Ot=G({divider:[Number,String],...j()},"VBreadcrumbsDivider"),It=U()({name:"VBreadcrumbsDivider",props:Ot(),setup(e,t){let{slots:a}=t;return z(()=>{var d;return i("li",{"aria-hidden":"true",class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=a==null?void 0:a.default)==null?void 0:d.call(a))??e.divider])}),{}}}),At=G({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...j(),...tt(),...X({tag:"li"})},"VBreadcrumbsItem"),_e=U()({name:"VBreadcrumbsItem",props:At(),setup(e,t){let{slots:a,attrs:d}=t;const s=Ze(e,d),r=Q(()=>{var b;return e.active||((b=s.isActive)==null?void 0:b.value)}),o=Q(()=>r.value?e.activeColor:e.color),{textColorClasses:l,textColorStyles:p}=et(o);return z(()=>i(e.tag,{class:["v-breadcrumbs-item",{"v-breadcrumbs-item--active":r.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:r.value&&e.activeClass},l.value,e.class],style:[p.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var b,S;return[s.isLink.value?i("a",V({class:"v-breadcrumbs-item--link",onClick:s.navigate},s.linkProps),[((S=a.default)==null?void 0:S.call(a))??e.title]):((b=a.default)==null?void 0:b.call(a))??e.title]}})),{}}}),Rt=G({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Se,items:{type:Array,default:()=>[]},...j(),...it(),...st(),...X({tag:"ul"})},"VBreadcrumbs"),Ht=U()({name:"VBreadcrumbs",props:Rt(),setup(e,t){let{slots:a}=t;const{backgroundColorClasses:d,backgroundColorStyles:s}=rt(N(e,"bgColor")),{densityClasses:r}=at(e),{roundedClasses:o}=ot(e);we({VBreadcrumbsDivider:{divider:N(e,"divider")},VBreadcrumbsItem:{activeClass:N(e,"activeClass"),activeColor:N(e,"activeColor"),color:N(e,"color"),disabled:N(e,"disabled")}});const l=Q(()=>e.items.map(p=>typeof p=="string"?{item:{title:p},raw:p}:{item:p,raw:p}));return z(()=>{const p=!!(a.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,o.value,e.class],style:[s.value,e.style]},{default:()=>{var b;return[p&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[a.prepend?i(nt,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},a.prepend):i(F,{key:"prepend-icon",start:!0,icon:e.icon},null)]),l.value.map((S,k,Z)=>{var ee;let{item:I,raw:ye}=S;return i($,null,[((ee=a.item)==null?void 0:ee.call(a,{item:I,index:k}))??i(_e,V({key:k,disabled:k>=Z.length-1},typeof I=="string"?{title:I}:I),{default:a.title?()=>{var A;return(A=a.title)==null?void 0:A.call(a,{item:I,index:k})}:void 0}),k<Z.length-1&&i(It,null,{default:a.divider?()=>{var A;return(A=a.divider)==null?void 0:A.call(a,{item:ye,index:k})}:void 0})])}),(b=a.default)==null?void 0:b.call(a)]}})}),{}}}),qt={f:Me,r:de,p:xe,i:ke,s:Te},Et={name:"BrowserBreadcrumbs",computed:{...C(h,["groupNames"]),..._(Ce,["timestamp"]),..._(h,{breadcrumbs(e){const t=[],a=e.settings.breadcrumbs.slice(0,-1);if(!a)return t;let d="";for(const s of a){const r=this.getTo(s,d),o=s.name||"",l=s.group,p=this.getIcon(s.pks,o,l);let b;s.group==="r"?b="Top":(b=s.pks==0?"All ":"",b+=this.groupNames[l]);const k={to:r,text:o,icon:p,tooltip:{text:b,openDelay:1500}};t.push(k),d=s.pks}return t}})},methods:{getTo(e,t){const a=Be(e);delete a.name;const d={name:"browser",params:a};return d.query={ts:this.timestamp},t&&(d.hash=`#card-${t}`),d},getIcon(e,t,a){let d;return"rfa".includes(a)&&e==="0"?d=de:t?d="":d=qt[a],d}}},Lt=["innerHTML"];function Ut(e,t,a,d,s,r){return n(),u(Ht,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:m(({item:o})=>[D((n(),u(_e,{to:o.to},{default:m(()=>[o.icon?(n(),u(F,{key:0},{default:m(()=>[B(w(o.icon),1)]),_:2},1024)):(n(),v("span",{key:1,innerHTML:o.text},null,8,Lt))]),_:2},1032,["to"])),[[H,o.tooltip]])]),_:1},8,["items"])}const Gt=f(Et,[["render",Ut],["__scopeId","data-v-1cd96198"]]),zt={name:"BrowserHeader",components:{Breadcrumbs:Gt}};function jt(e,t,a,d,s,r){const o=c("Breadcrumbs");return n(),u(K,{id:"breadcrumbsToolbar",height:24,flat:"",class:"titleToolbar"},{default:m(()=>[i(o)]),_:1})}const Yt=f(zt,[["render",jt],["__scopeId","data-v-8badef68"]]),Kt={name:"BrowserHeader",data(){return{mdiReload:le}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{..._(h,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...C(M,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:a,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?L(a):a;if(r&&t.push(r),d){const o=`of ${d}`;t.push(o)}e=t.join(" ")}else e="(Empty)";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function Qt(e,t,a,d,s,r){return n(),u(K,{id:"browserToolbarTitle",height:24,"extension-height":24},ce({default:m(()=>[i(se,{id:"browserTitle",class:"browserTitle"},{default:m(()=>[B(w(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:m(()=>[i(se,{id:"browserSubtitle",class:"browserTitle"},{default:m(()=>[B(w(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Wt=f(Kt,[["render",Qt],["__scopeId","data-v-919fc0ff"]]),Xt=10,Jt={name:"BrowserSearchCombobox",data(){return{mdiMagnify:Y,menu:!1,query:"",items:[""]}},computed:{..._(h,{stateQ:e=>e.settings.q,searchError:e=>e.page.searchError})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...T(h,["setSettings","startSearchHideTimeout","clearSearchHideTimeout"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,Xt)},doSearch(e=!1){this.menu=!1;const a={q:this.query?this.query.trim():""};e&&(a.orderBy="sort_name",a.orderReverse=!1,this.doBlur()),this.setSettings(a)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function Zt(e,t,a,d,s,r){return n(),u(ht,{id:"searchbox",ref:"searchbox",modelValue:s.query,"onUpdate:modelValue":t[0]||(t[0]=o=>s.query=o),menu:s.menu,"onUpdate:menu":t[1]||(t[1]=o=>s.menu=o),items:s.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","error-messages":e.searchError,"full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":s.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=o=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[te(r.doSearch,["enter"]),te(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","error-messages","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const er=f(Jt,[["render",Zt]]),tr=[["characters","String","category"],["community_rating","Decimal","communityrating"],["contributor","String","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","filetype, type"],["genres","String","genre"],["identifiers","String","id, nss"],["identifier_types","String","id_type, idtype, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","String","location"],["maturity_rating","String"],["monochrome","Boolean","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","filename, folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","String","seriesgroups"],["size","Integer"],["stories","String","story"],["story_arcs","String","storyarcs"],["summary","String","comments, description"],["tags","String","tag"],["tagger","String"],["teams","String","team"],["updated_at","DateTime","updated"],["volume","String"],["web","String"],["year","Integer"]],rr={name:"SearchHelpText",data(){return{FIELD_ROWS:tr}}},ar={id:"browserSearchTextContainer"},or={id:"browserSearchText"},sr={id:"fieldTableContainer"},ir={class:"aliasCol"};function nr(e,t,a,d,s,r){return n(),v("div",ar,[g("div",or,[t[2]||(t[2]=g("h1",null,"Search Help",-1)),g("div",sr,[t[1]||(t[1]=g("h2",null,"Search Fields",-1)),i(pt,{id:"fieldTable",class:"highlight-table"},{default:m(()=>[t[0]||(t[0]=g("thead",null,[g("tr",null,[g("th",null,"Field"),g("th",null,"Type"),g("th",null,"Aliases")])],-1)),g("tbody",null,[(n(!0),v($,null,O(s.FIELD_ROWS,o=>(n(),v("tr",{key:o[0]},[g("td",null,w(o[0]),1),g("td",null,w(o[1]),1),g("td",ir,w(o[2]||""),1)]))),128))])]),_:1})]),t[3]||(t[3]=Fe('<div id="textContainer" data-v-8d3dbd81><h2 data-v-8d3dbd81>Search Syntax</h2><p data-v-8d3dbd81> Codex allows two different kinds of searching from the search bar. Full Text Search and Field Search. For full text search just enter some terms in the search bar. They will be added to the filters selected with the &quot;filter by&quot; menu. </p><p data-v-8d3dbd81>Searching in Codex is always case insensitive.</p><h2 data-v-8d3dbd81>Full Text Search</h2><p data-v-8d3dbd81> Full text search searches all the metadata of a comic as one document. </p><h3 data-v-8d3dbd81>Boolean Operators</h3><p data-v-8d3dbd81> Codex allows the <code data-v-8d3dbd81>AND</code>, <code data-v-8d3dbd81>OR</code>, and <code data-v-8d3dbd81>NOT</code> operators between search terms. By default terms are concatenated with the <code data-v-8d3dbd81>AND</code> operator. For instance: <code data-v-8d3dbd81> frodo sam galadriel </code> is the same as <code data-v-8d3dbd81>frodo AND sam AND galadriel</code>. <code data-v-8d3dbd81> frodo OR pippin NOT merry</code> searches for comics with metadata that reference Frodo or Pippin but not Merry. Parenthesis may be used to group boolean operators. </p><h3 data-v-8d3dbd81>Prefix Operators</h3><p data-v-8d3dbd81> search tokens suffixed with a <code data-v-8d3dbd81>*</code> will look for text with the given prefix. For example <code data-v-8d3dbd81>tev*</code> should match if the string &quot;Tevildo&quot; occurs anywhere in the comic metadata. </p><h2 data-v-8d3dbd81>Field Search Syntax</h2><p data-v-8d3dbd81> Similar to Codex&#39;s Filter menu, you may query individual comic metadata fields in the database but for more fields and with more powerful operators than the exact match offered by the Filter menu. A field search looks like: <code data-v-8d3dbd81>field:expression</code>. </p><h3 data-v-8d3dbd81>Simple Values as the Expression</h3><p data-v-8d3dbd81> Simple values entered for the expression match exactly for numeric, datetime and boolean fields. However for text fields the field is searched for any match of the entered value. </p><p data-v-8d3dbd81> The Prefix notiation for full text search tokens may also be used here. <code data-v-8d3dbd81>characters:saur*</code> will match comics that feature &quot;Sauron&quot; and &quot;Sauruman&quot;. </p><h3 data-v-8d3dbd81>Field Search Boolean Expressions</h3><p data-v-8d3dbd81> Boolean operators may also used in and around field search if the expression is contained in parenthesis. <code data-v-8d3dbd81>characters:(aragorn or boromir)</code> will work. <code data-v-8d3dbd81>characters:(not aragorn)</code> will behave similarly to <code data-v-8d3dbd81>not characters:aragorn</code></p><h3 data-v-8d3dbd81>Leading Operators</h3><p data-v-8d3dbd81> Field Search has it&#39;s own operators that offer more powerful queries. For text, numeric, boolean and datetime fields may be applied at the beginning of the expression <code data-v-8d3dbd81>&gt;</code>,<code data-v-8d3dbd81>&gt;=</code>,<code data-v-8d3dbd81>&lt;</code>,<code data-v-8d3dbd81>&lt;=</code>. And the range syntax <code data-v-8d3dbd81>..</code> accepts two values. For instance: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>pages:&gt;30</code></td><td data-v-8d3dbd81>comics with more than 30 pages</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>author:!frodo</code></td><td data-v-8d3dbd81>comics not written by Frodo</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>year:1066..1215</code></td><td data-v-8d3dbd81>comics published between the year 1066 and 1215.</td></tr></tbody></table><h3 data-v-8d3dbd81>Text Operators</h3><p data-v-8d3dbd81> Field search on text fields may be narrowed using the <code data-v-8d3dbd81>*</code> operator: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:Ar*</code></td><td data-v-8d3dbd81> characters that start with &quot;Ar&quot;, like &quot;Aragorn&quot; and &quot;Arwen&quot; </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:*orn</code></td><td data-v-8d3dbd81> characters that end with &quot;orn&quot;, like &quot;Aragorn&quot; and &quot;Arathorn&quot;. This type of search can be slow </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>series:sil*ion</code></td><td data-v-8d3dbd81> series such as Silmarillion. This type of search can be slow. </td></tr></tbody></table><p data-v-8d3dbd81> The last two examples of text search above looking for suffixes and doing wildcard searches with the <code data-v-8d3dbd81>*</code> in the middle of the word will perform much worse than bare word or prefix searches because they are unable to use the full text search index and will scan the database in a less efficient manner. </p><h3 data-v-8d3dbd81>Dates and DateTimes</h3><p data-v-8d3dbd81> Codex parses Dates and DateTime values liberally. Many quoted english phrases also work. Such as relative dates like &#39;1 min ago&#39;, &#39;2 weeks ago&#39;, &#39;3 months, 1 week and 1 day ago&#39;, &#39;in 2 days&#39;, &#39;tomorrow&#39;. Dates with timezones and named months such as &#39;August 14, 2015 EST&#39;, &#39;July 4, 2013 PST&#39;, &#39;21 July 2013 10:15 pm +0500&#39;. Examples: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>created_at:&quot;3 days ago&quot;..&quot;today&quot;</code></td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>date:&quot;&lt;3 years ago&quot;</code></td></tr></tbody></table><p data-v-8d3dbd81> Placing a leading operator outside the quotes for a date phrase will not be parsed correctly. If the format you try fails, the <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD</code> and <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD-HH:mm:SS</code> formats are reliable. </p><h3 data-v-8d3dbd81>Single Quote complex field Queries</h3><p data-v-8d3dbd81> Use quotes to tell Codex that a complex or natural language phrase should be applied to a specific field </p><code data-v-8d3dbd81> created:&#39;this year&#39; </code><h3 data-v-8d3dbd81>Size Byte Multipliers</h3><p data-v-8d3dbd81> The size field can make use of convenient byte multiplier suffixes like <code data-v-8d3dbd81>kb</code> and <code data-v-8d3dbd81>mb</code> as well as binary suffixes like <code data-v-8d3dbd81>gib</code> and <code data-v-8d3dbd81>tib</code>. For instance <code data-v-8d3dbd81>size:&gt;10mb</code></p><h2 data-v-8d3dbd81>Limitations</h2><p data-v-8d3dbd81> Field searches that use leading operators or text wildcard operators that are prefixed with the <code data-v-8d3dbd81>OR</code> operator like <code data-v-8d3dbd81>OR year:&gt;2020</code> will disregard the <code data-v-8d3dbd81>OR</code> operator and treat it like <code data-v-8d3dbd81>AND</code>. </p></div>',1))])])}const dr=f(rr,[["render",nr],["__scopeId","data-v-8d3dbd81"]]),lr={name:"SearchHelp",components:{SearchHelpText:dr},data(){return{mdiOpenInNew:ue,mdiLifebuoy:Ve}},computed:{..._(h,{isSearchHelpOpenState:e=>e.isSearchHelpOpen}),isSearchHelpOpen:{get(){return this.isSearchHelpOpenState},set(e){this.setSearchHelpOpen(e)}},buttonDensity(){return this.$vuetify.display.smAndDown?"compact":"comfortable"}},methods:{...T(h,["setSearchHelpOpen"])}},cr={id:"searchHelp"};function ur(e,t,a,d,s,r){const o=c("SearchHelpText");return n(),u(bt,{modelValue:r.isSearchHelpOpen,"onUpdate:modelValue":t[0]||(t[0]=l=>r.isSearchHelpOpen=l),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:m(({props:l})=>[i(fe,V(l,{icon:s.mdiLifebuoy,title:"Search Help",density:r.buttonDensity}),null,16,["icon","density"])]),default:m(()=>[g("div",cr,[i(o)])]),_:1},8,["modelValue"])}const mr=f(lr,[["render",ur],["__scopeId","data-v-292e00bb"]]),hr={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:er,SearchHelp:mr},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,toolbarHeight:e=>64+12*!!e.page.searchError})}};function pr(e,t,a,d,s,r){const o=c("BrowserSearchCombobox"),l=c("SearchHelp");return n(),u(ft,null,{default:m(()=>[e.isSearchOpen?(n(),u(K,{key:0,density:"compact",height:e.toolbarHeight},{default:m(()=>[i(W,{id:"searchToolbarItems"},{default:m(()=>[i(o),i(l)]),_:1})]),_:1},8,["height"])):y("",!0)]),_:1})}const br=f(hr,[["render",pr],["__scopeId","data-v-64bebade"]]),fr={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:pe,mdiCloseCircleOutline:he,query:""}},computed:{..._(h,{choices(e){return e.choices.dynamic[this.name]},readingDirectionTitles:e=>e.choices.static.readingDirection,identifierTypeTitles:e=>e.choices.static.identifierType,filter(e){return e.settings.filters[this.name]}}),...me(h,["filterMode"]),hasNone(){for(const e of this.choices)if(ie.has(e)||e instanceof Object&&ie.has(e.pk))return!0;return!1},vuetifyItems(){return yt(this.choices,this.query)},title(){return De(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?$e:Ne},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...T(h,["clearOneFilter","identifierTypeTitle","loadAvailableFilterChoices","loadFilterChoices"]),setUIFilterMode(e){this.filterMode=e,this.query="",e!=="base"&&typeof this.choices!="object"&&this.loadFilterChoices(e)},selected(e){const t={filters:{[this.name]:e}};this.$emit("selected",t)},itemTitle:function(e){return this.name==="readingDirection"?this.readingDirectionTitles[e.value]:this.name==="identifierType"?this.identifierTypeTitle(e.title):e.title},async _loadSubAvailableFilterChoices(){return this.loadAvailableFilterChoices().then(()=>this.loadFilterChoices(this.name))},onClear(){return this.clearOneFilter(this.name).then(()=>this._loadSubAvailableFilterChoices())}}},gr={key:0},_r={class:"filterHeader"};function vr(e,t,a,d,s,r){return n(),v("div",null,[i(gt,{"hide-on-leave":""},{default:m(()=>[e.filterMode==="base"?(n(),u(x,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=o=>r.setUIFilterMode(a.name))},null,8,["title","append-icon"])):y("",!0)]),_:1}),i(_t,{"hide-on-leave":""},{default:m(()=>[e.filterMode===a.name?(n(),v("div",gr,[g("header",_r,[i(x,{class:"filterHeaderTitle","prepend-icon":s.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=o=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(n(),u(x,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0),typeof e.choices=="object"?(n(),u(vt,{key:1,modelValue:s.query,"onUpdate:modelValue":t[2]||(t[2]=o=>s.query=o),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=o=>e.filterMode=a.name)},null,8,["modelValue"])):(n(),u(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(n(),u(ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:m(()=>[r.hasNone?(n(),u(x,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):y("",!0),(n(!0),v($,null,O(r.vuetifyItems,o=>(n(),u(x,{key:o.value,title:r.itemTitle(o),value:o.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):y("",!0)])):y("",!0)]),_:1})])}const yr=f(fr,[["render",vr],["__scopeId","data-v-f1f62462"]]),wr={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:yr,ToolbarSelect:P},extends:P,data(){return{mdiCloseCircleOutline:he,mdiFilterMultipleOutline:Pe,menu:!1}},computed:{...C(h,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),..._(h,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,filterMenuClass:function(e){let t="filterMenu";return e.filterMode!=="base"&&(t+="Hidden"),t},dynamicChoiceNames:function(e){if(e.choices.dynamic===void 0)return;const t=[];for(const[a,d]of Object.entries(e.choices.dynamic))d&&t.push(a);return t}}),...me(h,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},methods:{...T(h,["clearFilters","loadAvailableFilterChoices","setSettings"]),onUpdateModelValue(e){const t={filters:{bookmark:e}};this.onSubMenuSelected(t)},onSubMenuSelected(e){this.menu=!1,this.setSettings(e),this.filterMode="base"},onClear(){return this.clearFilters().then(()=>this.loadAvailableFilterChoices()).catch(()=>{console.error("clear filters")})},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},Sr={class:"codexSelection"};function Br(e,t,a,d,s,r){const o=c("BrowserFilterSubMenu"),l=c("ToolbarSelect");return n(),u(l,{menu:s.menu,"onUpdate:menu":[t[0]||(t[0]=p=>s.menu=p),r.onMenu],class:E(["filterBySelect",{filterBySelectXSmall:r.padRight}]),"select-label":"filter by",items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen-1,"onUpdate:modelValue":r.onUpdateModelValue},{selection:m(({item:p})=>[g("span",Sr,w(p.title),1),e.isDynamicFiltersSelected?(n(),u(F,{key:0,class:"filterSuffix",size:"x-small"},{default:m(()=>[B(w(s.mdiFilterMultipleOutline),1)]),_:1})):y("",!0)]),"prepend-item":m(()=>[e.isFiltersClearable?(n(),u(x,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0)]),"append-item":m(()=>[i(q),e.dynamicChoiceNames===void 0?(n(),u(x,{key:0,density:"compact",variant:"plain"},{default:m(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(n(!0),v($,{key:1},O(e.dynamicChoiceNames,p=>(n(),u(o,{key:p,name:p,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(n(),u(x,{key:2,class:"noChoices",density:"compact",variant:"plain",title:"No filters available"}))]),_:1},8,["menu","class","items","menu-props","model-value","max-select-len","onUpdate:modelValue","onUpdate:menu"])}const Cr=f(wr,[["render",Br],["__scopeId","data-v-ee83f8c9"]]),Tr=new Set(["bookmark_updated_at","child_count","community_rating","created_at","critical_rating","page_count","search_score","size","updated_at"]),kr={name:"BrowseOrderBySelect",components:{ToolbarSelect:P},extends:P,computed:{...C(h,["orderByChoices","orderByChoicesMaxLen"]),..._(h,{orderBySetting:e=>e.settings.orderBy}),orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:Tr.has(e)};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function xr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,V({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=l=>r.orderBy=l),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-4},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Mr=f(kr,[["render",xr]]),Fr={name:"ToolbarButton",components:{ScaleButton:Nt}};function Vr(e,t,a,d,s,r){const o=c("ScaleButton");return n(),u(o,{variant:"plain",class:"toolbarButton"},ce({_:2},[O(e.$slots,(l,p)=>({name:p,fn:m(b=>[Oe(e.$slots,p,V({props:l},b))])}))]),1024)}const ve=f(Fr,[["render",Vr]]),$r={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiSortVariant:Ie}},computed:{..._(h,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...T(h,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Nr(e,t,a,d,s,r){const o=c("ToolbarButton");return n(),u(o,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:m(()=>[i(F,{class:E(r.iconClasses)},{default:m(()=>[B(w(s.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const Dr=f($r,[["render",Nr],["__scopeId","data-v-42884e89"]]),Pr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiMagnify:Y}},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...T(h,["setIsSearchOpen"])}};function Or(e,t,a,d,s,r){const o=c("ToolbarButton");return e.isSearchOpen?y("",!0):(n(),u(o,V({key:0,class:"searchButton",icon:s.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=l=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const Ir=f(Pr,[["render",Or]]),Ar=new Set(["a","f"]),Rr={name:"BrowserTopGroupSelect",components:{ToolbarSelect:P},extends:P,data(){return{DIVIDED_VALUES:Ar}},computed:{..._(h,{topGroupSetting:e=>e.settings.topGroup}),...C(h,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function Hr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=l=>r.topGroup=l),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:m(({item:l,props:p})=>[s.DIVIDED_VALUES.has(l.value)?(n(),u(q,{key:0})):y("",!0),i(x,V(p,{density:"compact",variant:"plain",title:l.title,value:l.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const qr=f(Rr,[["render",Hr]]),Er={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Cr,BrowserSearchButton:Ir,BrowserTopGroupSelect:qr,BrowserOrderBySelect:Mr,BrowserOrderReverseButton:Dr,SettingsDrawerButton:Dt},data(){return{mdiMagnify:Y,mdiFamilyTree:Ae,browseMode:"filter"}}};function Lr(e,t,a,d,s,r){const o=c("BrowserTopGroupSelect"),l=c("BrowserFilterBySelect"),p=c("BrowserOrderBySelect"),b=c("BrowserOrderReverseButton"),S=c("BrowserSearchButton"),k=c("SettingsDrawerButton");return n(),u(K,{id:"browserToolbarTop",flat:"",density:"compact",height:48},{default:m(()=>[i(W,{id:"browserToolbarLeftItems"},{default:m(()=>[i(o),i(l),i(p),i(b),i(S)]),_:1}),i(wt),i(W,null,{default:m(()=>[i(k)]),_:1})]),_:1})}const Ur=f(Er,[["render",Lr],["__scopeId","data-v-547b970a"]]),Gr={name:"BrowserHeader",components:{AppBanner:Qe,BrowserBreadcrumbsToolbar:Yt,BrowserSearchToolbar:br,BrowserTopToolbar:Ur,BrowserTitleToolbar:Wt}},zr={id:"codexHeadToolbarWrapper"};function jr(e,t,a,d,s,r){const o=c("AppBanner"),l=c("BrowserTopToolbar"),p=c("BrowserSearchToolbar"),b=c("BrowserBreadcrumbsToolbar"),S=c("BrowserTitleToolbar");return n(),v("header",zr,[i(o),i(l,{class:"codexHeadToolbar"}),i(p,{class:"codexHeadToolbar"}),i(b,{class:"codexHeadToolbar"}),i(S,{class:"codexHeadToolbar"})])}const Yr=f(Gr,[["render",jr],["__scopeId","data-v-176aeb57"]]),Kr="rpisv",Qr={name:"BrowserSettingsPanel",data(){return{mdiReload:le,openDelay:2e3}},computed:{...C(M,["isAuthorized"]),..._(M,{isUserAuthorized:e=>!!e.user}),..._(h,{groupChoices:e=>{var t,a;return((a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.settingsGroup)||{}},showSettings:e=>{var t;return((t=e.settings)==null?void 0:t.show)||{}},twentyFourHourTime:e=>{var t;return((t=e.settings)==null?void 0:t.twentyFourHourTime)||!1},twentyFourHourTimeTitle:e=>{var t,a,d;return((d=(a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.twentyFourHourTime)==null?void 0:d.title)||""},dynamicCovers:e=>{var t;return((t=e.settings)==null?void 0:t.dynamicCovers)||!1},customCovers:e=>{var t;return((t=e.settings)==null?void 0:t.customCovers)||!1},alwaysShowFilename:e=>{var t;return((t=e.settings)==null?void 0:t.alwaysShowFilename)||!1}}),showShowSettings(){var e,t;return Kr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...T(h,["setSettings"]),setShow(e,t){const a={show:{[e]:t===!0}};this.setSettings(a)},setSetting(e,t){const a={[e]:t===!0};this.setSettings(a)}}},Wr={key:0,class:"browserSettingsBlock"},Xr={class:"browserSettingsBlock"};function Jr(e,t,a,d,s,r){return n(),v($,null,[r.showShowSettings?D((n(),v("div",Wr,[t[4]||(t[4]=g("h4",{class:"browserSettingsHeader"},"Show Group Levels",-1)),(n(!0),v($,null,O(e.groupChoices,o=>(n(),u(R,{key:o.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[o.value],"true-value":!0,label:`Show ${o.title}`,"onUpdate:modelValue":l=>r.setShow(o.value,l)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[H,{openDelay:s.openDelay,text:"Show these groups when navigating the browse tree"}]]):y("",!0),i(q),g("div",Xr,[t[5]||(t[5]=g("h4",{class:"browserSettingsHeader"},"Covers",-1)),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=o=>r.setSetting("dynamicCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Choose covers by filters, search, and order"}]]),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=o=>r.setSetting("customCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(q),D(i(R,{class:"browserGroupCheckbox",density:"compact",label:"Always Show Filenames","hide-details":"auto","model-value":!!e.alwaysShowFilename,"onUpdate:modelValue":t[2]||(t[2]=o=>r.setSetting("alwaysShowFilename",o))},null,8,["model-value"]),[[H,{openDelay:1e3,text:"Always show filenames on the browser cards"}]]),i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[3]||(t[3]=o=>r.setSetting("twentyFourHourTime",o))},null,8,["model-value"]),i(q)],64)}const Zr=f(Qr,[["render",Jr],["__scopeId","data-v-a7b78530"]]),ea={name:"BrowserSettingsDrawer",components:{SettingsDrawer:Pt,BrowserSettingsPanel:Zr}};function ta(e,t,a,d,s,r){const o=c("BrowserSettingsPanel"),l=c("SettingsDrawer");return n(),u(l,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:m(()=>[i(o)]),_:1})}const ra=f(ea,[["render",ta]]),aa={name:"BrowserContainerMenu",components:{DownloadButton:Bt,MarkReadButton:St},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:He,showMenu:!1}},computed:{_groupName(){var t,a,d,s,r;return[(t=this.item)==null?void 0:t.publisherName,(a=this.item)==null?void 0:a.imprintName,(d=this.item)==null?void 0:d.seriesName,L((s=this.item)==null?void 0:s.volumeName),Re(this.item,3),(r=this.item)==null?void 0:r.name].filter(Boolean).join(" ")},downloadName(){var e;return((e=this.item)==null?void 0:e.fileName)||this._groupName},downloadItem(){return{...this.item,name:this.downloadName}}}};function oa(e,t,a,d,s,r){const o=c("MarkReadButton"),l=c("DownloadButton");return n(),u($t,{modelValue:s.showMenu,"onUpdate:modelValue":t[1]||(t[1]=p=>s.showMenu=p),"offset-y":"",top:""},{activator:m(({props:p})=>[i(fe,V({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:s.mdiDotsVertical,title:"Action Menu",variant:"text"},p,{onClick:t[0]||(t[0]=qe(()=>{},["prevent"]))}),null,16,["icon"])]),default:m(()=>[i(ge,{class:"background-soft-highlight"},{default:m(()=>[i(o,{class:"listItem",button:!1,item:a.item},null,8,["item"]),i(l,{class:"listItem",button:!1,item:r.downloadItem},null,8,["item"])]),_:1})]),_:1},8,["modelValue"])}const sa=f(aa,[["render",oa],["__scopeId","data-v-f9b20c54"]]),ia={name:"BrowserCardControls",components:{BrowserCardMenu:sa,MetadataButton:Ct},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:ae}},computed:{eyeIcon:function(){return this.eyeOpen?re:ae}}},na={class:"cardControls"};function da(e,t,a,d,s,r){const o=c("MetadataButton"),l=c("BrowserCardMenu");return n(),v("div",na,[a.item.group==="c"?(n(),u(F,{key:0,class:"eye"},{default:m(()=>[B(w(r.eyeIcon),1)]),_:1})):y("",!0),i(o,{group:a.item.group,book:a.item,children:a.item.childCount},null,8,["group","book","children"]),i(l,{item:a.item},null,8,["item"])])}const la=f(ia,[["render",da],["__scopeId","data-v-6f2c700a"]]),ca=new Set(["community_rating","critical_rating"]),ua=new Set(["date"]),ma=new Set(["bookmark_updated_at","created_at","updated_at"]),ha=new Set([null,void 0,"sort_name"]),pa=new Set([null,void 0]),ba={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(ha.has(this.orderBy)||this.orderBy==="filename"&&this.item.group!=="c"||this.orderBy==="story_arc_number"&&this.item.group==="a"||pa.has(e))e="";else if(ua.has(this.orderBy)){const t=new Date(e);e=Ee.format(t)}else this.orderBy=="search_score"?e=this.format_search_score(e):ma.has(this.orderBy)?e=Le(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=Tt(Number.parseInt(e,10)):ca.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}},methods:{format_search_score(e){return e=oe.format(Math.round(Number.parseFloat(e)*10)),Number.isNaN(e)&&(e=""),e}}},fa=["innerHTML"];function ga(e,t,a,d,s,r){return r.orderValue?(n(),v("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,fa)):y("",!0)}const _a=f(ba,[["render",ga],["__scopeId","data-v-892ed807"]]),va={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderByFilename:e=>e.settings.orderBy==="filename",orderByName:e=>e.settings.orderBy==="sort_name",topGroup:e=>e.settings.topGroup,showSeries:e=>e.settings.show.s,showVolume:e=>e.settings.show.v,zeroPad:e=>e.page.zeroPad,alwaysShowFilename:e=>e.settings.alwaysShowFilename}),seriesName(){return(this.topGroup==="a"||this.orderByName&&!this.showSeries)&&["c","v"].includes(this.item.group)&&this.item.seriesName?this.item.seriesName:!1},volumeName(){return(this.topGroup==="a"||this.orderByName&&!this.showVolume)&&this.item.group==="c"&&this.item.volumeName?L(this.item.volumeName):!1},headerName(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?Ue(this.item,this.zeroPad):Ge(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName(){return this.item.group==="v"?L(this.item.name):this.item.name},fileName(){return!this.orderByFilename&&(this.alwaysShowFilename||this.topGroup==="f")?this.item.fileName:""},linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ya={class:"browserLink cardSubtitle text-caption"},wa={key:0,class:"fileName"},Sa={key:1,class:"seriesCaption"},Ba={key:2,class:"volumeCaption"},Ca={key:3,class:"headerName"},Ta={class:"displayName"};function ka(e,t,a,d,s,r){return n(),v("div",ya,[r.fileName?(n(),v("div",wa,w(r.fileName),1)):y("",!0),r.seriesName?(n(),v("div",Sa,w(r.seriesName),1)):y("",!0),r.volumeName?(n(),v("div",Ba,w(r.volumeName),1)):y("",!0),r.headerName?(n(),v("div",Ca,w(r.headerName),1)):y("",!0),g("div",Ta,w(r.displayName),1)])}const xa=f(va,[["render",ka],["__scopeId","data-v-e127b46d"]]),Ma=G({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...j(),...ut(),...X(),...ct({transition:"fade-transition"})},"VLazy"),Fa=U()({name:"VLazy",directives:{intersect:dt},props:Ma(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const{dimensionStyles:d}=lt(e),s=ze(e,"modelValue");function r(o){s.value||(s.value=o)}return z(()=>D(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[s.value&&i(mt,{transition:e.transition,appear:!0},{default:()=>{var o;return[(o=a.default)==null?void 0:o.call(a)]}})]}),[[je("intersect"),{handler:r,options:e.options},null]])),{}}}),ne=100,Va=-170,$a={name:"BrowserCard",components:{BookCover:kt,BrowserCardControls:la,BrowserCardSubtitle:xa,OrderByCaption:_a},props:{item:{type:Object,required:!0}},computed:{..._(h,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.name,e},ids(){return this.item.ids.join(",")},browserRoute(){return{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}},toRoute(){return this.item.group==="c"?xt(this.item,this.importMetadata):this.browserRoute},progressBGOpacity(){return this.item.progress?.1:0}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.ids))return;const e=this.$el;if(!e){console.warn("No element found to scroll to!");return}setTimeout(function(){e.scrollIntoView(),setTimeout(function(){window.scrollBy(0,Va)},ne)},ne)}}},Na={class:"browserCardCoverWrapper"},Da={class:"browserCardTop"},Pa={class:"cardFooter"};function Oa(e,t,a,d,s,r){const o=c("BookCover"),l=c("BrowserCardControls"),p=c("router-link"),b=c("BrowserCardSubtitle"),S=c("OrderByCaption");return n(),u(Fa,{id:`card-${r.ids}`,transition:"scale-transition"},{default:m(()=>[g("div",Na,[g("div",Da,[i(o,{group:a.item.group,pks:a.item.ids,mtime:a.item.mtime,"child-count":a.item.childCount,finished:a.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(p,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:m(()=>[i(l,{item:a.item,"eye-open":!!r.toRoute},null,8,["item","eye-open"])]),_:1},8,["to","aria-label"])]),i(J,{class:"bookCoverProgress","bg-opacity":r.progressBGOpacity,"model-value":a.item.progress,"aria-label":`${a.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),g("footer",Pa,[i(b,{item:a.item},null,8,["item"]),i(S,{item:a.item},null,8,["item"])])])]),_:1},8,["id"])}const Ia=f($a,[["render",Oa],["__scopeId","data-v-6e89150a"]]),Aa={name:"BrowserEmptyResults",components:{EmptyState:We},data(){return{mdiOpenInNew:ue}},computed:{...C(M,["isAuthorized","isUserAdmin"]),..._(M,{registration:e=>e.adminFlags.registration}),...C(h,["isFiltersClearable"]),..._(h,{librariesExist:e=>e.page.librariesExist}),empty(){let e={};return this.librariesExist?(e.headline="No Comics Found",e.title="For these filter and search settings",e.icon=Ye):(e.headline="No Libraries Exist",this.isUserAdmin?e.title="Use the top right ☰ menu to navigate to the admin panel and add a comic library":this.isAuthorized?e.title="An administrator must add some comics libraries":e.title="Use the top right ☰ menu to log in as an administrator to add libraries",e.icon=Ke),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...T(h,["clearFilters"])}},Ra={key:0},Ha={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function qa(e,t,a,d,s,r){const o=c("EmptyState");return n(),u(o,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=l=>e.clearFilters(!0))},{default:m(()=>[r.showLinkToReadmeAdmin?(n(),v("div",Ra,[t[2]||(t[2]=B(" See the ")),g("a",Ha,[t[1]||(t[1]=B("README ")),i(F,null,{default:m(()=>[B(w(s.mdiOpenInNew),1)]),_:1})]),t[3]||(t[3]=B(" for help "))])):y("",!0)]),_:1},8,["headline","title","icon","action-text"])}const Ea=f(Aa,[["render",qa]]),La={name:"BrowserMain",components:{BrowserCard:Ia,BrowserEmptyState:Ea,PlaceholderLoading:Xe},computed:{..._(M,{nonUsers:e=>e.adminFlags.nonUsers}),...C(M,["isAuthorized","isBanner"]),...C(h,["isSearchMode"]),..._(h,{librariesExist:e=>e.page.librariesExist,showPlaceHolder(e){return this.nonUsers===void 0||this.isAuthorized&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],numPages:e=>e.page.numPages,query:e=>e.settings.q,isSearchOpen:e=>e.isSearchOpen}),browsePaneClasses(){const e={padFooter:this.numPages>1};let t="browsePane";return this.isSearchOpen&&(t+="Search"),this.isBanner&&(t+="Banner"),e[t]=!0,e},showBrowseItems(){return this.cards&&this.cards.length>0&&this.isAuthorized&&!this.showPlaceHolder},searchLimitMessage(){let e="";if(!this.query)return e;const t=+this.$route.params.page,a=100*t;return this.showPlaceHolder?e+=`Searching for ${a} entries...`:this.numPages>t&&(e+=`Search results truncated to ${a} entries.`,e+=" Advance the page to look for more."),e}}},Ua={key:0,id:"browsePaneContainer"},Ga={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function za(e,t,a,d,s,r){const o=c("BrowserCard"),l=c("PlaceholderLoading"),p=c("BrowserEmptyState");return n(),u(be,{id:"browsePane",class:E(r.browsePaneClasses)},{default:m(()=>[r.showBrowseItems?(n(),v("div",Ua,[(n(!0),v($,null,O(e.cards,b=>(n(),u(o,{key:`${b.group}${b.ids}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(n(),u(l,{key:1,class:"placeholder"})):(n(),u(p,{key:2})),r.searchLimitMessage?(n(),v("div",Ga,w(r.searchLimitMessage),1)):y("",!0)]),_:1},8,["class"])}const ja=f(La,[["render",za],["__scopeId","data-v-327dfc0a"]]),Ya={name:"BrowserNavButton",components:{PaginationNavButton:Mt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:pe,mdiMagnify:Y,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...C(h,["isSearchMode"]),..._(h,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return this.page+this.increment},title(){return this.showMore?"Search for More":"Page "+this.toPage},toRoute(){const e=this.toPage;return{params:{...this.routeParams,page:e}}},classes(){return{leftButton:this.back,rightButton:!this.back}},disabled(){return this.back&&this.page<=1||!this.back&&this.page>=this.numPages},showMore(){return this.more&&this.isSearchMode&&this.toPage===this.numPages}},watch:{$route(e){this.params=e.params,this.page=+e.params.page}}};function Ka(e,t,a,d,s,r){const o=c("PaginationNavButton");return n(),u(o,{key:r.toRoute,class:E(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:m(()=>[r.showMore?(n(),u(F,{key:0},{default:m(()=>[B(w(s.mdiMagnify),1)]),_:1})):y("",!0),i(F,{class:E({flipHoriz:!a.back})},{default:m(()=>[B(w(s.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const Qa=f(Ya,[["render",Ka],["__scopeId","data-v-372671b3"]]),Wa={name:"BrowserNavToolbar",components:{BrowserNavButton:Qa,PaginationSlider:Vt,PaginationToolbar:Ft},computed:{..._(h,{numPages:e=>e.page.numPages})},methods:{...T(h,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Xa(e,t,a,d,s,r){const o=c("BrowserNavButton"),l=c("PaginationSlider"),p=c("PaginationToolbar");return e.numPages>1?(n(),u(p,{key:0},{default:m(()=>[i(o,{back:!0}),i(l,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=b=>e.routeToPage(b))},null,8,["model-value","max"]),i(o,{back:!1,more:!0})]),_:1})):y("",!0)}const Ja=f(Wa,[["render",Xa]]),Za={name:"MainBrowser",components:{BrowserHeader:Yr,BrowserMain:ja,BrowserNavToolbar:Ja,BrowserSettingsDrawer:ra,Unauthorized:Je},computed:{..._(M,{user:e=>e.user}),...C(M,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...T(h,["loadBrowserPage","loadSettings","setPageMtime"])}};function eo(e,t,a,d,s,r){const o=c("BrowserHeader"),l=c("BrowserMain"),p=c("BrowserNavToolbar"),b=c("BrowserSettingsDrawer"),S=c("Unauthorized");return e.isAuthorized?(n(),u(be,{key:0,id:"browser"},{default:m(()=>[i(o),i(l),i(p),i(b)]),_:1})):(n(),u(S,{key:1}))}const Bo=f(Za,[["render",eo],["__scopeId","data-v-4577512d"]]);export{Bo as default};
1
+ import{g as U,p as G,u as z,a as i,J as j,c as Q,m as V,t as N,d as we,K as Se,F as $,_ as f,C as _,D as C,L as Be,M as h,B as Ce,v as u,w as m,N as de,O as Te,P as ke,Q as xe,R as Me,q as n,S as D,k as v,x as B,z as w,l as c,T as L,E as M,U as le,V as ce,A as T,W as Y,X as te,s as g,Y as Fe,y as O,Z as Ve,$ as ue,G as y,h as me,a0 as $e,a1 as Ne,j as De,a2 as he,a3 as pe,a4 as Pe,n as E,a5 as Oe,a6 as Ie,a7 as Ae,a8 as Re,a9 as He,aa as qe,ab as re,ac as ae,ad as oe,ae as Ee,af as Le,ag as Ue,ah as Ge,b as ze,ai as je,aj as Ye,ak as Ke}from"./main-JUy8mnXG.js";import{V as K,a as se,A as Qe,E as We,P as Xe,c as be,U as Je}from"./unauthorized-CvdCW-Cq.js";import{g as Ze,u as et,d as X,h as tt,c as rt,b as at,i as ot,j as st,e as it,k as F,l as nt,V as fe,n as J,I as dt,o as lt,p as ct,q as ut,M as mt}from"./forwardRefs-BxFNqo8E.js";import{T as H}from"./index-D3gnYqT3.js";import{V as ht}from"./VCombobox-Da-CC3-D.js";import{V as pt}from"./VTable-DbFt9lJE.js";import{V as bt,a as x}from"./VDialog-CoOMSEbM.js";import{V as ft,a as gt,b as _t,c as vt}from"./VSelectionControl-DvYb3Pi4.js";import{V as W,t as yt,N as ie,T as P,a as wt,M as St,D as Bt,b as Ct,p as Tt,B as kt,g as xt,P as Mt,c as Ft,d as Vt}from"./pagination-toolbar-Cufj0Rqv.js";import{V as ge,a as $t}from"./VSelect-BpkoCPsm.js";import{a as q}from"./VDivider-BXrVdmrm.js";import{b as Nt,S as Dt,a as Pt}from"./settings-drawer-p6ZjyJ07.js";import{V as R}from"./VCheckbox-DtuP7Cwl.js";import"./change-password-dialog-DOioR_QK.js";import"./VForm-DXrmSq46.js";import"./admin-BpE7-fB4.js";import"./ssrBoot-B73_e82Z.js";import"./filter-D-aPctKp.js";import"./VCheckboxBtn-D8jQ_2In.js";import"./confirm-dialog-BRUkbajJ.js";import"./copy-to-clipboard-DoUvDJVx.js";const Ot=G({divider:[Number,String],...j()},"VBreadcrumbsDivider"),It=U()({name:"VBreadcrumbsDivider",props:Ot(),setup(e,t){let{slots:a}=t;return z(()=>{var d;return i("li",{"aria-hidden":"true",class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=a==null?void 0:a.default)==null?void 0:d.call(a))??e.divider])}),{}}}),At=G({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...j(),...tt(),...X({tag:"li"})},"VBreadcrumbsItem"),_e=U()({name:"VBreadcrumbsItem",props:At(),setup(e,t){let{slots:a,attrs:d}=t;const s=Ze(e,d),r=Q(()=>{var b;return e.active||((b=s.isActive)==null?void 0:b.value)}),o=Q(()=>r.value?e.activeColor:e.color),{textColorClasses:l,textColorStyles:p}=et(o);return z(()=>i(e.tag,{class:["v-breadcrumbs-item",{"v-breadcrumbs-item--active":r.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:r.value&&e.activeClass},l.value,e.class],style:[p.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var b,S;return[s.isLink.value?i("a",V({class:"v-breadcrumbs-item--link",onClick:s.navigate},s.linkProps),[((S=a.default)==null?void 0:S.call(a))??e.title]):((b=a.default)==null?void 0:b.call(a))??e.title]}})),{}}}),Rt=G({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Se,items:{type:Array,default:()=>[]},...j(),...it(),...st(),...X({tag:"ul"})},"VBreadcrumbs"),Ht=U()({name:"VBreadcrumbs",props:Rt(),setup(e,t){let{slots:a}=t;const{backgroundColorClasses:d,backgroundColorStyles:s}=rt(N(e,"bgColor")),{densityClasses:r}=at(e),{roundedClasses:o}=ot(e);we({VBreadcrumbsDivider:{divider:N(e,"divider")},VBreadcrumbsItem:{activeClass:N(e,"activeClass"),activeColor:N(e,"activeColor"),color:N(e,"color"),disabled:N(e,"disabled")}});const l=Q(()=>e.items.map(p=>typeof p=="string"?{item:{title:p},raw:p}:{item:p,raw:p}));return z(()=>{const p=!!(a.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,o.value,e.class],style:[s.value,e.style]},{default:()=>{var b;return[p&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[a.prepend?i(nt,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},a.prepend):i(F,{key:"prepend-icon",start:!0,icon:e.icon},null)]),l.value.map((S,k,Z)=>{var ee;let{item:I,raw:ye}=S;return i($,null,[((ee=a.item)==null?void 0:ee.call(a,{item:I,index:k}))??i(_e,V({key:k,disabled:k>=Z.length-1},typeof I=="string"?{title:I}:I),{default:a.title?()=>{var A;return(A=a.title)==null?void 0:A.call(a,{item:I,index:k})}:void 0}),k<Z.length-1&&i(It,null,{default:a.divider?()=>{var A;return(A=a.divider)==null?void 0:A.call(a,{item:ye,index:k})}:void 0})])}),(b=a.default)==null?void 0:b.call(a)]}})}),{}}}),qt={f:Me,r:de,p:xe,i:ke,s:Te},Et={name:"BrowserBreadcrumbs",computed:{...C(h,["groupNames"]),..._(Ce,["timestamp"]),..._(h,{breadcrumbs(e){const t=[],a=e.settings.breadcrumbs.slice(0,-1);if(!a)return t;let d="";for(const s of a){const r=this.getTo(s,d),o=s.name||"",l=s.group,p=this.getIcon(s.pks,o,l);let b;s.group==="r"?b="Top":(b=s.pks==0?"All ":"",b+=this.groupNames[l]);const k={to:r,text:o,icon:p,tooltip:{text:b,openDelay:1500}};t.push(k),d=s.pks}return t}})},methods:{getTo(e,t){const a=Be(e);delete a.name;const d={name:"browser",params:a};return d.query={ts:this.timestamp},t&&(d.hash=`#card-${t}`),d},getIcon(e,t,a){let d;return"rfa".includes(a)&&e==="0"?d=de:t?d="":d=qt[a],d}}},Lt=["innerHTML"];function Ut(e,t,a,d,s,r){return n(),u(Ht,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:m(({item:o})=>[D((n(),u(_e,{to:o.to},{default:m(()=>[o.icon?(n(),u(F,{key:0},{default:m(()=>[B(w(o.icon),1)]),_:2},1024)):(n(),v("span",{key:1,innerHTML:o.text},null,8,Lt))]),_:2},1032,["to"])),[[H,o.tooltip]])]),_:1},8,["items"])}const Gt=f(Et,[["render",Ut],["__scopeId","data-v-1bfcd31e"]]),zt={name:"BrowserHeader",components:{Breadcrumbs:Gt}};function jt(e,t,a,d,s,r){const o=c("Breadcrumbs");return n(),u(K,{id:"breadcrumbsToolbar",height:24,flat:"",class:"titleToolbar"},{default:m(()=>[i(o)]),_:1})}const Yt=f(zt,[["render",jt],["__scopeId","data-v-30af6513"]]),Kt={name:"BrowserHeader",data(){return{mdiReload:le}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{..._(h,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...C(M,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:a,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?L(a):a;if(r&&t.push(r),d){const o=`of ${d}`;t.push(o)}e=t.join(" ")}else e="(Empty)";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function Qt(e,t,a,d,s,r){return n(),u(K,{id:"browserToolbarTitle",height:24,"extension-height":24},ce({default:m(()=>[i(se,{id:"browserTitle",class:"browserTitle"},{default:m(()=>[B(w(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:m(()=>[i(se,{id:"browserSubtitle",class:"browserTitle"},{default:m(()=>[B(w(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Wt=f(Kt,[["render",Qt],["__scopeId","data-v-919fc0ff"]]),Xt=10,Jt={name:"BrowserSearchCombobox",data(){return{mdiMagnify:Y,menu:!1,query:"",items:[""]}},computed:{..._(h,{stateQ:e=>e.settings.q,searchError:e=>e.page.searchError})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...T(h,["setSettings","startSearchHideTimeout","clearSearchHideTimeout"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,Xt)},doSearch(e=!1){this.menu=!1;const a={q:this.query?this.query.trim():""};e&&(a.orderBy="sort_name",a.orderReverse=!1,this.doBlur()),this.setSettings(a)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function Zt(e,t,a,d,s,r){return n(),u(ht,{id:"searchbox",ref:"searchbox",modelValue:s.query,"onUpdate:modelValue":t[0]||(t[0]=o=>s.query=o),menu:s.menu,"onUpdate:menu":t[1]||(t[1]=o=>s.menu=o),items:s.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","error-messages":e.searchError,"full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":s.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=o=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[te(r.doSearch,["enter"]),te(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","error-messages","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const er=f(Jt,[["render",Zt]]),tr=[["characters","String","category"],["community_rating","Decimal","communityrating"],["contributor","String","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","filetype, type"],["genres","String","genre"],["identifiers","String","id, nss"],["identifier_types","String","id_type, idtype, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","String","location"],["maturity_rating","String"],["monochrome","Boolean","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","filename, folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","String","seriesgroups"],["size","Integer"],["stories","String","story"],["story_arcs","String","storyarcs"],["summary","String","comments, description"],["tags","String","tag"],["tagger","String"],["teams","String","team"],["updated_at","DateTime","updated"],["volume","String"],["web","String"],["year","Integer"]],rr={name:"SearchHelpText",data(){return{FIELD_ROWS:tr}}},ar={id:"browserSearchTextContainer"},or={id:"browserSearchText"},sr={id:"fieldTableContainer"},ir={class:"aliasCol"};function nr(e,t,a,d,s,r){return n(),v("div",ar,[g("div",or,[t[2]||(t[2]=g("h1",null,"Search Help",-1)),g("div",sr,[t[1]||(t[1]=g("h2",null,"Search Fields",-1)),i(pt,{id:"fieldTable",class:"highlight-table"},{default:m(()=>[t[0]||(t[0]=g("thead",null,[g("tr",null,[g("th",null,"Field"),g("th",null,"Type"),g("th",null,"Aliases")])],-1)),g("tbody",null,[(n(!0),v($,null,O(s.FIELD_ROWS,o=>(n(),v("tr",{key:o[0]},[g("td",null,w(o[0]),1),g("td",null,w(o[1]),1),g("td",ir,w(o[2]||""),1)]))),128))])]),_:1})]),t[3]||(t[3]=Fe('<div id="textContainer" data-v-8d3dbd81><h2 data-v-8d3dbd81>Search Syntax</h2><p data-v-8d3dbd81> Codex allows two different kinds of searching from the search bar. Full Text Search and Field Search. For full text search just enter some terms in the search bar. They will be added to the filters selected with the &quot;filter by&quot; menu. </p><p data-v-8d3dbd81>Searching in Codex is always case insensitive.</p><h2 data-v-8d3dbd81>Full Text Search</h2><p data-v-8d3dbd81> Full text search searches all the metadata of a comic as one document. </p><h3 data-v-8d3dbd81>Boolean Operators</h3><p data-v-8d3dbd81> Codex allows the <code data-v-8d3dbd81>AND</code>, <code data-v-8d3dbd81>OR</code>, and <code data-v-8d3dbd81>NOT</code> operators between search terms. By default terms are concatenated with the <code data-v-8d3dbd81>AND</code> operator. For instance: <code data-v-8d3dbd81> frodo sam galadriel </code> is the same as <code data-v-8d3dbd81>frodo AND sam AND galadriel</code>. <code data-v-8d3dbd81> frodo OR pippin NOT merry</code> searches for comics with metadata that reference Frodo or Pippin but not Merry. Parenthesis may be used to group boolean operators. </p><h3 data-v-8d3dbd81>Prefix Operators</h3><p data-v-8d3dbd81> search tokens suffixed with a <code data-v-8d3dbd81>*</code> will look for text with the given prefix. For example <code data-v-8d3dbd81>tev*</code> should match if the string &quot;Tevildo&quot; occurs anywhere in the comic metadata. </p><h2 data-v-8d3dbd81>Field Search Syntax</h2><p data-v-8d3dbd81> Similar to Codex&#39;s Filter menu, you may query individual comic metadata fields in the database but for more fields and with more powerful operators than the exact match offered by the Filter menu. A field search looks like: <code data-v-8d3dbd81>field:expression</code>. </p><h3 data-v-8d3dbd81>Simple Values as the Expression</h3><p data-v-8d3dbd81> Simple values entered for the expression match exactly for numeric, datetime and boolean fields. However for text fields the field is searched for any match of the entered value. </p><p data-v-8d3dbd81> The Prefix notiation for full text search tokens may also be used here. <code data-v-8d3dbd81>characters:saur*</code> will match comics that feature &quot;Sauron&quot; and &quot;Sauruman&quot;. </p><h3 data-v-8d3dbd81>Field Search Boolean Expressions</h3><p data-v-8d3dbd81> Boolean operators may also used in and around field search if the expression is contained in parenthesis. <code data-v-8d3dbd81>characters:(aragorn or boromir)</code> will work. <code data-v-8d3dbd81>characters:(not aragorn)</code> will behave similarly to <code data-v-8d3dbd81>not characters:aragorn</code></p><h3 data-v-8d3dbd81>Leading Operators</h3><p data-v-8d3dbd81> Field Search has it&#39;s own operators that offer more powerful queries. For text, numeric, boolean and datetime fields may be applied at the beginning of the expression <code data-v-8d3dbd81>&gt;</code>,<code data-v-8d3dbd81>&gt;=</code>,<code data-v-8d3dbd81>&lt;</code>,<code data-v-8d3dbd81>&lt;=</code>. And the range syntax <code data-v-8d3dbd81>..</code> accepts two values. For instance: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>pages:&gt;30</code></td><td data-v-8d3dbd81>comics with more than 30 pages</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>author:!frodo</code></td><td data-v-8d3dbd81>comics not written by Frodo</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>year:1066..1215</code></td><td data-v-8d3dbd81>comics published between the year 1066 and 1215.</td></tr></tbody></table><h3 data-v-8d3dbd81>Text Operators</h3><p data-v-8d3dbd81> Field search on text fields may be narrowed using the <code data-v-8d3dbd81>*</code> operator: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:Ar*</code></td><td data-v-8d3dbd81> characters that start with &quot;Ar&quot;, like &quot;Aragorn&quot; and &quot;Arwen&quot; </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:*orn</code></td><td data-v-8d3dbd81> characters that end with &quot;orn&quot;, like &quot;Aragorn&quot; and &quot;Arathorn&quot;. This type of search can be slow </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>series:sil*ion</code></td><td data-v-8d3dbd81> series such as Silmarillion. This type of search can be slow. </td></tr></tbody></table><p data-v-8d3dbd81> The last two examples of text search above looking for suffixes and doing wildcard searches with the <code data-v-8d3dbd81>*</code> in the middle of the word will perform much worse than bare word or prefix searches because they are unable to use the full text search index and will scan the database in a less efficient manner. </p><h3 data-v-8d3dbd81>Dates and DateTimes</h3><p data-v-8d3dbd81> Codex parses Dates and DateTime values liberally. Many quoted english phrases also work. Such as relative dates like &#39;1 min ago&#39;, &#39;2 weeks ago&#39;, &#39;3 months, 1 week and 1 day ago&#39;, &#39;in 2 days&#39;, &#39;tomorrow&#39;. Dates with timezones and named months such as &#39;August 14, 2015 EST&#39;, &#39;July 4, 2013 PST&#39;, &#39;21 July 2013 10:15 pm +0500&#39;. Examples: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>created_at:&quot;3 days ago&quot;..&quot;today&quot;</code></td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>date:&quot;&lt;3 years ago&quot;</code></td></tr></tbody></table><p data-v-8d3dbd81> Placing a leading operator outside the quotes for a date phrase will not be parsed correctly. If the format you try fails, the <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD</code> and <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD-HH:mm:SS</code> formats are reliable. </p><h3 data-v-8d3dbd81>Single Quote complex field Queries</h3><p data-v-8d3dbd81> Use quotes to tell Codex that a complex or natural language phrase should be applied to a specific field </p><code data-v-8d3dbd81> created:&#39;this year&#39; </code><h3 data-v-8d3dbd81>Size Byte Multipliers</h3><p data-v-8d3dbd81> The size field can make use of convenient byte multiplier suffixes like <code data-v-8d3dbd81>kb</code> and <code data-v-8d3dbd81>mb</code> as well as binary suffixes like <code data-v-8d3dbd81>gib</code> and <code data-v-8d3dbd81>tib</code>. For instance <code data-v-8d3dbd81>size:&gt;10mb</code></p><h2 data-v-8d3dbd81>Limitations</h2><p data-v-8d3dbd81> Field searches that use leading operators or text wildcard operators that are prefixed with the <code data-v-8d3dbd81>OR</code> operator like <code data-v-8d3dbd81>OR year:&gt;2020</code> will disregard the <code data-v-8d3dbd81>OR</code> operator and treat it like <code data-v-8d3dbd81>AND</code>. </p></div>',1))])])}const dr=f(rr,[["render",nr],["__scopeId","data-v-8d3dbd81"]]),lr={name:"SearchHelp",components:{SearchHelpText:dr},data(){return{mdiOpenInNew:ue,mdiLifebuoy:Ve}},computed:{..._(h,{isSearchHelpOpenState:e=>e.isSearchHelpOpen}),isSearchHelpOpen:{get(){return this.isSearchHelpOpenState},set(e){this.setSearchHelpOpen(e)}},buttonDensity(){return this.$vuetify.display.smAndDown?"compact":"comfortable"}},methods:{...T(h,["setSearchHelpOpen"])}},cr={id:"searchHelp"};function ur(e,t,a,d,s,r){const o=c("SearchHelpText");return n(),u(bt,{modelValue:r.isSearchHelpOpen,"onUpdate:modelValue":t[0]||(t[0]=l=>r.isSearchHelpOpen=l),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:m(({props:l})=>[i(fe,V(l,{icon:s.mdiLifebuoy,title:"Search Help",density:r.buttonDensity}),null,16,["icon","density"])]),default:m(()=>[g("div",cr,[i(o)])]),_:1},8,["modelValue"])}const mr=f(lr,[["render",ur],["__scopeId","data-v-292e00bb"]]),hr={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:er,SearchHelp:mr},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,toolbarHeight:e=>64+12*!!e.page.searchError})}};function pr(e,t,a,d,s,r){const o=c("BrowserSearchCombobox"),l=c("SearchHelp");return n(),u(ft,null,{default:m(()=>[e.isSearchOpen?(n(),u(K,{key:0,density:"compact",height:e.toolbarHeight},{default:m(()=>[i(W,{id:"searchToolbarItems"},{default:m(()=>[i(o),i(l)]),_:1})]),_:1},8,["height"])):y("",!0)]),_:1})}const br=f(hr,[["render",pr],["__scopeId","data-v-64bebade"]]),fr={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:pe,mdiCloseCircleOutline:he,query:""}},computed:{..._(h,{choices(e){return e.choices.dynamic[this.name]},readingDirectionTitles:e=>e.choices.static.readingDirection,identifierTypeTitles:e=>e.choices.static.identifierType,filter(e){return e.settings.filters[this.name]}}),...me(h,["filterMode"]),hasNone(){for(const e of this.choices)if(ie.has(e)||e instanceof Object&&ie.has(e.pk))return!0;return!1},vuetifyItems(){return yt(this.choices,this.query)},title(){return De(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?$e:Ne},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...T(h,["clearOneFilter","identifierTypeTitle","loadAvailableFilterChoices","loadFilterChoices"]),setUIFilterMode(e){this.filterMode=e,this.query="",e!=="base"&&typeof this.choices!="object"&&this.loadFilterChoices(e)},selected(e){const t={filters:{[this.name]:e}};this.$emit("selected",t)},itemTitle:function(e){return this.name==="readingDirection"?this.readingDirectionTitles[e.value]:this.name==="identifierType"?this.identifierTypeTitle(e.title):e.title},async _loadSubAvailableFilterChoices(){return this.loadAvailableFilterChoices().then(()=>this.loadFilterChoices(this.name))},onClear(){return this.clearOneFilter(this.name).then(()=>this._loadSubAvailableFilterChoices())}}},gr={key:0},_r={class:"filterHeader"};function vr(e,t,a,d,s,r){return n(),v("div",null,[i(gt,{"hide-on-leave":""},{default:m(()=>[e.filterMode==="base"?(n(),u(x,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=o=>r.setUIFilterMode(a.name))},null,8,["title","append-icon"])):y("",!0)]),_:1}),i(_t,{"hide-on-leave":""},{default:m(()=>[e.filterMode===a.name?(n(),v("div",gr,[g("header",_r,[i(x,{class:"filterHeaderTitle","prepend-icon":s.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=o=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(n(),u(x,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0),typeof e.choices=="object"?(n(),u(vt,{key:1,modelValue:s.query,"onUpdate:modelValue":t[2]||(t[2]=o=>s.query=o),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=o=>e.filterMode=a.name)},null,8,["modelValue"])):(n(),u(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(n(),u(ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:m(()=>[r.hasNone?(n(),u(x,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):y("",!0),(n(!0),v($,null,O(r.vuetifyItems,o=>(n(),u(x,{key:o.value,title:r.itemTitle(o),value:o.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):y("",!0)])):y("",!0)]),_:1})])}const yr=f(fr,[["render",vr],["__scopeId","data-v-8436c381"]]),wr={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:yr,ToolbarSelect:P},extends:P,data(){return{mdiCloseCircleOutline:he,mdiFilterMultipleOutline:Pe,menu:!1}},computed:{...C(h,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),..._(h,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,filterMenuClass:function(e){let t="filterMenu";return e.filterMode!=="base"&&(t+="Hidden"),t},dynamicChoiceNames:function(e){if(e.choices.dynamic===void 0)return;const t=[];for(const[a,d]of Object.entries(e.choices.dynamic))d&&t.push(a);return t}}),...me(h,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},methods:{...T(h,["clearFilters","loadAvailableFilterChoices","setSettings"]),onUpdateModelValue(e){const t={filters:{bookmark:e}};this.onSubMenuSelected(t)},onSubMenuSelected(e){this.menu=!1,this.setSettings(e),this.filterMode="base"},onClear(){return this.clearFilters().then(()=>this.loadAvailableFilterChoices()).catch(()=>{console.error("clear filters")})},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},Sr={class:"codexSelection"};function Br(e,t,a,d,s,r){const o=c("BrowserFilterSubMenu"),l=c("ToolbarSelect");return n(),u(l,{menu:s.menu,"onUpdate:menu":[t[0]||(t[0]=p=>s.menu=p),r.onMenu],class:E(["filterBySelect",{filterBySelectXSmall:r.padRight}]),"select-label":"filter by",items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen-1,"onUpdate:modelValue":r.onUpdateModelValue},{selection:m(({item:p})=>[g("span",Sr,w(p.title),1),e.isDynamicFiltersSelected?(n(),u(F,{key:0,class:"filterSuffix",size:"x-small"},{default:m(()=>[B(w(s.mdiFilterMultipleOutline),1)]),_:1})):y("",!0)]),"prepend-item":m(()=>[e.isFiltersClearable?(n(),u(x,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0)]),"append-item":m(()=>[i(q),e.dynamicChoiceNames===void 0?(n(),u(x,{key:0,density:"compact",variant:"plain"},{default:m(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(n(!0),v($,{key:1},O(e.dynamicChoiceNames,p=>(n(),u(o,{key:p,name:p,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(n(),u(x,{key:2,class:"noChoices",density:"compact",variant:"plain",title:"No filters available"}))]),_:1},8,["menu","class","items","menu-props","model-value","max-select-len","onUpdate:modelValue","onUpdate:menu"])}const Cr=f(wr,[["render",Br],["__scopeId","data-v-83a4ac5d"]]),Tr=new Set(["bookmark_updated_at","child_count","community_rating","created_at","critical_rating","page_count","search_score","size","updated_at"]),kr={name:"BrowseOrderBySelect",components:{ToolbarSelect:P},extends:P,computed:{...C(h,["orderByChoices","orderByChoicesMaxLen"]),..._(h,{orderBySetting:e=>e.settings.orderBy}),orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:Tr.has(e)};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function xr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,V({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=l=>r.orderBy=l),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-4},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Mr=f(kr,[["render",xr]]),Fr={name:"ToolbarButton",components:{ScaleButton:Nt}};function Vr(e,t,a,d,s,r){const o=c("ScaleButton");return n(),u(o,{variant:"plain",class:"toolbarButton"},ce({_:2},[O(e.$slots,(l,p)=>({name:p,fn:m(b=>[Oe(e.$slots,p,V({props:l},b))])}))]),1024)}const ve=f(Fr,[["render",Vr]]),$r={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiSortVariant:Ie}},computed:{..._(h,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...T(h,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Nr(e,t,a,d,s,r){const o=c("ToolbarButton");return n(),u(o,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:m(()=>[i(F,{class:E(r.iconClasses)},{default:m(()=>[B(w(s.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const Dr=f($r,[["render",Nr],["__scopeId","data-v-42884e89"]]),Pr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiMagnify:Y}},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...T(h,["setIsSearchOpen"])}};function Or(e,t,a,d,s,r){const o=c("ToolbarButton");return e.isSearchOpen?y("",!0):(n(),u(o,V({key:0,class:"searchButton",icon:s.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=l=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const Ir=f(Pr,[["render",Or]]),Ar=new Set(["a","f"]),Rr={name:"BrowserTopGroupSelect",components:{ToolbarSelect:P},extends:P,data(){return{DIVIDED_VALUES:Ar}},computed:{..._(h,{topGroupSetting:e=>e.settings.topGroup}),...C(h,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function Hr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=l=>r.topGroup=l),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:m(({item:l,props:p})=>[s.DIVIDED_VALUES.has(l.value)?(n(),u(q,{key:0})):y("",!0),i(x,V(p,{density:"compact",variant:"plain",title:l.title,value:l.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const qr=f(Rr,[["render",Hr]]),Er={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Cr,BrowserSearchButton:Ir,BrowserTopGroupSelect:qr,BrowserOrderBySelect:Mr,BrowserOrderReverseButton:Dr,SettingsDrawerButton:Dt},data(){return{mdiMagnify:Y,mdiFamilyTree:Ae,browseMode:"filter"}}};function Lr(e,t,a,d,s,r){const o=c("BrowserTopGroupSelect"),l=c("BrowserFilterBySelect"),p=c("BrowserOrderBySelect"),b=c("BrowserOrderReverseButton"),S=c("BrowserSearchButton"),k=c("SettingsDrawerButton");return n(),u(K,{id:"browserToolbarTop",flat:"",density:"compact",height:48},{default:m(()=>[i(W,{id:"browserToolbarLeftItems"},{default:m(()=>[i(o),i(l),i(p),i(b),i(S)]),_:1}),i(wt),i(W,null,{default:m(()=>[i(k)]),_:1})]),_:1})}const Ur=f(Er,[["render",Lr],["__scopeId","data-v-2e9e7881"]]),Gr={name:"BrowserHeader",components:{AppBanner:Qe,BrowserBreadcrumbsToolbar:Yt,BrowserSearchToolbar:br,BrowserTopToolbar:Ur,BrowserTitleToolbar:Wt}},zr={id:"codexHeadToolbarWrapper"};function jr(e,t,a,d,s,r){const o=c("AppBanner"),l=c("BrowserTopToolbar"),p=c("BrowserSearchToolbar"),b=c("BrowserBreadcrumbsToolbar"),S=c("BrowserTitleToolbar");return n(),v("header",zr,[i(o),i(l,{class:"codexHeadToolbar"}),i(p,{class:"codexHeadToolbar"}),i(b,{class:"codexHeadToolbar"}),i(S,{class:"codexHeadToolbar"})])}const Yr=f(Gr,[["render",jr],["__scopeId","data-v-176aeb57"]]),Kr="rpisv",Qr={name:"BrowserSettingsPanel",data(){return{mdiReload:le,openDelay:2e3}},computed:{...C(M,["isAuthorized"]),..._(M,{isUserAuthorized:e=>!!e.user}),..._(h,{groupChoices:e=>{var t,a;return((a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.settingsGroup)||{}},showSettings:e=>{var t;return((t=e.settings)==null?void 0:t.show)||{}},twentyFourHourTime:e=>{var t;return((t=e.settings)==null?void 0:t.twentyFourHourTime)||!1},twentyFourHourTimeTitle:e=>{var t,a,d;return((d=(a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.twentyFourHourTime)==null?void 0:d.title)||""},dynamicCovers:e=>{var t;return((t=e.settings)==null?void 0:t.dynamicCovers)||!1},customCovers:e=>{var t;return((t=e.settings)==null?void 0:t.customCovers)||!1},alwaysShowFilename:e=>{var t;return((t=e.settings)==null?void 0:t.alwaysShowFilename)||!1}}),showShowSettings(){var e,t;return Kr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...T(h,["setSettings"]),setShow(e,t){const a={show:{[e]:t===!0}};this.setSettings(a)},setSetting(e,t){const a={[e]:t===!0};this.setSettings(a)}}},Wr={key:0,class:"browserSettingsBlock"},Xr={class:"browserSettingsBlock"};function Jr(e,t,a,d,s,r){return n(),v($,null,[r.showShowSettings?D((n(),v("div",Wr,[t[4]||(t[4]=g("h4",{class:"browserSettingsHeader"},"Show Group Levels",-1)),(n(!0),v($,null,O(e.groupChoices,o=>(n(),u(R,{key:o.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[o.value],"true-value":!0,label:`Show ${o.title}`,"onUpdate:modelValue":l=>r.setShow(o.value,l)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[H,{openDelay:s.openDelay,text:"Show these groups when navigating the browse tree"}]]):y("",!0),i(q),g("div",Xr,[t[5]||(t[5]=g("h4",{class:"browserSettingsHeader"},"Covers",-1)),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=o=>r.setSetting("dynamicCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Choose covers by filters, search, and order"}]]),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=o=>r.setSetting("customCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(q),D(i(R,{class:"browserGroupCheckbox",density:"compact",label:"Always Show Filenames","hide-details":"auto","model-value":!!e.alwaysShowFilename,"onUpdate:modelValue":t[2]||(t[2]=o=>r.setSetting("alwaysShowFilename",o))},null,8,["model-value"]),[[H,{openDelay:1e3,text:"Always show filenames on the browser cards"}]]),i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[3]||(t[3]=o=>r.setSetting("twentyFourHourTime",o))},null,8,["model-value"]),i(q)],64)}const Zr=f(Qr,[["render",Jr],["__scopeId","data-v-a7b78530"]]),ea={name:"BrowserSettingsDrawer",components:{SettingsDrawer:Pt,BrowserSettingsPanel:Zr}};function ta(e,t,a,d,s,r){const o=c("BrowserSettingsPanel"),l=c("SettingsDrawer");return n(),u(l,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:m(()=>[i(o)]),_:1})}const ra=f(ea,[["render",ta]]),aa={name:"BrowserContainerMenu",components:{DownloadButton:Bt,MarkReadButton:St},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:He,showMenu:!1}},computed:{_groupName(){var t,a,d,s,r;return[(t=this.item)==null?void 0:t.publisherName,(a=this.item)==null?void 0:a.imprintName,(d=this.item)==null?void 0:d.seriesName,L((s=this.item)==null?void 0:s.volumeName),Re(this.item,3),(r=this.item)==null?void 0:r.name].filter(Boolean).join(" ")},downloadName(){var e;return((e=this.item)==null?void 0:e.fileName)||this._groupName},downloadItem(){return{...this.item,name:this.downloadName}}}};function oa(e,t,a,d,s,r){const o=c("MarkReadButton"),l=c("DownloadButton");return n(),u($t,{modelValue:s.showMenu,"onUpdate:modelValue":t[1]||(t[1]=p=>s.showMenu=p),"offset-y":"",top:""},{activator:m(({props:p})=>[i(fe,V({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:s.mdiDotsVertical,title:"Action Menu",variant:"text"},p,{onClick:t[0]||(t[0]=qe(()=>{},["prevent"]))}),null,16,["icon"])]),default:m(()=>[i(ge,{class:"background-soft-highlight"},{default:m(()=>[i(o,{class:"listItem",button:!1,item:a.item},null,8,["item"]),i(l,{class:"listItem",button:!1,item:r.downloadItem},null,8,["item"])]),_:1})]),_:1},8,["modelValue"])}const sa=f(aa,[["render",oa],["__scopeId","data-v-f9b20c54"]]),ia={name:"BrowserCardControls",components:{BrowserCardMenu:sa,MetadataButton:Ct},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:ae}},computed:{eyeIcon:function(){return this.eyeOpen?re:ae}}},na={class:"cardControls"};function da(e,t,a,d,s,r){const o=c("MetadataButton"),l=c("BrowserCardMenu");return n(),v("div",na,[a.item.group==="c"?(n(),u(F,{key:0,class:"eye"},{default:m(()=>[B(w(r.eyeIcon),1)]),_:1})):y("",!0),i(o,{group:a.item.group,book:a.item,children:a.item.childCount},null,8,["group","book","children"]),i(l,{item:a.item},null,8,["item"])])}const la=f(ia,[["render",da],["__scopeId","data-v-6f2c700a"]]),ca=new Set(["community_rating","critical_rating"]),ua=new Set(["date"]),ma=new Set(["bookmark_updated_at","created_at","updated_at"]),ha=new Set([null,void 0,"sort_name"]),pa=new Set([null,void 0]),ba={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(ha.has(this.orderBy)||this.orderBy==="filename"&&this.item.group!=="c"||this.orderBy==="story_arc_number"&&this.item.group==="a"||pa.has(e))e="";else if(ua.has(this.orderBy)){const t=new Date(e);e=Ee.format(t)}else this.orderBy=="search_score"?e=this.format_search_score(e):ma.has(this.orderBy)?e=Le(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=Tt(Number.parseInt(e,10)):ca.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}},methods:{format_search_score(e){return e=oe.format(Math.round(Number.parseFloat(e)*10)),Number.isNaN(e)&&(e=""),e}}},fa=["innerHTML"];function ga(e,t,a,d,s,r){return r.orderValue?(n(),v("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,fa)):y("",!0)}const _a=f(ba,[["render",ga],["__scopeId","data-v-892ed807"]]),va={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderByFilename:e=>e.settings.orderBy==="filename",orderByName:e=>e.settings.orderBy==="sort_name",topGroup:e=>e.settings.topGroup,showSeries:e=>e.settings.show.s,showVolume:e=>e.settings.show.v,zeroPad:e=>e.page.zeroPad,alwaysShowFilename:e=>e.settings.alwaysShowFilename}),seriesName(){return(this.topGroup==="a"||this.orderByName&&!this.showSeries)&&["c","v"].includes(this.item.group)&&this.item.seriesName?this.item.seriesName:!1},volumeName(){return(this.topGroup==="a"||this.orderByName&&!this.showVolume)&&this.item.group==="c"&&this.item.volumeName?L(this.item.volumeName):!1},headerName(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?Ue(this.item,this.zeroPad):Ge(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName(){return this.item.group==="v"?L(this.item.name):this.item.name},fileName(){return!this.orderByFilename&&(this.alwaysShowFilename||this.topGroup==="f")?this.item.fileName:""},linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ya={class:"browserLink cardSubtitle text-caption"},wa={key:0,class:"fileName"},Sa={key:1,class:"seriesCaption"},Ba={key:2,class:"volumeCaption"},Ca={key:3,class:"headerName"},Ta={class:"displayName"};function ka(e,t,a,d,s,r){return n(),v("div",ya,[r.fileName?(n(),v("div",wa,w(r.fileName),1)):y("",!0),r.seriesName?(n(),v("div",Sa,w(r.seriesName),1)):y("",!0),r.volumeName?(n(),v("div",Ba,w(r.volumeName),1)):y("",!0),r.headerName?(n(),v("div",Ca,w(r.headerName),1)):y("",!0),g("div",Ta,w(r.displayName),1)])}const xa=f(va,[["render",ka],["__scopeId","data-v-e127b46d"]]),Ma=G({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...j(),...ut(),...X(),...ct({transition:"fade-transition"})},"VLazy"),Fa=U()({name:"VLazy",directives:{intersect:dt},props:Ma(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const{dimensionStyles:d}=lt(e),s=ze(e,"modelValue");function r(o){s.value||(s.value=o)}return z(()=>D(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[s.value&&i(mt,{transition:e.transition,appear:!0},{default:()=>{var o;return[(o=a.default)==null?void 0:o.call(a)]}})]}),[[je("intersect"),{handler:r,options:e.options},null]])),{}}}),ne=100,Va=-170,$a={name:"BrowserCard",components:{BookCover:kt,BrowserCardControls:la,BrowserCardSubtitle:xa,OrderByCaption:_a},props:{item:{type:Object,required:!0}},computed:{..._(h,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.name,e},ids(){return this.item.ids.join(",")},browserRoute(){return{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}},toRoute(){return this.item.group==="c"?xt(this.item,this.importMetadata):this.browserRoute},progressBGOpacity(){return this.item.progress?.1:0}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.ids))return;const e=this.$el;if(!e){console.warn("No element found to scroll to!");return}setTimeout(function(){e.scrollIntoView(),setTimeout(function(){window.scrollBy(0,Va)},ne)},ne)}}},Na={class:"browserCardCoverWrapper"},Da={class:"browserCardTop"},Pa={class:"cardFooter"};function Oa(e,t,a,d,s,r){const o=c("BookCover"),l=c("BrowserCardControls"),p=c("router-link"),b=c("BrowserCardSubtitle"),S=c("OrderByCaption");return n(),u(Fa,{id:`card-${r.ids}`,transition:"scale-transition"},{default:m(()=>[g("div",Na,[g("div",Da,[i(o,{group:a.item.group,pks:a.item.ids,mtime:a.item.mtime,"child-count":a.item.childCount,finished:a.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(p,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:m(()=>[i(l,{item:a.item,"eye-open":!!r.toRoute},null,8,["item","eye-open"])]),_:1},8,["to","aria-label"])]),i(J,{class:"bookCoverProgress","bg-opacity":r.progressBGOpacity,"model-value":a.item.progress,"aria-label":`${a.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),g("footer",Pa,[i(b,{item:a.item},null,8,["item"]),i(S,{item:a.item},null,8,["item"])])])]),_:1},8,["id"])}const Ia=f($a,[["render",Oa],["__scopeId","data-v-fdbf59ae"]]),Aa={name:"BrowserEmptyResults",components:{EmptyState:We},data(){return{mdiOpenInNew:ue}},computed:{...C(M,["isAuthorized","isUserAdmin"]),..._(M,{registration:e=>e.adminFlags.registration}),...C(h,["isFiltersClearable"]),..._(h,{librariesExist:e=>e.page.librariesExist}),empty(){let e={};return this.librariesExist?(e.headline="No Comics Found",e.title="For these filter and search settings",e.icon=Ye):(e.headline="No Libraries Exist",this.isUserAdmin?e.title="Use the top right ☰ menu to navigate to the admin panel and add a comic library":this.isAuthorized?e.title="An administrator must add some comics libraries":e.title="Use the top right ☰ menu to log in as an administrator to add libraries",e.icon=Ke),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...T(h,["clearFilters"])}},Ra={key:0},Ha={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function qa(e,t,a,d,s,r){const o=c("EmptyState");return n(),u(o,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=l=>e.clearFilters(!0))},{default:m(()=>[r.showLinkToReadmeAdmin?(n(),v("div",Ra,[t[2]||(t[2]=B(" See the ")),g("a",Ha,[t[1]||(t[1]=B("README ")),i(F,null,{default:m(()=>[B(w(s.mdiOpenInNew),1)]),_:1})]),t[3]||(t[3]=B(" for help "))])):y("",!0)]),_:1},8,["headline","title","icon","action-text"])}const Ea=f(Aa,[["render",qa]]),La={name:"BrowserMain",components:{BrowserCard:Ia,BrowserEmptyState:Ea,PlaceholderLoading:Xe},computed:{..._(M,{nonUsers:e=>e.adminFlags.nonUsers}),...C(M,["isAuthorized","isBanner"]),...C(h,["isSearchMode"]),..._(h,{librariesExist:e=>e.page.librariesExist,showPlaceHolder(e){return this.nonUsers===void 0||this.isAuthorized&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],numPages:e=>e.page.numPages,query:e=>e.settings.q,isSearchOpen:e=>e.isSearchOpen}),browsePaneClasses(){const e={padFooter:this.numPages>1};let t="browsePane";return this.isSearchOpen&&(t+="Search"),this.isBanner&&(t+="Banner"),e[t]=!0,e},showBrowseItems(){return this.cards&&this.cards.length>0&&this.isAuthorized&&!this.showPlaceHolder},searchLimitMessage(){let e="";if(!this.query)return e;const t=+this.$route.params.page,a=100*t;return this.showPlaceHolder?e+=`Searching for ${a} entries...`:this.numPages>t&&(e+=`Search results truncated to ${a} entries.`,e+=" Advance the page to look for more."),e}}},Ua={key:0,id:"browsePaneContainer"},Ga={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function za(e,t,a,d,s,r){const o=c("BrowserCard"),l=c("PlaceholderLoading"),p=c("BrowserEmptyState");return n(),u(be,{id:"browsePane",class:E(r.browsePaneClasses)},{default:m(()=>[r.showBrowseItems?(n(),v("div",Ua,[(n(!0),v($,null,O(e.cards,b=>(n(),u(o,{key:`${b.group}${b.ids}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(n(),u(l,{key:1,class:"placeholder"})):(n(),u(p,{key:2})),r.searchLimitMessage?(n(),v("div",Ga,w(r.searchLimitMessage),1)):y("",!0)]),_:1},8,["class"])}const ja=f(La,[["render",za],["__scopeId","data-v-b95129f3"]]),Ya={name:"BrowserNavButton",components:{PaginationNavButton:Mt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:pe,mdiMagnify:Y,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...C(h,["isSearchMode"]),..._(h,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return this.page+this.increment},title(){return this.showMore?"Search for More":"Page "+this.toPage},toRoute(){const e=this.toPage;return{params:{...this.routeParams,page:e}}},classes(){return{leftButton:this.back,rightButton:!this.back}},disabled(){return this.back&&this.page<=1||!this.back&&this.page>=this.numPages},showMore(){return this.more&&this.isSearchMode&&this.toPage===this.numPages}},watch:{$route(e){this.params=e.params,this.page=+e.params.page}}};function Ka(e,t,a,d,s,r){const o=c("PaginationNavButton");return n(),u(o,{key:r.toRoute,class:E(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:m(()=>[r.showMore?(n(),u(F,{key:0},{default:m(()=>[B(w(s.mdiMagnify),1)]),_:1})):y("",!0),i(F,{class:E({flipHoriz:!a.back})},{default:m(()=>[B(w(s.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const Qa=f(Ya,[["render",Ka],["__scopeId","data-v-372671b3"]]),Wa={name:"BrowserNavToolbar",components:{BrowserNavButton:Qa,PaginationSlider:Vt,PaginationToolbar:Ft},computed:{..._(h,{numPages:e=>e.page.numPages})},methods:{...T(h,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Xa(e,t,a,d,s,r){const o=c("BrowserNavButton"),l=c("PaginationSlider"),p=c("PaginationToolbar");return e.numPages>1?(n(),u(p,{key:0},{default:m(()=>[i(o,{back:!0}),i(l,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=b=>e.routeToPage(b))},null,8,["model-value","max"]),i(o,{back:!1,more:!0})]),_:1})):y("",!0)}const Ja=f(Wa,[["render",Xa]]),Za={name:"MainBrowser",components:{BrowserHeader:Yr,BrowserMain:ja,BrowserNavToolbar:Ja,BrowserSettingsDrawer:ra,Unauthorized:Je},computed:{..._(M,{user:e=>e.user}),...C(M,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...T(h,["loadBrowserPage","loadSettings","setPageMtime"])}};function eo(e,t,a,d,s,r){const o=c("BrowserHeader"),l=c("BrowserMain"),p=c("BrowserNavToolbar"),b=c("BrowserSettingsDrawer"),S=c("Unauthorized");return e.isAuthorized?(n(),u(be,{key:0,id:"browser"},{default:m(()=>[i(o),i(l),i(p),i(b)]),_:1})):(n(),u(S,{key:1}))}const Bo=f(Za,[["render",eo],["__scopeId","data-v-4577512d"]]);export{Bo as default};
@@ -1 +1 @@
1
- import{g as U,p as G,u as z,a as i,J as j,c as Q,m as V,t as N,d as we,K as Se,F as $,_ as f,C as _,D as C,L as Be,M as h,B as Ce,v as u,w as m,N as de,O as Te,P as ke,Q as xe,R as Me,q as n,S as D,k as v,x as B,z as w,l as c,T as L,E as M,U as le,V as ce,A as T,W as Y,X as te,s as g,Y as Fe,y as O,Z as Ve,$ as ue,G as y,h as me,a0 as $e,a1 as Ne,j as De,a2 as he,a3 as pe,a4 as Pe,n as E,a5 as Oe,a6 as Ie,a7 as Ae,a8 as Re,a9 as He,aa as qe,ab as re,ac as ae,ad as oe,ae as Ee,af as Le,ag as Ue,ah as Ge,b as ze,ai as je,aj as Ye,ak as Ke}from"./main-nb_FhQoD.js";import{V as K,a as se,A as Qe,E as We,P as Xe,c as be,U as Je}from"./unauthorized-C0p00au3.js";import{g as Ze,u as et,d as X,h as tt,c as rt,b as at,i as ot,j as st,e as it,k as F,l as nt,V as fe,n as J,I as dt,o as lt,p as ct,q as ut,M as mt}from"./forwardRefs-Cvn3Vptr.js";import{T as H}from"./index-70Ak1yZF.js";import{V as ht}from"./VCombobox-DpadV2-4.js";import{V as pt}from"./VTable-DWCA1lvG.js";import{V as bt,a as x}from"./VDialog-BR4MrJeK.js";import{V as ft,a as gt,b as _t,c as vt}from"./VSelectionControl-CRVWANOr.js";import{V as W,t as yt,N as ie,T as P,a as wt,M as St,D as Bt,b as Ct,p as Tt,B as kt,g as xt,P as Mt,c as Ft,d as Vt}from"./pagination-toolbar-2endB3w1.js";import{V as ge,a as $t}from"./VSelect-Bi5KABMc.js";import{a as q}from"./VDivider-CGYMLgJf.js";import{b as Nt,S as Dt,a as Pt}from"./settings-drawer-DBftv9u0.js";import{V as R}from"./VCheckbox-t1haz9-P.js";import"./change-password-dialog-Bw5_buVm.js";import"./VForm-ZManiwIB.js";import"./admin-Bxwc8451.js";import"./ssrBoot-B6yWBylJ.js";import"./filter-D2ELuNq3.js";import"./VCheckboxBtn-1PexCc2F.js";import"./confirm-dialog-CDmsC-9_.js";import"./copy-to-clipboard-DoUvDJVx.js";const Ot=G({divider:[Number,String],...j()},"VBreadcrumbsDivider"),It=U()({name:"VBreadcrumbsDivider",props:Ot(),setup(e,t){let{slots:a}=t;return z(()=>{var d;return i("li",{"aria-hidden":"true",class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=a==null?void 0:a.default)==null?void 0:d.call(a))??e.divider])}),{}}}),At=G({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...j(),...tt(),...X({tag:"li"})},"VBreadcrumbsItem"),_e=U()({name:"VBreadcrumbsItem",props:At(),setup(e,t){let{slots:a,attrs:d}=t;const s=Ze(e,d),r=Q(()=>{var b;return e.active||((b=s.isActive)==null?void 0:b.value)}),o=Q(()=>r.value?e.activeColor:e.color),{textColorClasses:l,textColorStyles:p}=et(o);return z(()=>i(e.tag,{class:["v-breadcrumbs-item",{"v-breadcrumbs-item--active":r.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:r.value&&e.activeClass},l.value,e.class],style:[p.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var b,S;return[s.isLink.value?i("a",V({class:"v-breadcrumbs-item--link",onClick:s.navigate},s.linkProps),[((S=a.default)==null?void 0:S.call(a))??e.title]):((b=a.default)==null?void 0:b.call(a))??e.title]}})),{}}}),Rt=G({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Se,items:{type:Array,default:()=>[]},...j(),...it(),...st(),...X({tag:"ul"})},"VBreadcrumbs"),Ht=U()({name:"VBreadcrumbs",props:Rt(),setup(e,t){let{slots:a}=t;const{backgroundColorClasses:d,backgroundColorStyles:s}=rt(N(e,"bgColor")),{densityClasses:r}=at(e),{roundedClasses:o}=ot(e);we({VBreadcrumbsDivider:{divider:N(e,"divider")},VBreadcrumbsItem:{activeClass:N(e,"activeClass"),activeColor:N(e,"activeColor"),color:N(e,"color"),disabled:N(e,"disabled")}});const l=Q(()=>e.items.map(p=>typeof p=="string"?{item:{title:p},raw:p}:{item:p,raw:p}));return z(()=>{const p=!!(a.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,o.value,e.class],style:[s.value,e.style]},{default:()=>{var b;return[p&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[a.prepend?i(nt,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},a.prepend):i(F,{key:"prepend-icon",start:!0,icon:e.icon},null)]),l.value.map((S,k,Z)=>{var ee;let{item:I,raw:ye}=S;return i($,null,[((ee=a.item)==null?void 0:ee.call(a,{item:I,index:k}))??i(_e,V({key:k,disabled:k>=Z.length-1},typeof I=="string"?{title:I}:I),{default:a.title?()=>{var A;return(A=a.title)==null?void 0:A.call(a,{item:I,index:k})}:void 0}),k<Z.length-1&&i(It,null,{default:a.divider?()=>{var A;return(A=a.divider)==null?void 0:A.call(a,{item:ye,index:k})}:void 0})])}),(b=a.default)==null?void 0:b.call(a)]}})}),{}}}),qt={f:Me,r:de,p:xe,i:ke,s:Te},Et={name:"BrowserBreadcrumbs",computed:{...C(h,["groupNames"]),..._(Ce,["timestamp"]),..._(h,{breadcrumbs(e){const t=[],a=e.settings.breadcrumbs.slice(0,-1);if(!a)return t;let d="";for(const s of a){const r=this.getTo(s,d),o=s.name||"",l=s.group,p=this.getIcon(s.pks,o,l);let b;s.group==="r"?b="Top":(b=s.pks==0?"All ":"",b+=this.groupNames[l]);const k={to:r,text:o,icon:p,tooltip:{text:b,openDelay:1500}};t.push(k),d=s.pks}return t}})},methods:{getTo(e,t){const a=Be(e);delete a.name;const d={name:"browser",params:a};return d.query={ts:this.timestamp},t&&(d.hash=`#card-${t}`),d},getIcon(e,t,a){let d;return"rfa".includes(a)&&e==="0"?d=de:t?d="":d=qt[a],d}}},Lt=["innerHTML"];function Ut(e,t,a,d,s,r){return n(),u(Ht,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:m(({item:o})=>[D((n(),u(_e,{to:o.to},{default:m(()=>[o.icon?(n(),u(F,{key:0},{default:m(()=>[B(w(o.icon),1)]),_:2},1024)):(n(),v("span",{key:1,innerHTML:o.text},null,8,Lt))]),_:2},1032,["to"])),[[H,o.tooltip]])]),_:1},8,["items"])}const Gt=f(Et,[["render",Ut],["__scopeId","data-v-1cd96198"]]),zt={name:"BrowserHeader",components:{Breadcrumbs:Gt}};function jt(e,t,a,d,s,r){const o=c("Breadcrumbs");return n(),u(K,{id:"breadcrumbsToolbar",height:24,flat:"",class:"titleToolbar"},{default:m(()=>[i(o)]),_:1})}const Yt=f(zt,[["render",jt],["__scopeId","data-v-8badef68"]]),Kt={name:"BrowserHeader",data(){return{mdiReload:le}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{..._(h,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...C(M,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:a,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?L(a):a;if(r&&t.push(r),d){const o=`of ${d}`;t.push(o)}e=t.join(" ")}else e="(Empty)";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function Qt(e,t,a,d,s,r){return n(),u(K,{id:"browserToolbarTitle",height:24,"extension-height":24},ce({default:m(()=>[i(se,{id:"browserTitle",class:"browserTitle"},{default:m(()=>[B(w(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:m(()=>[i(se,{id:"browserSubtitle",class:"browserTitle"},{default:m(()=>[B(w(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Wt=f(Kt,[["render",Qt],["__scopeId","data-v-919fc0ff"]]),Xt=10,Jt={name:"BrowserSearchCombobox",data(){return{mdiMagnify:Y,menu:!1,query:"",items:[""]}},computed:{..._(h,{stateQ:e=>e.settings.q,searchError:e=>e.page.searchError})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...T(h,["setSettings","startSearchHideTimeout","clearSearchHideTimeout"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,Xt)},doSearch(e=!1){this.menu=!1;const a={q:this.query?this.query.trim():""};e&&(a.orderBy="sort_name",a.orderReverse=!1,this.doBlur()),this.setSettings(a)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function Zt(e,t,a,d,s,r){return n(),u(ht,{id:"searchbox",ref:"searchbox",modelValue:s.query,"onUpdate:modelValue":t[0]||(t[0]=o=>s.query=o),menu:s.menu,"onUpdate:menu":t[1]||(t[1]=o=>s.menu=o),items:s.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","error-messages":e.searchError,"full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":s.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=o=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[te(r.doSearch,["enter"]),te(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","error-messages","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const er=f(Jt,[["render",Zt]]),tr=[["characters","String","category"],["community_rating","Decimal","communityrating"],["contributor","String","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","filetype, type"],["genres","String","genre"],["identifiers","String","id, nss"],["identifier_types","String","id_type, idtype, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","String","location"],["maturity_rating","String"],["monochrome","Boolean","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","filename, folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","String","seriesgroups"],["size","Integer"],["stories","String","story"],["story_arcs","String","storyarcs"],["summary","String","comments, description"],["tags","String","tag"],["tagger","String"],["teams","String","team"],["updated_at","DateTime","updated"],["volume","String"],["web","String"],["year","Integer"]],rr={name:"SearchHelpText",data(){return{FIELD_ROWS:tr}}},ar={id:"browserSearchTextContainer"},or={id:"browserSearchText"},sr={id:"fieldTableContainer"},ir={class:"aliasCol"};function nr(e,t,a,d,s,r){return n(),v("div",ar,[g("div",or,[t[2]||(t[2]=g("h1",null,"Search Help",-1)),g("div",sr,[t[1]||(t[1]=g("h2",null,"Search Fields",-1)),i(pt,{id:"fieldTable",class:"highlight-table"},{default:m(()=>[t[0]||(t[0]=g("thead",null,[g("tr",null,[g("th",null,"Field"),g("th",null,"Type"),g("th",null,"Aliases")])],-1)),g("tbody",null,[(n(!0),v($,null,O(s.FIELD_ROWS,o=>(n(),v("tr",{key:o[0]},[g("td",null,w(o[0]),1),g("td",null,w(o[1]),1),g("td",ir,w(o[2]||""),1)]))),128))])]),_:1})]),t[3]||(t[3]=Fe('<div id="textContainer" data-v-8d3dbd81><h2 data-v-8d3dbd81>Search Syntax</h2><p data-v-8d3dbd81> Codex allows two different kinds of searching from the search bar. Full Text Search and Field Search. For full text search just enter some terms in the search bar. They will be added to the filters selected with the &quot;filter by&quot; menu. </p><p data-v-8d3dbd81>Searching in Codex is always case insensitive.</p><h2 data-v-8d3dbd81>Full Text Search</h2><p data-v-8d3dbd81> Full text search searches all the metadata of a comic as one document. </p><h3 data-v-8d3dbd81>Boolean Operators</h3><p data-v-8d3dbd81> Codex allows the <code data-v-8d3dbd81>AND</code>, <code data-v-8d3dbd81>OR</code>, and <code data-v-8d3dbd81>NOT</code> operators between search terms. By default terms are concatenated with the <code data-v-8d3dbd81>AND</code> operator. For instance: <code data-v-8d3dbd81> frodo sam galadriel </code> is the same as <code data-v-8d3dbd81>frodo AND sam AND galadriel</code>. <code data-v-8d3dbd81> frodo OR pippin NOT merry</code> searches for comics with metadata that reference Frodo or Pippin but not Merry. Parenthesis may be used to group boolean operators. </p><h3 data-v-8d3dbd81>Prefix Operators</h3><p data-v-8d3dbd81> search tokens suffixed with a <code data-v-8d3dbd81>*</code> will look for text with the given prefix. For example <code data-v-8d3dbd81>tev*</code> should match if the string &quot;Tevildo&quot; occurs anywhere in the comic metadata. </p><h2 data-v-8d3dbd81>Field Search Syntax</h2><p data-v-8d3dbd81> Similar to Codex&#39;s Filter menu, you may query individual comic metadata fields in the database but for more fields and with more powerful operators than the exact match offered by the Filter menu. A field search looks like: <code data-v-8d3dbd81>field:expression</code>. </p><h3 data-v-8d3dbd81>Simple Values as the Expression</h3><p data-v-8d3dbd81> Simple values entered for the expression match exactly for numeric, datetime and boolean fields. However for text fields the field is searched for any match of the entered value. </p><p data-v-8d3dbd81> The Prefix notiation for full text search tokens may also be used here. <code data-v-8d3dbd81>characters:saur*</code> will match comics that feature &quot;Sauron&quot; and &quot;Sauruman&quot;. </p><h3 data-v-8d3dbd81>Field Search Boolean Expressions</h3><p data-v-8d3dbd81> Boolean operators may also used in and around field search if the expression is contained in parenthesis. <code data-v-8d3dbd81>characters:(aragorn or boromir)</code> will work. <code data-v-8d3dbd81>characters:(not aragorn)</code> will behave similarly to <code data-v-8d3dbd81>not characters:aragorn</code></p><h3 data-v-8d3dbd81>Leading Operators</h3><p data-v-8d3dbd81> Field Search has it&#39;s own operators that offer more powerful queries. For text, numeric, boolean and datetime fields may be applied at the beginning of the expression <code data-v-8d3dbd81>&gt;</code>,<code data-v-8d3dbd81>&gt;=</code>,<code data-v-8d3dbd81>&lt;</code>,<code data-v-8d3dbd81>&lt;=</code>. And the range syntax <code data-v-8d3dbd81>..</code> accepts two values. For instance: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>pages:&gt;30</code></td><td data-v-8d3dbd81>comics with more than 30 pages</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>author:!frodo</code></td><td data-v-8d3dbd81>comics not written by Frodo</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>year:1066..1215</code></td><td data-v-8d3dbd81>comics published between the year 1066 and 1215.</td></tr></tbody></table><h3 data-v-8d3dbd81>Text Operators</h3><p data-v-8d3dbd81> Field search on text fields may be narrowed using the <code data-v-8d3dbd81>*</code> operator: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:Ar*</code></td><td data-v-8d3dbd81> characters that start with &quot;Ar&quot;, like &quot;Aragorn&quot; and &quot;Arwen&quot; </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:*orn</code></td><td data-v-8d3dbd81> characters that end with &quot;orn&quot;, like &quot;Aragorn&quot; and &quot;Arathorn&quot;. This type of search can be slow </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>series:sil*ion</code></td><td data-v-8d3dbd81> series such as Silmarillion. This type of search can be slow. </td></tr></tbody></table><p data-v-8d3dbd81> The last two examples of text search above looking for suffixes and doing wildcard searches with the <code data-v-8d3dbd81>*</code> in the middle of the word will perform much worse than bare word or prefix searches because they are unable to use the full text search index and will scan the database in a less efficient manner. </p><h3 data-v-8d3dbd81>Dates and DateTimes</h3><p data-v-8d3dbd81> Codex parses Dates and DateTime values liberally. Many quoted english phrases also work. Such as relative dates like &#39;1 min ago&#39;, &#39;2 weeks ago&#39;, &#39;3 months, 1 week and 1 day ago&#39;, &#39;in 2 days&#39;, &#39;tomorrow&#39;. Dates with timezones and named months such as &#39;August 14, 2015 EST&#39;, &#39;July 4, 2013 PST&#39;, &#39;21 July 2013 10:15 pm +0500&#39;. Examples: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>created_at:&quot;3 days ago&quot;..&quot;today&quot;</code></td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>date:&quot;&lt;3 years ago&quot;</code></td></tr></tbody></table><p data-v-8d3dbd81> Placing a leading operator outside the quotes for a date phrase will not be parsed correctly. If the format you try fails, the <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD</code> and <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD-HH:mm:SS</code> formats are reliable. </p><h3 data-v-8d3dbd81>Single Quote complex field Queries</h3><p data-v-8d3dbd81> Use quotes to tell Codex that a complex or natural language phrase should be applied to a specific field </p><code data-v-8d3dbd81> created:&#39;this year&#39; </code><h3 data-v-8d3dbd81>Size Byte Multipliers</h3><p data-v-8d3dbd81> The size field can make use of convenient byte multiplier suffixes like <code data-v-8d3dbd81>kb</code> and <code data-v-8d3dbd81>mb</code> as well as binary suffixes like <code data-v-8d3dbd81>gib</code> and <code data-v-8d3dbd81>tib</code>. For instance <code data-v-8d3dbd81>size:&gt;10mb</code></p><h2 data-v-8d3dbd81>Limitations</h2><p data-v-8d3dbd81> Field searches that use leading operators or text wildcard operators that are prefixed with the <code data-v-8d3dbd81>OR</code> operator like <code data-v-8d3dbd81>OR year:&gt;2020</code> will disregard the <code data-v-8d3dbd81>OR</code> operator and treat it like <code data-v-8d3dbd81>AND</code>. </p></div>',1))])])}const dr=f(rr,[["render",nr],["__scopeId","data-v-8d3dbd81"]]),lr={name:"SearchHelp",components:{SearchHelpText:dr},data(){return{mdiOpenInNew:ue,mdiLifebuoy:Ve}},computed:{..._(h,{isSearchHelpOpenState:e=>e.isSearchHelpOpen}),isSearchHelpOpen:{get(){return this.isSearchHelpOpenState},set(e){this.setSearchHelpOpen(e)}},buttonDensity(){return this.$vuetify.display.smAndDown?"compact":"comfortable"}},methods:{...T(h,["setSearchHelpOpen"])}},cr={id:"searchHelp"};function ur(e,t,a,d,s,r){const o=c("SearchHelpText");return n(),u(bt,{modelValue:r.isSearchHelpOpen,"onUpdate:modelValue":t[0]||(t[0]=l=>r.isSearchHelpOpen=l),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:m(({props:l})=>[i(fe,V(l,{icon:s.mdiLifebuoy,title:"Search Help",density:r.buttonDensity}),null,16,["icon","density"])]),default:m(()=>[g("div",cr,[i(o)])]),_:1},8,["modelValue"])}const mr=f(lr,[["render",ur],["__scopeId","data-v-292e00bb"]]),hr={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:er,SearchHelp:mr},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,toolbarHeight:e=>64+12*!!e.page.searchError})}};function pr(e,t,a,d,s,r){const o=c("BrowserSearchCombobox"),l=c("SearchHelp");return n(),u(ft,null,{default:m(()=>[e.isSearchOpen?(n(),u(K,{key:0,density:"compact",height:e.toolbarHeight},{default:m(()=>[i(W,{id:"searchToolbarItems"},{default:m(()=>[i(o),i(l)]),_:1})]),_:1},8,["height"])):y("",!0)]),_:1})}const br=f(hr,[["render",pr],["__scopeId","data-v-64bebade"]]),fr={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:pe,mdiCloseCircleOutline:he,query:""}},computed:{..._(h,{choices(e){return e.choices.dynamic[this.name]},readingDirectionTitles:e=>e.choices.static.readingDirection,identifierTypeTitles:e=>e.choices.static.identifierType,filter(e){return e.settings.filters[this.name]}}),...me(h,["filterMode"]),hasNone(){for(const e of this.choices)if(ie.has(e)||e instanceof Object&&ie.has(e.pk))return!0;return!1},vuetifyItems(){return yt(this.choices,this.query)},title(){return De(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?$e:Ne},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...T(h,["clearOneFilter","identifierTypeTitle","loadAvailableFilterChoices","loadFilterChoices"]),setUIFilterMode(e){this.filterMode=e,this.query="",e!=="base"&&typeof this.choices!="object"&&this.loadFilterChoices(e)},selected(e){const t={filters:{[this.name]:e}};this.$emit("selected",t)},itemTitle:function(e){return this.name==="readingDirection"?this.readingDirectionTitles[e.value]:this.name==="identifierType"?this.identifierTypeTitle(e.title):e.title},async _loadSubAvailableFilterChoices(){return this.loadAvailableFilterChoices().then(()=>this.loadFilterChoices(this.name))},onClear(){return this.clearOneFilter(this.name).then(()=>this._loadSubAvailableFilterChoices())}}},gr={key:0},_r={class:"filterHeader"};function vr(e,t,a,d,s,r){return n(),v("div",null,[i(gt,{"hide-on-leave":""},{default:m(()=>[e.filterMode==="base"?(n(),u(x,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=o=>r.setUIFilterMode(a.name))},null,8,["title","append-icon"])):y("",!0)]),_:1}),i(_t,{"hide-on-leave":""},{default:m(()=>[e.filterMode===a.name?(n(),v("div",gr,[g("header",_r,[i(x,{class:"filterHeaderTitle","prepend-icon":s.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=o=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(n(),u(x,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0),typeof e.choices=="object"?(n(),u(vt,{key:1,modelValue:s.query,"onUpdate:modelValue":t[2]||(t[2]=o=>s.query=o),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=o=>e.filterMode=a.name)},null,8,["modelValue"])):(n(),u(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(n(),u(ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:m(()=>[r.hasNone?(n(),u(x,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):y("",!0),(n(!0),v($,null,O(r.vuetifyItems,o=>(n(),u(x,{key:o.value,title:r.itemTitle(o),value:o.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):y("",!0)])):y("",!0)]),_:1})])}const yr=f(fr,[["render",vr],["__scopeId","data-v-f1f62462"]]),wr={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:yr,ToolbarSelect:P},extends:P,data(){return{mdiCloseCircleOutline:he,mdiFilterMultipleOutline:Pe,menu:!1}},computed:{...C(h,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),..._(h,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,filterMenuClass:function(e){let t="filterMenu";return e.filterMode!=="base"&&(t+="Hidden"),t},dynamicChoiceNames:function(e){if(e.choices.dynamic===void 0)return;const t=[];for(const[a,d]of Object.entries(e.choices.dynamic))d&&t.push(a);return t}}),...me(h,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},methods:{...T(h,["clearFilters","loadAvailableFilterChoices","setSettings"]),onUpdateModelValue(e){const t={filters:{bookmark:e}};this.onSubMenuSelected(t)},onSubMenuSelected(e){this.menu=!1,this.setSettings(e),this.filterMode="base"},onClear(){return this.clearFilters().then(()=>this.loadAvailableFilterChoices()).catch(()=>{console.error("clear filters")})},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},Sr={class:"codexSelection"};function Br(e,t,a,d,s,r){const o=c("BrowserFilterSubMenu"),l=c("ToolbarSelect");return n(),u(l,{menu:s.menu,"onUpdate:menu":[t[0]||(t[0]=p=>s.menu=p),r.onMenu],class:E(["filterBySelect",{filterBySelectXSmall:r.padRight}]),"select-label":"filter by",items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen-1,"onUpdate:modelValue":r.onUpdateModelValue},{selection:m(({item:p})=>[g("span",Sr,w(p.title),1),e.isDynamicFiltersSelected?(n(),u(F,{key:0,class:"filterSuffix",size:"x-small"},{default:m(()=>[B(w(s.mdiFilterMultipleOutline),1)]),_:1})):y("",!0)]),"prepend-item":m(()=>[e.isFiltersClearable?(n(),u(x,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0)]),"append-item":m(()=>[i(q),e.dynamicChoiceNames===void 0?(n(),u(x,{key:0,density:"compact",variant:"plain"},{default:m(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(n(!0),v($,{key:1},O(e.dynamicChoiceNames,p=>(n(),u(o,{key:p,name:p,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(n(),u(x,{key:2,class:"noChoices",density:"compact",variant:"plain",title:"No filters available"}))]),_:1},8,["menu","class","items","menu-props","model-value","max-select-len","onUpdate:modelValue","onUpdate:menu"])}const Cr=f(wr,[["render",Br],["__scopeId","data-v-ee83f8c9"]]),Tr=new Set(["bookmark_updated_at","child_count","community_rating","created_at","critical_rating","page_count","search_score","size","updated_at"]),kr={name:"BrowseOrderBySelect",components:{ToolbarSelect:P},extends:P,computed:{...C(h,["orderByChoices","orderByChoicesMaxLen"]),..._(h,{orderBySetting:e=>e.settings.orderBy}),orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:Tr.has(e)};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function xr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,V({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=l=>r.orderBy=l),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-4},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Mr=f(kr,[["render",xr]]),Fr={name:"ToolbarButton",components:{ScaleButton:Nt}};function Vr(e,t,a,d,s,r){const o=c("ScaleButton");return n(),u(o,{variant:"plain",class:"toolbarButton"},ce({_:2},[O(e.$slots,(l,p)=>({name:p,fn:m(b=>[Oe(e.$slots,p,V({props:l},b))])}))]),1024)}const ve=f(Fr,[["render",Vr]]),$r={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiSortVariant:Ie}},computed:{..._(h,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...T(h,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Nr(e,t,a,d,s,r){const o=c("ToolbarButton");return n(),u(o,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:m(()=>[i(F,{class:E(r.iconClasses)},{default:m(()=>[B(w(s.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const Dr=f($r,[["render",Nr],["__scopeId","data-v-42884e89"]]),Pr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiMagnify:Y}},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...T(h,["setIsSearchOpen"])}};function Or(e,t,a,d,s,r){const o=c("ToolbarButton");return e.isSearchOpen?y("",!0):(n(),u(o,V({key:0,class:"searchButton",icon:s.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=l=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const Ir=f(Pr,[["render",Or]]),Ar=new Set(["a","f"]),Rr={name:"BrowserTopGroupSelect",components:{ToolbarSelect:P},extends:P,data(){return{DIVIDED_VALUES:Ar}},computed:{..._(h,{topGroupSetting:e=>e.settings.topGroup}),...C(h,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function Hr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=l=>r.topGroup=l),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:m(({item:l,props:p})=>[s.DIVIDED_VALUES.has(l.value)?(n(),u(q,{key:0})):y("",!0),i(x,V(p,{density:"compact",variant:"plain",title:l.title,value:l.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const qr=f(Rr,[["render",Hr]]),Er={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Cr,BrowserSearchButton:Ir,BrowserTopGroupSelect:qr,BrowserOrderBySelect:Mr,BrowserOrderReverseButton:Dr,SettingsDrawerButton:Dt},data(){return{mdiMagnify:Y,mdiFamilyTree:Ae,browseMode:"filter"}}};function Lr(e,t,a,d,s,r){const o=c("BrowserTopGroupSelect"),l=c("BrowserFilterBySelect"),p=c("BrowserOrderBySelect"),b=c("BrowserOrderReverseButton"),S=c("BrowserSearchButton"),k=c("SettingsDrawerButton");return n(),u(K,{id:"browserToolbarTop",flat:"",density:"compact",height:48},{default:m(()=>[i(W,{id:"browserToolbarLeftItems"},{default:m(()=>[i(o),i(l),i(p),i(b),i(S)]),_:1}),i(wt),i(W,null,{default:m(()=>[i(k)]),_:1})]),_:1})}const Ur=f(Er,[["render",Lr],["__scopeId","data-v-547b970a"]]),Gr={name:"BrowserHeader",components:{AppBanner:Qe,BrowserBreadcrumbsToolbar:Yt,BrowserSearchToolbar:br,BrowserTopToolbar:Ur,BrowserTitleToolbar:Wt}},zr={id:"codexHeadToolbarWrapper"};function jr(e,t,a,d,s,r){const o=c("AppBanner"),l=c("BrowserTopToolbar"),p=c("BrowserSearchToolbar"),b=c("BrowserBreadcrumbsToolbar"),S=c("BrowserTitleToolbar");return n(),v("header",zr,[i(o),i(l,{class:"codexHeadToolbar"}),i(p,{class:"codexHeadToolbar"}),i(b,{class:"codexHeadToolbar"}),i(S,{class:"codexHeadToolbar"})])}const Yr=f(Gr,[["render",jr],["__scopeId","data-v-176aeb57"]]),Kr="rpisv",Qr={name:"BrowserSettingsPanel",data(){return{mdiReload:le,openDelay:2e3}},computed:{...C(M,["isAuthorized"]),..._(M,{isUserAuthorized:e=>!!e.user}),..._(h,{groupChoices:e=>{var t,a;return((a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.settingsGroup)||{}},showSettings:e=>{var t;return((t=e.settings)==null?void 0:t.show)||{}},twentyFourHourTime:e=>{var t;return((t=e.settings)==null?void 0:t.twentyFourHourTime)||!1},twentyFourHourTimeTitle:e=>{var t,a,d;return((d=(a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.twentyFourHourTime)==null?void 0:d.title)||""},dynamicCovers:e=>{var t;return((t=e.settings)==null?void 0:t.dynamicCovers)||!1},customCovers:e=>{var t;return((t=e.settings)==null?void 0:t.customCovers)||!1},alwaysShowFilename:e=>{var t;return((t=e.settings)==null?void 0:t.alwaysShowFilename)||!1}}),showShowSettings(){var e,t;return Kr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...T(h,["setSettings"]),setShow(e,t){const a={show:{[e]:t===!0}};this.setSettings(a)},setSetting(e,t){const a={[e]:t===!0};this.setSettings(a)}}},Wr={key:0,class:"browserSettingsBlock"},Xr={class:"browserSettingsBlock"};function Jr(e,t,a,d,s,r){return n(),v($,null,[r.showShowSettings?D((n(),v("div",Wr,[t[4]||(t[4]=g("h4",{class:"browserSettingsHeader"},"Show Group Levels",-1)),(n(!0),v($,null,O(e.groupChoices,o=>(n(),u(R,{key:o.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[o.value],"true-value":!0,label:`Show ${o.title}`,"onUpdate:modelValue":l=>r.setShow(o.value,l)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[H,{openDelay:s.openDelay,text:"Show these groups when navigating the browse tree"}]]):y("",!0),i(q),g("div",Xr,[t[5]||(t[5]=g("h4",{class:"browserSettingsHeader"},"Covers",-1)),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=o=>r.setSetting("dynamicCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Choose covers by filters, search, and order"}]]),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=o=>r.setSetting("customCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(q),D(i(R,{class:"browserGroupCheckbox",density:"compact",label:"Always Show Filenames","hide-details":"auto","model-value":!!e.alwaysShowFilename,"onUpdate:modelValue":t[2]||(t[2]=o=>r.setSetting("alwaysShowFilename",o))},null,8,["model-value"]),[[H,{openDelay:1e3,text:"Always show filenames on the browser cards"}]]),i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[3]||(t[3]=o=>r.setSetting("twentyFourHourTime",o))},null,8,["model-value"]),i(q)],64)}const Zr=f(Qr,[["render",Jr],["__scopeId","data-v-a7b78530"]]),ea={name:"BrowserSettingsDrawer",components:{SettingsDrawer:Pt,BrowserSettingsPanel:Zr}};function ta(e,t,a,d,s,r){const o=c("BrowserSettingsPanel"),l=c("SettingsDrawer");return n(),u(l,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:m(()=>[i(o)]),_:1})}const ra=f(ea,[["render",ta]]),aa={name:"BrowserContainerMenu",components:{DownloadButton:Bt,MarkReadButton:St},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:He,showMenu:!1}},computed:{_groupName(){var t,a,d,s,r;return[(t=this.item)==null?void 0:t.publisherName,(a=this.item)==null?void 0:a.imprintName,(d=this.item)==null?void 0:d.seriesName,L((s=this.item)==null?void 0:s.volumeName),Re(this.item,3),(r=this.item)==null?void 0:r.name].filter(Boolean).join(" ")},downloadName(){var e;return((e=this.item)==null?void 0:e.fileName)||this._groupName},downloadItem(){return{...this.item,name:this.downloadName}}}};function oa(e,t,a,d,s,r){const o=c("MarkReadButton"),l=c("DownloadButton");return n(),u($t,{modelValue:s.showMenu,"onUpdate:modelValue":t[1]||(t[1]=p=>s.showMenu=p),"offset-y":"",top:""},{activator:m(({props:p})=>[i(fe,V({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:s.mdiDotsVertical,title:"Action Menu",variant:"text"},p,{onClick:t[0]||(t[0]=qe(()=>{},["prevent"]))}),null,16,["icon"])]),default:m(()=>[i(ge,{class:"background-soft-highlight"},{default:m(()=>[i(o,{class:"listItem",button:!1,item:a.item},null,8,["item"]),i(l,{class:"listItem",button:!1,item:r.downloadItem},null,8,["item"])]),_:1})]),_:1},8,["modelValue"])}const sa=f(aa,[["render",oa],["__scopeId","data-v-f9b20c54"]]),ia={name:"BrowserCardControls",components:{BrowserCardMenu:sa,MetadataButton:Ct},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:ae}},computed:{eyeIcon:function(){return this.eyeOpen?re:ae}}},na={class:"cardControls"};function da(e,t,a,d,s,r){const o=c("MetadataButton"),l=c("BrowserCardMenu");return n(),v("div",na,[a.item.group==="c"?(n(),u(F,{key:0,class:"eye"},{default:m(()=>[B(w(r.eyeIcon),1)]),_:1})):y("",!0),i(o,{group:a.item.group,book:a.item,children:a.item.childCount},null,8,["group","book","children"]),i(l,{item:a.item},null,8,["item"])])}const la=f(ia,[["render",da],["__scopeId","data-v-6f2c700a"]]),ca=new Set(["community_rating","critical_rating"]),ua=new Set(["date"]),ma=new Set(["bookmark_updated_at","created_at","updated_at"]),ha=new Set([null,void 0,"sort_name"]),pa=new Set([null,void 0]),ba={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(ha.has(this.orderBy)||this.orderBy==="filename"&&this.item.group!=="c"||this.orderBy==="story_arc_number"&&this.item.group==="a"||pa.has(e))e="";else if(ua.has(this.orderBy)){const t=new Date(e);e=Ee.format(t)}else this.orderBy=="search_score"?e=this.format_search_score(e):ma.has(this.orderBy)?e=Le(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=Tt(Number.parseInt(e,10)):ca.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}},methods:{format_search_score(e){return e=oe.format(Math.round(Number.parseFloat(e)*10)),Number.isNaN(e)&&(e=""),e}}},fa=["innerHTML"];function ga(e,t,a,d,s,r){return r.orderValue?(n(),v("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,fa)):y("",!0)}const _a=f(ba,[["render",ga],["__scopeId","data-v-892ed807"]]),va={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderByFilename:e=>e.settings.orderBy==="filename",orderByName:e=>e.settings.orderBy==="sort_name",topGroup:e=>e.settings.topGroup,showSeries:e=>e.settings.show.s,showVolume:e=>e.settings.show.v,zeroPad:e=>e.page.zeroPad,alwaysShowFilename:e=>e.settings.alwaysShowFilename}),seriesName(){return(this.topGroup==="a"||this.orderByName&&!this.showSeries)&&["c","v"].includes(this.item.group)&&this.item.seriesName?this.item.seriesName:!1},volumeName(){return(this.topGroup==="a"||this.orderByName&&!this.showVolume)&&this.item.group==="c"&&this.item.volumeName?L(this.item.volumeName):!1},headerName(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?Ue(this.item,this.zeroPad):Ge(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName(){return this.item.group==="v"?L(this.item.name):this.item.name},fileName(){return!this.orderByFilename&&(this.alwaysShowFilename||this.topGroup==="f")?this.item.fileName:""},linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ya={class:"browserLink cardSubtitle text-caption"},wa={key:0,class:"fileName"},Sa={key:1,class:"seriesCaption"},Ba={key:2,class:"volumeCaption"},Ca={key:3,class:"headerName"},Ta={class:"displayName"};function ka(e,t,a,d,s,r){return n(),v("div",ya,[r.fileName?(n(),v("div",wa,w(r.fileName),1)):y("",!0),r.seriesName?(n(),v("div",Sa,w(r.seriesName),1)):y("",!0),r.volumeName?(n(),v("div",Ba,w(r.volumeName),1)):y("",!0),r.headerName?(n(),v("div",Ca,w(r.headerName),1)):y("",!0),g("div",Ta,w(r.displayName),1)])}const xa=f(va,[["render",ka],["__scopeId","data-v-e127b46d"]]),Ma=G({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...j(),...ut(),...X(),...ct({transition:"fade-transition"})},"VLazy"),Fa=U()({name:"VLazy",directives:{intersect:dt},props:Ma(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const{dimensionStyles:d}=lt(e),s=ze(e,"modelValue");function r(o){s.value||(s.value=o)}return z(()=>D(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[s.value&&i(mt,{transition:e.transition,appear:!0},{default:()=>{var o;return[(o=a.default)==null?void 0:o.call(a)]}})]}),[[je("intersect"),{handler:r,options:e.options},null]])),{}}}),ne=100,Va=-170,$a={name:"BrowserCard",components:{BookCover:kt,BrowserCardControls:la,BrowserCardSubtitle:xa,OrderByCaption:_a},props:{item:{type:Object,required:!0}},computed:{..._(h,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.name,e},ids(){return this.item.ids.join(",")},browserRoute(){return{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}},toRoute(){return this.item.group==="c"?xt(this.item,this.importMetadata):this.browserRoute},progressBGOpacity(){return this.item.progress?.1:0}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.ids))return;const e=this.$el;if(!e){console.warn("No element found to scroll to!");return}setTimeout(function(){e.scrollIntoView(),setTimeout(function(){window.scrollBy(0,Va)},ne)},ne)}}},Na={class:"browserCardCoverWrapper"},Da={class:"browserCardTop"},Pa={class:"cardFooter"};function Oa(e,t,a,d,s,r){const o=c("BookCover"),l=c("BrowserCardControls"),p=c("router-link"),b=c("BrowserCardSubtitle"),S=c("OrderByCaption");return n(),u(Fa,{id:`card-${r.ids}`,transition:"scale-transition"},{default:m(()=>[g("div",Na,[g("div",Da,[i(o,{group:a.item.group,pks:a.item.ids,mtime:a.item.mtime,"child-count":a.item.childCount,finished:a.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(p,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:m(()=>[i(l,{item:a.item,"eye-open":!!r.toRoute},null,8,["item","eye-open"])]),_:1},8,["to","aria-label"])]),i(J,{class:"bookCoverProgress","bg-opacity":r.progressBGOpacity,"model-value":a.item.progress,"aria-label":`${a.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),g("footer",Pa,[i(b,{item:a.item},null,8,["item"]),i(S,{item:a.item},null,8,["item"])])])]),_:1},8,["id"])}const Ia=f($a,[["render",Oa],["__scopeId","data-v-6e89150a"]]),Aa={name:"BrowserEmptyResults",components:{EmptyState:We},data(){return{mdiOpenInNew:ue}},computed:{...C(M,["isAuthorized","isUserAdmin"]),..._(M,{registration:e=>e.adminFlags.registration}),...C(h,["isFiltersClearable"]),..._(h,{librariesExist:e=>e.page.librariesExist}),empty(){let e={};return this.librariesExist?(e.headline="No Comics Found",e.title="For these filter and search settings",e.icon=Ye):(e.headline="No Libraries Exist",this.isUserAdmin?e.title="Use the top right ☰ menu to navigate to the admin panel and add a comic library":this.isAuthorized?e.title="An administrator must add some comics libraries":e.title="Use the top right ☰ menu to log in as an administrator to add libraries",e.icon=Ke),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...T(h,["clearFilters"])}},Ra={key:0},Ha={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function qa(e,t,a,d,s,r){const o=c("EmptyState");return n(),u(o,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=l=>e.clearFilters(!0))},{default:m(()=>[r.showLinkToReadmeAdmin?(n(),v("div",Ra,[t[2]||(t[2]=B(" See the ")),g("a",Ha,[t[1]||(t[1]=B("README ")),i(F,null,{default:m(()=>[B(w(s.mdiOpenInNew),1)]),_:1})]),t[3]||(t[3]=B(" for help "))])):y("",!0)]),_:1},8,["headline","title","icon","action-text"])}const Ea=f(Aa,[["render",qa]]),La={name:"BrowserMain",components:{BrowserCard:Ia,BrowserEmptyState:Ea,PlaceholderLoading:Xe},computed:{..._(M,{nonUsers:e=>e.adminFlags.nonUsers}),...C(M,["isAuthorized","isBanner"]),...C(h,["isSearchMode"]),..._(h,{librariesExist:e=>e.page.librariesExist,showPlaceHolder(e){return this.nonUsers===void 0||this.isAuthorized&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],numPages:e=>e.page.numPages,query:e=>e.settings.q,isSearchOpen:e=>e.isSearchOpen}),browsePaneClasses(){const e={padFooter:this.numPages>1};let t="browsePane";return this.isSearchOpen&&(t+="Search"),this.isBanner&&(t+="Banner"),e[t]=!0,e},showBrowseItems(){return this.cards&&this.cards.length>0&&this.isAuthorized&&!this.showPlaceHolder},searchLimitMessage(){let e="";if(!this.query)return e;const t=+this.$route.params.page,a=100*t;return this.showPlaceHolder?e+=`Searching for ${a} entries...`:this.numPages>t&&(e+=`Search results truncated to ${a} entries.`,e+=" Advance the page to look for more."),e}}},Ua={key:0,id:"browsePaneContainer"},Ga={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function za(e,t,a,d,s,r){const o=c("BrowserCard"),l=c("PlaceholderLoading"),p=c("BrowserEmptyState");return n(),u(be,{id:"browsePane",class:E(r.browsePaneClasses)},{default:m(()=>[r.showBrowseItems?(n(),v("div",Ua,[(n(!0),v($,null,O(e.cards,b=>(n(),u(o,{key:`${b.group}${b.ids}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(n(),u(l,{key:1,class:"placeholder"})):(n(),u(p,{key:2})),r.searchLimitMessage?(n(),v("div",Ga,w(r.searchLimitMessage),1)):y("",!0)]),_:1},8,["class"])}const ja=f(La,[["render",za],["__scopeId","data-v-327dfc0a"]]),Ya={name:"BrowserNavButton",components:{PaginationNavButton:Mt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:pe,mdiMagnify:Y,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...C(h,["isSearchMode"]),..._(h,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return this.page+this.increment},title(){return this.showMore?"Search for More":"Page "+this.toPage},toRoute(){const e=this.toPage;return{params:{...this.routeParams,page:e}}},classes(){return{leftButton:this.back,rightButton:!this.back}},disabled(){return this.back&&this.page<=1||!this.back&&this.page>=this.numPages},showMore(){return this.more&&this.isSearchMode&&this.toPage===this.numPages}},watch:{$route(e){this.params=e.params,this.page=+e.params.page}}};function Ka(e,t,a,d,s,r){const o=c("PaginationNavButton");return n(),u(o,{key:r.toRoute,class:E(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:m(()=>[r.showMore?(n(),u(F,{key:0},{default:m(()=>[B(w(s.mdiMagnify),1)]),_:1})):y("",!0),i(F,{class:E({flipHoriz:!a.back})},{default:m(()=>[B(w(s.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const Qa=f(Ya,[["render",Ka],["__scopeId","data-v-372671b3"]]),Wa={name:"BrowserNavToolbar",components:{BrowserNavButton:Qa,PaginationSlider:Vt,PaginationToolbar:Ft},computed:{..._(h,{numPages:e=>e.page.numPages})},methods:{...T(h,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Xa(e,t,a,d,s,r){const o=c("BrowserNavButton"),l=c("PaginationSlider"),p=c("PaginationToolbar");return e.numPages>1?(n(),u(p,{key:0},{default:m(()=>[i(o,{back:!0}),i(l,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=b=>e.routeToPage(b))},null,8,["model-value","max"]),i(o,{back:!1,more:!0})]),_:1})):y("",!0)}const Ja=f(Wa,[["render",Xa]]),Za={name:"MainBrowser",components:{BrowserHeader:Yr,BrowserMain:ja,BrowserNavToolbar:Ja,BrowserSettingsDrawer:ra,Unauthorized:Je},computed:{..._(M,{user:e=>e.user}),...C(M,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...T(h,["loadBrowserPage","loadSettings","setPageMtime"])}};function eo(e,t,a,d,s,r){const o=c("BrowserHeader"),l=c("BrowserMain"),p=c("BrowserNavToolbar"),b=c("BrowserSettingsDrawer"),S=c("Unauthorized");return e.isAuthorized?(n(),u(be,{key:0,id:"browser"},{default:m(()=>[i(o),i(l),i(p),i(b)]),_:1})):(n(),u(S,{key:1}))}const Bo=f(Za,[["render",eo],["__scopeId","data-v-4577512d"]]);export{Bo as default};
1
+ import{g as U,p as G,u as z,a as i,J as j,c as Q,m as V,t as N,d as we,K as Se,F as $,_ as f,C as _,D as C,L as Be,M as h,B as Ce,v as u,w as m,N as de,O as Te,P as ke,Q as xe,R as Me,q as n,S as D,k as v,x as B,z as w,l as c,T as L,E as M,U as le,V as ce,A as T,W as Y,X as te,s as g,Y as Fe,y as O,Z as Ve,$ as ue,G as y,h as me,a0 as $e,a1 as Ne,j as De,a2 as he,a3 as pe,a4 as Pe,n as E,a5 as Oe,a6 as Ie,a7 as Ae,a8 as Re,a9 as He,aa as qe,ab as re,ac as ae,ad as oe,ae as Ee,af as Le,ag as Ue,ah as Ge,b as ze,ai as je,aj as Ye,ak as Ke}from"./main-JUy8mnXG.js";import{V as K,a as se,A as Qe,E as We,P as Xe,c as be,U as Je}from"./unauthorized-CvdCW-Cq.js";import{g as Ze,u as et,d as X,h as tt,c as rt,b as at,i as ot,j as st,e as it,k as F,l as nt,V as fe,n as J,I as dt,o as lt,p as ct,q as ut,M as mt}from"./forwardRefs-BxFNqo8E.js";import{T as H}from"./index-D3gnYqT3.js";import{V as ht}from"./VCombobox-Da-CC3-D.js";import{V as pt}from"./VTable-DbFt9lJE.js";import{V as bt,a as x}from"./VDialog-CoOMSEbM.js";import{V as ft,a as gt,b as _t,c as vt}from"./VSelectionControl-DvYb3Pi4.js";import{V as W,t as yt,N as ie,T as P,a as wt,M as St,D as Bt,b as Ct,p as Tt,B as kt,g as xt,P as Mt,c as Ft,d as Vt}from"./pagination-toolbar-Cufj0Rqv.js";import{V as ge,a as $t}from"./VSelect-BpkoCPsm.js";import{a as q}from"./VDivider-BXrVdmrm.js";import{b as Nt,S as Dt,a as Pt}from"./settings-drawer-p6ZjyJ07.js";import{V as R}from"./VCheckbox-DtuP7Cwl.js";import"./change-password-dialog-DOioR_QK.js";import"./VForm-DXrmSq46.js";import"./admin-BpE7-fB4.js";import"./ssrBoot-B73_e82Z.js";import"./filter-D-aPctKp.js";import"./VCheckboxBtn-D8jQ_2In.js";import"./confirm-dialog-BRUkbajJ.js";import"./copy-to-clipboard-DoUvDJVx.js";const Ot=G({divider:[Number,String],...j()},"VBreadcrumbsDivider"),It=U()({name:"VBreadcrumbsDivider",props:Ot(),setup(e,t){let{slots:a}=t;return z(()=>{var d;return i("li",{"aria-hidden":"true",class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=a==null?void 0:a.default)==null?void 0:d.call(a))??e.divider])}),{}}}),At=G({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...j(),...tt(),...X({tag:"li"})},"VBreadcrumbsItem"),_e=U()({name:"VBreadcrumbsItem",props:At(),setup(e,t){let{slots:a,attrs:d}=t;const s=Ze(e,d),r=Q(()=>{var b;return e.active||((b=s.isActive)==null?void 0:b.value)}),o=Q(()=>r.value?e.activeColor:e.color),{textColorClasses:l,textColorStyles:p}=et(o);return z(()=>i(e.tag,{class:["v-breadcrumbs-item",{"v-breadcrumbs-item--active":r.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:r.value&&e.activeClass},l.value,e.class],style:[p.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var b,S;return[s.isLink.value?i("a",V({class:"v-breadcrumbs-item--link",onClick:s.navigate},s.linkProps),[((S=a.default)==null?void 0:S.call(a))??e.title]):((b=a.default)==null?void 0:b.call(a))??e.title]}})),{}}}),Rt=G({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Se,items:{type:Array,default:()=>[]},...j(),...it(),...st(),...X({tag:"ul"})},"VBreadcrumbs"),Ht=U()({name:"VBreadcrumbs",props:Rt(),setup(e,t){let{slots:a}=t;const{backgroundColorClasses:d,backgroundColorStyles:s}=rt(N(e,"bgColor")),{densityClasses:r}=at(e),{roundedClasses:o}=ot(e);we({VBreadcrumbsDivider:{divider:N(e,"divider")},VBreadcrumbsItem:{activeClass:N(e,"activeClass"),activeColor:N(e,"activeColor"),color:N(e,"color"),disabled:N(e,"disabled")}});const l=Q(()=>e.items.map(p=>typeof p=="string"?{item:{title:p},raw:p}:{item:p,raw:p}));return z(()=>{const p=!!(a.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,o.value,e.class],style:[s.value,e.style]},{default:()=>{var b;return[p&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[a.prepend?i(nt,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},a.prepend):i(F,{key:"prepend-icon",start:!0,icon:e.icon},null)]),l.value.map((S,k,Z)=>{var ee;let{item:I,raw:ye}=S;return i($,null,[((ee=a.item)==null?void 0:ee.call(a,{item:I,index:k}))??i(_e,V({key:k,disabled:k>=Z.length-1},typeof I=="string"?{title:I}:I),{default:a.title?()=>{var A;return(A=a.title)==null?void 0:A.call(a,{item:I,index:k})}:void 0}),k<Z.length-1&&i(It,null,{default:a.divider?()=>{var A;return(A=a.divider)==null?void 0:A.call(a,{item:ye,index:k})}:void 0})])}),(b=a.default)==null?void 0:b.call(a)]}})}),{}}}),qt={f:Me,r:de,p:xe,i:ke,s:Te},Et={name:"BrowserBreadcrumbs",computed:{...C(h,["groupNames"]),..._(Ce,["timestamp"]),..._(h,{breadcrumbs(e){const t=[],a=e.settings.breadcrumbs.slice(0,-1);if(!a)return t;let d="";for(const s of a){const r=this.getTo(s,d),o=s.name||"",l=s.group,p=this.getIcon(s.pks,o,l);let b;s.group==="r"?b="Top":(b=s.pks==0?"All ":"",b+=this.groupNames[l]);const k={to:r,text:o,icon:p,tooltip:{text:b,openDelay:1500}};t.push(k),d=s.pks}return t}})},methods:{getTo(e,t){const a=Be(e);delete a.name;const d={name:"browser",params:a};return d.query={ts:this.timestamp},t&&(d.hash=`#card-${t}`),d},getIcon(e,t,a){let d;return"rfa".includes(a)&&e==="0"?d=de:t?d="":d=qt[a],d}}},Lt=["innerHTML"];function Ut(e,t,a,d,s,r){return n(),u(Ht,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:m(({item:o})=>[D((n(),u(_e,{to:o.to},{default:m(()=>[o.icon?(n(),u(F,{key:0},{default:m(()=>[B(w(o.icon),1)]),_:2},1024)):(n(),v("span",{key:1,innerHTML:o.text},null,8,Lt))]),_:2},1032,["to"])),[[H,o.tooltip]])]),_:1},8,["items"])}const Gt=f(Et,[["render",Ut],["__scopeId","data-v-1bfcd31e"]]),zt={name:"BrowserHeader",components:{Breadcrumbs:Gt}};function jt(e,t,a,d,s,r){const o=c("Breadcrumbs");return n(),u(K,{id:"breadcrumbsToolbar",height:24,flat:"",class:"titleToolbar"},{default:m(()=>[i(o)]),_:1})}const Yt=f(zt,[["render",jt],["__scopeId","data-v-30af6513"]]),Kt={name:"BrowserHeader",data(){return{mdiReload:le}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{..._(h,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...C(M,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:a,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?L(a):a;if(r&&t.push(r),d){const o=`of ${d}`;t.push(o)}e=t.join(" ")}else e="(Empty)";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function Qt(e,t,a,d,s,r){return n(),u(K,{id:"browserToolbarTitle",height:24,"extension-height":24},ce({default:m(()=>[i(se,{id:"browserTitle",class:"browserTitle"},{default:m(()=>[B(w(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:m(()=>[i(se,{id:"browserSubtitle",class:"browserTitle"},{default:m(()=>[B(w(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Wt=f(Kt,[["render",Qt],["__scopeId","data-v-919fc0ff"]]),Xt=10,Jt={name:"BrowserSearchCombobox",data(){return{mdiMagnify:Y,menu:!1,query:"",items:[""]}},computed:{..._(h,{stateQ:e=>e.settings.q,searchError:e=>e.page.searchError})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...T(h,["setSettings","startSearchHideTimeout","clearSearchHideTimeout"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,Xt)},doSearch(e=!1){this.menu=!1;const a={q:this.query?this.query.trim():""};e&&(a.orderBy="sort_name",a.orderReverse=!1,this.doBlur()),this.setSettings(a)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function Zt(e,t,a,d,s,r){return n(),u(ht,{id:"searchbox",ref:"searchbox",modelValue:s.query,"onUpdate:modelValue":t[0]||(t[0]=o=>s.query=o),menu:s.menu,"onUpdate:menu":t[1]||(t[1]=o=>s.menu=o),items:s.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","error-messages":e.searchError,"full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":s.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=o=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[te(r.doSearch,["enter"]),te(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","error-messages","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const er=f(Jt,[["render",Zt]]),tr=[["characters","String","category"],["community_rating","Decimal","communityrating"],["contributor","String","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","filetype, type"],["genres","String","genre"],["identifiers","String","id, nss"],["identifier_types","String","id_type, idtype, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","String","location"],["maturity_rating","String"],["monochrome","Boolean","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","filename, folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","String","seriesgroups"],["size","Integer"],["stories","String","story"],["story_arcs","String","storyarcs"],["summary","String","comments, description"],["tags","String","tag"],["tagger","String"],["teams","String","team"],["updated_at","DateTime","updated"],["volume","String"],["web","String"],["year","Integer"]],rr={name:"SearchHelpText",data(){return{FIELD_ROWS:tr}}},ar={id:"browserSearchTextContainer"},or={id:"browserSearchText"},sr={id:"fieldTableContainer"},ir={class:"aliasCol"};function nr(e,t,a,d,s,r){return n(),v("div",ar,[g("div",or,[t[2]||(t[2]=g("h1",null,"Search Help",-1)),g("div",sr,[t[1]||(t[1]=g("h2",null,"Search Fields",-1)),i(pt,{id:"fieldTable",class:"highlight-table"},{default:m(()=>[t[0]||(t[0]=g("thead",null,[g("tr",null,[g("th",null,"Field"),g("th",null,"Type"),g("th",null,"Aliases")])],-1)),g("tbody",null,[(n(!0),v($,null,O(s.FIELD_ROWS,o=>(n(),v("tr",{key:o[0]},[g("td",null,w(o[0]),1),g("td",null,w(o[1]),1),g("td",ir,w(o[2]||""),1)]))),128))])]),_:1})]),t[3]||(t[3]=Fe('<div id="textContainer" data-v-8d3dbd81><h2 data-v-8d3dbd81>Search Syntax</h2><p data-v-8d3dbd81> Codex allows two different kinds of searching from the search bar. Full Text Search and Field Search. For full text search just enter some terms in the search bar. They will be added to the filters selected with the &quot;filter by&quot; menu. </p><p data-v-8d3dbd81>Searching in Codex is always case insensitive.</p><h2 data-v-8d3dbd81>Full Text Search</h2><p data-v-8d3dbd81> Full text search searches all the metadata of a comic as one document. </p><h3 data-v-8d3dbd81>Boolean Operators</h3><p data-v-8d3dbd81> Codex allows the <code data-v-8d3dbd81>AND</code>, <code data-v-8d3dbd81>OR</code>, and <code data-v-8d3dbd81>NOT</code> operators between search terms. By default terms are concatenated with the <code data-v-8d3dbd81>AND</code> operator. For instance: <code data-v-8d3dbd81> frodo sam galadriel </code> is the same as <code data-v-8d3dbd81>frodo AND sam AND galadriel</code>. <code data-v-8d3dbd81> frodo OR pippin NOT merry</code> searches for comics with metadata that reference Frodo or Pippin but not Merry. Parenthesis may be used to group boolean operators. </p><h3 data-v-8d3dbd81>Prefix Operators</h3><p data-v-8d3dbd81> search tokens suffixed with a <code data-v-8d3dbd81>*</code> will look for text with the given prefix. For example <code data-v-8d3dbd81>tev*</code> should match if the string &quot;Tevildo&quot; occurs anywhere in the comic metadata. </p><h2 data-v-8d3dbd81>Field Search Syntax</h2><p data-v-8d3dbd81> Similar to Codex&#39;s Filter menu, you may query individual comic metadata fields in the database but for more fields and with more powerful operators than the exact match offered by the Filter menu. A field search looks like: <code data-v-8d3dbd81>field:expression</code>. </p><h3 data-v-8d3dbd81>Simple Values as the Expression</h3><p data-v-8d3dbd81> Simple values entered for the expression match exactly for numeric, datetime and boolean fields. However for text fields the field is searched for any match of the entered value. </p><p data-v-8d3dbd81> The Prefix notiation for full text search tokens may also be used here. <code data-v-8d3dbd81>characters:saur*</code> will match comics that feature &quot;Sauron&quot; and &quot;Sauruman&quot;. </p><h3 data-v-8d3dbd81>Field Search Boolean Expressions</h3><p data-v-8d3dbd81> Boolean operators may also used in and around field search if the expression is contained in parenthesis. <code data-v-8d3dbd81>characters:(aragorn or boromir)</code> will work. <code data-v-8d3dbd81>characters:(not aragorn)</code> will behave similarly to <code data-v-8d3dbd81>not characters:aragorn</code></p><h3 data-v-8d3dbd81>Leading Operators</h3><p data-v-8d3dbd81> Field Search has it&#39;s own operators that offer more powerful queries. For text, numeric, boolean and datetime fields may be applied at the beginning of the expression <code data-v-8d3dbd81>&gt;</code>,<code data-v-8d3dbd81>&gt;=</code>,<code data-v-8d3dbd81>&lt;</code>,<code data-v-8d3dbd81>&lt;=</code>. And the range syntax <code data-v-8d3dbd81>..</code> accepts two values. For instance: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>pages:&gt;30</code></td><td data-v-8d3dbd81>comics with more than 30 pages</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>author:!frodo</code></td><td data-v-8d3dbd81>comics not written by Frodo</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>year:1066..1215</code></td><td data-v-8d3dbd81>comics published between the year 1066 and 1215.</td></tr></tbody></table><h3 data-v-8d3dbd81>Text Operators</h3><p data-v-8d3dbd81> Field search on text fields may be narrowed using the <code data-v-8d3dbd81>*</code> operator: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:Ar*</code></td><td data-v-8d3dbd81> characters that start with &quot;Ar&quot;, like &quot;Aragorn&quot; and &quot;Arwen&quot; </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:*orn</code></td><td data-v-8d3dbd81> characters that end with &quot;orn&quot;, like &quot;Aragorn&quot; and &quot;Arathorn&quot;. This type of search can be slow </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>series:sil*ion</code></td><td data-v-8d3dbd81> series such as Silmarillion. This type of search can be slow. </td></tr></tbody></table><p data-v-8d3dbd81> The last two examples of text search above looking for suffixes and doing wildcard searches with the <code data-v-8d3dbd81>*</code> in the middle of the word will perform much worse than bare word or prefix searches because they are unable to use the full text search index and will scan the database in a less efficient manner. </p><h3 data-v-8d3dbd81>Dates and DateTimes</h3><p data-v-8d3dbd81> Codex parses Dates and DateTime values liberally. Many quoted english phrases also work. Such as relative dates like &#39;1 min ago&#39;, &#39;2 weeks ago&#39;, &#39;3 months, 1 week and 1 day ago&#39;, &#39;in 2 days&#39;, &#39;tomorrow&#39;. Dates with timezones and named months such as &#39;August 14, 2015 EST&#39;, &#39;July 4, 2013 PST&#39;, &#39;21 July 2013 10:15 pm +0500&#39;. Examples: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>created_at:&quot;3 days ago&quot;..&quot;today&quot;</code></td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>date:&quot;&lt;3 years ago&quot;</code></td></tr></tbody></table><p data-v-8d3dbd81> Placing a leading operator outside the quotes for a date phrase will not be parsed correctly. If the format you try fails, the <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD</code> and <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD-HH:mm:SS</code> formats are reliable. </p><h3 data-v-8d3dbd81>Single Quote complex field Queries</h3><p data-v-8d3dbd81> Use quotes to tell Codex that a complex or natural language phrase should be applied to a specific field </p><code data-v-8d3dbd81> created:&#39;this year&#39; </code><h3 data-v-8d3dbd81>Size Byte Multipliers</h3><p data-v-8d3dbd81> The size field can make use of convenient byte multiplier suffixes like <code data-v-8d3dbd81>kb</code> and <code data-v-8d3dbd81>mb</code> as well as binary suffixes like <code data-v-8d3dbd81>gib</code> and <code data-v-8d3dbd81>tib</code>. For instance <code data-v-8d3dbd81>size:&gt;10mb</code></p><h2 data-v-8d3dbd81>Limitations</h2><p data-v-8d3dbd81> Field searches that use leading operators or text wildcard operators that are prefixed with the <code data-v-8d3dbd81>OR</code> operator like <code data-v-8d3dbd81>OR year:&gt;2020</code> will disregard the <code data-v-8d3dbd81>OR</code> operator and treat it like <code data-v-8d3dbd81>AND</code>. </p></div>',1))])])}const dr=f(rr,[["render",nr],["__scopeId","data-v-8d3dbd81"]]),lr={name:"SearchHelp",components:{SearchHelpText:dr},data(){return{mdiOpenInNew:ue,mdiLifebuoy:Ve}},computed:{..._(h,{isSearchHelpOpenState:e=>e.isSearchHelpOpen}),isSearchHelpOpen:{get(){return this.isSearchHelpOpenState},set(e){this.setSearchHelpOpen(e)}},buttonDensity(){return this.$vuetify.display.smAndDown?"compact":"comfortable"}},methods:{...T(h,["setSearchHelpOpen"])}},cr={id:"searchHelp"};function ur(e,t,a,d,s,r){const o=c("SearchHelpText");return n(),u(bt,{modelValue:r.isSearchHelpOpen,"onUpdate:modelValue":t[0]||(t[0]=l=>r.isSearchHelpOpen=l),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:m(({props:l})=>[i(fe,V(l,{icon:s.mdiLifebuoy,title:"Search Help",density:r.buttonDensity}),null,16,["icon","density"])]),default:m(()=>[g("div",cr,[i(o)])]),_:1},8,["modelValue"])}const mr=f(lr,[["render",ur],["__scopeId","data-v-292e00bb"]]),hr={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:er,SearchHelp:mr},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,toolbarHeight:e=>64+12*!!e.page.searchError})}};function pr(e,t,a,d,s,r){const o=c("BrowserSearchCombobox"),l=c("SearchHelp");return n(),u(ft,null,{default:m(()=>[e.isSearchOpen?(n(),u(K,{key:0,density:"compact",height:e.toolbarHeight},{default:m(()=>[i(W,{id:"searchToolbarItems"},{default:m(()=>[i(o),i(l)]),_:1})]),_:1},8,["height"])):y("",!0)]),_:1})}const br=f(hr,[["render",pr],["__scopeId","data-v-64bebade"]]),fr={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:pe,mdiCloseCircleOutline:he,query:""}},computed:{..._(h,{choices(e){return e.choices.dynamic[this.name]},readingDirectionTitles:e=>e.choices.static.readingDirection,identifierTypeTitles:e=>e.choices.static.identifierType,filter(e){return e.settings.filters[this.name]}}),...me(h,["filterMode"]),hasNone(){for(const e of this.choices)if(ie.has(e)||e instanceof Object&&ie.has(e.pk))return!0;return!1},vuetifyItems(){return yt(this.choices,this.query)},title(){return De(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?$e:Ne},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...T(h,["clearOneFilter","identifierTypeTitle","loadAvailableFilterChoices","loadFilterChoices"]),setUIFilterMode(e){this.filterMode=e,this.query="",e!=="base"&&typeof this.choices!="object"&&this.loadFilterChoices(e)},selected(e){const t={filters:{[this.name]:e}};this.$emit("selected",t)},itemTitle:function(e){return this.name==="readingDirection"?this.readingDirectionTitles[e.value]:this.name==="identifierType"?this.identifierTypeTitle(e.title):e.title},async _loadSubAvailableFilterChoices(){return this.loadAvailableFilterChoices().then(()=>this.loadFilterChoices(this.name))},onClear(){return this.clearOneFilter(this.name).then(()=>this._loadSubAvailableFilterChoices())}}},gr={key:0},_r={class:"filterHeader"};function vr(e,t,a,d,s,r){return n(),v("div",null,[i(gt,{"hide-on-leave":""},{default:m(()=>[e.filterMode==="base"?(n(),u(x,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=o=>r.setUIFilterMode(a.name))},null,8,["title","append-icon"])):y("",!0)]),_:1}),i(_t,{"hide-on-leave":""},{default:m(()=>[e.filterMode===a.name?(n(),v("div",gr,[g("header",_r,[i(x,{class:"filterHeaderTitle","prepend-icon":s.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=o=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(n(),u(x,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0),typeof e.choices=="object"?(n(),u(vt,{key:1,modelValue:s.query,"onUpdate:modelValue":t[2]||(t[2]=o=>s.query=o),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=o=>e.filterMode=a.name)},null,8,["modelValue"])):(n(),u(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(n(),u(ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:m(()=>[r.hasNone?(n(),u(x,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):y("",!0),(n(!0),v($,null,O(r.vuetifyItems,o=>(n(),u(x,{key:o.value,title:r.itemTitle(o),value:o.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):y("",!0)])):y("",!0)]),_:1})])}const yr=f(fr,[["render",vr],["__scopeId","data-v-8436c381"]]),wr={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:yr,ToolbarSelect:P},extends:P,data(){return{mdiCloseCircleOutline:he,mdiFilterMultipleOutline:Pe,menu:!1}},computed:{...C(h,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),..._(h,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,filterMenuClass:function(e){let t="filterMenu";return e.filterMode!=="base"&&(t+="Hidden"),t},dynamicChoiceNames:function(e){if(e.choices.dynamic===void 0)return;const t=[];for(const[a,d]of Object.entries(e.choices.dynamic))d&&t.push(a);return t}}),...me(h,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},methods:{...T(h,["clearFilters","loadAvailableFilterChoices","setSettings"]),onUpdateModelValue(e){const t={filters:{bookmark:e}};this.onSubMenuSelected(t)},onSubMenuSelected(e){this.menu=!1,this.setSettings(e),this.filterMode="base"},onClear(){return this.clearFilters().then(()=>this.loadAvailableFilterChoices()).catch(()=>{console.error("clear filters")})},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},Sr={class:"codexSelection"};function Br(e,t,a,d,s,r){const o=c("BrowserFilterSubMenu"),l=c("ToolbarSelect");return n(),u(l,{menu:s.menu,"onUpdate:menu":[t[0]||(t[0]=p=>s.menu=p),r.onMenu],class:E(["filterBySelect",{filterBySelectXSmall:r.padRight}]),"select-label":"filter by",items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen-1,"onUpdate:modelValue":r.onUpdateModelValue},{selection:m(({item:p})=>[g("span",Sr,w(p.title),1),e.isDynamicFiltersSelected?(n(),u(F,{key:0,class:"filterSuffix",size:"x-small"},{default:m(()=>[B(w(s.mdiFilterMultipleOutline),1)]),_:1})):y("",!0)]),"prepend-item":m(()=>[e.isFiltersClearable?(n(),u(x,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0)]),"append-item":m(()=>[i(q),e.dynamicChoiceNames===void 0?(n(),u(x,{key:0,density:"compact",variant:"plain"},{default:m(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(n(!0),v($,{key:1},O(e.dynamicChoiceNames,p=>(n(),u(o,{key:p,name:p,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(n(),u(x,{key:2,class:"noChoices",density:"compact",variant:"plain",title:"No filters available"}))]),_:1},8,["menu","class","items","menu-props","model-value","max-select-len","onUpdate:modelValue","onUpdate:menu"])}const Cr=f(wr,[["render",Br],["__scopeId","data-v-83a4ac5d"]]),Tr=new Set(["bookmark_updated_at","child_count","community_rating","created_at","critical_rating","page_count","search_score","size","updated_at"]),kr={name:"BrowseOrderBySelect",components:{ToolbarSelect:P},extends:P,computed:{...C(h,["orderByChoices","orderByChoicesMaxLen"]),..._(h,{orderBySetting:e=>e.settings.orderBy}),orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:Tr.has(e)};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function xr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,V({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=l=>r.orderBy=l),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-4},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Mr=f(kr,[["render",xr]]),Fr={name:"ToolbarButton",components:{ScaleButton:Nt}};function Vr(e,t,a,d,s,r){const o=c("ScaleButton");return n(),u(o,{variant:"plain",class:"toolbarButton"},ce({_:2},[O(e.$slots,(l,p)=>({name:p,fn:m(b=>[Oe(e.$slots,p,V({props:l},b))])}))]),1024)}const ve=f(Fr,[["render",Vr]]),$r={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiSortVariant:Ie}},computed:{..._(h,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...T(h,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Nr(e,t,a,d,s,r){const o=c("ToolbarButton");return n(),u(o,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:m(()=>[i(F,{class:E(r.iconClasses)},{default:m(()=>[B(w(s.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const Dr=f($r,[["render",Nr],["__scopeId","data-v-42884e89"]]),Pr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiMagnify:Y}},computed:{..._(h,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...T(h,["setIsSearchOpen"])}};function Or(e,t,a,d,s,r){const o=c("ToolbarButton");return e.isSearchOpen?y("",!0):(n(),u(o,V({key:0,class:"searchButton",icon:s.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=l=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const Ir=f(Pr,[["render",Or]]),Ar=new Set(["a","f"]),Rr={name:"BrowserTopGroupSelect",components:{ToolbarSelect:P},extends:P,data(){return{DIVIDED_VALUES:Ar}},computed:{..._(h,{topGroupSetting:e=>e.settings.topGroup}),...C(h,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...T(h,["setSettings"])}};function Hr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=l=>r.topGroup=l),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:m(({item:l,props:p})=>[s.DIVIDED_VALUES.has(l.value)?(n(),u(q,{key:0})):y("",!0),i(x,V(p,{density:"compact",variant:"plain",title:l.title,value:l.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const qr=f(Rr,[["render",Hr]]),Er={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Cr,BrowserSearchButton:Ir,BrowserTopGroupSelect:qr,BrowserOrderBySelect:Mr,BrowserOrderReverseButton:Dr,SettingsDrawerButton:Dt},data(){return{mdiMagnify:Y,mdiFamilyTree:Ae,browseMode:"filter"}}};function Lr(e,t,a,d,s,r){const o=c("BrowserTopGroupSelect"),l=c("BrowserFilterBySelect"),p=c("BrowserOrderBySelect"),b=c("BrowserOrderReverseButton"),S=c("BrowserSearchButton"),k=c("SettingsDrawerButton");return n(),u(K,{id:"browserToolbarTop",flat:"",density:"compact",height:48},{default:m(()=>[i(W,{id:"browserToolbarLeftItems"},{default:m(()=>[i(o),i(l),i(p),i(b),i(S)]),_:1}),i(wt),i(W,null,{default:m(()=>[i(k)]),_:1})]),_:1})}const Ur=f(Er,[["render",Lr],["__scopeId","data-v-2e9e7881"]]),Gr={name:"BrowserHeader",components:{AppBanner:Qe,BrowserBreadcrumbsToolbar:Yt,BrowserSearchToolbar:br,BrowserTopToolbar:Ur,BrowserTitleToolbar:Wt}},zr={id:"codexHeadToolbarWrapper"};function jr(e,t,a,d,s,r){const o=c("AppBanner"),l=c("BrowserTopToolbar"),p=c("BrowserSearchToolbar"),b=c("BrowserBreadcrumbsToolbar"),S=c("BrowserTitleToolbar");return n(),v("header",zr,[i(o),i(l,{class:"codexHeadToolbar"}),i(p,{class:"codexHeadToolbar"}),i(b,{class:"codexHeadToolbar"}),i(S,{class:"codexHeadToolbar"})])}const Yr=f(Gr,[["render",jr],["__scopeId","data-v-176aeb57"]]),Kr="rpisv",Qr={name:"BrowserSettingsPanel",data(){return{mdiReload:le,openDelay:2e3}},computed:{...C(M,["isAuthorized"]),..._(M,{isUserAuthorized:e=>!!e.user}),..._(h,{groupChoices:e=>{var t,a;return((a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.settingsGroup)||{}},showSettings:e=>{var t;return((t=e.settings)==null?void 0:t.show)||{}},twentyFourHourTime:e=>{var t;return((t=e.settings)==null?void 0:t.twentyFourHourTime)||!1},twentyFourHourTimeTitle:e=>{var t,a,d;return((d=(a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.twentyFourHourTime)==null?void 0:d.title)||""},dynamicCovers:e=>{var t;return((t=e.settings)==null?void 0:t.dynamicCovers)||!1},customCovers:e=>{var t;return((t=e.settings)==null?void 0:t.customCovers)||!1},alwaysShowFilename:e=>{var t;return((t=e.settings)==null?void 0:t.alwaysShowFilename)||!1}}),showShowSettings(){var e,t;return Kr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...T(h,["setSettings"]),setShow(e,t){const a={show:{[e]:t===!0}};this.setSettings(a)},setSetting(e,t){const a={[e]:t===!0};this.setSettings(a)}}},Wr={key:0,class:"browserSettingsBlock"},Xr={class:"browserSettingsBlock"};function Jr(e,t,a,d,s,r){return n(),v($,null,[r.showShowSettings?D((n(),v("div",Wr,[t[4]||(t[4]=g("h4",{class:"browserSettingsHeader"},"Show Group Levels",-1)),(n(!0),v($,null,O(e.groupChoices,o=>(n(),u(R,{key:o.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[o.value],"true-value":!0,label:`Show ${o.title}`,"onUpdate:modelValue":l=>r.setShow(o.value,l)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[H,{openDelay:s.openDelay,text:"Show these groups when navigating the browse tree"}]]):y("",!0),i(q),g("div",Xr,[t[5]||(t[5]=g("h4",{class:"browserSettingsHeader"},"Covers",-1)),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=o=>r.setSetting("dynamicCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Choose covers by filters, search, and order"}]]),D(i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=o=>r.setSetting("customCovers",o))},null,8,["model-value"]),[[H,{openDelay:s.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(q),D(i(R,{class:"browserGroupCheckbox",density:"compact",label:"Always Show Filenames","hide-details":"auto","model-value":!!e.alwaysShowFilename,"onUpdate:modelValue":t[2]||(t[2]=o=>r.setSetting("alwaysShowFilename",o))},null,8,["model-value"]),[[H,{openDelay:1e3,text:"Always show filenames on the browser cards"}]]),i(R,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[3]||(t[3]=o=>r.setSetting("twentyFourHourTime",o))},null,8,["model-value"]),i(q)],64)}const Zr=f(Qr,[["render",Jr],["__scopeId","data-v-a7b78530"]]),ea={name:"BrowserSettingsDrawer",components:{SettingsDrawer:Pt,BrowserSettingsPanel:Zr}};function ta(e,t,a,d,s,r){const o=c("BrowserSettingsPanel"),l=c("SettingsDrawer");return n(),u(l,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:m(()=>[i(o)]),_:1})}const ra=f(ea,[["render",ta]]),aa={name:"BrowserContainerMenu",components:{DownloadButton:Bt,MarkReadButton:St},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:He,showMenu:!1}},computed:{_groupName(){var t,a,d,s,r;return[(t=this.item)==null?void 0:t.publisherName,(a=this.item)==null?void 0:a.imprintName,(d=this.item)==null?void 0:d.seriesName,L((s=this.item)==null?void 0:s.volumeName),Re(this.item,3),(r=this.item)==null?void 0:r.name].filter(Boolean).join(" ")},downloadName(){var e;return((e=this.item)==null?void 0:e.fileName)||this._groupName},downloadItem(){return{...this.item,name:this.downloadName}}}};function oa(e,t,a,d,s,r){const o=c("MarkReadButton"),l=c("DownloadButton");return n(),u($t,{modelValue:s.showMenu,"onUpdate:modelValue":t[1]||(t[1]=p=>s.showMenu=p),"offset-y":"",top:""},{activator:m(({props:p})=>[i(fe,V({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:s.mdiDotsVertical,title:"Action Menu",variant:"text"},p,{onClick:t[0]||(t[0]=qe(()=>{},["prevent"]))}),null,16,["icon"])]),default:m(()=>[i(ge,{class:"background-soft-highlight"},{default:m(()=>[i(o,{class:"listItem",button:!1,item:a.item},null,8,["item"]),i(l,{class:"listItem",button:!1,item:r.downloadItem},null,8,["item"])]),_:1})]),_:1},8,["modelValue"])}const sa=f(aa,[["render",oa],["__scopeId","data-v-f9b20c54"]]),ia={name:"BrowserCardControls",components:{BrowserCardMenu:sa,MetadataButton:Ct},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:ae}},computed:{eyeIcon:function(){return this.eyeOpen?re:ae}}},na={class:"cardControls"};function da(e,t,a,d,s,r){const o=c("MetadataButton"),l=c("BrowserCardMenu");return n(),v("div",na,[a.item.group==="c"?(n(),u(F,{key:0,class:"eye"},{default:m(()=>[B(w(r.eyeIcon),1)]),_:1})):y("",!0),i(o,{group:a.item.group,book:a.item,children:a.item.childCount},null,8,["group","book","children"]),i(l,{item:a.item},null,8,["item"])])}const la=f(ia,[["render",da],["__scopeId","data-v-6f2c700a"]]),ca=new Set(["community_rating","critical_rating"]),ua=new Set(["date"]),ma=new Set(["bookmark_updated_at","created_at","updated_at"]),ha=new Set([null,void 0,"sort_name"]),pa=new Set([null,void 0]),ba={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(ha.has(this.orderBy)||this.orderBy==="filename"&&this.item.group!=="c"||this.orderBy==="story_arc_number"&&this.item.group==="a"||pa.has(e))e="";else if(ua.has(this.orderBy)){const t=new Date(e);e=Ee.format(t)}else this.orderBy=="search_score"?e=this.format_search_score(e):ma.has(this.orderBy)?e=Le(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=Tt(Number.parseInt(e,10)):ca.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}},methods:{format_search_score(e){return e=oe.format(Math.round(Number.parseFloat(e)*10)),Number.isNaN(e)&&(e=""),e}}},fa=["innerHTML"];function ga(e,t,a,d,s,r){return r.orderValue?(n(),v("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,fa)):y("",!0)}const _a=f(ba,[["render",ga],["__scopeId","data-v-892ed807"]]),va={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{..._(h,{orderByFilename:e=>e.settings.orderBy==="filename",orderByName:e=>e.settings.orderBy==="sort_name",topGroup:e=>e.settings.topGroup,showSeries:e=>e.settings.show.s,showVolume:e=>e.settings.show.v,zeroPad:e=>e.page.zeroPad,alwaysShowFilename:e=>e.settings.alwaysShowFilename}),seriesName(){return(this.topGroup==="a"||this.orderByName&&!this.showSeries)&&["c","v"].includes(this.item.group)&&this.item.seriesName?this.item.seriesName:!1},volumeName(){return(this.topGroup==="a"||this.orderByName&&!this.showVolume)&&this.item.group==="c"&&this.item.volumeName?L(this.item.volumeName):!1},headerName(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?Ue(this.item,this.zeroPad):Ge(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName(){return this.item.group==="v"?L(this.item.name):this.item.name},fileName(){return!this.orderByFilename&&(this.alwaysShowFilename||this.topGroup==="f")?this.item.fileName:""},linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ya={class:"browserLink cardSubtitle text-caption"},wa={key:0,class:"fileName"},Sa={key:1,class:"seriesCaption"},Ba={key:2,class:"volumeCaption"},Ca={key:3,class:"headerName"},Ta={class:"displayName"};function ka(e,t,a,d,s,r){return n(),v("div",ya,[r.fileName?(n(),v("div",wa,w(r.fileName),1)):y("",!0),r.seriesName?(n(),v("div",Sa,w(r.seriesName),1)):y("",!0),r.volumeName?(n(),v("div",Ba,w(r.volumeName),1)):y("",!0),r.headerName?(n(),v("div",Ca,w(r.headerName),1)):y("",!0),g("div",Ta,w(r.displayName),1)])}const xa=f(va,[["render",ka],["__scopeId","data-v-e127b46d"]]),Ma=G({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...j(),...ut(),...X(),...ct({transition:"fade-transition"})},"VLazy"),Fa=U()({name:"VLazy",directives:{intersect:dt},props:Ma(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const{dimensionStyles:d}=lt(e),s=ze(e,"modelValue");function r(o){s.value||(s.value=o)}return z(()=>D(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[s.value&&i(mt,{transition:e.transition,appear:!0},{default:()=>{var o;return[(o=a.default)==null?void 0:o.call(a)]}})]}),[[je("intersect"),{handler:r,options:e.options},null]])),{}}}),ne=100,Va=-170,$a={name:"BrowserCard",components:{BookCover:kt,BrowserCardControls:la,BrowserCardSubtitle:xa,OrderByCaption:_a},props:{item:{type:Object,required:!0}},computed:{..._(h,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.name,e},ids(){return this.item.ids.join(",")},browserRoute(){return{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}},toRoute(){return this.item.group==="c"?xt(this.item,this.importMetadata):this.browserRoute},progressBGOpacity(){return this.item.progress?.1:0}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.ids))return;const e=this.$el;if(!e){console.warn("No element found to scroll to!");return}setTimeout(function(){e.scrollIntoView(),setTimeout(function(){window.scrollBy(0,Va)},ne)},ne)}}},Na={class:"browserCardCoverWrapper"},Da={class:"browserCardTop"},Pa={class:"cardFooter"};function Oa(e,t,a,d,s,r){const o=c("BookCover"),l=c("BrowserCardControls"),p=c("router-link"),b=c("BrowserCardSubtitle"),S=c("OrderByCaption");return n(),u(Fa,{id:`card-${r.ids}`,transition:"scale-transition"},{default:m(()=>[g("div",Na,[g("div",Da,[i(o,{group:a.item.group,pks:a.item.ids,mtime:a.item.mtime,"child-count":a.item.childCount,finished:a.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(p,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:m(()=>[i(l,{item:a.item,"eye-open":!!r.toRoute},null,8,["item","eye-open"])]),_:1},8,["to","aria-label"])]),i(J,{class:"bookCoverProgress","bg-opacity":r.progressBGOpacity,"model-value":a.item.progress,"aria-label":`${a.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),g("footer",Pa,[i(b,{item:a.item},null,8,["item"]),i(S,{item:a.item},null,8,["item"])])])]),_:1},8,["id"])}const Ia=f($a,[["render",Oa],["__scopeId","data-v-fdbf59ae"]]),Aa={name:"BrowserEmptyResults",components:{EmptyState:We},data(){return{mdiOpenInNew:ue}},computed:{...C(M,["isAuthorized","isUserAdmin"]),..._(M,{registration:e=>e.adminFlags.registration}),...C(h,["isFiltersClearable"]),..._(h,{librariesExist:e=>e.page.librariesExist}),empty(){let e={};return this.librariesExist?(e.headline="No Comics Found",e.title="For these filter and search settings",e.icon=Ye):(e.headline="No Libraries Exist",this.isUserAdmin?e.title="Use the top right ☰ menu to navigate to the admin panel and add a comic library":this.isAuthorized?e.title="An administrator must add some comics libraries":e.title="Use the top right ☰ menu to log in as an administrator to add libraries",e.icon=Ke),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...T(h,["clearFilters"])}},Ra={key:0},Ha={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function qa(e,t,a,d,s,r){const o=c("EmptyState");return n(),u(o,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=l=>e.clearFilters(!0))},{default:m(()=>[r.showLinkToReadmeAdmin?(n(),v("div",Ra,[t[2]||(t[2]=B(" See the ")),g("a",Ha,[t[1]||(t[1]=B("README ")),i(F,null,{default:m(()=>[B(w(s.mdiOpenInNew),1)]),_:1})]),t[3]||(t[3]=B(" for help "))])):y("",!0)]),_:1},8,["headline","title","icon","action-text"])}const Ea=f(Aa,[["render",qa]]),La={name:"BrowserMain",components:{BrowserCard:Ia,BrowserEmptyState:Ea,PlaceholderLoading:Xe},computed:{..._(M,{nonUsers:e=>e.adminFlags.nonUsers}),...C(M,["isAuthorized","isBanner"]),...C(h,["isSearchMode"]),..._(h,{librariesExist:e=>e.page.librariesExist,showPlaceHolder(e){return this.nonUsers===void 0||this.isAuthorized&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],numPages:e=>e.page.numPages,query:e=>e.settings.q,isSearchOpen:e=>e.isSearchOpen}),browsePaneClasses(){const e={padFooter:this.numPages>1};let t="browsePane";return this.isSearchOpen&&(t+="Search"),this.isBanner&&(t+="Banner"),e[t]=!0,e},showBrowseItems(){return this.cards&&this.cards.length>0&&this.isAuthorized&&!this.showPlaceHolder},searchLimitMessage(){let e="";if(!this.query)return e;const t=+this.$route.params.page,a=100*t;return this.showPlaceHolder?e+=`Searching for ${a} entries...`:this.numPages>t&&(e+=`Search results truncated to ${a} entries.`,e+=" Advance the page to look for more."),e}}},Ua={key:0,id:"browsePaneContainer"},Ga={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function za(e,t,a,d,s,r){const o=c("BrowserCard"),l=c("PlaceholderLoading"),p=c("BrowserEmptyState");return n(),u(be,{id:"browsePane",class:E(r.browsePaneClasses)},{default:m(()=>[r.showBrowseItems?(n(),v("div",Ua,[(n(!0),v($,null,O(e.cards,b=>(n(),u(o,{key:`${b.group}${b.ids}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(n(),u(l,{key:1,class:"placeholder"})):(n(),u(p,{key:2})),r.searchLimitMessage?(n(),v("div",Ga,w(r.searchLimitMessage),1)):y("",!0)]),_:1},8,["class"])}const ja=f(La,[["render",za],["__scopeId","data-v-b95129f3"]]),Ya={name:"BrowserNavButton",components:{PaginationNavButton:Mt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:pe,mdiMagnify:Y,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...C(h,["isSearchMode"]),..._(h,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return this.page+this.increment},title(){return this.showMore?"Search for More":"Page "+this.toPage},toRoute(){const e=this.toPage;return{params:{...this.routeParams,page:e}}},classes(){return{leftButton:this.back,rightButton:!this.back}},disabled(){return this.back&&this.page<=1||!this.back&&this.page>=this.numPages},showMore(){return this.more&&this.isSearchMode&&this.toPage===this.numPages}},watch:{$route(e){this.params=e.params,this.page=+e.params.page}}};function Ka(e,t,a,d,s,r){const o=c("PaginationNavButton");return n(),u(o,{key:r.toRoute,class:E(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:m(()=>[r.showMore?(n(),u(F,{key:0},{default:m(()=>[B(w(s.mdiMagnify),1)]),_:1})):y("",!0),i(F,{class:E({flipHoriz:!a.back})},{default:m(()=>[B(w(s.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const Qa=f(Ya,[["render",Ka],["__scopeId","data-v-372671b3"]]),Wa={name:"BrowserNavToolbar",components:{BrowserNavButton:Qa,PaginationSlider:Vt,PaginationToolbar:Ft},computed:{..._(h,{numPages:e=>e.page.numPages})},methods:{...T(h,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Xa(e,t,a,d,s,r){const o=c("BrowserNavButton"),l=c("PaginationSlider"),p=c("PaginationToolbar");return e.numPages>1?(n(),u(p,{key:0},{default:m(()=>[i(o,{back:!0}),i(l,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=b=>e.routeToPage(b))},null,8,["model-value","max"]),i(o,{back:!1,more:!0})]),_:1})):y("",!0)}const Ja=f(Wa,[["render",Xa]]),Za={name:"MainBrowser",components:{BrowserHeader:Yr,BrowserMain:ja,BrowserNavToolbar:Ja,BrowserSettingsDrawer:ra,Unauthorized:Je},computed:{..._(M,{user:e=>e.user}),...C(M,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...T(h,["loadBrowserPage","loadSettings","setPageMtime"])}};function eo(e,t,a,d,s,r){const o=c("BrowserHeader"),l=c("BrowserMain"),p=c("BrowserNavToolbar"),b=c("BrowserSettingsDrawer"),S=c("Unauthorized");return e.isAuthorized?(n(),u(be,{key:0,id:"browser"},{default:m(()=>[i(o),i(l),i(p),i(b)]),_:1})):(n(),u(S,{key:1}))}const Bo=f(Za,[["render",eo],["__scopeId","data-v-4577512d"]]);export{Bo as default};