codex 1.7.3a0__py3-none-any.whl → 1.7.3a1__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 (421) hide show
  1. codex/choices.py +0 -6
  2. codex/librarian/janitor/janitor.py +0 -7
  3. codex/librarian/janitor/status.py +0 -1
  4. codex/librarian/janitor/tasks.py +0 -5
  5. codex/librarian/librariand.py +0 -5
  6. codex/logger/loggerd.py +40 -17
  7. codex/settings/settings.py +0 -1
  8. codex/static_root/assets/{VCheckbox-pHjSEgdV.176f3c1f4191.js → VCheckbox-BV02IXFk.7b1ac0cc0c68.js} +1 -1
  9. codex/static_root/assets/VCheckbox-BV02IXFk.7b1ac0cc0c68.js.br +0 -0
  10. codex/static_root/assets/VCheckbox-BV02IXFk.7b1ac0cc0c68.js.gz +0 -0
  11. codex/static_root/assets/{VCheckbox-pHjSEgdV.js → VCheckbox-BV02IXFk.js} +1 -1
  12. codex/static_root/assets/VCheckbox-BV02IXFk.js.br +0 -0
  13. codex/static_root/assets/VCheckbox-BV02IXFk.js.gz +0 -0
  14. codex/static_root/assets/{VCheckboxBtn-DBKqrZGq.467e75859b62.js → VCheckboxBtn-DRCMElDO.e3bc3b165786.js} +1 -1
  15. codex/static_root/assets/VCheckboxBtn-DRCMElDO.e3bc3b165786.js.br +0 -0
  16. codex/static_root/assets/VCheckboxBtn-DRCMElDO.e3bc3b165786.js.gz +0 -0
  17. codex/static_root/assets/{VCheckboxBtn-DBKqrZGq.js → VCheckboxBtn-DRCMElDO.js} +1 -1
  18. codex/static_root/assets/VCheckboxBtn-DRCMElDO.js.br +0 -0
  19. codex/static_root/assets/VCheckboxBtn-DRCMElDO.js.gz +0 -0
  20. codex/static_root/assets/{VCombobox-Bg7uOTbF.2fc6073b789f.js → VCombobox-BUzWpAvZ.ec97d55d18d6.js} +1 -1
  21. codex/static_root/assets/VCombobox-BUzWpAvZ.ec97d55d18d6.js.br +0 -0
  22. codex/static_root/assets/VCombobox-BUzWpAvZ.ec97d55d18d6.js.gz +0 -0
  23. codex/static_root/assets/{VCombobox-Bg7uOTbF.js → VCombobox-BUzWpAvZ.js} +1 -1
  24. codex/static_root/assets/VCombobox-BUzWpAvZ.js.br +0 -0
  25. codex/static_root/assets/VCombobox-BUzWpAvZ.js.gz +0 -0
  26. codex/static_root/assets/{VDialog-IrbBYFLM.91a058d572c4.js → VDialog-CvyPs47z.06bd89160727.js} +1 -1
  27. codex/static_root/assets/VDialog-CvyPs47z.06bd89160727.js.br +0 -0
  28. codex/static_root/assets/VDialog-CvyPs47z.06bd89160727.js.gz +0 -0
  29. codex/static_root/assets/{VDialog-IrbBYFLM.js → VDialog-CvyPs47z.js} +1 -1
  30. codex/static_root/assets/VDialog-CvyPs47z.js.br +0 -0
  31. codex/static_root/assets/VDialog-CvyPs47z.js.gz +0 -0
  32. codex/static_root/assets/{VDivider-CuRohbVQ.3c12b040aed7.js → VDivider-DxA4gr8D.a62a378b1691.js} +1 -1
  33. codex/static_root/assets/VDivider-DxA4gr8D.a62a378b1691.js.br +0 -0
  34. codex/static_root/assets/VDivider-DxA4gr8D.a62a378b1691.js.gz +0 -0
  35. codex/static_root/assets/{VDivider-CuRohbVQ.js → VDivider-DxA4gr8D.js} +1 -1
  36. codex/static_root/assets/VDivider-DxA4gr8D.js.br +0 -0
  37. codex/static_root/assets/VDivider-DxA4gr8D.js.gz +0 -0
  38. codex/static_root/assets/{VExpansionPanels-b0xWLH75.bff6ea8b4055.js → VExpansionPanels-_Hd_Icpj.4670cf36fda0.js} +1 -1
  39. codex/static_root/assets/VExpansionPanels-_Hd_Icpj.4670cf36fda0.js.br +0 -0
  40. codex/static_root/assets/VExpansionPanels-_Hd_Icpj.4670cf36fda0.js.gz +0 -0
  41. codex/static_root/assets/{VExpansionPanels-b0xWLH75.js → VExpansionPanels-_Hd_Icpj.js} +1 -1
  42. codex/static_root/assets/VExpansionPanels-_Hd_Icpj.js.br +0 -0
  43. codex/static_root/assets/VExpansionPanels-_Hd_Icpj.js.gz +0 -0
  44. codex/static_root/assets/{VForm-B4hkqnS8.afbd5cf0908a.js → VForm-B4doHkrL.1f48583f2de6.js} +1 -1
  45. codex/static_root/assets/VForm-B4doHkrL.1f48583f2de6.js.br +0 -0
  46. codex/static_root/assets/VForm-B4doHkrL.1f48583f2de6.js.gz +0 -0
  47. codex/static_root/assets/{VForm-B4hkqnS8.js → VForm-B4doHkrL.js} +1 -1
  48. codex/static_root/assets/VForm-B4doHkrL.js.br +0 -0
  49. codex/static_root/assets/VForm-B4doHkrL.js.gz +0 -0
  50. codex/static_root/assets/{VRadioGroup-Cbayik6d.034f0f275265.js → VRadioGroup-DT7JWkoW.28cd429e5a15.js} +1 -1
  51. codex/static_root/assets/VRadioGroup-DT7JWkoW.28cd429e5a15.js.br +0 -0
  52. codex/static_root/assets/VRadioGroup-DT7JWkoW.28cd429e5a15.js.gz +0 -0
  53. codex/static_root/assets/{VRadioGroup-Cbayik6d.js → VRadioGroup-DT7JWkoW.js} +1 -1
  54. codex/static_root/assets/VRadioGroup-DT7JWkoW.js.br +0 -0
  55. codex/static_root/assets/VRadioGroup-DT7JWkoW.js.gz +0 -0
  56. codex/static_root/assets/{VSelect-BsuB-2P1.abe187c8b53f.js → VSelect-DtYhH7Mk.67eae5723992.js} +1 -1
  57. codex/static_root/assets/VSelect-DtYhH7Mk.67eae5723992.js.br +0 -0
  58. codex/static_root/assets/VSelect-DtYhH7Mk.67eae5723992.js.gz +0 -0
  59. codex/static_root/assets/{VSelect-BsuB-2P1.js → VSelect-DtYhH7Mk.js} +1 -1
  60. codex/static_root/assets/VSelect-DtYhH7Mk.js.br +0 -0
  61. codex/static_root/assets/VSelect-DtYhH7Mk.js.gz +0 -0
  62. codex/static_root/assets/{VSelectionControl-L41n5bnX.f4674bb62425.js → VSelectionControl-BJm6ORIw.efe501dcf742.js} +1 -1
  63. codex/static_root/assets/VSelectionControl-BJm6ORIw.efe501dcf742.js.br +0 -0
  64. codex/static_root/assets/VSelectionControl-BJm6ORIw.efe501dcf742.js.gz +0 -0
  65. codex/static_root/assets/{VSelectionControl-L41n5bnX.js → VSelectionControl-BJm6ORIw.js} +1 -1
  66. codex/static_root/assets/VSelectionControl-BJm6ORIw.js.br +0 -0
  67. codex/static_root/assets/VSelectionControl-BJm6ORIw.js.gz +0 -0
  68. codex/static_root/assets/{VTable-CYv4gUUt.76e4658abeb3.js → VTable-Bpr_wGHh.65e8b5288ad7.js} +1 -1
  69. codex/static_root/assets/VTable-Bpr_wGHh.65e8b5288ad7.js.br +0 -0
  70. codex/static_root/assets/VTable-Bpr_wGHh.65e8b5288ad7.js.gz +0 -0
  71. codex/static_root/assets/{VTable-CYv4gUUt.js → VTable-Bpr_wGHh.js} +1 -1
  72. codex/static_root/assets/VTable-Bpr_wGHh.js.br +0 -0
  73. codex/static_root/assets/VTable-Bpr_wGHh.js.gz +0 -0
  74. codex/static_root/assets/{VWindowItem-f8UkxXa_.1d3e9e78fc9b.js → VWindowItem-C1nqmRqv.aa75e27fc15e.js} +1 -1
  75. codex/static_root/assets/VWindowItem-C1nqmRqv.aa75e27fc15e.js.br +0 -0
  76. codex/static_root/assets/VWindowItem-C1nqmRqv.aa75e27fc15e.js.gz +0 -0
  77. codex/static_root/assets/{VWindowItem-f8UkxXa_.js → VWindowItem-C1nqmRqv.js} +1 -1
  78. codex/static_root/assets/VWindowItem-C1nqmRqv.js.br +0 -0
  79. codex/static_root/assets/VWindowItem-C1nqmRqv.js.gz +0 -0
  80. codex/static_root/assets/{admin-Izb24SXM.504ea9d9515c.js → admin-BYCwfr2h.581e490b1ec8.js} +1 -1
  81. codex/static_root/assets/admin-BYCwfr2h.581e490b1ec8.js.br +0 -0
  82. codex/static_root/assets/admin-BYCwfr2h.581e490b1ec8.js.gz +0 -0
  83. codex/static_root/assets/{admin-Izb24SXM.js → admin-BYCwfr2h.js} +1 -1
  84. codex/static_root/assets/admin-BYCwfr2h.js.br +0 -0
  85. codex/static_root/assets/admin-BYCwfr2h.js.gz +0 -0
  86. codex/static_root/assets/{admin-BmuWJcAB.b0b253aefd88.js → admin-Do4UwPej.6beffbe88dd0.js} +1 -1
  87. codex/static_root/assets/admin-Do4UwPej.6beffbe88dd0.js.br +0 -0
  88. codex/static_root/assets/admin-Do4UwPej.6beffbe88dd0.js.gz +0 -0
  89. codex/static_root/assets/{admin-BmuWJcAB.js → admin-Do4UwPej.js} +1 -1
  90. codex/static_root/assets/admin-Do4UwPej.js.br +0 -0
  91. codex/static_root/assets/admin-Do4UwPej.js.gz +0 -0
  92. codex/static_root/assets/admin-VRLEt4I5.06cb213f624d.css +1 -0
  93. codex/static_root/assets/admin-VRLEt4I5.06cb213f624d.css.br +0 -0
  94. codex/static_root/assets/admin-VRLEt4I5.06cb213f624d.css.gz +0 -0
  95. codex/static_root/assets/admin-VRLEt4I5.css +1 -0
  96. codex/static_root/assets/admin-VRLEt4I5.css.br +0 -0
  97. codex/static_root/assets/admin-VRLEt4I5.css.gz +0 -0
  98. codex/static_root/assets/admin-menu-DyaS3ZkH.34c055460f79.js +1 -0
  99. codex/static_root/assets/admin-menu-DyaS3ZkH.34c055460f79.js.br +0 -0
  100. codex/static_root/assets/admin-menu-DyaS3ZkH.34c055460f79.js.gz +0 -0
  101. codex/static_root/assets/admin-menu-DyaS3ZkH.js +1 -0
  102. codex/static_root/assets/admin-menu-DyaS3ZkH.js.br +0 -0
  103. codex/static_root/assets/admin-menu-DyaS3ZkH.js.gz +0 -0
  104. codex/static_root/assets/{admin-settings-button-progress-Clv9yQ7G.2536580dece1.js → admin-settings-button-progress-BKp0yruZ.550d96596ce5.js} +1 -1
  105. codex/static_root/assets/admin-settings-button-progress-BKp0yruZ.550d96596ce5.js.br +0 -0
  106. codex/static_root/assets/admin-settings-button-progress-BKp0yruZ.550d96596ce5.js.gz +0 -0
  107. codex/static_root/assets/{admin-settings-button-progress-Clv9yQ7G.js → admin-settings-button-progress-BKp0yruZ.js} +1 -1
  108. codex/static_root/assets/admin-settings-button-progress-BKp0yruZ.js.br +0 -0
  109. codex/static_root/assets/admin-settings-button-progress-BKp0yruZ.js.gz +0 -0
  110. codex/static_root/assets/{browser-DiAN9Ipo.js → browser-BcXpHHP5.ef6076284520.js} +1 -1
  111. codex/static_root/assets/browser-BcXpHHP5.ef6076284520.js.br +0 -0
  112. codex/static_root/assets/browser-BcXpHHP5.ef6076284520.js.gz +0 -0
  113. codex/static_root/assets/{browser-DiAN9Ipo.a5b62a3cbe1d.js → browser-BcXpHHP5.js} +1 -1
  114. codex/static_root/assets/browser-BcXpHHP5.js.br +0 -0
  115. codex/static_root/assets/browser-BcXpHHP5.js.gz +0 -0
  116. codex/static_root/assets/{change-password-dialog-BZPmAOML.73fdc23e13a4.js → change-password-dialog-DB0tGBYA.8712454eb2b5.js} +1 -1
  117. codex/static_root/assets/change-password-dialog-DB0tGBYA.8712454eb2b5.js.br +0 -0
  118. codex/static_root/assets/change-password-dialog-DB0tGBYA.8712454eb2b5.js.gz +0 -0
  119. codex/static_root/assets/{change-password-dialog-BZPmAOML.js → change-password-dialog-DB0tGBYA.js} +1 -1
  120. codex/static_root/assets/change-password-dialog-DB0tGBYA.js.br +0 -0
  121. codex/static_root/assets/change-password-dialog-DB0tGBYA.js.gz +0 -0
  122. codex/static_root/assets/{confirm-dialog-CBLQOik_.f53acd0c622a.js → confirm-dialog-CUfR1UVh.d59ed57fbf3c.js} +1 -1
  123. codex/static_root/assets/confirm-dialog-CUfR1UVh.d59ed57fbf3c.js.br +0 -0
  124. codex/static_root/assets/confirm-dialog-CUfR1UVh.d59ed57fbf3c.js.gz +0 -0
  125. codex/static_root/assets/{confirm-dialog-CBLQOik_.js → confirm-dialog-CUfR1UVh.js} +1 -1
  126. codex/static_root/assets/confirm-dialog-CUfR1UVh.js.br +0 -0
  127. codex/static_root/assets/confirm-dialog-CUfR1UVh.js.gz +0 -0
  128. codex/static_root/assets/{datetime-column-CU19rCbi.9edc0d2da736.js → datetime-column-DWwCltHX.be3a30e165e2.js} +1 -1
  129. codex/static_root/assets/datetime-column-DWwCltHX.be3a30e165e2.js.br +2 -0
  130. codex/static_root/assets/datetime-column-DWwCltHX.be3a30e165e2.js.gz +0 -0
  131. codex/static_root/assets/{datetime-column-CU19rCbi.js → datetime-column-DWwCltHX.js} +1 -1
  132. codex/static_root/assets/datetime-column-DWwCltHX.js.br +2 -0
  133. codex/static_root/assets/datetime-column-DWwCltHX.js.gz +0 -0
  134. codex/static_root/assets/{filter-CZ7kkBLq.171b4fcba146.js → filter-DUzmOcWQ.62e2578018fc.js} +1 -1
  135. codex/static_root/assets/filter-DUzmOcWQ.62e2578018fc.js.br +0 -0
  136. codex/static_root/assets/filter-DUzmOcWQ.62e2578018fc.js.gz +0 -0
  137. codex/static_root/assets/{filter-CZ7kkBLq.js → filter-DUzmOcWQ.js} +1 -1
  138. codex/static_root/assets/filter-DUzmOcWQ.js.br +0 -0
  139. codex/static_root/assets/filter-DUzmOcWQ.js.gz +0 -0
  140. codex/static_root/assets/{flag-tab-kcBN36xe.631c48ab75fd.js → flag-tab-DI0mJlXh.35d270069e4f.js} +1 -1
  141. codex/static_root/assets/flag-tab-DI0mJlXh.35d270069e4f.js.br +0 -0
  142. codex/static_root/assets/flag-tab-DI0mJlXh.35d270069e4f.js.gz +0 -0
  143. codex/static_root/assets/{flag-tab-kcBN36xe.js → flag-tab-DI0mJlXh.js} +1 -1
  144. codex/static_root/assets/flag-tab-DI0mJlXh.js.br +0 -0
  145. codex/static_root/assets/flag-tab-DI0mJlXh.js.gz +0 -0
  146. codex/static_root/assets/{forwardRefs-DNAemYUk.06a315272ed9.js → forwardRefs-hLICxMEm.fd43ec456950.js} +1 -1
  147. codex/static_root/assets/forwardRefs-hLICxMEm.fd43ec456950.js.br +0 -0
  148. codex/static_root/assets/forwardRefs-hLICxMEm.fd43ec456950.js.gz +0 -0
  149. codex/static_root/assets/{forwardRefs-DNAemYUk.js → forwardRefs-hLICxMEm.js} +1 -1
  150. codex/static_root/assets/forwardRefs-hLICxMEm.js.br +0 -0
  151. codex/static_root/assets/forwardRefs-hLICxMEm.js.gz +0 -0
  152. codex/static_root/assets/{group-tab-D9gwAdJc.60fb0ffa734c.js → group-tab-Ch6sd19Y.15f92ebc959d.js} +1 -1
  153. codex/static_root/assets/group-tab-Ch6sd19Y.15f92ebc959d.js.br +0 -0
  154. codex/static_root/assets/group-tab-Ch6sd19Y.15f92ebc959d.js.gz +0 -0
  155. codex/static_root/assets/{group-tab-D9gwAdJc.js → group-tab-Ch6sd19Y.js} +1 -1
  156. codex/static_root/assets/group-tab-Ch6sd19Y.js.br +0 -0
  157. codex/static_root/assets/group-tab-Ch6sd19Y.js.gz +0 -0
  158. codex/static_root/assets/{http-error-DmFqD2Xz.593d626b5f1b.js → http-error-BQoj78jv.fc5280352b17.js} +1 -1
  159. codex/static_root/assets/http-error-BQoj78jv.fc5280352b17.js.br +0 -0
  160. codex/static_root/assets/http-error-BQoj78jv.fc5280352b17.js.gz +0 -0
  161. codex/static_root/assets/{http-error-DmFqD2Xz.js → http-error-BQoj78jv.js} +1 -1
  162. codex/static_root/assets/http-error-BQoj78jv.js.br +0 -0
  163. codex/static_root/assets/http-error-BQoj78jv.js.gz +0 -0
  164. codex/static_root/assets/{index-hvGLIBbY.30ce8cca0c6d.js → index-DtVx0ej4.9ca3e3d32eb8.js} +1 -1
  165. codex/static_root/assets/index-DtVx0ej4.9ca3e3d32eb8.js.br +0 -0
  166. codex/static_root/assets/index-DtVx0ej4.9ca3e3d32eb8.js.gz +0 -0
  167. codex/static_root/assets/{index-hvGLIBbY.js → index-DtVx0ej4.js} +1 -1
  168. codex/static_root/assets/index-DtVx0ej4.js.br +0 -0
  169. codex/static_root/assets/index-DtVx0ej4.js.gz +0 -0
  170. codex/static_root/assets/{library-tab-CF-RAEgP.a0ad816fb994.js → library-tab-DEvrF6PF.c7a68c22664c.js} +1 -1
  171. codex/static_root/assets/library-tab-DEvrF6PF.c7a68c22664c.js.br +0 -0
  172. codex/static_root/assets/library-tab-DEvrF6PF.c7a68c22664c.js.gz +0 -0
  173. codex/static_root/assets/{library-tab-CF-RAEgP.js → library-tab-DEvrF6PF.js} +1 -1
  174. codex/static_root/assets/library-tab-DEvrF6PF.js.br +0 -0
  175. codex/static_root/assets/library-tab-DEvrF6PF.js.gz +0 -0
  176. codex/static_root/assets/{main-Dv8e0bMI.bd74f1ba1627.js → main-DTplblFl.b8e4b708287f.js} +10 -10
  177. codex/static_root/assets/main-DTplblFl.b8e4b708287f.js.br +0 -0
  178. codex/static_root/assets/main-DTplblFl.b8e4b708287f.js.gz +0 -0
  179. codex/static_root/assets/{main-Dv8e0bMI.js → main-DTplblFl.js} +10 -10
  180. codex/static_root/assets/main-DTplblFl.js.br +0 -0
  181. codex/static_root/assets/main-DTplblFl.js.gz +0 -0
  182. codex/static_root/assets/pager-full-pdf-JIU1UvrN.627b621aa583.js +1 -0
  183. codex/static_root/assets/pager-full-pdf-JIU1UvrN.627b621aa583.js.br +0 -0
  184. codex/static_root/assets/pager-full-pdf-JIU1UvrN.627b621aa583.js.gz +0 -0
  185. codex/static_root/assets/pager-full-pdf-JIU1UvrN.js +1 -0
  186. codex/static_root/assets/pager-full-pdf-JIU1UvrN.js.br +0 -0
  187. codex/static_root/assets/pager-full-pdf-JIU1UvrN.js.gz +0 -0
  188. codex/static_root/assets/{pagination-toolbar-D_whea1o.9bbd927058f1.js → pagination-toolbar-DHVJWGeE.c70de5ca6915.js} +1 -1
  189. codex/static_root/assets/pagination-toolbar-DHVJWGeE.c70de5ca6915.js.br +0 -0
  190. codex/static_root/assets/pagination-toolbar-DHVJWGeE.c70de5ca6915.js.gz +0 -0
  191. codex/static_root/assets/{pagination-toolbar-D_whea1o.js → pagination-toolbar-DHVJWGeE.js} +1 -1
  192. codex/static_root/assets/pagination-toolbar-DHVJWGeE.js.br +0 -0
  193. codex/static_root/assets/pagination-toolbar-DHVJWGeE.js.gz +0 -0
  194. codex/static_root/assets/{pdf-doc-dnr5fHbU.fa1d7ed9255b.js → pdf-doc-DjtoQWxA.2c9fd3017300.js} +1 -1
  195. codex/static_root/assets/pdf-doc-DjtoQWxA.2c9fd3017300.js.br +0 -0
  196. codex/static_root/assets/pdf-doc-DjtoQWxA.2c9fd3017300.js.gz +0 -0
  197. codex/static_root/assets/{pdf-doc-dnr5fHbU.js → pdf-doc-DjtoQWxA.js} +1 -1
  198. codex/static_root/assets/pdf-doc-DjtoQWxA.js.br +0 -0
  199. codex/static_root/assets/pdf-doc-DjtoQWxA.js.gz +0 -0
  200. codex/static_root/assets/{reader-Cn-ra_Dv.f38c0b419dec.js → reader-DIjUh67D.061a8b501e35.js} +2 -2
  201. codex/static_root/assets/reader-DIjUh67D.061a8b501e35.js.br +0 -0
  202. codex/static_root/assets/reader-DIjUh67D.061a8b501e35.js.gz +0 -0
  203. codex/static_root/assets/{reader-Cn-ra_Dv.js → reader-DIjUh67D.js} +2 -2
  204. codex/static_root/assets/reader-DIjUh67D.js.br +0 -0
  205. codex/static_root/assets/reader-DIjUh67D.js.gz +0 -0
  206. codex/static_root/assets/{relation-chips-fOPxWAMU.js → relation-chips-ByFsclaN.2b9dc61299f6.js} +1 -1
  207. codex/static_root/assets/relation-chips-ByFsclaN.2b9dc61299f6.js.br +0 -0
  208. codex/static_root/assets/relation-chips-ByFsclaN.2b9dc61299f6.js.gz +0 -0
  209. codex/static_root/assets/{relation-chips-fOPxWAMU.78e5fe70c014.js → relation-chips-ByFsclaN.js} +1 -1
  210. codex/static_root/assets/relation-chips-ByFsclaN.js.br +0 -0
  211. codex/static_root/assets/relation-chips-ByFsclaN.js.gz +0 -0
  212. codex/static_root/assets/{settings-drawer-1UEq8JY1.d95cee9aefb5.js → settings-drawer-DWa5PBWW.dee5ebeb24fe.js} +2 -2
  213. codex/static_root/assets/settings-drawer-DWa5PBWW.dee5ebeb24fe.js.br +0 -0
  214. codex/static_root/assets/settings-drawer-DWa5PBWW.dee5ebeb24fe.js.gz +0 -0
  215. codex/static_root/assets/{settings-drawer-1UEq8JY1.js → settings-drawer-DWa5PBWW.js} +2 -2
  216. codex/static_root/assets/settings-drawer-DWa5PBWW.js.br +0 -0
  217. codex/static_root/assets/settings-drawer-DWa5PBWW.js.gz +0 -0
  218. codex/static_root/assets/{stats-tab-0ptRCeKw.5514d3508e37.js → stats-tab-B_i6PH1G.f11e0562b20d.js} +1 -1
  219. codex/static_root/assets/stats-tab-B_i6PH1G.f11e0562b20d.js.br +0 -0
  220. codex/static_root/assets/stats-tab-B_i6PH1G.f11e0562b20d.js.gz +0 -0
  221. codex/static_root/assets/{stats-tab-0ptRCeKw.js → stats-tab-B_i6PH1G.js} +1 -1
  222. codex/static_root/assets/stats-tab-B_i6PH1G.js.br +0 -0
  223. codex/static_root/assets/stats-tab-B_i6PH1G.js.gz +0 -0
  224. codex/static_root/assets/{task-tab-CG9_bi6Z.ad9f647f8e5f.js → task-tab-DOEbnSf2.fe4907da1530.js} +1 -1
  225. codex/static_root/assets/task-tab-DOEbnSf2.fe4907da1530.js.br +0 -0
  226. codex/static_root/assets/task-tab-DOEbnSf2.fe4907da1530.js.gz +0 -0
  227. codex/static_root/assets/{task-tab-CG9_bi6Z.js → task-tab-DOEbnSf2.js} +1 -1
  228. codex/static_root/assets/task-tab-DOEbnSf2.js.br +0 -0
  229. codex/static_root/assets/task-tab-DOEbnSf2.js.gz +0 -0
  230. codex/static_root/assets/{unauthorized-vG1Lh0m_.0c4bae81ee09.js → unauthorized-Cblht_KD.e0c38cb1a24c.js} +1 -1
  231. codex/static_root/assets/unauthorized-Cblht_KD.e0c38cb1a24c.js.br +0 -0
  232. codex/static_root/assets/unauthorized-Cblht_KD.e0c38cb1a24c.js.gz +0 -0
  233. codex/static_root/assets/{unauthorized-vG1Lh0m_.js → unauthorized-Cblht_KD.js} +1 -1
  234. codex/static_root/assets/unauthorized-Cblht_KD.js.br +0 -0
  235. codex/static_root/assets/unauthorized-Cblht_KD.js.gz +0 -0
  236. codex/static_root/assets/{user-tab-BOxWlpY7.1a94280a799b.js → user-tab-CdvLJrTe.e52c18781b89.js} +1 -1
  237. codex/static_root/assets/user-tab-CdvLJrTe.e52c18781b89.js.br +0 -0
  238. codex/static_root/assets/user-tab-CdvLJrTe.e52c18781b89.js.gz +0 -0
  239. codex/static_root/assets/{user-tab-BOxWlpY7.js → user-tab-CdvLJrTe.js} +1 -1
  240. codex/static_root/assets/user-tab-CdvLJrTe.js.br +0 -0
  241. codex/static_root/assets/user-tab-CdvLJrTe.js.gz +0 -0
  242. codex/static_root/{manifest.9b3479a6a4a6.json → manifest.e3e070ebb908.json} +252 -252
  243. codex/static_root/manifest.e3e070ebb908.json.br +0 -0
  244. codex/static_root/manifest.e3e070ebb908.json.gz +0 -0
  245. codex/static_root/manifest.json +252 -252
  246. codex/static_root/manifest.json.br +0 -0
  247. codex/static_root/manifest.json.gz +0 -0
  248. codex/static_root/staticfiles.json +1 -1
  249. codex/threads.py +0 -5
  250. codex/urls/api/admin.py +3 -3
  251. codex/views/admin/tasks.py +0 -2
  252. {codex-1.7.3a0.dist-info → codex-1.7.3a1.dist-info}/METADATA +1 -2
  253. {codex-1.7.3a0.dist-info → codex-1.7.3a1.dist-info}/RECORD +256 -257
  254. codex/librarian/janitor/log_compress.py +0 -77
  255. codex/static_root/assets/VCheckbox-pHjSEgdV.176f3c1f4191.js.br +0 -0
  256. codex/static_root/assets/VCheckbox-pHjSEgdV.176f3c1f4191.js.gz +0 -0
  257. codex/static_root/assets/VCheckbox-pHjSEgdV.js.br +0 -0
  258. codex/static_root/assets/VCheckbox-pHjSEgdV.js.gz +0 -0
  259. codex/static_root/assets/VCheckboxBtn-DBKqrZGq.467e75859b62.js.br +0 -0
  260. codex/static_root/assets/VCheckboxBtn-DBKqrZGq.467e75859b62.js.gz +0 -0
  261. codex/static_root/assets/VCheckboxBtn-DBKqrZGq.js.br +0 -0
  262. codex/static_root/assets/VCheckboxBtn-DBKqrZGq.js.gz +0 -0
  263. codex/static_root/assets/VCombobox-Bg7uOTbF.2fc6073b789f.js.br +0 -0
  264. codex/static_root/assets/VCombobox-Bg7uOTbF.2fc6073b789f.js.gz +0 -0
  265. codex/static_root/assets/VCombobox-Bg7uOTbF.js.br +0 -0
  266. codex/static_root/assets/VCombobox-Bg7uOTbF.js.gz +0 -0
  267. codex/static_root/assets/VDialog-IrbBYFLM.91a058d572c4.js.br +0 -0
  268. codex/static_root/assets/VDialog-IrbBYFLM.91a058d572c4.js.gz +0 -0
  269. codex/static_root/assets/VDialog-IrbBYFLM.js.br +0 -0
  270. codex/static_root/assets/VDialog-IrbBYFLM.js.gz +0 -0
  271. codex/static_root/assets/VDivider-CuRohbVQ.3c12b040aed7.js.br +0 -0
  272. codex/static_root/assets/VDivider-CuRohbVQ.3c12b040aed7.js.gz +0 -0
  273. codex/static_root/assets/VDivider-CuRohbVQ.js.br +0 -0
  274. codex/static_root/assets/VDivider-CuRohbVQ.js.gz +0 -0
  275. codex/static_root/assets/VExpansionPanels-b0xWLH75.bff6ea8b4055.js.br +0 -0
  276. codex/static_root/assets/VExpansionPanels-b0xWLH75.bff6ea8b4055.js.gz +0 -0
  277. codex/static_root/assets/VExpansionPanels-b0xWLH75.js.br +0 -0
  278. codex/static_root/assets/VExpansionPanels-b0xWLH75.js.gz +0 -0
  279. codex/static_root/assets/VForm-B4hkqnS8.afbd5cf0908a.js.br +0 -0
  280. codex/static_root/assets/VForm-B4hkqnS8.afbd5cf0908a.js.gz +0 -0
  281. codex/static_root/assets/VForm-B4hkqnS8.js.br +0 -0
  282. codex/static_root/assets/VForm-B4hkqnS8.js.gz +0 -0
  283. codex/static_root/assets/VRadioGroup-Cbayik6d.034f0f275265.js.br +0 -0
  284. codex/static_root/assets/VRadioGroup-Cbayik6d.034f0f275265.js.gz +0 -0
  285. codex/static_root/assets/VRadioGroup-Cbayik6d.js.br +0 -0
  286. codex/static_root/assets/VRadioGroup-Cbayik6d.js.gz +0 -0
  287. codex/static_root/assets/VSelect-BsuB-2P1.abe187c8b53f.js.br +0 -0
  288. codex/static_root/assets/VSelect-BsuB-2P1.abe187c8b53f.js.gz +0 -0
  289. codex/static_root/assets/VSelect-BsuB-2P1.js.br +0 -0
  290. codex/static_root/assets/VSelect-BsuB-2P1.js.gz +0 -0
  291. codex/static_root/assets/VSelectionControl-L41n5bnX.f4674bb62425.js.br +0 -0
  292. codex/static_root/assets/VSelectionControl-L41n5bnX.f4674bb62425.js.gz +0 -0
  293. codex/static_root/assets/VSelectionControl-L41n5bnX.js.br +0 -0
  294. codex/static_root/assets/VSelectionControl-L41n5bnX.js.gz +0 -0
  295. codex/static_root/assets/VTable-CYv4gUUt.76e4658abeb3.js.br +0 -0
  296. codex/static_root/assets/VTable-CYv4gUUt.76e4658abeb3.js.gz +0 -0
  297. codex/static_root/assets/VTable-CYv4gUUt.js.br +0 -0
  298. codex/static_root/assets/VTable-CYv4gUUt.js.gz +0 -0
  299. codex/static_root/assets/VWindowItem-f8UkxXa_.1d3e9e78fc9b.js.br +0 -0
  300. codex/static_root/assets/VWindowItem-f8UkxXa_.1d3e9e78fc9b.js.gz +0 -0
  301. codex/static_root/assets/VWindowItem-f8UkxXa_.js.br +0 -0
  302. codex/static_root/assets/VWindowItem-f8UkxXa_.js.gz +0 -0
  303. codex/static_root/assets/admin-BmuWJcAB.b0b253aefd88.js.br +0 -0
  304. codex/static_root/assets/admin-BmuWJcAB.b0b253aefd88.js.gz +0 -0
  305. codex/static_root/assets/admin-BmuWJcAB.js.br +0 -0
  306. codex/static_root/assets/admin-BmuWJcAB.js.gz +0 -0
  307. codex/static_root/assets/admin-Izb24SXM.504ea9d9515c.js.br +0 -0
  308. codex/static_root/assets/admin-Izb24SXM.504ea9d9515c.js.gz +0 -0
  309. codex/static_root/assets/admin-Izb24SXM.js.br +0 -0
  310. codex/static_root/assets/admin-Izb24SXM.js.gz +0 -0
  311. codex/static_root/assets/admin-dm3bSP7O.ae1234cc0beb.css +0 -1
  312. codex/static_root/assets/admin-dm3bSP7O.ae1234cc0beb.css.br +0 -0
  313. codex/static_root/assets/admin-dm3bSP7O.ae1234cc0beb.css.gz +0 -0
  314. codex/static_root/assets/admin-dm3bSP7O.css +0 -1
  315. codex/static_root/assets/admin-dm3bSP7O.css.br +0 -0
  316. codex/static_root/assets/admin-dm3bSP7O.css.gz +0 -0
  317. codex/static_root/assets/admin-menu-C712OV-9.ecd1f2af4cf4.js +0 -1
  318. codex/static_root/assets/admin-menu-C712OV-9.ecd1f2af4cf4.js.br +0 -0
  319. codex/static_root/assets/admin-menu-C712OV-9.ecd1f2af4cf4.js.gz +0 -0
  320. codex/static_root/assets/admin-menu-C712OV-9.js +0 -1
  321. codex/static_root/assets/admin-menu-C712OV-9.js.br +0 -0
  322. codex/static_root/assets/admin-menu-C712OV-9.js.gz +0 -0
  323. codex/static_root/assets/admin-settings-button-progress-Clv9yQ7G.2536580dece1.js.br +0 -0
  324. codex/static_root/assets/admin-settings-button-progress-Clv9yQ7G.2536580dece1.js.gz +0 -0
  325. codex/static_root/assets/admin-settings-button-progress-Clv9yQ7G.js.br +0 -0
  326. codex/static_root/assets/admin-settings-button-progress-Clv9yQ7G.js.gz +0 -0
  327. codex/static_root/assets/browser-DiAN9Ipo.a5b62a3cbe1d.js.br +0 -0
  328. codex/static_root/assets/browser-DiAN9Ipo.a5b62a3cbe1d.js.gz +0 -0
  329. codex/static_root/assets/browser-DiAN9Ipo.js.br +0 -0
  330. codex/static_root/assets/browser-DiAN9Ipo.js.gz +0 -0
  331. codex/static_root/assets/change-password-dialog-BZPmAOML.73fdc23e13a4.js.br +0 -0
  332. codex/static_root/assets/change-password-dialog-BZPmAOML.73fdc23e13a4.js.gz +0 -0
  333. codex/static_root/assets/change-password-dialog-BZPmAOML.js.br +0 -0
  334. codex/static_root/assets/change-password-dialog-BZPmAOML.js.gz +0 -0
  335. codex/static_root/assets/confirm-dialog-CBLQOik_.f53acd0c622a.js.br +0 -0
  336. codex/static_root/assets/confirm-dialog-CBLQOik_.f53acd0c622a.js.gz +0 -0
  337. codex/static_root/assets/confirm-dialog-CBLQOik_.js.br +0 -0
  338. codex/static_root/assets/confirm-dialog-CBLQOik_.js.gz +0 -0
  339. codex/static_root/assets/datetime-column-CU19rCbi.9edc0d2da736.js.br +0 -1
  340. codex/static_root/assets/datetime-column-CU19rCbi.9edc0d2da736.js.gz +0 -0
  341. codex/static_root/assets/datetime-column-CU19rCbi.js.br +0 -1
  342. codex/static_root/assets/datetime-column-CU19rCbi.js.gz +0 -0
  343. codex/static_root/assets/filter-CZ7kkBLq.171b4fcba146.js.br +0 -0
  344. codex/static_root/assets/filter-CZ7kkBLq.171b4fcba146.js.gz +0 -0
  345. codex/static_root/assets/filter-CZ7kkBLq.js.br +0 -0
  346. codex/static_root/assets/filter-CZ7kkBLq.js.gz +0 -0
  347. codex/static_root/assets/flag-tab-kcBN36xe.631c48ab75fd.js.br +0 -0
  348. codex/static_root/assets/flag-tab-kcBN36xe.631c48ab75fd.js.gz +0 -0
  349. codex/static_root/assets/flag-tab-kcBN36xe.js.br +0 -0
  350. codex/static_root/assets/flag-tab-kcBN36xe.js.gz +0 -0
  351. codex/static_root/assets/forwardRefs-DNAemYUk.06a315272ed9.js.br +0 -0
  352. codex/static_root/assets/forwardRefs-DNAemYUk.06a315272ed9.js.gz +0 -0
  353. codex/static_root/assets/forwardRefs-DNAemYUk.js.br +0 -0
  354. codex/static_root/assets/forwardRefs-DNAemYUk.js.gz +0 -0
  355. codex/static_root/assets/group-tab-D9gwAdJc.60fb0ffa734c.js.br +0 -0
  356. codex/static_root/assets/group-tab-D9gwAdJc.60fb0ffa734c.js.gz +0 -0
  357. codex/static_root/assets/group-tab-D9gwAdJc.js.br +0 -0
  358. codex/static_root/assets/group-tab-D9gwAdJc.js.gz +0 -0
  359. codex/static_root/assets/http-error-DmFqD2Xz.593d626b5f1b.js.br +0 -0
  360. codex/static_root/assets/http-error-DmFqD2Xz.593d626b5f1b.js.gz +0 -0
  361. codex/static_root/assets/http-error-DmFqD2Xz.js.br +0 -0
  362. codex/static_root/assets/http-error-DmFqD2Xz.js.gz +0 -0
  363. codex/static_root/assets/index-hvGLIBbY.30ce8cca0c6d.js.br +0 -0
  364. codex/static_root/assets/index-hvGLIBbY.30ce8cca0c6d.js.gz +0 -0
  365. codex/static_root/assets/index-hvGLIBbY.js.br +0 -0
  366. codex/static_root/assets/index-hvGLIBbY.js.gz +0 -0
  367. codex/static_root/assets/library-tab-CF-RAEgP.a0ad816fb994.js.br +0 -0
  368. codex/static_root/assets/library-tab-CF-RAEgP.a0ad816fb994.js.gz +0 -0
  369. codex/static_root/assets/library-tab-CF-RAEgP.js.br +0 -0
  370. codex/static_root/assets/library-tab-CF-RAEgP.js.gz +0 -0
  371. codex/static_root/assets/main-Dv8e0bMI.bd74f1ba1627.js.br +0 -0
  372. codex/static_root/assets/main-Dv8e0bMI.bd74f1ba1627.js.gz +0 -0
  373. codex/static_root/assets/main-Dv8e0bMI.js.br +0 -0
  374. codex/static_root/assets/main-Dv8e0bMI.js.gz +0 -0
  375. codex/static_root/assets/pager-full-pdf-BXd9Y5oQ.04a4f5c451b4.js +0 -1
  376. codex/static_root/assets/pager-full-pdf-BXd9Y5oQ.04a4f5c451b4.js.br +0 -0
  377. codex/static_root/assets/pager-full-pdf-BXd9Y5oQ.04a4f5c451b4.js.gz +0 -0
  378. codex/static_root/assets/pager-full-pdf-BXd9Y5oQ.js +0 -1
  379. codex/static_root/assets/pager-full-pdf-BXd9Y5oQ.js.br +0 -0
  380. codex/static_root/assets/pager-full-pdf-BXd9Y5oQ.js.gz +0 -0
  381. codex/static_root/assets/pagination-toolbar-D_whea1o.9bbd927058f1.js.br +0 -0
  382. codex/static_root/assets/pagination-toolbar-D_whea1o.9bbd927058f1.js.gz +0 -0
  383. codex/static_root/assets/pagination-toolbar-D_whea1o.js.br +0 -0
  384. codex/static_root/assets/pagination-toolbar-D_whea1o.js.gz +0 -0
  385. codex/static_root/assets/pdf-doc-dnr5fHbU.fa1d7ed9255b.js.br +0 -0
  386. codex/static_root/assets/pdf-doc-dnr5fHbU.fa1d7ed9255b.js.gz +0 -0
  387. codex/static_root/assets/pdf-doc-dnr5fHbU.js.br +0 -0
  388. codex/static_root/assets/pdf-doc-dnr5fHbU.js.gz +0 -0
  389. codex/static_root/assets/reader-Cn-ra_Dv.f38c0b419dec.js.br +0 -0
  390. codex/static_root/assets/reader-Cn-ra_Dv.f38c0b419dec.js.gz +0 -0
  391. codex/static_root/assets/reader-Cn-ra_Dv.js.br +0 -0
  392. codex/static_root/assets/reader-Cn-ra_Dv.js.gz +0 -0
  393. codex/static_root/assets/relation-chips-fOPxWAMU.78e5fe70c014.js.br +0 -0
  394. codex/static_root/assets/relation-chips-fOPxWAMU.78e5fe70c014.js.gz +0 -0
  395. codex/static_root/assets/relation-chips-fOPxWAMU.js.br +0 -0
  396. codex/static_root/assets/relation-chips-fOPxWAMU.js.gz +0 -0
  397. codex/static_root/assets/settings-drawer-1UEq8JY1.d95cee9aefb5.js.br +0 -0
  398. codex/static_root/assets/settings-drawer-1UEq8JY1.d95cee9aefb5.js.gz +0 -0
  399. codex/static_root/assets/settings-drawer-1UEq8JY1.js.br +0 -0
  400. codex/static_root/assets/settings-drawer-1UEq8JY1.js.gz +0 -0
  401. codex/static_root/assets/stats-tab-0ptRCeKw.5514d3508e37.js.br +0 -0
  402. codex/static_root/assets/stats-tab-0ptRCeKw.5514d3508e37.js.gz +0 -0
  403. codex/static_root/assets/stats-tab-0ptRCeKw.js.br +0 -0
  404. codex/static_root/assets/stats-tab-0ptRCeKw.js.gz +0 -0
  405. codex/static_root/assets/task-tab-CG9_bi6Z.ad9f647f8e5f.js.br +0 -0
  406. codex/static_root/assets/task-tab-CG9_bi6Z.ad9f647f8e5f.js.gz +0 -0
  407. codex/static_root/assets/task-tab-CG9_bi6Z.js.br +0 -0
  408. codex/static_root/assets/task-tab-CG9_bi6Z.js.gz +0 -0
  409. codex/static_root/assets/unauthorized-vG1Lh0m_.0c4bae81ee09.js.br +0 -0
  410. codex/static_root/assets/unauthorized-vG1Lh0m_.0c4bae81ee09.js.gz +0 -0
  411. codex/static_root/assets/unauthorized-vG1Lh0m_.js.br +0 -0
  412. codex/static_root/assets/unauthorized-vG1Lh0m_.js.gz +0 -0
  413. codex/static_root/assets/user-tab-BOxWlpY7.1a94280a799b.js.br +0 -0
  414. codex/static_root/assets/user-tab-BOxWlpY7.1a94280a799b.js.gz +0 -0
  415. codex/static_root/assets/user-tab-BOxWlpY7.js.br +0 -0
  416. codex/static_root/assets/user-tab-BOxWlpY7.js.gz +0 -0
  417. codex/static_root/manifest.9b3479a6a4a6.json.br +0 -0
  418. codex/static_root/manifest.9b3479a6a4a6.json.gz +0 -0
  419. {codex-1.7.3a0.dist-info → codex-1.7.3a1.dist-info}/LICENSE +0 -0
  420. {codex-1.7.3a0.dist-info → codex-1.7.3a1.dist-info}/WHEEL +0 -0
  421. {codex-1.7.3a0.dist-info → codex-1.7.3a1.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
1
- import{p as L,J as U,g as G,u as z,a as i,c as K,m as F,K as Se,t as $,d as we,F as N,E as g,B as Be,L as p,M as Ce,N as de,O as ke,P as Te,Q as xe,R as Me,_ as b,l as n,v as u,w as m,S as R,s as C,z as S,n as v,k as c,T as le,C as k,D as x,U as Q,V as ce,W as j,A as B,X as te,q as _,y as O,Y as Ve,Z as ue,$ as Fe,H as y,a0 as me,a1 as he,h as pe,j as Ne,a2 as $e,a3 as De,a4 as Oe,x as A,a5 as Ie,a6 as Pe,a7 as Re,a8 as He,a9 as Ae,aa as qe,ab as Ee,ac as re,ad as ae,ae as Le,af as Ue,ag as oe,ah as Ge,ai as ze,b as je,aj as Ye,ak as Ke,al as Qe}from"./main-Dv8e0bMI.js";import{a as Y,V as se,A as We,E as Xe,P as Je,c as fe,U as Ze}from"./unauthorized-vG1Lh0m_.js";import{g as et,c as X,h as tt,u as rt,b as at,i as ot,e as st,d as it,j as nt,k as V,l as dt,V as be,n as J,o as lt,p as ct,I as ut,q as mt,M as ht}from"./forwardRefs-DNAemYUk.js";import{T as E}from"./index-hvGLIBbY.js";import{V as pt}from"./VCombobox-Bg7uOTbF.js";import{V as ft}from"./VTable-CYv4gUUt.js";import{V as bt,a as T,C as gt}from"./VDialog-IrbBYFLM.js";import{V as _t,a as vt,b as yt,c as St}from"./VSelectionControl-L41n5bnX.js";import{V as W,N as ie,t as wt,T as D,a as Bt,D as Ct,M as kt,p as Tt,B as xt,g as Mt,P as Vt,b as Ft,c as Nt}from"./pagination-toolbar-D_whea1o.js";import{V as ge,a as $t}from"./VSelect-BsuB-2P1.js";import{a as H}from"./VDivider-CuRohbVQ.js";import{b as Dt,S as Ot,a as It}from"./settings-drawer-1UEq8JY1.js";import{V as q}from"./VCheckbox-pHjSEgdV.js";import{C as Pt}from"./confirm-dialog-CBLQOik_.js";import"./change-password-dialog-BZPmAOML.js";import"./VForm-B4hkqnS8.js";import"./admin-Izb24SXM.js";import"./filter-CZ7kkBLq.js";import"./VCheckboxBtn-DBKqrZGq.js";import"./copy-to-clipboard-DoUvDJVx.js";const Rt=L({divider:[Number,String],...U()},"VBreadcrumbsDivider"),Ht=G()({name:"VBreadcrumbsDivider",props:Rt(),setup(e,t){let{slots:a}=t;return z(()=>{var d;return i("li",{class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=a==null?void 0:a.default)==null?void 0:d.call(a))??e.divider])}),{}}}),At=L({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...U(),...et(),...X({tag:"li"})},"VBreadcrumbsItem"),_e=G()({name:"VBreadcrumbsItem",props:At(),setup(e,t){let{slots:a,attrs:d}=t;const s=tt(e,d),r=K(()=>{var f;return e.active||((f=s.isActive)==null?void 0:f.value)}),o=K(()=>r.value?e.activeColor:e.color),{textColorClasses:l,textColorStyles:h}=rt(o);return z(()=>i(e.tag,{class:["v-breadcrumbs-item",{"v-breadcrumbs-item--active":r.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:r.value&&e.activeClass},l.value,e.class],style:[h.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var f,w;return[s.isLink.value?i("a",F({class:"v-breadcrumbs-item--link",onClick:s.navigate},s.linkProps),[((w=a.default)==null?void 0:w.call(a))??e.title]):((f=a.default)==null?void 0:f.call(a))??e.title]}})),{}}}),qt=L({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Se,items:{type:Array,default:()=>[]},...U(),...at(),...ot(),...X({tag:"ul"})},"VBreadcrumbs"),Et=G()({name:"VBreadcrumbs",props:qt(),setup(e,t){let{slots:a}=t;const{backgroundColorClasses:d,backgroundColorStyles:s}=st($(e,"bgColor")),{densityClasses:r}=it(e),{roundedClasses:o}=nt(e);we({VBreadcrumbsDivider:{divider:$(e,"divider")},VBreadcrumbsItem:{activeClass:$(e,"activeClass"),activeColor:$(e,"activeColor"),color:$(e,"color"),disabled:$(e,"disabled")}});const l=K(()=>e.items.map(h=>typeof h=="string"?{item:{title:h},raw:h}:{item:h,raw:h}));return z(()=>{const h=!!(a.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,o.value,e.class],style:[s.value,e.style]},{default:()=>{var f;return[h&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[a.prepend?i(dt,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},a.prepend):i(V,{key:"prepend-icon",start:!0,icon:e.icon},null)]),l.value.map((w,M,Z)=>{var ee;let{item:I,raw:ye}=w;return i(N,null,[((ee=a.item)==null?void 0:ee.call(a,{item:I,index:M}))??i(_e,F({key:M,disabled:M>=Z.length-1},typeof I=="string"?{title:I}:I),{default:a.title?()=>{var P;return(P=a.title)==null?void 0:P.call(a,{item:I,index:M})}:void 0}),M<Z.length-1&&i(Ht,null,{default:a.divider?()=>{var P;return(P=a.divider)==null?void 0:P.call(a,{item:ye,index:M})}:void 0})])}),(f=a.default)==null?void 0:f.call(a)]}})}),{}}}),Lt={f:ke,r:de,p:Te,i:xe,s:Me},Ut={name:"BrowserBreadcrumbs",computed:{...g(Be,["timestamp"]),...g(p,{breadcrumbs(e){const t=[],a=e.settings.breadcrumbs.slice(0,e.settings.breadcrumbs.length-1);if(!a)return t;let d="";for(const s of a){const r=this.getTo(s,d),o=s.name?s.name:"",l=s.group,h=this.getIcon(s.pks,o,l);let f;s.group==="r"?f="Top":(f=e.choices.static.groupNames[l],s.pks==0?f="All "+f:f!="Series"&&(f=f.slice(0,-1))),f={text:f,openDelay:1500};const w={to:r,text:o,icon:h,tooltip:f};t.push(w),d=s.pks}return t}})},methods:{getTo(e,t){const a=Ce(e);delete a.name;const d={name:"browser",params:a};return d.query={ts:this.timestamp},t&&(d.hash=`#card-${t}`),d},getIcon(e,t,a){let d;return"rfa".indexOf(a)!=-1&&e==="0"?d=de:t?d="":d=Lt[a],d}}},Gt={key:1};function zt(e,t,a,d,s,r){return n(),u(Et,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:m(({item:o})=>[R((n(),u(_e,{to:o.to},{default:m(()=>[o.icon?(n(),u(V,{key:0},{default:m(()=>[C(S(o.icon),1)]),_:2},1024)):(n(),v("span",Gt,S(o.text),1))]),_:2},1032,["to"])),[[E,o.tooltip]])]),_:1},8,["items"])}const jt=b(Ut,[["render",zt],["__scopeId","data-v-9cf43736"]]),Yt={name:"BrowserHeader",components:{Breadcrumbs:jt}};function Kt(e,t,a,d,s,r){const o=c("Breadcrumbs");return n(),u(Y,{id:"breadcrumbsToolbar",height:24,class:"titleToolbar",elevation:"8"},{default:m(()=>[i(o)]),_:1})}const Qt=b(Yt,[["render",Kt],["__scopeId","data-v-fd83bc5e"]]),Wt={name:"BrowserHeader",data(){return{mdiReload:le}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...g(p,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...k(x,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:a,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?Q(a):a;if(r&&t.push(r),d){const o=`of ${d}`;t.push(o)}e=t.join(" ")}else e="(Empty)";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function Xt(e,t,a,d,s,r){return n(),u(Y,{id:"browserToolbarTitle",height:24,"extension-height":24,elevation:"8"},ce({default:m(()=>[i(se,{id:"browserTitle",class:"browserTitle"},{default:m(()=>[C(S(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:m(()=>[i(se,{id:"browserSubtitle",class:"browserTitle"},{default:m(()=>[C(S(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Jt=b(Wt,[["render",Xt],["__scopeId","data-v-07c60f90"]]),Zt=10,er={name:"BrowserSearchCombobox",data(){return{mdiMagnify:j,menu:!1,query:"",items:[""]}},computed:{...g(p,{stateQ:e=>e.settings.q,searchError:e=>e.page.searchError})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...B(p,["setSettings","startSearchHideTimeout","clearSearchHideTimeout"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,Zt)},doSearch(e=!1){this.menu=!1;const a={q:this.query?this.query.trim():""};e&&(a.orderBy="sort_name",a.orderReverse=!1,this.doBlur()),this.setSettings(a)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function tr(e,t,a,d,s,r){return n(),u(pt,{id:"searchbox",ref:"searchbox",modelValue:s.query,"onUpdate:modelValue":t[0]||(t[0]=o=>s.query=o),menu:s.menu,"onUpdate:menu":t[1]||(t[1]=o=>s.menu=o),items:s.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","error-messages":e.searchError,"full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":s.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=o=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[te(r.doSearch,["enter"]),te(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","error-messages","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const rr=b(er,[["render",tr]]),ar=[["characters","String","category"],["community_rating","Decimal","communityrating"],["contributor","String","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","filetype, type"],["genres","String","genre"],["identifiers","String","id, nss"],["identifier_types","String","id_type, idtype, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","String","location"],["maturity_rating","String"],["monochrome","Boolean","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","filename, folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","String","seriesgroups"],["size","Integer"],["stories","String","story"],["story_arcs","String","storyarcs"],["summary","String","comments, description"],["tags","String","tag"],["tagger","String"],["teams","String","team"],["updated_at","DateTime","updated"],["volume","String"],["web","String"],["year","Integer"]],or={name:"SearchHelpText",data(){return{FIELD_ROWS:ar}}},sr={id:"browserSearchTextContainer"},ir={id:"browserSearchText"},nr={id:"fieldTableContainer"},dr={class:"aliasCol"};function lr(e,t,a,d,s,r){return n(),v("div",sr,[_("div",ir,[t[2]||(t[2]=_("h1",null,"Search Help",-1)),_("div",nr,[t[1]||(t[1]=_("h2",null,"Search Fields",-1)),i(ft,{id:"fieldTable",class:"highlight-table"},{default:m(()=>[t[0]||(t[0]=_("thead",null,[_("tr",null,[_("th",null,"Field"),_("th",null,"Type"),_("th",null,"Aliases")])],-1)),_("tbody",null,[(n(!0),v(N,null,O(s.FIELD_ROWS,o=>(n(),v("tr",{key:o[0]},[_("td",null,S(o[0]),1),_("td",null,S(o[1]),1),_("td",dr,S(o[2]||""),1)]))),128))])]),_:1})]),t[3]||(t[3]=Ve('<div id="textContainer" data-v-8d3dbd81><h2 data-v-8d3dbd81>Search Syntax</h2><p data-v-8d3dbd81> Codex allows two different kinds of searching from the search bar. Full Text Search and Field Search. For full text search just enter some terms in the search bar. They will be added to the filters selected with the &quot;filter by&quot; menu. </p><p data-v-8d3dbd81>Searching in Codex is always case insensitive.</p><h2 data-v-8d3dbd81>Full Text Search</h2><p data-v-8d3dbd81> Full text search searches all the metadata of a comic as one document. </p><h3 data-v-8d3dbd81>Boolean Operators</h3><p data-v-8d3dbd81> Codex allows the <code data-v-8d3dbd81>AND</code>, <code data-v-8d3dbd81>OR</code>, and <code data-v-8d3dbd81>NOT</code> operators between search terms. By default terms are concatenated with the <code data-v-8d3dbd81>AND</code> operator. For instance: <code data-v-8d3dbd81> frodo sam galadriel </code> is the same as <code data-v-8d3dbd81>frodo AND sam AND galadriel</code>. <code data-v-8d3dbd81> frodo OR pippin NOT merry</code> searches for comics with metadata that reference Frodo or Pippin but not Merry. Parenthesis may be used to group boolean operators. </p><h3 data-v-8d3dbd81>Prefix Operators</h3><p data-v-8d3dbd81> search tokens suffixed with a <code data-v-8d3dbd81>*</code> will look for text with the given prefix. For example <code data-v-8d3dbd81>tev*</code> should match if the string &quot;Tevildo&quot; occurs anywhere in the comic metadata. </p><h2 data-v-8d3dbd81>Field Search Syntax</h2><p data-v-8d3dbd81> Similar to Codex&#39;s Filter menu, you may query individual comic metadata fields in the database but for more fields and with more powerful operators than the exact match offered by the Filter menu. A field search looks like: <code data-v-8d3dbd81>field:expression</code>. </p><h3 data-v-8d3dbd81>Simple Values as the Expression</h3><p data-v-8d3dbd81> Simple values entered for the expression match exactly for numeric, datetime and boolean fields. However for text fields the field is searched for any match of the entered value. </p><p data-v-8d3dbd81> The Prefix notiation for full text search tokens may also be used here. <code data-v-8d3dbd81>characters:saur*</code> will match comics that feature &quot;Sauron&quot; and &quot;Sauruman&quot;. </p><h3 data-v-8d3dbd81>Field Search Boolean Expressions</h3><p data-v-8d3dbd81> Boolean operators may also used in and around field search if the expression is contained in parenthesis. <code data-v-8d3dbd81>characters:(aragorn or boromir)</code> will work. <code data-v-8d3dbd81>characters:(not aragorn)</code> will behave similarly to <code data-v-8d3dbd81>not characters:aragorn</code></p><h3 data-v-8d3dbd81>Leading Operators</h3><p data-v-8d3dbd81> Field Search has it&#39;s own operators that offer more powerful queries. For text, numeric, boolean and datetime fields may be applied at the beginning of the expression <code data-v-8d3dbd81>&gt;</code>,<code data-v-8d3dbd81>&gt;=</code>,<code data-v-8d3dbd81>&lt;</code>,<code data-v-8d3dbd81>&lt;=</code>. And the range syntax <code data-v-8d3dbd81>..</code> accepts two values. For instance: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>pages:&gt;30</code></td><td data-v-8d3dbd81>comics with more than 30 pages</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>author:!frodo</code></td><td data-v-8d3dbd81>comics not written by Frodo</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>year:1066..1215</code></td><td data-v-8d3dbd81>comics published between the year 1066 and 1215.</td></tr></tbody></table><h3 data-v-8d3dbd81>Text Operators</h3><p data-v-8d3dbd81> Field search on text fields may be narrowed using the <code data-v-8d3dbd81>*</code> operator: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:Ar*</code></td><td data-v-8d3dbd81> characters that start with &quot;Ar&quot;, like &quot;Aragorn&quot; and &quot;Arwen&quot; </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:*orn</code></td><td data-v-8d3dbd81> characters that end with &quot;orn&quot;, like &quot;Aragorn&quot; and &quot;Arathorn&quot;. This type of search can be slow </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>series:sil*ion</code></td><td data-v-8d3dbd81> series such as Silmarillion. This type of search can be slow. </td></tr></tbody></table><p data-v-8d3dbd81> The last two examples of text search above looking for suffixes and doing wildcard searches with the <code data-v-8d3dbd81>*</code> in the middle of the word will perform much worse than bare word or prefix searches because they are unable to use the full text search index and will scan the database in a less efficient manner. </p><h3 data-v-8d3dbd81>Dates and DateTimes</h3><p data-v-8d3dbd81> Codex parses Dates and DateTime values liberally. Many quoted english phrases also work. Such as relative dates like &#39;1 min ago&#39;, &#39;2 weeks ago&#39;, &#39;3 months, 1 week and 1 day ago&#39;, &#39;in 2 days&#39;, &#39;tomorrow&#39;. Dates with timezones and named months such as &#39;August 14, 2015 EST&#39;, &#39;July 4, 2013 PST&#39;, &#39;21 July 2013 10:15 pm +0500&#39;. Examples: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>created_at:&quot;3 days ago&quot;..&quot;today&quot;</code></td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>date:&quot;&lt;3 years ago&quot;</code></td></tr></tbody></table><p data-v-8d3dbd81> Placing a leading operator outside the quotes for a date phrase will not be parsed correctly. If the format you try fails, the <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD</code> and <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD-HH:mm:SS</code> formats are reliable. </p><h3 data-v-8d3dbd81>Single Quote complex field Queries</h3><p data-v-8d3dbd81> Use quotes to tell Codex that a complex or natural language phrase should be applied to a specific field </p><code data-v-8d3dbd81> created:&#39;this year&#39; </code><h3 data-v-8d3dbd81>Size Byte Multipliers</h3><p data-v-8d3dbd81> The size field can make use of convenient byte multiplier suffixes like <code data-v-8d3dbd81>kb</code> and <code data-v-8d3dbd81>mb</code> as well as binary suffixes like <code data-v-8d3dbd81>gib</code> and <code data-v-8d3dbd81>tib</code>. For instance <code data-v-8d3dbd81>size:&gt;10mb</code></p><h2 data-v-8d3dbd81>Limitations</h2><p data-v-8d3dbd81> Field searches that use leading operators or text wildcard operators that are prefixed with the <code data-v-8d3dbd81>OR</code> operator like <code data-v-8d3dbd81>OR year:&gt;2020</code> will disregard the <code data-v-8d3dbd81>OR</code> operator and treat it like <code data-v-8d3dbd81>AND</code>. </p></div>',1))])])}const cr=b(or,[["render",lr],["__scopeId","data-v-8d3dbd81"]]),ur={name:"SearchHelp",components:{SearchHelpText:cr},data(){return{mdiOpenInNew:ue,mdiLifebuoy:Fe}},computed:{...g(p,{isSearchHelpOpenState:e=>e.isSearchHelpOpen}),isSearchHelpOpen:{get(){return this.isSearchHelpOpenState},set(e){this.setSearchHelpOpen(e)}},buttonDensity(){return this.$vuetify.display.smAndDown?"compact":"comfortable"}},methods:{...B(p,["setSearchHelpOpen"])}},mr={id:"searchHelp"};function hr(e,t,a,d,s,r){const o=c("SearchHelpText");return n(),u(bt,{modelValue:r.isSearchHelpOpen,"onUpdate:modelValue":t[0]||(t[0]=l=>r.isSearchHelpOpen=l),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:m(({props:l})=>[i(be,F(l,{icon:s.mdiLifebuoy,title:"Search Help",density:r.buttonDensity}),null,16,["icon","density"])]),default:m(()=>[_("div",mr,[i(o)])]),_:1},8,["modelValue"])}const pr=b(ur,[["render",hr],["__scopeId","data-v-292e00bb"]]),fr={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:rr,SearchHelp:pr},computed:{...g(p,{isSearchOpen:e=>e.isSearchOpen,toolbarHeight:e=>64+12*!!e.page.searchError})}};function br(e,t,a,d,s,r){const o=c("BrowserSearchCombobox"),l=c("SearchHelp");return n(),u(_t,null,{default:m(()=>[e.isSearchOpen?(n(),u(Y,{key:0,density:"compact",height:e.toolbarHeight},{default:m(()=>[i(W,{id:"searchToolbarItems"},{default:m(()=>[i(o),i(l)]),_:1})]),_:1},8,["height"])):y("",!0)]),_:1})}const gr=b(fr,[["render",br],["__scopeId","data-v-64bebade"]]),_r={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:me,mdiCloseCircleOutline:he,query:""}},computed:{...g(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]}}),...pe(p,["filterMode"]),hasNone(){for(const e of this.choices)if(ie.has(e)||e instanceof Object&&ie.has(e.pk))return!0;return!1},vuetifyItems(){return wt(this.choices,this.query)},title(){return Ne(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?$e:De},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...B(p,["clearOneFilter","identifierTypeTitle","loadAvailableFilterChoices","loadFilterChoices"]),setUIFilterMode(e){this.filterMode=e,this.query="",e!=="base"&&typeof this.choices!="object"&&this.loadFilterChoices(e)},selected(e){const t={filters:{[this.name]:e}};this.$emit("selected",t)},itemTitle:function(e){return this.name==="readingDirection"?this.readingDirectionTitles[e.value]:this.name==="identifierType"?this.identifierTypeTitle(e.title):e.title},async _loadSubAvailableFilterChoices(){return this.loadAvailableFilterChoices().then(()=>this.loadFilterChoices(this.name))},onClear(){return this.clearOneFilter(this.name).then(()=>this._loadSubAvailableFilterChoices())}}},vr={key:0},yr={class:"filterHeader"};function Sr(e,t,a,d,s,r){return n(),v("div",null,[i(vt,{"hide-on-leave":""},{default:m(()=>[e.filterMode==="base"?(n(),u(T,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=o=>r.setUIFilterMode(a.name))},null,8,["title","append-icon"])):y("",!0)]),_:1}),i(St,{"hide-on-leave":""},{default:m(()=>[e.filterMode===a.name?(n(),v("div",vr,[_("header",yr,[i(T,{class:"filterHeaderTitle","prepend-icon":s.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=o=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(n(),u(T,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0),typeof e.choices=="object"?(n(),u(yt,{key:1,modelValue:s.query,"onUpdate:modelValue":t[2]||(t[2]=o=>s.query=o),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=o=>e.filterMode=a.name)},null,8,["modelValue"])):(n(),u(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(n(),u(ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:m(()=>[r.hasNone?(n(),u(T,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):y("",!0),(n(!0),v(N,null,O(r.vuetifyItems,o=>(n(),u(T,{key:o.value,title:r.itemTitle(o),value:o.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):y("",!0)])):y("",!0)]),_:1})])}const wr=b(_r,[["render",Sr],["__scopeId","data-v-f1f62462"]]),Br={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:wr,ToolbarSelect:D},extends:D,data(){return{mdiCloseCircleOutline:he,mdiFilterMultipleOutline:Oe,menu:!1}},computed:{...k(p,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),...g(p,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,filterMenuClass:function(e){let t="filterMenu";return e.filterMode!=="base"&&(t+="Hidden"),t},dynamicChoiceNames:function(e){if(e.choices.dynamic===void 0)return;const t=[];for(const[a,d]of Object.entries(e.choices.dynamic))d&&t.push(a);return t}}),...pe(p,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},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(){return this.clearFilters().then(()=>this.loadAvailableFilterChoices()).catch(()=>{console.error("clear filters")})},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},Cr={class:"codexSelection"};function kr(e,t,a,d,s,r){const o=c("BrowserFilterSubMenu"),l=c("ToolbarSelect");return n(),u(l,{menu:s.menu,"onUpdate:menu":[t[0]||(t[0]=h=>s.menu=h),r.onMenu],class:A(["filterBySelect",{filterBySelectXSmall:r.padRight}]),"select-label":"filter by",items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen-1,"onUpdate:modelValue":r.onUpdateModelValue},{selection:m(({item:h})=>[_("span",Cr,S(h.title),1),e.isDynamicFiltersSelected?(n(),u(V,{key:0,class:"filterSuffix",size:"x-small"},{default:m(()=>[C(S(s.mdiFilterMultipleOutline),1)]),_:1})):y("",!0)]),"prepend-item":m(()=>[e.isFiltersClearable?(n(),u(T,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0)]),"append-item":m(()=>[i(H),e.dynamicChoiceNames===void 0?(n(),u(T,{key:0,density:"compact",variant:"plain"},{default:m(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(n(!0),v(N,{key:1},O(e.dynamicChoiceNames,h=>(n(),u(o,{key:h,name:h,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(n(),u(T,{key:2,class:"noChoices",density:"compact",variant:"plain",title:"No filters available"}))]),_:1},8,["menu","class","items","menu-props","model-value","max-select-len","onUpdate:modelValue","onUpdate:menu"])}const Tr=b(Br,[["render",kr],["__scopeId","data-v-0d876944"]]),xr=new Set(["created_at","bookmark_updated_at","updated_at","page_count","size","critical_rating","community_rating","search_score"]),Mr={name:"BrowseOrderBySelect",components:{ToolbarSelect:D},extends:D,computed:{...k(p,["orderByChoices","orderByChoicesMaxLen"]),...g(p,{orderBySetting:e=>e.settings.orderBy}),orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:xr.has(e)};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Vr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,F({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=l=>r.orderBy=l),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-4},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Fr=b(Mr,[["render",Vr]]),Nr={name:"ToolbarButton",components:{ScaleButton:Dt}};function $r(e,t,a,d,s,r){const o=c("ScaleButton");return n(),u(o,{variant:"plain",class:"toolbarButton"},ce({_:2},[O(e.$slots,(l,h)=>({name:h,fn:m(f=>[Ie(e.$slots,h,F({props:l},f))])}))]),1024)}const ve=b(Nr,[["render",$r]]),Dr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiSortVariant:Pe}},computed:{...g(p,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...B(p,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Or(e,t,a,d,s,r){const o=c("ToolbarButton");return n(),u(o,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:m(()=>[i(V,{class:A(r.iconClasses)},{default:m(()=>[C(S(s.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const Ir=b(Dr,[["render",Or],["__scopeId","data-v-42884e89"]]),Pr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiMagnify:j}},computed:{...g(p,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...B(p,["setIsSearchOpen"])}};function Rr(e,t,a,d,s,r){const o=c("ToolbarButton");return e.isSearchOpen?y("",!0):(n(),u(o,F({key:0,class:"searchButton",icon:s.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=l=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const Hr=b(Pr,[["render",Rr]]),Ar=new Set(["a","f"]),qr={name:"BrowserTopGroupSelect",components:{ToolbarSelect:D},extends:D,data(){return{DIVIDED_VALUES:Ar}},computed:{...g(p,{topGroupSetting:e=>e.settings.topGroup}),...k(p,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Er(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=l=>r.topGroup=l),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:m(({item:l,props:h})=>[s.DIVIDED_VALUES.has(l.value)?(n(),u(H,{key:0})):y("",!0),i(T,F(h,{density:"compact",variant:"plain",title:l.title,value:l.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const Lr=b(qr,[["render",Er]]),Ur={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Tr,BrowserSearchButton:Hr,BrowserTopGroupSelect:Lr,BrowserOrderBySelect:Fr,BrowserOrderReverseButton:Ir,SettingsDrawerButton:Ot},data(){return{mdiMagnify:j,mdiFamilyTree:Re,browseMode:"filter"}}};function Gr(e,t,a,d,s,r){const o=c("BrowserTopGroupSelect"),l=c("BrowserFilterBySelect"),h=c("BrowserOrderBySelect"),f=c("BrowserOrderReverseButton"),w=c("BrowserSearchButton"),M=c("SettingsDrawerButton");return n(),u(Y,{id:"browserToolbarTop",density:"compact",height:48},{default:m(()=>[i(W,{id:"browserToolbarLeftItems"},{default:m(()=>[i(o),i(l),i(h),i(f),i(w)]),_:1}),i(Bt),i(W,null,{default:m(()=>[i(M)]),_:1})]),_:1})}const zr=b(Ur,[["render",Gr],["__scopeId","data-v-dcef4685"]]),jr={name:"BrowserHeader",components:{AppBanner:We,BrowserBreadcrumbsToolbar:Qt,BrowserSearchToolbar:gr,BrowserTopToolbar:zr,BrowserTitleToolbar:Jt}},Yr={id:"codexHeadToolbarWrapper"};function Kr(e,t,a,d,s,r){const o=c("AppBanner"),l=c("BrowserTopToolbar"),h=c("BrowserSearchToolbar"),f=c("BrowserBreadcrumbsToolbar"),w=c("BrowserTitleToolbar");return n(),v("header",Yr,[i(o),i(l,{class:"codexHeadToolbar"}),i(h,{class:"codexHeadToolbar"}),i(f,{class:"codexHeadToolbar"}),i(w,{class:"codexHeadToolbar"})])}const Qr=b(jr,[["render",Kr],["__scopeId","data-v-176aeb57"]]),Wr="rpisv",Xr={name:"BrowserSettingsPanel",data(){return{mdiReload:le,openDelay:2e3}},computed:{...k(x,["isAuthorized"]),...g(x,{isUserAuthorized:e=>!!e.user}),...g(p,{groupChoices:e=>{var t,a;return((a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.settingsGroup)||{}},showSettings:e=>{var t;return((t=e.settings)==null?void 0:t.show)||{}},twentyFourHourTime:e=>{var t;return((t=e.settings)==null?void 0:t.twentyFourHourTime)||!1},twentyFourHourTimeTitle:e=>{var t,a,d;return((d=(a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.twentyFourHourTime)==null?void 0:d.title)||""},dynamicCovers:e=>{var t;return((t=e.settings)==null?void 0:t.dynamicCovers)||!1},customCovers:e=>{var t;return((t=e.settings)==null?void 0:t.customCovers)||!1}}),showShowSettings(){var e,t;return Wr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...B(p,["setSettings"]),setShow(e,t){const a={show:{[e]:t===!0}};this.setSettings(a)},set24HourTime(e){const t={twentyFourHourTime:e===!0};this.setSettings(t)},setDynamicCovers(e){const t={dynamicCovers:e===!0};this.setSettings(t)},setCustomCovers(e){const t={customCovers:e===!0};this.setSettings(t)}}},Jr={key:0,class:"browserSettingsBlock"},Zr={class:"browserSettingsBlock"};function ea(e,t,a,d,s,r){return n(),v(N,null,[r.showShowSettings?R((n(),v("div",Jr,[t[3]||(t[3]=_("h4",{class:"browserSettingsHeader"},"Show Group Levels",-1)),(n(!0),v(N,null,O(e.groupChoices,o=>(n(),u(q,{key:o.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[o.value],"true-value":!0,label:`Show ${o.title}`,"onUpdate:modelValue":l=>r.setShow(o.value,l)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[E,{openDelay:s.openDelay,text:"Show these groups when navigating the browse tree"}]]):y("",!0),i(H),_("div",Zr,[t[4]||(t[4]=_("h4",{class:"browserSettingsHeader"},"Covers",-1)),R(i(q,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=o=>r.setDynamicCovers(o))},null,8,["model-value"]),[[E,{openDelay:s.openDelay,text:"Choose covers by filters, search, and order"}]]),R(i(q,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=o=>r.setCustomCovers(o))},null,8,["model-value"]),[[E,{openDelay:s.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(H),i(q,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[2]||(t[2]=o=>r.set24HourTime(o))},null,8,["model-value"]),i(H)],64)}const ta=b(Xr,[["render",ea],["__scopeId","data-v-4330ddbf"]]),ra={name:"BrowserSettingsDrawer",components:{SettingsDrawer:It,BrowserSettingsPanel:ta}};function aa(e,t,a,d,s,r){const o=c("BrowserSettingsPanel"),l=c("SettingsDrawer");return n(),u(l,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:m(()=>[i(o)]),_:1})}const oa=b(ra,[["render",aa]]),sa={name:"BrowserMarkReadItem",components:{ConfirmDialog:Pt,CodexListItem:gt},props:{item:{type:Object,required:!0}},computed:{...g(p,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},icon(){return this.item.finished?He:Ae},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(" ")},itemName(){return this.item.name?this.item.name:"(Empty)"}},methods:{...B(p,["setBookmarkFinished"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}};function ia(e,t,a,d,s,r){const o=c("CodexListItem"),l=c("ConfirmDialog");return a.item.group==="c"?(n(),u(o,{key:0,"prepend-icon":r.icon,title:r.markReadText,onClick:r.toggleRead},null,8,["prepend-icon","title","onClick"])):(n(),u(l,{key:1,button:!1,"prepend-icon":r.icon,"button-text":r.markReadText,"title-text":r.markReadText,"confirm-text":r.confirmText,text:r.itemName,onConfirm:r.toggleRead,onCancel:t[0]||(t[0]=h=>e.showMenu=!1)},null,8,["prepend-icon","button-text","title-text","confirm-text","text","onConfirm"]))}const na=b(sa,[["render",ia],["__scopeId","data-v-118f177a"]]),da={name:"BrowserContainerMenu",components:{DownloadButton:Ct,MarkReadItem:na},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:qe,showMenu:!1}},computed:{children(){var e;return((e=this.item)==null?void 0:e.childCount)||1},groupNames(){var e,t,a,d,s;return[(e=this.item)==null?void 0:e.publisherName,(t=this.item)==null?void 0:t.imprintName,(a=this.item)==null?void 0:a.seriesName,(d=this.item)==null?void 0:d.volumeName,(s=this.item)==null?void 0:s.name]},downloadNames(){var e,t;return(e=this.item)!=null&&e.fileName?[(t=this.item)==null?void 0:t.fileName]:this.groupNames}}};function la(e,t,a,d,s,r){const o=c("MarkReadItem"),l=c("DownloadButton");return n(),u($t,{modelValue:s.showMenu,"onUpdate:modelValue":t[1]||(t[1]=h=>s.showMenu=h),"offset-y":"",top:""},{activator:m(({props:h})=>[i(be,F({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:s.mdiDotsVertical,title:"Action Menu",variant:"text"},h,{onClick:t[0]||(t[0]=Ee(()=>{},["prevent"]))}),null,16,["icon"])]),default:m(()=>[i(ge,{class:"background-soft-highlight"},{default:m(()=>{var h,f,w;return[i(o,{class:"listItem",item:a.item},null,8,["item"]),i(l,{group:(h=a.item)==null?void 0:h.group,pks:(f=a.item)==null?void 0:f.ids,children:r.children,names:r.downloadNames,ts:(w=a.item)==null?void 0:w.mtime,class:"listItem",button:!1},null,8,["group","pks","children","names","ts"])]}),_:1})]),_:1},8,["modelValue"])}const ca=b(da,[["render",la],["__scopeId","data-v-d9545be6"]]),ua={name:"BrowserCardControls",components:{BrowserCardMenu:ca,MetadataButton:kt},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:ae}},computed:{eyeIcon:function(){return this.eyeOpen?re:ae}}},ma={class:"cardControls"};function ha(e,t,a,d,s,r){const o=c("MetadataButton"),l=c("BrowserCardMenu");return n(),v("div",ma,[a.item.group==="c"?(n(),u(V,{key:0,class:"eye"},{default:m(()=>[C(S(r.eyeIcon),1)]),_:1})):y("",!0),i(o,{group:a.item.group,book:a.item,children:a.item.childCount},null,8,["group","book","children"]),i(l,{item:a.item},null,8,["item"])])}const pa=b(ua,[["render",ha],["__scopeId","data-v-6f2c700a"]]),fa=new Set(["community_rating","critical_rating"]),ba=new Set(["date"]),ga=new Set(["bookmark_updated_at","created_at","updated_at"]),_a=new Set([null,void 0,"sort_name"]),va=new Set([null,void 0]),ya={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...g(p,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(_a.has(this.orderBy)||this.orderBy==="filename"&&this.item.group!=="c"||this.orderBy==="story_arc_number"&&this.item.group==="a"||va.has(e))e="";else if(ba.has(this.orderBy)){const t=new Date(e);e=Le.format(t)}else this.orderBy=="search_score"?e=this.format_search_score(e):ga.has(this.orderBy)?e=Ue(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=Tt(Number.parseInt(e,10)):fa.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}},methods:{format_search_score(e){return e=oe.format(Math.round(Number.parseFloat(e)*10)),isNaN(e)&&(e=""),e}}},Sa=["innerHTML"];function wa(e,t,a,d,s,r){return r.orderValue?(n(),v("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,Sa)):y("",!0)}const Ba=b(ya,[["render",wa],["__scopeId","data-v-1e70ee12"]]),Ca={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...g(p,{orderByFilename:e=>e.settings.orderBy==="filename",orderByName:e=>e.settings.orderBy==="sort_name",topGroup:e=>e.settings.topGroup,showSeries:e=>e.settings.show.s,showVolume:e=>e.settings.show.v,zeroPad:e=>e.page.zeroPad}),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?Q(this.item.volumeName):!1},headerName(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?Ge(this.item,this.zeroPad):ze(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName(){return this.item.group==="v"?Q(this.item.name):this.item.name},fileName(){return this.topGroup==="f"&&!this.orderByFilename?this.item.fileName:""},linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ka={class:"browserLink cardSubtitle text-caption"},Ta={key:0,class:"fileName"},xa={key:1,class:"seriesCaption"},Ma={key:2,class:"volumeCaption"},Va={key:3,class:"headerName"},Fa={class:"displayName"};function Na(e,t,a,d,s,r){return n(),v("div",ka,[r.fileName?(n(),v("div",Ta,S(r.fileName),1)):y("",!0),r.seriesName?(n(),v("div",xa,S(r.seriesName),1)):y("",!0),r.volumeName?(n(),v("div",Ma,S(r.volumeName),1)):y("",!0),r.headerName?(n(),v("div",Va,S(r.headerName),1)):y("",!0),_("div",Fa,S(r.displayName),1)])}const $a=b(Ca,[["render",Na],["__scopeId","data-v-57ab6608"]]),Da=L({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...U(),...lt(),...X(),...ct({transition:"fade-transition"})},"VLazy"),Oa=G()({name:"VLazy",directives:{intersect:ut},props:Da(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const{dimensionStyles:d}=mt(e),s=je(e,"modelValue");function r(o){s.value||(s.value=o)}return z(()=>R(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[s.value&&i(ht,{transition:e.transition,appear:!0},{default:()=>{var o;return[(o=a.default)==null?void 0:o.call(a)]}})]}),[[Ye("intersect"),{handler:r,options:e.options},null]])),{}}}),ne=100,Ia=-170,Pa={name:"BrowserCard",components:{BookCover:xt,BrowserCardControls:pa,BrowserCardSubtitle:$a,OrderByCaption:Ba},props:{item:{type:Object,required:!0}},computed:{...g(p,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.name,e},ids(){return this.item.ids.join(",")},browserRoute(){return{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}},toRoute(){return this.item.group==="c"?Mt(this.item,this.importMetadata):this.browserRoute},progressBGOpacity(){return this.item.progress?.1:0}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.ids))return;const e=this.$el;if(!e){console.warn("No element found to scroll to!");return}setTimeout(function(){e.scrollIntoView(),setTimeout(function(){window.scrollBy(0,Ia)},ne)},ne)}}},Ra={class:"browserCardCoverWrapper"},Ha={class:"browserCardTop"},Aa={class:"cardFooter"};function qa(e,t,a,d,s,r){const o=c("BookCover"),l=c("BrowserCardControls"),h=c("router-link"),f=c("BrowserCardSubtitle"),w=c("OrderByCaption");return n(),u(Oa,{id:`card-${r.ids}`,transition:"scale-transition"},{default:m(()=>[_("div",Ra,[_("div",Ha,[i(o,{group:a.item.group,pks:a.item.ids,mtime:a.item.mtime,"child-count":a.item.childCount,finished:a.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(h,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:m(()=>[i(l,{item:a.item,"eye-open":!!r.toRoute},null,8,["item","eye-open"])]),_:1},8,["to","aria-label"])]),i(J,{class:"bookCoverProgress","bg-opacity":r.progressBGOpacity,"model-value":a.item.progress,"aria-label":`${a.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),_("footer",Aa,[i(f,{item:a.item},null,8,["item"]),i(w,{item:a.item},null,8,["item"])])])]),_:1},8,["id"])}const Ea=b(Pa,[["render",qa],["__scopeId","data-v-b11a367d"]]),La={name:"BrowserEmptyResults",components:{EmptyState:Xe},data(){return{mdiOpenInNew:ue}},computed:{...k(x,["isAuthorized","isUserAdmin"]),...g(x,{registration:e=>e.adminFlags.registration}),...k(p,["isFiltersClearable"]),...g(p,{librariesExist:e=>e.page.librariesExist}),empty(){let e={};return this.librariesExist?(e.headline="No Comics Found",e.title="For these filter and search settings",e.icon=Ke):(e.headline="No Libraries Exist",this.isUserAdmin?e.title="Use the top right ☰ menu to navigate to the admin panel and add a comic library":this.isAuthorized?e.title="An administrator must add some comics libraries":e.title="Use the top right ☰ menu to log in as an administrator to add libraries",e.icon=Qe),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...B(p,["clearFilters"])}},Ua={key:0},Ga={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function za(e,t,a,d,s,r){const o=c("EmptyState");return n(),u(o,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=l=>e.clearFilters(!0))},{default:m(()=>[r.showLinkToReadmeAdmin?(n(),v("div",Ua,[t[2]||(t[2]=C(" See the ")),_("a",Ga,[t[1]||(t[1]=C("README ")),i(V,null,{default:m(()=>[C(S(s.mdiOpenInNew),1)]),_:1})]),t[3]||(t[3]=C(" for help "))])):y("",!0)]),_:1},8,["headline","title","icon","action-text"])}const ja=b(La,[["render",za]]),Ya={name:"BrowserMain",components:{BrowserCard:Ea,BrowserEmptyState:ja,PlaceholderLoading:Je},computed:{...g(x,{nonUsers:e=>e.adminFlags.nonUsers}),...k(x,["isAuthorized","isBanner"]),...k(p,["isSearchMode"]),...g(p,{librariesExist:e=>e.page.librariesExist,showPlaceHolder(e){return this.nonUsers===void 0||this.isAuthorized&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],numPages:e=>e.page.numPages,query:e=>e.settings.q,isSearchOpen:e=>e.isSearchOpen}),browsePaneClasses(){const e={padFooter:this.numPages>1};let t="browsePane";return this.isSearchOpen&&(t+="Search"),this.isBanner&&(t+="Banner"),e[t]=!0,e},showBrowseItems(){return this.cards&&this.cards.length>0&&this.isAuthorized&&!this.showPlaceHolder},searchLimitMessage(){let e="";if(!this.query)return e;const t=+this.$route.params.page,a=100*t;return this.showPlaceHolder?e+=`Searching for ${a} entries...`:this.numPages>t&&(e+=`Search results truncated to ${a} entries.`,e+=" Advance the page to look for more."),e}}},Ka={key:0,id:"browsePaneContainer"},Qa={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function Wa(e,t,a,d,s,r){const o=c("BrowserCard"),l=c("PlaceholderLoading"),h=c("BrowserEmptyState");return n(),u(fe,{id:"browsePane",class:A(r.browsePaneClasses)},{default:m(()=>[r.showBrowseItems?(n(),v("div",Ka,[(n(!0),v(N,null,O(e.cards,f=>(n(),u(o,{key:`${f.group}${f.ids}`,item:f},null,8,["item"]))),128))])):e.showPlaceHolder?(n(),u(l,{key:1,class:"placeholder"})):(n(),u(h,{key:2})),r.searchLimitMessage?(n(),v("div",Qa,S(r.searchLimitMessage),1)):y("",!0)]),_:1},8,["class"])}const Xa=b(Ya,[["render",Wa],["__scopeId","data-v-327dfc0a"]]),Ja={name:"BrowserNavButton",components:{PaginationNavButton:Vt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:me,mdiMagnify:j,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...k(p,["isSearchMode"]),...g(p,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return this.page+this.increment},title(){return this.showMore?"Search for More":"Page "+this.toPage},toRoute(){const e=this.toPage;return{params:{...this.routeParams,page:e}}},classes(){return{leftButton:this.back,rightButton:!this.back}},disabled(){return this.back&&this.page<=1||!this.back&&this.page>=this.numPages},showMore(){return this.more&&this.isSearchMode&&this.toPage===this.numPages}},watch:{$route(e){this.params=e.params,this.page=+e.params.page}}};function Za(e,t,a,d,s,r){const o=c("PaginationNavButton");return n(),u(o,{key:r.toRoute,class:A(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:m(()=>[r.showMore?(n(),u(V,{key:0},{default:m(()=>[C(S(s.mdiMagnify),1)]),_:1})):y("",!0),i(V,{class:A({flipHoriz:!a.back})},{default:m(()=>[C(S(s.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const eo=b(Ja,[["render",Za],["__scopeId","data-v-372671b3"]]),to={name:"BrowserNavToolbar",components:{BrowserNavButton:eo,PaginationSlider:Ft,PaginationToolbar:Nt},computed:{...g(p,{numPages:e=>e.page.numPages})},methods:{...B(p,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function ro(e,t,a,d,s,r){const o=c("BrowserNavButton"),l=c("PaginationSlider"),h=c("PaginationToolbar");return e.numPages>1?(n(),u(h,{key:0},{default:m(()=>[i(o,{back:!0}),i(l,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=f=>e.routeToPage(f))},null,8,["model-value","max"]),i(o,{back:!1,more:!0})]),_:1})):y("",!0)}const ao=b(to,[["render",ro]]),oo={name:"MainBrowser",components:{BrowserHeader:Qr,BrowserMain:Xa,BrowserNavToolbar:ao,BrowserSettingsDrawer:oa,Unauthorized:Ze},computed:{...g(x,{user:e=>e.user}),...k(x,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...B(p,["loadBrowserPage","loadSettings","setPageMtime"])}};function so(e,t,a,d,s,r){const o=c("BrowserHeader"),l=c("BrowserMain"),h=c("BrowserNavToolbar"),f=c("BrowserSettingsDrawer"),w=c("Unauthorized");return e.isAuthorized?(n(),u(fe,{key:0,id:"browser"},{default:m(()=>[i(o),i(l),i(h),i(f)]),_:1})):(n(),u(w,{key:1}))}const xo=b(oo,[["render",so],["__scopeId","data-v-4577512d"]]);export{xo as default};
1
+ import{p as L,J as U,g as G,u as z,a as i,c as K,m as F,K as Se,t as $,d as we,F as N,E as g,B as Be,L as p,M as Ce,N as de,O as ke,P as Te,Q as xe,R as Me,_ as b,l as n,v as u,w as m,S as R,s as C,z as S,n as v,k as c,T as le,C as k,D as x,U as Q,V as ce,W as j,A as B,X as te,q as _,y as O,Y as Ve,Z as ue,$ as Fe,H as y,a0 as me,a1 as he,h as pe,j as Ne,a2 as $e,a3 as De,a4 as Oe,x as A,a5 as Ie,a6 as Pe,a7 as Re,a8 as He,a9 as Ae,aa as qe,ab as Ee,ac as re,ad as ae,ae as Le,af as Ue,ag as oe,ah as Ge,ai as ze,b as je,aj as Ye,ak as Ke,al as Qe}from"./main-DTplblFl.js";import{a as Y,V as se,A as We,E as Xe,P as Je,c as fe,U as Ze}from"./unauthorized-Cblht_KD.js";import{g as et,c as X,h as tt,u as rt,b as at,i as ot,e as st,d as it,j as nt,k as V,l as dt,V as be,n as J,o as lt,p as ct,I as ut,q as mt,M as ht}from"./forwardRefs-hLICxMEm.js";import{T as E}from"./index-DtVx0ej4.js";import{V as pt}from"./VCombobox-BUzWpAvZ.js";import{V as ft}from"./VTable-Bpr_wGHh.js";import{V as bt,a as T,C as gt}from"./VDialog-CvyPs47z.js";import{V as _t,a as vt,b as yt,c as St}from"./VSelectionControl-BJm6ORIw.js";import{V as W,N as ie,t as wt,T as D,a as Bt,D as Ct,M as kt,p as Tt,B as xt,g as Mt,P as Vt,b as Ft,c as Nt}from"./pagination-toolbar-DHVJWGeE.js";import{V as ge,a as $t}from"./VSelect-DtYhH7Mk.js";import{a as H}from"./VDivider-DxA4gr8D.js";import{b as Dt,S as Ot,a as It}from"./settings-drawer-DWa5PBWW.js";import{V as q}from"./VCheckbox-BV02IXFk.js";import{C as Pt}from"./confirm-dialog-CUfR1UVh.js";import"./change-password-dialog-DB0tGBYA.js";import"./VForm-B4doHkrL.js";import"./admin-BYCwfr2h.js";import"./filter-DUzmOcWQ.js";import"./VCheckboxBtn-DRCMElDO.js";import"./copy-to-clipboard-DoUvDJVx.js";const Rt=L({divider:[Number,String],...U()},"VBreadcrumbsDivider"),Ht=G()({name:"VBreadcrumbsDivider",props:Rt(),setup(e,t){let{slots:a}=t;return z(()=>{var d;return i("li",{class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=a==null?void 0:a.default)==null?void 0:d.call(a))??e.divider])}),{}}}),At=L({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...U(),...et(),...X({tag:"li"})},"VBreadcrumbsItem"),_e=G()({name:"VBreadcrumbsItem",props:At(),setup(e,t){let{slots:a,attrs:d}=t;const s=tt(e,d),r=K(()=>{var f;return e.active||((f=s.isActive)==null?void 0:f.value)}),o=K(()=>r.value?e.activeColor:e.color),{textColorClasses:l,textColorStyles:h}=rt(o);return z(()=>i(e.tag,{class:["v-breadcrumbs-item",{"v-breadcrumbs-item--active":r.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:r.value&&e.activeClass},l.value,e.class],style:[h.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var f,w;return[s.isLink.value?i("a",F({class:"v-breadcrumbs-item--link",onClick:s.navigate},s.linkProps),[((w=a.default)==null?void 0:w.call(a))??e.title]):((f=a.default)==null?void 0:f.call(a))??e.title]}})),{}}}),qt=L({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Se,items:{type:Array,default:()=>[]},...U(),...at(),...ot(),...X({tag:"ul"})},"VBreadcrumbs"),Et=G()({name:"VBreadcrumbs",props:qt(),setup(e,t){let{slots:a}=t;const{backgroundColorClasses:d,backgroundColorStyles:s}=st($(e,"bgColor")),{densityClasses:r}=it(e),{roundedClasses:o}=nt(e);we({VBreadcrumbsDivider:{divider:$(e,"divider")},VBreadcrumbsItem:{activeClass:$(e,"activeClass"),activeColor:$(e,"activeColor"),color:$(e,"color"),disabled:$(e,"disabled")}});const l=K(()=>e.items.map(h=>typeof h=="string"?{item:{title:h},raw:h}:{item:h,raw:h}));return z(()=>{const h=!!(a.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,o.value,e.class],style:[s.value,e.style]},{default:()=>{var f;return[h&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[a.prepend?i(dt,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},a.prepend):i(V,{key:"prepend-icon",start:!0,icon:e.icon},null)]),l.value.map((w,M,Z)=>{var ee;let{item:I,raw:ye}=w;return i(N,null,[((ee=a.item)==null?void 0:ee.call(a,{item:I,index:M}))??i(_e,F({key:M,disabled:M>=Z.length-1},typeof I=="string"?{title:I}:I),{default:a.title?()=>{var P;return(P=a.title)==null?void 0:P.call(a,{item:I,index:M})}:void 0}),M<Z.length-1&&i(Ht,null,{default:a.divider?()=>{var P;return(P=a.divider)==null?void 0:P.call(a,{item:ye,index:M})}:void 0})])}),(f=a.default)==null?void 0:f.call(a)]}})}),{}}}),Lt={f:ke,r:de,p:Te,i:xe,s:Me},Ut={name:"BrowserBreadcrumbs",computed:{...g(Be,["timestamp"]),...g(p,{breadcrumbs(e){const t=[],a=e.settings.breadcrumbs.slice(0,e.settings.breadcrumbs.length-1);if(!a)return t;let d="";for(const s of a){const r=this.getTo(s,d),o=s.name?s.name:"",l=s.group,h=this.getIcon(s.pks,o,l);let f;s.group==="r"?f="Top":(f=e.choices.static.groupNames[l],s.pks==0?f="All "+f:f!="Series"&&(f=f.slice(0,-1))),f={text:f,openDelay:1500};const w={to:r,text:o,icon:h,tooltip:f};t.push(w),d=s.pks}return t}})},methods:{getTo(e,t){const a=Ce(e);delete a.name;const d={name:"browser",params:a};return d.query={ts:this.timestamp},t&&(d.hash=`#card-${t}`),d},getIcon(e,t,a){let d;return"rfa".indexOf(a)!=-1&&e==="0"?d=de:t?d="":d=Lt[a],d}}},Gt={key:1};function zt(e,t,a,d,s,r){return n(),u(Et,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:m(({item:o})=>[R((n(),u(_e,{to:o.to},{default:m(()=>[o.icon?(n(),u(V,{key:0},{default:m(()=>[C(S(o.icon),1)]),_:2},1024)):(n(),v("span",Gt,S(o.text),1))]),_:2},1032,["to"])),[[E,o.tooltip]])]),_:1},8,["items"])}const jt=b(Ut,[["render",zt],["__scopeId","data-v-9cf43736"]]),Yt={name:"BrowserHeader",components:{Breadcrumbs:jt}};function Kt(e,t,a,d,s,r){const o=c("Breadcrumbs");return n(),u(Y,{id:"breadcrumbsToolbar",height:24,class:"titleToolbar",elevation:"8"},{default:m(()=>[i(o)]),_:1})}const Qt=b(Yt,[["render",Kt],["__scopeId","data-v-fd83bc5e"]]),Wt={name:"BrowserHeader",data(){return{mdiReload:le}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...g(p,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...k(x,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:a,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?Q(a):a;if(r&&t.push(r),d){const o=`of ${d}`;t.push(o)}e=t.join(" ")}else e="(Empty)";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function Xt(e,t,a,d,s,r){return n(),u(Y,{id:"browserToolbarTitle",height:24,"extension-height":24,elevation:"8"},ce({default:m(()=>[i(se,{id:"browserTitle",class:"browserTitle"},{default:m(()=>[C(S(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:m(()=>[i(se,{id:"browserSubtitle",class:"browserTitle"},{default:m(()=>[C(S(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Jt=b(Wt,[["render",Xt],["__scopeId","data-v-07c60f90"]]),Zt=10,er={name:"BrowserSearchCombobox",data(){return{mdiMagnify:j,menu:!1,query:"",items:[""]}},computed:{...g(p,{stateQ:e=>e.settings.q,searchError:e=>e.page.searchError})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...B(p,["setSettings","startSearchHideTimeout","clearSearchHideTimeout"]),addToMenu(e){if(!e||this.items.includes(e))return;const t=this.items[0]===""?[]:this.items;t.unshift(e),this.items=t.slice(0,Zt)},doSearch(e=!1){this.menu=!1;const a={q:this.query?this.query.trim():""};e&&(a.orderBy="sort_name",a.orderReverse=!1,this.doBlur()),this.setSettings(a)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function tr(e,t,a,d,s,r){return n(),u(pt,{id:"searchbox",ref:"searchbox",modelValue:s.query,"onUpdate:modelValue":t[0]||(t[0]=o=>s.query=o),menu:s.menu,"onUpdate:menu":t[1]||(t[1]=o=>s.menu=o),items:s.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","error-messages":e.searchError,"full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":s.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=o=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[te(r.doSearch,["enter"]),te(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","error-messages","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const rr=b(er,[["render",tr]]),ar=[["characters","String","category"],["community_rating","Decimal","communityrating"],["contributor","String","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","filetype, type"],["genres","String","genre"],["identifiers","String","id, nss"],["identifier_types","String","id_type, idtype, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","String","location"],["maturity_rating","String"],["monochrome","Boolean","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","filename, folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","String","seriesgroups"],["size","Integer"],["stories","String","story"],["story_arcs","String","storyarcs"],["summary","String","comments, description"],["tags","String","tag"],["tagger","String"],["teams","String","team"],["updated_at","DateTime","updated"],["volume","String"],["web","String"],["year","Integer"]],or={name:"SearchHelpText",data(){return{FIELD_ROWS:ar}}},sr={id:"browserSearchTextContainer"},ir={id:"browserSearchText"},nr={id:"fieldTableContainer"},dr={class:"aliasCol"};function lr(e,t,a,d,s,r){return n(),v("div",sr,[_("div",ir,[t[2]||(t[2]=_("h1",null,"Search Help",-1)),_("div",nr,[t[1]||(t[1]=_("h2",null,"Search Fields",-1)),i(ft,{id:"fieldTable",class:"highlight-table"},{default:m(()=>[t[0]||(t[0]=_("thead",null,[_("tr",null,[_("th",null,"Field"),_("th",null,"Type"),_("th",null,"Aliases")])],-1)),_("tbody",null,[(n(!0),v(N,null,O(s.FIELD_ROWS,o=>(n(),v("tr",{key:o[0]},[_("td",null,S(o[0]),1),_("td",null,S(o[1]),1),_("td",dr,S(o[2]||""),1)]))),128))])]),_:1})]),t[3]||(t[3]=Ve('<div id="textContainer" data-v-8d3dbd81><h2 data-v-8d3dbd81>Search Syntax</h2><p data-v-8d3dbd81> Codex allows two different kinds of searching from the search bar. Full Text Search and Field Search. For full text search just enter some terms in the search bar. They will be added to the filters selected with the &quot;filter by&quot; menu. </p><p data-v-8d3dbd81>Searching in Codex is always case insensitive.</p><h2 data-v-8d3dbd81>Full Text Search</h2><p data-v-8d3dbd81> Full text search searches all the metadata of a comic as one document. </p><h3 data-v-8d3dbd81>Boolean Operators</h3><p data-v-8d3dbd81> Codex allows the <code data-v-8d3dbd81>AND</code>, <code data-v-8d3dbd81>OR</code>, and <code data-v-8d3dbd81>NOT</code> operators between search terms. By default terms are concatenated with the <code data-v-8d3dbd81>AND</code> operator. For instance: <code data-v-8d3dbd81> frodo sam galadriel </code> is the same as <code data-v-8d3dbd81>frodo AND sam AND galadriel</code>. <code data-v-8d3dbd81> frodo OR pippin NOT merry</code> searches for comics with metadata that reference Frodo or Pippin but not Merry. Parenthesis may be used to group boolean operators. </p><h3 data-v-8d3dbd81>Prefix Operators</h3><p data-v-8d3dbd81> search tokens suffixed with a <code data-v-8d3dbd81>*</code> will look for text with the given prefix. For example <code data-v-8d3dbd81>tev*</code> should match if the string &quot;Tevildo&quot; occurs anywhere in the comic metadata. </p><h2 data-v-8d3dbd81>Field Search Syntax</h2><p data-v-8d3dbd81> Similar to Codex&#39;s Filter menu, you may query individual comic metadata fields in the database but for more fields and with more powerful operators than the exact match offered by the Filter menu. A field search looks like: <code data-v-8d3dbd81>field:expression</code>. </p><h3 data-v-8d3dbd81>Simple Values as the Expression</h3><p data-v-8d3dbd81> Simple values entered for the expression match exactly for numeric, datetime and boolean fields. However for text fields the field is searched for any match of the entered value. </p><p data-v-8d3dbd81> The Prefix notiation for full text search tokens may also be used here. <code data-v-8d3dbd81>characters:saur*</code> will match comics that feature &quot;Sauron&quot; and &quot;Sauruman&quot;. </p><h3 data-v-8d3dbd81>Field Search Boolean Expressions</h3><p data-v-8d3dbd81> Boolean operators may also used in and around field search if the expression is contained in parenthesis. <code data-v-8d3dbd81>characters:(aragorn or boromir)</code> will work. <code data-v-8d3dbd81>characters:(not aragorn)</code> will behave similarly to <code data-v-8d3dbd81>not characters:aragorn</code></p><h3 data-v-8d3dbd81>Leading Operators</h3><p data-v-8d3dbd81> Field Search has it&#39;s own operators that offer more powerful queries. For text, numeric, boolean and datetime fields may be applied at the beginning of the expression <code data-v-8d3dbd81>&gt;</code>,<code data-v-8d3dbd81>&gt;=</code>,<code data-v-8d3dbd81>&lt;</code>,<code data-v-8d3dbd81>&lt;=</code>. And the range syntax <code data-v-8d3dbd81>..</code> accepts two values. For instance: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>pages:&gt;30</code></td><td data-v-8d3dbd81>comics with more than 30 pages</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>author:!frodo</code></td><td data-v-8d3dbd81>comics not written by Frodo</td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>year:1066..1215</code></td><td data-v-8d3dbd81>comics published between the year 1066 and 1215.</td></tr></tbody></table><h3 data-v-8d3dbd81>Text Operators</h3><p data-v-8d3dbd81> Field search on text fields may be narrowed using the <code data-v-8d3dbd81>*</code> operator: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:Ar*</code></td><td data-v-8d3dbd81> characters that start with &quot;Ar&quot;, like &quot;Aragorn&quot; and &quot;Arwen&quot; </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>characters:*orn</code></td><td data-v-8d3dbd81> characters that end with &quot;orn&quot;, like &quot;Aragorn&quot; and &quot;Arathorn&quot;. This type of search can be slow </td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>series:sil*ion</code></td><td data-v-8d3dbd81> series such as Silmarillion. This type of search can be slow. </td></tr></tbody></table><p data-v-8d3dbd81> The last two examples of text search above looking for suffixes and doing wildcard searches with the <code data-v-8d3dbd81>*</code> in the middle of the word will perform much worse than bare word or prefix searches because they are unable to use the full text search index and will scan the database in a less efficient manner. </p><h3 data-v-8d3dbd81>Dates and DateTimes</h3><p data-v-8d3dbd81> Codex parses Dates and DateTime values liberally. Many quoted english phrases also work. Such as relative dates like &#39;1 min ago&#39;, &#39;2 weeks ago&#39;, &#39;3 months, 1 week and 1 day ago&#39;, &#39;in 2 days&#39;, &#39;tomorrow&#39;. Dates with timezones and named months such as &#39;August 14, 2015 EST&#39;, &#39;July 4, 2013 PST&#39;, &#39;21 July 2013 10:15 pm +0500&#39;. Examples: </p><table class="searchExample" data-v-8d3dbd81><tbody data-v-8d3dbd81><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>created_at:&quot;3 days ago&quot;..&quot;today&quot;</code></td></tr><tr data-v-8d3dbd81><td data-v-8d3dbd81><code data-v-8d3dbd81>date:&quot;&lt;3 years ago&quot;</code></td></tr></tbody></table><p data-v-8d3dbd81> Placing a leading operator outside the quotes for a date phrase will not be parsed correctly. If the format you try fails, the <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD</code> and <br data-v-8d3dbd81><code data-v-8d3dbd81>YYYY-MM-DD-HH:mm:SS</code> formats are reliable. </p><h3 data-v-8d3dbd81>Single Quote complex field Queries</h3><p data-v-8d3dbd81> Use quotes to tell Codex that a complex or natural language phrase should be applied to a specific field </p><code data-v-8d3dbd81> created:&#39;this year&#39; </code><h3 data-v-8d3dbd81>Size Byte Multipliers</h3><p data-v-8d3dbd81> The size field can make use of convenient byte multiplier suffixes like <code data-v-8d3dbd81>kb</code> and <code data-v-8d3dbd81>mb</code> as well as binary suffixes like <code data-v-8d3dbd81>gib</code> and <code data-v-8d3dbd81>tib</code>. For instance <code data-v-8d3dbd81>size:&gt;10mb</code></p><h2 data-v-8d3dbd81>Limitations</h2><p data-v-8d3dbd81> Field searches that use leading operators or text wildcard operators that are prefixed with the <code data-v-8d3dbd81>OR</code> operator like <code data-v-8d3dbd81>OR year:&gt;2020</code> will disregard the <code data-v-8d3dbd81>OR</code> operator and treat it like <code data-v-8d3dbd81>AND</code>. </p></div>',1))])])}const cr=b(or,[["render",lr],["__scopeId","data-v-8d3dbd81"]]),ur={name:"SearchHelp",components:{SearchHelpText:cr},data(){return{mdiOpenInNew:ue,mdiLifebuoy:Fe}},computed:{...g(p,{isSearchHelpOpenState:e=>e.isSearchHelpOpen}),isSearchHelpOpen:{get(){return this.isSearchHelpOpenState},set(e){this.setSearchHelpOpen(e)}},buttonDensity(){return this.$vuetify.display.smAndDown?"compact":"comfortable"}},methods:{...B(p,["setSearchHelpOpen"])}},mr={id:"searchHelp"};function hr(e,t,a,d,s,r){const o=c("SearchHelpText");return n(),u(bt,{modelValue:r.isSearchHelpOpen,"onUpdate:modelValue":t[0]||(t[0]=l=>r.isSearchHelpOpen=l),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:m(({props:l})=>[i(be,F(l,{icon:s.mdiLifebuoy,title:"Search Help",density:r.buttonDensity}),null,16,["icon","density"])]),default:m(()=>[_("div",mr,[i(o)])]),_:1},8,["modelValue"])}const pr=b(ur,[["render",hr],["__scopeId","data-v-292e00bb"]]),fr={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:rr,SearchHelp:pr},computed:{...g(p,{isSearchOpen:e=>e.isSearchOpen,toolbarHeight:e=>64+12*!!e.page.searchError})}};function br(e,t,a,d,s,r){const o=c("BrowserSearchCombobox"),l=c("SearchHelp");return n(),u(_t,null,{default:m(()=>[e.isSearchOpen?(n(),u(Y,{key:0,density:"compact",height:e.toolbarHeight},{default:m(()=>[i(W,{id:"searchToolbarItems"},{default:m(()=>[i(o),i(l)]),_:1})]),_:1},8,["height"])):y("",!0)]),_:1})}const gr=b(fr,[["render",br],["__scopeId","data-v-64bebade"]]),_r={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:me,mdiCloseCircleOutline:he,query:""}},computed:{...g(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]}}),...pe(p,["filterMode"]),hasNone(){for(const e of this.choices)if(ie.has(e)||e instanceof Object&&ie.has(e.pk))return!0;return!1},vuetifyItems(){return wt(this.choices,this.query)},title(){return Ne(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?$e:De},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...B(p,["clearOneFilter","identifierTypeTitle","loadAvailableFilterChoices","loadFilterChoices"]),setUIFilterMode(e){this.filterMode=e,this.query="",e!=="base"&&typeof this.choices!="object"&&this.loadFilterChoices(e)},selected(e){const t={filters:{[this.name]:e}};this.$emit("selected",t)},itemTitle:function(e){return this.name==="readingDirection"?this.readingDirectionTitles[e.value]:this.name==="identifierType"?this.identifierTypeTitle(e.title):e.title},async _loadSubAvailableFilterChoices(){return this.loadAvailableFilterChoices().then(()=>this.loadFilterChoices(this.name))},onClear(){return this.clearOneFilter(this.name).then(()=>this._loadSubAvailableFilterChoices())}}},vr={key:0},yr={class:"filterHeader"};function Sr(e,t,a,d,s,r){return n(),v("div",null,[i(vt,{"hide-on-leave":""},{default:m(()=>[e.filterMode==="base"?(n(),u(T,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=o=>r.setUIFilterMode(a.name))},null,8,["title","append-icon"])):y("",!0)]),_:1}),i(St,{"hide-on-leave":""},{default:m(()=>[e.filterMode===a.name?(n(),v("div",vr,[_("header",yr,[i(T,{class:"filterHeaderTitle","prepend-icon":s.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=o=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(n(),u(T,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0),typeof e.choices=="object"?(n(),u(yt,{key:1,modelValue:s.query,"onUpdate:modelValue":t[2]||(t[2]=o=>s.query=o),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=o=>e.filterMode=a.name)},null,8,["modelValue"])):(n(),u(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(n(),u(ge,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:m(()=>[r.hasNone?(n(),u(T,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):y("",!0),(n(!0),v(N,null,O(r.vuetifyItems,o=>(n(),u(T,{key:o.value,title:r.itemTitle(o),value:o.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):y("",!0)])):y("",!0)]),_:1})])}const wr=b(_r,[["render",Sr],["__scopeId","data-v-f1f62462"]]),Br={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:wr,ToolbarSelect:D},extends:D,data(){return{mdiCloseCircleOutline:he,mdiFilterMultipleOutline:Oe,menu:!1}},computed:{...k(p,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),...g(p,{bookmarkChoices:e=>e.choices.static.bookmark,bookmarkFilter:e=>e.settings.filters.bookmark||e.choices.static.bookmark[0],filters:e=>e.settings.filters,filterMenuClass:function(e){let t="filterMenu";return e.filterMode!=="base"&&(t+="Hidden"),t},dynamicChoiceNames:function(e){if(e.choices.dynamic===void 0)return;const t=[];for(const[a,d]of Object.entries(e.choices.dynamic))d&&t.push(a);return t}}),...pe(p,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},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(){return this.clearFilters().then(()=>this.loadAvailableFilterChoices()).catch(()=>{console.error("clear filters")})},onMenu(e){e&&this.dynamicChoiceNames===void 0&&this.loadAvailableFilterChoices()}}},Cr={class:"codexSelection"};function kr(e,t,a,d,s,r){const o=c("BrowserFilterSubMenu"),l=c("ToolbarSelect");return n(),u(l,{menu:s.menu,"onUpdate:menu":[t[0]||(t[0]=h=>s.menu=h),r.onMenu],class:A(["filterBySelect",{filterBySelectXSmall:r.padRight}]),"select-label":"filter by",items:e.bookmarkChoices,"menu-props":{contentClass:e.filterMenuClass,maxHeight:void 0},"model-value":e.bookmarkFilter,"max-select-len":e.filterByChoicesMaxLen-1,"onUpdate:modelValue":r.onUpdateModelValue},{selection:m(({item:h})=>[_("span",Cr,S(h.title),1),e.isDynamicFiltersSelected?(n(),u(V,{key:0,class:"filterSuffix",size:"x-small"},{default:m(()=>[C(S(s.mdiFilterMultipleOutline),1)]),_:1})):y("",!0)]),"prepend-item":m(()=>[e.isFiltersClearable?(n(),u(T,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":s.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):y("",!0)]),"append-item":m(()=>[i(H),e.dynamicChoiceNames===void 0?(n(),u(T,{key:0,density:"compact",variant:"plain"},{default:m(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(n(!0),v(N,{key:1},O(e.dynamicChoiceNames,h=>(n(),u(o,{key:h,name:h,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(n(),u(T,{key:2,class:"noChoices",density:"compact",variant:"plain",title:"No filters available"}))]),_:1},8,["menu","class","items","menu-props","model-value","max-select-len","onUpdate:modelValue","onUpdate:menu"])}const Tr=b(Br,[["render",kr],["__scopeId","data-v-0d876944"]]),xr=new Set(["bookmark_updated_at","child_count","community_rating","created_at","critical_rating","page_count","search_score","size","updated_at"]),Mr={name:"BrowseOrderBySelect",components:{ToolbarSelect:D},extends:D,computed:{...k(p,["orderByChoices","orderByChoicesMaxLen"]),...g(p,{orderBySetting:e=>e.settings.orderBy}),orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:xr.has(e)};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Vr(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,F({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=l=>r.orderBy=l),class:"orderBySelect","select-label":"order by",items:e.orderByChoices,"max-select-len":e.orderByChoicesMaxLen-4},e.$attrs),null,16,["modelValue","items","max-select-len"])}const Fr=b(Mr,[["render",Vr]]),Nr={name:"ToolbarButton",components:{ScaleButton:Dt}};function $r(e,t,a,d,s,r){const o=c("ScaleButton");return n(),u(o,{variant:"plain",class:"toolbarButton"},ce({_:2},[O(e.$slots,(l,h)=>({name:h,fn:m(f=>[Ie(e.$slots,h,F({props:l},f))])}))]),1024)}const ve=b(Nr,[["render",$r]]),Dr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiSortVariant:Pe}},computed:{...g(p,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...B(p,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function Or(e,t,a,d,s,r){const o=c("ToolbarButton");return n(),u(o,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:m(()=>[i(V,{class:A(r.iconClasses)},{default:m(()=>[C(S(s.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const Ir=b(Dr,[["render",Or],["__scopeId","data-v-42884e89"]]),Pr={name:"BrowseOrderReverseButton",components:{ToolbarButton:ve},data(){return{mdiMagnify:j}},computed:{...g(p,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...B(p,["setIsSearchOpen"])}};function Rr(e,t,a,d,s,r){const o=c("ToolbarButton");return e.isSearchOpen?y("",!0):(n(),u(o,F({key:0,class:"searchButton",icon:s.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=l=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const Hr=b(Pr,[["render",Rr]]),Ar=new Set(["a","f"]),qr={name:"BrowserTopGroupSelect",components:{ToolbarSelect:D},extends:D,data(){return{DIVIDED_VALUES:Ar}},computed:{...g(p,{topGroupSetting:e=>e.settings.topGroup}),...k(p,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...B(p,["setSettings"])}};function Er(e,t,a,d,s,r){const o=c("ToolbarSelect");return n(),u(o,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=l=>r.topGroup=l),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:m(({item:l,props:h})=>[s.DIVIDED_VALUES.has(l.value)?(n(),u(H,{key:0})):y("",!0),i(T,F(h,{density:"compact",variant:"plain",title:l.title,value:l.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const Lr=b(qr,[["render",Er]]),Ur={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:Tr,BrowserSearchButton:Hr,BrowserTopGroupSelect:Lr,BrowserOrderBySelect:Fr,BrowserOrderReverseButton:Ir,SettingsDrawerButton:Ot},data(){return{mdiMagnify:j,mdiFamilyTree:Re,browseMode:"filter"}}};function Gr(e,t,a,d,s,r){const o=c("BrowserTopGroupSelect"),l=c("BrowserFilterBySelect"),h=c("BrowserOrderBySelect"),f=c("BrowserOrderReverseButton"),w=c("BrowserSearchButton"),M=c("SettingsDrawerButton");return n(),u(Y,{id:"browserToolbarTop",density:"compact",height:48},{default:m(()=>[i(W,{id:"browserToolbarLeftItems"},{default:m(()=>[i(o),i(l),i(h),i(f),i(w)]),_:1}),i(Bt),i(W,null,{default:m(()=>[i(M)]),_:1})]),_:1})}const zr=b(Ur,[["render",Gr],["__scopeId","data-v-dcef4685"]]),jr={name:"BrowserHeader",components:{AppBanner:We,BrowserBreadcrumbsToolbar:Qt,BrowserSearchToolbar:gr,BrowserTopToolbar:zr,BrowserTitleToolbar:Jt}},Yr={id:"codexHeadToolbarWrapper"};function Kr(e,t,a,d,s,r){const o=c("AppBanner"),l=c("BrowserTopToolbar"),h=c("BrowserSearchToolbar"),f=c("BrowserBreadcrumbsToolbar"),w=c("BrowserTitleToolbar");return n(),v("header",Yr,[i(o),i(l,{class:"codexHeadToolbar"}),i(h,{class:"codexHeadToolbar"}),i(f,{class:"codexHeadToolbar"}),i(w,{class:"codexHeadToolbar"})])}const Qr=b(jr,[["render",Kr],["__scopeId","data-v-176aeb57"]]),Wr="rpisv",Xr={name:"BrowserSettingsPanel",data(){return{mdiReload:le,openDelay:2e3}},computed:{...k(x,["isAuthorized"]),...g(x,{isUserAuthorized:e=>!!e.user}),...g(p,{groupChoices:e=>{var t,a;return((a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.settingsGroup)||{}},showSettings:e=>{var t;return((t=e.settings)==null?void 0:t.show)||{}},twentyFourHourTime:e=>{var t;return((t=e.settings)==null?void 0:t.twentyFourHourTime)||!1},twentyFourHourTimeTitle:e=>{var t,a,d;return((d=(a=(t=e.choices)==null?void 0:t.static)==null?void 0:a.twentyFourHourTime)==null?void 0:d.title)||""},dynamicCovers:e=>{var t;return((t=e.settings)==null?void 0:t.dynamicCovers)||!1},customCovers:e=>{var t;return((t=e.settings)==null?void 0:t.customCovers)||!1}}),showShowSettings(){var e,t;return Wr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...B(p,["setSettings"]),setShow(e,t){const a={show:{[e]:t===!0}};this.setSettings(a)},set24HourTime(e){const t={twentyFourHourTime:e===!0};this.setSettings(t)},setDynamicCovers(e){const t={dynamicCovers:e===!0};this.setSettings(t)},setCustomCovers(e){const t={customCovers:e===!0};this.setSettings(t)}}},Jr={key:0,class:"browserSettingsBlock"},Zr={class:"browserSettingsBlock"};function ea(e,t,a,d,s,r){return n(),v(N,null,[r.showShowSettings?R((n(),v("div",Jr,[t[3]||(t[3]=_("h4",{class:"browserSettingsHeader"},"Show Group Levels",-1)),(n(!0),v(N,null,O(e.groupChoices,o=>(n(),u(q,{key:o.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[o.value],"true-value":!0,label:`Show ${o.title}`,"onUpdate:modelValue":l=>r.setShow(o.value,l)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[E,{openDelay:s.openDelay,text:"Show these groups when navigating the browse tree"}]]):y("",!0),i(H),_("div",Zr,[t[4]||(t[4]=_("h4",{class:"browserSettingsHeader"},"Covers",-1)),R(i(q,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=o=>r.setDynamicCovers(o))},null,8,["model-value"]),[[E,{openDelay:s.openDelay,text:"Choose covers by filters, search, and order"}]]),R(i(q,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=o=>r.setCustomCovers(o))},null,8,["model-value"]),[[E,{openDelay:s.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(H),i(q,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.twentyFourHourTime,"true-value":!0,indeterminate:"",label:"Force 24 Hour Time","onUpdate:modelValue":t[2]||(t[2]=o=>r.set24HourTime(o))},null,8,["model-value"]),i(H)],64)}const ta=b(Xr,[["render",ea],["__scopeId","data-v-4330ddbf"]]),ra={name:"BrowserSettingsDrawer",components:{SettingsDrawer:It,BrowserSettingsPanel:ta}};function aa(e,t,a,d,s,r){const o=c("BrowserSettingsPanel"),l=c("SettingsDrawer");return n(),u(l,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:m(()=>[i(o)]),_:1})}const oa=b(ra,[["render",aa]]),sa={name:"BrowserMarkReadItem",components:{ConfirmDialog:Pt,CodexListItem:gt},props:{item:{type:Object,required:!0}},computed:{...g(p,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},icon(){return this.item.finished?He:Ae},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(" ")},itemName(){return this.item.name?this.item.name:"(Empty)"}},methods:{...B(p,["setBookmarkFinished"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}};function ia(e,t,a,d,s,r){const o=c("CodexListItem"),l=c("ConfirmDialog");return a.item.group==="c"?(n(),u(o,{key:0,"prepend-icon":r.icon,title:r.markReadText,onClick:r.toggleRead},null,8,["prepend-icon","title","onClick"])):(n(),u(l,{key:1,button:!1,"prepend-icon":r.icon,"button-text":r.markReadText,"title-text":r.markReadText,"confirm-text":r.confirmText,text:r.itemName,onConfirm:r.toggleRead,onCancel:t[0]||(t[0]=h=>e.showMenu=!1)},null,8,["prepend-icon","button-text","title-text","confirm-text","text","onConfirm"]))}const na=b(sa,[["render",ia],["__scopeId","data-v-118f177a"]]),da={name:"BrowserContainerMenu",components:{DownloadButton:Ct,MarkReadItem:na},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:qe,showMenu:!1}},computed:{children(){var e;return((e=this.item)==null?void 0:e.childCount)||1},groupNames(){var e,t,a,d,s;return[(e=this.item)==null?void 0:e.publisherName,(t=this.item)==null?void 0:t.imprintName,(a=this.item)==null?void 0:a.seriesName,(d=this.item)==null?void 0:d.volumeName,(s=this.item)==null?void 0:s.name]},downloadNames(){var e,t;return(e=this.item)!=null&&e.fileName?[(t=this.item)==null?void 0:t.fileName]:this.groupNames}}};function la(e,t,a,d,s,r){const o=c("MarkReadItem"),l=c("DownloadButton");return n(),u($t,{modelValue:s.showMenu,"onUpdate:modelValue":t[1]||(t[1]=h=>s.showMenu=h),"offset-y":"",top:""},{activator:m(({props:h})=>[i(be,F({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:s.mdiDotsVertical,title:"Action Menu",variant:"text"},h,{onClick:t[0]||(t[0]=Ee(()=>{},["prevent"]))}),null,16,["icon"])]),default:m(()=>[i(ge,{class:"background-soft-highlight"},{default:m(()=>{var h,f,w;return[i(o,{class:"listItem",item:a.item},null,8,["item"]),i(l,{group:(h=a.item)==null?void 0:h.group,pks:(f=a.item)==null?void 0:f.ids,children:r.children,names:r.downloadNames,ts:(w=a.item)==null?void 0:w.mtime,class:"listItem",button:!1},null,8,["group","pks","children","names","ts"])]}),_:1})]),_:1},8,["modelValue"])}const ca=b(da,[["render",la],["__scopeId","data-v-d9545be6"]]),ua={name:"BrowserCardControls",components:{BrowserCardMenu:ca,MetadataButton:kt},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:ae}},computed:{eyeIcon:function(){return this.eyeOpen?re:ae}}},ma={class:"cardControls"};function ha(e,t,a,d,s,r){const o=c("MetadataButton"),l=c("BrowserCardMenu");return n(),v("div",ma,[a.item.group==="c"?(n(),u(V,{key:0,class:"eye"},{default:m(()=>[C(S(r.eyeIcon),1)]),_:1})):y("",!0),i(o,{group:a.item.group,book:a.item,children:a.item.childCount},null,8,["group","book","children"]),i(l,{item:a.item},null,8,["item"])])}const pa=b(ua,[["render",ha],["__scopeId","data-v-6f2c700a"]]),fa=new Set(["community_rating","critical_rating"]),ba=new Set(["date"]),ga=new Set(["bookmark_updated_at","created_at","updated_at"]),_a=new Set([null,void 0,"sort_name"]),va=new Set([null,void 0]),ya={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...g(p,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(_a.has(this.orderBy)||this.orderBy==="filename"&&this.item.group!=="c"||this.orderBy==="story_arc_number"&&this.item.group==="a"||va.has(e))e="";else if(ba.has(this.orderBy)){const t=new Date(e);e=Le.format(t)}else this.orderBy=="search_score"?e=this.format_search_score(e):ga.has(this.orderBy)?e=Ue(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=Tt(Number.parseInt(e,10)):fa.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}},methods:{format_search_score(e){return e=oe.format(Math.round(Number.parseFloat(e)*10)),isNaN(e)&&(e=""),e}}},Sa=["innerHTML"];function wa(e,t,a,d,s,r){return r.orderValue?(n(),v("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,Sa)):y("",!0)}const Ba=b(ya,[["render",wa],["__scopeId","data-v-1e70ee12"]]),Ca={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...g(p,{orderByFilename:e=>e.settings.orderBy==="filename",orderByName:e=>e.settings.orderBy==="sort_name",topGroup:e=>e.settings.topGroup,showSeries:e=>e.settings.show.s,showVolume:e=>e.settings.show.v,zeroPad:e=>e.page.zeroPad}),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?Q(this.item.volumeName):!1},headerName(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?Ge(this.item,this.zeroPad):ze(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName(){return this.item.group==="v"?Q(this.item.name):this.item.name},fileName(){return this.topGroup==="f"&&!this.orderByFilename?this.item.fileName:""},linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ka={class:"browserLink cardSubtitle text-caption"},Ta={key:0,class:"fileName"},xa={key:1,class:"seriesCaption"},Ma={key:2,class:"volumeCaption"},Va={key:3,class:"headerName"},Fa={class:"displayName"};function Na(e,t,a,d,s,r){return n(),v("div",ka,[r.fileName?(n(),v("div",Ta,S(r.fileName),1)):y("",!0),r.seriesName?(n(),v("div",xa,S(r.seriesName),1)):y("",!0),r.volumeName?(n(),v("div",Ma,S(r.volumeName),1)):y("",!0),r.headerName?(n(),v("div",Va,S(r.headerName),1)):y("",!0),_("div",Fa,S(r.displayName),1)])}const $a=b(Ca,[["render",Na],["__scopeId","data-v-57ab6608"]]),Da=L({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...U(),...lt(),...X(),...ct({transition:"fade-transition"})},"VLazy"),Oa=G()({name:"VLazy",directives:{intersect:ut},props:Da(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const{dimensionStyles:d}=mt(e),s=je(e,"modelValue");function r(o){s.value||(s.value=o)}return z(()=>R(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[s.value&&i(ht,{transition:e.transition,appear:!0},{default:()=>{var o;return[(o=a.default)==null?void 0:o.call(a)]}})]}),[[Ye("intersect"),{handler:r,options:e.options},null]])),{}}}),ne=100,Ia=-170,Pa={name:"BrowserCard",components:{BookCover:xt,BrowserCardControls:pa,BrowserCardSubtitle:$a,OrderByCaption:Ba},props:{item:{type:Object,required:!0}},computed:{...g(p,{importMetadata:e=>e.page.adminFlags.importMetadata}),linkLabel(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.item.name,e},ids(){return this.item.ids.join(",")},browserRoute(){return{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}},toRoute(){return this.item.group==="c"?Mt(this.item,this.importMetadata):this.browserRoute},progressBGOpacity(){return this.item.progress?.1:0}},mounted(){this.scrollToMe()},methods:{scrollToMe:function(){if(!this.$route.hash||this.$route.hash.split("-")[1]!==String(this.ids))return;const e=this.$el;if(!e){console.warn("No element found to scroll to!");return}setTimeout(function(){e.scrollIntoView(),setTimeout(function(){window.scrollBy(0,Ia)},ne)},ne)}}},Ra={class:"browserCardCoverWrapper"},Ha={class:"browserCardTop"},Aa={class:"cardFooter"};function qa(e,t,a,d,s,r){const o=c("BookCover"),l=c("BrowserCardControls"),h=c("router-link"),f=c("BrowserCardSubtitle"),w=c("OrderByCaption");return n(),u(Oa,{id:`card-${r.ids}`,transition:"scale-transition"},{default:m(()=>[_("div",Ra,[_("div",Ha,[i(o,{group:a.item.group,pks:a.item.ids,mtime:a.item.mtime,"child-count":a.item.childCount,finished:a.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(h,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:m(()=>[i(l,{item:a.item,"eye-open":!!r.toRoute},null,8,["item","eye-open"])]),_:1},8,["to","aria-label"])]),i(J,{class:"bookCoverProgress","bg-opacity":r.progressBGOpacity,"model-value":a.item.progress,"aria-label":`${a.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),_("footer",Aa,[i(f,{item:a.item},null,8,["item"]),i(w,{item:a.item},null,8,["item"])])])]),_:1},8,["id"])}const Ea=b(Pa,[["render",qa],["__scopeId","data-v-b11a367d"]]),La={name:"BrowserEmptyResults",components:{EmptyState:Xe},data(){return{mdiOpenInNew:ue}},computed:{...k(x,["isAuthorized","isUserAdmin"]),...g(x,{registration:e=>e.adminFlags.registration}),...k(p,["isFiltersClearable"]),...g(p,{librariesExist:e=>e.page.librariesExist}),empty(){let e={};return this.librariesExist?(e.headline="No Comics Found",e.title="For these filter and search settings",e.icon=Ke):(e.headline="No Libraries Exist",this.isUserAdmin?e.title="Use the top right ☰ menu to navigate to the admin panel and add a comic library":this.isAuthorized?e.title="An administrator must add some comics libraries":e.title="Use the top right ☰ menu to log in as an administrator to add libraries",e.icon=Qe),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...B(p,["clearFilters"])}},Ua={key:0},Ga={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function za(e,t,a,d,s,r){const o=c("EmptyState");return n(),u(o,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=l=>e.clearFilters(!0))},{default:m(()=>[r.showLinkToReadmeAdmin?(n(),v("div",Ua,[t[2]||(t[2]=C(" See the ")),_("a",Ga,[t[1]||(t[1]=C("README ")),i(V,null,{default:m(()=>[C(S(s.mdiOpenInNew),1)]),_:1})]),t[3]||(t[3]=C(" for help "))])):y("",!0)]),_:1},8,["headline","title","icon","action-text"])}const ja=b(La,[["render",za]]),Ya={name:"BrowserMain",components:{BrowserCard:Ea,BrowserEmptyState:ja,PlaceholderLoading:Je},computed:{...g(x,{nonUsers:e=>e.adminFlags.nonUsers}),...k(x,["isAuthorized","isBanner"]),...k(p,["isSearchMode"]),...g(p,{librariesExist:e=>e.page.librariesExist,showPlaceHolder(e){return this.nonUsers===void 0||this.isAuthorized&&(this.librariesExist==null||!e.browserPageLoaded)},cards:e=>[...e.page.groups??[],...e.page.books??[]],numPages:e=>e.page.numPages,query:e=>e.settings.q,isSearchOpen:e=>e.isSearchOpen}),browsePaneClasses(){const e={padFooter:this.numPages>1};let t="browsePane";return this.isSearchOpen&&(t+="Search"),this.isBanner&&(t+="Banner"),e[t]=!0,e},showBrowseItems(){return this.cards&&this.cards.length>0&&this.isAuthorized&&!this.showPlaceHolder},searchLimitMessage(){let e="";if(!this.query)return e;const t=+this.$route.params.page,a=100*t;return this.showPlaceHolder?e+=`Searching for ${a} entries...`:this.numPages>t&&(e+=`Search results truncated to ${a} entries.`,e+=" Advance the page to look for more."),e}}},Ka={key:0,id:"browsePaneContainer"},Qa={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function Wa(e,t,a,d,s,r){const o=c("BrowserCard"),l=c("PlaceholderLoading"),h=c("BrowserEmptyState");return n(),u(fe,{id:"browsePane",class:A(r.browsePaneClasses)},{default:m(()=>[r.showBrowseItems?(n(),v("div",Ka,[(n(!0),v(N,null,O(e.cards,f=>(n(),u(o,{key:`${f.group}${f.ids}`,item:f},null,8,["item"]))),128))])):e.showPlaceHolder?(n(),u(l,{key:1,class:"placeholder"})):(n(),u(h,{key:2})),r.searchLimitMessage?(n(),v("div",Qa,S(r.searchLimitMessage),1)):y("",!0)]),_:1},8,["class"])}const Xa=b(Ya,[["render",Wa],["__scopeId","data-v-327dfc0a"]]),Ja={name:"BrowserNavButton",components:{PaginationNavButton:Vt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:me,mdiMagnify:j,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...k(p,["isSearchMode"]),...g(p,{numPages:e=>e.page.numPages}),increment(){return this.back?-1:1},toPage(){return this.page+this.increment},title(){return this.showMore?"Search for More":"Page "+this.toPage},toRoute(){const e=this.toPage;return{params:{...this.routeParams,page:e}}},classes(){return{leftButton:this.back,rightButton:!this.back}},disabled(){return this.back&&this.page<=1||!this.back&&this.page>=this.numPages},showMore(){return this.more&&this.isSearchMode&&this.toPage===this.numPages}},watch:{$route(e){this.params=e.params,this.page=+e.params.page}}};function Za(e,t,a,d,s,r){const o=c("PaginationNavButton");return n(),u(o,{key:r.toRoute,class:A(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:m(()=>[r.showMore?(n(),u(V,{key:0},{default:m(()=>[C(S(s.mdiMagnify),1)]),_:1})):y("",!0),i(V,{class:A({flipHoriz:!a.back})},{default:m(()=>[C(S(s.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const eo=b(Ja,[["render",Za],["__scopeId","data-v-372671b3"]]),to={name:"BrowserNavToolbar",components:{BrowserNavButton:eo,PaginationSlider:Ft,PaginationToolbar:Nt},computed:{...g(p,{numPages:e=>e.page.numPages})},methods:{...B(p,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function ro(e,t,a,d,s,r){const o=c("BrowserNavButton"),l=c("PaginationSlider"),h=c("PaginationToolbar");return e.numPages>1?(n(),u(h,{key:0},{default:m(()=>[i(o,{back:!0}),i(l,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=f=>e.routeToPage(f))},null,8,["model-value","max"]),i(o,{back:!1,more:!0})]),_:1})):y("",!0)}const ao=b(to,[["render",ro]]),oo={name:"MainBrowser",components:{BrowserHeader:Qr,BrowserMain:Xa,BrowserNavToolbar:ao,BrowserSettingsDrawer:oa,Unauthorized:Ze},computed:{...g(x,{user:e=>e.user}),...k(x,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...B(p,["loadBrowserPage","loadSettings","setPageMtime"])}};function so(e,t,a,d,s,r){const o=c("BrowserHeader"),l=c("BrowserMain"),h=c("BrowserNavToolbar"),f=c("BrowserSettingsDrawer"),w=c("Unauthorized");return e.isAuthorized?(n(),u(fe,{key:0,id:"browser"},{default:m(()=>[i(o),i(l),i(h),i(f)]),_:1})):(n(),u(w,{key:1}))}const xo=b(oo,[["render",so],["__scopeId","data-v-4577512d"]]);export{xo as default};
@@ -1 +1 @@
1
- import{_ as y,aL as B,l as n,v as a,m,bz as D,E,B as f,h as v,A as w,D as p,k as i,w as d,n as L,s as N,z as h,a as l,q as b,X as C,H as g}from"./main-Dv8e0bMI.js";import{V as P}from"./forwardRefs-DNAemYUk.js";import{C as A,V as O}from"./VDialog-IrbBYFLM.js";import{S as U,V as I}from"./VForm-B4hkqnS8.js";import{useAdminStore as T}from"./admin-Izb24SXM.js";import{b as u}from"./VSelectionControl-L41n5bnX.js";const M={name:"CloseButton",data(){return{mdiClose:B}}};function x(e,s,t,S,o,c){return n(),a(P,m({class:"closeButton",icon:o.mdiClose},e.$attrs),null,16,["icon"])}const F=y(M,[["render",x],["__scopeId","data-v-cfdced0d"]]),R={name:"ChangePasswordDialog",components:{SubmitFooter:U,CloseButton:F,CodexListItem:A},props:{user:{type:Object,required:!0},isAdminMode:{type:Boolean,default:!1},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{rules:{oldPassword:[e=>!!e||"Old Password is required"],password:[e=>e?e.length<this.MIN_PASSWORD_LENGTH?`Password must be ${this.MIN_PASSWORD_LENGTH} characters long`:e===this.credentials.oldPassword?"New password must be different than old password":!0:"New Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},credentials:{oldPassword:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,mdiLockReset:D,showOnlyThisDialog:!1}},computed:{...E(f,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(p,["showChangePasswordDialog"])},watch:{showOnlyThisDialog(e){if(this.showChangePasswordDialog=e,e){const s=this.$refs.form;s&&s.reset(),this.clearErrors()}},credentials:{handler(){const e=this.$refs.form;if(!e){this.submitButtonEnabled=!1;return}e.validate().then(({valid:s})=>(this.submitButtonEnabled=s,this.submitButtonEnabled)).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...w(p,["changePassword"]),...w(f,["clearErrors"]),doUserChange(){return T().changeUserPassword(this.user.pk,this.credentials).catch(console.error)},doSelfChange(){return this.changePassword(this.credentials).catch(console.error)},submit(){const e=this.$refs.form;e&&e.validate().then(({valid:s})=>{if(s)return this.isAdminMode?this.doUserChange():this.doSelfChange()}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}},z={key:0,class:"codexFormSuccess"},W=["value"];function q(e,s,t,S,o,c){const V=i("CodexListItem"),_=i("CloseButton"),k=i("SubmitFooter");return t.user?(n(),a(O,{key:0,modelValue:o.showOnlyThisDialog,"onUpdate:modelValue":s[7]||(s[7]=r=>o.showOnlyThisDialog=r),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:d(({props:r})=>[t.isAdminMode?(n(),a(P,m({key:0,icon:o.mdiLockReset},r,{size:t.size,density:t.density,title:"Change Password"}),null,16,["icon","size","density"])):(n(),a(V,m({key:1,"prepend-icon":o.mdiLockReset},r,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:d(()=>[e.formSuccess?(n(),L("div",z,[N(h(e.formSuccess)+" ",1),l(_,{onClick:s[0]||(s[0]=r=>o.showOnlyThisDialog=!1)})])):(n(),a(I,{key:1,ref:"form",class:"changePasswordForm"},{default:d(()=>[b("h2",null,"User "+h(t.user.username),1),b("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,W),t.isAdminMode?g("",!0):(n(),a(u,{key:0,ref:"oldPassword",modelValue:o.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=r=>o.credentials.oldPassword=r),autocomplete:"current-password",label:"Old Password",rules:o.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=C(r=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),l(u,{ref:"password",modelValue:o.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=r=>o.credentials.password=r),autocomplete:"new-password",label:"New Password",rules:o.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=C(r=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),l(u,{ref:"passwordConfirm",modelValue:o.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=r=>o.credentials.passwordConfirm=r),autocomplete:"new-password",label:"Confirm Password",rules:o.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),l(k,{verb:"Change",table:"Password",disabled:!o.submitButtonEnabled,onSubmit:c.submit,onCancel:s[6]||(s[6]=r=>o.showOnlyThisDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const Q=y(R,[["render",q],["__scopeId","data-v-4cf1306d"]]);export{F as C,Q as a};
1
+ import{_ as y,aL as B,l as n,v as a,m,bz as D,E,B as f,h as v,A as w,D as p,k as i,w as d,n as L,s as N,z as h,a as l,q as b,X as C,H as g}from"./main-DTplblFl.js";import{V as P}from"./forwardRefs-hLICxMEm.js";import{C as A,V as O}from"./VDialog-CvyPs47z.js";import{S as U,V as I}from"./VForm-B4doHkrL.js";import{useAdminStore as T}from"./admin-BYCwfr2h.js";import{b as u}from"./VSelectionControl-BJm6ORIw.js";const M={name:"CloseButton",data(){return{mdiClose:B}}};function x(e,s,t,S,o,c){return n(),a(P,m({class:"closeButton",icon:o.mdiClose},e.$attrs),null,16,["icon"])}const F=y(M,[["render",x],["__scopeId","data-v-cfdced0d"]]),R={name:"ChangePasswordDialog",components:{SubmitFooter:U,CloseButton:F,CodexListItem:A},props:{user:{type:Object,required:!0},isAdminMode:{type:Boolean,default:!1},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{rules:{oldPassword:[e=>!!e||"Old Password is required"],password:[e=>e?e.length<this.MIN_PASSWORD_LENGTH?`Password must be ${this.MIN_PASSWORD_LENGTH} characters long`:e===this.credentials.oldPassword?"New password must be different than old password":!0:"New Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},credentials:{oldPassword:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,mdiLockReset:D,showOnlyThisDialog:!1}},computed:{...E(f,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(p,["showChangePasswordDialog"])},watch:{showOnlyThisDialog(e){if(this.showChangePasswordDialog=e,e){const s=this.$refs.form;s&&s.reset(),this.clearErrors()}},credentials:{handler(){const e=this.$refs.form;if(!e){this.submitButtonEnabled=!1;return}e.validate().then(({valid:s})=>(this.submitButtonEnabled=s,this.submitButtonEnabled)).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...w(p,["changePassword"]),...w(f,["clearErrors"]),doUserChange(){return T().changeUserPassword(this.user.pk,this.credentials).catch(console.error)},doSelfChange(){return this.changePassword(this.credentials).catch(console.error)},submit(){const e=this.$refs.form;e&&e.validate().then(({valid:s})=>{if(s)return this.isAdminMode?this.doUserChange():this.doSelfChange()}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}},z={key:0,class:"codexFormSuccess"},W=["value"];function q(e,s,t,S,o,c){const V=i("CodexListItem"),_=i("CloseButton"),k=i("SubmitFooter");return t.user?(n(),a(O,{key:0,modelValue:o.showOnlyThisDialog,"onUpdate:modelValue":s[7]||(s[7]=r=>o.showOnlyThisDialog=r),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:d(({props:r})=>[t.isAdminMode?(n(),a(P,m({key:0,icon:o.mdiLockReset},r,{size:t.size,density:t.density,title:"Change Password"}),null,16,["icon","size","density"])):(n(),a(V,m({key:1,"prepend-icon":o.mdiLockReset},r,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:d(()=>[e.formSuccess?(n(),L("div",z,[N(h(e.formSuccess)+" ",1),l(_,{onClick:s[0]||(s[0]=r=>o.showOnlyThisDialog=!1)})])):(n(),a(I,{key:1,ref:"form",class:"changePasswordForm"},{default:d(()=>[b("h2",null,"User "+h(t.user.username),1),b("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,W),t.isAdminMode?g("",!0):(n(),a(u,{key:0,ref:"oldPassword",modelValue:o.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=r=>o.credentials.oldPassword=r),autocomplete:"current-password",label:"Old Password",rules:o.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=C(r=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),l(u,{ref:"password",modelValue:o.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=r=>o.credentials.password=r),autocomplete:"new-password",label:"New Password",rules:o.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=C(r=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),l(u,{ref:"passwordConfirm",modelValue:o.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=r=>o.credentials.passwordConfirm=r),autocomplete:"new-password",label:"Confirm Password",rules:o.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),l(k,{verb:"Change",table:"Password",disabled:!o.submitButtonEnabled,onSubmit:c.submit,onCancel:s[6]||(s[6]=r=>o.showOnlyThisDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const Q=y(R,[["render",q],["__scopeId","data-v-4cf1306d"]]);export{F as C,Q as a};
@@ -1 +1 @@
1
- import{_ as y,aL as B,l as n,v as a,m,bz as D,E,B as f,h as v,A as w,D as p,k as i,w as d,n as L,s as N,z as h,a as l,q as b,X as C,H as g}from"./main-Dv8e0bMI.js";import{V as P}from"./forwardRefs-DNAemYUk.js";import{C as A,V as O}from"./VDialog-IrbBYFLM.js";import{S as U,V as I}from"./VForm-B4hkqnS8.js";import{useAdminStore as T}from"./admin-Izb24SXM.js";import{b as u}from"./VSelectionControl-L41n5bnX.js";const M={name:"CloseButton",data(){return{mdiClose:B}}};function x(e,s,t,S,o,c){return n(),a(P,m({class:"closeButton",icon:o.mdiClose},e.$attrs),null,16,["icon"])}const F=y(M,[["render",x],["__scopeId","data-v-cfdced0d"]]),R={name:"ChangePasswordDialog",components:{SubmitFooter:U,CloseButton:F,CodexListItem:A},props:{user:{type:Object,required:!0},isAdminMode:{type:Boolean,default:!1},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{rules:{oldPassword:[e=>!!e||"Old Password is required"],password:[e=>e?e.length<this.MIN_PASSWORD_LENGTH?`Password must be ${this.MIN_PASSWORD_LENGTH} characters long`:e===this.credentials.oldPassword?"New password must be different than old password":!0:"New Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},credentials:{oldPassword:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,mdiLockReset:D,showOnlyThisDialog:!1}},computed:{...E(f,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(p,["showChangePasswordDialog"])},watch:{showOnlyThisDialog(e){if(this.showChangePasswordDialog=e,e){const s=this.$refs.form;s&&s.reset(),this.clearErrors()}},credentials:{handler(){const e=this.$refs.form;if(!e){this.submitButtonEnabled=!1;return}e.validate().then(({valid:s})=>(this.submitButtonEnabled=s,this.submitButtonEnabled)).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...w(p,["changePassword"]),...w(f,["clearErrors"]),doUserChange(){return T().changeUserPassword(this.user.pk,this.credentials).catch(console.error)},doSelfChange(){return this.changePassword(this.credentials).catch(console.error)},submit(){const e=this.$refs.form;e&&e.validate().then(({valid:s})=>{if(s)return this.isAdminMode?this.doUserChange():this.doSelfChange()}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}},z={key:0,class:"codexFormSuccess"},W=["value"];function q(e,s,t,S,o,c){const V=i("CodexListItem"),_=i("CloseButton"),k=i("SubmitFooter");return t.user?(n(),a(O,{key:0,modelValue:o.showOnlyThisDialog,"onUpdate:modelValue":s[7]||(s[7]=r=>o.showOnlyThisDialog=r),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:d(({props:r})=>[t.isAdminMode?(n(),a(P,m({key:0,icon:o.mdiLockReset},r,{size:t.size,density:t.density,title:"Change Password"}),null,16,["icon","size","density"])):(n(),a(V,m({key:1,"prepend-icon":o.mdiLockReset},r,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:d(()=>[e.formSuccess?(n(),L("div",z,[N(h(e.formSuccess)+" ",1),l(_,{onClick:s[0]||(s[0]=r=>o.showOnlyThisDialog=!1)})])):(n(),a(I,{key:1,ref:"form",class:"changePasswordForm"},{default:d(()=>[b("h2",null,"User "+h(t.user.username),1),b("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,W),t.isAdminMode?g("",!0):(n(),a(u,{key:0,ref:"oldPassword",modelValue:o.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=r=>o.credentials.oldPassword=r),autocomplete:"current-password",label:"Old Password",rules:o.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=C(r=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),l(u,{ref:"password",modelValue:o.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=r=>o.credentials.password=r),autocomplete:"new-password",label:"New Password",rules:o.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=C(r=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),l(u,{ref:"passwordConfirm",modelValue:o.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=r=>o.credentials.passwordConfirm=r),autocomplete:"new-password",label:"Confirm Password",rules:o.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),l(k,{verb:"Change",table:"Password",disabled:!o.submitButtonEnabled,onSubmit:c.submit,onCancel:s[6]||(s[6]=r=>o.showOnlyThisDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const Q=y(R,[["render",q],["__scopeId","data-v-4cf1306d"]]);export{F as C,Q as a};
1
+ import{_ as y,aL as B,l as n,v as a,m,bz as D,E,B as f,h as v,A as w,D as p,k as i,w as d,n as L,s as N,z as h,a as l,q as b,X as C,H as g}from"./main-DTplblFl.js";import{V as P}from"./forwardRefs-hLICxMEm.js";import{C as A,V as O}from"./VDialog-CvyPs47z.js";import{S as U,V as I}from"./VForm-B4doHkrL.js";import{useAdminStore as T}from"./admin-BYCwfr2h.js";import{b as u}from"./VSelectionControl-BJm6ORIw.js";const M={name:"CloseButton",data(){return{mdiClose:B}}};function x(e,s,t,S,o,c){return n(),a(P,m({class:"closeButton",icon:o.mdiClose},e.$attrs),null,16,["icon"])}const F=y(M,[["render",x],["__scopeId","data-v-cfdced0d"]]),R={name:"ChangePasswordDialog",components:{SubmitFooter:U,CloseButton:F,CodexListItem:A},props:{user:{type:Object,required:!0},isAdminMode:{type:Boolean,default:!1},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{rules:{oldPassword:[e=>!!e||"Old Password is required"],password:[e=>e?e.length<this.MIN_PASSWORD_LENGTH?`Password must be ${this.MIN_PASSWORD_LENGTH} characters long`:e===this.credentials.oldPassword?"New password must be different than old password":!0:"New Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},credentials:{oldPassword:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,mdiLockReset:D,showOnlyThisDialog:!1}},computed:{...E(f,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(p,["showChangePasswordDialog"])},watch:{showOnlyThisDialog(e){if(this.showChangePasswordDialog=e,e){const s=this.$refs.form;s&&s.reset(),this.clearErrors()}},credentials:{handler(){const e=this.$refs.form;if(!e){this.submitButtonEnabled=!1;return}e.validate().then(({valid:s})=>(this.submitButtonEnabled=s,this.submitButtonEnabled)).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...w(p,["changePassword"]),...w(f,["clearErrors"]),doUserChange(){return T().changeUserPassword(this.user.pk,this.credentials).catch(console.error)},doSelfChange(){return this.changePassword(this.credentials).catch(console.error)},submit(){const e=this.$refs.form;e&&e.validate().then(({valid:s})=>{if(s)return this.isAdminMode?this.doUserChange():this.doSelfChange()}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}},z={key:0,class:"codexFormSuccess"},W=["value"];function q(e,s,t,S,o,c){const V=i("CodexListItem"),_=i("CloseButton"),k=i("SubmitFooter");return t.user?(n(),a(O,{key:0,modelValue:o.showOnlyThisDialog,"onUpdate:modelValue":s[7]||(s[7]=r=>o.showOnlyThisDialog=r),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:d(({props:r})=>[t.isAdminMode?(n(),a(P,m({key:0,icon:o.mdiLockReset},r,{size:t.size,density:t.density,title:"Change Password"}),null,16,["icon","size","density"])):(n(),a(V,m({key:1,"prepend-icon":o.mdiLockReset},r,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:d(()=>[e.formSuccess?(n(),L("div",z,[N(h(e.formSuccess)+" ",1),l(_,{onClick:s[0]||(s[0]=r=>o.showOnlyThisDialog=!1)})])):(n(),a(I,{key:1,ref:"form",class:"changePasswordForm"},{default:d(()=>[b("h2",null,"User "+h(t.user.username),1),b("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,W),t.isAdminMode?g("",!0):(n(),a(u,{key:0,ref:"oldPassword",modelValue:o.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=r=>o.credentials.oldPassword=r),autocomplete:"current-password",label:"Old Password",rules:o.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=C(r=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),l(u,{ref:"password",modelValue:o.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=r=>o.credentials.password=r),autocomplete:"new-password",label:"New Password",rules:o.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=C(r=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),l(u,{ref:"passwordConfirm",modelValue:o.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=r=>o.credentials.passwordConfirm=r),autocomplete:"new-password",label:"Confirm Password",rules:o.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),l(k,{verb:"Change",table:"Password",disabled:!o.submitButtonEnabled,onSubmit:c.submit,onCancel:s[6]||(s[6]=r=>o.showOnlyThisDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const Q=y(R,[["render",q],["__scopeId","data-v-4cf1306d"]]);export{F as C,Q as a};
@@ -1 +1 @@
1
- import{t as b,C as k,V as C}from"./VDialog-IrbBYFLM.js";import{_,k as f,l as n,v as i,w as l,m as r,s as c,z as a,H as V,q as u,a as D}from"./main-Dv8e0bMI.js";import{V as x,k as I}from"./forwardRefs-DNAemYUk.js";const S={name:"ConfirmDialog",components:{ConfirmFooter:b,CodexListItem:k},props:{button:{type:Boolean,default:!0},icon:{type:String,default:""},prependIcon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},block:{type:Boolean,default:!1},text:{type:String,required:!0},confirmText:{type:String,required:!0},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{showDialog:!1}},methods:{close(d){this.$emit(d),this.showDialog=!1}}},T={class:"confirmDialog"};function v(d,o,e,w,s,m){const y=f("CodexListItem"),g=f("ConfirmFooter");return n(),i(C,{modelValue:s.showDialog,"onUpdate:modelValue":o[2]||(o[2]=t=>s.showDialog=t),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:l(({props:t})=>[e.button&&e.icon?(n(),i(x,r({key:0},t,{block:e.block,icon:e.icon,size:e.size,density:e.density,title:e.titleText}),null,16,["block","icon","size","density","title"])):e.button?(n(),i(x,r({key:1},t,{block:e.block}),{default:l(()=>[e.prependIcon?(n(),i(I,{key:0},{default:l(()=>[c(a(e.prependIcon),1)]),_:1})):V("",!0),c(" "+a(e.buttonText),1)]),_:2},1040,["block"])):(n(),i(y,r({key:2},t,{"prepend-icon":e.prependIcon,title:e.titleText}),null,16,["prepend-icon","title"]))]),default:l(()=>[u("div",T,[u("h3",null,a(e.titleText),1),c(" "+a(e.text)+" ",1),D(g,{"confirm-text":e.confirmText,onConfirm:o[0]||(o[0]=t=>m.close("confirm")),onCancel:o[1]||(o[1]=t=>m.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const q=_(S,[["render",v],["__scopeId","data-v-21abfb17"]]);export{q as C};
1
+ import{t as b,C as k,V as C}from"./VDialog-CvyPs47z.js";import{_,k as f,l as n,v as i,w as l,m as r,s as c,z as a,H as V,q as u,a as D}from"./main-DTplblFl.js";import{V as x,k as I}from"./forwardRefs-hLICxMEm.js";const S={name:"ConfirmDialog",components:{ConfirmFooter:b,CodexListItem:k},props:{button:{type:Boolean,default:!0},icon:{type:String,default:""},prependIcon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},block:{type:Boolean,default:!1},text:{type:String,required:!0},confirmText:{type:String,required:!0},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{showDialog:!1}},methods:{close(d){this.$emit(d),this.showDialog=!1}}},T={class:"confirmDialog"};function v(d,o,e,w,s,m){const y=f("CodexListItem"),g=f("ConfirmFooter");return n(),i(C,{modelValue:s.showDialog,"onUpdate:modelValue":o[2]||(o[2]=t=>s.showDialog=t),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:l(({props:t})=>[e.button&&e.icon?(n(),i(x,r({key:0},t,{block:e.block,icon:e.icon,size:e.size,density:e.density,title:e.titleText}),null,16,["block","icon","size","density","title"])):e.button?(n(),i(x,r({key:1},t,{block:e.block}),{default:l(()=>[e.prependIcon?(n(),i(I,{key:0},{default:l(()=>[c(a(e.prependIcon),1)]),_:1})):V("",!0),c(" "+a(e.buttonText),1)]),_:2},1040,["block"])):(n(),i(y,r({key:2},t,{"prepend-icon":e.prependIcon,title:e.titleText}),null,16,["prepend-icon","title"]))]),default:l(()=>[u("div",T,[u("h3",null,a(e.titleText),1),c(" "+a(e.text)+" ",1),D(g,{"confirm-text":e.confirmText,onConfirm:o[0]||(o[0]=t=>m.close("confirm")),onCancel:o[1]||(o[1]=t=>m.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const q=_(S,[["render",v],["__scopeId","data-v-21abfb17"]]);export{q as C};
@@ -1 +1 @@
1
- import{t as b,C as k,V as C}from"./VDialog-IrbBYFLM.js";import{_,k as f,l as n,v as i,w as l,m as r,s as c,z as a,H as V,q as u,a as D}from"./main-Dv8e0bMI.js";import{V as x,k as I}from"./forwardRefs-DNAemYUk.js";const S={name:"ConfirmDialog",components:{ConfirmFooter:b,CodexListItem:k},props:{button:{type:Boolean,default:!0},icon:{type:String,default:""},prependIcon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},block:{type:Boolean,default:!1},text:{type:String,required:!0},confirmText:{type:String,required:!0},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{showDialog:!1}},methods:{close(d){this.$emit(d),this.showDialog=!1}}},T={class:"confirmDialog"};function v(d,o,e,w,s,m){const y=f("CodexListItem"),g=f("ConfirmFooter");return n(),i(C,{modelValue:s.showDialog,"onUpdate:modelValue":o[2]||(o[2]=t=>s.showDialog=t),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:l(({props:t})=>[e.button&&e.icon?(n(),i(x,r({key:0},t,{block:e.block,icon:e.icon,size:e.size,density:e.density,title:e.titleText}),null,16,["block","icon","size","density","title"])):e.button?(n(),i(x,r({key:1},t,{block:e.block}),{default:l(()=>[e.prependIcon?(n(),i(I,{key:0},{default:l(()=>[c(a(e.prependIcon),1)]),_:1})):V("",!0),c(" "+a(e.buttonText),1)]),_:2},1040,["block"])):(n(),i(y,r({key:2},t,{"prepend-icon":e.prependIcon,title:e.titleText}),null,16,["prepend-icon","title"]))]),default:l(()=>[u("div",T,[u("h3",null,a(e.titleText),1),c(" "+a(e.text)+" ",1),D(g,{"confirm-text":e.confirmText,onConfirm:o[0]||(o[0]=t=>m.close("confirm")),onCancel:o[1]||(o[1]=t=>m.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const q=_(S,[["render",v],["__scopeId","data-v-21abfb17"]]);export{q as C};
1
+ import{t as b,C as k,V as C}from"./VDialog-CvyPs47z.js";import{_,k as f,l as n,v as i,w as l,m as r,s as c,z as a,H as V,q as u,a as D}from"./main-DTplblFl.js";import{V as x,k as I}from"./forwardRefs-hLICxMEm.js";const S={name:"ConfirmDialog",components:{ConfirmFooter:b,CodexListItem:k},props:{button:{type:Boolean,default:!0},icon:{type:String,default:""},prependIcon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},block:{type:Boolean,default:!1},text:{type:String,required:!0},confirmText:{type:String,required:!0},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{showDialog:!1}},methods:{close(d){this.$emit(d),this.showDialog=!1}}},T={class:"confirmDialog"};function v(d,o,e,w,s,m){const y=f("CodexListItem"),g=f("ConfirmFooter");return n(),i(C,{modelValue:s.showDialog,"onUpdate:modelValue":o[2]||(o[2]=t=>s.showDialog=t),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:l(({props:t})=>[e.button&&e.icon?(n(),i(x,r({key:0},t,{block:e.block,icon:e.icon,size:e.size,density:e.density,title:e.titleText}),null,16,["block","icon","size","density","title"])):e.button?(n(),i(x,r({key:1},t,{block:e.block}),{default:l(()=>[e.prependIcon?(n(),i(I,{key:0},{default:l(()=>[c(a(e.prependIcon),1)]),_:1})):V("",!0),c(" "+a(e.buttonText),1)]),_:2},1040,["block"])):(n(),i(y,r({key:2},t,{"prepend-icon":e.prependIcon,title:e.titleText}),null,16,["prepend-icon","title"]))]),default:l(()=>[u("div",T,[u("h3",null,a(e.titleText),1),c(" "+a(e.text)+" ",1),D(g,{"confirm-text":e.confirmText,onConfirm:o[0]||(o[0]=t=>m.close("confirm")),onCancel:o[1]||(o[1]=t=>m.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const q=_(S,[["render",v],["__scopeId","data-v-21abfb17"]]);export{q as C};
@@ -1 +1 @@
1
- import{E as r,L as m,ae as s,bK as n,_ as i,l as d,n as c,s as u,z as a,q as f,H as _}from"./main-Dv8e0bMI.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(m,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return s.format(this.date)},formattedTime:function(){return n(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,h,o,F,y,e){return o.dttm?(d(),c("time",p,[u(a(e.formattedDate)+" ",1),f("time",l,a(e.formattedTime),1)])):_("",!0)}const g=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{g as D};
1
+ import{E as r,L as m,ae as s,bK as n,_ as i,l as d,n as c,s as u,z as a,q as f,H as _}from"./main-DTplblFl.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(m,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return s.format(this.date)},formattedTime:function(){return n(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,h,o,F,y,e){return o.dttm?(d(),c("time",p,[u(a(e.formattedDate)+" ",1),f("time",l,a(e.formattedTime),1)])):_("",!0)}const g=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{g as D};
@@ -0,0 +1,2 @@
1
+ �`����߻L���֌|�1�8���7�s.]���2/�����B����K۬ͼ� (FpX?[qg�����,���+.�#�JH������|�a�ј��S�I���N�oA�Yε��$�)V2*�
2
+ �C�ÝЙR��1��-PmDƀ�͒��>�BP�0���#�Β�dB�Φ��j��s��������F�Bvb�H��Ɣ�|��*)+Ѝ�=+9w�s,����)n.h��(��j���g�'&h֕�C"�ɅO�a(�r�$�����5���)P��\�*��[�1��)s�k�39r]�d�@jw�c��!������?�F���#s�$�Q“��p(��3=s?r+��|���W��>�d�
@@ -1 +1 @@
1
- import{E as r,L as m,ae as s,bK as n,_ as i,l as d,n as c,s as u,z as a,q as f,H as _}from"./main-Dv8e0bMI.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(m,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return s.format(this.date)},formattedTime:function(){return n(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,h,o,F,y,e){return o.dttm?(d(),c("time",p,[u(a(e.formattedDate)+" ",1),f("time",l,a(e.formattedTime),1)])):_("",!0)}const g=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{g as D};
1
+ import{E as r,L as m,ae as s,bK as n,_ as i,l as d,n as c,s as u,z as a,q as f,H as _}from"./main-DTplblFl.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(m,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return s.format(this.date)},formattedTime:function(){return n(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,h,o,F,y,e){return o.dttm?(d(),c("time",p,[u(a(e.formattedDate)+" ",1),f("time",l,a(e.formattedTime),1)])):_("",!0)}const g=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{g as D};
@@ -0,0 +1,2 @@
1
+ �`����߻L���֌|�1�8���7�s.]���2/�����B����K۬ͼ� (FpX?[qg�����,���+.�#�JH������|�a�ј��S�I���N�oA�Yε��$�)V2*�
2
+ �C�ÝЙR��1��-PmDƀ�͒��>�BP�0���#�Β�dB�Φ��j��s��������F�Bvb�H��Ɣ�|��*)+Ѝ�=+9w�s,����)n.h��(��j���g�'&h֕�C"�ɅO�a(�r�$�����5���)P��\�*��[�1��)s�k�39r]�d�@jw�c��!������?�F���#s�$�Q“��p(��3=s?r+��|���W��>�d�
@@ -1 +1 @@
1
- import{p as L,r as I,c as j,b_ as i,bk as w,bI as v,bX as O}from"./main-Dv8e0bMI.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=L({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function x(t,c,e){var g;const f=[],s=(e==null?void 0:e.default)??S,m=e!=null&&e.filterKeys?v(e.filterKeys):!1,y=Object.keys((e==null?void 0:e.customKeyFilter)??{}).length;if(!(t!=null&&t.length))return f;e:for(let r=0;r<t.length;r++){const[a,M=a]=v(t[r]),d={},u={};let l=-1;if((c||y>0)&&!(e!=null&&e.noFilter)){if(typeof a=="object"){const K=m||Object.keys(M);for(const n of K){const k=O(M,n),b=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=b?b(k,c,a):s(k,c,a),l!==-1&&l!==!1)b?d[n]=l:u[n]=l;else if((e==null?void 0:e.filterMode)==="every")continue e}}else l=s(a,c,a),l!==-1&&l!==!1&&(u.title=l);const h=Object.keys(u).length,F=Object.keys(d).length;if(!h&&!F||(e==null?void 0:e.filterMode)==="union"&&F!==y&&!h||(e==null?void 0:e.filterMode)==="intersection"&&(F!==y||!h))continue}f.push({index:r,matches:{...u,...d}})}return f}function C(t,c,e,f){const s=I([]),m=I(new Map),y=j(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));w(()=>{const r=typeof e=="function"?e():i(e),a=typeof r!="string"&&typeof r!="number"?"":String(r),M=x(y.value,a,{customKeyFilter:{...t.customKeyFilter,...i(f==null?void 0:f.customKeyFilter)},default:t.customFilter,filterKeys:t.filterKeys,filterMode:t.filterMode,noFilter:t.noFilter}),d=i(c),u=[],l=new Map;M.forEach(h=>{let{index:F,matches:K}=h;const n=d[F];u.push(n),l.set(n.value,K)}),s.value=u,m.value=l});function g(r){return m.value.get(r.value)}return{filteredItems:s,filteredMatches:m,getMatches:g}}export{A as m,C as u};
1
+ import{p as L,r as I,c as j,b_ as i,bk as w,bI as v,bX as O}from"./main-DTplblFl.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=L({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function x(t,c,e){var g;const f=[],s=(e==null?void 0:e.default)??S,m=e!=null&&e.filterKeys?v(e.filterKeys):!1,y=Object.keys((e==null?void 0:e.customKeyFilter)??{}).length;if(!(t!=null&&t.length))return f;e:for(let r=0;r<t.length;r++){const[a,M=a]=v(t[r]),d={},u={};let l=-1;if((c||y>0)&&!(e!=null&&e.noFilter)){if(typeof a=="object"){const K=m||Object.keys(M);for(const n of K){const k=O(M,n),b=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=b?b(k,c,a):s(k,c,a),l!==-1&&l!==!1)b?d[n]=l:u[n]=l;else if((e==null?void 0:e.filterMode)==="every")continue e}}else l=s(a,c,a),l!==-1&&l!==!1&&(u.title=l);const h=Object.keys(u).length,F=Object.keys(d).length;if(!h&&!F||(e==null?void 0:e.filterMode)==="union"&&F!==y&&!h||(e==null?void 0:e.filterMode)==="intersection"&&(F!==y||!h))continue}f.push({index:r,matches:{...u,...d}})}return f}function C(t,c,e,f){const s=I([]),m=I(new Map),y=j(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));w(()=>{const r=typeof e=="function"?e():i(e),a=typeof r!="string"&&typeof r!="number"?"":String(r),M=x(y.value,a,{customKeyFilter:{...t.customKeyFilter,...i(f==null?void 0:f.customKeyFilter)},default:t.customFilter,filterKeys:t.filterKeys,filterMode:t.filterMode,noFilter:t.noFilter}),d=i(c),u=[],l=new Map;M.forEach(h=>{let{index:F,matches:K}=h;const n=d[F];u.push(n),l.set(n.value,K)}),s.value=u,m.value=l});function g(r){return m.value.get(r.value)}return{filteredItems:s,filteredMatches:m,getMatches:g}}export{A as m,C as u};
@@ -1 +1 @@
1
- import{p as L,r as I,c as j,b_ as i,bk as w,bI as v,bX as O}from"./main-Dv8e0bMI.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=L({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function x(t,c,e){var g;const f=[],s=(e==null?void 0:e.default)??S,m=e!=null&&e.filterKeys?v(e.filterKeys):!1,y=Object.keys((e==null?void 0:e.customKeyFilter)??{}).length;if(!(t!=null&&t.length))return f;e:for(let r=0;r<t.length;r++){const[a,M=a]=v(t[r]),d={},u={};let l=-1;if((c||y>0)&&!(e!=null&&e.noFilter)){if(typeof a=="object"){const K=m||Object.keys(M);for(const n of K){const k=O(M,n),b=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=b?b(k,c,a):s(k,c,a),l!==-1&&l!==!1)b?d[n]=l:u[n]=l;else if((e==null?void 0:e.filterMode)==="every")continue e}}else l=s(a,c,a),l!==-1&&l!==!1&&(u.title=l);const h=Object.keys(u).length,F=Object.keys(d).length;if(!h&&!F||(e==null?void 0:e.filterMode)==="union"&&F!==y&&!h||(e==null?void 0:e.filterMode)==="intersection"&&(F!==y||!h))continue}f.push({index:r,matches:{...u,...d}})}return f}function C(t,c,e,f){const s=I([]),m=I(new Map),y=j(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));w(()=>{const r=typeof e=="function"?e():i(e),a=typeof r!="string"&&typeof r!="number"?"":String(r),M=x(y.value,a,{customKeyFilter:{...t.customKeyFilter,...i(f==null?void 0:f.customKeyFilter)},default:t.customFilter,filterKeys:t.filterKeys,filterMode:t.filterMode,noFilter:t.noFilter}),d=i(c),u=[],l=new Map;M.forEach(h=>{let{index:F,matches:K}=h;const n=d[F];u.push(n),l.set(n.value,K)}),s.value=u,m.value=l});function g(r){return m.value.get(r.value)}return{filteredItems:s,filteredMatches:m,getMatches:g}}export{A as m,C as u};
1
+ import{p as L,r as I,c as j,b_ as i,bk as w,bI as v,bX as O}from"./main-DTplblFl.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=L({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function x(t,c,e){var g;const f=[],s=(e==null?void 0:e.default)??S,m=e!=null&&e.filterKeys?v(e.filterKeys):!1,y=Object.keys((e==null?void 0:e.customKeyFilter)??{}).length;if(!(t!=null&&t.length))return f;e:for(let r=0;r<t.length;r++){const[a,M=a]=v(t[r]),d={},u={};let l=-1;if((c||y>0)&&!(e!=null&&e.noFilter)){if(typeof a=="object"){const K=m||Object.keys(M);for(const n of K){const k=O(M,n),b=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=b?b(k,c,a):s(k,c,a),l!==-1&&l!==!1)b?d[n]=l:u[n]=l;else if((e==null?void 0:e.filterMode)==="every")continue e}}else l=s(a,c,a),l!==-1&&l!==!1&&(u.title=l);const h=Object.keys(u).length,F=Object.keys(d).length;if(!h&&!F||(e==null?void 0:e.filterMode)==="union"&&F!==y&&!h||(e==null?void 0:e.filterMode)==="intersection"&&(F!==y||!h))continue}f.push({index:r,matches:{...u,...d}})}return f}function C(t,c,e,f){const s=I([]),m=I(new Map),y=j(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));w(()=>{const r=typeof e=="function"?e():i(e),a=typeof r!="string"&&typeof r!="number"?"":String(r),M=x(y.value,a,{customKeyFilter:{...t.customKeyFilter,...i(f==null?void 0:f.customKeyFilter)},default:t.customFilter,filterKeys:t.filterKeys,filterMode:t.filterMode,noFilter:t.noFilter}),d=i(c),u=[],l=new Map;M.forEach(h=>{let{index:F,matches:K}=h;const n=d[F];u.push(n),l.set(n.value,K)}),s.value=u,m.value=l});function g(r){return m.value.get(r.value)}return{filteredItems:s,filteredMatches:m,getMatches:g}}export{A as m,C as u};
@@ -1 +1 @@
1
- import{_ as p,by as b,E as m,B as y,A as g,v as i,w as k,l as n,q as o,n as d,y as w,z as h,a as v,H as T,F as B}from"./main-Dv8e0bMI.js";import{useAdminStore as f}from"./admin-Izb24SXM.js";import{V as x}from"./VTable-CYv4gUUt.js";import{b as C}from"./VSelectionControl-L41n5bnX.js";import{V}from"./forwardRefs-DNAemYUk.js";import{V as S}from"./VCheckbox-pHjSEgdV.js";import"./VCheckboxBtn-DBKqrZGq.js";const U="Auto Update",A="Folder View",F="Import Metadata on Library Scan",I="Non Users",_="Registration",E="Send Stats",N="Banner Text",R={AU:U,FV:A,IM:F,NU:I,RG:_,ST:E,BT:N},D="If enabled, codex will attempt to update the codex python package once a day and restart the server if an update occurred. Not advisable if running from Docker as running containers aren't meant to hold state and will be rebuilt if you update the image. Look into services that automatically update docker images instead.",M="By default all Codex features, including bookmarking, are available to users who are not logged in. You may disable this feature and Codex will hide its browser and reader and disable its API from anyone who is not logged in as a user.",G="By default users' bookmarks and preferences are saved in an anonymous browser session. Users can create a username and password to save their bookmarks between browsers. You may disable this feature. Admins may still create users.",L=`By default, codex provides a "Folder View" which mimics the directory hierarchy of the libraries that you've added to Codex. You may disable this feature. The database style browser view is always available. This flag also enables and disables the "Filename" sort option and the path from search indexing.`,Y="If disabled, Codex will not bulk import metadata from comic libraries when they are scanned and only import folders and filenames. Instead, metadata will be loaded lazily as comics are read. This makes importing comics fast, but disables most of the metadata browser functionality, making codex mostly a file tree browser.",z="Anonymously send the contents of the Admin Stats tab once a week to understand how people use Codex and improve the software. The server collecting the stats does not log or store your IP. The author considers all personally identifying information and the names and metadata of your comics to be a radioactive privacy violation and will never be exposed to it. Only the information you see on the stats page is collected. Your API Key is not sent. Stats are not sent for the first 24 hours to allow opt-out.",O="A customized text headline that appears at the top of every codex page and prefixes the browser title.",P={AU:D,NU:M,RG:G,FV:L,IM:Y,ST:z,BT:O},$={name:"AdminFlagsTab",components:{},data(){return{DESC:P,banner:"",mdiContentSaveOutline:b,lastUpdate:{name:"",field:void 0}}},computed:{...m(y,["formErrors"]),...m(f,{flags:e=>e.flags}),storeBanner(){for(const e of this.flags)if(e.key==="BT")return e.value;return""}},watch:{storeBanner(e){this.banner=e}},mounted(){this.loadTables(["Flag"])},methods:{...g(f,["updateRow","clearErrors","loadTables"]),changeCol(e,a,c){this.lastUpdate.name=e,this.lastUpdate.field=a;const u={[a]:c};this.updateRow("Flag",e,u)},getFormErrors(e,a){if(e===this.lastUpdate.name&&a===this.lastUpdate.field)return this.formErrors},title(e){return R[e.key]},colspan(e){return e.key==="BT"?1:2}}},q=["colspan"],H={class:"desc"},K={key:0,class:"bannerTextField"};function j(e,a,c,u,s,r){return n(),i(x,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:k(()=>[a[2]||(a[2]=o("thead",null,[o("tr",null,[o("th",null,"Description"),o("th",null,"Value"),o("th",null,"Enabled")])],-1)),o("tbody",null,[(n(!0),d(B,null,w(e.flags,t=>(n(),d("tr",{key:`f${t.key}`},[o("td",{class:"nameCol",colspan:r.colspan(t)},[o("h4",null,h(r.title(t)),1),o("p",H,h(s.DESC[t.key]),1)],8,q),t.key==="BT"?(n(),d("td",K,[v(C,{"model-value":s.banner,label:"Banner",clearable:"","hide-details":"auto","onUpdate:modelValue":a[0]||(a[0]=l=>s.banner=l),"onClick:clear":a[1]||(a[1]=l=>s.banner="")},null,8,["model-value"])])):T("",!0),o("td",null,[t.key==="BT"?(n(),i(V,{key:0,icon:s.mdiContentSaveOutline,title:"Save Banner",onClick:l=>r.changeCol(t.key,"value",s.banner)},null,8,["icon","onClick"])):(n(),i(S,{key:1,"model-value":t.on,"true-value":!0,"error-messages":r.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":l=>r.changeCol(t.key,"on",l)},null,8,["model-value","error-messages","onUpdate:modelValue"]))])]))),128))])]),_:1},8,["items"])}const te=p($,[["render",j],["__scopeId","data-v-860cbc89"]]);export{te as default};
1
+ import{_ as p,by as b,E as m,B as y,A as g,v as i,w as k,l as n,q as o,n as d,y as w,z as h,a as v,H as T,F as B}from"./main-DTplblFl.js";import{useAdminStore as f}from"./admin-BYCwfr2h.js";import{V as x}from"./VTable-Bpr_wGHh.js";import{b as C}from"./VSelectionControl-BJm6ORIw.js";import{V}from"./forwardRefs-hLICxMEm.js";import{V as S}from"./VCheckbox-BV02IXFk.js";import"./VCheckboxBtn-DRCMElDO.js";const U="Auto Update",A="Folder View",F="Import Metadata on Library Scan",I="Non Users",_="Registration",E="Send Stats",N="Banner Text",R={AU:U,FV:A,IM:F,NU:I,RG:_,ST:E,BT:N},D="If enabled, codex will attempt to update the codex python package once a day and restart the server if an update occurred. Not advisable if running from Docker as running containers aren't meant to hold state and will be rebuilt if you update the image. Look into services that automatically update docker images instead.",M="By default all Codex features, including bookmarking, are available to users who are not logged in. You may disable this feature and Codex will hide its browser and reader and disable its API from anyone who is not logged in as a user.",G="By default users' bookmarks and preferences are saved in an anonymous browser session. Users can create a username and password to save their bookmarks between browsers. You may disable this feature. Admins may still create users.",L=`By default, codex provides a "Folder View" which mimics the directory hierarchy of the libraries that you've added to Codex. You may disable this feature. The database style browser view is always available. This flag also enables and disables the "Filename" sort option and the path from search indexing.`,Y="If disabled, Codex will not bulk import metadata from comic libraries when they are scanned and only import folders and filenames. Instead, metadata will be loaded lazily as comics are read. This makes importing comics fast, but disables most of the metadata browser functionality, making codex mostly a file tree browser.",z="Anonymously send the contents of the Admin Stats tab once a week to understand how people use Codex and improve the software. The server collecting the stats does not log or store your IP. The author considers all personally identifying information and the names and metadata of your comics to be a radioactive privacy violation and will never be exposed to it. Only the information you see on the stats page is collected. Your API Key is not sent. Stats are not sent for the first 24 hours to allow opt-out.",O="A customized text headline that appears at the top of every codex page and prefixes the browser title.",P={AU:D,NU:M,RG:G,FV:L,IM:Y,ST:z,BT:O},$={name:"AdminFlagsTab",components:{},data(){return{DESC:P,banner:"",mdiContentSaveOutline:b,lastUpdate:{name:"",field:void 0}}},computed:{...m(y,["formErrors"]),...m(f,{flags:e=>e.flags}),storeBanner(){for(const e of this.flags)if(e.key==="BT")return e.value;return""}},watch:{storeBanner(e){this.banner=e}},mounted(){this.loadTables(["Flag"])},methods:{...g(f,["updateRow","clearErrors","loadTables"]),changeCol(e,a,c){this.lastUpdate.name=e,this.lastUpdate.field=a;const u={[a]:c};this.updateRow("Flag",e,u)},getFormErrors(e,a){if(e===this.lastUpdate.name&&a===this.lastUpdate.field)return this.formErrors},title(e){return R[e.key]},colspan(e){return e.key==="BT"?1:2}}},q=["colspan"],H={class:"desc"},K={key:0,class:"bannerTextField"};function j(e,a,c,u,s,r){return n(),i(x,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:k(()=>[a[2]||(a[2]=o("thead",null,[o("tr",null,[o("th",null,"Description"),o("th",null,"Value"),o("th",null,"Enabled")])],-1)),o("tbody",null,[(n(!0),d(B,null,w(e.flags,t=>(n(),d("tr",{key:`f${t.key}`},[o("td",{class:"nameCol",colspan:r.colspan(t)},[o("h4",null,h(r.title(t)),1),o("p",H,h(s.DESC[t.key]),1)],8,q),t.key==="BT"?(n(),d("td",K,[v(C,{"model-value":s.banner,label:"Banner",clearable:"","hide-details":"auto","onUpdate:modelValue":a[0]||(a[0]=l=>s.banner=l),"onClick:clear":a[1]||(a[1]=l=>s.banner="")},null,8,["model-value"])])):T("",!0),o("td",null,[t.key==="BT"?(n(),i(V,{key:0,icon:s.mdiContentSaveOutline,title:"Save Banner",onClick:l=>r.changeCol(t.key,"value",s.banner)},null,8,["icon","onClick"])):(n(),i(S,{key:1,"model-value":t.on,"true-value":!0,"error-messages":r.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":l=>r.changeCol(t.key,"on",l)},null,8,["model-value","error-messages","onUpdate:modelValue"]))])]))),128))])]),_:1},8,["items"])}const te=p($,[["render",j],["__scopeId","data-v-860cbc89"]]);export{te as default};
@@ -1 +1 @@
1
- import{_ as p,by as b,E as m,B as y,A as g,v as i,w as k,l as n,q as o,n as d,y as w,z as h,a as v,H as T,F as B}from"./main-Dv8e0bMI.js";import{useAdminStore as f}from"./admin-Izb24SXM.js";import{V as x}from"./VTable-CYv4gUUt.js";import{b as C}from"./VSelectionControl-L41n5bnX.js";import{V}from"./forwardRefs-DNAemYUk.js";import{V as S}from"./VCheckbox-pHjSEgdV.js";import"./VCheckboxBtn-DBKqrZGq.js";const U="Auto Update",A="Folder View",F="Import Metadata on Library Scan",I="Non Users",_="Registration",E="Send Stats",N="Banner Text",R={AU:U,FV:A,IM:F,NU:I,RG:_,ST:E,BT:N},D="If enabled, codex will attempt to update the codex python package once a day and restart the server if an update occurred. Not advisable if running from Docker as running containers aren't meant to hold state and will be rebuilt if you update the image. Look into services that automatically update docker images instead.",M="By default all Codex features, including bookmarking, are available to users who are not logged in. You may disable this feature and Codex will hide its browser and reader and disable its API from anyone who is not logged in as a user.",G="By default users' bookmarks and preferences are saved in an anonymous browser session. Users can create a username and password to save their bookmarks between browsers. You may disable this feature. Admins may still create users.",L=`By default, codex provides a "Folder View" which mimics the directory hierarchy of the libraries that you've added to Codex. You may disable this feature. The database style browser view is always available. This flag also enables and disables the "Filename" sort option and the path from search indexing.`,Y="If disabled, Codex will not bulk import metadata from comic libraries when they are scanned and only import folders and filenames. Instead, metadata will be loaded lazily as comics are read. This makes importing comics fast, but disables most of the metadata browser functionality, making codex mostly a file tree browser.",z="Anonymously send the contents of the Admin Stats tab once a week to understand how people use Codex and improve the software. The server collecting the stats does not log or store your IP. The author considers all personally identifying information and the names and metadata of your comics to be a radioactive privacy violation and will never be exposed to it. Only the information you see on the stats page is collected. Your API Key is not sent. Stats are not sent for the first 24 hours to allow opt-out.",O="A customized text headline that appears at the top of every codex page and prefixes the browser title.",P={AU:D,NU:M,RG:G,FV:L,IM:Y,ST:z,BT:O},$={name:"AdminFlagsTab",components:{},data(){return{DESC:P,banner:"",mdiContentSaveOutline:b,lastUpdate:{name:"",field:void 0}}},computed:{...m(y,["formErrors"]),...m(f,{flags:e=>e.flags}),storeBanner(){for(const e of this.flags)if(e.key==="BT")return e.value;return""}},watch:{storeBanner(e){this.banner=e}},mounted(){this.loadTables(["Flag"])},methods:{...g(f,["updateRow","clearErrors","loadTables"]),changeCol(e,a,c){this.lastUpdate.name=e,this.lastUpdate.field=a;const u={[a]:c};this.updateRow("Flag",e,u)},getFormErrors(e,a){if(e===this.lastUpdate.name&&a===this.lastUpdate.field)return this.formErrors},title(e){return R[e.key]},colspan(e){return e.key==="BT"?1:2}}},q=["colspan"],H={class:"desc"},K={key:0,class:"bannerTextField"};function j(e,a,c,u,s,r){return n(),i(x,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:k(()=>[a[2]||(a[2]=o("thead",null,[o("tr",null,[o("th",null,"Description"),o("th",null,"Value"),o("th",null,"Enabled")])],-1)),o("tbody",null,[(n(!0),d(B,null,w(e.flags,t=>(n(),d("tr",{key:`f${t.key}`},[o("td",{class:"nameCol",colspan:r.colspan(t)},[o("h4",null,h(r.title(t)),1),o("p",H,h(s.DESC[t.key]),1)],8,q),t.key==="BT"?(n(),d("td",K,[v(C,{"model-value":s.banner,label:"Banner",clearable:"","hide-details":"auto","onUpdate:modelValue":a[0]||(a[0]=l=>s.banner=l),"onClick:clear":a[1]||(a[1]=l=>s.banner="")},null,8,["model-value"])])):T("",!0),o("td",null,[t.key==="BT"?(n(),i(V,{key:0,icon:s.mdiContentSaveOutline,title:"Save Banner",onClick:l=>r.changeCol(t.key,"value",s.banner)},null,8,["icon","onClick"])):(n(),i(S,{key:1,"model-value":t.on,"true-value":!0,"error-messages":r.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":l=>r.changeCol(t.key,"on",l)},null,8,["model-value","error-messages","onUpdate:modelValue"]))])]))),128))])]),_:1},8,["items"])}const te=p($,[["render",j],["__scopeId","data-v-860cbc89"]]);export{te as default};
1
+ import{_ as p,by as b,E as m,B as y,A as g,v as i,w as k,l as n,q as o,n as d,y as w,z as h,a as v,H as T,F as B}from"./main-DTplblFl.js";import{useAdminStore as f}from"./admin-BYCwfr2h.js";import{V as x}from"./VTable-Bpr_wGHh.js";import{b as C}from"./VSelectionControl-BJm6ORIw.js";import{V}from"./forwardRefs-hLICxMEm.js";import{V as S}from"./VCheckbox-BV02IXFk.js";import"./VCheckboxBtn-DRCMElDO.js";const U="Auto Update",A="Folder View",F="Import Metadata on Library Scan",I="Non Users",_="Registration",E="Send Stats",N="Banner Text",R={AU:U,FV:A,IM:F,NU:I,RG:_,ST:E,BT:N},D="If enabled, codex will attempt to update the codex python package once a day and restart the server if an update occurred. Not advisable if running from Docker as running containers aren't meant to hold state and will be rebuilt if you update the image. Look into services that automatically update docker images instead.",M="By default all Codex features, including bookmarking, are available to users who are not logged in. You may disable this feature and Codex will hide its browser and reader and disable its API from anyone who is not logged in as a user.",G="By default users' bookmarks and preferences are saved in an anonymous browser session. Users can create a username and password to save their bookmarks between browsers. You may disable this feature. Admins may still create users.",L=`By default, codex provides a "Folder View" which mimics the directory hierarchy of the libraries that you've added to Codex. You may disable this feature. The database style browser view is always available. This flag also enables and disables the "Filename" sort option and the path from search indexing.`,Y="If disabled, Codex will not bulk import metadata from comic libraries when they are scanned and only import folders and filenames. Instead, metadata will be loaded lazily as comics are read. This makes importing comics fast, but disables most of the metadata browser functionality, making codex mostly a file tree browser.",z="Anonymously send the contents of the Admin Stats tab once a week to understand how people use Codex and improve the software. The server collecting the stats does not log or store your IP. The author considers all personally identifying information and the names and metadata of your comics to be a radioactive privacy violation and will never be exposed to it. Only the information you see on the stats page is collected. Your API Key is not sent. Stats are not sent for the first 24 hours to allow opt-out.",O="A customized text headline that appears at the top of every codex page and prefixes the browser title.",P={AU:D,NU:M,RG:G,FV:L,IM:Y,ST:z,BT:O},$={name:"AdminFlagsTab",components:{},data(){return{DESC:P,banner:"",mdiContentSaveOutline:b,lastUpdate:{name:"",field:void 0}}},computed:{...m(y,["formErrors"]),...m(f,{flags:e=>e.flags}),storeBanner(){for(const e of this.flags)if(e.key==="BT")return e.value;return""}},watch:{storeBanner(e){this.banner=e}},mounted(){this.loadTables(["Flag"])},methods:{...g(f,["updateRow","clearErrors","loadTables"]),changeCol(e,a,c){this.lastUpdate.name=e,this.lastUpdate.field=a;const u={[a]:c};this.updateRow("Flag",e,u)},getFormErrors(e,a){if(e===this.lastUpdate.name&&a===this.lastUpdate.field)return this.formErrors},title(e){return R[e.key]},colspan(e){return e.key==="BT"?1:2}}},q=["colspan"],H={class:"desc"},K={key:0,class:"bannerTextField"};function j(e,a,c,u,s,r){return n(),i(x,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:k(()=>[a[2]||(a[2]=o("thead",null,[o("tr",null,[o("th",null,"Description"),o("th",null,"Value"),o("th",null,"Enabled")])],-1)),o("tbody",null,[(n(!0),d(B,null,w(e.flags,t=>(n(),d("tr",{key:`f${t.key}`},[o("td",{class:"nameCol",colspan:r.colspan(t)},[o("h4",null,h(r.title(t)),1),o("p",H,h(s.DESC[t.key]),1)],8,q),t.key==="BT"?(n(),d("td",K,[v(C,{"model-value":s.banner,label:"Banner",clearable:"","hide-details":"auto","onUpdate:modelValue":a[0]||(a[0]=l=>s.banner=l),"onClick:clear":a[1]||(a[1]=l=>s.banner="")},null,8,["model-value"])])):T("",!0),o("td",null,[t.key==="BT"?(n(),i(V,{key:0,icon:s.mdiContentSaveOutline,title:"Save Banner",onClick:l=>r.changeCol(t.key,"value",s.banner)},null,8,["icon","onClick"])):(n(),i(S,{key:1,"model-value":t.on,"true-value":!0,"error-messages":r.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":l=>r.changeCol(t.key,"on",l)},null,8,["model-value","error-messages","onUpdate:modelValue"]))])]))),128))])]),_:1},8,["items"])}const te=p($,[["render",j],["__scopeId","data-v-860cbc89"]]);export{te as default};