codex 1.6.8__py3-none-any.whl → 1.6.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of codex might be problematic. Click here for more details.

Files changed (429) hide show
  1. codex/librarian/cron/__init__.py +1 -0
  2. codex/librarian/cron/crond.py +84 -0
  3. codex/librarian/janitor/time.py +12 -0
  4. codex/librarian/librariand.py +9 -3
  5. codex/librarian/tasks.py +5 -1
  6. codex/librarian/telemeter/__init__.py +1 -0
  7. codex/librarian/{stats.py → telemeter/stats.py} +1 -0
  8. codex/librarian/telemeter/tasks.py +8 -0
  9. codex/librarian/telemeter/telemeter.py +77 -0
  10. codex/librarian/telemeter/time.py +48 -0
  11. codex/migrations/0028_telemeter.py +48 -0
  12. codex/models/admin.py +2 -0
  13. codex/settings/settings.py +1 -1
  14. codex/static_root/assets/{VCheckbox-DE3METqJ.947b68d61150.js → VCheckbox-dIScsEcb.d54e90dd2ea2.js} +1 -1
  15. codex/static_root/assets/VCheckbox-dIScsEcb.d54e90dd2ea2.js.br +0 -0
  16. codex/static_root/assets/VCheckbox-dIScsEcb.d54e90dd2ea2.js.gz +0 -0
  17. codex/static_root/assets/{VCheckbox-DE3METqJ.js → VCheckbox-dIScsEcb.js} +1 -1
  18. codex/static_root/assets/VCheckbox-dIScsEcb.js.br +0 -0
  19. codex/static_root/assets/VCheckbox-dIScsEcb.js.gz +0 -0
  20. codex/static_root/assets/{VCheckboxBtn-DetOzpfX.e4293f13e16f.js → VCheckboxBtn-BpLxL6DP.a4cfab2286b6.js} +1 -1
  21. codex/static_root/assets/VCheckboxBtn-BpLxL6DP.a4cfab2286b6.js.br +0 -0
  22. codex/static_root/assets/VCheckboxBtn-BpLxL6DP.a4cfab2286b6.js.gz +0 -0
  23. codex/static_root/assets/{VCheckboxBtn-DetOzpfX.js → VCheckboxBtn-BpLxL6DP.js} +1 -1
  24. codex/static_root/assets/VCheckboxBtn-BpLxL6DP.js.br +0 -0
  25. codex/static_root/assets/VCheckboxBtn-BpLxL6DP.js.gz +0 -0
  26. codex/static_root/assets/{VCombobox-D2XmpiHi.3427b660b686.js → VCombobox-BiTvNSAL.d1884eaf76e6.js} +1 -1
  27. codex/static_root/assets/VCombobox-BiTvNSAL.d1884eaf76e6.js.br +0 -0
  28. codex/static_root/assets/VCombobox-BiTvNSAL.d1884eaf76e6.js.gz +0 -0
  29. codex/static_root/assets/{VCombobox-D2XmpiHi.js → VCombobox-BiTvNSAL.js} +1 -1
  30. codex/static_root/assets/VCombobox-BiTvNSAL.js.br +0 -0
  31. codex/static_root/assets/VCombobox-BiTvNSAL.js.gz +0 -0
  32. codex/static_root/assets/{VDialog-BXw6XFu7.38cde34df95a.js → VDialog-DO_IeNl2.1e644515ee26.js} +1 -1
  33. codex/static_root/assets/VDialog-DO_IeNl2.1e644515ee26.js.br +0 -0
  34. codex/static_root/assets/VDialog-DO_IeNl2.1e644515ee26.js.gz +0 -0
  35. codex/static_root/assets/{VDialog-BXw6XFu7.js → VDialog-DO_IeNl2.js} +1 -1
  36. codex/static_root/assets/VDialog-DO_IeNl2.js.br +0 -0
  37. codex/static_root/assets/VDialog-DO_IeNl2.js.gz +0 -0
  38. codex/static_root/assets/{VExpansionPanels-cdsBiWJW.289873cadd1b.js → VExpansionPanels-paVX7c3D.3be9407a80fd.js} +1 -1
  39. codex/static_root/assets/VExpansionPanels-paVX7c3D.3be9407a80fd.js.br +0 -0
  40. codex/static_root/assets/VExpansionPanels-paVX7c3D.3be9407a80fd.js.gz +0 -0
  41. codex/static_root/assets/{VExpansionPanels-cdsBiWJW.js → VExpansionPanels-paVX7c3D.js} +1 -1
  42. codex/static_root/assets/VExpansionPanels-paVX7c3D.js.br +0 -0
  43. codex/static_root/assets/VExpansionPanels-paVX7c3D.js.gz +0 -0
  44. codex/static_root/assets/{VRadioGroup-DPsPhrgJ.2232643fa4b2.js → VRadioGroup-CLZGmBdz.1e41ea70fba8.js} +1 -1
  45. codex/static_root/assets/VRadioGroup-CLZGmBdz.1e41ea70fba8.js.br +0 -0
  46. codex/static_root/assets/VRadioGroup-CLZGmBdz.1e41ea70fba8.js.gz +0 -0
  47. codex/static_root/assets/{VRadioGroup-DPsPhrgJ.js → VRadioGroup-CLZGmBdz.js} +1 -1
  48. codex/static_root/assets/VRadioGroup-CLZGmBdz.js.br +0 -0
  49. codex/static_root/assets/VRadioGroup-CLZGmBdz.js.gz +0 -0
  50. codex/static_root/assets/{VSelect-wpuzLrPv.f46f25efca5b.js → VSelect-Cwd7Ke2J.fd98b8f830af.js} +1 -1
  51. codex/static_root/assets/VSelect-Cwd7Ke2J.fd98b8f830af.js.br +0 -0
  52. codex/static_root/assets/VSelect-Cwd7Ke2J.fd98b8f830af.js.gz +0 -0
  53. codex/static_root/assets/{VSelect-wpuzLrPv.js → VSelect-Cwd7Ke2J.js} +1 -1
  54. codex/static_root/assets/VSelect-Cwd7Ke2J.js.br +0 -0
  55. codex/static_root/assets/VSelect-Cwd7Ke2J.js.gz +0 -0
  56. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css +1 -0
  57. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css.br +0 -0
  58. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css.gz +0 -0
  59. codex/static_root/assets/VSelectionControl-BFq--28I.css +1 -0
  60. codex/static_root/assets/VSelectionControl-BFq--28I.css.br +0 -0
  61. codex/static_root/assets/VSelectionControl-BFq--28I.css.gz +0 -0
  62. codex/static_root/assets/VSelectionControl-BTjn8uTI.3e9f6e646a35.js +1 -0
  63. codex/static_root/assets/VSelectionControl-BTjn8uTI.3e9f6e646a35.js.br +0 -0
  64. codex/static_root/assets/VSelectionControl-BTjn8uTI.3e9f6e646a35.js.gz +0 -0
  65. codex/static_root/assets/VSelectionControl-BTjn8uTI.js +1 -0
  66. codex/static_root/assets/VSelectionControl-BTjn8uTI.js.br +0 -0
  67. codex/static_root/assets/VSelectionControl-BTjn8uTI.js.gz +0 -0
  68. codex/static_root/assets/{VSlideGroup-KhqCfdKQ.984b37842a8b.js → VSlideGroup-D4BlVRr8.10a79fd58813.js} +1 -1
  69. codex/static_root/assets/VSlideGroup-D4BlVRr8.10a79fd58813.js.br +0 -0
  70. codex/static_root/assets/VSlideGroup-D4BlVRr8.10a79fd58813.js.gz +0 -0
  71. codex/static_root/assets/{VSlideGroup-KhqCfdKQ.js → VSlideGroup-D4BlVRr8.js} +1 -1
  72. codex/static_root/assets/VSlideGroup-D4BlVRr8.js.br +0 -0
  73. codex/static_root/assets/VSlideGroup-D4BlVRr8.js.gz +0 -0
  74. codex/static_root/assets/{VTable-CJJzxZcw.edb1bb582e5c.js → VTable-IQf8Xj4J.2e69b517b235.js} +1 -1
  75. codex/static_root/assets/VTable-IQf8Xj4J.2e69b517b235.js.br +0 -0
  76. codex/static_root/assets/VTable-IQf8Xj4J.2e69b517b235.js.gz +0 -0
  77. codex/static_root/assets/{VTable-CJJzxZcw.js → VTable-IQf8Xj4J.js} +1 -1
  78. codex/static_root/assets/VTable-IQf8Xj4J.js.br +0 -0
  79. codex/static_root/assets/VTable-IQf8Xj4J.js.gz +0 -0
  80. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css +1 -0
  81. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.br +0 -0
  82. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.gz +0 -0
  83. codex/static_root/assets/VTextField-BssVoDhB.css +1 -0
  84. codex/static_root/assets/VTextField-BssVoDhB.css.br +0 -0
  85. codex/static_root/assets/VTextField-BssVoDhB.css.gz +0 -0
  86. codex/static_root/assets/VTextField-DKXmWQyx.53d9e13b9847.js +1 -0
  87. codex/static_root/assets/VTextField-DKXmWQyx.53d9e13b9847.js.br +0 -0
  88. codex/static_root/assets/VTextField-DKXmWQyx.53d9e13b9847.js.gz +0 -0
  89. codex/static_root/assets/VTextField-DKXmWQyx.js +1 -0
  90. codex/static_root/assets/VTextField-DKXmWQyx.js.br +0 -0
  91. codex/static_root/assets/VTextField-DKXmWQyx.js.gz +0 -0
  92. codex/static_root/assets/{VWindowItem-BWJJgE5I.8daf8cde5589.js → VWindowItem-clwRzf0Z.01620e37f020.js} +1 -1
  93. codex/static_root/assets/VWindowItem-clwRzf0Z.01620e37f020.js.br +0 -0
  94. codex/static_root/assets/VWindowItem-clwRzf0Z.01620e37f020.js.gz +0 -0
  95. codex/static_root/assets/{VWindowItem-BWJJgE5I.js → VWindowItem-clwRzf0Z.js} +1 -1
  96. codex/static_root/assets/VWindowItem-clwRzf0Z.js.br +0 -0
  97. codex/static_root/assets/VWindowItem-clwRzf0Z.js.gz +0 -0
  98. codex/static_root/assets/{admin-DrXckZDB.5feb8fde2d3a.js → admin-BMM4khnn.eeb686da7f67.js} +1 -1
  99. codex/static_root/assets/admin-BMM4khnn.eeb686da7f67.js.br +0 -0
  100. codex/static_root/assets/admin-BMM4khnn.eeb686da7f67.js.gz +0 -0
  101. codex/static_root/assets/{admin-DrXckZDB.js → admin-BMM4khnn.js} +1 -1
  102. codex/static_root/assets/admin-BMM4khnn.js.br +0 -0
  103. codex/static_root/assets/admin-BMM4khnn.js.gz +0 -0
  104. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.3a7af8ec4462.css +1 -0
  105. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.3a7af8ec4462.css.br +0 -0
  106. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.3a7af8ec4462.css.gz +0 -0
  107. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.css +1 -0
  108. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.css.br +0 -0
  109. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.css.gz +0 -0
  110. codex/static_root/assets/admin-drawer-panel-SQytza6T.d94cc92fef08.js +56 -0
  111. codex/static_root/assets/admin-drawer-panel-SQytza6T.d94cc92fef08.js.br +0 -0
  112. codex/static_root/assets/admin-drawer-panel-SQytza6T.d94cc92fef08.js.gz +0 -0
  113. codex/static_root/assets/admin-drawer-panel-SQytza6T.js +56 -0
  114. codex/static_root/assets/admin-drawer-panel-SQytza6T.js.br +0 -0
  115. codex/static_root/assets/admin-drawer-panel-SQytza6T.js.gz +0 -0
  116. codex/static_root/assets/browser-D6WDXwID.011e4a20946c.js +1 -0
  117. codex/static_root/assets/browser-D6WDXwID.011e4a20946c.js.br +0 -0
  118. codex/static_root/assets/browser-D6WDXwID.011e4a20946c.js.gz +0 -0
  119. codex/static_root/assets/browser-D6WDXwID.js +1 -0
  120. codex/static_root/assets/browser-D6WDXwID.js.br +0 -0
  121. codex/static_root/assets/browser-D6WDXwID.js.gz +0 -0
  122. codex/static_root/assets/{change-password-dialog-Cm6AnxGf.66f4e604144b.js → change-password-dialog-CD1pdXK9.8b94f4f171c6.js} +1 -1
  123. codex/static_root/assets/change-password-dialog-CD1pdXK9.8b94f4f171c6.js.br +0 -0
  124. codex/static_root/assets/change-password-dialog-CD1pdXK9.8b94f4f171c6.js.gz +0 -0
  125. codex/static_root/assets/{change-password-dialog-Cm6AnxGf.js → change-password-dialog-CD1pdXK9.js} +1 -1
  126. codex/static_root/assets/change-password-dialog-CD1pdXK9.js.br +0 -0
  127. codex/static_root/assets/change-password-dialog-CD1pdXK9.js.gz +0 -0
  128. codex/static_root/assets/{confirm-dialog-Mznixjrb.927eaa9bea39.js → confirm-dialog-_HotKBZZ.2e586037b3e1.js} +1 -1
  129. codex/static_root/assets/confirm-dialog-_HotKBZZ.2e586037b3e1.js.br +0 -0
  130. codex/static_root/assets/confirm-dialog-_HotKBZZ.2e586037b3e1.js.gz +0 -0
  131. codex/static_root/assets/{confirm-dialog-Mznixjrb.js → confirm-dialog-_HotKBZZ.js} +1 -1
  132. codex/static_root/assets/confirm-dialog-_HotKBZZ.js.br +0 -0
  133. codex/static_root/assets/confirm-dialog-_HotKBZZ.js.gz +0 -0
  134. codex/static_root/assets/{datetime-column-DqSk_iUb.260bcbb4c8e2.js → datetime-column-D93BsvcX.5caf2255bdc3.js} +1 -1
  135. codex/static_root/assets/datetime-column-D93BsvcX.5caf2255bdc3.js.br +0 -0
  136. codex/static_root/assets/datetime-column-D93BsvcX.5caf2255bdc3.js.gz +0 -0
  137. codex/static_root/assets/{datetime-column-DqSk_iUb.js → datetime-column-D93BsvcX.js} +1 -1
  138. codex/static_root/assets/datetime-column-D93BsvcX.js.br +0 -0
  139. codex/static_root/assets/datetime-column-D93BsvcX.js.gz +0 -0
  140. codex/static_root/assets/{filter-CvqVrkAJ.8996d1b1db2a.js → filter-ji46VTOR.f7b9ed6fec13.js} +1 -1
  141. codex/static_root/assets/filter-ji46VTOR.f7b9ed6fec13.js.br +0 -0
  142. codex/static_root/assets/filter-ji46VTOR.f7b9ed6fec13.js.gz +0 -0
  143. codex/static_root/assets/{filter-CvqVrkAJ.js → filter-ji46VTOR.js} +1 -1
  144. codex/static_root/assets/filter-ji46VTOR.js.br +0 -0
  145. codex/static_root/assets/filter-ji46VTOR.js.gz +0 -0
  146. codex/static_root/assets/flag-tab-CRfBTBsz.0d8f084eea6e.js +1 -0
  147. codex/static_root/assets/flag-tab-CRfBTBsz.0d8f084eea6e.js.br +0 -0
  148. codex/static_root/assets/flag-tab-CRfBTBsz.0d8f084eea6e.js.gz +0 -0
  149. codex/static_root/assets/flag-tab-CRfBTBsz.js +1 -0
  150. codex/static_root/assets/flag-tab-CRfBTBsz.js.br +0 -0
  151. codex/static_root/assets/flag-tab-CRfBTBsz.js.gz +0 -0
  152. codex/static_root/assets/{group-tab-89t0MyqI.1c743da230be.js → group-tab-CMX07Y1c.98dd5e2d0bfc.js} +1 -1
  153. codex/static_root/assets/group-tab-CMX07Y1c.98dd5e2d0bfc.js.br +0 -0
  154. codex/static_root/assets/group-tab-CMX07Y1c.98dd5e2d0bfc.js.gz +0 -0
  155. codex/static_root/assets/{group-tab-89t0MyqI.js → group-tab-CMX07Y1c.js} +1 -1
  156. codex/static_root/assets/group-tab-CMX07Y1c.js.br +0 -0
  157. codex/static_root/assets/group-tab-CMX07Y1c.js.gz +0 -0
  158. codex/static_root/assets/{http-error-BJTIqHG7.68507d59e73a.js → http-error-CzJHczxG.6ee3173d40a5.js} +1 -1
  159. codex/static_root/assets/http-error-CzJHczxG.6ee3173d40a5.js.br +0 -0
  160. codex/static_root/assets/http-error-CzJHczxG.6ee3173d40a5.js.gz +0 -0
  161. codex/static_root/assets/{http-error-BJTIqHG7.js → http-error-CzJHczxG.js} +1 -1
  162. codex/static_root/assets/http-error-CzJHczxG.js.br +0 -0
  163. codex/static_root/assets/http-error-CzJHczxG.js.gz +0 -0
  164. codex/static_root/assets/{library-tab-DoebKL9-.6eef922082b3.js → library-tab-DfZENbbA.1117ad225bde.js} +1 -1
  165. codex/static_root/assets/library-tab-DfZENbbA.1117ad225bde.js.br +0 -0
  166. codex/static_root/assets/library-tab-DfZENbbA.1117ad225bde.js.gz +0 -0
  167. codex/static_root/assets/{library-tab-DoebKL9-.js → library-tab-DfZENbbA.js} +1 -1
  168. codex/static_root/assets/library-tab-DfZENbbA.js.br +0 -0
  169. codex/static_root/assets/library-tab-DfZENbbA.js.gz +0 -0
  170. codex/static_root/assets/{main-DArXKRWW.47a8064195fe.js → main-EAqCu0p6.e749a8bc2923.js} +3 -3
  171. codex/static_root/assets/main-EAqCu0p6.e749a8bc2923.js.br +0 -0
  172. codex/static_root/assets/main-EAqCu0p6.e749a8bc2923.js.gz +0 -0
  173. codex/static_root/assets/{main-DArXKRWW.js → main-EAqCu0p6.js} +3 -3
  174. codex/static_root/assets/main-EAqCu0p6.js.br +0 -0
  175. codex/static_root/assets/main-EAqCu0p6.js.gz +0 -0
  176. codex/static_root/assets/{pagination-toolbar-m9-HzvQE.178146e802bf.js → pagination-toolbar-m4o9cYJ6.df24ef17e904.js} +1 -1
  177. codex/static_root/assets/pagination-toolbar-m4o9cYJ6.df24ef17e904.js.br +0 -0
  178. codex/static_root/assets/pagination-toolbar-m4o9cYJ6.df24ef17e904.js.gz +0 -0
  179. codex/static_root/assets/{pagination-toolbar-m9-HzvQE.js → pagination-toolbar-m4o9cYJ6.js} +1 -1
  180. codex/static_root/assets/pagination-toolbar-m4o9cYJ6.js.br +0 -0
  181. codex/static_root/assets/pagination-toolbar-m4o9cYJ6.js.gz +0 -0
  182. codex/static_root/assets/{pdf-doc-xL1qP1mK.643e4fab2b8d.js → pdf-doc-RJuKdcoH.4be4a68338de.js} +1 -1
  183. codex/static_root/assets/pdf-doc-RJuKdcoH.4be4a68338de.js.br +0 -0
  184. codex/static_root/assets/pdf-doc-RJuKdcoH.4be4a68338de.js.gz +0 -0
  185. codex/static_root/assets/{pdf-doc-xL1qP1mK.js → pdf-doc-RJuKdcoH.js} +1 -1
  186. codex/static_root/assets/pdf-doc-RJuKdcoH.js.br +0 -0
  187. codex/static_root/assets/pdf-doc-RJuKdcoH.js.gz +0 -0
  188. codex/static_root/assets/{reader-DwHuZOrV.b6067501f379.js → reader-BYz5uPEm.e2db8893aa10.js} +2 -2
  189. codex/static_root/assets/reader-BYz5uPEm.e2db8893aa10.js.br +0 -0
  190. codex/static_root/assets/reader-BYz5uPEm.e2db8893aa10.js.gz +0 -0
  191. codex/static_root/assets/{reader-DwHuZOrV.js → reader-BYz5uPEm.js} +2 -2
  192. codex/static_root/assets/reader-BYz5uPEm.js.br +0 -0
  193. codex/static_root/assets/reader-BYz5uPEm.js.gz +0 -0
  194. codex/static_root/assets/relation-chips-BQX3oeiS.acfd60628c35.js +1 -0
  195. codex/static_root/assets/relation-chips-BQX3oeiS.acfd60628c35.js.br +0 -0
  196. codex/static_root/assets/relation-chips-BQX3oeiS.acfd60628c35.js.gz +0 -0
  197. codex/static_root/assets/relation-chips-BQX3oeiS.js +1 -0
  198. codex/static_root/assets/relation-chips-BQX3oeiS.js.br +0 -0
  199. codex/static_root/assets/relation-chips-BQX3oeiS.js.gz +0 -0
  200. codex/static_root/assets/{settings-drawer-CUQX8aKC.js → settings-drawer-C5t3OYPS.3fb97d35ae92.js} +2 -2
  201. codex/static_root/assets/settings-drawer-C5t3OYPS.3fb97d35ae92.js.br +0 -0
  202. codex/static_root/assets/settings-drawer-C5t3OYPS.3fb97d35ae92.js.gz +0 -0
  203. codex/static_root/assets/{settings-drawer-CUQX8aKC.82a95dcef142.js → settings-drawer-C5t3OYPS.js} +2 -2
  204. codex/static_root/assets/settings-drawer-C5t3OYPS.js.br +0 -0
  205. codex/static_root/assets/settings-drawer-C5t3OYPS.js.gz +0 -0
  206. codex/static_root/assets/{stats-tab-CI0u-X7Y.2d1b6a0d4139.css → stats-tab-BVZzfwi1.28f07f038e88.css} +1 -1
  207. codex/static_root/assets/stats-tab-BVZzfwi1.28f07f038e88.css.br +0 -0
  208. codex/static_root/assets/stats-tab-BVZzfwi1.28f07f038e88.css.gz +0 -0
  209. codex/static_root/assets/{stats-tab-CI0u-X7Y.css → stats-tab-BVZzfwi1.css} +1 -1
  210. codex/static_root/assets/stats-tab-BVZzfwi1.css.br +0 -0
  211. codex/static_root/assets/stats-tab-BVZzfwi1.css.gz +0 -0
  212. codex/static_root/assets/stats-tab-BZrcMjtP.b8d127a34aa7.js +1 -0
  213. codex/static_root/assets/stats-tab-BZrcMjtP.b8d127a34aa7.js.br +0 -0
  214. codex/static_root/assets/stats-tab-BZrcMjtP.b8d127a34aa7.js.gz +0 -0
  215. codex/static_root/assets/stats-tab-BZrcMjtP.js +1 -0
  216. codex/static_root/assets/stats-tab-BZrcMjtP.js.br +0 -0
  217. codex/static_root/assets/stats-tab-BZrcMjtP.js.gz +0 -0
  218. codex/static_root/assets/{task-tab-RfF_m-c2.4ea612865931.js → task-tab-aLrGKXQT.f8498ed38d40.js} +1 -1
  219. codex/static_root/assets/task-tab-aLrGKXQT.f8498ed38d40.js.br +0 -0
  220. codex/static_root/assets/task-tab-aLrGKXQT.f8498ed38d40.js.gz +0 -0
  221. codex/static_root/assets/{task-tab-RfF_m-c2.js → task-tab-aLrGKXQT.js} +1 -1
  222. codex/static_root/assets/task-tab-aLrGKXQT.js.br +0 -0
  223. codex/static_root/assets/task-tab-aLrGKXQT.js.gz +0 -0
  224. codex/static_root/assets/{unauthorized-BY4OkaUc.7a55b1214630.js → unauthorized-DpTUrdQV.0c1bfe81f457.js} +1 -1
  225. codex/static_root/assets/unauthorized-DpTUrdQV.0c1bfe81f457.js.br +0 -0
  226. codex/static_root/assets/unauthorized-DpTUrdQV.0c1bfe81f457.js.gz +0 -0
  227. codex/static_root/assets/{unauthorized-BY4OkaUc.js → unauthorized-DpTUrdQV.js} +1 -1
  228. codex/static_root/assets/unauthorized-DpTUrdQV.js.br +0 -0
  229. codex/static_root/assets/unauthorized-DpTUrdQV.js.gz +0 -0
  230. codex/static_root/assets/{user-tab-tSrCTVFj.6c5b9a53a03a.js → user-tab-B_CPCP10.d1a264b97a0f.js} +1 -1
  231. codex/static_root/assets/user-tab-B_CPCP10.d1a264b97a0f.js.br +0 -0
  232. codex/static_root/assets/user-tab-B_CPCP10.d1a264b97a0f.js.gz +0 -0
  233. codex/static_root/assets/{user-tab-tSrCTVFj.js → user-tab-B_CPCP10.js} +1 -1
  234. codex/static_root/assets/user-tab-B_CPCP10.js.br +0 -0
  235. codex/static_root/assets/user-tab-B_CPCP10.js.gz +0 -0
  236. codex/static_root/js/{choices-admin.3521e2a863df.json → choices-admin.1eca6d2c22cf.json} +1 -1
  237. codex/static_root/js/choices-admin.1eca6d2c22cf.json.br +0 -0
  238. codex/static_root/js/choices-admin.1eca6d2c22cf.json.gz +0 -0
  239. codex/static_root/js/choices-admin.json +1 -1
  240. codex/static_root/js/choices-admin.json.br +0 -0
  241. codex/static_root/js/choices-admin.json.gz +0 -0
  242. codex/static_root/{manifest.37e83529bf91.json → manifest.3d6dd67354d1.json} +220 -220
  243. codex/static_root/manifest.3d6dd67354d1.json.br +0 -0
  244. codex/static_root/manifest.3d6dd67354d1.json.gz +0 -0
  245. codex/static_root/manifest.json +220 -220
  246. codex/static_root/manifest.json.br +0 -0
  247. codex/static_root/manifest.json.gz +0 -0
  248. codex/static_root/staticfiles.json +1 -1
  249. codex/views/admin/flag.py +10 -1
  250. codex/views/admin/stats.py +1 -1
  251. codex/views/reader/page.py +3 -4
  252. {codex-1.6.8.dist-info → codex-1.6.9.dist-info}/METADATA +39 -44
  253. {codex-1.6.8.dist-info → codex-1.6.9.dist-info}/RECORD +256 -249
  254. codex/librarian/janitor/janitord.py +0 -76
  255. codex/static_root/assets/VCheckbox-DE3METqJ.947b68d61150.js.br +0 -0
  256. codex/static_root/assets/VCheckbox-DE3METqJ.947b68d61150.js.gz +0 -0
  257. codex/static_root/assets/VCheckbox-DE3METqJ.js.br +0 -0
  258. codex/static_root/assets/VCheckbox-DE3METqJ.js.gz +0 -0
  259. codex/static_root/assets/VCheckboxBtn-DetOzpfX.e4293f13e16f.js.br +0 -0
  260. codex/static_root/assets/VCheckboxBtn-DetOzpfX.e4293f13e16f.js.gz +0 -0
  261. codex/static_root/assets/VCheckboxBtn-DetOzpfX.js.br +0 -0
  262. codex/static_root/assets/VCheckboxBtn-DetOzpfX.js.gz +0 -0
  263. codex/static_root/assets/VCombobox-D2XmpiHi.3427b660b686.js.br +0 -0
  264. codex/static_root/assets/VCombobox-D2XmpiHi.3427b660b686.js.gz +0 -0
  265. codex/static_root/assets/VCombobox-D2XmpiHi.js.br +0 -0
  266. codex/static_root/assets/VCombobox-D2XmpiHi.js.gz +0 -0
  267. codex/static_root/assets/VDialog-BXw6XFu7.38cde34df95a.js.br +0 -0
  268. codex/static_root/assets/VDialog-BXw6XFu7.38cde34df95a.js.gz +0 -0
  269. codex/static_root/assets/VDialog-BXw6XFu7.js.br +0 -0
  270. codex/static_root/assets/VDialog-BXw6XFu7.js.gz +0 -0
  271. codex/static_root/assets/VExpansionPanels-cdsBiWJW.289873cadd1b.js.br +0 -0
  272. codex/static_root/assets/VExpansionPanels-cdsBiWJW.289873cadd1b.js.gz +0 -0
  273. codex/static_root/assets/VExpansionPanels-cdsBiWJW.js.br +0 -0
  274. codex/static_root/assets/VExpansionPanels-cdsBiWJW.js.gz +0 -0
  275. codex/static_root/assets/VRadioGroup-DPsPhrgJ.2232643fa4b2.js.br +0 -0
  276. codex/static_root/assets/VRadioGroup-DPsPhrgJ.2232643fa4b2.js.gz +0 -0
  277. codex/static_root/assets/VRadioGroup-DPsPhrgJ.js.br +0 -0
  278. codex/static_root/assets/VRadioGroup-DPsPhrgJ.js.gz +0 -0
  279. codex/static_root/assets/VSelect-wpuzLrPv.f46f25efca5b.js.br +0 -0
  280. codex/static_root/assets/VSelect-wpuzLrPv.f46f25efca5b.js.gz +0 -0
  281. codex/static_root/assets/VSelect-wpuzLrPv.js.br +0 -0
  282. codex/static_root/assets/VSelect-wpuzLrPv.js.gz +0 -0
  283. codex/static_root/assets/VSelectionControl-AnuOsZjr.0ca164ae628f.css +0 -1
  284. codex/static_root/assets/VSelectionControl-AnuOsZjr.0ca164ae628f.css.br +0 -0
  285. codex/static_root/assets/VSelectionControl-AnuOsZjr.0ca164ae628f.css.gz +0 -0
  286. codex/static_root/assets/VSelectionControl-AnuOsZjr.css +0 -1
  287. codex/static_root/assets/VSelectionControl-AnuOsZjr.css.br +0 -0
  288. codex/static_root/assets/VSelectionControl-AnuOsZjr.css.gz +0 -0
  289. codex/static_root/assets/VSelectionControl-DTgtf_T6.bbb99484db2e.js +0 -1
  290. codex/static_root/assets/VSelectionControl-DTgtf_T6.bbb99484db2e.js.br +0 -0
  291. codex/static_root/assets/VSelectionControl-DTgtf_T6.bbb99484db2e.js.gz +0 -0
  292. codex/static_root/assets/VSelectionControl-DTgtf_T6.js +0 -1
  293. codex/static_root/assets/VSelectionControl-DTgtf_T6.js.br +0 -0
  294. codex/static_root/assets/VSelectionControl-DTgtf_T6.js.gz +0 -0
  295. codex/static_root/assets/VSlideGroup-KhqCfdKQ.984b37842a8b.js.br +0 -0
  296. codex/static_root/assets/VSlideGroup-KhqCfdKQ.984b37842a8b.js.gz +0 -0
  297. codex/static_root/assets/VSlideGroup-KhqCfdKQ.js.br +0 -0
  298. codex/static_root/assets/VSlideGroup-KhqCfdKQ.js.gz +0 -0
  299. codex/static_root/assets/VTable-CJJzxZcw.edb1bb582e5c.js.br +0 -0
  300. codex/static_root/assets/VTable-CJJzxZcw.edb1bb582e5c.js.gz +0 -0
  301. codex/static_root/assets/VTable-CJJzxZcw.js.br +0 -0
  302. codex/static_root/assets/VTable-CJJzxZcw.js.gz +0 -0
  303. codex/static_root/assets/VTextField-BJxb_QuX.79ef5fb485f2.js +0 -1
  304. codex/static_root/assets/VTextField-BJxb_QuX.79ef5fb485f2.js.br +0 -0
  305. codex/static_root/assets/VTextField-BJxb_QuX.79ef5fb485f2.js.gz +0 -0
  306. codex/static_root/assets/VTextField-BJxb_QuX.js +0 -1
  307. codex/static_root/assets/VTextField-BJxb_QuX.js.br +0 -0
  308. codex/static_root/assets/VTextField-BJxb_QuX.js.gz +0 -0
  309. codex/static_root/assets/VTextField-Bc1tD4nS.2026682c8437.css +0 -1
  310. codex/static_root/assets/VTextField-Bc1tD4nS.2026682c8437.css.br +0 -0
  311. codex/static_root/assets/VTextField-Bc1tD4nS.2026682c8437.css.gz +0 -0
  312. codex/static_root/assets/VTextField-Bc1tD4nS.css +0 -1
  313. codex/static_root/assets/VTextField-Bc1tD4nS.css.br +0 -0
  314. codex/static_root/assets/VTextField-Bc1tD4nS.css.gz +0 -0
  315. codex/static_root/assets/VWindowItem-BWJJgE5I.8daf8cde5589.js.br +0 -0
  316. codex/static_root/assets/VWindowItem-BWJJgE5I.8daf8cde5589.js.gz +0 -0
  317. codex/static_root/assets/VWindowItem-BWJJgE5I.js.br +0 -0
  318. codex/static_root/assets/VWindowItem-BWJJgE5I.js.gz +0 -0
  319. codex/static_root/assets/admin-DrXckZDB.5feb8fde2d3a.js.br +0 -0
  320. codex/static_root/assets/admin-DrXckZDB.5feb8fde2d3a.js.gz +0 -0
  321. codex/static_root/assets/admin-DrXckZDB.js.br +0 -0
  322. codex/static_root/assets/admin-DrXckZDB.js.gz +0 -0
  323. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.6b03e2a2ae14.js +0 -56
  324. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.6b03e2a2ae14.js.br +0 -0
  325. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.6b03e2a2ae14.js.gz +0 -0
  326. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.js +0 -56
  327. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.js.br +0 -0
  328. codex/static_root/assets/admin-drawer-panel-Crj9u2NV.js.gz +0 -0
  329. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.css +0 -1
  330. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.css.br +0 -0
  331. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.css.gz +0 -0
  332. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.fb4e885ba7c4.css +0 -1
  333. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.fb4e885ba7c4.css.br +0 -0
  334. codex/static_root/assets/admin-drawer-panel-Dm28c2tG.fb4e885ba7c4.css.gz +0 -0
  335. codex/static_root/assets/browser-C50xLvMD.ebeac0d428d2.js +0 -1
  336. codex/static_root/assets/browser-C50xLvMD.ebeac0d428d2.js.br +0 -0
  337. codex/static_root/assets/browser-C50xLvMD.ebeac0d428d2.js.gz +0 -0
  338. codex/static_root/assets/browser-C50xLvMD.js +0 -1
  339. codex/static_root/assets/browser-C50xLvMD.js.br +0 -0
  340. codex/static_root/assets/browser-C50xLvMD.js.gz +0 -0
  341. codex/static_root/assets/change-password-dialog-Cm6AnxGf.66f4e604144b.js.br +0 -0
  342. codex/static_root/assets/change-password-dialog-Cm6AnxGf.66f4e604144b.js.gz +0 -0
  343. codex/static_root/assets/change-password-dialog-Cm6AnxGf.js.br +0 -0
  344. codex/static_root/assets/change-password-dialog-Cm6AnxGf.js.gz +0 -0
  345. codex/static_root/assets/confirm-dialog-Mznixjrb.927eaa9bea39.js.br +0 -0
  346. codex/static_root/assets/confirm-dialog-Mznixjrb.927eaa9bea39.js.gz +0 -0
  347. codex/static_root/assets/confirm-dialog-Mznixjrb.js.br +0 -0
  348. codex/static_root/assets/confirm-dialog-Mznixjrb.js.gz +0 -0
  349. codex/static_root/assets/datetime-column-DqSk_iUb.260bcbb4c8e2.js.br +0 -0
  350. codex/static_root/assets/datetime-column-DqSk_iUb.260bcbb4c8e2.js.gz +0 -0
  351. codex/static_root/assets/datetime-column-DqSk_iUb.js.br +0 -0
  352. codex/static_root/assets/datetime-column-DqSk_iUb.js.gz +0 -0
  353. codex/static_root/assets/filter-CvqVrkAJ.8996d1b1db2a.js.br +0 -0
  354. codex/static_root/assets/filter-CvqVrkAJ.8996d1b1db2a.js.gz +0 -0
  355. codex/static_root/assets/filter-CvqVrkAJ.js.br +0 -0
  356. codex/static_root/assets/filter-CvqVrkAJ.js.gz +0 -0
  357. codex/static_root/assets/flag-tab-Bdh3jAbG.7731e3229cca.js +0 -1
  358. codex/static_root/assets/flag-tab-Bdh3jAbG.7731e3229cca.js.br +0 -0
  359. codex/static_root/assets/flag-tab-Bdh3jAbG.7731e3229cca.js.gz +0 -0
  360. codex/static_root/assets/flag-tab-Bdh3jAbG.js +0 -1
  361. codex/static_root/assets/flag-tab-Bdh3jAbG.js.br +0 -0
  362. codex/static_root/assets/flag-tab-Bdh3jAbG.js.gz +0 -0
  363. codex/static_root/assets/group-tab-89t0MyqI.1c743da230be.js.br +0 -0
  364. codex/static_root/assets/group-tab-89t0MyqI.1c743da230be.js.gz +0 -0
  365. codex/static_root/assets/group-tab-89t0MyqI.js.br +0 -0
  366. codex/static_root/assets/group-tab-89t0MyqI.js.gz +0 -0
  367. codex/static_root/assets/http-error-BJTIqHG7.68507d59e73a.js.br +0 -3
  368. codex/static_root/assets/http-error-BJTIqHG7.68507d59e73a.js.gz +0 -0
  369. codex/static_root/assets/http-error-BJTIqHG7.js.br +0 -3
  370. codex/static_root/assets/http-error-BJTIqHG7.js.gz +0 -0
  371. codex/static_root/assets/library-tab-DoebKL9-.6eef922082b3.js.br +0 -0
  372. codex/static_root/assets/library-tab-DoebKL9-.6eef922082b3.js.gz +0 -0
  373. codex/static_root/assets/library-tab-DoebKL9-.js.br +0 -0
  374. codex/static_root/assets/library-tab-DoebKL9-.js.gz +0 -0
  375. codex/static_root/assets/main-DArXKRWW.47a8064195fe.js.br +0 -0
  376. codex/static_root/assets/main-DArXKRWW.47a8064195fe.js.gz +0 -0
  377. codex/static_root/assets/main-DArXKRWW.js.br +0 -0
  378. codex/static_root/assets/main-DArXKRWW.js.gz +0 -0
  379. codex/static_root/assets/pagination-toolbar-m9-HzvQE.178146e802bf.js.br +0 -0
  380. codex/static_root/assets/pagination-toolbar-m9-HzvQE.178146e802bf.js.gz +0 -0
  381. codex/static_root/assets/pagination-toolbar-m9-HzvQE.js.br +0 -0
  382. codex/static_root/assets/pagination-toolbar-m9-HzvQE.js.gz +0 -0
  383. codex/static_root/assets/pdf-doc-xL1qP1mK.643e4fab2b8d.js.br +0 -0
  384. codex/static_root/assets/pdf-doc-xL1qP1mK.643e4fab2b8d.js.gz +0 -0
  385. codex/static_root/assets/pdf-doc-xL1qP1mK.js.br +0 -0
  386. codex/static_root/assets/pdf-doc-xL1qP1mK.js.gz +0 -0
  387. codex/static_root/assets/reader-DwHuZOrV.b6067501f379.js.br +0 -0
  388. codex/static_root/assets/reader-DwHuZOrV.b6067501f379.js.gz +0 -0
  389. codex/static_root/assets/reader-DwHuZOrV.js.br +0 -0
  390. codex/static_root/assets/reader-DwHuZOrV.js.gz +0 -0
  391. codex/static_root/assets/relation-chips-CCg5vRIV.59c17fb77441.js +0 -1
  392. codex/static_root/assets/relation-chips-CCg5vRIV.59c17fb77441.js.br +0 -0
  393. codex/static_root/assets/relation-chips-CCg5vRIV.59c17fb77441.js.gz +0 -0
  394. codex/static_root/assets/relation-chips-CCg5vRIV.js +0 -1
  395. codex/static_root/assets/relation-chips-CCg5vRIV.js.br +0 -0
  396. codex/static_root/assets/relation-chips-CCg5vRIV.js.gz +0 -0
  397. codex/static_root/assets/settings-drawer-CUQX8aKC.82a95dcef142.js.br +0 -0
  398. codex/static_root/assets/settings-drawer-CUQX8aKC.82a95dcef142.js.gz +0 -0
  399. codex/static_root/assets/settings-drawer-CUQX8aKC.js.br +0 -0
  400. codex/static_root/assets/settings-drawer-CUQX8aKC.js.gz +0 -0
  401. codex/static_root/assets/stats-tab-CI0u-X7Y.2d1b6a0d4139.css.br +0 -0
  402. codex/static_root/assets/stats-tab-CI0u-X7Y.2d1b6a0d4139.css.gz +0 -0
  403. codex/static_root/assets/stats-tab-CI0u-X7Y.css.br +0 -0
  404. codex/static_root/assets/stats-tab-CI0u-X7Y.css.gz +0 -0
  405. codex/static_root/assets/stats-tab-CyDREZdm.000d9e8e00a1.js +0 -1
  406. codex/static_root/assets/stats-tab-CyDREZdm.000d9e8e00a1.js.br +0 -0
  407. codex/static_root/assets/stats-tab-CyDREZdm.000d9e8e00a1.js.gz +0 -0
  408. codex/static_root/assets/stats-tab-CyDREZdm.js +0 -1
  409. codex/static_root/assets/stats-tab-CyDREZdm.js.br +0 -0
  410. codex/static_root/assets/stats-tab-CyDREZdm.js.gz +0 -0
  411. codex/static_root/assets/task-tab-RfF_m-c2.4ea612865931.js.br +0 -0
  412. codex/static_root/assets/task-tab-RfF_m-c2.4ea612865931.js.gz +0 -0
  413. codex/static_root/assets/task-tab-RfF_m-c2.js.br +0 -0
  414. codex/static_root/assets/task-tab-RfF_m-c2.js.gz +0 -0
  415. codex/static_root/assets/unauthorized-BY4OkaUc.7a55b1214630.js.br +0 -0
  416. codex/static_root/assets/unauthorized-BY4OkaUc.7a55b1214630.js.gz +0 -0
  417. codex/static_root/assets/unauthorized-BY4OkaUc.js.br +0 -0
  418. codex/static_root/assets/unauthorized-BY4OkaUc.js.gz +0 -0
  419. codex/static_root/assets/user-tab-tSrCTVFj.6c5b9a53a03a.js.br +0 -0
  420. codex/static_root/assets/user-tab-tSrCTVFj.6c5b9a53a03a.js.gz +0 -0
  421. codex/static_root/assets/user-tab-tSrCTVFj.js.br +0 -0
  422. codex/static_root/assets/user-tab-tSrCTVFj.js.gz +0 -0
  423. codex/static_root/js/choices-admin.3521e2a863df.json.br +0 -0
  424. codex/static_root/js/choices-admin.3521e2a863df.json.gz +0 -0
  425. codex/static_root/manifest.37e83529bf91.json.br +0 -0
  426. codex/static_root/manifest.37e83529bf91.json.gz +0 -0
  427. {codex-1.6.8.dist-info → codex-1.6.9.dist-info}/LICENSE +0 -0
  428. {codex-1.6.8.dist-info → codex-1.6.9.dist-info}/WHEEL +0 -0
  429. {codex-1.6.8.dist-info → codex-1.6.9.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1 @@
1
+ import{_ as Z,c_ as zt,$ as E,Y as z,a0 as Q,aQ as Ee,al as Le,aH as me,aF as Ne,ar as T,aq as U,X as Ze,D as et,l as de,Z as ue,T as u,aP as qt,aI as Ut,am as Wt,r as Y,c$ as Kt,F as B,be as G,ck as Yt,N as Qt,aw as Xt,cd as Jt,bf as Zt,cI as ea,ax as ta,O as aa,c8 as la,P as W,av as X,c0 as ie,R as na,Q as ra,cy as Se,s as Ge,aC as ge,J as sa,h as k,a2 as ce,aA as I,S as ee,ci as We,n as Ke,w as tt,p as le,I as at,a as lt,i as ne,a5 as Ae,d0 as oa,L,d1 as ua,d2 as ia,d3 as nt,cW as $e,d4 as he,d5 as fe,cx as He,d6 as da,cD as ca,az as fa,cF as va,V as J,d7 as Oe,aY as Ye,d8 as Qe,d9 as ve,da as rt,aW as ma,bn as ga,aG as st,bA as ha,db as ba}from"./admin-drawer-panel-SQytza6T.js";import{S as ya,a as pa}from"./VTextField-DKXmWQyx.js";import{V as xa}from"./VDialog-DO_IeNl2.js";import{b as ot,d as Me,e as Sa,f as wa,g as Pa}from"./VSelect-Cwd7Ke2J.js";import{V as ze}from"./VCheckboxBtn-BpLxL6DP.js";import{m as ka,V as be}from"./VTable-IQf8Xj4J.js";import{m as ut,u as it}from"./filter-ji46VTOR.js";import{C as _a}from"./confirm-dialog-_HotKBZZ.js";const Da={name:"AdminCreateUpdateButton",props:{update:{type:Boolean,default:!1},table:{type:String,required:!0},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{mdiPencil:zt}}},Ia={key:1};function Ta(e,l,a,t,n,r){return E(),z(U,T({rounded:"",icon:a.update},e.$attrs,{size:a.size,density:a.density}),{default:Q(()=>[a.update?(E(),z(Ee,{key:0},{default:Q(()=>[Le(me(n.mdiPencil),1)]),_:1})):(E(),Ne("span",Ia,"+ "+me(a.table),1))]),_:1},16,["icon","size","density"])}const Va=Z(Da,[["render",Ta]]),Ca={name:"AdminCreateUpdateDialog",components:{AdminCreateUpdateButton:Va,SubmitFooter:ya},props:{table:{type:String,required:!0},label:{type:String,default:""},oldRow:{type:[Object,Boolean],default:!1},inputs:{type:Object,required:!0},size:{type:String,default:"default"},density:{type:String,default:"default"}},data(){return{row:{},showDialog:!1,submitButtonEnabled:!1}},computed:{verb(){return this.oldRow?"Update":"Add"},title(){return this.label||this.table},buttonTitle(){return(this.oldRow?"Edit":"Add")+" "+this.title}},watch:{showDialog(e){this.row=this.getRow(e)}},methods:{...Ze(et,["createRow","updateRow"]),validate(){let e=!1;for(const[a,t]of Object.entries(this.row))if(!de.isEqual(this.oldRow[a],t)){e=!0;break}if(!e)return!1;const l=this.$refs.form;return l?l.validate().then(({valid:a})=>a).catch(()=>!1):!1},change(e){this.row=e,this.submitButtonEnabled=this.validate()},getRow(e){if(!e||!this.oldRow)return de.cloneDeep(this.inputs.EMPTY_ROW);const l={};for(const a of this.inputs.UPDATE_KEYS)l[a]=de.cloneDeep(this.oldRow[a]);return l},doUpdate:function(){const e={};for(const[l,a]of Object.entries(this.row))de.isEqual(this.oldRow[l],a)||(e[l]=a);this.updateRow(this.table,this.oldRow.pk,e).then(()=>(this.showDialog=!1,!0)).catch(console.error)},doCreate:function(){this.createRow(this.table,this.row).then(()=>(this.showDialog=!1,!0)).catch(console.error)},submit:function(){const e=this.$refs.form;e&&e.validate().then(({valid:l})=>{if(l)return this.oldRow?this.doUpdate():this.doCreate()}).catch(console.warn)}}};function Ba(e,l,a,t,n,r){const o=ue("AdminCreateUpdateButton"),s=ue("SubmitFooter");return E(),z(xa,T({modelValue:n.showDialog,"onUpdate:modelValue":l[1]||(l[1]=i=>n.showDialog=i),transition:"scale-transition"},e.$attrs),{activator:Q(({props:i})=>[u(o,T({update:!!a.oldRow,table:a.table,label:a.label},i,{size:a.size,density:a.density,title:r.buttonTitle}),null,16,["update","table","label","size","density","title"])]),default:Q(()=>[u(pa,{ref:"form",class:"cuForm"},{default:Q(()=>[qt("h2",null,me(r.title),1),(E(),z(Ut(a.inputs),{"old-row":a.oldRow,onChange:r.change},null,40,["old-row","onChange"])),u(s,{verb:r.verb,table:a.table,label:a.label,disabled:!n.submitButtonEnabled,onSubmit:r.submit,onCancel:l[0]||(l[0]=i=>n.showDialog=!1)},null,8,["verb","table","label","disabled","onSubmit"])]),_:1},512)]),_:1},16,["modelValue"])}const kl=Z(Ca,[["render",Ba],["__scopeId","data-v-e18cb104"]]),Ra={name:"GroupChip",props:{titleKey:{type:String,default:""},groupType:{type:Boolean,default:void 0},item:{type:Object,default:void 0}},computed:{classes(){let e={};return this.groupType&&this.item&&(e.include=!this.item.exclude,e.exclude=this.item.exclude),e},text(){return this.item&&this.titleKey?this.item[this.titleKey]:""},value(){if(this.item)return this.groupType?this.item.exclude:this.item.value}}};function Fa(e,l,a,t,n,r){return E(),z(ot,{class:Wt(r.classes),text:r.text,value:r.value},null,8,["class","text","value"])}const dt=Z(Ra,[["render",Fa],["__scopeId","data-v-495e15c6"]]),Aa={name:"AdminRelationPicker",components:{GroupChip:dt},props:{objs:{type:Object,required:!0},titleKey:{type:String,required:!0},groupType:{type:Boolean,default:!1}},computed:{vuetifyItems(){const e=[];for(const l of this.objs)e.push({...l,value:l.pk,title:l[this.titleKey]});return e}}};function $a(e,l,a,t,n,r){const o=ue("GroupChip");return E(),z(Me,T({chips:!0,"closable-chips":!0,density:"compact",multiple:!0,items:r.vuetifyItems},e.$attrs),{chip:Q(({item:s})=>[u(o,{"title-key":"title",item:s,"group-type":a.groupType},null,8,["item","group-type"])]),_:1},16,["items"])}const _l=Z(Aa,[["render",$a]]);function Oa(){const e=Y([]);Kt(()=>e.value=[]);function l(a,t){e.value[t]=a}return{refs:e,updateRef:l}}const Ea=B({activeColor:String,start:{type:[Number,String],default:1},modelValue:{type:Number,default:e=>e.start},disabled:Boolean,length:{type:[Number,String],default:1,validator:e=>e%1===0},totalVisible:[Number,String],firstIcon:{type:G,default:"$first"},prevIcon:{type:G,default:"$prev"},nextIcon:{type:G,default:"$next"},lastIcon:{type:G,default:"$last"},ariaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.root"},pageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.page"},currentPageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.currentPage"},firstAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.first"},previousAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.previous"},nextAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.next"},lastAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.last"},ellipsis:{type:String,default:"..."},showFirstLastPage:Boolean,...Yt(),...Qt(),...Xt(),...Jt(),...Zt(),...ea(),...ta({tag:"nav"}),...aa(),...la({variant:"text"})},"VPagination"),Xe=W()({name:"VPagination",props:Ea(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,l){let{slots:a,emit:t}=l;const n=X(e,"modelValue"),{t:r,n:o}=ie(),{isRtl:s}=na(),{themeClasses:i}=ra(e),{width:c}=Se(),m=Ge(-1);ge(void 0,{scoped:!0});const{resizeRef:y}=sa(b=>{if(!b.length)return;const{target:d,contentRect:w}=b[0],P=d.querySelector(".v-pagination__list > *");if(!P)return;const D=w.width,C=P.offsetWidth+parseFloat(getComputedStyle(P).marginRight)*2;m.value=S(D,C)}),v=k(()=>parseInt(e.length,10)),x=k(()=>parseInt(e.start,10)),h=k(()=>e.totalVisible!=null?parseInt(e.totalVisible,10):m.value>=0?m.value:S(c.value,58));function S(b,d){const w=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(+((b-d*w)/d).toFixed(2)))}const g=k(()=>{if(v.value<=0||isNaN(v.value)||v.value>Number.MAX_SAFE_INTEGER)return[];if(h.value<=0)return[];if(h.value===1)return[n.value];if(v.value<=h.value)return ce(v.value,x.value);const b=h.value%2===0,d=b?h.value/2:Math.floor(h.value/2),w=b?d:d+1,P=v.value-d;if(w-n.value>=0)return[...ce(Math.max(1,h.value-1),x.value),e.ellipsis,v.value];if(n.value-P>=(b?1:0)){const D=h.value-1,C=v.value-D+x.value;return[x.value,e.ellipsis,...ce(D,C)]}else{const D=Math.max(1,h.value-3),C=D===1?n.value:n.value-Math.ceil(D/2)+x.value;return[x.value,e.ellipsis,...ce(D,C),e.ellipsis,v.value]}});function p(b,d,w){b.preventDefault(),n.value=d,w&&t(w,d)}const{refs:f,updateRef:V}=Oa();ge({VPaginationBtn:{color:I(e,"color"),border:I(e,"border"),density:I(e,"density"),size:I(e,"size"),variant:I(e,"variant"),rounded:I(e,"rounded"),elevation:I(e,"elevation")}});const R=k(()=>g.value.map((b,d)=>{const w=P=>V(P,d);if(typeof b=="string")return{isActive:!1,key:`ellipsis-${d}`,page:b,props:{ref:w,ellipsis:!0,icon:!0,disabled:!0}};{const P=b===n.value;return{isActive:P,key:b,page:o(b),props:{ref:w,ellipsis:!1,icon:!0,disabled:!!e.disabled||+e.length<2,color:P?e.activeColor:e.color,"aria-current":P,"aria-label":r(P?e.currentPageAriaLabel:e.pageAriaLabel,b),onClick:D=>p(D,b)}}}})),_=k(()=>{const b=!!e.disabled||n.value<=x.value,d=!!e.disabled||n.value>=x.value+v.value-1;return{first:e.showFirstLastPage?{icon:s.value?e.lastIcon:e.firstIcon,onClick:w=>p(w,x.value,"first"),disabled:b,"aria-label":r(e.firstAriaLabel),"aria-disabled":b}:void 0,prev:{icon:s.value?e.nextIcon:e.prevIcon,onClick:w=>p(w,n.value-1,"prev"),disabled:b,"aria-label":r(e.previousAriaLabel),"aria-disabled":b},next:{icon:s.value?e.prevIcon:e.nextIcon,onClick:w=>p(w,n.value+1,"next"),disabled:d,"aria-label":r(e.nextAriaLabel),"aria-disabled":d},last:e.showFirstLastPage?{icon:s.value?e.firstIcon:e.lastIcon,onClick:w=>p(w,x.value+v.value-1,"last"),disabled:d,"aria-label":r(e.lastAriaLabel),"aria-disabled":d}:void 0}});function N(){var d;const b=n.value-x.value;(d=f.value[b])==null||d.$el.focus()}function j(b){b.key===We.left&&!e.disabled&&n.value>+e.start?(n.value=n.value-1,Ke(N)):b.key===We.right&&!e.disabled&&n.value<x.value+v.value-1&&(n.value=n.value+1,Ke(N))}return ee(()=>u(e.tag,{ref:y,class:["v-pagination",i.value,e.class],style:e.style,role:"navigation","aria-label":r(e.ariaLabel),onKeydown:j,"data-test":"v-pagination-root"},{default:()=>[u("ul",{class:"v-pagination__list"},[e.showFirstLastPage&&u("li",{key:"first",class:"v-pagination__first","data-test":"v-pagination-first"},[a.first?a.first(_.value.first):u(U,T({_as:"VPaginationBtn"},_.value.first),null)]),u("li",{key:"prev",class:"v-pagination__prev","data-test":"v-pagination-prev"},[a.prev?a.prev(_.value.prev):u(U,T({_as:"VPaginationBtn"},_.value.prev),null)]),R.value.map((b,d)=>u("li",{key:b.key,class:["v-pagination__item",{"v-pagination__item--is-active":b.isActive}],"data-test":"v-pagination-item"},[a.item?a.item(b):u(U,T({_as:"VPaginationBtn"},b.props),{default:()=>[b.page]})])),u("li",{key:"next",class:"v-pagination__next","data-test":"v-pagination-next"},[a.next?a.next(_.value.next):u(U,T({_as:"VPaginationBtn"},_.value.next),null)]),e.showFirstLastPage&&u("li",{key:"last",class:"v-pagination__last","data-test":"v-pagination-last"},[a.last?a.last(_.value.last):u(U,T({_as:"VPaginationBtn"},_.value.last),null)])])]})),{}}}),La=B({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10}},"DataTable-paginate"),ct=Symbol.for("vuetify:data-table-pagination");function Na(e){const l=X(e,"page",void 0,t=>+(t??1)),a=X(e,"itemsPerPage",void 0,t=>+(t??10));return{page:l,itemsPerPage:a}}function Ga(e){const{page:l,itemsPerPage:a,itemsLength:t}=e,n=k(()=>a.value===-1?0:a.value*(l.value-1)),r=k(()=>a.value===-1?t.value:Math.min(t.value,n.value+a.value)),o=k(()=>a.value===-1||t.value===0?1:Math.ceil(t.value/a.value));tt(()=>{l.value>o.value&&(l.value=o.value)});function s(v){a.value=v,l.value=1}function i(){l.value=Ae(l.value+1,1,o.value)}function c(){l.value=Ae(l.value-1,1,o.value)}function m(v){l.value=Ae(v,1,o.value)}const y={page:l,itemsPerPage:a,startIndex:n,stopIndex:r,pageCount:o,itemsLength:t,nextPage:i,prevPage:c,setPage:m,setItemsPerPage:s};return le(ct,y),y}function ja(){const e=ne(ct);if(!e)throw new Error("Missing pagination!");return e}function Ha(e){const l=at("usePaginatedItems"),{items:a,startIndex:t,stopIndex:n,itemsPerPage:r}=e,o=k(()=>r.value<=0?a.value:a.value.slice(t.value,n.value));return lt(o,s=>{l.emit("update:currentItems",s)}),{paginatedItems:o}}const ft=B({prevIcon:{type:G,default:"$prev"},nextIcon:{type:G,default:"$next"},firstIcon:{type:G,default:"$first"},lastIcon:{type:G,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},pageText:{type:String,default:"$vuetify.dataFooter.pageText"},firstPageLabel:{type:String,default:"$vuetify.dataFooter.firstPage"},prevPageLabel:{type:String,default:"$vuetify.dataFooter.prevPage"},nextPageLabel:{type:String,default:"$vuetify.dataFooter.nextPage"},lastPageLabel:{type:String,default:"$vuetify.dataFooter.lastPage"},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"},{value:-1,title:"$vuetify.dataFooter.itemsPerPageAll"}]},showCurrentPage:Boolean},"VDataTableFooter"),Je=W()({name:"VDataTableFooter",props:ft(),setup(e,l){let{slots:a}=l;const{t}=ie(),{page:n,pageCount:r,startIndex:o,stopIndex:s,itemsLength:i,itemsPerPage:c,setItemsPerPage:m}=ja(),y=k(()=>e.itemsPerPageOptions.map(v=>typeof v=="number"?{value:v,title:v===-1?t("$vuetify.dataFooter.itemsPerPageAll"):String(v)}:{...v,title:isNaN(Number(v.title))?t(v.title):v.title}));return ee(()=>{var x;const v=Xe.filterProps(e);return u("div",{class:"v-data-table-footer"},[(x=a.prepend)==null?void 0:x.call(a),u("div",{class:"v-data-table-footer__items-per-page"},[u("span",null,[t(e.itemsPerPageText)]),u(Me,{items:y.value,modelValue:c.value,"onUpdate:modelValue":h=>m(Number(h)),density:"compact",variant:"outlined","hide-details":!0},null)]),u("div",{class:"v-data-table-footer__info"},[u("div",null,[t(e.pageText,i.value?o.value+1:0,s.value,i.value)])]),u("div",{class:"v-data-table-footer__pagination"},[u(Xe,T({modelValue:n.value,"onUpdate:modelValue":h=>n.value=h,density:"comfortable","first-aria-label":e.firstPageLabel,"last-aria-label":e.lastPageLabel,length:r.value,"next-aria-label":e.nextPageLabel,"previous-aria-label":e.prevPageLabel,rounded:!0,"show-first-last-page":!0,"total-visible":e.showCurrentPage?1:0,variant:"plain"},v),null)])])}),{}}}),ye=oa({align:{type:String,default:"start"},fixed:Boolean,fixedOffset:[Number,String],height:[Number,String],lastFixed:Boolean,noPadding:Boolean,tag:String,width:[Number,String],maxWidth:[Number,String],nowrap:Boolean},(e,l)=>{let{slots:a}=l;const t=e.tag??"td";return u(t,{class:["v-data-table__td",{"v-data-table-column--fixed":e.fixed,"v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--no-padding":e.noPadding,"v-data-table-column--nowrap":e.nowrap},`v-data-table-column--align-${e.align}`],style:{height:L(e.height),width:L(e.width),maxWidth:L(e.maxWidth),left:L(e.fixedOffset||null)}},{default:()=>{var n;return[(n=a.default)==null?void 0:n.call(a)]}})}),Ma=B({headers:Array},"DataTable-header"),vt=Symbol.for("vuetify:data-table-headers"),mt={title:"",sortable:!1},za={...mt,width:48};function qa(){const l=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(a=>({element:a,priority:0}));return{enqueue:(a,t)=>{let n=!1;for(let r=0;r<l.length;r++)if(l[r].priority>t){l.splice(r,0,{element:a,priority:t}),n=!0;break}n||l.push({element:a,priority:t})},size:()=>l.length,count:()=>{let a=0;if(!l.length)return 0;const t=Math.floor(l[0].priority);for(let n=0;n<l.length;n++)Math.floor(l[n].priority)===t&&(a+=1);return a},dequeue:()=>l.shift()}}function je(e){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(!e.children)l.push(e);else for(const a of e.children)je(a,l);return l}function gt(e){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;for(const a of e)a.key&&l.add(a.key),a.children&&gt(a.children,l);return l}function Ua(e){if(e.key){if(e.key==="data-table-group")return mt;if(["data-table-expand","data-table-select"].includes(e.key))return za}}function qe(e){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.children?Math.max(l,...e.children.map(a=>qe(a,l+1))):l}function Wa(e){let l=!1;function a(r){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(r)if(o&&(r.fixed=!0),r.fixed)if(r.children)for(let s=r.children.length-1;s>=0;s--)a(r.children[s],!0);else l?isNaN(+r.width)&&ia(`Multiple fixed columns should have a static width (key: ${r.key})`):r.lastFixed=!0,l=!0;else if(r.children)for(let s=r.children.length-1;s>=0;s--)a(r.children[s]);else l=!1}for(let r=e.length-1;r>=0;r--)a(e[r]);function t(r){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!r)return o;if(r.children){r.fixedOffset=o;for(const s of r.children)o=t(s,o)}else r.fixed&&(r.fixedOffset=o,o+=parseFloat(r.width||"0")||0);return o}let n=0;for(const r of e)n=t(r,n)}function Ka(e,l){const a=[];let t=0;const n=qa(e);for(;n.size()>0;){let o=n.count();const s=[];let i=1;for(;o>0;){const{element:c,priority:m}=n.dequeue(),y=l-t-qe(c);if(s.push({...c,rowspan:y??1,colspan:c.children?je(c).length:1}),c.children)for(const v of c.children){const x=m%1+i/Math.pow(10,t+2);n.enqueue(v,t+y+x)}i+=1,o-=1}t+=1,a.push(s)}return{columns:e.map(o=>je(o)).flat(),headers:a}}function ht(e){const l=[];for(const a of e){const t={...Ua(a),...a},n=t.key??(typeof t.value=="string"?t.value:null),r=t.value??n??null,o={...t,key:n,value:r,sortable:t.sortable??(t.key!=null||!!t.sort),children:t.children?ht(t.children):void 0};l.push(o)}return l}function bt(e,l){const a=Y([]),t=Y([]),n=Y({}),r=Y({}),o=Y({});tt(()=>{var S,g,p;const c=(e.headers||Object.keys(e.items[0]??{}).map(f=>({key:f,title:ua(f)}))).slice(),m=gt(c);(S=l==null?void 0:l.groupBy)!=null&&S.value.length&&!m.has("data-table-group")&&c.unshift({key:"data-table-group",title:"Group"}),(g=l==null?void 0:l.showSelect)!=null&&g.value&&!m.has("data-table-select")&&c.unshift({key:"data-table-select"}),(p=l==null?void 0:l.showExpand)!=null&&p.value&&!m.has("data-table-expand")&&c.push({key:"data-table-expand"});const y=ht(c);Wa(y);const v=Math.max(...y.map(f=>qe(f)))+1,x=Ka(y,v);a.value=x.headers,t.value=x.columns;const h=x.headers.flat(1);for(const f of h)f.key&&(f.sortable&&(f.sort&&(n.value[f.key]=f.sort),f.sortRaw&&(r.value[f.key]=f.sortRaw)),f.filter&&(o.value[f.key]=f.filter))});const s={headers:a,columns:t,sortFunctions:n,sortRawFunctions:r,filterFunctions:o};return le(vt,s),s}function we(){const e=ne(vt);if(!e)throw new Error("Missing headers!");return e}const Ya={showSelectAll:!1,allSelected:()=>[],select:e=>{var t;let{items:l,value:a}=e;return new Set(a?[(t=l[0])==null?void 0:t.value]:[])},selectAll:e=>{let{selected:l}=e;return l}},yt={showSelectAll:!0,allSelected:e=>{let{currentPage:l}=e;return l},select:e=>{let{items:l,value:a,selected:t}=e;for(const n of l)a?t.add(n.value):t.delete(n.value);return t},selectAll:e=>{let{value:l,currentPage:a,selected:t}=e;return yt.select({items:a,value:l,selected:t})}},pt={showSelectAll:!0,allSelected:e=>{let{allItems:l}=e;return l},select:e=>{let{items:l,value:a,selected:t}=e;for(const n of l)a?t.add(n.value):t.delete(n.value);return t},selectAll:e=>{let{value:l,allItems:a,selected:t}=e;return pt.select({items:a,value:l,selected:t})}},Qa=B({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:()=>[]},valueComparator:{type:Function,default:nt}},"DataTable-select"),xt=Symbol.for("vuetify:data-table-selection");function St(e,l){let{allItems:a,currentPage:t}=l;const n=X(e,"modelValue",e.modelValue,p=>new Set($e(p).map(f=>{var V;return((V=a.value.find(R=>e.valueComparator(f,R.value)))==null?void 0:V.value)??f})),p=>[...p.values()]),r=k(()=>a.value.filter(p=>p.selectable)),o=k(()=>t.value.filter(p=>p.selectable)),s=k(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single":return Ya;case"all":return pt;case"page":default:return yt}});function i(p){return $e(p).every(f=>n.value.has(f.value))}function c(p){return $e(p).some(f=>n.value.has(f.value))}function m(p,f){const V=s.value.select({items:p,value:f,selected:new Set(n.value)});n.value=V}function y(p){m([p],!i([p]))}function v(p){const f=s.value.selectAll({value:p,allItems:r.value,currentPage:o.value,selected:new Set(n.value)});n.value=f}const x=k(()=>n.value.size>0),h=k(()=>{const p=s.value.allSelected({allItems:r.value,currentPage:o.value});return!!p.length&&i(p)}),S=k(()=>s.value.showSelectAll),g={toggleSelect:y,select:m,selectAll:v,isSelected:i,isSomeSelected:c,someSelected:x,allSelected:h,showSelectAll:S};return le(xt,g),g}function Pe(){const e=ne(xt);if(!e)throw new Error("Missing selection!");return e}const Xa=B({sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:Boolean,mustSort:Boolean},"DataTable-sort"),wt=Symbol.for("vuetify:data-table-sort");function Pt(e){const l=X(e,"sortBy"),a=I(e,"mustSort"),t=I(e,"multiSort");return{sortBy:l,mustSort:a,multiSort:t}}function kt(e){const{sortBy:l,mustSort:a,multiSort:t,page:n}=e,r=i=>{if(i.key==null)return;let c=l.value.map(y=>({...y}))??[];const m=c.find(y=>y.key===i.key);m?m.order==="desc"?a.value?m.order="asc":c=c.filter(y=>y.key!==i.key):m.order="desc":t.value?c=[...c,{key:i.key,order:"asc"}]:c=[{key:i.key,order:"asc"}],l.value=c,n&&(n.value=1)};function o(i){return!!l.value.find(c=>c.key===i.key)}const s={sortBy:l,toggleSort:r,isSorted:o};return le(wt,s),s}function _t(){const e=ne(wt);if(!e)throw new Error("Missing sort!");return e}function Dt(e,l,a,t){const n=ie();return{sortedItems:k(()=>{var o,s;return a.value.length?Ja(l.value,a.value,n.current.value,{transform:t==null?void 0:t.transform,sortFunctions:{...e.customKeySort,...(o=t==null?void 0:t.sortFunctions)==null?void 0:o.value},sortRawFunctions:(s=t==null?void 0:t.sortRawFunctions)==null?void 0:s.value}):l.value})}}function Ja(e,l,a,t){const n=new Intl.Collator(a,{sensitivity:"accent",usage:"sort"});return e.map(o=>[o,t!=null&&t.transform?t.transform(o):o]).sort((o,s)=>{var i,c;for(let m=0;m<l.length;m++){let y=!1;const v=l[m].key,x=l[m].order??"asc";if(x===!1)continue;let h=he(o[1],v),S=he(s[1],v),g=o[0].raw,p=s[0].raw;if(x==="desc"&&([h,S]=[S,h],[g,p]=[p,g]),(i=t==null?void 0:t.sortRawFunctions)!=null&&i[v]){const f=t.sortRawFunctions[v](g,p);if(f==null)continue;if(y=!0,f)return f}if((c=t==null?void 0:t.sortFunctions)!=null&&c[v]){const f=t.sortFunctions[v](h,S);if(f==null)continue;if(y=!0,f)return f}if(!y){if(h instanceof Date&&S instanceof Date)return h.getTime()-S.getTime();if([h,S]=[h,S].map(f=>f!=null?f.toString().toLocaleLowerCase():f),h!==S)return fe(h)&&fe(S)?0:fe(h)?-1:fe(S)?1:!isNaN(h)&&!isNaN(S)?Number(h)-Number(S):n.compare(h,S)}}return 0}).map(o=>{let[s]=o;return s})}const It=B({color:String,sticky:Boolean,disableSort:Boolean,multiSort:Boolean,sortAscIcon:{type:G,default:"$sortAsc"},sortDescIcon:{type:G,default:"$sortDesc"},headerProps:{type:Object},...He(),...da()},"VDataTableHeaders"),pe=W()({name:"VDataTableHeaders",props:It(),setup(e,l){let{slots:a}=l;const{t}=ie(),{toggleSort:n,sortBy:r,isSorted:o}=_t(),{someSelected:s,allSelected:i,selectAll:c,showSelectAll:m}=Pe(),{columns:y,headers:v}=we(),{loaderClasses:x}=ca(e);function h(b,d){if(!(!e.sticky&&!b.fixed))return{position:"sticky",left:b.fixed?L(b.fixedOffset):void 0,top:e.sticky?`calc(var(--v-table-header-height) * ${d})`:void 0}}function S(b){const d=r.value.find(w=>w.key===b.key);return d?d.order==="asc"?e.sortAscIcon:e.sortDescIcon:e.sortAscIcon}const{backgroundColorClasses:g,backgroundColorStyles:p}=fa(e,"color"),{displayClasses:f,mobile:V}=Se(e),R=k(()=>({headers:v.value,columns:y.value,toggleSort:n,isSorted:o,sortBy:r.value,someSelected:s.value,allSelected:i.value,selectAll:c,getSortIcon:S})),_=k(()=>["v-data-table__th",{"v-data-table__th--sticky":e.sticky},f.value,x.value]),N=b=>{let{column:d,x:w,y:P}=b;const D=d.key==="data-table-select"||d.key==="data-table-expand",C=T(e.headerProps??{},d.headerProps??{});return u(ye,T({tag:"th",align:d.align,class:[{"v-data-table__th--sortable":d.sortable&&!e.disableSort,"v-data-table__th--sorted":o(d),"v-data-table__th--fixed":d.fixed},..._.value],style:{width:L(d.width),minWidth:L(d.minWidth),maxWidth:L(d.maxWidth),...h(d,P)},colspan:d.colspan,rowspan:d.rowspan,onClick:d.sortable?()=>n(d):void 0,fixed:d.fixed,nowrap:d.nowrap,lastFixed:d.lastFixed,noPadding:D},C),{default:()=>{var q;const H=`header.${d.key}`,te={column:d,selectAll:c,isSorted:o,toggleSort:n,sortBy:r.value,someSelected:s.value,allSelected:i.value,getSortIcon:S};return a[H]?a[H](te):d.key==="data-table-select"?((q=a["header.data-table-select"])==null?void 0:q.call(a,te))??(m.value&&u(ze,{modelValue:i.value,indeterminate:s.value&&!i.value,"onUpdate:modelValue":c},null)):u("div",{class:"v-data-table-header__content"},[u("span",null,[d.title]),d.sortable&&!e.disableSort&&u(Ee,{key:"icon",class:"v-data-table-header__sort-icon",icon:S(d)},null),e.multiSort&&o(d)&&u("div",{key:"badge",class:["v-data-table-header__sort-badge",...g.value],style:p.value},[r.value.findIndex(K=>K.key===d.key)+1])])}})},j=()=>{const b=T(e.headerProps??{}??{}),d=k(()=>y.value.filter(P=>(P==null?void 0:P.sortable)&&!e.disableSort)),w=k(()=>{if(y.value.find(D=>D.key==="data-table-select")!=null)return i.value?"$checkboxOn":s.value?"$checkboxIndeterminate":"$checkboxOff"});return u(ye,T({tag:"th",class:[..._.value],colspan:v.value.length+1},b),{default:()=>[u("div",{class:"v-data-table-header__content"},[u(Me,{chips:!0,class:"v-data-table__td-sort-select",clearable:!0,density:"default",items:d.value,label:t("$vuetify.dataTable.sortBy"),multiple:e.multiSort,variant:"underlined","onClick:clear":()=>r.value=[],appendIcon:w.value,"onClick:append":()=>c(!i.value)},{...a,chip:P=>{var D;return u(ot,{onClick:(D=P.item.raw)!=null&&D.sortable?()=>n(P.item.raw):void 0,onMousedown:C=>{C.preventDefault(),C.stopPropagation()}},{default:()=>[P.item.title,u(Ee,{class:["v-data-table__td-sort-icon",o(P.item.raw)&&"v-data-table__td-sort-icon-active"],icon:S(P.item.raw),size:"small"},null)]})}})])]})};ee(()=>V.value?u("tr",null,[u(j,null,null)]):u(J,null,[a.headers?a.headers(R.value):v.value.map((b,d)=>u("tr",null,[b.map((w,P)=>u(N,{column:w,x:P,y:d},null))])),e.loading&&u("tr",{class:"v-data-table-progress"},[u("th",{colspan:y.value.length},[u(va,{name:"v-data-table-progress",absolute:!0,active:!0,color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0},{default:a.loader})])])]))}}),Tt=B({groupBy:{type:Array,default:()=>[]}},"DataTable-group"),Vt=Symbol.for("vuetify:data-table-group");function Ct(e){return{groupBy:X(e,"groupBy")}}function Bt(e){const{disableSort:l,groupBy:a,sortBy:t}=e,n=Y(new Set),r=k(()=>a.value.map(m=>({...m,order:m.order??!1})).concat(l!=null&&l.value?[]:t.value));function o(m){return n.value.has(m.id)}function s(m){const y=new Set(n.value);o(m)?y.delete(m.id):y.add(m.id),n.value=y}function i(m){function y(v){const x=[];for(const h of v.items)"type"in h&&h.type==="group"?x.push(...y(h)):x.push(h);return x}return y({type:"group",items:m,id:"dummy",key:"dummy",value:"dummy",depth:0})}const c={sortByWithGroups:r,toggleGroup:s,opened:n,groupBy:a,extractRows:i,isGroupOpen:o};return le(Vt,c),c}function Rt(){const e=ne(Vt);if(!e)throw new Error("Missing group!");return e}function Za(e,l){if(!e.length)return[];const a=new Map;for(const t of e){const n=he(t.raw,l);a.has(n)||a.set(n,[]),a.get(n).push(t)}return a}function Ft(e,l){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"root";if(!l.length)return[];const n=Za(e,l[0]),r=[],o=l.slice(1);return n.forEach((s,i)=>{const c=l[0],m=`${t}_${c}_${i}`;r.push({depth:a,id:m,key:c,value:i,items:o.length?Ft(s,o,a+1,m):s,type:"group"})}),r}function At(e,l){const a=[];for(const t of e)"type"in t&&t.type==="group"?(t.value!=null&&a.push(t),(l.has(t.id)||t.value==null)&&a.push(...At(t.items,l))):a.push(t);return a}function $t(e,l,a){return{flatItems:k(()=>{if(!l.value.length)return e.value;const n=Ft(e.value,l.value.map(r=>r.key));return At(n,a.value)})}}const el=B({item:{type:Object,required:!0}},"VDataTableGroupHeaderRow"),tl=W()({name:"VDataTableGroupHeaderRow",props:el(),setup(e,l){let{slots:a}=l;const{isGroupOpen:t,toggleGroup:n,extractRows:r}=Rt(),{isSelected:o,isSomeSelected:s,select:i}=Pe(),{columns:c}=we(),m=k(()=>r([e.item]));return()=>u("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[c.value.map(y=>{var v,x;if(y.key==="data-table-group"){const h=t(e.item)?"$expand":"$next",S=()=>n(e.item);return((v=a["data-table-group"])==null?void 0:v.call(a,{item:e.item,count:m.value.length,props:{icon:h,onClick:S}}))??u(ye,{class:"v-data-table-group-header-row__column"},{default:()=>[u(U,{size:"small",variant:"text",icon:h,onClick:S},null),u("span",null,[e.item.value]),u("span",null,[Le("("),m.value.length,Le(")")])]})}if(y.key==="data-table-select"){const h=o(m.value),S=s(m.value)&&!h,g=p=>i(m.value,p);return((x=a["data-table-select"])==null?void 0:x.call(a,{props:{modelValue:h,indeterminate:S,"onUpdate:modelValue":g}}))??u("td",null,[u(ze,{modelValue:h,indeterminate:S,"onUpdate:modelValue":g},null)])}return u("td",null,null)})])}}),al=B({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},"DataTable-expand"),Ot=Symbol.for("vuetify:datatable:expanded");function Et(e){const l=I(e,"expandOnClick"),a=X(e,"expanded",e.expanded,s=>new Set(s),s=>[...s.values()]);function t(s,i){const c=new Set(a.value);i?c.add(s.value):c.delete(s.value),a.value=c}function n(s){return a.value.has(s.value)}function r(s){t(s,!n(s))}const o={expand:t,expanded:a,expandOnClick:l,isExpanded:n,toggleExpand:r};return le(Ot,o),o}function Lt(){const e=ne(Ot);if(!e)throw new Error("foo");return e}const ll=B({index:Number,item:Object,cellProps:[Object,Function],onClick:Oe(),onContextmenu:Oe(),onDblclick:Oe(),...He()},"VDataTableRow"),Nt=W()({name:"VDataTableRow",props:ll(),setup(e,l){let{slots:a}=l;const{displayClasses:t,mobile:n}=Se(e,"v-data-table__tr"),{isSelected:r,toggleSelect:o,someSelected:s,allSelected:i,selectAll:c}=Pe(),{isExpanded:m,toggleExpand:y}=Lt(),{toggleSort:v,sortBy:x,isSorted:h}=_t(),{columns:S}=we();ee(()=>u("tr",{class:["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},t.value],onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&S.value.map((g,p)=>{const f=e.item,V=`item.${g.key}`,R=`header.${g.key}`,_={index:e.index,item:f.raw,internalItem:f,value:he(f.columns,g.key),column:g,isSelected:r,toggleSelect:o,isExpanded:m,toggleExpand:y},N={column:g,selectAll:c,isSorted:h,toggleSort:v,sortBy:x.value,someSelected:s.value,allSelected:i.value,getSortIcon:()=>""},j=typeof e.cellProps=="function"?e.cellProps({index:_.index,item:_.item,internalItem:_.internalItem,value:_.value,column:g}):e.cellProps,b=typeof g.cellProps=="function"?g.cellProps({index:_.index,item:_.item,internalItem:_.internalItem,value:_.value}):g.cellProps;return u(ye,T({align:g.align,class:{"v-data-table__td--expanded-row":g.key==="data-table-expand","v-data-table__td--select-row":g.key==="data-table-select"},fixed:g.fixed,fixedOffset:g.fixedOffset,lastFixed:g.lastFixed,maxWidth:n.value?void 0:g.maxWidth,noPadding:g.key==="data-table-select"||g.key==="data-table-expand",nowrap:g.nowrap,width:n.value?void 0:g.width},j,b),{default:()=>{var w,P,D,C,H;if(a[V]&&!n.value)return(w=a[V])==null?void 0:w.call(a,_);if(g.key==="data-table-select")return((P=a["item.data-table-select"])==null?void 0:P.call(a,_))??u(ze,{disabled:!f.selectable,modelValue:r([f]),onClick:Ye(()=>o(f),["stop"])},null);if(g.key==="data-table-expand")return((D=a["item.data-table-expand"])==null?void 0:D.call(a,_))??u(U,{icon:m(f)?"$collapse":"$expand",size:"small",variant:"text",onClick:Ye(()=>y(f),["stop"])},null);const d=me(_.value);return n.value?u(J,null,[u("div",{class:"v-data-table__td-title"},[((C=a[R])==null?void 0:C.call(a,N))??g.title]),u("div",{class:"v-data-table__td-value"},[((H=a[V])==null?void 0:H.call(a,_))??d])]):d}})})]))}}),Gt=B({loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function],...He()},"VDataTableRows"),xe=W()({name:"VDataTableRows",inheritAttrs:!1,props:Gt(),setup(e,l){let{attrs:a,slots:t}=l;const{columns:n}=we(),{expandOnClick:r,toggleExpand:o,isExpanded:s}=Lt(),{isSelected:i,toggleSelect:c}=Pe(),{toggleGroup:m,isGroupOpen:y}=Rt(),{t:v}=ie(),{mobile:x}=Se(e);return ee(()=>{var h,S;return e.loading&&(!e.items.length||t.loading)?u("tr",{class:"v-data-table-rows-loading",key:"loading"},[u("td",{colspan:n.value.length},[((h=t.loading)==null?void 0:h.call(t))??v(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?u("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[u("td",{colspan:n.value.length},[((S=t["no-data"])==null?void 0:S.call(t))??v(e.noDataText)])]):u(J,null,[e.items.map((g,p)=>{var R;if(g.type==="group"){const _={index:p,item:g,columns:n.value,isExpanded:s,toggleExpand:o,isSelected:i,toggleSelect:c,toggleGroup:m,isGroupOpen:y};return t["group-header"]?t["group-header"](_):u(tl,T({key:`group-header_${g.id}`,item:g},Qe(a,":group-header",()=>_)),t)}const f={index:p,item:g.raw,internalItem:g,columns:n.value,isExpanded:s,toggleExpand:o,isSelected:i,toggleSelect:c},V={...f,props:T({key:`item_${g.key??g.index}`,onClick:r.value?()=>{o(g)}:void 0,index:p,item:g,cellProps:e.cellProps,mobile:x.value},Qe(a,":row",()=>f),typeof e.rowProps=="function"?e.rowProps({item:f.item,index:f.index,internalItem:f.internalItem}):e.rowProps)};return u(J,{key:V.props.key},[t.item?t.item(V):u(Nt,V.props,t),s(g)&&((R=t["expanded-row"])==null?void 0:R.call(t,f))])})])}),{}}}),nl=B({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function rl(e,l,a,t){const n=e.returnObject?l:ve(l,e.itemValue),r=ve(l,e.itemSelectable,!0),o=t.reduce((s,i)=>(i.key!=null&&(s[i.key]=ve(l,i.value)),s),{});return{type:"item",key:e.returnObject?ve(l,e.itemValue):n,index:a,value:n,selectable:r,columns:o,raw:l}}function sl(e,l,a){return l.map((t,n)=>rl(e,t,n,a))}function jt(e,l){return{items:k(()=>sl(e,e.items,l.value))}}function Ht(e){let{page:l,itemsPerPage:a,sortBy:t,groupBy:n,search:r}=e;const o=at("VDataTable"),s=k(()=>({page:l.value,itemsPerPage:a.value,sortBy:t.value,groupBy:n.value,search:r.value}));let i=null;lt(s,()=>{nt(i,s.value)||(i&&i.search!==s.value.search&&(l.value=1),o.emit("update:options",s.value),i=s.value)},{deep:!0,immediate:!0})}const Mt=B({...Gt(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...al(),...Tt(),...Ma(),...nl(),...Qa(),...Xa(),...It(),...ka()},"DataTable"),ol=B({...La(),...Mt(),...ut(),...ft()},"VDataTable");W()({name:"VDataTable",props:ol(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0,"update:currentItems":e=>!0},setup(e,l){let{attrs:a,slots:t}=l;const{groupBy:n}=Ct(e),{sortBy:r,multiSort:o,mustSort:s}=Pt(e),{page:i,itemsPerPage:c}=Na(e),{disableSort:m}=rt(e),{columns:y,headers:v,sortFunctions:x,sortRawFunctions:h,filterFunctions:S}=bt(e,{groupBy:n,showSelect:I(e,"showSelect"),showExpand:I(e,"showExpand")}),{items:g}=jt(e,y),p=I(e,"search"),{filteredItems:f}=it(e,g,p,{transform:F=>F.columns,customKeyFilter:S}),{toggleSort:V}=kt({sortBy:r,multiSort:o,mustSort:s,page:i}),{sortByWithGroups:R,opened:_,extractRows:N,isGroupOpen:j,toggleGroup:b}=Bt({groupBy:n,sortBy:r,disableSort:m}),{sortedItems:d}=Dt(e,f,R,{transform:F=>({...F.raw,...F.columns}),sortFunctions:x,sortRawFunctions:h}),{flatItems:w}=$t(d,n,_),P=k(()=>w.value.length),{startIndex:D,stopIndex:C,pageCount:H,setItemsPerPage:te}=Ga({page:i,itemsPerPage:c,itemsLength:P}),{paginatedItems:q}=Ha({items:w,startIndex:D,stopIndex:C,itemsPerPage:c}),K=k(()=>N(q.value)),{isSelected:ke,select:_e,selectAll:De,toggleSelect:Ie,someSelected:Te,allSelected:Ve}=St(e,{allItems:g,currentPage:K}),{isExpanded:Ce,toggleExpand:Be}=Et(e);Ht({page:i,itemsPerPage:c,sortBy:r,groupBy:n,search:p}),ge({VDataTableRows:{hideNoData:I(e,"hideNoData"),noDataText:I(e,"noDataText"),loading:I(e,"loading"),loadingText:I(e,"loadingText")}});const $=k(()=>({page:i.value,itemsPerPage:c.value,sortBy:r.value,pageCount:H.value,toggleSort:V,setItemsPerPage:te,someSelected:Te.value,allSelected:Ve.value,isSelected:ke,select:_e,selectAll:De,toggleSelect:Ie,isExpanded:Ce,toggleExpand:Be,isGroupOpen:j,toggleGroup:b,items:K.value.map(F=>F.raw),internalItems:K.value,groupedItems:q.value,columns:y.value,headers:v.value}));return ee(()=>{const F=Je.filterProps(e),O=pe.filterProps(e),Re=xe.filterProps(e),Fe=be.filterProps(e);return u(be,T({class:["v-data-table",{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},Fe),{top:()=>{var A;return(A=t.top)==null?void 0:A.call(t,$.value)},default:()=>{var A,re,se,M,ae,oe;return t.default?t.default($.value):u(J,null,[(A=t.colgroup)==null?void 0:A.call(t,$.value),!e.hideDefaultHeader&&u("thead",{key:"thead"},[u(pe,O,t)]),(re=t.thead)==null?void 0:re.call(t,$.value),!e.hideDefaultBody&&u("tbody",null,[(se=t["body.prepend"])==null?void 0:se.call(t,$.value),t.body?t.body($.value):u(xe,T(a,Re,{items:q.value}),t),(M=t["body.append"])==null?void 0:M.call(t,$.value)]),(ae=t.tbody)==null?void 0:ae.call(t,$.value),(oe=t.tfoot)==null?void 0:oe.call(t,$.value)])},bottom:()=>t.bottom?t.bottom($.value):!e.hideDefaultFooter&&u(J,null,[u(ma,null,null),u(Je,F,{prepend:t["footer.prepend"]})])})}),{}}});const ul=B({...Mt(),...Tt(),...Sa(),...ut()},"VDataTableVirtual"),il=W()({name:"VDataTableVirtual",props:ul(),emits:{"update:modelValue":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0},setup(e,l){let{attrs:a,slots:t}=l;const{groupBy:n}=Ct(e),{sortBy:r,multiSort:o,mustSort:s}=Pt(e),{disableSort:i}=rt(e),{columns:c,headers:m,filterFunctions:y,sortFunctions:v,sortRawFunctions:x}=bt(e,{groupBy:n,showSelect:I(e,"showSelect"),showExpand:I(e,"showExpand")}),{items:h}=jt(e,c),S=I(e,"search"),{filteredItems:g}=it(e,h,S,{transform:O=>O.columns,customKeyFilter:y}),{toggleSort:p}=kt({sortBy:r,multiSort:o,mustSort:s}),{sortByWithGroups:f,opened:V,extractRows:R,isGroupOpen:_,toggleGroup:N}=Bt({groupBy:n,sortBy:r,disableSort:i}),{sortedItems:j}=Dt(e,g,f,{transform:O=>({...O.raw,...O.columns}),sortFunctions:v,sortRawFunctions:x}),{flatItems:b}=$t(j,n,V),d=k(()=>R(b.value)),{isSelected:w,select:P,selectAll:D,toggleSelect:C,someSelected:H,allSelected:te}=St(e,{allItems:d,currentPage:d}),{isExpanded:q,toggleExpand:K}=Et(e),{containerRef:ke,markerRef:_e,paddingTop:De,paddingBottom:Ie,computedItems:Te,handleItemResize:Ve,handleScroll:Ce,handleScrollend:Be}=wa(e,b),$=k(()=>Te.value.map(O=>O.raw));Ht({sortBy:r,page:Ge(1),itemsPerPage:Ge(-1),groupBy:n,search:S}),ge({VDataTableRows:{hideNoData:I(e,"hideNoData"),noDataText:I(e,"noDataText"),loading:I(e,"loading"),loadingText:I(e,"loadingText")}});const F=k(()=>({sortBy:r.value,toggleSort:p,someSelected:H.value,allSelected:te.value,isSelected:w,select:P,selectAll:D,toggleSelect:C,isExpanded:q,toggleExpand:K,isGroupOpen:_,toggleGroup:N,items:d.value.map(O=>O.raw),internalItems:d.value,groupedItems:b.value,columns:c.value,headers:m.value}));ee(()=>{const O=pe.filterProps(e),Re=xe.filterProps(e),Fe=be.filterProps(e);return u(be,T({class:["v-data-table",{"v-data-table--loading":e.loading},e.class],style:e.style},Fe),{top:()=>{var A;return(A=t.top)==null?void 0:A.call(t,F.value)},wrapper:()=>{var A,re,se;return u("div",{ref:ke,onScrollPassive:Ce,onScrollend:Be,class:"v-table__wrapper",style:{height:L(e.height)}},[u("table",null,[(A=t.colgroup)==null?void 0:A.call(t,F.value),!e.hideDefaultHeader&&u("thead",{key:"thead"},[u(pe,T(O,{sticky:e.fixedHeader}),t)]),!e.hideDefaultBody&&u("tbody",null,[u("tr",{ref:_e,style:{height:L(De.value),border:0}},[u("td",{colspan:c.value.length,style:{height:0,border:0}},null)]),(re=t["body.prepend"])==null?void 0:re.call(t,F.value),u(xe,T(a,Re,{items:$.value}),{...t,item:M=>u(Pa,{key:M.internalItem.index,renderless:!0,"onUpdate:height":ae=>Ve(M.internalItem.index,ae)},{default:ae=>{var Ue;let{itemRef:oe}=ae;return((Ue=t.item)==null?void 0:Ue.call(t,{...M,itemRef:oe}))??u(Nt,T(M.props,{ref:oe,key:M.internalItem.index,index:M.internalItem.index}),t)}})}),(se=t["body.append"])==null?void 0:se.call(t,F.value),u("tr",{style:{height:L(Ie.value),border:0}},[u("td",{colspan:c.value.length,style:{height:0,border:0}},null)])])])])},bottom:()=>{var A;return(A=t.bottom)==null?void 0:A.call(t,F.value)}})})}}),dl={name:"AdminTable"};function cl(e,l,a,t,n,r){return E(),z(il,{"fixed-header":"","item-value":"pk",mobile:e.$vuetify.display.xs},ga({_:2},[st(e.$slots,(o,s)=>({name:s,fn:Q(i=>[ha(e.$slots,s,T({props:o},i),void 0,!0)])}))]),1032,["mobile"])}const Dl=Z(dl,[["render",cl],["__scopeId","data-v-8b5d9183"]]),fl={name:"AdminDeleteRowDialog",components:{ConfirmDialog:_a},props:{table:{type:String,required:!0},pk:{type:Number,required:!0},name:{type:String,required:!0}},data(){return{mdiTrashCan:ba}},computed:{titleText(){return`Delete ${this.table}`}},methods:{...Ze(et,["deleteRow"]),confirm(){this.deleteRow(this.table,this.pk),this.showDialog=!1}}};function vl(e,l,a,t,n,r){const o=ue("ConfirmDialog");return E(),z(o,{icon:n.mdiTrashCan,"title-text":r.titleText,"object-name":a.name,"confirm-text":r.titleText,onConfirm:r.confirm},null,8,["icon","title-text","object-name","confirm-text","onConfirm"])}const Il=Z(fl,[["render",vl]]),ml={name:"RelationChips",components:{GroupChip:dt},props:{pks:{type:Array,required:!0},objs:{type:Object,required:!0},titleKey:{type:String,required:!0},groupType:{type:Boolean,default:!1}},computed:{map(){const e={};for(const l of this.objs)e[l.pk]=l;return e}}};function gl(e,l,a,t,n,r){const o=ue("GroupChip");return E(),Ne("span",null,[(E(!0),Ne(J,null,st(a.pks,s=>(E(),z(o,{key:s,"title-key":a.titleKey,"group-type":a.groupType,item:r.map[s]},null,8,["title-key","group-type","item"]))),128))])}const Tl=Z(ml,[["render",gl]]);export{_l as A,dt as G,Tl as R,Dl as a,Il as b,kl as c};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/admin-drawer-panel-Crj9u2NV.js","assets/admin-drawer-panel-Dm28c2tG.css"])))=>i.map(i=>d[i]);
2
- import{_ as Ve,m as Pe,j as xe}from"./main-DArXKRWW.js";import{_ as U,$ as C,Y as D,bn as Ge,aG as Ze,a0 as k,bA as Be,ar as Q,aq as De,bF as Re,bG as Ee,cj as je,W as ee,q as re,X as te,E as N,Z as L,T as l,al as R,aH as P,aQ as W,aI as Ie,aJ as O,aY as Je,F as ae,N as oe,ax as ne,P as le,S as se,ck as ue,cd as ce,bf as de,O as ve,az as K,aA as G,cl as me,cg as he,bg as fe,Q as ge,R as $e,s as M,h as g,aC as Oe,c9 as Me,bh as j,L as F,bS as Qe,cm as Ae,cn as Ke,co as et,aF as Y,aP as B,aU as tt,bY as at,cp as ot,aN as Le,cq as nt,J as lt,cr as st,aE as Ne,cs as Ue,a as X,o as He,ct as it,cu as J,w as rt,cv as ut,cw as ct,cx as dt,cy as vt,cz as mt,av as ht,c6 as ft,aB as gt,r as yt,cA as bt,cB as _t,V as pt,cC as wt,n as St,aW as ie}from"./admin-drawer-panel-Crj9u2NV.js";import{P as kt,a as Ct}from"./unauthorized-BY4OkaUc.js";import{c as Tt}from"./copy-to-clipboard-DoUvDJVx.js";import{V as Vt}from"./VDialog-BXw6XFu7.js";const Pt={name:"ScaleButton",props:{scale:{type:Boolean,default:!1}},computed:{breakPoint(){return this.$vuetify.display.xs},density(){return this.breakPoint?"compact":"default"}}};function xt(e,s,a,d,t,o){return C(),D(De,{density:o.density},Ge({_:2},[Ze(e.$slots,(n,u)=>({name:u,fn:k(y=>[Be(e.$slots,u,Q({props:n},y))])}))]),1032,["density"])}const Bt=U(Pt,[["render",xt]]),ke=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-Crj9u2NV.js").then(e=>e.dB),__vite__mapDeps([0,1])))),Dt={name:"SettingsDrawerButton",components:{AdminSettingsButtonProgress:ke,ScaleButton:Bt},data(){return{mdiMenu:je,AdminSettingsButtonProgress:ke}},computed:{...ee(re,["isUserAdmin"])},methods:{...te(N,["setSettingsDrawerOpen"]),onClick(){this.setSettingsDrawerOpen(!0)}}};function Rt(e,s,a,d,t,o){const n=L("ScaleButton");return C(),D(n,{id:"settingsDrawerButton",variant:"plain",icon:"",title:"Settings",onClick:Je(o.onClick,["prevent"])},{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiMenu),1)]),_:1}),e.isUserAdmin?(C(),D(Ie(t.AdminSettingsButtonProgress),{key:0})):O("",!0)]),_:1},8,["onClick"])}const Ta=U(Dt,[["render",Rt],["__scopeId","data-v-cdf6ad8a"]]),Et=ae({text:String,...oe(),...ne()},"VToolbarTitle"),It=le()({name:"VToolbarTitle",props:Et(),setup(e,s){let{slots:a}=s;return se(()=>{const d=!!(a.default||a.text||e.text);return l(e.tag,{class:["v-toolbar-title",e.class],style:e.style},{default:()=>{var t;return[d&&l("div",{class:"v-toolbar-title__placeholder"},[a.text?a.text():e.text,(t=a.default)==null?void 0:t.call(a)])]}})}),{}}}),$t=[null,"prominent","default","comfortable","compact"],Ot=ae({absolute:Boolean,collapse:Boolean,color:String,density:{type:String,default:"default",validator:e=>$t.includes(e)},extended:Boolean,extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...ue(),...oe(),...ce(),...de(),...ne({tag:"header"}),...ve()},"VToolbar"),Va=le()({name:"VToolbar",props:Ot(),setup(e,s){var _;let{slots:a}=s;const{backgroundColorClasses:d,backgroundColorStyles:t}=K(G(e,"color")),{borderClasses:o}=me(e),{elevationClasses:n}=he(e),{roundedClasses:u}=fe(e),{themeClasses:y}=ge(e),{rtlClasses:b}=$e(),c=M(!!(e.extended||(_=a.extension)!=null&&_.call(a))),v=g(()=>parseInt(Number(e.height)+(e.density==="prominent"?Number(e.height):0)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0),10)),m=g(()=>c.value?parseInt(Number(e.extensionHeight)+(e.density==="prominent"?Number(e.extensionHeight):0)-(e.density==="comfortable"?4:0)-(e.density==="compact"?8:0),10):0);return Oe({VBtn:{variant:"text"}}),se(()=>{var $;const p=!!(e.title||a.title),T=!!(a.image||e.image),I=($=a.extension)==null?void 0:$.call(a);return c.value=!!(e.extended||I),l(e.tag,{class:["v-toolbar",{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},d.value,o.value,n.value,u.value,y.value,b.value,e.class],style:[t.value,e.style]},{default:()=>[T&&l("div",{key:"image",class:"v-toolbar__image"},[a.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},a.image):l(Me,{key:"image-img",cover:!0,src:e.image},null)]),l(j,{defaults:{VTabs:{height:F(v.value)}}},{default:()=>{var E,x,A;return[l("div",{class:"v-toolbar__content",style:{height:F(v.value)}},[a.prepend&&l("div",{class:"v-toolbar__prepend"},[(E=a.prepend)==null?void 0:E.call(a)]),p&&l(It,{key:"title",text:e.title},{text:a.title}),(x=a.default)==null?void 0:x.call(a),a.append&&l("div",{class:"v-toolbar__append"},[(A=a.append)==null?void 0:A.call(a)])])]}}),l(j,{defaults:{VTabs:{height:F(m.value)}}},{default:()=>[l(Qe,null,{default:()=>[c.value&&l("div",{class:"v-toolbar__extension",style:{height:F(m.value)}},[I])]})]})]})}),{contentHeight:v,extensionHeight:m}}}),Mt={name:"OPDSUrl",props:{title:{type:String,required:!0},subtitle:{type:String,default:void 0},urlPath:{type:String,required:!0}},data(){return{mdiRss:Ae,showTooltip:{show:!1}}},computed:{clipBoardEnabled(){return location.protocol=="https:"},clipBoardIcon(){return this.showTooltip.show?Ke:et},tooltip(){return this.clipBoardEnabled},url(){return window.origin+this.urlPath}},methods:{onClickURL(){this.clipBoardEnabled&&Tt(this.url,this.showTooltip)}}},At=["title"],Lt={key:0},Nt={class:"copied"},Ut={key:1,class:"subtitle"},Ht={class:"opdsUrl"};function zt(e,s,a,d,t,o){return C(),Y("div",{class:"opdsVersion",title:o.tooltip,onClick:s[0]||(s[0]=(...n)=>o.onClickURL&&o.onClickURL(...n))},[B("h3",null,[R(P(a.title)+" ",1),o.clipBoardEnabled?(C(),Y("span",Lt,[l(W,{class:"clipBoardIcon",size:"small"},{default:k(()=>[R(P(o.clipBoardIcon),1)]),_:1}),l(ot,null,{default:k(()=>[tt(B("span",Nt,"Copied",512),[[at,t.showTooltip.show]])]),_:1})])):O("",!0),a.subtitle?(C(),Y("span",Ut,P(a.subtitle),1)):O("",!0)]),B("div",Ht,P(o.url),1)],8,At)}const Ft=U(Mt,[["render",zt],["__scopeId","data-v-b8e2453a"]]),Yt={name:"OPDSDialog",components:{OPDSUrl:Ft,PlaceholderLoading:kt},data(){return{mdiRss:Ae}},computed:{...ee(N,{opdsURLs:e=>e.opdsURLs})},methods:{...te(N,["loadOPDSURLs"])}},Wt={key:0,id:"opds"};function qt(e,s,a,d,t,o){const n=L("OPDSUrl"),u=L("PlaceholderLoading");return C(),D(Vt,{"max-width":"30em"},{activator:k(({props:y})=>[l(De,Q({id:"opdsButton",icon:"",size:"small",variant:"plain"},y,{onClick:e.loadOPDSURLs}),{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),_:2},1040,["onClick"])]),default:k(()=>[e.opdsURLs?(C(),Y("div",Wt,[B("h2",null,[l(W,{size:"x=small",class:"inline"},{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),l(n,{title:"v1.2","url-path":e.opdsURLs.v1},null,8,["url-path"]),l(n,{title:"v2.0","url-path":e.opdsURLs.v2,subtitle:"Experimental and not widely or well supported by clients"},null,8,["url-path"])])):(C(),D(u,{key:1}))]),_:1})}const Xt=U(Yt,[["render",qt],["__scopeId","data-v-5646b9a1"]]),Gt={name:"RepoFooter",data(){return{mdiOpenInNew:Le,mdiSourceRepository:nt}}},Zt={id:"repo",href:"https://github.com/ajslater/codex",title:"Codex Source Repository",target:"_blank"};function jt(e,s,a,d,t,o){return C(),Y("a",Zt,[l(W,{id:"repoIcon",size:"x-small"},{default:k(()=>[R(P(t.mdiSourceRepository),1)]),_:1}),R(" repository"),l(W,{color:e.$vuetify.theme.current.colors.iconsInactive,size:"x-small"},{default:k(()=>[R(P(t.mdiOpenInNew),1)]),_:1},8,["color"])])}const Jt=U(Gt,[["render",jt],["__scopeId","data-v-fae4fb39"]]),Qt=ae({app:Boolean,color:String,height:{type:[Number,String],default:"auto"},...ue(),...oe(),...ce(),...Pe(),...de(),...ne({tag:"footer"}),...ve()},"VFooter"),ze=le()({name:"VFooter",props:Qt(),setup(e,s){let{slots:a}=s;const{themeClasses:d}=ge(e),{backgroundColorClasses:t,backgroundColorStyles:o}=K(G(e,"color")),{borderClasses:n}=me(e),{elevationClasses:u}=he(e),{roundedClasses:y}=fe(e),b=M(32),{resizeRef:c}=lt(p=>{p.length&&(b.value=p[0].target.clientHeight)}),v=g(()=>e.height==="auto"?b.value:parseInt(e.height,10)),{layoutItemStyles:m,layoutIsReady:_}=xe({id:e.name,order:g(()=>parseInt(e.order,10)),position:g(()=>"bottom"),layoutSize:v,elementSize:g(()=>e.height==="auto"?void 0:v.value),active:g(()=>e.app),absolute:G(e,"absolute")});return se(()=>l(e.tag,{ref:c,class:["v-footer",d.value,t.value,n.value,u.value,y.value,e.class],style:[o.value,e.app?m.value:{height:F(e.height)},e.style]},a)),e.app?_:{}}}),Kt={name:"VersionFooter",data(){return{mdiOpenInNew:Le,mdiContentCopy:st}},computed:{...ee(N,{versions:e=>e.versions}),...Ne(re,["isUserAdmin"]),outdated:function(){return this.isUserAdmin&&this.semverGreaterThan(this.versions.latest>this.versions.installed)},versionTitle:function(){return this.outdated?`v${this.versions.latest} is available`:"up to date"}},created(){this.loadVersions()},methods:{...te(N,["loadVersions"]),semverGreaterThan(e,s){try{if(!e||!s)return!1;const a=e.split("."),d=s.split(".");for(const[t,o]of a.entries())if(+o>+d[t])return!0}catch(a){console.debug("compare codex versions",e,">",s,a)}return!1}}},ea={id:"version"},ta={key:0,id:"latest"};function aa(e,s,a,d,t,o){return C(),D(ze,{id:"version-footer",title:o.versionTitle},{default:k(()=>[B("div",ea,"codex v"+P(e.versions.installed),1),o.outdated?(C(),Y("div",ta," codex v"+P(e.versions.latest)+" is available ",1)):O("",!0)]),_:1},8,["title"])}const oa=U(Kt,[["render",aa],["__scopeId","data-v-4787569d"]]);function na(e){let{rootEl:s,isSticky:a,layoutItemStyles:d}=e;const t=M(!1),o=M(0),n=g(()=>{const b=typeof t.value=="boolean"?"top":t.value;return[a.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[b]:F(o.value)}:{top:d.value.top}]});Ue(()=>{X(a,b=>{b?window.addEventListener("scroll",y,{passive:!0}):window.removeEventListener("scroll",y)},{immediate:!0})}),He(()=>{window.removeEventListener("scroll",y)});let u=0;function y(){const b=u>window.scrollY?"up":"down",c=s.value.getBoundingClientRect(),v=parseFloat(d.value.top??0),m=window.scrollY-Math.max(0,o.value-v),_=c.height+Math.max(o.value,v)-window.scrollY-window.innerHeight,p=parseFloat(getComputedStyle(s.value).getPropertyValue("--v-body-scroll-y"))||0;c.height<window.innerHeight-v?(t.value="top",o.value=v):b==="up"&&t.value==="bottom"||b==="down"&&t.value==="top"?(o.value=window.scrollY+c.top-p,t.value=!0):b==="down"&&_<=0?(o.value=0,t.value="bottom"):b==="up"&&m<=0&&(p?t.value!=="top"&&(o.value=-m+p+v,t.value="top"):(o.value=c.top+m,t.value="top")),u=window.scrollY}return{isStuck:t,stickyStyles:n}}const la=100,sa=20;function Ce(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function Te(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let s=0;for(let a=e.length-1;a>0;a--){if(e[a].t===e[a-1].t)continue;const d=Ce(s),t=(e[a].d-e[a-1].d)/(e[a].t-e[a-1].t);s+=(t-d)*Math.abs(t),a===e.length-1&&(s*=.5)}return Ce(s)*1e3}function ia(){const e={};function s(t){Array.from(t.changedTouches).forEach(o=>{(e[o.identifier]??(e[o.identifier]=new it(sa))).push([t.timeStamp,o])})}function a(t){Array.from(t.changedTouches).forEach(o=>{delete e[o.identifier]})}function d(t){var b;const o=(b=e[t])==null?void 0:b.values().reverse();if(!o)throw new Error(`No samples for touch id ${t}`);const n=o[0],u=[],y=[];for(const c of o){if(n[0]-c[0]>la)break;u.push({t:c[0],d:c[1].clientX}),y.push({t:c[0],d:c[1].clientY})}return{x:Te(u),y:Te(y),get direction(){const{x:c,y:v}=this,[m,_]=[Math.abs(c),Math.abs(v)];return m>_&&c>=0?"right":m>_&&c<=0?"left":_>m&&v>=0?"down":_>m&&v<=0?"up":ra()}}}return{addMovement:s,endTouch:a,getVelocity:d}}function ra(){throw new Error}function ua(e){let{el:s,isActive:a,isTemporary:d,width:t,touchless:o,position:n}=e;Ue(()=>{window.addEventListener("touchstart",E,{passive:!0}),window.addEventListener("touchmove",x,{passive:!1}),window.addEventListener("touchend",A,{passive:!0})}),He(()=>{window.removeEventListener("touchstart",E),window.removeEventListener("touchmove",x),window.removeEventListener("touchend",A)});const u=g(()=>["left","right"].includes(n.value)),{addMovement:y,endTouch:b,getVelocity:c}=ia();let v=!1;const m=M(!1),_=M(0),p=M(0);let T;function I(i,r){return(n.value==="left"?i:n.value==="right"?document.documentElement.clientWidth-i:n.value==="top"?i:n.value==="bottom"?document.documentElement.clientHeight-i:z())-(r?t.value:0)}function $(i){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const h=n.value==="left"?(i-p.value)/t.value:n.value==="right"?(document.documentElement.clientWidth-i-p.value)/t.value:n.value==="top"?(i-p.value)/t.value:n.value==="bottom"?(document.documentElement.clientHeight-i-p.value)/t.value:z();return r?Math.max(0,Math.min(1,h)):h}function E(i){if(o.value)return;const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY,f=25,S=n.value==="left"?r<f:n.value==="right"?r>document.documentElement.clientWidth-f:n.value==="top"?h<f:n.value==="bottom"?h>document.documentElement.clientHeight-f:z(),w=a.value&&(n.value==="left"?r<t.value:n.value==="right"?r>document.documentElement.clientWidth-t.value:n.value==="top"?h<t.value:n.value==="bottom"?h>document.documentElement.clientHeight-t.value:z());(S||w||a.value&&d.value)&&(T=[r,h],p.value=I(u.value?r:h,a.value),_.value=$(u.value?r:h),v=p.value>-20&&p.value<80,b(i),y(i))}function x(i){const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY;if(v){if(!i.cancelable){v=!1;return}const S=Math.abs(r-T[0]),w=Math.abs(h-T[1]);(u.value?S>w&&S>3:w>S&&w>3)?(m.value=!0,v=!1):(u.value?w:S)>3&&(v=!1)}if(!m.value)return;i.preventDefault(),y(i);const f=$(u.value?r:h,!1);_.value=Math.max(0,Math.min(1,f)),f>1?p.value=I(u.value?r:h,!0):f<0&&(p.value=I(u.value?r:h,!1))}function A(i){if(v=!1,!m.value)return;y(i),m.value=!1;const r=c(i.changedTouches[0].identifier),h=Math.abs(r.x),f=Math.abs(r.y);(u.value?h>f&&h>400:f>h&&f>3)?a.value=r.direction===({left:"right",right:"left",top:"down",bottom:"up"}[n.value]||z()):a.value=_.value>.5}const q=g(()=>m.value?{transform:n.value==="left"?`translateX(calc(-100% + ${_.value*t.value}px))`:n.value==="right"?`translateX(calc(100% - ${_.value*t.value}px))`:n.value==="top"?`translateY(calc(-100% + ${_.value*t.value}px))`:n.value==="bottom"?`translateY(calc(100% - ${_.value*t.value}px))`:z(),transition:"none"}:void 0);return J(m,()=>{var h,f;const i=((h=s.value)==null?void 0:h.style.transform)??null,r=((f=s.value)==null?void 0:f.style.transition)??null;rt(()=>{var S,w,H,Z;(w=s.value)==null||w.style.setProperty("transform",((S=q.value)==null?void 0:S.transform)||"none"),(Z=s.value)==null||Z.style.setProperty("transition",((H=q.value)==null?void 0:H.transition)||null)}),ut(()=>{var S,w;(S=s.value)==null||S.style.setProperty("transform",i),(w=s.value)==null||w.style.setProperty("transition",r)})}),{isDragging:m,dragProgress:_,dragStyles:q}}function z(){throw new Error}const ca=["start","end","left","right","top","bottom"],da=ae({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>ca.includes(e)},sticky:Boolean,...ue(),...oe(),...ct(),...dt({mobile:null}),...ce(),...Pe(),...de(),...ne({tag:"nav"}),...ve()},"VNavigationDrawer"),va=le()({name:"VNavigationDrawer",props:da(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,s){let{attrs:a,emit:d,slots:t}=s;const{isRtl:o}=$e(),{themeClasses:n}=ge(e),{borderClasses:u}=me(e),{backgroundColorClasses:y,backgroundColorStyles:b}=K(G(e,"color")),{elevationClasses:c}=he(e),{displayClasses:v,mobile:m}=vt(e),{roundedClasses:_}=fe(e),p=mt(),T=ht(e,"modelValue",null,V=>!!V),{ssrBootStyles:I}=ft(),{scopeId:$}=gt(),E=yt(),x=M(!1),{runOpenDelay:A,runCloseDelay:q}=wt(e,V=>{x.value=V}),i=g(()=>e.rail&&e.expandOnHover&&x.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),r=g(()=>bt(e.location,o.value)),h=g(()=>e.persistent),f=g(()=>!e.permanent&&(m.value||e.temporary)),S=g(()=>e.sticky&&!f.value&&r.value!=="bottom");J(()=>e.expandOnHover&&e.rail!=null,()=>{X(x,V=>d("update:rail",!V))}),J(()=>!e.disableResizeWatcher,()=>{X(f,V=>!e.permanent&&St(()=>T.value=!V))}),J(()=>!e.disableRouteWatcher&&!!p,()=>{X(p.currentRoute,()=>f.value&&(T.value=!1))}),X(()=>e.permanent,V=>{V&&(T.value=!0)}),e.modelValue==null&&!f.value&&(T.value=e.permanent||!m.value);const{isDragging:w,dragProgress:H}=ua({el:E,isActive:T,isTemporary:f,width:i,touchless:G(e,"touchless"),position:r}),Z=g(()=>{const V=f.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):i.value;return w.value?V*H.value:V}),Fe=g(()=>["top","bottom"].includes(e.location)?0:i.value),{layoutItemStyles:ye,layoutItemScrimStyles:Ye,layoutIsReady:We}=xe({id:e.name,order:g(()=>parseInt(e.order,10)),position:r,layoutSize:Z,elementSize:Fe,active:g(()=>T.value||w.value),disableTransitions:g(()=>w.value),absolute:g(()=>e.absolute||S.value&&typeof be.value!="string")}),{isStuck:be,stickyStyles:qe}=na({rootEl:E,isSticky:S,layoutItemStyles:ye}),_e=K(g(()=>typeof e.scrim=="string"?e.scrim:null)),Xe=g(()=>({...w.value?{opacity:H.value*.2,transition:"none"}:void 0,...Ye.value}));return Oe({VList:{bgColor:"transparent"}}),se(()=>{const V=t.image||e.image;return l(pt,null,[l(e.tag,Q({ref:E,onMouseenter:A,onMouseleave:q,class:["v-navigation-drawer",`v-navigation-drawer--${r.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":x.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":f.value,"v-navigation-drawer--persistent":h.value,"v-navigation-drawer--active":T.value,"v-navigation-drawer--sticky":S.value},n.value,y.value,u.value,v.value,c.value,_.value,e.class],style:[b.value,ye.value,I.value,qe.value,e.style,["top","bottom"].includes(r.value)?{height:"auto"}:{}]},$,a),{default:()=>{var pe,we,Se;return[V&&l("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):l(Me,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&l("div",{class:"v-navigation-drawer__prepend"},[(pe=t.prepend)==null?void 0:pe.call(t)]),l("div",{class:"v-navigation-drawer__content"},[(we=t.default)==null?void 0:we.call(t)]),t.append&&l("div",{class:"v-navigation-drawer__append"},[(Se=t.append)==null?void 0:Se.call(t)])]}}),l(_t,{name:"fade-transition"},{default:()=>[f.value&&(w.value||T.value)&&!!e.scrim&&l("div",Q({class:["v-navigation-drawer__scrim",_e.backgroundColorClasses.value],style:[Xe.value,_e.backgroundColorStyles.value],onClick:()=>{h.value||(T.value=!1)}},$),null)]})])}),We.then(()=>({isStuck:be}))}}),ma=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-Crj9u2NV.js").then(e=>e.dC),__vite__mapDeps([0,1])))),ha={name:"SettingsDrawer",components:{AuthMenu:Ct,OPDSDialog:Xt,RepoFooter:Jt,VersionFooter:oa},props:{title:{type:String,required:!0}},data(){return{AdminMenu:ma}},computed:{...Ne(re,["isUserAdmin","isAuthorized"]),...ee(N,{isSettingsDrawerOpen:e=>e.isSettingsDrawerOpen}),open:{get(){return this.isSettingsDrawerOpen||!this.isAuthorized},set(e){this.setSettingsDrawerOpen(e)}}},methods:{...te(N,["setSettingsDrawerOpen"])}},fa={class:"settingsDrawerContainer"},ga={id:"topBlock"},ya={class:"settingsHeader"},ba={id:"scrollFooter",class:"footer"};function _a(e,s,a,d,t,o){const n=L("AuthMenu"),u=L("OPDSDialog"),y=L("RepoFooter"),b=L("VersionFooter");return C(),D(va,{modelValue:o.open,"onUpdate:modelValue":s[0]||(s[0]=c=>o.open=c),"disable-route-watcher":"",location:"right",touchless:""},{append:k(()=>[l(ze,{id:"bottomFooter",class:"footer"},{default:k(()=>[l(b)]),_:1})]),default:k(()=>[B("div",fa,[B("div",ga,[B("header",ya,[B("h3",null,P(a.title),1)]),l(ie),e.isAuthorized?Be(e.$slots,"panel",{key:0},void 0,!0):O("",!0),e.isAuthorized?(C(),D(ie,{key:1})):O("",!0),l(n),e.isUserAdmin?(C(),D(Ie(t.AdminMenu),{key:2})):O("",!0),l(ie)]),B("div",ba,[e.isAuthorized?(C(),D(u,{key:0})):O("",!0),l(y)])])]),_:3},8,["modelValue"])}const Pa=U(ha,[["render",_a],["__scopeId","data-v-0412ab42"]]);export{Ta as S,It as V,Va as a,Pa as b,Bt as c,va as d};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/admin-drawer-panel-SQytza6T.js","assets/admin-drawer-panel-DOrhl9Nb.css"])))=>i.map(i=>d[i]);
2
+ import{_ as Ve,m as Pe,j as De}from"./main-EAqCu0p6.js";import{_ as U,$ as C,Y as B,bn as Ge,aG as Ze,a0 as k,bA as xe,ar as Q,aq as Be,bF as Re,bG as Ee,cj as je,W as ee,q as re,X as te,E as N,Z as L,T as l,al as R,aH as P,aQ as W,aI as Ie,aJ as O,aY as Je,F as ae,N as oe,ax as ne,P as le,S as se,ck as ue,cd as ce,bf as de,O as ve,az as K,aA as G,cl as me,cg as he,bg as fe,Q as ge,R as $e,s as M,h as g,aC as Oe,c9 as Me,bh as j,L as F,bS as Qe,cm as Ae,cn as Ke,co as et,aF as Y,aP as x,aU as tt,bY as at,cp as ot,aN as Le,cq as nt,J as lt,cr as st,aE as Ne,cs as Ue,a as X,o as He,ct as it,cu as J,w as rt,cv as ut,cw as ct,cx as dt,cy as vt,cz as mt,av as ht,c6 as ft,aB as gt,r as yt,cA as bt,cB as _t,V as pt,cC as wt,n as St,aW as ie}from"./admin-drawer-panel-SQytza6T.js";import{P as kt,a as Ct}from"./unauthorized-DpTUrdQV.js";import{c as Tt}from"./copy-to-clipboard-DoUvDJVx.js";import{V as Vt}from"./VDialog-DO_IeNl2.js";const Pt={name:"ScaleButton",props:{scale:{type:Boolean,default:!1}},computed:{breakPoint(){return this.$vuetify.display.xs},density(){return this.breakPoint?"compact":"default"}}};function Dt(e,s,a,d,t,o){return C(),B(Be,{density:o.density},Ge({_:2},[Ze(e.$slots,(n,u)=>({name:u,fn:k(y=>[xe(e.$slots,u,Q({props:n},y))])}))]),1032,["density"])}const xt=U(Pt,[["render",Dt]]),ke=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-SQytza6T.js").then(e=>e.dC),__vite__mapDeps([0,1])))),Bt={name:"SettingsDrawerButton",components:{AdminSettingsButtonProgress:ke,ScaleButton:xt},data(){return{mdiMenu:je,AdminSettingsButtonProgress:ke}},computed:{...ee(re,["isUserAdmin"])},methods:{...te(N,["setSettingsDrawerOpen"]),onClick(){this.setSettingsDrawerOpen(!0)}}};function Rt(e,s,a,d,t,o){const n=L("ScaleButton");return C(),B(n,{id:"settingsDrawerButton",variant:"plain",icon:"",title:"Settings",onClick:Je(o.onClick,["prevent"])},{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiMenu),1)]),_:1}),e.isUserAdmin?(C(),B(Ie(t.AdminSettingsButtonProgress),{key:0})):O("",!0)]),_:1},8,["onClick"])}const Ta=U(Bt,[["render",Rt],["__scopeId","data-v-cdf6ad8a"]]),Et=ae({text:String,...oe(),...ne()},"VToolbarTitle"),It=le()({name:"VToolbarTitle",props:Et(),setup(e,s){let{slots:a}=s;return se(()=>{const d=!!(a.default||a.text||e.text);return l(e.tag,{class:["v-toolbar-title",e.class],style:e.style},{default:()=>{var t;return[d&&l("div",{class:"v-toolbar-title__placeholder"},[a.text?a.text():e.text,(t=a.default)==null?void 0:t.call(a)])]}})}),{}}}),$t=[null,"prominent","default","comfortable","compact"],Ot=ae({absolute:Boolean,collapse:Boolean,color:String,density:{type:String,default:"default",validator:e=>$t.includes(e)},extended:Boolean,extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...ue(),...oe(),...ce(),...de(),...ne({tag:"header"}),...ve()},"VToolbar"),Va=le()({name:"VToolbar",props:Ot(),setup(e,s){var _;let{slots:a}=s;const{backgroundColorClasses:d,backgroundColorStyles:t}=K(G(e,"color")),{borderClasses:o}=me(e),{elevationClasses:n}=he(e),{roundedClasses:u}=fe(e),{themeClasses:y}=ge(e),{rtlClasses:b}=$e(),c=M(!!(e.extended||(_=a.extension)!=null&&_.call(a))),v=g(()=>parseInt(Number(e.height)+(e.density==="prominent"?Number(e.height):0)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0),10)),m=g(()=>c.value?parseInt(Number(e.extensionHeight)+(e.density==="prominent"?Number(e.extensionHeight):0)-(e.density==="comfortable"?4:0)-(e.density==="compact"?8:0),10):0);return Oe({VBtn:{variant:"text"}}),se(()=>{var $;const p=!!(e.title||a.title),T=!!(a.image||e.image),I=($=a.extension)==null?void 0:$.call(a);return c.value=!!(e.extended||I),l(e.tag,{class:["v-toolbar",{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},d.value,o.value,n.value,u.value,y.value,b.value,e.class],style:[t.value,e.style]},{default:()=>[T&&l("div",{key:"image",class:"v-toolbar__image"},[a.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},a.image):l(Me,{key:"image-img",cover:!0,src:e.image},null)]),l(j,{defaults:{VTabs:{height:F(v.value)}}},{default:()=>{var E,D,A;return[l("div",{class:"v-toolbar__content",style:{height:F(v.value)}},[a.prepend&&l("div",{class:"v-toolbar__prepend"},[(E=a.prepend)==null?void 0:E.call(a)]),p&&l(It,{key:"title",text:e.title},{text:a.title}),(D=a.default)==null?void 0:D.call(a),a.append&&l("div",{class:"v-toolbar__append"},[(A=a.append)==null?void 0:A.call(a)])])]}}),l(j,{defaults:{VTabs:{height:F(m.value)}}},{default:()=>[l(Qe,null,{default:()=>[c.value&&l("div",{class:"v-toolbar__extension",style:{height:F(m.value)}},[I])]})]})]})}),{contentHeight:v,extensionHeight:m}}}),Mt={name:"OPDSUrl",props:{title:{type:String,required:!0},subtitle:{type:String,default:void 0},urlPath:{type:String,required:!0}},data(){return{mdiRss:Ae,showTooltip:{show:!1}}},computed:{clipBoardEnabled(){return location.protocol=="https:"},clipBoardIcon(){return this.showTooltip.show?Ke:et},tooltip(){return this.clipBoardEnabled},url(){return window.origin+this.urlPath}},methods:{onClickURL(){this.clipBoardEnabled&&Tt(this.url,this.showTooltip)}}},At=["title"],Lt={key:0},Nt={class:"copied"},Ut={key:1,class:"subtitle"},Ht={class:"opdsUrl"};function zt(e,s,a,d,t,o){return C(),Y("div",{class:"opdsVersion",title:o.tooltip,onClick:s[0]||(s[0]=(...n)=>o.onClickURL&&o.onClickURL(...n))},[x("h3",null,[R(P(a.title)+" ",1),o.clipBoardEnabled?(C(),Y("span",Lt,[l(W,{class:"clipBoardIcon",size:"small"},{default:k(()=>[R(P(o.clipBoardIcon),1)]),_:1}),l(ot,null,{default:k(()=>[tt(x("span",Nt,"Copied",512),[[at,t.showTooltip.show]])]),_:1})])):O("",!0),a.subtitle?(C(),Y("span",Ut,P(a.subtitle),1)):O("",!0)]),x("div",Ht,P(o.url),1)],8,At)}const Ft=U(Mt,[["render",zt],["__scopeId","data-v-b8e2453a"]]),Yt={name:"OPDSDialog",components:{OPDSUrl:Ft,PlaceholderLoading:kt},data(){return{mdiRss:Ae}},computed:{...ee(N,{opdsURLs:e=>e.opdsURLs})},methods:{...te(N,["loadOPDSURLs"])}},Wt={key:0,id:"opds"};function qt(e,s,a,d,t,o){const n=L("OPDSUrl"),u=L("PlaceholderLoading");return C(),B(Vt,{"max-width":"30em"},{activator:k(({props:y})=>[l(Be,Q({id:"opdsButton",icon:"",size:"small",variant:"plain"},y,{onClick:e.loadOPDSURLs}),{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),_:2},1040,["onClick"])]),default:k(()=>[e.opdsURLs?(C(),Y("div",Wt,[x("h2",null,[l(W,{size:"x=small",class:"inline"},{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),l(n,{title:"v1.2","url-path":e.opdsURLs.v1},null,8,["url-path"]),l(n,{title:"v2.0","url-path":e.opdsURLs.v2,subtitle:"Experimental and not widely or well supported by clients"},null,8,["url-path"])])):(C(),B(u,{key:1}))]),_:1})}const Xt=U(Yt,[["render",qt],["__scopeId","data-v-5646b9a1"]]),Gt={name:"RepoFooter",data(){return{mdiOpenInNew:Le,mdiSourceRepository:nt}}},Zt={id:"repo",href:"https://github.com/ajslater/codex",title:"Codex Source Repository",target:"_blank"};function jt(e,s,a,d,t,o){return C(),Y("a",Zt,[l(W,{id:"repoIcon",size:"x-small"},{default:k(()=>[R(P(t.mdiSourceRepository),1)]),_:1}),R(" repository"),l(W,{color:e.$vuetify.theme.current.colors.iconsInactive,size:"x-small"},{default:k(()=>[R(P(t.mdiOpenInNew),1)]),_:1},8,["color"])])}const Jt=U(Gt,[["render",jt],["__scopeId","data-v-fae4fb39"]]),Qt=ae({app:Boolean,color:String,height:{type:[Number,String],default:"auto"},...ue(),...oe(),...ce(),...Pe(),...de(),...ne({tag:"footer"}),...ve()},"VFooter"),ze=le()({name:"VFooter",props:Qt(),setup(e,s){let{slots:a}=s;const{themeClasses:d}=ge(e),{backgroundColorClasses:t,backgroundColorStyles:o}=K(G(e,"color")),{borderClasses:n}=me(e),{elevationClasses:u}=he(e),{roundedClasses:y}=fe(e),b=M(32),{resizeRef:c}=lt(p=>{p.length&&(b.value=p[0].target.clientHeight)}),v=g(()=>e.height==="auto"?b.value:parseInt(e.height,10)),{layoutItemStyles:m,layoutIsReady:_}=De({id:e.name,order:g(()=>parseInt(e.order,10)),position:g(()=>"bottom"),layoutSize:v,elementSize:g(()=>e.height==="auto"?void 0:v.value),active:g(()=>e.app),absolute:G(e,"absolute")});return se(()=>l(e.tag,{ref:c,class:["v-footer",d.value,t.value,n.value,u.value,y.value,e.class],style:[o.value,e.app?m.value:{height:F(e.height)},e.style]},a)),e.app?_:{}}}),Kt={name:"VersionFooter",data(){return{mdiOpenInNew:Le,mdiContentCopy:st}},computed:{...ee(N,{versions:e=>e.versions}),...Ne(re,["isUserAdmin"]),outdated:function(){return this.isUserAdmin&&this.semverGreaterThan(this.versions.latest>this.versions.installed)},versionTitle:function(){return this.outdated?`v${this.versions.latest} is available`:"up to date"}},created(){this.loadVersions()},methods:{...te(N,["loadVersions"]),semverGreaterThan(e,s){try{if(!e||!s)return!1;const a=e.split("."),d=s.split(".");for(const[t,o]of a.entries())if(+o>+d[t])return!0}catch(a){console.debug("compare codex versions",e,">",s,a)}return!1}}},ea={id:"version"},ta={key:0,id:"latest"};function aa(e,s,a,d,t,o){return C(),B(ze,{id:"version-footer",title:o.versionTitle},{default:k(()=>[x("div",ea,"codex v"+P(e.versions.installed),1),o.outdated?(C(),Y("div",ta," codex v"+P(e.versions.latest)+" is available ",1)):O("",!0)]),_:1},8,["title"])}const oa=U(Kt,[["render",aa],["__scopeId","data-v-4787569d"]]);function na(e){let{rootEl:s,isSticky:a,layoutItemStyles:d}=e;const t=M(!1),o=M(0),n=g(()=>{const b=typeof t.value=="boolean"?"top":t.value;return[a.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[b]:F(o.value)}:{top:d.value.top}]});Ue(()=>{X(a,b=>{b?window.addEventListener("scroll",y,{passive:!0}):window.removeEventListener("scroll",y)},{immediate:!0})}),He(()=>{window.removeEventListener("scroll",y)});let u=0;function y(){const b=u>window.scrollY?"up":"down",c=s.value.getBoundingClientRect(),v=parseFloat(d.value.top??0),m=window.scrollY-Math.max(0,o.value-v),_=c.height+Math.max(o.value,v)-window.scrollY-window.innerHeight,p=parseFloat(getComputedStyle(s.value).getPropertyValue("--v-body-scroll-y"))||0;c.height<window.innerHeight-v?(t.value="top",o.value=v):b==="up"&&t.value==="bottom"||b==="down"&&t.value==="top"?(o.value=window.scrollY+c.top-p,t.value=!0):b==="down"&&_<=0?(o.value=0,t.value="bottom"):b==="up"&&m<=0&&(p?t.value!=="top"&&(o.value=-m+p+v,t.value="top"):(o.value=c.top+m,t.value="top")),u=window.scrollY}return{isStuck:t,stickyStyles:n}}const la=100,sa=20;function Ce(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function Te(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let s=0;for(let a=e.length-1;a>0;a--){if(e[a].t===e[a-1].t)continue;const d=Ce(s),t=(e[a].d-e[a-1].d)/(e[a].t-e[a-1].t);s+=(t-d)*Math.abs(t),a===e.length-1&&(s*=.5)}return Ce(s)*1e3}function ia(){const e={};function s(t){Array.from(t.changedTouches).forEach(o=>{(e[o.identifier]??(e[o.identifier]=new it(sa))).push([t.timeStamp,o])})}function a(t){Array.from(t.changedTouches).forEach(o=>{delete e[o.identifier]})}function d(t){var b;const o=(b=e[t])==null?void 0:b.values().reverse();if(!o)throw new Error(`No samples for touch id ${t}`);const n=o[0],u=[],y=[];for(const c of o){if(n[0]-c[0]>la)break;u.push({t:c[0],d:c[1].clientX}),y.push({t:c[0],d:c[1].clientY})}return{x:Te(u),y:Te(y),get direction(){const{x:c,y:v}=this,[m,_]=[Math.abs(c),Math.abs(v)];return m>_&&c>=0?"right":m>_&&c<=0?"left":_>m&&v>=0?"down":_>m&&v<=0?"up":ra()}}}return{addMovement:s,endTouch:a,getVelocity:d}}function ra(){throw new Error}function ua(e){let{el:s,isActive:a,isTemporary:d,width:t,touchless:o,position:n}=e;Ue(()=>{window.addEventListener("touchstart",E,{passive:!0}),window.addEventListener("touchmove",D,{passive:!1}),window.addEventListener("touchend",A,{passive:!0})}),He(()=>{window.removeEventListener("touchstart",E),window.removeEventListener("touchmove",D),window.removeEventListener("touchend",A)});const u=g(()=>["left","right"].includes(n.value)),{addMovement:y,endTouch:b,getVelocity:c}=ia();let v=!1;const m=M(!1),_=M(0),p=M(0);let T;function I(i,r){return(n.value==="left"?i:n.value==="right"?document.documentElement.clientWidth-i:n.value==="top"?i:n.value==="bottom"?document.documentElement.clientHeight-i:z())-(r?t.value:0)}function $(i){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const h=n.value==="left"?(i-p.value)/t.value:n.value==="right"?(document.documentElement.clientWidth-i-p.value)/t.value:n.value==="top"?(i-p.value)/t.value:n.value==="bottom"?(document.documentElement.clientHeight-i-p.value)/t.value:z();return r?Math.max(0,Math.min(1,h)):h}function E(i){if(o.value)return;const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY,f=25,S=n.value==="left"?r<f:n.value==="right"?r>document.documentElement.clientWidth-f:n.value==="top"?h<f:n.value==="bottom"?h>document.documentElement.clientHeight-f:z(),w=a.value&&(n.value==="left"?r<t.value:n.value==="right"?r>document.documentElement.clientWidth-t.value:n.value==="top"?h<t.value:n.value==="bottom"?h>document.documentElement.clientHeight-t.value:z());(S||w||a.value&&d.value)&&(T=[r,h],p.value=I(u.value?r:h,a.value),_.value=$(u.value?r:h),v=p.value>-20&&p.value<80,b(i),y(i))}function D(i){const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY;if(v){if(!i.cancelable){v=!1;return}const S=Math.abs(r-T[0]),w=Math.abs(h-T[1]);(u.value?S>w&&S>3:w>S&&w>3)?(m.value=!0,v=!1):(u.value?w:S)>3&&(v=!1)}if(!m.value)return;i.preventDefault(),y(i);const f=$(u.value?r:h,!1);_.value=Math.max(0,Math.min(1,f)),f>1?p.value=I(u.value?r:h,!0):f<0&&(p.value=I(u.value?r:h,!1))}function A(i){if(v=!1,!m.value)return;y(i),m.value=!1;const r=c(i.changedTouches[0].identifier),h=Math.abs(r.x),f=Math.abs(r.y);(u.value?h>f&&h>400:f>h&&f>3)?a.value=r.direction===({left:"right",right:"left",top:"down",bottom:"up"}[n.value]||z()):a.value=_.value>.5}const q=g(()=>m.value?{transform:n.value==="left"?`translateX(calc(-100% + ${_.value*t.value}px))`:n.value==="right"?`translateX(calc(100% - ${_.value*t.value}px))`:n.value==="top"?`translateY(calc(-100% + ${_.value*t.value}px))`:n.value==="bottom"?`translateY(calc(100% - ${_.value*t.value}px))`:z(),transition:"none"}:void 0);return J(m,()=>{var h,f;const i=((h=s.value)==null?void 0:h.style.transform)??null,r=((f=s.value)==null?void 0:f.style.transition)??null;rt(()=>{var S,w,H,Z;(w=s.value)==null||w.style.setProperty("transform",((S=q.value)==null?void 0:S.transform)||"none"),(Z=s.value)==null||Z.style.setProperty("transition",((H=q.value)==null?void 0:H.transition)||null)}),ut(()=>{var S,w;(S=s.value)==null||S.style.setProperty("transform",i),(w=s.value)==null||w.style.setProperty("transition",r)})}),{isDragging:m,dragProgress:_,dragStyles:q}}function z(){throw new Error}const ca=["start","end","left","right","top","bottom"],da=ae({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>ca.includes(e)},sticky:Boolean,...ue(),...oe(),...ct(),...dt({mobile:null}),...ce(),...Pe(),...de(),...ne({tag:"nav"}),...ve()},"VNavigationDrawer"),va=le()({name:"VNavigationDrawer",props:da(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,s){let{attrs:a,emit:d,slots:t}=s;const{isRtl:o}=$e(),{themeClasses:n}=ge(e),{borderClasses:u}=me(e),{backgroundColorClasses:y,backgroundColorStyles:b}=K(G(e,"color")),{elevationClasses:c}=he(e),{displayClasses:v,mobile:m}=vt(e),{roundedClasses:_}=fe(e),p=mt(),T=ht(e,"modelValue",null,V=>!!V),{ssrBootStyles:I}=ft(),{scopeId:$}=gt(),E=yt(),D=M(!1),{runOpenDelay:A,runCloseDelay:q}=wt(e,V=>{D.value=V}),i=g(()=>e.rail&&e.expandOnHover&&D.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),r=g(()=>bt(e.location,o.value)),h=g(()=>e.persistent),f=g(()=>!e.permanent&&(m.value||e.temporary)),S=g(()=>e.sticky&&!f.value&&r.value!=="bottom");J(()=>e.expandOnHover&&e.rail!=null,()=>{X(D,V=>d("update:rail",!V))}),J(()=>!e.disableResizeWatcher,()=>{X(f,V=>!e.permanent&&St(()=>T.value=!V))}),J(()=>!e.disableRouteWatcher&&!!p,()=>{X(p.currentRoute,()=>f.value&&(T.value=!1))}),X(()=>e.permanent,V=>{V&&(T.value=!0)}),e.modelValue==null&&!f.value&&(T.value=e.permanent||!m.value);const{isDragging:w,dragProgress:H}=ua({el:E,isActive:T,isTemporary:f,width:i,touchless:G(e,"touchless"),position:r}),Z=g(()=>{const V=f.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):i.value;return w.value?V*H.value:V}),Fe=g(()=>["top","bottom"].includes(e.location)?0:i.value),{layoutItemStyles:ye,layoutItemScrimStyles:Ye,layoutIsReady:We}=De({id:e.name,order:g(()=>parseInt(e.order,10)),position:r,layoutSize:Z,elementSize:Fe,active:g(()=>T.value||w.value),disableTransitions:g(()=>w.value),absolute:g(()=>e.absolute||S.value&&typeof be.value!="string")}),{isStuck:be,stickyStyles:qe}=na({rootEl:E,isSticky:S,layoutItemStyles:ye}),_e=K(g(()=>typeof e.scrim=="string"?e.scrim:null)),Xe=g(()=>({...w.value?{opacity:H.value*.2,transition:"none"}:void 0,...Ye.value}));return Oe({VList:{bgColor:"transparent"}}),se(()=>{const V=t.image||e.image;return l(pt,null,[l(e.tag,Q({ref:E,onMouseenter:A,onMouseleave:q,class:["v-navigation-drawer",`v-navigation-drawer--${r.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":D.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":f.value,"v-navigation-drawer--persistent":h.value,"v-navigation-drawer--active":T.value,"v-navigation-drawer--sticky":S.value},n.value,y.value,u.value,v.value,c.value,_.value,e.class],style:[b.value,ye.value,I.value,qe.value,e.style,["top","bottom"].includes(r.value)?{height:"auto"}:{}]},$,a),{default:()=>{var pe,we,Se;return[V&&l("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):l(Me,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&l("div",{class:"v-navigation-drawer__prepend"},[(pe=t.prepend)==null?void 0:pe.call(t)]),l("div",{class:"v-navigation-drawer__content"},[(we=t.default)==null?void 0:we.call(t)]),t.append&&l("div",{class:"v-navigation-drawer__append"},[(Se=t.append)==null?void 0:Se.call(t)])]}}),l(_t,{name:"fade-transition"},{default:()=>[f.value&&(w.value||T.value)&&!!e.scrim&&l("div",Q({class:["v-navigation-drawer__scrim",_e.backgroundColorClasses.value],style:[Xe.value,_e.backgroundColorStyles.value],onClick:()=>{h.value||(T.value=!1)}},$),null)]})])}),We.then(()=>({isStuck:be}))}}),ma=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-SQytza6T.js").then(e=>e.dD),__vite__mapDeps([0,1])))),ha={name:"SettingsDrawer",components:{AuthMenu:Ct,OPDSDialog:Xt,RepoFooter:Jt,VersionFooter:oa},props:{title:{type:String,required:!0}},data(){return{AdminMenu:ma}},computed:{...Ne(re,["isUserAdmin","isAuthorized"]),...ee(N,{isSettingsDrawerOpen:e=>e.isSettingsDrawerOpen}),open:{get(){return this.isSettingsDrawerOpen||!this.isAuthorized},set(e){this.setSettingsDrawerOpen(e)}}},methods:{...te(N,["setSettingsDrawerOpen"])}},fa={class:"settingsDrawerContainer"},ga={id:"topBlock"},ya={class:"settingsHeader"},ba={id:"scrollFooter",class:"footer"};function _a(e,s,a,d,t,o){const n=L("AuthMenu"),u=L("OPDSDialog"),y=L("RepoFooter"),b=L("VersionFooter");return C(),B(va,{modelValue:o.open,"onUpdate:modelValue":s[0]||(s[0]=c=>o.open=c),"disable-route-watcher":"",location:"right",touchless:""},{append:k(()=>[l(ze,{id:"bottomFooter",class:"footer"},{default:k(()=>[l(b)]),_:1})]),default:k(()=>[x("div",fa,[x("div",ga,[x("header",ya,[x("h3",null,P(a.title),1)]),l(ie),e.isAuthorized?xe(e.$slots,"panel",{key:0},void 0,!0):O("",!0),e.isAuthorized?(C(),B(ie,{key:1})):O("",!0),l(n),e.isUserAdmin?(C(),B(Ie(t.AdminMenu),{key:2})):O("",!0),l(ie)]),x("div",ba,[e.isAuthorized?(C(),B(u,{key:0})):O("",!0),l(y)])])]),_:3},8,["modelValue"])}const Pa=U(ha,[["render",_a],["__scopeId","data-v-0412ab42"]]);export{Ta as S,It as V,Va as a,Pa as b,xt as c,va as d};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/admin-drawer-panel-Crj9u2NV.js","assets/admin-drawer-panel-Dm28c2tG.css"])))=>i.map(i=>d[i]);
2
- import{_ as Ve,m as Pe,j as xe}from"./main-DArXKRWW.js";import{_ as U,$ as C,Y as D,bn as Ge,aG as Ze,a0 as k,bA as Be,ar as Q,aq as De,bF as Re,bG as Ee,cj as je,W as ee,q as re,X as te,E as N,Z as L,T as l,al as R,aH as P,aQ as W,aI as Ie,aJ as O,aY as Je,F as ae,N as oe,ax as ne,P as le,S as se,ck as ue,cd as ce,bf as de,O as ve,az as K,aA as G,cl as me,cg as he,bg as fe,Q as ge,R as $e,s as M,h as g,aC as Oe,c9 as Me,bh as j,L as F,bS as Qe,cm as Ae,cn as Ke,co as et,aF as Y,aP as B,aU as tt,bY as at,cp as ot,aN as Le,cq as nt,J as lt,cr as st,aE as Ne,cs as Ue,a as X,o as He,ct as it,cu as J,w as rt,cv as ut,cw as ct,cx as dt,cy as vt,cz as mt,av as ht,c6 as ft,aB as gt,r as yt,cA as bt,cB as _t,V as pt,cC as wt,n as St,aW as ie}from"./admin-drawer-panel-Crj9u2NV.js";import{P as kt,a as Ct}from"./unauthorized-BY4OkaUc.js";import{c as Tt}from"./copy-to-clipboard-DoUvDJVx.js";import{V as Vt}from"./VDialog-BXw6XFu7.js";const Pt={name:"ScaleButton",props:{scale:{type:Boolean,default:!1}},computed:{breakPoint(){return this.$vuetify.display.xs},density(){return this.breakPoint?"compact":"default"}}};function xt(e,s,a,d,t,o){return C(),D(De,{density:o.density},Ge({_:2},[Ze(e.$slots,(n,u)=>({name:u,fn:k(y=>[Be(e.$slots,u,Q({props:n},y))])}))]),1032,["density"])}const Bt=U(Pt,[["render",xt]]),ke=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-Crj9u2NV.js").then(e=>e.dB),__vite__mapDeps([0,1])))),Dt={name:"SettingsDrawerButton",components:{AdminSettingsButtonProgress:ke,ScaleButton:Bt},data(){return{mdiMenu:je,AdminSettingsButtonProgress:ke}},computed:{...ee(re,["isUserAdmin"])},methods:{...te(N,["setSettingsDrawerOpen"]),onClick(){this.setSettingsDrawerOpen(!0)}}};function Rt(e,s,a,d,t,o){const n=L("ScaleButton");return C(),D(n,{id:"settingsDrawerButton",variant:"plain",icon:"",title:"Settings",onClick:Je(o.onClick,["prevent"])},{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiMenu),1)]),_:1}),e.isUserAdmin?(C(),D(Ie(t.AdminSettingsButtonProgress),{key:0})):O("",!0)]),_:1},8,["onClick"])}const Ta=U(Dt,[["render",Rt],["__scopeId","data-v-cdf6ad8a"]]),Et=ae({text:String,...oe(),...ne()},"VToolbarTitle"),It=le()({name:"VToolbarTitle",props:Et(),setup(e,s){let{slots:a}=s;return se(()=>{const d=!!(a.default||a.text||e.text);return l(e.tag,{class:["v-toolbar-title",e.class],style:e.style},{default:()=>{var t;return[d&&l("div",{class:"v-toolbar-title__placeholder"},[a.text?a.text():e.text,(t=a.default)==null?void 0:t.call(a)])]}})}),{}}}),$t=[null,"prominent","default","comfortable","compact"],Ot=ae({absolute:Boolean,collapse:Boolean,color:String,density:{type:String,default:"default",validator:e=>$t.includes(e)},extended:Boolean,extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...ue(),...oe(),...ce(),...de(),...ne({tag:"header"}),...ve()},"VToolbar"),Va=le()({name:"VToolbar",props:Ot(),setup(e,s){var _;let{slots:a}=s;const{backgroundColorClasses:d,backgroundColorStyles:t}=K(G(e,"color")),{borderClasses:o}=me(e),{elevationClasses:n}=he(e),{roundedClasses:u}=fe(e),{themeClasses:y}=ge(e),{rtlClasses:b}=$e(),c=M(!!(e.extended||(_=a.extension)!=null&&_.call(a))),v=g(()=>parseInt(Number(e.height)+(e.density==="prominent"?Number(e.height):0)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0),10)),m=g(()=>c.value?parseInt(Number(e.extensionHeight)+(e.density==="prominent"?Number(e.extensionHeight):0)-(e.density==="comfortable"?4:0)-(e.density==="compact"?8:0),10):0);return Oe({VBtn:{variant:"text"}}),se(()=>{var $;const p=!!(e.title||a.title),T=!!(a.image||e.image),I=($=a.extension)==null?void 0:$.call(a);return c.value=!!(e.extended||I),l(e.tag,{class:["v-toolbar",{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},d.value,o.value,n.value,u.value,y.value,b.value,e.class],style:[t.value,e.style]},{default:()=>[T&&l("div",{key:"image",class:"v-toolbar__image"},[a.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},a.image):l(Me,{key:"image-img",cover:!0,src:e.image},null)]),l(j,{defaults:{VTabs:{height:F(v.value)}}},{default:()=>{var E,x,A;return[l("div",{class:"v-toolbar__content",style:{height:F(v.value)}},[a.prepend&&l("div",{class:"v-toolbar__prepend"},[(E=a.prepend)==null?void 0:E.call(a)]),p&&l(It,{key:"title",text:e.title},{text:a.title}),(x=a.default)==null?void 0:x.call(a),a.append&&l("div",{class:"v-toolbar__append"},[(A=a.append)==null?void 0:A.call(a)])])]}}),l(j,{defaults:{VTabs:{height:F(m.value)}}},{default:()=>[l(Qe,null,{default:()=>[c.value&&l("div",{class:"v-toolbar__extension",style:{height:F(m.value)}},[I])]})]})]})}),{contentHeight:v,extensionHeight:m}}}),Mt={name:"OPDSUrl",props:{title:{type:String,required:!0},subtitle:{type:String,default:void 0},urlPath:{type:String,required:!0}},data(){return{mdiRss:Ae,showTooltip:{show:!1}}},computed:{clipBoardEnabled(){return location.protocol=="https:"},clipBoardIcon(){return this.showTooltip.show?Ke:et},tooltip(){return this.clipBoardEnabled},url(){return window.origin+this.urlPath}},methods:{onClickURL(){this.clipBoardEnabled&&Tt(this.url,this.showTooltip)}}},At=["title"],Lt={key:0},Nt={class:"copied"},Ut={key:1,class:"subtitle"},Ht={class:"opdsUrl"};function zt(e,s,a,d,t,o){return C(),Y("div",{class:"opdsVersion",title:o.tooltip,onClick:s[0]||(s[0]=(...n)=>o.onClickURL&&o.onClickURL(...n))},[B("h3",null,[R(P(a.title)+" ",1),o.clipBoardEnabled?(C(),Y("span",Lt,[l(W,{class:"clipBoardIcon",size:"small"},{default:k(()=>[R(P(o.clipBoardIcon),1)]),_:1}),l(ot,null,{default:k(()=>[tt(B("span",Nt,"Copied",512),[[at,t.showTooltip.show]])]),_:1})])):O("",!0),a.subtitle?(C(),Y("span",Ut,P(a.subtitle),1)):O("",!0)]),B("div",Ht,P(o.url),1)],8,At)}const Ft=U(Mt,[["render",zt],["__scopeId","data-v-b8e2453a"]]),Yt={name:"OPDSDialog",components:{OPDSUrl:Ft,PlaceholderLoading:kt},data(){return{mdiRss:Ae}},computed:{...ee(N,{opdsURLs:e=>e.opdsURLs})},methods:{...te(N,["loadOPDSURLs"])}},Wt={key:0,id:"opds"};function qt(e,s,a,d,t,o){const n=L("OPDSUrl"),u=L("PlaceholderLoading");return C(),D(Vt,{"max-width":"30em"},{activator:k(({props:y})=>[l(De,Q({id:"opdsButton",icon:"",size:"small",variant:"plain"},y,{onClick:e.loadOPDSURLs}),{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),_:2},1040,["onClick"])]),default:k(()=>[e.opdsURLs?(C(),Y("div",Wt,[B("h2",null,[l(W,{size:"x=small",class:"inline"},{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),l(n,{title:"v1.2","url-path":e.opdsURLs.v1},null,8,["url-path"]),l(n,{title:"v2.0","url-path":e.opdsURLs.v2,subtitle:"Experimental and not widely or well supported by clients"},null,8,["url-path"])])):(C(),D(u,{key:1}))]),_:1})}const Xt=U(Yt,[["render",qt],["__scopeId","data-v-5646b9a1"]]),Gt={name:"RepoFooter",data(){return{mdiOpenInNew:Le,mdiSourceRepository:nt}}},Zt={id:"repo",href:"https://github.com/ajslater/codex",title:"Codex Source Repository",target:"_blank"};function jt(e,s,a,d,t,o){return C(),Y("a",Zt,[l(W,{id:"repoIcon",size:"x-small"},{default:k(()=>[R(P(t.mdiSourceRepository),1)]),_:1}),R(" repository"),l(W,{color:e.$vuetify.theme.current.colors.iconsInactive,size:"x-small"},{default:k(()=>[R(P(t.mdiOpenInNew),1)]),_:1},8,["color"])])}const Jt=U(Gt,[["render",jt],["__scopeId","data-v-fae4fb39"]]),Qt=ae({app:Boolean,color:String,height:{type:[Number,String],default:"auto"},...ue(),...oe(),...ce(),...Pe(),...de(),...ne({tag:"footer"}),...ve()},"VFooter"),ze=le()({name:"VFooter",props:Qt(),setup(e,s){let{slots:a}=s;const{themeClasses:d}=ge(e),{backgroundColorClasses:t,backgroundColorStyles:o}=K(G(e,"color")),{borderClasses:n}=me(e),{elevationClasses:u}=he(e),{roundedClasses:y}=fe(e),b=M(32),{resizeRef:c}=lt(p=>{p.length&&(b.value=p[0].target.clientHeight)}),v=g(()=>e.height==="auto"?b.value:parseInt(e.height,10)),{layoutItemStyles:m,layoutIsReady:_}=xe({id:e.name,order:g(()=>parseInt(e.order,10)),position:g(()=>"bottom"),layoutSize:v,elementSize:g(()=>e.height==="auto"?void 0:v.value),active:g(()=>e.app),absolute:G(e,"absolute")});return se(()=>l(e.tag,{ref:c,class:["v-footer",d.value,t.value,n.value,u.value,y.value,e.class],style:[o.value,e.app?m.value:{height:F(e.height)},e.style]},a)),e.app?_:{}}}),Kt={name:"VersionFooter",data(){return{mdiOpenInNew:Le,mdiContentCopy:st}},computed:{...ee(N,{versions:e=>e.versions}),...Ne(re,["isUserAdmin"]),outdated:function(){return this.isUserAdmin&&this.semverGreaterThan(this.versions.latest>this.versions.installed)},versionTitle:function(){return this.outdated?`v${this.versions.latest} is available`:"up to date"}},created(){this.loadVersions()},methods:{...te(N,["loadVersions"]),semverGreaterThan(e,s){try{if(!e||!s)return!1;const a=e.split("."),d=s.split(".");for(const[t,o]of a.entries())if(+o>+d[t])return!0}catch(a){console.debug("compare codex versions",e,">",s,a)}return!1}}},ea={id:"version"},ta={key:0,id:"latest"};function aa(e,s,a,d,t,o){return C(),D(ze,{id:"version-footer",title:o.versionTitle},{default:k(()=>[B("div",ea,"codex v"+P(e.versions.installed),1),o.outdated?(C(),Y("div",ta," codex v"+P(e.versions.latest)+" is available ",1)):O("",!0)]),_:1},8,["title"])}const oa=U(Kt,[["render",aa],["__scopeId","data-v-4787569d"]]);function na(e){let{rootEl:s,isSticky:a,layoutItemStyles:d}=e;const t=M(!1),o=M(0),n=g(()=>{const b=typeof t.value=="boolean"?"top":t.value;return[a.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[b]:F(o.value)}:{top:d.value.top}]});Ue(()=>{X(a,b=>{b?window.addEventListener("scroll",y,{passive:!0}):window.removeEventListener("scroll",y)},{immediate:!0})}),He(()=>{window.removeEventListener("scroll",y)});let u=0;function y(){const b=u>window.scrollY?"up":"down",c=s.value.getBoundingClientRect(),v=parseFloat(d.value.top??0),m=window.scrollY-Math.max(0,o.value-v),_=c.height+Math.max(o.value,v)-window.scrollY-window.innerHeight,p=parseFloat(getComputedStyle(s.value).getPropertyValue("--v-body-scroll-y"))||0;c.height<window.innerHeight-v?(t.value="top",o.value=v):b==="up"&&t.value==="bottom"||b==="down"&&t.value==="top"?(o.value=window.scrollY+c.top-p,t.value=!0):b==="down"&&_<=0?(o.value=0,t.value="bottom"):b==="up"&&m<=0&&(p?t.value!=="top"&&(o.value=-m+p+v,t.value="top"):(o.value=c.top+m,t.value="top")),u=window.scrollY}return{isStuck:t,stickyStyles:n}}const la=100,sa=20;function Ce(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function Te(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let s=0;for(let a=e.length-1;a>0;a--){if(e[a].t===e[a-1].t)continue;const d=Ce(s),t=(e[a].d-e[a-1].d)/(e[a].t-e[a-1].t);s+=(t-d)*Math.abs(t),a===e.length-1&&(s*=.5)}return Ce(s)*1e3}function ia(){const e={};function s(t){Array.from(t.changedTouches).forEach(o=>{(e[o.identifier]??(e[o.identifier]=new it(sa))).push([t.timeStamp,o])})}function a(t){Array.from(t.changedTouches).forEach(o=>{delete e[o.identifier]})}function d(t){var b;const o=(b=e[t])==null?void 0:b.values().reverse();if(!o)throw new Error(`No samples for touch id ${t}`);const n=o[0],u=[],y=[];for(const c of o){if(n[0]-c[0]>la)break;u.push({t:c[0],d:c[1].clientX}),y.push({t:c[0],d:c[1].clientY})}return{x:Te(u),y:Te(y),get direction(){const{x:c,y:v}=this,[m,_]=[Math.abs(c),Math.abs(v)];return m>_&&c>=0?"right":m>_&&c<=0?"left":_>m&&v>=0?"down":_>m&&v<=0?"up":ra()}}}return{addMovement:s,endTouch:a,getVelocity:d}}function ra(){throw new Error}function ua(e){let{el:s,isActive:a,isTemporary:d,width:t,touchless:o,position:n}=e;Ue(()=>{window.addEventListener("touchstart",E,{passive:!0}),window.addEventListener("touchmove",x,{passive:!1}),window.addEventListener("touchend",A,{passive:!0})}),He(()=>{window.removeEventListener("touchstart",E),window.removeEventListener("touchmove",x),window.removeEventListener("touchend",A)});const u=g(()=>["left","right"].includes(n.value)),{addMovement:y,endTouch:b,getVelocity:c}=ia();let v=!1;const m=M(!1),_=M(0),p=M(0);let T;function I(i,r){return(n.value==="left"?i:n.value==="right"?document.documentElement.clientWidth-i:n.value==="top"?i:n.value==="bottom"?document.documentElement.clientHeight-i:z())-(r?t.value:0)}function $(i){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const h=n.value==="left"?(i-p.value)/t.value:n.value==="right"?(document.documentElement.clientWidth-i-p.value)/t.value:n.value==="top"?(i-p.value)/t.value:n.value==="bottom"?(document.documentElement.clientHeight-i-p.value)/t.value:z();return r?Math.max(0,Math.min(1,h)):h}function E(i){if(o.value)return;const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY,f=25,S=n.value==="left"?r<f:n.value==="right"?r>document.documentElement.clientWidth-f:n.value==="top"?h<f:n.value==="bottom"?h>document.documentElement.clientHeight-f:z(),w=a.value&&(n.value==="left"?r<t.value:n.value==="right"?r>document.documentElement.clientWidth-t.value:n.value==="top"?h<t.value:n.value==="bottom"?h>document.documentElement.clientHeight-t.value:z());(S||w||a.value&&d.value)&&(T=[r,h],p.value=I(u.value?r:h,a.value),_.value=$(u.value?r:h),v=p.value>-20&&p.value<80,b(i),y(i))}function x(i){const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY;if(v){if(!i.cancelable){v=!1;return}const S=Math.abs(r-T[0]),w=Math.abs(h-T[1]);(u.value?S>w&&S>3:w>S&&w>3)?(m.value=!0,v=!1):(u.value?w:S)>3&&(v=!1)}if(!m.value)return;i.preventDefault(),y(i);const f=$(u.value?r:h,!1);_.value=Math.max(0,Math.min(1,f)),f>1?p.value=I(u.value?r:h,!0):f<0&&(p.value=I(u.value?r:h,!1))}function A(i){if(v=!1,!m.value)return;y(i),m.value=!1;const r=c(i.changedTouches[0].identifier),h=Math.abs(r.x),f=Math.abs(r.y);(u.value?h>f&&h>400:f>h&&f>3)?a.value=r.direction===({left:"right",right:"left",top:"down",bottom:"up"}[n.value]||z()):a.value=_.value>.5}const q=g(()=>m.value?{transform:n.value==="left"?`translateX(calc(-100% + ${_.value*t.value}px))`:n.value==="right"?`translateX(calc(100% - ${_.value*t.value}px))`:n.value==="top"?`translateY(calc(-100% + ${_.value*t.value}px))`:n.value==="bottom"?`translateY(calc(100% - ${_.value*t.value}px))`:z(),transition:"none"}:void 0);return J(m,()=>{var h,f;const i=((h=s.value)==null?void 0:h.style.transform)??null,r=((f=s.value)==null?void 0:f.style.transition)??null;rt(()=>{var S,w,H,Z;(w=s.value)==null||w.style.setProperty("transform",((S=q.value)==null?void 0:S.transform)||"none"),(Z=s.value)==null||Z.style.setProperty("transition",((H=q.value)==null?void 0:H.transition)||null)}),ut(()=>{var S,w;(S=s.value)==null||S.style.setProperty("transform",i),(w=s.value)==null||w.style.setProperty("transition",r)})}),{isDragging:m,dragProgress:_,dragStyles:q}}function z(){throw new Error}const ca=["start","end","left","right","top","bottom"],da=ae({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>ca.includes(e)},sticky:Boolean,...ue(),...oe(),...ct(),...dt({mobile:null}),...ce(),...Pe(),...de(),...ne({tag:"nav"}),...ve()},"VNavigationDrawer"),va=le()({name:"VNavigationDrawer",props:da(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,s){let{attrs:a,emit:d,slots:t}=s;const{isRtl:o}=$e(),{themeClasses:n}=ge(e),{borderClasses:u}=me(e),{backgroundColorClasses:y,backgroundColorStyles:b}=K(G(e,"color")),{elevationClasses:c}=he(e),{displayClasses:v,mobile:m}=vt(e),{roundedClasses:_}=fe(e),p=mt(),T=ht(e,"modelValue",null,V=>!!V),{ssrBootStyles:I}=ft(),{scopeId:$}=gt(),E=yt(),x=M(!1),{runOpenDelay:A,runCloseDelay:q}=wt(e,V=>{x.value=V}),i=g(()=>e.rail&&e.expandOnHover&&x.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),r=g(()=>bt(e.location,o.value)),h=g(()=>e.persistent),f=g(()=>!e.permanent&&(m.value||e.temporary)),S=g(()=>e.sticky&&!f.value&&r.value!=="bottom");J(()=>e.expandOnHover&&e.rail!=null,()=>{X(x,V=>d("update:rail",!V))}),J(()=>!e.disableResizeWatcher,()=>{X(f,V=>!e.permanent&&St(()=>T.value=!V))}),J(()=>!e.disableRouteWatcher&&!!p,()=>{X(p.currentRoute,()=>f.value&&(T.value=!1))}),X(()=>e.permanent,V=>{V&&(T.value=!0)}),e.modelValue==null&&!f.value&&(T.value=e.permanent||!m.value);const{isDragging:w,dragProgress:H}=ua({el:E,isActive:T,isTemporary:f,width:i,touchless:G(e,"touchless"),position:r}),Z=g(()=>{const V=f.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):i.value;return w.value?V*H.value:V}),Fe=g(()=>["top","bottom"].includes(e.location)?0:i.value),{layoutItemStyles:ye,layoutItemScrimStyles:Ye,layoutIsReady:We}=xe({id:e.name,order:g(()=>parseInt(e.order,10)),position:r,layoutSize:Z,elementSize:Fe,active:g(()=>T.value||w.value),disableTransitions:g(()=>w.value),absolute:g(()=>e.absolute||S.value&&typeof be.value!="string")}),{isStuck:be,stickyStyles:qe}=na({rootEl:E,isSticky:S,layoutItemStyles:ye}),_e=K(g(()=>typeof e.scrim=="string"?e.scrim:null)),Xe=g(()=>({...w.value?{opacity:H.value*.2,transition:"none"}:void 0,...Ye.value}));return Oe({VList:{bgColor:"transparent"}}),se(()=>{const V=t.image||e.image;return l(pt,null,[l(e.tag,Q({ref:E,onMouseenter:A,onMouseleave:q,class:["v-navigation-drawer",`v-navigation-drawer--${r.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":x.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":f.value,"v-navigation-drawer--persistent":h.value,"v-navigation-drawer--active":T.value,"v-navigation-drawer--sticky":S.value},n.value,y.value,u.value,v.value,c.value,_.value,e.class],style:[b.value,ye.value,I.value,qe.value,e.style,["top","bottom"].includes(r.value)?{height:"auto"}:{}]},$,a),{default:()=>{var pe,we,Se;return[V&&l("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):l(Me,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&l("div",{class:"v-navigation-drawer__prepend"},[(pe=t.prepend)==null?void 0:pe.call(t)]),l("div",{class:"v-navigation-drawer__content"},[(we=t.default)==null?void 0:we.call(t)]),t.append&&l("div",{class:"v-navigation-drawer__append"},[(Se=t.append)==null?void 0:Se.call(t)])]}}),l(_t,{name:"fade-transition"},{default:()=>[f.value&&(w.value||T.value)&&!!e.scrim&&l("div",Q({class:["v-navigation-drawer__scrim",_e.backgroundColorClasses.value],style:[Xe.value,_e.backgroundColorStyles.value],onClick:()=>{h.value||(T.value=!1)}},$),null)]})])}),We.then(()=>({isStuck:be}))}}),ma=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-Crj9u2NV.js").then(e=>e.dC),__vite__mapDeps([0,1])))),ha={name:"SettingsDrawer",components:{AuthMenu:Ct,OPDSDialog:Xt,RepoFooter:Jt,VersionFooter:oa},props:{title:{type:String,required:!0}},data(){return{AdminMenu:ma}},computed:{...Ne(re,["isUserAdmin","isAuthorized"]),...ee(N,{isSettingsDrawerOpen:e=>e.isSettingsDrawerOpen}),open:{get(){return this.isSettingsDrawerOpen||!this.isAuthorized},set(e){this.setSettingsDrawerOpen(e)}}},methods:{...te(N,["setSettingsDrawerOpen"])}},fa={class:"settingsDrawerContainer"},ga={id:"topBlock"},ya={class:"settingsHeader"},ba={id:"scrollFooter",class:"footer"};function _a(e,s,a,d,t,o){const n=L("AuthMenu"),u=L("OPDSDialog"),y=L("RepoFooter"),b=L("VersionFooter");return C(),D(va,{modelValue:o.open,"onUpdate:modelValue":s[0]||(s[0]=c=>o.open=c),"disable-route-watcher":"",location:"right",touchless:""},{append:k(()=>[l(ze,{id:"bottomFooter",class:"footer"},{default:k(()=>[l(b)]),_:1})]),default:k(()=>[B("div",fa,[B("div",ga,[B("header",ya,[B("h3",null,P(a.title),1)]),l(ie),e.isAuthorized?Be(e.$slots,"panel",{key:0},void 0,!0):O("",!0),e.isAuthorized?(C(),D(ie,{key:1})):O("",!0),l(n),e.isUserAdmin?(C(),D(Ie(t.AdminMenu),{key:2})):O("",!0),l(ie)]),B("div",ba,[e.isAuthorized?(C(),D(u,{key:0})):O("",!0),l(y)])])]),_:3},8,["modelValue"])}const Pa=U(ha,[["render",_a],["__scopeId","data-v-0412ab42"]]);export{Ta as S,It as V,Va as a,Pa as b,Bt as c,va as d};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/admin-drawer-panel-SQytza6T.js","assets/admin-drawer-panel-DOrhl9Nb.css"])))=>i.map(i=>d[i]);
2
+ import{_ as Ve,m as Pe,j as De}from"./main-EAqCu0p6.js";import{_ as U,$ as C,Y as B,bn as Ge,aG as Ze,a0 as k,bA as xe,ar as Q,aq as Be,bF as Re,bG as Ee,cj as je,W as ee,q as re,X as te,E as N,Z as L,T as l,al as R,aH as P,aQ as W,aI as Ie,aJ as O,aY as Je,F as ae,N as oe,ax as ne,P as le,S as se,ck as ue,cd as ce,bf as de,O as ve,az as K,aA as G,cl as me,cg as he,bg as fe,Q as ge,R as $e,s as M,h as g,aC as Oe,c9 as Me,bh as j,L as F,bS as Qe,cm as Ae,cn as Ke,co as et,aF as Y,aP as x,aU as tt,bY as at,cp as ot,aN as Le,cq as nt,J as lt,cr as st,aE as Ne,cs as Ue,a as X,o as He,ct as it,cu as J,w as rt,cv as ut,cw as ct,cx as dt,cy as vt,cz as mt,av as ht,c6 as ft,aB as gt,r as yt,cA as bt,cB as _t,V as pt,cC as wt,n as St,aW as ie}from"./admin-drawer-panel-SQytza6T.js";import{P as kt,a as Ct}from"./unauthorized-DpTUrdQV.js";import{c as Tt}from"./copy-to-clipboard-DoUvDJVx.js";import{V as Vt}from"./VDialog-DO_IeNl2.js";const Pt={name:"ScaleButton",props:{scale:{type:Boolean,default:!1}},computed:{breakPoint(){return this.$vuetify.display.xs},density(){return this.breakPoint?"compact":"default"}}};function Dt(e,s,a,d,t,o){return C(),B(Be,{density:o.density},Ge({_:2},[Ze(e.$slots,(n,u)=>({name:u,fn:k(y=>[xe(e.$slots,u,Q({props:n},y))])}))]),1032,["density"])}const xt=U(Pt,[["render",Dt]]),ke=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-SQytza6T.js").then(e=>e.dC),__vite__mapDeps([0,1])))),Bt={name:"SettingsDrawerButton",components:{AdminSettingsButtonProgress:ke,ScaleButton:xt},data(){return{mdiMenu:je,AdminSettingsButtonProgress:ke}},computed:{...ee(re,["isUserAdmin"])},methods:{...te(N,["setSettingsDrawerOpen"]),onClick(){this.setSettingsDrawerOpen(!0)}}};function Rt(e,s,a,d,t,o){const n=L("ScaleButton");return C(),B(n,{id:"settingsDrawerButton",variant:"plain",icon:"",title:"Settings",onClick:Je(o.onClick,["prevent"])},{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiMenu),1)]),_:1}),e.isUserAdmin?(C(),B(Ie(t.AdminSettingsButtonProgress),{key:0})):O("",!0)]),_:1},8,["onClick"])}const Ta=U(Bt,[["render",Rt],["__scopeId","data-v-cdf6ad8a"]]),Et=ae({text:String,...oe(),...ne()},"VToolbarTitle"),It=le()({name:"VToolbarTitle",props:Et(),setup(e,s){let{slots:a}=s;return se(()=>{const d=!!(a.default||a.text||e.text);return l(e.tag,{class:["v-toolbar-title",e.class],style:e.style},{default:()=>{var t;return[d&&l("div",{class:"v-toolbar-title__placeholder"},[a.text?a.text():e.text,(t=a.default)==null?void 0:t.call(a)])]}})}),{}}}),$t=[null,"prominent","default","comfortable","compact"],Ot=ae({absolute:Boolean,collapse:Boolean,color:String,density:{type:String,default:"default",validator:e=>$t.includes(e)},extended:Boolean,extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...ue(),...oe(),...ce(),...de(),...ne({tag:"header"}),...ve()},"VToolbar"),Va=le()({name:"VToolbar",props:Ot(),setup(e,s){var _;let{slots:a}=s;const{backgroundColorClasses:d,backgroundColorStyles:t}=K(G(e,"color")),{borderClasses:o}=me(e),{elevationClasses:n}=he(e),{roundedClasses:u}=fe(e),{themeClasses:y}=ge(e),{rtlClasses:b}=$e(),c=M(!!(e.extended||(_=a.extension)!=null&&_.call(a))),v=g(()=>parseInt(Number(e.height)+(e.density==="prominent"?Number(e.height):0)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0),10)),m=g(()=>c.value?parseInt(Number(e.extensionHeight)+(e.density==="prominent"?Number(e.extensionHeight):0)-(e.density==="comfortable"?4:0)-(e.density==="compact"?8:0),10):0);return Oe({VBtn:{variant:"text"}}),se(()=>{var $;const p=!!(e.title||a.title),T=!!(a.image||e.image),I=($=a.extension)==null?void 0:$.call(a);return c.value=!!(e.extended||I),l(e.tag,{class:["v-toolbar",{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},d.value,o.value,n.value,u.value,y.value,b.value,e.class],style:[t.value,e.style]},{default:()=>[T&&l("div",{key:"image",class:"v-toolbar__image"},[a.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},a.image):l(Me,{key:"image-img",cover:!0,src:e.image},null)]),l(j,{defaults:{VTabs:{height:F(v.value)}}},{default:()=>{var E,D,A;return[l("div",{class:"v-toolbar__content",style:{height:F(v.value)}},[a.prepend&&l("div",{class:"v-toolbar__prepend"},[(E=a.prepend)==null?void 0:E.call(a)]),p&&l(It,{key:"title",text:e.title},{text:a.title}),(D=a.default)==null?void 0:D.call(a),a.append&&l("div",{class:"v-toolbar__append"},[(A=a.append)==null?void 0:A.call(a)])])]}}),l(j,{defaults:{VTabs:{height:F(m.value)}}},{default:()=>[l(Qe,null,{default:()=>[c.value&&l("div",{class:"v-toolbar__extension",style:{height:F(m.value)}},[I])]})]})]})}),{contentHeight:v,extensionHeight:m}}}),Mt={name:"OPDSUrl",props:{title:{type:String,required:!0},subtitle:{type:String,default:void 0},urlPath:{type:String,required:!0}},data(){return{mdiRss:Ae,showTooltip:{show:!1}}},computed:{clipBoardEnabled(){return location.protocol=="https:"},clipBoardIcon(){return this.showTooltip.show?Ke:et},tooltip(){return this.clipBoardEnabled},url(){return window.origin+this.urlPath}},methods:{onClickURL(){this.clipBoardEnabled&&Tt(this.url,this.showTooltip)}}},At=["title"],Lt={key:0},Nt={class:"copied"},Ut={key:1,class:"subtitle"},Ht={class:"opdsUrl"};function zt(e,s,a,d,t,o){return C(),Y("div",{class:"opdsVersion",title:o.tooltip,onClick:s[0]||(s[0]=(...n)=>o.onClickURL&&o.onClickURL(...n))},[x("h3",null,[R(P(a.title)+" ",1),o.clipBoardEnabled?(C(),Y("span",Lt,[l(W,{class:"clipBoardIcon",size:"small"},{default:k(()=>[R(P(o.clipBoardIcon),1)]),_:1}),l(ot,null,{default:k(()=>[tt(x("span",Nt,"Copied",512),[[at,t.showTooltip.show]])]),_:1})])):O("",!0),a.subtitle?(C(),Y("span",Ut,P(a.subtitle),1)):O("",!0)]),x("div",Ht,P(o.url),1)],8,At)}const Ft=U(Mt,[["render",zt],["__scopeId","data-v-b8e2453a"]]),Yt={name:"OPDSDialog",components:{OPDSUrl:Ft,PlaceholderLoading:kt},data(){return{mdiRss:Ae}},computed:{...ee(N,{opdsURLs:e=>e.opdsURLs})},methods:{...te(N,["loadOPDSURLs"])}},Wt={key:0,id:"opds"};function qt(e,s,a,d,t,o){const n=L("OPDSUrl"),u=L("PlaceholderLoading");return C(),B(Vt,{"max-width":"30em"},{activator:k(({props:y})=>[l(Be,Q({id:"opdsButton",icon:"",size:"small",variant:"plain"},y,{onClick:e.loadOPDSURLs}),{default:k(()=>[l(W,null,{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),_:2},1040,["onClick"])]),default:k(()=>[e.opdsURLs?(C(),Y("div",Wt,[x("h2",null,[l(W,{size:"x=small",class:"inline"},{default:k(()=>[R(P(t.mdiRss),1)]),_:1}),R(" OPDS ")]),l(n,{title:"v1.2","url-path":e.opdsURLs.v1},null,8,["url-path"]),l(n,{title:"v2.0","url-path":e.opdsURLs.v2,subtitle:"Experimental and not widely or well supported by clients"},null,8,["url-path"])])):(C(),B(u,{key:1}))]),_:1})}const Xt=U(Yt,[["render",qt],["__scopeId","data-v-5646b9a1"]]),Gt={name:"RepoFooter",data(){return{mdiOpenInNew:Le,mdiSourceRepository:nt}}},Zt={id:"repo",href:"https://github.com/ajslater/codex",title:"Codex Source Repository",target:"_blank"};function jt(e,s,a,d,t,o){return C(),Y("a",Zt,[l(W,{id:"repoIcon",size:"x-small"},{default:k(()=>[R(P(t.mdiSourceRepository),1)]),_:1}),R(" repository"),l(W,{color:e.$vuetify.theme.current.colors.iconsInactive,size:"x-small"},{default:k(()=>[R(P(t.mdiOpenInNew),1)]),_:1},8,["color"])])}const Jt=U(Gt,[["render",jt],["__scopeId","data-v-fae4fb39"]]),Qt=ae({app:Boolean,color:String,height:{type:[Number,String],default:"auto"},...ue(),...oe(),...ce(),...Pe(),...de(),...ne({tag:"footer"}),...ve()},"VFooter"),ze=le()({name:"VFooter",props:Qt(),setup(e,s){let{slots:a}=s;const{themeClasses:d}=ge(e),{backgroundColorClasses:t,backgroundColorStyles:o}=K(G(e,"color")),{borderClasses:n}=me(e),{elevationClasses:u}=he(e),{roundedClasses:y}=fe(e),b=M(32),{resizeRef:c}=lt(p=>{p.length&&(b.value=p[0].target.clientHeight)}),v=g(()=>e.height==="auto"?b.value:parseInt(e.height,10)),{layoutItemStyles:m,layoutIsReady:_}=De({id:e.name,order:g(()=>parseInt(e.order,10)),position:g(()=>"bottom"),layoutSize:v,elementSize:g(()=>e.height==="auto"?void 0:v.value),active:g(()=>e.app),absolute:G(e,"absolute")});return se(()=>l(e.tag,{ref:c,class:["v-footer",d.value,t.value,n.value,u.value,y.value,e.class],style:[o.value,e.app?m.value:{height:F(e.height)},e.style]},a)),e.app?_:{}}}),Kt={name:"VersionFooter",data(){return{mdiOpenInNew:Le,mdiContentCopy:st}},computed:{...ee(N,{versions:e=>e.versions}),...Ne(re,["isUserAdmin"]),outdated:function(){return this.isUserAdmin&&this.semverGreaterThan(this.versions.latest>this.versions.installed)},versionTitle:function(){return this.outdated?`v${this.versions.latest} is available`:"up to date"}},created(){this.loadVersions()},methods:{...te(N,["loadVersions"]),semverGreaterThan(e,s){try{if(!e||!s)return!1;const a=e.split("."),d=s.split(".");for(const[t,o]of a.entries())if(+o>+d[t])return!0}catch(a){console.debug("compare codex versions",e,">",s,a)}return!1}}},ea={id:"version"},ta={key:0,id:"latest"};function aa(e,s,a,d,t,o){return C(),B(ze,{id:"version-footer",title:o.versionTitle},{default:k(()=>[x("div",ea,"codex v"+P(e.versions.installed),1),o.outdated?(C(),Y("div",ta," codex v"+P(e.versions.latest)+" is available ",1)):O("",!0)]),_:1},8,["title"])}const oa=U(Kt,[["render",aa],["__scopeId","data-v-4787569d"]]);function na(e){let{rootEl:s,isSticky:a,layoutItemStyles:d}=e;const t=M(!1),o=M(0),n=g(()=>{const b=typeof t.value=="boolean"?"top":t.value;return[a.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[b]:F(o.value)}:{top:d.value.top}]});Ue(()=>{X(a,b=>{b?window.addEventListener("scroll",y,{passive:!0}):window.removeEventListener("scroll",y)},{immediate:!0})}),He(()=>{window.removeEventListener("scroll",y)});let u=0;function y(){const b=u>window.scrollY?"up":"down",c=s.value.getBoundingClientRect(),v=parseFloat(d.value.top??0),m=window.scrollY-Math.max(0,o.value-v),_=c.height+Math.max(o.value,v)-window.scrollY-window.innerHeight,p=parseFloat(getComputedStyle(s.value).getPropertyValue("--v-body-scroll-y"))||0;c.height<window.innerHeight-v?(t.value="top",o.value=v):b==="up"&&t.value==="bottom"||b==="down"&&t.value==="top"?(o.value=window.scrollY+c.top-p,t.value=!0):b==="down"&&_<=0?(o.value=0,t.value="bottom"):b==="up"&&m<=0&&(p?t.value!=="top"&&(o.value=-m+p+v,t.value="top"):(o.value=c.top+m,t.value="top")),u=window.scrollY}return{isStuck:t,stickyStyles:n}}const la=100,sa=20;function Ce(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function Te(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let s=0;for(let a=e.length-1;a>0;a--){if(e[a].t===e[a-1].t)continue;const d=Ce(s),t=(e[a].d-e[a-1].d)/(e[a].t-e[a-1].t);s+=(t-d)*Math.abs(t),a===e.length-1&&(s*=.5)}return Ce(s)*1e3}function ia(){const e={};function s(t){Array.from(t.changedTouches).forEach(o=>{(e[o.identifier]??(e[o.identifier]=new it(sa))).push([t.timeStamp,o])})}function a(t){Array.from(t.changedTouches).forEach(o=>{delete e[o.identifier]})}function d(t){var b;const o=(b=e[t])==null?void 0:b.values().reverse();if(!o)throw new Error(`No samples for touch id ${t}`);const n=o[0],u=[],y=[];for(const c of o){if(n[0]-c[0]>la)break;u.push({t:c[0],d:c[1].clientX}),y.push({t:c[0],d:c[1].clientY})}return{x:Te(u),y:Te(y),get direction(){const{x:c,y:v}=this,[m,_]=[Math.abs(c),Math.abs(v)];return m>_&&c>=0?"right":m>_&&c<=0?"left":_>m&&v>=0?"down":_>m&&v<=0?"up":ra()}}}return{addMovement:s,endTouch:a,getVelocity:d}}function ra(){throw new Error}function ua(e){let{el:s,isActive:a,isTemporary:d,width:t,touchless:o,position:n}=e;Ue(()=>{window.addEventListener("touchstart",E,{passive:!0}),window.addEventListener("touchmove",D,{passive:!1}),window.addEventListener("touchend",A,{passive:!0})}),He(()=>{window.removeEventListener("touchstart",E),window.removeEventListener("touchmove",D),window.removeEventListener("touchend",A)});const u=g(()=>["left","right"].includes(n.value)),{addMovement:y,endTouch:b,getVelocity:c}=ia();let v=!1;const m=M(!1),_=M(0),p=M(0);let T;function I(i,r){return(n.value==="left"?i:n.value==="right"?document.documentElement.clientWidth-i:n.value==="top"?i:n.value==="bottom"?document.documentElement.clientHeight-i:z())-(r?t.value:0)}function $(i){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const h=n.value==="left"?(i-p.value)/t.value:n.value==="right"?(document.documentElement.clientWidth-i-p.value)/t.value:n.value==="top"?(i-p.value)/t.value:n.value==="bottom"?(document.documentElement.clientHeight-i-p.value)/t.value:z();return r?Math.max(0,Math.min(1,h)):h}function E(i){if(o.value)return;const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY,f=25,S=n.value==="left"?r<f:n.value==="right"?r>document.documentElement.clientWidth-f:n.value==="top"?h<f:n.value==="bottom"?h>document.documentElement.clientHeight-f:z(),w=a.value&&(n.value==="left"?r<t.value:n.value==="right"?r>document.documentElement.clientWidth-t.value:n.value==="top"?h<t.value:n.value==="bottom"?h>document.documentElement.clientHeight-t.value:z());(S||w||a.value&&d.value)&&(T=[r,h],p.value=I(u.value?r:h,a.value),_.value=$(u.value?r:h),v=p.value>-20&&p.value<80,b(i),y(i))}function D(i){const r=i.changedTouches[0].clientX,h=i.changedTouches[0].clientY;if(v){if(!i.cancelable){v=!1;return}const S=Math.abs(r-T[0]),w=Math.abs(h-T[1]);(u.value?S>w&&S>3:w>S&&w>3)?(m.value=!0,v=!1):(u.value?w:S)>3&&(v=!1)}if(!m.value)return;i.preventDefault(),y(i);const f=$(u.value?r:h,!1);_.value=Math.max(0,Math.min(1,f)),f>1?p.value=I(u.value?r:h,!0):f<0&&(p.value=I(u.value?r:h,!1))}function A(i){if(v=!1,!m.value)return;y(i),m.value=!1;const r=c(i.changedTouches[0].identifier),h=Math.abs(r.x),f=Math.abs(r.y);(u.value?h>f&&h>400:f>h&&f>3)?a.value=r.direction===({left:"right",right:"left",top:"down",bottom:"up"}[n.value]||z()):a.value=_.value>.5}const q=g(()=>m.value?{transform:n.value==="left"?`translateX(calc(-100% + ${_.value*t.value}px))`:n.value==="right"?`translateX(calc(100% - ${_.value*t.value}px))`:n.value==="top"?`translateY(calc(-100% + ${_.value*t.value}px))`:n.value==="bottom"?`translateY(calc(100% - ${_.value*t.value}px))`:z(),transition:"none"}:void 0);return J(m,()=>{var h,f;const i=((h=s.value)==null?void 0:h.style.transform)??null,r=((f=s.value)==null?void 0:f.style.transition)??null;rt(()=>{var S,w,H,Z;(w=s.value)==null||w.style.setProperty("transform",((S=q.value)==null?void 0:S.transform)||"none"),(Z=s.value)==null||Z.style.setProperty("transition",((H=q.value)==null?void 0:H.transition)||null)}),ut(()=>{var S,w;(S=s.value)==null||S.style.setProperty("transform",i),(w=s.value)==null||w.style.setProperty("transition",r)})}),{isDragging:m,dragProgress:_,dragStyles:q}}function z(){throw new Error}const ca=["start","end","left","right","top","bottom"],da=ae({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>ca.includes(e)},sticky:Boolean,...ue(),...oe(),...ct(),...dt({mobile:null}),...ce(),...Pe(),...de(),...ne({tag:"nav"}),...ve()},"VNavigationDrawer"),va=le()({name:"VNavigationDrawer",props:da(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,s){let{attrs:a,emit:d,slots:t}=s;const{isRtl:o}=$e(),{themeClasses:n}=ge(e),{borderClasses:u}=me(e),{backgroundColorClasses:y,backgroundColorStyles:b}=K(G(e,"color")),{elevationClasses:c}=he(e),{displayClasses:v,mobile:m}=vt(e),{roundedClasses:_}=fe(e),p=mt(),T=ht(e,"modelValue",null,V=>!!V),{ssrBootStyles:I}=ft(),{scopeId:$}=gt(),E=yt(),D=M(!1),{runOpenDelay:A,runCloseDelay:q}=wt(e,V=>{D.value=V}),i=g(()=>e.rail&&e.expandOnHover&&D.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),r=g(()=>bt(e.location,o.value)),h=g(()=>e.persistent),f=g(()=>!e.permanent&&(m.value||e.temporary)),S=g(()=>e.sticky&&!f.value&&r.value!=="bottom");J(()=>e.expandOnHover&&e.rail!=null,()=>{X(D,V=>d("update:rail",!V))}),J(()=>!e.disableResizeWatcher,()=>{X(f,V=>!e.permanent&&St(()=>T.value=!V))}),J(()=>!e.disableRouteWatcher&&!!p,()=>{X(p.currentRoute,()=>f.value&&(T.value=!1))}),X(()=>e.permanent,V=>{V&&(T.value=!0)}),e.modelValue==null&&!f.value&&(T.value=e.permanent||!m.value);const{isDragging:w,dragProgress:H}=ua({el:E,isActive:T,isTemporary:f,width:i,touchless:G(e,"touchless"),position:r}),Z=g(()=>{const V=f.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):i.value;return w.value?V*H.value:V}),Fe=g(()=>["top","bottom"].includes(e.location)?0:i.value),{layoutItemStyles:ye,layoutItemScrimStyles:Ye,layoutIsReady:We}=De({id:e.name,order:g(()=>parseInt(e.order,10)),position:r,layoutSize:Z,elementSize:Fe,active:g(()=>T.value||w.value),disableTransitions:g(()=>w.value),absolute:g(()=>e.absolute||S.value&&typeof be.value!="string")}),{isStuck:be,stickyStyles:qe}=na({rootEl:E,isSticky:S,layoutItemStyles:ye}),_e=K(g(()=>typeof e.scrim=="string"?e.scrim:null)),Xe=g(()=>({...w.value?{opacity:H.value*.2,transition:"none"}:void 0,...Ye.value}));return Oe({VList:{bgColor:"transparent"}}),se(()=>{const V=t.image||e.image;return l(pt,null,[l(e.tag,Q({ref:E,onMouseenter:A,onMouseleave:q,class:["v-navigation-drawer",`v-navigation-drawer--${r.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":D.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":f.value,"v-navigation-drawer--persistent":h.value,"v-navigation-drawer--active":T.value,"v-navigation-drawer--sticky":S.value},n.value,y.value,u.value,v.value,c.value,_.value,e.class],style:[b.value,ye.value,I.value,qe.value,e.style,["top","bottom"].includes(r.value)?{height:"auto"}:{}]},$,a),{default:()=>{var pe,we,Se;return[V&&l("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?l(j,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):l(Me,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&l("div",{class:"v-navigation-drawer__prepend"},[(pe=t.prepend)==null?void 0:pe.call(t)]),l("div",{class:"v-navigation-drawer__content"},[(we=t.default)==null?void 0:we.call(t)]),t.append&&l("div",{class:"v-navigation-drawer__append"},[(Se=t.append)==null?void 0:Se.call(t)])]}}),l(_t,{name:"fade-transition"},{default:()=>[f.value&&(w.value||T.value)&&!!e.scrim&&l("div",Q({class:["v-navigation-drawer__scrim",_e.backgroundColorClasses.value],style:[Xe.value,_e.backgroundColorStyles.value],onClick:()=>{h.value||(T.value=!1)}},$),null)]})])}),We.then(()=>({isStuck:be}))}}),ma=Re(Ee(()=>Ve(()=>import("./admin-drawer-panel-SQytza6T.js").then(e=>e.dD),__vite__mapDeps([0,1])))),ha={name:"SettingsDrawer",components:{AuthMenu:Ct,OPDSDialog:Xt,RepoFooter:Jt,VersionFooter:oa},props:{title:{type:String,required:!0}},data(){return{AdminMenu:ma}},computed:{...Ne(re,["isUserAdmin","isAuthorized"]),...ee(N,{isSettingsDrawerOpen:e=>e.isSettingsDrawerOpen}),open:{get(){return this.isSettingsDrawerOpen||!this.isAuthorized},set(e){this.setSettingsDrawerOpen(e)}}},methods:{...te(N,["setSettingsDrawerOpen"])}},fa={class:"settingsDrawerContainer"},ga={id:"topBlock"},ya={class:"settingsHeader"},ba={id:"scrollFooter",class:"footer"};function _a(e,s,a,d,t,o){const n=L("AuthMenu"),u=L("OPDSDialog"),y=L("RepoFooter"),b=L("VersionFooter");return C(),B(va,{modelValue:o.open,"onUpdate:modelValue":s[0]||(s[0]=c=>o.open=c),"disable-route-watcher":"",location:"right",touchless:""},{append:k(()=>[l(ze,{id:"bottomFooter",class:"footer"},{default:k(()=>[l(b)]),_:1})]),default:k(()=>[x("div",fa,[x("div",ga,[x("header",ya,[x("h3",null,P(a.title),1)]),l(ie),e.isAuthorized?xe(e.$slots,"panel",{key:0},void 0,!0):O("",!0),e.isAuthorized?(C(),B(ie,{key:1})):O("",!0),l(n),e.isUserAdmin?(C(),B(Ie(t.AdminMenu),{key:2})):O("",!0),l(ie)]),x("div",ba,[e.isAuthorized?(C(),B(u,{key:0})):O("",!0),l(y)])])]),_:3},8,["modelValue"])}const Pa=U(ha,[["render",_a],["__scopeId","data-v-0412ab42"]]);export{Ta as S,It as V,Va as a,Pa as b,xt as c,va as d};
@@ -1 +1 @@
1
- .statBlock[data-v-4bb3ecd9]{display:inline-block;vertical-align:top;margin-bottom:20px;margin-right:40px}h3[data-v-4bb3ecd9]{margin-top:1em;text-align:center}.highlight-table[data-v-4bb3ecd9]{color:rgb(var(--v-theme-textSecondary))}.highlight-table tbody[data-v-4bb3ecd9]:nth-child(2n){background-color:rgb(var(--v-theme-background))!important}tr td[data-v-4bb3ecd9]:nth-child(2){text-align:right}.subtitleRow[data-v-4bb3ecd9]{height:28px!important;font-weight:700!important;background-color:rgb(var(--v-theme-surface))!important}.indent[data-v-4bb3ecd9]{padding-left:2em!important}#schemaDoc[data-v-ca8cbe7a]{font-size:small;color:rgb(var(--v-theme-textSecondary));background-color:rgb(var(--v-theme-background))}#schemaDoc>td[data-v-ca8cbe7a]{border-bottom:none!important}
1
+ .statBlock[data-v-4bb3ecd9]{display:inline-block;vertical-align:top;margin-bottom:20px;margin-right:40px}h3[data-v-4bb3ecd9]{margin-top:1em;text-align:center}.highlight-table[data-v-4bb3ecd9]{color:rgb(var(--v-theme-textSecondary))}.highlight-table tbody[data-v-4bb3ecd9]:nth-child(2n){background-color:rgb(var(--v-theme-background))!important}tr td[data-v-4bb3ecd9]:nth-child(2){text-align:right}.subtitleRow[data-v-4bb3ecd9]{height:28px!important;font-weight:700!important;background-color:rgb(var(--v-theme-surface))!important}.indent[data-v-4bb3ecd9]{padding-left:2em!important}#schemaDoc[data-v-9cc45949]{font-size:small;color:rgb(var(--v-theme-textSecondary));background-color:rgb(var(--v-theme-background))}#schemaDoc>td[data-v-9cc45949]{border-bottom:none!important}
@@ -1 +1 @@
1
- .statBlock[data-v-4bb3ecd9]{display:inline-block;vertical-align:top;margin-bottom:20px;margin-right:40px}h3[data-v-4bb3ecd9]{margin-top:1em;text-align:center}.highlight-table[data-v-4bb3ecd9]{color:rgb(var(--v-theme-textSecondary))}.highlight-table tbody[data-v-4bb3ecd9]:nth-child(2n){background-color:rgb(var(--v-theme-background))!important}tr td[data-v-4bb3ecd9]:nth-child(2){text-align:right}.subtitleRow[data-v-4bb3ecd9]{height:28px!important;font-weight:700!important;background-color:rgb(var(--v-theme-surface))!important}.indent[data-v-4bb3ecd9]{padding-left:2em!important}#schemaDoc[data-v-ca8cbe7a]{font-size:small;color:rgb(var(--v-theme-textSecondary));background-color:rgb(var(--v-theme-background))}#schemaDoc>td[data-v-ca8cbe7a]{border-bottom:none!important}
1
+ .statBlock[data-v-4bb3ecd9]{display:inline-block;vertical-align:top;margin-bottom:20px;margin-right:40px}h3[data-v-4bb3ecd9]{margin-top:1em;text-align:center}.highlight-table[data-v-4bb3ecd9]{color:rgb(var(--v-theme-textSecondary))}.highlight-table tbody[data-v-4bb3ecd9]:nth-child(2n){background-color:rgb(var(--v-theme-background))!important}tr td[data-v-4bb3ecd9]:nth-child(2){text-align:right}.subtitleRow[data-v-4bb3ecd9]{height:28px!important;font-weight:700!important;background-color:rgb(var(--v-theme-surface))!important}.indent[data-v-4bb3ecd9]{padding-left:2em!important}#schemaDoc[data-v-9cc45949]{font-size:small;color:rgb(var(--v-theme-textSecondary));background-color:rgb(var(--v-theme-background))}#schemaDoc>td[data-v-9cc45949]{border-bottom:none!important}
@@ -0,0 +1 @@
1
+ import{_ as S,b1 as P,$ as c,aF as u,aP as l,aH as b,T as d,a0 as k,V as y,aG as T,am as j,bA as w,W as C,E as K,D as g,cn as B,co as E,l as h,X as R,aJ as v,Z as O,al as D}from"./admin-drawer-panel-SQytza6T.js";import{V as N}from"./VTable-IQf8Xj4J.js";import{C as V}from"./confirm-dialog-_HotKBZZ.js";import{c as x}from"./copy-to-clipboard-DoUvDJVx.js";import{C as f}from"./main-EAqCu0p6.js";import"./VDialog-DO_IeNl2.js";const G={name:"StatsTable",props:{title:{type:String,required:!0},items:{type:Object,required:!0}},data(){return{}},methods:{valueTable(e){return e&&typeof e=="object"?e:{}},tdClasses(e){return{indent:e[0]==="+"}},tdLabel(e){return e.replace(/^\+/,"")},nf(e){return typeof e=="number"?P.format(e):e}}},U={class:"statBlock"},z={key:0},$={colspan:"2",class:"subtitleRow"},F={key:1},H={class:"indent"};function M(e,s,t,r,a,o){return c(),u("div",U,[l("h3",null,b(t.title),1),d(N,{class:"highlight-table"},{default:k(()=>[(c(!0),u(y,null,T(Object.entries(t.items),([n,i])=>(c(),u("tbody",{key:n},[typeof i=="object"?(c(),u("tr",z,[l("th",$,b(n),1)])):(c(),u("tr",F,[l("td",{class:j(o.tdClasses(n))},b(o.tdLabel(n)),3),l("td",null,b(o.nf(i)),1)])),(c(!0),u(y,null,T(Object.entries(o.valueTable(i)),([p,m])=>(c(),u("tr",{key:p},[l("td",H,b(p),1),l("td",null,b(o.nf(m)),1)]))),128))]))),128)),w(e.$slots,"default",{},void 0,!0)]),_:3})])}const q=S(G,[["render",M],["__scopeId","data-v-4bb3ecd9"]]),X="Copy API Key to clipboard",_=e=>{const s={};for(const t of e)s[t.value]=t.title;return s},A={topGroup:f.browser.groupNames,orderBy:_(f.browser.orderBy),fitTo:_(f.reader.fitTo),readingDirection:_(f.reader.readingDirection)},I={authGroupCount:"Authorization Groups",libraryCount:"Libraries",userAnonymousCount:"Anonymous Users",userRegisteredCount:"Registered Users"};Object.freeze(I);Object.freeze(A);const L=new Set(["storyArcNumbersCount","identifierTypesCount","contributorPersonsCount","contributorRolesCount"]);Object.freeze(L);const J={name:"AdminTasksTab",components:{ConfirmDialog:V,StatsTable:q},data(){return{showTooltip:{show:!1},apiSchemaURL:window.CODEX.API_V3_PATH}},computed:{...C(K,{}),...C(g,{stats:e=>e.stats}),clipBoardEnabled(){return location.prototcal=="https:"},apiTooltip(){return X?this.clipBoardEnabled:void 0},clipBoardIcon(){return this.showTooltip?B:E},platformTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.platform)){const a=this.keyToLabel(t),o=t==="system"?`${r.name} ${r.release}`:r;e[a]=o}return e},configTable(){var t;const e={};let s="";for(const[r,a]of Object.entries((t=this.stats)==null?void 0:t.config)){let o;if(r=="apiKey"){s=a;continue}else o=I[r];e[o]=a}return e["API Key"]=s,e},userSettingsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.sessions)){const a={},o=A[t];for(const[i,p]of Object.entries(r)){let m;o?m=o[h.snakeCase(i)]:m=i,a[m]=p}const n=this.keyToLabel(t);e[n]=a}return e},browserGroupsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.groups)){let a=this.keyToLabel(t);a!=="Series"&&(a+="s"),e[a]=r}return e},fileTypesTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.fileTypes)){const a=t==="unknown"?h.capitalize(t):this.keyToLabel(t).toUpperCase();e[a]=r}return e},metadataTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.metadata)){let a=t==="countryCount"?"Countries":this.keyToLabel(t)+"s";L.has(t)&&(a=a.replace(/^\w+ /,"+")),e[a]=r}return e}},created(){this.loadStats()},methods:{...R(g,["loadStats","updateAPIKey"]),regenAPIKey(){this.updateAPIKey().then(this.loadStats).catch(console.warn)},onClickAPIKey(){this.clipBoardEnabled&&x(this.stats.config.apiKey,this.showTooltip)},keyToLabel(e){return e=e.replace(/Count$/,""),h.startCase(e)}}},W={key:0,id:"stats"},Y={id:"schemaDoc"},Z={colspan:"2"},Q=["href"],ee={colspan:"2"};function te(e,s,t,r,a,o){const n=O("StatsTable"),i=O("ConfirmDialog");return e.stats?(c(),u("div",W,[d(n,{title:"Platform",items:o.platformTable},null,8,["items"]),d(n,{title:"Config",items:o.configTable},{default:k(()=>[l("tbody",null,[l("tr",Y,[l("td",Z,[D(" The only endpoint accessible by API Key is "),l("a",{href:`${a.apiSchemaURL}#/api/api_v3_admin_stats_retrieve`,target:"_blank"},"/admin/stats",8,Q)])]),l("tr",null,[l("td",ee,[d(i,{"button-text":"Regenerate API Key","title-text":"Regenerate","object-name":"API Key","confirm-text":"Regenerate",onConfirm:o.regenAPIKey},null,8,["onConfirm"])])])])]),_:1},8,["items"]),d(n,{title:"User Settings",items:o.userSettingsTable},null,8,["items"]),d(n,{title:"Browser Groups",items:o.browserGroupsTable},null,8,["items"]),d(n,{title:"File Types",items:o.fileTypesTable},null,8,["items"]),d(n,{title:"Metadata",items:o.metadataTable},null,8,["items"])])):v("",!0)}const ie=S(J,[["render",te],["__scopeId","data-v-9cc45949"]]);export{ie as default};
@@ -0,0 +1 @@
1
+ import{_ as S,b1 as P,$ as c,aF as u,aP as l,aH as b,T as d,a0 as k,V as y,aG as T,am as j,bA as w,W as C,E as K,D as g,cn as B,co as E,l as h,X as R,aJ as v,Z as O,al as D}from"./admin-drawer-panel-SQytza6T.js";import{V as N}from"./VTable-IQf8Xj4J.js";import{C as V}from"./confirm-dialog-_HotKBZZ.js";import{c as x}from"./copy-to-clipboard-DoUvDJVx.js";import{C as f}from"./main-EAqCu0p6.js";import"./VDialog-DO_IeNl2.js";const G={name:"StatsTable",props:{title:{type:String,required:!0},items:{type:Object,required:!0}},data(){return{}},methods:{valueTable(e){return e&&typeof e=="object"?e:{}},tdClasses(e){return{indent:e[0]==="+"}},tdLabel(e){return e.replace(/^\+/,"")},nf(e){return typeof e=="number"?P.format(e):e}}},U={class:"statBlock"},z={key:0},$={colspan:"2",class:"subtitleRow"},F={key:1},H={class:"indent"};function M(e,s,t,r,a,o){return c(),u("div",U,[l("h3",null,b(t.title),1),d(N,{class:"highlight-table"},{default:k(()=>[(c(!0),u(y,null,T(Object.entries(t.items),([n,i])=>(c(),u("tbody",{key:n},[typeof i=="object"?(c(),u("tr",z,[l("th",$,b(n),1)])):(c(),u("tr",F,[l("td",{class:j(o.tdClasses(n))},b(o.tdLabel(n)),3),l("td",null,b(o.nf(i)),1)])),(c(!0),u(y,null,T(Object.entries(o.valueTable(i)),([p,m])=>(c(),u("tr",{key:p},[l("td",H,b(p),1),l("td",null,b(o.nf(m)),1)]))),128))]))),128)),w(e.$slots,"default",{},void 0,!0)]),_:3})])}const q=S(G,[["render",M],["__scopeId","data-v-4bb3ecd9"]]),X="Copy API Key to clipboard",_=e=>{const s={};for(const t of e)s[t.value]=t.title;return s},A={topGroup:f.browser.groupNames,orderBy:_(f.browser.orderBy),fitTo:_(f.reader.fitTo),readingDirection:_(f.reader.readingDirection)},I={authGroupCount:"Authorization Groups",libraryCount:"Libraries",userAnonymousCount:"Anonymous Users",userRegisteredCount:"Registered Users"};Object.freeze(I);Object.freeze(A);const L=new Set(["storyArcNumbersCount","identifierTypesCount","contributorPersonsCount","contributorRolesCount"]);Object.freeze(L);const J={name:"AdminTasksTab",components:{ConfirmDialog:V,StatsTable:q},data(){return{showTooltip:{show:!1},apiSchemaURL:window.CODEX.API_V3_PATH}},computed:{...C(K,{}),...C(g,{stats:e=>e.stats}),clipBoardEnabled(){return location.prototcal=="https:"},apiTooltip(){return X?this.clipBoardEnabled:void 0},clipBoardIcon(){return this.showTooltip?B:E},platformTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.platform)){const a=this.keyToLabel(t),o=t==="system"?`${r.name} ${r.release}`:r;e[a]=o}return e},configTable(){var t;const e={};let s="";for(const[r,a]of Object.entries((t=this.stats)==null?void 0:t.config)){let o;if(r=="apiKey"){s=a;continue}else o=I[r];e[o]=a}return e["API Key"]=s,e},userSettingsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.sessions)){const a={},o=A[t];for(const[i,p]of Object.entries(r)){let m;o?m=o[h.snakeCase(i)]:m=i,a[m]=p}const n=this.keyToLabel(t);e[n]=a}return e},browserGroupsTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.groups)){let a=this.keyToLabel(t);a!=="Series"&&(a+="s"),e[a]=r}return e},fileTypesTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.fileTypes)){const a=t==="unknown"?h.capitalize(t):this.keyToLabel(t).toUpperCase();e[a]=r}return e},metadataTable(){var s;const e={};for(const[t,r]of Object.entries((s=this.stats)==null?void 0:s.metadata)){let a=t==="countryCount"?"Countries":this.keyToLabel(t)+"s";L.has(t)&&(a=a.replace(/^\w+ /,"+")),e[a]=r}return e}},created(){this.loadStats()},methods:{...R(g,["loadStats","updateAPIKey"]),regenAPIKey(){this.updateAPIKey().then(this.loadStats).catch(console.warn)},onClickAPIKey(){this.clipBoardEnabled&&x(this.stats.config.apiKey,this.showTooltip)},keyToLabel(e){return e=e.replace(/Count$/,""),h.startCase(e)}}},W={key:0,id:"stats"},Y={id:"schemaDoc"},Z={colspan:"2"},Q=["href"],ee={colspan:"2"};function te(e,s,t,r,a,o){const n=O("StatsTable"),i=O("ConfirmDialog");return e.stats?(c(),u("div",W,[d(n,{title:"Platform",items:o.platformTable},null,8,["items"]),d(n,{title:"Config",items:o.configTable},{default:k(()=>[l("tbody",null,[l("tr",Y,[l("td",Z,[D(" The only endpoint accessible by API Key is "),l("a",{href:`${a.apiSchemaURL}#/api/api_v3_admin_stats_retrieve`,target:"_blank"},"/admin/stats",8,Q)])]),l("tr",null,[l("td",ee,[d(i,{"button-text":"Regenerate API Key","title-text":"Regenerate","object-name":"API Key","confirm-text":"Regenerate",onConfirm:o.regenAPIKey},null,8,["onConfirm"])])])])]),_:1},8,["items"]),d(n,{title:"User Settings",items:o.userSettingsTable},null,8,["items"]),d(n,{title:"Browser Groups",items:o.browserGroupsTable},null,8,["items"]),d(n,{title:"File Types",items:o.fileTypesTable},null,8,["items"]),d(n,{title:"Metadata",items:o.metadataTable},null,8,["items"])])):v("",!0)}const ie=S(J,[["render",te],["__scopeId","data-v-9cc45949"]]);export{ie as default};
@@ -1 +1 @@
1
- import{_ as f,dz as k,W as p,E as _,X as h,D as v,aF as t,aP as r,aH as n,V as c,aG as l,Z as C,$ as e,am as b,Y as i,a0 as S,al as T,aq as y,aR as B,aS as D}from"./admin-drawer-panel-Crj9u2NV.js";import{C as E}from"./confirm-dialog-Mznixjrb.js";import"./VDialog-BXw6XFu7.js";const $={name:"AdminTasksTab",components:{ConfirmDialog:E},data(){return{tasks:k}},computed:{...p(_,{formSuccess:s=>s.form.success,formErrors:s=>s.form.errors})},methods:{...h(v,["librarianTask"])}},x=s=>(B("data-v-52d52cfa"),s=s(),D(),s),g={id:"tasks"},I=x(()=>r("span",{id:"lastTaskLabel"},"Last Task Queued:",-1)),V={key:0,id:"success"},w={key:1,id:"error"},A={key:2,id:"noRecentTask"},L={class:"taskBox"},N={class:"taskDesc"};function j(s,z,F,G,d,R){const u=C("ConfirmDialog");return e(),t("div",g,[r("div",null,[I,r("span",null,[s.formSuccess?(e(),t("span",V,n(s.formSuccess),1)):s.formErrors&&s.formErrors.length>0?(e(),t("span",w,[(e(!0),t(c,null,l(s.formErrors,o=>(e(),t("span",{key:o},n(o),1))),128))])):(e(),t("span",A,"No recent task"))])]),(e(!0),t(c,null,l(d.tasks,o=>(e(),t("div",{key:o.title,"fixed-header":"",class:"taskGroup"},[r("h3",null,n(o.title),1),(e(!0),t(c,null,l(o.tasks,a=>(e(),t("div",{key:a.value,class:b(["trow",{selected:!1}])},[r("div",L,[a.confirm?(e(),i(u,{key:0,"button-text":a.title,"title-text":a.title,"object-name":a.confirm,"confirm-text":"Confirm",onConfirm:m=>s.librarianTask(a.value,a.title)},null,8,["button-text","title-text","object-name","onConfirm"])):(e(),i(y,{key:1,block:"",onClick:m=>s.librarianTask(a.value,a.title)},{default:S(()=>[T(n(a.title),1)]),_:2},1032,["onClick"])),r("div",N,n(a.desc),1)])]))),128))]))),128))])}const Q=f($,[["render",j],["__scopeId","data-v-52d52cfa"]]);export{Q as default};
1
+ import{_ as f,dA as k,W as p,E as _,X as h,D as v,aF as t,aP as r,aH as n,V as c,aG as l,Z as C,$ as e,am as b,Y as i,a0 as S,al as T,aq as y,aR as B,aS as D}from"./admin-drawer-panel-SQytza6T.js";import{C as E}from"./confirm-dialog-_HotKBZZ.js";import"./VDialog-DO_IeNl2.js";const $={name:"AdminTasksTab",components:{ConfirmDialog:E},data(){return{tasks:k}},computed:{...p(_,{formSuccess:s=>s.form.success,formErrors:s=>s.form.errors})},methods:{...h(v,["librarianTask"])}},x=s=>(B("data-v-52d52cfa"),s=s(),D(),s),g={id:"tasks"},A=x(()=>r("span",{id:"lastTaskLabel"},"Last Task Queued:",-1)),I={key:0,id:"success"},V={key:1,id:"error"},w={key:2,id:"noRecentTask"},L={class:"taskBox"},N={class:"taskDesc"};function j(s,F,G,R,d,q){const u=C("ConfirmDialog");return e(),t("div",g,[r("div",null,[A,r("span",null,[s.formSuccess?(e(),t("span",I,n(s.formSuccess),1)):s.formErrors&&s.formErrors.length>0?(e(),t("span",V,[(e(!0),t(c,null,l(s.formErrors,o=>(e(),t("span",{key:o},n(o),1))),128))])):(e(),t("span",w,"No recent task"))])]),(e(!0),t(c,null,l(d.tasks,o=>(e(),t("div",{key:o.title,"fixed-header":"",class:"taskGroup"},[r("h3",null,n(o.title),1),(e(!0),t(c,null,l(o.tasks,a=>(e(),t("div",{key:a.value,class:b(["trow",{selected:!1}])},[r("div",L,[a.confirm?(e(),i(u,{key:0,"button-text":a.title,"title-text":a.title,"object-name":a.confirm,"confirm-text":"Confirm",onConfirm:m=>s.librarianTask(a.value,a.title)},null,8,["button-text","title-text","object-name","onConfirm"])):(e(),i(y,{key:1,block:"",onClick:m=>s.librarianTask(a.value,a.title)},{default:S(()=>[T(n(a.title),1)]),_:2},1032,["onClick"])),r("div",N,n(a.desc),1)])]))),128))]))),128))])}const Q=f($,[["render",j],["__scopeId","data-v-52d52cfa"]]);export{Q as default};
@@ -1 +1 @@
1
- import{_ as f,dz as k,W as p,E as _,X as h,D as v,aF as t,aP as r,aH as n,V as c,aG as l,Z as C,$ as e,am as b,Y as i,a0 as S,al as T,aq as y,aR as B,aS as D}from"./admin-drawer-panel-Crj9u2NV.js";import{C as E}from"./confirm-dialog-Mznixjrb.js";import"./VDialog-BXw6XFu7.js";const $={name:"AdminTasksTab",components:{ConfirmDialog:E},data(){return{tasks:k}},computed:{...p(_,{formSuccess:s=>s.form.success,formErrors:s=>s.form.errors})},methods:{...h(v,["librarianTask"])}},x=s=>(B("data-v-52d52cfa"),s=s(),D(),s),g={id:"tasks"},I=x(()=>r("span",{id:"lastTaskLabel"},"Last Task Queued:",-1)),V={key:0,id:"success"},w={key:1,id:"error"},A={key:2,id:"noRecentTask"},L={class:"taskBox"},N={class:"taskDesc"};function j(s,z,F,G,d,R){const u=C("ConfirmDialog");return e(),t("div",g,[r("div",null,[I,r("span",null,[s.formSuccess?(e(),t("span",V,n(s.formSuccess),1)):s.formErrors&&s.formErrors.length>0?(e(),t("span",w,[(e(!0),t(c,null,l(s.formErrors,o=>(e(),t("span",{key:o},n(o),1))),128))])):(e(),t("span",A,"No recent task"))])]),(e(!0),t(c,null,l(d.tasks,o=>(e(),t("div",{key:o.title,"fixed-header":"",class:"taskGroup"},[r("h3",null,n(o.title),1),(e(!0),t(c,null,l(o.tasks,a=>(e(),t("div",{key:a.value,class:b(["trow",{selected:!1}])},[r("div",L,[a.confirm?(e(),i(u,{key:0,"button-text":a.title,"title-text":a.title,"object-name":a.confirm,"confirm-text":"Confirm",onConfirm:m=>s.librarianTask(a.value,a.title)},null,8,["button-text","title-text","object-name","onConfirm"])):(e(),i(y,{key:1,block:"",onClick:m=>s.librarianTask(a.value,a.title)},{default:S(()=>[T(n(a.title),1)]),_:2},1032,["onClick"])),r("div",N,n(a.desc),1)])]))),128))]))),128))])}const Q=f($,[["render",j],["__scopeId","data-v-52d52cfa"]]);export{Q as default};
1
+ import{_ as f,dA as k,W as p,E as _,X as h,D as v,aF as t,aP as r,aH as n,V as c,aG as l,Z as C,$ as e,am as b,Y as i,a0 as S,al as T,aq as y,aR as B,aS as D}from"./admin-drawer-panel-SQytza6T.js";import{C as E}from"./confirm-dialog-_HotKBZZ.js";import"./VDialog-DO_IeNl2.js";const $={name:"AdminTasksTab",components:{ConfirmDialog:E},data(){return{tasks:k}},computed:{...p(_,{formSuccess:s=>s.form.success,formErrors:s=>s.form.errors})},methods:{...h(v,["librarianTask"])}},x=s=>(B("data-v-52d52cfa"),s=s(),D(),s),g={id:"tasks"},A=x(()=>r("span",{id:"lastTaskLabel"},"Last Task Queued:",-1)),I={key:0,id:"success"},V={key:1,id:"error"},w={key:2,id:"noRecentTask"},L={class:"taskBox"},N={class:"taskDesc"};function j(s,F,G,R,d,q){const u=C("ConfirmDialog");return e(),t("div",g,[r("div",null,[A,r("span",null,[s.formSuccess?(e(),t("span",I,n(s.formSuccess),1)):s.formErrors&&s.formErrors.length>0?(e(),t("span",V,[(e(!0),t(c,null,l(s.formErrors,o=>(e(),t("span",{key:o},n(o),1))),128))])):(e(),t("span",w,"No recent task"))])]),(e(!0),t(c,null,l(d.tasks,o=>(e(),t("div",{key:o.title,"fixed-header":"",class:"taskGroup"},[r("h3",null,n(o.title),1),(e(!0),t(c,null,l(o.tasks,a=>(e(),t("div",{key:a.value,class:b(["trow",{selected:!1}])},[r("div",L,[a.confirm?(e(),i(u,{key:0,"button-text":a.title,"title-text":a.title,"object-name":a.confirm,"confirm-text":"Confirm",onConfirm:m=>s.librarianTask(a.value,a.title)},null,8,["button-text","title-text","object-name","onConfirm"])):(e(),i(y,{key:1,block:"",onClick:m=>s.librarianTask(a.value,a.title)},{default:S(()=>[T(n(a.title),1)]),_:2},1032,["onClick"])),r("div",N,n(a.desc),1)])]))),128))]))),128))])}const Q=f($,[["render",j],["__scopeId","data-v-52d52cfa"]]);export{Q as default};
@@ -1 +1 @@
1
- import{aM as T,bm as de,aE as H,_ as k,Z as m,$ as u,Y as c,F as N,P as z,av as K,cD as ue,r as ce,ai as me,h as q,G as fe,S as W,cE as ge,T as a,ar as V,V as Q,bh as U,ch as he,aQ as Y,cF as pe,cG as J,aK as ve,W as P,E as ye,q as y,bt as we,X,a0 as g,bp as $,bS as _e,aJ as R,al as be,cH as ke,aF as Se,aY as Ve,be as Ce,N as Z,b3 as ee,cI as Le,O as Pe,Q as Ae,az as De,aA as Be,b6 as te,cy as Ee,c9 as Ie,L as Me,aq as xe,bn as $e,aG as Fe,bA as Ue,ax as Re,c6 as Te,bD as Ne,aP as ze}from"./admin-drawer-panel-Crj9u2NV.js";import{u as We,k as Oe}from"./main-DArXKRWW.js";import{C as Ke}from"./change-password-dialog-Cm6AnxGf.js";import{S as qe,V as F,a as Ge}from"./VTextField-BJxb_QuX.js";import{a as je,c as He,u as Qe,V as G,d as j}from"./VSelectionControl-DTgtf_T6.js";import{V as Ye}from"./VDialog-BXw6XFu7.js";const Je={name:"AdminBrowserLink",components:{DrawerItem:T},data(){return{mdiBookshelf:de}},computed:{...H(We,["lastRoute"])}};function Xe(e,o,i,t,s,r){const l=m("DrawerItem");return u(),c(l,{to:e.lastRoute,"prepend-icon":s.mdiBookshelf,title:"Browser"},null,8,["to","prepend-icon"])}const Ze=k(Je,[["render",Xe]]),et=N({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...je(),...He()},"VSwitch"),tt=z()({name:"VSwitch",inheritAttrs:!1,props:et(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,o){let{attrs:i,slots:t}=o;const s=K(e,"indeterminate"),r=K(e,"modelValue"),{loaderClasses:l}=ue(e),{isFocused:d,focus:n,blur:w}=Qe(e),_=ce(),C=me&&window.matchMedia("(forced-colors: active)").matches,A=q(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),D=fe(),B=q(()=>e.id||`switch-${D}`);function b(){s.value&&(s.value=!1)}function L(h){var p,v;h.stopPropagation(),h.preventDefault(),(v=(p=_.value)==null?void 0:p.input)==null||v.click()}return W(()=>{const[h,p]=ge(i),v=G.filterProps(e),ae=j.filterProps(e);return a(G,V({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":s.value},l.value,e.class]},h,v,{modelValue:r.value,"onUpdate:modelValue":E=>r.value=E,id:B.value,focused:d.value,style:e.style}),{...t,default:E=>{let{id:se,messagesId:oe,isDisabled:ne,isReadonly:re,isValid:O}=E;const I={model:r,isValid:O};return a(j,V({ref:_},ae,{modelValue:r.value,"onUpdate:modelValue":[S=>r.value=S,b],id:se.value,"aria-describedby":oe.value,type:"checkbox","aria-checked":s.value?"mixed":void 0,disabled:ne.value,readonly:re.value,onFocus:n,onBlur:w},p),{...t,default:S=>{let{backgroundColorClasses:M,backgroundColorStyles:f}=S;return a("div",{class:["v-switch__track",C?void 0:M.value],style:f.value,onClick:L},[t["track-true"]&&a("div",{key:"prepend",class:"v-switch__track-true"},[t["track-true"](I)]),t["track-false"]&&a("div",{key:"append",class:"v-switch__track-false"},[t["track-false"](I)])])},input:S=>{let{inputNode:M,icon:f,backgroundColorClasses:ie,backgroundColorStyles:le}=S;return a(Q,null,[M,a("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":f||e.loading},e.inset||C?void 0:ie.value],style:e.inset?void 0:le.value},[t.thumb?a(U,{defaults:{VIcon:{icon:f,size:"x-small"}}},{default:()=>[t.thumb({...I,icon:f})]}):a(he,null,{default:()=>[e.loading?a(pe,{name:"v-switch",active:!0,color:O.value===!1?void 0:A.value},{default:x=>t.loader?t.loader(x):a(J,{active:x.isActive,color:x.color,indeterminate:!0,size:"16",width:"2"},null)}):f&&a(Y,{key:String(f),icon:f,size:"x-small"},null)]})])])}})}})}),{}}}),at={name:"AuthLoginDialog",components:{SubmitFooter:qe,DrawerItem:T},data(){return{rules:{username:[e=>!!e||"Username is required"],password:[e=>e?this.registerMode&&e.length<this.MIN_PASSWORD_LEN?`Password must be ${this.MIN_PASSWORD_LEN} characters long`:!0:"Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},formModel:{},credentials:{username:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,registerMode:!1,mdiLogin:ve}},computed:{...P(ye,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success}),...P(y,{adminFlags:e=>e.adminFlags,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...we(y,["showLoginDialog"]),submitButtonLabel(){return this.registerMode?"Register":"Login"},loginLabel(){let e="Login";return this.adminFlags.registration&&(e+=" or Register"),e}},watch:{showLoginDialog(e){e&&(this.loadAdminFlags(),this.$refs.form&&this.$refs.form.reset())},credentials:{handler(){const e=this.$refs.form;e?e.validate().then(({valid:o})=>this.submitButtonEnabled=o).catch(console.error):this.submitButtonEnabled=!1},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...X(y,["loadAdminFlags","login","register"]),doAuth(e){return this[e](this.credentials).then(()=>this.showLoginDialog=this.formErrors&&this.formErrors.length>0).catch(console.error)},submit(){this.$refs.form.validate().then(({valid:o})=>{if(!o)return;const i=this.registerMode?"register":"login";return this.doAuth(i)}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}};function st(e,o,i,t,s,r){const l=m("DrawerItem"),d=m("SubmitFooter");return u(),c(Ye,{modelValue:e.showLoginDialog,"onUpdate:modelValue":o[7]||(o[7]=n=>e.showLoginDialog=n),origin:"center-top",transition:"slide-y-transition","max-width":"20em"},{activator:g(({props:n})=>[a(l,V(n,{"prepend-icon":s.mdiLogin,title:r.loginLabel}),null,16,["prepend-icon","title"])]),default:g(()=>[a(Ge,{id:"authDialog",ref:"form"},{default:g(()=>[a(F,{modelValue:s.credentials.username,"onUpdate:modelValue":o[0]||(o[0]=n=>s.credentials.username=n),autocomplete:"username",label:"Username",rules:s.rules.username,clearable:"",autofocus:"",onKeydown:o[1]||(o[1]=$(n=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"]),a(F,{ref:"password",modelValue:s.credentials.password,"onUpdate:modelValue":o[2]||(o[2]=n=>s.credentials.password=n),autocomplete:s.registerMode?"new-password":"current-password",label:"Password",rules:s.rules.password,clearable:"",type:"password",onKeydown:o[3]||(o[3]=$(n=>{s.registerMode?e.$refs.passwordConfirm.focus():r.submit()},["enter"]))},null,8,["modelValue","autocomplete","rules"]),a(_e,null,{default:g(()=>[s.registerMode?(u(),c(F,{key:0,ref:"passwordConfirm",modelValue:s.credentials.passwordConfirm,"onUpdate:modelValue":o[4]||(o[4]=n=>s.credentials.passwordConfirm=n),autocomplete:"new-password",label:"Confirm Password",rules:s.rules.passwordConfirm,clearable:"",type:"password",onKeydown:$(r.submit,["enter"])},null,8,["modelValue","rules","onKeydown"])):R("",!0)]),_:1}),e.adminFlags.registration?(u(),c(tt,{key:0,modelValue:s.registerMode,"onUpdate:modelValue":o[5]||(o[5]=n=>s.registerMode=n),label:"Register"},{default:g(()=>[be(" Register ")]),_:1},8,["modelValue"])):R("",!0),a(d,{verb:s.registerMode?"Register":"Login",table:"",disabled:!s.submitButtonEnabled,onSubmit:r.submit,onCancel:o[6]||(o[6]=n=>e.showLoginDialog=!1)},null,8,["verb","disabled","onSubmit"])]),_:1},512)]),_:1},8,["modelValue"])}const ot=k(at,[["render",st],["__scopeId","data-v-b0ce47fa"]]),nt={name:"AuthMenu",components:{AuthLoginDialog:ot,ChangePasswordDialog:Ke,DrawerItem:T},props:{showChangePassword:{type:Boolean,default:!0}},data(){return{mdiLogout:ke}},computed:{...P(y,{user:e=>e.user}),logoutTitle(){return`Logout ${this.user.username}`}},methods:{...X(y,["logout"])}},rt={key:0};function it(e,o,i,t,s,r){const l=m("DrawerItem"),d=m("ChangePasswordDialog"),n=m("AuthLoginDialog");return e.user?(u(),Se("div",rt,[a(l,{"prepend-icon":s.mdiLogout,title:r.logoutTitle,onClick:Ve(e.logout,["stop"])},null,8,["prepend-icon","title","onClick"]),i.showChangePassword?(u(),c(d,{key:0,user:e.user},null,8,["user"])):R("",!0)])):(u(),c(n,{key:1}))}const lt=k(nt,[["render",it]]),dt={name:"PlaceholderLoading",props:{indeterminate:{type:Boolean,default:!0}}};function ut(e,o,i,t,s,r){return u(),c(J,V({"aria-label":"loading",class:"codexProgressCircular",indeterminate:i.indeterminate},e.$attrs),null,16,["indeterminate"])}const ct=k(dt,[["render",ut],["__scopeId","data-v-7bb4cf22"]]),mt=N({actionText:String,bgColor:String,color:String,icon:Ce,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String,...Z(),...ee(),...Le({size:void 0}),...Pe()},"VEmptyState"),ft=z()({name:"VEmptyState",props:mt(),emits:{"click:action":e=>!0},setup(e,o){let{emit:i,slots:t}=o;const{themeClasses:s}=Ae(e),{backgroundColorClasses:r,backgroundColorStyles:l}=De(Be(e,"bgColor")),{dimensionStyles:d}=te(e),{displayClasses:n}=Ee();function w(_){i("click:action",_)}return W(()=>{var L,h,p;const _=!!(t.actions||e.actionText),C=!!(t.headline||e.headline),A=!!(t.title||e.title),D=!!(t.text||e.text),B=!!(t.media||e.image||e.icon),b=e.size||(e.image?200:96);return a("div",{class:["v-empty-state",{[`v-empty-state--${e.justify}`]:!0},s.value,r.value,n.value,e.class],style:[l.value,d.value,e.style]},[B&&a("div",{key:"media",class:"v-empty-state__media"},[t.media?a(U,{key:"media-defaults",defaults:{VImg:{src:e.image,height:b},VIcon:{size:b,icon:e.icon}}},{default:()=>[t.media()]}):a(Q,null,[e.image?a(Ie,{key:"image",src:e.image,height:b},null):e.icon?a(Y,{key:"icon",color:e.color,size:b,icon:e.icon},null):void 0])]),C&&a("div",{key:"headline",class:"v-empty-state__headline"},[((L=t.headline)==null?void 0:L.call(t))??e.headline]),A&&a("div",{key:"title",class:"v-empty-state__title"},[((h=t.title)==null?void 0:h.call(t))??e.title]),D&&a("div",{key:"text",class:"v-empty-state__text",style:{maxWidth:Me(e.textWidth)}},[((p=t.text)==null?void 0:p.call(t))??e.text]),t.default&&a("div",{key:"content",class:"v-empty-state__content"},[t.default()]),_&&a("div",{key:"actions",class:"v-empty-state__actions"},[a(U,{defaults:{VBtn:{class:"v-empty-state__action-btn",color:e.color??"surface-variant",text:e.actionText}}},{default:()=>{var v;return[((v=t.actions)==null?void 0:v.call(t,{props:{onClick:w}}))??a(xe,{onClick:w},null)]}})])])}),{}}}),gt={name:"EmptyState"};function ht(e,o,i,t,s,r){return u(),c(ft,{class:"empty"},$e({_:2},[Fe(e.$slots,(l,d)=>({name:d,fn:g(n=>[Ue(e.$slots,d,V({props:l},n),void 0,!0)])}))]),1024)}const pt=k(gt,[["render",ht],["__scopeId","data-v-c7e33c8c"]]),vt=N({scrollable:Boolean,...Z(),...ee(),...Re({tag:"main"})},"VMain"),yt=z()({name:"VMain",props:vt(),setup(e,o){let{slots:i}=o;const{dimensionStyles:t}=te(e),{mainStyles:s,layoutIsReady:r}=Oe(),{ssrBootStyles:l}=Te();return W(()=>a(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[s.value,l.value,t.value,e.style]},{default:()=>{var d,n;return[e.scrollable?a("div",{class:"v-main__scroller"},[(d=i.default)==null?void 0:d.call(i)]):(n=i.default)==null?void 0:n.call(i)]}})),r}}),wt={name:"UnauthorizedEmptyState",components:{AdminBrowserLink:Ze,AuthMenu:lt,PlaceholderLoading:ct,EmptyState:pt},props:{admin:{type:Boolean,default:!1}},data(){return{mdiLockOutline:Ne}},computed:{...H(y,["isAuthChecked","isAuthorized","isUserAdmin"]),...P(y,{registration:e=>e.adminFlags.registration}),text(){return this.registration?"":"Registration is disabled"}}},_t={class:"login"};function bt(e,o,i,t,s,r){const l=m("AdminBrowserLink"),d=m("AuthMenu"),n=m("EmptyState"),w=m("PlaceholderLoading");return u(),c(yt,{id:"unauthorized"},{default:g(()=>[e.isAuthChecked?(u(),c(n,{key:0,class:"empty",headline:"Unauthorized",text:r.text,icon:s.mdiLockOutline},{default:g(()=>[ze("div",_t,[a(l),a(d,{"show-change-password":!1})])]),_:1},8,["text","icon"])):(u(),c(w,{key:1,id:"unauthorizedPlaceholder"}))]),_:1})}const At=k(wt,[["render",bt],["__scopeId","data-v-9f4d680f"]]);export{Ze as A,pt as E,ct as P,At as U,yt as V,lt as a};
1
+ import{aM as T,bm as de,aE as H,_ as k,Z as m,$ as u,Y as c,F as N,P as z,av as K,cD as ue,r as ce,ai as me,h as q,G as fe,S as W,cE as ge,T as a,ar as V,V as Q,bh as U,ch as he,aQ as Y,cF as pe,cG as J,aK as ve,W as P,E as ye,q as y,bt as we,X,a0 as g,bp as $,bS as _e,aJ as R,al as be,cH as ke,aF as Se,aY as Ve,be as Ce,N as Z,b3 as ee,cI as Le,O as Pe,Q as Ae,az as De,aA as Be,b6 as te,cy as Ee,c9 as Ie,L as Me,aq as xe,bn as $e,aG as Fe,bA as Ue,ax as Re,c6 as Te,bD as Ne,aP as ze}from"./admin-drawer-panel-SQytza6T.js";import{u as We,k as Oe}from"./main-EAqCu0p6.js";import{C as Ke}from"./change-password-dialog-CD1pdXK9.js";import{S as qe,V as F,a as Ge}from"./VTextField-DKXmWQyx.js";import{a as je,c as He,u as Qe,V as G,d as j}from"./VSelectionControl-BTjn8uTI.js";import{V as Ye}from"./VDialog-DO_IeNl2.js";const Je={name:"AdminBrowserLink",components:{DrawerItem:T},data(){return{mdiBookshelf:de}},computed:{...H(We,["lastRoute"])}};function Xe(e,o,i,t,s,r){const l=m("DrawerItem");return u(),c(l,{to:e.lastRoute,"prepend-icon":s.mdiBookshelf,title:"Browser"},null,8,["to","prepend-icon"])}const Ze=k(Je,[["render",Xe]]),et=N({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...je(),...He()},"VSwitch"),tt=z()({name:"VSwitch",inheritAttrs:!1,props:et(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,o){let{attrs:i,slots:t}=o;const s=K(e,"indeterminate"),r=K(e,"modelValue"),{loaderClasses:l}=ue(e),{isFocused:d,focus:n,blur:w}=Qe(e),_=ce(),C=me&&window.matchMedia("(forced-colors: active)").matches,A=q(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),D=fe(),B=q(()=>e.id||`switch-${D}`);function b(){s.value&&(s.value=!1)}function L(h){var p,v;h.stopPropagation(),h.preventDefault(),(v=(p=_.value)==null?void 0:p.input)==null||v.click()}return W(()=>{const[h,p]=ge(i),v=G.filterProps(e),ae=j.filterProps(e);return a(G,V({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":s.value},l.value,e.class]},h,v,{modelValue:r.value,"onUpdate:modelValue":E=>r.value=E,id:B.value,focused:d.value,style:e.style}),{...t,default:E=>{let{id:se,messagesId:oe,isDisabled:ne,isReadonly:re,isValid:O}=E;const I={model:r,isValid:O};return a(j,V({ref:_},ae,{modelValue:r.value,"onUpdate:modelValue":[S=>r.value=S,b],id:se.value,"aria-describedby":oe.value,type:"checkbox","aria-checked":s.value?"mixed":void 0,disabled:ne.value,readonly:re.value,onFocus:n,onBlur:w},p),{...t,default:S=>{let{backgroundColorClasses:M,backgroundColorStyles:f}=S;return a("div",{class:["v-switch__track",C?void 0:M.value],style:f.value,onClick:L},[t["track-true"]&&a("div",{key:"prepend",class:"v-switch__track-true"},[t["track-true"](I)]),t["track-false"]&&a("div",{key:"append",class:"v-switch__track-false"},[t["track-false"](I)])])},input:S=>{let{inputNode:M,icon:f,backgroundColorClasses:ie,backgroundColorStyles:le}=S;return a(Q,null,[M,a("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":f||e.loading},e.inset||C?void 0:ie.value],style:e.inset?void 0:le.value},[t.thumb?a(U,{defaults:{VIcon:{icon:f,size:"x-small"}}},{default:()=>[t.thumb({...I,icon:f})]}):a(he,null,{default:()=>[e.loading?a(pe,{name:"v-switch",active:!0,color:O.value===!1?void 0:A.value},{default:x=>t.loader?t.loader(x):a(J,{active:x.isActive,color:x.color,indeterminate:!0,size:"16",width:"2"},null)}):f&&a(Y,{key:String(f),icon:f,size:"x-small"},null)]})])])}})}})}),{}}}),at={name:"AuthLoginDialog",components:{SubmitFooter:qe,DrawerItem:T},data(){return{rules:{username:[e=>!!e||"Username is required"],password:[e=>e?this.registerMode&&e.length<this.MIN_PASSWORD_LEN?`Password must be ${this.MIN_PASSWORD_LEN} characters long`:!0:"Password is required"],passwordConfirm:[e=>e===this.credentials.password||"Passwords must match"]},formModel:{},credentials:{username:"",password:"",passwordConfirm:""},submitButtonEnabled:!1,registerMode:!1,mdiLogin:ve}},computed:{...P(ye,{formErrors:e=>e.form.errors,formSuccess:e=>e.form.success}),...P(y,{adminFlags:e=>e.adminFlags,MIN_PASSWORD_LEN:e=>e.MIN_PASSWORD_LEN}),...we(y,["showLoginDialog"]),submitButtonLabel(){return this.registerMode?"Register":"Login"},loginLabel(){let e="Login";return this.adminFlags.registration&&(e+=" or Register"),e}},watch:{showLoginDialog(e){e&&(this.loadAdminFlags(),this.$refs.form&&this.$refs.form.reset())},credentials:{handler(){const e=this.$refs.form;e?e.validate().then(({valid:o})=>this.submitButtonEnabled=o).catch(console.error):this.submitButtonEnabled=!1},deep:!0}},mounted(){window.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){window.removeEventListener("keyup",this._keyUpListener)},methods:{...X(y,["loadAdminFlags","login","register"]),doAuth(e){return this[e](this.credentials).then(()=>this.showLoginDialog=this.formErrors&&this.formErrors.length>0).catch(console.error)},submit(){this.$refs.form.validate().then(({valid:o})=>{if(!o)return;const i=this.registerMode?"register":"login";return this.doAuth(i)}).catch(console.error)},_keyUpListener(e){e.stopImmediatePropagation()}}};function st(e,o,i,t,s,r){const l=m("DrawerItem"),d=m("SubmitFooter");return u(),c(Ye,{modelValue:e.showLoginDialog,"onUpdate:modelValue":o[7]||(o[7]=n=>e.showLoginDialog=n),origin:"center-top",transition:"slide-y-transition","max-width":"20em"},{activator:g(({props:n})=>[a(l,V(n,{"prepend-icon":s.mdiLogin,title:r.loginLabel}),null,16,["prepend-icon","title"])]),default:g(()=>[a(Ge,{id:"authDialog",ref:"form"},{default:g(()=>[a(F,{modelValue:s.credentials.username,"onUpdate:modelValue":o[0]||(o[0]=n=>s.credentials.username=n),autocomplete:"username",label:"Username",rules:s.rules.username,clearable:"",autofocus:"",onKeydown:o[1]||(o[1]=$(n=>e.$refs.password.focus(),["enter"]))},null,8,["modelValue","rules"]),a(F,{ref:"password",modelValue:s.credentials.password,"onUpdate:modelValue":o[2]||(o[2]=n=>s.credentials.password=n),autocomplete:s.registerMode?"new-password":"current-password",label:"Password",rules:s.rules.password,clearable:"",type:"password",onKeydown:o[3]||(o[3]=$(n=>{s.registerMode?e.$refs.passwordConfirm.focus():r.submit()},["enter"]))},null,8,["modelValue","autocomplete","rules"]),a(_e,null,{default:g(()=>[s.registerMode?(u(),c(F,{key:0,ref:"passwordConfirm",modelValue:s.credentials.passwordConfirm,"onUpdate:modelValue":o[4]||(o[4]=n=>s.credentials.passwordConfirm=n),autocomplete:"new-password",label:"Confirm Password",rules:s.rules.passwordConfirm,clearable:"",type:"password",onKeydown:$(r.submit,["enter"])},null,8,["modelValue","rules","onKeydown"])):R("",!0)]),_:1}),e.adminFlags.registration?(u(),c(tt,{key:0,modelValue:s.registerMode,"onUpdate:modelValue":o[5]||(o[5]=n=>s.registerMode=n),label:"Register"},{default:g(()=>[be(" Register ")]),_:1},8,["modelValue"])):R("",!0),a(d,{verb:s.registerMode?"Register":"Login",table:"",disabled:!s.submitButtonEnabled,onSubmit:r.submit,onCancel:o[6]||(o[6]=n=>e.showLoginDialog=!1)},null,8,["verb","disabled","onSubmit"])]),_:1},512)]),_:1},8,["modelValue"])}const ot=k(at,[["render",st],["__scopeId","data-v-b0ce47fa"]]),nt={name:"AuthMenu",components:{AuthLoginDialog:ot,ChangePasswordDialog:Ke,DrawerItem:T},props:{showChangePassword:{type:Boolean,default:!0}},data(){return{mdiLogout:ke}},computed:{...P(y,{user:e=>e.user}),logoutTitle(){return`Logout ${this.user.username}`}},methods:{...X(y,["logout"])}},rt={key:0};function it(e,o,i,t,s,r){const l=m("DrawerItem"),d=m("ChangePasswordDialog"),n=m("AuthLoginDialog");return e.user?(u(),Se("div",rt,[a(l,{"prepend-icon":s.mdiLogout,title:r.logoutTitle,onClick:Ve(e.logout,["stop"])},null,8,["prepend-icon","title","onClick"]),i.showChangePassword?(u(),c(d,{key:0,user:e.user},null,8,["user"])):R("",!0)])):(u(),c(n,{key:1}))}const lt=k(nt,[["render",it]]),dt={name:"PlaceholderLoading",props:{indeterminate:{type:Boolean,default:!0}}};function ut(e,o,i,t,s,r){return u(),c(J,V({"aria-label":"loading",class:"codexProgressCircular",indeterminate:i.indeterminate},e.$attrs),null,16,["indeterminate"])}const ct=k(dt,[["render",ut],["__scopeId","data-v-7bb4cf22"]]),mt=N({actionText:String,bgColor:String,color:String,icon:Ce,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String,...Z(),...ee(),...Le({size:void 0}),...Pe()},"VEmptyState"),ft=z()({name:"VEmptyState",props:mt(),emits:{"click:action":e=>!0},setup(e,o){let{emit:i,slots:t}=o;const{themeClasses:s}=Ae(e),{backgroundColorClasses:r,backgroundColorStyles:l}=De(Be(e,"bgColor")),{dimensionStyles:d}=te(e),{displayClasses:n}=Ee();function w(_){i("click:action",_)}return W(()=>{var L,h,p;const _=!!(t.actions||e.actionText),C=!!(t.headline||e.headline),A=!!(t.title||e.title),D=!!(t.text||e.text),B=!!(t.media||e.image||e.icon),b=e.size||(e.image?200:96);return a("div",{class:["v-empty-state",{[`v-empty-state--${e.justify}`]:!0},s.value,r.value,n.value,e.class],style:[l.value,d.value,e.style]},[B&&a("div",{key:"media",class:"v-empty-state__media"},[t.media?a(U,{key:"media-defaults",defaults:{VImg:{src:e.image,height:b},VIcon:{size:b,icon:e.icon}}},{default:()=>[t.media()]}):a(Q,null,[e.image?a(Ie,{key:"image",src:e.image,height:b},null):e.icon?a(Y,{key:"icon",color:e.color,size:b,icon:e.icon},null):void 0])]),C&&a("div",{key:"headline",class:"v-empty-state__headline"},[((L=t.headline)==null?void 0:L.call(t))??e.headline]),A&&a("div",{key:"title",class:"v-empty-state__title"},[((h=t.title)==null?void 0:h.call(t))??e.title]),D&&a("div",{key:"text",class:"v-empty-state__text",style:{maxWidth:Me(e.textWidth)}},[((p=t.text)==null?void 0:p.call(t))??e.text]),t.default&&a("div",{key:"content",class:"v-empty-state__content"},[t.default()]),_&&a("div",{key:"actions",class:"v-empty-state__actions"},[a(U,{defaults:{VBtn:{class:"v-empty-state__action-btn",color:e.color??"surface-variant",text:e.actionText}}},{default:()=>{var v;return[((v=t.actions)==null?void 0:v.call(t,{props:{onClick:w}}))??a(xe,{onClick:w},null)]}})])])}),{}}}),gt={name:"EmptyState"};function ht(e,o,i,t,s,r){return u(),c(ft,{class:"empty"},$e({_:2},[Fe(e.$slots,(l,d)=>({name:d,fn:g(n=>[Ue(e.$slots,d,V({props:l},n),void 0,!0)])}))]),1024)}const pt=k(gt,[["render",ht],["__scopeId","data-v-c7e33c8c"]]),vt=N({scrollable:Boolean,...Z(),...ee(),...Re({tag:"main"})},"VMain"),yt=z()({name:"VMain",props:vt(),setup(e,o){let{slots:i}=o;const{dimensionStyles:t}=te(e),{mainStyles:s,layoutIsReady:r}=Oe(),{ssrBootStyles:l}=Te();return W(()=>a(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[s.value,l.value,t.value,e.style]},{default:()=>{var d,n;return[e.scrollable?a("div",{class:"v-main__scroller"},[(d=i.default)==null?void 0:d.call(i)]):(n=i.default)==null?void 0:n.call(i)]}})),r}}),wt={name:"UnauthorizedEmptyState",components:{AdminBrowserLink:Ze,AuthMenu:lt,PlaceholderLoading:ct,EmptyState:pt},props:{admin:{type:Boolean,default:!1}},data(){return{mdiLockOutline:Ne}},computed:{...H(y,["isAuthChecked","isAuthorized","isUserAdmin"]),...P(y,{registration:e=>e.adminFlags.registration}),text(){return this.registration?"":"Registration is disabled"}}},_t={class:"login"};function bt(e,o,i,t,s,r){const l=m("AdminBrowserLink"),d=m("AuthMenu"),n=m("EmptyState"),w=m("PlaceholderLoading");return u(),c(yt,{id:"unauthorized"},{default:g(()=>[e.isAuthChecked?(u(),c(n,{key:0,class:"empty",headline:"Unauthorized",text:r.text,icon:s.mdiLockOutline},{default:g(()=>[ze("div",_t,[a(l),a(d,{"show-change-password":!1})])]),_:1},8,["text","icon"])):(u(),c(w,{key:1,id:"unauthorizedPlaceholder"}))]),_:1})}const At=k(wt,[["render",bt],["__scopeId","data-v-9f4d680f"]]);export{Ze as A,pt as E,ct as P,At as U,yt as V,lt as a};