codex 1.7.2__py3-none-any.whl → 1.7.3__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 (894) hide show
  1. codex/asgi.py +2 -1
  2. codex/choices.py +10 -11
  3. codex/choices_to_json.py +8 -8
  4. codex/db.py +2 -2
  5. codex/exceptions.py +5 -6
  6. codex/librarian/bookmark/bookmarkd.py +9 -6
  7. codex/librarian/bookmark/tasks.py +1 -1
  8. codex/librarian/bookmark/update.py +17 -31
  9. codex/librarian/covers/create.py +10 -8
  10. codex/librarian/covers/path.py +6 -5
  11. codex/librarian/covers/purge.py +2 -2
  12. codex/librarian/cron/crond.py +1 -1
  13. codex/librarian/importer/aggregate.py +2 -2
  14. codex/librarian/importer/cache.py +1 -4
  15. codex/librarian/importer/create_comics.py +2 -2
  16. codex/librarian/importer/create_covers.py +1 -1
  17. codex/librarian/importer/create_fks.py +4 -3
  18. codex/librarian/importer/deleted.py +3 -3
  19. codex/librarian/importer/extract.py +2 -2
  20. codex/librarian/importer/failed_imports.py +1 -1
  21. codex/librarian/importer/importer.py +3 -1
  22. codex/librarian/importer/importerd.py +3 -3
  23. codex/librarian/importer/link_comics.py +2 -1
  24. codex/librarian/importer/moved.py +2 -7
  25. codex/librarian/importer/query_fks.py +3 -6
  26. codex/librarian/importer/tasks.py +1 -1
  27. codex/librarian/janitor/integrity.py +27 -20
  28. codex/librarian/janitor/janitor.py +5 -2
  29. codex/librarian/janitor/latest_version.py +1 -1
  30. codex/librarian/janitor/update.py +2 -2
  31. codex/librarian/janitor/vacuum.py +1 -1
  32. codex/librarian/librariand.py +16 -15
  33. codex/librarian/notifier/notifierd.py +2 -1
  34. codex/librarian/search/optimize.py +1 -1
  35. codex/librarian/search/remove.py +1 -1
  36. codex/librarian/search/update.py +11 -7
  37. codex/librarian/telemeter/stats.py +7 -6
  38. codex/librarian/telemeter/telemeter.py +0 -1
  39. codex/librarian/watchdog/db_snapshot.py +3 -3
  40. codex/librarian/watchdog/dir_snapshot_diff.py +3 -4
  41. codex/librarian/watchdog/emitter.py +4 -4
  42. codex/librarian/watchdog/event_batcherd.py +2 -1
  43. codex/librarian/watchdog/events.py +1 -2
  44. codex/librarian/watchdog/observers.py +15 -10
  45. codex/logger/loggerd.py +40 -17
  46. codex/logger/logging.py +1 -1
  47. codex/memory.py +3 -2
  48. codex/migrations/0001_init.py +1 -2
  49. codex/migrations/0014_pdf_issue_suffix_remove_cover_image_sort_name.py +1 -2
  50. codex/migrations/0018_rename_userbookmark_bookmark.py +1 -2
  51. codex/migrations/0028_telemeter.py +1 -5
  52. codex/migrations/0031_adminflag_banner.py +50 -0
  53. codex/models/admin.py +4 -3
  54. codex/models/base.py +3 -1
  55. codex/models/bookmark.py +4 -7
  56. codex/models/comic.py +2 -2
  57. codex/models/functions.py +12 -5
  58. codex/models/groups.py +1 -1
  59. codex/models/library.py +1 -1
  60. codex/models/paths.py +4 -4
  61. codex/models/query.py +8 -4
  62. codex/models/util.py +1 -1
  63. codex/permissions.py +1 -1
  64. codex/run.py +1 -1
  65. codex/serializers/admin/flags.py +1 -1
  66. codex/serializers/admin/libraries.py +1 -3
  67. codex/serializers/auth.py +1 -0
  68. codex/serializers/browser/choices.py +2 -2
  69. codex/serializers/browser/mixins.py +5 -1
  70. codex/serializers/browser/settings.py +2 -2
  71. codex/serializers/fields.py +7 -7
  72. codex/serializers/models/base.py +1 -1
  73. codex/serializers/models/comic.py +2 -2
  74. codex/serializers/models/groups.py +0 -2
  75. codex/serializers/opds/authentication.py +2 -1
  76. codex/serializers/opds/v2/__init__.py +1 -0
  77. codex/serializers/opds/v2/facet.py +13 -0
  78. codex/serializers/opds/v2/feed.py +36 -0
  79. codex/serializers/opds/v2/links.py +75 -0
  80. codex/serializers/opds/v2/metadata.py +23 -0
  81. codex/serializers/opds/v2/progression.py +65 -0
  82. codex/serializers/opds/v2/publication.py +81 -0
  83. codex/serializers/opds/{v2_unused.py → v2/unused.py} +16 -9
  84. codex/serializers/route.py +2 -2
  85. codex/settings/settings.py +4 -3
  86. codex/signals/django_signals.py +1 -1
  87. codex/static_root/assets/VCheckbox-Dv6fwaDb.56abbfb00c8a.js +1 -0
  88. codex/static_root/assets/VCheckbox-Dv6fwaDb.56abbfb00c8a.js.br +0 -0
  89. codex/static_root/assets/VCheckbox-Dv6fwaDb.56abbfb00c8a.js.gz +0 -0
  90. codex/static_root/assets/VCheckbox-Dv6fwaDb.js +1 -0
  91. codex/static_root/assets/VCheckbox-Dv6fwaDb.js.br +0 -0
  92. codex/static_root/assets/VCheckbox-Dv6fwaDb.js.gz +0 -0
  93. codex/static_root/assets/VCheckboxBtn-CNMFahfF.4ee9778a562e.js +1 -0
  94. codex/static_root/assets/VCheckboxBtn-CNMFahfF.4ee9778a562e.js.br +0 -0
  95. codex/static_root/assets/VCheckboxBtn-CNMFahfF.4ee9778a562e.js.gz +0 -0
  96. codex/static_root/assets/VCheckboxBtn-CNMFahfF.js +1 -0
  97. codex/static_root/assets/VCheckboxBtn-CNMFahfF.js.br +0 -0
  98. codex/static_root/assets/VCheckboxBtn-CNMFahfF.js.gz +0 -0
  99. codex/static_root/assets/VCombobox-DqBFki-9.2806f95c938d.js +1 -0
  100. codex/static_root/assets/VCombobox-DqBFki-9.2806f95c938d.js.br +0 -0
  101. codex/static_root/assets/VCombobox-DqBFki-9.2806f95c938d.js.gz +0 -0
  102. codex/static_root/assets/VCombobox-DqBFki-9.js +1 -0
  103. codex/static_root/assets/VCombobox-DqBFki-9.js.br +0 -0
  104. codex/static_root/assets/VCombobox-DqBFki-9.js.gz +0 -0
  105. codex/static_root/assets/VDialog-CQXjBvDZ.1a576c5e472f.js +1 -0
  106. codex/static_root/assets/VDialog-CQXjBvDZ.1a576c5e472f.js.br +0 -0
  107. codex/static_root/assets/VDialog-CQXjBvDZ.1a576c5e472f.js.gz +0 -0
  108. codex/static_root/assets/VDialog-CQXjBvDZ.js +1 -0
  109. codex/static_root/assets/VDialog-CQXjBvDZ.js.br +0 -0
  110. codex/static_root/assets/VDialog-CQXjBvDZ.js.gz +0 -0
  111. codex/static_root/assets/VDialog-DWos4S54.b07aca713774.css +1 -0
  112. codex/static_root/assets/VDialog-DWos4S54.b07aca713774.css.br +0 -0
  113. codex/static_root/assets/VDialog-DWos4S54.b07aca713774.css.gz +0 -0
  114. codex/static_root/assets/VDialog-DWos4S54.css +1 -0
  115. codex/static_root/assets/VDialog-DWos4S54.css.br +0 -0
  116. codex/static_root/assets/VDialog-DWos4S54.css.gz +0 -0
  117. codex/static_root/assets/VDivider-DU47sRrT.3d2e17799e5c.css +1 -0
  118. codex/static_root/assets/VDivider-DU47sRrT.3d2e17799e5c.css.br +0 -0
  119. codex/static_root/assets/VDivider-DU47sRrT.3d2e17799e5c.css.gz +0 -0
  120. codex/static_root/assets/VDivider-DU47sRrT.css +1 -0
  121. codex/static_root/assets/VDivider-DU47sRrT.css.br +0 -0
  122. codex/static_root/assets/VDivider-DU47sRrT.css.gz +0 -0
  123. codex/static_root/assets/VDivider-DUxQu-IZ.73d92ae2a07e.js +1 -0
  124. codex/static_root/assets/VDivider-DUxQu-IZ.73d92ae2a07e.js.br +0 -0
  125. codex/static_root/assets/VDivider-DUxQu-IZ.73d92ae2a07e.js.gz +0 -0
  126. codex/static_root/assets/VDivider-DUxQu-IZ.js +1 -0
  127. codex/static_root/assets/VDivider-DUxQu-IZ.js.br +0 -0
  128. codex/static_root/assets/VDivider-DUxQu-IZ.js.gz +0 -0
  129. codex/static_root/assets/VExpansionPanels-BaYzHUJp.5346826103eb.js +1 -0
  130. codex/static_root/assets/VExpansionPanels-BaYzHUJp.5346826103eb.js.br +0 -0
  131. codex/static_root/assets/VExpansionPanels-BaYzHUJp.5346826103eb.js.gz +0 -0
  132. codex/static_root/assets/VExpansionPanels-BaYzHUJp.js +1 -0
  133. codex/static_root/assets/VExpansionPanels-BaYzHUJp.js.br +0 -0
  134. codex/static_root/assets/VExpansionPanels-BaYzHUJp.js.gz +0 -0
  135. codex/static_root/assets/VForm-DxBt30-N.138c0b89b6fc.css +1 -0
  136. codex/static_root/assets/VForm-DxBt30-N.138c0b89b6fc.css.br +0 -0
  137. codex/static_root/assets/VForm-DxBt30-N.138c0b89b6fc.css.gz +0 -0
  138. codex/static_root/assets/VForm-DxBt30-N.css +1 -0
  139. codex/static_root/assets/VForm-DxBt30-N.css.br +0 -0
  140. codex/static_root/assets/VForm-DxBt30-N.css.gz +0 -0
  141. codex/static_root/assets/VForm-hB4C5jVd.a2b90ddcd8ee.js +1 -0
  142. codex/static_root/assets/VForm-hB4C5jVd.a2b90ddcd8ee.js.br +0 -0
  143. codex/static_root/assets/VForm-hB4C5jVd.a2b90ddcd8ee.js.gz +0 -0
  144. codex/static_root/assets/VForm-hB4C5jVd.js +1 -0
  145. codex/static_root/assets/VForm-hB4C5jVd.js.br +0 -0
  146. codex/static_root/assets/VForm-hB4C5jVd.js.gz +0 -0
  147. codex/static_root/assets/VRadioGroup-DOjw38qB.cbf2922d05af.js +1 -0
  148. codex/static_root/assets/VRadioGroup-DOjw38qB.cbf2922d05af.js.br +0 -0
  149. codex/static_root/assets/VRadioGroup-DOjw38qB.cbf2922d05af.js.gz +0 -0
  150. codex/static_root/assets/VRadioGroup-DOjw38qB.js +1 -0
  151. codex/static_root/assets/VRadioGroup-DOjw38qB.js.br +0 -0
  152. codex/static_root/assets/VRadioGroup-DOjw38qB.js.gz +0 -0
  153. codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css +1 -0
  154. codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.br +0 -0
  155. codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.gz +0 -0
  156. codex/static_root/assets/VSelect-CP_CVb8s.css +1 -0
  157. codex/static_root/assets/VSelect-CP_CVb8s.css.br +0 -0
  158. codex/static_root/assets/VSelect-CP_CVb8s.css.gz +0 -0
  159. codex/static_root/assets/VSelect-L4v_m3ag.db9fb8348617.js +1 -0
  160. codex/static_root/assets/VSelect-L4v_m3ag.db9fb8348617.js.br +0 -0
  161. codex/static_root/assets/VSelect-L4v_m3ag.db9fb8348617.js.gz +0 -0
  162. codex/static_root/assets/VSelect-L4v_m3ag.js +1 -0
  163. codex/static_root/assets/VSelect-L4v_m3ag.js.br +0 -0
  164. codex/static_root/assets/VSelect-L4v_m3ag.js.gz +0 -0
  165. codex/static_root/assets/VSelectionControl-BqB1JeKa.2fb68a673402.js +1 -0
  166. codex/static_root/assets/VSelectionControl-BqB1JeKa.2fb68a673402.js.br +0 -0
  167. codex/static_root/assets/VSelectionControl-BqB1JeKa.2fb68a673402.js.gz +0 -0
  168. codex/static_root/assets/VSelectionControl-BqB1JeKa.js +1 -0
  169. codex/static_root/assets/VSelectionControl-BqB1JeKa.js.br +0 -0
  170. codex/static_root/assets/VSelectionControl-BqB1JeKa.js.gz +0 -0
  171. codex/static_root/assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css +1 -0
  172. codex/static_root/assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css.br +0 -0
  173. codex/static_root/assets/VSelectionControl-DPpfgCW2.cc18de4e83f6.css.gz +0 -0
  174. codex/static_root/assets/VSelectionControl-DPpfgCW2.css +1 -0
  175. codex/static_root/assets/VSelectionControl-DPpfgCW2.css.br +0 -0
  176. codex/static_root/assets/VSelectionControl-DPpfgCW2.css.gz +0 -0
  177. codex/static_root/assets/VTable-CtorAbOx.bbda450cbd73.js +1 -0
  178. codex/static_root/assets/VTable-CtorAbOx.bbda450cbd73.js.br +0 -0
  179. codex/static_root/assets/VTable-CtorAbOx.bbda450cbd73.js.gz +0 -0
  180. codex/static_root/assets/VTable-CtorAbOx.js +1 -0
  181. codex/static_root/assets/VTable-CtorAbOx.js.br +0 -0
  182. codex/static_root/assets/VTable-CtorAbOx.js.gz +0 -0
  183. codex/static_root/assets/VWindowItem-Bl-fa3ss.334e6b813775.js +1 -0
  184. codex/static_root/assets/VWindowItem-Bl-fa3ss.334e6b813775.js.br +0 -0
  185. codex/static_root/assets/VWindowItem-Bl-fa3ss.334e6b813775.js.gz +0 -0
  186. codex/static_root/assets/VWindowItem-Bl-fa3ss.js +1 -0
  187. codex/static_root/assets/VWindowItem-Bl-fa3ss.js.br +0 -0
  188. codex/static_root/assets/VWindowItem-Bl-fa3ss.js.gz +0 -0
  189. codex/static_root/assets/admin-BAVKNREt.23c0966bd683.js +1 -0
  190. codex/static_root/assets/admin-BAVKNREt.23c0966bd683.js.br +0 -0
  191. codex/static_root/assets/admin-BAVKNREt.23c0966bd683.js.gz +0 -0
  192. codex/static_root/assets/admin-BAVKNREt.js +1 -0
  193. codex/static_root/assets/admin-BAVKNREt.js.br +0 -0
  194. codex/static_root/assets/admin-BAVKNREt.js.gz +0 -0
  195. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css +1 -0
  196. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.br +0 -0
  197. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.gz +0 -0
  198. codex/static_root/assets/admin-C3iCIUnm.css +1 -0
  199. codex/static_root/assets/admin-C3iCIUnm.css.br +0 -0
  200. codex/static_root/assets/admin-C3iCIUnm.css.gz +0 -0
  201. codex/static_root/assets/admin-CHuFhx_t.a54700f97fc8.js +1 -0
  202. codex/static_root/assets/admin-CHuFhx_t.a54700f97fc8.js.br +0 -0
  203. codex/static_root/assets/admin-CHuFhx_t.a54700f97fc8.js.gz +0 -0
  204. codex/static_root/assets/admin-CHuFhx_t.js +1 -0
  205. codex/static_root/assets/admin-CHuFhx_t.js.br +0 -0
  206. codex/static_root/assets/admin-CHuFhx_t.js.gz +0 -0
  207. codex/static_root/assets/admin-menu-T8WJ_x0C.4f011540bb4c.js +1 -0
  208. codex/static_root/assets/admin-menu-T8WJ_x0C.4f011540bb4c.js.br +0 -0
  209. codex/static_root/assets/admin-menu-T8WJ_x0C.4f011540bb4c.js.gz +0 -0
  210. codex/static_root/assets/admin-menu-T8WJ_x0C.js +1 -0
  211. codex/static_root/assets/admin-menu-T8WJ_x0C.js.br +0 -0
  212. codex/static_root/assets/admin-menu-T8WJ_x0C.js.gz +0 -0
  213. codex/static_root/assets/admin-settings-button-progress-w_CqTSMl.7b36216f68b5.js +1 -0
  214. codex/static_root/assets/admin-settings-button-progress-w_CqTSMl.7b36216f68b5.js.br +0 -0
  215. codex/static_root/assets/admin-settings-button-progress-w_CqTSMl.7b36216f68b5.js.gz +0 -0
  216. codex/static_root/assets/admin-settings-button-progress-w_CqTSMl.js +1 -0
  217. codex/static_root/assets/admin-settings-button-progress-w_CqTSMl.js.br +0 -0
  218. codex/static_root/assets/admin-settings-button-progress-w_CqTSMl.js.gz +0 -0
  219. codex/static_root/assets/browser-DNzQvgkY.aea8b7d7ca40.css +1 -0
  220. codex/static_root/assets/browser-DNzQvgkY.aea8b7d7ca40.css.br +0 -0
  221. codex/static_root/assets/browser-DNzQvgkY.aea8b7d7ca40.css.gz +0 -0
  222. codex/static_root/assets/browser-DNzQvgkY.css +1 -0
  223. codex/static_root/assets/browser-DNzQvgkY.css.br +0 -0
  224. codex/static_root/assets/browser-DNzQvgkY.css.gz +0 -0
  225. codex/static_root/assets/browser-DdLCtUlr.380b79bea4a7.js +1 -0
  226. codex/static_root/assets/browser-DdLCtUlr.380b79bea4a7.js.br +0 -0
  227. codex/static_root/assets/browser-DdLCtUlr.380b79bea4a7.js.gz +0 -0
  228. codex/static_root/assets/browser-DdLCtUlr.js +1 -0
  229. codex/static_root/assets/browser-DdLCtUlr.js.br +0 -0
  230. codex/static_root/assets/browser-DdLCtUlr.js.gz +0 -0
  231. codex/static_root/assets/change-password-dialog-Cy1tU-tj.416ef5bdfd46.js +1 -0
  232. codex/static_root/assets/change-password-dialog-Cy1tU-tj.416ef5bdfd46.js.br +0 -0
  233. codex/static_root/assets/change-password-dialog-Cy1tU-tj.416ef5bdfd46.js.gz +0 -0
  234. codex/static_root/assets/change-password-dialog-Cy1tU-tj.js +1 -0
  235. codex/static_root/assets/change-password-dialog-Cy1tU-tj.js.br +0 -0
  236. codex/static_root/assets/change-password-dialog-Cy1tU-tj.js.gz +0 -0
  237. codex/static_root/assets/confirm-dialog-B_Y3KKiL.1070d18f6b2d.js +1 -0
  238. codex/static_root/assets/confirm-dialog-B_Y3KKiL.1070d18f6b2d.js.br +0 -0
  239. codex/static_root/assets/confirm-dialog-B_Y3KKiL.1070d18f6b2d.js.gz +0 -0
  240. codex/static_root/assets/confirm-dialog-B_Y3KKiL.js +1 -0
  241. codex/static_root/assets/confirm-dialog-B_Y3KKiL.js.br +0 -0
  242. codex/static_root/assets/confirm-dialog-B_Y3KKiL.js.gz +0 -0
  243. codex/static_root/assets/datetime-column-DVC0YqHC.03bb52c198e9.js +1 -0
  244. codex/static_root/assets/datetime-column-DVC0YqHC.03bb52c198e9.js.br +0 -0
  245. codex/static_root/assets/datetime-column-DVC0YqHC.03bb52c198e9.js.gz +0 -0
  246. codex/static_root/assets/datetime-column-DVC0YqHC.js +1 -0
  247. codex/static_root/assets/datetime-column-DVC0YqHC.js.br +0 -0
  248. codex/static_root/assets/datetime-column-DVC0YqHC.js.gz +0 -0
  249. codex/static_root/assets/{filter-ud5mPZpn.0f0a537959aa.js → filter-xcEcgcIx.be1bb4725c89.js} +1 -1
  250. codex/static_root/assets/filter-xcEcgcIx.be1bb4725c89.js.br +0 -0
  251. codex/static_root/assets/filter-xcEcgcIx.be1bb4725c89.js.gz +0 -0
  252. codex/static_root/assets/{filter-ud5mPZpn.js → filter-xcEcgcIx.js} +1 -1
  253. codex/static_root/assets/filter-xcEcgcIx.js.br +0 -0
  254. codex/static_root/assets/filter-xcEcgcIx.js.gz +0 -0
  255. codex/static_root/assets/flag-tab-BOyQb0kr.842fca93f19c.js +1 -0
  256. codex/static_root/assets/flag-tab-BOyQb0kr.842fca93f19c.js.br +0 -0
  257. codex/static_root/assets/flag-tab-BOyQb0kr.842fca93f19c.js.gz +0 -0
  258. codex/static_root/assets/flag-tab-BOyQb0kr.js +1 -0
  259. codex/static_root/assets/flag-tab-BOyQb0kr.js.br +0 -0
  260. codex/static_root/assets/flag-tab-BOyQb0kr.js.gz +0 -0
  261. codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css +1 -0
  262. codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css.br +0 -0
  263. codex/static_root/assets/flag-tab-D2MYXCHk.0f57e109c01b.css.gz +0 -0
  264. codex/static_root/assets/flag-tab-D2MYXCHk.css +1 -0
  265. codex/static_root/assets/flag-tab-D2MYXCHk.css.br +0 -0
  266. codex/static_root/assets/flag-tab-D2MYXCHk.css.gz +0 -0
  267. codex/static_root/assets/forwardRefs-CFNX6kJ2.9b56b4459240.css +1 -0
  268. codex/static_root/assets/forwardRefs-CFNX6kJ2.9b56b4459240.css.br +0 -0
  269. codex/static_root/assets/forwardRefs-CFNX6kJ2.9b56b4459240.css.gz +0 -0
  270. codex/static_root/assets/forwardRefs-CFNX6kJ2.css +1 -0
  271. codex/static_root/assets/forwardRefs-CFNX6kJ2.css.br +0 -0
  272. codex/static_root/assets/forwardRefs-CFNX6kJ2.css.gz +0 -0
  273. codex/static_root/assets/forwardRefs-D1ZDjzWx.96fccf773093.js +1 -0
  274. codex/static_root/assets/forwardRefs-D1ZDjzWx.96fccf773093.js.br +0 -0
  275. codex/static_root/assets/forwardRefs-D1ZDjzWx.96fccf773093.js.gz +0 -0
  276. codex/static_root/assets/forwardRefs-D1ZDjzWx.js +1 -0
  277. codex/static_root/assets/forwardRefs-D1ZDjzWx.js.br +0 -0
  278. codex/static_root/assets/forwardRefs-D1ZDjzWx.js.gz +0 -0
  279. codex/static_root/assets/group-tab-DkAIGL8z.527cad03c21d.js +1 -0
  280. codex/static_root/assets/group-tab-DkAIGL8z.527cad03c21d.js.br +0 -0
  281. codex/static_root/assets/group-tab-DkAIGL8z.527cad03c21d.js.gz +0 -0
  282. codex/static_root/assets/group-tab-DkAIGL8z.js +1 -0
  283. codex/static_root/assets/group-tab-DkAIGL8z.js.br +0 -0
  284. codex/static_root/assets/group-tab-DkAIGL8z.js.gz +0 -0
  285. codex/static_root/assets/http-error-CODU7jcH.8c13689ae574.css +1 -0
  286. codex/static_root/assets/http-error-CODU7jcH.8c13689ae574.css.br +0 -0
  287. codex/static_root/assets/http-error-CODU7jcH.8c13689ae574.css.gz +0 -0
  288. codex/static_root/assets/http-error-CODU7jcH.css +1 -0
  289. codex/static_root/assets/http-error-CODU7jcH.css.br +0 -0
  290. codex/static_root/assets/http-error-CODU7jcH.css.gz +0 -0
  291. codex/static_root/assets/http-error-CjSb8orc.ad6fc5733ed8.js +1 -0
  292. codex/static_root/assets/http-error-CjSb8orc.ad6fc5733ed8.js.br +0 -0
  293. codex/static_root/assets/http-error-CjSb8orc.ad6fc5733ed8.js.gz +0 -0
  294. codex/static_root/assets/http-error-CjSb8orc.js +1 -0
  295. codex/static_root/assets/http-error-CjSb8orc.js.br +0 -0
  296. codex/static_root/assets/http-error-CjSb8orc.js.gz +0 -0
  297. codex/static_root/assets/index-CoFXW6I0.27f397e1425e.js +1 -0
  298. codex/static_root/assets/index-CoFXW6I0.27f397e1425e.js.br +0 -0
  299. codex/static_root/assets/index-CoFXW6I0.27f397e1425e.js.gz +0 -0
  300. codex/static_root/assets/index-CoFXW6I0.js +1 -0
  301. codex/static_root/assets/index-CoFXW6I0.js.br +0 -0
  302. codex/static_root/assets/index-CoFXW6I0.js.gz +0 -0
  303. codex/static_root/assets/{library-tab-Cat0MAK5.5911f022188e.css → library-tab-CgsXOX_r.75baedb7e976.css} +1 -1
  304. codex/static_root/assets/library-tab-CgsXOX_r.75baedb7e976.css.br +0 -0
  305. codex/static_root/assets/library-tab-CgsXOX_r.75baedb7e976.css.gz +0 -0
  306. codex/static_root/assets/{library-tab-Cat0MAK5.css → library-tab-CgsXOX_r.css} +1 -1
  307. codex/static_root/assets/library-tab-CgsXOX_r.css.br +0 -0
  308. codex/static_root/assets/library-tab-CgsXOX_r.css.gz +0 -0
  309. codex/static_root/assets/library-tab-hkMMBz1x.02270491d822.js +1 -0
  310. codex/static_root/assets/library-tab-hkMMBz1x.02270491d822.js.br +0 -0
  311. codex/static_root/assets/library-tab-hkMMBz1x.02270491d822.js.gz +0 -0
  312. codex/static_root/assets/library-tab-hkMMBz1x.js +1 -0
  313. codex/static_root/assets/library-tab-hkMMBz1x.js.br +0 -0
  314. codex/static_root/assets/library-tab-hkMMBz1x.js.gz +0 -0
  315. codex/static_root/assets/main-DCaPxp2h.076707ddd123.js +35 -0
  316. codex/static_root/assets/main-DCaPxp2h.076707ddd123.js.br +0 -0
  317. codex/static_root/assets/main-DCaPxp2h.076707ddd123.js.gz +0 -0
  318. codex/static_root/assets/main-DCaPxp2h.js +35 -0
  319. codex/static_root/assets/main-DCaPxp2h.js.br +0 -0
  320. codex/static_root/assets/main-DCaPxp2h.js.gz +0 -0
  321. codex/static_root/assets/pager-full-pdf-CwmA9y3l.e7dfdd2a6937.js +1 -0
  322. codex/static_root/assets/pager-full-pdf-CwmA9y3l.e7dfdd2a6937.js.br +0 -0
  323. codex/static_root/assets/pager-full-pdf-CwmA9y3l.e7dfdd2a6937.js.gz +0 -0
  324. codex/static_root/assets/pager-full-pdf-CwmA9y3l.js +1 -0
  325. codex/static_root/assets/pager-full-pdf-CwmA9y3l.js.br +0 -0
  326. codex/static_root/assets/pager-full-pdf-CwmA9y3l.js.gz +0 -0
  327. codex/static_root/assets/pagination-toolbar-D5VQREy5.css +1 -0
  328. codex/static_root/assets/pagination-toolbar-D5VQREy5.css.br +0 -0
  329. codex/static_root/assets/pagination-toolbar-D5VQREy5.css.gz +0 -0
  330. codex/static_root/assets/pagination-toolbar-D5VQREy5.dcb0eba65827.css +1 -0
  331. codex/static_root/assets/pagination-toolbar-D5VQREy5.dcb0eba65827.css.br +0 -0
  332. codex/static_root/assets/pagination-toolbar-D5VQREy5.dcb0eba65827.css.gz +0 -0
  333. codex/static_root/assets/pagination-toolbar-DoqxSygU.f985bc705fe5.js +1 -0
  334. codex/static_root/assets/pagination-toolbar-DoqxSygU.f985bc705fe5.js.br +0 -0
  335. codex/static_root/assets/pagination-toolbar-DoqxSygU.f985bc705fe5.js.gz +0 -0
  336. codex/static_root/assets/pagination-toolbar-DoqxSygU.js +1 -0
  337. codex/static_root/assets/pagination-toolbar-DoqxSygU.js.br +0 -0
  338. codex/static_root/assets/pagination-toolbar-DoqxSygU.js.gz +0 -0
  339. codex/static_root/assets/pdf-doc-BwxvAx1z.96cbc39c321d.js +348 -0
  340. codex/static_root/assets/pdf-doc-BwxvAx1z.96cbc39c321d.js.br +0 -0
  341. codex/static_root/assets/pdf-doc-BwxvAx1z.96cbc39c321d.js.gz +0 -0
  342. codex/static_root/assets/pdf-doc-BwxvAx1z.js +348 -0
  343. codex/static_root/assets/pdf-doc-BwxvAx1z.js.br +0 -0
  344. codex/static_root/assets/pdf-doc-BwxvAx1z.js.gz +0 -0
  345. codex/static_root/assets/{reader-Dd2KmdCN.115d4bfe9280.css → reader-D_3ruSqa.2ed32f08e906.css} +1 -1
  346. codex/static_root/assets/reader-D_3ruSqa.2ed32f08e906.css.br +0 -0
  347. codex/static_root/assets/reader-D_3ruSqa.2ed32f08e906.css.gz +0 -0
  348. codex/static_root/assets/{reader-Dd2KmdCN.css → reader-D_3ruSqa.css} +1 -1
  349. codex/static_root/assets/reader-D_3ruSqa.css.br +0 -0
  350. codex/static_root/assets/reader-D_3ruSqa.css.gz +0 -0
  351. codex/static_root/assets/reader-hHIonVbA.4c12219242a9.js +2 -0
  352. codex/static_root/assets/reader-hHIonVbA.4c12219242a9.js.br +0 -0
  353. codex/static_root/assets/reader-hHIonVbA.4c12219242a9.js.gz +0 -0
  354. codex/static_root/assets/reader-hHIonVbA.js +2 -0
  355. codex/static_root/assets/reader-hHIonVbA.js.br +0 -0
  356. codex/static_root/assets/reader-hHIonVbA.js.gz +0 -0
  357. codex/static_root/assets/relation-chips-D7-5kPem.4443b085aca2.js +1 -0
  358. codex/static_root/assets/relation-chips-D7-5kPem.4443b085aca2.js.br +0 -0
  359. codex/static_root/assets/relation-chips-D7-5kPem.4443b085aca2.js.gz +0 -0
  360. codex/static_root/assets/relation-chips-D7-5kPem.js +1 -0
  361. codex/static_root/assets/relation-chips-D7-5kPem.js.br +0 -0
  362. codex/static_root/assets/relation-chips-D7-5kPem.js.gz +0 -0
  363. codex/static_root/assets/settings-drawer-CdFmOhnd.f7dcd12b3ebc.js +2 -0
  364. codex/static_root/assets/settings-drawer-CdFmOhnd.f7dcd12b3ebc.js.br +0 -0
  365. codex/static_root/assets/settings-drawer-CdFmOhnd.f7dcd12b3ebc.js.gz +0 -0
  366. codex/static_root/assets/settings-drawer-CdFmOhnd.js +2 -0
  367. codex/static_root/assets/settings-drawer-CdFmOhnd.js.br +0 -0
  368. codex/static_root/assets/settings-drawer-CdFmOhnd.js.gz +0 -0
  369. codex/static_root/assets/settings-drawer-DMSsWF8c.75a6ea969e71.css +1 -0
  370. codex/static_root/assets/settings-drawer-DMSsWF8c.75a6ea969e71.css.br +0 -0
  371. codex/static_root/assets/settings-drawer-DMSsWF8c.75a6ea969e71.css.gz +0 -0
  372. codex/static_root/assets/settings-drawer-DMSsWF8c.css +1 -0
  373. codex/static_root/assets/settings-drawer-DMSsWF8c.css.br +0 -0
  374. codex/static_root/assets/settings-drawer-DMSsWF8c.css.gz +0 -0
  375. codex/static_root/assets/stats-tab-BzaipD0m.b6bf627ea860.js +1 -0
  376. codex/static_root/assets/stats-tab-BzaipD0m.b6bf627ea860.js.br +0 -0
  377. codex/static_root/assets/stats-tab-BzaipD0m.b6bf627ea860.js.gz +0 -0
  378. codex/static_root/assets/stats-tab-BzaipD0m.js +1 -0
  379. codex/static_root/assets/stats-tab-BzaipD0m.js.br +0 -0
  380. codex/static_root/assets/stats-tab-BzaipD0m.js.gz +0 -0
  381. codex/static_root/assets/task-tab-DCnS1sM9.44d8435b4989.js +1 -0
  382. codex/static_root/assets/task-tab-DCnS1sM9.44d8435b4989.js.br +0 -0
  383. codex/static_root/assets/task-tab-DCnS1sM9.44d8435b4989.js.gz +0 -0
  384. codex/static_root/assets/task-tab-DCnS1sM9.js +1 -0
  385. codex/static_root/assets/task-tab-DCnS1sM9.js.br +0 -0
  386. codex/static_root/assets/task-tab-DCnS1sM9.js.gz +0 -0
  387. codex/static_root/assets/unauthorized-CsSak07X.c5536d9dae75.css +1 -0
  388. codex/static_root/assets/unauthorized-CsSak07X.c5536d9dae75.css.br +0 -0
  389. codex/static_root/assets/unauthorized-CsSak07X.c5536d9dae75.css.gz +0 -0
  390. codex/static_root/assets/unauthorized-CsSak07X.css +1 -0
  391. codex/static_root/assets/unauthorized-CsSak07X.css.br +0 -0
  392. codex/static_root/assets/unauthorized-CsSak07X.css.gz +0 -0
  393. codex/static_root/assets/unauthorized-DJSr03Dw.7555cbcf1064.js +1 -0
  394. codex/static_root/assets/unauthorized-DJSr03Dw.7555cbcf1064.js.br +0 -0
  395. codex/static_root/assets/unauthorized-DJSr03Dw.7555cbcf1064.js.gz +0 -0
  396. codex/static_root/assets/unauthorized-DJSr03Dw.js +1 -0
  397. codex/static_root/assets/unauthorized-DJSr03Dw.js.br +0 -0
  398. codex/static_root/assets/unauthorized-DJSr03Dw.js.gz +0 -0
  399. codex/static_root/assets/user-tab-DAK_Deoh.1832877d449a.js +1 -0
  400. codex/static_root/assets/user-tab-DAK_Deoh.1832877d449a.js.br +0 -0
  401. codex/static_root/assets/user-tab-DAK_Deoh.1832877d449a.js.gz +0 -0
  402. codex/static_root/assets/user-tab-DAK_Deoh.js +1 -0
  403. codex/static_root/assets/user-tab-DAK_Deoh.js.br +0 -0
  404. codex/static_root/assets/user-tab-DAK_Deoh.js.gz +0 -0
  405. codex/static_root/manifest.cbc39bca88fc.json +735 -0
  406. codex/static_root/manifest.cbc39bca88fc.json.br +0 -0
  407. codex/static_root/manifest.cbc39bca88fc.json.gz +0 -0
  408. codex/static_root/manifest.json +388 -365
  409. codex/static_root/manifest.json.br +0 -0
  410. codex/static_root/manifest.json.gz +0 -0
  411. codex/static_root/staticfiles.json +1 -1
  412. codex/status_controller.py +9 -12
  413. codex/templates/index.html +1 -1
  414. codex/threads.py +3 -3
  415. codex/urls/api/admin.py +4 -3
  416. codex/urls/api/browser.py +1 -1
  417. codex/urls/opds/v2.py +6 -0
  418. codex/urls/root.py +4 -3
  419. codex/views/admin/api_key.py +1 -4
  420. codex/views/admin/flag.py +5 -1
  421. codex/views/admin/library.py +4 -4
  422. codex/views/admin/stats.py +10 -10
  423. codex/views/admin/tasks.py +9 -9
  424. codex/views/auth.py +3 -8
  425. codex/views/bookmark.py +53 -41
  426. codex/views/browser/annotate/bookmark.py +6 -4
  427. codex/views/browser/annotate/card.py +3 -18
  428. codex/views/browser/annotate/order.py +51 -25
  429. codex/views/browser/bookmark.py +53 -0
  430. codex/views/browser/breadcrumbs.py +6 -5
  431. codex/views/browser/browser.py +2 -2
  432. codex/views/browser/choices.py +6 -5
  433. codex/views/browser/cover.py +6 -3
  434. codex/views/browser/download.py +4 -1
  435. codex/views/browser/filters/bookmark.py +5 -33
  436. codex/views/browser/filters/field.py +1 -1
  437. codex/views/browser/filters/filter.py +6 -8
  438. codex/views/browser/filters/group.py +5 -4
  439. codex/views/browser/filters/search/field/expression.py +1 -2
  440. codex/views/browser/filters/search/field/optimize.py +1 -1
  441. codex/views/browser/filters/search/field/parse.py +2 -2
  442. codex/views/browser/filters/search/parse.py +4 -19
  443. codex/views/browser/group_mtime.py +3 -3
  444. codex/views/browser/metadata/annotate.py +1 -1
  445. codex/views/browser/metadata/copy_intersections.py +1 -1
  446. codex/views/browser/metadata/metadata.py +2 -2
  447. codex/views/browser/mtime.py +1 -1
  448. codex/views/browser/order_by.py +9 -6
  449. codex/views/browser/params.py +1 -1
  450. codex/views/browser/settings.py +1 -1
  451. codex/views/browser/validate.py +8 -5
  452. codex/views/const.py +0 -3
  453. codex/views/frontend.py +20 -5
  454. codex/views/mixins.py +19 -30
  455. codex/views/opds/authentication_v1.py +1 -1
  456. codex/views/opds/const.py +6 -4
  457. codex/views/opds/util.py +5 -5
  458. codex/views/opds/v1/entry/entry.py +4 -2
  459. codex/views/opds/v1/entry/links.py +5 -7
  460. codex/views/opds/v1/facets.py +8 -4
  461. codex/views/opds/v1/feed.py +5 -5
  462. codex/views/opds/v1/links.py +11 -6
  463. codex/views/opds/v2/const.py +5 -2
  464. codex/views/opds/v2/feed.py +6 -5
  465. codex/views/opds/v2/href.py +60 -0
  466. codex/views/opds/v2/links.py +13 -47
  467. codex/views/opds/v2/progression.py +136 -0
  468. codex/views/opds/v2/publications.py +31 -21
  469. codex/views/opds/v2/top_links.py +2 -1
  470. codex/views/public.py +12 -5
  471. codex/views/reader/books.py +22 -10
  472. codex/views/reader/page.py +8 -8
  473. codex/views/reader/params.py +2 -2
  474. codex/views/reader/reader.py +6 -6
  475. codex/views/reader/settings.py +1 -1
  476. codex/views/session.py +8 -2
  477. codex/views/settings.py +2 -2
  478. codex/views/timezone.py +2 -2
  479. codex/views/util.py +10 -9
  480. codex/views/version.py +1 -1
  481. {codex-1.7.2.dist-info → codex-1.7.3.dist-info}/METADATA +21 -26
  482. codex-1.7.3.dist-info/RECORD +1031 -0
  483. {codex-1.7.2.dist-info → codex-1.7.3.dist-info}/WHEEL +1 -1
  484. codex/serializers/opds/v2.py +0 -178
  485. codex/static_root/assets/VCheckbox-DLMzIII1.1ff8fc2d9a21.js +0 -1
  486. codex/static_root/assets/VCheckbox-DLMzIII1.1ff8fc2d9a21.js.br +0 -0
  487. codex/static_root/assets/VCheckbox-DLMzIII1.1ff8fc2d9a21.js.gz +0 -0
  488. codex/static_root/assets/VCheckbox-DLMzIII1.js +0 -1
  489. codex/static_root/assets/VCheckbox-DLMzIII1.js.br +0 -0
  490. codex/static_root/assets/VCheckbox-DLMzIII1.js.gz +0 -0
  491. codex/static_root/assets/VCheckboxBtn-BzoQl8XC.094679a3624b.js +0 -1
  492. codex/static_root/assets/VCheckboxBtn-BzoQl8XC.094679a3624b.js.br +0 -0
  493. codex/static_root/assets/VCheckboxBtn-BzoQl8XC.094679a3624b.js.gz +0 -0
  494. codex/static_root/assets/VCheckboxBtn-BzoQl8XC.js +0 -1
  495. codex/static_root/assets/VCheckboxBtn-BzoQl8XC.js.br +0 -0
  496. codex/static_root/assets/VCheckboxBtn-BzoQl8XC.js.gz +0 -0
  497. codex/static_root/assets/VCombobox-CBY8K5CP.fcf2221a9edd.js +0 -1
  498. codex/static_root/assets/VCombobox-CBY8K5CP.fcf2221a9edd.js.br +0 -0
  499. codex/static_root/assets/VCombobox-CBY8K5CP.fcf2221a9edd.js.gz +0 -0
  500. codex/static_root/assets/VCombobox-CBY8K5CP.js +0 -1
  501. codex/static_root/assets/VCombobox-CBY8K5CP.js.br +0 -0
  502. codex/static_root/assets/VCombobox-CBY8K5CP.js.gz +0 -0
  503. codex/static_root/assets/VDialog-DXQz0Ylp.7b23d86dbd0d.css +0 -1
  504. codex/static_root/assets/VDialog-DXQz0Ylp.7b23d86dbd0d.css.br +0 -0
  505. codex/static_root/assets/VDialog-DXQz0Ylp.7b23d86dbd0d.css.gz +0 -0
  506. codex/static_root/assets/VDialog-DXQz0Ylp.css +0 -1
  507. codex/static_root/assets/VDialog-DXQz0Ylp.css.br +0 -0
  508. codex/static_root/assets/VDialog-DXQz0Ylp.css.gz +0 -0
  509. codex/static_root/assets/VDialog-Db4tJYqR.e21a79a5030e.js +0 -1
  510. codex/static_root/assets/VDialog-Db4tJYqR.e21a79a5030e.js.br +0 -0
  511. codex/static_root/assets/VDialog-Db4tJYqR.e21a79a5030e.js.gz +0 -0
  512. codex/static_root/assets/VDialog-Db4tJYqR.js +0 -1
  513. codex/static_root/assets/VDialog-Db4tJYqR.js.br +0 -0
  514. codex/static_root/assets/VDialog-Db4tJYqR.js.gz +0 -0
  515. codex/static_root/assets/VExpansionPanels-DN4yGbOt.163e59e38865.js +0 -1
  516. codex/static_root/assets/VExpansionPanels-DN4yGbOt.163e59e38865.js.br +0 -0
  517. codex/static_root/assets/VExpansionPanels-DN4yGbOt.163e59e38865.js.gz +0 -0
  518. codex/static_root/assets/VExpansionPanels-DN4yGbOt.js +0 -1
  519. codex/static_root/assets/VExpansionPanels-DN4yGbOt.js.br +0 -0
  520. codex/static_root/assets/VExpansionPanels-DN4yGbOt.js.gz +0 -0
  521. codex/static_root/assets/VRadioGroup-D2-PWEfs.ce7644863c25.js +0 -1
  522. codex/static_root/assets/VRadioGroup-D2-PWEfs.ce7644863c25.js.br +0 -0
  523. codex/static_root/assets/VRadioGroup-D2-PWEfs.ce7644863c25.js.gz +0 -0
  524. codex/static_root/assets/VRadioGroup-D2-PWEfs.js +0 -1
  525. codex/static_root/assets/VRadioGroup-D2-PWEfs.js.br +0 -0
  526. codex/static_root/assets/VRadioGroup-D2-PWEfs.js.gz +0 -0
  527. codex/static_root/assets/VSelect-DLu8bpcs.98bdcf35411c.css +0 -1
  528. codex/static_root/assets/VSelect-DLu8bpcs.98bdcf35411c.css.br +0 -0
  529. codex/static_root/assets/VSelect-DLu8bpcs.98bdcf35411c.css.gz +0 -0
  530. codex/static_root/assets/VSelect-DLu8bpcs.css +0 -1
  531. codex/static_root/assets/VSelect-DLu8bpcs.css.br +0 -0
  532. codex/static_root/assets/VSelect-DLu8bpcs.css.gz +0 -0
  533. codex/static_root/assets/VSelect-DqXJ23Pc.a1360cbed050.js +0 -1
  534. codex/static_root/assets/VSelect-DqXJ23Pc.a1360cbed050.js.br +0 -0
  535. codex/static_root/assets/VSelect-DqXJ23Pc.a1360cbed050.js.gz +0 -0
  536. codex/static_root/assets/VSelect-DqXJ23Pc.js +0 -1
  537. codex/static_root/assets/VSelect-DqXJ23Pc.js.br +0 -0
  538. codex/static_root/assets/VSelect-DqXJ23Pc.js.gz +0 -0
  539. codex/static_root/assets/VSelectionControl-CiViEYoC.c77bb19a4a06.css +0 -1
  540. codex/static_root/assets/VSelectionControl-CiViEYoC.c77bb19a4a06.css.br +0 -0
  541. codex/static_root/assets/VSelectionControl-CiViEYoC.c77bb19a4a06.css.gz +0 -0
  542. codex/static_root/assets/VSelectionControl-CiViEYoC.css +0 -1
  543. codex/static_root/assets/VSelectionControl-CiViEYoC.css.br +0 -0
  544. codex/static_root/assets/VSelectionControl-CiViEYoC.css.gz +0 -0
  545. codex/static_root/assets/VSelectionControl-CxhDNufT.dd7ca99567fc.js +0 -1
  546. codex/static_root/assets/VSelectionControl-CxhDNufT.dd7ca99567fc.js.br +0 -0
  547. codex/static_root/assets/VSelectionControl-CxhDNufT.dd7ca99567fc.js.gz +0 -0
  548. codex/static_root/assets/VSelectionControl-CxhDNufT.js +0 -1
  549. codex/static_root/assets/VSelectionControl-CxhDNufT.js.br +0 -0
  550. codex/static_root/assets/VSelectionControl-CxhDNufT.js.gz +0 -0
  551. codex/static_root/assets/VSlideGroup-BtXPhMOT.830f136ffd41.css +0 -1
  552. codex/static_root/assets/VSlideGroup-BtXPhMOT.830f136ffd41.css.br +0 -0
  553. codex/static_root/assets/VSlideGroup-BtXPhMOT.830f136ffd41.css.gz +0 -0
  554. codex/static_root/assets/VSlideGroup-BtXPhMOT.css +0 -1
  555. codex/static_root/assets/VSlideGroup-BtXPhMOT.css.br +0 -0
  556. codex/static_root/assets/VSlideGroup-BtXPhMOT.css.gz +0 -0
  557. codex/static_root/assets/VSlideGroup-DRbthp6q.7365c5542d47.js +0 -1
  558. codex/static_root/assets/VSlideGroup-DRbthp6q.7365c5542d47.js.br +0 -0
  559. codex/static_root/assets/VSlideGroup-DRbthp6q.7365c5542d47.js.gz +0 -0
  560. codex/static_root/assets/VSlideGroup-DRbthp6q.js +0 -1
  561. codex/static_root/assets/VSlideGroup-DRbthp6q.js.br +0 -0
  562. codex/static_root/assets/VSlideGroup-DRbthp6q.js.gz +0 -0
  563. codex/static_root/assets/VTable-Cbq-yJos.c884706cac21.js +0 -1
  564. codex/static_root/assets/VTable-Cbq-yJos.c884706cac21.js.br +0 -0
  565. codex/static_root/assets/VTable-Cbq-yJos.c884706cac21.js.gz +0 -0
  566. codex/static_root/assets/VTable-Cbq-yJos.js +0 -1
  567. codex/static_root/assets/VTable-Cbq-yJos.js.br +0 -0
  568. codex/static_root/assets/VTable-Cbq-yJos.js.gz +0 -0
  569. codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css +0 -1
  570. codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css.br +0 -0
  571. codex/static_root/assets/VTextField-Crc3gdNh.39995ccf4d52.css.gz +0 -0
  572. codex/static_root/assets/VTextField-Crc3gdNh.css +0 -1
  573. codex/static_root/assets/VTextField-Crc3gdNh.css.br +0 -0
  574. codex/static_root/assets/VTextField-Crc3gdNh.css.gz +0 -0
  575. codex/static_root/assets/VTextField-X5yAw35c.155e276dd747.js +0 -1
  576. codex/static_root/assets/VTextField-X5yAw35c.155e276dd747.js.br +0 -0
  577. codex/static_root/assets/VTextField-X5yAw35c.155e276dd747.js.gz +0 -0
  578. codex/static_root/assets/VTextField-X5yAw35c.js +0 -1
  579. codex/static_root/assets/VTextField-X5yAw35c.js.br +0 -0
  580. codex/static_root/assets/VTextField-X5yAw35c.js.gz +0 -0
  581. codex/static_root/assets/VWindowItem-CRqhVh-9.cd73d01e0591.js +0 -1
  582. codex/static_root/assets/VWindowItem-CRqhVh-9.cd73d01e0591.js.br +0 -0
  583. codex/static_root/assets/VWindowItem-CRqhVh-9.cd73d01e0591.js.gz +0 -0
  584. codex/static_root/assets/VWindowItem-CRqhVh-9.js +0 -1
  585. codex/static_root/assets/VWindowItem-CRqhVh-9.js.br +0 -0
  586. codex/static_root/assets/VWindowItem-CRqhVh-9.js.gz +0 -0
  587. codex/static_root/assets/admin-BFvQwinN.6cfff21f780a.js +0 -1
  588. codex/static_root/assets/admin-BFvQwinN.6cfff21f780a.js.br +0 -0
  589. codex/static_root/assets/admin-BFvQwinN.6cfff21f780a.js.gz +0 -0
  590. codex/static_root/assets/admin-BFvQwinN.js +0 -1
  591. codex/static_root/assets/admin-BFvQwinN.js.br +0 -0
  592. codex/static_root/assets/admin-BFvQwinN.js.gz +0 -0
  593. codex/static_root/assets/admin-DJ7pIXDQ.css +0 -1
  594. codex/static_root/assets/admin-DJ7pIXDQ.css.br +0 -0
  595. codex/static_root/assets/admin-DJ7pIXDQ.css.gz +0 -0
  596. codex/static_root/assets/admin-DJ7pIXDQ.e2a77af73ef2.css +0 -1
  597. codex/static_root/assets/admin-DJ7pIXDQ.e2a77af73ef2.css.br +0 -0
  598. codex/static_root/assets/admin-DJ7pIXDQ.e2a77af73ef2.css.gz +0 -0
  599. codex/static_root/assets/admin-menu-Jfmp_Yd8.39fa7a18b3b4.js +0 -1
  600. codex/static_root/assets/admin-menu-Jfmp_Yd8.39fa7a18b3b4.js.br +0 -0
  601. codex/static_root/assets/admin-menu-Jfmp_Yd8.39fa7a18b3b4.js.gz +0 -0
  602. codex/static_root/assets/admin-menu-Jfmp_Yd8.js +0 -1
  603. codex/static_root/assets/admin-menu-Jfmp_Yd8.js.br +0 -0
  604. codex/static_root/assets/admin-menu-Jfmp_Yd8.js.gz +0 -0
  605. codex/static_root/assets/admin-settings-button-progress-BAk-B1sR.cbf73c71330d.js +0 -1
  606. codex/static_root/assets/admin-settings-button-progress-BAk-B1sR.cbf73c71330d.js.br +0 -0
  607. codex/static_root/assets/admin-settings-button-progress-BAk-B1sR.cbf73c71330d.js.gz +0 -0
  608. codex/static_root/assets/admin-settings-button-progress-BAk-B1sR.js +0 -1
  609. codex/static_root/assets/admin-settings-button-progress-BAk-B1sR.js.br +0 -0
  610. codex/static_root/assets/admin-settings-button-progress-BAk-B1sR.js.gz +0 -0
  611. codex/static_root/assets/browser-CctlSJji.css +0 -1
  612. codex/static_root/assets/browser-CctlSJji.css.br +0 -0
  613. codex/static_root/assets/browser-CctlSJji.css.gz +0 -0
  614. codex/static_root/assets/browser-CctlSJji.d42d796476d2.css +0 -1
  615. codex/static_root/assets/browser-CctlSJji.d42d796476d2.css.br +0 -0
  616. codex/static_root/assets/browser-CctlSJji.d42d796476d2.css.gz +0 -0
  617. codex/static_root/assets/browser-DJnEeVHz.a78c47516b08.js +0 -1
  618. codex/static_root/assets/browser-DJnEeVHz.a78c47516b08.js.br +0 -0
  619. codex/static_root/assets/browser-DJnEeVHz.a78c47516b08.js.gz +0 -0
  620. codex/static_root/assets/browser-DJnEeVHz.js +0 -1
  621. codex/static_root/assets/browser-DJnEeVHz.js.br +0 -0
  622. codex/static_root/assets/browser-DJnEeVHz.js.gz +0 -0
  623. codex/static_root/assets/change-password-dialog-DJtOQw7K.be7fa5ec653d.js +0 -1
  624. codex/static_root/assets/change-password-dialog-DJtOQw7K.be7fa5ec653d.js.br +0 -0
  625. codex/static_root/assets/change-password-dialog-DJtOQw7K.be7fa5ec653d.js.gz +0 -0
  626. codex/static_root/assets/change-password-dialog-DJtOQw7K.js +0 -1
  627. codex/static_root/assets/change-password-dialog-DJtOQw7K.js.br +0 -0
  628. codex/static_root/assets/change-password-dialog-DJtOQw7K.js.gz +0 -0
  629. codex/static_root/assets/confirm-dialog-CME4gKSZ.1606233e784c.js +0 -1
  630. codex/static_root/assets/confirm-dialog-CME4gKSZ.1606233e784c.js.br +0 -0
  631. codex/static_root/assets/confirm-dialog-CME4gKSZ.1606233e784c.js.gz +0 -0
  632. codex/static_root/assets/confirm-dialog-CME4gKSZ.js +0 -1
  633. codex/static_root/assets/confirm-dialog-CME4gKSZ.js.br +0 -0
  634. codex/static_root/assets/confirm-dialog-CME4gKSZ.js.gz +0 -0
  635. codex/static_root/assets/datetime-column-D_F30OLW.09cdce0ef96e.js +0 -1
  636. codex/static_root/assets/datetime-column-D_F30OLW.09cdce0ef96e.js.br +0 -2
  637. codex/static_root/assets/datetime-column-D_F30OLW.09cdce0ef96e.js.gz +0 -0
  638. codex/static_root/assets/datetime-column-D_F30OLW.js +0 -1
  639. codex/static_root/assets/datetime-column-D_F30OLW.js.br +0 -2
  640. codex/static_root/assets/datetime-column-D_F30OLW.js.gz +0 -0
  641. codex/static_root/assets/filter-ud5mPZpn.0f0a537959aa.js.br +0 -0
  642. codex/static_root/assets/filter-ud5mPZpn.0f0a537959aa.js.gz +0 -0
  643. codex/static_root/assets/filter-ud5mPZpn.js.br +0 -0
  644. codex/static_root/assets/filter-ud5mPZpn.js.gz +0 -0
  645. codex/static_root/assets/flag-tab-CqWovuBu.4dfc6b251e85.css +0 -1
  646. codex/static_root/assets/flag-tab-CqWovuBu.4dfc6b251e85.css.br +0 -0
  647. codex/static_root/assets/flag-tab-CqWovuBu.4dfc6b251e85.css.gz +0 -0
  648. codex/static_root/assets/flag-tab-CqWovuBu.css +0 -1
  649. codex/static_root/assets/flag-tab-CqWovuBu.css.br +0 -0
  650. codex/static_root/assets/flag-tab-CqWovuBu.css.gz +0 -0
  651. codex/static_root/assets/flag-tab-k2g6u_vi.3e1da9318af9.js +0 -1
  652. codex/static_root/assets/flag-tab-k2g6u_vi.3e1da9318af9.js.br +0 -0
  653. codex/static_root/assets/flag-tab-k2g6u_vi.3e1da9318af9.js.gz +0 -0
  654. codex/static_root/assets/flag-tab-k2g6u_vi.js +0 -1
  655. codex/static_root/assets/flag-tab-k2g6u_vi.js.br +0 -0
  656. codex/static_root/assets/flag-tab-k2g6u_vi.js.gz +0 -0
  657. codex/static_root/assets/group-tab-C6Ykf03Z.ff0cc204013a.js +0 -1
  658. codex/static_root/assets/group-tab-C6Ykf03Z.ff0cc204013a.js.br +0 -0
  659. codex/static_root/assets/group-tab-C6Ykf03Z.ff0cc204013a.js.gz +0 -0
  660. codex/static_root/assets/group-tab-C6Ykf03Z.js +0 -1
  661. codex/static_root/assets/group-tab-C6Ykf03Z.js.br +0 -0
  662. codex/static_root/assets/group-tab-C6Ykf03Z.js.gz +0 -0
  663. codex/static_root/assets/http-error-Ctcws1xe.cfd378a792d2.css +0 -1
  664. codex/static_root/assets/http-error-Ctcws1xe.cfd378a792d2.css.br +0 -0
  665. codex/static_root/assets/http-error-Ctcws1xe.cfd378a792d2.css.gz +0 -0
  666. codex/static_root/assets/http-error-Ctcws1xe.css +0 -1
  667. codex/static_root/assets/http-error-Ctcws1xe.css.br +0 -0
  668. codex/static_root/assets/http-error-Ctcws1xe.css.gz +0 -0
  669. codex/static_root/assets/http-error-DQBHK8v5.aea50b1327fd.js +0 -1
  670. codex/static_root/assets/http-error-DQBHK8v5.aea50b1327fd.js.br +0 -0
  671. codex/static_root/assets/http-error-DQBHK8v5.aea50b1327fd.js.gz +0 -0
  672. codex/static_root/assets/http-error-DQBHK8v5.js +0 -1
  673. codex/static_root/assets/http-error-DQBHK8v5.js.br +0 -0
  674. codex/static_root/assets/http-error-DQBHK8v5.js.gz +0 -0
  675. codex/static_root/assets/index-ClGiHwWc.0717bacf5135.js +0 -1
  676. codex/static_root/assets/index-ClGiHwWc.0717bacf5135.js.br +0 -0
  677. codex/static_root/assets/index-ClGiHwWc.0717bacf5135.js.gz +0 -0
  678. codex/static_root/assets/index-ClGiHwWc.js +0 -1
  679. codex/static_root/assets/index-ClGiHwWc.js.br +0 -0
  680. codex/static_root/assets/index-ClGiHwWc.js.gz +0 -0
  681. codex/static_root/assets/library-tab-BpinbqAu.53fa2625e727.js +0 -1
  682. codex/static_root/assets/library-tab-BpinbqAu.53fa2625e727.js.br +0 -0
  683. codex/static_root/assets/library-tab-BpinbqAu.53fa2625e727.js.gz +0 -0
  684. codex/static_root/assets/library-tab-BpinbqAu.js +0 -1
  685. codex/static_root/assets/library-tab-BpinbqAu.js.br +0 -0
  686. codex/static_root/assets/library-tab-BpinbqAu.js.gz +0 -0
  687. codex/static_root/assets/library-tab-Cat0MAK5.5911f022188e.css.br +0 -0
  688. codex/static_root/assets/library-tab-Cat0MAK5.5911f022188e.css.gz +0 -0
  689. codex/static_root/assets/library-tab-Cat0MAK5.css.br +0 -0
  690. codex/static_root/assets/library-tab-Cat0MAK5.css.gz +0 -0
  691. codex/static_root/assets/main-BVKrDunc.1c6f8cdc3afb.js +0 -35
  692. codex/static_root/assets/main-BVKrDunc.1c6f8cdc3afb.js.br +0 -0
  693. codex/static_root/assets/main-BVKrDunc.1c6f8cdc3afb.js.gz +0 -0
  694. codex/static_root/assets/main-BVKrDunc.js +0 -35
  695. codex/static_root/assets/main-BVKrDunc.js.br +0 -0
  696. codex/static_root/assets/main-BVKrDunc.js.gz +0 -0
  697. codex/static_root/assets/pager-full-pdf-C1ZSyXfG.f2e95b19621c.js +0 -1
  698. codex/static_root/assets/pager-full-pdf-C1ZSyXfG.f2e95b19621c.js.br +0 -0
  699. codex/static_root/assets/pager-full-pdf-C1ZSyXfG.f2e95b19621c.js.gz +0 -0
  700. codex/static_root/assets/pager-full-pdf-C1ZSyXfG.js +0 -1
  701. codex/static_root/assets/pager-full-pdf-C1ZSyXfG.js.br +0 -0
  702. codex/static_root/assets/pager-full-pdf-C1ZSyXfG.js.gz +0 -0
  703. codex/static_root/assets/pagination-toolbar-Cx_9nh6D.546121fa7a0d.css +0 -1
  704. codex/static_root/assets/pagination-toolbar-Cx_9nh6D.546121fa7a0d.css.br +0 -0
  705. codex/static_root/assets/pagination-toolbar-Cx_9nh6D.546121fa7a0d.css.gz +0 -0
  706. codex/static_root/assets/pagination-toolbar-Cx_9nh6D.css +0 -1
  707. codex/static_root/assets/pagination-toolbar-Cx_9nh6D.css.br +0 -0
  708. codex/static_root/assets/pagination-toolbar-Cx_9nh6D.css.gz +0 -0
  709. codex/static_root/assets/pagination-toolbar-Diad0EdD.140911bf86af.js +0 -1
  710. codex/static_root/assets/pagination-toolbar-Diad0EdD.140911bf86af.js.br +0 -0
  711. codex/static_root/assets/pagination-toolbar-Diad0EdD.140911bf86af.js.gz +0 -0
  712. codex/static_root/assets/pagination-toolbar-Diad0EdD.js +0 -1
  713. codex/static_root/assets/pagination-toolbar-Diad0EdD.js.br +0 -0
  714. codex/static_root/assets/pagination-toolbar-Diad0EdD.js.gz +0 -0
  715. codex/static_root/assets/pdf-doc-b-GyNR6z.c9d18f0d36ed.js +0 -305
  716. codex/static_root/assets/pdf-doc-b-GyNR6z.c9d18f0d36ed.js.br +0 -0
  717. codex/static_root/assets/pdf-doc-b-GyNR6z.c9d18f0d36ed.js.gz +0 -0
  718. codex/static_root/assets/pdf-doc-b-GyNR6z.js +0 -305
  719. codex/static_root/assets/pdf-doc-b-GyNR6z.js.br +0 -0
  720. codex/static_root/assets/pdf-doc-b-GyNR6z.js.gz +0 -0
  721. codex/static_root/assets/reader-2up6WEuE.c56ad81d14c6.js +0 -2
  722. codex/static_root/assets/reader-2up6WEuE.c56ad81d14c6.js.br +0 -0
  723. codex/static_root/assets/reader-2up6WEuE.c56ad81d14c6.js.gz +0 -0
  724. codex/static_root/assets/reader-2up6WEuE.js +0 -2
  725. codex/static_root/assets/reader-2up6WEuE.js.br +0 -0
  726. codex/static_root/assets/reader-2up6WEuE.js.gz +0 -0
  727. codex/static_root/assets/reader-Dd2KmdCN.115d4bfe9280.css.br +0 -0
  728. codex/static_root/assets/reader-Dd2KmdCN.115d4bfe9280.css.gz +0 -0
  729. codex/static_root/assets/reader-Dd2KmdCN.css.br +0 -0
  730. codex/static_root/assets/reader-Dd2KmdCN.css.gz +0 -0
  731. codex/static_root/assets/relation-chips-piYv1IcD.f8a2ae79de89.js +0 -1
  732. codex/static_root/assets/relation-chips-piYv1IcD.f8a2ae79de89.js.br +0 -0
  733. codex/static_root/assets/relation-chips-piYv1IcD.f8a2ae79de89.js.gz +0 -0
  734. codex/static_root/assets/relation-chips-piYv1IcD.js +0 -1
  735. codex/static_root/assets/relation-chips-piYv1IcD.js.br +0 -0
  736. codex/static_root/assets/relation-chips-piYv1IcD.js.gz +0 -0
  737. codex/static_root/assets/settings-drawer-DKncO_vX.0a2cd24cd904.css +0 -1
  738. codex/static_root/assets/settings-drawer-DKncO_vX.0a2cd24cd904.css.br +0 -0
  739. codex/static_root/assets/settings-drawer-DKncO_vX.0a2cd24cd904.css.gz +0 -0
  740. codex/static_root/assets/settings-drawer-DKncO_vX.css +0 -1
  741. codex/static_root/assets/settings-drawer-DKncO_vX.css.br +0 -0
  742. codex/static_root/assets/settings-drawer-DKncO_vX.css.gz +0 -0
  743. codex/static_root/assets/settings-drawer-yVoY-WCS.1240cc47a246.js +0 -2
  744. codex/static_root/assets/settings-drawer-yVoY-WCS.1240cc47a246.js.br +0 -0
  745. codex/static_root/assets/settings-drawer-yVoY-WCS.1240cc47a246.js.gz +0 -0
  746. codex/static_root/assets/settings-drawer-yVoY-WCS.js +0 -2
  747. codex/static_root/assets/settings-drawer-yVoY-WCS.js.br +0 -0
  748. codex/static_root/assets/settings-drawer-yVoY-WCS.js.gz +0 -0
  749. codex/static_root/assets/stats-tab-bqSPLvTp.05106cb03ef0.js +0 -1
  750. codex/static_root/assets/stats-tab-bqSPLvTp.05106cb03ef0.js.br +0 -0
  751. codex/static_root/assets/stats-tab-bqSPLvTp.05106cb03ef0.js.gz +0 -0
  752. codex/static_root/assets/stats-tab-bqSPLvTp.js +0 -1
  753. codex/static_root/assets/stats-tab-bqSPLvTp.js.br +0 -0
  754. codex/static_root/assets/stats-tab-bqSPLvTp.js.gz +0 -0
  755. codex/static_root/assets/task-tab-DWPKaGPT.da4df28dde5c.js +0 -1
  756. codex/static_root/assets/task-tab-DWPKaGPT.da4df28dde5c.js.br +0 -0
  757. codex/static_root/assets/task-tab-DWPKaGPT.da4df28dde5c.js.gz +0 -0
  758. codex/static_root/assets/task-tab-DWPKaGPT.js +0 -1
  759. codex/static_root/assets/task-tab-DWPKaGPT.js.br +0 -0
  760. codex/static_root/assets/task-tab-DWPKaGPT.js.gz +0 -0
  761. codex/static_root/assets/transition-5LRFTPo5.3d726f9bbcb0.css +0 -1
  762. codex/static_root/assets/transition-5LRFTPo5.3d726f9bbcb0.css.br +0 -4
  763. codex/static_root/assets/transition-5LRFTPo5.3d726f9bbcb0.css.gz +0 -0
  764. codex/static_root/assets/transition-5LRFTPo5.css +0 -1
  765. codex/static_root/assets/transition-5LRFTPo5.css.br +0 -4
  766. codex/static_root/assets/transition-5LRFTPo5.css.gz +0 -0
  767. codex/static_root/assets/transition-DWVQ2EZ3.0bdfaa37b937.js +0 -1
  768. codex/static_root/assets/transition-DWVQ2EZ3.0bdfaa37b937.js.br +0 -0
  769. codex/static_root/assets/transition-DWVQ2EZ3.0bdfaa37b937.js.gz +0 -0
  770. codex/static_root/assets/transition-DWVQ2EZ3.js +0 -1
  771. codex/static_root/assets/transition-DWVQ2EZ3.js.br +0 -0
  772. codex/static_root/assets/transition-DWVQ2EZ3.js.gz +0 -0
  773. codex/static_root/assets/unauthorized-CEGD20tR.064b0993a944.js +0 -1
  774. codex/static_root/assets/unauthorized-CEGD20tR.064b0993a944.js.br +0 -0
  775. codex/static_root/assets/unauthorized-CEGD20tR.064b0993a944.js.gz +0 -0
  776. codex/static_root/assets/unauthorized-CEGD20tR.js +0 -1
  777. codex/static_root/assets/unauthorized-CEGD20tR.js.br +0 -0
  778. codex/static_root/assets/unauthorized-CEGD20tR.js.gz +0 -0
  779. codex/static_root/assets/unauthorized-DyojW2ic.css +0 -1
  780. codex/static_root/assets/unauthorized-DyojW2ic.css.br +0 -0
  781. codex/static_root/assets/unauthorized-DyojW2ic.css.gz +0 -0
  782. codex/static_root/assets/unauthorized-DyojW2ic.feefa7628a23.css +0 -1
  783. codex/static_root/assets/unauthorized-DyojW2ic.feefa7628a23.css.br +0 -0
  784. codex/static_root/assets/unauthorized-DyojW2ic.feefa7628a23.css.gz +0 -0
  785. codex/static_root/assets/user-tab-EsokzMCB.b0acc46b56a3.js +0 -1
  786. codex/static_root/assets/user-tab-EsokzMCB.b0acc46b56a3.js.br +0 -0
  787. codex/static_root/assets/user-tab-EsokzMCB.b0acc46b56a3.js.gz +0 -0
  788. codex/static_root/assets/user-tab-EsokzMCB.js +0 -1
  789. codex/static_root/assets/user-tab-EsokzMCB.js.br +0 -0
  790. codex/static_root/assets/user-tab-EsokzMCB.js.gz +0 -0
  791. codex/static_root/manifest.4a38de3db1c5.json +0 -712
  792. codex/static_root/manifest.4a38de3db1c5.json.br +0 -0
  793. codex/static_root/manifest.4a38de3db1c5.json.gz +0 -0
  794. codex-1.7.2.dist-info/RECORD +0 -1015
  795. /codex/static_root/assets/{VCheckbox-CMKdyl0R.016ed8d222c4.css → VCheckbox-CvH8ekHL.016ed8d222c4.css} +0 -0
  796. /codex/static_root/assets/{VCheckbox-CMKdyl0R.016ed8d222c4.css.br → VCheckbox-CvH8ekHL.016ed8d222c4.css.br} +0 -0
  797. /codex/static_root/assets/{VCheckbox-CMKdyl0R.016ed8d222c4.css.gz → VCheckbox-CvH8ekHL.016ed8d222c4.css.gz} +0 -0
  798. /codex/static_root/assets/{VCheckbox-CMKdyl0R.css → VCheckbox-CvH8ekHL.css} +0 -0
  799. /codex/static_root/assets/{VCheckbox-CMKdyl0R.css.br → VCheckbox-CvH8ekHL.css.br} +0 -0
  800. /codex/static_root/assets/{VCheckbox-CMKdyl0R.css.gz → VCheckbox-CvH8ekHL.css.gz} +0 -0
  801. /codex/static_root/assets/{VCombobox-bwEYrXCg.9f25a34994e2.css → VCombobox-BQHELb_o.9f25a34994e2.css} +0 -0
  802. /codex/static_root/assets/{VCombobox-bwEYrXCg.9f25a34994e2.css.br → VCombobox-BQHELb_o.9f25a34994e2.css.br} +0 -0
  803. /codex/static_root/assets/{VCombobox-bwEYrXCg.9f25a34994e2.css.gz → VCombobox-BQHELb_o.9f25a34994e2.css.gz} +0 -0
  804. /codex/static_root/assets/{VCombobox-bwEYrXCg.css → VCombobox-BQHELb_o.css} +0 -0
  805. /codex/static_root/assets/{VCombobox-bwEYrXCg.css.br → VCombobox-BQHELb_o.css.br} +0 -0
  806. /codex/static_root/assets/{VCombobox-bwEYrXCg.css.gz → VCombobox-BQHELb_o.css.gz} +0 -0
  807. /codex/static_root/assets/{VExpansionPanels-6G1AUajL.5b17872981df.css → VExpansionPanels-RsCANmDP.5b17872981df.css} +0 -0
  808. /codex/static_root/assets/{VExpansionPanels-6G1AUajL.5b17872981df.css.br → VExpansionPanels-RsCANmDP.5b17872981df.css.br} +0 -0
  809. /codex/static_root/assets/{VExpansionPanels-6G1AUajL.5b17872981df.css.gz → VExpansionPanels-RsCANmDP.5b17872981df.css.gz} +0 -0
  810. /codex/static_root/assets/{VExpansionPanels-6G1AUajL.css → VExpansionPanels-RsCANmDP.css} +0 -0
  811. /codex/static_root/assets/{VExpansionPanels-6G1AUajL.css.br → VExpansionPanels-RsCANmDP.css.br} +0 -0
  812. /codex/static_root/assets/{VExpansionPanels-6G1AUajL.css.gz → VExpansionPanels-RsCANmDP.css.gz} +0 -0
  813. /codex/static_root/assets/{VRadioGroup-i2qP9Wu9.8e3741381961.css → VRadioGroup-Cp9mZ7cb.8e3741381961.css} +0 -0
  814. /codex/static_root/assets/{VRadioGroup-i2qP9Wu9.8e3741381961.css.br → VRadioGroup-Cp9mZ7cb.8e3741381961.css.br} +0 -0
  815. /codex/static_root/assets/{VRadioGroup-i2qP9Wu9.8e3741381961.css.gz → VRadioGroup-Cp9mZ7cb.8e3741381961.css.gz} +0 -0
  816. /codex/static_root/assets/{VRadioGroup-i2qP9Wu9.css → VRadioGroup-Cp9mZ7cb.css} +0 -0
  817. /codex/static_root/assets/{VRadioGroup-i2qP9Wu9.css.br → VRadioGroup-Cp9mZ7cb.css.br} +0 -0
  818. /codex/static_root/assets/{VRadioGroup-i2qP9Wu9.css.gz → VRadioGroup-Cp9mZ7cb.css.gz} +0 -0
  819. /codex/static_root/assets/{VTable-Y5Sc3hJd.c36f0a6a30cf.css → VTable-BnxSZ_W5.c36f0a6a30cf.css} +0 -0
  820. /codex/static_root/assets/{VTable-Y5Sc3hJd.c36f0a6a30cf.css.br → VTable-BnxSZ_W5.c36f0a6a30cf.css.br} +0 -0
  821. /codex/static_root/assets/{VTable-Y5Sc3hJd.c36f0a6a30cf.css.gz → VTable-BnxSZ_W5.c36f0a6a30cf.css.gz} +0 -0
  822. /codex/static_root/assets/{VTable-Y5Sc3hJd.css → VTable-BnxSZ_W5.css} +0 -0
  823. /codex/static_root/assets/{VTable-Y5Sc3hJd.css.br → VTable-BnxSZ_W5.css.br} +0 -0
  824. /codex/static_root/assets/{VTable-Y5Sc3hJd.css.gz → VTable-BnxSZ_W5.css.gz} +0 -0
  825. /codex/static_root/assets/{VWindowItem-ByIod57Y.css → VWindowItem-CWBhiE_Y.css} +0 -0
  826. /codex/static_root/assets/{VWindowItem-ByIod57Y.css.br → VWindowItem-CWBhiE_Y.css.br} +0 -0
  827. /codex/static_root/assets/{VWindowItem-ByIod57Y.css.gz → VWindowItem-CWBhiE_Y.css.gz} +0 -0
  828. /codex/static_root/assets/{VWindowItem-ByIod57Y.f7fb19752bf3.css → VWindowItem-CWBhiE_Y.f7fb19752bf3.css} +0 -0
  829. /codex/static_root/assets/{VWindowItem-ByIod57Y.f7fb19752bf3.css.br → VWindowItem-CWBhiE_Y.f7fb19752bf3.css.br} +0 -0
  830. /codex/static_root/assets/{VWindowItem-ByIod57Y.f7fb19752bf3.css.gz → VWindowItem-CWBhiE_Y.f7fb19752bf3.css.gz} +0 -0
  831. /codex/static_root/assets/{admin-menu-B9bzD6hV.c13b7df2ff57.css → admin-menu-B3iXsOyy.c13b7df2ff57.css} +0 -0
  832. /codex/static_root/assets/{admin-menu-B9bzD6hV.c13b7df2ff57.css.br → admin-menu-B3iXsOyy.c13b7df2ff57.css.br} +0 -0
  833. /codex/static_root/assets/{admin-menu-B9bzD6hV.c13b7df2ff57.css.gz → admin-menu-B3iXsOyy.c13b7df2ff57.css.gz} +0 -0
  834. /codex/static_root/assets/{admin-menu-B9bzD6hV.css → admin-menu-B3iXsOyy.css} +0 -0
  835. /codex/static_root/assets/{admin-menu-B9bzD6hV.css.br → admin-menu-B3iXsOyy.css.br} +0 -0
  836. /codex/static_root/assets/{admin-menu-B9bzD6hV.css.gz → admin-menu-B3iXsOyy.css.gz} +0 -0
  837. /codex/static_root/assets/{admin-settings-button-progress-DUUQfVsZ.2548c49a853e.css → admin-settings-button-progress-BGB22oTD.2548c49a853e.css} +0 -0
  838. /codex/static_root/assets/{admin-settings-button-progress-DUUQfVsZ.css → admin-settings-button-progress-BGB22oTD.css} +0 -0
  839. /codex/static_root/assets/{change-password-dialog-C_EOKOn9.a30e68c6e303.css → change-password-dialog-D0ymWcl_.a30e68c6e303.css} +0 -0
  840. /codex/static_root/assets/{change-password-dialog-C_EOKOn9.a30e68c6e303.css.br → change-password-dialog-D0ymWcl_.a30e68c6e303.css.br} +0 -0
  841. /codex/static_root/assets/{change-password-dialog-C_EOKOn9.a30e68c6e303.css.gz → change-password-dialog-D0ymWcl_.a30e68c6e303.css.gz} +0 -0
  842. /codex/static_root/assets/{change-password-dialog-C_EOKOn9.css → change-password-dialog-D0ymWcl_.css} +0 -0
  843. /codex/static_root/assets/{change-password-dialog-C_EOKOn9.css.br → change-password-dialog-D0ymWcl_.css.br} +0 -0
  844. /codex/static_root/assets/{change-password-dialog-C_EOKOn9.css.gz → change-password-dialog-D0ymWcl_.css.gz} +0 -0
  845. /codex/static_root/assets/{confirm-dialog-54rblwf7.9b5915b112c0.css → confirm-dialog-B1ABbGMU.9b5915b112c0.css} +0 -0
  846. /codex/static_root/assets/{confirm-dialog-54rblwf7.9b5915b112c0.css.br → confirm-dialog-B1ABbGMU.9b5915b112c0.css.br} +0 -0
  847. /codex/static_root/assets/{confirm-dialog-54rblwf7.css → confirm-dialog-B1ABbGMU.css} +0 -0
  848. /codex/static_root/assets/{confirm-dialog-54rblwf7.css.br → confirm-dialog-B1ABbGMU.css.br} +0 -0
  849. /codex/static_root/assets/{datetime-column-DeCthByU.1f3bf499e063.css → datetime-column-BavtvLnf.1f3bf499e063.css} +0 -0
  850. /codex/static_root/assets/{datetime-column-DeCthByU.css → datetime-column-BavtvLnf.css} +0 -0
  851. /codex/static_root/assets/{group-tab-DkIN1Heu.948e907b1e6b.css → group-tab-_vKWzoyd.948e907b1e6b.css} +0 -0
  852. /codex/static_root/assets/{group-tab-DkIN1Heu.948e907b1e6b.css.br → group-tab-_vKWzoyd.948e907b1e6b.css.br} +0 -0
  853. /codex/static_root/assets/{group-tab-DkIN1Heu.948e907b1e6b.css.gz → group-tab-_vKWzoyd.948e907b1e6b.css.gz} +0 -0
  854. /codex/static_root/assets/{group-tab-DkIN1Heu.css → group-tab-_vKWzoyd.css} +0 -0
  855. /codex/static_root/assets/{group-tab-DkIN1Heu.css.br → group-tab-_vKWzoyd.css.br} +0 -0
  856. /codex/static_root/assets/{group-tab-DkIN1Heu.css.gz → group-tab-_vKWzoyd.css.gz} +0 -0
  857. /codex/static_root/assets/{index-CL_6g4tJ.523d7b3d350f.css → index-BHXJTQ4V.523d7b3d350f.css} +0 -0
  858. /codex/static_root/assets/{index-CL_6g4tJ.523d7b3d350f.css.br → index-BHXJTQ4V.523d7b3d350f.css.br} +0 -0
  859. /codex/static_root/assets/{index-CL_6g4tJ.523d7b3d350f.css.gz → index-BHXJTQ4V.523d7b3d350f.css.gz} +0 -0
  860. /codex/static_root/assets/{index-CL_6g4tJ.css → index-BHXJTQ4V.css} +0 -0
  861. /codex/static_root/assets/{index-CL_6g4tJ.css.br → index-BHXJTQ4V.css.br} +0 -0
  862. /codex/static_root/assets/{index-CL_6g4tJ.css.gz → index-BHXJTQ4V.css.gz} +0 -0
  863. /codex/static_root/assets/{main-BZ73p_WW.css → main-K8cER0IH.css} +0 -0
  864. /codex/static_root/assets/{main-BZ73p_WW.css.br → main-K8cER0IH.css.br} +0 -0
  865. /codex/static_root/assets/{main-BZ73p_WW.css.gz → main-K8cER0IH.css.gz} +0 -0
  866. /codex/static_root/assets/{main-BZ73p_WW.d529e8b3f52a.css → main-K8cER0IH.d529e8b3f52a.css} +0 -0
  867. /codex/static_root/assets/{main-BZ73p_WW.d529e8b3f52a.css.br → main-K8cER0IH.d529e8b3f52a.css.br} +0 -0
  868. /codex/static_root/assets/{main-BZ73p_WW.d529e8b3f52a.css.gz → main-K8cER0IH.d529e8b3f52a.css.gz} +0 -0
  869. /codex/static_root/assets/{pdf-doc-CG5-AZ2M.b94aac7e3313.css → pdf-doc-B4cGW_Hl.b94aac7e3313.css} +0 -0
  870. /codex/static_root/assets/{pdf-doc-CG5-AZ2M.b94aac7e3313.css.br → pdf-doc-B4cGW_Hl.b94aac7e3313.css.br} +0 -0
  871. /codex/static_root/assets/{pdf-doc-CG5-AZ2M.b94aac7e3313.css.gz → pdf-doc-B4cGW_Hl.b94aac7e3313.css.gz} +0 -0
  872. /codex/static_root/assets/{pdf-doc-CG5-AZ2M.css → pdf-doc-B4cGW_Hl.css} +0 -0
  873. /codex/static_root/assets/{pdf-doc-CG5-AZ2M.css.br → pdf-doc-B4cGW_Hl.css.br} +0 -0
  874. /codex/static_root/assets/{pdf-doc-CG5-AZ2M.css.gz → pdf-doc-B4cGW_Hl.css.gz} +0 -0
  875. /codex/static_root/assets/{relation-chips-ByfWwuQc.01269a188e01.css → relation-chips-DpbzrZxT.01269a188e01.css} +0 -0
  876. /codex/static_root/assets/{relation-chips-ByfWwuQc.01269a188e01.css.br → relation-chips-DpbzrZxT.01269a188e01.css.br} +0 -0
  877. /codex/static_root/assets/{relation-chips-ByfWwuQc.01269a188e01.css.gz → relation-chips-DpbzrZxT.01269a188e01.css.gz} +0 -0
  878. /codex/static_root/assets/{relation-chips-ByfWwuQc.css → relation-chips-DpbzrZxT.css} +0 -0
  879. /codex/static_root/assets/{relation-chips-ByfWwuQc.css.br → relation-chips-DpbzrZxT.css.br} +0 -0
  880. /codex/static_root/assets/{relation-chips-ByfWwuQc.css.gz → relation-chips-DpbzrZxT.css.gz} +0 -0
  881. /codex/static_root/assets/{stats-tab-BlXGStge.9fdb0106124d.css → stats-tab-WvF2acoZ.9fdb0106124d.css} +0 -0
  882. /codex/static_root/assets/{stats-tab-BlXGStge.9fdb0106124d.css.br → stats-tab-WvF2acoZ.9fdb0106124d.css.br} +0 -0
  883. /codex/static_root/assets/{stats-tab-BlXGStge.9fdb0106124d.css.gz → stats-tab-WvF2acoZ.9fdb0106124d.css.gz} +0 -0
  884. /codex/static_root/assets/{stats-tab-BlXGStge.css → stats-tab-WvF2acoZ.css} +0 -0
  885. /codex/static_root/assets/{stats-tab-BlXGStge.css.br → stats-tab-WvF2acoZ.css.br} +0 -0
  886. /codex/static_root/assets/{stats-tab-BlXGStge.css.gz → stats-tab-WvF2acoZ.css.gz} +0 -0
  887. /codex/static_root/assets/{task-tab-EGlhcKTH.478e74041f80.css → task-tab-DfdUY9Rc.478e74041f80.css} +0 -0
  888. /codex/static_root/assets/{task-tab-EGlhcKTH.478e74041f80.css.br → task-tab-DfdUY9Rc.478e74041f80.css.br} +0 -0
  889. /codex/static_root/assets/{task-tab-EGlhcKTH.478e74041f80.css.gz → task-tab-DfdUY9Rc.478e74041f80.css.gz} +0 -0
  890. /codex/static_root/assets/{task-tab-EGlhcKTH.css → task-tab-DfdUY9Rc.css} +0 -0
  891. /codex/static_root/assets/{task-tab-EGlhcKTH.css.br → task-tab-DfdUY9Rc.css.br} +0 -0
  892. /codex/static_root/assets/{task-tab-EGlhcKTH.css.gz → task-tab-DfdUY9Rc.css.gz} +0 -0
  893. {codex-1.7.2.dist-info → codex-1.7.3.dist-info}/LICENSE +0 -0
  894. {codex-1.7.2.dist-info → codex-1.7.3.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,36 @@
1
+ """OPDS v2.0 Feed Serializer."""
2
+
3
+ from rest_framework.fields import (
4
+ ListField,
5
+ )
6
+ from rest_framework.serializers import Serializer
7
+
8
+ from codex.serializers.opds.v2.facet import OPDS2FacetSerializer
9
+ from codex.serializers.opds.v2.links import OPDS2LinkListField
10
+ from codex.serializers.opds.v2.publication import (
11
+ OPDS2MetadataSerializer,
12
+ OPDS2PublicationSerializer,
13
+ )
14
+
15
+
16
+ class OPDS2GroupSerializer(Serializer):
17
+ """Group."""
18
+
19
+ metadata = OPDS2MetadataSerializer(read_only=True)
20
+ links = OPDS2LinkListField(read_only=True, required=False)
21
+ publications = ListField(
22
+ child=OPDS2PublicationSerializer(), read_only=True, required=False
23
+ )
24
+ navigation = OPDS2LinkListField(read_only=True, required=False)
25
+
26
+
27
+ class OPDS2FeedSerializer(OPDS2GroupSerializer):
28
+ """
29
+ Feed.
30
+
31
+ https://drafts.opds.io/schema/feed.schema.json
32
+ https://readium.org/webpub-manifest/schema/subcollection.schema.json
33
+ """
34
+
35
+ facets = ListField(child=OPDS2FacetSerializer(), read_only=True, required=False)
36
+ groups = ListField(child=OPDS2GroupSerializer(), read_only=True, required=False)
@@ -0,0 +1,75 @@
1
+ """OPDS v2.0 Links Serializers."""
2
+
3
+ from rest_framework.fields import (
4
+ BooleanField,
5
+ CharField,
6
+ IntegerField,
7
+ ListField,
8
+ SerializerMethodField,
9
+ )
10
+ from rest_framework.serializers import Serializer
11
+
12
+
13
+ class OPSD2AuthenticateSerializer(Serializer):
14
+ """Minimal Link Serializer for Authenticate."""
15
+
16
+ href = CharField(
17
+ read_only=True,
18
+ )
19
+ rel = SerializerMethodField(
20
+ read_only=True,
21
+ )
22
+ type = CharField(read_only=True, required=False)
23
+
24
+ def get_rel(self, obj) -> str | None:
25
+ """Allow for CharField or CharListField types."""
26
+ rel = obj.get("rel")
27
+ if not isinstance(rel, list | str):
28
+ reason = "OPDS2LinkSerializer.rel is not a list or a string."
29
+ raise TypeError(reason)
30
+ return obj.get("rel")
31
+
32
+
33
+ class OPDS2LinkPropertiesSerializer(Serializer):
34
+ """
35
+ Link Properties.
36
+
37
+ https://drafts.opds.io/schema/properties.schema.json
38
+ """
39
+
40
+ number_of_items = IntegerField(read_only=True, required=False)
41
+ # price = OPDS2PriceSerializer(read_only=True, required=False) unused
42
+ # indirect_aquisition = OPDS2AcquisitionObjectSerializer( unused
43
+ # read_only=True, many=True, required=False unused
44
+ # ) unused
45
+ # holds = OPDS2HoldsSerializer(read_only=True, required=False) unused
46
+ # copies = OPDS2CopiesSerializer(read_only=True, required=False) unused
47
+ # availability = OPDS2AvailabilitySerializer(read_only=True, required=False) unused
48
+ authenticate = OPSD2AuthenticateSerializer(required=False)
49
+
50
+
51
+ class OPDS2LinkSerializer(OPSD2AuthenticateSerializer):
52
+ """
53
+ Link.
54
+
55
+ https://readium.org/webpub-manifest/schema/link.schema.json
56
+ """
57
+
58
+ templated = BooleanField(read_only=True, required=False)
59
+ title = CharField(read_only=True, required=False)
60
+
61
+ # Uncommon
62
+ height = IntegerField(read_only=True, required=False)
63
+ width = IntegerField(read_only=True, required=False)
64
+ # bitrate = IntegerField(read_only=True, required=False) unused
65
+ # duration = IntegerField(read_only=True, required=False) unused
66
+ # language = CharField(many=True, read_only=True, required=False) unused
67
+ alternate = ListField(child=CharField(), read_only=True, required=False)
68
+ children = ListField(child=CharField(), read_only=True, required=False)
69
+ properties = OPDS2LinkPropertiesSerializer(read_only=True, required=False)
70
+
71
+
72
+ class OPDS2LinkListField(ListField):
73
+ """Link List."""
74
+
75
+ child = OPDS2LinkSerializer()
@@ -0,0 +1,23 @@
1
+ """OPDS 2.0 Metadata Serializer."""
2
+
3
+ from rest_framework.fields import (
4
+ CharField,
5
+ DateTimeField,
6
+ )
7
+ from rest_framework.serializers import Serializer
8
+
9
+
10
+ class OPDS2MetadataSerializer(Serializer):
11
+ """
12
+ Metadata.
13
+
14
+ https://drafts.opds.io/schema/feed-metadata.schema.json
15
+ """
16
+
17
+ identifier = CharField(read_only=True, required=False)
18
+ title = CharField(
19
+ read_only=True,
20
+ )
21
+ subtitle = CharField(read_only=True, required=False)
22
+ modified = DateTimeField(read_only=True, required=False)
23
+ description = CharField(read_only=True, required=False)
@@ -0,0 +1,65 @@
1
+ """
2
+ OPDS v2 Progression Serializer.
3
+
4
+ https://github.com/opds-community/drafts/discussions/67
5
+ """
6
+
7
+ from decimal import Decimal
8
+
9
+ from rest_framework.fields import (
10
+ CharField,
11
+ DateTimeField,
12
+ DecimalField,
13
+ IntegerField,
14
+ ListField,
15
+ )
16
+ from rest_framework.serializers import Serializer
17
+
18
+
19
+ class OPDS2ProgressionDeviceSerializer(Serializer):
20
+ """Progression Device Element."""
21
+
22
+ id = CharField(read_only=True)
23
+ name = CharField(read_only=True)
24
+
25
+
26
+ class OPDS2ProgressionLocationsSerializer(Serializer):
27
+ """Progression Location Element."""
28
+
29
+ fragments = ListField(child=CharField(), read_only=True)
30
+ position = IntegerField(read_only=True)
31
+ progression = DecimalField(
32
+ max_digits=7,
33
+ decimal_places=6,
34
+ max_value=Decimal(1.0),
35
+ min_value=Decimal(0.0),
36
+ read_only=True,
37
+ )
38
+ total_progression = DecimalField(
39
+ max_digits=7,
40
+ decimal_places=6,
41
+ max_value=Decimal(1.0),
42
+ min_value=Decimal(0.0),
43
+ read_only=True,
44
+ )
45
+
46
+
47
+ class OPDS2ProgressionLocatorSerializer(Serializer):
48
+ """Progression Locator Element."""
49
+
50
+ title = CharField(read_only=True)
51
+ href = CharField(read_only=True)
52
+ type = CharField(read_only=True)
53
+ locations = OPDS2ProgressionLocationsSerializer()
54
+
55
+
56
+ class OPDS2ProgressionSerializer(Serializer):
57
+ """
58
+ Progression.
59
+
60
+ https://github.com/opds-community/drafts/discussions/67#discussioncomment-6414507
61
+ """
62
+
63
+ modified = DateTimeField(read_only=True)
64
+ device = OPDS2ProgressionDeviceSerializer()
65
+ locator = OPDS2ProgressionLocatorSerializer()
@@ -0,0 +1,81 @@
1
+ """OPDS 2 Publication Serializers."""
2
+
3
+ from rest_framework.fields import (
4
+ CharField,
5
+ DateField,
6
+ IntegerField,
7
+ ListField,
8
+ )
9
+ from rest_framework.serializers import Serializer
10
+
11
+ from codex.serializers.opds.v2.facet import OPDS2FacetSerializer
12
+ from codex.serializers.opds.v2.links import OPDS2LinkListField
13
+ from codex.serializers.opds.v2.metadata import OPDS2MetadataSerializer
14
+
15
+
16
+ class OPDS2FeedMetadataSerializer(OPDS2MetadataSerializer):
17
+ """Feed Metadata."""
18
+
19
+ items_per_page = IntegerField(read_only=True, required=False)
20
+ current_page = IntegerField(read_only=True, required=False)
21
+ number_of_items = IntegerField(read_only=True, required=False)
22
+
23
+
24
+ class OPDS2ContributorObjectSerializer(Serializer):
25
+ """
26
+ Contributor Object.
27
+
28
+ https://readium.org/webpub-manifest/schema/contributor-object.schema.json
29
+ """
30
+
31
+ name = CharField(read_only=True)
32
+ # identifier= CharField(read_only=True, required=False) unused
33
+ # sort_as = CharField(read_only=True, required=False) unused
34
+ role = CharField(read_only=True, source="role_name")
35
+ # role = CharListField(read_only=True) unused
36
+ # position = IntegerField(read_only=True, required=False) unused
37
+ # links = LinkListField(read_only=True) unused
38
+
39
+
40
+ class OPDS2PublicationMetadataSerializer(OPDS2MetadataSerializer):
41
+ """
42
+ Metadata for publications.
43
+
44
+ https://readium.org/webpub-manifest/schema/metadata.schema.json
45
+ """
46
+
47
+ # possibly change to @ on output if this is really needed
48
+ # @type = CharField(read_only=True, required=False)
49
+ publisher = CharField(read_only=True, required=False)
50
+ imprint = CharField(read_only=True, required=False)
51
+ language = CharField(read_only=True, required=False)
52
+ published = DateField(read_only=True, required=False)
53
+ number_of_pages = IntegerField(read_only=True, required=False)
54
+ # reading_progression = ChoiceField() unused
55
+
56
+ #####################
57
+ # Extended metadata #
58
+ #####################
59
+ subject = ListField(child=CharField(), read_only=True, required=False)
60
+ author = OPDS2ContributorObjectSerializer(many=True, required=False)
61
+ # translator = OPDS2ContributorObjectSerializer(many=True, required=False) unused
62
+ editor = OPDS2ContributorObjectSerializer(many=True, required=False)
63
+ artist = OPDS2ContributorObjectSerializer(many=True, required=False)
64
+ # illustrator = OPDS2ContributorObjectSerializer(many=True, required=False) unused
65
+ letterer = OPDS2ContributorObjectSerializer(many=True, required=False)
66
+ peniciller = OPDS2ContributorObjectSerializer(many=True, required=False)
67
+ colorist = OPDS2ContributorObjectSerializer(many=True, required=False)
68
+ inker = OPDS2ContributorObjectSerializer(many=True, required=False)
69
+ contributor = OPDS2ContributorObjectSerializer(many=True, required=False)
70
+
71
+
72
+ class OPDS2PublicationSerializer(OPDS2FacetSerializer):
73
+ """
74
+ Publication.
75
+
76
+ https://drafts.opds.io/schema/publication.schema.json
77
+ """
78
+
79
+ metadata = OPDS2PublicationMetadataSerializer(read_only=True)
80
+ links = OPDS2LinkListField(read_only=True)
81
+ images = OPDS2LinkListField(read_only=True, required=False)
@@ -3,11 +3,12 @@
3
3
  from rest_framework.fields import CharField, DateTimeField, DecimalField, IntegerField
4
4
  from rest_framework.serializers import ChoiceField, Serializer
5
5
 
6
- from codex.serializers.opds.v2 import OPDS2LinkListField
6
+ from codex.serializers.opds.v2.links import OPDS2LinkListField
7
7
 
8
8
 
9
9
  class RecursiveField(Serializer):
10
- """A recursive field type.
10
+ """
11
+ A recursive field type.
11
12
 
12
13
  There is a more comprehensive solution at
13
14
  https://pypi.org/project/djangorestframework-recursive/
@@ -17,12 +18,13 @@ class RecursiveField(Serializer):
17
18
  """Represent with own class."""
18
19
  parent = self.parent
19
20
  # Should not be ignored but is currently unused
20
- serializer = parent.parent.__class__(instance, context=self.context) # type: ignore
21
+ serializer = parent.parent.__class__(instance, context=self.context)
21
22
  return serializer.data
22
23
 
23
24
 
24
25
  class OPDS2PriceSerializer(Serializer):
25
- """Prices.
26
+ """
27
+ Prices.
26
28
 
27
29
  https://drafts.opds.io/schema/properties.schema.json
28
30
  """
@@ -33,7 +35,8 @@ class OPDS2PriceSerializer(Serializer):
33
35
 
34
36
 
35
37
  class OPDS2HoldsSerializer(Serializer):
36
- """Holds.
38
+ """
39
+ Holds.
37
40
 
38
41
  https://drafts.opds.io/schema/properties.schema.json
39
42
  """
@@ -43,7 +46,8 @@ class OPDS2HoldsSerializer(Serializer):
43
46
 
44
47
 
45
48
  class OPDS2CopiesSerializer(Serializer):
46
- """Copies.
49
+ """
50
+ Copies.
47
51
 
48
52
  https://drafts.opds.io/schema/properties.schema.json
49
53
  """
@@ -53,7 +57,8 @@ class OPDS2CopiesSerializer(Serializer):
53
57
 
54
58
 
55
59
  class OPDS2AcquisitionObjectSerializer(Serializer):
56
- """Acquisition Object.
60
+ """
61
+ Acquisition Object.
57
62
 
58
63
  https://drafts.opds.io/schema/acquisition-object.schema.json
59
64
  """
@@ -63,7 +68,8 @@ class OPDS2AcquisitionObjectSerializer(Serializer):
63
68
 
64
69
 
65
70
  class OPDS2ProfileSerializer(Serializer):
66
- """Profile.
71
+ """
72
+ Profile.
67
73
 
68
74
  https://drafts.opds.io/schema/profile.schema.json
69
75
  """
@@ -76,7 +82,8 @@ class OPDS2ProfileSerializer(Serializer):
76
82
 
77
83
 
78
84
  class OPDS2AvailabilitySerializer(Serializer):
79
- """Availability.
85
+ """
86
+ Availability.
80
87
 
81
88
  https://drafts.opds.io/schema/properties.schema.json
82
89
  """
@@ -30,9 +30,9 @@ class SimpleRouteSerializer(Serializer):
30
30
  pks = instance.get("pks")
31
31
  if isinstance(pks, str):
32
32
  pks = tuple(sorted(int(pk) for pk in pks.split(",")))
33
- if 0 in pks: # type: ignore
33
+ if 0 in pks:
34
34
  pks = ()
35
- instance["pks"] = tuple(pks) # type: ignore
35
+ instance["pks"] = tuple(pks)
36
36
  except ValueError:
37
37
  instance["pks"] = ()
38
38
  return instance
@@ -1,4 +1,5 @@
1
- """Django settings for codex project.
1
+ """
2
+ Django settings for codex project.
2
3
 
3
4
  Generated by 'django-admin startproject' using Django 3.0.3.
4
5
 
@@ -10,7 +11,7 @@ https://docs.djangoproject.com/en/dev/ref/settings/
10
11
  """
11
12
 
12
13
  import logging
13
- from logging import WARN, getLogger
14
+ from logging import WARNING, getLogger
14
15
  from os import environ
15
16
  from pathlib import Path
16
17
  from types import MappingProxyType
@@ -152,7 +153,7 @@ if DEBUG:
152
153
  "nplusone.ext.django.NPlusOneMiddleware",
153
154
  ]
154
155
  NPLUSONE_LOGGER = getLogger("nplusone")
155
- NPLUSONE_LOG_LEVEL = WARN
156
+ NPLUSONE_LOG_LEVEL = WARNING
156
157
 
157
158
  if LOG_RESPONSE_TIME:
158
159
  MIDDLEWARE += [
@@ -38,5 +38,5 @@ def _user_group_change(**kwargs):
38
38
 
39
39
  def connect_signals():
40
40
  """Connect actions to signals."""
41
- # connection_created.connect(_db_connect)
41
+ # connection_created.connect(_db_connect) unused atm
42
42
  m2m_changed.connect(_user_group_change)
@@ -0,0 +1 @@
1
+ import{m as A,V as t}from"./VCheckboxBtn-CNMFahfF.js";import{g as F,u as I,h as l}from"./VSelectionControl-BqB1JeKa.js";import{p as B,o as U,g as R,b as D,bu as M,c as N,u as $,bv as j,a as u,m as r}from"./main-DCaPxp2h.js";const q=B({...F(),...U(A(),["inline"])},"VCheckbox"),G=R()({name:"VCheckbox",inheritAttrs:!1,props:q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=D(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=M(),b=N(()=>e.id||`checkbox-${V}`);return $(()=>{const[p,v]=j(d),f=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},p,f,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:b.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:h,messagesId:x,isDisabled:P,isReadonly:C,isValid:g}=o;return u(t,r(k,{id:h.value,"aria-describedby":x.value,disabled:P.value,readonly:C.value},v,{error:g.value===!1,modelValue:s.value,"onUpdate:modelValue":y=>s.value=y,onFocus:i,onBlur:m}),a)}})}),{}}});export{G as V};
@@ -0,0 +1 @@
1
+ import{m as A,V as t}from"./VCheckboxBtn-CNMFahfF.js";import{g as F,u as I,h as l}from"./VSelectionControl-BqB1JeKa.js";import{p as B,o as U,g as R,b as D,bu as M,c as N,u as $,bv as j,a as u,m as r}from"./main-DCaPxp2h.js";const q=B({...F(),...U(A(),["inline"])},"VCheckbox"),G=R()({name:"VCheckbox",inheritAttrs:!1,props:q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=D(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=M(),b=N(()=>e.id||`checkbox-${V}`);return $(()=>{const[p,v]=j(d),f=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},p,f,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:b.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:h,messagesId:x,isDisabled:P,isReadonly:C,isValid:g}=o;return u(t,r(k,{id:h.value,"aria-describedby":x.value,disabled:P.value,readonly:C.value},v,{error:g.value===!1,modelValue:s.value,"onUpdate:modelValue":y=>s.value=y,onFocus:i,onBlur:m}),a)}})}),{}}});export{G as V};
@@ -0,0 +1 @@
1
+ import{k as f,l as a}from"./VSelectionControl-BqB1JeKa.js";import{p as V,K as k,g as v,b as c,c as l,u as I,o as x,a as b,m as h}from"./main-DCaPxp2h.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),y=v()({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(o){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),m=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const o=x(a.filterProps(e),["modelValue"]);return b(a,h(o,{modelValue:n.value,"onUpdate:modelValue":[d=>n.value=d,s],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:m.value,"aria-checked":t.value?"mixed":void 0}),u)}),{}}});export{y as V,C as m};
@@ -0,0 +1 @@
1
+ import{k as f,l as a}from"./VSelectionControl-BqB1JeKa.js";import{p as V,K as k,g as v,b as c,c as l,u as I,o as x,a as b,m as h}from"./main-DCaPxp2h.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),y=v()({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(o){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),m=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const o=x(a.filterProps(e),["modelValue"]);return b(a,h(o,{modelValue:n.value,"onUpdate:modelValue":[d=>n.value=d,s],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:m.value,"aria-checked":t.value?"mixed":void 0}),u)}),{}}});export{y as V,C as m};
@@ -0,0 +1 @@
1
+ import{m as pe,u as Ce,t as P,f as we,a as Se,V as Fe,b as Ie,d as Pe}from"./VSelect-L4v_m3ag.js";import{p as Ae,q as De,b as X}from"./VSelectionControl-BqB1JeKa.js";import{p as Re,u as _e,k as Y,l as Ee,f as Te}from"./forwardRefs-D1ZDjzWx.js";import{m as Me,u as Ne}from"./filter-xcEcgcIx.js";import{p as Le,o as Oe,g as Ke,aS as Ue,r as N,aT as A,b as Z,c as b,aU as D,aW as ee,bt as Be,u as ze,a as i,F as L,m as I,bE as He,s as je,bF as qe,bG as We,bH as $e,bI as Ge}from"./main-DCaPxp2h.js";import{a as le,g as Je}from"./VDialog-CQXjBvDZ.js";import{V as Qe}from"./VCheckboxBtn-CNMFahfF.js";function Xe(e,g,R){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(L,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,R)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+R)])]):e}const Ye=Le({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Me({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...Oe(Ae({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Re({transition:!1})},"VCombobox"),ol=Ke()({name:"VCombobox",props:Ye(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var G;let{emit:R,slots:o}=g;const{t:O}=Ue(),x=N(),y=A(!1),k=A(!0),K=A(!1),W=N(),U=N(),B=Z(e,"menu"),c=b({get:()=>B.value,set:l=>{var a;B.value&&!l&&((a=W.value)!=null&&a.ΨopenChildren.size)||(B.value=l)}}),s=A(-1);let z=!1;const ae=b(()=>{var l;return(l=x.value)==null?void 0:l.color}),$=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=Ce(e),{textColorClasses:oe,textColorStyles:ie}=_e(ae),n=Z(e,"modelValue",[],l=>ne(Ge(l)),l=>{const a=ue(l);return e.multiple?a:a[0]??null}),F=De(),_=b(()=>!!(e.chips||o.chip)),V=b(()=>_.value||!!o.selection),p=A(!e.multiple&&!V.value?((G=n.value[0])==null?void 0:G.title)??"":""),v=b({get:()=>p.value,set:l=>{var a;if(p.value=l??"",!e.multiple&&!V.value&&(n.value=[P(e,l)]),l&&e.multiple&&((a=e.delimiters)!=null&&a.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(t=>{t=t.trim(),t&&h(P(e,t))}),p.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);D(p,l=>{z?ee(()=>z=!1):y.value&&!c.value&&(c.value=!0),R("update:search",l)}),D(n,l=>{var a;!e.multiple&&!V.value&&(p.value=((a=l[0])==null?void 0:a.title)??"")});const{filteredItems:E,getMatches:re}=Ne(e,te,()=>k.value?"":v.value),C=b(()=>e.hideSelected?E.value.filter(l=>!n.value.some(a=>a.value===l.value)):E.value),ce=b(()=>n.value.map(l=>l.value)),H=b(()=>{var a;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((a=C.value[0])==null?void 0:a.title))&&C.value.length>0&&!k.value&&!K.value}),j=b(()=>e.hideNoData&&!C.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),q=N(),ve=we(q,x);function de(l){z=!0,e.openOnClear&&(c.value=!0)}function fe(){j.value||(c.value=!0)}function me(l){j.value||(y.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function be(l){var a;We(l)&&((a=x.value)==null||a.focus())}function he(l){var t;if($e(l)||e.readonly||F!=null&&F.isReadonly.value)return;const a=x.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)&&(H.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===C.value[0].value})&&h(E.value[0]),k.value=!0),l.key==="ArrowDown"&&H.value&&((t=q.value)==null||t.focus("next")),l.key==="Enter"&&v.value&&(h(P(e,v.value)),V.value&&(p.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&V.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&&a>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,x.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,x.value.setSelectionRange(0,0))}}}function ge(){var l;e.eager&&((l=U.value)==null||l.calculateVisibleItems())}function xe(){var l;y.value&&(k.value=!0,(l=x.value)==null||l.focus())}function h(l){let a=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)),t=a??!~r;if(~r){const u=t?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else t&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=a!==!1;n.value=r?[l]:[],p.value=r&&!V.value?l.title:"",ee(()=>{c.value=!1,k.value=!0})}}function ye(l){y.value=!0,setTimeout(()=>{K.value=!0})}function Ve(l){K.value=!1}function ke(l){(l==null||l===""&&!e.multiple&&!V.value)&&(n.value=[])}return D(y,(l,a)=>{if(!(l||l===a)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(P(e,v.value));return}if(!V.value)return;n.value.some(r=>{let{title:t}=r;return t===v.value})?p.value="":h(P(e,v.value))}}),D(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=C.value.findIndex(a=>n.value.some(r=>e.valueComparator(r.value,a.value)));Be&&window.requestAnimationFrame(()=>{var a;l>=0&&((a=U.value)==null||a.scrollToIndex(l))})}}),D(()=>e.items,(l,a)=>{c.value||y.value&&!a.length&&l.length&&(c.value=!0)}),ze(()=>{const l=!!(!e.hideNoData||C.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),a=n.value.length>0,r=X.filterProps(e);return i(X,I({ref:x},r,{modelValue:v.value,"onUpdate:modelValue":[t=>v.value=t,ke],focused:y.value,"onUpdate:focused":t=>y.value=t,validationValue:n.externalValue,counterValue:se.value,dirty:a,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!V.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:a?void 0:e.placeholder,"onClick:clear":de,"onMousedown:control":fe,onKeydown:he}),{...o,default:()=>i(L,null,[i(Se,I({ref:W,modelValue:c.value,"onUpdate:modelValue":t=>c.value=t,activator:"parent",contentClass:"v-combobox__content",disabled:j.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:ge,onAfterLeave:xe},e.menuProps),{default:()=>[l&&i(Fe,I({ref:q,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:t=>t.preventDefault(),onKeydown:be,onFocusin:ye,onFocusout:Ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},ve,e.listProps),{default:()=>{var t,u,m;return[(t=o["prepend-item"])==null?void 0:t.call(o),!C.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(le,{title:O(e.noDataText)},null)),i(Ie,{ref:U,renderless:!0,items:C.value},{default:w=>{var Q;let{item:d,index:S,itemRef:f}=w;const J=I(d.props,{ref:f,key:S,active:H.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((Q=o.item)==null?void 0:Q.call(o,{item:d,index:S,props:J}))??i(le,I(J,{role:"option"}),{prepend:T=>{let{isSelected:M}=T;return i(L,null,[e.multiple&&!e.hideSelected?i(Qe,{key:d.value,modelValue:M,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Je,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(Y,{icon:d.props.prependIcon},null)])},title:()=>{var T,M;return k.value?d.title:Xe(d.title,(T=re(d))==null?void 0:T.title,((M=v.value)==null?void 0:M.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((t,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(t,!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?He(_.value?o.chip({item:t,index:u,props:w}):o.selection({item:t,index:u})):void 0;if(!(d&&!S))return i("div",{key:t.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[_.value?o.chip?i(Ee,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:t.title}}},{default:()=>[S]}):i(Pe,I({key:"chip",closable:e.closableChips,size:"small",text:t.title,disabled:t.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[t.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[je(",")])])])})]),"append-inner":function(){var w;for(var t=arguments.length,u=new Array(t),m=0;m<t;m++)u[m]=arguments[m];return i(L,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(Y,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:me,onClick:qe,"aria-label":O($.value),title:O($.value),tabindex:"-1"},null):void 0])}})}),Te({isFocused:y,isPristine:k,menu:c,search:v,selectionIndex:s,filteredItems:E,select:h},x)}});export{ol as V};
@@ -0,0 +1 @@
1
+ import{m as pe,u as Ce,t as P,f as we,a as Se,V as Fe,b as Ie,d as Pe}from"./VSelect-L4v_m3ag.js";import{p as Ae,q as De,b as X}from"./VSelectionControl-BqB1JeKa.js";import{p as Re,u as _e,k as Y,l as Ee,f as Te}from"./forwardRefs-D1ZDjzWx.js";import{m as Me,u as Ne}from"./filter-xcEcgcIx.js";import{p as Le,o as Oe,g as Ke,aS as Ue,r as N,aT as A,b as Z,c as b,aU as D,aW as ee,bt as Be,u as ze,a as i,F as L,m as I,bE as He,s as je,bF as qe,bG as We,bH as $e,bI as Ge}from"./main-DCaPxp2h.js";import{a as le,g as Je}from"./VDialog-CQXjBvDZ.js";import{V as Qe}from"./VCheckboxBtn-CNMFahfF.js";function Xe(e,g,R){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(L,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,R)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+R)])]):e}const Ye=Le({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Me({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...Oe(Ae({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Re({transition:!1})},"VCombobox"),ol=Ke()({name:"VCombobox",props:Ye(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var G;let{emit:R,slots:o}=g;const{t:O}=Ue(),x=N(),y=A(!1),k=A(!0),K=A(!1),W=N(),U=N(),B=Z(e,"menu"),c=b({get:()=>B.value,set:l=>{var a;B.value&&!l&&((a=W.value)!=null&&a.ΨopenChildren.size)||(B.value=l)}}),s=A(-1);let z=!1;const ae=b(()=>{var l;return(l=x.value)==null?void 0:l.color}),$=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=Ce(e),{textColorClasses:oe,textColorStyles:ie}=_e(ae),n=Z(e,"modelValue",[],l=>ne(Ge(l)),l=>{const a=ue(l);return e.multiple?a:a[0]??null}),F=De(),_=b(()=>!!(e.chips||o.chip)),V=b(()=>_.value||!!o.selection),p=A(!e.multiple&&!V.value?((G=n.value[0])==null?void 0:G.title)??"":""),v=b({get:()=>p.value,set:l=>{var a;if(p.value=l??"",!e.multiple&&!V.value&&(n.value=[P(e,l)]),l&&e.multiple&&((a=e.delimiters)!=null&&a.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(t=>{t=t.trim(),t&&h(P(e,t))}),p.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);D(p,l=>{z?ee(()=>z=!1):y.value&&!c.value&&(c.value=!0),R("update:search",l)}),D(n,l=>{var a;!e.multiple&&!V.value&&(p.value=((a=l[0])==null?void 0:a.title)??"")});const{filteredItems:E,getMatches:re}=Ne(e,te,()=>k.value?"":v.value),C=b(()=>e.hideSelected?E.value.filter(l=>!n.value.some(a=>a.value===l.value)):E.value),ce=b(()=>n.value.map(l=>l.value)),H=b(()=>{var a;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((a=C.value[0])==null?void 0:a.title))&&C.value.length>0&&!k.value&&!K.value}),j=b(()=>e.hideNoData&&!C.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),q=N(),ve=we(q,x);function de(l){z=!0,e.openOnClear&&(c.value=!0)}function fe(){j.value||(c.value=!0)}function me(l){j.value||(y.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function be(l){var a;We(l)&&((a=x.value)==null||a.focus())}function he(l){var t;if($e(l)||e.readonly||F!=null&&F.isReadonly.value)return;const a=x.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)&&(H.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===C.value[0].value})&&h(E.value[0]),k.value=!0),l.key==="ArrowDown"&&H.value&&((t=q.value)==null||t.focus("next")),l.key==="Enter"&&v.value&&(h(P(e,v.value)),V.value&&(p.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&V.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&&a>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,x.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,x.value.setSelectionRange(0,0))}}}function ge(){var l;e.eager&&((l=U.value)==null||l.calculateVisibleItems())}function xe(){var l;y.value&&(k.value=!0,(l=x.value)==null||l.focus())}function h(l){let a=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)),t=a??!~r;if(~r){const u=t?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else t&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=a!==!1;n.value=r?[l]:[],p.value=r&&!V.value?l.title:"",ee(()=>{c.value=!1,k.value=!0})}}function ye(l){y.value=!0,setTimeout(()=>{K.value=!0})}function Ve(l){K.value=!1}function ke(l){(l==null||l===""&&!e.multiple&&!V.value)&&(n.value=[])}return D(y,(l,a)=>{if(!(l||l===a)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(P(e,v.value));return}if(!V.value)return;n.value.some(r=>{let{title:t}=r;return t===v.value})?p.value="":h(P(e,v.value))}}),D(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=C.value.findIndex(a=>n.value.some(r=>e.valueComparator(r.value,a.value)));Be&&window.requestAnimationFrame(()=>{var a;l>=0&&((a=U.value)==null||a.scrollToIndex(l))})}}),D(()=>e.items,(l,a)=>{c.value||y.value&&!a.length&&l.length&&(c.value=!0)}),ze(()=>{const l=!!(!e.hideNoData||C.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),a=n.value.length>0,r=X.filterProps(e);return i(X,I({ref:x},r,{modelValue:v.value,"onUpdate:modelValue":[t=>v.value=t,ke],focused:y.value,"onUpdate:focused":t=>y.value=t,validationValue:n.externalValue,counterValue:se.value,dirty:a,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!V.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:a?void 0:e.placeholder,"onClick:clear":de,"onMousedown:control":fe,onKeydown:he}),{...o,default:()=>i(L,null,[i(Se,I({ref:W,modelValue:c.value,"onUpdate:modelValue":t=>c.value=t,activator:"parent",contentClass:"v-combobox__content",disabled:j.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:ge,onAfterLeave:xe},e.menuProps),{default:()=>[l&&i(Fe,I({ref:q,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:t=>t.preventDefault(),onKeydown:be,onFocusin:ye,onFocusout:Ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},ve,e.listProps),{default:()=>{var t,u,m;return[(t=o["prepend-item"])==null?void 0:t.call(o),!C.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(le,{title:O(e.noDataText)},null)),i(Ie,{ref:U,renderless:!0,items:C.value},{default:w=>{var Q;let{item:d,index:S,itemRef:f}=w;const J=I(d.props,{ref:f,key:S,active:H.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((Q=o.item)==null?void 0:Q.call(o,{item:d,index:S,props:J}))??i(le,I(J,{role:"option"}),{prepend:T=>{let{isSelected:M}=T;return i(L,null,[e.multiple&&!e.hideSelected?i(Qe,{key:d.value,modelValue:M,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Je,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(Y,{icon:d.props.prependIcon},null)])},title:()=>{var T,M;return k.value?d.title:Xe(d.title,(T=re(d))==null?void 0:T.title,((M=v.value)==null?void 0:M.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((t,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(t,!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?He(_.value?o.chip({item:t,index:u,props:w}):o.selection({item:t,index:u})):void 0;if(!(d&&!S))return i("div",{key:t.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[_.value?o.chip?i(Ee,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:t.title}}},{default:()=>[S]}):i(Pe,I({key:"chip",closable:e.closableChips,size:"small",text:t.title,disabled:t.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[t.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[je(",")])])])})]),"append-inner":function(){var w;for(var t=arguments.length,u=new Array(t),m=0;m<t;m++)u[m]=arguments[m];return i(L,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(Y,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:me,onClick:qe,"aria-label":O($.value),title:O($.value),tabindex:"-1"},null):void 0])}})}),Te({isFocused:y,isPristine:k,menu:c,search:v,selectionIndex:s,filteredItems:E,select:h},x)}});export{ol as V};
@@ -0,0 +1 @@
1
+ import{bL as yt,cl as ht,g as K,bR as Yt,cb as Kt,J as ne,ca as Xt,a as y,m as W,bs as Be,p as j,u as ae,c as k,t as he,bP as le,aT as D,r as V,aU as T,cd as Jt,cm as Qt,aW as ve,bn as Ae,S as Se,aj as Fe,F as be,e as U,aM as St,i as oe,aV as fe,cn as I,bI as bt,b as ue,bu as Zt,K as Ve,aP as Ne,aQ as ze,bW as Xe,co as en,_ as wt,l as kt,v as tn,n as nn,w as Je,s as Qe,z as an,bt as ee,bi as $e,bp as X,cp as ln,b9 as Ze,bk as De,cq as Et,cr as on,cs as et,c6 as rn,br as sn,bm as cn,ct as At,c8 as un,aR as dn,cu as vn,c3 as fn}from"./main-DCaPxp2h.js";import{a as se,P as gn,s as Le,Q as mn,S as Pt,O as xt,o as He,q as je,i as We,p as Ct,I as yn,e as Ot,j as qe,M as ce,c as Ue,z as pt,b as _t,F as hn,w as Bt,A as Vt,J as Lt,d as It,K as Sn,k as Ie,l as we,N as Tt,x as bn,g as wn,R as kn,h as En,y as An,V as tt,T as nt,U as xe,W as Ce,X as at,Y as Oe,Z as lt,_ as ot,B as Pn,$ as xn,f as Cn}from"./forwardRefs-D1ZDjzWx.js";const me=new WeakMap;function On(e,a){Object.keys(a).forEach(t=>{if(yt(t)){const n=ht(t),l=me.get(e);if(a[t]==null)l==null||l.forEach(o=>{const[i,r]=o;i===n&&(e.removeEventListener(n,r),l.delete(o))});else if(!l||![...l].some(o=>o[0]===n&&o[1]===a[t])){e.addEventListener(n,a[t]);const o=l||new Set;o.add([n,a[t]]),me.has(e)||me.set(e,o)}}else a[t]==null?e.removeAttribute(t):e.setAttribute(t,a[t])})}function pn(e,a){Object.keys(a).forEach(t=>{if(yt(t)){const n=ht(t),l=me.get(e);l==null||l.forEach(o=>{const[i,r]=o;i===n&&(e.removeEventListener(n,r),l.delete(o))})}else e.removeAttribute(t)})}function _n(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"div",t=arguments.length>2?arguments[2]:void 0;return K()({name:t??Yt(Kt(e.replace(/__/g,"-"))),props:{tag:{type:String,default:a},...ne()},setup(n,l){let{slots:o}=l;return()=>{var i;return Xt(n.tag,{class:[e,n.class],style:n.style},(i=o.default)==null?void 0:i.call(o))}}})}function Mt(e){if(typeof e.getRootNode!="function"){for(;e.parentNode;)e=e.parentNode;return e!==document?null:document}const a=e.getRootNode();return a!==document&&a.getRootNode({composed:!0})!==document?null:a}function Bn(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;for(;e;){if(a?Vn(e):Ge(e))return e;e=e.parentElement}return document.scrollingElement}function ke(e,a){const t=[];if(a&&e&&!a.contains(e))return t;for(;e&&(Ge(e)&&t.push(e),e!==a);)e=e.parentElement;return t}function Ge(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;const a=window.getComputedStyle(e);return a.overflowY==="scroll"||a.overflowY==="auto"&&e.scrollHeight>e.clientHeight}function Vn(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;const a=window.getComputedStyle(e);return["scroll","auto"].includes(a.overflowY)}function Ln(e){for(;e;){if(window.getComputedStyle(e).position==="fixed")return!0;e=e.offsetParent}return!1}const In=j({target:[Object,Array]},"v-dialog-transition"),Tn=K()({name:"VDialogTransition",props:In(),setup(e,a){let{slots:t}=a;const n={onBeforeEnter(l){l.style.pointerEvents="none",l.style.visibility="hidden"},async onEnter(l,o){var b;await new Promise(f=>requestAnimationFrame(f)),await new Promise(f=>requestAnimationFrame(f)),l.style.visibility="";const{x:i,y:r,sx:v,sy:d,speed:c}=rt(e.target,l),g=se(l,[{transform:`translate(${i}px, ${r}px) scale(${v}, ${d})`,opacity:0},{}],{duration:225*c,easing:gn});(b=it(l))==null||b.forEach(f=>{se(f,[{opacity:0},{opacity:0,offset:.33},{}],{duration:225*2*c,easing:Le})}),g.finished.then(()=>o())},onAfterEnter(l){l.style.removeProperty("pointer-events")},onBeforeLeave(l){l.style.pointerEvents="none"},async onLeave(l,o){var b;await new Promise(f=>requestAnimationFrame(f));const{x:i,y:r,sx:v,sy:d,speed:c}=rt(e.target,l);se(l,[{},{transform:`translate(${i}px, ${r}px) scale(${v}, ${d})`,opacity:0}],{duration:125*c,easing:mn}).finished.then(()=>o()),(b=it(l))==null||b.forEach(f=>{se(f,[{},{opacity:0,offset:.2},{opacity:0}],{duration:125*2*c,easing:Le})})},onAfterLeave(l){l.style.removeProperty("pointer-events")}};return()=>e.target?y(Be,W({name:"dialog-transition"},n,{css:!1}),t):y(Be,{name:"dialog-transition"},t)}});function it(e){var t;const a=(t=e.querySelector(":scope > .v-card, :scope > .v-sheet, :scope > .v-list"))==null?void 0:t.children;return a&&[...a]}function rt(e,a){const t=Pt(e),n=xt(a),[l,o]=getComputedStyle(a).transformOrigin.split(" ").map(E=>parseFloat(E)),[i,r]=getComputedStyle(a).getPropertyValue("--v-overlay-anchor-origin").split(" ");let v=t.left+t.width/2;i==="left"||r==="left"?v-=t.width/2:(i==="right"||r==="right")&&(v+=t.width/2);let d=t.top+t.height/2;i==="top"||r==="top"?d-=t.height/2:(i==="bottom"||r==="bottom")&&(d+=t.height/2);const c=t.width/n.width,g=t.height/n.height,b=Math.max(1,c,g),f=c/b||0,s=g/b||0,u=n.width*n.height/(window.innerWidth*window.innerHeight),h=u>.12?Math.min(1.5,(u-.12)*10+1):1;return{x:v-(l+n.left),y:d-(o+n.top),sx:f,sy:s,speed:h}}function Mn(e){return{aspectStyles:k(()=>{const a=Number(e.aspectRatio);return a?{paddingBottom:String(1/a*100)+"%"}:void 0})}}const Rt=j({aspectRatio:[String,Number],contentClass:null,inline:Boolean,...ne(),...He()},"VResponsive"),st=K()({name:"VResponsive",props:Rt(),setup(e,a){let{slots:t}=a;const{aspectStyles:n}=Mn(e),{dimensionStyles:l}=je(e);return ae(()=>{var o;return y("div",{class:["v-responsive",{"v-responsive--inline":e.inline},e.class],style:[l.value,e.style]},[y("div",{class:"v-responsive__sizer",style:n.value},null),(o=t.additional)==null?void 0:o.call(t),t.default&&y("div",{class:["v-responsive__content",e.contentClass]},[t.default()])])}),{}}}),Rn=j({absolute:Boolean,alt:String,cover:Boolean,color:String,draggable:{type:[Boolean,String],default:void 0},eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},sizes:String,src:{type:[String,Object],default:""},crossorigin:String,referrerpolicy:String,srcset:String,position:String,...Rt(),...ne(),...We(),...Ct()},"VImg"),Fn=K()({name:"VImg",directives:{intersect:yn},props:Rn(),emits:{loadstart:e=>!0,load:e=>!0,error:e=>!0},setup(e,a){let{emit:t,slots:n}=a;const{backgroundColorClasses:l,backgroundColorStyles:o}=Ot(he(e,"color")),{roundedClasses:i}=qe(e),r=le("VImg"),v=D(""),d=V(),c=D(e.eager?"loading":"idle"),g=D(),b=D(),f=k(()=>e.src&&typeof e.src=="object"?{src:e.src.src,srcset:e.srcset||e.src.srcset,lazySrc:e.lazySrc||e.src.lazySrc,aspect:Number(e.aspectRatio||e.src.aspect||0)}:{src:e.src,srcset:e.srcset,lazySrc:e.lazySrc,aspect:Number(e.aspectRatio||0)}),s=k(()=>f.value.aspect||g.value/b.value||0);T(()=>e.src,()=>{u(c.value!=="idle")}),T(s,(S,w)=>{!S&&w&&d.value&&p(d.value)}),Jt(()=>u());function u(S){if(!(e.eager&&S)&&!(Qt&&!S&&!e.eager)){if(c.value="loading",f.value.lazySrc){const w=new Image;w.src=f.value.lazySrc,p(w,null)}f.value.src&&ve(()=>{var w;t("loadstart",((w=d.value)==null?void 0:w.currentSrc)||f.value.src),setTimeout(()=>{var A;if(!r.isUnmounted)if((A=d.value)!=null&&A.complete){if(d.value.naturalWidth||E(),c.value==="error")return;s.value||p(d.value,null),c.value==="loading"&&h()}else s.value||p(d.value),P()})})}}function h(){var S;r.isUnmounted||(P(),p(d.value),c.value="loaded",t("load",((S=d.value)==null?void 0:S.currentSrc)||f.value.src))}function E(){var S;r.isUnmounted||(c.value="error",t("error",((S=d.value)==null?void 0:S.currentSrc)||f.value.src))}function P(){const S=d.value;S&&(v.value=S.currentSrc||S.src)}let x=-1;Ae(()=>{clearTimeout(x)});function p(S){let w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:100;const A=()=>{if(clearTimeout(x),r.isUnmounted)return;const{naturalHeight:N,naturalWidth:z}=S;N||z?(g.value=z,b.value=N):!S.complete&&c.value==="loading"&&w!=null?x=window.setTimeout(A,w):(S.currentSrc.endsWith(".svg")||S.currentSrc.startsWith("data:image/svg+xml"))&&(g.value=1,b.value=1)};A()}const _=k(()=>({"v-img__img--cover":e.cover,"v-img__img--contain":!e.cover})),F=()=>{var A;if(!f.value.src||c.value==="idle")return null;const S=y("img",{class:["v-img__img",_.value],style:{objectPosition:e.position},src:f.value.src,srcset:f.value.srcset,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable,sizes:e.sizes,ref:d,onLoad:h,onError:E},null),w=(A=n.sources)==null?void 0:A.call(n);return y(ce,{transition:e.transition,appear:!0},{default:()=>[Se(w?y("picture",{class:"v-img__picture"},[w,S]):S,[[St,c.value==="loaded"]])]})},L=()=>y(ce,{transition:e.transition},{default:()=>[f.value.lazySrc&&c.value!=="loaded"&&y("img",{class:["v-img__img","v-img__img--preload",_.value],style:{objectPosition:e.position},src:f.value.lazySrc,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable},null)]}),m=()=>n.placeholder?y(ce,{transition:e.transition,appear:!0},{default:()=>[(c.value==="loading"||c.value==="error"&&!n.error)&&y("div",{class:"v-img__placeholder"},[n.placeholder()])]}):null,M=()=>n.error?y(ce,{transition:e.transition,appear:!0},{default:()=>[c.value==="error"&&y("div",{class:"v-img__error"},[n.error()])]}):null,te=()=>e.gradient?y("div",{class:"v-img__gradient",style:{backgroundImage:`linear-gradient(${e.gradient})`}},null):null,B=D(!1);{const S=T(s,w=>{w&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{B.value=!0})}),S())})}return ae(()=>{const S=st.filterProps(e);return Se(y(st,W({class:["v-img",{"v-img--absolute":e.absolute,"v-img--booting":!B.value},l.value,i.value,e.class],style:[{width:U(e.width==="auto"?g.value:e.width)},o.value,e.style]},S,{aspectRatio:s.value,"aria-label":e.alt,role:e.alt?"img":void 0}),{additional:()=>y(be,null,[y(F,null,null),y(L,null,null),y(te,null,null),y(m,null,null),y(M,null,null)]),default:n.default}),[[Fe("intersect"),{handler:u,options:e.options},null,{once:!0}]])}),{currentSrc:v,image:d,state:c,naturalWidth:g,naturalHeight:b}}}),Nn=j({eager:Boolean},"lazy");function zn(e,a){const t=D(!1),n=k(()=>t.value||e.eager||a.value);T(a,()=>t.value=!0);function l(){e.eager||(t.value=!1)}return{isBooted:t,hasContent:n,onAfterLeave:l}}function Ft(){const a=le("useScopeId").vnode.scopeId;return{scopeId:a?{[a]:""}:void 0}}const Te=Symbol.for("vuetify:list");function Ta(){const e=oe(Te,{hasPrepend:D(!1),updateHasPrepend:()=>null}),a={hasPrepend:D(!1),updateHasPrepend:t=>{t&&(a.hasPrepend.value=t)}};return fe(Te,a),e}function $n(){return oe(Te,null)}const Ye=e=>{const a={activate:t=>{let{id:n,value:l,activated:o}=t;return n=I(n),e&&!l&&o.size===1&&o.has(n)||(l?o.add(n):o.delete(n)),o},in:(t,n,l)=>{let o=new Set;if(t!=null)for(const i of bt(t))o=a.activate({id:i,value:!0,activated:new Set(o),children:n,parents:l});return o},out:t=>Array.from(t)};return a},Nt=e=>{const a=Ye(e);return{activate:n=>{let{activated:l,id:o,...i}=n;o=I(o);const r=l.has(o)?new Set([o]):new Set;return a.activate({...i,id:o,activated:r})},in:(n,l,o)=>{let i=new Set;if(n!=null){const r=bt(n);r.length&&(i=a.in(r.slice(0,1),l,o))}return i},out:(n,l,o)=>a.out(n,l,o)}},Dn=e=>{const a=Ye(e);return{activate:n=>{let{id:l,activated:o,children:i,...r}=n;return l=I(l),i.has(l)?o:a.activate({id:l,activated:o,children:i,...r})},in:a.in,out:a.out}},Hn=e=>{const a=Nt(e);return{activate:n=>{let{id:l,activated:o,children:i,...r}=n;return l=I(l),i.has(l)?o:a.activate({id:l,activated:o,children:i,...r})},in:a.in,out:a.out}},jn={open:e=>{let{id:a,value:t,opened:n,parents:l}=e;if(t){const o=new Set;o.add(a);let i=l.get(a);for(;i!=null;)o.add(i),i=l.get(i);return o}else return n.delete(a),n},select:()=>null},zt={open:e=>{let{id:a,value:t,opened:n,parents:l}=e;if(t){let o=l.get(a);for(n.add(a);o!=null&&o!==a;)n.add(o),o=l.get(o);return n}else n.delete(a);return n},select:()=>null},Wn={open:zt.open,select:e=>{let{id:a,value:t,opened:n,parents:l}=e;if(!t)return n;const o=[];let i=l.get(a);for(;i!=null;)o.push(i),i=l.get(i);return new Set(o)}},Ke=e=>{const a={select:t=>{let{id:n,value:l,selected:o}=t;if(n=I(n),e&&!l){const i=Array.from(o.entries()).reduce((r,v)=>{let[d,c]=v;return c==="on"&&r.push(d),r},[]);if(i.length===1&&i[0]===n)return o}return o.set(n,l?"on":"off"),o},in:(t,n,l)=>{let o=new Map;for(const i of t||[])o=a.select({id:i,value:!0,selected:new Map(o),children:n,parents:l});return o},out:t=>{const n=[];for(const[l,o]of t.entries())o==="on"&&n.push(l);return n}};return a},$t=e=>{const a=Ke(e);return{select:n=>{let{selected:l,id:o,...i}=n;o=I(o);const r=l.has(o)?new Map([[o,l.get(o)]]):new Map;return a.select({...i,id:o,selected:r})},in:(n,l,o)=>{let i=new Map;return n!=null&&n.length&&(i=a.in(n.slice(0,1),l,o)),i},out:(n,l,o)=>a.out(n,l,o)}},qn=e=>{const a=Ke(e);return{select:n=>{let{id:l,selected:o,children:i,...r}=n;return l=I(l),i.has(l)?o:a.select({id:l,selected:o,children:i,...r})},in:a.in,out:a.out}},Un=e=>{const a=$t(e);return{select:n=>{let{id:l,selected:o,children:i,...r}=n;return l=I(l),i.has(l)?o:a.select({id:l,selected:o,children:i,...r})},in:a.in,out:a.out}},Gn=e=>{const a={select:t=>{let{id:n,value:l,selected:o,children:i,parents:r}=t;n=I(n);const v=new Map(o),d=[n];for(;d.length;){const g=d.shift();o.set(I(g),l?"on":"off"),i.has(g)&&d.push(...i.get(g))}let c=I(r.get(n));for(;c;){const g=i.get(c),b=g.every(s=>o.get(I(s))==="on"),f=g.every(s=>!o.has(I(s))||o.get(I(s))==="off");o.set(c,b?"on":f?"off":"indeterminate"),c=I(r.get(c))}return e&&!l&&Array.from(o.entries()).reduce((b,f)=>{let[s,u]=f;return u==="on"&&b.push(s),b},[]).length===0?v:o},in:(t,n,l)=>{let o=new Map;for(const i of t||[])o=a.select({id:i,value:!0,selected:new Map(o),children:n,parents:l});return o},out:(t,n)=>{const l=[];for(const[o,i]of t.entries())i==="on"&&!n.has(o)&&l.push(o);return l}};return a},de=Symbol.for("vuetify:nested"),Dt={id:D(),root:{register:()=>null,unregister:()=>null,parents:V(new Map),children:V(new Map),open:()=>null,openOnSelect:()=>null,activate:()=>null,select:()=>null,activatable:V(!1),selectable:V(!1),opened:V(new Set),activated:V(new Set),selected:V(new Map),selectedValues:V([]),getPath:()=>[]}},Ma=j({activatable:Boolean,selectable:Boolean,activeStrategy:[String,Function,Object],selectStrategy:[String,Function,Object],openStrategy:[String,Object],opened:null,activated:null,selected:null,mandatory:Boolean},"nested"),Ra=e=>{let a=!1;const t=V(new Map),n=V(new Map),l=ue(e,"opened",e.opened,s=>new Set(s),s=>[...s.values()]),o=k(()=>{if(typeof e.activeStrategy=="object")return e.activeStrategy;if(typeof e.activeStrategy=="function")return e.activeStrategy(e.mandatory);switch(e.activeStrategy){case"leaf":return Dn(e.mandatory);case"single-leaf":return Hn(e.mandatory);case"independent":return Ye(e.mandatory);case"single-independent":default:return Nt(e.mandatory)}}),i=k(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;if(typeof e.selectStrategy=="function")return e.selectStrategy(e.mandatory);switch(e.selectStrategy){case"single-leaf":return Un(e.mandatory);case"leaf":return qn(e.mandatory);case"independent":return Ke(e.mandatory);case"single-independent":return $t(e.mandatory);case"classic":default:return Gn(e.mandatory)}}),r=k(()=>{if(typeof e.openStrategy=="object")return e.openStrategy;switch(e.openStrategy){case"list":return Wn;case"single":return jn;case"multiple":default:return zt}}),v=ue(e,"activated",e.activated,s=>o.value.in(s,t.value,n.value),s=>o.value.out(s,t.value,n.value)),d=ue(e,"selected",e.selected,s=>i.value.in(s,t.value,n.value),s=>i.value.out(s,t.value,n.value));Ae(()=>{a=!0});function c(s){const u=[];let h=s;for(;h!=null;)u.unshift(h),h=n.value.get(h);return u}const g=le("nested"),b=new Set,f={id:D(),root:{opened:l,activatable:he(e,"activatable"),selectable:he(e,"selectable"),activated:v,selected:d,selectedValues:k(()=>{const s=[];for(const[u,h]of d.value.entries())h==="on"&&s.push(u);return s}),register:(s,u,h)=>{if(b.has(s)){c(s).map(String).join(" -> "),c(u).concat(s).map(String).join(" -> ");return}else b.add(s);u&&s!==u&&n.value.set(s,u),h&&t.value.set(s,[]),u!=null&&t.value.set(u,[...t.value.get(u)||[],s])},unregister:s=>{if(a)return;b.delete(s),t.value.delete(s);const u=n.value.get(s);if(u){const h=t.value.get(u)??[];t.value.set(u,h.filter(E=>E!==s))}n.value.delete(s)},open:(s,u,h)=>{g.emit("click:open",{id:s,value:u,path:c(s),event:h});const E=r.value.open({id:s,value:u,opened:new Set(l.value),children:t.value,parents:n.value,event:h});E&&(l.value=E)},openOnSelect:(s,u,h)=>{const E=r.value.select({id:s,value:u,selected:new Map(d.value),opened:new Set(l.value),children:t.value,parents:n.value,event:h});E&&(l.value=E)},select:(s,u,h)=>{g.emit("click:select",{id:s,value:u,path:c(s),event:h});const E=i.value.select({id:s,value:u,selected:new Map(d.value),children:t.value,parents:n.value,event:h});E&&(d.value=E),f.root.openOnSelect(s,u,h)},activate:(s,u,h)=>{if(!e.activatable)return f.root.select(s,!0,h);g.emit("click:activate",{id:s,value:u,path:c(s),event:h});const E=o.value.activate({id:s,value:u,activated:new Set(v.value),children:t.value,parents:n.value,event:h});E&&(v.value=E)},children:t,parents:n,getPath:c}};return fe(de,f),f.root},Yn=(e,a)=>{const t=oe(de,Dt),n=Symbol(Zt()),l=k(()=>e.value!==void 0?e.value:n),o={...t,id:l,open:(i,r)=>t.root.open(l.value,i,r),openOnSelect:(i,r)=>t.root.openOnSelect(l.value,i,r),isOpen:k(()=>t.root.opened.value.has(l.value)),parent:k(()=>t.root.parents.value.get(l.value)),activate:(i,r)=>t.root.activate(l.value,i,r),isActivated:k(()=>t.root.activated.value.has(I(l.value))),select:(i,r)=>t.root.select(l.value,i,r),isSelected:k(()=>t.root.selected.value.get(I(l.value))==="on"),isIndeterminate:k(()=>t.root.selected.value.get(l.value)==="indeterminate"),isLeaf:k(()=>!t.root.children.value.get(l.value)),isGroupActivator:t.isGroupActivator};return!t.isGroupActivator&&t.root.register(l.value,t.id.value,a),Ae(()=>{!t.isGroupActivator&&t.root.unregister(l.value)}),a&&fe(de,o),o},Fa=()=>{const e=oe(de,Dt);fe(de,{...e,isGroupActivator:!0})},Kn=j({opacity:[Number,String],...ne(),...Ue()},"VListItemSubtitle"),Xn=K()({name:"VListItemSubtitle",props:Kn(),setup(e,a){let{slots:t}=a;return ae(()=>y(e.tag,{class:["v-list-item-subtitle",e.class],style:[{"--v-list-item-subtitle-opacity":e.opacity},e.style]},t)),{}}}),Jn=_n("v-list-item-title"),Qn=j({start:Boolean,end:Boolean,icon:Ve,image:String,text:String,...pt(),...ne(),..._t(),...We(),...hn(),...Ue(),...Ne(),...Bt({variant:"flat"})},"VAvatar"),ct=K()({name:"VAvatar",props:Qn(),setup(e,a){let{slots:t}=a;const{themeClasses:n}=ze(e),{borderClasses:l}=Vt(e),{colorClasses:o,colorStyles:i,variantClasses:r}=Lt(e),{densityClasses:v}=It(e),{roundedClasses:d}=qe(e),{sizeClasses:c,sizeStyles:g}=Sn(e);return ae(()=>y(e.tag,{class:["v-avatar",{"v-avatar--start":e.start,"v-avatar--end":e.end},n.value,l.value,o.value,v.value,d.value,c.value,r.value,e.class],style:[i.value,g.value,e.style]},{default:()=>[t.default?y(we,{key:"content-defaults",defaults:{VImg:{cover:!0,src:e.image},VIcon:{icon:e.icon}}},{default:()=>[t.default()]}):e.image?y(Fn,{key:"image",src:e.image,alt:"",cover:!0},null):e.icon?y(Ie,{key:"icon",icon:e.icon},null):e.text,Tt(!1,"v-avatar")]})),{}}}),Zn=j({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:Ve,baseColor:String,disabled:Boolean,lines:[Boolean,String],link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:Ve,ripple:{type:[Boolean,Object],default:!0},slim:Boolean,subtitle:[String,Number],title:[String,Number],value:null,onClick:Xe(),onClickOnce:Xe(),...pt(),...ne(),..._t(),...He(),...bn(),...We(),...wn(),...Ue(),...Ne(),...Bt({variant:"text"})},"VListItem"),ea=K()({name:"VListItem",directives:{Ripple:kn},props:Zn(),emits:{click:e=>!0},setup(e,a){let{attrs:t,slots:n,emit:l}=a;const o=En(e,t),i=k(()=>e.value===void 0?o.href.value:e.value),{activate:r,isActivated:v,select:d,isOpen:c,isSelected:g,isIndeterminate:b,isGroupActivator:f,root:s,parent:u,openOnSelect:h,id:E}=Yn(i,!1),P=$n(),x=k(()=>{var O;return e.active!==!1&&(e.active||((O=o.isActive)==null?void 0:O.value)||(s.activatable.value?v.value:g.value))}),p=k(()=>e.link!==!1&&o.isLink.value),_=k(()=>!e.disabled&&e.link!==!1&&(e.link||o.isClickable.value||!!P&&(s.selectable.value||s.activatable.value||e.value!=null))),F=k(()=>e.rounded||e.nav),L=k(()=>e.color??e.activeColor),m=k(()=>({color:x.value?L.value??e.baseColor:e.baseColor,variant:e.variant}));T(()=>{var O;return(O=o.isActive)==null?void 0:O.value},O=>{O&&u.value!=null&&s.open(u.value,!0),O&&h(O)},{immediate:!0});const{themeClasses:M}=ze(e),{borderClasses:te}=Vt(e),{colorClasses:B,colorStyles:S,variantClasses:w}=Lt(m),{densityClasses:A}=It(e),{dimensionStyles:N}=je(e),{elevationClasses:z}=An(e),{roundedClasses:J}=qe(F),R=k(()=>e.lines?`v-list-item--${e.lines}-line`:void 0),q=k(()=>({isActive:x.value,select:d,isOpen:c.value,isSelected:g.value,isIndeterminate:b.value}));function Q(O){var G;l("click",O),_.value&&((G=o.navigate)==null||G.call(o,O),!f&&(s.activatable.value?r(!v.value,O):(s.selectable.value||e.value!=null)&&d(!g.value,O)))}function Z(O){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),O.target.dispatchEvent(new MouseEvent("click",O)))}return ae(()=>{const O=p.value?"a":e.tag,G=n.title||e.title!=null,Pe=n.subtitle||e.subtitle!=null,ge=!!(e.appendAvatar||e.appendIcon),C=!!(ge||n.append),$=!!(e.prependAvatar||e.prependIcon),Y=!!($||n.prepend);return P==null||P.updateHasPrepend(Y),e.activeColor&&en("active-color",["color","base-color"]),Se(y(O,W({class:["v-list-item",{"v-list-item--active":x.value,"v-list-item--disabled":e.disabled,"v-list-item--link":_.value,"v-list-item--nav":e.nav,"v-list-item--prepend":!Y&&(P==null?void 0:P.hasPrepend.value),"v-list-item--slim":e.slim,[`${e.activeClass}`]:e.activeClass&&x.value},M.value,te.value,B.value,A.value,z.value,R.value,J.value,w.value,e.class],style:[S.value,N.value,e.style],tabindex:_.value?P?-2:0:void 0,"aria-selected":s.activatable.value?v.value:g.value,onClick:Q,onKeydown:_.value&&!p.value&&Z},o.linkProps),{default:()=>{var ie;return[Tt(_.value||x.value,"v-list-item"),Y&&y("div",{key:"prepend",class:"v-list-item__prepend"},[n.prepend?y(we,{key:"prepend-defaults",disabled:!$,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon},VListItemAction:{start:!0}}},{default:()=>{var H;return[(H=n.prepend)==null?void 0:H.call(n,q.value)]}}):y(be,null,[e.prependAvatar&&y(ct,{key:"prepend-avatar",density:e.density,image:e.prependAvatar},null),e.prependIcon&&y(Ie,{key:"prepend-icon",density:e.density,icon:e.prependIcon},null)]),y("div",{class:"v-list-item__spacer"},null)]),y("div",{class:"v-list-item__content","data-no-activator":""},[G&&y(Jn,{key:"title"},{default:()=>{var H;return[((H=n.title)==null?void 0:H.call(n,{title:e.title}))??e.title]}}),Pe&&y(Xn,{key:"subtitle"},{default:()=>{var H;return[((H=n.subtitle)==null?void 0:H.call(n,{subtitle:e.subtitle}))??e.subtitle]}}),(ie=n.default)==null?void 0:ie.call(n,q.value)]),C&&y("div",{key:"append",class:"v-list-item__append"},[n.append?y(we,{key:"append-defaults",disabled:!ge,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon},VListItemAction:{end:!0}}},{default:()=>{var H;return[(H=n.append)==null?void 0:H.call(n,q.value)]}}):y(be,null,[e.appendIcon&&y(Ie,{key:"append-icon",density:e.density,icon:e.appendIcon},null),e.appendAvatar&&y(ct,{key:"append-avatar",density:e.density,image:e.appendAvatar},null)]),y("div",{class:"v-list-item__spacer"},null)])]}}),[[Fe("ripple"),_.value&&e.ripple]])}),{activate:r,isActivated:v,isGroupActivator:f,isSelected:g,list:P,select:d,root:s,id:E}}}),ta={name:"CodexListItem"};function na(e,a,t,n,l,o){return kt(),tn(ea,{class:"codexListItem",slim:"",compact:""})}const Na=wt(ta,[["render",na],["__scopeId","data-v-6fce5087"]]),aa={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},la={class:"confirmFooter"};function oa(e,a,t,n,l,o){return kt(),nn("footer",la,[y(tt,{class:"confirmButton",disabled:t.disabled,onClick:a[0]||(a[0]=i=>e.$emit("confirm"))},{default:Je(()=>[Qe(an(t.confirmText),1)]),_:1},8,["disabled"]),y(tt,{class:"cancelButton",onClick:a[1]||(a[1]=i=>e.$emit("cancel"))},{default:Je(()=>a[2]||(a[2]=[Qe(" Cancel ")])),_:1})])}const za=wt(aa,[["render",oa],["__scopeId","data-v-24df1550"]]);function pe(e,a){return{x:e.x+a.x,y:e.y+a.y}}function ia(e,a){return{x:e.x-a.x,y:e.y-a.y}}function ut(e,a){if(e.side==="top"||e.side==="bottom"){const{side:t,align:n}=e,l=n==="left"?0:n==="center"?a.width/2:n==="right"?a.width:n,o=t==="top"?0:t==="bottom"?a.height:t;return pe({x:l,y:o},a)}else if(e.side==="left"||e.side==="right"){const{side:t,align:n}=e,l=t==="left"?0:t==="right"?a.width:t,o=n==="top"?0:n==="center"?a.height/2:n==="bottom"?a.height:n;return pe({x:l,y:o},a)}return pe({x:a.width/2,y:a.height/2},a)}const Ht={static:ca,connected:da},ra=j({locationStrategy:{type:[String,Function],default:"static",validator:e=>typeof e=="function"||e in Ht},location:{type:String,default:"bottom"},origin:{type:String,default:"auto"},offset:[Number,String,Array]},"VOverlay-location-strategies");function sa(e,a){const t=V({}),n=V();ee&&$e(()=>!!(a.isActive.value&&e.locationStrategy),o=>{var i,r;T(()=>e.locationStrategy,o),X(()=>{window.removeEventListener("resize",l),n.value=void 0}),window.addEventListener("resize",l,{passive:!0}),typeof e.locationStrategy=="function"?n.value=(i=e.locationStrategy(a,e,t))==null?void 0:i.updateLocation:n.value=(r=Ht[e.locationStrategy](a,e,t))==null?void 0:r.updateLocation});function l(o){var i;(i=n.value)==null||i.call(n,o)}return{contentStyles:t,updateLocation:n}}function ca(){}function ua(e,a){const t=xt(e);return a?t.x+=parseFloat(e.style.right||0):t.x-=parseFloat(e.style.left||0),t.y-=parseFloat(e.style.top||0),t}function da(e,a,t){(Array.isArray(e.target.value)||Ln(e.target.value))&&Object.assign(t.value,{position:"fixed",top:0,[e.isRtl.value?"right":"left"]:0});const{preferredAnchor:l,preferredOrigin:o}=ln(()=>{const s=nt(a.location,e.isRtl.value),u=a.origin==="overlap"?s:a.origin==="auto"?xe(s):nt(a.origin,e.isRtl.value);return s.side===u.side&&s.align===Ce(u).align?{preferredAnchor:at(s),preferredOrigin:at(u)}:{preferredAnchor:s,preferredOrigin:u}}),[i,r,v,d]=["minWidth","minHeight","maxWidth","maxHeight"].map(s=>k(()=>{const u=parseFloat(a[s]);return isNaN(u)?1/0:u})),c=k(()=>{if(Array.isArray(a.offset))return a.offset;if(typeof a.offset=="string"){const s=a.offset.split(" ").map(parseFloat);return s.length<2&&s.push(0),s}return typeof a.offset=="number"?[a.offset,0]:[0,0]});let g=!1;const b=new ResizeObserver(()=>{g&&f()});T([e.target,e.contentEl],(s,u)=>{let[h,E]=s,[P,x]=u;P&&!Array.isArray(P)&&b.unobserve(P),h&&!Array.isArray(h)&&b.observe(h),x&&b.unobserve(x),E&&b.observe(E)},{immediate:!0}),X(()=>{b.disconnect()});function f(){if(g=!1,requestAnimationFrame(()=>g=!0),!e.target.value||!e.contentEl.value)return;const s=Pt(e.target.value),u=ua(e.contentEl.value,e.isRtl.value),h=ke(e.contentEl.value),E=12;h.length||(h.push(document.documentElement),e.contentEl.value.style.top&&e.contentEl.value.style.left||(u.x-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-x")||0),u.y-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-y")||0)));const P=h.reduce((B,S)=>{const w=S.getBoundingClientRect(),A=new Oe({x:S===document.documentElement?0:w.x,y:S===document.documentElement?0:w.y,width:S.clientWidth,height:S.clientHeight});return B?new Oe({x:Math.max(B.left,A.left),y:Math.max(B.top,A.top),width:Math.min(B.right,A.right)-Math.max(B.left,A.left),height:Math.min(B.bottom,A.bottom)-Math.max(B.top,A.top)}):A},void 0);P.x+=E,P.y+=E,P.width-=E*2,P.height-=E*2;let x={anchor:l.value,origin:o.value};function p(B){const S=new Oe(u),w=ut(B.anchor,s),A=ut(B.origin,S);let{x:N,y:z}=ia(w,A);switch(B.anchor.side){case"top":z-=c.value[0];break;case"bottom":z+=c.value[0];break;case"left":N-=c.value[0];break;case"right":N+=c.value[0];break}switch(B.anchor.align){case"top":z-=c.value[1];break;case"bottom":z+=c.value[1];break;case"left":N-=c.value[1];break;case"right":N+=c.value[1];break}return S.x+=N,S.y+=z,S.width=Math.min(S.width,v.value),S.height=Math.min(S.height,d.value),{overflows:ot(S,P),x:N,y:z}}let _=0,F=0;const L={x:0,y:0},m={x:!1,y:!1};let M=-1;for(;!(M++>10);){const{x:B,y:S,overflows:w}=p(x);_+=B,F+=S,u.x+=B,u.y+=S;{const A=lt(x.anchor),N=w.x.before||w.x.after,z=w.y.before||w.y.after;let J=!1;if(["x","y"].forEach(R=>{if(R==="x"&&N&&!m.x||R==="y"&&z&&!m.y){const q={anchor:{...x.anchor},origin:{...x.origin}},Q=R==="x"?A==="y"?Ce:xe:A==="y"?xe:Ce;q.anchor=Q(q.anchor),q.origin=Q(q.origin);const{overflows:Z}=p(q);(Z[R].before<=w[R].before&&Z[R].after<=w[R].after||Z[R].before+Z[R].after<(w[R].before+w[R].after)/2)&&(x=q,J=m[R]=!0)}}),J)continue}w.x.before&&(_+=w.x.before,u.x+=w.x.before),w.x.after&&(_-=w.x.after,u.x-=w.x.after),w.y.before&&(F+=w.y.before,u.y+=w.y.before),w.y.after&&(F-=w.y.after,u.y-=w.y.after);{const A=ot(u,P);L.x=P.width-A.x.before-A.x.after,L.y=P.height-A.y.before-A.y.after,_+=A.x.before,u.x+=A.x.before,F+=A.y.before,u.y+=A.y.before}break}const te=lt(x.anchor);return Object.assign(t.value,{"--v-overlay-anchor-origin":`${x.anchor.side} ${x.anchor.align}`,transformOrigin:`${x.origin.side} ${x.origin.align}`,top:U(_e(F)),left:e.isRtl.value?void 0:U(_e(_)),right:e.isRtl.value?U(_e(-_)):void 0,minWidth:U(te==="y"?Math.min(i.value,s.width):i.value),maxWidth:U(dt(Ze(L.x,i.value===1/0?0:i.value,v.value))),maxHeight:U(dt(Ze(L.y,r.value===1/0?0:r.value,d.value)))}),{available:L,contentBox:u}}return T(()=>[l.value,o.value,a.offset,a.minWidth,a.minHeight,a.maxWidth,a.maxHeight],()=>f()),ve(()=>{const s=f();if(!s)return;const{available:u,contentBox:h}=s;h.height>u.y&&requestAnimationFrame(()=>{f(),requestAnimationFrame(()=>{f()})})}),{updateLocation:f}}function _e(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function dt(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}let Me=!0;const Ee=[];function va(e){!Me||Ee.length?(Ee.push(e),Re()):(Me=!1,e(),Re())}let vt=-1;function Re(){cancelAnimationFrame(vt),vt=requestAnimationFrame(()=>{const e=Ee.shift();e&&e(),Ee.length?Re():Me=!0})}const ye={none:null,close:ma,block:ya,reposition:ha},fa=j({scrollStrategy:{type:[String,Function],default:"block",validator:e=>typeof e=="function"||e in ye}},"VOverlay-scroll-strategies");function ga(e,a){if(!ee)return;let t;De(async()=>{t==null||t.stop(),a.isActive.value&&e.scrollStrategy&&(t=Et(),await new Promise(n=>setTimeout(n)),t.active&&t.run(()=>{var n;typeof e.scrollStrategy=="function"?e.scrollStrategy(a,e,t):(n=ye[e.scrollStrategy])==null||n.call(ye,a,e,t)}))}),X(()=>{t==null||t.stop()})}function ma(e){function a(t){e.isActive.value=!1}jt(e.targetEl.value??e.contentEl.value,a)}function ya(e,a){var i;const t=(i=e.root.value)==null?void 0:i.offsetParent,n=[...new Set([...ke(e.targetEl.value,a.contained?t:void 0),...ke(e.contentEl.value,a.contained?t:void 0)])].filter(r=>!r.classList.contains("v-overlay-scroll-blocked")),l=window.innerWidth-document.documentElement.offsetWidth,o=(r=>Ge(r)&&r)(t||document.documentElement);o&&e.root.value.classList.add("v-overlay--scroll-blocked"),n.forEach((r,v)=>{r.style.setProperty("--v-body-scroll-x",U(-r.scrollLeft)),r.style.setProperty("--v-body-scroll-y",U(-r.scrollTop)),r!==document.documentElement&&r.style.setProperty("--v-scrollbar-offset",U(l)),r.classList.add("v-overlay-scroll-blocked")}),X(()=>{n.forEach((r,v)=>{const d=parseFloat(r.style.getPropertyValue("--v-body-scroll-x")),c=parseFloat(r.style.getPropertyValue("--v-body-scroll-y")),g=r.style.scrollBehavior;r.style.scrollBehavior="auto",r.style.removeProperty("--v-body-scroll-x"),r.style.removeProperty("--v-body-scroll-y"),r.style.removeProperty("--v-scrollbar-offset"),r.classList.remove("v-overlay-scroll-blocked"),r.scrollLeft=-d,r.scrollTop=-c,r.style.scrollBehavior=g}),o&&e.root.value.classList.remove("v-overlay--scroll-blocked")})}function ha(e,a,t){let n=!1,l=-1,o=-1;function i(r){va(()=>{var c,g;const v=performance.now();(g=(c=e.updateLocation).value)==null||g.call(c,r),n=(performance.now()-v)/(1e3/60)>2})}o=(typeof requestIdleCallback>"u"?r=>r():requestIdleCallback)(()=>{t.run(()=>{jt(e.targetEl.value??e.contentEl.value,r=>{n?(cancelAnimationFrame(l),l=requestAnimationFrame(()=>{l=requestAnimationFrame(()=>{i(r)})})):i(r)})})}),X(()=>{typeof cancelIdleCallback<"u"&&cancelIdleCallback(o),cancelAnimationFrame(l)})}function jt(e,a){const t=[document,...ke(e)];t.forEach(n=>{n.addEventListener("scroll",a,{passive:!0})}),X(()=>{t.forEach(n=>{n.removeEventListener("scroll",a)})})}const Sa=Symbol.for("vuetify:v-menu"),ba=j({closeDelay:[Number,String],openDelay:[Number,String]},"delay");function wa(e,a){let t=()=>{};function n(i){t==null||t();const r=Number(i?e.openDelay:e.closeDelay);return new Promise(v=>{t=on(r,()=>{a==null||a(i),v(i)})})}function l(){return n(!0)}function o(){return n(!1)}return{clearDelay:t,runOpenDelay:l,runCloseDelay:o}}const ka=j({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...ba()},"VOverlay-activator");function Ea(e,a){let{isActive:t,isTop:n,contentEl:l}=a;const o=le("useActivator"),i=V();let r=!1,v=!1,d=!0;const c=k(()=>e.openOnFocus||e.openOnFocus==null&&e.openOnHover),g=k(()=>e.openOnClick||e.openOnClick==null&&!e.openOnHover&&!c.value),{runOpenDelay:b,runCloseDelay:f}=wa(e,m=>{m===(e.openOnHover&&r||c.value&&v)&&!(e.openOnHover&&t.value&&!n.value)&&(t.value!==m&&(d=!0),t.value=m)}),s=V(),u={onClick:m=>{m.stopPropagation(),i.value=m.currentTarget||m.target,t.value||(s.value=[m.clientX,m.clientY]),t.value=!t.value},onMouseenter:m=>{var M;(M=m.sourceCapabilities)!=null&&M.firesTouchEvents||(r=!0,i.value=m.currentTarget||m.target,b())},onMouseleave:m=>{r=!1,f()},onFocus:m=>{rn(m.target,":focus-visible")!==!1&&(v=!0,m.stopPropagation(),i.value=m.currentTarget||m.target,b())},onBlur:m=>{v=!1,m.stopPropagation(),f()}},h=k(()=>{const m={};return g.value&&(m.onClick=u.onClick),e.openOnHover&&(m.onMouseenter=u.onMouseenter,m.onMouseleave=u.onMouseleave),c.value&&(m.onFocus=u.onFocus,m.onBlur=u.onBlur),m}),E=k(()=>{const m={};if(e.openOnHover&&(m.onMouseenter=()=>{r=!0,b()},m.onMouseleave=()=>{r=!1,f()}),c.value&&(m.onFocusin=()=>{v=!0,b()},m.onFocusout=()=>{v=!1,f()}),e.closeOnContentClick){const M=oe(Sa,null);m.onClick=()=>{t.value=!1,M==null||M.closeParents()}}return m}),P=k(()=>{const m={};return e.openOnHover&&(m.onMouseenter=()=>{d&&(r=!0,d=!1,b())},m.onMouseleave=()=>{r=!1,f()}),m});T(n,m=>{var M;m&&(e.openOnHover&&!r&&(!c.value||!v)||c.value&&!v&&(!e.openOnHover||!r))&&!((M=l.value)!=null&&M.contains(document.activeElement))&&(t.value=!1)}),T(t,m=>{m||setTimeout(()=>{s.value=void 0})},{flush:"post"});const x=et();De(()=>{x.value&&ve(()=>{i.value=x.el})});const p=et(),_=k(()=>e.target==="cursor"&&s.value?s.value:p.value?p.el:Wt(e.target,o)||i.value),F=k(()=>Array.isArray(_.value)?void 0:_.value);let L;return T(()=>!!e.activator,m=>{m&&ee?(L=Et(),L.run(()=>{Aa(e,o,{activatorEl:i,activatorEvents:h})})):L&&L.stop()},{flush:"post",immediate:!0}),X(()=>{L==null||L.stop()}),{activatorEl:i,activatorRef:x,target:_,targetEl:F,targetRef:p,activatorEvents:h,contentEvents:E,scrimEvents:P}}function Aa(e,a,t){let{activatorEl:n,activatorEvents:l}=t;T(()=>e.activator,(v,d)=>{if(d&&v!==d){const c=r(d);c&&i(c)}v&&ve(()=>o())},{immediate:!0}),T(()=>e.activatorProps,()=>{o()}),X(()=>{i()});function o(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:r(),d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;v&&On(v,W(l.value,d))}function i(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:r(),d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;v&&pn(v,W(l.value,d))}function r(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activator;const d=Wt(v,a);return n.value=(d==null?void 0:d.nodeType)===Node.ELEMENT_NODE?d:void 0,n.value}}function Wt(e,a){var n,l;if(!e)return;let t;if(e==="parent"){let o=(l=(n=a==null?void 0:a.proxy)==null?void 0:n.$el)==null?void 0:l.parentNode;for(;o!=null&&o.hasAttribute("data-no-activator");)o=o.parentNode;t=o}else typeof e=="string"?t=document.querySelector(e):"$el"in e?t=e.$el:t=e;return t}function Pa(){if(!ee)return D(!1);const{ssr:e}=sn();if(e){const a=D(!1);return cn(()=>{a.value=!0}),a}else return D(!0)}const ft=Symbol.for("vuetify:stack"),re=At([]);function xa(e,a,t){const n=le("useStack"),l=!t,o=oe(ft,void 0),i=At({activeChildren:new Set});fe(ft,i);const r=D(+a.value);$e(e,()=>{var g;const c=(g=re.at(-1))==null?void 0:g[1];r.value=c?c+10:+a.value,l&&re.push([n.uid,r.value]),o==null||o.activeChildren.add(n.uid),X(()=>{if(l){const b=I(re).findIndex(f=>f[0]===n.uid);re.splice(b,1)}o==null||o.activeChildren.delete(n.uid)})});const v=D(!0);l&&De(()=>{var g;const c=((g=re.at(-1))==null?void 0:g[0])===n.uid;setTimeout(()=>v.value=c)});const d=k(()=>!i.activeChildren.size);return{globalTop:un(v),localTop:d,stackStyles:k(()=>({zIndex:r.value}))}}function Ca(e){return{teleportTarget:k(()=>{const t=e();if(t===!0||!ee)return;const n=t===!1?document.body:typeof t=="string"?document.querySelector(t):t;if(n==null)return;let l=[...n.children].find(o=>o.matches(".v-overlay-container"));return l||(l=document.createElement("div"),l.className="v-overlay-container",n.appendChild(l)),l})}}function Oa(){return!0}function qt(e,a,t){if(!e||Ut(e,t)===!1)return!1;const n=Mt(a);if(typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&n.host===e.target)return!1;const l=(typeof t.value=="object"&&t.value.include||(()=>[]))();return l.push(a),!l.some(o=>o==null?void 0:o.contains(e.target))}function Ut(e,a){return(typeof a.value=="object"&&a.value.closeConditional||Oa)(e)}function pa(e,a,t){const n=typeof t.value=="function"?t.value:t.value.handler;e.shadowTarget=e.target,a._clickOutside.lastMousedownWasOutside&&qt(e,a,t)&&setTimeout(()=>{Ut(e,t)&&n&&n(e)},0)}function gt(e,a){const t=Mt(e);a(document),typeof ShadowRoot<"u"&&t instanceof ShadowRoot&&a(t)}const _a={mounted(e,a){const t=l=>pa(l,e,a),n=l=>{e._clickOutside.lastMousedownWasOutside=qt(l,e,a)};gt(e,l=>{l.addEventListener("click",t,!0),l.addEventListener("mousedown",n,!0)}),e._clickOutside||(e._clickOutside={lastMousedownWasOutside:!1}),e._clickOutside[a.instance.$.uid]={onClick:t,onMousedown:n}},beforeUnmount(e,a){e._clickOutside&&(gt(e,t=>{var o;if(!t||!((o=e._clickOutside)!=null&&o[a.instance.$.uid]))return;const{onClick:n,onMousedown:l}=e._clickOutside[a.instance.$.uid];t.removeEventListener("click",n,!0),t.removeEventListener("mousedown",l,!0)}),delete e._clickOutside[a.instance.$.uid])}};function Ba(e){const{modelValue:a,color:t,...n}=e;return y(Be,{name:"fade-transition",appear:!0},{default:()=>[e.modelValue&&y("div",W({class:["v-overlay__scrim",e.color.backgroundColorClasses.value],style:e.color.backgroundColorStyles.value},n),null)]})}const Gt=j({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:!0},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,opacity:[Number,String],noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:!0},zIndex:{type:[Number,String],default:2e3},...ka(),...ne(),...He(),...Nn(),...ra(),...fa(),...Ne(),...Ct()},"VOverlay"),mt=K()({name:"VOverlay",directives:{ClickOutside:_a},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...Gt()},emits:{"click:outside":e=>!0,"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(e,a){let{slots:t,attrs:n,emit:l}=a;const o=le("VOverlay"),i=V(),r=V(),v=V(),d=ue(e,"modelValue"),c=k({get:()=>d.value,set:C=>{C&&e.disabled||(d.value=C)}}),{themeClasses:g}=ze(e),{rtlClasses:b,isRtl:f}=dn(),{hasContent:s,onAfterLeave:u}=zn(e,c),h=Ot(k(()=>typeof e.scrim=="string"?e.scrim:null)),{globalTop:E,localTop:P,stackStyles:x}=xa(c,he(e,"zIndex"),e._disableGlobalStack),{activatorEl:p,activatorRef:_,target:F,targetEl:L,targetRef:m,activatorEvents:M,contentEvents:te,scrimEvents:B}=Ea(e,{isActive:c,isTop:P,contentEl:v}),{teleportTarget:S}=Ca(()=>{var Y,ie,H;const C=e.attach||e.contained;if(C)return C;const $=((Y=p==null?void 0:p.value)==null?void 0:Y.getRootNode())||((H=(ie=o.proxy)==null?void 0:ie.$el)==null?void 0:H.getRootNode());return $ instanceof ShadowRoot?$:!1}),{dimensionStyles:w}=je(e),A=Pa(),{scopeId:N}=Ft();T(()=>e.disabled,C=>{C&&(c.value=!1)});const{contentStyles:z,updateLocation:J}=sa(e,{isRtl:f,contentEl:v,target:F,isActive:c});ga(e,{root:i,contentEl:v,targetEl:L,isActive:c,updateLocation:J});function R(C){l("click:outside",C),e.persistent?G():c.value=!1}function q(C){return c.value&&E.value&&(!e.scrim||C.target===r.value||C instanceof MouseEvent&&C.shadowTarget===r.value)}ee&&T(c,C=>{C?window.addEventListener("keydown",Q):window.removeEventListener("keydown",Q)},{immediate:!0}),Ae(()=>{ee&&window.removeEventListener("keydown",Q)});function Q(C){var $,Y;C.key==="Escape"&&E.value&&(e.persistent?G():(c.value=!1,($=v.value)!=null&&$.contains(document.activeElement)&&((Y=p.value)==null||Y.focus())))}const Z=Pn();$e(()=>e.closeOnBack,()=>{xn(Z,C=>{E.value&&c.value?(C(!1),e.persistent?G():c.value=!1):C()})});const O=V();T(()=>c.value&&(e.absolute||e.contained)&&S.value==null,C=>{if(C){const $=Bn(i.value);$&&$!==document.scrollingElement&&(O.value=$.scrollTop)}});function G(){e.noClickAnimation||v.value&&se(v.value,[{transformOrigin:"center"},{transform:"scale(1.03)"},{transformOrigin:"center"}],{duration:150,easing:Le})}function Pe(){l("afterEnter")}function ge(){u(),l("afterLeave")}return ae(()=>{var C;return y(be,null,[(C=t.activator)==null?void 0:C.call(t,{isActive:c.value,targetRef:m,props:W({ref:_},M.value,e.activatorProps)}),A.value&&s.value&&y(vn,{disabled:!S.value,to:S.value},{default:()=>[y("div",W({class:["v-overlay",{"v-overlay--absolute":e.absolute||e.contained,"v-overlay--active":c.value,"v-overlay--contained":e.contained},g.value,b.value,e.class],style:[x.value,{"--v-overlay-opacity":e.opacity,top:U(O.value)},e.style],ref:i},N,n),[y(Ba,W({color:h,modelValue:c.value&&!!e.scrim,ref:r},B.value),null),y(ce,{appear:!0,persisted:!0,transition:e.transition,target:F.value,onAfterEnter:Pe,onAfterLeave:ge},{default:()=>{var $;return[Se(y("div",W({ref:v,class:["v-overlay__content",e.contentClass],style:[w.value,z.value]},te.value,e.contentProps),[($=t.default)==null?void 0:$.call(t,{isActive:c})]),[[St,c.value],[Fe("click-outside"),{handler:R,closeConditional:q,include:()=>[p.value]}]])]}})])]})])}),{activatorEl:p,scrimEl:r,target:F,animateClick:G,contentEl:v,globalTop:E,localTop:P,updateLocation:J}}}),Va=j({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...Gt({origin:"center center",scrollStrategy:"block",transition:{component:Tn},zIndex:2400})},"VDialog"),$a=K()({name:"VDialog",props:Va(),emits:{"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(e,a){let{emit:t,slots:n}=a;const l=ue(e,"modelValue"),{scopeId:o}=Ft(),i=V();function r(c){var f,s;const g=c.relatedTarget,b=c.target;if(g!==b&&((f=i.value)!=null&&f.contentEl)&&((s=i.value)!=null&&s.globalTop)&&![document,i.value.contentEl].includes(b)&&!i.value.contentEl.contains(b)){const u=fn(i.value.contentEl);if(!u.length)return;const h=u[0],E=u[u.length-1];g===h?E.focus():h.focus()}}ee&&T(()=>l.value&&e.retainFocus,c=>{c?document.addEventListener("focusin",r):document.removeEventListener("focusin",r)},{immediate:!0});function v(){var c;t("afterEnter"),(c=i.value)!=null&&c.contentEl&&!i.value.contentEl.contains(document.activeElement)&&i.value.contentEl.focus({preventScroll:!0})}function d(){t("afterLeave")}return T(l,async c=>{var g;c||(await ve(),(g=i.value.activatorEl)==null||g.focus({preventScroll:!0}))}),ae(()=>{const c=mt.filterProps(e),g=W({"aria-haspopup":"dialog"},e.activatorProps),b=W({tabindex:-1},e.contentProps);return y(mt,W({ref:i,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},c,{modelValue:l.value,"onUpdate:modelValue":f=>l.value=f,"aria-modal":"true",activatorProps:g,contentProps:b,role:"dialog",onAfterEnter:v,onAfterLeave:d},o),{activator:n.activator,default:function(){for(var f=arguments.length,s=new Array(f),u=0;u<f;u++)s[u]=arguments[u];return y(we,{root:"VDialog"},{default:()=>{var h;return[(h=n.default)==null?void 0:h.call(n,...s)]}})}})}),Cn({},i)}});export{Na as C,$a as V,ea as a,zn as b,_n as c,Fn as d,ba as e,wa as f,ct as g,Fa as h,Yn as i,$n as j,Ta as k,Ma as l,Nn as m,Ra as n,Gt as o,Tn as p,Sa as q,mt as r,Bn as s,za as t,Ft as u,Jn as v};