codex 1.6.6__py3-none-any.whl → 1.6.8__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 (394) hide show
  1. codex/static_root/assets/{VCheckbox-t2lVZLiy.85aa40c3f0ec.js → VCheckbox-DE3METqJ.947b68d61150.js} +1 -1
  2. codex/static_root/assets/VCheckbox-DE3METqJ.947b68d61150.js.br +0 -0
  3. codex/static_root/assets/VCheckbox-DE3METqJ.947b68d61150.js.gz +0 -0
  4. codex/static_root/assets/{VCheckbox-t2lVZLiy.js → VCheckbox-DE3METqJ.js} +1 -1
  5. codex/static_root/assets/VCheckbox-DE3METqJ.js.br +0 -0
  6. codex/static_root/assets/VCheckbox-DE3METqJ.js.gz +0 -0
  7. codex/static_root/assets/{VCheckboxBtn-C6Ngrnnm.74cb2e3d8c74.js → VCheckboxBtn-DetOzpfX.e4293f13e16f.js} +1 -1
  8. codex/static_root/assets/VCheckboxBtn-DetOzpfX.e4293f13e16f.js.br +0 -0
  9. codex/static_root/assets/VCheckboxBtn-DetOzpfX.e4293f13e16f.js.gz +0 -0
  10. codex/static_root/assets/{VCheckboxBtn-C6Ngrnnm.js → VCheckboxBtn-DetOzpfX.js} +1 -1
  11. codex/static_root/assets/VCheckboxBtn-DetOzpfX.js.br +0 -0
  12. codex/static_root/assets/VCheckboxBtn-DetOzpfX.js.gz +0 -0
  13. codex/static_root/assets/{VCombobox-Sd-OIVIP.7bf2adc355ee.js → VCombobox-D2XmpiHi.3427b660b686.js} +1 -1
  14. codex/static_root/assets/VCombobox-D2XmpiHi.3427b660b686.js.br +0 -0
  15. codex/static_root/assets/VCombobox-D2XmpiHi.3427b660b686.js.gz +0 -0
  16. codex/static_root/assets/{VCombobox-Sd-OIVIP.js → VCombobox-D2XmpiHi.js} +1 -1
  17. codex/static_root/assets/VCombobox-D2XmpiHi.js.br +0 -0
  18. codex/static_root/assets/VCombobox-D2XmpiHi.js.gz +0 -0
  19. codex/static_root/assets/{VDialog-BNfcpCH0.0d18beaa3249.js → VDialog-BXw6XFu7.38cde34df95a.js} +1 -1
  20. codex/static_root/assets/VDialog-BXw6XFu7.38cde34df95a.js.br +0 -0
  21. codex/static_root/assets/VDialog-BXw6XFu7.38cde34df95a.js.gz +0 -0
  22. codex/static_root/assets/{VDialog-BNfcpCH0.js → VDialog-BXw6XFu7.js} +1 -1
  23. codex/static_root/assets/VDialog-BXw6XFu7.js.br +0 -0
  24. codex/static_root/assets/VDialog-BXw6XFu7.js.gz +0 -0
  25. codex/static_root/assets/VExpansionPanels-cdsBiWJW.289873cadd1b.js +1 -0
  26. codex/static_root/assets/VExpansionPanels-cdsBiWJW.289873cadd1b.js.br +0 -0
  27. codex/static_root/assets/VExpansionPanels-cdsBiWJW.289873cadd1b.js.gz +0 -0
  28. codex/static_root/assets/VExpansionPanels-cdsBiWJW.js +1 -0
  29. codex/static_root/assets/VExpansionPanels-cdsBiWJW.js.br +0 -0
  30. codex/static_root/assets/VExpansionPanels-cdsBiWJW.js.gz +0 -0
  31. codex/static_root/assets/VRadioGroup-DPsPhrgJ.2232643fa4b2.js +1 -0
  32. codex/static_root/assets/VRadioGroup-DPsPhrgJ.2232643fa4b2.js.br +0 -0
  33. codex/static_root/assets/VRadioGroup-DPsPhrgJ.2232643fa4b2.js.gz +0 -0
  34. codex/static_root/assets/VRadioGroup-DPsPhrgJ.js +1 -0
  35. codex/static_root/assets/VRadioGroup-DPsPhrgJ.js.br +0 -0
  36. codex/static_root/assets/VRadioGroup-DPsPhrgJ.js.gz +0 -0
  37. codex/static_root/assets/{VSelect-B-kyTG8I.c8d8e2815ac0.js → VSelect-wpuzLrPv.f46f25efca5b.js} +1 -1
  38. codex/static_root/assets/VSelect-wpuzLrPv.f46f25efca5b.js.br +0 -0
  39. codex/static_root/assets/VSelect-wpuzLrPv.f46f25efca5b.js.gz +0 -0
  40. codex/static_root/assets/{VSelect-B-kyTG8I.js → VSelect-wpuzLrPv.js} +1 -1
  41. codex/static_root/assets/VSelect-wpuzLrPv.js.br +0 -0
  42. codex/static_root/assets/VSelect-wpuzLrPv.js.gz +0 -0
  43. codex/static_root/assets/VSelectionControl-AnuOsZjr.0ca164ae628f.css +1 -0
  44. codex/static_root/assets/VSelectionControl-AnuOsZjr.0ca164ae628f.css.br +0 -0
  45. codex/static_root/assets/VSelectionControl-AnuOsZjr.0ca164ae628f.css.gz +0 -0
  46. codex/static_root/assets/VSelectionControl-AnuOsZjr.css +1 -0
  47. codex/static_root/assets/VSelectionControl-AnuOsZjr.css.br +0 -0
  48. codex/static_root/assets/VSelectionControl-AnuOsZjr.css.gz +0 -0
  49. codex/static_root/assets/VSelectionControl-DTgtf_T6.bbb99484db2e.js +1 -0
  50. codex/static_root/assets/VSelectionControl-DTgtf_T6.bbb99484db2e.js.br +0 -0
  51. codex/static_root/assets/VSelectionControl-DTgtf_T6.bbb99484db2e.js.gz +0 -0
  52. codex/static_root/assets/VSelectionControl-DTgtf_T6.js +1 -0
  53. codex/static_root/assets/VSelectionControl-DTgtf_T6.js.br +0 -0
  54. codex/static_root/assets/VSelectionControl-DTgtf_T6.js.gz +0 -0
  55. codex/static_root/assets/{VSlideGroup-BCaUdgHs.3b1cdf2acbda.js → VSlideGroup-KhqCfdKQ.984b37842a8b.js} +1 -1
  56. codex/static_root/assets/VSlideGroup-KhqCfdKQ.984b37842a8b.js.br +0 -0
  57. codex/static_root/assets/VSlideGroup-KhqCfdKQ.984b37842a8b.js.gz +0 -0
  58. codex/static_root/assets/{VSlideGroup-BCaUdgHs.js → VSlideGroup-KhqCfdKQ.js} +1 -1
  59. codex/static_root/assets/VSlideGroup-KhqCfdKQ.js.br +0 -0
  60. codex/static_root/assets/VSlideGroup-KhqCfdKQ.js.gz +0 -0
  61. codex/static_root/assets/{VTable-BTvFrnRE.f7e39d2399db.js → VTable-CJJzxZcw.edb1bb582e5c.js} +1 -1
  62. codex/static_root/assets/VTable-CJJzxZcw.edb1bb582e5c.js.br +0 -0
  63. codex/static_root/assets/VTable-CJJzxZcw.edb1bb582e5c.js.gz +0 -0
  64. codex/static_root/assets/{VTable-BTvFrnRE.js → VTable-CJJzxZcw.js} +1 -1
  65. codex/static_root/assets/VTable-CJJzxZcw.js.br +0 -0
  66. codex/static_root/assets/VTable-CJJzxZcw.js.gz +0 -0
  67. codex/static_root/assets/VTextField-BJxb_QuX.79ef5fb485f2.js +1 -0
  68. codex/static_root/assets/VTextField-BJxb_QuX.79ef5fb485f2.js.br +0 -0
  69. codex/static_root/assets/VTextField-BJxb_QuX.79ef5fb485f2.js.gz +0 -0
  70. codex/static_root/assets/VTextField-BJxb_QuX.js +1 -0
  71. codex/static_root/assets/VTextField-BJxb_QuX.js.br +0 -0
  72. codex/static_root/assets/VTextField-BJxb_QuX.js.gz +0 -0
  73. codex/static_root/assets/VTextField-Bc1tD4nS.2026682c8437.css +1 -0
  74. codex/static_root/assets/VTextField-Bc1tD4nS.2026682c8437.css.br +0 -0
  75. codex/static_root/assets/VTextField-Bc1tD4nS.2026682c8437.css.gz +0 -0
  76. codex/static_root/assets/VTextField-Bc1tD4nS.css +1 -0
  77. codex/static_root/assets/VTextField-Bc1tD4nS.css.br +0 -0
  78. codex/static_root/assets/VTextField-Bc1tD4nS.css.gz +0 -0
  79. codex/static_root/assets/{VWindowItem-SAyGzszW.6aac49e0cb25.js → VWindowItem-BWJJgE5I.8daf8cde5589.js} +1 -1
  80. codex/static_root/assets/VWindowItem-BWJJgE5I.8daf8cde5589.js.br +0 -0
  81. codex/static_root/assets/VWindowItem-BWJJgE5I.8daf8cde5589.js.gz +0 -0
  82. codex/static_root/assets/{VWindowItem-SAyGzszW.js → VWindowItem-BWJJgE5I.js} +1 -1
  83. codex/static_root/assets/VWindowItem-BWJJgE5I.js.br +0 -0
  84. codex/static_root/assets/VWindowItem-BWJJgE5I.js.gz +0 -0
  85. codex/static_root/assets/{admin-Crxy4nNV.33ef855fbf4b.js → admin-DrXckZDB.5feb8fde2d3a.js} +1 -1
  86. codex/static_root/assets/admin-DrXckZDB.5feb8fde2d3a.js.br +0 -0
  87. codex/static_root/assets/admin-DrXckZDB.5feb8fde2d3a.js.gz +0 -0
  88. codex/static_root/assets/{admin-Crxy4nNV.js → admin-DrXckZDB.js} +1 -1
  89. codex/static_root/assets/admin-DrXckZDB.js.br +0 -0
  90. codex/static_root/assets/admin-DrXckZDB.js.gz +0 -0
  91. codex/static_root/assets/{admin-drawer-panel-CtwFZKqt.69ac4d71d030.js → admin-drawer-panel-Crj9u2NV.6b03e2a2ae14.js} +20 -20
  92. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.6b03e2a2ae14.js.br +0 -0
  93. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.6b03e2a2ae14.js.gz +0 -0
  94. codex/static_root/assets/{admin-drawer-panel-CtwFZKqt.js → admin-drawer-panel-Crj9u2NV.js} +20 -20
  95. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.js.br +0 -0
  96. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.js.gz +0 -0
  97. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.css +1 -0
  98. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.css.br +0 -0
  99. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.css.gz +0 -0
  100. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.fb4e885ba7c4.css +1 -0
  101. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.fb4e885ba7c4.css.br +0 -0
  102. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.fb4e885ba7c4.css.gz +0 -0
  103. codex/static_root/assets/{browser-5mT8zJ-k.js → browser-C50xLvMD.ebeac0d428d2.js} +1 -1
  104. codex/static_root/assets/browser-C50xLvMD.ebeac0d428d2.js.br +0 -0
  105. codex/static_root/assets/browser-C50xLvMD.ebeac0d428d2.js.gz +0 -0
  106. codex/static_root/assets/{browser-5mT8zJ-k.c8c31ef41b80.js → browser-C50xLvMD.js} +1 -1
  107. codex/static_root/assets/browser-C50xLvMD.js.br +0 -0
  108. codex/static_root/assets/browser-C50xLvMD.js.gz +0 -0
  109. codex/static_root/assets/{change-password-dialog-CHOnC-Zr.ea9e9979901f.js → change-password-dialog-Cm6AnxGf.66f4e604144b.js} +1 -1
  110. codex/static_root/assets/change-password-dialog-Cm6AnxGf.66f4e604144b.js.br +0 -0
  111. codex/static_root/assets/change-password-dialog-Cm6AnxGf.66f4e604144b.js.gz +0 -0
  112. codex/static_root/assets/{change-password-dialog-CHOnC-Zr.js → change-password-dialog-Cm6AnxGf.js} +1 -1
  113. codex/static_root/assets/change-password-dialog-Cm6AnxGf.js.br +0 -0
  114. codex/static_root/assets/change-password-dialog-Cm6AnxGf.js.gz +0 -0
  115. codex/static_root/assets/{confirm-dialog-BEylmNEi.1770e4c440bc.js → confirm-dialog-Mznixjrb.927eaa9bea39.js} +1 -1
  116. codex/static_root/assets/confirm-dialog-Mznixjrb.927eaa9bea39.js.br +0 -0
  117. codex/static_root/assets/confirm-dialog-Mznixjrb.927eaa9bea39.js.gz +0 -0
  118. codex/static_root/assets/{confirm-dialog-BEylmNEi.js → confirm-dialog-Mznixjrb.js} +1 -1
  119. codex/static_root/assets/confirm-dialog-Mznixjrb.js.br +0 -0
  120. codex/static_root/assets/confirm-dialog-Mznixjrb.js.gz +0 -0
  121. codex/static_root/assets/{datetime-column-D2cjCSko.0fa890d6ca0f.js → datetime-column-DqSk_iUb.260bcbb4c8e2.js} +1 -1
  122. codex/static_root/assets/datetime-column-DqSk_iUb.260bcbb4c8e2.js.br +0 -0
  123. codex/static_root/assets/datetime-column-DqSk_iUb.260bcbb4c8e2.js.gz +0 -0
  124. codex/static_root/assets/{datetime-column-D2cjCSko.js → datetime-column-DqSk_iUb.js} +1 -1
  125. codex/static_root/assets/datetime-column-DqSk_iUb.js.br +0 -0
  126. codex/static_root/assets/datetime-column-DqSk_iUb.js.gz +0 -0
  127. codex/static_root/assets/{filter-kHxo3w0C.81765ef36d0b.js → filter-CvqVrkAJ.8996d1b1db2a.js} +1 -1
  128. codex/static_root/assets/filter-CvqVrkAJ.8996d1b1db2a.js.br +0 -0
  129. codex/static_root/assets/filter-CvqVrkAJ.8996d1b1db2a.js.gz +0 -0
  130. codex/static_root/assets/{filter-kHxo3w0C.js → filter-CvqVrkAJ.js} +1 -1
  131. codex/static_root/assets/filter-CvqVrkAJ.js.br +0 -0
  132. codex/static_root/assets/filter-CvqVrkAJ.js.gz +0 -0
  133. codex/static_root/assets/{flag-tab-CHpJEV6e.9bef68d8019c.js → flag-tab-Bdh3jAbG.7731e3229cca.js} +1 -1
  134. codex/static_root/assets/flag-tab-Bdh3jAbG.7731e3229cca.js.br +0 -0
  135. codex/static_root/assets/flag-tab-Bdh3jAbG.7731e3229cca.js.gz +0 -0
  136. codex/static_root/assets/{flag-tab-CHpJEV6e.js → flag-tab-Bdh3jAbG.js} +1 -1
  137. codex/static_root/assets/flag-tab-Bdh3jAbG.js.br +0 -0
  138. codex/static_root/assets/flag-tab-Bdh3jAbG.js.gz +0 -0
  139. codex/static_root/assets/{group-tab-D7hMON1p.c43da9487835.js → group-tab-89t0MyqI.1c743da230be.js} +1 -1
  140. codex/static_root/assets/group-tab-89t0MyqI.1c743da230be.js.br +0 -0
  141. codex/static_root/assets/group-tab-89t0MyqI.1c743da230be.js.gz +0 -0
  142. codex/static_root/assets/{group-tab-D7hMON1p.js → group-tab-89t0MyqI.js} +1 -1
  143. codex/static_root/assets/group-tab-89t0MyqI.js.br +0 -0
  144. codex/static_root/assets/group-tab-89t0MyqI.js.gz +0 -0
  145. codex/static_root/assets/{http-error-CpMJuFj6.8b3a74a1afb7.js → http-error-BJTIqHG7.68507d59e73a.js} +1 -1
  146. codex/static_root/assets/http-error-BJTIqHG7.68507d59e73a.js.br +3 -0
  147. codex/static_root/assets/http-error-BJTIqHG7.68507d59e73a.js.gz +0 -0
  148. codex/static_root/assets/{http-error-CpMJuFj6.js → http-error-BJTIqHG7.js} +1 -1
  149. codex/static_root/assets/http-error-BJTIqHG7.js.br +3 -0
  150. codex/static_root/assets/http-error-BJTIqHG7.js.gz +0 -0
  151. codex/static_root/assets/{library-tab-DbtKQkEv.js → library-tab-DoebKL9-.6eef922082b3.js} +1 -1
  152. codex/static_root/assets/library-tab-DoebKL9-.6eef922082b3.js.br +0 -0
  153. codex/static_root/assets/library-tab-DoebKL9-.6eef922082b3.js.gz +0 -0
  154. codex/static_root/assets/{library-tab-DbtKQkEv.cd1b5cb4098d.js → library-tab-DoebKL9-.js} +1 -1
  155. codex/static_root/assets/library-tab-DoebKL9-.js.br +0 -0
  156. codex/static_root/assets/library-tab-DoebKL9-.js.gz +0 -0
  157. codex/static_root/assets/{main-DG4M9J1O.636c9d4cd8a9.js → main-DArXKRWW.47a8064195fe.js} +3 -3
  158. codex/static_root/assets/main-DArXKRWW.47a8064195fe.js.br +0 -0
  159. codex/static_root/assets/main-DArXKRWW.47a8064195fe.js.gz +0 -0
  160. codex/static_root/assets/{main-DG4M9J1O.js → main-DArXKRWW.js} +3 -3
  161. codex/static_root/assets/main-DArXKRWW.js.br +0 -0
  162. codex/static_root/assets/main-DArXKRWW.js.gz +0 -0
  163. codex/static_root/assets/{pagination-toolbar-T96tREnT.5c036e8490cc.js → pagination-toolbar-m9-HzvQE.178146e802bf.js} +1 -1
  164. codex/static_root/assets/pagination-toolbar-m9-HzvQE.178146e802bf.js.br +0 -0
  165. codex/static_root/assets/pagination-toolbar-m9-HzvQE.178146e802bf.js.gz +0 -0
  166. codex/static_root/assets/{pagination-toolbar-T96tREnT.js → pagination-toolbar-m9-HzvQE.js} +1 -1
  167. codex/static_root/assets/pagination-toolbar-m9-HzvQE.js.br +0 -0
  168. codex/static_root/assets/pagination-toolbar-m9-HzvQE.js.gz +0 -0
  169. codex/static_root/assets/{pdf-doc-Bi52wiF2.2d24a692aae7.js → pdf-doc-xL1qP1mK.643e4fab2b8d.js} +1 -1
  170. codex/static_root/assets/pdf-doc-xL1qP1mK.643e4fab2b8d.js.br +0 -0
  171. codex/static_root/assets/pdf-doc-xL1qP1mK.643e4fab2b8d.js.gz +0 -0
  172. codex/static_root/assets/{pdf-doc-Bi52wiF2.js → pdf-doc-xL1qP1mK.js} +1 -1
  173. codex/static_root/assets/pdf-doc-xL1qP1mK.js.br +0 -0
  174. codex/static_root/assets/pdf-doc-xL1qP1mK.js.gz +0 -0
  175. codex/static_root/assets/{reader-BvLeh7uY.1a72c602c44f.js → reader-DwHuZOrV.b6067501f379.js} +2 -2
  176. codex/static_root/assets/reader-DwHuZOrV.b6067501f379.js.br +0 -0
  177. codex/static_root/assets/reader-DwHuZOrV.b6067501f379.js.gz +0 -0
  178. codex/static_root/assets/{reader-BvLeh7uY.js → reader-DwHuZOrV.js} +2 -2
  179. codex/static_root/assets/reader-DwHuZOrV.js.br +0 -0
  180. codex/static_root/assets/reader-DwHuZOrV.js.gz +0 -0
  181. codex/static_root/assets/relation-chips-CCg5vRIV.59c17fb77441.js +1 -0
  182. codex/static_root/assets/relation-chips-CCg5vRIV.59c17fb77441.js.br +0 -0
  183. codex/static_root/assets/relation-chips-CCg5vRIV.59c17fb77441.js.gz +0 -0
  184. codex/static_root/assets/relation-chips-CCg5vRIV.js +1 -0
  185. codex/static_root/assets/relation-chips-CCg5vRIV.js.br +0 -0
  186. codex/static_root/assets/relation-chips-CCg5vRIV.js.gz +0 -0
  187. codex/static_root/assets/{settings-drawer-D20xBWbs.js → settings-drawer-CUQX8aKC.82a95dcef142.js} +2 -2
  188. codex/static_root/assets/settings-drawer-CUQX8aKC.82a95dcef142.js.br +0 -0
  189. codex/static_root/assets/settings-drawer-CUQX8aKC.82a95dcef142.js.gz +0 -0
  190. codex/static_root/assets/{settings-drawer-D20xBWbs.5b01c6683046.js → settings-drawer-CUQX8aKC.js} +2 -2
  191. codex/static_root/assets/settings-drawer-CUQX8aKC.js.br +0 -0
  192. codex/static_root/assets/settings-drawer-CUQX8aKC.js.gz +0 -0
  193. codex/static_root/assets/{stats-tab-JXf5C0L2.8a1f23c48803.js → stats-tab-CyDREZdm.000d9e8e00a1.js} +1 -1
  194. codex/static_root/assets/stats-tab-CyDREZdm.000d9e8e00a1.js.br +0 -0
  195. codex/static_root/assets/stats-tab-CyDREZdm.000d9e8e00a1.js.gz +0 -0
  196. codex/static_root/assets/{stats-tab-JXf5C0L2.js → stats-tab-CyDREZdm.js} +1 -1
  197. codex/static_root/assets/stats-tab-CyDREZdm.js.br +0 -0
  198. codex/static_root/assets/stats-tab-CyDREZdm.js.gz +0 -0
  199. codex/static_root/assets/{task-tab-BQTHu8AN.88e4de451b29.js → task-tab-RfF_m-c2.4ea612865931.js} +1 -1
  200. codex/static_root/assets/task-tab-RfF_m-c2.4ea612865931.js.br +0 -0
  201. codex/static_root/assets/task-tab-RfF_m-c2.4ea612865931.js.gz +0 -0
  202. codex/static_root/assets/{task-tab-BQTHu8AN.js → task-tab-RfF_m-c2.js} +1 -1
  203. codex/static_root/assets/task-tab-RfF_m-c2.js.br +0 -0
  204. codex/static_root/assets/task-tab-RfF_m-c2.js.gz +0 -0
  205. codex/static_root/assets/{unauthorized-Fo9yxN_s.be090f98b112.js → unauthorized-BY4OkaUc.7a55b1214630.js} +1 -1
  206. codex/static_root/assets/unauthorized-BY4OkaUc.7a55b1214630.js.br +0 -0
  207. codex/static_root/assets/unauthorized-BY4OkaUc.7a55b1214630.js.gz +0 -0
  208. codex/static_root/assets/{unauthorized-Fo9yxN_s.js → unauthorized-BY4OkaUc.js} +1 -1
  209. codex/static_root/assets/unauthorized-BY4OkaUc.js.br +0 -0
  210. codex/static_root/assets/unauthorized-BY4OkaUc.js.gz +0 -0
  211. codex/static_root/assets/{user-tab-Bc31zSPX.35b6785d0fa8.js → user-tab-tSrCTVFj.6c5b9a53a03a.js} +1 -1
  212. codex/static_root/assets/user-tab-tSrCTVFj.6c5b9a53a03a.js.br +0 -0
  213. codex/static_root/assets/user-tab-tSrCTVFj.6c5b9a53a03a.js.gz +0 -0
  214. codex/static_root/assets/{user-tab-Bc31zSPX.js → user-tab-tSrCTVFj.js} +1 -1
  215. codex/static_root/assets/user-tab-tSrCTVFj.js.br +0 -0
  216. codex/static_root/assets/user-tab-tSrCTVFj.js.gz +0 -0
  217. codex/static_root/{manifest.82e98a155f9e.json → manifest.37e83529bf91.json} +219 -219
  218. codex/static_root/manifest.37e83529bf91.json.br +0 -0
  219. codex/static_root/manifest.37e83529bf91.json.gz +0 -0
  220. codex/static_root/manifest.json +219 -219
  221. codex/static_root/manifest.json.br +0 -0
  222. codex/static_root/manifest.json.gz +0 -0
  223. codex/static_root/staticfiles.json +1 -1
  224. codex/views/auth.py +31 -13
  225. codex/views/opds/auth.py +1 -1
  226. codex/views/opds/v1/entry/links.py +14 -2
  227. codex/views/opds/v1/feed.py +13 -34
  228. {codex-1.6.6.dist-info → codex-1.6.8.dist-info}/METADATA +1 -1
  229. {codex-1.6.6.dist-info → codex-1.6.8.dist-info}/RECORD +232 -232
  230. codex/static_root/assets/VCheckbox-t2lVZLiy.85aa40c3f0ec.js.br +0 -0
  231. codex/static_root/assets/VCheckbox-t2lVZLiy.85aa40c3f0ec.js.gz +0 -0
  232. codex/static_root/assets/VCheckbox-t2lVZLiy.js.br +0 -0
  233. codex/static_root/assets/VCheckbox-t2lVZLiy.js.gz +0 -0
  234. codex/static_root/assets/VCheckboxBtn-C6Ngrnnm.74cb2e3d8c74.js.br +0 -0
  235. codex/static_root/assets/VCheckboxBtn-C6Ngrnnm.74cb2e3d8c74.js.gz +0 -0
  236. codex/static_root/assets/VCheckboxBtn-C6Ngrnnm.js.br +0 -0
  237. codex/static_root/assets/VCheckboxBtn-C6Ngrnnm.js.gz +0 -0
  238. codex/static_root/assets/VCombobox-Sd-OIVIP.7bf2adc355ee.js.br +0 -0
  239. codex/static_root/assets/VCombobox-Sd-OIVIP.7bf2adc355ee.js.gz +0 -0
  240. codex/static_root/assets/VCombobox-Sd-OIVIP.js.br +0 -0
  241. codex/static_root/assets/VCombobox-Sd-OIVIP.js.gz +0 -0
  242. codex/static_root/assets/VDialog-BNfcpCH0.0d18beaa3249.js.br +0 -0
  243. codex/static_root/assets/VDialog-BNfcpCH0.0d18beaa3249.js.gz +0 -0
  244. codex/static_root/assets/VDialog-BNfcpCH0.js.br +0 -0
  245. codex/static_root/assets/VDialog-BNfcpCH0.js.gz +0 -0
  246. codex/static_root/assets/VExpansionPanels-DDXfjvGC.2931ea38d85a.js +0 -1
  247. codex/static_root/assets/VExpansionPanels-DDXfjvGC.2931ea38d85a.js.br +0 -0
  248. codex/static_root/assets/VExpansionPanels-DDXfjvGC.2931ea38d85a.js.gz +0 -0
  249. codex/static_root/assets/VExpansionPanels-DDXfjvGC.js +0 -1
  250. codex/static_root/assets/VExpansionPanels-DDXfjvGC.js.br +0 -0
  251. codex/static_root/assets/VExpansionPanels-DDXfjvGC.js.gz +0 -0
  252. codex/static_root/assets/VRadioGroup-DKmAGLI5.5ef0c59584e8.js +0 -1
  253. codex/static_root/assets/VRadioGroup-DKmAGLI5.5ef0c59584e8.js.br +0 -0
  254. codex/static_root/assets/VRadioGroup-DKmAGLI5.5ef0c59584e8.js.gz +0 -0
  255. codex/static_root/assets/VRadioGroup-DKmAGLI5.js +0 -1
  256. codex/static_root/assets/VRadioGroup-DKmAGLI5.js.br +0 -0
  257. codex/static_root/assets/VRadioGroup-DKmAGLI5.js.gz +0 -0
  258. codex/static_root/assets/VSelect-B-kyTG8I.c8d8e2815ac0.js.br +0 -0
  259. codex/static_root/assets/VSelect-B-kyTG8I.c8d8e2815ac0.js.gz +0 -0
  260. codex/static_root/assets/VSelect-B-kyTG8I.js.br +0 -0
  261. codex/static_root/assets/VSelect-B-kyTG8I.js.gz +0 -0
  262. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css +0 -1
  263. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css.br +0 -0
  264. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css.gz +0 -0
  265. codex/static_root/assets/VSelectionControl-BFq--28I.css +0 -1
  266. codex/static_root/assets/VSelectionControl-BFq--28I.css.br +0 -0
  267. codex/static_root/assets/VSelectionControl-BFq--28I.css.gz +0 -0
  268. codex/static_root/assets/VSelectionControl-Dp57cbQU.3dffd15f6e66.js +0 -1
  269. codex/static_root/assets/VSelectionControl-Dp57cbQU.3dffd15f6e66.js.br +0 -0
  270. codex/static_root/assets/VSelectionControl-Dp57cbQU.3dffd15f6e66.js.gz +0 -0
  271. codex/static_root/assets/VSelectionControl-Dp57cbQU.js +0 -1
  272. codex/static_root/assets/VSelectionControl-Dp57cbQU.js.br +0 -0
  273. codex/static_root/assets/VSelectionControl-Dp57cbQU.js.gz +0 -0
  274. codex/static_root/assets/VSlideGroup-BCaUdgHs.3b1cdf2acbda.js.br +0 -0
  275. codex/static_root/assets/VSlideGroup-BCaUdgHs.3b1cdf2acbda.js.gz +0 -0
  276. codex/static_root/assets/VSlideGroup-BCaUdgHs.js.br +0 -0
  277. codex/static_root/assets/VSlideGroup-BCaUdgHs.js.gz +0 -0
  278. codex/static_root/assets/VTable-BTvFrnRE.f7e39d2399db.js.br +0 -0
  279. codex/static_root/assets/VTable-BTvFrnRE.f7e39d2399db.js.gz +0 -0
  280. codex/static_root/assets/VTable-BTvFrnRE.js.br +0 -0
  281. codex/static_root/assets/VTable-BTvFrnRE.js.gz +0 -0
  282. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css +0 -1
  283. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.br +0 -0
  284. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.gz +0 -0
  285. codex/static_root/assets/VTextField-BssVoDhB.css +0 -1
  286. codex/static_root/assets/VTextField-BssVoDhB.css.br +0 -0
  287. codex/static_root/assets/VTextField-BssVoDhB.css.gz +0 -0
  288. codex/static_root/assets/VTextField-bmvK4DuL.98bc6ed20321.js +0 -1
  289. codex/static_root/assets/VTextField-bmvK4DuL.98bc6ed20321.js.br +0 -0
  290. codex/static_root/assets/VTextField-bmvK4DuL.98bc6ed20321.js.gz +0 -0
  291. codex/static_root/assets/VTextField-bmvK4DuL.js +0 -1
  292. codex/static_root/assets/VTextField-bmvK4DuL.js.br +0 -0
  293. codex/static_root/assets/VTextField-bmvK4DuL.js.gz +0 -0
  294. codex/static_root/assets/VWindowItem-SAyGzszW.6aac49e0cb25.js.br +0 -0
  295. codex/static_root/assets/VWindowItem-SAyGzszW.6aac49e0cb25.js.gz +0 -0
  296. codex/static_root/assets/VWindowItem-SAyGzszW.js.br +0 -0
  297. codex/static_root/assets/VWindowItem-SAyGzszW.js.gz +0 -0
  298. codex/static_root/assets/admin-Crxy4nNV.33ef855fbf4b.js.br +0 -0
  299. codex/static_root/assets/admin-Crxy4nNV.33ef855fbf4b.js.gz +0 -0
  300. codex/static_root/assets/admin-Crxy4nNV.js.br +0 -0
  301. codex/static_root/assets/admin-Crxy4nNV.js.gz +0 -0
  302. codex/static_root/assets/admin-drawer-panel-CtwFZKqt.69ac4d71d030.js.br +0 -0
  303. codex/static_root/assets/admin-drawer-panel-CtwFZKqt.69ac4d71d030.js.gz +0 -0
  304. codex/static_root/assets/admin-drawer-panel-CtwFZKqt.js.br +0 -0
  305. codex/static_root/assets/admin-drawer-panel-CtwFZKqt.js.gz +0 -0
  306. codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css +0 -1
  307. codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css.br +0 -0
  308. codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css.gz +0 -0
  309. codex/static_root/assets/admin-drawer-panel-mne3FIj6.css +0 -1
  310. codex/static_root/assets/admin-drawer-panel-mne3FIj6.css.br +0 -0
  311. codex/static_root/assets/admin-drawer-panel-mne3FIj6.css.gz +0 -0
  312. codex/static_root/assets/browser-5mT8zJ-k.c8c31ef41b80.js.br +0 -0
  313. codex/static_root/assets/browser-5mT8zJ-k.c8c31ef41b80.js.gz +0 -0
  314. codex/static_root/assets/browser-5mT8zJ-k.js.br +0 -0
  315. codex/static_root/assets/browser-5mT8zJ-k.js.gz +0 -0
  316. codex/static_root/assets/change-password-dialog-CHOnC-Zr.ea9e9979901f.js.br +0 -0
  317. codex/static_root/assets/change-password-dialog-CHOnC-Zr.ea9e9979901f.js.gz +0 -0
  318. codex/static_root/assets/change-password-dialog-CHOnC-Zr.js.br +0 -0
  319. codex/static_root/assets/change-password-dialog-CHOnC-Zr.js.gz +0 -0
  320. codex/static_root/assets/confirm-dialog-BEylmNEi.1770e4c440bc.js.br +0 -0
  321. codex/static_root/assets/confirm-dialog-BEylmNEi.1770e4c440bc.js.gz +0 -0
  322. codex/static_root/assets/confirm-dialog-BEylmNEi.js.br +0 -0
  323. codex/static_root/assets/confirm-dialog-BEylmNEi.js.gz +0 -0
  324. codex/static_root/assets/datetime-column-D2cjCSko.0fa890d6ca0f.js.br +0 -0
  325. codex/static_root/assets/datetime-column-D2cjCSko.0fa890d6ca0f.js.gz +0 -0
  326. codex/static_root/assets/datetime-column-D2cjCSko.js.br +0 -0
  327. codex/static_root/assets/datetime-column-D2cjCSko.js.gz +0 -0
  328. codex/static_root/assets/filter-kHxo3w0C.81765ef36d0b.js.br +0 -0
  329. codex/static_root/assets/filter-kHxo3w0C.81765ef36d0b.js.gz +0 -0
  330. codex/static_root/assets/filter-kHxo3w0C.js.br +0 -0
  331. codex/static_root/assets/filter-kHxo3w0C.js.gz +0 -0
  332. codex/static_root/assets/flag-tab-CHpJEV6e.9bef68d8019c.js.br +0 -0
  333. codex/static_root/assets/flag-tab-CHpJEV6e.9bef68d8019c.js.gz +0 -0
  334. codex/static_root/assets/flag-tab-CHpJEV6e.js.br +0 -0
  335. codex/static_root/assets/flag-tab-CHpJEV6e.js.gz +0 -0
  336. codex/static_root/assets/group-tab-D7hMON1p.c43da9487835.js.br +0 -0
  337. codex/static_root/assets/group-tab-D7hMON1p.c43da9487835.js.gz +0 -0
  338. codex/static_root/assets/group-tab-D7hMON1p.js.br +0 -0
  339. codex/static_root/assets/group-tab-D7hMON1p.js.gz +0 -0
  340. codex/static_root/assets/http-error-CpMJuFj6.8b3a74a1afb7.js.br +0 -0
  341. codex/static_root/assets/http-error-CpMJuFj6.8b3a74a1afb7.js.gz +0 -0
  342. codex/static_root/assets/http-error-CpMJuFj6.js.br +0 -0
  343. codex/static_root/assets/http-error-CpMJuFj6.js.gz +0 -0
  344. codex/static_root/assets/library-tab-DbtKQkEv.cd1b5cb4098d.js.br +0 -0
  345. codex/static_root/assets/library-tab-DbtKQkEv.cd1b5cb4098d.js.gz +0 -0
  346. codex/static_root/assets/library-tab-DbtKQkEv.js.br +0 -0
  347. codex/static_root/assets/library-tab-DbtKQkEv.js.gz +0 -0
  348. codex/static_root/assets/main-DG4M9J1O.636c9d4cd8a9.js.br +0 -0
  349. codex/static_root/assets/main-DG4M9J1O.636c9d4cd8a9.js.gz +0 -0
  350. codex/static_root/assets/main-DG4M9J1O.js.br +0 -0
  351. codex/static_root/assets/main-DG4M9J1O.js.gz +0 -0
  352. codex/static_root/assets/pagination-toolbar-T96tREnT.5c036e8490cc.js.br +0 -0
  353. codex/static_root/assets/pagination-toolbar-T96tREnT.5c036e8490cc.js.gz +0 -0
  354. codex/static_root/assets/pagination-toolbar-T96tREnT.js.br +0 -0
  355. codex/static_root/assets/pagination-toolbar-T96tREnT.js.gz +0 -0
  356. codex/static_root/assets/pdf-doc-Bi52wiF2.2d24a692aae7.js.br +0 -0
  357. codex/static_root/assets/pdf-doc-Bi52wiF2.2d24a692aae7.js.gz +0 -0
  358. codex/static_root/assets/pdf-doc-Bi52wiF2.js.br +0 -0
  359. codex/static_root/assets/pdf-doc-Bi52wiF2.js.gz +0 -0
  360. codex/static_root/assets/reader-BvLeh7uY.1a72c602c44f.js.br +0 -0
  361. codex/static_root/assets/reader-BvLeh7uY.1a72c602c44f.js.gz +0 -0
  362. codex/static_root/assets/reader-BvLeh7uY.js.br +0 -0
  363. codex/static_root/assets/reader-BvLeh7uY.js.gz +0 -0
  364. codex/static_root/assets/relation-chips-C7aq5P_5.9c0fbbf9fa13.js +0 -1
  365. codex/static_root/assets/relation-chips-C7aq5P_5.9c0fbbf9fa13.js.br +0 -0
  366. codex/static_root/assets/relation-chips-C7aq5P_5.9c0fbbf9fa13.js.gz +0 -0
  367. codex/static_root/assets/relation-chips-C7aq5P_5.js +0 -1
  368. codex/static_root/assets/relation-chips-C7aq5P_5.js.br +0 -0
  369. codex/static_root/assets/relation-chips-C7aq5P_5.js.gz +0 -0
  370. codex/static_root/assets/settings-drawer-D20xBWbs.5b01c6683046.js.br +0 -0
  371. codex/static_root/assets/settings-drawer-D20xBWbs.5b01c6683046.js.gz +0 -0
  372. codex/static_root/assets/settings-drawer-D20xBWbs.js.br +0 -0
  373. codex/static_root/assets/settings-drawer-D20xBWbs.js.gz +0 -0
  374. codex/static_root/assets/stats-tab-JXf5C0L2.8a1f23c48803.js.br +0 -0
  375. codex/static_root/assets/stats-tab-JXf5C0L2.8a1f23c48803.js.gz +0 -0
  376. codex/static_root/assets/stats-tab-JXf5C0L2.js.br +0 -0
  377. codex/static_root/assets/stats-tab-JXf5C0L2.js.gz +0 -0
  378. codex/static_root/assets/task-tab-BQTHu8AN.88e4de451b29.js.br +0 -0
  379. codex/static_root/assets/task-tab-BQTHu8AN.88e4de451b29.js.gz +0 -0
  380. codex/static_root/assets/task-tab-BQTHu8AN.js.br +0 -0
  381. codex/static_root/assets/task-tab-BQTHu8AN.js.gz +0 -0
  382. codex/static_root/assets/unauthorized-Fo9yxN_s.be090f98b112.js.br +0 -0
  383. codex/static_root/assets/unauthorized-Fo9yxN_s.be090f98b112.js.gz +0 -0
  384. codex/static_root/assets/unauthorized-Fo9yxN_s.js.br +0 -0
  385. codex/static_root/assets/unauthorized-Fo9yxN_s.js.gz +0 -0
  386. codex/static_root/assets/user-tab-Bc31zSPX.35b6785d0fa8.js.br +0 -0
  387. codex/static_root/assets/user-tab-Bc31zSPX.35b6785d0fa8.js.gz +0 -0
  388. codex/static_root/assets/user-tab-Bc31zSPX.js.br +0 -0
  389. codex/static_root/assets/user-tab-Bc31zSPX.js.gz +0 -0
  390. codex/static_root/manifest.82e98a155f9e.json.br +0 -0
  391. codex/static_root/manifest.82e98a155f9e.json.gz +0 -0
  392. {codex-1.6.6.dist-info → codex-1.6.8.dist-info}/LICENSE +0 -0
  393. {codex-1.6.6.dist-info → codex-1.6.8.dist-info}/WHEEL +0 -0
  394. {codex-1.6.6.dist-info → codex-1.6.8.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
1
- import{_ as b,aL as Ce,aM as Te,aN as ce,aO as ke,Z as f,$ as l,Y as p,a0 as h,T as i,ar as I,aP as a,aF as w,aG as O,aH as S,V as F,al as u,aQ as k,aR as de,aS as ue,aT as me,aE as V,q as $,W as v,X as T,aU as U,aV as Y,aJ as B,aW as D,aX as Ve,aq as Me,aY as Pe,aZ as M,a_ as re,a$ as se,b0 as $e,b1 as oe,b2 as Fe,F as G,N as q,b3 as Ie,ax as Z,b4 as xe,P as E,b5 as De,b6 as Ne,av as Oe,S as z,b7 as Re,b8 as He,b9 as J,ba as Ae,bb as Le,am as A,bc as Ue,bd as Ge,h as Q,ap as qe,be as Ee,aw as ze,bf as je,az as We,aA as x,ay as Ye,bg as Qe,aC as Ke,bh as Xe,l as he,bi as pe,bj as Ze,bk as Je,bl as et,bm as tt,bn as fe,bo as j,bp as ae,bq as rt,br as _e,bs as ge,bt as be,bu as st,bv as ot,bw as at,bx as nt,by as it,bz as lt,bA as ct,bB as dt,bC as ut}from"./admin-drawer-panel-CtwFZKqt.js";import{V as mt}from"./VTable-BTvFrnRE.js";import{V as ht}from"./VDialog-BNfcpCH0.js";import{u as g,f as K,g as pt,a as ft}from"./main-DG4M9J1O.js";import{V as L}from"./VCheckbox-t2lVZLiy.js";import{b as _t,a as W,V as ne,c as gt,S as bt}from"./settings-drawer-D20xBWbs.js";import{M as yt,p as vt,B as St,g as wt,V as X,N as ie,t as Bt,T as N,a as Ct,P as Tt,b as kt,c as Vt}from"./pagination-toolbar-T96tREnT.js";import{C as Mt}from"./confirm-dialog-BEylmNEi.js";import{V as Pt}from"./VSelect-B-kyTG8I.js";import{E as $t,P as Ft,V as ye,U as It}from"./unauthorized-Fo9yxN_s.js";import{V as xt}from"./VCombobox-Sd-OIVIP.js";import{V as Dt}from"./VTextField-bmvK4DuL.js";import"./VCheckboxBtn-C6Ngrnnm.js";import"./VSelectionControl-Dp57cbQU.js";import"./copy-to-clipboard-DoUvDJVx.js";import"./VSlideGroup-BCaUdgHs.js";import"./change-password-dialog-CHOnC-Zr.js";import"./filter-kHxo3w0C.js";const Nt=[["characters","CSV","category"],["community_rating","Decimal","communityrating"],["contributor","CSV","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","type"],["genres","CSV","genre"],["identifier","CSV","id, nss"],["identifier_type","CSV","id_type, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","CSV","location"],["maturity_rating","String"],["monochrome","String","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","CSV","seriesgroups"],["size","Integer"],["stories","CSV","story"],["story_arcs","CSV","storyarcs"],["summary","String","comments, description"],["tags","CSV","tag"],["tagger","String"],["teams","CSV","team"],["updated_at","Date","updated"],["volume","String"],["web","String"],["year","Integer"]],Ot={name:"SearchHelp",components:{CloseButton:Ce,DrawerItem:Te},data(){return{mdiOpenInNew:ce,mdiArchiveSearchOutline:ke,dialog:!1,FIELD_ROWS:Nt}}},_=e=>(de("data-v-3154aac0"),e=e(),ue(),e),Rt={id:"searchHelp"},Ht=_(()=>a("h1",null,"Search Help",-1)),At={id:"fieldTableContainer"},Lt=_(()=>a("h2",null,"Search Fields",-1)),Ut=_(()=>a("thead",null,[a("tr",null,[a("th",null,"Field"),a("th",null,"Type"),a("th",null,"Aliases")])],-1)),Gt={class:"aliasCol"},qt={id:"textContainer"},Et=_(()=>a("h2",null,"Whoosh Query Parser",-1)),zt={href:"https://whoosh.readthedocs.io/en/latest/querylang.html",target:"_blank"},jt=_(()=>a("h2",null,"Operators",-1)),Wt=_(()=>a("code",null,"and",-1)),Yt=_(()=>a("code",null,"or",-1)),Qt=_(()=>a("code",null,"not",-1)),Kt=_(()=>a("code",null,"andnot",-1)),Xt=_(()=>a("code",null,"andmaybe",-1)),Zt=_(()=>a("code",null,"require",-1)),Jt=_(()=>a("h2",null,"Searching Fields",-1)),er=_(()=>a("p",null,[u(" Like Codex's filter selector menu, but more powerful. You may search on individual comic metadata fields. using a search token like "),a("code",null,"field:value"),u(". ")],-1)),tr=_(()=>a("h3",null,"Dates and DateTimes",-1)),rr={href:"https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries",target:"_blank"},sr=_(()=>a("code",null,"YYYYMMDD",-1)),or=_(()=>a("code",null,"YYYMMDDHHmmSS",-1)),ar=_(()=>a("h3",null,"Single Quote complex field Queries",-1)),nr=_(()=>a("p",null,[u(" Use "),a("em",null,"single"),u(" quotes to tell Codex that a complex or natural language phrase should be applied to a specific field ")],-1)),ir=_(()=>a("code",null," created:'this year' ",-1)),lr=_(()=>a("h3",null,"Size Byte Multipliers",-1)),cr=_(()=>a("p",null,[u(" The size field can make use of convenient byte multiplier suffixes like "),a("code",null,"kb"),u(" and "),a("code",null,"mb"),u(" as well as binary suffixes like "),a("code",null,"gib"),u(" and "),a("code",null,"tib"),u(". ")],-1)),dr=_(()=>a("h3",null,"Ranges of Fields",-1)),ur=_(()=>a("p",null,[u(" Whoosh uses brackets and the "),a("em",null,"uppercase"),u(" "),a("code",null,"TO"),u(" operator to delineate a range search. ")],-1)),mr=_(()=>a("code",null,"updated:[last sunday TO 10am]",-1)),hr=_(()=>a("p",null," You may leave out the upper or lower bound or use >, <, >=, <= operators. ",-1)),pr=_(()=>a("code",null,"size:<50mb",-1)),fr=_(()=>a("h3",null,"Multi Value Fields",-1)),_r=_(()=>a("p",null,[u(" Fields marked type "),a("code",null,"CSV"),u(" in the table to the left may contain comma separated values. This filters by all the supplied values. Multi Value tokens look like: "),a("code",null,"field:term1,term2,term3")],-1)),gr=_(()=>a("h2",null,"Grouped Queries",-1)),br=_(()=>a("p",null,"Whoosh allows grouping of queries with parenthesis.",-1)),yr=_(()=>a("h2",null,"Example Search",-1)),vr=_(()=>a("p",null," This example search is more convoluted than most searches but uses many features for demonstration: ",-1)),Sr=_(()=>a("code",null,' (Holmes and Tesla date:>=1999-1-2 size:[10mib TO 1gb] Gadzooks) or "Captain Nemo" -Quartermain ',-1)),wr=_(()=>a("p",{style:{"margin-top":"1em"}},' Search for comics that contain Holmes and Tesla published after the second day of 1999 that are between 10 Mebibytes and 10 Gigabytes that also contain the word "Gadzooks" but also all comics with the the phrase "Captain Nemo" but no comics will contain the word "Quartermain". ',-1)),Br=_(()=>a("h2",null,"Group and Sorting Behavior",-1)),Cr=_(()=>a("p",null," If the search field is empty and then you supply a search query for the first time, Codex navigates you to the to All Issues view and your sets your Sorted By selection to Search Score. If you prefer a different view you may change the group and sort selections after your you make your first search. ",-1)),Tr=_(()=>a("h2",null,"Filter Behavior",-1)),kr=_(()=>a("p",null,[u(" Codex applies "),a("em",null,"both"),u(" the Filter selection menu filters "),a("em",null,"and"),u(" the search query field filters to the search. Be sure to clear the filter selector or the search field if you prefer to apply only one of them. ")],-1)),Vr=_(()=>a("h2",null,"Faster Browsing and Searching",-1)),Mr=_(()=>a("p",null,' Browsing large collections using the group tree and filter dropdown is relatively fast. Searching with the search bar will always be slower. To aid search speed there is a setting for limiting search results which can help with large collections. To see all results, choose Search Result Limit: "Unlimited". ',-1));function Pr(e,t,s,d,o,r){const n=f("DrawerItem"),c=f("CloseButton");return l(),p(ht,{modelValue:o.dialog,"onUpdate:modelValue":t[2]||(t[2]=m=>o.dialog=m),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:h(({props:m})=>[i(n,I(m,{"prepend-icon":o.mdiArchiveSearchOutline,title:"Search Help"}),null,16,["prepend-icon"])]),default:h(()=>[a("div",Rt,[i(c,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[0]||(t[0]=m=>o.dialog=!1)}),Ht,a("div",At,[Lt,i(mt,{id:"fieldTable",class:"highlight-table"},{default:h(()=>[Ut,a("tbody",null,[(l(!0),w(F,null,O(o.FIELD_ROWS,m=>(l(),w("tr",{key:m[0]},[a("td",null,S(m[0]),1),a("td",null,S(m[1]),1),a("td",Gt,S(m[2]||""),1)]))),128))])]),_:1})]),a("div",qt,[Et,a("p",null,[u(" Codex uses the Whoosh search engine to execute your text search queries. Whoosh operates much like other familiar search engines. As such, only some special features are documented on this page. To understand its full power, users are encouraged to read the "),a("a",zt,[u("Whoosh Query Language "),i(k,{size:"small"},{default:h(()=>[u(S(o.mdiOpenInNew),1)]),_:1})]),u(" documentation. ")]),jt,u(" Whoosh has the "),Wt,u(", "),Yt,u(", "),Qt,u(", "),Kt,u(", "),Xt,u(", and "),Zt,u(" operators. "),Jt,er,tr,a("p",null,[u(" Whoosh parses Dates and DateTime values liberally. Read "),a("a",rr,[u("Whoosh Parsing Date Queries "),i(k,{size:"small"},{default:h(()=>[u(S(o.mdiOpenInNew),1)]),_:1})]),u(" documentation for what formats and natural language phrases are accepted. If the format you try fails, the "),sr,u(" and "),or,u(" formats are reliable. ")]),ar,nr,ir,lr,cr,dr,ur,mr,u(". "),hr,pr,u(". "),fr,_r,gr,br,yr,vr,Sr,wr,Br,Cr,Tr,kr,Vr,Mr]),i(c,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[1]||(t[1]=m=>o.dialog=!1)})])]),_:1},8,["modelValue"])}const $r=b(Ot,[["render",Pr],["__scopeId","data-v-3154aac0"]]),Fr="rpisv",Ir={name:"BrowserSettingsPanel",components:{SearchHelp:$r},data(){return{mdiReload:me,openDelay:2e3}},computed:{...V($,["isAuthorized"]),...v($,{isUserAuthorized:e=>!!e.user}),...v(g,{groupChoices:e=>{var t,s;return((s=(t=e.choices)==null?void 0:t.static)==null?void 0:s.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,s,d;return((d=(s=(t=e.choices)==null?void 0:t.static)==null?void 0:s.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 Fr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...T(g,["loadMtimes","setSettings"]),setShow(e,t){const s={show:{[e]:t===!0}};this.setSettings(s)},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)}}},ve=e=>(de("data-v-ba990a67"),e=e(),ue(),e),xr={key:0,id:"showSettings"},Dr=ve(()=>a("h4",{class:"settingsHeader"},"Show Group Levels",-1)),Nr=ve(()=>a("h4",{class:"settingsHeader"},"Covers",-1));function Or(e,t,s,d,o,r){const n=f("SearchHelp");return l(),w(F,null,[r.showShowSettings?U((l(),w("div",xr,[Dr,(l(!0),w(F,null,O(e.groupChoices,c=>(l(),p(L,{key:c.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[c.value],"true-value":!0,label:`Show ${c.title}`,"onUpdate:modelValue":m=>r.setShow(c.value,m)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[Y,{openDelay:o.openDelay,text:"Show these groups when navigating the browse tree"}]]):B("",!0),i(D),a("div",null,[Nr,U(i(L,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=c=>r.setDynamicCovers(c))},null,8,["model-value"]),[[Y,{openDelay:o.openDelay,text:"Choose covers by filters, search, and order"}]]),U(i(L,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=c=>r.setCustomCovers(c))},null,8,["model-value"]),[[Y,{openDelay:o.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(D),i(n),i(D),i(L,{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]=c=>r.set24HourTime(c))},null,8,["model-value"]),i(D)],64)}const Rr=b(Ir,[["render",Or],["__scopeId","data-v-ba990a67"]]),Hr={name:"BrowserSettingsDrawer",components:{SettingsDrawer:_t,BrowserSettingsPanel:Rr}};function Ar(e,t,s,d,o,r){const n=f("BrowserSettingsPanel"),c=f("SettingsDrawer");return l(),p(c,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:h(()=>[i(n)]),_:1})}const Lr=b(Hr,[["render",Ar]]),Ur={name:"BrowserContainerMenu",components:{ConfirmDialog:Mt},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:Ve,showMenu:!1}},computed:{...v(g,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},confirmText(){return`Mark ${this.verb}`},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");let t=this.groupNames[this.item.group];return this.item.group!=="s"&&(t=t.slice(0,-1)),e.push(t,this.verb),e.join(" ")},itemName(){return this.item.name?this.item.name:"(Empty)"}},methods:{...T(g,["setBookmarkFinished"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}},Gr={class:"background-soft-highlight"};function qr(e,t,s,d,o,r){const n=f("ConfirmDialog");return l(),p(Pt,{modelValue:o.showMenu,"onUpdate:modelValue":t[2]||(t[2]=c=>o.showMenu=c),"offset-y":"",top:""},{activator:h(({props:c})=>[i(Me,I({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:"",title:"Action Menu",variant:"text"},c,{onClick:t[0]||(t[0]=Pe(()=>{},["prevent"]))}),{default:h(()=>[i(k,null,{default:h(()=>[u(S(o.mdiDotsVertical),1)]),_:1})]),_:2},1040)]),default:h(()=>[a("div",Gr,[s.item.group==="c"?(l(),p(M,{key:0,title:r.markReadText,onClick:r.toggleRead},null,8,["title","onClick"])):(l(),p(n,{key:1,"button-text":r.markReadText,"title-text":r.markReadText,"confirm-text":r.confirmText,"object-name":r.itemName,onConfirm:r.toggleRead,onCancel:t[1]||(t[1]=c=>o.showMenu=!1)},null,8,["button-text","title-text","confirm-text","object-name","onConfirm"]))])]),_:1},8,["modelValue"])}const Er=b(Ur,[["render",qr]]),zr={name:"BrowserCardControls",components:{BrowserCardMenu:Er,MetadataButton:yt},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:se}},computed:{eyeIcon:function(){return this.eyeOpen?re:se}}},jr={class:"cardControls"};function Wr(e,t,s,d,o,r){const n=f("MetadataButton"),c=f("BrowserCardMenu");return l(),w("div",jr,[s.item.group==="c"?(l(),p(k,{key:0,class:"eye"},{default:h(()=>[u(S(r.eyeIcon),1)]),_:1})):B("",!0),i(n,{group:s.item.group,book:s.item,children:s.item.childCount},null,8,["group","book","children"]),i(c,{item:s.item},null,8,["item"])])}const Yr=b(zr,[["render",Wr],["__scopeId","data-v-6f2c700a"]]),Qr=new Set(["community_rating","critical_rating"]),Kr=new Set(["date"]),Xr=new Set(["bookmark_updated_at","created_at","updated_at"]),Zr={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...v(g,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(this.orderBy===void 0||this.orderBy===null||this.orderBy==="sort_name"&&(this.item.group!=="c"||this.topGroup!=="f")||this.orderBy==="filename"&&this.item.group==="f"||this.orderBy==="story_arc_number"&&this.item.group==="a"||e===null||e===void 0)e="";else if(Kr.has(this.orderBy)){const t=new Date(e);e=$e.format(t)}else this.orderBy=="search_score"?e=oe.format(Math.round(Number.parseFloat(e)*10)):Xr.has(this.orderBy)?e=Fe(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=vt(Number.parseInt(e,10)):Qr.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}}},Jr=["innerHTML"];function es(e,t,s,d,o,r){return r.orderValue?(l(),w("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,Jr)):B("",!0)}const ts=b(Zr,[["render",es],["__scopeId","data-v-81602057"]]),rs={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...v(g,{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?K(this.item.volumeName):!1},headerName:function(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?pt(this.item,this.zeroPad):ft(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName:function(){return this.item.group==="v"?K(this.item.name):this.item.name},linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ss={class:"browserLink cardSubtitle text-caption"},os={key:0,class:"seriesCaption"},as={key:1,class:"volumeCaption"},ns={key:2,class:"headerName"},is={class:"displayName"};function ls(e,t,s,d,o,r){return l(),w("div",ss,[r.seriesName?(l(),w("div",os,S(r.seriesName),1)):B("",!0),r.volumeName?(l(),w("div",as,S(r.volumeName),1)):B("",!0),r.headerName?(l(),w("div",ns,S(r.headerName),1)):B("",!0),a("div",is,S(r.displayName),1)])}const cs=b(rs,[["render",ls],["__scopeId","data-v-a9a0493b"]]),ds=new Set(["iPad","iPad Simulator","iPhone","iPhone Simulator","iPod","iPod Simulator"]),us=ds.has(navigator.platform),ms="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0||window.matchMedia("(any-hover: none)").matches,hs=G({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...q(),...Ie(),...Z(),...xe({transition:"fade-transition"})},"VLazy"),ps=E()({name:"VLazy",directives:{intersect:De},props:hs(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:s}=t;const{dimensionStyles:d}=Ne(e),o=Oe(e,"modelValue");function r(n){o.value||(o.value=n)}return z(()=>U(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[o.value&&i(He,{transition:e.transition,appear:!0},{default:()=>{var n;return[(n=s.default)==null?void 0:n.call(s)]}})]}),[[Re("intersect"),{handler:r,options:e.options},null]])),{}}}),le=100,fs=-170,_s={name:"BrowserCard",components:{BookCover:St,BrowserCardControls:Yr,BrowserCardSubtitle:cs,OrderByCaption:ts},props:{item:{type:Object,required:!0}},data(){return{doubleTapHovered:!ms||us}},computed:{...v(g,{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(",")},toRoute(){return this.doubleTapHovered?this.item.group==="c"?wt(this.item,this.importMetadata):{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}:{}},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,fs)},le)},le)}}},gs={class:"browserCardTop"},bs={class:"cardFooter"};function ys(e,t,s,d,o,r){const n=f("BookCover"),c=f("BrowserCardControls"),m=f("router-link"),y=f("BrowserCardSubtitle"),C=f("OrderByCaption");return l(),p(ps,{id:`card-${r.ids}`,transition:"scale-transition"},{default:h(()=>[a("div",{class:"browserCardCoverWrapper",onClick:t[0]||(t[0]=P=>o.doubleTapHovered=!0)},[a("div",gs,[i(n,{group:s.item.group,pks:s.item.ids,mtime:s.item.mtime,"child-count":s.item.childCount,finished:s.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(m,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:h(()=>[i(c,{item:s.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":s.item.progress,"aria-label":`${s.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),a("footer",bs,[i(y,{item:s.item},null,8,["item"]),i(C,{item:s.item},null,8,["item"])])])]),_:1},8,["id"])}const vs=b(_s,[["render",ys],["__scopeId","data-v-7b26d826"]]),Ss={name:"BrowserEmptyResults",components:{EmptyState:$t},data(){return{mdiOpenInNew:ce}},computed:{...V($,["isAuthorized","isUserAdmin"]),...v($,{registration:e=>e.adminFlags.registration}),...V(g,["isFiltersClearable"]),...v(g,{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=Ae):(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=Le),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...T(g,["clearFilters"])}},ws={key:0},Bs={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function Cs(e,t,s,d,o,r){const n=f("EmptyState");return l(),p(n,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=c=>e.clearFilters(!0))},{default:h(()=>[r.showLinkToReadmeAdmin?(l(),w("div",ws,[u(" See the "),a("a",Bs,[u("README "),i(k,null,{default:h(()=>[u(S(o.mdiOpenInNew),1)]),_:1})]),u(" for help ")])):B("",!0)]),_:1},8,["headline","title","icon","action-text"])}const Ts=b(Ss,[["render",Cs]]),ks={name:"BrowserMain",components:{BrowserCard:vs,BrowserEmptyState:Ts,PlaceholderLoading:Ft},computed:{...v($,{nonUsers:e=>e.adminFlags.nonUsers}),...V($,["isAuthorized"]),...V(g,["isSearchMode"]),...v(g,{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(){return{padFooter:this.numPages>1,browsePaneSearch:this.isSearchOpen}},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,s=100*t;return this.showPlaceHolder?e+=`Searching for ${s} entries...`:this.numPages>t&&(e+=`Search results truncated to ${s} entries.`,e+=" Advance the page to look for more."),e}}},Vs={key:0,id:"browsePaneContainer"},Ms={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function Ps(e,t,s,d,o,r){const n=f("BrowserCard"),c=f("PlaceholderLoading"),m=f("BrowserEmptyState");return l(),p(ye,{id:"browsePane",class:A(r.browsePaneClasses)},{default:h(()=>[r.showBrowseItems?(l(),w("div",Vs,[(l(!0),w(F,null,O(e.cards,y=>(l(),p(n,{key:`${y.group}${y.ids}`,item:y},null,8,["item"]))),128))])):e.showPlaceHolder?(l(),p(c,{key:1,class:"placeholder"})):(l(),p(m,{key:2})),r.searchLimitMessage?(l(),w("div",Ms,S(r.searchLimitMessage),1)):B("",!0)]),_:1},8,["class"])}const $s=b(ks,[["render",Ps],["__scopeId","data-v-142eedfa"]]),Fs=G({divider:[Number,String],...q()},"VBreadcrumbsDivider"),Is=E()({name:"VBreadcrumbsDivider",props:Fs(),setup(e,t){let{slots:s}=t;return z(()=>{var d;return i("li",{class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=s==null?void 0:s.default)==null?void 0:d.call(s))??e.divider])}),{}}}),xs=G({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...q(),...Ue(),...Z({tag:"li"})},"VBreadcrumbsItem"),Se=E()({name:"VBreadcrumbsItem",props:xs(),setup(e,t){let{slots:s,attrs:d}=t;const o=Ge(e,d),r=Q(()=>{var y;return e.active||((y=o.isActive)==null?void 0:y.value)}),n=Q(()=>r.value?e.activeColor:e.color),{textColorClasses:c,textColorStyles:m}=qe(n);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},c.value,e.class],style:[m.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var y,C;return[o.isLink.value?i("a",{class:"v-breadcrumbs-item--link",href:o.href.value,"aria-current":r.value?"page":void 0,onClick:o.navigate},[((C=s.default)==null?void 0:C.call(s))??e.title]):((y=s.default)==null?void 0:y.call(s))??e.title]}})),{}}}),Ds=G({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Ee,items:{type:Array,default:()=>[]},...q(),...ze(),...je(),...Z({tag:"ul"})},"VBreadcrumbs"),Ns=E()({name:"VBreadcrumbs",props:Ds(),setup(e,t){let{slots:s}=t;const{backgroundColorClasses:d,backgroundColorStyles:o}=We(x(e,"bgColor")),{densityClasses:r}=Ye(e),{roundedClasses:n}=Qe(e);Ke({VBreadcrumbsDivider:{divider:x(e,"divider")},VBreadcrumbsItem:{activeClass:x(e,"activeClass"),activeColor:x(e,"activeColor"),color:x(e,"color"),disabled:x(e,"disabled")}});const c=Q(()=>e.items.map(m=>typeof m=="string"?{item:{title:m},raw:m}:{item:m,raw:m}));return z(()=>{const m=!!(s.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,n.value,e.class],style:[o.value,e.style]},{default:()=>{var y;return[m&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[s.prepend?i(Xe,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},s.prepend):i(k,{key:"prepend-icon",start:!0,icon:e.icon},null)]),c.value.map((C,P,ee)=>{var te;let{item:R,raw:Be}=C;return i(F,null,[((te=s.item)==null?void 0:te.call(s,{item:R,index:P}))??i(Se,I({key:P,disabled:P>=ee.length-1},typeof R=="string"?{title:R}:R),{default:s.title?()=>{var H;return(H=s.title)==null?void 0:H.call(s,{item:R,index:P})}:void 0}),P<ee.length-1&&i(Is,null,{default:s.divider?()=>{var H;return(H=s.divider)==null?void 0:H.call(s,{item:Be,index:P})}:void 0})])}),(y=s.default)==null?void 0:y.call(s)]}})}),{}}}),Os={f:"Folder",a:"Story Arc",r:"Top",p:"Publisher",i:"Imprint",s:"Series",v:"Volume"},Rs={f:Ze,r:pe,p:Je,i:et,s:tt},Hs={name:"BrowserBreadcrumbs",computed:{...v(g,{breadcrumbs(e){const t=[],s=e.settings.breadcrumbs.slice(0,e.settings.breadcrumbs.length-1);if(!s)return t;let d="";for(const o of s){const r=this.getTo(o,d),n=o.name?o.name:"",c=o.group,m=this.getIcon(o.pks,n,c),y=o.pks==="0"?"Top":Os[c],C={to:r,title:n,icon:m,tooltip:y};t.push(C),d=o.pks}return t}})},methods:{getTo(e,t){const s=he.cloneDeep(e);delete s.name;const d={name:"browser",params:s};return t&&(d.hash=`#card-${t}`),d},getIcon(e,t,s){let d;return"rfa".indexOf(s)!=-1&&e==="0"?d=pe:t?d="":d=Rs[s],d}}},As={key:1};function Ls(e,t,s,d,o,r){return l(),p(Ns,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:h(({item:n})=>[i(Se,{to:n.to,title:n.tooltip},{default:h(()=>[n.icon?(l(),p(k,{key:0},{default:h(()=>[u(S(n.icon),1)]),_:2},1024)):(l(),w("span",As,S(n.title),1))]),_:2},1032,["to","title"])]),_:1},8,["items"])}const Us=b(Hs,[["render",Ls],["__scopeId","data-v-7c3a19ea"]]),Gs={name:"BrowserHeader",components:{Breadcrumbs:Us}};function qs(e,t,s,d,o,r){const n=f("Breadcrumbs");return l(),p(W,{id:"breadcrumbsToolbar",height:24,class:"titleToolbar",elevation:"8"},{default:h(()=>[i(n)]),_:1})}const Es=b(Gs,[["render",qs],["__scopeId","data-v-fd83bc5e"]]),zs={name:"BrowserHeader",data(){return{mdiReload:me}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...v(g,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...V($,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:s,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?K(s):s;if(r&&t.push(r),d){const n=`of ${d}`;t.push(n)}e=t.join(" ")}else e="";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function js(e,t,s,d,o,r){return l(),p(W,{id:"browserToolbarTitle",height:24,"extension-height":24,elevation:"8"},fe({default:h(()=>[i(ne,{id:"browserTitle",class:"browserTitle"},{default:h(()=>[u(S(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:h(()=>[i(ne,{id:"browserSubtitle",class:"browserTitle"},{default:h(()=>[u(S(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Ws=b(zs,[["render",js],["__scopeId","data-v-1f8ac575"]]),Ys=10,Qs={name:"BrowserSearchCombobox",data(){return{mdiMagnify:j,menu:!1,query:"",items:[""]}},computed:{...v(g,{stateQ:e=>e.settings.q})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...T(g,["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,Ys)},doSearch(e=!1){this.menu=!1;const s={q:this.query?this.query.trim():""};e&&(s.orderBy="sort_name",s.orderReverse=!1,this.doBlur()),this.setSettings(s)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function Ks(e,t,s,d,o,r){return l(),p(xt,{id:"searchbox",ref:"searchbox",modelValue:o.query,"onUpdate:modelValue":t[0]||(t[0]=n=>o.query=n),menu:o.menu,"onUpdate:menu":t[1]||(t[1]=n=>o.menu=n),items:o.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":o.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=n=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[ae(r.doSearch,["enter"]),ae(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const Xs=b(Qs,[["render",Ks]]),Zs={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:Xs},computed:{...v(g,{isSearchOpen:e=>e.isSearchOpen})}};function Js(e,t,s,d,o,r){const n=f("BrowserSearchCombobox");return l(),p(rt,null,{default:h(()=>[e.isSearchOpen?(l(),p(W,{key:0,density:"compact",height:64},{default:h(()=>[i(X,{id:"searchToolbarItems"},{default:h(()=>[i(n)]),_:1})]),_:1})):B("",!0)]),_:1})}const eo=b(Zs,[["render",Js],["__scopeId","data-v-4900943a"]]),to={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:_e,mdiCloseCircleOutline:ge,query:""}},computed:{...v(g,{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]}}),...be(g,["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 Bt(this.choices,this.query)},title(){return he.startCase(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?st:ot},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...T(g,["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())}}},ro={key:0},so={class:"filterHeader"};function oo(e,t,s,d,o,r){return l(),w("div",null,[i(at,{"hide-on-leave":""},{default:h(()=>[e.filterMode==="base"?(l(),p(M,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=n=>r.setUIFilterMode(s.name))},null,8,["title","append-icon"])):B("",!0)]),_:1}),i(it,{"hide-on-leave":""},{default:h(()=>[e.filterMode===s.name?(l(),w("div",ro,[a("header",so,[i(M,{class:"filterHeaderTitle","prepend-icon":o.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=n=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(l(),p(M,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":o.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):B("",!0),typeof e.choices=="object"?(l(),p(Dt,{key:1,modelValue:o.query,"onUpdate:modelValue":t[2]||(t[2]=n=>o.query=n),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=n=>e.filterMode=s.name)},null,8,["modelValue"])):(l(),p(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(l(),p(nt,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:h(()=>[r.hasNone?(l(),p(M,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):B("",!0),(l(!0),w(F,null,O(r.vuetifyItems,n=>(l(),p(M,{key:n.value,title:r.itemTitle(n),value:n.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):B("",!0)])):B("",!0)]),_:1})])}const ao=b(to,[["render",oo],["__scopeId","data-v-304a83d0"]]),no={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:ao,ToolbarSelect:N},extends:N,data(){return{mdiCloseCircleOutline:ge,mdiFilterMultipleOutline:lt,menu:!1}},computed:{...V(g,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),...v(g,{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[s,d]of Object.entries(e.choices.dynamic))d&&t.push(s);return t}}),...be(g,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},methods:{...T(g,["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()}}},io={class:"codexSelection"};function lo(e,t,s,d,o,r){const n=f("BrowserFilterSubMenu"),c=f("ToolbarSelect");return l(),p(c,{menu:o.menu,"onUpdate:menu":[t[0]||(t[0]=m=>o.menu=m),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:h(({item:m})=>[a("span",io,S(m.title),1),e.isDynamicFiltersSelected?(l(),p(k,{key:0,class:"filterSuffix",size:"x-small"},{default:h(()=>[u(S(o.mdiFilterMultipleOutline),1)]),_:1})):B("",!0)]),"prepend-item":h(()=>[e.isFiltersClearable?(l(),p(M,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":o.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):B("",!0)]),"append-item":h(()=>[i(D),e.dynamicChoiceNames===void 0?(l(),p(M,{key:0,density:"compact",variant:"plain"},{default:h(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(l(!0),w(F,{key:1},O(e.dynamicChoiceNames,m=>(l(),p(n,{key:m,name:m,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(l(),p(M,{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 co=b(no,[["render",lo],["__scopeId","data-v-0d876944"]]),uo={name:"BrowseOrderBySelect",components:{ToolbarSelect:N},extends:N,computed:{...V(g,["orderByChoices","orderByChoicesMaxLen"]),...v(g,{orderBySetting:e=>e.settings.orderBy}),reverseValues(){const e=new Set;for(const t of this.orderByChoices)t.reverse&&e.add(t.value);return e},orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:this.reverseValues.has(e)};this.setSettings(t)}}},methods:{...T(g,["setSettings"])}};function mo(e,t,s,d,o,r){const n=f("ToolbarSelect");return l(),p(n,I({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=c=>r.orderBy=c),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 ho=b(uo,[["render",mo]]),po={name:"ToolbarButton",components:{ScaleButton:gt}};function fo(e,t,s,d,o,r){const n=f("ScaleButton");return l(),p(n,{variant:"plain",class:"toolbarButton"},fe({_:2},[O(e.$slots,(c,m)=>({name:m,fn:h(y=>[ct(e.$slots,m,I({props:c},y))])}))]),1024)}const we=b(po,[["render",fo]]),_o={name:"BrowseOrderReverseButton",components:{ToolbarButton:we},data(){return{mdiSortVariant:dt}},computed:{...v(g,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...T(g,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function go(e,t,s,d,o,r){const n=f("ToolbarButton");return l(),p(n,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:h(()=>[i(k,{class:A(r.iconClasses)},{default:h(()=>[u(S(o.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const bo=b(_o,[["render",go],["__scopeId","data-v-42884e89"]]),yo={name:"BrowseOrderReverseButton",components:{ToolbarButton:we},data(){return{mdiMagnify:j}},computed:{...v(g,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...T(g,["setIsSearchOpen"])}};function vo(e,t,s,d,o,r){const n=f("ToolbarButton");return e.isSearchOpen?B("",!0):(l(),p(n,I({key:0,class:"searchButton",icon:o.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=c=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const So=b(yo,[["render",vo]]),wo=new Set(["a","f"]),Bo={name:"BrowserTopGroupSelect",components:{ToolbarSelect:N},extends:N,data(){return{DIVIDED_VALUES:wo}},computed:{...v(g,{topGroupSetting:e=>e.settings.topGroup}),...V(g,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...T(g,["setSettings"])}};function Co(e,t,s,d,o,r){const n=f("ToolbarSelect");return l(),p(n,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=c=>r.topGroup=c),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:h(({item:c,props:m})=>[o.DIVIDED_VALUES.has(c.value)?(l(),p(D,{key:0})):B("",!0),i(M,I(m,{density:"compact",variant:"plain",title:c.title,value:c.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const To=b(Bo,[["render",Co]]),ko={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:co,BrowserSearchButton:So,BrowserTopGroupSelect:To,BrowserOrderBySelect:ho,BrowserOrderReverseButton:bo,SettingsDrawerButton:bt},data(){return{mdiMagnify:j,mdiFamilyTree:ut,browseMode:"filter"}}};function Vo(e,t,s,d,o,r){const n=f("BrowserTopGroupSelect"),c=f("BrowserFilterBySelect"),m=f("BrowserOrderBySelect"),y=f("BrowserOrderReverseButton"),C=f("BrowserSearchButton"),P=f("SettingsDrawerButton");return l(),p(W,{id:"browserToolbarTop",density:"compact",height:48},{default:h(()=>[i(X,{id:"browserToolbarLeftItems"},{default:h(()=>[i(n),i(c),i(m),i(y),i(C)]),_:1}),i(Ct),i(X,null,{default:h(()=>[i(P)]),_:1})]),_:1})}const Mo=b(ko,[["render",Vo],["__scopeId","data-v-42686e3a"]]),Po={name:"BrowserHeadToolbars",components:{BrowserBreadcrumbsToolbar:Es,BrowserSearchToolbar:eo,BrowserTopToolbar:Mo,BrowserTitleToolbar:Ws}},$o={id:"codexHeadToolbarWrapper"};function Fo(e,t,s,d,o,r){const n=f("BrowserTopToolbar"),c=f("BrowserSearchToolbar"),m=f("BrowserBreadcrumbsToolbar"),y=f("BrowserTitleToolbar");return l(),w("header",$o,[i(n,{class:"codexHeadToolbar"}),i(c,{class:"codexHeadToolbar"}),i(m,{class:"codexHeadToolbar"}),i(y,{class:"codexHeadToolbar"})])}const Io=b(Po,[["render",Fo],["__scopeId","data-v-508c4760"]]),xo={name:"BrowserNavButton",components:{PaginationNavButton:Tt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:_e,mdiMagnify:j,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...V(g,["isSearchMode"]),...v(g,{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 Do(e,t,s,d,o,r){const n=f("PaginationNavButton");return l(),p(n,{key:r.toRoute,class:A(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:h(()=>[r.showMore?(l(),p(k,{key:0},{default:h(()=>[u(S(o.mdiMagnify),1)]),_:1})):B("",!0),i(k,{class:A({flipHoriz:!s.back})},{default:h(()=>[u(S(o.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const No=b(xo,[["render",Do],["__scopeId","data-v-372671b3"]]),Oo={name:"BrowserNavToolbar",components:{BrowserNavButton:No,PaginationSlider:kt,PaginationToolbar:Vt},computed:{...v(g,{numPages:e=>e.page.numPages})},methods:{...T(g,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Ro(e,t,s,d,o,r){const n=f("BrowserNavButton"),c=f("PaginationSlider"),m=f("PaginationToolbar");return e.numPages>1?(l(),p(m,{key:0},{default:h(()=>[i(n,{back:!0}),i(c,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=y=>e.routeToPage(y))},null,8,["model-value","max"]),i(n,{back:!1,more:!0})]),_:1})):B("",!0)}const Ho=b(Oo,[["render",Ro]]),Ao={name:"MainBrowser",components:{BrowserHeadToolbars:Io,BrowserMain:$s,BrowserNavToolbar:Ho,BrowserSettingsDrawer:Lr,Unauthorized:It},computed:{...v($,{user:e=>e.user}),...V($,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...T(g,["loadBrowserPage","loadSettings","setPageMtime"])}};function Lo(e,t,s,d,o,r){const n=f("BrowserHeadToolbars"),c=f("BrowserMain"),m=f("BrowserNavToolbar"),y=f("BrowserSettingsDrawer"),C=f("Unauthorized");return e.isAuthorized?(l(),p(ye,{key:0,id:"browser"},{default:h(()=>[i(n),i(c),i(m),i(y)]),_:1})):(l(),p(C,{key:1}))}const aa=b(Ao,[["render",Lo],["__scopeId","data-v-4a8fba7b"]]);export{aa as default};
1
+ import{_ as b,aL as Ce,aM as Te,aN as ce,aO as ke,Z as f,$ as l,Y as p,a0 as h,T as i,ar as I,aP as a,aF as w,aG as O,aH as S,V as F,al as u,aQ as k,aR as de,aS as ue,aT as me,aE as V,q as $,W as v,X as T,aU as U,aV as Y,aJ as B,aW as D,aX as Ve,aq as Me,aY as Pe,aZ as M,a_ as re,a$ as se,b0 as $e,b1 as oe,b2 as Fe,F as G,N as q,b3 as Ie,ax as Z,b4 as xe,P as E,b5 as De,b6 as Ne,av as Oe,S as z,b7 as Re,b8 as He,b9 as J,ba as Ae,bb as Le,am as A,bc as Ue,bd as Ge,h as Q,ap as qe,be as Ee,aw as ze,bf as je,az as We,aA as x,ay as Ye,bg as Qe,aC as Ke,bh as Xe,l as he,bi as pe,bj as Ze,bk as Je,bl as et,bm as tt,bn as fe,bo as j,bp as ae,bq as rt,br as _e,bs as ge,bt as be,bu as st,bv as ot,bw as at,bx as nt,by as it,bz as lt,bA as ct,bB as dt,bC as ut}from"./admin-drawer-panel-Crj9u2NV.js";import{V as mt}from"./VTable-CJJzxZcw.js";import{V as ht}from"./VDialog-BXw6XFu7.js";import{u as g,f as K,g as pt,a as ft}from"./main-DArXKRWW.js";import{V as L}from"./VCheckbox-DE3METqJ.js";import{b as _t,a as W,V as ne,c as gt,S as bt}from"./settings-drawer-CUQX8aKC.js";import{M as yt,p as vt,B as St,g as wt,V as X,N as ie,t as Bt,T as N,a as Ct,P as Tt,b as kt,c as Vt}from"./pagination-toolbar-m9-HzvQE.js";import{C as Mt}from"./confirm-dialog-Mznixjrb.js";import{V as Pt}from"./VSelect-wpuzLrPv.js";import{E as $t,P as Ft,V as ye,U as It}from"./unauthorized-BY4OkaUc.js";import{V as xt}from"./VCombobox-D2XmpiHi.js";import{V as Dt}from"./VTextField-BJxb_QuX.js";import"./VCheckboxBtn-DetOzpfX.js";import"./VSelectionControl-DTgtf_T6.js";import"./copy-to-clipboard-DoUvDJVx.js";import"./VSlideGroup-KhqCfdKQ.js";import"./change-password-dialog-Cm6AnxGf.js";import"./filter-CvqVrkAJ.js";const Nt=[["characters","CSV","category"],["community_rating","Decimal","communityrating"],["contributor","CSV","author, creator, credit, person, people"],["country","String"],["created_at","DateTime","created"],["critical_rating","Decimal","criticalrating"],["day","Integer"],["date","Date"],["decade","Integer"],["file_type","String","type"],["genres","CSV","genre"],["identifier","CSV","id, nss"],["identifier_type","CSV","id_type, nid"],["imprint","String"],["issue","String","(Combined issue_number and issue_suffix)"],["issue_number","Decimal","number"],["issue_suffix","String"],["language","String"],["location","CSV","location"],["maturity_rating","String"],["monochrome","String","blackandwhite"],["month","Integer"],["reading_direction","String","direction"],["name","String","title"],["notes","String"],["original_format","String","format, orginalformat"],["path","String","folder, folders"],["page_count","Integer","pages, pagecount"],["publisher","String"],["reading_direction","String","direction"],["review","String"],["scan_info","String","scan, scaninfo"],["series","String"],["series_groups","CSV","seriesgroups"],["size","Integer"],["stories","CSV","story"],["story_arcs","CSV","storyarcs"],["summary","String","comments, description"],["tags","CSV","tag"],["tagger","String"],["teams","CSV","team"],["updated_at","Date","updated"],["volume","String"],["web","String"],["year","Integer"]],Ot={name:"SearchHelp",components:{CloseButton:Ce,DrawerItem:Te},data(){return{mdiOpenInNew:ce,mdiArchiveSearchOutline:ke,dialog:!1,FIELD_ROWS:Nt}}},_=e=>(de("data-v-3154aac0"),e=e(),ue(),e),Rt={id:"searchHelp"},Ht=_(()=>a("h1",null,"Search Help",-1)),At={id:"fieldTableContainer"},Lt=_(()=>a("h2",null,"Search Fields",-1)),Ut=_(()=>a("thead",null,[a("tr",null,[a("th",null,"Field"),a("th",null,"Type"),a("th",null,"Aliases")])],-1)),Gt={class:"aliasCol"},qt={id:"textContainer"},Et=_(()=>a("h2",null,"Whoosh Query Parser",-1)),zt={href:"https://whoosh.readthedocs.io/en/latest/querylang.html",target:"_blank"},jt=_(()=>a("h2",null,"Operators",-1)),Wt=_(()=>a("code",null,"and",-1)),Yt=_(()=>a("code",null,"or",-1)),Qt=_(()=>a("code",null,"not",-1)),Kt=_(()=>a("code",null,"andnot",-1)),Xt=_(()=>a("code",null,"andmaybe",-1)),Zt=_(()=>a("code",null,"require",-1)),Jt=_(()=>a("h2",null,"Searching Fields",-1)),er=_(()=>a("p",null,[u(" Like Codex's filter selector menu, but more powerful. You may search on individual comic metadata fields. using a search token like "),a("code",null,"field:value"),u(". ")],-1)),tr=_(()=>a("h3",null,"Dates and DateTimes",-1)),rr={href:"https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries",target:"_blank"},sr=_(()=>a("code",null,"YYYYMMDD",-1)),or=_(()=>a("code",null,"YYYMMDDHHmmSS",-1)),ar=_(()=>a("h3",null,"Single Quote complex field Queries",-1)),nr=_(()=>a("p",null,[u(" Use "),a("em",null,"single"),u(" quotes to tell Codex that a complex or natural language phrase should be applied to a specific field ")],-1)),ir=_(()=>a("code",null," created:'this year' ",-1)),lr=_(()=>a("h3",null,"Size Byte Multipliers",-1)),cr=_(()=>a("p",null,[u(" The size field can make use of convenient byte multiplier suffixes like "),a("code",null,"kb"),u(" and "),a("code",null,"mb"),u(" as well as binary suffixes like "),a("code",null,"gib"),u(" and "),a("code",null,"tib"),u(". ")],-1)),dr=_(()=>a("h3",null,"Ranges of Fields",-1)),ur=_(()=>a("p",null,[u(" Whoosh uses brackets and the "),a("em",null,"uppercase"),u(" "),a("code",null,"TO"),u(" operator to delineate a range search. ")],-1)),mr=_(()=>a("code",null,"updated:[last sunday TO 10am]",-1)),hr=_(()=>a("p",null," You may leave out the upper or lower bound or use >, <, >=, <= operators. ",-1)),pr=_(()=>a("code",null,"size:<50mb",-1)),fr=_(()=>a("h3",null,"Multi Value Fields",-1)),_r=_(()=>a("p",null,[u(" Fields marked type "),a("code",null,"CSV"),u(" in the table to the left may contain comma separated values. This filters by all the supplied values. Multi Value tokens look like: "),a("code",null,"field:term1,term2,term3")],-1)),gr=_(()=>a("h2",null,"Grouped Queries",-1)),br=_(()=>a("p",null,"Whoosh allows grouping of queries with parenthesis.",-1)),yr=_(()=>a("h2",null,"Example Search",-1)),vr=_(()=>a("p",null," This example search is more convoluted than most searches but uses many features for demonstration: ",-1)),Sr=_(()=>a("code",null,' (Holmes and Tesla date:>=1999-1-2 size:[10mib TO 1gb] Gadzooks) or "Captain Nemo" -Quartermain ',-1)),wr=_(()=>a("p",{style:{"margin-top":"1em"}},' Search for comics that contain Holmes and Tesla published after the second day of 1999 that are between 10 Mebibytes and 10 Gigabytes that also contain the word "Gadzooks" but also all comics with the the phrase "Captain Nemo" but no comics will contain the word "Quartermain". ',-1)),Br=_(()=>a("h2",null,"Group and Sorting Behavior",-1)),Cr=_(()=>a("p",null," If the search field is empty and then you supply a search query for the first time, Codex navigates you to the to All Issues view and your sets your Sorted By selection to Search Score. If you prefer a different view you may change the group and sort selections after your you make your first search. ",-1)),Tr=_(()=>a("h2",null,"Filter Behavior",-1)),kr=_(()=>a("p",null,[u(" Codex applies "),a("em",null,"both"),u(" the Filter selection menu filters "),a("em",null,"and"),u(" the search query field filters to the search. Be sure to clear the filter selector or the search field if you prefer to apply only one of them. ")],-1)),Vr=_(()=>a("h2",null,"Faster Browsing and Searching",-1)),Mr=_(()=>a("p",null,' Browsing large collections using the group tree and filter dropdown is relatively fast. Searching with the search bar will always be slower. To aid search speed there is a setting for limiting search results which can help with large collections. To see all results, choose Search Result Limit: "Unlimited". ',-1));function Pr(e,t,s,d,o,r){const n=f("DrawerItem"),c=f("CloseButton");return l(),p(ht,{modelValue:o.dialog,"onUpdate:modelValue":t[2]||(t[2]=m=>o.dialog=m),"content-class":"browserSearchHelp",fullscreen:"",scrim:!1,transition:"dialog-bottom-transition"},{activator:h(({props:m})=>[i(n,I(m,{"prepend-icon":o.mdiArchiveSearchOutline,title:"Search Help"}),null,16,["prepend-icon"])]),default:h(()=>[a("div",Rt,[i(c,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[0]||(t[0]=m=>o.dialog=!1)}),Ht,a("div",At,[Lt,i(mt,{id:"fieldTable",class:"highlight-table"},{default:h(()=>[Ut,a("tbody",null,[(l(!0),w(F,null,O(o.FIELD_ROWS,m=>(l(),w("tr",{key:m[0]},[a("td",null,S(m[0]),1),a("td",null,S(m[1]),1),a("td",Gt,S(m[2]||""),1)]))),128))])]),_:1})]),a("div",qt,[Et,a("p",null,[u(" Codex uses the Whoosh search engine to execute your text search queries. Whoosh operates much like other familiar search engines. As such, only some special features are documented on this page. To understand its full power, users are encouraged to read the "),a("a",zt,[u("Whoosh Query Language "),i(k,{size:"small"},{default:h(()=>[u(S(o.mdiOpenInNew),1)]),_:1})]),u(" documentation. ")]),jt,u(" Whoosh has the "),Wt,u(", "),Yt,u(", "),Qt,u(", "),Kt,u(", "),Xt,u(", and "),Zt,u(" operators. "),Jt,er,tr,a("p",null,[u(" Whoosh parses Dates and DateTime values liberally. Read "),a("a",rr,[u("Whoosh Parsing Date Queries "),i(k,{size:"small"},{default:h(()=>[u(S(o.mdiOpenInNew),1)]),_:1})]),u(" documentation for what formats and natural language phrases are accepted. If the format you try fails, the "),sr,u(" and "),or,u(" formats are reliable. ")]),ar,nr,ir,lr,cr,dr,ur,mr,u(". "),hr,pr,u(". "),fr,_r,gr,br,yr,vr,Sr,wr,Br,Cr,Tr,kr,Vr,Mr]),i(c,{class:"closeButton",title:"Close Help (esc)",size:"x-large",onClick:t[1]||(t[1]=m=>o.dialog=!1)})])]),_:1},8,["modelValue"])}const $r=b(Ot,[["render",Pr],["__scopeId","data-v-3154aac0"]]),Fr="rpisv",Ir={name:"BrowserSettingsPanel",components:{SearchHelp:$r},data(){return{mdiReload:me,openDelay:2e3}},computed:{...V($,["isAuthorized"]),...v($,{isUserAuthorized:e=>!!e.user}),...v(g,{groupChoices:e=>{var t,s;return((s=(t=e.choices)==null?void 0:t.static)==null?void 0:s.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,s,d;return((d=(s=(t=e.choices)==null?void 0:t.static)==null?void 0:s.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 Fr.includes((t=(e=this.$route)==null?void 0:e.params)==null?void 0:t.group)}},methods:{...T(g,["loadMtimes","setSettings"]),setShow(e,t){const s={show:{[e]:t===!0}};this.setSettings(s)},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)}}},ve=e=>(de("data-v-ba990a67"),e=e(),ue(),e),xr={key:0,id:"showSettings"},Dr=ve(()=>a("h4",{class:"settingsHeader"},"Show Group Levels",-1)),Nr=ve(()=>a("h4",{class:"settingsHeader"},"Covers",-1));function Or(e,t,s,d,o,r){const n=f("SearchHelp");return l(),w(F,null,[r.showShowSettings?U((l(),w("div",xr,[Dr,(l(!0),w(F,null,O(e.groupChoices,c=>(l(),p(L,{key:c.title,class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.showSettings[c.value],"true-value":!0,label:`Show ${c.title}`,"onUpdate:modelValue":m=>r.setShow(c.value,m)},null,8,["model-value","label","onUpdate:modelValue"]))),128))])),[[Y,{openDelay:o.openDelay,text:"Show these groups when navigating the browse tree"}]]):B("",!0),i(D),a("div",null,[Nr,U(i(L,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.dynamicCovers,"true-value":!0,label:"Dynamic Covers","onUpdate:modelValue":t[0]||(t[0]=c=>r.setDynamicCovers(c))},null,8,["model-value"]),[[Y,{openDelay:o.openDelay,text:"Choose covers by filters, search, and order"}]]),U(i(L,{class:"browserGroupCheckbox",density:"compact","hide-details":"auto","model-value":e.customCovers,"true-value":!0,label:"Custom Covers","onUpdate:modelValue":t[1]||(t[1]=c=>r.setCustomCovers(c))},null,8,["model-value"]),[[Y,{openDelay:o.openDelay,text:"Overlay custom covers if the admin has set them."}]])]),i(D),i(n),i(D),i(L,{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]=c=>r.set24HourTime(c))},null,8,["model-value"]),i(D)],64)}const Rr=b(Ir,[["render",Or],["__scopeId","data-v-ba990a67"]]),Hr={name:"BrowserSettingsDrawer",components:{SettingsDrawer:_t,BrowserSettingsPanel:Rr}};function Ar(e,t,s,d,o,r){const n=f("BrowserSettingsPanel"),c=f("SettingsDrawer");return l(),p(c,{title:"Browser",temporary:"","disable-resize-watcher":""},{panel:h(()=>[i(n)]),_:1})}const Lr=b(Hr,[["render",Ar]]),Ur={name:"BrowserContainerMenu",components:{ConfirmDialog:Mt},props:{item:{type:Object,required:!0}},data(){return{mdiDotsVertical:Ve,showMenu:!1}},computed:{...v(g,{groupNames:e=>e.choices.static.groupNames}),verb(){return this.item.finished?"Unread":"Read"},confirmText(){return`Mark ${this.verb}`},markReadText(){const e=["Mark"];this.item.group!="c"&&e.push("Entire");let t=this.groupNames[this.item.group];return this.item.group!=="s"&&(t=t.slice(0,-1)),e.push(t,this.verb),e.join(" ")},itemName(){return this.item.name?this.item.name:"(Empty)"}},methods:{...T(g,["setBookmarkFinished"]),toggleRead:function(){this.setBookmarkFinished(this.item,!this.item.finished),this.showMenu=!1}}},Gr={class:"background-soft-highlight"};function qr(e,t,s,d,o,r){const n=f("ConfirmDialog");return l(),p(Pt,{modelValue:o.showMenu,"onUpdate:modelValue":t[2]||(t[2]=c=>o.showMenu=c),"offset-y":"",top:""},{activator:h(({props:c})=>[i(Me,I({"aria-label":"action menu",class:"browserCardMenuIcon cardControlButton",icon:"",title:"Action Menu",variant:"text"},c,{onClick:t[0]||(t[0]=Pe(()=>{},["prevent"]))}),{default:h(()=>[i(k,null,{default:h(()=>[u(S(o.mdiDotsVertical),1)]),_:1})]),_:2},1040)]),default:h(()=>[a("div",Gr,[s.item.group==="c"?(l(),p(M,{key:0,title:r.markReadText,onClick:r.toggleRead},null,8,["title","onClick"])):(l(),p(n,{key:1,"button-text":r.markReadText,"title-text":r.markReadText,"confirm-text":r.confirmText,"object-name":r.itemName,onConfirm:r.toggleRead,onCancel:t[1]||(t[1]=c=>o.showMenu=!1)},null,8,["button-text","title-text","confirm-text","object-name","onConfirm"]))])]),_:1},8,["modelValue"])}const Er=b(Ur,[["render",qr]]),zr={name:"BrowserCardControls",components:{BrowserCardMenu:Er,MetadataButton:yt},props:{item:{type:Object,required:!0},eyeOpen:{type:Boolean,required:!0}},data(){return{mdiEye:re,mdiEyeOff:se}},computed:{eyeIcon:function(){return this.eyeOpen?re:se}}},jr={class:"cardControls"};function Wr(e,t,s,d,o,r){const n=f("MetadataButton"),c=f("BrowserCardMenu");return l(),w("div",jr,[s.item.group==="c"?(l(),p(k,{key:0,class:"eye"},{default:h(()=>[u(S(r.eyeIcon),1)]),_:1})):B("",!0),i(n,{group:s.item.group,book:s.item,children:s.item.childCount},null,8,["group","book","children"]),i(c,{item:s.item},null,8,["item"])])}const Yr=b(zr,[["render",Wr],["__scopeId","data-v-6f2c700a"]]),Qr=new Set(["community_rating","critical_rating"]),Kr=new Set(["date"]),Xr=new Set(["bookmark_updated_at","created_at","updated_at"]),Zr={name:"OrderByCaption",props:{item:{type:Object,required:!0}},computed:{...v(g,{orderBy:e=>e.settings.orderBy,twentyFourHourTime:e=>e.settings.twentyFourHourTime,topGroup:e=>e.settings.topGroup}),orderValue(){let e=this.item.orderValue;try{if(this.orderBy===void 0||this.orderBy===null||this.orderBy==="sort_name"&&(this.item.group!=="c"||this.topGroup!=="f")||this.orderBy==="filename"&&this.item.group==="f"||this.orderBy==="story_arc_number"&&this.item.group==="a"||e===null||e===void 0)e="";else if(Kr.has(this.orderBy)){const t=new Date(e);e=$e.format(t)}else this.orderBy=="search_score"?e=oe.format(Math.round(Number.parseFloat(e)*10)):Xr.has(this.orderBy)?e=Fe(e,this.twentyFourHourTime,!0):this.orderBy=="page_count"?e=`${oe.format(e)} pages`:this.orderBy=="size"?e=vt(Number.parseInt(e,10)):Qr.has(this.orderBy)&&(e=`★ ${e}`)}catch(t){console.debug(t)}return e}}},Jr=["innerHTML"];function es(e,t,s,d,o,r){return r.orderValue?(l(),w("div",{key:0,class:"orderCaption text-caption",innerHTML:r.orderValue},null,8,Jr)):B("",!0)}const ts=b(Zr,[["render",es],["__scopeId","data-v-81602057"]]),rs={name:"BrowserCardSubtitle",props:{item:{type:Object,required:!0}},computed:{...v(g,{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?K(this.item.volumeName):!1},headerName:function(){let e;switch(this.item.group){case"i":e=this.item.publisherName;break;case"v":e=this.item.seriesName;break;case"c":e=this.$route.params.group==="f"?pt(this.item,this.zeroPad):ft(this.item,this.zeroPad);break;default:e=""}return e&&this.item.ids&&this.item.ids.length>1?"(Multiple)":e},displayName:function(){return this.item.group==="v"?K(this.item.name):this.item.name},linkLabel:function(){let e="";return e+=this.item.group==="c"?"Read":"Browse to",e+=" "+this.headerName,e}}},ss={class:"browserLink cardSubtitle text-caption"},os={key:0,class:"seriesCaption"},as={key:1,class:"volumeCaption"},ns={key:2,class:"headerName"},is={class:"displayName"};function ls(e,t,s,d,o,r){return l(),w("div",ss,[r.seriesName?(l(),w("div",os,S(r.seriesName),1)):B("",!0),r.volumeName?(l(),w("div",as,S(r.volumeName),1)):B("",!0),r.headerName?(l(),w("div",ns,S(r.headerName),1)):B("",!0),a("div",is,S(r.displayName),1)])}const cs=b(rs,[["render",ls],["__scopeId","data-v-a9a0493b"]]),ds=new Set(["iPad","iPad Simulator","iPhone","iPhone Simulator","iPod","iPod Simulator"]),us=ds.has(navigator.platform),ms="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0||window.matchMedia("(any-hover: none)").matches,hs=G({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...q(),...Ie(),...Z(),...xe({transition:"fade-transition"})},"VLazy"),ps=E()({name:"VLazy",directives:{intersect:De},props:hs(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:s}=t;const{dimensionStyles:d}=Ne(e),o=Oe(e,"modelValue");function r(n){o.value||(o.value=n)}return z(()=>U(i(e.tag,{class:["v-lazy",e.class],style:[d.value,e.style]},{default:()=>[o.value&&i(He,{transition:e.transition,appear:!0},{default:()=>{var n;return[(n=s.default)==null?void 0:n.call(s)]}})]}),[[Re("intersect"),{handler:r,options:e.options},null]])),{}}}),le=100,fs=-170,_s={name:"BrowserCard",components:{BookCover:St,BrowserCardControls:Yr,BrowserCardSubtitle:cs,OrderByCaption:ts},props:{item:{type:Object,required:!0}},data(){return{doubleTapHovered:!ms||us}},computed:{...v(g,{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(",")},toRoute(){return this.doubleTapHovered?this.item.group==="c"?wt(this.item,this.importMetadata):{name:"browser",params:{group:this.item.group,pks:this.ids,page:1},query:{ts:this.item.mtime}}:{}},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,fs)},le)},le)}}},gs={class:"browserCardTop"},bs={class:"cardFooter"};function ys(e,t,s,d,o,r){const n=f("BookCover"),c=f("BrowserCardControls"),m=f("router-link"),y=f("BrowserCardSubtitle"),C=f("OrderByCaption");return l(),p(ps,{id:`card-${r.ids}`,transition:"scale-transition"},{default:h(()=>[a("div",{class:"browserCardCoverWrapper",onClick:t[0]||(t[0]=P=>o.doubleTapHovered=!0)},[a("div",gs,[i(n,{group:s.item.group,pks:s.item.ids,mtime:s.item.mtime,"child-count":s.item.childCount,finished:s.item.finished},null,8,["group","pks","mtime","child-count","finished"]),i(m,{class:"cardCoverOverlay",to:r.toRoute,"aria-label":r.linkLabel},{default:h(()=>[i(c,{item:s.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":s.item.progress,"aria-label":`${s.item.progress}% read`,rounded:"",height:"2"},null,8,["bg-opacity","model-value","aria-label"]),a("footer",bs,[i(y,{item:s.item},null,8,["item"]),i(C,{item:s.item},null,8,["item"])])])]),_:1},8,["id"])}const vs=b(_s,[["render",ys],["__scopeId","data-v-7b26d826"]]),Ss={name:"BrowserEmptyResults",components:{EmptyState:$t},data(){return{mdiOpenInNew:ce}},computed:{...V($,["isAuthorized","isUserAdmin"]),...v($,{registration:e=>e.adminFlags.registration}),...V(g,["isFiltersClearable"]),...v(g,{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=Ae):(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=Le),e},showLinkToReadmeAdmin(){return!this.librariesExist&&this.isUserAdmin},actionText(){return this.isFiltersClearable?"Clear Filters and Search":""}},methods:{...T(g,["clearFilters"])}},ws={key:0},Bs={href:"https://github.com/ajslater/codex#-administration",target:"_blank"};function Cs(e,t,s,d,o,r){const n=f("EmptyState");return l(),p(n,{class:"browserEmpty",headline:r.empty.headline,title:r.empty.title,icon:r.empty.icon,"action-text":r.actionText,"onClick:action":t[0]||(t[0]=c=>e.clearFilters(!0))},{default:h(()=>[r.showLinkToReadmeAdmin?(l(),w("div",ws,[u(" See the "),a("a",Bs,[u("README "),i(k,null,{default:h(()=>[u(S(o.mdiOpenInNew),1)]),_:1})]),u(" for help ")])):B("",!0)]),_:1},8,["headline","title","icon","action-text"])}const Ts=b(Ss,[["render",Cs]]),ks={name:"BrowserMain",components:{BrowserCard:vs,BrowserEmptyState:Ts,PlaceholderLoading:Ft},computed:{...v($,{nonUsers:e=>e.adminFlags.nonUsers}),...V($,["isAuthorized"]),...V(g,["isSearchMode"]),...v(g,{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(){return{padFooter:this.numPages>1,browsePaneSearch:this.isSearchOpen}},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,s=100*t;return this.showPlaceHolder?e+=`Searching for ${s} entries...`:this.numPages>t&&(e+=`Search results truncated to ${s} entries.`,e+=" Advance the page to look for more."),e}}},Vs={key:0,id:"browsePaneContainer"},Ms={key:3,id:"searchLimitMessage",title:"You may change this in the settings drawer"};function Ps(e,t,s,d,o,r){const n=f("BrowserCard"),c=f("PlaceholderLoading"),m=f("BrowserEmptyState");return l(),p(ye,{id:"browsePane",class:A(r.browsePaneClasses)},{default:h(()=>[r.showBrowseItems?(l(),w("div",Vs,[(l(!0),w(F,null,O(e.cards,y=>(l(),p(n,{key:`${y.group}${y.ids}`,item:y},null,8,["item"]))),128))])):e.showPlaceHolder?(l(),p(c,{key:1,class:"placeholder"})):(l(),p(m,{key:2})),r.searchLimitMessage?(l(),w("div",Ms,S(r.searchLimitMessage),1)):B("",!0)]),_:1},8,["class"])}const $s=b(ks,[["render",Ps],["__scopeId","data-v-142eedfa"]]),Fs=G({divider:[Number,String],...q()},"VBreadcrumbsDivider"),Is=E()({name:"VBreadcrumbsDivider",props:Fs(),setup(e,t){let{slots:s}=t;return z(()=>{var d;return i("li",{class:["v-breadcrumbs-divider",e.class],style:e.style},[((d=s==null?void 0:s.default)==null?void 0:d.call(s))??e.divider])}),{}}}),xs=G({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...q(),...Ue(),...Z({tag:"li"})},"VBreadcrumbsItem"),Se=E()({name:"VBreadcrumbsItem",props:xs(),setup(e,t){let{slots:s,attrs:d}=t;const o=Ge(e,d),r=Q(()=>{var y;return e.active||((y=o.isActive)==null?void 0:y.value)}),n=Q(()=>r.value?e.activeColor:e.color),{textColorClasses:c,textColorStyles:m}=qe(n);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},c.value,e.class],style:[m.value,e.style],"aria-current":r.value?"page":void 0},{default:()=>{var y,C;return[o.isLink.value?i("a",{class:"v-breadcrumbs-item--link",href:o.href.value,"aria-current":r.value?"page":void 0,onClick:o.navigate},[((C=s.default)==null?void 0:C.call(s))??e.title]):((y=s.default)==null?void 0:y.call(s))??e.title]}})),{}}}),Ds=G({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Ee,items:{type:Array,default:()=>[]},...q(),...ze(),...je(),...Z({tag:"ul"})},"VBreadcrumbs"),Ns=E()({name:"VBreadcrumbs",props:Ds(),setup(e,t){let{slots:s}=t;const{backgroundColorClasses:d,backgroundColorStyles:o}=We(x(e,"bgColor")),{densityClasses:r}=Ye(e),{roundedClasses:n}=Qe(e);Ke({VBreadcrumbsDivider:{divider:x(e,"divider")},VBreadcrumbsItem:{activeClass:x(e,"activeClass"),activeColor:x(e,"activeColor"),color:x(e,"color"),disabled:x(e,"disabled")}});const c=Q(()=>e.items.map(m=>typeof m=="string"?{item:{title:m},raw:m}:{item:m,raw:m}));return z(()=>{const m=!!(s.prepend||e.icon);return i(e.tag,{class:["v-breadcrumbs",d.value,r.value,n.value,e.class],style:[o.value,e.style]},{default:()=>{var y;return[m&&i("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[s.prepend?i(Xe,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},s.prepend):i(k,{key:"prepend-icon",start:!0,icon:e.icon},null)]),c.value.map((C,P,ee)=>{var te;let{item:R,raw:Be}=C;return i(F,null,[((te=s.item)==null?void 0:te.call(s,{item:R,index:P}))??i(Se,I({key:P,disabled:P>=ee.length-1},typeof R=="string"?{title:R}:R),{default:s.title?()=>{var H;return(H=s.title)==null?void 0:H.call(s,{item:R,index:P})}:void 0}),P<ee.length-1&&i(Is,null,{default:s.divider?()=>{var H;return(H=s.divider)==null?void 0:H.call(s,{item:Be,index:P})}:void 0})])}),(y=s.default)==null?void 0:y.call(s)]}})}),{}}}),Os={f:"Folder",a:"Story Arc",r:"Top",p:"Publisher",i:"Imprint",s:"Series",v:"Volume"},Rs={f:Ze,r:pe,p:Je,i:et,s:tt},Hs={name:"BrowserBreadcrumbs",computed:{...v(g,{breadcrumbs(e){const t=[],s=e.settings.breadcrumbs.slice(0,e.settings.breadcrumbs.length-1);if(!s)return t;let d="";for(const o of s){const r=this.getTo(o,d),n=o.name?o.name:"",c=o.group,m=this.getIcon(o.pks,n,c),y=o.pks==="0"?"Top":Os[c],C={to:r,title:n,icon:m,tooltip:y};t.push(C),d=o.pks}return t}})},methods:{getTo(e,t){const s=he.cloneDeep(e);delete s.name;const d={name:"browser",params:s};return t&&(d.hash=`#card-${t}`),d},getIcon(e,t,s){let d;return"rfa".indexOf(s)!=-1&&e==="0"?d=pe:t?d="":d=Rs[s],d}}},As={key:1};function Ls(e,t,s,d,o,r){return l(),p(Ns,{id:"browserBreadcrumbs",density:"compact",items:e.breadcrumbs},{item:h(({item:n})=>[i(Se,{to:n.to,title:n.tooltip},{default:h(()=>[n.icon?(l(),p(k,{key:0},{default:h(()=>[u(S(n.icon),1)]),_:2},1024)):(l(),w("span",As,S(n.title),1))]),_:2},1032,["to","title"])]),_:1},8,["items"])}const Us=b(Hs,[["render",Ls],["__scopeId","data-v-7c3a19ea"]]),Gs={name:"BrowserHeader",components:{Breadcrumbs:Us}};function qs(e,t,s,d,o,r){const n=f("Breadcrumbs");return l(),p(W,{id:"breadcrumbsToolbar",height:24,class:"titleToolbar",elevation:"8"},{default:h(()=>[i(n)]),_:1})}const Es=b(Gs,[["render",qs],["__scopeId","data-v-fd83bc5e"]]),zs={name:"BrowserHeader",data(){return{mdiReload:me}},head(){return{meta:[{hid:"description",name:"description",content:["browse comics",this.longBrowserTitlePrefix,this.longBrowseTitleMain,this.longBrowseTitleSuffix].filter(Boolean).join(" ")}]}},computed:{...v(g,{browserTitle:e=>{var t;return(t=e.page)==null?void 0:t.title},groupNames:e=>e.choices.static.groupNames,modelGroup:e=>e.page.modelGroup}),...V($,["isUserAdmin"]),title(){let e;if(Number(this.$route.params.pks)===0)e="All";else if(this.browserTitle){let t=[];const{groupName:s,groupCount:d}=this.browserTitle,r=this.$route.params.group==="v"?K(s):s;if(r&&t.push(r),d){const n=`of ${d}`;t.push(n)}e=t.join(" ")}else e="";return e},subtitle(){return this.$route.params.group==="f"?"":this.groupNames[this.modelGroup]}}};function js(e,t,s,d,o,r){return l(),p(W,{id:"browserToolbarTitle",height:24,"extension-height":24,elevation:"8"},fe({default:h(()=>[i(ne,{id:"browserTitle",class:"browserTitle"},{default:h(()=>[u(S(r.title),1)]),_:1})]),_:2},[r.subtitle?{name:"extension",fn:h(()=>[i(ne,{id:"browserSubtitle",class:"browserTitle"},{default:h(()=>[u(S(r.subtitle),1)]),_:1})]),key:"0"}:void 0]),1024)}const Ws=b(zs,[["render",js],["__scopeId","data-v-1f8ac575"]]),Ys=10,Qs={name:"BrowserSearchCombobox",data(){return{mdiMagnify:j,menu:!1,query:"",items:[""]}},computed:{...v(g,{stateQ:e=>e.settings.q})},watch:{stateQ(e){this.query=e,this.addToMenu(e)}},beforeMount(){this.query=this.stateQ},methods:{...T(g,["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,Ys)},doSearch(e=!1){this.menu=!1;const s={q:this.query?this.query.trim():""};e&&(s.orderBy="sort_name",s.orderReverse=!1,this.doBlur()),this.setSettings(s)},doBlur(){this.menu=!1,(this.query?this.query.trim():"")||this.startSearchHideTimeout()}}};function Ks(e,t,s,d,o,r){return l(),p(xt,{id:"searchbox",ref:"searchbox",modelValue:o.query,"onUpdate:modelValue":t[0]||(t[0]=n=>o.query=n),menu:o.menu,"onUpdate:menu":t[1]||(t[1]=n=>o.menu=n),items:o.items,autofocus:"","aria-label":"search",clearable:"",density:"compact","full-width":"","hide-details":"auto","hide-selected":"","menu-props":{maxHeight:void 0},"no-filter":"","prepend-inner-icon":o.mdiMagnify,variant:"solo","onClick:clear":t[2]||(t[2]=n=>r.doSearch(!0)),"onClick:prependInner":r.doSearch,onKeydown:e.clearSearchHideTimeout,onKeyup:[ae(r.doSearch,["enter"]),ae(r.doBlur,["esc"])],onFocus:e.clearSearchHideTimeout,onBlur:r.doBlur},null,8,["modelValue","menu","items","prepend-inner-icon","onClick:prependInner","onKeydown","onKeyup","onFocus","onBlur"])}const Xs=b(Qs,[["render",Ks]]),Zs={name:"BrowserSearchToolbar",components:{BrowserSearchCombobox:Xs},computed:{...v(g,{isSearchOpen:e=>e.isSearchOpen})}};function Js(e,t,s,d,o,r){const n=f("BrowserSearchCombobox");return l(),p(rt,null,{default:h(()=>[e.isSearchOpen?(l(),p(W,{key:0,density:"compact",height:64},{default:h(()=>[i(X,{id:"searchToolbarItems"},{default:h(()=>[i(n)]),_:1})]),_:1})):B("",!0)]),_:1})}const eo=b(Zs,[["render",Js],["__scopeId","data-v-4900943a"]]),to={name:"BrowserFilterSubMenu",props:{name:{type:String,required:!0}},emits:["selected"],data(){return{mdiChevronLeft:_e,mdiCloseCircleOutline:ge,query:""}},computed:{...v(g,{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]}}),...be(g,["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 Bt(this.choices,this.query)},title(){return he.startCase(this.name)},lowerTitle(){return this.title.toLowerCase()},filterMenuIcon(){return this.filter&&this.filter.length>0?st:ot},isClearable(){var e;return(e=this.filter)==null?void 0:e.length}},methods:{...T(g,["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())}}},ro={key:0},so={class:"filterHeader"};function oo(e,t,s,d,o,r){return l(),w("div",null,[i(at,{"hide-on-leave":""},{default:h(()=>[e.filterMode==="base"?(l(),p(M,{key:0,density:"compact",variant:"plain",title:r.title,"append-icon":r.filterMenuIcon,onClick:t[0]||(t[0]=n=>r.setUIFilterMode(s.name))},null,8,["title","append-icon"])):B("",!0)]),_:1}),i(it,{"hide-on-leave":""},{default:h(()=>[e.filterMode===s.name?(l(),w("div",ro,[a("header",so,[i(M,{class:"filterHeaderTitle","prepend-icon":o.mdiChevronLeft,title:r.lowerTitle,onClick:t[1]||(t[1]=n=>r.setUIFilterMode("base"))},null,8,["prepend-icon","title"]),r.isClearable?(l(),p(M,{key:0,density:"compact",class:"clearFilter",title:"Clear Filter","append-icon":o.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):B("",!0),typeof e.choices=="object"?(l(),p(Dt,{key:1,modelValue:o.query,"onUpdate:modelValue":t[2]||(t[2]=n=>o.query=n),placeholder:"Filter","full-width":"",density:"compact",filled:"",rounded:"","hide-details":"auto",onFocus:t[3]||(t[3]=n=>e.filterMode=s.name)},null,8,["modelValue"])):(l(),p(J,{key:2,class:"filterValuesProgress",rounded:"",indeterminate:""}))]),typeof e.choices=="object"?(l(),p(nt,{key:0,"model-value":e.filter,class:"filterGroup overflow-y-auto",density:"compact",multiple:"",items:r.vuetifyItems,"onUpdate:selected":r.selected},{default:h(()=>[r.hasNone?(l(),p(M,{key:-1,title:"None",value:-1,class:"noneItem",density:"compact",variant:"plain"})):B("",!0),(l(!0),w(F,null,O(r.vuetifyItems,n=>(l(),p(M,{key:n.value,title:r.itemTitle(n),value:n.value,density:"compact",variant:"plain"},null,8,["title","value"]))),128))]),_:1},8,["model-value","items","onUpdate:selected"])):B("",!0)])):B("",!0)]),_:1})])}const ao=b(to,[["render",oo],["__scopeId","data-v-304a83d0"]]),no={name:"BrowserFilterBySelect",components:{BrowserFilterSubMenu:ao,ToolbarSelect:N},extends:N,data(){return{mdiCloseCircleOutline:ge,mdiFilterMultipleOutline:lt,menu:!1}},computed:{...V(g,["filterByChoicesMaxLen","isDynamicFiltersSelected","isFiltersClearable"]),...v(g,{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[s,d]of Object.entries(e.choices.dynamic))d&&t.push(s);return t}}),...be(g,["filterMode"]),padRight(){return this.$vuetify.display.xs&&!this.bookmarkFilter}},methods:{...T(g,["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()}}},io={class:"codexSelection"};function lo(e,t,s,d,o,r){const n=f("BrowserFilterSubMenu"),c=f("ToolbarSelect");return l(),p(c,{menu:o.menu,"onUpdate:menu":[t[0]||(t[0]=m=>o.menu=m),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:h(({item:m})=>[a("span",io,S(m.title),1),e.isDynamicFiltersSelected?(l(),p(k,{key:0,class:"filterSuffix",size:"x-small"},{default:h(()=>[u(S(o.mdiFilterMultipleOutline),1)]),_:1})):B("",!0)]),"prepend-item":h(()=>[e.isFiltersClearable?(l(),p(M,{key:0,density:"compact",variant:"plain",class:"clearFilter",title:"Clear All Filters","append-icon":o.mdiCloseCircleOutline,onClick:r.onClear},null,8,["append-icon","onClick"])):B("",!0)]),"append-item":h(()=>[i(D),e.dynamicChoiceNames===void 0?(l(),p(M,{key:0,density:"compact",variant:"plain"},{default:h(()=>[i(J,{indeterminate:"",rounded:""})]),_:1})):e.dynamicChoiceNames.length>0?(l(!0),w(F,{key:1},O(e.dynamicChoiceNames,m=>(l(),p(n,{key:m,name:m,onSelected:r.onSubMenuSelected},null,8,["name","onSelected"]))),128)):(l(),p(M,{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 co=b(no,[["render",lo],["__scopeId","data-v-0d876944"]]),uo={name:"BrowseOrderBySelect",components:{ToolbarSelect:N},extends:N,computed:{...V(g,["orderByChoices","orderByChoicesMaxLen"]),...v(g,{orderBySetting:e=>e.settings.orderBy}),reverseValues(){const e=new Set;for(const t of this.orderByChoices)t.reverse&&e.add(t.value);return e},orderBy:{get(){return this.orderBySetting},set(e){const t={orderBy:e,orderReverse:this.reverseValues.has(e)};this.setSettings(t)}}},methods:{...T(g,["setSettings"])}};function mo(e,t,s,d,o,r){const n=f("ToolbarSelect");return l(),p(n,I({modelValue:r.orderBy,"onUpdate:modelValue":t[0]||(t[0]=c=>r.orderBy=c),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 ho=b(uo,[["render",mo]]),po={name:"ToolbarButton",components:{ScaleButton:gt}};function fo(e,t,s,d,o,r){const n=f("ScaleButton");return l(),p(n,{variant:"plain",class:"toolbarButton"},fe({_:2},[O(e.$slots,(c,m)=>({name:m,fn:h(y=>[ct(e.$slots,m,I({props:c},y))])}))]),1024)}const we=b(po,[["render",fo]]),_o={name:"BrowseOrderReverseButton",components:{ToolbarButton:we},data(){return{mdiSortVariant:dt}},computed:{...v(g,{orderReverseSetting:e=>e.settings.orderReverse}),title(){return this.orderReverseSetting?"order descending":"order ascending"},iconClasses(){return{inverted:!this.orderReverseSetting}}},methods:{...T(g,["setSettings"]),toggleOrderReverse(){const e={orderReverse:!this.orderReverseSetting};this.setSettings(e)}}};function go(e,t,s,d,o,r){const n=f("ToolbarButton");return l(),p(n,{class:"orderReverseButton",icon:"",title:r.title,onClick:r.toggleOrderReverse},{default:h(()=>[i(k,{class:A(r.iconClasses)},{default:h(()=>[u(S(o.mdiSortVariant),1)]),_:1},8,["class"])]),_:1},8,["title","onClick"])}const bo=b(_o,[["render",go],["__scopeId","data-v-42884e89"]]),yo={name:"BrowseOrderReverseButton",components:{ToolbarButton:we},data(){return{mdiMagnify:j}},computed:{...v(g,{isSearchOpen:e=>e.isSearchOpen,isQuery:e=>!!e.settings.q})},methods:{...T(g,["setIsSearchOpen"])}};function vo(e,t,s,d,o,r){const n=f("ToolbarButton");return e.isSearchOpen?B("",!0):(l(),p(n,I({key:0,class:"searchButton",icon:o.mdiMagnify},e.$attrs,{title:"Search",onClick:t[0]||(t[0]=c=>e.setIsSearchOpen(!0))}),null,16,["icon"]))}const So=b(yo,[["render",vo]]),wo=new Set(["a","f"]),Bo={name:"BrowserTopGroupSelect",components:{ToolbarSelect:N},extends:N,data(){return{DIVIDED_VALUES:wo}},computed:{...v(g,{topGroupSetting:e=>e.settings.topGroup}),...V(g,["topGroupChoices","topGroupChoicesMaxLen"]),topGroup:{get(){return this.topGroupSetting},set(e){const t={topGroup:e};this.setSettings(t)}}},methods:{...T(g,["setSettings"])}};function Co(e,t,s,d,o,r){const n=f("ToolbarSelect");return l(),p(n,{modelValue:r.topGroup,"onUpdate:modelValue":t[0]||(t[0]=c=>r.topGroup=c),class:"topGroupSelect","select-label":"top group",items:e.topGroupChoices,"max-select-len":e.topGroupChoicesMaxLen-2.25},{item:h(({item:c,props:m})=>[o.DIVIDED_VALUES.has(c.value)?(l(),p(D,{key:0})):B("",!0),i(M,I(m,{density:"compact",variant:"plain",title:c.title,value:c.value}),null,16,["title","value"])]),_:1},8,["modelValue","items","max-select-len"])}const To=b(Bo,[["render",Co]]),ko={name:"BrowserTopToolbar",components:{BrowserFilterBySelect:co,BrowserSearchButton:So,BrowserTopGroupSelect:To,BrowserOrderBySelect:ho,BrowserOrderReverseButton:bo,SettingsDrawerButton:bt},data(){return{mdiMagnify:j,mdiFamilyTree:ut,browseMode:"filter"}}};function Vo(e,t,s,d,o,r){const n=f("BrowserTopGroupSelect"),c=f("BrowserFilterBySelect"),m=f("BrowserOrderBySelect"),y=f("BrowserOrderReverseButton"),C=f("BrowserSearchButton"),P=f("SettingsDrawerButton");return l(),p(W,{id:"browserToolbarTop",density:"compact",height:48},{default:h(()=>[i(X,{id:"browserToolbarLeftItems"},{default:h(()=>[i(n),i(c),i(m),i(y),i(C)]),_:1}),i(Ct),i(X,null,{default:h(()=>[i(P)]),_:1})]),_:1})}const Mo=b(ko,[["render",Vo],["__scopeId","data-v-42686e3a"]]),Po={name:"BrowserHeadToolbars",components:{BrowserBreadcrumbsToolbar:Es,BrowserSearchToolbar:eo,BrowserTopToolbar:Mo,BrowserTitleToolbar:Ws}},$o={id:"codexHeadToolbarWrapper"};function Fo(e,t,s,d,o,r){const n=f("BrowserTopToolbar"),c=f("BrowserSearchToolbar"),m=f("BrowserBreadcrumbsToolbar"),y=f("BrowserTitleToolbar");return l(),w("header",$o,[i(n,{class:"codexHeadToolbar"}),i(c,{class:"codexHeadToolbar"}),i(m,{class:"codexHeadToolbar"}),i(y,{class:"codexHeadToolbar"})])}const Io=b(Po,[["render",Fo],["__scopeId","data-v-508c4760"]]),xo={name:"BrowserNavButton",components:{PaginationNavButton:Tt},props:{back:{type:Boolean,required:!0},more:{type:Boolean,default:!1}},data(){return{mdiChevronLeft:_e,mdiMagnify:j,routeParams:this.$route.params,page:+this.$route.params.page}},computed:{...V(g,["isSearchMode"]),...v(g,{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 Do(e,t,s,d,o,r){const n=f("PaginationNavButton");return l(),p(n,{key:r.toRoute,class:A(r.classes),disabled:r.disabled,title:r.title,to:r.toRoute},{default:h(()=>[r.showMore?(l(),p(k,{key:0},{default:h(()=>[u(S(o.mdiMagnify),1)]),_:1})):B("",!0),i(k,{class:A({flipHoriz:!s.back})},{default:h(()=>[u(S(o.mdiChevronLeft),1)]),_:1},8,["class"])]),_:1},8,["class","disabled","title","to"])}const No=b(xo,[["render",Do],["__scopeId","data-v-372671b3"]]),Oo={name:"BrowserNavToolbar",components:{BrowserNavButton:No,PaginationSlider:kt,PaginationToolbar:Vt},computed:{...v(g,{numPages:e=>e.page.numPages})},methods:{...T(g,["routeToPage"]),onUpdate(e){this.routeToPage(e)}}};function Ro(e,t,s,d,o,r){const n=f("BrowserNavButton"),c=f("PaginationSlider"),m=f("PaginationToolbar");return e.numPages>1?(l(),p(m,{key:0},{default:h(()=>[i(n,{back:!0}),i(c,{"model-value":+e.$route.params.page,min:1,max:e.numPages,step:1,"onUpdate:modelValue":t[0]||(t[0]=y=>e.routeToPage(y))},null,8,["model-value","max"]),i(n,{back:!1,more:!0})]),_:1})):B("",!0)}const Ho=b(Oo,[["render",Ro]]),Ao={name:"MainBrowser",components:{BrowserHeadToolbars:Io,BrowserMain:$s,BrowserNavToolbar:Ho,BrowserSettingsDrawer:Lr,Unauthorized:It},computed:{...v($,{user:e=>e.user}),...V($,["isAuthorized"])},watch:{$route(e){var t;window.scrollTo(0,0),this.setPageMtime((t=e==null?void 0:e.query)==null?void 0:t.ts),this.loadBrowserPage()},user(){this.loadSettings()},isAuthorized(){this.loadSettings()}},created(){this.loadSettings()},methods:{...T(g,["loadBrowserPage","loadSettings","setPageMtime"])}};function Lo(e,t,s,d,o,r){const n=f("BrowserHeadToolbars"),c=f("BrowserMain"),m=f("BrowserNavToolbar"),y=f("BrowserSettingsDrawer"),C=f("Unauthorized");return e.isAuthorized?(l(),p(ye,{key:0,id:"browser"},{default:h(()=>[i(n),i(c),i(m),i(y)]),_:1})):(l(),p(C,{key:1}))}const aa=b(Ao,[["render",Lo],["__scopeId","data-v-4a8fba7b"]]);export{aa as default};
@@ -1 +1 @@
1
- import{aL as k,aM as D,cK as E,cL as L,W as N,E as w,bt as v,X as f,q as c,D as B,_ as A,Z as i,$ as a,Y as n,a0 as l,aq as U,ar as p,T as d,al as h,aH as u,aQ as _,aF as I,aP as P,bp as b,aJ as g}from"./admin-drawer-panel-CtwFZKqt.js";import{S as M,a as O,V as m}from"./VTextField-bmvK4DuL.js";import{V as F}from"./VDialog-BNfcpCH0.js";const R={name:"ChangePasswordDialog",components:{SubmitFooter:M,CloseButton:k,DrawerItem:D},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:E,mdiLockPlusOutline:L}},computed:{...N(w,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(c,["showChangePasswordDialog"])},watch:{showChangePasswordDialog(e){if(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).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...f(c,["changePassword"]),...f(w,["clearErrors"]),doUserChange(){return B().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()}}},W={key:0,class:"codexFormSuccess"},q=["value"];function T(e,s,t,z,r,C){const y=i("DrawerItem"),S=i("CloseButton"),V=i("SubmitFooter");return t.user?(a(),n(F,{key:0,modelValue:e.showChangePasswordDialog,"onUpdate:modelValue":s[7]||(s[7]=o=>e.showChangePasswordDialog=o),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:l(({props:o})=>[t.isAdminMode?(a(),n(U,p({key:0,icon:""},o,{size:t.size,density:t.density,title:"Change Password"}),{default:l(()=>[d(_,null,{default:l(()=>[h(u(r.mdiLockPlusOutline),1)]),_:1})]),_:2},1040,["size","density"])):(a(),n(y,p({key:1,"prepend-icon":r.mdiLockReset},o,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:l(()=>[e.formSuccess?(a(),I("div",W,[h(u(e.formSuccess)+" ",1),d(S,{onClick:s[0]||(s[0]=o=>e.showChangePasswordDialog=!1)})])):(a(),n(O,{key:1,ref:"form",class:"changePasswordForm"},{default:l(()=>[P("h2",null,"User "+u(t.user.username),1),P("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,q),t.isAdminMode?g("",!0):(a(),n(m,{key:0,ref:"oldPassword",modelValue:r.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=o=>r.credentials.oldPassword=o),autocomplete:"current-password",label:"Old Password",rules:r.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=b(o=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),d(m,{ref:"password",modelValue:r.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=o=>r.credentials.password=o),autocomplete:"new-password",label:"New Password",rules:r.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=b(o=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),d(m,{ref:"passwordConfirm",modelValue:r.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=o=>r.credentials.passwordConfirm=o),autocomplete:"new-password",label:"Confirm Password",rules:r.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),d(V,{verb:"Change",table:"Password",disabled:!r.submitButtonEnabled,onSubmit:C.submit,onCancel:s[6]||(s[6]=o=>e.showChangePasswordDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const j=A(R,[["render",T],["__scopeId","data-v-29c23ebe"]]);export{j as C};
1
+ import{aL as k,aM as D,cK as E,cL as L,W as N,E as w,bt as v,X as f,q as c,D as B,_ as A,Z as i,$ as a,Y as n,a0 as l,aq as U,ar as p,T as d,al as h,aH as u,aQ as _,aF as I,aP as P,bp as b,aJ as g}from"./admin-drawer-panel-Crj9u2NV.js";import{S as M,a as O,V as m}from"./VTextField-BJxb_QuX.js";import{V as F}from"./VDialog-BXw6XFu7.js";const R={name:"ChangePasswordDialog",components:{SubmitFooter:M,CloseButton:k,DrawerItem:D},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:E,mdiLockPlusOutline:L}},computed:{...N(w,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(c,["showChangePasswordDialog"])},watch:{showChangePasswordDialog(e){if(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).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...f(c,["changePassword"]),...f(w,["clearErrors"]),doUserChange(){return B().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()}}},W={key:0,class:"codexFormSuccess"},q=["value"];function T(e,s,t,z,r,C){const y=i("DrawerItem"),S=i("CloseButton"),V=i("SubmitFooter");return t.user?(a(),n(F,{key:0,modelValue:e.showChangePasswordDialog,"onUpdate:modelValue":s[7]||(s[7]=o=>e.showChangePasswordDialog=o),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:l(({props:o})=>[t.isAdminMode?(a(),n(U,p({key:0,icon:""},o,{size:t.size,density:t.density,title:"Change Password"}),{default:l(()=>[d(_,null,{default:l(()=>[h(u(r.mdiLockPlusOutline),1)]),_:1})]),_:2},1040,["size","density"])):(a(),n(y,p({key:1,"prepend-icon":r.mdiLockReset},o,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:l(()=>[e.formSuccess?(a(),I("div",W,[h(u(e.formSuccess)+" ",1),d(S,{onClick:s[0]||(s[0]=o=>e.showChangePasswordDialog=!1)})])):(a(),n(O,{key:1,ref:"form",class:"changePasswordForm"},{default:l(()=>[P("h2",null,"User "+u(t.user.username),1),P("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,q),t.isAdminMode?g("",!0):(a(),n(m,{key:0,ref:"oldPassword",modelValue:r.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=o=>r.credentials.oldPassword=o),autocomplete:"current-password",label:"Old Password",rules:r.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=b(o=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),d(m,{ref:"password",modelValue:r.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=o=>r.credentials.password=o),autocomplete:"new-password",label:"New Password",rules:r.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=b(o=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),d(m,{ref:"passwordConfirm",modelValue:r.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=o=>r.credentials.passwordConfirm=o),autocomplete:"new-password",label:"Confirm Password",rules:r.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),d(V,{verb:"Change",table:"Password",disabled:!r.submitButtonEnabled,onSubmit:C.submit,onCancel:s[6]||(s[6]=o=>e.showChangePasswordDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const j=A(R,[["render",T],["__scopeId","data-v-29c23ebe"]]);export{j as C};
@@ -1 +1 @@
1
- import{aL as k,aM as D,cK as E,cL as L,W as N,E as w,bt as v,X as f,q as c,D as B,_ as A,Z as i,$ as a,Y as n,a0 as l,aq as U,ar as p,T as d,al as h,aH as u,aQ as _,aF as I,aP as P,bp as b,aJ as g}from"./admin-drawer-panel-CtwFZKqt.js";import{S as M,a as O,V as m}from"./VTextField-bmvK4DuL.js";import{V as F}from"./VDialog-BNfcpCH0.js";const R={name:"ChangePasswordDialog",components:{SubmitFooter:M,CloseButton:k,DrawerItem:D},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:E,mdiLockPlusOutline:L}},computed:{...N(w,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(c,["showChangePasswordDialog"])},watch:{showChangePasswordDialog(e){if(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).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...f(c,["changePassword"]),...f(w,["clearErrors"]),doUserChange(){return B().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()}}},W={key:0,class:"codexFormSuccess"},q=["value"];function T(e,s,t,z,r,C){const y=i("DrawerItem"),S=i("CloseButton"),V=i("SubmitFooter");return t.user?(a(),n(F,{key:0,modelValue:e.showChangePasswordDialog,"onUpdate:modelValue":s[7]||(s[7]=o=>e.showChangePasswordDialog=o),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:l(({props:o})=>[t.isAdminMode?(a(),n(U,p({key:0,icon:""},o,{size:t.size,density:t.density,title:"Change Password"}),{default:l(()=>[d(_,null,{default:l(()=>[h(u(r.mdiLockPlusOutline),1)]),_:1})]),_:2},1040,["size","density"])):(a(),n(y,p({key:1,"prepend-icon":r.mdiLockReset},o,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:l(()=>[e.formSuccess?(a(),I("div",W,[h(u(e.formSuccess)+" ",1),d(S,{onClick:s[0]||(s[0]=o=>e.showChangePasswordDialog=!1)})])):(a(),n(O,{key:1,ref:"form",class:"changePasswordForm"},{default:l(()=>[P("h2",null,"User "+u(t.user.username),1),P("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,q),t.isAdminMode?g("",!0):(a(),n(m,{key:0,ref:"oldPassword",modelValue:r.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=o=>r.credentials.oldPassword=o),autocomplete:"current-password",label:"Old Password",rules:r.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=b(o=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),d(m,{ref:"password",modelValue:r.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=o=>r.credentials.password=o),autocomplete:"new-password",label:"New Password",rules:r.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=b(o=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),d(m,{ref:"passwordConfirm",modelValue:r.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=o=>r.credentials.passwordConfirm=o),autocomplete:"new-password",label:"Confirm Password",rules:r.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),d(V,{verb:"Change",table:"Password",disabled:!r.submitButtonEnabled,onSubmit:C.submit,onCancel:s[6]||(s[6]=o=>e.showChangePasswordDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const j=A(R,[["render",T],["__scopeId","data-v-29c23ebe"]]);export{j as C};
1
+ import{aL as k,aM as D,cK as E,cL as L,W as N,E as w,bt as v,X as f,q as c,D as B,_ as A,Z as i,$ as a,Y as n,a0 as l,aq as U,ar as p,T as d,al as h,aH as u,aQ as _,aF as I,aP as P,bp as b,aJ as g}from"./admin-drawer-panel-Crj9u2NV.js";import{S as M,a as O,V as m}from"./VTextField-BJxb_QuX.js";import{V as F}from"./VDialog-BXw6XFu7.js";const R={name:"ChangePasswordDialog",components:{SubmitFooter:M,CloseButton:k,DrawerItem:D},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:E,mdiLockPlusOutline:L}},computed:{...N(w,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...v(c,["showChangePasswordDialog"])},watch:{showChangePasswordDialog(e){if(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).catch(()=>{this.submitButtonEnabled=!1})},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...f(c,["changePassword"]),...f(w,["clearErrors"]),doUserChange(){return B().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()}}},W={key:0,class:"codexFormSuccess"},q=["value"];function T(e,s,t,z,r,C){const y=i("DrawerItem"),S=i("CloseButton"),V=i("SubmitFooter");return t.user?(a(),n(F,{key:0,modelValue:e.showChangePasswordDialog,"onUpdate:modelValue":s[7]||(s[7]=o=>e.showChangePasswordDialog=o),origin:"center-top",transition:"slide-y-transition","max-width":"22em"},{activator:l(({props:o})=>[t.isAdminMode?(a(),n(U,p({key:0,icon:""},o,{size:t.size,density:t.density,title:"Change Password"}),{default:l(()=>[d(_,null,{default:l(()=>[h(u(r.mdiLockPlusOutline),1)]),_:1})]),_:2},1040,["size","density"])):(a(),n(y,p({key:1,"prepend-icon":r.mdiLockReset},o,{title:"Change Password"}),null,16,["prepend-icon"]))]),default:l(()=>[e.formSuccess?(a(),I("div",W,[h(u(e.formSuccess)+" ",1),d(S,{onClick:s[0]||(s[0]=o=>e.showChangePasswordDialog=!1)})])):(a(),n(O,{key:1,ref:"form",class:"changePasswordForm"},{default:l(()=>[P("h2",null,"User "+u(t.user.username),1),P("input",{name:"username",autocomplete:"username",disabled:"",type:"text",class:"hidden",value:t.user.username},null,8,q),t.isAdminMode?g("",!0):(a(),n(m,{key:0,ref:"oldPassword",modelValue:r.credentials.oldPassword,"onUpdate:modelValue":s[1]||(s[1]=o=>r.credentials.oldPassword=o),autocomplete:"current-password",label:"Old Password",rules:r.rules.oldPassword,clearable:"",type:"password",autofocus:"",onKeydown:s[2]||(s[2]=b(o=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"])),d(m,{ref:"password",modelValue:r.credentials.password,"onUpdate:modelValue":s[3]||(s[3]=o=>r.credentials.password=o),autocomplete:"new-password",label:"New Password",rules:r.rules.password,clearable:"",type:"password",autofocus:t.isAdminMode,onKeydown:s[4]||(s[4]=b(o=>e.$refs.passwordConfirm.focus(),["enter"]))},null,8,["modelValue","rules","autofocus"]),d(m,{ref:"passwordConfirm",modelValue:r.credentials.passwordConfirm,"onUpdate:modelValue":s[5]||(s[5]=o=>r.credentials.passwordConfirm=o),autocomplete:"new-password",label:"Confirm Password",rules:r.rules.passwordConfirm,clearable:"",type:"password"},null,8,["modelValue","rules"]),d(V,{verb:"Change",table:"Password",disabled:!r.submitButtonEnabled,onSubmit:C.submit,onCancel:s[6]||(s[6]=o=>e.showChangePasswordDialog=!1)},null,8,["disabled","onSubmit"])]),_:1},512))]),_:1},8,["modelValue"])):g("",!0)}const j=A(R,[["render",T],["__scopeId","data-v-29c23ebe"]]);export{j as C};
@@ -1 +1 @@
1
- import{C as x,V as _}from"./VDialog-BNfcpCH0.js";import{_ as C,Z as V,$ as n,Y as l,a0 as i,aq as f,ar as m,T as u,al as r,aH as a,aQ as D,aP as g}from"./admin-drawer-panel-CtwFZKqt.js";const T={name:"ConfirmDialog",components:{ConfirmFooter:x},props:{icon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},objectName:{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(s){this.$emit(s),this.showDialog=!1}}},S={class:"confirmDialog"};function v(s,t,e,b,c,d){const y=V("ConfirmFooter");return n(),l(_,{modelValue:c.showDialog,"onUpdate:modelValue":t[2]||(t[2]=o=>c.showDialog=o),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:i(({props:o})=>[e.icon?(n(),l(f,m({key:0,icon:""},o,{size:e.size,density:e.density,title:e.titleText}),{default:i(()=>[u(D,null,{default:i(()=>[r(a(e.icon),1)]),_:1})]),_:2},1040,["size","density","title"])):(n(),l(f,m({key:1,block:""},o),{default:i(()=>[r(a(e.buttonText),1)]),_:2},1040))]),default:i(()=>[g("div",S,[g("h3",null,a(e.titleText),1),r(" "+a(e.objectName)+" ",1),u(y,{"confirm-text":e.confirmText,onConfirm:t[0]||(t[0]=o=>d.close("confirm")),onCancel:t[1]||(t[1]=o=>d.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const k=C(T,[["render",v],["__scopeId","data-v-996f6e3c"]]);export{k as C};
1
+ import{C as x,V as _}from"./VDialog-BXw6XFu7.js";import{_ as C,Z as V,$ as n,Y as l,a0 as i,aq as f,ar as m,T as u,al as r,aH as a,aQ as D,aP as g}from"./admin-drawer-panel-Crj9u2NV.js";const T={name:"ConfirmDialog",components:{ConfirmFooter:x},props:{icon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},objectName:{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(s){this.$emit(s),this.showDialog=!1}}},S={class:"confirmDialog"};function v(s,t,e,b,c,d){const y=V("ConfirmFooter");return n(),l(_,{modelValue:c.showDialog,"onUpdate:modelValue":t[2]||(t[2]=o=>c.showDialog=o),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:i(({props:o})=>[e.icon?(n(),l(f,m({key:0,icon:""},o,{size:e.size,density:e.density,title:e.titleText}),{default:i(()=>[u(D,null,{default:i(()=>[r(a(e.icon),1)]),_:1})]),_:2},1040,["size","density","title"])):(n(),l(f,m({key:1,block:""},o),{default:i(()=>[r(a(e.buttonText),1)]),_:2},1040))]),default:i(()=>[g("div",S,[g("h3",null,a(e.titleText),1),r(" "+a(e.objectName)+" ",1),u(y,{"confirm-text":e.confirmText,onConfirm:t[0]||(t[0]=o=>d.close("confirm")),onCancel:t[1]||(t[1]=o=>d.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const k=C(T,[["render",v],["__scopeId","data-v-996f6e3c"]]);export{k as C};
@@ -1 +1 @@
1
- import{C as x,V as _}from"./VDialog-BNfcpCH0.js";import{_ as C,Z as V,$ as n,Y as l,a0 as i,aq as f,ar as m,T as u,al as r,aH as a,aQ as D,aP as g}from"./admin-drawer-panel-CtwFZKqt.js";const T={name:"ConfirmDialog",components:{ConfirmFooter:x},props:{icon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},objectName:{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(s){this.$emit(s),this.showDialog=!1}}},S={class:"confirmDialog"};function v(s,t,e,b,c,d){const y=V("ConfirmFooter");return n(),l(_,{modelValue:c.showDialog,"onUpdate:modelValue":t[2]||(t[2]=o=>c.showDialog=o),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:i(({props:o})=>[e.icon?(n(),l(f,m({key:0,icon:""},o,{size:e.size,density:e.density,title:e.titleText}),{default:i(()=>[u(D,null,{default:i(()=>[r(a(e.icon),1)]),_:1})]),_:2},1040,["size","density","title"])):(n(),l(f,m({key:1,block:""},o),{default:i(()=>[r(a(e.buttonText),1)]),_:2},1040))]),default:i(()=>[g("div",S,[g("h3",null,a(e.titleText),1),r(" "+a(e.objectName)+" ",1),u(y,{"confirm-text":e.confirmText,onConfirm:t[0]||(t[0]=o=>d.close("confirm")),onCancel:t[1]||(t[1]=o=>d.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const k=C(T,[["render",v],["__scopeId","data-v-996f6e3c"]]);export{k as C};
1
+ import{C as x,V as _}from"./VDialog-BXw6XFu7.js";import{_ as C,Z as V,$ as n,Y as l,a0 as i,aq as f,ar as m,T as u,al as r,aH as a,aQ as D,aP as g}from"./admin-drawer-panel-Crj9u2NV.js";const T={name:"ConfirmDialog",components:{ConfirmFooter:x},props:{icon:{type:String,default:""},buttonText:{type:String,default:""},titleText:{type:String,required:!0},objectName:{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(s){this.$emit(s),this.showDialog=!1}}},S={class:"confirmDialog"};function v(s,t,e,b,c,d){const y=V("ConfirmFooter");return n(),l(_,{modelValue:c.showDialog,"onUpdate:modelValue":t[2]||(t[2]=o=>c.showDialog=o),transition:"fab-transition","max-width":"20em","overlay-opacity":"0.5"},{activator:i(({props:o})=>[e.icon?(n(),l(f,m({key:0,icon:""},o,{size:e.size,density:e.density,title:e.titleText}),{default:i(()=>[u(D,null,{default:i(()=>[r(a(e.icon),1)]),_:1})]),_:2},1040,["size","density","title"])):(n(),l(f,m({key:1,block:""},o),{default:i(()=>[r(a(e.buttonText),1)]),_:2},1040))]),default:i(()=>[g("div",S,[g("h3",null,a(e.titleText),1),r(" "+a(e.objectName)+" ",1),u(y,{"confirm-text":e.confirmText,onConfirm:t[0]||(t[0]=o=>d.close("confirm")),onCancel:t[1]||(t[1]=o=>d.close("cancel"))},null,8,["confirm-text"])])]),_:1},8,["modelValue"])}const k=C(T,[["render",v],["__scopeId","data-v-996f6e3c"]]);export{k as C};
@@ -1 +1 @@
1
- import{W as r,b0 as m,cY as s,_ as i,$ as n,aF as d,al as c,aH as a,aP as u,aJ as f}from"./admin-drawer-panel-CtwFZKqt.js";import{u as _}from"./main-DG4M9J1O.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(_,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return m.format(this.date)},formattedTime:function(){return s(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,F,o,h,y,e){return o.dttm?(n(),d("time",p,[c(a(e.formattedDate)+" ",1),u("time",l,a(e.formattedTime),1)])):f("",!0)}const x=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{x as D};
1
+ import{W as r,b0 as m,cZ as s,_ as i,$ as n,aF as d,al as c,aH as a,aP as u,aJ as f}from"./admin-drawer-panel-Crj9u2NV.js";import{u as _}from"./main-DArXKRWW.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(_,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return m.format(this.date)},formattedTime:function(){return s(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,F,o,h,y,e){return o.dttm?(n(),d("time",p,[c(a(e.formattedDate)+" ",1),u("time",l,a(e.formattedTime),1)])):f("",!0)}const x=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{x as D};
@@ -1 +1 @@
1
- import{W as r,b0 as m,cY as s,_ as i,$ as n,aF as d,al as c,aH as a,aP as u,aJ as f}from"./admin-drawer-panel-CtwFZKqt.js";import{u as _}from"./main-DG4M9J1O.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(_,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return m.format(this.date)},formattedTime:function(){return s(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,F,o,h,y,e){return o.dttm?(n(),d("time",p,[c(a(e.formattedDate)+" ",1),u("time",l,a(e.formattedTime),1)])):f("",!0)}const x=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{x as D};
1
+ import{W as r,b0 as m,cZ as s,_ as i,$ as n,aF as d,al as c,aH as a,aP as u,aJ as f}from"./admin-drawer-panel-Crj9u2NV.js";import{u as _}from"./main-DArXKRWW.js";const T={name:"DateTimeColumn",props:{dttm:{type:String,default:""}},data(){return{date:new Date(this.dttm)}},computed:{...r(_,{twentyFourHourTime:t=>t.settings.twentyFourHourTime}),formattedDate:function(){return m.format(this.date)},formattedTime:function(){return s(this.twentyFourHourTime).format(this.date)}},created(){}},p={key:0,datetime:"formattedDate"},l={class:"colTime",datetime:"formattedTime"};function D(t,F,o,h,y,e){return o.dttm?(n(),d("time",p,[c(a(e.formattedDate)+" ",1),u("time",l,a(e.formattedTime),1)])):f("",!0)}const x=i(T,[["render",D],["__scopeId","data-v-4e9e3015"]]);export{x as D};
@@ -1 +1 @@
1
- import{F as I,r as v,h as L,u as i,w as j,cW as w,d8 as O}from"./admin-drawer-panel-CtwFZKqt.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=I({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?w(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]=w(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 b=O(M,n),k=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=k?k(b,c,a):s(b,c,a),l!==-1&&l!==!1)k?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=v([]),m=v(new Map),y=L(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));j(()=>{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{F as I,r as v,h as L,u as i,w as j,cW as w,d9 as O}from"./admin-drawer-panel-Crj9u2NV.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=I({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?w(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]=w(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 b=O(M,n),k=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=k?k(b,c,a):s(b,c,a),l!==-1&&l!==!1)k?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=v([]),m=v(new Map),y=L(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));j(()=>{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{F as I,r as v,h as L,u as i,w as j,cW as w,d8 as O}from"./admin-drawer-panel-CtwFZKqt.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=I({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?w(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]=w(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 b=O(M,n),k=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=k?k(b,c,a):s(b,c,a),l!==-1&&l!==!1)k?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=v([]),m=v(new Map),y=L(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));j(()=>{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{F as I,r as v,h as L,u as i,w as j,cW as w,d9 as O}from"./admin-drawer-panel-Crj9u2NV.js";const S=(t,c,e)=>t==null||c==null?-1:t.toString().toLocaleLowerCase().indexOf(c.toString().toLocaleLowerCase()),A=I({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?w(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]=w(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 b=O(M,n),k=(g=e==null?void 0:e.customKeyFilter)==null?void 0:g[n];if(l=k?k(b,c,a):s(b,c,a),l!==-1&&l!==!1)k?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=v([]),m=v(new Map),y=L(()=>f!=null&&f.transform?i(c).map(r=>[r,f.transform(r)]):i(c));j(()=>{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,W as n,E as f,D as d,X as b,cJ as g,Y as y,a0 as w,$ as r,aP as a,aF as c,aG as k,aH as m,T as _,V as v,aR as x,aS as F}from"./admin-drawer-panel-CtwFZKqt.js";import{V as C}from"./VTable-BTvFrnRE.js";import{V as S}from"./VCheckbox-t2lVZLiy.js";import"./VCheckboxBtn-C6Ngrnnm.js";import"./VSelectionControl-Dp57cbQU.js";const U="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.",V="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.",E="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.",I=`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.`,T="Fully optimize the search index each night. Disabling this flag will instead run a partial optimization which only merges small files. You should only disable this if the nightly optimization stresses your system too much.",A="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.",B={AU:U,NU:V,RG:E,FV:I,SO:T,IM:A},D={name:"AdminFlagsTab",components:{},data(){return{lastUpdate:{name:"",field:void 0},DESC:B}},computed:{...n(f,["formErrors"]),...n(d,["flags"])},mounted(){this.loadTables(["Flag"])},methods:{...b(d,["updateRow","clearErrors","loadTables"]),changeCol(e,s,l){this.lastUpdate.name=e,this.lastUpdate.field=s;const i={[s]:l};this.updateRow("Flag",e,i)},getFormErrors(e,s){if(e===this.lastUpdate.name&&s===this.lastUpdate.field)return this.formErrors},title(e){return g[e.key]}}},N=e=>(x("data-v-43c13cb0"),e=e(),F(),e),R=N(()=>a("thead",null,[a("tr",null,[a("th",null,"Description"),a("th",null,"Enabled")])],-1)),Y={class:"nameCol"},z={class:"desc"};function G(e,s,l,i,u,o){return r(),y(C,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:w(()=>[R,a("tbody",null,[(r(!0),c(v,null,k(e.flags,t=>(r(),c("tr",{key:`f${t.key}`},[a("td",Y,[a("h4",null,m(o.title(t)),1),a("p",z,m(u.DESC[t.key]),1)]),a("td",null,[_(S,{"model-value":t.on,"true-value":!0,"error-messages":o.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":h=>o.changeCol(t.key,"on",h)},null,8,["model-value","error-messages","onUpdate:modelValue"])])]))),128))])]),_:1},8,["items"])}const H=p(D,[["render",G],["__scopeId","data-v-43c13cb0"]]);export{H as default};
1
+ import{_ as p,W as n,E as f,D as d,X as b,cJ as g,Y as y,a0 as w,$ as r,aP as a,aF as c,aG as k,aH as m,T as _,V as v,aR as x,aS as F}from"./admin-drawer-panel-Crj9u2NV.js";import{V as C}from"./VTable-CJJzxZcw.js";import{V as S}from"./VCheckbox-DE3METqJ.js";import"./VCheckboxBtn-DetOzpfX.js";import"./VSelectionControl-DTgtf_T6.js";const U="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.",V="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.",E="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.",I=`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.`,T="Fully optimize the search index each night. Disabling this flag will instead run a partial optimization which only merges small files. You should only disable this if the nightly optimization stresses your system too much.",A="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.",B={AU:U,NU:V,RG:E,FV:I,SO:T,IM:A},D={name:"AdminFlagsTab",components:{},data(){return{lastUpdate:{name:"",field:void 0},DESC:B}},computed:{...n(f,["formErrors"]),...n(d,["flags"])},mounted(){this.loadTables(["Flag"])},methods:{...b(d,["updateRow","clearErrors","loadTables"]),changeCol(e,s,l){this.lastUpdate.name=e,this.lastUpdate.field=s;const i={[s]:l};this.updateRow("Flag",e,i)},getFormErrors(e,s){if(e===this.lastUpdate.name&&s===this.lastUpdate.field)return this.formErrors},title(e){return g[e.key]}}},N=e=>(x("data-v-43c13cb0"),e=e(),F(),e),R=N(()=>a("thead",null,[a("tr",null,[a("th",null,"Description"),a("th",null,"Enabled")])],-1)),Y={class:"nameCol"},z={class:"desc"};function G(e,s,l,i,u,o){return r(),y(C,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:w(()=>[R,a("tbody",null,[(r(!0),c(v,null,k(e.flags,t=>(r(),c("tr",{key:`f${t.key}`},[a("td",Y,[a("h4",null,m(o.title(t)),1),a("p",z,m(u.DESC[t.key]),1)]),a("td",null,[_(S,{"model-value":t.on,"true-value":!0,"error-messages":o.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":h=>o.changeCol(t.key,"on",h)},null,8,["model-value","error-messages","onUpdate:modelValue"])])]))),128))])]),_:1},8,["items"])}const H=p(D,[["render",G],["__scopeId","data-v-43c13cb0"]]);export{H as default};
@@ -1 +1 @@
1
- import{_ as p,W as n,E as f,D as d,X as b,cJ as g,Y as y,a0 as w,$ as r,aP as a,aF as c,aG as k,aH as m,T as _,V as v,aR as x,aS as F}from"./admin-drawer-panel-CtwFZKqt.js";import{V as C}from"./VTable-BTvFrnRE.js";import{V as S}from"./VCheckbox-t2lVZLiy.js";import"./VCheckboxBtn-C6Ngrnnm.js";import"./VSelectionControl-Dp57cbQU.js";const U="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.",V="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.",E="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.",I=`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.`,T="Fully optimize the search index each night. Disabling this flag will instead run a partial optimization which only merges small files. You should only disable this if the nightly optimization stresses your system too much.",A="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.",B={AU:U,NU:V,RG:E,FV:I,SO:T,IM:A},D={name:"AdminFlagsTab",components:{},data(){return{lastUpdate:{name:"",field:void 0},DESC:B}},computed:{...n(f,["formErrors"]),...n(d,["flags"])},mounted(){this.loadTables(["Flag"])},methods:{...b(d,["updateRow","clearErrors","loadTables"]),changeCol(e,s,l){this.lastUpdate.name=e,this.lastUpdate.field=s;const i={[s]:l};this.updateRow("Flag",e,i)},getFormErrors(e,s){if(e===this.lastUpdate.name&&s===this.lastUpdate.field)return this.formErrors},title(e){return g[e.key]}}},N=e=>(x("data-v-43c13cb0"),e=e(),F(),e),R=N(()=>a("thead",null,[a("tr",null,[a("th",null,"Description"),a("th",null,"Enabled")])],-1)),Y={class:"nameCol"},z={class:"desc"};function G(e,s,l,i,u,o){return r(),y(C,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:w(()=>[R,a("tbody",null,[(r(!0),c(v,null,k(e.flags,t=>(r(),c("tr",{key:`f${t.key}`},[a("td",Y,[a("h4",null,m(o.title(t)),1),a("p",z,m(u.DESC[t.key]),1)]),a("td",null,[_(S,{"model-value":t.on,"true-value":!0,"error-messages":o.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":h=>o.changeCol(t.key,"on",h)},null,8,["model-value","error-messages","onUpdate:modelValue"])])]))),128))])]),_:1},8,["items"])}const H=p(D,[["render",G],["__scopeId","data-v-43c13cb0"]]);export{H as default};
1
+ import{_ as p,W as n,E as f,D as d,X as b,cJ as g,Y as y,a0 as w,$ as r,aP as a,aF as c,aG as k,aH as m,T as _,V as v,aR as x,aS as F}from"./admin-drawer-panel-Crj9u2NV.js";import{V as C}from"./VTable-CJJzxZcw.js";import{V as S}from"./VCheckbox-DE3METqJ.js";import"./VCheckboxBtn-DetOzpfX.js";import"./VSelectionControl-DTgtf_T6.js";const U="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.",V="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.",E="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.",I=`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.`,T="Fully optimize the search index each night. Disabling this flag will instead run a partial optimization which only merges small files. You should only disable this if the nightly optimization stresses your system too much.",A="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.",B={AU:U,NU:V,RG:E,FV:I,SO:T,IM:A},D={name:"AdminFlagsTab",components:{},data(){return{lastUpdate:{name:"",field:void 0},DESC:B}},computed:{...n(f,["formErrors"]),...n(d,["flags"])},mounted(){this.loadTables(["Flag"])},methods:{...b(d,["updateRow","clearErrors","loadTables"]),changeCol(e,s,l){this.lastUpdate.name=e,this.lastUpdate.field=s;const i={[s]:l};this.updateRow("Flag",e,i)},getFormErrors(e,s){if(e===this.lastUpdate.name&&s===this.lastUpdate.field)return this.formErrors},title(e){return g[e.key]}}},N=e=>(x("data-v-43c13cb0"),e=e(),F(),e),R=N(()=>a("thead",null,[a("tr",null,[a("th",null,"Description"),a("th",null,"Enabled")])],-1)),Y={class:"nameCol"},z={class:"desc"};function G(e,s,l,i,u,o){return r(),y(C,{class:"highlight-table flags-table",items:e.flags,"fixed-header":""},{default:w(()=>[R,a("tbody",null,[(r(!0),c(v,null,k(e.flags,t=>(r(),c("tr",{key:`f${t.key}`},[a("td",Y,[a("h4",null,m(o.title(t)),1),a("p",z,m(u.DESC[t.key]),1)]),a("td",null,[_(S,{"model-value":t.on,"true-value":!0,"error-messages":o.getFormErrors(t.key,"on"),"hide-details":"auto","onUpdate:modelValue":h=>o.changeCol(t.key,"on",h)},null,8,["model-value","error-messages","onUpdate:modelValue"])])]))),128))])]),_:1},8,["items"])}const H=p(D,[["render",G],["__scopeId","data-v-43c13cb0"]]);export{H as default};
@@ -1 +1 @@
1
- import{l as y,W as w,D as c,X as f,_ as k,Z as u,$ as S,aF as G,T as s,a0 as i,bF as T,aP as e,aR as I,aS as v,al as m}from"./admin-drawer-panel-CtwFZKqt.js";import{A as D,G as A,a as V,b as E,c as j,R as N}from"./relation-chips-C7aq5P_5.js";import{V as H}from"./VTextField-bmvK4DuL.js";import{V as g,a as P}from"./VRadioGroup-DKmAGLI5.js";import"./VDialog-BNfcpCH0.js";import"./VSelect-B-kyTG8I.js";import"./VSelectionControl-Dp57cbQU.js";import"./VCheckboxBtn-C6Ngrnnm.js";import"./VSlideGroup-BCaUdgHs.js";import"./main-DG4M9J1O.js";import"./VTable-BTvFrnRE.js";import"./filter-kHxo3w0C.js";import"./confirm-dialog-BEylmNEi.js";const C=["name","userSet","librarySet","exclude"];Object.freeze(C);const h={name:"",userSet:[],librarySet:[],exclude:!1};Object.freeze(h);const L={name:"AdminGroupCreateUpdateInputs",components:{AdminRelationPicker:D,GroupChip:A},props:{oldRow:{type:[Object,Boolean],default:!1}},emits:["change"],data(){return{rules:{name:[t=>!!t||"Name is required",t=>!!t&&!this.names.has(t.trim())||"Name already used"]},row:{...h,...y.cloneDeep(this.oldRow)}}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users}),names(){return this.nameSet(this.groups,"name",this.oldRow,!0)}},watch:{row:{handler(t){this.$emit("change",t)},deep:!0},oldRow:{handler(t){this.row=y.cloneDeep(t)},deep:!0}},methods:{...f(c,["nameSet"])},UPDATE_KEYS:C,EMPTY_ROW:h};function O(t,a,b,x,l,_){const p=u("GroupChip"),d=u("AdminRelationPicker");return S(),G("div",null,[s(H,{modelValue:l.row.name,"onUpdate:modelValue":a[0]||(a[0]=n=>l.row.name=n),label:"Group Name",rules:l.rules.name,clearable:"",autofocus:""},null,8,["modelValue","rules"]),s(P,{inline:"",label:"Type","model-value":l.row.exclude,"hide-details":"auto","onUpdate:modelValue":a[1]||(a[1]=n=>l.row.exclude=n)},{default:i(()=>[s(g,{value:!1},{label:i(()=>[s(p,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),_:1}),s(g,{value:!0},{label:i(()=>[s(p,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),_:1})]),_:1},8,["model-value"]),s(d,{"model-value":l.row.userSet,label:"Users",objs:t.users,"title-key":"username","onUpdate:modelValue":a[2]||(a[2]=n=>l.row.userSet=n)},null,8,["model-value","objs"]),s(d,{"model-value":l.row.librarySet,label:"Libraries",objs:t.libraries,"title-key":"path","onUpdate:modelValue":a[3]||(a[3]=n=>l.row.librarySet=n)},null,8,["model-value","objs"])])}const z=k(L,[["render",O]]),B=180,F={name:"AdminGroupsTab",components:{AdminTable:V,AdminDeleteRowDialog:E,AdminCreateUpdateDialog:j,RelationChips:N,GroupChip:A},data(){return{lastUpdate:{pk:0,field:void 0},AdminGroupCreateUpdateInputs:T(z),GROUP_HELP_HEIGHT:B,headers:[{title:"Name",key:"name",align:"start"},{title:"Type",key:"exclude",align:"start"},{title:"Users",key:"userSet"},{title:"Libraries",key:"librarySet"},{title:"Actions",key:"actions",sortable:!1}]}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users})},mounted(){this.loadTables(["User","Library","Group"])},methods:{...f(c,["loadTables"]),groupType(t){const a=t.exclude;return{name:a?"Exclude ":"Include",exclude:a}}}},o=t=>(I("data-v-0893032c"),t=t(),v(),t),W={class:"tabHeader"},Y=o(()=>e("td",{class:"adminNoData",colspan:"100%"},"No groups",-1)),q={id:"groupHelp"},K=o(()=>e("h3",null,"Group Logic",-1)),M=o(()=>e("p",null," A library in no groups is accessible to every user and non-users if those are enabled. ",-1)),X=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Include groups is accessible "),e("em",null,"only"),m(" to users who are in those groups. ")],-1)),Z=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Exclude groups is not accessible to Guest users but is acccessable to any logged in users that are not in the Exclude groups. ")],-1)),J=o(()=>e("p",null," If you have libraries added and you do not see them in your browser, check to see if the library and your user are in the same group. ",-1)),Q={id:"groupTable"},$=o(()=>e("thead",null,[e("tr",null,[e("th",null,"Library in Group Type"),e("th",null,"Guest"),e("th",null,"User Out of Group"),e("th",null,"User In Group")])],-1)),ee=o(()=>e("tr",null,[e("td",null,"Not in a Group"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See")],-1)),te=o(()=>e("td",{class:"hidden"},"Hidden",-1)),se=o(()=>e("td",{class:"hidden"},"Hidden",-1)),oe=o(()=>e("td",{class:"see"},"Can See",-1)),le=o(()=>e("td",{class:"hidden"},"Hidden",-1)),ae=o(()=>e("td",{class:"see"},"Can See",-1)),ne=o(()=>e("td",{class:"hidden"},"Hidden",-1));function re(t,a,b,x,l,_){const p=u("AdminCreateUpdateDialog"),d=u("GroupChip"),n=u("RelationChips"),R=u("AdminDeleteRowDialog"),U=u("AdminTable");return S(),G("div",null,[e("header",W,[s(p,{table:"Group","max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs},null,8,["inputs"])]),s(U,{"item-title":"name",headers:l.headers,items:t.groups},{"no-data":i(()=>[Y]),"item.exclude":i(({item:r})=>[s(d,{"group-type":"",item:_.groupType(r),"title-key":"name"},null,8,["item"])]),"item.userSet":i(({item:r})=>[s(n,{pks:r.userSet,objs:t.users,"title-key":"username"},null,8,["pks","objs"])]),"item.librarySet":i(({item:r})=>[s(n,{pks:r.librarySet,objs:t.libraries,"title-key":"path"},null,8,["pks","objs"])]),"item.actions":i(({item:r})=>[s(p,{table:"Group","old-row":r,"max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs,size:"small",density:"compact"},null,8,["old-row","inputs"]),s(R,{table:"Group",pk:r.pk,name:r.name,size:"small",density:"compact"},null,8,["pk","name"])]),_:2},1032,["headers","items"]),e("div",q,[K,M,X,Z,J,e("table",Q,[$,e("tbody",null,[ee,e("tr",null,[e("td",null,[s(d,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),te,se,oe]),e("tr",null,[e("td",null,[s(d,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),le,ae,ne])])])])])}const ke=k(F,[["render",re],["__scopeId","data-v-0893032c"]]);export{ke as default};
1
+ import{l as y,W as w,D as c,X as f,_ as k,Z as u,$ as S,aF as G,T as s,a0 as i,bF as T,aP as e,aR as I,aS as v,al as m}from"./admin-drawer-panel-Crj9u2NV.js";import{A as D,G as A,a as V,b as E,c as j,R as N}from"./relation-chips-CCg5vRIV.js";import{V as H}from"./VTextField-BJxb_QuX.js";import{V as g,a as P}from"./VRadioGroup-DPsPhrgJ.js";import"./VDialog-BXw6XFu7.js";import"./VSelect-wpuzLrPv.js";import"./VSelectionControl-DTgtf_T6.js";import"./VCheckboxBtn-DetOzpfX.js";import"./VSlideGroup-KhqCfdKQ.js";import"./main-DArXKRWW.js";import"./VTable-CJJzxZcw.js";import"./filter-CvqVrkAJ.js";import"./confirm-dialog-Mznixjrb.js";const C=["name","userSet","librarySet","exclude"];Object.freeze(C);const h={name:"",userSet:[],librarySet:[],exclude:!1};Object.freeze(h);const L={name:"AdminGroupCreateUpdateInputs",components:{AdminRelationPicker:D,GroupChip:A},props:{oldRow:{type:[Object,Boolean],default:!1}},emits:["change"],data(){return{rules:{name:[t=>!!t||"Name is required",t=>!!t&&!this.names.has(t.trim())||"Name already used"]},row:{...h,...y.cloneDeep(this.oldRow)}}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users}),names(){return this.nameSet(this.groups,"name",this.oldRow,!0)}},watch:{row:{handler(t){this.$emit("change",t)},deep:!0},oldRow:{handler(t){this.row=y.cloneDeep(t)},deep:!0}},methods:{...f(c,["nameSet"])},UPDATE_KEYS:C,EMPTY_ROW:h};function O(t,a,b,x,l,_){const p=u("GroupChip"),d=u("AdminRelationPicker");return S(),G("div",null,[s(H,{modelValue:l.row.name,"onUpdate:modelValue":a[0]||(a[0]=n=>l.row.name=n),label:"Group Name",rules:l.rules.name,clearable:"",autofocus:""},null,8,["modelValue","rules"]),s(P,{inline:"",label:"Type","model-value":l.row.exclude,"hide-details":"auto","onUpdate:modelValue":a[1]||(a[1]=n=>l.row.exclude=n)},{default:i(()=>[s(g,{value:!1},{label:i(()=>[s(p,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),_:1}),s(g,{value:!0},{label:i(()=>[s(p,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),_:1})]),_:1},8,["model-value"]),s(d,{"model-value":l.row.userSet,label:"Users",objs:t.users,"title-key":"username","onUpdate:modelValue":a[2]||(a[2]=n=>l.row.userSet=n)},null,8,["model-value","objs"]),s(d,{"model-value":l.row.librarySet,label:"Libraries",objs:t.libraries,"title-key":"path","onUpdate:modelValue":a[3]||(a[3]=n=>l.row.librarySet=n)},null,8,["model-value","objs"])])}const z=k(L,[["render",O]]),B=180,F={name:"AdminGroupsTab",components:{AdminTable:V,AdminDeleteRowDialog:E,AdminCreateUpdateDialog:j,RelationChips:N,GroupChip:A},data(){return{lastUpdate:{pk:0,field:void 0},AdminGroupCreateUpdateInputs:T(z),GROUP_HELP_HEIGHT:B,headers:[{title:"Name",key:"name",align:"start"},{title:"Type",key:"exclude",align:"start"},{title:"Users",key:"userSet"},{title:"Libraries",key:"librarySet"},{title:"Actions",key:"actions",sortable:!1}]}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users})},mounted(){this.loadTables(["User","Library","Group"])},methods:{...f(c,["loadTables"]),groupType(t){const a=t.exclude;return{name:a?"Exclude ":"Include",exclude:a}}}},o=t=>(I("data-v-0893032c"),t=t(),v(),t),W={class:"tabHeader"},Y=o(()=>e("td",{class:"adminNoData",colspan:"100%"},"No groups",-1)),q={id:"groupHelp"},K=o(()=>e("h3",null,"Group Logic",-1)),M=o(()=>e("p",null," A library in no groups is accessible to every user and non-users if those are enabled. ",-1)),X=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Include groups is accessible "),e("em",null,"only"),m(" to users who are in those groups. ")],-1)),Z=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Exclude groups is not accessible to Guest users but is acccessable to any logged in users that are not in the Exclude groups. ")],-1)),J=o(()=>e("p",null," If you have libraries added and you do not see them in your browser, check to see if the library and your user are in the same group. ",-1)),Q={id:"groupTable"},$=o(()=>e("thead",null,[e("tr",null,[e("th",null,"Library in Group Type"),e("th",null,"Guest"),e("th",null,"User Out of Group"),e("th",null,"User In Group")])],-1)),ee=o(()=>e("tr",null,[e("td",null,"Not in a Group"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See")],-1)),te=o(()=>e("td",{class:"hidden"},"Hidden",-1)),se=o(()=>e("td",{class:"hidden"},"Hidden",-1)),oe=o(()=>e("td",{class:"see"},"Can See",-1)),le=o(()=>e("td",{class:"hidden"},"Hidden",-1)),ae=o(()=>e("td",{class:"see"},"Can See",-1)),ne=o(()=>e("td",{class:"hidden"},"Hidden",-1));function re(t,a,b,x,l,_){const p=u("AdminCreateUpdateDialog"),d=u("GroupChip"),n=u("RelationChips"),R=u("AdminDeleteRowDialog"),U=u("AdminTable");return S(),G("div",null,[e("header",W,[s(p,{table:"Group","max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs},null,8,["inputs"])]),s(U,{"item-title":"name",headers:l.headers,items:t.groups},{"no-data":i(()=>[Y]),"item.exclude":i(({item:r})=>[s(d,{"group-type":"",item:_.groupType(r),"title-key":"name"},null,8,["item"])]),"item.userSet":i(({item:r})=>[s(n,{pks:r.userSet,objs:t.users,"title-key":"username"},null,8,["pks","objs"])]),"item.librarySet":i(({item:r})=>[s(n,{pks:r.librarySet,objs:t.libraries,"title-key":"path"},null,8,["pks","objs"])]),"item.actions":i(({item:r})=>[s(p,{table:"Group","old-row":r,"max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs,size:"small",density:"compact"},null,8,["old-row","inputs"]),s(R,{table:"Group",pk:r.pk,name:r.name,size:"small",density:"compact"},null,8,["pk","name"])]),_:2},1032,["headers","items"]),e("div",q,[K,M,X,Z,J,e("table",Q,[$,e("tbody",null,[ee,e("tr",null,[e("td",null,[s(d,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),te,se,oe]),e("tr",null,[e("td",null,[s(d,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),le,ae,ne])])])])])}const ke=k(F,[["render",re],["__scopeId","data-v-0893032c"]]);export{ke as default};
@@ -1 +1 @@
1
- import{l as y,W as w,D as c,X as f,_ as k,Z as u,$ as S,aF as G,T as s,a0 as i,bF as T,aP as e,aR as I,aS as v,al as m}from"./admin-drawer-panel-CtwFZKqt.js";import{A as D,G as A,a as V,b as E,c as j,R as N}from"./relation-chips-C7aq5P_5.js";import{V as H}from"./VTextField-bmvK4DuL.js";import{V as g,a as P}from"./VRadioGroup-DKmAGLI5.js";import"./VDialog-BNfcpCH0.js";import"./VSelect-B-kyTG8I.js";import"./VSelectionControl-Dp57cbQU.js";import"./VCheckboxBtn-C6Ngrnnm.js";import"./VSlideGroup-BCaUdgHs.js";import"./main-DG4M9J1O.js";import"./VTable-BTvFrnRE.js";import"./filter-kHxo3w0C.js";import"./confirm-dialog-BEylmNEi.js";const C=["name","userSet","librarySet","exclude"];Object.freeze(C);const h={name:"",userSet:[],librarySet:[],exclude:!1};Object.freeze(h);const L={name:"AdminGroupCreateUpdateInputs",components:{AdminRelationPicker:D,GroupChip:A},props:{oldRow:{type:[Object,Boolean],default:!1}},emits:["change"],data(){return{rules:{name:[t=>!!t||"Name is required",t=>!!t&&!this.names.has(t.trim())||"Name already used"]},row:{...h,...y.cloneDeep(this.oldRow)}}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users}),names(){return this.nameSet(this.groups,"name",this.oldRow,!0)}},watch:{row:{handler(t){this.$emit("change",t)},deep:!0},oldRow:{handler(t){this.row=y.cloneDeep(t)},deep:!0}},methods:{...f(c,["nameSet"])},UPDATE_KEYS:C,EMPTY_ROW:h};function O(t,a,b,x,l,_){const p=u("GroupChip"),d=u("AdminRelationPicker");return S(),G("div",null,[s(H,{modelValue:l.row.name,"onUpdate:modelValue":a[0]||(a[0]=n=>l.row.name=n),label:"Group Name",rules:l.rules.name,clearable:"",autofocus:""},null,8,["modelValue","rules"]),s(P,{inline:"",label:"Type","model-value":l.row.exclude,"hide-details":"auto","onUpdate:modelValue":a[1]||(a[1]=n=>l.row.exclude=n)},{default:i(()=>[s(g,{value:!1},{label:i(()=>[s(p,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),_:1}),s(g,{value:!0},{label:i(()=>[s(p,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),_:1})]),_:1},8,["model-value"]),s(d,{"model-value":l.row.userSet,label:"Users",objs:t.users,"title-key":"username","onUpdate:modelValue":a[2]||(a[2]=n=>l.row.userSet=n)},null,8,["model-value","objs"]),s(d,{"model-value":l.row.librarySet,label:"Libraries",objs:t.libraries,"title-key":"path","onUpdate:modelValue":a[3]||(a[3]=n=>l.row.librarySet=n)},null,8,["model-value","objs"])])}const z=k(L,[["render",O]]),B=180,F={name:"AdminGroupsTab",components:{AdminTable:V,AdminDeleteRowDialog:E,AdminCreateUpdateDialog:j,RelationChips:N,GroupChip:A},data(){return{lastUpdate:{pk:0,field:void 0},AdminGroupCreateUpdateInputs:T(z),GROUP_HELP_HEIGHT:B,headers:[{title:"Name",key:"name",align:"start"},{title:"Type",key:"exclude",align:"start"},{title:"Users",key:"userSet"},{title:"Libraries",key:"librarySet"},{title:"Actions",key:"actions",sortable:!1}]}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users})},mounted(){this.loadTables(["User","Library","Group"])},methods:{...f(c,["loadTables"]),groupType(t){const a=t.exclude;return{name:a?"Exclude ":"Include",exclude:a}}}},o=t=>(I("data-v-0893032c"),t=t(),v(),t),W={class:"tabHeader"},Y=o(()=>e("td",{class:"adminNoData",colspan:"100%"},"No groups",-1)),q={id:"groupHelp"},K=o(()=>e("h3",null,"Group Logic",-1)),M=o(()=>e("p",null," A library in no groups is accessible to every user and non-users if those are enabled. ",-1)),X=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Include groups is accessible "),e("em",null,"only"),m(" to users who are in those groups. ")],-1)),Z=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Exclude groups is not accessible to Guest users but is acccessable to any logged in users that are not in the Exclude groups. ")],-1)),J=o(()=>e("p",null," If you have libraries added and you do not see them in your browser, check to see if the library and your user are in the same group. ",-1)),Q={id:"groupTable"},$=o(()=>e("thead",null,[e("tr",null,[e("th",null,"Library in Group Type"),e("th",null,"Guest"),e("th",null,"User Out of Group"),e("th",null,"User In Group")])],-1)),ee=o(()=>e("tr",null,[e("td",null,"Not in a Group"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See")],-1)),te=o(()=>e("td",{class:"hidden"},"Hidden",-1)),se=o(()=>e("td",{class:"hidden"},"Hidden",-1)),oe=o(()=>e("td",{class:"see"},"Can See",-1)),le=o(()=>e("td",{class:"hidden"},"Hidden",-1)),ae=o(()=>e("td",{class:"see"},"Can See",-1)),ne=o(()=>e("td",{class:"hidden"},"Hidden",-1));function re(t,a,b,x,l,_){const p=u("AdminCreateUpdateDialog"),d=u("GroupChip"),n=u("RelationChips"),R=u("AdminDeleteRowDialog"),U=u("AdminTable");return S(),G("div",null,[e("header",W,[s(p,{table:"Group","max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs},null,8,["inputs"])]),s(U,{"item-title":"name",headers:l.headers,items:t.groups},{"no-data":i(()=>[Y]),"item.exclude":i(({item:r})=>[s(d,{"group-type":"",item:_.groupType(r),"title-key":"name"},null,8,["item"])]),"item.userSet":i(({item:r})=>[s(n,{pks:r.userSet,objs:t.users,"title-key":"username"},null,8,["pks","objs"])]),"item.librarySet":i(({item:r})=>[s(n,{pks:r.librarySet,objs:t.libraries,"title-key":"path"},null,8,["pks","objs"])]),"item.actions":i(({item:r})=>[s(p,{table:"Group","old-row":r,"max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs,size:"small",density:"compact"},null,8,["old-row","inputs"]),s(R,{table:"Group",pk:r.pk,name:r.name,size:"small",density:"compact"},null,8,["pk","name"])]),_:2},1032,["headers","items"]),e("div",q,[K,M,X,Z,J,e("table",Q,[$,e("tbody",null,[ee,e("tr",null,[e("td",null,[s(d,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),te,se,oe]),e("tr",null,[e("td",null,[s(d,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),le,ae,ne])])])])])}const ke=k(F,[["render",re],["__scopeId","data-v-0893032c"]]);export{ke as default};
1
+ import{l as y,W as w,D as c,X as f,_ as k,Z as u,$ as S,aF as G,T as s,a0 as i,bF as T,aP as e,aR as I,aS as v,al as m}from"./admin-drawer-panel-Crj9u2NV.js";import{A as D,G as A,a as V,b as E,c as j,R as N}from"./relation-chips-CCg5vRIV.js";import{V as H}from"./VTextField-BJxb_QuX.js";import{V as g,a as P}from"./VRadioGroup-DPsPhrgJ.js";import"./VDialog-BXw6XFu7.js";import"./VSelect-wpuzLrPv.js";import"./VSelectionControl-DTgtf_T6.js";import"./VCheckboxBtn-DetOzpfX.js";import"./VSlideGroup-KhqCfdKQ.js";import"./main-DArXKRWW.js";import"./VTable-CJJzxZcw.js";import"./filter-CvqVrkAJ.js";import"./confirm-dialog-Mznixjrb.js";const C=["name","userSet","librarySet","exclude"];Object.freeze(C);const h={name:"",userSet:[],librarySet:[],exclude:!1};Object.freeze(h);const L={name:"AdminGroupCreateUpdateInputs",components:{AdminRelationPicker:D,GroupChip:A},props:{oldRow:{type:[Object,Boolean],default:!1}},emits:["change"],data(){return{rules:{name:[t=>!!t||"Name is required",t=>!!t&&!this.names.has(t.trim())||"Name already used"]},row:{...h,...y.cloneDeep(this.oldRow)}}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users}),names(){return this.nameSet(this.groups,"name",this.oldRow,!0)}},watch:{row:{handler(t){this.$emit("change",t)},deep:!0},oldRow:{handler(t){this.row=y.cloneDeep(t)},deep:!0}},methods:{...f(c,["nameSet"])},UPDATE_KEYS:C,EMPTY_ROW:h};function O(t,a,b,x,l,_){const p=u("GroupChip"),d=u("AdminRelationPicker");return S(),G("div",null,[s(H,{modelValue:l.row.name,"onUpdate:modelValue":a[0]||(a[0]=n=>l.row.name=n),label:"Group Name",rules:l.rules.name,clearable:"",autofocus:""},null,8,["modelValue","rules"]),s(P,{inline:"",label:"Type","model-value":l.row.exclude,"hide-details":"auto","onUpdate:modelValue":a[1]||(a[1]=n=>l.row.exclude=n)},{default:i(()=>[s(g,{value:!1},{label:i(()=>[s(p,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),_:1}),s(g,{value:!0},{label:i(()=>[s(p,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),_:1})]),_:1},8,["model-value"]),s(d,{"model-value":l.row.userSet,label:"Users",objs:t.users,"title-key":"username","onUpdate:modelValue":a[2]||(a[2]=n=>l.row.userSet=n)},null,8,["model-value","objs"]),s(d,{"model-value":l.row.librarySet,label:"Libraries",objs:t.libraries,"title-key":"path","onUpdate:modelValue":a[3]||(a[3]=n=>l.row.librarySet=n)},null,8,["model-value","objs"])])}const z=k(L,[["render",O]]),B=180,F={name:"AdminGroupsTab",components:{AdminTable:V,AdminDeleteRowDialog:E,AdminCreateUpdateDialog:j,RelationChips:N,GroupChip:A},data(){return{lastUpdate:{pk:0,field:void 0},AdminGroupCreateUpdateInputs:T(z),GROUP_HELP_HEIGHT:B,headers:[{title:"Name",key:"name",align:"start"},{title:"Type",key:"exclude",align:"start"},{title:"Users",key:"userSet"},{title:"Libraries",key:"librarySet"},{title:"Actions",key:"actions",sortable:!1}]}},computed:{...w(c,{groups:t=>t.groups,libraries:t=>t.libraries,users:t=>t.users})},mounted(){this.loadTables(["User","Library","Group"])},methods:{...f(c,["loadTables"]),groupType(t){const a=t.exclude;return{name:a?"Exclude ":"Include",exclude:a}}}},o=t=>(I("data-v-0893032c"),t=t(),v(),t),W={class:"tabHeader"},Y=o(()=>e("td",{class:"adminNoData",colspan:"100%"},"No groups",-1)),q={id:"groupHelp"},K=o(()=>e("h3",null,"Group Logic",-1)),M=o(()=>e("p",null," A library in no groups is accessible to every user and non-users if those are enabled. ",-1)),X=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Include groups is accessible "),e("em",null,"only"),m(" to users who are in those groups. ")],-1)),Z=o(()=>e("p",null,[m(" A library with "),e("em",null,"any"),m(" Exclude groups is not accessible to Guest users but is acccessable to any logged in users that are not in the Exclude groups. ")],-1)),J=o(()=>e("p",null," If you have libraries added and you do not see them in your browser, check to see if the library and your user are in the same group. ",-1)),Q={id:"groupTable"},$=o(()=>e("thead",null,[e("tr",null,[e("th",null,"Library in Group Type"),e("th",null,"Guest"),e("th",null,"User Out of Group"),e("th",null,"User In Group")])],-1)),ee=o(()=>e("tr",null,[e("td",null,"Not in a Group"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See"),e("td",{class:"see"},"Can See")],-1)),te=o(()=>e("td",{class:"hidden"},"Hidden",-1)),se=o(()=>e("td",{class:"hidden"},"Hidden",-1)),oe=o(()=>e("td",{class:"see"},"Can See",-1)),le=o(()=>e("td",{class:"hidden"},"Hidden",-1)),ae=o(()=>e("td",{class:"see"},"Can See",-1)),ne=o(()=>e("td",{class:"hidden"},"Hidden",-1));function re(t,a,b,x,l,_){const p=u("AdminCreateUpdateDialog"),d=u("GroupChip"),n=u("RelationChips"),R=u("AdminDeleteRowDialog"),U=u("AdminTable");return S(),G("div",null,[e("header",W,[s(p,{table:"Group","max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs},null,8,["inputs"])]),s(U,{"item-title":"name",headers:l.headers,items:t.groups},{"no-data":i(()=>[Y]),"item.exclude":i(({item:r})=>[s(d,{"group-type":"",item:_.groupType(r),"title-key":"name"},null,8,["item"])]),"item.userSet":i(({item:r})=>[s(n,{pks:r.userSet,objs:t.users,"title-key":"username"},null,8,["pks","objs"])]),"item.librarySet":i(({item:r})=>[s(n,{pks:r.librarySet,objs:t.libraries,"title-key":"path"},null,8,["pks","objs"])]),"item.actions":i(({item:r})=>[s(p,{table:"Group","old-row":r,"max-width":"20em",inputs:l.AdminGroupCreateUpdateInputs,size:"small",density:"compact"},null,8,["old-row","inputs"]),s(R,{table:"Group",pk:r.pk,name:r.name,size:"small",density:"compact"},null,8,["pk","name"])]),_:2},1032,["headers","items"]),e("div",q,[K,M,X,Z,J,e("table",Q,[$,e("tbody",null,[ee,e("tr",null,[e("td",null,[s(d,{item:{name:"Include",exclude:!1},"title-key":"name","group-type":""})]),te,se,oe]),e("tr",null,[e("td",null,[s(d,{item:{name:"Exclude",exclude:!0},"title-key":"name","group-type":""})]),le,ae,ne])])])])])}const ke=k(F,[["render",re],["__scopeId","data-v-0893032c"]]);export{ke as default};