codex 1.6.9a0__py3-none-any.whl → 1.6.10__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (675) hide show
  1. codex/librarian/cron/crond.py +10 -13
  2. codex/librarian/importer/importerd.py +19 -24
  3. codex/librarian/importer/moved.py +73 -176
  4. codex/librarian/importer/query_fks.py +11 -17
  5. codex/librarian/janitor/janitor.py +4 -12
  6. codex/librarian/janitor/status.py +0 -1
  7. codex/librarian/janitor/tasks.py +7 -14
  8. codex/librarian/janitor/update.py +2 -21
  9. codex/librarian/janitor/vacuum.py +2 -1
  10. codex/librarian/telemeter/stats.py +16 -20
  11. codex/librarian/telemeter/telemeter.py +7 -10
  12. codex/librarian/watchdog/dir_snapshot_diff.py +17 -19
  13. codex/librarian/watchdog/emitter.py +14 -12
  14. codex/librarian/watchdog/events.py +1 -1
  15. codex/librarian/watchdog/observers.py +4 -4
  16. codex/search/backend.py +2 -9
  17. codex/serializers/browser/mixins.py +2 -1
  18. codex/settings/settings.py +1 -5
  19. codex/signals/django_signals.py +9 -0
  20. codex/startup.py +3 -1
  21. codex/static_root/assets/VCheckbox-BoSq-Gp8.45ea578c17b0.js +1 -0
  22. codex/static_root/assets/VCheckbox-BoSq-Gp8.45ea578c17b0.js.br +0 -0
  23. codex/static_root/assets/VCheckbox-BoSq-Gp8.45ea578c17b0.js.gz +0 -0
  24. codex/static_root/assets/VCheckbox-BoSq-Gp8.js +1 -0
  25. codex/static_root/assets/VCheckbox-BoSq-Gp8.js.br +0 -0
  26. codex/static_root/assets/VCheckbox-BoSq-Gp8.js.gz +0 -0
  27. codex/static_root/assets/VCheckboxBtn-k69hHqz6.a5c3131a12bf.js +1 -0
  28. codex/static_root/assets/VCheckboxBtn-k69hHqz6.a5c3131a12bf.js.br +0 -0
  29. codex/static_root/assets/VCheckboxBtn-k69hHqz6.a5c3131a12bf.js.gz +0 -0
  30. codex/static_root/assets/VCheckboxBtn-k69hHqz6.js +1 -0
  31. codex/static_root/assets/VCheckboxBtn-k69hHqz6.js.br +0 -0
  32. codex/static_root/assets/VCheckboxBtn-k69hHqz6.js.gz +0 -0
  33. codex/static_root/assets/VCombobox-BksEr4D_.73429bb75f42.css +1 -0
  34. codex/static_root/assets/VCombobox-BksEr4D_.73429bb75f42.css.br +0 -0
  35. codex/static_root/assets/VCombobox-BksEr4D_.73429bb75f42.css.gz +0 -0
  36. codex/static_root/assets/VCombobox-BksEr4D_.css +1 -0
  37. codex/static_root/assets/VCombobox-BksEr4D_.css.br +0 -0
  38. codex/static_root/assets/VCombobox-BksEr4D_.css.gz +0 -0
  39. codex/static_root/assets/VCombobox-CLEC9nAk.3ed4e3a0cb6e.js +1 -0
  40. codex/static_root/assets/VCombobox-CLEC9nAk.3ed4e3a0cb6e.js.br +0 -0
  41. codex/static_root/assets/VCombobox-CLEC9nAk.3ed4e3a0cb6e.js.gz +0 -0
  42. codex/static_root/assets/VCombobox-CLEC9nAk.js +1 -0
  43. codex/static_root/assets/VCombobox-CLEC9nAk.js.br +0 -0
  44. codex/static_root/assets/VCombobox-CLEC9nAk.js.gz +0 -0
  45. codex/static_root/assets/VDialog-Dir_-l5o.5de2881bebcc.js +1 -0
  46. codex/static_root/assets/VDialog-Dir_-l5o.5de2881bebcc.js.br +0 -0
  47. codex/static_root/assets/VDialog-Dir_-l5o.5de2881bebcc.js.gz +0 -0
  48. codex/static_root/assets/VDialog-Dir_-l5o.js +1 -0
  49. codex/static_root/assets/VDialog-Dir_-l5o.js.br +0 -0
  50. codex/static_root/assets/VDialog-Dir_-l5o.js.gz +0 -0
  51. codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css +1 -0
  52. codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css.br +0 -0
  53. codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css.gz +0 -0
  54. codex/static_root/assets/VDialog-lQ13FnRR.css +1 -0
  55. codex/static_root/assets/VDialog-lQ13FnRR.css.br +0 -0
  56. codex/static_root/assets/VDialog-lQ13FnRR.css.gz +0 -0
  57. codex/static_root/assets/VExpansionPanels-DSywtH47.8bff92b5b38b.js +1 -0
  58. codex/static_root/assets/VExpansionPanels-DSywtH47.8bff92b5b38b.js.br +0 -0
  59. codex/static_root/assets/VExpansionPanels-DSywtH47.8bff92b5b38b.js.gz +0 -0
  60. codex/static_root/assets/VExpansionPanels-DSywtH47.js +1 -0
  61. codex/static_root/assets/VExpansionPanels-DSywtH47.js.br +0 -0
  62. codex/static_root/assets/VExpansionPanels-DSywtH47.js.gz +0 -0
  63. codex/static_root/assets/VExpansionPanels-DsEXVcCv.20b475255e66.css +1 -0
  64. codex/static_root/assets/VExpansionPanels-DsEXVcCv.20b475255e66.css.br +0 -0
  65. codex/static_root/assets/VExpansionPanels-DsEXVcCv.20b475255e66.css.gz +0 -0
  66. codex/static_root/assets/VExpansionPanels-DsEXVcCv.css +1 -0
  67. codex/static_root/assets/VExpansionPanels-DsEXVcCv.css.br +0 -0
  68. codex/static_root/assets/VExpansionPanels-DsEXVcCv.css.gz +0 -0
  69. codex/static_root/assets/VRadioGroup-BwpxWbvH.1e52b683c2bf.js +1 -0
  70. codex/static_root/assets/VRadioGroup-BwpxWbvH.1e52b683c2bf.js.br +0 -0
  71. codex/static_root/assets/VRadioGroup-BwpxWbvH.1e52b683c2bf.js.gz +0 -0
  72. codex/static_root/assets/VRadioGroup-BwpxWbvH.js +1 -0
  73. codex/static_root/assets/VRadioGroup-BwpxWbvH.js.br +0 -0
  74. codex/static_root/assets/VRadioGroup-BwpxWbvH.js.gz +0 -0
  75. codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css +1 -0
  76. codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css.br +0 -0
  77. codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css.gz +0 -0
  78. codex/static_root/assets/VSelect-ARDhJiQK.css +1 -0
  79. codex/static_root/assets/VSelect-ARDhJiQK.css.br +0 -0
  80. codex/static_root/assets/VSelect-ARDhJiQK.css.gz +0 -0
  81. codex/static_root/assets/VSelect-cGleKlm7.82f880fcf439.js +1 -0
  82. codex/static_root/assets/VSelect-cGleKlm7.82f880fcf439.js.br +0 -0
  83. codex/static_root/assets/VSelect-cGleKlm7.82f880fcf439.js.gz +0 -0
  84. codex/static_root/assets/VSelect-cGleKlm7.js +1 -0
  85. codex/static_root/assets/VSelect-cGleKlm7.js.br +0 -0
  86. codex/static_root/assets/VSelect-cGleKlm7.js.gz +0 -0
  87. codex/static_root/assets/{VSelectionControl-CiViEYoC.c77bb19a4a06.css → VSelectionControl-BFq--28I.9687c77461fc.css} +1 -1
  88. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css.br +0 -0
  89. codex/static_root/assets/VSelectionControl-BFq--28I.9687c77461fc.css.gz +0 -0
  90. codex/static_root/assets/{VSelectionControl-CiViEYoC.css → VSelectionControl-BFq--28I.css} +1 -1
  91. codex/static_root/assets/VSelectionControl-BFq--28I.css.br +0 -0
  92. codex/static_root/assets/VSelectionControl-BFq--28I.css.gz +0 -0
  93. codex/static_root/assets/VSelectionControl-_6sv90xF.74f88fc610a2.js +1 -0
  94. codex/static_root/assets/VSelectionControl-_6sv90xF.74f88fc610a2.js.br +0 -0
  95. codex/static_root/assets/VSelectionControl-_6sv90xF.74f88fc610a2.js.gz +0 -0
  96. codex/static_root/assets/VSelectionControl-_6sv90xF.js +1 -0
  97. codex/static_root/assets/VSelectionControl-_6sv90xF.js.br +0 -0
  98. codex/static_root/assets/VSelectionControl-_6sv90xF.js.gz +0 -0
  99. codex/static_root/assets/{VSlideGroup-P_U-rmf2.ca3efe698702.js → VSlideGroup-DbQOqyzs.183374da65d9.js} +1 -1
  100. codex/static_root/assets/VSlideGroup-DbQOqyzs.183374da65d9.js.br +0 -0
  101. codex/static_root/assets/VSlideGroup-DbQOqyzs.183374da65d9.js.gz +0 -0
  102. codex/static_root/assets/{VSlideGroup-P_U-rmf2.js → VSlideGroup-DbQOqyzs.js} +1 -1
  103. codex/static_root/assets/VSlideGroup-DbQOqyzs.js.br +0 -0
  104. codex/static_root/assets/VSlideGroup-DbQOqyzs.js.gz +0 -0
  105. codex/static_root/assets/{VTable-Coq-QwtQ.2b04104cbf05.js → VTable-CF4zd2t_.3ade1377ce12.js} +1 -1
  106. codex/static_root/assets/VTable-CF4zd2t_.3ade1377ce12.js.br +0 -0
  107. codex/static_root/assets/VTable-CF4zd2t_.3ade1377ce12.js.gz +0 -0
  108. codex/static_root/assets/{VTable-Coq-QwtQ.js → VTable-CF4zd2t_.js} +1 -1
  109. codex/static_root/assets/VTable-CF4zd2t_.js.br +0 -0
  110. codex/static_root/assets/VTable-CF4zd2t_.js.gz +0 -0
  111. codex/static_root/assets/VTable-DflzroDq.160504d82195.css +1 -0
  112. codex/static_root/assets/VTable-DflzroDq.160504d82195.css.br +0 -0
  113. codex/static_root/assets/VTable-DflzroDq.160504d82195.css.gz +0 -0
  114. codex/static_root/assets/VTable-DflzroDq.css +1 -0
  115. codex/static_root/assets/VTable-DflzroDq.css.br +0 -0
  116. codex/static_root/assets/VTable-DflzroDq.css.gz +0 -0
  117. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css +1 -0
  118. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.br +0 -0
  119. codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.gz +0 -0
  120. codex/static_root/assets/VTextField-BssVoDhB.css +1 -0
  121. codex/static_root/assets/VTextField-BssVoDhB.css.br +0 -0
  122. codex/static_root/assets/VTextField-BssVoDhB.css.gz +0 -0
  123. codex/static_root/assets/VTextField-DcZhRvPB.5eba90d2c45f.js +1 -0
  124. codex/static_root/assets/VTextField-DcZhRvPB.5eba90d2c45f.js.br +0 -0
  125. codex/static_root/assets/VTextField-DcZhRvPB.5eba90d2c45f.js.gz +0 -0
  126. codex/static_root/assets/VTextField-DcZhRvPB.js +1 -0
  127. codex/static_root/assets/VTextField-DcZhRvPB.js.br +0 -0
  128. codex/static_root/assets/VTextField-DcZhRvPB.js.gz +0 -0
  129. codex/static_root/assets/VWindowItem-0P4rgYDy.b96b44e20f8d.js +1 -0
  130. codex/static_root/assets/VWindowItem-0P4rgYDy.b96b44e20f8d.js.br +0 -0
  131. codex/static_root/assets/VWindowItem-0P4rgYDy.b96b44e20f8d.js.gz +0 -0
  132. codex/static_root/assets/VWindowItem-0P4rgYDy.js +1 -0
  133. codex/static_root/assets/VWindowItem-0P4rgYDy.js.br +0 -0
  134. codex/static_root/assets/VWindowItem-0P4rgYDy.js.gz +0 -0
  135. codex/static_root/assets/admin-CM5v3ffD.1889b8c1df83.js +1 -0
  136. codex/static_root/assets/admin-CM5v3ffD.1889b8c1df83.js.br +0 -0
  137. codex/static_root/assets/admin-CM5v3ffD.1889b8c1df83.js.gz +0 -0
  138. codex/static_root/assets/admin-CM5v3ffD.js +1 -0
  139. codex/static_root/assets/admin-CM5v3ffD.js.br +0 -0
  140. codex/static_root/assets/admin-CM5v3ffD.js.gz +0 -0
  141. codex/static_root/assets/{admin-CWEjaFr5.7d4523387384.css → admin-D4sw3N4T.b590f88a62cf.css} +1 -1
  142. codex/static_root/assets/admin-D4sw3N4T.b590f88a62cf.css.br +0 -0
  143. codex/static_root/assets/admin-D4sw3N4T.b590f88a62cf.css.gz +0 -0
  144. codex/static_root/assets/{admin-CWEjaFr5.css → admin-D4sw3N4T.css} +1 -1
  145. codex/static_root/assets/admin-D4sw3N4T.css.br +0 -0
  146. codex/static_root/assets/admin-D4sw3N4T.css.gz +0 -0
  147. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.3a7af8ec4462.css +1 -0
  148. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.3a7af8ec4462.css.br +0 -0
  149. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.3a7af8ec4462.css.gz +0 -0
  150. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.css +1 -0
  151. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.css.br +0 -0
  152. codex/static_root/assets/admin-drawer-panel-DOrhl9Nb.css.gz +0 -0
  153. codex/static_root/assets/admin-drawer-panel-D_qGurp0.2904617d0407.js +61 -0
  154. codex/static_root/assets/admin-drawer-panel-D_qGurp0.2904617d0407.js.br +0 -0
  155. codex/static_root/assets/admin-drawer-panel-D_qGurp0.2904617d0407.js.gz +0 -0
  156. codex/static_root/assets/admin-drawer-panel-D_qGurp0.js +61 -0
  157. codex/static_root/assets/admin-drawer-panel-D_qGurp0.js.br +0 -0
  158. codex/static_root/assets/admin-drawer-panel-D_qGurp0.js.gz +0 -0
  159. codex/static_root/assets/{browser-Binc3n9H.313722d27ca3.css → browser-B61tfW_K.61b1d18f4479.css} +1 -1
  160. codex/static_root/assets/browser-B61tfW_K.61b1d18f4479.css.br +0 -0
  161. codex/static_root/assets/browser-B61tfW_K.61b1d18f4479.css.gz +0 -0
  162. codex/static_root/assets/{browser-Binc3n9H.css → browser-B61tfW_K.css} +1 -1
  163. codex/static_root/assets/browser-B61tfW_K.css.br +0 -0
  164. codex/static_root/assets/browser-B61tfW_K.css.gz +0 -0
  165. codex/static_root/assets/browser-DnLOg4a-.3d16651e4daa.js +1 -0
  166. codex/static_root/assets/browser-DnLOg4a-.3d16651e4daa.js.br +0 -0
  167. codex/static_root/assets/browser-DnLOg4a-.3d16651e4daa.js.gz +0 -0
  168. codex/static_root/assets/browser-DnLOg4a-.js +1 -0
  169. codex/static_root/assets/browser-DnLOg4a-.js.br +0 -0
  170. codex/static_root/assets/browser-DnLOg4a-.js.gz +0 -0
  171. codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css +1 -0
  172. codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css.br +0 -0
  173. codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css.gz +0 -0
  174. codex/static_root/assets/change-password-dialog-0u6IJA87.css +1 -0
  175. codex/static_root/assets/change-password-dialog-0u6IJA87.css.br +0 -0
  176. codex/static_root/assets/change-password-dialog-0u6IJA87.css.gz +0 -0
  177. codex/static_root/assets/change-password-dialog-B_FNP488.6009508df02f.js +1 -0
  178. codex/static_root/assets/change-password-dialog-B_FNP488.6009508df02f.js.br +0 -0
  179. codex/static_root/assets/change-password-dialog-B_FNP488.6009508df02f.js.gz +0 -0
  180. codex/static_root/assets/change-password-dialog-B_FNP488.js +1 -0
  181. codex/static_root/assets/change-password-dialog-B_FNP488.js.br +0 -0
  182. codex/static_root/assets/change-password-dialog-B_FNP488.js.gz +0 -0
  183. codex/static_root/assets/confirm-dialog-CEegFOPy.49243b6548c7.js +1 -0
  184. codex/static_root/assets/confirm-dialog-CEegFOPy.49243b6548c7.js.br +0 -0
  185. codex/static_root/assets/confirm-dialog-CEegFOPy.49243b6548c7.js.gz +0 -0
  186. codex/static_root/assets/confirm-dialog-CEegFOPy.js +1 -0
  187. codex/static_root/assets/confirm-dialog-CEegFOPy.js.br +0 -0
  188. codex/static_root/assets/confirm-dialog-CEegFOPy.js.gz +0 -0
  189. codex/static_root/assets/{datetime-column-BRZDPl2k.f6ae3ce94da7.js → datetime-column-C10LMvbg.dd6d719d5ceb.js} +1 -1
  190. codex/static_root/assets/datetime-column-C10LMvbg.dd6d719d5ceb.js.br +0 -0
  191. codex/static_root/assets/datetime-column-C10LMvbg.dd6d719d5ceb.js.gz +0 -0
  192. codex/static_root/assets/{datetime-column-BRZDPl2k.js → datetime-column-C10LMvbg.js} +1 -1
  193. codex/static_root/assets/datetime-column-C10LMvbg.js.br +0 -0
  194. codex/static_root/assets/datetime-column-C10LMvbg.js.gz +0 -0
  195. codex/static_root/assets/{filter-Tk2N9xgO.02f23827434b.js → filter-C96Ludgn.7238da6d21fd.js} +1 -1
  196. codex/static_root/assets/filter-C96Ludgn.7238da6d21fd.js.br +0 -0
  197. codex/static_root/assets/filter-C96Ludgn.7238da6d21fd.js.gz +0 -0
  198. codex/static_root/assets/{filter-Tk2N9xgO.js → filter-C96Ludgn.js} +1 -1
  199. codex/static_root/assets/filter-C96Ludgn.js.br +0 -0
  200. codex/static_root/assets/filter-C96Ludgn.js.gz +0 -0
  201. codex/static_root/assets/flag-tab-C3MlArdN.2a06f46f4951.js +1 -0
  202. codex/static_root/assets/flag-tab-C3MlArdN.2a06f46f4951.js.br +0 -0
  203. codex/static_root/assets/flag-tab-C3MlArdN.2a06f46f4951.js.gz +0 -0
  204. codex/static_root/assets/flag-tab-C3MlArdN.js +1 -0
  205. codex/static_root/assets/flag-tab-C3MlArdN.js.br +0 -0
  206. codex/static_root/assets/flag-tab-C3MlArdN.js.gz +0 -0
  207. codex/static_root/assets/group-tab-BcQtQB5p.41780aa82feb.js +1 -0
  208. codex/static_root/assets/group-tab-BcQtQB5p.41780aa82feb.js.br +0 -0
  209. codex/static_root/assets/group-tab-BcQtQB5p.41780aa82feb.js.gz +0 -0
  210. codex/static_root/assets/group-tab-BcQtQB5p.js +1 -0
  211. codex/static_root/assets/group-tab-BcQtQB5p.js.br +0 -0
  212. codex/static_root/assets/group-tab-BcQtQB5p.js.gz +0 -0
  213. codex/static_root/assets/http-error-DskCJS4d.e51aabff2171.js +1 -0
  214. codex/static_root/assets/http-error-DskCJS4d.e51aabff2171.js.br +0 -0
  215. codex/static_root/assets/http-error-DskCJS4d.e51aabff2171.js.gz +0 -0
  216. codex/static_root/assets/http-error-DskCJS4d.js +1 -0
  217. codex/static_root/assets/http-error-DskCJS4d.js.br +0 -0
  218. codex/static_root/assets/http-error-DskCJS4d.js.gz +0 -0
  219. codex/static_root/assets/library-tab-BygwYPnO.94e92aa60bf2.css +1 -0
  220. codex/static_root/assets/library-tab-BygwYPnO.94e92aa60bf2.css.br +0 -0
  221. codex/static_root/assets/library-tab-BygwYPnO.94e92aa60bf2.css.gz +0 -0
  222. codex/static_root/assets/library-tab-BygwYPnO.css +1 -0
  223. codex/static_root/assets/library-tab-BygwYPnO.css.br +0 -0
  224. codex/static_root/assets/library-tab-BygwYPnO.css.gz +0 -0
  225. codex/static_root/assets/library-tab-ooPl8bku.bfcc0f7b4432.js +1 -0
  226. codex/static_root/assets/library-tab-ooPl8bku.bfcc0f7b4432.js.br +0 -0
  227. codex/static_root/assets/library-tab-ooPl8bku.bfcc0f7b4432.js.gz +0 -0
  228. codex/static_root/assets/library-tab-ooPl8bku.js +1 -0
  229. codex/static_root/assets/library-tab-ooPl8bku.js.br +0 -0
  230. codex/static_root/assets/library-tab-ooPl8bku.js.gz +0 -0
  231. codex/static_root/assets/main-C_v3V6g9.40fbf6d42a93.js +1 -0
  232. codex/static_root/assets/main-C_v3V6g9.40fbf6d42a93.js.br +0 -0
  233. codex/static_root/assets/main-C_v3V6g9.40fbf6d42a93.js.gz +0 -0
  234. codex/static_root/assets/main-C_v3V6g9.js +1 -0
  235. codex/static_root/assets/main-C_v3V6g9.js.br +0 -0
  236. codex/static_root/assets/main-C_v3V6g9.js.gz +0 -0
  237. codex/static_root/assets/{main-BZ73p_WW.css → main-Ztp855PW.css} +1 -1
  238. codex/static_root/assets/main-Ztp855PW.css.br +0 -0
  239. codex/static_root/assets/{main-BZ73p_WW.css.gz → main-Ztp855PW.css.gz} +0 -0
  240. codex/static_root/assets/{main-BZ73p_WW.d529e8b3f52a.css → main-Ztp855PW.d46d718fac45.css} +1 -1
  241. codex/static_root/assets/main-Ztp855PW.d46d718fac45.css.br +0 -0
  242. codex/static_root/assets/{main-BZ73p_WW.d529e8b3f52a.css.gz → main-Ztp855PW.d46d718fac45.css.gz} +0 -0
  243. codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css +1 -0
  244. codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css.br +0 -0
  245. codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css.gz +0 -0
  246. codex/static_root/assets/pagination-toolbar-BA9ifTed.css +1 -0
  247. codex/static_root/assets/pagination-toolbar-BA9ifTed.css.br +0 -0
  248. codex/static_root/assets/pagination-toolbar-BA9ifTed.css.gz +0 -0
  249. codex/static_root/assets/pagination-toolbar-DytNZNBD.be56c9194ecb.js +1 -0
  250. codex/static_root/assets/pagination-toolbar-DytNZNBD.be56c9194ecb.js.br +0 -0
  251. codex/static_root/assets/pagination-toolbar-DytNZNBD.be56c9194ecb.js.gz +0 -0
  252. codex/static_root/assets/pagination-toolbar-DytNZNBD.js +1 -0
  253. codex/static_root/assets/pagination-toolbar-DytNZNBD.js.br +0 -0
  254. codex/static_root/assets/pagination-toolbar-DytNZNBD.js.gz +0 -0
  255. codex/static_root/assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css +1 -0
  256. codex/static_root/assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css.br +0 -0
  257. codex/static_root/assets/pdf-doc-CMzaSV_K.8cd4b3e65f9a.css.gz +0 -0
  258. codex/static_root/assets/pdf-doc-CMzaSV_K.css +1 -0
  259. codex/static_root/assets/pdf-doc-CMzaSV_K.css.br +0 -0
  260. codex/static_root/assets/pdf-doc-CMzaSV_K.css.gz +0 -0
  261. codex/static_root/assets/pdf-doc-k6Gv5nwG.22b85beec022.js +305 -0
  262. codex/static_root/assets/pdf-doc-k6Gv5nwG.22b85beec022.js.br +0 -0
  263. codex/static_root/assets/pdf-doc-k6Gv5nwG.22b85beec022.js.gz +0 -0
  264. codex/static_root/assets/pdf-doc-k6Gv5nwG.js +305 -0
  265. codex/static_root/assets/pdf-doc-k6Gv5nwG.js.br +0 -0
  266. codex/static_root/assets/pdf-doc-k6Gv5nwG.js.gz +0 -0
  267. codex/static_root/assets/reader-RcTjScAE.41459ab8f803.js +2 -0
  268. codex/static_root/assets/reader-RcTjScAE.41459ab8f803.js.br +0 -0
  269. codex/static_root/assets/reader-RcTjScAE.41459ab8f803.js.gz +0 -0
  270. codex/static_root/assets/reader-RcTjScAE.js +2 -0
  271. codex/static_root/assets/reader-RcTjScAE.js.br +0 -0
  272. codex/static_root/assets/reader-RcTjScAE.js.gz +0 -0
  273. codex/static_root/assets/reader-YbzUiD0T.css +1 -0
  274. codex/static_root/assets/reader-YbzUiD0T.css.br +0 -0
  275. codex/static_root/assets/reader-YbzUiD0T.css.gz +0 -0
  276. codex/static_root/assets/reader-YbzUiD0T.efb15835b39d.css +1 -0
  277. codex/static_root/assets/reader-YbzUiD0T.efb15835b39d.css.br +0 -0
  278. codex/static_root/assets/reader-YbzUiD0T.efb15835b39d.css.gz +0 -0
  279. codex/static_root/assets/{relation-chips-ByfWwuQc.01269a188e01.css → relation-chips-BGitp3yx.b3e7d178a615.css} +1 -1
  280. codex/static_root/assets/relation-chips-BGitp3yx.b3e7d178a615.css.br +0 -0
  281. codex/static_root/assets/relation-chips-BGitp3yx.b3e7d178a615.css.gz +0 -0
  282. codex/static_root/assets/{relation-chips-ByfWwuQc.css → relation-chips-BGitp3yx.css} +1 -1
  283. codex/static_root/assets/relation-chips-BGitp3yx.css.br +0 -0
  284. codex/static_root/assets/relation-chips-BGitp3yx.css.gz +0 -0
  285. codex/static_root/assets/relation-chips-DE08G87m.ea1b8391feff.js +1 -0
  286. codex/static_root/assets/relation-chips-DE08G87m.ea1b8391feff.js.br +0 -0
  287. codex/static_root/assets/relation-chips-DE08G87m.ea1b8391feff.js.gz +0 -0
  288. codex/static_root/assets/relation-chips-DE08G87m.js +1 -0
  289. codex/static_root/assets/relation-chips-DE08G87m.js.br +0 -0
  290. codex/static_root/assets/relation-chips-DE08G87m.js.gz +0 -0
  291. codex/static_root/assets/settings-drawer-BF5NdklY.0c3f4f51c12f.js +2 -0
  292. codex/static_root/assets/settings-drawer-BF5NdklY.0c3f4f51c12f.js.br +0 -0
  293. codex/static_root/assets/settings-drawer-BF5NdklY.0c3f4f51c12f.js.gz +0 -0
  294. codex/static_root/assets/settings-drawer-BF5NdklY.js +2 -0
  295. codex/static_root/assets/settings-drawer-BF5NdklY.js.br +0 -0
  296. codex/static_root/assets/settings-drawer-BF5NdklY.js.gz +0 -0
  297. codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css +1 -0
  298. codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.br +0 -0
  299. codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.gz +0 -0
  300. codex/static_root/assets/settings-drawer-nZ9HvKSZ.css +1 -0
  301. codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.br +0 -0
  302. codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.gz +0 -0
  303. codex/static_root/assets/{stats-tab-BXGisn5N.9b7a71e7fe28.css → stats-tab-BVZzfwi1.28f07f038e88.css} +1 -1
  304. codex/static_root/assets/stats-tab-BVZzfwi1.28f07f038e88.css.br +0 -0
  305. codex/static_root/assets/stats-tab-BVZzfwi1.28f07f038e88.css.gz +0 -0
  306. codex/static_root/assets/{stats-tab-BXGisn5N.css → stats-tab-BVZzfwi1.css} +1 -1
  307. codex/static_root/assets/stats-tab-BVZzfwi1.css.br +0 -0
  308. codex/static_root/assets/stats-tab-BVZzfwi1.css.gz +0 -0
  309. codex/static_root/assets/stats-tab-pGjIjQgL.f5f939abe108.js +1 -0
  310. codex/static_root/assets/stats-tab-pGjIjQgL.f5f939abe108.js.br +0 -0
  311. codex/static_root/assets/stats-tab-pGjIjQgL.f5f939abe108.js.gz +0 -0
  312. codex/static_root/assets/stats-tab-pGjIjQgL.js +1 -0
  313. codex/static_root/assets/stats-tab-pGjIjQgL.js.br +0 -0
  314. codex/static_root/assets/stats-tab-pGjIjQgL.js.gz +0 -0
  315. codex/static_root/assets/task-tab-DTZ-yJon.2000bd142ca2.js +1 -0
  316. codex/static_root/assets/task-tab-DTZ-yJon.2000bd142ca2.js.br +0 -0
  317. codex/static_root/assets/task-tab-DTZ-yJon.2000bd142ca2.js.gz +0 -0
  318. codex/static_root/assets/task-tab-DTZ-yJon.js +1 -0
  319. codex/static_root/assets/task-tab-DTZ-yJon.js.br +0 -0
  320. codex/static_root/assets/task-tab-DTZ-yJon.js.gz +0 -0
  321. codex/static_root/assets/unauthorized-BlNvdM7v.e3a8b210f100.js +1 -0
  322. codex/static_root/assets/unauthorized-BlNvdM7v.e3a8b210f100.js.br +0 -0
  323. codex/static_root/assets/unauthorized-BlNvdM7v.e3a8b210f100.js.gz +0 -0
  324. codex/static_root/assets/unauthorized-BlNvdM7v.js +1 -0
  325. codex/static_root/assets/unauthorized-BlNvdM7v.js.br +0 -0
  326. codex/static_root/assets/unauthorized-BlNvdM7v.js.gz +0 -0
  327. codex/static_root/assets/{unauthorized-muDsv-rC.2166ec8b3a32.css → unauthorized-YhYCb_lH.9b3ed0ae3331.css} +1 -1
  328. codex/static_root/assets/unauthorized-YhYCb_lH.9b3ed0ae3331.css.br +0 -0
  329. codex/static_root/assets/unauthorized-YhYCb_lH.9b3ed0ae3331.css.gz +0 -0
  330. codex/static_root/assets/{unauthorized-muDsv-rC.css → unauthorized-YhYCb_lH.css} +1 -1
  331. codex/static_root/assets/unauthorized-YhYCb_lH.css.br +0 -0
  332. codex/static_root/assets/unauthorized-YhYCb_lH.css.gz +0 -0
  333. codex/static_root/assets/user-tab-r6e-d5QN.30aebcf4898f.js +1 -0
  334. codex/static_root/assets/user-tab-r6e-d5QN.30aebcf4898f.js.br +0 -0
  335. codex/static_root/assets/user-tab-r6e-d5QN.30aebcf4898f.js.gz +0 -0
  336. codex/static_root/assets/user-tab-r6e-d5QN.js +1 -0
  337. codex/static_root/assets/user-tab-r6e-d5QN.js.br +0 -0
  338. codex/static_root/assets/user-tab-r6e-d5QN.js.gz +0 -0
  339. codex/static_root/js/choices-admin.1eca6d2c22cf.json +1 -0
  340. codex/static_root/js/choices-admin.1eca6d2c22cf.json.br +0 -0
  341. codex/static_root/js/choices-admin.1eca6d2c22cf.json.gz +0 -0
  342. codex/static_root/js/choices-admin.json +1 -1
  343. codex/static_root/js/choices-admin.json.br +0 -0
  344. codex/static_root/js/choices-admin.json.gz +0 -0
  345. codex/static_root/manifest.a300a8e1e4f3.json +609 -0
  346. codex/static_root/manifest.a300a8e1e4f3.json.br +0 -0
  347. codex/static_root/manifest.a300a8e1e4f3.json.gz +0 -0
  348. codex/static_root/manifest.json +282 -308
  349. codex/static_root/manifest.json.br +0 -0
  350. codex/static_root/manifest.json.gz +0 -0
  351. codex/static_root/staticfiles.json +1 -1
  352. codex/templates/pwa/serviceworker.js +4 -4
  353. codex/urls/root.py +6 -2
  354. codex/version.py +53 -0
  355. codex/views/admin/tasks.py +0 -2
  356. codex/views/admin/user.py +2 -4
  357. codex/views/bookmark.py +23 -16
  358. codex/views/browser/filters/annotations.py +4 -5
  359. codex/views/browser/validate.py +7 -4
  360. codex/views/const.py +2 -1
  361. codex/views/reader/books.py +2 -2
  362. codex/views/reader/init.py +2 -3
  363. codex/views/version.py +2 -10
  364. {codex-1.6.9a0.dist-info → codex-1.6.10.dist-info}/METADATA +8 -9
  365. {codex-1.6.9a0.dist-info → codex-1.6.10.dist-info}/RECORD +368 -375
  366. codex/librarian/janitor/latest_version.py +0 -54
  367. codex/static_root/assets/VCheckbox-BkQ2enlR.c750c7d8cecc.js +0 -1
  368. codex/static_root/assets/VCheckbox-BkQ2enlR.c750c7d8cecc.js.br +0 -0
  369. codex/static_root/assets/VCheckbox-BkQ2enlR.c750c7d8cecc.js.gz +0 -0
  370. codex/static_root/assets/VCheckbox-BkQ2enlR.js +0 -1
  371. codex/static_root/assets/VCheckbox-BkQ2enlR.js.br +0 -0
  372. codex/static_root/assets/VCheckbox-BkQ2enlR.js.gz +0 -0
  373. codex/static_root/assets/VCheckboxBtn-C4qxJC_o.ff4628662392.js +0 -1
  374. codex/static_root/assets/VCheckboxBtn-C4qxJC_o.ff4628662392.js.br +0 -0
  375. codex/static_root/assets/VCheckboxBtn-C4qxJC_o.ff4628662392.js.gz +0 -0
  376. codex/static_root/assets/VCheckboxBtn-C4qxJC_o.js +0 -1
  377. codex/static_root/assets/VCheckboxBtn-C4qxJC_o.js.br +0 -0
  378. codex/static_root/assets/VCheckboxBtn-C4qxJC_o.js.gz +0 -0
  379. codex/static_root/assets/VCombobox-CJYErhVj.5ae39362d05a.js +0 -1
  380. codex/static_root/assets/VCombobox-CJYErhVj.5ae39362d05a.js.br +0 -0
  381. codex/static_root/assets/VCombobox-CJYErhVj.5ae39362d05a.js.gz +0 -0
  382. codex/static_root/assets/VCombobox-CJYErhVj.js +0 -1
  383. codex/static_root/assets/VCombobox-CJYErhVj.js.br +0 -0
  384. codex/static_root/assets/VCombobox-CJYErhVj.js.gz +0 -0
  385. codex/static_root/assets/VCombobox-bwEYrXCg.9f25a34994e2.css +0 -1
  386. codex/static_root/assets/VCombobox-bwEYrXCg.9f25a34994e2.css.br +0 -0
  387. codex/static_root/assets/VCombobox-bwEYrXCg.9f25a34994e2.css.gz +0 -0
  388. codex/static_root/assets/VCombobox-bwEYrXCg.css +0 -1
  389. codex/static_root/assets/VCombobox-bwEYrXCg.css.br +0 -0
  390. codex/static_root/assets/VCombobox-bwEYrXCg.css.gz +0 -0
  391. codex/static_root/assets/VDialog-38np3TSA.5a0cb7a9e56d.css +0 -1
  392. codex/static_root/assets/VDialog-38np3TSA.5a0cb7a9e56d.css.br +0 -0
  393. codex/static_root/assets/VDialog-38np3TSA.5a0cb7a9e56d.css.gz +0 -0
  394. codex/static_root/assets/VDialog-38np3TSA.css +0 -1
  395. codex/static_root/assets/VDialog-38np3TSA.css.br +0 -0
  396. codex/static_root/assets/VDialog-38np3TSA.css.gz +0 -0
  397. codex/static_root/assets/VDialog-U73OI2x0.a74b15bb2eb4.js +0 -1
  398. codex/static_root/assets/VDialog-U73OI2x0.a74b15bb2eb4.js.br +0 -0
  399. codex/static_root/assets/VDialog-U73OI2x0.a74b15bb2eb4.js.gz +0 -0
  400. codex/static_root/assets/VDialog-U73OI2x0.js +0 -1
  401. codex/static_root/assets/VDialog-U73OI2x0.js.br +0 -0
  402. codex/static_root/assets/VDialog-U73OI2x0.js.gz +0 -0
  403. codex/static_root/assets/VExpansionPanels-6G1AUajL.5b17872981df.css +0 -1
  404. codex/static_root/assets/VExpansionPanels-6G1AUajL.5b17872981df.css.br +0 -0
  405. codex/static_root/assets/VExpansionPanels-6G1AUajL.5b17872981df.css.gz +0 -0
  406. codex/static_root/assets/VExpansionPanels-6G1AUajL.css +0 -1
  407. codex/static_root/assets/VExpansionPanels-6G1AUajL.css.br +0 -0
  408. codex/static_root/assets/VExpansionPanels-6G1AUajL.css.gz +0 -0
  409. codex/static_root/assets/VExpansionPanels-CfbnFRnp.11d5ca74c514.js +0 -1
  410. codex/static_root/assets/VExpansionPanels-CfbnFRnp.11d5ca74c514.js.br +0 -0
  411. codex/static_root/assets/VExpansionPanels-CfbnFRnp.11d5ca74c514.js.gz +0 -0
  412. codex/static_root/assets/VExpansionPanels-CfbnFRnp.js +0 -1
  413. codex/static_root/assets/VExpansionPanels-CfbnFRnp.js.br +0 -0
  414. codex/static_root/assets/VExpansionPanels-CfbnFRnp.js.gz +0 -0
  415. codex/static_root/assets/VRadioGroup-Dk6ucuGh.b364223f1e2b.js +0 -1
  416. codex/static_root/assets/VRadioGroup-Dk6ucuGh.b364223f1e2b.js.br +0 -3
  417. codex/static_root/assets/VRadioGroup-Dk6ucuGh.b364223f1e2b.js.gz +0 -0
  418. codex/static_root/assets/VRadioGroup-Dk6ucuGh.js +0 -1
  419. codex/static_root/assets/VRadioGroup-Dk6ucuGh.js.br +0 -3
  420. codex/static_root/assets/VRadioGroup-Dk6ucuGh.js.gz +0 -0
  421. codex/static_root/assets/VSelect-Ca2bIOso.6613989e4c45.css +0 -1
  422. codex/static_root/assets/VSelect-Ca2bIOso.6613989e4c45.css.br +0 -0
  423. codex/static_root/assets/VSelect-Ca2bIOso.6613989e4c45.css.gz +0 -0
  424. codex/static_root/assets/VSelect-Ca2bIOso.css +0 -1
  425. codex/static_root/assets/VSelect-Ca2bIOso.css.br +0 -0
  426. codex/static_root/assets/VSelect-Ca2bIOso.css.gz +0 -0
  427. codex/static_root/assets/VSelect-gqsRzrIv.f022ea270144.js +0 -1
  428. codex/static_root/assets/VSelect-gqsRzrIv.f022ea270144.js.br +0 -0
  429. codex/static_root/assets/VSelect-gqsRzrIv.f022ea270144.js.gz +0 -0
  430. codex/static_root/assets/VSelect-gqsRzrIv.js +0 -1
  431. codex/static_root/assets/VSelect-gqsRzrIv.js.br +0 -0
  432. codex/static_root/assets/VSelect-gqsRzrIv.js.gz +0 -0
  433. codex/static_root/assets/VSelectionControl-BVJLEOcO.5d398b4b3b1c.js +0 -1
  434. codex/static_root/assets/VSelectionControl-BVJLEOcO.5d398b4b3b1c.js.br +0 -0
  435. codex/static_root/assets/VSelectionControl-BVJLEOcO.5d398b4b3b1c.js.gz +0 -0
  436. codex/static_root/assets/VSelectionControl-BVJLEOcO.js +0 -1
  437. codex/static_root/assets/VSelectionControl-BVJLEOcO.js.br +0 -0
  438. codex/static_root/assets/VSelectionControl-BVJLEOcO.js.gz +0 -0
  439. codex/static_root/assets/VSelectionControl-CiViEYoC.c77bb19a4a06.css.br +0 -0
  440. codex/static_root/assets/VSelectionControl-CiViEYoC.c77bb19a4a06.css.gz +0 -0
  441. codex/static_root/assets/VSelectionControl-CiViEYoC.css.br +0 -0
  442. codex/static_root/assets/VSelectionControl-CiViEYoC.css.gz +0 -0
  443. codex/static_root/assets/VSlideGroup-P_U-rmf2.ca3efe698702.js.br +0 -0
  444. codex/static_root/assets/VSlideGroup-P_U-rmf2.ca3efe698702.js.gz +0 -0
  445. codex/static_root/assets/VSlideGroup-P_U-rmf2.js.br +0 -0
  446. codex/static_root/assets/VSlideGroup-P_U-rmf2.js.gz +0 -0
  447. codex/static_root/assets/VTable-Coq-QwtQ.2b04104cbf05.js.br +0 -0
  448. codex/static_root/assets/VTable-Coq-QwtQ.2b04104cbf05.js.gz +0 -0
  449. codex/static_root/assets/VTable-Coq-QwtQ.js.br +0 -0
  450. codex/static_root/assets/VTable-Coq-QwtQ.js.gz +0 -0
  451. codex/static_root/assets/VTable-Y5Sc3hJd.c36f0a6a30cf.css +0 -1
  452. codex/static_root/assets/VTable-Y5Sc3hJd.c36f0a6a30cf.css.br +0 -0
  453. codex/static_root/assets/VTable-Y5Sc3hJd.c36f0a6a30cf.css.gz +0 -0
  454. codex/static_root/assets/VTable-Y5Sc3hJd.css +0 -1
  455. codex/static_root/assets/VTable-Y5Sc3hJd.css.br +0 -0
  456. codex/static_root/assets/VTable-Y5Sc3hJd.css.gz +0 -0
  457. codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css +0 -1
  458. codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css.br +0 -0
  459. codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css.gz +0 -0
  460. codex/static_root/assets/VTextField-Crc3gdNh.css +0 -1
  461. codex/static_root/assets/VTextField-Crc3gdNh.css.br +0 -0
  462. codex/static_root/assets/VTextField-Crc3gdNh.css.gz +0 -0
  463. codex/static_root/assets/VTextField-D8612eNs.bff65c141149.js +0 -1
  464. codex/static_root/assets/VTextField-D8612eNs.bff65c141149.js.br +0 -0
  465. codex/static_root/assets/VTextField-D8612eNs.bff65c141149.js.gz +0 -0
  466. codex/static_root/assets/VTextField-D8612eNs.js +0 -1
  467. codex/static_root/assets/VTextField-D8612eNs.js.br +0 -0
  468. codex/static_root/assets/VTextField-D8612eNs.js.gz +0 -0
  469. codex/static_root/assets/VWindowItem-BViiLFXH.70619152a4a5.js +0 -1
  470. codex/static_root/assets/VWindowItem-BViiLFXH.70619152a4a5.js.br +0 -0
  471. codex/static_root/assets/VWindowItem-BViiLFXH.70619152a4a5.js.gz +0 -0
  472. codex/static_root/assets/VWindowItem-BViiLFXH.js +0 -1
  473. codex/static_root/assets/VWindowItem-BViiLFXH.js.br +0 -0
  474. codex/static_root/assets/VWindowItem-BViiLFXH.js.gz +0 -0
  475. codex/static_root/assets/admin-CWEjaFr5.7d4523387384.css.br +0 -0
  476. codex/static_root/assets/admin-CWEjaFr5.7d4523387384.css.gz +0 -0
  477. codex/static_root/assets/admin-CWEjaFr5.css.br +0 -0
  478. codex/static_root/assets/admin-CWEjaFr5.css.gz +0 -0
  479. codex/static_root/assets/admin-RVemMSzT.fcbdca9f6b46.js +0 -1
  480. codex/static_root/assets/admin-RVemMSzT.fcbdca9f6b46.js.br +0 -0
  481. codex/static_root/assets/admin-RVemMSzT.fcbdca9f6b46.js.gz +0 -0
  482. codex/static_root/assets/admin-RVemMSzT.js +0 -1
  483. codex/static_root/assets/admin-RVemMSzT.js.br +0 -0
  484. codex/static_root/assets/admin-RVemMSzT.js.gz +0 -0
  485. codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.3cb33056e994.css +0 -1
  486. codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.3cb33056e994.css.br +0 -0
  487. codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.3cb33056e994.css.gz +0 -0
  488. codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.css +0 -1
  489. codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.css.br +0 -0
  490. codex/static_root/assets/admin-drawer-panel-Bs2wgKj3.css.gz +0 -0
  491. codex/static_root/assets/admin-drawer-panel-Ul8BRcOp.0acaf708f24a.js +0 -30
  492. codex/static_root/assets/admin-drawer-panel-Ul8BRcOp.0acaf708f24a.js.br +0 -0
  493. codex/static_root/assets/admin-drawer-panel-Ul8BRcOp.0acaf708f24a.js.gz +0 -0
  494. codex/static_root/assets/admin-drawer-panel-Ul8BRcOp.js +0 -30
  495. codex/static_root/assets/admin-drawer-panel-Ul8BRcOp.js.br +0 -0
  496. codex/static_root/assets/admin-drawer-panel-Ul8BRcOp.js.gz +0 -0
  497. codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css.br +0 -0
  498. codex/static_root/assets/browser-Binc3n9H.313722d27ca3.css.gz +0 -0
  499. codex/static_root/assets/browser-Binc3n9H.css.br +0 -0
  500. codex/static_root/assets/browser-Binc3n9H.css.gz +0 -0
  501. codex/static_root/assets/browser-C9pnPT8U.bc239343d007.js +0 -1
  502. codex/static_root/assets/browser-C9pnPT8U.bc239343d007.js.br +0 -0
  503. codex/static_root/assets/browser-C9pnPT8U.bc239343d007.js.gz +0 -0
  504. codex/static_root/assets/browser-C9pnPT8U.js +0 -1
  505. codex/static_root/assets/browser-C9pnPT8U.js.br +0 -0
  506. codex/static_root/assets/browser-C9pnPT8U.js.gz +0 -0
  507. codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css +0 -1
  508. codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css.br +0 -0
  509. codex/static_root/assets/change-password-dialog-Cebek1-c.aff2975e31f8.css.gz +0 -0
  510. codex/static_root/assets/change-password-dialog-Cebek1-c.css +0 -1
  511. codex/static_root/assets/change-password-dialog-Cebek1-c.css.br +0 -0
  512. codex/static_root/assets/change-password-dialog-Cebek1-c.css.gz +0 -0
  513. codex/static_root/assets/change-password-dialog-DjxFqIRX.1a5ac7100192.js +0 -1
  514. codex/static_root/assets/change-password-dialog-DjxFqIRX.1a5ac7100192.js.br +0 -0
  515. codex/static_root/assets/change-password-dialog-DjxFqIRX.1a5ac7100192.js.gz +0 -0
  516. codex/static_root/assets/change-password-dialog-DjxFqIRX.js +0 -1
  517. codex/static_root/assets/change-password-dialog-DjxFqIRX.js.br +0 -0
  518. codex/static_root/assets/change-password-dialog-DjxFqIRX.js.gz +0 -0
  519. codex/static_root/assets/confirm-dialog-B-dLb_50.62d3ea64b93a.js +0 -1
  520. codex/static_root/assets/confirm-dialog-B-dLb_50.62d3ea64b93a.js.br +0 -0
  521. codex/static_root/assets/confirm-dialog-B-dLb_50.62d3ea64b93a.js.gz +0 -0
  522. codex/static_root/assets/confirm-dialog-B-dLb_50.js +0 -1
  523. codex/static_root/assets/confirm-dialog-B-dLb_50.js.br +0 -0
  524. codex/static_root/assets/confirm-dialog-B-dLb_50.js.gz +0 -0
  525. codex/static_root/assets/datetime-column-BRZDPl2k.f6ae3ce94da7.js.br +0 -0
  526. codex/static_root/assets/datetime-column-BRZDPl2k.f6ae3ce94da7.js.gz +0 -0
  527. codex/static_root/assets/datetime-column-BRZDPl2k.js.br +0 -0
  528. codex/static_root/assets/datetime-column-BRZDPl2k.js.gz +0 -0
  529. codex/static_root/assets/filter-Tk2N9xgO.02f23827434b.js.br +0 -0
  530. codex/static_root/assets/filter-Tk2N9xgO.02f23827434b.js.gz +0 -0
  531. codex/static_root/assets/filter-Tk2N9xgO.js.br +0 -0
  532. codex/static_root/assets/filter-Tk2N9xgO.js.gz +0 -0
  533. codex/static_root/assets/flag-tab-C_v4CugS.928c1035d6ce.js +0 -1
  534. codex/static_root/assets/flag-tab-C_v4CugS.928c1035d6ce.js.br +0 -0
  535. codex/static_root/assets/flag-tab-C_v4CugS.928c1035d6ce.js.gz +0 -0
  536. codex/static_root/assets/flag-tab-C_v4CugS.js +0 -1
  537. codex/static_root/assets/flag-tab-C_v4CugS.js.br +0 -0
  538. codex/static_root/assets/flag-tab-C_v4CugS.js.gz +0 -0
  539. codex/static_root/assets/group-tab-Dn5N4Ebx.d2cf9c300427.js +0 -1
  540. codex/static_root/assets/group-tab-Dn5N4Ebx.d2cf9c300427.js.br +0 -0
  541. codex/static_root/assets/group-tab-Dn5N4Ebx.d2cf9c300427.js.gz +0 -0
  542. codex/static_root/assets/group-tab-Dn5N4Ebx.js +0 -1
  543. codex/static_root/assets/group-tab-Dn5N4Ebx.js.br +0 -0
  544. codex/static_root/assets/group-tab-Dn5N4Ebx.js.gz +0 -0
  545. codex/static_root/assets/http-error-DbRCRWKA.c31ec2f67f3b.js +0 -1
  546. codex/static_root/assets/http-error-DbRCRWKA.c31ec2f67f3b.js.br +0 -0
  547. codex/static_root/assets/http-error-DbRCRWKA.c31ec2f67f3b.js.gz +0 -0
  548. codex/static_root/assets/http-error-DbRCRWKA.js +0 -1
  549. codex/static_root/assets/http-error-DbRCRWKA.js.br +0 -0
  550. codex/static_root/assets/http-error-DbRCRWKA.js.gz +0 -0
  551. codex/static_root/assets/library-tab-Bh7ErAk7.7c44200ee727.css +0 -1
  552. codex/static_root/assets/library-tab-Bh7ErAk7.7c44200ee727.css.br +0 -2
  553. codex/static_root/assets/library-tab-Bh7ErAk7.7c44200ee727.css.gz +0 -0
  554. codex/static_root/assets/library-tab-Bh7ErAk7.css +0 -1
  555. codex/static_root/assets/library-tab-Bh7ErAk7.css.br +0 -2
  556. codex/static_root/assets/library-tab-Bh7ErAk7.css.gz +0 -0
  557. codex/static_root/assets/library-tab-CnvofvVA.419ab4e21896.js +0 -1
  558. codex/static_root/assets/library-tab-CnvofvVA.419ab4e21896.js.br +0 -0
  559. codex/static_root/assets/library-tab-CnvofvVA.419ab4e21896.js.gz +0 -0
  560. codex/static_root/assets/library-tab-CnvofvVA.js +0 -1
  561. codex/static_root/assets/library-tab-CnvofvVA.js.br +0 -0
  562. codex/static_root/assets/library-tab-CnvofvVA.js.gz +0 -0
  563. codex/static_root/assets/main-BHIo0ep5.6ec78d1380f0.js +0 -6
  564. codex/static_root/assets/main-BHIo0ep5.6ec78d1380f0.js.br +0 -0
  565. codex/static_root/assets/main-BHIo0ep5.6ec78d1380f0.js.gz +0 -0
  566. codex/static_root/assets/main-BHIo0ep5.js +0 -6
  567. codex/static_root/assets/main-BHIo0ep5.js.br +0 -0
  568. codex/static_root/assets/main-BHIo0ep5.js.gz +0 -0
  569. codex/static_root/assets/main-BZ73p_WW.css.br +0 -0
  570. codex/static_root/assets/main-BZ73p_WW.d529e8b3f52a.css.br +0 -0
  571. codex/static_root/assets/pager-full-pdf-DuOmJXkZ.5eaa11c55b1d.js +0 -1
  572. codex/static_root/assets/pager-full-pdf-DuOmJXkZ.5eaa11c55b1d.js.br +0 -0
  573. codex/static_root/assets/pager-full-pdf-DuOmJXkZ.5eaa11c55b1d.js.gz +0 -0
  574. codex/static_root/assets/pager-full-pdf-DuOmJXkZ.js +0 -1
  575. codex/static_root/assets/pager-full-pdf-DuOmJXkZ.js.br +0 -0
  576. codex/static_root/assets/pager-full-pdf-DuOmJXkZ.js.gz +0 -0
  577. codex/static_root/assets/pagination-toolbar-C45-onwe.4722195bb60b.css +0 -1
  578. codex/static_root/assets/pagination-toolbar-C45-onwe.4722195bb60b.css.br +0 -0
  579. codex/static_root/assets/pagination-toolbar-C45-onwe.4722195bb60b.css.gz +0 -0
  580. codex/static_root/assets/pagination-toolbar-C45-onwe.css +0 -1
  581. codex/static_root/assets/pagination-toolbar-C45-onwe.css.br +0 -0
  582. codex/static_root/assets/pagination-toolbar-C45-onwe.css.gz +0 -0
  583. codex/static_root/assets/pagination-toolbar-CzvikaTz.a025f20590fa.js +0 -1
  584. codex/static_root/assets/pagination-toolbar-CzvikaTz.a025f20590fa.js.br +0 -0
  585. codex/static_root/assets/pagination-toolbar-CzvikaTz.a025f20590fa.js.gz +0 -0
  586. codex/static_root/assets/pagination-toolbar-CzvikaTz.js +0 -1
  587. codex/static_root/assets/pagination-toolbar-CzvikaTz.js.br +0 -0
  588. codex/static_root/assets/pagination-toolbar-CzvikaTz.js.gz +0 -0
  589. codex/static_root/assets/pdf-doc-B5yncCrs.97ba5cf21b63.js +0 -305
  590. codex/static_root/assets/pdf-doc-B5yncCrs.97ba5cf21b63.js.br +0 -0
  591. codex/static_root/assets/pdf-doc-B5yncCrs.97ba5cf21b63.js.gz +0 -0
  592. codex/static_root/assets/pdf-doc-B5yncCrs.js +0 -305
  593. codex/static_root/assets/pdf-doc-B5yncCrs.js.br +0 -0
  594. codex/static_root/assets/pdf-doc-B5yncCrs.js.gz +0 -0
  595. codex/static_root/assets/pdf-doc-CG5-AZ2M.b94aac7e3313.css +0 -1
  596. codex/static_root/assets/pdf-doc-CG5-AZ2M.b94aac7e3313.css.br +0 -1
  597. codex/static_root/assets/pdf-doc-CG5-AZ2M.b94aac7e3313.css.gz +0 -0
  598. codex/static_root/assets/pdf-doc-CG5-AZ2M.css +0 -1
  599. codex/static_root/assets/pdf-doc-CG5-AZ2M.css.br +0 -1
  600. codex/static_root/assets/pdf-doc-CG5-AZ2M.css.gz +0 -0
  601. codex/static_root/assets/reader-BR3TSv3h.b00087748514.js +0 -2
  602. codex/static_root/assets/reader-BR3TSv3h.b00087748514.js.br +0 -0
  603. codex/static_root/assets/reader-BR3TSv3h.b00087748514.js.gz +0 -0
  604. codex/static_root/assets/reader-BR3TSv3h.js +0 -2
  605. codex/static_root/assets/reader-BR3TSv3h.js.br +0 -0
  606. codex/static_root/assets/reader-BR3TSv3h.js.gz +0 -0
  607. codex/static_root/assets/reader-_stAWL-4.5089e9144795.css +0 -1
  608. codex/static_root/assets/reader-_stAWL-4.5089e9144795.css.br +0 -0
  609. codex/static_root/assets/reader-_stAWL-4.5089e9144795.css.gz +0 -0
  610. codex/static_root/assets/reader-_stAWL-4.css +0 -1
  611. codex/static_root/assets/reader-_stAWL-4.css.br +0 -0
  612. codex/static_root/assets/reader-_stAWL-4.css.gz +0 -0
  613. codex/static_root/assets/relation-chips-ByfWwuQc.01269a188e01.css.br +0 -0
  614. codex/static_root/assets/relation-chips-ByfWwuQc.01269a188e01.css.gz +0 -0
  615. codex/static_root/assets/relation-chips-ByfWwuQc.css.br +0 -0
  616. codex/static_root/assets/relation-chips-ByfWwuQc.css.gz +0 -0
  617. codex/static_root/assets/relation-chips-C-62eg7F.d234f5d05881.js +0 -1
  618. codex/static_root/assets/relation-chips-C-62eg7F.d234f5d05881.js.br +0 -0
  619. codex/static_root/assets/relation-chips-C-62eg7F.d234f5d05881.js.gz +0 -0
  620. codex/static_root/assets/relation-chips-C-62eg7F.js +0 -1
  621. codex/static_root/assets/relation-chips-C-62eg7F.js.br +0 -0
  622. codex/static_root/assets/relation-chips-C-62eg7F.js.gz +0 -0
  623. codex/static_root/assets/settings-drawer-CpNFdMBP.e5b1af37e0a0.js +0 -2
  624. codex/static_root/assets/settings-drawer-CpNFdMBP.e5b1af37e0a0.js.br +0 -0
  625. codex/static_root/assets/settings-drawer-CpNFdMBP.e5b1af37e0a0.js.gz +0 -0
  626. codex/static_root/assets/settings-drawer-CpNFdMBP.js +0 -2
  627. codex/static_root/assets/settings-drawer-CpNFdMBP.js.br +0 -0
  628. codex/static_root/assets/settings-drawer-CpNFdMBP.js.gz +0 -0
  629. codex/static_root/assets/settings-drawer-DKncO_vX.0a2cd24cd904.css +0 -1
  630. codex/static_root/assets/settings-drawer-DKncO_vX.0a2cd24cd904.css.br +0 -0
  631. codex/static_root/assets/settings-drawer-DKncO_vX.0a2cd24cd904.css.gz +0 -0
  632. codex/static_root/assets/settings-drawer-DKncO_vX.css +0 -1
  633. codex/static_root/assets/settings-drawer-DKncO_vX.css.br +0 -0
  634. codex/static_root/assets/settings-drawer-DKncO_vX.css.gz +0 -0
  635. codex/static_root/assets/stats-tab-B0-L7btW.8f7914d5c8ac.js +0 -1
  636. codex/static_root/assets/stats-tab-B0-L7btW.8f7914d5c8ac.js.br +0 -0
  637. codex/static_root/assets/stats-tab-B0-L7btW.8f7914d5c8ac.js.gz +0 -0
  638. codex/static_root/assets/stats-tab-B0-L7btW.js +0 -1
  639. codex/static_root/assets/stats-tab-B0-L7btW.js.br +0 -0
  640. codex/static_root/assets/stats-tab-B0-L7btW.js.gz +0 -0
  641. codex/static_root/assets/stats-tab-BXGisn5N.9b7a71e7fe28.css.br +0 -0
  642. codex/static_root/assets/stats-tab-BXGisn5N.9b7a71e7fe28.css.gz +0 -0
  643. codex/static_root/assets/stats-tab-BXGisn5N.css.br +0 -0
  644. codex/static_root/assets/stats-tab-BXGisn5N.css.gz +0 -0
  645. codex/static_root/assets/task-tab-CJEMX4mU.31d0755cc8f7.js +0 -1
  646. codex/static_root/assets/task-tab-CJEMX4mU.31d0755cc8f7.js.br +0 -0
  647. codex/static_root/assets/task-tab-CJEMX4mU.31d0755cc8f7.js.gz +0 -0
  648. codex/static_root/assets/task-tab-CJEMX4mU.js +0 -1
  649. codex/static_root/assets/task-tab-CJEMX4mU.js.br +0 -0
  650. codex/static_root/assets/task-tab-CJEMX4mU.js.gz +0 -0
  651. codex/static_root/assets/unauthorized-U1yum5qV.4a44970b19c7.js +0 -1
  652. codex/static_root/assets/unauthorized-U1yum5qV.4a44970b19c7.js.br +0 -0
  653. codex/static_root/assets/unauthorized-U1yum5qV.4a44970b19c7.js.gz +0 -0
  654. codex/static_root/assets/unauthorized-U1yum5qV.js +0 -1
  655. codex/static_root/assets/unauthorized-U1yum5qV.js.br +0 -0
  656. codex/static_root/assets/unauthorized-U1yum5qV.js.gz +0 -0
  657. codex/static_root/assets/unauthorized-muDsv-rC.2166ec8b3a32.css.br +0 -0
  658. codex/static_root/assets/unauthorized-muDsv-rC.2166ec8b3a32.css.gz +0 -0
  659. codex/static_root/assets/unauthorized-muDsv-rC.css.br +0 -0
  660. codex/static_root/assets/unauthorized-muDsv-rC.css.gz +0 -0
  661. codex/static_root/assets/user-tab-8DHYNhT5.3160ac8849a9.js +0 -1
  662. codex/static_root/assets/user-tab-8DHYNhT5.3160ac8849a9.js.br +0 -0
  663. codex/static_root/assets/user-tab-8DHYNhT5.3160ac8849a9.js.gz +0 -0
  664. codex/static_root/assets/user-tab-8DHYNhT5.js +0 -1
  665. codex/static_root/assets/user-tab-8DHYNhT5.js.br +0 -0
  666. codex/static_root/assets/user-tab-8DHYNhT5.js.gz +0 -0
  667. codex/static_root/js/choices-admin.1a20a5648f20.json +0 -1
  668. codex/static_root/js/choices-admin.1a20a5648f20.json.br +0 -0
  669. codex/static_root/js/choices-admin.1a20a5648f20.json.gz +0 -0
  670. codex/static_root/manifest.c82a23abe985.json +0 -635
  671. codex/static_root/manifest.c82a23abe985.json.br +0 -0
  672. codex/static_root/manifest.c82a23abe985.json.gz +0 -0
  673. {codex-1.6.9a0.dist-info → codex-1.6.10.dist-info}/LICENSE +0 -0
  674. {codex-1.6.9a0.dist-info → codex-1.6.10.dist-info}/WHEEL +0 -0
  675. {codex-1.6.9a0.dist-info → codex-1.6.10.dist-info}/entry_points.txt +0 -0
@@ -111,10 +111,8 @@ class CodexStats:
111
111
 
112
112
  return user_stats, anon_session_count
113
113
 
114
- def _add_platform(self, obj):
114
+ def _get_platform(self, obj):
115
115
  """Add dict of platform information to object."""
116
- if self.params and "platform" not in self.params:
117
- return
118
116
  platform = {
119
117
  "docker": self._is_docker(),
120
118
  "machine": machine(),
@@ -128,10 +126,8 @@ class CodexStats:
128
126
  }
129
127
  obj["platform"] = platform
130
128
 
131
- def _add_config(self, obj):
129
+ def _get_config(self, obj):
132
130
  """Add dict of config informaation to object."""
133
- if self.params and "config" not in self.params:
134
- return
135
131
  config = self._get_model_counts("config")
136
132
  sessions, config["user_anonymous_count"] = self._get_session_stats()
137
133
  config["user_registered_count"] = config.pop("users_count", 0)
@@ -139,18 +135,15 @@ class CodexStats:
139
135
  obj["config"] = config
140
136
  obj["sessions"] = sessions
141
137
 
142
- def _add_groups(self, obj):
138
+ def _get_groups(self, obj):
143
139
  """Add dict of groups information to object."""
144
- if self.params and "groups" not in self.params:
145
- return
146
140
  groups = self._get_model_counts("groups")
147
141
  groups["issue_count"] = groups.pop("comic_count", 0)
148
142
  obj["groups"] = groups
149
143
 
150
- def _add_file_types(self, obj):
144
+ @staticmethod
145
+ def _get_file_types(obj):
151
146
  """Query for file types."""
152
- if self.params and "fileTypes" not in self.params:
153
- return
154
147
  file_types = {}
155
148
  qs = (
156
149
  Comic.objects.values("file_type")
@@ -164,19 +157,22 @@ class CodexStats:
164
157
  sorted_fts = dict(sorted(file_types.items()))
165
158
  obj["file_types"] = sorted_fts
166
159
 
167
- def _add_metadata(self, obj):
160
+ def _get_metadata(self, obj):
168
161
  """Add dict of metadata counts to object."""
169
- if self.params and "metadata" not in self.params:
170
- return
171
162
  metadata = self._get_model_counts("metadata")
172
163
  obj["metadata"] = metadata
173
164
 
174
165
  def get(self):
175
166
  """Construct the stats object."""
176
167
  obj = {}
177
- self._add_platform(obj)
178
- self._add_config(obj)
179
- self._add_groups(obj)
180
- self._add_file_types(obj)
181
- self._add_metadata(obj)
168
+ if not self.params or "platform" in self.params:
169
+ self._get_platform(obj)
170
+ if not self.params or "config" in self.params:
171
+ self._get_config(obj)
172
+ if not self.params or "groups" in self.params:
173
+ self._get_groups(obj)
174
+ if not self.params or "fileTypes" in self.params:
175
+ self._get_file_types(obj)
176
+ if not self.params or "metadata" in self.params:
177
+ self._get_metadata(obj)
182
178
  return obj
@@ -6,7 +6,7 @@ from logging import getLogger
6
6
  from lzma import compress
7
7
  from uuid import uuid4
8
8
 
9
- from requests import Session
9
+ from requests import post
10
10
 
11
11
  from codex.librarian.telemeter.stats import CodexStats
12
12
  from codex.models.admin import AdminFlag, Timestamp
@@ -14,7 +14,7 @@ from codex.settings.settings import DEBUG
14
14
 
15
15
  # Version
16
16
  _APP_NAME = "codex"
17
- _VERSION = "1"
17
+ _VERSION = "0"
18
18
 
19
19
  # Sending
20
20
  # this isn't meant to fool you. it's meant to discourage lazy scraper bots.
@@ -52,23 +52,20 @@ def _post_stats(log, data):
52
52
  msg = f"{_POST} {len(compressed_data)}, {_HEADERS}, {_TIMEOUT}"
53
53
  log.debug(msg)
54
54
  else:
55
- with Session() as session:
56
- response = session.post(
57
- _POST, data=compressed_data, headers=_HEADERS, timeout=_TIMEOUT
58
- )
59
- response.raise_for_status()
55
+ response = post(_POST, data=compressed_data, headers=_HEADERS, timeout=_TIMEOUT)
56
+ response.raise_for_status()
60
57
 
61
58
 
62
59
  def _send_telemetry(log):
63
60
  """Send telemetry to server."""
64
61
  if not AdminFlag.objects.get(key=AdminFlag.FlagChoices.SEND_TELEMETRY.value).on:
65
- reason = "Send Telemetry flag is off."
62
+ reason = "Send Telemetry flag set to off."
66
63
  raise ValueError(reason)
67
64
  ts = get_telemeter_timestamp()
68
65
  stats = CodexStats().get()
69
66
  data = {"stats": stats, "uuid": ts.version}
70
67
  _post_stats(log, data)
71
- # log.debug("Sent anonymous stats")
68
+ log.debug("Sent anonymous telemetry")
72
69
  ts.save() # update updated_at
73
70
 
74
71
 
@@ -77,4 +74,4 @@ def send_telemetry(log):
77
74
  try:
78
75
  _send_telemetry(log)
79
76
  except Exception as exc:
80
- log.debug(f"Failed to send anonyomous stats: {exc}")
77
+ log.debug(f"Failed to send anonyomous telemetry: {exc}")
@@ -21,9 +21,9 @@ class SnapshotDiffData:
21
21
  class CodexDirectorySnapshotDiff(DirectorySnapshotDiff):
22
22
  """Custom Diff allows inode only changes to be 'modified'."""
23
23
 
24
- def _get_inode(self, snapshot, full_path):
24
+ def _get_inode(self, directory, full_path):
25
25
  """Get inode optionally ignoring device stats."""
26
- result = snapshot.inode(full_path)
26
+ result = directory.inode(full_path)
27
27
  if self._ignore_device:
28
28
  result = result[0]
29
29
  return result
@@ -33,7 +33,7 @@ class CodexDirectorySnapshotDiff(DirectorySnapshotDiff):
33
33
  return self._get_inode(data.ref, path) == self._get_inode(data.snapshot, path)
34
34
 
35
35
  def _is_stats_equal(self, data, old_path, new_path):
36
- """Return if the mtime and size are equal.
36
+ """Return if the mtimze and size are equal.
37
37
 
38
38
  For old paths in the ref and new paths in the snapshot.
39
39
  """
@@ -48,27 +48,25 @@ class CodexDirectorySnapshotDiff(DirectorySnapshotDiff):
48
48
  if self._inode_only_modified:
49
49
  data.modified.add(path)
50
50
  else:
51
- # Add these to created and deleted. But...
52
- # The _find_moved_paths() inode tracker should
53
- # sort them out.
54
- # This is the same as in upstream dirsnapshot.py
55
51
  data.created.add(path)
56
52
  data.deleted.add(path)
57
53
 
58
54
  def _find_moved_paths(self, data):
59
- """Find moved paths in deleted and created."""
60
- for old_path in tuple(data.deleted):
61
- inode = self._get_inode(data.ref, old_path)
62
- if new_path := data.snapshot.path(inode):
55
+ """Find moved paths."""
56
+ for path in tuple(data.deleted):
57
+ inode = data.ref.inode(path)
58
+ new_path = data.snapshot.path(inode)
59
+ if new_path:
63
60
  # file is not deleted but moved
64
- data.deleted.remove(old_path)
65
- data.moved.add((old_path, new_path))
61
+ data.deleted.remove(path)
62
+ data.moved.add((path, new_path))
66
63
 
67
- for new_path in tuple(data.created):
68
- inode = self._get_inode(data.snapshot, new_path)
69
- if old_path := data.ref.path(inode):
70
- data.created.remove(new_path)
71
- data.moved.add((old_path, new_path))
64
+ for path in tuple(data.created):
65
+ inode = data.snapshot.inode(path)
66
+ old_path = data.ref.path(inode)
67
+ if old_path:
68
+ data.created.remove(path)
69
+ data.moved.add((old_path, path))
72
70
 
73
71
  def _find_modified_paths(self, data):
74
72
  """Find modified paths."""
@@ -82,7 +80,7 @@ class CodexDirectorySnapshotDiff(DirectorySnapshotDiff):
82
80
  # Check moved paths for modificiations.
83
81
  for old_path, new_path in data.moved:
84
82
  if not self._is_stats_equal(data, old_path, new_path):
85
- data.modified.add(new_path)
83
+ data.modified.add(old_path)
86
84
 
87
85
  def __init__( # C901, PLR0912
88
86
  self, ref, snapshot, ignore_device=False, inode_only_modified=False
@@ -25,18 +25,20 @@ from codex.models import Library
25
25
  from codex.status import Status
26
26
  from codex.worker_base import WorkerBaseMixin
27
27
 
28
- _CODEX_EVENT_FILTER = [
29
- FileMovedEvent,
30
- FileModifiedEvent,
31
- FileCreatedEvent,
32
- FileDeletedEvent,
33
- # FileClosedEvent,
34
- # FileOpenedEvent,
35
- DirMovedEvent,
36
- DirModifiedEvent,
37
- DirDeletedEvent,
38
- # DirCreatedEvent,
39
- ]
28
+ _CODEX_EVENT_FILTER = frozenset(
29
+ {
30
+ FileMovedEvent,
31
+ FileModifiedEvent,
32
+ FileCreatedEvent,
33
+ FileDeletedEvent,
34
+ # FileClosedEvent,
35
+ # FileOpenedEvent,
36
+ DirMovedEvent,
37
+ DirModifiedEvent,
38
+ DirDeletedEvent,
39
+ # DirCreatedEvent,
40
+ }
41
+ )
40
42
  _DOCKER_UNMOUNTED_FN = "DOCKER_UNMOUNTED_VOLUME"
41
43
 
42
44
 
@@ -234,7 +234,7 @@ class CodexCustomCoverEventHandler(CodexEventHandlerBase):
234
234
  try:
235
235
  if event.is_directory or event.event_type in self.IGNORED_EVENTS:
236
236
  return
237
- src_cover_match = self._match_group_cover_image(str(event.src_path))
237
+ src_cover_match = self._match_group_cover_image(event.src_path)
238
238
  if event.event_type == EVENT_TYPE_MOVED:
239
239
  send_event = self._transform_event_moved(event, src_cover_match)
240
240
  elif src_cover_match:
@@ -110,15 +110,15 @@ class UatuMixin(BaseObserver, WorkerBaseMixin):
110
110
  https://pythonhosted.org/watchdog/_modules/watchdog/observers/api.html#BaseObserver
111
111
  """
112
112
  if self._emitter_class != DatabasePollingEmitter:
113
- return super().schedule(event_handler, path, recursive=recursive)
113
+ return super().schedule(event_handler, path, recursive)
114
114
  with self._lock:
115
- watch = ObservedWatch(path, recursive=recursive)
115
+ watch = ObservedWatch(path, recursive)
116
116
  self._add_handler_for_watch(event_handler, watch)
117
117
 
118
118
  # If we don't have an emitter for this watch already, create it.
119
119
  if self._emitter_for_watch.get(watch) is None:
120
120
  covers_only = isinstance(event_handler, CodexCustomCoverEventHandler)
121
- emitter = DatabasePollingEmitter(
121
+ emitter = self._emitter_class(
122
122
  event_queue=self.event_queue,
123
123
  watch=watch,
124
124
  timeout=self.timeout,
@@ -166,7 +166,7 @@ class LibraryPollingObserver(UatuMixin):
166
166
 
167
167
  for emitter in self.emitters:
168
168
  if emitter.watch.path in paths:
169
- emitter.poll(force) # type: ignore
169
+ emitter.poll(force)
170
170
  except Exception:
171
171
  self.log.exception(
172
172
  f"{self.__class__.__name__}.poll({library_pks}, {force})"
codex/search/backend.py CHANGED
@@ -122,10 +122,7 @@ class CodexSearchBackend(CodexBackendSearchMixin, WhooshSearchBackend, WorkerBas
122
122
  "created_at": ("created",),
123
123
  "critical_rating": gen_multipart_field_aliases("critical_rating"),
124
124
  "genres": ("genre",),
125
- "file_type": (
126
- "filetype",
127
- "type",
128
- ),
125
+ "file_type": ("type",),
129
126
  "identifier": ("id", "nss"),
130
127
  "identifier_type": ("idtype", "id_type", "nid"),
131
128
  "issue_number": ("number",),
@@ -135,11 +132,7 @@ class CodexSearchBackend(CodexBackendSearchMixin, WhooshSearchBackend, WorkerBas
135
132
  "original_format": ("format",),
136
133
  "page_count": ("pages",),
137
134
  "reading_direction": ("direction",),
138
- "search_path": (
139
- "path",
140
- "filename",
141
- *gen_multipart_field_aliases("folders"),
142
- ),
135
+ "search_path": ("path", *gen_multipart_field_aliases("folders")),
143
136
  "series_groups": gen_multipart_field_aliases("series_groups"),
144
137
  "scan_info": ("scan",),
145
138
  "stories": ("story",),
@@ -53,7 +53,8 @@ class BrowserAggregateSerializerMixin(Serializer):
53
53
  )
54
54
  continue
55
55
 
56
- mtime = max(dt, mtime)
56
+ if dt > mtime:
57
+ mtime = dt
57
58
 
58
59
  if obj.group != COMIC_GROUP and (
59
60
  mbua := getattr(obj, "max_bookmark_updated_at", None)
@@ -81,7 +81,6 @@ if not DEBUG:
81
81
  "asyncio": {
82
82
  "level": "INFO",
83
83
  },
84
- "urllib3.connectionpool": {"level": "INFO"},
85
84
  "watchdog": {
86
85
  "level": "INFO",
87
86
  },
@@ -189,10 +188,7 @@ DATABASES = {
189
188
  "ENGINE": "django.db.backends.sqlite3",
190
189
  "NAME": DB_PATH,
191
190
  "CONN_MAX_AGE": 600,
192
- "OPTIONS": {
193
- "init_command": "PRAGMA journal_mode=wal;",
194
- "timeout": 120,
195
- },
191
+ "OPTIONS": {"timeout": 120},
196
192
  },
197
193
  }
198
194
  SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
@@ -3,6 +3,7 @@
3
3
  from time import time
4
4
 
5
5
  from django.core.cache import cache
6
+ from django.db.backends.signals import connection_created
6
7
  from django.db.models.signals import m2m_changed
7
8
 
8
9
  from codex.librarian.mp_queue import LIBRARIAN_QUEUE
@@ -20,6 +21,13 @@ GROUP_CHANGE_ACTIONS = frozenset(
20
21
  )
21
22
 
22
23
 
24
+ def _activate_wal_journal(**kwargs):
25
+ """Enable sqlite WAL journal."""
26
+ connection = kwargs["connection"]
27
+ with connection.cursor() as cursor:
28
+ cursor.execute("PRAGMA journal_mode=wal;")
29
+
30
+
23
31
  def _user_group_change(**kwargs):
24
32
  """Clear cache and send update signals when groups change."""
25
33
  model = kwargs["model"]
@@ -43,6 +51,7 @@ def _user_group_change(**kwargs):
43
51
  def connect_signals():
44
52
  """Connect actions to signals."""
45
53
  logger = get_logger(__name__)
54
+ connection_created.connect(_activate_wal_journal)
46
55
  logger.debug("sqlite journal_mode=wal")
47
56
  m2m_changed.connect(_user_group_change)
48
57
  # post_invalidation.connect(_cache_invalidated)
codex/startup.py CHANGED
@@ -87,7 +87,9 @@ def init_admin_flags():
87
87
  _delete_orphans(AdminFlag, "key", AdminFlag.FlagChoices.values)
88
88
 
89
89
  for key in AdminFlag.FlagChoices.values:
90
- defaults = {"key": key, "on": key not in AdminFlag.FALSE_DEFAULTS}
90
+ defaults = {}
91
+ if key in AdminFlag.FALSE_DEFAULTS:
92
+ defaults["on"] = False
91
93
  flag, created = AdminFlag.objects.get_or_create(defaults=defaults, key=key)
92
94
  if created:
93
95
  title = CHOICES["admin"]["adminFlags"][flag.key]
@@ -0,0 +1 @@
1
+ import{m as F,V as t}from"./VCheckboxBtn-k69hHqz6.js";import{a as g,u as I,V as l}from"./VSelectionControl-_6sv90xF.js";import{z as B,am as R,O as U,au as q,A as z,F as D,R as E,cE as M,S as u,aq as r}from"./admin-drawer-panel-D_qGurp0.js";const N=B({...g(),...R(F(),["inline"])},"VCheckbox"),j=U()({name:"VCheckbox",inheritAttrs:!1,props:N(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=q(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=z(),p=D(()=>e.id||`checkbox-${V}`);return E(()=>{const[b,f]=M(d),v=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},b,v,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:p.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:C,isValid:y}=o;return u(t,r(k,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:C.value},f,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":A=>s.value=A,onFocus:i,onBlur:m}),a)}})}),{}}});export{j as V};
@@ -0,0 +1 @@
1
+ import{m as F,V as t}from"./VCheckboxBtn-k69hHqz6.js";import{a as g,u as I,V as l}from"./VSelectionControl-_6sv90xF.js";import{z as B,am as R,O as U,au as q,A as z,F as D,R as E,cE as M,S as u,aq as r}from"./admin-drawer-panel-D_qGurp0.js";const N=B({...g(),...R(F(),["inline"])},"VCheckbox"),j=U()({name:"VCheckbox",inheritAttrs:!1,props:N(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=q(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=z(),p=D(()=>e.id||`checkbox-${V}`);return E(()=>{const[b,f]=M(d),v=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},b,v,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:p.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:C,isValid:y}=o;return u(t,r(k,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:C.value},f,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":A=>s.value=A,onFocus:i,onBlur:m}),a)}})}),{}}});export{j as V};
@@ -0,0 +1 @@
1
+ import{c as f,d as o}from"./VSelectionControl-_6sv90xF.js";import{z as V,bd as v,O as I,au as c,F as l,R as k,am as x,S as b,aq as h}from"./admin-drawer-panel-D_qGurp0.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:v,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=I()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:u}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function s(a){t.value&&(t.value=!1)}const d=l(()=>t.value?e.indeterminateIcon:e.falseIcon),i=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return k(()=>{const a=x(o.filterProps(e),["modelValue"]);return b(o,h(a,{modelValue:n.value,"onUpdate:modelValue":[m=>n.value=m,s],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:d.value,trueIcon:i.value,"aria-checked":t.value?"mixed":void 0}),u)}),{}}});export{B as V,C as m};
@@ -0,0 +1 @@
1
+ import{c as f,d as o}from"./VSelectionControl-_6sv90xF.js";import{z as V,bd as v,O as I,au as c,F as l,R as k,am as x,S as b,aq as h}from"./admin-drawer-panel-D_qGurp0.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:v,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=I()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:u}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function s(a){t.value&&(t.value=!1)}const d=l(()=>t.value?e.indeterminateIcon:e.falseIcon),i=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return k(()=>{const a=x(o.filterProps(e),["modelValue"]);return b(o,h(a,{modelValue:n.value,"onUpdate:modelValue":[m=>n.value=m,s],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:d.value,trueIcon:i.value,"aria-checked":t.value?"mixed":void 0}),u)}),{}}});export{B as V,C as m};
@@ -0,0 +1 @@
1
+ .v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:calc(100% - 4px)}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}
@@ -0,0 +1 @@
1
+ .v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:calc(100% - 4px)}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}
@@ -0,0 +1 @@
1
+ import{m as ke,u as Ce,V as pe,a as we,b as Se}from"./VSelect-cGleKlm7.js";import{m as Fe,V as J}from"./VTextField-DcZhRvPB.js";import{z as Ie,am as Pe,b3 as De,O as Re,c0 as Ae,r as L,E as P,au as X,F as b,cQ as _e,ao as Te,cR as D,a as R,n as Z,ah as Ee,R as Me,S as i,U as N,aq as I,bw as Le,aY as ee,cS as Ne,aP as le,cT as Oe,bg as Ue,ak as Ke,cU as Be,ar as ze,cV as je,cW as qe}from"./admin-drawer-panel-D_qGurp0.js";import{m as He,u as We}from"./filter-C96Ludgn.js";import{g as $e}from"./VSelectionControl-_6sv90xF.js";import{V as Qe}from"./VCheckboxBtn-k69hHqz6.js";function Ye(e,g,A){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(N,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,A)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+A)])]):e}const Ge=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...He({filterKeys:["title"]}),...ke({hideNoData:!0,returnObject:!0}),...Pe(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...De({transition:!1})},"VCombobox"),tl=Re()({name:"VCombobox",props:Ge(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var Q;let{emit:A,slots:o}=g;const{t:O}=Ae(),V=L(),x=P(!1),k=P(!0),U=P(!1),H=L(),W=L(),K=X(e,"menu"),c=b({get:()=>K.value,set:l=>{var t;K.value&&!l&&((t=H.value)!=null&&t.ΨopenChildren)||(K.value=l)}}),s=P(-1);let B=!1;const ae=b(()=>{var l;return(l=V.value)==null?void 0:l.color}),$=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=_e(e),{textColorClasses:oe,textColorStyles:ie}=Te(ae),n=X(e,"modelValue",[],l=>ne(qe(l)),l=>{const t=ue(l);return e.multiple?t:t[0]??null}),F=$e(),_=b(()=>!!(e.chips||o.chip)),y=b(()=>_.value||!!o.selection),C=P(!e.multiple&&!y.value?((Q=n.value[0])==null?void 0:Q.title)??"":""),v=b({get:()=>C.value,set:l=>{var t;if(C.value=l??"",!e.multiple&&!y.value&&(n.value=[D(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(a=>{a=a.trim(),a&&h(D(e,a))}),C.value="")}l||(s.value=-1),k.value=!l}}),se=b(()=>typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?n.value.length:v.value.length);R(C,l=>{B?Z(()=>B=!1):x.value&&!c.value&&(c.value=!0),A("update:search",l)}),R(n,l=>{var t;!e.multiple&&!y.value&&(C.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:T,getMatches:re}=We(e,te,()=>k.value?"":v.value),p=b(()=>e.hideSelected?T.value.filter(l=>!n.value.some(t=>t.value===l.value)):T.value),ce=b(()=>n.value.map(l=>l.value)),z=b(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=p.value[0])==null?void 0:t.title))&&p.value.length>0&&!k.value&&!U.value}),j=b(()=>e.hideNoData&&!p.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),q=L(),{onListScroll:ve,onListKeydown:de}=Ce(q,V);function fe(l){B=!0,e.openOnClear&&(c.value=!0)}function me(){j.value||(c.value=!0)}function be(l){j.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function he(l){var a;if(je(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=V.value.selectionStart,r=n.value.length;if((s.value>-1||["Enter","ArrowDown","ArrowUp"].includes(l.key))&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(c.value=!0),["Escape"].includes(l.key)&&(c.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(z.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===p.value[0].value})&&h(T.value[0]),k.value=!0),l.key==="ArrowDown"&&z.value&&((a=q.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(h(D(e,v.value)),y.value&&(C.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&n.value.length>0&&!v.value)return h(n.value[0],!1);if(~s.value){const u=s.value;h(n.value[s.value],!1),s.value=u>=r-1?r-2:u}else l.key==="Backspace"&&!v.value&&(s.value=r-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(s.value<0&&t>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(s.value<0)return;const u=s.value+1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(k.value=!0,(l=V.value)==null||l.focus())}function h(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const r=n.value.findIndex(u=>e.valueComparator(u.value,l.value)),a=t??!~r;if(~r){const u=a?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else a&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=t!==!1;n.value=r?[l]:[],C.value=r&&!y.value?l.title:"",Z(()=>{c.value=!1,k.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{U.value=!0})}function ye(l){U.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(n.value=[])}return R(x,(l,t)=>{if(!(l||l===t)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(D(e,v.value));return}if(!y.value)return;n.value.some(r=>{let{title:a}=r;return a===v.value})?C.value="":h(D(e,v.value))}}),R(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=p.value.findIndex(t=>n.value.some(r=>e.valueComparator(r.value,t.value)));Ee&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=W.value)==null||t.scrollToIndex(l))})}}),R(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Me(()=>{const l=!!(!e.hideNoData||p.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),t=n.value.length>0,r=J.filterProps(e);return i(J,I({ref:V},r,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:n.externalValue,counterValue:se.value,dirty:t,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!y.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:t?void 0:e.placeholder,"onClick:clear":fe,"onMousedown:control":me,onKeydown:he}),{...o,default:()=>i(N,null,[i(pe,I({ref:H,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:j.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&i(Le,I({ref:q,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,u,m;return[(a=o["prepend-item"])==null?void 0:a.call(o),!p.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(ee,{title:O(e.noDataText)},null)),i(we,{ref:W,renderless:!0,items:p.value},{default:w=>{var G;let{item:d,index:S,itemRef:f}=w;const Y=I(d.props,{ref:f,key:S,active:z.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((G=o.item)==null?void 0:G.call(o,{item:d,index:S,props:Y}))??i(ee,I(Y,{role:"option"}),{prepend:E=>{let{isSelected:M}=E;return i(N,null,[e.multiple&&!e.hideSelected?i(Qe,{key:d.value,modelValue:M,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Ne,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(le,{icon:d.props.prependIcon},null)])},title:()=>{var E,M;return k.value?d.title:Ye(d.title,(E=re(d))==null?void 0:E.title,((M=v.value)==null?void 0:M.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((a,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const w={"onClick:close":m,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),m(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=_.value?!!o.chip:!!o.selection,S=d?Oe(_.value?o.chip({item:a,index:u,props:w}):o.selection({item:a,index:u})):void 0;if(!(d&&!S))return i("div",{key:a.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[_.value?o.chip?i(Ue,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):i(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[Ke(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,u=new Array(a),m=0;m<a;m++)u[m]=arguments[m];return i(N,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:be,onClick:Be,"aria-label":O($.value),title:O($.value),tabindex:"-1"},null):void 0])}})}),ze({isFocused:x,isPristine:k,menu:c,search:v,selectionIndex:s,filteredItems:T,select:h},V)}});export{tl as V};
@@ -0,0 +1 @@
1
+ import{m as ke,u as Ce,V as pe,a as we,b as Se}from"./VSelect-cGleKlm7.js";import{m as Fe,V as J}from"./VTextField-DcZhRvPB.js";import{z as Ie,am as Pe,b3 as De,O as Re,c0 as Ae,r as L,E as P,au as X,F as b,cQ as _e,ao as Te,cR as D,a as R,n as Z,ah as Ee,R as Me,S as i,U as N,aq as I,bw as Le,aY as ee,cS as Ne,aP as le,cT as Oe,bg as Ue,ak as Ke,cU as Be,ar as ze,cV as je,cW as qe}from"./admin-drawer-panel-D_qGurp0.js";import{m as He,u as We}from"./filter-C96Ludgn.js";import{g as $e}from"./VSelectionControl-_6sv90xF.js";import{V as Qe}from"./VCheckboxBtn-k69hHqz6.js";function Ye(e,g,A){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(N,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,A)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+A)])]):e}const Ge=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...He({filterKeys:["title"]}),...ke({hideNoData:!0,returnObject:!0}),...Pe(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...De({transition:!1})},"VCombobox"),tl=Re()({name:"VCombobox",props:Ge(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var Q;let{emit:A,slots:o}=g;const{t:O}=Ae(),V=L(),x=P(!1),k=P(!0),U=P(!1),H=L(),W=L(),K=X(e,"menu"),c=b({get:()=>K.value,set:l=>{var t;K.value&&!l&&((t=H.value)!=null&&t.ΨopenChildren)||(K.value=l)}}),s=P(-1);let B=!1;const ae=b(()=>{var l;return(l=V.value)==null?void 0:l.color}),$=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=_e(e),{textColorClasses:oe,textColorStyles:ie}=Te(ae),n=X(e,"modelValue",[],l=>ne(qe(l)),l=>{const t=ue(l);return e.multiple?t:t[0]??null}),F=$e(),_=b(()=>!!(e.chips||o.chip)),y=b(()=>_.value||!!o.selection),C=P(!e.multiple&&!y.value?((Q=n.value[0])==null?void 0:Q.title)??"":""),v=b({get:()=>C.value,set:l=>{var t;if(C.value=l??"",!e.multiple&&!y.value&&(n.value=[D(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(a=>{a=a.trim(),a&&h(D(e,a))}),C.value="")}l||(s.value=-1),k.value=!l}}),se=b(()=>typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?n.value.length:v.value.length);R(C,l=>{B?Z(()=>B=!1):x.value&&!c.value&&(c.value=!0),A("update:search",l)}),R(n,l=>{var t;!e.multiple&&!y.value&&(C.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:T,getMatches:re}=We(e,te,()=>k.value?"":v.value),p=b(()=>e.hideSelected?T.value.filter(l=>!n.value.some(t=>t.value===l.value)):T.value),ce=b(()=>n.value.map(l=>l.value)),z=b(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=p.value[0])==null?void 0:t.title))&&p.value.length>0&&!k.value&&!U.value}),j=b(()=>e.hideNoData&&!p.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),q=L(),{onListScroll:ve,onListKeydown:de}=Ce(q,V);function fe(l){B=!0,e.openOnClear&&(c.value=!0)}function me(){j.value||(c.value=!0)}function be(l){j.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function he(l){var a;if(je(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=V.value.selectionStart,r=n.value.length;if((s.value>-1||["Enter","ArrowDown","ArrowUp"].includes(l.key))&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(c.value=!0),["Escape"].includes(l.key)&&(c.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(z.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===p.value[0].value})&&h(T.value[0]),k.value=!0),l.key==="ArrowDown"&&z.value&&((a=q.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(h(D(e,v.value)),y.value&&(C.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&n.value.length>0&&!v.value)return h(n.value[0],!1);if(~s.value){const u=s.value;h(n.value[s.value],!1),s.value=u>=r-1?r-2:u}else l.key==="Backspace"&&!v.value&&(s.value=r-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(s.value<0&&t>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(s.value<0)return;const u=s.value+1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(k.value=!0,(l=V.value)==null||l.focus())}function h(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const r=n.value.findIndex(u=>e.valueComparator(u.value,l.value)),a=t??!~r;if(~r){const u=a?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else a&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=t!==!1;n.value=r?[l]:[],C.value=r&&!y.value?l.title:"",Z(()=>{c.value=!1,k.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{U.value=!0})}function ye(l){U.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(n.value=[])}return R(x,(l,t)=>{if(!(l||l===t)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(D(e,v.value));return}if(!y.value)return;n.value.some(r=>{let{title:a}=r;return a===v.value})?C.value="":h(D(e,v.value))}}),R(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=p.value.findIndex(t=>n.value.some(r=>e.valueComparator(r.value,t.value)));Ee&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=W.value)==null||t.scrollToIndex(l))})}}),R(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Me(()=>{const l=!!(!e.hideNoData||p.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),t=n.value.length>0,r=J.filterProps(e);return i(J,I({ref:V},r,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:n.externalValue,counterValue:se.value,dirty:t,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!y.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:t?void 0:e.placeholder,"onClick:clear":fe,"onMousedown:control":me,onKeydown:he}),{...o,default:()=>i(N,null,[i(pe,I({ref:H,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:j.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&i(Le,I({ref:q,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,u,m;return[(a=o["prepend-item"])==null?void 0:a.call(o),!p.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(ee,{title:O(e.noDataText)},null)),i(we,{ref:W,renderless:!0,items:p.value},{default:w=>{var G;let{item:d,index:S,itemRef:f}=w;const Y=I(d.props,{ref:f,key:S,active:z.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((G=o.item)==null?void 0:G.call(o,{item:d,index:S,props:Y}))??i(ee,I(Y,{role:"option"}),{prepend:E=>{let{isSelected:M}=E;return i(N,null,[e.multiple&&!e.hideSelected?i(Qe,{key:d.value,modelValue:M,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Ne,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(le,{icon:d.props.prependIcon},null)])},title:()=>{var E,M;return k.value?d.title:Ye(d.title,(E=re(d))==null?void 0:E.title,((M=v.value)==null?void 0:M.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((a,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const w={"onClick:close":m,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),m(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=_.value?!!o.chip:!!o.selection,S=d?Oe(_.value?o.chip({item:a,index:u,props:w}):o.selection({item:a,index:u})):void 0;if(!(d&&!S))return i("div",{key:a.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[_.value?o.chip?i(Ue,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):i(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[Ke(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,u=new Array(a),m=0;m<a;m++)u[m]=arguments[m];return i(N,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:be,onClick:Be,"aria-label":O($.value),title:O($.value),tabindex:"-1"},null):void 0])}})}),ze({isFocused:x,isPristine:k,menu:c,search:v,selectionIndex:s,filteredItems:T,select:h},V)}});export{tl as V};
@@ -0,0 +1 @@
1
+ import{_ as S,Z as D,aE as h,S as v,$ as E,ak as V,aG as A,ap as b,z as F,dc as T,dd as $,O as k,au as L,aA as _,r as w,ah as I,a as P,n as R,R as O,dg as y,aq as m,bg as N,ar as q,dh as z}from"./admin-drawer-panel-D_qGurp0.js";const G={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},M={class:"confirmFooter"};function U(e,l,f,c,s,g){return D(),h("footer",M,[v(b,{class:"confirmButton",disabled:f.disabled,onClick:l[0]||(l[0]=t=>e.$emit("confirm"))},{default:E(()=>[V(A(f.confirmText),1)]),_:1},8,["disabled"]),v(b,{class:"cancelButton",onClick:l[1]||(l[1]=t=>e.$emit("cancel"))},{default:E(()=>[V(" Cancel ")]),_:1})])}const j=S(G,[["render",U],["__scopeId","data-v-24df1550"]]),W=F({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...T({origin:"center center",scrollStrategy:"block",transition:{component:$},zIndex:2400})},"VDialog"),H=k()({name:"VDialog",props:W(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,l){let{emit:f,slots:c}=l;const s=L(e,"modelValue"),{scopeId:g}=_(),t=w();function p(a){var r,u;const n=a.relatedTarget,i=a.target;if(n!==i&&((r=t.value)!=null&&r.contentEl)&&((u=t.value)!=null&&u.globalTop)&&![document,t.value.contentEl].includes(i)&&!t.value.contentEl.contains(i)){const o=z(t.value.contentEl);if(!o.length)return;const d=o[0],C=o[o.length-1];n===d?C.focus():d.focus()}}I&&P(()=>s.value&&e.retainFocus,a=>{a?document.addEventListener("focusin",p):document.removeEventListener("focusin",p)},{immediate:!0});function x(){var a;(a=t.value)!=null&&a.contentEl&&!t.value.contentEl.contains(document.activeElement)&&t.value.contentEl.focus({preventScroll:!0})}function B(){f("afterLeave")}return P(s,async a=>{var n;a||(await R(),(n=t.value.activatorEl)==null||n.focus({preventScroll:!0}))}),O(()=>{const a=y.filterProps(e),n=m({"aria-haspopup":"dialog","aria-expanded":String(s.value)},e.activatorProps),i=m({tabindex:-1},e.contentProps);return v(y,m({ref:t,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},a,{modelValue:s.value,"onUpdate:modelValue":r=>s.value=r,"aria-modal":"true",activatorProps:n,contentProps:i,role:"dialog",onAfterEnter:x,onAfterLeave:B},g),{activator:c.activator,default:function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];return v(N,{root:"VDialog"},{default:()=>{var d;return[(d=c.default)==null?void 0:d.call(c,...u)]}})}})}),q({},t)}});export{j as C,H as V};
@@ -0,0 +1 @@
1
+ import{_ as S,Z as D,aE as h,S as v,$ as E,ak as V,aG as A,ap as b,z as F,dc as T,dd as $,O as k,au as L,aA as _,r as w,ah as I,a as P,n as R,R as O,dg as y,aq as m,bg as N,ar as q,dh as z}from"./admin-drawer-panel-D_qGurp0.js";const G={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},M={class:"confirmFooter"};function U(e,l,f,c,s,g){return D(),h("footer",M,[v(b,{class:"confirmButton",disabled:f.disabled,onClick:l[0]||(l[0]=t=>e.$emit("confirm"))},{default:E(()=>[V(A(f.confirmText),1)]),_:1},8,["disabled"]),v(b,{class:"cancelButton",onClick:l[1]||(l[1]=t=>e.$emit("cancel"))},{default:E(()=>[V(" Cancel ")]),_:1})])}const j=S(G,[["render",U],["__scopeId","data-v-24df1550"]]),W=F({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...T({origin:"center center",scrollStrategy:"block",transition:{component:$},zIndex:2400})},"VDialog"),H=k()({name:"VDialog",props:W(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,l){let{emit:f,slots:c}=l;const s=L(e,"modelValue"),{scopeId:g}=_(),t=w();function p(a){var r,u;const n=a.relatedTarget,i=a.target;if(n!==i&&((r=t.value)!=null&&r.contentEl)&&((u=t.value)!=null&&u.globalTop)&&![document,t.value.contentEl].includes(i)&&!t.value.contentEl.contains(i)){const o=z(t.value.contentEl);if(!o.length)return;const d=o[0],C=o[o.length-1];n===d?C.focus():d.focus()}}I&&P(()=>s.value&&e.retainFocus,a=>{a?document.addEventListener("focusin",p):document.removeEventListener("focusin",p)},{immediate:!0});function x(){var a;(a=t.value)!=null&&a.contentEl&&!t.value.contentEl.contains(document.activeElement)&&t.value.contentEl.focus({preventScroll:!0})}function B(){f("afterLeave")}return P(s,async a=>{var n;a||(await R(),(n=t.value.activatorEl)==null||n.focus({preventScroll:!0}))}),O(()=>{const a=y.filterProps(e),n=m({"aria-haspopup":"dialog","aria-expanded":String(s.value)},e.activatorProps),i=m({tabindex:-1},e.contentProps);return v(y,m({ref:t,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},a,{modelValue:s.value,"onUpdate:modelValue":r=>s.value=r,"aria-modal":"true",activatorProps:n,contentProps:i,role:"dialog",onAfterEnter:x,onAfterLeave:B},g),{activator:c.activator,default:function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];return v(N,{root:"VDialog"},{default:()=>{var d;return[(d=c.default)==null?void 0:d.call(c,...u)]}})}})}),q({},t)}});export{j as C,H as V};
@@ -0,0 +1 @@
1
+ .confirmFooter[data-v-24df1550]{display:flex;justify-content:space-between;margin:1em auto auto}.v-dialog{align-items:center;justify-content:center;margin:auto}.v-dialog>.v-overlay__content{max-height:calc(100% - 48px);width:calc(100% - 48px);max-width:calc(100% - 48px);margin:24px}.v-dialog>.v-overlay__content,.v-dialog>.v-overlay__content>form{display:flex;flex-direction:column;min-height:0}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>.v-sheet,.v-dialog>.v-overlay__content>form>.v-card,.v-dialog>.v-overlay__content>form>.v-sheet{--v-scrollbar-offset: 0px;border-radius:4px;overflow-y:auto;box-shadow:0 11px 15px -7px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 24px 38px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 9px 46px 8px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>form>.v-card{display:flex;flex-direction:column}.v-dialog>.v-overlay__content>.v-card>.v-card-item,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item{padding:16px 24px}.v-dialog>.v-overlay__content>.v-card>.v-card-item+.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item+.v-card-text{padding-top:0}.v-dialog>.v-overlay__content>.v-card>.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-text{font-size:inherit;letter-spacing:.03125em;line-height:inherit;padding:16px 24px 24px}.v-dialog>.v-overlay__content>.v-card>.v-card-actions,.v-dialog>.v-overlay__content>form>.v-card>.v-card-actions{justify-content:flex-end}.v-dialog--fullscreen{--v-scrollbar-offset: 0px}.v-dialog--fullscreen>.v-overlay__content{border-radius:0;margin:0;padding:0;width:100%;height:100%;max-width:100%;max-height:100%;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-overlay__content>.v-card,.v-dialog--fullscreen>.v-overlay__content>.v-sheet,.v-dialog--fullscreen>.v-overlay__content>form>.v-card,.v-dialog--fullscreen>.v-overlay__content>form>.v-sheet{min-height:100%;min-width:100%;border-radius:0}.v-dialog--scrollable>.v-overlay__content,.v-dialog--scrollable>.v-overlay__content>form{display:flex}.v-dialog--scrollable>.v-overlay__content>.v-card,.v-dialog--scrollable>.v-overlay__content>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-overlay__content>.v-card>.v-card-text,.v-dialog--scrollable>.v-overlay__content>form>.v-card>.v-card-text{backface-visibility:hidden;overflow-y:auto}
@@ -0,0 +1 @@
1
+ .confirmFooter[data-v-24df1550]{display:flex;justify-content:space-between;margin:1em auto auto}.v-dialog{align-items:center;justify-content:center;margin:auto}.v-dialog>.v-overlay__content{max-height:calc(100% - 48px);width:calc(100% - 48px);max-width:calc(100% - 48px);margin:24px}.v-dialog>.v-overlay__content,.v-dialog>.v-overlay__content>form{display:flex;flex-direction:column;min-height:0}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>.v-sheet,.v-dialog>.v-overlay__content>form>.v-card,.v-dialog>.v-overlay__content>form>.v-sheet{--v-scrollbar-offset: 0px;border-radius:4px;overflow-y:auto;box-shadow:0 11px 15px -7px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 24px 38px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 9px 46px 8px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>form>.v-card{display:flex;flex-direction:column}.v-dialog>.v-overlay__content>.v-card>.v-card-item,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item{padding:16px 24px}.v-dialog>.v-overlay__content>.v-card>.v-card-item+.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item+.v-card-text{padding-top:0}.v-dialog>.v-overlay__content>.v-card>.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-text{font-size:inherit;letter-spacing:.03125em;line-height:inherit;padding:16px 24px 24px}.v-dialog>.v-overlay__content>.v-card>.v-card-actions,.v-dialog>.v-overlay__content>form>.v-card>.v-card-actions{justify-content:flex-end}.v-dialog--fullscreen{--v-scrollbar-offset: 0px}.v-dialog--fullscreen>.v-overlay__content{border-radius:0;margin:0;padding:0;width:100%;height:100%;max-width:100%;max-height:100%;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-overlay__content>.v-card,.v-dialog--fullscreen>.v-overlay__content>.v-sheet,.v-dialog--fullscreen>.v-overlay__content>form>.v-card,.v-dialog--fullscreen>.v-overlay__content>form>.v-sheet{min-height:100%;min-width:100%;border-radius:0}.v-dialog--scrollable>.v-overlay__content,.v-dialog--scrollable>.v-overlay__content>form{display:flex}.v-dialog--scrollable>.v-overlay__content>.v-card,.v-dialog--scrollable>.v-overlay__content>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-overlay__content>.v-card>.v-card-text,.v-dialog--scrollable>.v-overlay__content>form>.v-card>.v-card-text{backface-visibility:hidden;overflow-y:auto}
@@ -0,0 +1 @@
1
+ import{z as P,M as V,c3 as G,O as b,i as I,c7 as L,R as m,S as l,aT as C,bY as $,bS as j,bd as E,cf as F,ay as T,F as r,b6 as N,bg as h,aP as O,cd as Y,c2 as M,be as X,aw as w,c5 as q,cg as H,bf as J,D as K,cX as Q,cY as U,N as W,c1 as Z,P as ee,aB as ae,az as t}from"./admin-drawer-panel-D_qGurp0.js";const p=Symbol.for("vuetify:v-expansion-panel"),B=P({...V(),...G()},"VExpansionPanelText"),S=b()({name:"VExpansionPanelText",props:B(),setup(e,d){let{slots:n}=d;const a=I(p);if(!a)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:i,onAfterLeave:u}=L(e,a.isSelected);return m(()=>l(j,{onAfterLeave:u},{default:()=>{var o;return[C(l("div",{class:["v-expansion-panel-text",e.class],style:e.style},[n.default&&i.value&&l("div",{class:"v-expansion-panel-text__wrapper"},[(o=n.default)==null?void 0:o.call(n)])]),[[$,a.isSelected.value]])]}})),{}}}),A=P({color:String,expandIcon:{type:E,default:"$expand"},collapseIcon:{type:E,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...V()},"VExpansionPanelTitle"),k=b()({name:"VExpansionPanelTitle",directives:{Ripple:F},props:A(),setup(e,d){let{slots:n}=d;const a=I(p);if(!a)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:i,backgroundColorStyles:u}=T(e,"color"),o=r(()=>({collapseIcon:e.collapseIcon,disabled:a.disabled.value,expanded:a.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly})),v=r(()=>a.isSelected.value?e.collapseIcon:e.expandIcon);return m(()=>{var f;return C(l("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":a.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},i.value,e.class],style:[u.value,e.style],type:"button",tabindex:a.disabled.value?-1:void 0,disabled:a.disabled.value,"aria-expanded":a.isSelected.value,onClick:e.readonly?void 0:a.toggle},[l("span",{class:"v-expansion-panel-title__overlay"},null),(f=n.default)==null?void 0:f.call(n,o.value),!e.hideActions&&l(h,{defaults:{VIcon:{icon:v.value}}},{default:()=>{var x;return[l("span",{class:"v-expansion-panel-title__icon"},[((x=n.actions)==null?void 0:x.call(n,o.value))??l(O,null,null)])]}})]),[[N("ripple"),e.ripple]])}),{}}}),_=P({title:String,text:String,bgColor:String,...Y(),...M(),...X(),...w(),...A(),...B()},"VExpansionPanel"),se=b()({name:"VExpansionPanel",props:_(),emits:{"group:selected":e=>!0},setup(e,d){let{slots:n}=d;const a=q(e,p),{backgroundColorClasses:i,backgroundColorStyles:u}=T(e,"bgColor"),{elevationClasses:o}=H(e),{roundedClasses:v}=J(e),f=r(()=>(a==null?void 0:a.disabled.value)||e.disabled),x=r(()=>a.group.items.value.reduce((c,s,y)=>(a.group.selected.value.includes(s.id)&&c.push(y),c),[])),D=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&x.value.some(s=>s-c===1)}),R=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&x.value.some(s=>s-c===-1)});return K(p,a),m(()=>{const c=!!(n.text||e.text),s=!!(n.title||e.title),y=k.filterProps(e),z=S.filterProps(e);return l(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":a.isSelected.value,"v-expansion-panel--before-active":D.value,"v-expansion-panel--after-active":R.value,"v-expansion-panel--disabled":f.value},v.value,i.value,e.class],style:[u.value,e.style]},{default:()=>[l("div",{class:["v-expansion-panel__shadow",...o.value]},null),l(h,{defaults:{VExpansionPanelTitle:{...y},VExpansionPanelText:{...z}}},{default:()=>{var g;return[s&&l(k,{key:"title"},{default:()=>[n.title?n.title():e.title]}),c&&l(S,{key:"text"},{default:()=>[n.text?n.text():e.text]}),(g=n.default)==null?void 0:g.call(n)]}})]})}),{groupItem:a}}}),ne=["default","accordion","inset","popout"],le=P({flat:Boolean,...Q(),...U(_(),["bgColor","collapseIcon","color","eager","elevation","expandIcon","focusable","hideActions","readonly","ripple","rounded","tile","static"]),...W(),...V(),...w(),variant:{type:String,default:"default",validator:e=>ne.includes(e)}},"VExpansionPanels"),oe=b()({name:"VExpansionPanels",props:le(),emits:{"update:modelValue":e=>!0},setup(e,d){let{slots:n}=d;const{next:a,prev:i}=Z(e,p),{themeClasses:u}=ee(e),o=r(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return ae({VExpansionPanel:{bgColor:t(e,"bgColor"),collapseIcon:t(e,"collapseIcon"),color:t(e,"color"),eager:t(e,"eager"),elevation:t(e,"elevation"),expandIcon:t(e,"expandIcon"),focusable:t(e,"focusable"),hideActions:t(e,"hideActions"),readonly:t(e,"readonly"),ripple:t(e,"ripple"),rounded:t(e,"rounded"),static:t(e,"static")}}),m(()=>l(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},u.value,o.value,e.class],style:e.style},{default:()=>{var v;return[(v=n.default)==null?void 0:v.call(n,{prev:i,next:a})]}})),{next:a,prev:i}}});export{se as V,k as a,S as b,oe as c};
@@ -0,0 +1 @@
1
+ import{z as P,M as V,c3 as G,O as b,i as I,c7 as L,R as m,S as l,aT as C,bY as $,bS as j,bd as E,cf as F,ay as T,F as r,b6 as N,bg as h,aP as O,cd as Y,c2 as M,be as X,aw as w,c5 as q,cg as H,bf as J,D as K,cX as Q,cY as U,N as W,c1 as Z,P as ee,aB as ae,az as t}from"./admin-drawer-panel-D_qGurp0.js";const p=Symbol.for("vuetify:v-expansion-panel"),B=P({...V(),...G()},"VExpansionPanelText"),S=b()({name:"VExpansionPanelText",props:B(),setup(e,d){let{slots:n}=d;const a=I(p);if(!a)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:i,onAfterLeave:u}=L(e,a.isSelected);return m(()=>l(j,{onAfterLeave:u},{default:()=>{var o;return[C(l("div",{class:["v-expansion-panel-text",e.class],style:e.style},[n.default&&i.value&&l("div",{class:"v-expansion-panel-text__wrapper"},[(o=n.default)==null?void 0:o.call(n)])]),[[$,a.isSelected.value]])]}})),{}}}),A=P({color:String,expandIcon:{type:E,default:"$expand"},collapseIcon:{type:E,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...V()},"VExpansionPanelTitle"),k=b()({name:"VExpansionPanelTitle",directives:{Ripple:F},props:A(),setup(e,d){let{slots:n}=d;const a=I(p);if(!a)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:i,backgroundColorStyles:u}=T(e,"color"),o=r(()=>({collapseIcon:e.collapseIcon,disabled:a.disabled.value,expanded:a.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly})),v=r(()=>a.isSelected.value?e.collapseIcon:e.expandIcon);return m(()=>{var f;return C(l("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":a.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},i.value,e.class],style:[u.value,e.style],type:"button",tabindex:a.disabled.value?-1:void 0,disabled:a.disabled.value,"aria-expanded":a.isSelected.value,onClick:e.readonly?void 0:a.toggle},[l("span",{class:"v-expansion-panel-title__overlay"},null),(f=n.default)==null?void 0:f.call(n,o.value),!e.hideActions&&l(h,{defaults:{VIcon:{icon:v.value}}},{default:()=>{var x;return[l("span",{class:"v-expansion-panel-title__icon"},[((x=n.actions)==null?void 0:x.call(n,o.value))??l(O,null,null)])]}})]),[[N("ripple"),e.ripple]])}),{}}}),_=P({title:String,text:String,bgColor:String,...Y(),...M(),...X(),...w(),...A(),...B()},"VExpansionPanel"),se=b()({name:"VExpansionPanel",props:_(),emits:{"group:selected":e=>!0},setup(e,d){let{slots:n}=d;const a=q(e,p),{backgroundColorClasses:i,backgroundColorStyles:u}=T(e,"bgColor"),{elevationClasses:o}=H(e),{roundedClasses:v}=J(e),f=r(()=>(a==null?void 0:a.disabled.value)||e.disabled),x=r(()=>a.group.items.value.reduce((c,s,y)=>(a.group.selected.value.includes(s.id)&&c.push(y),c),[])),D=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&x.value.some(s=>s-c===1)}),R=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&x.value.some(s=>s-c===-1)});return K(p,a),m(()=>{const c=!!(n.text||e.text),s=!!(n.title||e.title),y=k.filterProps(e),z=S.filterProps(e);return l(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":a.isSelected.value,"v-expansion-panel--before-active":D.value,"v-expansion-panel--after-active":R.value,"v-expansion-panel--disabled":f.value},v.value,i.value,e.class],style:[u.value,e.style]},{default:()=>[l("div",{class:["v-expansion-panel__shadow",...o.value]},null),l(h,{defaults:{VExpansionPanelTitle:{...y},VExpansionPanelText:{...z}}},{default:()=>{var g;return[s&&l(k,{key:"title"},{default:()=>[n.title?n.title():e.title]}),c&&l(S,{key:"text"},{default:()=>[n.text?n.text():e.text]}),(g=n.default)==null?void 0:g.call(n)]}})]})}),{groupItem:a}}}),ne=["default","accordion","inset","popout"],le=P({flat:Boolean,...Q(),...U(_(),["bgColor","collapseIcon","color","eager","elevation","expandIcon","focusable","hideActions","readonly","ripple","rounded","tile","static"]),...W(),...V(),...w(),variant:{type:String,default:"default",validator:e=>ne.includes(e)}},"VExpansionPanels"),oe=b()({name:"VExpansionPanels",props:le(),emits:{"update:modelValue":e=>!0},setup(e,d){let{slots:n}=d;const{next:a,prev:i}=Z(e,p),{themeClasses:u}=ee(e),o=r(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return ae({VExpansionPanel:{bgColor:t(e,"bgColor"),collapseIcon:t(e,"collapseIcon"),color:t(e,"color"),eager:t(e,"eager"),elevation:t(e,"elevation"),expandIcon:t(e,"expandIcon"),focusable:t(e,"focusable"),hideActions:t(e,"hideActions"),readonly:t(e,"readonly"),ripple:t(e,"ripple"),rounded:t(e,"rounded"),static:t(e,"static")}}),m(()=>l(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},u.value,o.value,e.class],style:e.style},{default:()=>{var v;return[(v=n.default)==null?void 0:v.call(n,{prev:i,next:a})]}})),{next:a,prev:i}}});export{se as V,k as a,S as b,oe as c};