codex 1.5.9__py3-none-any.whl → 1.5.10__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 (339) hide show
  1. codex/librarian/janitor/update.py +18 -16
  2. codex/librarian/librariand.py +1 -5
  3. codex/librarian/tasks.py +4 -0
  4. codex/static_root/assets/{VCheckbox-RPeBWFgy.c0e3c4c4deaa.js → VCheckbox-Dq3e1FMC.0e91fe224c4a.js} +1 -1
  5. codex/static_root/assets/VCheckbox-Dq3e1FMC.0e91fe224c4a.js.br +0 -0
  6. codex/static_root/assets/VCheckbox-Dq3e1FMC.0e91fe224c4a.js.gz +0 -0
  7. codex/static_root/assets/{VCheckbox-RPeBWFgy.js → VCheckbox-Dq3e1FMC.js} +1 -1
  8. codex/static_root/assets/VCheckbox-Dq3e1FMC.js.br +0 -0
  9. codex/static_root/assets/VCheckbox-Dq3e1FMC.js.gz +0 -0
  10. codex/static_root/assets/{VCheckboxBtn-CwKlKk7z.8d7caa36a3ac.js → VCheckboxBtn-DbKo7Vio.ca1aabde4316.js} +1 -1
  11. codex/static_root/assets/VCheckboxBtn-DbKo7Vio.ca1aabde4316.js.br +0 -0
  12. codex/static_root/assets/VCheckboxBtn-DbKo7Vio.ca1aabde4316.js.gz +0 -0
  13. codex/static_root/assets/{VCheckboxBtn-CwKlKk7z.js → VCheckboxBtn-DbKo7Vio.js} +1 -1
  14. codex/static_root/assets/VCheckboxBtn-DbKo7Vio.js.br +0 -0
  15. codex/static_root/assets/VCheckboxBtn-DbKo7Vio.js.gz +0 -0
  16. codex/static_root/assets/{VCombobox-DgVMswtt.5685f334102a.js → VCombobox-CKa9jhK-.0910494502f6.js} +1 -1
  17. codex/static_root/assets/VCombobox-CKa9jhK-.0910494502f6.js.br +0 -0
  18. codex/static_root/assets/VCombobox-CKa9jhK-.0910494502f6.js.gz +0 -0
  19. codex/static_root/assets/{VCombobox-DgVMswtt.js → VCombobox-CKa9jhK-.js} +1 -1
  20. codex/static_root/assets/VCombobox-CKa9jhK-.js.br +0 -0
  21. codex/static_root/assets/VCombobox-CKa9jhK-.js.gz +0 -0
  22. codex/static_root/assets/{VDataTableVirtual-CYU6VHSb.fa1b727f4ceb.js → VDataTableVirtual-BfZlLiv4.bb4045855548.js} +1 -1
  23. codex/static_root/assets/VDataTableVirtual-BfZlLiv4.bb4045855548.js.br +0 -0
  24. codex/static_root/assets/VDataTableVirtual-BfZlLiv4.bb4045855548.js.gz +0 -0
  25. codex/static_root/assets/{VDataTableVirtual-CYU6VHSb.js → VDataTableVirtual-BfZlLiv4.js} +1 -1
  26. codex/static_root/assets/VDataTableVirtual-BfZlLiv4.js.br +0 -0
  27. codex/static_root/assets/VDataTableVirtual-BfZlLiv4.js.gz +0 -0
  28. codex/static_root/assets/{VExpansionPanel-B2jVSe6n.709be0bfd8a9.js → VExpansionPanel-BCCk-ter.73bda1e554d3.js} +1 -1
  29. codex/static_root/assets/VExpansionPanel-BCCk-ter.73bda1e554d3.js.br +0 -0
  30. codex/static_root/assets/VExpansionPanel-BCCk-ter.73bda1e554d3.js.gz +0 -0
  31. codex/static_root/assets/{VExpansionPanel-B2jVSe6n.js → VExpansionPanel-BCCk-ter.js} +1 -1
  32. codex/static_root/assets/VExpansionPanel-BCCk-ter.js.br +0 -0
  33. codex/static_root/assets/VExpansionPanel-BCCk-ter.js.gz +0 -0
  34. codex/static_root/assets/{VMain-DUot655v.58737665d0c0.js → VMain-DittTZHT.224fc4fd5a7d.js} +1 -1
  35. codex/static_root/assets/VMain-DittTZHT.224fc4fd5a7d.js.br +0 -0
  36. codex/static_root/assets/VMain-DittTZHT.224fc4fd5a7d.js.gz +0 -0
  37. codex/static_root/assets/{VMain-DUot655v.js → VMain-DittTZHT.js} +1 -1
  38. codex/static_root/assets/VMain-DittTZHT.js.br +0 -0
  39. codex/static_root/assets/VMain-DittTZHT.js.gz +0 -0
  40. codex/static_root/assets/{VRadioGroup-e5ZzndXH.545e89fea1a2.js → VRadioGroup-U3BqBSqW.fbb2baafb3b7.js} +1 -1
  41. codex/static_root/assets/VRadioGroup-U3BqBSqW.fbb2baafb3b7.js.br +0 -0
  42. codex/static_root/assets/VRadioGroup-U3BqBSqW.fbb2baafb3b7.js.gz +0 -0
  43. codex/static_root/assets/{VRadioGroup-e5ZzndXH.js → VRadioGroup-U3BqBSqW.js} +1 -1
  44. codex/static_root/assets/VRadioGroup-U3BqBSqW.js.br +0 -0
  45. codex/static_root/assets/VRadioGroup-U3BqBSqW.js.gz +0 -0
  46. codex/static_root/assets/{VSelect-CxY8UVRq.dc3019941096.js → VSelect-DQK0dr_P.b1f1e310877e.js} +1 -1
  47. codex/static_root/assets/VSelect-DQK0dr_P.b1f1e310877e.js.br +0 -0
  48. codex/static_root/assets/VSelect-DQK0dr_P.b1f1e310877e.js.gz +0 -0
  49. codex/static_root/assets/{VSelect-CxY8UVRq.js → VSelect-DQK0dr_P.js} +1 -1
  50. codex/static_root/assets/VSelect-DQK0dr_P.js.br +0 -0
  51. codex/static_root/assets/VSelect-DQK0dr_P.js.gz +0 -0
  52. codex/static_root/assets/{VSelectionControl-DsJeRYlc.ebee94ea88d0.js → VSelectionControl-D6Lff-4t.3b2640dc0a60.js} +1 -1
  53. codex/static_root/assets/VSelectionControl-D6Lff-4t.3b2640dc0a60.js.br +0 -0
  54. codex/static_root/assets/VSelectionControl-D6Lff-4t.3b2640dc0a60.js.gz +0 -0
  55. codex/static_root/assets/{VSelectionControl-DsJeRYlc.js → VSelectionControl-D6Lff-4t.js} +1 -1
  56. codex/static_root/assets/VSelectionControl-D6Lff-4t.js.br +0 -0
  57. codex/static_root/assets/VSelectionControl-D6Lff-4t.js.gz +0 -0
  58. codex/static_root/assets/{VSlideGroup-VeMEwEff.3d72e1175a80.js → VSlideGroup-DZYc9yjh.ff01aac17222.js} +1 -1
  59. codex/static_root/assets/VSlideGroup-DZYc9yjh.ff01aac17222.js.br +0 -0
  60. codex/static_root/assets/VSlideGroup-DZYc9yjh.ff01aac17222.js.gz +0 -0
  61. codex/static_root/assets/{VSlideGroup-VeMEwEff.js → VSlideGroup-DZYc9yjh.js} +1 -1
  62. codex/static_root/assets/VSlideGroup-DZYc9yjh.js.br +0 -0
  63. codex/static_root/assets/VSlideGroup-DZYc9yjh.js.gz +0 -0
  64. codex/static_root/assets/{VTable-CAK_p0Il.c1781e76e150.js → VTable-x_Oa5l-b.e1e4207b7f42.js} +1 -1
  65. codex/static_root/assets/VTable-x_Oa5l-b.e1e4207b7f42.js.br +0 -0
  66. codex/static_root/assets/VTable-x_Oa5l-b.e1e4207b7f42.js.gz +0 -0
  67. codex/static_root/assets/{VTable-CAK_p0Il.js → VTable-x_Oa5l-b.js} +1 -1
  68. codex/static_root/assets/VTable-x_Oa5l-b.js.br +0 -0
  69. codex/static_root/assets/VTable-x_Oa5l-b.js.gz +0 -0
  70. codex/static_root/assets/{VToolbar-Dyufo4_P.js → VToolbar-CFS6f65a.00e151a63cca.js} +2 -2
  71. codex/static_root/assets/VToolbar-CFS6f65a.00e151a63cca.js.br +0 -0
  72. codex/static_root/assets/VToolbar-CFS6f65a.00e151a63cca.js.gz +0 -0
  73. codex/static_root/assets/{VToolbar-Dyufo4_P.24ef4946e516.js → VToolbar-CFS6f65a.js} +2 -2
  74. codex/static_root/assets/VToolbar-CFS6f65a.js.br +0 -0
  75. codex/static_root/assets/VToolbar-CFS6f65a.js.gz +0 -0
  76. codex/static_root/assets/{VWindowItem-BNlHE64F.3d075bae3388.js → VWindowItem-3lePjOxk.2d4e0ede3f26.js} +1 -1
  77. codex/static_root/assets/VWindowItem-3lePjOxk.2d4e0ede3f26.js.br +0 -0
  78. codex/static_root/assets/VWindowItem-3lePjOxk.2d4e0ede3f26.js.gz +0 -0
  79. codex/static_root/assets/{VWindowItem-BNlHE64F.js → VWindowItem-3lePjOxk.js} +1 -1
  80. codex/static_root/assets/VWindowItem-3lePjOxk.js.br +0 -0
  81. codex/static_root/assets/VWindowItem-3lePjOxk.js.gz +0 -0
  82. codex/static_root/assets/{admin-DjnFySLh.3a08126dc39c.js → admin-CjUtKsAs.d61be68eb520.js} +1 -1
  83. codex/static_root/assets/admin-CjUtKsAs.d61be68eb520.js.br +0 -0
  84. codex/static_root/assets/admin-CjUtKsAs.d61be68eb520.js.gz +0 -0
  85. codex/static_root/assets/{admin-DjnFySLh.js → admin-CjUtKsAs.js} +1 -1
  86. codex/static_root/assets/admin-CjUtKsAs.js.br +0 -0
  87. codex/static_root/assets/admin-CjUtKsAs.js.gz +0 -0
  88. codex/static_root/assets/{admin-drawer-panel-DY_fALho.4d912224504e.js → admin-drawer-panel-qx4h4jTa.28cb687c40ea.js} +1 -1
  89. codex/static_root/assets/admin-drawer-panel-qx4h4jTa.28cb687c40ea.js.br +0 -0
  90. codex/static_root/assets/admin-drawer-panel-qx4h4jTa.28cb687c40ea.js.gz +0 -0
  91. codex/static_root/assets/{admin-drawer-panel-DY_fALho.js → admin-drawer-panel-qx4h4jTa.js} +1 -1
  92. codex/static_root/assets/admin-drawer-panel-qx4h4jTa.js.br +0 -0
  93. codex/static_root/assets/admin-drawer-panel-qx4h4jTa.js.gz +0 -0
  94. codex/static_root/assets/{browser-B8cDJ5-w.150cd5de25bc.js → browser-BRJq7ajr.5d4f57dc9aa3.js} +1 -1
  95. codex/static_root/assets/browser-BRJq7ajr.5d4f57dc9aa3.js.br +0 -0
  96. codex/static_root/assets/browser-BRJq7ajr.5d4f57dc9aa3.js.gz +0 -0
  97. codex/static_root/assets/{browser-B8cDJ5-w.js → browser-BRJq7ajr.js} +1 -1
  98. codex/static_root/assets/browser-BRJq7ajr.js.br +0 -0
  99. codex/static_root/assets/browser-BRJq7ajr.js.gz +0 -0
  100. codex/static_root/assets/{change-password-dialog-DgDGjI2a.d9af24abb0b9.js → change-password-dialog-DF5XThbF.e941bfcc78e5.js} +1 -1
  101. codex/static_root/assets/change-password-dialog-DF5XThbF.e941bfcc78e5.js.br +0 -0
  102. codex/static_root/assets/change-password-dialog-DF5XThbF.e941bfcc78e5.js.gz +0 -0
  103. codex/static_root/assets/{change-password-dialog-DgDGjI2a.js → change-password-dialog-DF5XThbF.js} +1 -1
  104. codex/static_root/assets/change-password-dialog-DF5XThbF.js.br +0 -0
  105. codex/static_root/assets/change-password-dialog-DF5XThbF.js.gz +0 -0
  106. codex/static_root/assets/{confirm-dialog-GVok5hYU.0df954b875de.js → confirm-dialog-DwEXLn55.0951f3d976a0.js} +1 -1
  107. codex/static_root/assets/confirm-dialog-DwEXLn55.0951f3d976a0.js.br +0 -0
  108. codex/static_root/assets/confirm-dialog-DwEXLn55.0951f3d976a0.js.gz +0 -0
  109. codex/static_root/assets/{confirm-dialog-GVok5hYU.js → confirm-dialog-DwEXLn55.js} +1 -1
  110. codex/static_root/assets/confirm-dialog-DwEXLn55.js.br +0 -0
  111. codex/static_root/assets/confirm-dialog-DwEXLn55.js.gz +0 -0
  112. codex/static_root/assets/{confirm-footer-CWKcBA7p.fe0ccb86962b.js → confirm-footer-Bh1JTOMT.ec3744254ef8.js} +1 -1
  113. codex/static_root/assets/confirm-footer-Bh1JTOMT.ec3744254ef8.js.br +0 -0
  114. codex/static_root/assets/confirm-footer-Bh1JTOMT.ec3744254ef8.js.gz +0 -0
  115. codex/static_root/assets/{confirm-footer-CWKcBA7p.js → confirm-footer-Bh1JTOMT.js} +1 -1
  116. codex/static_root/assets/confirm-footer-Bh1JTOMT.js.br +0 -0
  117. codex/static_root/assets/confirm-footer-Bh1JTOMT.js.gz +0 -0
  118. codex/static_root/assets/{datetime-column-BRV63LgW.f23352488b87.js → datetime-column-rTAJxmb4.328f06f6ba47.js} +1 -1
  119. codex/static_root/assets/datetime-column-rTAJxmb4.328f06f6ba47.js.br +0 -0
  120. codex/static_root/assets/datetime-column-rTAJxmb4.328f06f6ba47.js.gz +0 -0
  121. codex/static_root/assets/{datetime-column-BRV63LgW.js → datetime-column-rTAJxmb4.js} +1 -1
  122. codex/static_root/assets/datetime-column-rTAJxmb4.js.br +0 -0
  123. codex/static_root/assets/datetime-column-rTAJxmb4.js.gz +0 -0
  124. codex/static_root/assets/{filter-Cq-w9FH_.c04d9050f1a2.js → filter-D2btmWuH.4d72f7553dc1.js} +1 -1
  125. codex/static_root/assets/filter-D2btmWuH.4d72f7553dc1.js.br +0 -0
  126. codex/static_root/assets/filter-D2btmWuH.4d72f7553dc1.js.gz +0 -0
  127. codex/static_root/assets/{filter-Cq-w9FH_.js → filter-D2btmWuH.js} +1 -1
  128. codex/static_root/assets/filter-D2btmWuH.js.br +0 -0
  129. codex/static_root/assets/filter-D2btmWuH.js.gz +0 -0
  130. codex/static_root/assets/{flag-tab-D4WJek8g.c59cde03b73d.js → flag-tab-BFLzryR3.f3cd3bf140f8.js} +1 -1
  131. codex/static_root/assets/flag-tab-BFLzryR3.f3cd3bf140f8.js.br +0 -0
  132. codex/static_root/assets/flag-tab-BFLzryR3.f3cd3bf140f8.js.gz +0 -0
  133. codex/static_root/assets/{flag-tab-D4WJek8g.js → flag-tab-BFLzryR3.js} +1 -1
  134. codex/static_root/assets/flag-tab-BFLzryR3.js.br +0 -0
  135. codex/static_root/assets/flag-tab-BFLzryR3.js.gz +0 -0
  136. codex/static_root/assets/{group-tab-CHIOVL3t.43f1b2e737d0.js → group-tab-DTbvMw78.37da8077ea54.js} +1 -1
  137. codex/static_root/assets/group-tab-DTbvMw78.37da8077ea54.js.br +0 -0
  138. codex/static_root/assets/group-tab-DTbvMw78.37da8077ea54.js.gz +0 -0
  139. codex/static_root/assets/{group-tab-CHIOVL3t.js → group-tab-DTbvMw78.js} +1 -1
  140. codex/static_root/assets/group-tab-DTbvMw78.js.br +0 -0
  141. codex/static_root/assets/group-tab-DTbvMw78.js.gz +0 -0
  142. codex/static_root/assets/{http-error-Mg4IhB2h.19679151549b.js → http-error-D0ffcxa3.e8b228c92ad2.js} +1 -1
  143. codex/static_root/assets/http-error-D0ffcxa3.e8b228c92ad2.js.br +0 -0
  144. codex/static_root/assets/http-error-D0ffcxa3.e8b228c92ad2.js.gz +0 -0
  145. codex/static_root/assets/{http-error-Mg4IhB2h.js → http-error-D0ffcxa3.js} +1 -1
  146. codex/static_root/assets/http-error-D0ffcxa3.js.br +0 -0
  147. codex/static_root/assets/http-error-D0ffcxa3.js.gz +0 -0
  148. codex/static_root/assets/{library-tab-CiF2Hc5t.a6628c68d738.js → library-tab-5d5bjUIi.97a27251f0ef.js} +1 -1
  149. codex/static_root/assets/library-tab-5d5bjUIi.97a27251f0ef.js.br +0 -0
  150. codex/static_root/assets/library-tab-5d5bjUIi.97a27251f0ef.js.gz +0 -0
  151. codex/static_root/assets/{library-tab-CiF2Hc5t.js → library-tab-5d5bjUIi.js} +1 -1
  152. codex/static_root/assets/library-tab-5d5bjUIi.js.br +0 -0
  153. codex/static_root/assets/library-tab-5d5bjUIi.js.gz +0 -0
  154. codex/static_root/assets/{main-Dz9u71DQ.js → main-D90pCWS5.2ccbffc0f884.js} +6 -6
  155. codex/static_root/assets/main-D90pCWS5.2ccbffc0f884.js.br +0 -0
  156. codex/static_root/assets/main-D90pCWS5.2ccbffc0f884.js.gz +0 -0
  157. codex/static_root/assets/{main-Dz9u71DQ.2f4e5662224c.js → main-D90pCWS5.js} +6 -6
  158. codex/static_root/assets/main-D90pCWS5.js.br +0 -0
  159. codex/static_root/assets/main-D90pCWS5.js.gz +0 -0
  160. codex/static_root/assets/{metadata-dialog-D-XX9wAf.cd5465341ca1.js → metadata-dialog-B1ZLku4K.79d312d9fa3f.js} +1 -1
  161. codex/static_root/assets/metadata-dialog-B1ZLku4K.79d312d9fa3f.js.br +0 -0
  162. codex/static_root/assets/metadata-dialog-B1ZLku4K.79d312d9fa3f.js.gz +0 -0
  163. codex/static_root/assets/{metadata-dialog-D-XX9wAf.js → metadata-dialog-B1ZLku4K.js} +1 -1
  164. codex/static_root/assets/metadata-dialog-B1ZLku4K.js.br +0 -0
  165. codex/static_root/assets/metadata-dialog-B1ZLku4K.js.gz +0 -0
  166. codex/static_root/assets/{pdf-doc-a-oCC_tG.f8ec02f0e84b.js → pdf-doc-X0UeM3cp.f9119afe93c0.js} +1 -1
  167. codex/static_root/assets/pdf-doc-X0UeM3cp.f9119afe93c0.js.br +0 -0
  168. codex/static_root/assets/pdf-doc-X0UeM3cp.f9119afe93c0.js.gz +0 -0
  169. codex/static_root/assets/{pdf-doc-a-oCC_tG.js → pdf-doc-X0UeM3cp.js} +1 -1
  170. codex/static_root/assets/pdf-doc-X0UeM3cp.js.br +0 -0
  171. codex/static_root/assets/pdf-doc-X0UeM3cp.js.gz +0 -0
  172. codex/static_root/assets/{reader-D205EQd-.f7b10abbf5ca.js → reader-Def28ZSX.07e0b37f9bde.js} +2 -2
  173. codex/static_root/assets/reader-Def28ZSX.07e0b37f9bde.js.br +0 -0
  174. codex/static_root/assets/reader-Def28ZSX.07e0b37f9bde.js.gz +0 -0
  175. codex/static_root/assets/{reader-D205EQd-.js → reader-Def28ZSX.js} +2 -2
  176. codex/static_root/assets/reader-Def28ZSX.js.br +0 -0
  177. codex/static_root/assets/reader-Def28ZSX.js.gz +0 -0
  178. codex/static_root/assets/{stats-tab-ZJVUN0Bb.46124f9c673f.js → stats-tab-C3TG5It1.87d46cf61bd9.js} +1 -1
  179. codex/static_root/assets/stats-tab-C3TG5It1.87d46cf61bd9.js.br +0 -0
  180. codex/static_root/assets/stats-tab-C3TG5It1.87d46cf61bd9.js.gz +0 -0
  181. codex/static_root/assets/{stats-tab-ZJVUN0Bb.js → stats-tab-C3TG5It1.js} +1 -1
  182. codex/static_root/assets/stats-tab-C3TG5It1.js.br +0 -0
  183. codex/static_root/assets/stats-tab-C3TG5It1.js.gz +0 -0
  184. codex/static_root/assets/{task-tab-48ysPp-X.d48d8675190c.js → task-tab-AbwRuxMq.235880ae45e1.js} +1 -1
  185. codex/static_root/assets/task-tab-AbwRuxMq.235880ae45e1.js.br +0 -0
  186. codex/static_root/assets/task-tab-AbwRuxMq.235880ae45e1.js.gz +0 -0
  187. codex/static_root/assets/{task-tab-48ysPp-X.js → task-tab-AbwRuxMq.js} +1 -1
  188. codex/static_root/assets/task-tab-AbwRuxMq.js.br +0 -0
  189. codex/static_root/assets/task-tab-AbwRuxMq.js.gz +0 -0
  190. codex/static_root/assets/{user-tab-rG7-IzRY.d3e8fa81914d.js → user-tab-DXnvKSvc.e4d400bd6f8c.js} +1 -1
  191. codex/static_root/assets/user-tab-DXnvKSvc.e4d400bd6f8c.js.br +0 -0
  192. codex/static_root/assets/user-tab-DXnvKSvc.e4d400bd6f8c.js.gz +0 -0
  193. codex/static_root/assets/{user-tab-rG7-IzRY.js → user-tab-DXnvKSvc.js} +1 -1
  194. codex/static_root/assets/user-tab-DXnvKSvc.js.br +0 -0
  195. codex/static_root/assets/user-tab-DXnvKSvc.js.gz +0 -0
  196. codex/static_root/{manifest.d1d6846d318a.json → manifest.0b64e43fe686.json} +205 -205
  197. codex/static_root/manifest.0b64e43fe686.json.br +0 -0
  198. codex/static_root/manifest.0b64e43fe686.json.gz +0 -0
  199. codex/static_root/manifest.json +205 -205
  200. codex/static_root/manifest.json.br +0 -0
  201. codex/static_root/manifest.json.gz +0 -0
  202. codex/static_root/staticfiles.json +1 -1
  203. codex/views/admin/tasks.py +2 -0
  204. codex/views/browser/browser.py +5 -3
  205. {codex-1.5.9.dist-info → codex-1.5.10.dist-info}/METADATA +1 -1
  206. {codex-1.5.9.dist-info → codex-1.5.10.dist-info}/RECORD +209 -209
  207. codex/static_root/assets/VCheckbox-RPeBWFgy.c0e3c4c4deaa.js.br +0 -0
  208. codex/static_root/assets/VCheckbox-RPeBWFgy.c0e3c4c4deaa.js.gz +0 -0
  209. codex/static_root/assets/VCheckbox-RPeBWFgy.js.br +0 -0
  210. codex/static_root/assets/VCheckbox-RPeBWFgy.js.gz +0 -0
  211. codex/static_root/assets/VCheckboxBtn-CwKlKk7z.8d7caa36a3ac.js.br +0 -0
  212. codex/static_root/assets/VCheckboxBtn-CwKlKk7z.8d7caa36a3ac.js.gz +0 -0
  213. codex/static_root/assets/VCheckboxBtn-CwKlKk7z.js.br +0 -0
  214. codex/static_root/assets/VCheckboxBtn-CwKlKk7z.js.gz +0 -0
  215. codex/static_root/assets/VCombobox-DgVMswtt.5685f334102a.js.br +0 -0
  216. codex/static_root/assets/VCombobox-DgVMswtt.5685f334102a.js.gz +0 -0
  217. codex/static_root/assets/VCombobox-DgVMswtt.js.br +0 -0
  218. codex/static_root/assets/VCombobox-DgVMswtt.js.gz +0 -0
  219. codex/static_root/assets/VDataTableVirtual-CYU6VHSb.fa1b727f4ceb.js.br +0 -0
  220. codex/static_root/assets/VDataTableVirtual-CYU6VHSb.fa1b727f4ceb.js.gz +0 -0
  221. codex/static_root/assets/VDataTableVirtual-CYU6VHSb.js.br +0 -0
  222. codex/static_root/assets/VDataTableVirtual-CYU6VHSb.js.gz +0 -0
  223. codex/static_root/assets/VExpansionPanel-B2jVSe6n.709be0bfd8a9.js.br +0 -0
  224. codex/static_root/assets/VExpansionPanel-B2jVSe6n.709be0bfd8a9.js.gz +0 -0
  225. codex/static_root/assets/VExpansionPanel-B2jVSe6n.js.br +0 -0
  226. codex/static_root/assets/VExpansionPanel-B2jVSe6n.js.gz +0 -0
  227. codex/static_root/assets/VMain-DUot655v.58737665d0c0.js.br +0 -0
  228. codex/static_root/assets/VMain-DUot655v.58737665d0c0.js.gz +0 -0
  229. codex/static_root/assets/VMain-DUot655v.js.br +0 -0
  230. codex/static_root/assets/VMain-DUot655v.js.gz +0 -0
  231. codex/static_root/assets/VRadioGroup-e5ZzndXH.545e89fea1a2.js.br +0 -0
  232. codex/static_root/assets/VRadioGroup-e5ZzndXH.545e89fea1a2.js.gz +0 -0
  233. codex/static_root/assets/VRadioGroup-e5ZzndXH.js.br +0 -0
  234. codex/static_root/assets/VRadioGroup-e5ZzndXH.js.gz +0 -0
  235. codex/static_root/assets/VSelect-CxY8UVRq.dc3019941096.js.br +0 -0
  236. codex/static_root/assets/VSelect-CxY8UVRq.dc3019941096.js.gz +0 -0
  237. codex/static_root/assets/VSelect-CxY8UVRq.js.br +0 -0
  238. codex/static_root/assets/VSelect-CxY8UVRq.js.gz +0 -0
  239. codex/static_root/assets/VSelectionControl-DsJeRYlc.ebee94ea88d0.js.br +0 -0
  240. codex/static_root/assets/VSelectionControl-DsJeRYlc.ebee94ea88d0.js.gz +0 -0
  241. codex/static_root/assets/VSelectionControl-DsJeRYlc.js.br +0 -0
  242. codex/static_root/assets/VSelectionControl-DsJeRYlc.js.gz +0 -0
  243. codex/static_root/assets/VSlideGroup-VeMEwEff.3d72e1175a80.js.br +0 -0
  244. codex/static_root/assets/VSlideGroup-VeMEwEff.3d72e1175a80.js.gz +0 -0
  245. codex/static_root/assets/VSlideGroup-VeMEwEff.js.br +0 -0
  246. codex/static_root/assets/VSlideGroup-VeMEwEff.js.gz +0 -0
  247. codex/static_root/assets/VTable-CAK_p0Il.c1781e76e150.js.br +0 -0
  248. codex/static_root/assets/VTable-CAK_p0Il.c1781e76e150.js.gz +0 -0
  249. codex/static_root/assets/VTable-CAK_p0Il.js.br +0 -0
  250. codex/static_root/assets/VTable-CAK_p0Il.js.gz +0 -0
  251. codex/static_root/assets/VToolbar-Dyufo4_P.24ef4946e516.js.br +0 -0
  252. codex/static_root/assets/VToolbar-Dyufo4_P.24ef4946e516.js.gz +0 -0
  253. codex/static_root/assets/VToolbar-Dyufo4_P.js.br +0 -0
  254. codex/static_root/assets/VToolbar-Dyufo4_P.js.gz +0 -0
  255. codex/static_root/assets/VWindowItem-BNlHE64F.3d075bae3388.js.br +0 -0
  256. codex/static_root/assets/VWindowItem-BNlHE64F.3d075bae3388.js.gz +0 -0
  257. codex/static_root/assets/VWindowItem-BNlHE64F.js.br +0 -0
  258. codex/static_root/assets/VWindowItem-BNlHE64F.js.gz +0 -0
  259. codex/static_root/assets/admin-DjnFySLh.3a08126dc39c.js.br +0 -0
  260. codex/static_root/assets/admin-DjnFySLh.3a08126dc39c.js.gz +0 -0
  261. codex/static_root/assets/admin-DjnFySLh.js.br +0 -0
  262. codex/static_root/assets/admin-DjnFySLh.js.gz +0 -0
  263. codex/static_root/assets/admin-drawer-panel-DY_fALho.4d912224504e.js.br +0 -0
  264. codex/static_root/assets/admin-drawer-panel-DY_fALho.4d912224504e.js.gz +0 -0
  265. codex/static_root/assets/admin-drawer-panel-DY_fALho.js.br +0 -0
  266. codex/static_root/assets/admin-drawer-panel-DY_fALho.js.gz +0 -0
  267. codex/static_root/assets/browser-B8cDJ5-w.150cd5de25bc.js.br +0 -0
  268. codex/static_root/assets/browser-B8cDJ5-w.150cd5de25bc.js.gz +0 -0
  269. codex/static_root/assets/browser-B8cDJ5-w.js.br +0 -0
  270. codex/static_root/assets/browser-B8cDJ5-w.js.gz +0 -0
  271. codex/static_root/assets/change-password-dialog-DgDGjI2a.d9af24abb0b9.js.br +0 -0
  272. codex/static_root/assets/change-password-dialog-DgDGjI2a.d9af24abb0b9.js.gz +0 -0
  273. codex/static_root/assets/change-password-dialog-DgDGjI2a.js.br +0 -0
  274. codex/static_root/assets/change-password-dialog-DgDGjI2a.js.gz +0 -0
  275. codex/static_root/assets/confirm-dialog-GVok5hYU.0df954b875de.js.br +0 -2
  276. codex/static_root/assets/confirm-dialog-GVok5hYU.0df954b875de.js.gz +0 -0
  277. codex/static_root/assets/confirm-dialog-GVok5hYU.js.br +0 -2
  278. codex/static_root/assets/confirm-dialog-GVok5hYU.js.gz +0 -0
  279. codex/static_root/assets/confirm-footer-CWKcBA7p.fe0ccb86962b.js.br +0 -0
  280. codex/static_root/assets/confirm-footer-CWKcBA7p.fe0ccb86962b.js.gz +0 -0
  281. codex/static_root/assets/confirm-footer-CWKcBA7p.js.br +0 -0
  282. codex/static_root/assets/confirm-footer-CWKcBA7p.js.gz +0 -0
  283. codex/static_root/assets/datetime-column-BRV63LgW.f23352488b87.js.br +0 -0
  284. codex/static_root/assets/datetime-column-BRV63LgW.f23352488b87.js.gz +0 -0
  285. codex/static_root/assets/datetime-column-BRV63LgW.js.br +0 -0
  286. codex/static_root/assets/datetime-column-BRV63LgW.js.gz +0 -0
  287. codex/static_root/assets/filter-Cq-w9FH_.c04d9050f1a2.js.br +0 -0
  288. codex/static_root/assets/filter-Cq-w9FH_.c04d9050f1a2.js.gz +0 -0
  289. codex/static_root/assets/filter-Cq-w9FH_.js.br +0 -0
  290. codex/static_root/assets/filter-Cq-w9FH_.js.gz +0 -0
  291. codex/static_root/assets/flag-tab-D4WJek8g.c59cde03b73d.js.br +0 -0
  292. codex/static_root/assets/flag-tab-D4WJek8g.c59cde03b73d.js.gz +0 -0
  293. codex/static_root/assets/flag-tab-D4WJek8g.js.br +0 -0
  294. codex/static_root/assets/flag-tab-D4WJek8g.js.gz +0 -0
  295. codex/static_root/assets/group-tab-CHIOVL3t.43f1b2e737d0.js.br +0 -0
  296. codex/static_root/assets/group-tab-CHIOVL3t.43f1b2e737d0.js.gz +0 -0
  297. codex/static_root/assets/group-tab-CHIOVL3t.js.br +0 -0
  298. codex/static_root/assets/group-tab-CHIOVL3t.js.gz +0 -0
  299. codex/static_root/assets/http-error-Mg4IhB2h.19679151549b.js.br +0 -3
  300. codex/static_root/assets/http-error-Mg4IhB2h.19679151549b.js.gz +0 -0
  301. codex/static_root/assets/http-error-Mg4IhB2h.js.br +0 -3
  302. codex/static_root/assets/http-error-Mg4IhB2h.js.gz +0 -0
  303. codex/static_root/assets/library-tab-CiF2Hc5t.a6628c68d738.js.br +0 -0
  304. codex/static_root/assets/library-tab-CiF2Hc5t.a6628c68d738.js.gz +0 -0
  305. codex/static_root/assets/library-tab-CiF2Hc5t.js.br +0 -0
  306. codex/static_root/assets/library-tab-CiF2Hc5t.js.gz +0 -0
  307. codex/static_root/assets/main-Dz9u71DQ.2f4e5662224c.js.br +0 -0
  308. codex/static_root/assets/main-Dz9u71DQ.2f4e5662224c.js.gz +0 -0
  309. codex/static_root/assets/main-Dz9u71DQ.js.br +0 -0
  310. codex/static_root/assets/main-Dz9u71DQ.js.gz +0 -0
  311. codex/static_root/assets/metadata-dialog-D-XX9wAf.cd5465341ca1.js.br +0 -0
  312. codex/static_root/assets/metadata-dialog-D-XX9wAf.cd5465341ca1.js.gz +0 -0
  313. codex/static_root/assets/metadata-dialog-D-XX9wAf.js.br +0 -0
  314. codex/static_root/assets/metadata-dialog-D-XX9wAf.js.gz +0 -0
  315. codex/static_root/assets/pdf-doc-a-oCC_tG.f8ec02f0e84b.js.br +0 -0
  316. codex/static_root/assets/pdf-doc-a-oCC_tG.f8ec02f0e84b.js.gz +0 -0
  317. codex/static_root/assets/pdf-doc-a-oCC_tG.js.br +0 -0
  318. codex/static_root/assets/pdf-doc-a-oCC_tG.js.gz +0 -0
  319. codex/static_root/assets/reader-D205EQd-.f7b10abbf5ca.js.br +0 -0
  320. codex/static_root/assets/reader-D205EQd-.f7b10abbf5ca.js.gz +0 -0
  321. codex/static_root/assets/reader-D205EQd-.js.br +0 -0
  322. codex/static_root/assets/reader-D205EQd-.js.gz +0 -0
  323. codex/static_root/assets/stats-tab-ZJVUN0Bb.46124f9c673f.js.br +0 -0
  324. codex/static_root/assets/stats-tab-ZJVUN0Bb.46124f9c673f.js.gz +0 -0
  325. codex/static_root/assets/stats-tab-ZJVUN0Bb.js.br +0 -0
  326. codex/static_root/assets/stats-tab-ZJVUN0Bb.js.gz +0 -0
  327. codex/static_root/assets/task-tab-48ysPp-X.d48d8675190c.js.br +0 -0
  328. codex/static_root/assets/task-tab-48ysPp-X.d48d8675190c.js.gz +0 -0
  329. codex/static_root/assets/task-tab-48ysPp-X.js.br +0 -0
  330. codex/static_root/assets/task-tab-48ysPp-X.js.gz +0 -0
  331. codex/static_root/assets/user-tab-rG7-IzRY.d3e8fa81914d.js.br +0 -0
  332. codex/static_root/assets/user-tab-rG7-IzRY.d3e8fa81914d.js.gz +0 -0
  333. codex/static_root/assets/user-tab-rG7-IzRY.js.br +0 -0
  334. codex/static_root/assets/user-tab-rG7-IzRY.js.gz +0 -0
  335. codex/static_root/manifest.d1d6846d318a.json.br +0 -0
  336. codex/static_root/manifest.d1d6846d318a.json.gz +0 -0
  337. {codex-1.5.9.dist-info → codex-1.5.10.dist-info}/LICENSE +0 -0
  338. {codex-1.5.9.dist-info → codex-1.5.10.dist-info}/WHEEL +0 -0
  339. {codex-1.5.9.dist-info → codex-1.5.10.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
  * pinia v2.1.7
19
19
  * (c) 2023 Eduardo San Martin Morote
20
20
  * @license MIT
21
- */let yc;const ys=e=>yc=e,bc=Symbol();function gi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Un;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Un||(Un={}));function Iv(){const e=Ii(!0),t=e.run(()=>re({}));let n=[],r=[];const s=cs({install(i){ys(s),s._a=i,i.provide(bc,s),i.config.globalProperties.$pinia=s,r.forEach(o=>n.push(o)),r=[]},use(i){return!this._a&&!V1?r.push(i):n.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Cc=()=>{};function ha(e,t,n,r=Cc){e.push(t);const s=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),r())};return!n&&gl()&&ki(s),s}function hn(e,...t){e.slice().forEach(n=>{n(...t)})}const P1=e=>e();function vi(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,r)=>e.set(r,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];gi(s)&&gi(r)&&e.hasOwnProperty(n)&&!ue(r)&&!Ft(r)?e[n]=vi(s,r):e[n]=r}return e}const O1=Symbol();function R1(e){return!gi(e)||!e.hasOwnProperty(O1)}const{assign:Tt}=Object;function M1(e){return!!(ue(e)&&e.effect)}function I1(e,t,n,r){const{state:s,actions:i,getters:o}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=Ui(n.state.value[e]);return Tt(u,i,Object.keys(o||{}).reduce((f,h)=>(f[h]=cs(L(()=>{ys(n);const d=n._s.get(e);return o[h].call(d,d)})),f),{}))}return l=Sc(e,c,t,n,r,!0),l}function Sc(e,t,n={},r,s,i){let o;const a=Tt({actions:{}},n),l={deep:!0};let c,u,f=[],h=[],d;const m=r.state.value[e];!i&&!m&&(r.state.value[e]={}),re({});let v;function C(O){let R;c=u=!1,typeof O=="function"?(O(r.state.value[e]),R={type:Un.patchFunction,storeId:e,events:d}):(vi(r.state.value[e],O),R={type:Un.patchObject,payload:O,storeId:e,events:d});const D=v=Symbol();or().then(()=>{v===D&&(c=!0)}),u=!0,hn(f,R,r.state.value[e])}const T=i?function(){const{state:R}=n,D=R?R():{};this.$patch(K=>{Tt(K,D)})}:Cc;function x(){o.stop(),f=[],h=[],r._s.delete(e)}function M(O,R){return function(){ys(r);const D=Array.from(arguments),K=[],_=[];function j(J){K.push(J)}function se(J){_.push(J)}hn(h,{args:D,name:O,store:F,after:j,onError:se});let Ce;try{Ce=R.apply(this&&this.$id===e?this:F,D)}catch(J){throw hn(_,J),J}return Ce instanceof Promise?Ce.then(J=>(hn(K,J),J)).catch(J=>(hn(_,J),Promise.reject(J))):(hn(K,Ce),Ce)}}const N={_p:r,$id:e,$onAction:ha.bind(null,h),$patch:C,$reset:T,$subscribe(O,R={}){const D=ha(f,O,R.detached,()=>K()),K=o.run(()=>we(()=>r.state.value[e],_=>{(R.flush==="sync"?u:c)&&O({storeId:e,type:Un.direct,events:d},_)},Tt({},l,R)));return D},$dispose:x},F=Tn(N);r._s.set(e,F);const Z=(r._a&&r._a.runWithContext||P1)(()=>r._e.run(()=>(o=Ii()).run(t)));for(const O in Z){const R=Z[O];if(ue(R)&&!M1(R)||Ft(R))i||(m&&R1(R)&&(ue(R)?R.value=m[O]:vi(R,m[O])),r.state.value[e][O]=R);else if(typeof R=="function"){const D=M(O,R);Z[O]=D,a.actions[O]=R}}return Tt(F,Z),Tt(W(F),Z),Object.defineProperty(F,"$state",{get:()=>r.state.value[e],set:O=>{C(R=>{Tt(R,O)})}}),r._p.forEach(O=>{Tt(F,o.run(()=>O({store:F,app:r._a,pinia:r,options:a})))}),m&&i&&n.hydrate&&n.hydrate(F.$state,m),c=!0,u=!0,F}function to(e,t,n){let r,s;const i=typeof t=="function";typeof e=="string"?(r=e,s=i?n:t):(s=e,r=e.id);function o(a,l){const c=_d();return a=a||(c?Ve(bc,null):null),a&&ys(a),a=yc,a._s.has(r)||(i?Sc(r,t,s,a):I1(r,s,a)),a._s.get(r)}return o.$id=r,o}function bs(e,t){return Array.isArray(t)?t.reduce((n,r)=>(n[r]=function(){return e(this.$pinia)[r]},n),{}):Object.keys(t).reduce((n,r)=>(n[r]=function(){const s=e(this.$pinia),i=t[r];return typeof i=="function"?i.call(this,s):s[i]},n),{})}const k1=bs;function no(e,t){return Array.isArray(t)?t.reduce((n,r)=>(n[r]=function(...s){return e(this.$pinia)[r](...s)},n),{}):Object.keys(t).reduce((n,r)=>(n[r]=function(...s){return e(this.$pinia)[t[r]](...s)},n),{})}function kv(e,t){return Array.isArray(t)?t.reduce((n,r)=>(n[r]={get(){return e(this.$pinia)[r]},set(s){return e(this.$pinia)[r]=s}},n),{}):Object.keys(t).reduce((n,r)=>(n[r]={get(){return e(this.$pinia)[t[r]]},set(s){return e(this.$pinia)[t[r]]=s}},n),{})}const _c=["detail","oldPassword","password","username","passwordConfirm","path"];Object.freeze(_c);const H1=e=>{let t=[];if(e&&e.response&&e.response.data){let n=e.response.data;for(const r of _c)if(r in n){n=n[r];break}t=Array.isArray(n)?n.flat():[n]}else console.warn("Unable to parse error",e);return t.length===0&&(t=["Unknown error"]),t},nt=to("common",{state:()=>({form:{errors:[],success:""},versions:{installed:"1.5.9",latest:void 0},timestamp:Date.now(),isSettingsDrawerOpen:!1}),getters:{isMobile:function(){return window.orientation!==void 0||navigator.userAgent.includes("IEMobile")}},actions:{async loadVersions(){await La.getVersions(this.timestamp).then(e=>{const t=e.data;return this.versions=t}).catch(console.error)},downloadIOSPWAFix(e,t){La.downloadIOSPWAFix(e,t)},setErrors(e){const t=H1(e);this.$patch(n=>{n.form.errors=t,n.form.success=""})},setSuccess(e){this.$patch(t=>{t.form.errors=[],t.form.success=e})},clearErrors(){this.$patch(e=>{e.form.errors=[],e.form.success=""})},setTimestamp(){this.timestamp=Date.now()}}});function wc(e,t){return function(){return e.apply(t,arguments)}}const{toString:F1}=Object.prototype,{getPrototypeOf:ro}=Object,Cs=(e=>t=>{const n=F1.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ut=e=>(e=e.toLowerCase(),t=>Cs(t)===e),Ss=e=>t=>typeof t===e,{isArray:Pn}=Array,Qn=Ss("undefined");function N1(e){return e!==null&&!Qn(e)&&e.constructor!==null&&!Qn(e.constructor)&&Ge(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ac=ut("ArrayBuffer");function B1(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ac(e.buffer),t}const $1=Ss("string"),Ge=Ss("function"),Lc=Ss("number"),_s=e=>e!==null&&typeof e=="object",D1=e=>e===!0||e===!1,Ir=e=>{if(Cs(e)!=="object")return!1;const t=ro(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},j1=ut("Date"),U1=ut("File"),z1=ut("Blob"),W1=ut("FileList"),K1=e=>_s(e)&&Ge(e.pipe),G1=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ge(e.append)&&((t=Cs(e))==="formdata"||t==="object"&&Ge(e.toString)&&e.toString()==="[object FormData]"))},q1=ut("URLSearchParams"),Z1=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function fr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Pn(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{const i=n?Object.getOwnPropertyNames(e):Object.keys(e),o=i.length;let a;for(r=0;r<o;r++)a=i[r],t.call(null,e[a],a,e)}}function Ec(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,s;for(;r-- >0;)if(s=n[r],t===s.toLowerCase())return s;return null}const xc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Tc=e=>!Qn(e)&&e!==xc;function pi(){const{caseless:e}=Tc(this)&&this||{},t={},n=(r,s)=>{const i=e&&Ec(t,s)||s;Ir(t[i])&&Ir(r)?t[i]=pi(t[i],r):Ir(r)?t[i]=pi({},r):Pn(r)?t[i]=r.slice():t[i]=r};for(let r=0,s=arguments.length;r<s;r++)arguments[r]&&fr(arguments[r],n);return t}const J1=(e,t,n,{allOwnKeys:r}={})=>(fr(t,(s,i)=>{n&&Ge(s)?e[i]=wc(s,n):e[i]=s},{allOwnKeys:r}),e),X1=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Y1=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Q1=(e,t,n,r)=>{let s,i,o;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)o=s[i],(!r||r(o,e,t))&&!a[o]&&(t[o]=e[o],a[o]=!0);e=n!==!1&&ro(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},eh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},th=e=>{if(!e)return null;if(Pn(e))return e;let t=e.length;if(!Lc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},nh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&ro(Uint8Array)),rh=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},sh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ih=ut("HTMLFormElement"),oh=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ma=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ah=ut("RegExp"),Vc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};fr(n,(s,i)=>{let o;(o=t(s,i,e))!==!1&&(r[i]=o||s)}),Object.defineProperties(e,r)},lh=e=>{Vc(e,(t,n)=>{if(Ge(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ge(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},ch=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return Pn(e)?r(e):r(String(e).split(t)),n},uh=()=>{},fh=(e,t)=>(e=+e,Number.isFinite(e)?e:t),Xs="abcdefghijklmnopqrstuvwxyz",ga="0123456789",Pc={DIGIT:ga,ALPHA:Xs,ALPHA_DIGIT:Xs+Xs.toUpperCase()+ga},dh=(e=16,t=Pc.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function hh(e){return!!(e&&Ge(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const mh=e=>{const t=new Array(10),n=(r,s)=>{if(_s(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[s]=r;const i=Pn(r)?[]:{};return fr(r,(o,a)=>{const l=n(o,s+1);!Qn(l)&&(i[a]=l)}),t[s]=void 0,i}}return r};return n(e,0)},gh=ut("AsyncFunction"),vh=e=>e&&(_s(e)||Ge(e))&&Ge(e.then)&&Ge(e.catch),S={isArray:Pn,isArrayBuffer:Ac,isBuffer:N1,isFormData:G1,isArrayBufferView:B1,isString:$1,isNumber:Lc,isBoolean:D1,isObject:_s,isPlainObject:Ir,isUndefined:Qn,isDate:j1,isFile:U1,isBlob:z1,isRegExp:ah,isFunction:Ge,isStream:K1,isURLSearchParams:q1,isTypedArray:nh,isFileList:W1,forEach:fr,merge:pi,extend:J1,trim:Z1,stripBOM:X1,inherits:Y1,toFlatObject:Q1,kindOf:Cs,kindOfTest:ut,endsWith:eh,toArray:th,forEachEntry:rh,matchAll:sh,isHTMLForm:ih,hasOwnProperty:ma,hasOwnProp:ma,reduceDescriptors:Vc,freezeMethods:lh,toObjectSet:ch,toCamelCase:oh,noop:uh,toFiniteNumber:fh,findKey:Ec,global:xc,isContextDefined:Tc,ALPHABET:Pc,generateString:dh,isSpecCompliantForm:hh,toJSONObject:mh,isAsyncFn:gh,isThenable:vh};function Q(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s)}S.inherits(Q,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:S.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Oc=Q.prototype,Rc={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Rc[e]={value:e}});Object.defineProperties(Q,Rc);Object.defineProperty(Oc,"isAxiosError",{value:!0});Q.from=(e,t,n,r,s,i)=>{const o=Object.create(Oc);return S.toFlatObject(e,o,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),Q.call(o,e.message,t,n,r,s),o.cause=e,o.name=e.name,i&&Object.assign(o,i),o};const ph=null;function yi(e){return S.isPlainObject(e)||S.isArray(e)}function Mc(e){return S.endsWith(e,"[]")?e.slice(0,-2):e}function va(e,t,n){return e?e.concat(t).map(function(s,i){return s=Mc(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function yh(e){return S.isArray(e)&&!e.some(yi)}const bh=S.toFlatObject(S,{},null,function(t){return/^is[A-Z]/.test(t)});function ws(e,t,n){if(!S.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=S.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,C){return!S.isUndefined(C[v])});const r=n.metaTokens,s=n.visitor||u,i=n.dots,o=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&S.isSpecCompliantForm(t);if(!S.isFunction(s))throw new TypeError("visitor must be a function");function c(m){if(m===null)return"";if(S.isDate(m))return m.toISOString();if(!l&&S.isBlob(m))throw new Q("Blob is not supported. Use a Buffer instead.");return S.isArrayBuffer(m)||S.isTypedArray(m)?l&&typeof Blob=="function"?new Blob([m]):Buffer.from(m):m}function u(m,v,C){let T=m;if(m&&!C&&typeof m=="object"){if(S.endsWith(v,"{}"))v=r?v:v.slice(0,-2),m=JSON.stringify(m);else if(S.isArray(m)&&yh(m)||(S.isFileList(m)||S.endsWith(v,"[]"))&&(T=S.toArray(m)))return v=Mc(v),T.forEach(function(M,N){!(S.isUndefined(M)||M===null)&&t.append(o===!0?va([v],N,i):o===null?v:v+"[]",c(M))}),!1}return yi(m)?!0:(t.append(va(C,v,i),c(m)),!1)}const f=[],h=Object.assign(bh,{defaultVisitor:u,convertValue:c,isVisitable:yi});function d(m,v){if(!S.isUndefined(m)){if(f.indexOf(m)!==-1)throw Error("Circular reference detected in "+v.join("."));f.push(m),S.forEach(m,function(T,x){(!(S.isUndefined(T)||T===null)&&s.call(t,T,S.isString(x)?x.trim():x,v,h))===!0&&d(T,v?v.concat(x):[x])}),f.pop()}}if(!S.isObject(e))throw new TypeError("data must be an object");return d(e),t}function pa(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function so(e,t){this._pairs=[],e&&ws(e,this,t)}const Ic=so.prototype;Ic.append=function(t,n){this._pairs.push([t,n])};Ic.toString=function(t){const n=t?function(r){return t.call(this,r,pa)}:pa;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ch(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function kc(e,t,n){if(!t)return e;const r=n&&n.encode||Ch,s=n&&n.serialize;let i;if(s?i=s(t,n):i=S.isURLSearchParams(t)?t.toString():new so(t,n).toString(r),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class ya{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){S.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Hc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Sh=typeof URLSearchParams<"u"?URLSearchParams:so,_h=typeof FormData<"u"?FormData:null,wh=typeof Blob<"u"?Blob:null,Ah={isBrowser:!0,classes:{URLSearchParams:Sh,FormData:_h,Blob:wh},protocols:["http","https","file","blob","url","data"]},Fc=typeof window<"u"&&typeof document<"u",Lh=(e=>Fc&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),Eh=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",xh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fc,hasStandardBrowserEnv:Lh,hasStandardBrowserWebWorkerEnv:Eh},Symbol.toStringTag,{value:"Module"})),it={...xh,...Ah};function Th(e,t){return ws(e,new it.classes.URLSearchParams,Object.assign({visitor:function(n,r,s,i){return it.isNode&&S.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function Vh(e){return S.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ph(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r<s;r++)i=n[r],t[i]=e[i];return t}function Nc(e){function t(n,r,s,i){let o=n[i++];if(o==="__proto__")return!0;const a=Number.isFinite(+o),l=i>=n.length;return o=!o&&S.isArray(s)?s.length:o,l?(S.hasOwnProp(s,o)?s[o]=[s[o],r]:s[o]=r,!a):((!s[o]||!S.isObject(s[o]))&&(s[o]=[]),t(n,r,s[o],i)&&S.isArray(s[o])&&(s[o]=Ph(s[o])),!a)}if(S.isFormData(e)&&S.isFunction(e.entries)){const n={};return S.forEachEntry(e,(r,s)=>{t(Vh(r),s,n,0)}),n}return null}function Oh(e,t,n){if(S.isString(e))try{return(t||JSON.parse)(e),S.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const io={transitional:Hc,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=S.isObject(t);if(i&&S.isHTMLForm(t)&&(t=new FormData(t)),S.isFormData(t))return s?JSON.stringify(Nc(t)):t;if(S.isArrayBuffer(t)||S.isBuffer(t)||S.isStream(t)||S.isFile(t)||S.isBlob(t))return t;if(S.isArrayBufferView(t))return t.buffer;if(S.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Th(t,this.formSerializer).toString();if((a=S.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return ws(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),Oh(t)):t}],transformResponse:[function(t){const n=this.transitional||io.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(t&&S.isString(t)&&(r&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(a){if(o)throw a.name==="SyntaxError"?Q.from(a,Q.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:it.classes.FormData,Blob:it.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};S.forEach(["delete","get","head","post","put","patch"],e=>{io.headers[e]={}});const oo=io,Rh=S.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Mh=e=>{const t={};let n,r,s;return e&&e.split(`
21
+ */let yc;const ys=e=>yc=e,bc=Symbol();function gi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Un;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Un||(Un={}));function Iv(){const e=Ii(!0),t=e.run(()=>re({}));let n=[],r=[];const s=cs({install(i){ys(s),s._a=i,i.provide(bc,s),i.config.globalProperties.$pinia=s,r.forEach(o=>n.push(o)),r=[]},use(i){return!this._a&&!V1?r.push(i):n.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Cc=()=>{};function ha(e,t,n,r=Cc){e.push(t);const s=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),r())};return!n&&gl()&&ki(s),s}function hn(e,...t){e.slice().forEach(n=>{n(...t)})}const P1=e=>e();function vi(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,r)=>e.set(r,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];gi(s)&&gi(r)&&e.hasOwnProperty(n)&&!ue(r)&&!Ft(r)?e[n]=vi(s,r):e[n]=r}return e}const O1=Symbol();function R1(e){return!gi(e)||!e.hasOwnProperty(O1)}const{assign:Tt}=Object;function M1(e){return!!(ue(e)&&e.effect)}function I1(e,t,n,r){const{state:s,actions:i,getters:o}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=Ui(n.state.value[e]);return Tt(u,i,Object.keys(o||{}).reduce((f,h)=>(f[h]=cs(L(()=>{ys(n);const d=n._s.get(e);return o[h].call(d,d)})),f),{}))}return l=Sc(e,c,t,n,r,!0),l}function Sc(e,t,n={},r,s,i){let o;const a=Tt({actions:{}},n),l={deep:!0};let c,u,f=[],h=[],d;const m=r.state.value[e];!i&&!m&&(r.state.value[e]={}),re({});let v;function C(O){let R;c=u=!1,typeof O=="function"?(O(r.state.value[e]),R={type:Un.patchFunction,storeId:e,events:d}):(vi(r.state.value[e],O),R={type:Un.patchObject,payload:O,storeId:e,events:d});const D=v=Symbol();or().then(()=>{v===D&&(c=!0)}),u=!0,hn(f,R,r.state.value[e])}const T=i?function(){const{state:R}=n,D=R?R():{};this.$patch(K=>{Tt(K,D)})}:Cc;function x(){o.stop(),f=[],h=[],r._s.delete(e)}function M(O,R){return function(){ys(r);const D=Array.from(arguments),K=[],_=[];function j(J){K.push(J)}function se(J){_.push(J)}hn(h,{args:D,name:O,store:F,after:j,onError:se});let Ce;try{Ce=R.apply(this&&this.$id===e?this:F,D)}catch(J){throw hn(_,J),J}return Ce instanceof Promise?Ce.then(J=>(hn(K,J),J)).catch(J=>(hn(_,J),Promise.reject(J))):(hn(K,Ce),Ce)}}const N={_p:r,$id:e,$onAction:ha.bind(null,h),$patch:C,$reset:T,$subscribe(O,R={}){const D=ha(f,O,R.detached,()=>K()),K=o.run(()=>we(()=>r.state.value[e],_=>{(R.flush==="sync"?u:c)&&O({storeId:e,type:Un.direct,events:d},_)},Tt({},l,R)));return D},$dispose:x},F=Tn(N);r._s.set(e,F);const Z=(r._a&&r._a.runWithContext||P1)(()=>r._e.run(()=>(o=Ii()).run(t)));for(const O in Z){const R=Z[O];if(ue(R)&&!M1(R)||Ft(R))i||(m&&R1(R)&&(ue(R)?R.value=m[O]:vi(R,m[O])),r.state.value[e][O]=R);else if(typeof R=="function"){const D=M(O,R);Z[O]=D,a.actions[O]=R}}return Tt(F,Z),Tt(W(F),Z),Object.defineProperty(F,"$state",{get:()=>r.state.value[e],set:O=>{C(R=>{Tt(R,O)})}}),r._p.forEach(O=>{Tt(F,o.run(()=>O({store:F,app:r._a,pinia:r,options:a})))}),m&&i&&n.hydrate&&n.hydrate(F.$state,m),c=!0,u=!0,F}function to(e,t,n){let r,s;const i=typeof t=="function";typeof e=="string"?(r=e,s=i?n:t):(s=e,r=e.id);function o(a,l){const c=_d();return a=a||(c?Ve(bc,null):null),a&&ys(a),a=yc,a._s.has(r)||(i?Sc(r,t,s,a):I1(r,s,a)),a._s.get(r)}return o.$id=r,o}function bs(e,t){return Array.isArray(t)?t.reduce((n,r)=>(n[r]=function(){return e(this.$pinia)[r]},n),{}):Object.keys(t).reduce((n,r)=>(n[r]=function(){const s=e(this.$pinia),i=t[r];return typeof i=="function"?i.call(this,s):s[i]},n),{})}const k1=bs;function no(e,t){return Array.isArray(t)?t.reduce((n,r)=>(n[r]=function(...s){return e(this.$pinia)[r](...s)},n),{}):Object.keys(t).reduce((n,r)=>(n[r]=function(...s){return e(this.$pinia)[t[r]](...s)},n),{})}function kv(e,t){return Array.isArray(t)?t.reduce((n,r)=>(n[r]={get(){return e(this.$pinia)[r]},set(s){return e(this.$pinia)[r]=s}},n),{}):Object.keys(t).reduce((n,r)=>(n[r]={get(){return e(this.$pinia)[t[r]]},set(s){return e(this.$pinia)[t[r]]=s}},n),{})}const _c=["detail","oldPassword","password","username","passwordConfirm","path"];Object.freeze(_c);const H1=e=>{let t=[];if(e&&e.response&&e.response.data){let n=e.response.data;for(const r of _c)if(r in n){n=n[r];break}t=Array.isArray(n)?n.flat():[n]}else console.warn("Unable to parse error",e);return t.length===0&&(t=["Unknown error"]),t},nt=to("common",{state:()=>({form:{errors:[],success:""},versions:{installed:"1.5.10",latest:void 0},timestamp:Date.now(),isSettingsDrawerOpen:!1}),getters:{isMobile:function(){return window.orientation!==void 0||navigator.userAgent.includes("IEMobile")}},actions:{async loadVersions(){await La.getVersions(this.timestamp).then(e=>{const t=e.data;return this.versions=t}).catch(console.error)},downloadIOSPWAFix(e,t){La.downloadIOSPWAFix(e,t)},setErrors(e){const t=H1(e);this.$patch(n=>{n.form.errors=t,n.form.success=""})},setSuccess(e){this.$patch(t=>{t.form.errors=[],t.form.success=e})},clearErrors(){this.$patch(e=>{e.form.errors=[],e.form.success=""})},setTimestamp(){this.timestamp=Date.now()}}});function wc(e,t){return function(){return e.apply(t,arguments)}}const{toString:F1}=Object.prototype,{getPrototypeOf:ro}=Object,Cs=(e=>t=>{const n=F1.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ut=e=>(e=e.toLowerCase(),t=>Cs(t)===e),Ss=e=>t=>typeof t===e,{isArray:Pn}=Array,Qn=Ss("undefined");function N1(e){return e!==null&&!Qn(e)&&e.constructor!==null&&!Qn(e.constructor)&&Ge(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Ac=ut("ArrayBuffer");function B1(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Ac(e.buffer),t}const $1=Ss("string"),Ge=Ss("function"),Lc=Ss("number"),_s=e=>e!==null&&typeof e=="object",D1=e=>e===!0||e===!1,Ir=e=>{if(Cs(e)!=="object")return!1;const t=ro(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},j1=ut("Date"),U1=ut("File"),z1=ut("Blob"),W1=ut("FileList"),K1=e=>_s(e)&&Ge(e.pipe),G1=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ge(e.append)&&((t=Cs(e))==="formdata"||t==="object"&&Ge(e.toString)&&e.toString()==="[object FormData]"))},q1=ut("URLSearchParams"),Z1=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function fr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Pn(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{const i=n?Object.getOwnPropertyNames(e):Object.keys(e),o=i.length;let a;for(r=0;r<o;r++)a=i[r],t.call(null,e[a],a,e)}}function Ec(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,s;for(;r-- >0;)if(s=n[r],t===s.toLowerCase())return s;return null}const xc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Tc=e=>!Qn(e)&&e!==xc;function pi(){const{caseless:e}=Tc(this)&&this||{},t={},n=(r,s)=>{const i=e&&Ec(t,s)||s;Ir(t[i])&&Ir(r)?t[i]=pi(t[i],r):Ir(r)?t[i]=pi({},r):Pn(r)?t[i]=r.slice():t[i]=r};for(let r=0,s=arguments.length;r<s;r++)arguments[r]&&fr(arguments[r],n);return t}const J1=(e,t,n,{allOwnKeys:r}={})=>(fr(t,(s,i)=>{n&&Ge(s)?e[i]=wc(s,n):e[i]=s},{allOwnKeys:r}),e),X1=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Y1=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Q1=(e,t,n,r)=>{let s,i,o;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)o=s[i],(!r||r(o,e,t))&&!a[o]&&(t[o]=e[o],a[o]=!0);e=n!==!1&&ro(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},eh=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},th=e=>{if(!e)return null;if(Pn(e))return e;let t=e.length;if(!Lc(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},nh=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&ro(Uint8Array)),rh=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=r.next())&&!s.done;){const i=s.value;t.call(e,i[0],i[1])}},sh=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ih=ut("HTMLFormElement"),oh=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ma=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ah=ut("RegExp"),Vc=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};fr(n,(s,i)=>{let o;(o=t(s,i,e))!==!1&&(r[i]=o||s)}),Object.defineProperties(e,r)},lh=e=>{Vc(e,(t,n)=>{if(Ge(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ge(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},ch=(e,t)=>{const n={},r=s=>{s.forEach(i=>{n[i]=!0})};return Pn(e)?r(e):r(String(e).split(t)),n},uh=()=>{},fh=(e,t)=>(e=+e,Number.isFinite(e)?e:t),Xs="abcdefghijklmnopqrstuvwxyz",ga="0123456789",Pc={DIGIT:ga,ALPHA:Xs,ALPHA_DIGIT:Xs+Xs.toUpperCase()+ga},dh=(e=16,t=Pc.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function hh(e){return!!(e&&Ge(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const mh=e=>{const t=new Array(10),n=(r,s)=>{if(_s(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[s]=r;const i=Pn(r)?[]:{};return fr(r,(o,a)=>{const l=n(o,s+1);!Qn(l)&&(i[a]=l)}),t[s]=void 0,i}}return r};return n(e,0)},gh=ut("AsyncFunction"),vh=e=>e&&(_s(e)||Ge(e))&&Ge(e.then)&&Ge(e.catch),S={isArray:Pn,isArrayBuffer:Ac,isBuffer:N1,isFormData:G1,isArrayBufferView:B1,isString:$1,isNumber:Lc,isBoolean:D1,isObject:_s,isPlainObject:Ir,isUndefined:Qn,isDate:j1,isFile:U1,isBlob:z1,isRegExp:ah,isFunction:Ge,isStream:K1,isURLSearchParams:q1,isTypedArray:nh,isFileList:W1,forEach:fr,merge:pi,extend:J1,trim:Z1,stripBOM:X1,inherits:Y1,toFlatObject:Q1,kindOf:Cs,kindOfTest:ut,endsWith:eh,toArray:th,forEachEntry:rh,matchAll:sh,isHTMLForm:ih,hasOwnProperty:ma,hasOwnProp:ma,reduceDescriptors:Vc,freezeMethods:lh,toObjectSet:ch,toCamelCase:oh,noop:uh,toFiniteNumber:fh,findKey:Ec,global:xc,isContextDefined:Tc,ALPHABET:Pc,generateString:dh,isSpecCompliantForm:hh,toJSONObject:mh,isAsyncFn:gh,isThenable:vh};function Q(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s)}S.inherits(Q,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:S.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Oc=Q.prototype,Rc={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Rc[e]={value:e}});Object.defineProperties(Q,Rc);Object.defineProperty(Oc,"isAxiosError",{value:!0});Q.from=(e,t,n,r,s,i)=>{const o=Object.create(Oc);return S.toFlatObject(e,o,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),Q.call(o,e.message,t,n,r,s),o.cause=e,o.name=e.name,i&&Object.assign(o,i),o};const ph=null;function yi(e){return S.isPlainObject(e)||S.isArray(e)}function Mc(e){return S.endsWith(e,"[]")?e.slice(0,-2):e}function va(e,t,n){return e?e.concat(t).map(function(s,i){return s=Mc(s),!n&&i?"["+s+"]":s}).join(n?".":""):t}function yh(e){return S.isArray(e)&&!e.some(yi)}const bh=S.toFlatObject(S,{},null,function(t){return/^is[A-Z]/.test(t)});function ws(e,t,n){if(!S.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=S.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,C){return!S.isUndefined(C[v])});const r=n.metaTokens,s=n.visitor||u,i=n.dots,o=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&S.isSpecCompliantForm(t);if(!S.isFunction(s))throw new TypeError("visitor must be a function");function c(m){if(m===null)return"";if(S.isDate(m))return m.toISOString();if(!l&&S.isBlob(m))throw new Q("Blob is not supported. Use a Buffer instead.");return S.isArrayBuffer(m)||S.isTypedArray(m)?l&&typeof Blob=="function"?new Blob([m]):Buffer.from(m):m}function u(m,v,C){let T=m;if(m&&!C&&typeof m=="object"){if(S.endsWith(v,"{}"))v=r?v:v.slice(0,-2),m=JSON.stringify(m);else if(S.isArray(m)&&yh(m)||(S.isFileList(m)||S.endsWith(v,"[]"))&&(T=S.toArray(m)))return v=Mc(v),T.forEach(function(M,N){!(S.isUndefined(M)||M===null)&&t.append(o===!0?va([v],N,i):o===null?v:v+"[]",c(M))}),!1}return yi(m)?!0:(t.append(va(C,v,i),c(m)),!1)}const f=[],h=Object.assign(bh,{defaultVisitor:u,convertValue:c,isVisitable:yi});function d(m,v){if(!S.isUndefined(m)){if(f.indexOf(m)!==-1)throw Error("Circular reference detected in "+v.join("."));f.push(m),S.forEach(m,function(T,x){(!(S.isUndefined(T)||T===null)&&s.call(t,T,S.isString(x)?x.trim():x,v,h))===!0&&d(T,v?v.concat(x):[x])}),f.pop()}}if(!S.isObject(e))throw new TypeError("data must be an object");return d(e),t}function pa(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function so(e,t){this._pairs=[],e&&ws(e,this,t)}const Ic=so.prototype;Ic.append=function(t,n){this._pairs.push([t,n])};Ic.toString=function(t){const n=t?function(r){return t.call(this,r,pa)}:pa;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Ch(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function kc(e,t,n){if(!t)return e;const r=n&&n.encode||Ch,s=n&&n.serialize;let i;if(s?i=s(t,n):i=S.isURLSearchParams(t)?t.toString():new so(t,n).toString(r),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class ya{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){S.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Hc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Sh=typeof URLSearchParams<"u"?URLSearchParams:so,_h=typeof FormData<"u"?FormData:null,wh=typeof Blob<"u"?Blob:null,Ah={isBrowser:!0,classes:{URLSearchParams:Sh,FormData:_h,Blob:wh},protocols:["http","https","file","blob","url","data"]},Fc=typeof window<"u"&&typeof document<"u",Lh=(e=>Fc&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),Eh=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",xh=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fc,hasStandardBrowserEnv:Lh,hasStandardBrowserWebWorkerEnv:Eh},Symbol.toStringTag,{value:"Module"})),it={...xh,...Ah};function Th(e,t){return ws(e,new it.classes.URLSearchParams,Object.assign({visitor:function(n,r,s,i){return it.isNode&&S.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function Vh(e){return S.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ph(e){const t={},n=Object.keys(e);let r;const s=n.length;let i;for(r=0;r<s;r++)i=n[r],t[i]=e[i];return t}function Nc(e){function t(n,r,s,i){let o=n[i++];if(o==="__proto__")return!0;const a=Number.isFinite(+o),l=i>=n.length;return o=!o&&S.isArray(s)?s.length:o,l?(S.hasOwnProp(s,o)?s[o]=[s[o],r]:s[o]=r,!a):((!s[o]||!S.isObject(s[o]))&&(s[o]=[]),t(n,r,s[o],i)&&S.isArray(s[o])&&(s[o]=Ph(s[o])),!a)}if(S.isFormData(e)&&S.isFunction(e.entries)){const n={};return S.forEachEntry(e,(r,s)=>{t(Vh(r),s,n,0)}),n}return null}function Oh(e,t,n){if(S.isString(e))try{return(t||JSON.parse)(e),S.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const io={transitional:Hc,adapter:["xhr","http"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,i=S.isObject(t);if(i&&S.isHTMLForm(t)&&(t=new FormData(t)),S.isFormData(t))return s?JSON.stringify(Nc(t)):t;if(S.isArrayBuffer(t)||S.isBuffer(t)||S.isStream(t)||S.isFile(t)||S.isBlob(t))return t;if(S.isArrayBufferView(t))return t.buffer;if(S.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Th(t,this.formSerializer).toString();if((a=S.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return ws(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||s?(n.setContentType("application/json",!1),Oh(t)):t}],transformResponse:[function(t){const n=this.transitional||io.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(t&&S.isString(t)&&(r&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(a){if(o)throw a.name==="SyntaxError"?Q.from(a,Q.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:it.classes.FormData,Blob:it.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};S.forEach(["delete","get","head","post","put","patch"],e=>{io.headers[e]={}});const oo=io,Rh=S.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Mh=e=>{const t={};let n,r,s;return e&&e.split(`
22
22
  `).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),r=o.substring(s+1).trim(),!(!n||t[n]&&Rh[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},ba=Symbol("internals");function kn(e){return e&&String(e).trim().toLowerCase()}function kr(e){return e===!1||e==null?e:S.isArray(e)?e.map(kr):String(e)}function Ih(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const kh=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ys(e,t,n,r,s){if(S.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!S.isString(t)){if(S.isString(r))return t.indexOf(r)!==-1;if(S.isRegExp(r))return r.test(t)}}function Hh(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function Fh(e,t){const n=S.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,i,o){return this[r].call(this,t,s,i,o)},configurable:!0})})}class As{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function i(a,l,c){const u=kn(l);if(!u)throw new Error("header name must be a non-empty string");const f=S.findKey(s,u);(!f||s[f]===void 0||c===!0||c===void 0&&s[f]!==!1)&&(s[f||l]=kr(a))}const o=(a,l)=>S.forEach(a,(c,u)=>i(c,u,l));return S.isPlainObject(t)||t instanceof this.constructor?o(t,n):S.isString(t)&&(t=t.trim())&&!kh(t)?o(Mh(t),n):t!=null&&i(n,t,r),this}get(t,n){if(t=kn(t),t){const r=S.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return Ih(s);if(S.isFunction(n))return n.call(this,s,r);if(S.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=kn(t),t){const r=S.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Ys(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function i(o){if(o=kn(o),o){const a=S.findKey(r,o);a&&(!n||Ys(r,r[a],a,n))&&(delete r[a],s=!0)}}return S.isArray(t)?t.forEach(i):i(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const i=n[r];(!t||Ys(this,this[i],i,t,!0))&&(delete this[i],s=!0)}return s}normalize(t){const n=this,r={};return S.forEach(this,(s,i)=>{const o=S.findKey(r,i);if(o){n[o]=kr(s),delete n[i];return}const a=t?Hh(i):String(i).trim();a!==i&&delete n[i],n[a]=kr(s),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return S.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&S.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
23
23
  `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[ba]=this[ba]={accessors:{}}).accessors,s=this.prototype;function i(o){const a=kn(o);r[a]||(Fh(s,o),r[a]=!0)}return S.isArray(t)?t.forEach(i):i(t),this}}As.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);S.reduceDescriptors(As.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});S.freezeMethods(As);const yt=As;function Qs(e,t){const n=this||oo,r=t||n,s=yt.from(r.headers);let i=r.data;return S.forEach(e,function(a){i=a.call(n,i,s.normalize(),t?t.status:void 0)}),s.normalize(),i}function Bc(e){return!!(e&&e.__CANCEL__)}function dr(e,t,n){Q.call(this,e??"canceled",Q.ERR_CANCELED,t,n),this.name="CanceledError"}S.inherits(dr,Q,{__CANCEL__:!0});function Nh(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Q("Request failed with status code "+n.status,[Q.ERR_BAD_REQUEST,Q.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const Bh=it.hasStandardBrowserEnv?{write(e,t,n,r,s,i){const o=[e+"="+encodeURIComponent(t)];S.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),S.isString(r)&&o.push("path="+r),S.isString(s)&&o.push("domain="+s),i===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function $h(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Dh(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function $c(e,t){return e&&!$h(t)?Dh(e,t):t}const jh=it.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function s(i){let o=i;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=s(window.location.href),function(o){const a=S.isString(o)?s(o):o;return a.protocol===r.protocol&&a.host===r.host}}():function(){return function(){return!0}}();function Uh(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function zh(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,i=0,o;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[i];o||(o=c),n[s]=l,r[s]=c;let f=i,h=0;for(;f!==s;)h+=n[f++],f=f%e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o<t)return;const d=u&&c-u;return d?Math.round(h*1e3/d):void 0}}function Ca(e,t){let n=0;const r=zh(50,250);return s=>{const i=s.loaded,o=s.lengthComputable?s.total:void 0,a=i-n,l=r(a),c=i<=o;n=i;const u={loaded:i,total:o,progress:o?i/o:void 0,bytes:a,rate:l||void 0,estimated:l&&o&&c?(o-i)/l:void 0,event:s};u[t?"download":"upload"]=!0,e(u)}}const Wh=typeof XMLHttpRequest<"u",Kh=Wh&&function(e){return new Promise(function(n,r){let s=e.data;const i=yt.from(e.headers).normalize();let{responseType:o,withXSRFToken:a}=e,l;function c(){e.cancelToken&&e.cancelToken.unsubscribe(l),e.signal&&e.signal.removeEventListener("abort",l)}let u;if(S.isFormData(s)){if(it.hasStandardBrowserEnv||it.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if((u=i.getContentType())!==!1){const[v,...C]=u?u.split(";").map(T=>T.trim()).filter(Boolean):[];i.setContentType([v||"multipart/form-data",...C].join("; "))}}let f=new XMLHttpRequest;if(e.auth){const v=e.auth.username||"",C=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(v+":"+C))}const h=$c(e.baseURL,e.url);f.open(e.method.toUpperCase(),kc(h,e.params,e.paramsSerializer),!0),f.timeout=e.timeout;function d(){if(!f)return;const v=yt.from("getAllResponseHeaders"in f&&f.getAllResponseHeaders()),T={data:!o||o==="text"||o==="json"?f.responseText:f.response,status:f.status,statusText:f.statusText,headers:v,config:e,request:f};Nh(function(M){n(M),c()},function(M){r(M),c()},T),f=null}if("onloadend"in f?f.onloadend=d:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(d)},f.onabort=function(){f&&(r(new Q("Request aborted",Q.ECONNABORTED,e,f)),f=null)},f.onerror=function(){r(new Q("Network Error",Q.ERR_NETWORK,e,f)),f=null},f.ontimeout=function(){let C=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const T=e.transitional||Hc;e.timeoutErrorMessage&&(C=e.timeoutErrorMessage),r(new Q(C,T.clarifyTimeoutError?Q.ETIMEDOUT:Q.ECONNABORTED,e,f)),f=null},it.hasStandardBrowserEnv&&(a&&S.isFunction(a)&&(a=a(e)),a||a!==!1&&jh(h))){const v=e.xsrfHeaderName&&e.xsrfCookieName&&Bh.read(e.xsrfCookieName);v&&i.set(e.xsrfHeaderName,v)}s===void 0&&i.setContentType(null),"setRequestHeader"in f&&S.forEach(i.toJSON(),function(C,T){f.setRequestHeader(T,C)}),S.isUndefined(e.withCredentials)||(f.withCredentials=!!e.withCredentials),o&&o!=="json"&&(f.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&f.addEventListener("progress",Ca(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",Ca(e.onUploadProgress)),(e.cancelToken||e.signal)&&(l=v=>{f&&(r(!v||v.type?new dr(null,e,f):v),f.abort(),f=null)},e.cancelToken&&e.cancelToken.subscribe(l),e.signal&&(e.signal.aborted?l():e.signal.addEventListener("abort",l)));const m=Uh(h);if(m&&it.protocols.indexOf(m)===-1){r(new Q("Unsupported protocol "+m+":",Q.ERR_BAD_REQUEST,e));return}f.send(s||null)})},bi={http:ph,xhr:Kh};S.forEach(bi,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Sa=e=>`- ${e}`,Gh=e=>S.isFunction(e)||e===null||e===!1,Dc={getAdapter:e=>{e=S.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let i=0;i<t;i++){n=e[i];let o;if(r=n,!Gh(n)&&(r=bi[(o=String(n)).toLowerCase()],r===void 0))throw new Q(`Unknown adapter '${o}'`);if(r)break;s[o||"#"+i]=r}if(!r){const i=Object.entries(s).map(([a,l])=>`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let o=t?i.length>1?`since :
24
24
  `+i.map(Sa).join(`
@@ -1 +1 @@
1
- import{f as U,V as Ce,a as ee,S as Be,g as ke,b as Te,_ as te}from"./VToolbar-Dyufo4_P.js";import{_ as oe,a as se,b as re,N as Ve,t as Me,V as G,p as $e,c as xe,d as ne,g as Ie,P as ie}from"./metadata-dialog-D-XX9wAf.js";import{aE as ae,M as S,_ as y,R as i,O as h,P as d,L as l,aa as n,ae as _,ab as D,ad as v,N as B,aB as w,ax as V,aF as Ne,aG as Fe,ak as H,m as $,ay as g,aD as s,aH as O,aI as L,aJ as Pe,az as N,aK as Re,am as x,aL as De,aM as Oe,a9 as A,af as P,ag as k,aN as Le,al as I,aO as Ge,aP as Ue,aQ as E,aR as He,aS as Ae,Q as C,aT as R,aU as Ee,aV as qe,aW as le,aX as Y,aY as ze,aZ as je,k as q,a_ as ue,a$ as de,b0 as Ye,b1 as We,b2 as Qe,b3 as Ke,b4 as W,b5 as Xe,b6 as Je,b7 as Ze,b8 as Q,b9 as K,x as et,E as tt,ba as ot,aq as st,bb as rt,G as nt,bc as it,bd as at,ar as lt,K as ut,be as ce,bf as dt,bg as ct,bh as mt,bi as ht,aC as pt}from"./admin-drawer-panel-DY_fALho.js";import{u as p,C as _t}from"./main-Dz9u71DQ.js";import{V as ft,a as gt}from"./VSelect-CxY8UVRq.js";import{c as bt}from"./to-case-kUm8NPpW.js";import{a as yt}from"./VSlideGroup-VeMEwEff.js";import{V as wt}from"./VCombobox-DgVMswtt.js";import{V as St}from"./VTable-CAK_p0Il.js";import{V as vt}from"./confirm-footer-CWKcBA7p.js";import{V as X}from"./VCheckbox-RPeBWFgy.js";import{_ as me}from"./confirm-dialog-GVok5hYU.js";import{V as he}from"./VMain-DUot655v.js";import"./index-DUjeNg4x.js";import"./change-password-dialog-DgDGjI2a.js";import"./VSelectionControl-DsJeRYlc.js";import"./VCheckboxBtn-CwKlKk7z.js";import"./filter-Cq-w9FH_.js";const Ct={name:"BrowserNavButton",components:{PaginationNavButton:oe},props:{back:{type:Boolean,required:!0}},data(){return{mdiChevronLeft:ae}},computed:{...S(p,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return+this.$route.params.page+this.increment},title(){return"Page "+this.toPage},toRoute(){return{params:{...this.$route.params,page:this.toPage}}},disabled(){return this.back&&+this.$route.params.page<=1||!this.back&&+this.$route.params.page>=this.numPages}}};function Bt(e,t,r,f,a,o){const u=oe;return i(),h(u,{disabled:o.disabled,title:o.title,to:o.toRoute},{default:d(()=>[l(v,{class:D({flipHoriz:!r.back})},{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["disabled","title","to"])}const pe=y(Ct,[["render",Bt],["__scopeId","data-v-fcf3d3ee"]]),kt={name:"BrowserNavToolbar",components:{BrowserNavButton:pe,PaginationSlider:se,PaginationToolbar:re},computed:{...S(p,{numPages:e=>e.page.numPages})},methods:{...B(p,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Tt(e,t,r,f,a,o){const u=pe,c=se,b=re;return e.numPages>1?(i(),h(b,{key:0},{default:d(()=>[l(u,{back:!0}),l(c,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=M=>e.routeToPage(M))},null,8,["model-value","max"]),l(u,{back:!1})]),_:1})):w("",!0)}const _e=y(kt,[["render",Tt]]),Vt=new Set(["a","f"]),Mt={name:"BrowserUpButton",props:{top:{type:Boolean,default:!1}},computed:{...V(p,["parentModelGroup"]),...S(p,{upRoute:e=>e.page.routes.up,title(e){const t=this.top?e.settings.topGroup:this.parentModelGroup;return`Up to ${e.choices.static.groupNames[t]||"All"}`}}),show(){return this.upRoute&&"group"in this.upRoute},icon(){return this.top?Ne:Fe},to(){let e;if(this.top){let t=this.upRoute.group;Vt.has(t)||(t="r"),e={group:t,pk:0,page:1}}else e=this.upRoute;return{params:e}}}};function $t(e,t,r,f,a,o){return o.show?(i(),h(H,{key:0,icon:"",size:"x-large",title:e.title,to:o.to,variant:"plain"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(o.icon),1)]),_:1})]),_:1},8,["title","to"])):w("",!0)}const fe=y(Mt,[["render",$t]]),xt={name:"BrowserHeader",components:{BrowserUpButton:fe},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames,browserTitle:e=>e.page.browserTitle,modelGroup:e=>e.page.modelGroup}),...V($,["isCodexViewable","isUserAdmin"]),longBrowserTitlePrefix:function(){return this.$route.params.group==="f"?this.browserTitle.parentName:""},longBrowseTitleMain:function(){let e;if(Number(this.$route.params.pk)===0)e="All";else{let t=[];const{parentName:r,groupName:f,groupCount:a}=this.browserTitle;r&&t.push(r);const o=this.$route.params.group,u=o==="v"?U(f):f;if(u&&t.push(u),a){const b=`of ${a}`;t.push(b)}const c=o==="f"?"/":" ";e=t.join(c)}return e},longBrowseTitleSuffix:function(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}},ge=e=>(O("data-v-3d5e18c3"),e=e(),L(),e),It={key:0,id:"titleToolbarPrefix"},Nt=ge(()=>s("br",null,null,-1)),Ft={id:"titleToolbarMain"},Pt={key:1,id:"titleToolbarSuffix"},Rt=ge(()=>s("br",null,null,-1));function Dt(e,t,r,f,a,o){const u=fe;return e.isCodexViewable?(i(),h(ee,{key:0,id:"titleToolbar",elevation:"8"},{default:d(()=>[l(u),l(Ce,{class:"codexToolbarTitle"},{default:d(()=>[o.longBrowserTitlePrefix?(i(),g("span",It,[n(_(o.longBrowserTitlePrefix)+" ",1),Nt])):w("",!0),s("span",Ft,_(o.longBrowseTitleMain),1),o.longBrowseTitleSuffix?(i(),g("span",Pt,[Rt,n(" "+_(o.longBrowseTitleSuffix),1)])):w("",!0)]),_:1}),l(u,{top:""})]),_:1})):w("",!0)}const be=y(xt,[["render",Dt],["__scopeId","data-v-3d5e18c3"]]),Ot={name:"ToolbarSelect",props:{selectLabel:{type:String,default:""},maxSelectLen:{type:Number,default:0},mobileLenAdj:{type:Number,default:0},variant:{type:String,default:"plain"}},computed:{style(){const e=this.$vuetify.display.smAndDown?this.mobileLenAdj:0,r=this.maxSelectLen+e+"em";return`width: ${r}; min-width: ${r}; max-width: ${r}`}}};function Lt(e,t,r,f,a,o){return i(),h(ft,x(e.$attrs,{label:r.selectLabel,"aria-label":r.selectLabel,class:"toolbarSelect",density:"compact","full-width":"","menu-props":{maxHeight:void 0},"hide-details":"auto",style:o.style,variant:r.variant}),Pe({_:2},[N(e.$slots,(u,c)=>({name:c,fn:d(b=>[Re(e.$slots,c,x({props:u},b),void 0,!0)])}))]),1040,["label","aria-label","style","variant"])}const T=y(Ot,[["render",Lt],["__scopeId","data-v-ea769669"]]),Gt=_t.browser.vuetifyNullCode,Ut={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:ae,mdiChevronRight:De,mdiChevronRightCircle:Oe,query:"",nullCode:Gt}},computed:{...S(p,{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]}}),...A(p,["filterMode"]),hasNone(){for(const e of this.choices)if(Ve.has(e.pk))return!0;return!1},vuetifyItems(){return Me(this.choices,this.query)},title:function(){return bt(this.name)},lowerTitle:function(){return this.title.toLowerCase()}},methods:{...B(p,["identifierTypeTitle","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}}},Ht={key:0},At={class:"filterHeader"};function Et(e,t,r,f,a,o){return i(),g("div",null,[l(Le,{"hide-on-leave":""},{default:d(()=>[e.filterMode==="base"?(i(),h(k,{key:0,onClick:t[0]||(t[0]=u=>o.setUIFilterMode(r.name))},{default:d(()=>[l(P,{class:"filterMenu"},{default:d(()=>[n(_(o.title)+" ",1),e.filter&&e.filter.length>0?(i(),h(v,{key:0,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRightCircle),1)]),_:1})):(i(),h(v,{key:1,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRight),1)]),_:1}))]),_:1})]),_:1})):w("",!0)]),_:1}),l(Ue,{"hide-on-leave":""},{default:d(()=>[e.filterMode===r.name?(i(),g("div",Ht,[s("header",At,[l(k,{onClick:t[1]||(t[1]=u=>o.setUIFilterMode("base"))},{default:d(()=>[l(P,{class:"filterTitle"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1}),n(_(o.lowerTitle),1)]),_:1})]),_:1}),typeof e.choices=="object"?(i(),h(yt,{key:0,modelValue:a.query,"onUpdate:modelValue":t[2]||(t[2]=u=>a.query=u),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=u=>e.filterMode=r.name)},null,8,["modelValue"])):(i(),h(E,{key:1,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(i(),h(Ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:o.vuetifyItems,"onUpdate:selected":o.selected},{default:d(()=>[o.hasNone?(i(),h(k,{key:-1,title:"None",value:-1,class:"noneItem"})):w("",!0),(i(!0),g(I,null,N(o.vuetifyItems,u=>(i(),h(k,{key:u.value,title:o.itemTitle(u),value:u.value,class:D({noneItem:+u.value==a.nullCode})},null,8,["title","value","class"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):w("",!0)])):w("",!0)]),_:1})])}const qt=y(Ut,[["render",Et],["__scopeId","data-v-c9df90cc"]]),zt={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:qt,ToolbarSelect:T},extends:T,data(){return{mdiFilterMultipleOutline:He,menu:!1}},computed:{...V(p,["filterByChoicesMaxLen","isDefaultBookmarkValueSelected"]),...S(p,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,isDynamicFiltersSelected:function(e){for(const[t,r]of Object.entries(e.settings.filters))if(t!=="bookmark"&&r&&r.length>0)return!0;return!1},isFiltersClearable:function(){return!this.isDefaultBookmarkValueSelected||this.isDynamicFiltersSelected},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[r,f]of Object.entries(e.choices.dynamic))f&&t.push(r);return t}}),...A(p,["filterMode"]),filterInnerIcon:function(){return this.isFiltersClearable?Ae:""}},methods:{...B(p,["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(){this.clearFilters()},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},jt={key:1};function Yt(e,t,r,f,a,o){const u=C("BrowserFilterSubMenu"),c=T;return i(),h(c,{menu:a.menu,"onUpdate:menu":[t[0]||(t[0]=b=>a.menu=b),o.onMenu],class:"filterBySelect","select-label":"filter by",clearable:e.isFiltersClearable,items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen+1.5,"mobile-len-adj":-1.5,variant:"solo","onClick:clear":o.onClear,"onUpdate:modelValue":o.onUpdateModelValue},{selection:d(({item:b})=>[n(_(b.title)+" ",1),e.isDynamicFiltersSelected?(i(),h(v,{key:0,class:"filterSuffix"},{default:d(()=>[n(_(a.mdiFilterMultipleOutline),1)]),_:1})):w("",!0)]),"append-item":d(()=>[l(R),e.dynamicChoiceNames===void 0?(i(),h(k,{key:0},{default:d(()=>[l(E,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(i(),g("div",jt,[(i(!0),g(I,null,N(e.dynamicChoiceNames,b=>(i(),h(u,{key:b,name:b,onSelected:o.onSubMenuSelected},null,8,["name","onSelected"]))),128))])):(i(),h(k,{key:2,class:"noChoices"},{default:d(()=>[n(" No filters available ")]),_:1}))]),_:1},8,["menu","clearable","items","menu-props","model-value","max-select-len","onClick:clear","onUpdate:modelValue","onUpdate:menu"])}const Wt=y(zt,[["render",Yt],["__scopeId","data-v-8cf1988f"]]),Qt={name:"BrowseOrderBySelect",components:{ToolbarSelect:T},extends:T,computed:{...V(p,["orderByChoices","orderByChoicesMaxLen"]),...S(p,{orderBySetting:e=>e.settings.orderBy}),reverseValues(){const e=new Set;for(const t of this.orderByChoices)t.reverse&&e.add(t.value);return e},orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:this.reverseValues.has(e)};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Kt(e,t,r,f,a,o){const u=T;return i(),h(u,x({modelValue:o.orderBy,"onUpdate:modelValue":t[0]||(t[0]=c=>o.orderBy=c),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-3.5,"mobile-len-adj":-2},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Xt=y(Qt,[["render",Kt]]),Jt={name:"BrowseOrderReverseButton",computed:{...S(p,{orderReverseSetting:e=>e.settings.orderReverse,orderIcon:e=>e.settings.orderReverse?Ee:qe}),density(){return this.$vuetify.display.smAndDown?"compact":"default"},title(){return this.orderReverseSetting?"order descending":"order ascending"}},methods:{...B(p,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Zt(e,t,r,f,a,o){return i(),h(H,x({class:"orderReverseButton",density:o.density,height:"46",icon:"",variant:"text"},e.$attrs,{title:o.title,onClick:o.toggleOrderReverse}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(e.orderIcon),1)]),_:1})]),_:1},16,["density","title","onClick"])}const eo=y(Jt,[["render",Zt],["__scopeId","data-v-57eeaaec"]]),to=10,oo={name:"BrowserSearchCombobox",data(){return{mdiMagnify:le,menu:!1,query:"",items:[""]}},computed:{...S(p,{stateQ:e=>e.settings.q})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},methods:{...B(p,["setSettings"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,to)},doSearch(){this.menu=!1;const e=this.query?this.query.trim():"";this.setSettings({q:e}),this.addToMenu(e)}}};function so(e,t,r,f,a,o){return i(),h(wt,{ref:"searchbox",modelValue:a.query,"onUpdate:modelValue":t[0]||(t[0]=u=>a.query=u),menu:a.menu,"onUpdate:menu":t[1]||(t[1]=u=>a.menu=u),items:a.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":a.mdiMagnify,variant:"solo","onClick:clear":o.doSearch,"onClick:prependInner":o.doSearch,onKeydown:[Y(o.doSearch,["enter"]),t[2]||(t[2]=Y(u=>a.menu=!1,["esc"]))]},null,8,["modelValue","menu","items","prepend-inner-icon","onClick:clear","onClick:prependInner","onKeydown"])}const ro=y(oo,[["render",so]]),no={params:{group:"f",pk:0,page:1}},J=new Set(["a","f"]),io={name:"BrowserTopGroupSelect",components:{ToolbarSelect:T},extends:T,data(){return{FOLDER_ROUTE:no,DIVIDED_VALUES:J}},computed:{...S(p,{topGroupSetting:e=>e.settings.topGroup}),...V(p,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const r={params:{group:J.has(e)?e:"r",pk:0,page:1}},f={topGroup:e};this.$router.push(r).then(()=>this.setSettings(f)).catch(console.error)}}},methods:{...B(p,["setSettings"])}};function ao(e,t,r,f,a,o){const u=T;return i(),h(u,x(e.$attrs,{modelValue:o.topGroup,"onUpdate:modelValue":t[0]||(t[0]=c=>o.topGroup=c),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2,"mobile-len-adj":-1}),{item:d(({item:c,props:b})=>[a.DIVIDED_VALUES.has(c.value)?(i(),h(R,{key:0})):w("",!0),l(k,x(b,{title:c.title,value:c.value}),null,16,["title","value"])]),_:1},16,["modelValue","items","max-select-len"])}const lo=y(io,[["render",ao],["__scopeId","data-v-d1f6fd76"]]),uo=ze("v-spacer","div","VSpacer"),co={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Wt,BrowserTopGroupSelect:lo,BrowserSearchCombobox:ro,BrowserOrderBySelect:Xt,BrowserOrderReverseButton:eo,SettingsDrawerButton:Be},data(){return{mdiMagnify:le,mdiFamilyTree:je,browseMode:"filter"}},computed:{...V($,["isCodexViewable"]),...A(q,["isSettingsDrawerOpen"])}};function mo(e,t,r,f,a,o){const u=C("BrowserTopGroupSelect"),c=C("BrowserOrderBySelect"),b=C("BrowserOrderReverseButton"),M=C("SettingsDrawerButton"),F=C("BrowserFilterBySelect"),j=C("BrowserSearchCombobox");return i(),h(ee,{id:"browserToolbar",class:D(["toolbar",{emptyToolbar:!e.isCodexViewable}]),density:"compact","extension-height":"48px"},{extension:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"searchToolbarItems"},{default:d(()=>[l(F,{id:"filterSelect"}),l(j,{id:"searchField"})]),_:1})):w("",!0)]),default:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"browserToolbarLeftItems"},{default:d(()=>[l(u,{id:"topGroupSelect"}),l(c,{id:"orderBySelect"}),l(b,{id:"orderReverseButton"})]),_:1})):w("",!0),l(uo),l(G,null,{default:d(()=>[l(M,{onClick:t[0]||(t[0]=ur=>e.isSettingsDrawerOpen=!0)})]),_:1})]),_:1},8,["class"])}const ye=y(co,[["render",mo],["__scopeId","data-v-939a4977"]]),ho=[["characters","CSV","category"],["community_rating","Decimal","communityrating"],["contributor","CSV","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","type"],["genres","CSV","genre"],["identifier","CSV","id, nss"],["identifier_type","CSV","id_type, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","CSV","location"],["maturity_rating","String"],["monochrome","String","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","CSV","seriesgroups"],["size","Integer"],["stories","CSV","story"],["story_arcs","CSV","storyarcs"],["summary","String","comments, description"],["tags","CSV","tag"],["tagger","String"],["teams","CSV","team"],["updated_at","Date","updated"],["volume","String"],["web","String"],["year","Integer"]],po={name:"SearchHelp",components:{CloseButton:ue},data(){return{mdiOpenInNew:de,mdiArchiveSearchOutline:Ye,dialog:!1,FIELD_ROWS:ho}}},m=e=>(O("data-v-f473187d"),e=e(),L(),e),_o={id:"searchHelp"},fo=m(()=>s("h1",null,"Search Syntax Help",-1)),go={id:"fieldTableContainer"},bo=m(()=>s("h2",null,"Search Fields",-1)),yo=m(()=>s("thead",null,[s("tr",null,[s("th",null,"Field"),s("th",null,"Type"),s("th",null,"Aliases")])],-1)),wo={class:"aliasCol"},So={id:"textContainer"},vo=m(()=>s("h2",null,"Whoosh Query Parser",-1)),Co={href:"https://whoosh.readthedocs.io/en/latest/querylang.html",target:"_blank"},Bo=m(()=>s("h2",null,"Operators",-1)),ko=m(()=>s("code",null,"and",-1)),To=m(()=>s("code",null,"or",-1)),Vo=m(()=>s("code",null,"not",-1)),Mo=m(()=>s("code",null,"andnot",-1)),$o=m(()=>s("code",null,"andmaybe",-1)),xo=m(()=>s("code",null,"require",-1)),Io=m(()=>s("h2",null,"Searching Fields",-1)),No=m(()=>s("p",null,[n(" Like Codex's filter selector menu, but more powerful. You may search on individual comic metadata fields. using a search token like "),s("code",null,"field:value"),n(". ")],-1)),Fo=m(()=>s("h3",null,"Dates and DateTimes",-1)),Po={href:"https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries",target:"_blank"},Ro=m(()=>s("code",null,"YYYYMMDD",-1)),Do=m(()=>s("code",null,"YYYMMDDHHmmSS",-1)),Oo=m(()=>s("h3",null,"Single Quote complex field Queries",-1)),Lo=m(()=>s("p",null,[n(" Use "),s("em",null,"single"),n(" quotes to tell Codex that a complex or natural language phrase should be applied to a specific field ")],-1)),Go=m(()=>s("code",null," created:'this year' ",-1)),Uo=m(()=>s("h3",null,"Size Byte Multipliers",-1)),Ho=m(()=>s("p",null,[n(" The size field can make use of convenient byte multiplier suffixes like "),s("code",null,"kb"),n(" and "),s("code",null,"mb"),n(" as well as binary suffixes like "),s("code",null,"gib"),n(" and "),s("code",null,"tib"),n(". ")],-1)),Ao=m(()=>s("h3",null,"Ranges of Fields",-1)),Eo=m(()=>s("p",null,[n(" Whoosh uses brackets and the "),s("em",null,"uppercase"),n(" "),s("code",null,"TO"),n(" operator to delineate a range search. ")],-1)),qo=m(()=>s("code",null,"updated:[last sunday TO 10am]",-1)),zo=m(()=>s("p",null," You may leave out the upper or lower bound or use >, <, >=, <= operators. ",-1)),jo=m(()=>s("code",null,"size:<50mb",-1)),Yo=m(()=>s("h3",null,"Multi Value Fields",-1)),Wo=m(()=>s("p",null,[n(" Fields marked type "),s("code",null,"CSV"),n(" in the table to the left may contain comma separated values. This filters by all the supplied values. Multi Value tokens look like: "),s("code",null,"field:term1,term2,term3")],-1)),Qo=m(()=>s("h2",null,"Grouped Queries",-1)),Ko=m(()=>s("p",null,"Whoosh allows grouping of queries with parenthesis.",-1)),Xo=m(()=>s("h2",null,"Example Search",-1)),Jo=m(()=>s("p",null," This example search is more convoluted than most searches but uses many features for demonstration: ",-1)),Zo=m(()=>s("code",null,' (Holmes and Tesla date:>=1999-1-2 size:[10mib TO 1gb] Gadzooks) or "Captain Nemo" -Quartermain ',-1)),es=m(()=>s("p",{style:{"margin-top":"1em"}},' Search for comics that contain Holmes and Tesla published after the second day of 1999 that are between 10 Mebibytes and 10 Gigabytes that also contain the word "Gadzooks" but also all comics with the the phrase "Captain Nemo" but no comics will contain the word "Quartermain". ',-1)),ts=m(()=>s("h2",null,"Group and Sorting Behavior",-1)),os=m(()=>s("p",null," If the search field is empty and then you supply a search query for the first time, Codex navigates you to the to All Issues view and your sets your Sorted By selection to Search Score. If you prefer a different view you may change the group and sort selections after your you make your first search. ",-1)),ss=m(()=>s("h2",null,"Filter Behavior",-1)),rs=m(()=>s("p",null,[n(" Codex applies "),s("em",null,"both"),n(" the Filter selection menu filters "),s("em",null,"and"),n(" the search query field filters to the search. Be sure to clear the filter selector or the search field if you prefer to apply only one of them. ")],-1));function ns(e,t,r,f,a,o){const u=ue;return i(),h(vt,{modelValue:a.dialog,"onUpdate:modelValue":t[2]||(t[2]=c=>a.dialog=c),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:d(({props:c})=>[l(k,We(Qe(c)),{default:d(()=>[l(P,null,{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiArchiveSearchOutline),1)]),_:1}),n("Search Syntax Help ")]),_:1})]),_:2},1040)]),default:d(()=>[s("div",_o,[l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[0]||(t[0]=c=>a.dialog=!1)}),fo,s("div",go,[bo,l(St,{id:"fieldTable",class:"highlight-table"},{default:d(()=>[yo,s("tbody",null,[(i(!0),g(I,null,N(a.FIELD_ROWS,c=>(i(),g("tr",{key:c[0]},[s("td",null,_(c[0]),1),s("td",null,_(c[1]),1),s("td",wo,_(c[2]||""),1)]))),128))])]),_:1})]),s("div",So,[vo,s("p",null,[n(" Codex uses the Whoosh search engine to execute your text search queries. Whoosh operates much like other familiar search engines. As such, only some special features are documented on this page. To understand its full power, users are encouraged to read the "),s("a",Co,[n("Whoosh Query Language "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation. ")]),Bo,n(" Whoosh has the "),ko,n(", "),To,n(", "),Vo,n(", "),Mo,n(", "),$o,n(", and "),xo,n(" operators. "),Io,No,Fo,s("p",null,[n(" Whoosh parses Dates and DateTime values liberally. Read "),s("a",Po,[n("Whoosh Parsing Date Queries "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation for what formats and natural language phrases are accepted. If the format you try fails, the "),Ro,n(" and "),Do,n(" formats are reliable. ")]),Oo,Lo,Go,Uo,Ho,Ao,Eo,qo,n(". "),zo,jo,n(". "),Yo,Wo,Qo,Ko,Xo,Jo,Zo,es,ts,os,ss,rs]),l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[1]||(t[1]=c=>a.dialog=!1)})])]),_:1},8,["modelValue"])}const we=y(po,[["render",ns],["__scopeId","data-v-f473187d"]]),is={name:"BrowserSettingsPanel",components:{SearchHelp:we},computed:{...V($,["isCodexViewable"]),...S(p,{groupChoices:e=>e.choices.static.settingsGroup,twentyFourHourTimeTitle:e=>e.choices.static.twentyFourHourTime.title,showSettings:e=>e.settings.show,twentyFourHourTime:e=>e.settings.twentyFourHourTime})},methods:{...B(p,["setSettings"]),setShow(e,t){const r={show:{[e]:t===!0}};this.setSettings(r)},set24HourTime(e){const t={twentyFourHourTime:e===!0};this.setSettings(t)}}},as=e=>(O("data-v-9312ed19"),e=e(),L(),e),ls=as(()=>s("div",{id:"groupCaption",class:"text-caption"}," Show these groups when navigating the browse tree. ",-1));function us(e,t,r,f,a,o){const u=we;return i(),g(I,null,[ls,(i(!0),g(I,null,N(e.groupChoices,c=>(i(),h(X,{key:c.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[c.value],"true-value":!0,label:`Show ${c.title}`,"onUpdate:modelValue":b=>o.setShow(c.value,b)},null,8,["model-value","label","onUpdate:modelValue"]))),128)),l(R),l(X,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[0]||(t[0]=c=>o.set24HourTime(c))},null,8,["model-value"]),l(R),l(u)],64)}const ds=y(is,[["render",us],["__scopeId","data-v-9312ed19"]]),cs=new Set(["community_rating","critical_rating"]),ms=new Set(["date"]),hs=new Set(["bookmark_updated_at","created_at","updated_at"]),ps={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...S(p,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(this.orderBy===void 0||this.orderBy===null||this.orderBy==="sort_name"&&(this.item.group!=="c"||this.topGroup!=="f")||e===null||e===void 0)e="";else if(ms.has(this.orderBy)){const t=new Date(e);e=Ke.format(t)}else this.orderBy=="search_score"?e=W.format(Math.round(Number.parseFloat(e)*10)):hs.has(this.orderBy)?e=Xe(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${W.format(e)} pages`:this.orderBy=="size"?e=$e(Number.parseInt(e,10)):cs.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}}},_s=["innerHTML"];function fs(e,t,r,f,a,o){return o.orderValue?(i(),g("div",{key:0,class:"orderCaption text-caption",innerHTML:o.orderValue},null,8,_s)):w("",!0)}const Se=y(ps,[["render",fs],["__scopeId","data-v-f1907410"]]),gs={name:"BrowserContainerMenu",components:{ConfirmDialog:me},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:Je,showMenu:!1}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},confirmText(){return`Mark ${this.verb}`},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");let t=this.groupNames[this.item.group];return this.item.group!=="s"&&(t=t.slice(0,-1)),e.push(t,this.verb),e.join(" ")}},methods:{...B(p,["setBookmarkFinished"]),...B(q,["downloadIOSPWAFix"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}},bs={class:"background-soft-highlight"};function ys(e,t,r,f,a,o){const u=me;return i(),h(gt,{modelValue:a.showMenu,"onUpdate:modelValue":t[2]||(t[2]=c=>a.showMenu=c),"offset-y":"",top:""},{activator:d(({props:c})=>[l(H,x({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:"",title:"Action Menu",variant:"text"},c,{onClick:t[0]||(t[0]=Ze(()=>{},["prevent"]))}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiDotsVertical),1)]),_:1})]),_:2},1040)]),default:d(()=>[s("div",bs,[r.item.group==="c"?(i(),h(k,{key:0,onClick:o.toggleRead},{default:d(()=>[l(P,null,{default:d(()=>[n(_(o.markReadText),1)]),_:1})]),_:1},8,["onClick"])):(i(),h(u,{key:1,"button-text":o.markReadText,"title-text":o.markReadText,"confirm-text":o.confirmText,"object-name":r.item.name,onConfirm:o.toggleRead,onCancel:t[1]||(t[1]=c=>a.showMenu=!1)},null,8,["button-text","title-text","confirm-text","object-name","onConfirm"]))])]),_:1},8,["modelValue"])}const ve=y(gs,[["render",ys]]),ws={name:"BrowserCardControls",components:{BrowserCardMenu:ve,MetadataButton:xe},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:Q,mdiEyeOff:K}},computed:{eyeIcon:function(){return this.eyeOpen?Q:K}}},Ss={class:"cardControls"};function vs(e,t,r,f,a,o){const u=C("MetadataButton"),c=ve;return i(),g("div",Ss,[r.item.group==="c"?(i(),h(v,{key:0,class:"eye"},{default:d(()=>[n(_(o.eyeIcon),1)]),_:1})):w("",!0),l(u,{group:r.item.group,book:r.item,children:r.item.childCount},null,8,["group","book","children"]),l(c,{item:r.item},null,8,["item"])])}const Cs=y(ws,[["render",vs],["__scopeId","data-v-c2d95d7f"]]),Bs={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...S(p,{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}),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?U(this.item.volumeName):!1},headerName:function(){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"?ke(this.item,this.zeroPad):Te(this.item,this.zeroPad);break;default:e=""}return e},displayName:function(){return this.item.group==="v"?U(this.item.name):this.item.name},linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ks={class:"browserLink cardSubtitle text-caption"},Ts={key:0,class:"seriesCaption"},Vs={key:1,class:"volumeCaption"},Ms={key:2,class:"headerName"},$s={class:"displayName"};function xs(e,t,r,f,a,o){return i(),g("div",ks,[o.seriesName?(i(),g("div",Ts,_(o.seriesName),1)):w("",!0),o.volumeName?(i(),g("div",Vs,_(o.volumeName),1)):w("",!0),o.headerName?(i(),g("div",Ms,_(o.headerName),1)):w("",!0),s("div",$s,_(o.displayName),1)])}const Is=y(Bs,[["render",xs],["__scopeId","data-v-33504043"]]),Ns=new Set(["iPad","iPad Simulator","iPhone","iPhone Simulator","iPod","iPod Simulator"]),Fs=Ns.has(navigator.platform),Ps="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0||window.matchMedia("(any-hover: none)").matches,Rs=et({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...tt(),...ot(),...st(),...rt({transition:"fade-transition"})},"VLazy"),Ds=nt()({name:"VLazy",directives:{intersect:it},props:Rs(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:r}=t;const{dimensionStyles:f}=at(e),a=lt(e,"modelValue");function o(u){a.value||(a.value=u)}return ut(()=>ce(l(e.tag,{class:["v-lazy",e.class],style:[f.value,e.style]},{default:()=>[a.value&&l(ct,{transition:e.transition,appear:!0},{default:()=>{var u;return[(u=r.default)==null?void 0:u.call(r)]}})]}),[[dt("intersect"),{handler:o,options:e.options},null]])),{}}}),Z=100,Os=-170,Ls={name:"BrowserCard",components:{BookCover:ne,BrowserCardControls:Cs,BrowserCardSubtitle:Is,OrderByCaption:Se},props:{item:{type:Object,required:!0}},data(){return{doubleTapHovered:!Ps||Fs}},computed:{...S(p,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.headerName,e},toRoute:function(){return this.doubleTapHovered?this.item.group==="c"?Ie(this.item,this.importMetadata):{name:"browser",params:{group:this.item.group,pk:this.item.pk,page:1}}:{}},progressBackgroundColor:function(){return this.item.progress?this.$vuetify.theme.current.colors.row:"inherit"}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.item.pk))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,Os)},Z)},Z)}}},Gs={class:"browserCardTop"},Us={key:1,class:"cardCoverOverlay"};function Hs(e,t,r,f,a,o){const u=ne,c=C("BrowserCardControls"),b=C("router-link"),M=C("BrowserCardSubtitle"),F=Se;return i(),h(Ds,{id:`card-${r.item.pk}`,transition:"scale-transition"},{default:d(()=>[s("div",{class:"browserCardCoverWrapper",onClick:t[0]||(t[0]=j=>a.doubleTapHovered=!0)},[s("div",Gs,[l(u,{"cover-pk":r.item.coverPk,group:r.item.group,"child-count":r.item.childCount,finished:r.item.finished},null,8,["cover-pk","group","child-count","finished"]),o.toRoute?(i(),h(b,{key:0,class:"cardCoverOverlay",to:o.toRoute,"aria-label":o.linkLabel},{default:d(()=>[l(c,{item:r.item,"eye-open":!0},null,8,["item"])]),_:1},8,["to","aria-label"])):(i(),g("div",Us,[l(c,{item:r.item,"eye-open":!1},null,8,["item"])])),ce(l(E,{class:"bookCoverProgress","background-color":o.progressBackgroundColor,"model-value":r.item.progress,"aria-label":`${r.item.progress}% read`,rounded:"",height:"2"},null,8,["background-color","model-value","aria-label"]),[[mt,r.item.progress]]),l(M,{item:r.item},null,8,["item"])]),l(F,{item:r.item},null,8,["item"])])]),_:1},8,["id"])}const As=y(Ls,[["render",Hs],["__scopeId","data-v-7f56bc86"]]),Es={name:"BrowserMain",components:{BrowserCard:As,PlaceholderLoading:ie},data(){return{mdiMenu:ht,mdiOpenInNew:de}},computed:{...S($,{adminFlags:e=>e.adminFlags}),...V($,["isUserAdmin","isCodexViewable"]),...S(p,{librariesExist:e=>e.page.librariesExist,showPlaceHolder:function(e){return this.adminFlags.nonUsers===void 0||this.isCodexViewable&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],padFooter:e=>e.page.numPages>1}),showBrowseItems(){return this.cards&&this.cards.length>0&&this.isCodexViewable&&!this.showPlaceHolder}}},z=e=>(O("data-v-b023c894"),e=e(),L(),e),qs={key:0,id:"browsePaneContainer"},zs={key:1,id:"announce"},js={key:2,id:"announce"},Ys={key:0},Ws={key:0},Qs={key:3,id:"announce"},Ks=z(()=>s("div",{id:"noComicsFound"},"No comics found for these filters",-1)),Xs=[Ks],Js={key:4,id:"announce"},Zs=z(()=>s("h1",null,"No libraries have been added to Codex yet",-1)),er={key:0},tr={key:1},or=z(()=>s("h2",null," An administrator must login to add some libraries that contain comics ",-1)),sr={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function rr(e,t,r,f,a,o){const u=C("BrowserCard"),c=ie;return i(),h(he,{id:"browsePane",class:D({padFooter:e.padFooter})},{default:d(()=>[o.showBrowseItems?(i(),g("div",qs,[(i(!0),g(I,null,N(e.cards,b=>(i(),h(u,{key:`${b.group}${b.pk}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(i(),g("div",zs,[l(c,{class:"placeholder"})])):e.isCodexViewable?e.librariesExist?(i(),g("div",Qs,Xs)):(i(),g("div",Js,[Zs,e.isUserAdmin?(i(),g("h2",er,[n(" Use the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu to navigate to the admin panel and add a comic library. ")])):(i(),g("div",tr,[or,s("h3",null,[n(" You may log in or register with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n("menu ")])])),s("a",sr,[n("See the README "),l(v,null,{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" for detailed instructions. ")])):(i(),g("div",js,[s("h1",null,[n(" You may log in "),e.adminFlags.register?(i(),g("span",Ys,"or register")):w("",!0),n(" with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu ")]),e.adminFlags.register?w("",!0):(i(),g("h1",Ws,"Registration is disabled"))]))]),_:1},8,["class"])}const nr=y(Es,[["render",rr],["__scopeId","data-v-b023c894"]]),ir={name:"MainBrowser",components:{BrowserTopToolbar:ye,BrowserMain:nr,BrowserNavToolbar:_e,BrowserTitleToolbar:be,SettingsDrawer:te},data(){return{BrowserSettingsPanel:pt(ds)}},computed:{...S($,{user:e=>e.user}),...V($,["isCodexViewable"])},watch:{$route:function(){window.scrollTo(0,0),this.loadBrowserPage()},user:function(){this.loadSettings()},isCodexViewable:function(){this.loadSettings()}},created(){q().isSettingsDrawerOpen=!1,this.loadSettings()},methods:{...B(p,["loadBrowserPage","loadSettings","getVersions"])}},ar={class:"codexToolbar"};function lr(e,t,r,f,a,o){const u=ye,c=be,b=C("BrowserMain"),M=_e,F=te;return i(),g(I,null,[l(he,{id:"browser"},{default:d(()=>[s("header",ar,[l(u),l(c)]),l(b),l(M)]),_:1}),l(F,{title:"Browser Settings",panel:a.BrowserSettingsPanel,temporary:""},null,8,["panel"])],64)}const Mr=y(ir,[["render",lr],["__scopeId","data-v-92361854"]]);export{Mr as default};
1
+ import{f as U,V as Ce,a as ee,S as Be,g as ke,b as Te,_ as te}from"./VToolbar-CFS6f65a.js";import{_ as oe,a as se,b as re,N as Ve,t as Me,V as G,p as $e,c as xe,d as ne,g as Ie,P as ie}from"./metadata-dialog-B1ZLku4K.js";import{aE as ae,M as S,_ as y,R as i,O as h,P as d,L as l,aa as n,ae as _,ab as D,ad as v,N as B,aB as w,ax as V,aF as Ne,aG as Fe,ak as H,m as $,ay as g,aD as s,aH as O,aI as L,aJ as Pe,az as N,aK as Re,am as x,aL as De,aM as Oe,a9 as A,af as P,ag as k,aN as Le,al as I,aO as Ge,aP as Ue,aQ as E,aR as He,aS as Ae,Q as C,aT as R,aU as Ee,aV as qe,aW as le,aX as Y,aY as ze,aZ as je,k as q,a_ as ue,a$ as de,b0 as Ye,b1 as We,b2 as Qe,b3 as Ke,b4 as W,b5 as Xe,b6 as Je,b7 as Ze,b8 as Q,b9 as K,x as et,E as tt,ba as ot,aq as st,bb as rt,G as nt,bc as it,bd as at,ar as lt,K as ut,be as ce,bf as dt,bg as ct,bh as mt,bi as ht,aC as pt}from"./admin-drawer-panel-qx4h4jTa.js";import{u as p,C as _t}from"./main-D90pCWS5.js";import{V as ft,a as gt}from"./VSelect-DQK0dr_P.js";import{c as bt}from"./to-case-kUm8NPpW.js";import{a as yt}from"./VSlideGroup-DZYc9yjh.js";import{V as wt}from"./VCombobox-CKa9jhK-.js";import{V as St}from"./VTable-x_Oa5l-b.js";import{V as vt}from"./confirm-footer-Bh1JTOMT.js";import{V as X}from"./VCheckbox-Dq3e1FMC.js";import{_ as me}from"./confirm-dialog-DwEXLn55.js";import{V as he}from"./VMain-DittTZHT.js";import"./index-DUjeNg4x.js";import"./change-password-dialog-DF5XThbF.js";import"./VSelectionControl-D6Lff-4t.js";import"./VCheckboxBtn-DbKo7Vio.js";import"./filter-D2btmWuH.js";const Ct={name:"BrowserNavButton",components:{PaginationNavButton:oe},props:{back:{type:Boolean,required:!0}},data(){return{mdiChevronLeft:ae}},computed:{...S(p,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return+this.$route.params.page+this.increment},title(){return"Page "+this.toPage},toRoute(){return{params:{...this.$route.params,page:this.toPage}}},disabled(){return this.back&&+this.$route.params.page<=1||!this.back&&+this.$route.params.page>=this.numPages}}};function Bt(e,t,r,f,a,o){const u=oe;return i(),h(u,{disabled:o.disabled,title:o.title,to:o.toRoute},{default:d(()=>[l(v,{class:D({flipHoriz:!r.back})},{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["disabled","title","to"])}const pe=y(Ct,[["render",Bt],["__scopeId","data-v-fcf3d3ee"]]),kt={name:"BrowserNavToolbar",components:{BrowserNavButton:pe,PaginationSlider:se,PaginationToolbar:re},computed:{...S(p,{numPages:e=>e.page.numPages})},methods:{...B(p,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Tt(e,t,r,f,a,o){const u=pe,c=se,b=re;return e.numPages>1?(i(),h(b,{key:0},{default:d(()=>[l(u,{back:!0}),l(c,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=M=>e.routeToPage(M))},null,8,["model-value","max"]),l(u,{back:!1})]),_:1})):w("",!0)}const _e=y(kt,[["render",Tt]]),Vt=new Set(["a","f"]),Mt={name:"BrowserUpButton",props:{top:{type:Boolean,default:!1}},computed:{...V(p,["parentModelGroup"]),...S(p,{upRoute:e=>e.page.routes.up,title(e){const t=this.top?e.settings.topGroup:this.parentModelGroup;return`Up to ${e.choices.static.groupNames[t]||"All"}`}}),show(){return this.upRoute&&"group"in this.upRoute},icon(){return this.top?Ne:Fe},to(){let e;if(this.top){let t=this.upRoute.group;Vt.has(t)||(t="r"),e={group:t,pk:0,page:1}}else e=this.upRoute;return{params:e}}}};function $t(e,t,r,f,a,o){return o.show?(i(),h(H,{key:0,icon:"",size:"x-large",title:e.title,to:o.to,variant:"plain"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(o.icon),1)]),_:1})]),_:1},8,["title","to"])):w("",!0)}const fe=y(Mt,[["render",$t]]),xt={name:"BrowserHeader",components:{BrowserUpButton:fe},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames,browserTitle:e=>e.page.browserTitle,modelGroup:e=>e.page.modelGroup}),...V($,["isCodexViewable","isUserAdmin"]),longBrowserTitlePrefix:function(){return this.$route.params.group==="f"?this.browserTitle.parentName:""},longBrowseTitleMain:function(){let e;if(Number(this.$route.params.pk)===0)e="All";else{let t=[];const{parentName:r,groupName:f,groupCount:a}=this.browserTitle;r&&t.push(r);const o=this.$route.params.group,u=o==="v"?U(f):f;if(u&&t.push(u),a){const b=`of ${a}`;t.push(b)}const c=o==="f"?"/":" ";e=t.join(c)}return e},longBrowseTitleSuffix:function(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}},ge=e=>(O("data-v-3d5e18c3"),e=e(),L(),e),It={key:0,id:"titleToolbarPrefix"},Nt=ge(()=>s("br",null,null,-1)),Ft={id:"titleToolbarMain"},Pt={key:1,id:"titleToolbarSuffix"},Rt=ge(()=>s("br",null,null,-1));function Dt(e,t,r,f,a,o){const u=fe;return e.isCodexViewable?(i(),h(ee,{key:0,id:"titleToolbar",elevation:"8"},{default:d(()=>[l(u),l(Ce,{class:"codexToolbarTitle"},{default:d(()=>[o.longBrowserTitlePrefix?(i(),g("span",It,[n(_(o.longBrowserTitlePrefix)+" ",1),Nt])):w("",!0),s("span",Ft,_(o.longBrowseTitleMain),1),o.longBrowseTitleSuffix?(i(),g("span",Pt,[Rt,n(" "+_(o.longBrowseTitleSuffix),1)])):w("",!0)]),_:1}),l(u,{top:""})]),_:1})):w("",!0)}const be=y(xt,[["render",Dt],["__scopeId","data-v-3d5e18c3"]]),Ot={name:"ToolbarSelect",props:{selectLabel:{type:String,default:""},maxSelectLen:{type:Number,default:0},mobileLenAdj:{type:Number,default:0},variant:{type:String,default:"plain"}},computed:{style(){const e=this.$vuetify.display.smAndDown?this.mobileLenAdj:0,r=this.maxSelectLen+e+"em";return`width: ${r}; min-width: ${r}; max-width: ${r}`}}};function Lt(e,t,r,f,a,o){return i(),h(ft,x(e.$attrs,{label:r.selectLabel,"aria-label":r.selectLabel,class:"toolbarSelect",density:"compact","full-width":"","menu-props":{maxHeight:void 0},"hide-details":"auto",style:o.style,variant:r.variant}),Pe({_:2},[N(e.$slots,(u,c)=>({name:c,fn:d(b=>[Re(e.$slots,c,x({props:u},b),void 0,!0)])}))]),1040,["label","aria-label","style","variant"])}const T=y(Ot,[["render",Lt],["__scopeId","data-v-ea769669"]]),Gt=_t.browser.vuetifyNullCode,Ut={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:ae,mdiChevronRight:De,mdiChevronRightCircle:Oe,query:"",nullCode:Gt}},computed:{...S(p,{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]}}),...A(p,["filterMode"]),hasNone(){for(const e of this.choices)if(Ve.has(e.pk))return!0;return!1},vuetifyItems(){return Me(this.choices,this.query)},title:function(){return bt(this.name)},lowerTitle:function(){return this.title.toLowerCase()}},methods:{...B(p,["identifierTypeTitle","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}}},Ht={key:0},At={class:"filterHeader"};function Et(e,t,r,f,a,o){return i(),g("div",null,[l(Le,{"hide-on-leave":""},{default:d(()=>[e.filterMode==="base"?(i(),h(k,{key:0,onClick:t[0]||(t[0]=u=>o.setUIFilterMode(r.name))},{default:d(()=>[l(P,{class:"filterMenu"},{default:d(()=>[n(_(o.title)+" ",1),e.filter&&e.filter.length>0?(i(),h(v,{key:0,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRightCircle),1)]),_:1})):(i(),h(v,{key:1,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRight),1)]),_:1}))]),_:1})]),_:1})):w("",!0)]),_:1}),l(Ue,{"hide-on-leave":""},{default:d(()=>[e.filterMode===r.name?(i(),g("div",Ht,[s("header",At,[l(k,{onClick:t[1]||(t[1]=u=>o.setUIFilterMode("base"))},{default:d(()=>[l(P,{class:"filterTitle"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1}),n(_(o.lowerTitle),1)]),_:1})]),_:1}),typeof e.choices=="object"?(i(),h(yt,{key:0,modelValue:a.query,"onUpdate:modelValue":t[2]||(t[2]=u=>a.query=u),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=u=>e.filterMode=r.name)},null,8,["modelValue"])):(i(),h(E,{key:1,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(i(),h(Ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:o.vuetifyItems,"onUpdate:selected":o.selected},{default:d(()=>[o.hasNone?(i(),h(k,{key:-1,title:"None",value:-1,class:"noneItem"})):w("",!0),(i(!0),g(I,null,N(o.vuetifyItems,u=>(i(),h(k,{key:u.value,title:o.itemTitle(u),value:u.value,class:D({noneItem:+u.value==a.nullCode})},null,8,["title","value","class"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):w("",!0)])):w("",!0)]),_:1})])}const qt=y(Ut,[["render",Et],["__scopeId","data-v-c9df90cc"]]),zt={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:qt,ToolbarSelect:T},extends:T,data(){return{mdiFilterMultipleOutline:He,menu:!1}},computed:{...V(p,["filterByChoicesMaxLen","isDefaultBookmarkValueSelected"]),...S(p,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,isDynamicFiltersSelected:function(e){for(const[t,r]of Object.entries(e.settings.filters))if(t!=="bookmark"&&r&&r.length>0)return!0;return!1},isFiltersClearable:function(){return!this.isDefaultBookmarkValueSelected||this.isDynamicFiltersSelected},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[r,f]of Object.entries(e.choices.dynamic))f&&t.push(r);return t}}),...A(p,["filterMode"]),filterInnerIcon:function(){return this.isFiltersClearable?Ae:""}},methods:{...B(p,["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(){this.clearFilters()},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},jt={key:1};function Yt(e,t,r,f,a,o){const u=C("BrowserFilterSubMenu"),c=T;return i(),h(c,{menu:a.menu,"onUpdate:menu":[t[0]||(t[0]=b=>a.menu=b),o.onMenu],class:"filterBySelect","select-label":"filter by",clearable:e.isFiltersClearable,items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen+1.5,"mobile-len-adj":-1.5,variant:"solo","onClick:clear":o.onClear,"onUpdate:modelValue":o.onUpdateModelValue},{selection:d(({item:b})=>[n(_(b.title)+" ",1),e.isDynamicFiltersSelected?(i(),h(v,{key:0,class:"filterSuffix"},{default:d(()=>[n(_(a.mdiFilterMultipleOutline),1)]),_:1})):w("",!0)]),"append-item":d(()=>[l(R),e.dynamicChoiceNames===void 0?(i(),h(k,{key:0},{default:d(()=>[l(E,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(i(),g("div",jt,[(i(!0),g(I,null,N(e.dynamicChoiceNames,b=>(i(),h(u,{key:b,name:b,onSelected:o.onSubMenuSelected},null,8,["name","onSelected"]))),128))])):(i(),h(k,{key:2,class:"noChoices"},{default:d(()=>[n(" No filters available ")]),_:1}))]),_:1},8,["menu","clearable","items","menu-props","model-value","max-select-len","onClick:clear","onUpdate:modelValue","onUpdate:menu"])}const Wt=y(zt,[["render",Yt],["__scopeId","data-v-8cf1988f"]]),Qt={name:"BrowseOrderBySelect",components:{ToolbarSelect:T},extends:T,computed:{...V(p,["orderByChoices","orderByChoicesMaxLen"]),...S(p,{orderBySetting:e=>e.settings.orderBy}),reverseValues(){const e=new Set;for(const t of this.orderByChoices)t.reverse&&e.add(t.value);return e},orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:this.reverseValues.has(e)};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Kt(e,t,r,f,a,o){const u=T;return i(),h(u,x({modelValue:o.orderBy,"onUpdate:modelValue":t[0]||(t[0]=c=>o.orderBy=c),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-3.5,"mobile-len-adj":-2},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Xt=y(Qt,[["render",Kt]]),Jt={name:"BrowseOrderReverseButton",computed:{...S(p,{orderReverseSetting:e=>e.settings.orderReverse,orderIcon:e=>e.settings.orderReverse?Ee:qe}),density(){return this.$vuetify.display.smAndDown?"compact":"default"},title(){return this.orderReverseSetting?"order descending":"order ascending"}},methods:{...B(p,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Zt(e,t,r,f,a,o){return i(),h(H,x({class:"orderReverseButton",density:o.density,height:"46",icon:"",variant:"text"},e.$attrs,{title:o.title,onClick:o.toggleOrderReverse}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(e.orderIcon),1)]),_:1})]),_:1},16,["density","title","onClick"])}const eo=y(Jt,[["render",Zt],["__scopeId","data-v-57eeaaec"]]),to=10,oo={name:"BrowserSearchCombobox",data(){return{mdiMagnify:le,menu:!1,query:"",items:[""]}},computed:{...S(p,{stateQ:e=>e.settings.q})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},methods:{...B(p,["setSettings"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,to)},doSearch(){this.menu=!1;const e=this.query?this.query.trim():"";this.setSettings({q:e}),this.addToMenu(e)}}};function so(e,t,r,f,a,o){return i(),h(wt,{ref:"searchbox",modelValue:a.query,"onUpdate:modelValue":t[0]||(t[0]=u=>a.query=u),menu:a.menu,"onUpdate:menu":t[1]||(t[1]=u=>a.menu=u),items:a.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":a.mdiMagnify,variant:"solo","onClick:clear":o.doSearch,"onClick:prependInner":o.doSearch,onKeydown:[Y(o.doSearch,["enter"]),t[2]||(t[2]=Y(u=>a.menu=!1,["esc"]))]},null,8,["modelValue","menu","items","prepend-inner-icon","onClick:clear","onClick:prependInner","onKeydown"])}const ro=y(oo,[["render",so]]),no={params:{group:"f",pk:0,page:1}},J=new Set(["a","f"]),io={name:"BrowserTopGroupSelect",components:{ToolbarSelect:T},extends:T,data(){return{FOLDER_ROUTE:no,DIVIDED_VALUES:J}},computed:{...S(p,{topGroupSetting:e=>e.settings.topGroup}),...V(p,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const r={params:{group:J.has(e)?e:"r",pk:0,page:1}},f={topGroup:e};this.$router.push(r).then(()=>this.setSettings(f)).catch(console.error)}}},methods:{...B(p,["setSettings"])}};function ao(e,t,r,f,a,o){const u=T;return i(),h(u,x(e.$attrs,{modelValue:o.topGroup,"onUpdate:modelValue":t[0]||(t[0]=c=>o.topGroup=c),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2,"mobile-len-adj":-1}),{item:d(({item:c,props:b})=>[a.DIVIDED_VALUES.has(c.value)?(i(),h(R,{key:0})):w("",!0),l(k,x(b,{title:c.title,value:c.value}),null,16,["title","value"])]),_:1},16,["modelValue","items","max-select-len"])}const lo=y(io,[["render",ao],["__scopeId","data-v-d1f6fd76"]]),uo=ze("v-spacer","div","VSpacer"),co={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Wt,BrowserTopGroupSelect:lo,BrowserSearchCombobox:ro,BrowserOrderBySelect:Xt,BrowserOrderReverseButton:eo,SettingsDrawerButton:Be},data(){return{mdiMagnify:le,mdiFamilyTree:je,browseMode:"filter"}},computed:{...V($,["isCodexViewable"]),...A(q,["isSettingsDrawerOpen"])}};function mo(e,t,r,f,a,o){const u=C("BrowserTopGroupSelect"),c=C("BrowserOrderBySelect"),b=C("BrowserOrderReverseButton"),M=C("SettingsDrawerButton"),F=C("BrowserFilterBySelect"),j=C("BrowserSearchCombobox");return i(),h(ee,{id:"browserToolbar",class:D(["toolbar",{emptyToolbar:!e.isCodexViewable}]),density:"compact","extension-height":"48px"},{extension:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"searchToolbarItems"},{default:d(()=>[l(F,{id:"filterSelect"}),l(j,{id:"searchField"})]),_:1})):w("",!0)]),default:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"browserToolbarLeftItems"},{default:d(()=>[l(u,{id:"topGroupSelect"}),l(c,{id:"orderBySelect"}),l(b,{id:"orderReverseButton"})]),_:1})):w("",!0),l(uo),l(G,null,{default:d(()=>[l(M,{onClick:t[0]||(t[0]=ur=>e.isSettingsDrawerOpen=!0)})]),_:1})]),_:1},8,["class"])}const ye=y(co,[["render",mo],["__scopeId","data-v-939a4977"]]),ho=[["characters","CSV","category"],["community_rating","Decimal","communityrating"],["contributor","CSV","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","type"],["genres","CSV","genre"],["identifier","CSV","id, nss"],["identifier_type","CSV","id_type, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","CSV","location"],["maturity_rating","String"],["monochrome","String","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","CSV","seriesgroups"],["size","Integer"],["stories","CSV","story"],["story_arcs","CSV","storyarcs"],["summary","String","comments, description"],["tags","CSV","tag"],["tagger","String"],["teams","CSV","team"],["updated_at","Date","updated"],["volume","String"],["web","String"],["year","Integer"]],po={name:"SearchHelp",components:{CloseButton:ue},data(){return{mdiOpenInNew:de,mdiArchiveSearchOutline:Ye,dialog:!1,FIELD_ROWS:ho}}},m=e=>(O("data-v-f473187d"),e=e(),L(),e),_o={id:"searchHelp"},fo=m(()=>s("h1",null,"Search Syntax Help",-1)),go={id:"fieldTableContainer"},bo=m(()=>s("h2",null,"Search Fields",-1)),yo=m(()=>s("thead",null,[s("tr",null,[s("th",null,"Field"),s("th",null,"Type"),s("th",null,"Aliases")])],-1)),wo={class:"aliasCol"},So={id:"textContainer"},vo=m(()=>s("h2",null,"Whoosh Query Parser",-1)),Co={href:"https://whoosh.readthedocs.io/en/latest/querylang.html",target:"_blank"},Bo=m(()=>s("h2",null,"Operators",-1)),ko=m(()=>s("code",null,"and",-1)),To=m(()=>s("code",null,"or",-1)),Vo=m(()=>s("code",null,"not",-1)),Mo=m(()=>s("code",null,"andnot",-1)),$o=m(()=>s("code",null,"andmaybe",-1)),xo=m(()=>s("code",null,"require",-1)),Io=m(()=>s("h2",null,"Searching Fields",-1)),No=m(()=>s("p",null,[n(" Like Codex's filter selector menu, but more powerful. You may search on individual comic metadata fields. using a search token like "),s("code",null,"field:value"),n(". ")],-1)),Fo=m(()=>s("h3",null,"Dates and DateTimes",-1)),Po={href:"https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries",target:"_blank"},Ro=m(()=>s("code",null,"YYYYMMDD",-1)),Do=m(()=>s("code",null,"YYYMMDDHHmmSS",-1)),Oo=m(()=>s("h3",null,"Single Quote complex field Queries",-1)),Lo=m(()=>s("p",null,[n(" Use "),s("em",null,"single"),n(" quotes to tell Codex that a complex or natural language phrase should be applied to a specific field ")],-1)),Go=m(()=>s("code",null," created:'this year' ",-1)),Uo=m(()=>s("h3",null,"Size Byte Multipliers",-1)),Ho=m(()=>s("p",null,[n(" The size field can make use of convenient byte multiplier suffixes like "),s("code",null,"kb"),n(" and "),s("code",null,"mb"),n(" as well as binary suffixes like "),s("code",null,"gib"),n(" and "),s("code",null,"tib"),n(". ")],-1)),Ao=m(()=>s("h3",null,"Ranges of Fields",-1)),Eo=m(()=>s("p",null,[n(" Whoosh uses brackets and the "),s("em",null,"uppercase"),n(" "),s("code",null,"TO"),n(" operator to delineate a range search. ")],-1)),qo=m(()=>s("code",null,"updated:[last sunday TO 10am]",-1)),zo=m(()=>s("p",null," You may leave out the upper or lower bound or use >, <, >=, <= operators. ",-1)),jo=m(()=>s("code",null,"size:<50mb",-1)),Yo=m(()=>s("h3",null,"Multi Value Fields",-1)),Wo=m(()=>s("p",null,[n(" Fields marked type "),s("code",null,"CSV"),n(" in the table to the left may contain comma separated values. This filters by all the supplied values. Multi Value tokens look like: "),s("code",null,"field:term1,term2,term3")],-1)),Qo=m(()=>s("h2",null,"Grouped Queries",-1)),Ko=m(()=>s("p",null,"Whoosh allows grouping of queries with parenthesis.",-1)),Xo=m(()=>s("h2",null,"Example Search",-1)),Jo=m(()=>s("p",null," This example search is more convoluted than most searches but uses many features for demonstration: ",-1)),Zo=m(()=>s("code",null,' (Holmes and Tesla date:>=1999-1-2 size:[10mib TO 1gb] Gadzooks) or "Captain Nemo" -Quartermain ',-1)),es=m(()=>s("p",{style:{"margin-top":"1em"}},' Search for comics that contain Holmes and Tesla published after the second day of 1999 that are between 10 Mebibytes and 10 Gigabytes that also contain the word "Gadzooks" but also all comics with the the phrase "Captain Nemo" but no comics will contain the word "Quartermain". ',-1)),ts=m(()=>s("h2",null,"Group and Sorting Behavior",-1)),os=m(()=>s("p",null," If the search field is empty and then you supply a search query for the first time, Codex navigates you to the to All Issues view and your sets your Sorted By selection to Search Score. If you prefer a different view you may change the group and sort selections after your you make your first search. ",-1)),ss=m(()=>s("h2",null,"Filter Behavior",-1)),rs=m(()=>s("p",null,[n(" Codex applies "),s("em",null,"both"),n(" the Filter selection menu filters "),s("em",null,"and"),n(" the search query field filters to the search. Be sure to clear the filter selector or the search field if you prefer to apply only one of them. ")],-1));function ns(e,t,r,f,a,o){const u=ue;return i(),h(vt,{modelValue:a.dialog,"onUpdate:modelValue":t[2]||(t[2]=c=>a.dialog=c),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:d(({props:c})=>[l(k,We(Qe(c)),{default:d(()=>[l(P,null,{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiArchiveSearchOutline),1)]),_:1}),n("Search Syntax Help ")]),_:1})]),_:2},1040)]),default:d(()=>[s("div",_o,[l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[0]||(t[0]=c=>a.dialog=!1)}),fo,s("div",go,[bo,l(St,{id:"fieldTable",class:"highlight-table"},{default:d(()=>[yo,s("tbody",null,[(i(!0),g(I,null,N(a.FIELD_ROWS,c=>(i(),g("tr",{key:c[0]},[s("td",null,_(c[0]),1),s("td",null,_(c[1]),1),s("td",wo,_(c[2]||""),1)]))),128))])]),_:1})]),s("div",So,[vo,s("p",null,[n(" Codex uses the Whoosh search engine to execute your text search queries. Whoosh operates much like other familiar search engines. As such, only some special features are documented on this page. To understand its full power, users are encouraged to read the "),s("a",Co,[n("Whoosh Query Language "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation. ")]),Bo,n(" Whoosh has the "),ko,n(", "),To,n(", "),Vo,n(", "),Mo,n(", "),$o,n(", and "),xo,n(" operators. "),Io,No,Fo,s("p",null,[n(" Whoosh parses Dates and DateTime values liberally. Read "),s("a",Po,[n("Whoosh Parsing Date Queries "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation for what formats and natural language phrases are accepted. If the format you try fails, the "),Ro,n(" and "),Do,n(" formats are reliable. ")]),Oo,Lo,Go,Uo,Ho,Ao,Eo,qo,n(". "),zo,jo,n(". "),Yo,Wo,Qo,Ko,Xo,Jo,Zo,es,ts,os,ss,rs]),l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[1]||(t[1]=c=>a.dialog=!1)})])]),_:1},8,["modelValue"])}const we=y(po,[["render",ns],["__scopeId","data-v-f473187d"]]),is={name:"BrowserSettingsPanel",components:{SearchHelp:we},computed:{...V($,["isCodexViewable"]),...S(p,{groupChoices:e=>e.choices.static.settingsGroup,twentyFourHourTimeTitle:e=>e.choices.static.twentyFourHourTime.title,showSettings:e=>e.settings.show,twentyFourHourTime:e=>e.settings.twentyFourHourTime})},methods:{...B(p,["setSettings"]),setShow(e,t){const r={show:{[e]:t===!0}};this.setSettings(r)},set24HourTime(e){const t={twentyFourHourTime:e===!0};this.setSettings(t)}}},as=e=>(O("data-v-9312ed19"),e=e(),L(),e),ls=as(()=>s("div",{id:"groupCaption",class:"text-caption"}," Show these groups when navigating the browse tree. ",-1));function us(e,t,r,f,a,o){const u=we;return i(),g(I,null,[ls,(i(!0),g(I,null,N(e.groupChoices,c=>(i(),h(X,{key:c.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[c.value],"true-value":!0,label:`Show ${c.title}`,"onUpdate:modelValue":b=>o.setShow(c.value,b)},null,8,["model-value","label","onUpdate:modelValue"]))),128)),l(R),l(X,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[0]||(t[0]=c=>o.set24HourTime(c))},null,8,["model-value"]),l(R),l(u)],64)}const ds=y(is,[["render",us],["__scopeId","data-v-9312ed19"]]),cs=new Set(["community_rating","critical_rating"]),ms=new Set(["date"]),hs=new Set(["bookmark_updated_at","created_at","updated_at"]),ps={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...S(p,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(this.orderBy===void 0||this.orderBy===null||this.orderBy==="sort_name"&&(this.item.group!=="c"||this.topGroup!=="f")||e===null||e===void 0)e="";else if(ms.has(this.orderBy)){const t=new Date(e);e=Ke.format(t)}else this.orderBy=="search_score"?e=W.format(Math.round(Number.parseFloat(e)*10)):hs.has(this.orderBy)?e=Xe(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${W.format(e)} pages`:this.orderBy=="size"?e=$e(Number.parseInt(e,10)):cs.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}}},_s=["innerHTML"];function fs(e,t,r,f,a,o){return o.orderValue?(i(),g("div",{key:0,class:"orderCaption text-caption",innerHTML:o.orderValue},null,8,_s)):w("",!0)}const Se=y(ps,[["render",fs],["__scopeId","data-v-f1907410"]]),gs={name:"BrowserContainerMenu",components:{ConfirmDialog:me},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:Je,showMenu:!1}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},confirmText(){return`Mark ${this.verb}`},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");let t=this.groupNames[this.item.group];return this.item.group!=="s"&&(t=t.slice(0,-1)),e.push(t,this.verb),e.join(" ")}},methods:{...B(p,["setBookmarkFinished"]),...B(q,["downloadIOSPWAFix"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}},bs={class:"background-soft-highlight"};function ys(e,t,r,f,a,o){const u=me;return i(),h(gt,{modelValue:a.showMenu,"onUpdate:modelValue":t[2]||(t[2]=c=>a.showMenu=c),"offset-y":"",top:""},{activator:d(({props:c})=>[l(H,x({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:"",title:"Action Menu",variant:"text"},c,{onClick:t[0]||(t[0]=Ze(()=>{},["prevent"]))}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiDotsVertical),1)]),_:1})]),_:2},1040)]),default:d(()=>[s("div",bs,[r.item.group==="c"?(i(),h(k,{key:0,onClick:o.toggleRead},{default:d(()=>[l(P,null,{default:d(()=>[n(_(o.markReadText),1)]),_:1})]),_:1},8,["onClick"])):(i(),h(u,{key:1,"button-text":o.markReadText,"title-text":o.markReadText,"confirm-text":o.confirmText,"object-name":r.item.name,onConfirm:o.toggleRead,onCancel:t[1]||(t[1]=c=>a.showMenu=!1)},null,8,["button-text","title-text","confirm-text","object-name","onConfirm"]))])]),_:1},8,["modelValue"])}const ve=y(gs,[["render",ys]]),ws={name:"BrowserCardControls",components:{BrowserCardMenu:ve,MetadataButton:xe},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:Q,mdiEyeOff:K}},computed:{eyeIcon:function(){return this.eyeOpen?Q:K}}},Ss={class:"cardControls"};function vs(e,t,r,f,a,o){const u=C("MetadataButton"),c=ve;return i(),g("div",Ss,[r.item.group==="c"?(i(),h(v,{key:0,class:"eye"},{default:d(()=>[n(_(o.eyeIcon),1)]),_:1})):w("",!0),l(u,{group:r.item.group,book:r.item,children:r.item.childCount},null,8,["group","book","children"]),l(c,{item:r.item},null,8,["item"])])}const Cs=y(ws,[["render",vs],["__scopeId","data-v-c2d95d7f"]]),Bs={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...S(p,{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}),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?U(this.item.volumeName):!1},headerName:function(){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"?ke(this.item,this.zeroPad):Te(this.item,this.zeroPad);break;default:e=""}return e},displayName:function(){return this.item.group==="v"?U(this.item.name):this.item.name},linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ks={class:"browserLink cardSubtitle text-caption"},Ts={key:0,class:"seriesCaption"},Vs={key:1,class:"volumeCaption"},Ms={key:2,class:"headerName"},$s={class:"displayName"};function xs(e,t,r,f,a,o){return i(),g("div",ks,[o.seriesName?(i(),g("div",Ts,_(o.seriesName),1)):w("",!0),o.volumeName?(i(),g("div",Vs,_(o.volumeName),1)):w("",!0),o.headerName?(i(),g("div",Ms,_(o.headerName),1)):w("",!0),s("div",$s,_(o.displayName),1)])}const Is=y(Bs,[["render",xs],["__scopeId","data-v-33504043"]]),Ns=new Set(["iPad","iPad Simulator","iPhone","iPhone Simulator","iPod","iPod Simulator"]),Fs=Ns.has(navigator.platform),Ps="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0||window.matchMedia("(any-hover: none)").matches,Rs=et({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...tt(),...ot(),...st(),...rt({transition:"fade-transition"})},"VLazy"),Ds=nt()({name:"VLazy",directives:{intersect:it},props:Rs(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:r}=t;const{dimensionStyles:f}=at(e),a=lt(e,"modelValue");function o(u){a.value||(a.value=u)}return ut(()=>ce(l(e.tag,{class:["v-lazy",e.class],style:[f.value,e.style]},{default:()=>[a.value&&l(ct,{transition:e.transition,appear:!0},{default:()=>{var u;return[(u=r.default)==null?void 0:u.call(r)]}})]}),[[dt("intersect"),{handler:o,options:e.options},null]])),{}}}),Z=100,Os=-170,Ls={name:"BrowserCard",components:{BookCover:ne,BrowserCardControls:Cs,BrowserCardSubtitle:Is,OrderByCaption:Se},props:{item:{type:Object,required:!0}},data(){return{doubleTapHovered:!Ps||Fs}},computed:{...S(p,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.headerName,e},toRoute:function(){return this.doubleTapHovered?this.item.group==="c"?Ie(this.item,this.importMetadata):{name:"browser",params:{group:this.item.group,pk:this.item.pk,page:1}}:{}},progressBackgroundColor:function(){return this.item.progress?this.$vuetify.theme.current.colors.row:"inherit"}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.item.pk))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,Os)},Z)},Z)}}},Gs={class:"browserCardTop"},Us={key:1,class:"cardCoverOverlay"};function Hs(e,t,r,f,a,o){const u=ne,c=C("BrowserCardControls"),b=C("router-link"),M=C("BrowserCardSubtitle"),F=Se;return i(),h(Ds,{id:`card-${r.item.pk}`,transition:"scale-transition"},{default:d(()=>[s("div",{class:"browserCardCoverWrapper",onClick:t[0]||(t[0]=j=>a.doubleTapHovered=!0)},[s("div",Gs,[l(u,{"cover-pk":r.item.coverPk,group:r.item.group,"child-count":r.item.childCount,finished:r.item.finished},null,8,["cover-pk","group","child-count","finished"]),o.toRoute?(i(),h(b,{key:0,class:"cardCoverOverlay",to:o.toRoute,"aria-label":o.linkLabel},{default:d(()=>[l(c,{item:r.item,"eye-open":!0},null,8,["item"])]),_:1},8,["to","aria-label"])):(i(),g("div",Us,[l(c,{item:r.item,"eye-open":!1},null,8,["item"])])),ce(l(E,{class:"bookCoverProgress","background-color":o.progressBackgroundColor,"model-value":r.item.progress,"aria-label":`${r.item.progress}% read`,rounded:"",height:"2"},null,8,["background-color","model-value","aria-label"]),[[mt,r.item.progress]]),l(M,{item:r.item},null,8,["item"])]),l(F,{item:r.item},null,8,["item"])])]),_:1},8,["id"])}const As=y(Ls,[["render",Hs],["__scopeId","data-v-7f56bc86"]]),Es={name:"BrowserMain",components:{BrowserCard:As,PlaceholderLoading:ie},data(){return{mdiMenu:ht,mdiOpenInNew:de}},computed:{...S($,{adminFlags:e=>e.adminFlags}),...V($,["isUserAdmin","isCodexViewable"]),...S(p,{librariesExist:e=>e.page.librariesExist,showPlaceHolder:function(e){return this.adminFlags.nonUsers===void 0||this.isCodexViewable&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],padFooter:e=>e.page.numPages>1}),showBrowseItems(){return this.cards&&this.cards.length>0&&this.isCodexViewable&&!this.showPlaceHolder}}},z=e=>(O("data-v-b023c894"),e=e(),L(),e),qs={key:0,id:"browsePaneContainer"},zs={key:1,id:"announce"},js={key:2,id:"announce"},Ys={key:0},Ws={key:0},Qs={key:3,id:"announce"},Ks=z(()=>s("div",{id:"noComicsFound"},"No comics found for these filters",-1)),Xs=[Ks],Js={key:4,id:"announce"},Zs=z(()=>s("h1",null,"No libraries have been added to Codex yet",-1)),er={key:0},tr={key:1},or=z(()=>s("h2",null," An administrator must login to add some libraries that contain comics ",-1)),sr={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function rr(e,t,r,f,a,o){const u=C("BrowserCard"),c=ie;return i(),h(he,{id:"browsePane",class:D({padFooter:e.padFooter})},{default:d(()=>[o.showBrowseItems?(i(),g("div",qs,[(i(!0),g(I,null,N(e.cards,b=>(i(),h(u,{key:`${b.group}${b.pk}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(i(),g("div",zs,[l(c,{class:"placeholder"})])):e.isCodexViewable?e.librariesExist?(i(),g("div",Qs,Xs)):(i(),g("div",Js,[Zs,e.isUserAdmin?(i(),g("h2",er,[n(" Use the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu to navigate to the admin panel and add a comic library. ")])):(i(),g("div",tr,[or,s("h3",null,[n(" You may log in or register with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n("menu ")])])),s("a",sr,[n("See the README "),l(v,null,{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" for detailed instructions. ")])):(i(),g("div",js,[s("h1",null,[n(" You may log in "),e.adminFlags.register?(i(),g("span",Ys,"or register")):w("",!0),n(" with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu ")]),e.adminFlags.register?w("",!0):(i(),g("h1",Ws,"Registration is disabled"))]))]),_:1},8,["class"])}const nr=y(Es,[["render",rr],["__scopeId","data-v-b023c894"]]),ir={name:"MainBrowser",components:{BrowserTopToolbar:ye,BrowserMain:nr,BrowserNavToolbar:_e,BrowserTitleToolbar:be,SettingsDrawer:te},data(){return{BrowserSettingsPanel:pt(ds)}},computed:{...S($,{user:e=>e.user}),...V($,["isCodexViewable"])},watch:{$route:function(){window.scrollTo(0,0),this.loadBrowserPage()},user:function(){this.loadSettings()},isCodexViewable:function(){this.loadSettings()}},created(){q().isSettingsDrawerOpen=!1,this.loadSettings()},methods:{...B(p,["loadBrowserPage","loadSettings","getVersions"])}},ar={class:"codexToolbar"};function lr(e,t,r,f,a,o){const u=ye,c=be,b=C("BrowserMain"),M=_e,F=te;return i(),g(I,null,[l(he,{id:"browser"},{default:d(()=>[s("header",ar,[l(u),l(c)]),l(b),l(M)]),_:1}),l(F,{title:"Browser Settings",panel:a.BrowserSettingsPanel,temporary:""},null,8,["panel"])],64)}const Mr=y(ir,[["render",lr],["__scopeId","data-v-92361854"]]);export{Mr as default};
@@ -1 +1 @@
1
- import{f as U,V as Ce,a as ee,S as Be,g as ke,b as Te,_ as te}from"./VToolbar-Dyufo4_P.js";import{_ as oe,a as se,b as re,N as Ve,t as Me,V as G,p as $e,c as xe,d as ne,g as Ie,P as ie}from"./metadata-dialog-D-XX9wAf.js";import{aE as ae,M as S,_ as y,R as i,O as h,P as d,L as l,aa as n,ae as _,ab as D,ad as v,N as B,aB as w,ax as V,aF as Ne,aG as Fe,ak as H,m as $,ay as g,aD as s,aH as O,aI as L,aJ as Pe,az as N,aK as Re,am as x,aL as De,aM as Oe,a9 as A,af as P,ag as k,aN as Le,al as I,aO as Ge,aP as Ue,aQ as E,aR as He,aS as Ae,Q as C,aT as R,aU as Ee,aV as qe,aW as le,aX as Y,aY as ze,aZ as je,k as q,a_ as ue,a$ as de,b0 as Ye,b1 as We,b2 as Qe,b3 as Ke,b4 as W,b5 as Xe,b6 as Je,b7 as Ze,b8 as Q,b9 as K,x as et,E as tt,ba as ot,aq as st,bb as rt,G as nt,bc as it,bd as at,ar as lt,K as ut,be as ce,bf as dt,bg as ct,bh as mt,bi as ht,aC as pt}from"./admin-drawer-panel-DY_fALho.js";import{u as p,C as _t}from"./main-Dz9u71DQ.js";import{V as ft,a as gt}from"./VSelect-CxY8UVRq.js";import{c as bt}from"./to-case-kUm8NPpW.js";import{a as yt}from"./VSlideGroup-VeMEwEff.js";import{V as wt}from"./VCombobox-DgVMswtt.js";import{V as St}from"./VTable-CAK_p0Il.js";import{V as vt}from"./confirm-footer-CWKcBA7p.js";import{V as X}from"./VCheckbox-RPeBWFgy.js";import{_ as me}from"./confirm-dialog-GVok5hYU.js";import{V as he}from"./VMain-DUot655v.js";import"./index-DUjeNg4x.js";import"./change-password-dialog-DgDGjI2a.js";import"./VSelectionControl-DsJeRYlc.js";import"./VCheckboxBtn-CwKlKk7z.js";import"./filter-Cq-w9FH_.js";const Ct={name:"BrowserNavButton",components:{PaginationNavButton:oe},props:{back:{type:Boolean,required:!0}},data(){return{mdiChevronLeft:ae}},computed:{...S(p,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return+this.$route.params.page+this.increment},title(){return"Page "+this.toPage},toRoute(){return{params:{...this.$route.params,page:this.toPage}}},disabled(){return this.back&&+this.$route.params.page<=1||!this.back&&+this.$route.params.page>=this.numPages}}};function Bt(e,t,r,f,a,o){const u=oe;return i(),h(u,{disabled:o.disabled,title:o.title,to:o.toRoute},{default:d(()=>[l(v,{class:D({flipHoriz:!r.back})},{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["disabled","title","to"])}const pe=y(Ct,[["render",Bt],["__scopeId","data-v-fcf3d3ee"]]),kt={name:"BrowserNavToolbar",components:{BrowserNavButton:pe,PaginationSlider:se,PaginationToolbar:re},computed:{...S(p,{numPages:e=>e.page.numPages})},methods:{...B(p,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Tt(e,t,r,f,a,o){const u=pe,c=se,b=re;return e.numPages>1?(i(),h(b,{key:0},{default:d(()=>[l(u,{back:!0}),l(c,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=M=>e.routeToPage(M))},null,8,["model-value","max"]),l(u,{back:!1})]),_:1})):w("",!0)}const _e=y(kt,[["render",Tt]]),Vt=new Set(["a","f"]),Mt={name:"BrowserUpButton",props:{top:{type:Boolean,default:!1}},computed:{...V(p,["parentModelGroup"]),...S(p,{upRoute:e=>e.page.routes.up,title(e){const t=this.top?e.settings.topGroup:this.parentModelGroup;return`Up to ${e.choices.static.groupNames[t]||"All"}`}}),show(){return this.upRoute&&"group"in this.upRoute},icon(){return this.top?Ne:Fe},to(){let e;if(this.top){let t=this.upRoute.group;Vt.has(t)||(t="r"),e={group:t,pk:0,page:1}}else e=this.upRoute;return{params:e}}}};function $t(e,t,r,f,a,o){return o.show?(i(),h(H,{key:0,icon:"",size:"x-large",title:e.title,to:o.to,variant:"plain"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(o.icon),1)]),_:1})]),_:1},8,["title","to"])):w("",!0)}const fe=y(Mt,[["render",$t]]),xt={name:"BrowserHeader",components:{BrowserUpButton:fe},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames,browserTitle:e=>e.page.browserTitle,modelGroup:e=>e.page.modelGroup}),...V($,["isCodexViewable","isUserAdmin"]),longBrowserTitlePrefix:function(){return this.$route.params.group==="f"?this.browserTitle.parentName:""},longBrowseTitleMain:function(){let e;if(Number(this.$route.params.pk)===0)e="All";else{let t=[];const{parentName:r,groupName:f,groupCount:a}=this.browserTitle;r&&t.push(r);const o=this.$route.params.group,u=o==="v"?U(f):f;if(u&&t.push(u),a){const b=`of ${a}`;t.push(b)}const c=o==="f"?"/":" ";e=t.join(c)}return e},longBrowseTitleSuffix:function(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}},ge=e=>(O("data-v-3d5e18c3"),e=e(),L(),e),It={key:0,id:"titleToolbarPrefix"},Nt=ge(()=>s("br",null,null,-1)),Ft={id:"titleToolbarMain"},Pt={key:1,id:"titleToolbarSuffix"},Rt=ge(()=>s("br",null,null,-1));function Dt(e,t,r,f,a,o){const u=fe;return e.isCodexViewable?(i(),h(ee,{key:0,id:"titleToolbar",elevation:"8"},{default:d(()=>[l(u),l(Ce,{class:"codexToolbarTitle"},{default:d(()=>[o.longBrowserTitlePrefix?(i(),g("span",It,[n(_(o.longBrowserTitlePrefix)+" ",1),Nt])):w("",!0),s("span",Ft,_(o.longBrowseTitleMain),1),o.longBrowseTitleSuffix?(i(),g("span",Pt,[Rt,n(" "+_(o.longBrowseTitleSuffix),1)])):w("",!0)]),_:1}),l(u,{top:""})]),_:1})):w("",!0)}const be=y(xt,[["render",Dt],["__scopeId","data-v-3d5e18c3"]]),Ot={name:"ToolbarSelect",props:{selectLabel:{type:String,default:""},maxSelectLen:{type:Number,default:0},mobileLenAdj:{type:Number,default:0},variant:{type:String,default:"plain"}},computed:{style(){const e=this.$vuetify.display.smAndDown?this.mobileLenAdj:0,r=this.maxSelectLen+e+"em";return`width: ${r}; min-width: ${r}; max-width: ${r}`}}};function Lt(e,t,r,f,a,o){return i(),h(ft,x(e.$attrs,{label:r.selectLabel,"aria-label":r.selectLabel,class:"toolbarSelect",density:"compact","full-width":"","menu-props":{maxHeight:void 0},"hide-details":"auto",style:o.style,variant:r.variant}),Pe({_:2},[N(e.$slots,(u,c)=>({name:c,fn:d(b=>[Re(e.$slots,c,x({props:u},b),void 0,!0)])}))]),1040,["label","aria-label","style","variant"])}const T=y(Ot,[["render",Lt],["__scopeId","data-v-ea769669"]]),Gt=_t.browser.vuetifyNullCode,Ut={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:ae,mdiChevronRight:De,mdiChevronRightCircle:Oe,query:"",nullCode:Gt}},computed:{...S(p,{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]}}),...A(p,["filterMode"]),hasNone(){for(const e of this.choices)if(Ve.has(e.pk))return!0;return!1},vuetifyItems(){return Me(this.choices,this.query)},title:function(){return bt(this.name)},lowerTitle:function(){return this.title.toLowerCase()}},methods:{...B(p,["identifierTypeTitle","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}}},Ht={key:0},At={class:"filterHeader"};function Et(e,t,r,f,a,o){return i(),g("div",null,[l(Le,{"hide-on-leave":""},{default:d(()=>[e.filterMode==="base"?(i(),h(k,{key:0,onClick:t[0]||(t[0]=u=>o.setUIFilterMode(r.name))},{default:d(()=>[l(P,{class:"filterMenu"},{default:d(()=>[n(_(o.title)+" ",1),e.filter&&e.filter.length>0?(i(),h(v,{key:0,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRightCircle),1)]),_:1})):(i(),h(v,{key:1,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRight),1)]),_:1}))]),_:1})]),_:1})):w("",!0)]),_:1}),l(Ue,{"hide-on-leave":""},{default:d(()=>[e.filterMode===r.name?(i(),g("div",Ht,[s("header",At,[l(k,{onClick:t[1]||(t[1]=u=>o.setUIFilterMode("base"))},{default:d(()=>[l(P,{class:"filterTitle"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1}),n(_(o.lowerTitle),1)]),_:1})]),_:1}),typeof e.choices=="object"?(i(),h(yt,{key:0,modelValue:a.query,"onUpdate:modelValue":t[2]||(t[2]=u=>a.query=u),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=u=>e.filterMode=r.name)},null,8,["modelValue"])):(i(),h(E,{key:1,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(i(),h(Ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:o.vuetifyItems,"onUpdate:selected":o.selected},{default:d(()=>[o.hasNone?(i(),h(k,{key:-1,title:"None",value:-1,class:"noneItem"})):w("",!0),(i(!0),g(I,null,N(o.vuetifyItems,u=>(i(),h(k,{key:u.value,title:o.itemTitle(u),value:u.value,class:D({noneItem:+u.value==a.nullCode})},null,8,["title","value","class"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):w("",!0)])):w("",!0)]),_:1})])}const qt=y(Ut,[["render",Et],["__scopeId","data-v-c9df90cc"]]),zt={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:qt,ToolbarSelect:T},extends:T,data(){return{mdiFilterMultipleOutline:He,menu:!1}},computed:{...V(p,["filterByChoicesMaxLen","isDefaultBookmarkValueSelected"]),...S(p,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,isDynamicFiltersSelected:function(e){for(const[t,r]of Object.entries(e.settings.filters))if(t!=="bookmark"&&r&&r.length>0)return!0;return!1},isFiltersClearable:function(){return!this.isDefaultBookmarkValueSelected||this.isDynamicFiltersSelected},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[r,f]of Object.entries(e.choices.dynamic))f&&t.push(r);return t}}),...A(p,["filterMode"]),filterInnerIcon:function(){return this.isFiltersClearable?Ae:""}},methods:{...B(p,["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(){this.clearFilters()},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},jt={key:1};function Yt(e,t,r,f,a,o){const u=C("BrowserFilterSubMenu"),c=T;return i(),h(c,{menu:a.menu,"onUpdate:menu":[t[0]||(t[0]=b=>a.menu=b),o.onMenu],class:"filterBySelect","select-label":"filter by",clearable:e.isFiltersClearable,items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen+1.5,"mobile-len-adj":-1.5,variant:"solo","onClick:clear":o.onClear,"onUpdate:modelValue":o.onUpdateModelValue},{selection:d(({item:b})=>[n(_(b.title)+" ",1),e.isDynamicFiltersSelected?(i(),h(v,{key:0,class:"filterSuffix"},{default:d(()=>[n(_(a.mdiFilterMultipleOutline),1)]),_:1})):w("",!0)]),"append-item":d(()=>[l(R),e.dynamicChoiceNames===void 0?(i(),h(k,{key:0},{default:d(()=>[l(E,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(i(),g("div",jt,[(i(!0),g(I,null,N(e.dynamicChoiceNames,b=>(i(),h(u,{key:b,name:b,onSelected:o.onSubMenuSelected},null,8,["name","onSelected"]))),128))])):(i(),h(k,{key:2,class:"noChoices"},{default:d(()=>[n(" No filters available ")]),_:1}))]),_:1},8,["menu","clearable","items","menu-props","model-value","max-select-len","onClick:clear","onUpdate:modelValue","onUpdate:menu"])}const Wt=y(zt,[["render",Yt],["__scopeId","data-v-8cf1988f"]]),Qt={name:"BrowseOrderBySelect",components:{ToolbarSelect:T},extends:T,computed:{...V(p,["orderByChoices","orderByChoicesMaxLen"]),...S(p,{orderBySetting:e=>e.settings.orderBy}),reverseValues(){const e=new Set;for(const t of this.orderByChoices)t.reverse&&e.add(t.value);return e},orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:this.reverseValues.has(e)};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Kt(e,t,r,f,a,o){const u=T;return i(),h(u,x({modelValue:o.orderBy,"onUpdate:modelValue":t[0]||(t[0]=c=>o.orderBy=c),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-3.5,"mobile-len-adj":-2},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Xt=y(Qt,[["render",Kt]]),Jt={name:"BrowseOrderReverseButton",computed:{...S(p,{orderReverseSetting:e=>e.settings.orderReverse,orderIcon:e=>e.settings.orderReverse?Ee:qe}),density(){return this.$vuetify.display.smAndDown?"compact":"default"},title(){return this.orderReverseSetting?"order descending":"order ascending"}},methods:{...B(p,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Zt(e,t,r,f,a,o){return i(),h(H,x({class:"orderReverseButton",density:o.density,height:"46",icon:"",variant:"text"},e.$attrs,{title:o.title,onClick:o.toggleOrderReverse}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(e.orderIcon),1)]),_:1})]),_:1},16,["density","title","onClick"])}const eo=y(Jt,[["render",Zt],["__scopeId","data-v-57eeaaec"]]),to=10,oo={name:"BrowserSearchCombobox",data(){return{mdiMagnify:le,menu:!1,query:"",items:[""]}},computed:{...S(p,{stateQ:e=>e.settings.q})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},methods:{...B(p,["setSettings"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,to)},doSearch(){this.menu=!1;const e=this.query?this.query.trim():"";this.setSettings({q:e}),this.addToMenu(e)}}};function so(e,t,r,f,a,o){return i(),h(wt,{ref:"searchbox",modelValue:a.query,"onUpdate:modelValue":t[0]||(t[0]=u=>a.query=u),menu:a.menu,"onUpdate:menu":t[1]||(t[1]=u=>a.menu=u),items:a.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":a.mdiMagnify,variant:"solo","onClick:clear":o.doSearch,"onClick:prependInner":o.doSearch,onKeydown:[Y(o.doSearch,["enter"]),t[2]||(t[2]=Y(u=>a.menu=!1,["esc"]))]},null,8,["modelValue","menu","items","prepend-inner-icon","onClick:clear","onClick:prependInner","onKeydown"])}const ro=y(oo,[["render",so]]),no={params:{group:"f",pk:0,page:1}},J=new Set(["a","f"]),io={name:"BrowserTopGroupSelect",components:{ToolbarSelect:T},extends:T,data(){return{FOLDER_ROUTE:no,DIVIDED_VALUES:J}},computed:{...S(p,{topGroupSetting:e=>e.settings.topGroup}),...V(p,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const r={params:{group:J.has(e)?e:"r",pk:0,page:1}},f={topGroup:e};this.$router.push(r).then(()=>this.setSettings(f)).catch(console.error)}}},methods:{...B(p,["setSettings"])}};function ao(e,t,r,f,a,o){const u=T;return i(),h(u,x(e.$attrs,{modelValue:o.topGroup,"onUpdate:modelValue":t[0]||(t[0]=c=>o.topGroup=c),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2,"mobile-len-adj":-1}),{item:d(({item:c,props:b})=>[a.DIVIDED_VALUES.has(c.value)?(i(),h(R,{key:0})):w("",!0),l(k,x(b,{title:c.title,value:c.value}),null,16,["title","value"])]),_:1},16,["modelValue","items","max-select-len"])}const lo=y(io,[["render",ao],["__scopeId","data-v-d1f6fd76"]]),uo=ze("v-spacer","div","VSpacer"),co={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Wt,BrowserTopGroupSelect:lo,BrowserSearchCombobox:ro,BrowserOrderBySelect:Xt,BrowserOrderReverseButton:eo,SettingsDrawerButton:Be},data(){return{mdiMagnify:le,mdiFamilyTree:je,browseMode:"filter"}},computed:{...V($,["isCodexViewable"]),...A(q,["isSettingsDrawerOpen"])}};function mo(e,t,r,f,a,o){const u=C("BrowserTopGroupSelect"),c=C("BrowserOrderBySelect"),b=C("BrowserOrderReverseButton"),M=C("SettingsDrawerButton"),F=C("BrowserFilterBySelect"),j=C("BrowserSearchCombobox");return i(),h(ee,{id:"browserToolbar",class:D(["toolbar",{emptyToolbar:!e.isCodexViewable}]),density:"compact","extension-height":"48px"},{extension:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"searchToolbarItems"},{default:d(()=>[l(F,{id:"filterSelect"}),l(j,{id:"searchField"})]),_:1})):w("",!0)]),default:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"browserToolbarLeftItems"},{default:d(()=>[l(u,{id:"topGroupSelect"}),l(c,{id:"orderBySelect"}),l(b,{id:"orderReverseButton"})]),_:1})):w("",!0),l(uo),l(G,null,{default:d(()=>[l(M,{onClick:t[0]||(t[0]=ur=>e.isSettingsDrawerOpen=!0)})]),_:1})]),_:1},8,["class"])}const ye=y(co,[["render",mo],["__scopeId","data-v-939a4977"]]),ho=[["characters","CSV","category"],["community_rating","Decimal","communityrating"],["contributor","CSV","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","type"],["genres","CSV","genre"],["identifier","CSV","id, nss"],["identifier_type","CSV","id_type, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","CSV","location"],["maturity_rating","String"],["monochrome","String","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","CSV","seriesgroups"],["size","Integer"],["stories","CSV","story"],["story_arcs","CSV","storyarcs"],["summary","String","comments, description"],["tags","CSV","tag"],["tagger","String"],["teams","CSV","team"],["updated_at","Date","updated"],["volume","String"],["web","String"],["year","Integer"]],po={name:"SearchHelp",components:{CloseButton:ue},data(){return{mdiOpenInNew:de,mdiArchiveSearchOutline:Ye,dialog:!1,FIELD_ROWS:ho}}},m=e=>(O("data-v-f473187d"),e=e(),L(),e),_o={id:"searchHelp"},fo=m(()=>s("h1",null,"Search Syntax Help",-1)),go={id:"fieldTableContainer"},bo=m(()=>s("h2",null,"Search Fields",-1)),yo=m(()=>s("thead",null,[s("tr",null,[s("th",null,"Field"),s("th",null,"Type"),s("th",null,"Aliases")])],-1)),wo={class:"aliasCol"},So={id:"textContainer"},vo=m(()=>s("h2",null,"Whoosh Query Parser",-1)),Co={href:"https://whoosh.readthedocs.io/en/latest/querylang.html",target:"_blank"},Bo=m(()=>s("h2",null,"Operators",-1)),ko=m(()=>s("code",null,"and",-1)),To=m(()=>s("code",null,"or",-1)),Vo=m(()=>s("code",null,"not",-1)),Mo=m(()=>s("code",null,"andnot",-1)),$o=m(()=>s("code",null,"andmaybe",-1)),xo=m(()=>s("code",null,"require",-1)),Io=m(()=>s("h2",null,"Searching Fields",-1)),No=m(()=>s("p",null,[n(" Like Codex's filter selector menu, but more powerful. You may search on individual comic metadata fields. using a search token like "),s("code",null,"field:value"),n(". ")],-1)),Fo=m(()=>s("h3",null,"Dates and DateTimes",-1)),Po={href:"https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries",target:"_blank"},Ro=m(()=>s("code",null,"YYYYMMDD",-1)),Do=m(()=>s("code",null,"YYYMMDDHHmmSS",-1)),Oo=m(()=>s("h3",null,"Single Quote complex field Queries",-1)),Lo=m(()=>s("p",null,[n(" Use "),s("em",null,"single"),n(" quotes to tell Codex that a complex or natural language phrase should be applied to a specific field ")],-1)),Go=m(()=>s("code",null," created:'this year' ",-1)),Uo=m(()=>s("h3",null,"Size Byte Multipliers",-1)),Ho=m(()=>s("p",null,[n(" The size field can make use of convenient byte multiplier suffixes like "),s("code",null,"kb"),n(" and "),s("code",null,"mb"),n(" as well as binary suffixes like "),s("code",null,"gib"),n(" and "),s("code",null,"tib"),n(". ")],-1)),Ao=m(()=>s("h3",null,"Ranges of Fields",-1)),Eo=m(()=>s("p",null,[n(" Whoosh uses brackets and the "),s("em",null,"uppercase"),n(" "),s("code",null,"TO"),n(" operator to delineate a range search. ")],-1)),qo=m(()=>s("code",null,"updated:[last sunday TO 10am]",-1)),zo=m(()=>s("p",null," You may leave out the upper or lower bound or use >, <, >=, <= operators. ",-1)),jo=m(()=>s("code",null,"size:<50mb",-1)),Yo=m(()=>s("h3",null,"Multi Value Fields",-1)),Wo=m(()=>s("p",null,[n(" Fields marked type "),s("code",null,"CSV"),n(" in the table to the left may contain comma separated values. This filters by all the supplied values. Multi Value tokens look like: "),s("code",null,"field:term1,term2,term3")],-1)),Qo=m(()=>s("h2",null,"Grouped Queries",-1)),Ko=m(()=>s("p",null,"Whoosh allows grouping of queries with parenthesis.",-1)),Xo=m(()=>s("h2",null,"Example Search",-1)),Jo=m(()=>s("p",null," This example search is more convoluted than most searches but uses many features for demonstration: ",-1)),Zo=m(()=>s("code",null,' (Holmes and Tesla date:>=1999-1-2 size:[10mib TO 1gb] Gadzooks) or "Captain Nemo" -Quartermain ',-1)),es=m(()=>s("p",{style:{"margin-top":"1em"}},' Search for comics that contain Holmes and Tesla published after the second day of 1999 that are between 10 Mebibytes and 10 Gigabytes that also contain the word "Gadzooks" but also all comics with the the phrase "Captain Nemo" but no comics will contain the word "Quartermain". ',-1)),ts=m(()=>s("h2",null,"Group and Sorting Behavior",-1)),os=m(()=>s("p",null," If the search field is empty and then you supply a search query for the first time, Codex navigates you to the to All Issues view and your sets your Sorted By selection to Search Score. If you prefer a different view you may change the group and sort selections after your you make your first search. ",-1)),ss=m(()=>s("h2",null,"Filter Behavior",-1)),rs=m(()=>s("p",null,[n(" Codex applies "),s("em",null,"both"),n(" the Filter selection menu filters "),s("em",null,"and"),n(" the search query field filters to the search. Be sure to clear the filter selector or the search field if you prefer to apply only one of them. ")],-1));function ns(e,t,r,f,a,o){const u=ue;return i(),h(vt,{modelValue:a.dialog,"onUpdate:modelValue":t[2]||(t[2]=c=>a.dialog=c),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:d(({props:c})=>[l(k,We(Qe(c)),{default:d(()=>[l(P,null,{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiArchiveSearchOutline),1)]),_:1}),n("Search Syntax Help ")]),_:1})]),_:2},1040)]),default:d(()=>[s("div",_o,[l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[0]||(t[0]=c=>a.dialog=!1)}),fo,s("div",go,[bo,l(St,{id:"fieldTable",class:"highlight-table"},{default:d(()=>[yo,s("tbody",null,[(i(!0),g(I,null,N(a.FIELD_ROWS,c=>(i(),g("tr",{key:c[0]},[s("td",null,_(c[0]),1),s("td",null,_(c[1]),1),s("td",wo,_(c[2]||""),1)]))),128))])]),_:1})]),s("div",So,[vo,s("p",null,[n(" Codex uses the Whoosh search engine to execute your text search queries. Whoosh operates much like other familiar search engines. As such, only some special features are documented on this page. To understand its full power, users are encouraged to read the "),s("a",Co,[n("Whoosh Query Language "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation. ")]),Bo,n(" Whoosh has the "),ko,n(", "),To,n(", "),Vo,n(", "),Mo,n(", "),$o,n(", and "),xo,n(" operators. "),Io,No,Fo,s("p",null,[n(" Whoosh parses Dates and DateTime values liberally. Read "),s("a",Po,[n("Whoosh Parsing Date Queries "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation for what formats and natural language phrases are accepted. If the format you try fails, the "),Ro,n(" and "),Do,n(" formats are reliable. ")]),Oo,Lo,Go,Uo,Ho,Ao,Eo,qo,n(". "),zo,jo,n(". "),Yo,Wo,Qo,Ko,Xo,Jo,Zo,es,ts,os,ss,rs]),l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[1]||(t[1]=c=>a.dialog=!1)})])]),_:1},8,["modelValue"])}const we=y(po,[["render",ns],["__scopeId","data-v-f473187d"]]),is={name:"BrowserSettingsPanel",components:{SearchHelp:we},computed:{...V($,["isCodexViewable"]),...S(p,{groupChoices:e=>e.choices.static.settingsGroup,twentyFourHourTimeTitle:e=>e.choices.static.twentyFourHourTime.title,showSettings:e=>e.settings.show,twentyFourHourTime:e=>e.settings.twentyFourHourTime})},methods:{...B(p,["setSettings"]),setShow(e,t){const r={show:{[e]:t===!0}};this.setSettings(r)},set24HourTime(e){const t={twentyFourHourTime:e===!0};this.setSettings(t)}}},as=e=>(O("data-v-9312ed19"),e=e(),L(),e),ls=as(()=>s("div",{id:"groupCaption",class:"text-caption"}," Show these groups when navigating the browse tree. ",-1));function us(e,t,r,f,a,o){const u=we;return i(),g(I,null,[ls,(i(!0),g(I,null,N(e.groupChoices,c=>(i(),h(X,{key:c.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[c.value],"true-value":!0,label:`Show ${c.title}`,"onUpdate:modelValue":b=>o.setShow(c.value,b)},null,8,["model-value","label","onUpdate:modelValue"]))),128)),l(R),l(X,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[0]||(t[0]=c=>o.set24HourTime(c))},null,8,["model-value"]),l(R),l(u)],64)}const ds=y(is,[["render",us],["__scopeId","data-v-9312ed19"]]),cs=new Set(["community_rating","critical_rating"]),ms=new Set(["date"]),hs=new Set(["bookmark_updated_at","created_at","updated_at"]),ps={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...S(p,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(this.orderBy===void 0||this.orderBy===null||this.orderBy==="sort_name"&&(this.item.group!=="c"||this.topGroup!=="f")||e===null||e===void 0)e="";else if(ms.has(this.orderBy)){const t=new Date(e);e=Ke.format(t)}else this.orderBy=="search_score"?e=W.format(Math.round(Number.parseFloat(e)*10)):hs.has(this.orderBy)?e=Xe(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${W.format(e)} pages`:this.orderBy=="size"?e=$e(Number.parseInt(e,10)):cs.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}}},_s=["innerHTML"];function fs(e,t,r,f,a,o){return o.orderValue?(i(),g("div",{key:0,class:"orderCaption text-caption",innerHTML:o.orderValue},null,8,_s)):w("",!0)}const Se=y(ps,[["render",fs],["__scopeId","data-v-f1907410"]]),gs={name:"BrowserContainerMenu",components:{ConfirmDialog:me},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:Je,showMenu:!1}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},confirmText(){return`Mark ${this.verb}`},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");let t=this.groupNames[this.item.group];return this.item.group!=="s"&&(t=t.slice(0,-1)),e.push(t,this.verb),e.join(" ")}},methods:{...B(p,["setBookmarkFinished"]),...B(q,["downloadIOSPWAFix"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}},bs={class:"background-soft-highlight"};function ys(e,t,r,f,a,o){const u=me;return i(),h(gt,{modelValue:a.showMenu,"onUpdate:modelValue":t[2]||(t[2]=c=>a.showMenu=c),"offset-y":"",top:""},{activator:d(({props:c})=>[l(H,x({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:"",title:"Action Menu",variant:"text"},c,{onClick:t[0]||(t[0]=Ze(()=>{},["prevent"]))}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiDotsVertical),1)]),_:1})]),_:2},1040)]),default:d(()=>[s("div",bs,[r.item.group==="c"?(i(),h(k,{key:0,onClick:o.toggleRead},{default:d(()=>[l(P,null,{default:d(()=>[n(_(o.markReadText),1)]),_:1})]),_:1},8,["onClick"])):(i(),h(u,{key:1,"button-text":o.markReadText,"title-text":o.markReadText,"confirm-text":o.confirmText,"object-name":r.item.name,onConfirm:o.toggleRead,onCancel:t[1]||(t[1]=c=>a.showMenu=!1)},null,8,["button-text","title-text","confirm-text","object-name","onConfirm"]))])]),_:1},8,["modelValue"])}const ve=y(gs,[["render",ys]]),ws={name:"BrowserCardControls",components:{BrowserCardMenu:ve,MetadataButton:xe},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:Q,mdiEyeOff:K}},computed:{eyeIcon:function(){return this.eyeOpen?Q:K}}},Ss={class:"cardControls"};function vs(e,t,r,f,a,o){const u=C("MetadataButton"),c=ve;return i(),g("div",Ss,[r.item.group==="c"?(i(),h(v,{key:0,class:"eye"},{default:d(()=>[n(_(o.eyeIcon),1)]),_:1})):w("",!0),l(u,{group:r.item.group,book:r.item,children:r.item.childCount},null,8,["group","book","children"]),l(c,{item:r.item},null,8,["item"])])}const Cs=y(ws,[["render",vs],["__scopeId","data-v-c2d95d7f"]]),Bs={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...S(p,{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}),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?U(this.item.volumeName):!1},headerName:function(){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"?ke(this.item,this.zeroPad):Te(this.item,this.zeroPad);break;default:e=""}return e},displayName:function(){return this.item.group==="v"?U(this.item.name):this.item.name},linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ks={class:"browserLink cardSubtitle text-caption"},Ts={key:0,class:"seriesCaption"},Vs={key:1,class:"volumeCaption"},Ms={key:2,class:"headerName"},$s={class:"displayName"};function xs(e,t,r,f,a,o){return i(),g("div",ks,[o.seriesName?(i(),g("div",Ts,_(o.seriesName),1)):w("",!0),o.volumeName?(i(),g("div",Vs,_(o.volumeName),1)):w("",!0),o.headerName?(i(),g("div",Ms,_(o.headerName),1)):w("",!0),s("div",$s,_(o.displayName),1)])}const Is=y(Bs,[["render",xs],["__scopeId","data-v-33504043"]]),Ns=new Set(["iPad","iPad Simulator","iPhone","iPhone Simulator","iPod","iPod Simulator"]),Fs=Ns.has(navigator.platform),Ps="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0||window.matchMedia("(any-hover: none)").matches,Rs=et({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...tt(),...ot(),...st(),...rt({transition:"fade-transition"})},"VLazy"),Ds=nt()({name:"VLazy",directives:{intersect:it},props:Rs(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:r}=t;const{dimensionStyles:f}=at(e),a=lt(e,"modelValue");function o(u){a.value||(a.value=u)}return ut(()=>ce(l(e.tag,{class:["v-lazy",e.class],style:[f.value,e.style]},{default:()=>[a.value&&l(ct,{transition:e.transition,appear:!0},{default:()=>{var u;return[(u=r.default)==null?void 0:u.call(r)]}})]}),[[dt("intersect"),{handler:o,options:e.options},null]])),{}}}),Z=100,Os=-170,Ls={name:"BrowserCard",components:{BookCover:ne,BrowserCardControls:Cs,BrowserCardSubtitle:Is,OrderByCaption:Se},props:{item:{type:Object,required:!0}},data(){return{doubleTapHovered:!Ps||Fs}},computed:{...S(p,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.headerName,e},toRoute:function(){return this.doubleTapHovered?this.item.group==="c"?Ie(this.item,this.importMetadata):{name:"browser",params:{group:this.item.group,pk:this.item.pk,page:1}}:{}},progressBackgroundColor:function(){return this.item.progress?this.$vuetify.theme.current.colors.row:"inherit"}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.item.pk))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,Os)},Z)},Z)}}},Gs={class:"browserCardTop"},Us={key:1,class:"cardCoverOverlay"};function Hs(e,t,r,f,a,o){const u=ne,c=C("BrowserCardControls"),b=C("router-link"),M=C("BrowserCardSubtitle"),F=Se;return i(),h(Ds,{id:`card-${r.item.pk}`,transition:"scale-transition"},{default:d(()=>[s("div",{class:"browserCardCoverWrapper",onClick:t[0]||(t[0]=j=>a.doubleTapHovered=!0)},[s("div",Gs,[l(u,{"cover-pk":r.item.coverPk,group:r.item.group,"child-count":r.item.childCount,finished:r.item.finished},null,8,["cover-pk","group","child-count","finished"]),o.toRoute?(i(),h(b,{key:0,class:"cardCoverOverlay",to:o.toRoute,"aria-label":o.linkLabel},{default:d(()=>[l(c,{item:r.item,"eye-open":!0},null,8,["item"])]),_:1},8,["to","aria-label"])):(i(),g("div",Us,[l(c,{item:r.item,"eye-open":!1},null,8,["item"])])),ce(l(E,{class:"bookCoverProgress","background-color":o.progressBackgroundColor,"model-value":r.item.progress,"aria-label":`${r.item.progress}% read`,rounded:"",height:"2"},null,8,["background-color","model-value","aria-label"]),[[mt,r.item.progress]]),l(M,{item:r.item},null,8,["item"])]),l(F,{item:r.item},null,8,["item"])])]),_:1},8,["id"])}const As=y(Ls,[["render",Hs],["__scopeId","data-v-7f56bc86"]]),Es={name:"BrowserMain",components:{BrowserCard:As,PlaceholderLoading:ie},data(){return{mdiMenu:ht,mdiOpenInNew:de}},computed:{...S($,{adminFlags:e=>e.adminFlags}),...V($,["isUserAdmin","isCodexViewable"]),...S(p,{librariesExist:e=>e.page.librariesExist,showPlaceHolder:function(e){return this.adminFlags.nonUsers===void 0||this.isCodexViewable&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],padFooter:e=>e.page.numPages>1}),showBrowseItems(){return this.cards&&this.cards.length>0&&this.isCodexViewable&&!this.showPlaceHolder}}},z=e=>(O("data-v-b023c894"),e=e(),L(),e),qs={key:0,id:"browsePaneContainer"},zs={key:1,id:"announce"},js={key:2,id:"announce"},Ys={key:0},Ws={key:0},Qs={key:3,id:"announce"},Ks=z(()=>s("div",{id:"noComicsFound"},"No comics found for these filters",-1)),Xs=[Ks],Js={key:4,id:"announce"},Zs=z(()=>s("h1",null,"No libraries have been added to Codex yet",-1)),er={key:0},tr={key:1},or=z(()=>s("h2",null," An administrator must login to add some libraries that contain comics ",-1)),sr={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function rr(e,t,r,f,a,o){const u=C("BrowserCard"),c=ie;return i(),h(he,{id:"browsePane",class:D({padFooter:e.padFooter})},{default:d(()=>[o.showBrowseItems?(i(),g("div",qs,[(i(!0),g(I,null,N(e.cards,b=>(i(),h(u,{key:`${b.group}${b.pk}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(i(),g("div",zs,[l(c,{class:"placeholder"})])):e.isCodexViewable?e.librariesExist?(i(),g("div",Qs,Xs)):(i(),g("div",Js,[Zs,e.isUserAdmin?(i(),g("h2",er,[n(" Use the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu to navigate to the admin panel and add a comic library. ")])):(i(),g("div",tr,[or,s("h3",null,[n(" You may log in or register with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n("menu ")])])),s("a",sr,[n("See the README "),l(v,null,{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" for detailed instructions. ")])):(i(),g("div",js,[s("h1",null,[n(" You may log in "),e.adminFlags.register?(i(),g("span",Ys,"or register")):w("",!0),n(" with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu ")]),e.adminFlags.register?w("",!0):(i(),g("h1",Ws,"Registration is disabled"))]))]),_:1},8,["class"])}const nr=y(Es,[["render",rr],["__scopeId","data-v-b023c894"]]),ir={name:"MainBrowser",components:{BrowserTopToolbar:ye,BrowserMain:nr,BrowserNavToolbar:_e,BrowserTitleToolbar:be,SettingsDrawer:te},data(){return{BrowserSettingsPanel:pt(ds)}},computed:{...S($,{user:e=>e.user}),...V($,["isCodexViewable"])},watch:{$route:function(){window.scrollTo(0,0),this.loadBrowserPage()},user:function(){this.loadSettings()},isCodexViewable:function(){this.loadSettings()}},created(){q().isSettingsDrawerOpen=!1,this.loadSettings()},methods:{...B(p,["loadBrowserPage","loadSettings","getVersions"])}},ar={class:"codexToolbar"};function lr(e,t,r,f,a,o){const u=ye,c=be,b=C("BrowserMain"),M=_e,F=te;return i(),g(I,null,[l(he,{id:"browser"},{default:d(()=>[s("header",ar,[l(u),l(c)]),l(b),l(M)]),_:1}),l(F,{title:"Browser Settings",panel:a.BrowserSettingsPanel,temporary:""},null,8,["panel"])],64)}const Mr=y(ir,[["render",lr],["__scopeId","data-v-92361854"]]);export{Mr as default};
1
+ import{f as U,V as Ce,a as ee,S as Be,g as ke,b as Te,_ as te}from"./VToolbar-CFS6f65a.js";import{_ as oe,a as se,b as re,N as Ve,t as Me,V as G,p as $e,c as xe,d as ne,g as Ie,P as ie}from"./metadata-dialog-B1ZLku4K.js";import{aE as ae,M as S,_ as y,R as i,O as h,P as d,L as l,aa as n,ae as _,ab as D,ad as v,N as B,aB as w,ax as V,aF as Ne,aG as Fe,ak as H,m as $,ay as g,aD as s,aH as O,aI as L,aJ as Pe,az as N,aK as Re,am as x,aL as De,aM as Oe,a9 as A,af as P,ag as k,aN as Le,al as I,aO as Ge,aP as Ue,aQ as E,aR as He,aS as Ae,Q as C,aT as R,aU as Ee,aV as qe,aW as le,aX as Y,aY as ze,aZ as je,k as q,a_ as ue,a$ as de,b0 as Ye,b1 as We,b2 as Qe,b3 as Ke,b4 as W,b5 as Xe,b6 as Je,b7 as Ze,b8 as Q,b9 as K,x as et,E as tt,ba as ot,aq as st,bb as rt,G as nt,bc as it,bd as at,ar as lt,K as ut,be as ce,bf as dt,bg as ct,bh as mt,bi as ht,aC as pt}from"./admin-drawer-panel-qx4h4jTa.js";import{u as p,C as _t}from"./main-D90pCWS5.js";import{V as ft,a as gt}from"./VSelect-DQK0dr_P.js";import{c as bt}from"./to-case-kUm8NPpW.js";import{a as yt}from"./VSlideGroup-DZYc9yjh.js";import{V as wt}from"./VCombobox-CKa9jhK-.js";import{V as St}from"./VTable-x_Oa5l-b.js";import{V as vt}from"./confirm-footer-Bh1JTOMT.js";import{V as X}from"./VCheckbox-Dq3e1FMC.js";import{_ as me}from"./confirm-dialog-DwEXLn55.js";import{V as he}from"./VMain-DittTZHT.js";import"./index-DUjeNg4x.js";import"./change-password-dialog-DF5XThbF.js";import"./VSelectionControl-D6Lff-4t.js";import"./VCheckboxBtn-DbKo7Vio.js";import"./filter-D2btmWuH.js";const Ct={name:"BrowserNavButton",components:{PaginationNavButton:oe},props:{back:{type:Boolean,required:!0}},data(){return{mdiChevronLeft:ae}},computed:{...S(p,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return+this.$route.params.page+this.increment},title(){return"Page "+this.toPage},toRoute(){return{params:{...this.$route.params,page:this.toPage}}},disabled(){return this.back&&+this.$route.params.page<=1||!this.back&&+this.$route.params.page>=this.numPages}}};function Bt(e,t,r,f,a,o){const u=oe;return i(),h(u,{disabled:o.disabled,title:o.title,to:o.toRoute},{default:d(()=>[l(v,{class:D({flipHoriz:!r.back})},{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["disabled","title","to"])}const pe=y(Ct,[["render",Bt],["__scopeId","data-v-fcf3d3ee"]]),kt={name:"BrowserNavToolbar",components:{BrowserNavButton:pe,PaginationSlider:se,PaginationToolbar:re},computed:{...S(p,{numPages:e=>e.page.numPages})},methods:{...B(p,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Tt(e,t,r,f,a,o){const u=pe,c=se,b=re;return e.numPages>1?(i(),h(b,{key:0},{default:d(()=>[l(u,{back:!0}),l(c,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=M=>e.routeToPage(M))},null,8,["model-value","max"]),l(u,{back:!1})]),_:1})):w("",!0)}const _e=y(kt,[["render",Tt]]),Vt=new Set(["a","f"]),Mt={name:"BrowserUpButton",props:{top:{type:Boolean,default:!1}},computed:{...V(p,["parentModelGroup"]),...S(p,{upRoute:e=>e.page.routes.up,title(e){const t=this.top?e.settings.topGroup:this.parentModelGroup;return`Up to ${e.choices.static.groupNames[t]||"All"}`}}),show(){return this.upRoute&&"group"in this.upRoute},icon(){return this.top?Ne:Fe},to(){let e;if(this.top){let t=this.upRoute.group;Vt.has(t)||(t="r"),e={group:t,pk:0,page:1}}else e=this.upRoute;return{params:e}}}};function $t(e,t,r,f,a,o){return o.show?(i(),h(H,{key:0,icon:"",size:"x-large",title:e.title,to:o.to,variant:"plain"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(o.icon),1)]),_:1})]),_:1},8,["title","to"])):w("",!0)}const fe=y(Mt,[["render",$t]]),xt={name:"BrowserHeader",components:{BrowserUpButton:fe},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames,browserTitle:e=>e.page.browserTitle,modelGroup:e=>e.page.modelGroup}),...V($,["isCodexViewable","isUserAdmin"]),longBrowserTitlePrefix:function(){return this.$route.params.group==="f"?this.browserTitle.parentName:""},longBrowseTitleMain:function(){let e;if(Number(this.$route.params.pk)===0)e="All";else{let t=[];const{parentName:r,groupName:f,groupCount:a}=this.browserTitle;r&&t.push(r);const o=this.$route.params.group,u=o==="v"?U(f):f;if(u&&t.push(u),a){const b=`of ${a}`;t.push(b)}const c=o==="f"?"/":" ";e=t.join(c)}return e},longBrowseTitleSuffix:function(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}},ge=e=>(O("data-v-3d5e18c3"),e=e(),L(),e),It={key:0,id:"titleToolbarPrefix"},Nt=ge(()=>s("br",null,null,-1)),Ft={id:"titleToolbarMain"},Pt={key:1,id:"titleToolbarSuffix"},Rt=ge(()=>s("br",null,null,-1));function Dt(e,t,r,f,a,o){const u=fe;return e.isCodexViewable?(i(),h(ee,{key:0,id:"titleToolbar",elevation:"8"},{default:d(()=>[l(u),l(Ce,{class:"codexToolbarTitle"},{default:d(()=>[o.longBrowserTitlePrefix?(i(),g("span",It,[n(_(o.longBrowserTitlePrefix)+" ",1),Nt])):w("",!0),s("span",Ft,_(o.longBrowseTitleMain),1),o.longBrowseTitleSuffix?(i(),g("span",Pt,[Rt,n(" "+_(o.longBrowseTitleSuffix),1)])):w("",!0)]),_:1}),l(u,{top:""})]),_:1})):w("",!0)}const be=y(xt,[["render",Dt],["__scopeId","data-v-3d5e18c3"]]),Ot={name:"ToolbarSelect",props:{selectLabel:{type:String,default:""},maxSelectLen:{type:Number,default:0},mobileLenAdj:{type:Number,default:0},variant:{type:String,default:"plain"}},computed:{style(){const e=this.$vuetify.display.smAndDown?this.mobileLenAdj:0,r=this.maxSelectLen+e+"em";return`width: ${r}; min-width: ${r}; max-width: ${r}`}}};function Lt(e,t,r,f,a,o){return i(),h(ft,x(e.$attrs,{label:r.selectLabel,"aria-label":r.selectLabel,class:"toolbarSelect",density:"compact","full-width":"","menu-props":{maxHeight:void 0},"hide-details":"auto",style:o.style,variant:r.variant}),Pe({_:2},[N(e.$slots,(u,c)=>({name:c,fn:d(b=>[Re(e.$slots,c,x({props:u},b),void 0,!0)])}))]),1040,["label","aria-label","style","variant"])}const T=y(Ot,[["render",Lt],["__scopeId","data-v-ea769669"]]),Gt=_t.browser.vuetifyNullCode,Ut={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:ae,mdiChevronRight:De,mdiChevronRightCircle:Oe,query:"",nullCode:Gt}},computed:{...S(p,{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]}}),...A(p,["filterMode"]),hasNone(){for(const e of this.choices)if(Ve.has(e.pk))return!0;return!1},vuetifyItems(){return Me(this.choices,this.query)},title:function(){return bt(this.name)},lowerTitle:function(){return this.title.toLowerCase()}},methods:{...B(p,["identifierTypeTitle","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}}},Ht={key:0},At={class:"filterHeader"};function Et(e,t,r,f,a,o){return i(),g("div",null,[l(Le,{"hide-on-leave":""},{default:d(()=>[e.filterMode==="base"?(i(),h(k,{key:0,onClick:t[0]||(t[0]=u=>o.setUIFilterMode(r.name))},{default:d(()=>[l(P,{class:"filterMenu"},{default:d(()=>[n(_(o.title)+" ",1),e.filter&&e.filter.length>0?(i(),h(v,{key:0,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRightCircle),1)]),_:1})):(i(),h(v,{key:1,class:"nameChevron"},{default:d(()=>[n(_(a.mdiChevronRight),1)]),_:1}))]),_:1})]),_:1})):w("",!0)]),_:1}),l(Ue,{"hide-on-leave":""},{default:d(()=>[e.filterMode===r.name?(i(),g("div",Ht,[s("header",At,[l(k,{onClick:t[1]||(t[1]=u=>o.setUIFilterMode("base"))},{default:d(()=>[l(P,{class:"filterTitle"},{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiChevronLeft),1)]),_:1}),n(_(o.lowerTitle),1)]),_:1})]),_:1}),typeof e.choices=="object"?(i(),h(yt,{key:0,modelValue:a.query,"onUpdate:modelValue":t[2]||(t[2]=u=>a.query=u),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=u=>e.filterMode=r.name)},null,8,["modelValue"])):(i(),h(E,{key:1,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(i(),h(Ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:o.vuetifyItems,"onUpdate:selected":o.selected},{default:d(()=>[o.hasNone?(i(),h(k,{key:-1,title:"None",value:-1,class:"noneItem"})):w("",!0),(i(!0),g(I,null,N(o.vuetifyItems,u=>(i(),h(k,{key:u.value,title:o.itemTitle(u),value:u.value,class:D({noneItem:+u.value==a.nullCode})},null,8,["title","value","class"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):w("",!0)])):w("",!0)]),_:1})])}const qt=y(Ut,[["render",Et],["__scopeId","data-v-c9df90cc"]]),zt={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:qt,ToolbarSelect:T},extends:T,data(){return{mdiFilterMultipleOutline:He,menu:!1}},computed:{...V(p,["filterByChoicesMaxLen","isDefaultBookmarkValueSelected"]),...S(p,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,isDynamicFiltersSelected:function(e){for(const[t,r]of Object.entries(e.settings.filters))if(t!=="bookmark"&&r&&r.length>0)return!0;return!1},isFiltersClearable:function(){return!this.isDefaultBookmarkValueSelected||this.isDynamicFiltersSelected},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[r,f]of Object.entries(e.choices.dynamic))f&&t.push(r);return t}}),...A(p,["filterMode"]),filterInnerIcon:function(){return this.isFiltersClearable?Ae:""}},methods:{...B(p,["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(){this.clearFilters()},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},jt={key:1};function Yt(e,t,r,f,a,o){const u=C("BrowserFilterSubMenu"),c=T;return i(),h(c,{menu:a.menu,"onUpdate:menu":[t[0]||(t[0]=b=>a.menu=b),o.onMenu],class:"filterBySelect","select-label":"filter by",clearable:e.isFiltersClearable,items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen+1.5,"mobile-len-adj":-1.5,variant:"solo","onClick:clear":o.onClear,"onUpdate:modelValue":o.onUpdateModelValue},{selection:d(({item:b})=>[n(_(b.title)+" ",1),e.isDynamicFiltersSelected?(i(),h(v,{key:0,class:"filterSuffix"},{default:d(()=>[n(_(a.mdiFilterMultipleOutline),1)]),_:1})):w("",!0)]),"append-item":d(()=>[l(R),e.dynamicChoiceNames===void 0?(i(),h(k,{key:0},{default:d(()=>[l(E,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(i(),g("div",jt,[(i(!0),g(I,null,N(e.dynamicChoiceNames,b=>(i(),h(u,{key:b,name:b,onSelected:o.onSubMenuSelected},null,8,["name","onSelected"]))),128))])):(i(),h(k,{key:2,class:"noChoices"},{default:d(()=>[n(" No filters available ")]),_:1}))]),_:1},8,["menu","clearable","items","menu-props","model-value","max-select-len","onClick:clear","onUpdate:modelValue","onUpdate:menu"])}const Wt=y(zt,[["render",Yt],["__scopeId","data-v-8cf1988f"]]),Qt={name:"BrowseOrderBySelect",components:{ToolbarSelect:T},extends:T,computed:{...V(p,["orderByChoices","orderByChoicesMaxLen"]),...S(p,{orderBySetting:e=>e.settings.orderBy}),reverseValues(){const e=new Set;for(const t of this.orderByChoices)t.reverse&&e.add(t.value);return e},orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:this.reverseValues.has(e)};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Kt(e,t,r,f,a,o){const u=T;return i(),h(u,x({modelValue:o.orderBy,"onUpdate:modelValue":t[0]||(t[0]=c=>o.orderBy=c),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-3.5,"mobile-len-adj":-2},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Xt=y(Qt,[["render",Kt]]),Jt={name:"BrowseOrderReverseButton",computed:{...S(p,{orderReverseSetting:e=>e.settings.orderReverse,orderIcon:e=>e.settings.orderReverse?Ee:qe}),density(){return this.$vuetify.display.smAndDown?"compact":"default"},title(){return this.orderReverseSetting?"order descending":"order ascending"}},methods:{...B(p,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Zt(e,t,r,f,a,o){return i(),h(H,x({class:"orderReverseButton",density:o.density,height:"46",icon:"",variant:"text"},e.$attrs,{title:o.title,onClick:o.toggleOrderReverse}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(e.orderIcon),1)]),_:1})]),_:1},16,["density","title","onClick"])}const eo=y(Jt,[["render",Zt],["__scopeId","data-v-57eeaaec"]]),to=10,oo={name:"BrowserSearchCombobox",data(){return{mdiMagnify:le,menu:!1,query:"",items:[""]}},computed:{...S(p,{stateQ:e=>e.settings.q})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},methods:{...B(p,["setSettings"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,to)},doSearch(){this.menu=!1;const e=this.query?this.query.trim():"";this.setSettings({q:e}),this.addToMenu(e)}}};function so(e,t,r,f,a,o){return i(),h(wt,{ref:"searchbox",modelValue:a.query,"onUpdate:modelValue":t[0]||(t[0]=u=>a.query=u),menu:a.menu,"onUpdate:menu":t[1]||(t[1]=u=>a.menu=u),items:a.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":a.mdiMagnify,variant:"solo","onClick:clear":o.doSearch,"onClick:prependInner":o.doSearch,onKeydown:[Y(o.doSearch,["enter"]),t[2]||(t[2]=Y(u=>a.menu=!1,["esc"]))]},null,8,["modelValue","menu","items","prepend-inner-icon","onClick:clear","onClick:prependInner","onKeydown"])}const ro=y(oo,[["render",so]]),no={params:{group:"f",pk:0,page:1}},J=new Set(["a","f"]),io={name:"BrowserTopGroupSelect",components:{ToolbarSelect:T},extends:T,data(){return{FOLDER_ROUTE:no,DIVIDED_VALUES:J}},computed:{...S(p,{topGroupSetting:e=>e.settings.topGroup}),...V(p,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const r={params:{group:J.has(e)?e:"r",pk:0,page:1}},f={topGroup:e};this.$router.push(r).then(()=>this.setSettings(f)).catch(console.error)}}},methods:{...B(p,["setSettings"])}};function ao(e,t,r,f,a,o){const u=T;return i(),h(u,x(e.$attrs,{modelValue:o.topGroup,"onUpdate:modelValue":t[0]||(t[0]=c=>o.topGroup=c),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2,"mobile-len-adj":-1}),{item:d(({item:c,props:b})=>[a.DIVIDED_VALUES.has(c.value)?(i(),h(R,{key:0})):w("",!0),l(k,x(b,{title:c.title,value:c.value}),null,16,["title","value"])]),_:1},16,["modelValue","items","max-select-len"])}const lo=y(io,[["render",ao],["__scopeId","data-v-d1f6fd76"]]),uo=ze("v-spacer","div","VSpacer"),co={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Wt,BrowserTopGroupSelect:lo,BrowserSearchCombobox:ro,BrowserOrderBySelect:Xt,BrowserOrderReverseButton:eo,SettingsDrawerButton:Be},data(){return{mdiMagnify:le,mdiFamilyTree:je,browseMode:"filter"}},computed:{...V($,["isCodexViewable"]),...A(q,["isSettingsDrawerOpen"])}};function mo(e,t,r,f,a,o){const u=C("BrowserTopGroupSelect"),c=C("BrowserOrderBySelect"),b=C("BrowserOrderReverseButton"),M=C("SettingsDrawerButton"),F=C("BrowserFilterBySelect"),j=C("BrowserSearchCombobox");return i(),h(ee,{id:"browserToolbar",class:D(["toolbar",{emptyToolbar:!e.isCodexViewable}]),density:"compact","extension-height":"48px"},{extension:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"searchToolbarItems"},{default:d(()=>[l(F,{id:"filterSelect"}),l(j,{id:"searchField"})]),_:1})):w("",!0)]),default:d(()=>[e.isCodexViewable?(i(),h(G,{key:0,id:"browserToolbarLeftItems"},{default:d(()=>[l(u,{id:"topGroupSelect"}),l(c,{id:"orderBySelect"}),l(b,{id:"orderReverseButton"})]),_:1})):w("",!0),l(uo),l(G,null,{default:d(()=>[l(M,{onClick:t[0]||(t[0]=ur=>e.isSettingsDrawerOpen=!0)})]),_:1})]),_:1},8,["class"])}const ye=y(co,[["render",mo],["__scopeId","data-v-939a4977"]]),ho=[["characters","CSV","category"],["community_rating","Decimal","communityrating"],["contributor","CSV","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","type"],["genres","CSV","genre"],["identifier","CSV","id, nss"],["identifier_type","CSV","id_type, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","CSV","location"],["maturity_rating","String"],["monochrome","String","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","CSV","seriesgroups"],["size","Integer"],["stories","CSV","story"],["story_arcs","CSV","storyarcs"],["summary","String","comments, description"],["tags","CSV","tag"],["tagger","String"],["teams","CSV","team"],["updated_at","Date","updated"],["volume","String"],["web","String"],["year","Integer"]],po={name:"SearchHelp",components:{CloseButton:ue},data(){return{mdiOpenInNew:de,mdiArchiveSearchOutline:Ye,dialog:!1,FIELD_ROWS:ho}}},m=e=>(O("data-v-f473187d"),e=e(),L(),e),_o={id:"searchHelp"},fo=m(()=>s("h1",null,"Search Syntax Help",-1)),go={id:"fieldTableContainer"},bo=m(()=>s("h2",null,"Search Fields",-1)),yo=m(()=>s("thead",null,[s("tr",null,[s("th",null,"Field"),s("th",null,"Type"),s("th",null,"Aliases")])],-1)),wo={class:"aliasCol"},So={id:"textContainer"},vo=m(()=>s("h2",null,"Whoosh Query Parser",-1)),Co={href:"https://whoosh.readthedocs.io/en/latest/querylang.html",target:"_blank"},Bo=m(()=>s("h2",null,"Operators",-1)),ko=m(()=>s("code",null,"and",-1)),To=m(()=>s("code",null,"or",-1)),Vo=m(()=>s("code",null,"not",-1)),Mo=m(()=>s("code",null,"andnot",-1)),$o=m(()=>s("code",null,"andmaybe",-1)),xo=m(()=>s("code",null,"require",-1)),Io=m(()=>s("h2",null,"Searching Fields",-1)),No=m(()=>s("p",null,[n(" Like Codex's filter selector menu, but more powerful. You may search on individual comic metadata fields. using a search token like "),s("code",null,"field:value"),n(". ")],-1)),Fo=m(()=>s("h3",null,"Dates and DateTimes",-1)),Po={href:"https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries",target:"_blank"},Ro=m(()=>s("code",null,"YYYYMMDD",-1)),Do=m(()=>s("code",null,"YYYMMDDHHmmSS",-1)),Oo=m(()=>s("h3",null,"Single Quote complex field Queries",-1)),Lo=m(()=>s("p",null,[n(" Use "),s("em",null,"single"),n(" quotes to tell Codex that a complex or natural language phrase should be applied to a specific field ")],-1)),Go=m(()=>s("code",null," created:'this year' ",-1)),Uo=m(()=>s("h3",null,"Size Byte Multipliers",-1)),Ho=m(()=>s("p",null,[n(" The size field can make use of convenient byte multiplier suffixes like "),s("code",null,"kb"),n(" and "),s("code",null,"mb"),n(" as well as binary suffixes like "),s("code",null,"gib"),n(" and "),s("code",null,"tib"),n(". ")],-1)),Ao=m(()=>s("h3",null,"Ranges of Fields",-1)),Eo=m(()=>s("p",null,[n(" Whoosh uses brackets and the "),s("em",null,"uppercase"),n(" "),s("code",null,"TO"),n(" operator to delineate a range search. ")],-1)),qo=m(()=>s("code",null,"updated:[last sunday TO 10am]",-1)),zo=m(()=>s("p",null," You may leave out the upper or lower bound or use >, <, >=, <= operators. ",-1)),jo=m(()=>s("code",null,"size:<50mb",-1)),Yo=m(()=>s("h3",null,"Multi Value Fields",-1)),Wo=m(()=>s("p",null,[n(" Fields marked type "),s("code",null,"CSV"),n(" in the table to the left may contain comma separated values. This filters by all the supplied values. Multi Value tokens look like: "),s("code",null,"field:term1,term2,term3")],-1)),Qo=m(()=>s("h2",null,"Grouped Queries",-1)),Ko=m(()=>s("p",null,"Whoosh allows grouping of queries with parenthesis.",-1)),Xo=m(()=>s("h2",null,"Example Search",-1)),Jo=m(()=>s("p",null," This example search is more convoluted than most searches but uses many features for demonstration: ",-1)),Zo=m(()=>s("code",null,' (Holmes and Tesla date:>=1999-1-2 size:[10mib TO 1gb] Gadzooks) or "Captain Nemo" -Quartermain ',-1)),es=m(()=>s("p",{style:{"margin-top":"1em"}},' Search for comics that contain Holmes and Tesla published after the second day of 1999 that are between 10 Mebibytes and 10 Gigabytes that also contain the word "Gadzooks" but also all comics with the the phrase "Captain Nemo" but no comics will contain the word "Quartermain". ',-1)),ts=m(()=>s("h2",null,"Group and Sorting Behavior",-1)),os=m(()=>s("p",null," If the search field is empty and then you supply a search query for the first time, Codex navigates you to the to All Issues view and your sets your Sorted By selection to Search Score. If you prefer a different view you may change the group and sort selections after your you make your first search. ",-1)),ss=m(()=>s("h2",null,"Filter Behavior",-1)),rs=m(()=>s("p",null,[n(" Codex applies "),s("em",null,"both"),n(" the Filter selection menu filters "),s("em",null,"and"),n(" the search query field filters to the search. Be sure to clear the filter selector or the search field if you prefer to apply only one of them. ")],-1));function ns(e,t,r,f,a,o){const u=ue;return i(),h(vt,{modelValue:a.dialog,"onUpdate:modelValue":t[2]||(t[2]=c=>a.dialog=c),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:d(({props:c})=>[l(k,We(Qe(c)),{default:d(()=>[l(P,null,{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiArchiveSearchOutline),1)]),_:1}),n("Search Syntax Help ")]),_:1})]),_:2},1040)]),default:d(()=>[s("div",_o,[l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[0]||(t[0]=c=>a.dialog=!1)}),fo,s("div",go,[bo,l(St,{id:"fieldTable",class:"highlight-table"},{default:d(()=>[yo,s("tbody",null,[(i(!0),g(I,null,N(a.FIELD_ROWS,c=>(i(),g("tr",{key:c[0]},[s("td",null,_(c[0]),1),s("td",null,_(c[1]),1),s("td",wo,_(c[2]||""),1)]))),128))])]),_:1})]),s("div",So,[vo,s("p",null,[n(" Codex uses the Whoosh search engine to execute your text search queries. Whoosh operates much like other familiar search engines. As such, only some special features are documented on this page. To understand its full power, users are encouraged to read the "),s("a",Co,[n("Whoosh Query Language "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation. ")]),Bo,n(" Whoosh has the "),ko,n(", "),To,n(", "),Vo,n(", "),Mo,n(", "),$o,n(", and "),xo,n(" operators. "),Io,No,Fo,s("p",null,[n(" Whoosh parses Dates and DateTime values liberally. Read "),s("a",Po,[n("Whoosh Parsing Date Queries "),l(v,{size:"small"},{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" documentation for what formats and natural language phrases are accepted. If the format you try fails, the "),Ro,n(" and "),Do,n(" formats are reliable. ")]),Oo,Lo,Go,Uo,Ho,Ao,Eo,qo,n(". "),zo,jo,n(". "),Yo,Wo,Qo,Ko,Xo,Jo,Zo,es,ts,os,ss,rs]),l(u,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[1]||(t[1]=c=>a.dialog=!1)})])]),_:1},8,["modelValue"])}const we=y(po,[["render",ns],["__scopeId","data-v-f473187d"]]),is={name:"BrowserSettingsPanel",components:{SearchHelp:we},computed:{...V($,["isCodexViewable"]),...S(p,{groupChoices:e=>e.choices.static.settingsGroup,twentyFourHourTimeTitle:e=>e.choices.static.twentyFourHourTime.title,showSettings:e=>e.settings.show,twentyFourHourTime:e=>e.settings.twentyFourHourTime})},methods:{...B(p,["setSettings"]),setShow(e,t){const r={show:{[e]:t===!0}};this.setSettings(r)},set24HourTime(e){const t={twentyFourHourTime:e===!0};this.setSettings(t)}}},as=e=>(O("data-v-9312ed19"),e=e(),L(),e),ls=as(()=>s("div",{id:"groupCaption",class:"text-caption"}," Show these groups when navigating the browse tree. ",-1));function us(e,t,r,f,a,o){const u=we;return i(),g(I,null,[ls,(i(!0),g(I,null,N(e.groupChoices,c=>(i(),h(X,{key:c.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[c.value],"true-value":!0,label:`Show ${c.title}`,"onUpdate:modelValue":b=>o.setShow(c.value,b)},null,8,["model-value","label","onUpdate:modelValue"]))),128)),l(R),l(X,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[0]||(t[0]=c=>o.set24HourTime(c))},null,8,["model-value"]),l(R),l(u)],64)}const ds=y(is,[["render",us],["__scopeId","data-v-9312ed19"]]),cs=new Set(["community_rating","critical_rating"]),ms=new Set(["date"]),hs=new Set(["bookmark_updated_at","created_at","updated_at"]),ps={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...S(p,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(this.orderBy===void 0||this.orderBy===null||this.orderBy==="sort_name"&&(this.item.group!=="c"||this.topGroup!=="f")||e===null||e===void 0)e="";else if(ms.has(this.orderBy)){const t=new Date(e);e=Ke.format(t)}else this.orderBy=="search_score"?e=W.format(Math.round(Number.parseFloat(e)*10)):hs.has(this.orderBy)?e=Xe(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${W.format(e)} pages`:this.orderBy=="size"?e=$e(Number.parseInt(e,10)):cs.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}}},_s=["innerHTML"];function fs(e,t,r,f,a,o){return o.orderValue?(i(),g("div",{key:0,class:"orderCaption text-caption",innerHTML:o.orderValue},null,8,_s)):w("",!0)}const Se=y(ps,[["render",fs],["__scopeId","data-v-f1907410"]]),gs={name:"BrowserContainerMenu",components:{ConfirmDialog:me},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:Je,showMenu:!1}},computed:{...S(p,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},confirmText(){return`Mark ${this.verb}`},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");let t=this.groupNames[this.item.group];return this.item.group!=="s"&&(t=t.slice(0,-1)),e.push(t,this.verb),e.join(" ")}},methods:{...B(p,["setBookmarkFinished"]),...B(q,["downloadIOSPWAFix"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}},bs={class:"background-soft-highlight"};function ys(e,t,r,f,a,o){const u=me;return i(),h(gt,{modelValue:a.showMenu,"onUpdate:modelValue":t[2]||(t[2]=c=>a.showMenu=c),"offset-y":"",top:""},{activator:d(({props:c})=>[l(H,x({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:"",title:"Action Menu",variant:"text"},c,{onClick:t[0]||(t[0]=Ze(()=>{},["prevent"]))}),{default:d(()=>[l(v,null,{default:d(()=>[n(_(a.mdiDotsVertical),1)]),_:1})]),_:2},1040)]),default:d(()=>[s("div",bs,[r.item.group==="c"?(i(),h(k,{key:0,onClick:o.toggleRead},{default:d(()=>[l(P,null,{default:d(()=>[n(_(o.markReadText),1)]),_:1})]),_:1},8,["onClick"])):(i(),h(u,{key:1,"button-text":o.markReadText,"title-text":o.markReadText,"confirm-text":o.confirmText,"object-name":r.item.name,onConfirm:o.toggleRead,onCancel:t[1]||(t[1]=c=>a.showMenu=!1)},null,8,["button-text","title-text","confirm-text","object-name","onConfirm"]))])]),_:1},8,["modelValue"])}const ve=y(gs,[["render",ys]]),ws={name:"BrowserCardControls",components:{BrowserCardMenu:ve,MetadataButton:xe},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:Q,mdiEyeOff:K}},computed:{eyeIcon:function(){return this.eyeOpen?Q:K}}},Ss={class:"cardControls"};function vs(e,t,r,f,a,o){const u=C("MetadataButton"),c=ve;return i(),g("div",Ss,[r.item.group==="c"?(i(),h(v,{key:0,class:"eye"},{default:d(()=>[n(_(o.eyeIcon),1)]),_:1})):w("",!0),l(u,{group:r.item.group,book:r.item,children:r.item.childCount},null,8,["group","book","children"]),l(c,{item:r.item},null,8,["item"])])}const Cs=y(ws,[["render",vs],["__scopeId","data-v-c2d95d7f"]]),Bs={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...S(p,{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}),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?U(this.item.volumeName):!1},headerName:function(){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"?ke(this.item,this.zeroPad):Te(this.item,this.zeroPad);break;default:e=""}return e},displayName:function(){return this.item.group==="v"?U(this.item.name):this.item.name},linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ks={class:"browserLink cardSubtitle text-caption"},Ts={key:0,class:"seriesCaption"},Vs={key:1,class:"volumeCaption"},Ms={key:2,class:"headerName"},$s={class:"displayName"};function xs(e,t,r,f,a,o){return i(),g("div",ks,[o.seriesName?(i(),g("div",Ts,_(o.seriesName),1)):w("",!0),o.volumeName?(i(),g("div",Vs,_(o.volumeName),1)):w("",!0),o.headerName?(i(),g("div",Ms,_(o.headerName),1)):w("",!0),s("div",$s,_(o.displayName),1)])}const Is=y(Bs,[["render",xs],["__scopeId","data-v-33504043"]]),Ns=new Set(["iPad","iPad Simulator","iPhone","iPhone Simulator","iPod","iPod Simulator"]),Fs=Ns.has(navigator.platform),Ps="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0||window.matchMedia("(any-hover: none)").matches,Rs=et({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...tt(),...ot(),...st(),...rt({transition:"fade-transition"})},"VLazy"),Ds=nt()({name:"VLazy",directives:{intersect:it},props:Rs(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:r}=t;const{dimensionStyles:f}=at(e),a=lt(e,"modelValue");function o(u){a.value||(a.value=u)}return ut(()=>ce(l(e.tag,{class:["v-lazy",e.class],style:[f.value,e.style]},{default:()=>[a.value&&l(ct,{transition:e.transition,appear:!0},{default:()=>{var u;return[(u=r.default)==null?void 0:u.call(r)]}})]}),[[dt("intersect"),{handler:o,options:e.options},null]])),{}}}),Z=100,Os=-170,Ls={name:"BrowserCard",components:{BookCover:ne,BrowserCardControls:Cs,BrowserCardSubtitle:Is,OrderByCaption:Se},props:{item:{type:Object,required:!0}},data(){return{doubleTapHovered:!Ps||Fs}},computed:{...S(p,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.headerName,e},toRoute:function(){return this.doubleTapHovered?this.item.group==="c"?Ie(this.item,this.importMetadata):{name:"browser",params:{group:this.item.group,pk:this.item.pk,page:1}}:{}},progressBackgroundColor:function(){return this.item.progress?this.$vuetify.theme.current.colors.row:"inherit"}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.item.pk))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,Os)},Z)},Z)}}},Gs={class:"browserCardTop"},Us={key:1,class:"cardCoverOverlay"};function Hs(e,t,r,f,a,o){const u=ne,c=C("BrowserCardControls"),b=C("router-link"),M=C("BrowserCardSubtitle"),F=Se;return i(),h(Ds,{id:`card-${r.item.pk}`,transition:"scale-transition"},{default:d(()=>[s("div",{class:"browserCardCoverWrapper",onClick:t[0]||(t[0]=j=>a.doubleTapHovered=!0)},[s("div",Gs,[l(u,{"cover-pk":r.item.coverPk,group:r.item.group,"child-count":r.item.childCount,finished:r.item.finished},null,8,["cover-pk","group","child-count","finished"]),o.toRoute?(i(),h(b,{key:0,class:"cardCoverOverlay",to:o.toRoute,"aria-label":o.linkLabel},{default:d(()=>[l(c,{item:r.item,"eye-open":!0},null,8,["item"])]),_:1},8,["to","aria-label"])):(i(),g("div",Us,[l(c,{item:r.item,"eye-open":!1},null,8,["item"])])),ce(l(E,{class:"bookCoverProgress","background-color":o.progressBackgroundColor,"model-value":r.item.progress,"aria-label":`${r.item.progress}% read`,rounded:"",height:"2"},null,8,["background-color","model-value","aria-label"]),[[mt,r.item.progress]]),l(M,{item:r.item},null,8,["item"])]),l(F,{item:r.item},null,8,["item"])])]),_:1},8,["id"])}const As=y(Ls,[["render",Hs],["__scopeId","data-v-7f56bc86"]]),Es={name:"BrowserMain",components:{BrowserCard:As,PlaceholderLoading:ie},data(){return{mdiMenu:ht,mdiOpenInNew:de}},computed:{...S($,{adminFlags:e=>e.adminFlags}),...V($,["isUserAdmin","isCodexViewable"]),...S(p,{librariesExist:e=>e.page.librariesExist,showPlaceHolder:function(e){return this.adminFlags.nonUsers===void 0||this.isCodexViewable&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],padFooter:e=>e.page.numPages>1}),showBrowseItems(){return this.cards&&this.cards.length>0&&this.isCodexViewable&&!this.showPlaceHolder}}},z=e=>(O("data-v-b023c894"),e=e(),L(),e),qs={key:0,id:"browsePaneContainer"},zs={key:1,id:"announce"},js={key:2,id:"announce"},Ys={key:0},Ws={key:0},Qs={key:3,id:"announce"},Ks=z(()=>s("div",{id:"noComicsFound"},"No comics found for these filters",-1)),Xs=[Ks],Js={key:4,id:"announce"},Zs=z(()=>s("h1",null,"No libraries have been added to Codex yet",-1)),er={key:0},tr={key:1},or=z(()=>s("h2",null," An administrator must login to add some libraries that contain comics ",-1)),sr={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function rr(e,t,r,f,a,o){const u=C("BrowserCard"),c=ie;return i(),h(he,{id:"browsePane",class:D({padFooter:e.padFooter})},{default:d(()=>[o.showBrowseItems?(i(),g("div",qs,[(i(!0),g(I,null,N(e.cards,b=>(i(),h(u,{key:`${b.group}${b.pk}`,item:b},null,8,["item"]))),128))])):e.showPlaceHolder?(i(),g("div",zs,[l(c,{class:"placeholder"})])):e.isCodexViewable?e.librariesExist?(i(),g("div",Qs,Xs)):(i(),g("div",Js,[Zs,e.isUserAdmin?(i(),g("h2",er,[n(" Use the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu to navigate to the admin panel and add a comic library. ")])):(i(),g("div",tr,[or,s("h3",null,[n(" You may log in or register with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n("menu ")])])),s("a",sr,[n("See the README "),l(v,null,{default:d(()=>[n(_(a.mdiOpenInNew),1)]),_:1})]),n(" for detailed instructions. ")])):(i(),g("div",js,[s("h1",null,[n(" You may log in "),e.adminFlags.register?(i(),g("span",Ys,"or register")):w("",!0),n(" with the top right "),l(v,null,{default:d(()=>[n(_(a.mdiMenu),1)]),_:1}),n(" menu ")]),e.adminFlags.register?w("",!0):(i(),g("h1",Ws,"Registration is disabled"))]))]),_:1},8,["class"])}const nr=y(Es,[["render",rr],["__scopeId","data-v-b023c894"]]),ir={name:"MainBrowser",components:{BrowserTopToolbar:ye,BrowserMain:nr,BrowserNavToolbar:_e,BrowserTitleToolbar:be,SettingsDrawer:te},data(){return{BrowserSettingsPanel:pt(ds)}},computed:{...S($,{user:e=>e.user}),...V($,["isCodexViewable"])},watch:{$route:function(){window.scrollTo(0,0),this.loadBrowserPage()},user:function(){this.loadSettings()},isCodexViewable:function(){this.loadSettings()}},created(){q().isSettingsDrawerOpen=!1,this.loadSettings()},methods:{...B(p,["loadBrowserPage","loadSettings","getVersions"])}},ar={class:"codexToolbar"};function lr(e,t,r,f,a,o){const u=ye,c=be,b=C("BrowserMain"),M=_e,F=te;return i(),g(I,null,[l(he,{id:"browser"},{default:d(()=>[s("header",ar,[l(u),l(c)]),l(b),l(M)]),_:1}),l(F,{title:"Browser Settings",panel:a.BrowserSettingsPanel,temporary:""},null,8,["panel"])],64)}const Mr=y(ir,[["render",lr],["__scopeId","data-v-92361854"]]);export{Mr as default};