codex 1.6.0__py3-none-any.whl → 1.6.0a1__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.
- codex/exceptions.py +18 -22
- codex/integrity.py +3 -66
- codex/librarian/covers/coverd.py +2 -2
- codex/librarian/covers/create.py +29 -50
- codex/librarian/covers/path.py +6 -8
- codex/librarian/covers/purge.py +18 -28
- codex/librarian/covers/tasks.py +2 -3
- codex/librarian/importer/{aggregate.py → aggregate_metadata.py} +88 -58
- codex/librarian/importer/{extract.py → clean_metadata.py} +4 -33
- codex/librarian/importer/const.py +13 -46
- codex/librarian/importer/create_comics.py +17 -101
- codex/librarian/importer/create_fks.py +134 -99
- codex/librarian/importer/deleted.py +28 -103
- codex/librarian/importer/failed_imports.py +64 -42
- codex/librarian/importer/importerd.py +290 -71
- codex/librarian/importer/link_comics.py +26 -26
- codex/librarian/importer/moved.py +81 -128
- codex/librarian/importer/query_fks.py +122 -142
- codex/librarian/importer/status.py +39 -8
- codex/librarian/importer/tasks.py +9 -26
- codex/librarian/importer/update_comics.py +89 -0
- codex/librarian/janitor/cleanup.py +2 -26
- codex/librarian/janitor/failed_imports.py +1 -1
- codex/librarian/janitor/janitor.py +1 -13
- codex/librarian/janitor/janitord.py +1 -1
- codex/librarian/janitor/status.py +0 -1
- codex/librarian/janitor/tasks.py +0 -5
- codex/librarian/librariand.py +5 -9
- codex/librarian/notifier/notifierd.py +1 -1
- codex/librarian/notifier/tasks.py +4 -4
- codex/librarian/search/update.py +1 -1
- codex/librarian/watchdog/db_snapshot.py +6 -9
- codex/librarian/watchdog/emitter.py +0 -3
- codex/librarian/watchdog/event_batcherd.py +3 -19
- codex/librarian/watchdog/events.py +36 -176
- codex/librarian/watchdog/observers.py +3 -13
- codex/middleware.py +2 -1
- codex/migrations/0027_sort_name.py +149 -0
- codex/models/admin.py +2 -0
- codex/models/base.py +0 -3
- codex/models/comic.py +9 -13
- codex/models/{util.py → const.py} +2 -15
- codex/models/groups.py +14 -28
- codex/models/library.py +3 -11
- codex/models/paths.py +14 -61
- codex/permissions.py +1 -1
- codex/search/query.py +2 -25
- codex/search/writing.py +1 -1
- codex/serializers/admin.py +44 -53
- codex/serializers/browser/choices.py +42 -37
- codex/serializers/browser/filters.py +131 -32
- codex/serializers/browser/metadata.py +1 -45
- codex/serializers/browser/mixins.py +4 -37
- codex/serializers/browser/page.py +6 -3
- codex/serializers/browser/settings.py +11 -42
- codex/serializers/choices.py +1 -14
- codex/serializers/models/pycountry.py +51 -11
- codex/serializers/opds/v2.py +16 -10
- codex/serializers/opds/v2_unused.py +3 -5
- codex/serializers/reader.py +7 -21
- codex/serializers/redirect.py +2 -3
- codex/serializers/route.py +7 -16
- codex/settings/settings.py +8 -23
- codex/startup.py +3 -77
- codex/static_root/assets/VCheckbox-u_aWQJA7.a0db8a7bd681.js +1 -0
- codex/static_root/assets/VCheckbox-u_aWQJA7.a0db8a7bd681.js.br +0 -0
- codex/static_root/assets/VCheckbox-u_aWQJA7.a0db8a7bd681.js.gz +0 -0
- codex/static_root/assets/VCheckbox-u_aWQJA7.js +1 -0
- codex/static_root/assets/VCheckbox-u_aWQJA7.js.br +0 -0
- codex/static_root/assets/VCheckbox-u_aWQJA7.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-DxNOKONG.5ab34c4c47aa.js → VCheckboxBtn-yCN3TB6A.29d48d14ab3b.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-yCN3TB6A.29d48d14ab3b.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-yCN3TB6A.29d48d14ab3b.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-DxNOKONG.js → VCheckboxBtn-yCN3TB6A.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-yCN3TB6A.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-yCN3TB6A.js.gz +0 -0
- codex/static_root/assets/VCombobox-dsIKbjps.d3c8da1d75b3.js +1 -0
- codex/static_root/assets/VCombobox-dsIKbjps.d3c8da1d75b3.js.br +0 -0
- codex/static_root/assets/VCombobox-dsIKbjps.d3c8da1d75b3.js.gz +0 -0
- codex/static_root/assets/VCombobox-dsIKbjps.js +1 -0
- codex/static_root/assets/VCombobox-dsIKbjps.js.br +0 -0
- codex/static_root/assets/VCombobox-dsIKbjps.js.gz +0 -0
- codex/static_root/assets/VDialog-BNHg8txZ.21bed7754d3a.js +1 -0
- codex/static_root/assets/VDialog-BNHg8txZ.21bed7754d3a.js.br +0 -0
- codex/static_root/assets/VDialog-BNHg8txZ.21bed7754d3a.js.gz +0 -0
- codex/static_root/assets/VDialog-BNHg8txZ.js +1 -0
- codex/static_root/assets/VDialog-BNHg8txZ.js.br +0 -0
- codex/static_root/assets/VDialog-BNHg8txZ.js.gz +0 -0
- codex/static_root/assets/{VDialog-lQ13FnRR.1c801ad756b2.css → VDialog-C5Nxd_zP.css} +1 -1
- codex/static_root/assets/VDialog-C5Nxd_zP.css.br +0 -0
- codex/static_root/assets/VDialog-C5Nxd_zP.css.gz +0 -0
- codex/static_root/assets/{VDialog-lQ13FnRR.css → VDialog-C5Nxd_zP.d327f505ef0e.css} +1 -1
- codex/static_root/assets/VDialog-C5Nxd_zP.d327f505ef0e.css.br +0 -0
- codex/static_root/assets/VDialog-C5Nxd_zP.d327f505ef0e.css.gz +0 -0
- codex/static_root/assets/VExpansionPanels-CX4W4vZK.8e90fe0b34f4.js +1 -0
- codex/static_root/assets/VExpansionPanels-CX4W4vZK.8e90fe0b34f4.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CX4W4vZK.8e90fe0b34f4.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-CX4W4vZK.js +1 -0
- codex/static_root/assets/VExpansionPanels-CX4W4vZK.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CX4W4vZK.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-jCr3CAsk.685daccd04d8.js +1 -0
- codex/static_root/assets/VRadioGroup-jCr3CAsk.685daccd04d8.js.br +0 -0
- codex/static_root/assets/VRadioGroup-jCr3CAsk.685daccd04d8.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-jCr3CAsk.js +1 -0
- codex/static_root/assets/VRadioGroup-jCr3CAsk.js.br +0 -0
- codex/static_root/assets/VRadioGroup-jCr3CAsk.js.gz +0 -0
- codex/static_root/assets/VSelect--XHNpxvB.ff050ef0d6de.js +1 -0
- codex/static_root/assets/VSelect--XHNpxvB.ff050ef0d6de.js.br +0 -0
- codex/static_root/assets/VSelect--XHNpxvB.ff050ef0d6de.js.gz +0 -0
- codex/static_root/assets/VSelect--XHNpxvB.js +1 -0
- codex/static_root/assets/VSelect--XHNpxvB.js.br +0 -0
- codex/static_root/assets/VSelect--XHNpxvB.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-CVIKc_ra.0b2cc426e8b8.js +1 -0
- codex/static_root/assets/VSelectionControl-CVIKc_ra.0b2cc426e8b8.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CVIKc_ra.0b2cc426e8b8.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-CVIKc_ra.js +1 -0
- codex/static_root/assets/VSelectionControl-CVIKc_ra.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CVIKc_ra.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-CZw5_eNv.7ae5182e5988.js +1 -0
- codex/static_root/assets/VSlideGroup-CZw5_eNv.7ae5182e5988.js.br +0 -0
- codex/static_root/assets/VSlideGroup-CZw5_eNv.7ae5182e5988.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-CZw5_eNv.js +1 -0
- codex/static_root/assets/VSlideGroup-CZw5_eNv.js.br +0 -0
- codex/static_root/assets/VSlideGroup-CZw5_eNv.js.gz +0 -0
- codex/static_root/assets/{VTable-2RHFqfg6.f0f2106b158b.js → VTable-hGJDFK5t.d2f84d68747b.js} +1 -1
- codex/static_root/assets/VTable-hGJDFK5t.d2f84d68747b.js.br +0 -0
- codex/static_root/assets/VTable-hGJDFK5t.d2f84d68747b.js.gz +0 -0
- codex/static_root/assets/{VTable-2RHFqfg6.js → VTable-hGJDFK5t.js} +1 -1
- codex/static_root/assets/VTable-hGJDFK5t.js.br +0 -0
- codex/static_root/assets/VTable-hGJDFK5t.js.gz +0 -0
- codex/static_root/assets/VTextField-C8y3lyz9.eb58405614ad.js +1 -0
- codex/static_root/assets/VTextField-C8y3lyz9.eb58405614ad.js.br +0 -0
- codex/static_root/assets/VTextField-C8y3lyz9.eb58405614ad.js.gz +0 -0
- codex/static_root/assets/VTextField-C8y3lyz9.js +1 -0
- codex/static_root/assets/VTextField-C8y3lyz9.js.br +0 -0
- codex/static_root/assets/VTextField-C8y3lyz9.js.gz +0 -0
- codex/static_root/assets/VTextField-DuIIp-VY.580110ad24dc.css +1 -0
- codex/static_root/assets/VTextField-DuIIp-VY.580110ad24dc.css.br +0 -0
- codex/static_root/assets/VTextField-DuIIp-VY.580110ad24dc.css.gz +0 -0
- codex/static_root/assets/VTextField-DuIIp-VY.css +1 -0
- codex/static_root/assets/VTextField-DuIIp-VY.css.br +0 -0
- codex/static_root/assets/VTextField-DuIIp-VY.css.gz +0 -0
- codex/static_root/assets/VWindowItem-BHpZIa_r.2b3c5f9594e6.js +1 -0
- codex/static_root/assets/VWindowItem-BHpZIa_r.2b3c5f9594e6.js.br +0 -0
- codex/static_root/assets/VWindowItem-BHpZIa_r.2b3c5f9594e6.js.gz +0 -0
- codex/static_root/assets/VWindowItem-BHpZIa_r.js +1 -0
- codex/static_root/assets/VWindowItem-BHpZIa_r.js.br +0 -0
- codex/static_root/assets/VWindowItem-BHpZIa_r.js.gz +0 -0
- codex/static_root/assets/{admin-B8Bp2Uih.82c98714bcf1.css → admin-BbrOU9Y9.29936748af9e.css} +1 -1
- codex/static_root/assets/admin-BbrOU9Y9.29936748af9e.css.br +0 -0
- codex/static_root/assets/admin-BbrOU9Y9.29936748af9e.css.gz +0 -0
- codex/static_root/assets/{admin-B8Bp2Uih.css → admin-BbrOU9Y9.css} +1 -1
- codex/static_root/assets/admin-BbrOU9Y9.css.br +0 -0
- codex/static_root/assets/admin-BbrOU9Y9.css.gz +0 -0
- codex/static_root/assets/admin-Bvd-SvGS.412e5b1b7ed1.js +1 -0
- codex/static_root/assets/admin-Bvd-SvGS.412e5b1b7ed1.js.br +0 -0
- codex/static_root/assets/admin-Bvd-SvGS.412e5b1b7ed1.js.gz +0 -0
- codex/static_root/assets/admin-Bvd-SvGS.js +1 -0
- codex/static_root/assets/admin-Bvd-SvGS.js.br +0 -0
- codex/static_root/assets/admin-Bvd-SvGS.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-BF0dMvEE.1514926c78e8.css +1 -0
- codex/static_root/assets/admin-drawer-panel-BF0dMvEE.1514926c78e8.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-BF0dMvEE.1514926c78e8.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-BF0dMvEE.css +1 -0
- codex/static_root/assets/admin-drawer-panel-BF0dMvEE.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-BF0dMvEE.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-D2OV5rDa.059e3bde9568.js +30 -0
- codex/static_root/assets/admin-drawer-panel-D2OV5rDa.059e3bde9568.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-D2OV5rDa.059e3bde9568.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-D2OV5rDa.js +30 -0
- codex/static_root/assets/admin-drawer-panel-D2OV5rDa.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-D2OV5rDa.js.gz +0 -0
- codex/static_root/assets/browser-CZeVqRNy.ccfca9a05bfe.css +1 -0
- codex/static_root/assets/browser-CZeVqRNy.ccfca9a05bfe.css.br +0 -0
- codex/static_root/assets/browser-CZeVqRNy.ccfca9a05bfe.css.gz +0 -0
- codex/static_root/assets/browser-CZeVqRNy.css +1 -0
- codex/static_root/assets/browser-CZeVqRNy.css.br +0 -0
- codex/static_root/assets/browser-CZeVqRNy.css.gz +0 -0
- codex/static_root/assets/browser-rc5ObkeN.0c1f38d229ac.js +1 -0
- codex/static_root/assets/browser-rc5ObkeN.0c1f38d229ac.js.br +0 -0
- codex/static_root/assets/browser-rc5ObkeN.0c1f38d229ac.js.gz +0 -0
- codex/static_root/assets/browser-rc5ObkeN.js +1 -0
- codex/static_root/assets/browser-rc5ObkeN.js.br +0 -0
- codex/static_root/assets/browser-rc5ObkeN.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-CRHk2tjq.d4d4b5945cd4.js +1 -0
- codex/static_root/assets/change-password-dialog-CRHk2tjq.d4d4b5945cd4.js.br +0 -0
- codex/static_root/assets/change-password-dialog-CRHk2tjq.d4d4b5945cd4.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-CRHk2tjq.js +1 -0
- codex/static_root/assets/change-password-dialog-CRHk2tjq.js.br +0 -0
- codex/static_root/assets/change-password-dialog-CRHk2tjq.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-HvIvmmIE.73be0c8a8278.css +1 -0
- codex/static_root/assets/change-password-dialog-HvIvmmIE.73be0c8a8278.css.br +0 -0
- codex/static_root/assets/change-password-dialog-HvIvmmIE.73be0c8a8278.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-HvIvmmIE.css +1 -0
- codex/static_root/assets/change-password-dialog-HvIvmmIE.css.br +0 -0
- codex/static_root/assets/change-password-dialog-HvIvmmIE.css.gz +0 -0
- codex/static_root/assets/confirm-dialog-DnHKM44R.d57a0196ac5a.js +1 -0
- codex/static_root/assets/confirm-dialog-DnHKM44R.d57a0196ac5a.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DnHKM44R.d57a0196ac5a.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-DnHKM44R.js +1 -0
- codex/static_root/assets/confirm-dialog-DnHKM44R.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DnHKM44R.js.gz +0 -0
- codex/static_root/assets/datetime-column-BEqDvdeI.44b65455a2c3.js +1 -0
- codex/static_root/assets/datetime-column-BEqDvdeI.44b65455a2c3.js.br +0 -0
- codex/static_root/assets/datetime-column-BEqDvdeI.44b65455a2c3.js.gz +0 -0
- codex/static_root/assets/datetime-column-BEqDvdeI.js +1 -0
- codex/static_root/assets/datetime-column-BEqDvdeI.js.br +0 -0
- codex/static_root/assets/datetime-column-BEqDvdeI.js.gz +0 -0
- codex/static_root/assets/datetime-column-Dg_RxTVM.1fa7c5cbead7.css +1 -0
- codex/static_root/assets/datetime-column-Dg_RxTVM.1fa7c5cbead7.css.br +0 -0
- codex/static_root/assets/datetime-column-Dg_RxTVM.css +1 -0
- codex/static_root/assets/datetime-column-Dg_RxTVM.css.br +0 -0
- codex/static_root/assets/filter-_wYL6jQC.dbc7d7e7b855.js +1 -0
- codex/static_root/assets/filter-_wYL6jQC.dbc7d7e7b855.js.br +0 -0
- codex/static_root/assets/filter-_wYL6jQC.dbc7d7e7b855.js.gz +0 -0
- codex/static_root/assets/filter-_wYL6jQC.js +1 -0
- codex/static_root/assets/filter-_wYL6jQC.js.br +0 -0
- codex/static_root/assets/filter-_wYL6jQC.js.gz +0 -0
- codex/static_root/assets/flag-tab-BacZLlVi.8deba6a5370d.css +1 -0
- codex/static_root/assets/flag-tab-BacZLlVi.8deba6a5370d.css.br +0 -0
- codex/static_root/assets/flag-tab-BacZLlVi.8deba6a5370d.css.gz +0 -0
- codex/static_root/assets/flag-tab-BacZLlVi.css +1 -0
- codex/static_root/assets/flag-tab-BacZLlVi.css.br +0 -0
- codex/static_root/assets/flag-tab-BacZLlVi.css.gz +0 -0
- codex/static_root/assets/flag-tab-Dpyvhwb_.2812bd46db2d.js +1 -0
- codex/static_root/assets/flag-tab-Dpyvhwb_.2812bd46db2d.js.br +0 -0
- codex/static_root/assets/flag-tab-Dpyvhwb_.2812bd46db2d.js.gz +0 -0
- codex/static_root/assets/flag-tab-Dpyvhwb_.js +1 -0
- codex/static_root/assets/flag-tab-Dpyvhwb_.js.br +0 -0
- codex/static_root/assets/flag-tab-Dpyvhwb_.js.gz +0 -0
- codex/static_root/assets/{group-tab-D5vWrihT.1afb2ce453ff.js → group-tab-DAjvuSUO.4494d4846fa6.js} +1 -1
- codex/static_root/assets/group-tab-DAjvuSUO.4494d4846fa6.js.br +0 -0
- codex/static_root/assets/group-tab-DAjvuSUO.4494d4846fa6.js.gz +0 -0
- codex/static_root/assets/{group-tab-D5vWrihT.js → group-tab-DAjvuSUO.js} +1 -1
- codex/static_root/assets/group-tab-DAjvuSUO.js.br +0 -0
- codex/static_root/assets/group-tab-DAjvuSUO.js.gz +0 -0
- codex/static_root/assets/http-error-CDQ-296a.6ea61686beb8.js +1 -0
- codex/static_root/assets/http-error-CDQ-296a.6ea61686beb8.js.br +0 -0
- codex/static_root/assets/http-error-CDQ-296a.6ea61686beb8.js.gz +0 -0
- codex/static_root/assets/http-error-CDQ-296a.js +1 -0
- codex/static_root/assets/http-error-CDQ-296a.js.br +0 -0
- codex/static_root/assets/http-error-CDQ-296a.js.gz +0 -0
- codex/static_root/assets/http-error-_wlDqEcp.5b78d3e332c9.css +1 -0
- codex/static_root/assets/{http-error-DKulXuTl.95e42988d5d5.css.br → http-error-_wlDqEcp.5b78d3e332c9.css.br} +0 -0
- codex/static_root/assets/http-error-_wlDqEcp.5b78d3e332c9.css.gz +0 -0
- codex/static_root/assets/http-error-_wlDqEcp.css +1 -0
- codex/static_root/assets/{http-error-DKulXuTl.css.br → http-error-_wlDqEcp.css.br} +0 -0
- codex/static_root/assets/http-error-_wlDqEcp.css.gz +0 -0
- codex/static_root/assets/index-DUjeNg4x.36d50c91b2c1.js +1 -0
- codex/static_root/assets/index-DUjeNg4x.36d50c91b2c1.js.br +0 -0
- codex/static_root/assets/index-DUjeNg4x.36d50c91b2c1.js.gz +0 -0
- codex/static_root/assets/index-DUjeNg4x.js +1 -0
- codex/static_root/assets/index-DUjeNg4x.js.br +0 -0
- codex/static_root/assets/index-DUjeNg4x.js.gz +0 -0
- codex/static_root/assets/library-tab-CXbkxNZt.954f2850a439.css +1 -0
- codex/static_root/assets/library-tab-CXbkxNZt.954f2850a439.css.br +2 -0
- codex/static_root/assets/library-tab-CXbkxNZt.954f2850a439.css.gz +0 -0
- codex/static_root/assets/library-tab-CXbkxNZt.css +1 -0
- codex/static_root/assets/library-tab-CXbkxNZt.css.br +2 -0
- codex/static_root/assets/library-tab-CXbkxNZt.css.gz +0 -0
- codex/static_root/assets/library-tab-LsexSRi2.34b88bbbfcdc.js +1 -0
- codex/static_root/assets/library-tab-LsexSRi2.34b88bbbfcdc.js.br +0 -0
- codex/static_root/assets/library-tab-LsexSRi2.34b88bbbfcdc.js.gz +0 -0
- codex/static_root/assets/library-tab-LsexSRi2.js +1 -0
- codex/static_root/assets/library-tab-LsexSRi2.js.br +0 -0
- codex/static_root/assets/library-tab-LsexSRi2.js.gz +0 -0
- codex/static_root/assets/main-CjPnwTfF.0f333ec81a42.js +32 -0
- codex/static_root/assets/main-CjPnwTfF.0f333ec81a42.js.br +0 -0
- codex/static_root/assets/main-CjPnwTfF.0f333ec81a42.js.gz +0 -0
- codex/static_root/assets/main-CjPnwTfF.js +32 -0
- codex/static_root/assets/main-CjPnwTfF.js.br +0 -0
- codex/static_root/assets/main-CjPnwTfF.js.gz +0 -0
- codex/static_root/assets/{main-Ztp855PW.d46d718fac45.css → main-sK7HC5h4.6f04ddfc5f1a.css} +1 -1
- codex/static_root/assets/main-sK7HC5h4.6f04ddfc5f1a.css.br +0 -0
- codex/static_root/assets/{main-Ztp855PW.d46d718fac45.css.gz → main-sK7HC5h4.6f04ddfc5f1a.css.gz} +0 -0
- codex/static_root/assets/{main-Ztp855PW.css → main-sK7HC5h4.css} +1 -1
- codex/static_root/assets/main-sK7HC5h4.css.br +0 -0
- codex/static_root/assets/{main-Ztp855PW.css.gz → main-sK7HC5h4.css.gz} +0 -0
- codex/static_root/assets/pagination-toolbar-B3wS4_7p.7695fafdefce.css +1 -0
- codex/static_root/assets/pagination-toolbar-B3wS4_7p.7695fafdefce.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-B3wS4_7p.7695fafdefce.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-B3wS4_7p.css +1 -0
- codex/static_root/assets/pagination-toolbar-B3wS4_7p.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-B3wS4_7p.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-B955aa-d.3fd9249f7342.js +1 -0
- codex/static_root/assets/pagination-toolbar-B955aa-d.3fd9249f7342.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-B955aa-d.3fd9249f7342.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-B955aa-d.js +1 -0
- codex/static_root/assets/pagination-toolbar-B955aa-d.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-B955aa-d.js.gz +0 -0
- codex/static_root/assets/pdf-doc-DPDmmEEp.74cab27a76e1.js +35 -0
- codex/static_root/assets/pdf-doc-DPDmmEEp.74cab27a76e1.js.br +0 -0
- codex/static_root/assets/pdf-doc-DPDmmEEp.74cab27a76e1.js.gz +0 -0
- codex/static_root/assets/pdf-doc-DPDmmEEp.js +35 -0
- codex/static_root/assets/pdf-doc-DPDmmEEp.js.br +0 -0
- codex/static_root/assets/pdf-doc-DPDmmEEp.js.gz +0 -0
- codex/static_root/assets/reader-BuMh4x3f.f4d7f1c97387.js +2 -0
- codex/static_root/assets/reader-BuMh4x3f.f4d7f1c97387.js.br +0 -0
- codex/static_root/assets/reader-BuMh4x3f.f4d7f1c97387.js.gz +0 -0
- codex/static_root/assets/reader-BuMh4x3f.js +2 -0
- codex/static_root/assets/reader-BuMh4x3f.js.br +0 -0
- codex/static_root/assets/reader-BuMh4x3f.js.gz +0 -0
- codex/static_root/assets/reader-Dspy46e8.925a6b05bfcf.css +1 -0
- codex/static_root/assets/reader-Dspy46e8.925a6b05bfcf.css.br +0 -0
- codex/static_root/assets/reader-Dspy46e8.925a6b05bfcf.css.gz +0 -0
- codex/static_root/assets/reader-Dspy46e8.css +1 -0
- codex/static_root/assets/reader-Dspy46e8.css.br +0 -0
- codex/static_root/assets/reader-Dspy46e8.css.gz +0 -0
- codex/static_root/assets/{relation-chips-Bsc-gUxE.98e65384c3c9.css → relation-chips-D6T6FX7G.css} +1 -1
- codex/static_root/assets/relation-chips-D6T6FX7G.css.br +0 -0
- codex/static_root/assets/relation-chips-D6T6FX7G.css.gz +0 -0
- codex/static_root/assets/{relation-chips-Bsc-gUxE.css → relation-chips-D6T6FX7G.db095b2497e4.css} +1 -1
- codex/static_root/assets/relation-chips-D6T6FX7G.db095b2497e4.css.br +0 -0
- codex/static_root/assets/relation-chips-D6T6FX7G.db095b2497e4.css.gz +0 -0
- codex/static_root/assets/relation-chips-DN_pPmnS.684c4eae4bdb.js +1 -0
- codex/static_root/assets/relation-chips-DN_pPmnS.684c4eae4bdb.js.br +0 -0
- codex/static_root/assets/relation-chips-DN_pPmnS.684c4eae4bdb.js.gz +0 -0
- codex/static_root/assets/relation-chips-DN_pPmnS.js +1 -0
- codex/static_root/assets/relation-chips-DN_pPmnS.js.br +0 -0
- codex/static_root/assets/relation-chips-DN_pPmnS.js.gz +0 -0
- codex/static_root/assets/settings-drawer-BgUazs7O.7bbeb1fd98f1.css +1 -0
- codex/static_root/assets/settings-drawer-BgUazs7O.7bbeb1fd98f1.css.br +0 -0
- codex/static_root/assets/settings-drawer-BgUazs7O.7bbeb1fd98f1.css.gz +0 -0
- codex/static_root/assets/settings-drawer-BgUazs7O.css +1 -0
- codex/static_root/assets/settings-drawer-BgUazs7O.css.br +0 -0
- codex/static_root/assets/settings-drawer-BgUazs7O.css.gz +0 -0
- codex/static_root/assets/settings-drawer-D4FgDG4z.de28fd4ce82a.js +2 -0
- codex/static_root/assets/settings-drawer-D4FgDG4z.de28fd4ce82a.js.br +0 -0
- codex/static_root/assets/settings-drawer-D4FgDG4z.de28fd4ce82a.js.gz +0 -0
- codex/static_root/assets/settings-drawer-D4FgDG4z.js +2 -0
- codex/static_root/assets/settings-drawer-D4FgDG4z.js.br +0 -0
- codex/static_root/assets/settings-drawer-D4FgDG4z.js.gz +0 -0
- codex/static_root/assets/stats-tab-AwbCeW63.a95f7d9b2059.js +1 -0
- codex/static_root/assets/stats-tab-AwbCeW63.a95f7d9b2059.js.br +0 -0
- codex/static_root/assets/stats-tab-AwbCeW63.a95f7d9b2059.js.gz +0 -0
- codex/static_root/assets/stats-tab-AwbCeW63.js +1 -0
- codex/static_root/assets/stats-tab-AwbCeW63.js.br +0 -0
- codex/static_root/assets/stats-tab-AwbCeW63.js.gz +0 -0
- codex/static_root/assets/stats-tab-TsyG3wH_.b93c080356fc.css +1 -0
- codex/static_root/assets/stats-tab-TsyG3wH_.b93c080356fc.css.br +2 -0
- codex/static_root/assets/stats-tab-TsyG3wH_.b93c080356fc.css.gz +0 -0
- codex/static_root/assets/stats-tab-TsyG3wH_.css +1 -0
- codex/static_root/assets/stats-tab-TsyG3wH_.css.br +2 -0
- codex/static_root/assets/stats-tab-TsyG3wH_.css.gz +0 -0
- codex/static_root/assets/task-tab-DeHQTHuz.5f967defca9f.js +1 -0
- codex/static_root/assets/task-tab-DeHQTHuz.5f967defca9f.js.br +0 -0
- codex/static_root/assets/task-tab-DeHQTHuz.5f967defca9f.js.gz +0 -0
- codex/static_root/assets/task-tab-DeHQTHuz.js +1 -0
- codex/static_root/assets/task-tab-DeHQTHuz.js.br +0 -0
- codex/static_root/assets/task-tab-DeHQTHuz.js.gz +0 -0
- codex/static_root/assets/to-case-kUm8NPpW.5b3369f511b8.js +1 -0
- codex/static_root/assets/to-case-kUm8NPpW.js +1 -0
- codex/static_root/assets/unauthorized-BXCbvRsL.bc44d7ba68b3.js +1 -0
- codex/static_root/assets/unauthorized-BXCbvRsL.bc44d7ba68b3.js.br +0 -0
- codex/static_root/assets/unauthorized-BXCbvRsL.bc44d7ba68b3.js.gz +0 -0
- codex/static_root/assets/unauthorized-BXCbvRsL.js +1 -0
- codex/static_root/assets/unauthorized-BXCbvRsL.js.br +0 -0
- codex/static_root/assets/unauthorized-BXCbvRsL.js.gz +0 -0
- codex/static_root/assets/{unauthorized-CibJYD8o.4c2de98c2b53.css → unauthorized-DWgytUow.ca2f13dbdbf5.css} +1 -1
- codex/static_root/assets/unauthorized-DWgytUow.ca2f13dbdbf5.css.br +0 -0
- codex/static_root/assets/unauthorized-DWgytUow.ca2f13dbdbf5.css.gz +0 -0
- codex/static_root/assets/{unauthorized-CibJYD8o.css → unauthorized-DWgytUow.css} +1 -1
- codex/static_root/assets/unauthorized-DWgytUow.css.br +0 -0
- codex/static_root/assets/unauthorized-DWgytUow.css.gz +0 -0
- codex/static_root/assets/user-tab-Dq4qYzgp.5d1b6c07edd0.js +1 -0
- codex/static_root/assets/user-tab-Dq4qYzgp.5d1b6c07edd0.js.br +0 -0
- codex/static_root/assets/user-tab-Dq4qYzgp.5d1b6c07edd0.js.gz +0 -0
- codex/static_root/assets/user-tab-Dq4qYzgp.js +1 -0
- codex/static_root/assets/user-tab-Dq4qYzgp.js.br +0 -0
- codex/static_root/assets/user-tab-Dq4qYzgp.js.gz +0 -0
- codex/static_root/js/choices-admin.248384ece3f6.json +1 -0
- codex/static_root/js/choices-admin.248384ece3f6.json.br +0 -0
- codex/static_root/js/choices-admin.248384ece3f6.json.gz +0 -0
- codex/static_root/js/choices-admin.json +1 -1
- codex/static_root/js/choices-admin.json.br +0 -0
- codex/static_root/js/choices-admin.json.gz +0 -0
- codex/static_root/js/choices.b60817ba0a93.json +1 -0
- codex/static_root/js/choices.b60817ba0a93.json.br +0 -0
- codex/static_root/js/choices.b60817ba0a93.json.gz +0 -0
- codex/static_root/js/choices.json +1 -1
- codex/static_root/js/choices.json.br +0 -0
- codex/static_root/js/choices.json.gz +0 -0
- codex/static_root/manifest.b5fe5d7ef44e.json +641 -0
- codex/static_root/manifest.b5fe5d7ef44e.json.br +0 -0
- codex/static_root/manifest.b5fe5d7ef44e.json.gz +0 -0
- codex/static_root/manifest.json +298 -279
- codex/static_root/manifest.json.br +0 -0
- codex/static_root/manifest.json.gz +0 -0
- codex/static_root/staticfiles.json +1 -1
- codex/status_controller.py +2 -11
- codex/urls/api/auth.py +1 -2
- codex/urls/api/browser.py +4 -13
- codex/urls/api/reader.py +9 -3
- codex/urls/api/v3.py +0 -2
- codex/urls/opds/binary.py +1 -1
- codex/views/admin/api_key.py +8 -7
- codex/views/admin/flag.py +7 -2
- codex/views/admin/group.py +6 -2
- codex/views/admin/library.py +37 -44
- codex/views/admin/stats.py +83 -20
- codex/views/admin/tasks.py +12 -26
- codex/views/admin/user.py +9 -3
- codex/views/auth.py +54 -31
- codex/views/bookmark.py +72 -92
- codex/views/browser/base.py +90 -42
- codex/views/browser/browser.py +371 -92
- codex/views/browser/{annotations.py → browser_annotations.py} +121 -67
- codex/views/browser/browser_breadcrumbs.py +175 -0
- codex/views/browser/browser_order_by.py +63 -0
- codex/views/browser/choices.py +85 -38
- codex/views/browser/const.py +3 -0
- codex/views/browser/filters/annotations.py +19 -87
- codex/views/browser/filters/bookmark.py +12 -24
- codex/views/browser/filters/field.py +6 -8
- codex/views/browser/filters/group.py +14 -35
- codex/views/browser/filters/search.py +20 -31
- codex/views/browser/metadata.py +73 -112
- codex/views/browser/session.py +12 -0
- codex/views/const.py +0 -140
- codex/views/cover.py +77 -0
- codex/views/download.py +8 -5
- codex/views/frontend.py +2 -4
- codex/views/opds/authentication_v1.py +45 -46
- codex/views/opds/binary.py +10 -5
- codex/views/opds/const.py +0 -13
- codex/views/opds/urls.py +4 -6
- codex/views/opds/util.py +12 -4
- codex/views/opds/v1/entry/links.py +33 -18
- codex/views/opds/v1/facets.py +7 -7
- codex/views/opds/v1/feed.py +45 -55
- codex/views/opds/v1/links.py +5 -7
- codex/views/opds/v1/opensearch_v1.py +6 -2
- codex/views/opds/v2/feed.py +26 -25
- codex/views/opds/v2/links.py +2 -4
- codex/views/opds/v2/publications.py +54 -34
- codex/views/opds/v2/top_links.py +2 -2
- codex/views/reader/page.py +8 -15
- codex/views/reader/reader.py +322 -19
- codex/views/reader/{settings.py → session.py} +2 -4
- codex/views/session.py +102 -83
- codex/views/template.py +3 -3
- codex/views/version.py +2 -2
- codex/websockets/consumers.py +10 -14
- {codex-1.6.0.dist-info → codex-1.6.0a1.dist-info}/METADATA +15 -22
- {codex-1.6.0.dist-info → codex-1.6.0a1.dist-info}/RECORD +448 -466
- codex/librarian/importer/cache.py +0 -93
- codex/librarian/importer/create_covers.py +0 -96
- codex/librarian/importer/importer.py +0 -96
- codex/librarian/importer/init.py +0 -265
- codex/librarian/importer/link_covers.py +0 -73
- codex/librarian/importer/query_covers.py +0 -52
- codex/migrations/0027_import_order_and_covers.py +0 -280
- codex/serializers/browser/mtime.py +0 -21
- codex/serializers/fields.py +0 -149
- codex/serializers/settings.py +0 -12
- codex/static_root/assets/VCheckbox-DanrzdHo.8ec5e2094cbf.js +0 -1
- codex/static_root/assets/VCheckbox-DanrzdHo.8ec5e2094cbf.js.br +0 -0
- codex/static_root/assets/VCheckbox-DanrzdHo.8ec5e2094cbf.js.gz +0 -0
- codex/static_root/assets/VCheckbox-DanrzdHo.js +0 -1
- codex/static_root/assets/VCheckbox-DanrzdHo.js.br +0 -0
- codex/static_root/assets/VCheckbox-DanrzdHo.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DxNOKONG.5ab34c4c47aa.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DxNOKONG.5ab34c4c47aa.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-DxNOKONG.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-DxNOKONG.js.gz +0 -0
- codex/static_root/assets/VCombobox-DDvdoPTG.11d080e8edd7.js +0 -1
- codex/static_root/assets/VCombobox-DDvdoPTG.11d080e8edd7.js.br +0 -0
- codex/static_root/assets/VCombobox-DDvdoPTG.11d080e8edd7.js.gz +0 -0
- codex/static_root/assets/VCombobox-DDvdoPTG.js +0 -1
- codex/static_root/assets/VCombobox-DDvdoPTG.js.br +0 -0
- codex/static_root/assets/VCombobox-DDvdoPTG.js.gz +0 -0
- codex/static_root/assets/VDialog-Bd5dN_E1.457666d7fce1.js +0 -1
- codex/static_root/assets/VDialog-Bd5dN_E1.457666d7fce1.js.br +0 -0
- codex/static_root/assets/VDialog-Bd5dN_E1.457666d7fce1.js.gz +0 -0
- codex/static_root/assets/VDialog-Bd5dN_E1.js +0 -1
- codex/static_root/assets/VDialog-Bd5dN_E1.js.br +0 -0
- codex/static_root/assets/VDialog-Bd5dN_E1.js.gz +0 -0
- codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css.br +0 -0
- codex/static_root/assets/VDialog-lQ13FnRR.1c801ad756b2.css.gz +0 -0
- codex/static_root/assets/VDialog-lQ13FnRR.css.br +0 -0
- codex/static_root/assets/VDialog-lQ13FnRR.css.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DqTuYpTR.12673cf9f391.js +0 -1
- codex/static_root/assets/VExpansionPanels-DqTuYpTR.12673cf9f391.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DqTuYpTR.12673cf9f391.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DqTuYpTR.js +0 -1
- codex/static_root/assets/VExpansionPanels-DqTuYpTR.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DqTuYpTR.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-DKb8XPr-.3cf6bf5bf3bc.js +0 -1
- codex/static_root/assets/VRadioGroup-DKb8XPr-.3cf6bf5bf3bc.js.br +0 -0
- codex/static_root/assets/VRadioGroup-DKb8XPr-.3cf6bf5bf3bc.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-DKb8XPr-.js +0 -1
- codex/static_root/assets/VRadioGroup-DKb8XPr-.js.br +0 -0
- codex/static_root/assets/VRadioGroup-DKb8XPr-.js.gz +0 -0
- codex/static_root/assets/VSelect-C_yPbyCG.08bd6b53a7ce.js +0 -1
- codex/static_root/assets/VSelect-C_yPbyCG.08bd6b53a7ce.js.br +0 -0
- codex/static_root/assets/VSelect-C_yPbyCG.08bd6b53a7ce.js.gz +0 -0
- codex/static_root/assets/VSelect-C_yPbyCG.js +0 -1
- codex/static_root/assets/VSelect-C_yPbyCG.js.br +0 -0
- codex/static_root/assets/VSelect-C_yPbyCG.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-CmFPvGMS.802c9b3e6e28.js +0 -1
- codex/static_root/assets/VSelectionControl-CmFPvGMS.802c9b3e6e28.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CmFPvGMS.802c9b3e6e28.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-CmFPvGMS.js +0 -1
- codex/static_root/assets/VSelectionControl-CmFPvGMS.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CmFPvGMS.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-D5FZWsM1.a47491fe3e6d.js +0 -1
- codex/static_root/assets/VSlideGroup-D5FZWsM1.a47491fe3e6d.js.br +0 -0
- codex/static_root/assets/VSlideGroup-D5FZWsM1.a47491fe3e6d.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-D5FZWsM1.js +0 -1
- codex/static_root/assets/VSlideGroup-D5FZWsM1.js.br +0 -0
- codex/static_root/assets/VSlideGroup-D5FZWsM1.js.gz +0 -0
- codex/static_root/assets/VTable-2RHFqfg6.f0f2106b158b.js.br +0 -0
- codex/static_root/assets/VTable-2RHFqfg6.f0f2106b158b.js.gz +0 -0
- codex/static_root/assets/VTable-2RHFqfg6.js.br +0 -0
- codex/static_root/assets/VTable-2RHFqfg6.js.gz +0 -0
- codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css +0 -1
- codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.br +0 -0
- codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css.gz +0 -0
- codex/static_root/assets/VTextField-BssVoDhB.css +0 -1
- codex/static_root/assets/VTextField-BssVoDhB.css.br +0 -0
- codex/static_root/assets/VTextField-BssVoDhB.css.gz +0 -0
- codex/static_root/assets/VTextField-o1N9ylIb.7fffaeff8d40.js +0 -1
- codex/static_root/assets/VTextField-o1N9ylIb.7fffaeff8d40.js.br +0 -0
- codex/static_root/assets/VTextField-o1N9ylIb.7fffaeff8d40.js.gz +0 -0
- codex/static_root/assets/VTextField-o1N9ylIb.js +0 -1
- codex/static_root/assets/VTextField-o1N9ylIb.js.br +0 -0
- codex/static_root/assets/VTextField-o1N9ylIb.js.gz +0 -0
- codex/static_root/assets/VWindowItem-C_zvuz9C.663fa48efea4.js +0 -1
- codex/static_root/assets/VWindowItem-C_zvuz9C.663fa48efea4.js.br +0 -0
- codex/static_root/assets/VWindowItem-C_zvuz9C.663fa48efea4.js.gz +0 -0
- codex/static_root/assets/VWindowItem-C_zvuz9C.js +0 -1
- codex/static_root/assets/VWindowItem-C_zvuz9C.js.br +0 -0
- codex/static_root/assets/VWindowItem-C_zvuz9C.js.gz +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.82c98714bcf1.css.br +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.82c98714bcf1.css.gz +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.css.br +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.css.gz +0 -0
- codex/static_root/assets/admin-DHyHEWZ3.7a8015456c0f.js +0 -1
- codex/static_root/assets/admin-DHyHEWZ3.7a8015456c0f.js.br +0 -0
- codex/static_root/assets/admin-DHyHEWZ3.7a8015456c0f.js.gz +0 -0
- codex/static_root/assets/admin-DHyHEWZ3.js +0 -1
- codex/static_root/assets/admin-DHyHEWZ3.js.br +0 -0
- codex/static_root/assets/admin-DHyHEWZ3.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-BXpIDQXM.19507a95375b.js +0 -30
- codex/static_root/assets/admin-drawer-panel-BXpIDQXM.19507a95375b.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-BXpIDQXM.19507a95375b.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-BXpIDQXM.js +0 -30
- codex/static_root/assets/admin-drawer-panel-BXpIDQXM.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-BXpIDQXM.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css +0 -1
- codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-mne3FIj6.561b3f75fe65.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-mne3FIj6.css +0 -1
- codex/static_root/assets/admin-drawer-panel-mne3FIj6.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-mne3FIj6.css.gz +0 -0
- codex/static_root/assets/browser-D0Vjmmp_.a1bfaf48d65f.js +0 -1
- codex/static_root/assets/browser-D0Vjmmp_.a1bfaf48d65f.js.br +0 -0
- codex/static_root/assets/browser-D0Vjmmp_.a1bfaf48d65f.js.gz +0 -0
- codex/static_root/assets/browser-D0Vjmmp_.js +0 -1
- codex/static_root/assets/browser-D0Vjmmp_.js.br +0 -0
- codex/static_root/assets/browser-D0Vjmmp_.js.gz +0 -0
- codex/static_root/assets/browser-D7QQDneO.155cb612ed0c.css +0 -1
- codex/static_root/assets/browser-D7QQDneO.155cb612ed0c.css.br +0 -0
- codex/static_root/assets/browser-D7QQDneO.155cb612ed0c.css.gz +0 -0
- codex/static_root/assets/browser-D7QQDneO.css +0 -1
- codex/static_root/assets/browser-D7QQDneO.css.br +0 -0
- codex/static_root/assets/browser-D7QQDneO.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css +0 -1
- codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css.br +0 -0
- codex/static_root/assets/change-password-dialog-0u6IJA87.5f9a9aa573b7.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-0u6IJA87.css +0 -1
- codex/static_root/assets/change-password-dialog-0u6IJA87.css.br +0 -0
- codex/static_root/assets/change-password-dialog-0u6IJA87.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-BBsJLPXZ.e642f7e2b96f.js +0 -1
- codex/static_root/assets/change-password-dialog-BBsJLPXZ.e642f7e2b96f.js.br +0 -0
- codex/static_root/assets/change-password-dialog-BBsJLPXZ.e642f7e2b96f.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-BBsJLPXZ.js +0 -1
- codex/static_root/assets/change-password-dialog-BBsJLPXZ.js.br +0 -0
- codex/static_root/assets/change-password-dialog-BBsJLPXZ.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-DCKvg3ai.2a3277b3c147.js +0 -1
- codex/static_root/assets/confirm-dialog-DCKvg3ai.2a3277b3c147.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DCKvg3ai.2a3277b3c147.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-DCKvg3ai.js +0 -1
- codex/static_root/assets/confirm-dialog-DCKvg3ai.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DCKvg3ai.js.gz +0 -0
- codex/static_root/assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js +0 -1
- codex/static_root/assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js.br +0 -0
- codex/static_root/assets/copy-to-clipboard-DoUvDJVx.js +0 -1
- codex/static_root/assets/copy-to-clipboard-DoUvDJVx.js.br +0 -0
- codex/static_root/assets/datetime-column-DeCthByU.1f3bf499e063.css +0 -1
- codex/static_root/assets/datetime-column-DeCthByU.css +0 -1
- codex/static_root/assets/datetime-column-jHKA_uNm.039c7da2036f.js +0 -1
- codex/static_root/assets/datetime-column-jHKA_uNm.039c7da2036f.js.br +0 -0
- codex/static_root/assets/datetime-column-jHKA_uNm.039c7da2036f.js.gz +0 -0
- codex/static_root/assets/datetime-column-jHKA_uNm.js +0 -1
- codex/static_root/assets/datetime-column-jHKA_uNm.js.br +0 -0
- codex/static_root/assets/datetime-column-jHKA_uNm.js.gz +0 -0
- codex/static_root/assets/filter-DgPg2ts9.af0fcf0888c6.js +0 -1
- codex/static_root/assets/filter-DgPg2ts9.af0fcf0888c6.js.br +0 -0
- codex/static_root/assets/filter-DgPg2ts9.af0fcf0888c6.js.gz +0 -0
- codex/static_root/assets/filter-DgPg2ts9.js +0 -1
- codex/static_root/assets/filter-DgPg2ts9.js.br +0 -0
- codex/static_root/assets/filter-DgPg2ts9.js.gz +0 -0
- codex/static_root/assets/flag-tab-9qxOALxP.f89bc9891671.js +0 -1
- codex/static_root/assets/flag-tab-9qxOALxP.f89bc9891671.js.br +0 -0
- codex/static_root/assets/flag-tab-9qxOALxP.f89bc9891671.js.gz +0 -0
- codex/static_root/assets/flag-tab-9qxOALxP.js +0 -1
- codex/static_root/assets/flag-tab-9qxOALxP.js.br +0 -0
- codex/static_root/assets/flag-tab-9qxOALxP.js.gz +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css +0 -1
- codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css.br +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css.gz +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.css +0 -1
- codex/static_root/assets/flag-tab-BNwbLfrN.css.br +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.css.gz +0 -0
- codex/static_root/assets/group-tab-D5vWrihT.1afb2ce453ff.js.br +0 -0
- codex/static_root/assets/group-tab-D5vWrihT.1afb2ce453ff.js.gz +0 -0
- codex/static_root/assets/group-tab-D5vWrihT.js.br +0 -0
- codex/static_root/assets/group-tab-D5vWrihT.js.gz +0 -0
- codex/static_root/assets/http-error-B4FHoKfs.141fdae409bc.js +0 -1
- codex/static_root/assets/http-error-B4FHoKfs.141fdae409bc.js.br +0 -0
- codex/static_root/assets/http-error-B4FHoKfs.141fdae409bc.js.gz +0 -0
- codex/static_root/assets/http-error-B4FHoKfs.js +0 -1
- codex/static_root/assets/http-error-B4FHoKfs.js.br +0 -0
- codex/static_root/assets/http-error-B4FHoKfs.js.gz +0 -0
- codex/static_root/assets/http-error-DKulXuTl.95e42988d5d5.css +0 -1
- codex/static_root/assets/http-error-DKulXuTl.95e42988d5d5.css.gz +0 -0
- codex/static_root/assets/http-error-DKulXuTl.css +0 -1
- codex/static_root/assets/http-error-DKulXuTl.css.gz +0 -0
- codex/static_root/assets/library-tab-BN0SfPcH.913e236f625e.css +0 -1
- codex/static_root/assets/library-tab-BN0SfPcH.913e236f625e.css.br +0 -0
- codex/static_root/assets/library-tab-BN0SfPcH.913e236f625e.css.gz +0 -0
- codex/static_root/assets/library-tab-BN0SfPcH.css +0 -1
- codex/static_root/assets/library-tab-BN0SfPcH.css.br +0 -0
- codex/static_root/assets/library-tab-BN0SfPcH.css.gz +0 -0
- codex/static_root/assets/library-tab-BWo0cmzk.0e3d67d0c41a.js +0 -1
- codex/static_root/assets/library-tab-BWo0cmzk.0e3d67d0c41a.js.br +0 -0
- codex/static_root/assets/library-tab-BWo0cmzk.0e3d67d0c41a.js.gz +0 -0
- codex/static_root/assets/library-tab-BWo0cmzk.js +0 -1
- codex/static_root/assets/library-tab-BWo0cmzk.js.br +0 -0
- codex/static_root/assets/library-tab-BWo0cmzk.js.gz +0 -0
- codex/static_root/assets/main-Ztp855PW.css.br +0 -0
- codex/static_root/assets/main-Ztp855PW.d46d718fac45.css.br +0 -0
- codex/static_root/assets/main-ipmlipkF.5e60e6e8e447.js +0 -32
- codex/static_root/assets/main-ipmlipkF.5e60e6e8e447.js.br +0 -0
- codex/static_root/assets/main-ipmlipkF.5e60e6e8e447.js.gz +0 -0
- codex/static_root/assets/main-ipmlipkF.js +0 -32
- codex/static_root/assets/main-ipmlipkF.js.br +0 -0
- codex/static_root/assets/main-ipmlipkF.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css +0 -1
- codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-BA9ifTed.b4865334ee08.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-BA9ifTed.css +0 -1
- codex/static_root/assets/pagination-toolbar-BA9ifTed.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-BA9ifTed.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.b3341b8028df.js +0 -1
- codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.b3341b8028df.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.b3341b8028df.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.js +0 -1
- codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-kZ-Xdv8c.js.gz +0 -0
- codex/static_root/assets/pdf-doc-C2StaYUz.cb848834dbe1.js +0 -305
- codex/static_root/assets/pdf-doc-C2StaYUz.cb848834dbe1.js.br +0 -0
- codex/static_root/assets/pdf-doc-C2StaYUz.cb848834dbe1.js.gz +0 -0
- codex/static_root/assets/pdf-doc-C2StaYUz.js +0 -305
- codex/static_root/assets/pdf-doc-C2StaYUz.js.br +0 -0
- codex/static_root/assets/pdf-doc-C2StaYUz.js.gz +0 -0
- codex/static_root/assets/reader-CCnq3j1-.b6b38ed5521e.js +0 -2
- codex/static_root/assets/reader-CCnq3j1-.b6b38ed5521e.js.br +0 -0
- codex/static_root/assets/reader-CCnq3j1-.b6b38ed5521e.js.gz +0 -0
- codex/static_root/assets/reader-CCnq3j1-.js +0 -2
- codex/static_root/assets/reader-CCnq3j1-.js.br +0 -0
- codex/static_root/assets/reader-CCnq3j1-.js.gz +0 -0
- codex/static_root/assets/reader-CqXFa_gE.78267e9de0c2.css +0 -1
- codex/static_root/assets/reader-CqXFa_gE.78267e9de0c2.css.br +0 -0
- codex/static_root/assets/reader-CqXFa_gE.78267e9de0c2.css.gz +0 -0
- codex/static_root/assets/reader-CqXFa_gE.css +0 -1
- codex/static_root/assets/reader-CqXFa_gE.css.br +0 -0
- codex/static_root/assets/reader-CqXFa_gE.css.gz +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.98e65384c3c9.css.br +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.98e65384c3c9.css.gz +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.css.br +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.css.gz +0 -0
- codex/static_root/assets/relation-chips-C9ysW0tU.670f1d1f273f.js +0 -1
- codex/static_root/assets/relation-chips-C9ysW0tU.670f1d1f273f.js.br +0 -0
- codex/static_root/assets/relation-chips-C9ysW0tU.670f1d1f273f.js.gz +0 -0
- codex/static_root/assets/relation-chips-C9ysW0tU.js +0 -1
- codex/static_root/assets/relation-chips-C9ysW0tU.js.br +0 -0
- codex/static_root/assets/relation-chips-C9ysW0tU.js.gz +0 -0
- codex/static_root/assets/settings-drawer-C0ofzAhW.c0def8f383cb.js +0 -2
- codex/static_root/assets/settings-drawer-C0ofzAhW.c0def8f383cb.js.br +0 -0
- codex/static_root/assets/settings-drawer-C0ofzAhW.c0def8f383cb.js.gz +0 -0
- codex/static_root/assets/settings-drawer-C0ofzAhW.js +0 -2
- codex/static_root/assets/settings-drawer-C0ofzAhW.js.br +0 -0
- codex/static_root/assets/settings-drawer-C0ofzAhW.js.gz +0 -0
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css +0 -1
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.br +0 -0
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.gz +0 -0
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.css +0 -1
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.br +0 -0
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.gz +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css +0 -1
- codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css.br +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css.gz +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.css +0 -1
- codex/static_root/assets/stats-tab-B4yKuY0c.css.br +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.css.gz +0 -0
- codex/static_root/assets/stats-tab-BqJj7j1w.38a3459d61ea.js +0 -1
- codex/static_root/assets/stats-tab-BqJj7j1w.38a3459d61ea.js.br +0 -0
- codex/static_root/assets/stats-tab-BqJj7j1w.38a3459d61ea.js.gz +0 -0
- codex/static_root/assets/stats-tab-BqJj7j1w.js +0 -1
- codex/static_root/assets/stats-tab-BqJj7j1w.js.br +0 -0
- codex/static_root/assets/stats-tab-BqJj7j1w.js.gz +0 -0
- codex/static_root/assets/task-tab-BsPzNk8S.e00630a60b43.js +0 -1
- codex/static_root/assets/task-tab-BsPzNk8S.e00630a60b43.js.br +0 -0
- codex/static_root/assets/task-tab-BsPzNk8S.e00630a60b43.js.gz +0 -0
- codex/static_root/assets/task-tab-BsPzNk8S.js +0 -1
- codex/static_root/assets/task-tab-BsPzNk8S.js.br +0 -0
- codex/static_root/assets/task-tab-BsPzNk8S.js.gz +0 -0
- codex/static_root/assets/to-case-KvqtSug2.9c02da2e47c7.js +0 -1
- codex/static_root/assets/to-case-KvqtSug2.9c02da2e47c7.js.br +0 -0
- codex/static_root/assets/to-case-KvqtSug2.js +0 -1
- codex/static_root/assets/to-case-KvqtSug2.js.br +0 -0
- codex/static_root/assets/unauthorized-CibJYD8o.4c2de98c2b53.css.br +0 -0
- codex/static_root/assets/unauthorized-CibJYD8o.4c2de98c2b53.css.gz +0 -0
- codex/static_root/assets/unauthorized-CibJYD8o.css.br +0 -0
- codex/static_root/assets/unauthorized-CibJYD8o.css.gz +0 -0
- codex/static_root/assets/unauthorized-DwSdNzX2.f418e69f3afe.js +0 -1
- codex/static_root/assets/unauthorized-DwSdNzX2.f418e69f3afe.js.br +0 -0
- codex/static_root/assets/unauthorized-DwSdNzX2.f418e69f3afe.js.gz +0 -0
- codex/static_root/assets/unauthorized-DwSdNzX2.js +0 -1
- codex/static_root/assets/unauthorized-DwSdNzX2.js.br +0 -0
- codex/static_root/assets/unauthorized-DwSdNzX2.js.gz +0 -0
- codex/static_root/assets/user-tab-DrJOb9Ys.083d993726d8.js +0 -1
- codex/static_root/assets/user-tab-DrJOb9Ys.083d993726d8.js.br +0 -0
- codex/static_root/assets/user-tab-DrJOb9Ys.083d993726d8.js.gz +0 -0
- codex/static_root/assets/user-tab-DrJOb9Ys.js +0 -1
- codex/static_root/assets/user-tab-DrJOb9Ys.js.br +0 -0
- codex/static_root/assets/user-tab-DrJOb9Ys.js.gz +0 -0
- codex/static_root/js/choices-admin.3521e2a863df.json +0 -1
- codex/static_root/js/choices-admin.3521e2a863df.json.br +0 -0
- codex/static_root/js/choices-admin.3521e2a863df.json.gz +0 -0
- codex/static_root/js/choices.2f6b0359e1ef.json +0 -1
- codex/static_root/js/choices.2f6b0359e1ef.json.br +0 -0
- codex/static_root/js/choices.2f6b0359e1ef.json.gz +0 -0
- codex/static_root/manifest.1c84116d9a0a.json +0 -622
- codex/static_root/manifest.1c84116d9a0a.json.br +0 -0
- codex/static_root/manifest.1c84116d9a0a.json.gz +0 -0
- codex/util.py +0 -12
- codex/views/admin/auth.py +0 -28
- codex/views/browser/breadcrumbs.py +0 -202
- codex/views/browser/cover.py +0 -165
- codex/views/browser/mtime.py +0 -61
- codex/views/browser/order_by.py +0 -65
- codex/views/browser/paginate.py +0 -106
- codex/views/browser/settings.py +0 -66
- codex/views/browser/title.py +0 -48
- codex/views/browser/validate.py +0 -161
- codex/views/opds/auth.py +0 -17
- codex/views/public.py +0 -36
- codex/views/reader/arcs.py +0 -92
- codex/views/reader/books.py +0 -181
- codex/views/reader/init.py +0 -125
- codex/views/settings.py +0 -47
- codex/views/util.py +0 -77
- {codex-1.6.0.dist-info → codex-1.6.0a1.dist-info}/LICENSE +0 -0
- {codex-1.6.0.dist-info → codex-1.6.0a1.dist-info}/WHEEL +0 -0
- {codex-1.6.0.dist-info → codex-1.6.0a1.dist-info}/entry_points.txt +0 -0
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
"""Generated by Django 5.0.6 on 2024-06-06 02:22."""
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
from contextlib import suppress
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
|
|
7
|
-
import django.db.models.deletion
|
|
8
|
-
from django.db import migrations, models
|
|
9
|
-
|
|
10
|
-
from codex.models.util import get_sort_name
|
|
11
|
-
|
|
12
|
-
CONFIG_PATH = Path(os.environ.get("CODEX_CONFIG_DIR", Path.cwd() / "config"))
|
|
13
|
-
COVER_ROOT = CONFIG_PATH / "cache" / "covers"
|
|
14
|
-
_GROUP_MODEL_NAMES = (
|
|
15
|
-
"publisher",
|
|
16
|
-
"imprint",
|
|
17
|
-
"series",
|
|
18
|
-
"storyarc",
|
|
19
|
-
"folder",
|
|
20
|
-
"comic",
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def _set_sort_name(obj):
|
|
25
|
-
"""Create sort_name for model."""
|
|
26
|
-
obj.sort_name = get_sort_name(obj.name)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def _generate_sort_name(apps, _schema_editor):
|
|
30
|
-
"""Update new sort_name field."""
|
|
31
|
-
for model_name in _GROUP_MODEL_NAMES:
|
|
32
|
-
model = apps.get_model("codex", model_name)
|
|
33
|
-
update_fields = ("sort_name",)
|
|
34
|
-
only_fields = ("name", *update_fields)
|
|
35
|
-
update_groups = []
|
|
36
|
-
objs = model.objects.only(*only_fields)
|
|
37
|
-
for obj in objs:
|
|
38
|
-
_set_sort_name(obj)
|
|
39
|
-
update_groups.append(obj)
|
|
40
|
-
if update_groups:
|
|
41
|
-
model.objects.bulk_update(update_groups, update_fields)
|
|
42
|
-
print(f"\tUpdated sort_name for {len(update_groups)} {model_name}s")
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def _remove_cover_symlinks(_apps, _schema_editor):
|
|
46
|
-
"""Remove old missing cover symlinks."""
|
|
47
|
-
# Handled programmatically now.
|
|
48
|
-
count = 0
|
|
49
|
-
for dirpath_str, _, filenames in os.walk(COVER_ROOT):
|
|
50
|
-
dirpath = Path(dirpath_str)
|
|
51
|
-
for filename in filenames:
|
|
52
|
-
full_path = dirpath / filename
|
|
53
|
-
if full_path.is_symlink():
|
|
54
|
-
with suppress(OSError):
|
|
55
|
-
full_path.unlink(missing_ok=True)
|
|
56
|
-
count += 1
|
|
57
|
-
if count:
|
|
58
|
-
print(f"Removed {count} missing-cover symlinks from cover cache.")
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
class Migration(migrations.Migration):
|
|
62
|
-
"""Migrate db."""
|
|
63
|
-
|
|
64
|
-
dependencies = [
|
|
65
|
-
("codex", "0026_comicbox_1"),
|
|
66
|
-
]
|
|
67
|
-
|
|
68
|
-
operations = [
|
|
69
|
-
migrations.AddField(
|
|
70
|
-
model_name="comic",
|
|
71
|
-
name="sort_name",
|
|
72
|
-
field=models.CharField(db_index=True, default="", max_length=128),
|
|
73
|
-
),
|
|
74
|
-
migrations.AddField(
|
|
75
|
-
model_name="folder",
|
|
76
|
-
name="sort_name",
|
|
77
|
-
field=models.CharField(db_index=True, default="", max_length=128),
|
|
78
|
-
),
|
|
79
|
-
migrations.AddField(
|
|
80
|
-
model_name="imprint",
|
|
81
|
-
name="sort_name",
|
|
82
|
-
field=models.CharField(db_index=True, default="", max_length=128),
|
|
83
|
-
),
|
|
84
|
-
migrations.AddField(
|
|
85
|
-
model_name="library",
|
|
86
|
-
name="covers_only",
|
|
87
|
-
field=models.BooleanField(db_index=True, default=False),
|
|
88
|
-
),
|
|
89
|
-
migrations.AddField(
|
|
90
|
-
model_name="publisher",
|
|
91
|
-
name="sort_name",
|
|
92
|
-
field=models.CharField(db_index=True, default="", max_length=128),
|
|
93
|
-
),
|
|
94
|
-
migrations.AddField(
|
|
95
|
-
model_name="series",
|
|
96
|
-
name="sort_name",
|
|
97
|
-
field=models.CharField(db_index=True, default="", max_length=128),
|
|
98
|
-
),
|
|
99
|
-
migrations.AddField(
|
|
100
|
-
model_name="storyarc",
|
|
101
|
-
name="sort_name",
|
|
102
|
-
field=models.CharField(db_index=True, default="", max_length=128),
|
|
103
|
-
),
|
|
104
|
-
migrations.AlterField(
|
|
105
|
-
model_name="adminflag",
|
|
106
|
-
name="key",
|
|
107
|
-
field=models.CharField(
|
|
108
|
-
choices=[
|
|
109
|
-
("FV", "Folder View"),
|
|
110
|
-
("RG", "Registration"),
|
|
111
|
-
("NU", "Non Users"),
|
|
112
|
-
("AU", "Auto Update"),
|
|
113
|
-
("SO", "Search Index Optimize"),
|
|
114
|
-
("IM", "Import Metadata"),
|
|
115
|
-
],
|
|
116
|
-
db_index=True,
|
|
117
|
-
max_length=2,
|
|
118
|
-
),
|
|
119
|
-
),
|
|
120
|
-
migrations.AlterField(
|
|
121
|
-
model_name="librarianstatus",
|
|
122
|
-
name="status_type",
|
|
123
|
-
field=models.CharField(
|
|
124
|
-
choices=[
|
|
125
|
-
("CCC", "Create Covers"),
|
|
126
|
-
("CCD", "Purge Covers"),
|
|
127
|
-
("CFO", "Find Orphan"),
|
|
128
|
-
("IDM", "Dirs Moved"),
|
|
129
|
-
("IFM", "Files Moved"),
|
|
130
|
-
("ITR", "Aggregate Tags"),
|
|
131
|
-
("ITQ", "Query Missing Fks"),
|
|
132
|
-
("ITC", "Create Fks"),
|
|
133
|
-
("IDU", "Dirs Modified"),
|
|
134
|
-
("IFU", "Files Modified"),
|
|
135
|
-
("IFC", "Files Created"),
|
|
136
|
-
("IMQ", "Query M2M Fields"),
|
|
137
|
-
("IMC", "Link M2M Fields"),
|
|
138
|
-
("IDD", "Dirs Deleted"),
|
|
139
|
-
("IFD", "Files Deleted"),
|
|
140
|
-
("IFI", "Failed Imports"),
|
|
141
|
-
("ICQ", "Query Missing Covers"),
|
|
142
|
-
("ICM", "Covers Moved"),
|
|
143
|
-
("ICU", "Covers Modified"),
|
|
144
|
-
("ICC", "Covers Created"),
|
|
145
|
-
("ICD", "Covers Deleted"),
|
|
146
|
-
("ICL", "Covers Link"),
|
|
147
|
-
("IGU", "Group Update"),
|
|
148
|
-
("IAF", "Adopt Folders"),
|
|
149
|
-
("JTD", "Cleanup Fk"),
|
|
150
|
-
("JCU", "Codex Update"),
|
|
151
|
-
("JCR", "Codex Restart"),
|
|
152
|
-
("JCS", "Codex Stop"),
|
|
153
|
-
("JDO", "Db Optimize"),
|
|
154
|
-
("JDB", "Db Backup"),
|
|
155
|
-
("JSD", "Cleanup Sessions"),
|
|
156
|
-
("JCD", "Cleanup Covers"),
|
|
157
|
-
("SIX", "Search Index Clear"),
|
|
158
|
-
("SIU", "Search Index Update"),
|
|
159
|
-
("SID", "Search Index Remove"),
|
|
160
|
-
("SIM", "Search Index Merge"),
|
|
161
|
-
("WPO", "Poll"),
|
|
162
|
-
],
|
|
163
|
-
db_index=True,
|
|
164
|
-
max_length=3,
|
|
165
|
-
),
|
|
166
|
-
),
|
|
167
|
-
migrations.AlterField(
|
|
168
|
-
model_name="timestamp",
|
|
169
|
-
name="key",
|
|
170
|
-
field=models.CharField(
|
|
171
|
-
choices=[
|
|
172
|
-
("JA", "Janitor"),
|
|
173
|
-
("VR", "Codex Version"),
|
|
174
|
-
("SI", "Search Index UUID"),
|
|
175
|
-
("AP", "API Key"),
|
|
176
|
-
],
|
|
177
|
-
db_index=True,
|
|
178
|
-
max_length=2,
|
|
179
|
-
),
|
|
180
|
-
),
|
|
181
|
-
migrations.CreateModel(
|
|
182
|
-
name="CustomCover",
|
|
183
|
-
fields=[
|
|
184
|
-
(
|
|
185
|
-
"id",
|
|
186
|
-
models.AutoField(
|
|
187
|
-
auto_created=True,
|
|
188
|
-
primary_key=True,
|
|
189
|
-
serialize=False,
|
|
190
|
-
verbose_name="ID",
|
|
191
|
-
),
|
|
192
|
-
),
|
|
193
|
-
("created_at", models.DateTimeField(auto_now_add=True)),
|
|
194
|
-
("updated_at", models.DateTimeField(auto_now=True)),
|
|
195
|
-
("path", models.CharField(db_index=True, max_length=4095)),
|
|
196
|
-
("stat", models.JSONField(null=True)),
|
|
197
|
-
(
|
|
198
|
-
"group",
|
|
199
|
-
models.CharField(
|
|
200
|
-
choices=[
|
|
201
|
-
("p", "P"),
|
|
202
|
-
("i", "I"),
|
|
203
|
-
("s", "S"),
|
|
204
|
-
("a", "A"),
|
|
205
|
-
("f", "F"),
|
|
206
|
-
],
|
|
207
|
-
db_index=True,
|
|
208
|
-
max_length=1,
|
|
209
|
-
),
|
|
210
|
-
),
|
|
211
|
-
(
|
|
212
|
-
"sort_name",
|
|
213
|
-
models.CharField(db_index=True, default="", max_length=128),
|
|
214
|
-
),
|
|
215
|
-
(
|
|
216
|
-
"library",
|
|
217
|
-
models.ForeignKey(
|
|
218
|
-
on_delete=django.db.models.deletion.CASCADE, to="codex.library"
|
|
219
|
-
),
|
|
220
|
-
),
|
|
221
|
-
],
|
|
222
|
-
options={
|
|
223
|
-
"get_latest_by": "updated_at",
|
|
224
|
-
"abstract": False,
|
|
225
|
-
"unique_together": {("library", "path")},
|
|
226
|
-
},
|
|
227
|
-
),
|
|
228
|
-
migrations.AddField(
|
|
229
|
-
model_name="folder",
|
|
230
|
-
name="custom_cover",
|
|
231
|
-
field=models.ForeignKey(
|
|
232
|
-
default=None,
|
|
233
|
-
null=True,
|
|
234
|
-
on_delete=django.db.models.deletion.SET_DEFAULT,
|
|
235
|
-
to="codex.customcover",
|
|
236
|
-
),
|
|
237
|
-
),
|
|
238
|
-
migrations.AddField(
|
|
239
|
-
model_name="imprint",
|
|
240
|
-
name="custom_cover",
|
|
241
|
-
field=models.ForeignKey(
|
|
242
|
-
default=None,
|
|
243
|
-
null=True,
|
|
244
|
-
on_delete=django.db.models.deletion.SET_DEFAULT,
|
|
245
|
-
to="codex.customcover",
|
|
246
|
-
),
|
|
247
|
-
),
|
|
248
|
-
migrations.AddField(
|
|
249
|
-
model_name="publisher",
|
|
250
|
-
name="custom_cover",
|
|
251
|
-
field=models.ForeignKey(
|
|
252
|
-
default=None,
|
|
253
|
-
null=True,
|
|
254
|
-
on_delete=django.db.models.deletion.SET_DEFAULT,
|
|
255
|
-
to="codex.customcover",
|
|
256
|
-
),
|
|
257
|
-
),
|
|
258
|
-
migrations.AddField(
|
|
259
|
-
model_name="series",
|
|
260
|
-
name="custom_cover",
|
|
261
|
-
field=models.ForeignKey(
|
|
262
|
-
default=None,
|
|
263
|
-
null=True,
|
|
264
|
-
on_delete=django.db.models.deletion.SET_DEFAULT,
|
|
265
|
-
to="codex.customcover",
|
|
266
|
-
),
|
|
267
|
-
),
|
|
268
|
-
migrations.AddField(
|
|
269
|
-
model_name="storyarc",
|
|
270
|
-
name="custom_cover",
|
|
271
|
-
field=models.ForeignKey(
|
|
272
|
-
default=None,
|
|
273
|
-
null=True,
|
|
274
|
-
on_delete=django.db.models.deletion.SET_DEFAULT,
|
|
275
|
-
to="codex.customcover",
|
|
276
|
-
),
|
|
277
|
-
),
|
|
278
|
-
migrations.RunPython(_generate_sort_name),
|
|
279
|
-
migrations.RunPython(_remove_cover_symlinks),
|
|
280
|
-
]
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"""Group Mtimes."""
|
|
2
|
-
|
|
3
|
-
from rest_framework.serializers import CharField, Serializer
|
|
4
|
-
|
|
5
|
-
from codex.serializers.browser.settings import BrowserSettingsFilterSerializer
|
|
6
|
-
from codex.serializers.fields import TimestampField
|
|
7
|
-
from codex.serializers.route import SimpleRouteSerializer
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class GroupsMtimeSerializer(Serializer):
|
|
11
|
-
"""Groups Mtimes."""
|
|
12
|
-
|
|
13
|
-
filters = BrowserSettingsFilterSerializer(required=False)
|
|
14
|
-
q = CharField(allow_blank=True, required=False)
|
|
15
|
-
groups = SimpleRouteSerializer(many=True, required=True)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class MtimeSerializer(Serializer):
|
|
19
|
-
"""Max mtime for all submitted groups."""
|
|
20
|
-
|
|
21
|
-
max_mtime = TimestampField(read_only=True)
|
codex/serializers/fields.py
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"""Custom fields."""
|
|
2
|
-
|
|
3
|
-
from abc import ABC
|
|
4
|
-
from datetime import datetime, timezone
|
|
5
|
-
|
|
6
|
-
import pycountry
|
|
7
|
-
from django.core.exceptions import ValidationError
|
|
8
|
-
from django.utils.translation import gettext_lazy as _
|
|
9
|
-
from rest_framework.serializers import (
|
|
10
|
-
BooleanField,
|
|
11
|
-
CharField,
|
|
12
|
-
ChoiceField,
|
|
13
|
-
FloatField,
|
|
14
|
-
IntegerField,
|
|
15
|
-
ListField,
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
from codex.logger.logging import get_logger
|
|
19
|
-
from codex.serializers.choices import CHOICES, DUMMY_NULL_NAME, VUETIFY_NULL_CODE
|
|
20
|
-
from codex.serializers.route import RouteSerializer
|
|
21
|
-
|
|
22
|
-
VUETIFY_NULL_CODE_STR = str(VUETIFY_NULL_CODE)
|
|
23
|
-
LOG = get_logger(__name__)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class TimestampField(IntegerField):
|
|
27
|
-
"""IntegerTimestampField."""
|
|
28
|
-
|
|
29
|
-
def to_representation(self, value) -> int:
|
|
30
|
-
"""Convert to Jascript millisecond int timestamp from datetime, or castable."""
|
|
31
|
-
if isinstance(value, datetime):
|
|
32
|
-
value = value.timestamp()
|
|
33
|
-
return int(float(value) * 1000)
|
|
34
|
-
|
|
35
|
-
def to_internal_value(self, data) -> datetime: # type: ignore
|
|
36
|
-
"""Convert from castable, likely string to datetime."""
|
|
37
|
-
return datetime.fromtimestamp(float(data) / 1000, tz=timezone.utc)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def validate_decade(decade):
|
|
41
|
-
"""Validate decades."""
|
|
42
|
-
# * We don't need a whole db call just to be perfectly accurate
|
|
43
|
-
# * -1s are decoded back into None before validation
|
|
44
|
-
if decade is not None and decade % 10 != 0:
|
|
45
|
-
raise ValidationError(_(f"Invalid decade: {decade}"))
|
|
46
|
-
return True
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
class VuetifyNullCodeFieldMixin:
|
|
50
|
-
"""Convert Vuetify null codes to None."""
|
|
51
|
-
|
|
52
|
-
NULL_CODE = VUETIFY_NULL_CODE
|
|
53
|
-
|
|
54
|
-
def to_internal_value(self, data):
|
|
55
|
-
"""Convert numeric null code to None."""
|
|
56
|
-
return None if data == self.NULL_CODE else data
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
class VuetifyFloatField(VuetifyNullCodeFieldMixin, FloatField): # type: ignore
|
|
60
|
-
"""Float Field with null code conversion."""
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
class VuetifyIntegerField(VuetifyNullCodeFieldMixin, IntegerField): # type: ignore
|
|
64
|
-
"""Integer Field with null code conversion."""
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
class VuetifyCharField(VuetifyNullCodeFieldMixin, CharField): # type: ignore
|
|
68
|
-
"""Char Field with null code conversion."""
|
|
69
|
-
|
|
70
|
-
NULL_CODE = VUETIFY_NULL_CODE_STR
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
class VuetifyBooleanField(VuetifyNullCodeFieldMixin, BooleanField): # type: ignore
|
|
74
|
-
"""Boolean Field with null code conversion."""
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
class BookmarkFilterField(ChoiceField):
|
|
78
|
-
"""Bookmark Choice Field."""
|
|
79
|
-
|
|
80
|
-
def __init__(self, *args, **kwargs):
|
|
81
|
-
"""Use bookmark filter choices."""
|
|
82
|
-
super().__init__(
|
|
83
|
-
*args, choices=tuple(CHOICES["bookmarkFilter"].keys()), **kwargs
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
class VuetifyDecadeField(VuetifyIntegerField):
|
|
88
|
-
"""Integer field with null code conversion and decade validation."""
|
|
89
|
-
|
|
90
|
-
VALIDATORS = (validate_decade,)
|
|
91
|
-
|
|
92
|
-
def __init__(self, *args, **kwargs):
|
|
93
|
-
"""Use decade validator."""
|
|
94
|
-
super().__init__(*args, validators=self.VALIDATORS, **kwargs)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
class BreadcrumbsField(ListField):
|
|
98
|
-
"""And Array of Routes."""
|
|
99
|
-
|
|
100
|
-
child = RouteSerializer()
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
class TopGroupField(ChoiceField):
|
|
104
|
-
"""Valid Top Groups Only."""
|
|
105
|
-
|
|
106
|
-
class_choices = tuple(CHOICES["topGroup"].keys())
|
|
107
|
-
|
|
108
|
-
def __init__(self, *args, **kwargs):
|
|
109
|
-
"""Initialize with choices."""
|
|
110
|
-
super().__init__(*args, choices=self.class_choices, **kwargs)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
class PyCountryField(CharField, ABC):
|
|
114
|
-
"""Serialize to a long pycountry name."""
|
|
115
|
-
|
|
116
|
-
LOOKUP_MODULE = pycountry.countries
|
|
117
|
-
_ALPHA_2_LEN = 2
|
|
118
|
-
|
|
119
|
-
def to_representation(self, value):
|
|
120
|
-
"""Lookup the name with pycountry, just copy the value on fail."""
|
|
121
|
-
if not value:
|
|
122
|
-
return ""
|
|
123
|
-
if value == DUMMY_NULL_NAME:
|
|
124
|
-
return value
|
|
125
|
-
try:
|
|
126
|
-
# fix for https://github.com/flyingcircusio/pycountry/issues/41
|
|
127
|
-
lookup_obj = (
|
|
128
|
-
self.LOOKUP_MODULE.get(alpha_2=value)
|
|
129
|
-
if len(value) == self._ALPHA_2_LEN
|
|
130
|
-
else self.LOOKUP_MODULE.lookup(value)
|
|
131
|
-
)
|
|
132
|
-
# If lookup fails, return the key as the name
|
|
133
|
-
except Exception:
|
|
134
|
-
LOG.warning(f"Could not serialize name with pycountry {value}")
|
|
135
|
-
return value
|
|
136
|
-
else:
|
|
137
|
-
return lookup_obj.name if lookup_obj else value
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
class CountryField(PyCountryField):
|
|
141
|
-
"""Serializer to long country name."""
|
|
142
|
-
|
|
143
|
-
LOOKUP_MODULE = pycountry.countries
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
class LanguageField(PyCountryField):
|
|
147
|
-
"""Serializer to long language name."""
|
|
148
|
-
|
|
149
|
-
LOOKUP_MODULE = pycountry.languages
|
codex/serializers/settings.py
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"""Settings Serializer."""
|
|
2
|
-
|
|
3
|
-
from rest_framework.fields import BooleanField, CharField
|
|
4
|
-
from rest_framework.serializers import ListSerializer, Serializer
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class SettingsSerializer(Serializer):
|
|
8
|
-
"""For requesting settings."""
|
|
9
|
-
|
|
10
|
-
only = ListSerializer(child=CharField(), required=False)
|
|
11
|
-
group = CharField(required=False)
|
|
12
|
-
breadcrumb_names = BooleanField(required=False, default=True)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as g,V as t}from"./VCheckboxBtn-DxNOKONG.js";import{a as A,u as B,V as l}from"./VSelectionControl-CmFPvGMS.js";import{E as I,ao as R,O as U,aw as w,F as D,h as E,R as M,cB as N,S as u,as as r}from"./admin-drawer-panel-BXpIDQXM.js";const O=I({...A(),...R(g(),["inline"])},"VCheckbox"),q=U()({name:"VCheckbox",inheritAttrs:!1,props:O(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=w(e,"modelValue"),{isFocused:n,focus:i,blur:m}=B(e),V=D(),p=E(()=>e.id||`checkbox-${V}`);return M(()=>{const[b,f]=N(d),v=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},b,v,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:p.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:h,messagesId:x,isDisabled:P,isReadonly:C,isValid:y}=o;return u(t,r(k,{id:h.value,"aria-describedby":x.value,disabled:P.value,readonly:C.value},f,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":F=>s.value=F,onFocus:i,onBlur:m}),a)}})}),{}}});export{q as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as g,V as t}from"./VCheckboxBtn-DxNOKONG.js";import{a as A,u as B,V as l}from"./VSelectionControl-CmFPvGMS.js";import{E as I,ao as R,O as U,aw as w,F as D,h as E,R as M,cB as N,S as u,as as r}from"./admin-drawer-panel-BXpIDQXM.js";const O=I({...A(),...R(g(),["inline"])},"VCheckbox"),q=U()({name:"VCheckbox",inheritAttrs:!1,props:O(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=w(e,"modelValue"),{isFocused:n,focus:i,blur:m}=B(e),V=D(),p=E(()=>e.id||`checkbox-${V}`);return M(()=>{const[b,f]=N(d),v=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},b,v,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:p.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:h,messagesId:x,isDisabled:P,isReadonly:C,isValid:y}=o;return u(t,r(k,{id:h.value,"aria-describedby":x.value,disabled:P.value,readonly:C.value},f,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":F=>s.value=F,onFocus:i,onBlur:m}),a)}})}),{}}});export{q as V};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as Ce,u as ke,V as pe,a as we,b as Se}from"./VSelect-C_yPbyCG.js";import{m as Fe,V as G}from"./VTextField-o1N9ylIb.js";import{E as Ie,ao as Pe,b3 as De,O as Re,bZ as Ae,r as N,s as P,aw as J,h as b,cN as _e,aq as Te,cO as D,a as R,n as X,ag as Ee,R as Me,S as i,U as O,as as I,bv as Ne,aY as ee,cP as Oe,aP as le,cQ as Le,bh as Ke,aj as Ue,cR as Be,at as je,cS as qe,cT as ze}from"./admin-drawer-panel-BXpIDQXM.js";import{m as He,u as $e}from"./filter-DgPg2ts9.js";import{g as Qe}from"./VSelectionControl-CmFPvGMS.js";import{V as We}from"./VCheckboxBtn-DxNOKONG.js";function Ye(e,g,A){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(O,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,A)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+A)])]):e}const Ze=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...He({filterKeys:["title"]}),...Ce({hideNoData:!0,returnObject:!0}),...Pe(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...De({transition:!1})},"VCombobox"),tl=Re()({name:"VCombobox",props:Ze(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var W;let{emit:A,slots:o}=g;const{t:L}=Ae(),V=N(),x=P(!1),C=P(!0),K=P(!1),H=N(),$=N(),U=J(e,"menu"),c=b({get:()=>U.value,set:l=>{var t;U.value&&!l&&((t=H.value)!=null&&t.ΨopenChildren)||(U.value=l)}}),s=P(-1);let B=!1;const ae=b(()=>{var l;return(l=V.value)==null?void 0:l.color}),Q=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=_e(e),{textColorClasses:oe,textColorStyles:ie}=Te(ae),n=J(e,"modelValue",[],l=>ne(ze(l)),l=>{const t=ue(l);return e.multiple?t:t[0]??null}),F=Qe(),_=b(()=>!!(e.chips||o.chip)),y=b(()=>_.value||!!o.selection),k=P(!e.multiple&&!y.value?((W=n.value[0])==null?void 0:W.title)??"":""),v=b({get:()=>k.value,set:l=>{var t;if(k.value=l??"",!e.multiple&&!y.value&&(n.value=[D(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(a=>{a=a.trim(),a&&h(D(e,a))}),k.value="")}l||(s.value=-1),C.value=!l}}),se=b(()=>typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?n.value.length:v.value.length);R(k,l=>{B?X(()=>B=!1):x.value&&!c.value&&(c.value=!0),A("update:search",l)}),R(n,l=>{var t;!e.multiple&&!y.value&&(k.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:T,getMatches:re}=$e(e,te,()=>C.value?"":v.value),p=b(()=>e.hideSelected?T.value.filter(l=>!n.value.some(t=>t.value===l.value)):T.value),ce=b(()=>n.value.map(l=>l.value)),j=b(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=p.value[0])==null?void 0:t.title))&&p.value.length>0&&!C.value&&!K.value}),q=b(()=>e.hideNoData&&!p.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),z=N(),{onListScroll:ve,onListKeydown:de}=ke(z,V);function fe(l){B=!0,e.openOnClear&&(c.value=!0)}function me(){q.value||(c.value=!0)}function be(l){q.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function he(l){var a;if(qe(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=V.value.selectionStart,r=n.value.length;if((s.value>-1||["Enter","ArrowDown","ArrowUp"].includes(l.key))&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(c.value=!0),["Escape"].includes(l.key)&&(c.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(j.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===p.value[0].value})&&h(T.value[0]),C.value=!0),l.key==="ArrowDown"&&j.value&&((a=z.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(h(D(e,v.value)),y.value&&(k.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&n.value.length>0&&!v.value)return h(n.value[0],!1);if(~s.value){const u=s.value;h(n.value[s.value],!1),s.value=u>=r-1?r-2:u}else l.key==="Backspace"&&!v.value&&(s.value=r-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(s.value<0&&t>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(s.value<0)return;const u=s.value+1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(C.value=!0,(l=V.value)==null||l.focus())}function h(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const r=n.value.findIndex(u=>e.valueComparator(u.value,l.value)),a=t??!~r;if(~r){const u=a?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else a&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=t!==!1;n.value=r?[l]:[],k.value=r&&!y.value?l.title:"",X(()=>{c.value=!1,C.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{K.value=!0})}function ye(l){K.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(n.value=[])}return R(x,(l,t)=>{if(!(l||l===t)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(D(e,v.value));return}if(!y.value)return;n.value.some(r=>{let{title:a}=r;return a===v.value})?k.value="":h(D(e,v.value))}}),R(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=p.value.findIndex(t=>n.value.some(r=>e.valueComparator(r.value,t.value)));Ee&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=$.value)==null||t.scrollToIndex(l))})}}),R(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Me(()=>{const l=!!(!e.hideNoData||p.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),t=n.value.length>0,r=G.filterProps(e);return i(G,I({ref:V},r,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:n.externalValue,counterValue:se.value,dirty:t,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!y.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:t?void 0:e.placeholder,"onClick:clear":fe,"onMousedown:control":me,onKeydown:he}),{...o,default:()=>i(O,null,[i(pe,I({ref:H,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:q.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&i(Ne,I({ref:z,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,u,m;return[(a=o["prepend-item"])==null?void 0:a.call(o),!p.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(ee,{title:L(e.noDataText)},null)),i(we,{ref:$,renderless:!0,items:p.value},{default:w=>{var Z;let{item:d,index:S,itemRef:f}=w;const Y=I(d.props,{ref:f,key:S,active:j.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((Z=o.item)==null?void 0:Z.call(o,{item:d,index:S,props:Y}))??i(ee,I(Y,{role:"option"}),{prepend:E=>{let{isSelected:M}=E;return i(O,null,[e.multiple&&!e.hideSelected?i(We,{key:d.value,modelValue:M,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Oe,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(le,{icon:d.props.prependIcon},null)])},title:()=>{var E,M;return C.value?d.title:Ye(d.title,(E=re(d))==null?void 0:E.title,((M=v.value)==null?void 0:M.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((a,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const w={"onClick:close":m,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),m(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=_.value?!!o.chip:!!o.selection,S=d?Le(_.value?o.chip({item:a,index:u,props:w}):o.selection({item:a,index:u})):void 0;if(!(d&&!S))return i("div",{key:a.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[_.value?o.chip?i(Ke,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):i(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[Ue(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,u=new Array(a),m=0;m<a;m++)u[m]=arguments[m];return i(O,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:be,onClick:Be,"aria-label":L(Q.value),title:L(Q.value),tabindex:"-1"},null):void 0])}})}),je({isFocused:x,isPristine:C,menu:c,search:v,selectionIndex:s,filteredItems:T,select:h},V)}});export{tl as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as Ce,u as ke,V as pe,a as we,b as Se}from"./VSelect-C_yPbyCG.js";import{m as Fe,V as G}from"./VTextField-o1N9ylIb.js";import{E as Ie,ao as Pe,b3 as De,O as Re,bZ as Ae,r as N,s as P,aw as J,h as b,cN as _e,aq as Te,cO as D,a as R,n as X,ag as Ee,R as Me,S as i,U as O,as as I,bv as Ne,aY as ee,cP as Oe,aP as le,cQ as Le,bh as Ke,aj as Ue,cR as Be,at as je,cS as qe,cT as ze}from"./admin-drawer-panel-BXpIDQXM.js";import{m as He,u as $e}from"./filter-DgPg2ts9.js";import{g as Qe}from"./VSelectionControl-CmFPvGMS.js";import{V as We}from"./VCheckboxBtn-DxNOKONG.js";function Ye(e,g,A){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(O,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,A)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+A)])]):e}const Ze=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...He({filterKeys:["title"]}),...Ce({hideNoData:!0,returnObject:!0}),...Pe(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...De({transition:!1})},"VCombobox"),tl=Re()({name:"VCombobox",props:Ze(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var W;let{emit:A,slots:o}=g;const{t:L}=Ae(),V=N(),x=P(!1),C=P(!0),K=P(!1),H=N(),$=N(),U=J(e,"menu"),c=b({get:()=>U.value,set:l=>{var t;U.value&&!l&&((t=H.value)!=null&&t.ΨopenChildren)||(U.value=l)}}),s=P(-1);let B=!1;const ae=b(()=>{var l;return(l=V.value)==null?void 0:l.color}),Q=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=_e(e),{textColorClasses:oe,textColorStyles:ie}=Te(ae),n=J(e,"modelValue",[],l=>ne(ze(l)),l=>{const t=ue(l);return e.multiple?t:t[0]??null}),F=Qe(),_=b(()=>!!(e.chips||o.chip)),y=b(()=>_.value||!!o.selection),k=P(!e.multiple&&!y.value?((W=n.value[0])==null?void 0:W.title)??"":""),v=b({get:()=>k.value,set:l=>{var t;if(k.value=l??"",!e.multiple&&!y.value&&(n.value=[D(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(a=>{a=a.trim(),a&&h(D(e,a))}),k.value="")}l||(s.value=-1),C.value=!l}}),se=b(()=>typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?n.value.length:v.value.length);R(k,l=>{B?X(()=>B=!1):x.value&&!c.value&&(c.value=!0),A("update:search",l)}),R(n,l=>{var t;!e.multiple&&!y.value&&(k.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:T,getMatches:re}=$e(e,te,()=>C.value?"":v.value),p=b(()=>e.hideSelected?T.value.filter(l=>!n.value.some(t=>t.value===l.value)):T.value),ce=b(()=>n.value.map(l=>l.value)),j=b(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=p.value[0])==null?void 0:t.title))&&p.value.length>0&&!C.value&&!K.value}),q=b(()=>e.hideNoData&&!p.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),z=N(),{onListScroll:ve,onListKeydown:de}=ke(z,V);function fe(l){B=!0,e.openOnClear&&(c.value=!0)}function me(){q.value||(c.value=!0)}function be(l){q.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function he(l){var a;if(qe(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=V.value.selectionStart,r=n.value.length;if((s.value>-1||["Enter","ArrowDown","ArrowUp"].includes(l.key))&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(c.value=!0),["Escape"].includes(l.key)&&(c.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(j.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===p.value[0].value})&&h(T.value[0]),C.value=!0),l.key==="ArrowDown"&&j.value&&((a=z.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(h(D(e,v.value)),y.value&&(k.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&n.value.length>0&&!v.value)return h(n.value[0],!1);if(~s.value){const u=s.value;h(n.value[s.value],!1),s.value=u>=r-1?r-2:u}else l.key==="Backspace"&&!v.value&&(s.value=r-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(s.value<0&&t>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(s.value<0)return;const u=s.value+1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(C.value=!0,(l=V.value)==null||l.focus())}function h(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const r=n.value.findIndex(u=>e.valueComparator(u.value,l.value)),a=t??!~r;if(~r){const u=a?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else a&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=t!==!1;n.value=r?[l]:[],k.value=r&&!y.value?l.title:"",X(()=>{c.value=!1,C.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{K.value=!0})}function ye(l){K.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(n.value=[])}return R(x,(l,t)=>{if(!(l||l===t)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(D(e,v.value));return}if(!y.value)return;n.value.some(r=>{let{title:a}=r;return a===v.value})?k.value="":h(D(e,v.value))}}),R(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=p.value.findIndex(t=>n.value.some(r=>e.valueComparator(r.value,t.value)));Ee&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=$.value)==null||t.scrollToIndex(l))})}}),R(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Me(()=>{const l=!!(!e.hideNoData||p.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),t=n.value.length>0,r=G.filterProps(e);return i(G,I({ref:V},r,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:n.externalValue,counterValue:se.value,dirty:t,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!y.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:t?void 0:e.placeholder,"onClick:clear":fe,"onMousedown:control":me,onKeydown:he}),{...o,default:()=>i(O,null,[i(pe,I({ref:H,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:q.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&i(Ne,I({ref:z,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,u,m;return[(a=o["prepend-item"])==null?void 0:a.call(o),!p.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(ee,{title:L(e.noDataText)},null)),i(we,{ref:$,renderless:!0,items:p.value},{default:w=>{var Z;let{item:d,index:S,itemRef:f}=w;const Y=I(d.props,{ref:f,key:S,active:j.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((Z=o.item)==null?void 0:Z.call(o,{item:d,index:S,props:Y}))??i(ee,I(Y,{role:"option"}),{prepend:E=>{let{isSelected:M}=E;return i(O,null,[e.multiple&&!e.hideSelected?i(We,{key:d.value,modelValue:M,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Oe,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(le,{icon:d.props.prependIcon},null)])},title:()=>{var E,M;return C.value?d.title:Ye(d.title,(E=re(d))==null?void 0:E.title,((M=v.value)==null?void 0:M.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((a,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const w={"onClick:close":m,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),m(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=_.value?!!o.chip:!!o.selection,S=d?Le(_.value?o.chip({item:a,index:u,props:w}):o.selection({item:a,index:u})):void 0;if(!(d&&!S))return i("div",{key:a.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[_.value?o.chip?i(Ke,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):i(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[Ue(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,u=new Array(a),m=0;m<a;m++)u[m]=arguments[m];return i(O,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:be,onClick:Be,"aria-label":L(Q.value),title:L(Q.value),tabindex:"-1"},null):void 0])}})}),je({isFocused:x,isPristine:C,menu:c,search:v,selectionIndex:s,filteredItems:T,select:h},V)}});export{tl as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as S,Z as D,aF as F,S as v,$ as E,aj as V,aH as T,ar as b,E as $,d7 as h,d8 as w,O as A,aw as L,aC as _,r as k,ag as I,a as P,n as R,R as O,db as y,as as m,bh as N,at as j,dc as q}from"./admin-drawer-panel-BXpIDQXM.js";const z={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},H={class:"confirmFooter"};function M(e,l,f,c,s,g){return D(),F("footer",H,[v(b,{class:"confirmButton",disabled:f.disabled,onClick:l[0]||(l[0]=t=>e.$emit("confirm"))},{default:E(()=>[V(T(f.confirmText),1)]),_:1},8,["disabled"]),v(b,{class:"cancelButton",onClick:l[1]||(l[1]=t=>e.$emit("cancel"))},{default:E(()=>[V(" Cancel ")]),_:1})])}const Z=S(z,[["render",M],["__scopeId","data-v-24df1550"]]),U=$({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...h({origin:"center center",scrollStrategy:"block",transition:{component:w},zIndex:2400})},"VDialog"),G=A()({name:"VDialog",props:U(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,l){let{emit:f,slots:c}=l;const s=L(e,"modelValue"),{scopeId:g}=_(),t=k();function p(a){var r,u;const n=a.relatedTarget,i=a.target;if(n!==i&&((r=t.value)!=null&&r.contentEl)&&((u=t.value)!=null&&u.globalTop)&&![document,t.value.contentEl].includes(i)&&!t.value.contentEl.contains(i)){const o=q(t.value.contentEl);if(!o.length)return;const d=o[0],C=o[o.length-1];n===d?C.focus():d.focus()}}I&&P(()=>s.value&&e.retainFocus,a=>{a?document.addEventListener("focusin",p):document.removeEventListener("focusin",p)},{immediate:!0});function x(){var a;(a=t.value)!=null&&a.contentEl&&!t.value.contentEl.contains(document.activeElement)&&t.value.contentEl.focus({preventScroll:!0})}function B(){f("afterLeave")}return P(s,async a=>{var n;a||(await R(),(n=t.value.activatorEl)==null||n.focus({preventScroll:!0}))}),O(()=>{const a=y.filterProps(e),n=m({"aria-haspopup":"dialog","aria-expanded":String(s.value)},e.activatorProps),i=m({tabindex:-1},e.contentProps);return v(y,m({ref:t,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},a,{modelValue:s.value,"onUpdate:modelValue":r=>s.value=r,"aria-modal":"true",activatorProps:n,contentProps:i,role:"dialog",onAfterEnter:x,onAfterLeave:B},g),{activator:c.activator,default:function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];return v(N,{root:"VDialog"},{default:()=>{var d;return[(d=c.default)==null?void 0:d.call(c,...u)]}})}})}),j({},t)}});export{Z as C,G as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as S,Z as D,aF as F,S as v,$ as E,aj as V,aH as T,ar as b,E as $,d7 as h,d8 as w,O as A,aw as L,aC as _,r as k,ag as I,a as P,n as R,R as O,db as y,as as m,bh as N,at as j,dc as q}from"./admin-drawer-panel-BXpIDQXM.js";const z={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},H={class:"confirmFooter"};function M(e,l,f,c,s,g){return D(),F("footer",H,[v(b,{class:"confirmButton",disabled:f.disabled,onClick:l[0]||(l[0]=t=>e.$emit("confirm"))},{default:E(()=>[V(T(f.confirmText),1)]),_:1},8,["disabled"]),v(b,{class:"cancelButton",onClick:l[1]||(l[1]=t=>e.$emit("cancel"))},{default:E(()=>[V(" Cancel ")]),_:1})])}const Z=S(z,[["render",M],["__scopeId","data-v-24df1550"]]),U=$({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...h({origin:"center center",scrollStrategy:"block",transition:{component:w},zIndex:2400})},"VDialog"),G=A()({name:"VDialog",props:U(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,l){let{emit:f,slots:c}=l;const s=L(e,"modelValue"),{scopeId:g}=_(),t=k();function p(a){var r,u;const n=a.relatedTarget,i=a.target;if(n!==i&&((r=t.value)!=null&&r.contentEl)&&((u=t.value)!=null&&u.globalTop)&&![document,t.value.contentEl].includes(i)&&!t.value.contentEl.contains(i)){const o=q(t.value.contentEl);if(!o.length)return;const d=o[0],C=o[o.length-1];n===d?C.focus():d.focus()}}I&&P(()=>s.value&&e.retainFocus,a=>{a?document.addEventListener("focusin",p):document.removeEventListener("focusin",p)},{immediate:!0});function x(){var a;(a=t.value)!=null&&a.contentEl&&!t.value.contentEl.contains(document.activeElement)&&t.value.contentEl.focus({preventScroll:!0})}function B(){f("afterLeave")}return P(s,async a=>{var n;a||(await R(),(n=t.value.activatorEl)==null||n.focus({preventScroll:!0}))}),O(()=>{const a=y.filterProps(e),n=m({"aria-haspopup":"dialog","aria-expanded":String(s.value)},e.activatorProps),i=m({tabindex:-1},e.contentProps);return v(y,m({ref:t,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},a,{modelValue:s.value,"onUpdate:modelValue":r=>s.value=r,"aria-modal":"true",activatorProps:n,contentProps:i,role:"dialog",onAfterEnter:x,onAfterLeave:B},g),{activator:c.activator,default:function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];return v(N,{root:"VDialog"},{default:()=>{var d;return[(d=c.default)==null?void 0:d.call(c,...u)]}})}})}),j({},t)}});export{Z as C,G as V};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as p,M as k,c0 as G,O as f,i as C,c4 as L,R as P,S as t,aT as I,bV as $,bQ as j,be as g,cc as z,aA as h,h as r,b6 as N,aP as O,ca as F,b$ as M,bf as Q,ay as U,c2 as q,cd as H,bg as J,p as K,as as V,cU as W,N as X,b_ as Y,P as Z,aD as ee,aB as l}from"./admin-drawer-panel-BXpIDQXM.js";const x=Symbol.for("vuetify:v-expansion-panel"),T=p({...k(),...G()},"VExpansionPanelText"),E=f()({name:"VExpansionPanelText",props:T(),setup(e,d){let{slots:n}=d;const a=C(x);if(!a)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:i,onAfterLeave:u}=L(e,a.isSelected);return P(()=>t(j,{onAfterLeave:u},{default:()=>{var o;return[I(t("div",{class:["v-expansion-panel-text",e.class],style:e.style},[n.default&&i.value&&t("div",{class:"v-expansion-panel-text__wrapper"},[(o=n.default)==null?void 0:o.call(n)])]),[[$,a.isSelected.value]])]}})),{}}}),w=p({color:String,expandIcon:{type:g,default:"$expand"},collapseIcon:{type:g,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...k()},"VExpansionPanelTitle"),S=f()({name:"VExpansionPanelTitle",directives:{Ripple:z},props:w(),setup(e,d){let{slots:n}=d;const a=C(x);if(!a)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:i,backgroundColorStyles:u}=h(e,"color"),o=r(()=>({collapseIcon:e.collapseIcon,disabled:a.disabled.value,expanded:a.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly}));return P(()=>{var v;return I(t("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":a.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},i.value,e.class],style:[u.value,e.style],type:"button",tabindex:a.disabled.value?-1:void 0,disabled:a.disabled.value,"aria-expanded":a.isSelected.value,onClick:e.readonly?void 0:a.toggle},[t("span",{class:"v-expansion-panel-title__overlay"},null),(v=n.default)==null?void 0:v.call(n,o.value),!e.hideActions&&t("span",{class:"v-expansion-panel-title__icon"},[n.actions?n.actions(o.value):t(O,{icon:a.isSelected.value?e.collapseIcon:e.expandIcon},null)])]),[[N("ripple"),e.ripple]])}),{}}}),B=p({title:String,text:String,bgColor:String,...F(),...M(),...Q(),...U(),...w(),...T()},"VExpansionPanel"),te=f()({name:"VExpansionPanel",props:B(),emits:{"group:selected":e=>!0},setup(e,d){let{slots:n}=d;const a=q(e,x),{backgroundColorClasses:i,backgroundColorStyles:u}=h(e,"bgColor"),{elevationClasses:o}=H(e),{roundedClasses:v}=J(e),_=r(()=>(a==null?void 0:a.disabled.value)||e.disabled),m=r(()=>a.group.items.value.reduce((c,s,b)=>(a.group.selected.value.includes(s.id)&&c.push(b),c),[])),A=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&m.value.some(s=>s-c===1)}),R=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&m.value.some(s=>s-c===-1)});return K(x,a),P(()=>{const c=!!(n.text||e.text),s=!!(n.title||e.title),b=S.filterProps(e),D=E.filterProps(e);return t(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":a.isSelected.value,"v-expansion-panel--before-active":A.value,"v-expansion-panel--after-active":R.value,"v-expansion-panel--disabled":_.value},v.value,i.value,e.class],style:[u.value,e.style]},{default:()=>{var y;return[t("div",{class:["v-expansion-panel__shadow",...o.value]},null),s&&t(S,V({key:"title"},b),{default:()=>[n.title?n.title():e.title]}),c&&t(E,V({key:"text"},D),{default:()=>[n.text?n.text():e.text]}),(y=n.default)==null?void 0:y.call(n)]}})}),{groupItem:a}}}),ae=["default","accordion","inset","popout"],ne=p({flat:Boolean,...W(),...B(),...X(),variant:{type:String,default:"default",validator:e=>ae.includes(e)}},"VExpansionPanels"),se=f()({name:"VExpansionPanels",props:ne(),emits:{"update:modelValue":e=>!0},setup(e,d){let{slots:n}=d;const{next:a,prev:i}=Y(e,x),{themeClasses:u}=Z(e),o=r(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return ee({VExpansionPanel:{bgColor:l(e,"bgColor"),collapseIcon:l(e,"collapseIcon"),color:l(e,"color"),eager:l(e,"eager"),elevation:l(e,"elevation"),expandIcon:l(e,"expandIcon"),focusable:l(e,"focusable"),hideActions:l(e,"hideActions"),readonly:l(e,"readonly"),ripple:l(e,"ripple"),rounded:l(e,"rounded"),static:l(e,"static")}}),P(()=>t(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},u.value,o.value,e.class],style:e.style},{default:()=>{var v;return[(v=n.default)==null?void 0:v.call(n,{prev:i,next:a})]}})),{next:a,prev:i}}});export{te as V,S as a,E as b,se as c};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as p,M as k,c0 as G,O as f,i as C,c4 as L,R as P,S as t,aT as I,bV as $,bQ as j,be as g,cc as z,aA as h,h as r,b6 as N,aP as O,ca as F,b$ as M,bf as Q,ay as U,c2 as q,cd as H,bg as J,p as K,as as V,cU as W,N as X,b_ as Y,P as Z,aD as ee,aB as l}from"./admin-drawer-panel-BXpIDQXM.js";const x=Symbol.for("vuetify:v-expansion-panel"),T=p({...k(),...G()},"VExpansionPanelText"),E=f()({name:"VExpansionPanelText",props:T(),setup(e,d){let{slots:n}=d;const a=C(x);if(!a)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:i,onAfterLeave:u}=L(e,a.isSelected);return P(()=>t(j,{onAfterLeave:u},{default:()=>{var o;return[I(t("div",{class:["v-expansion-panel-text",e.class],style:e.style},[n.default&&i.value&&t("div",{class:"v-expansion-panel-text__wrapper"},[(o=n.default)==null?void 0:o.call(n)])]),[[$,a.isSelected.value]])]}})),{}}}),w=p({color:String,expandIcon:{type:g,default:"$expand"},collapseIcon:{type:g,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...k()},"VExpansionPanelTitle"),S=f()({name:"VExpansionPanelTitle",directives:{Ripple:z},props:w(),setup(e,d){let{slots:n}=d;const a=C(x);if(!a)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:i,backgroundColorStyles:u}=h(e,"color"),o=r(()=>({collapseIcon:e.collapseIcon,disabled:a.disabled.value,expanded:a.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly}));return P(()=>{var v;return I(t("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":a.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},i.value,e.class],style:[u.value,e.style],type:"button",tabindex:a.disabled.value?-1:void 0,disabled:a.disabled.value,"aria-expanded":a.isSelected.value,onClick:e.readonly?void 0:a.toggle},[t("span",{class:"v-expansion-panel-title__overlay"},null),(v=n.default)==null?void 0:v.call(n,o.value),!e.hideActions&&t("span",{class:"v-expansion-panel-title__icon"},[n.actions?n.actions(o.value):t(O,{icon:a.isSelected.value?e.collapseIcon:e.expandIcon},null)])]),[[N("ripple"),e.ripple]])}),{}}}),B=p({title:String,text:String,bgColor:String,...F(),...M(),...Q(),...U(),...w(),...T()},"VExpansionPanel"),te=f()({name:"VExpansionPanel",props:B(),emits:{"group:selected":e=>!0},setup(e,d){let{slots:n}=d;const a=q(e,x),{backgroundColorClasses:i,backgroundColorStyles:u}=h(e,"bgColor"),{elevationClasses:o}=H(e),{roundedClasses:v}=J(e),_=r(()=>(a==null?void 0:a.disabled.value)||e.disabled),m=r(()=>a.group.items.value.reduce((c,s,b)=>(a.group.selected.value.includes(s.id)&&c.push(b),c),[])),A=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&m.value.some(s=>s-c===1)}),R=r(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&m.value.some(s=>s-c===-1)});return K(x,a),P(()=>{const c=!!(n.text||e.text),s=!!(n.title||e.title),b=S.filterProps(e),D=E.filterProps(e);return t(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":a.isSelected.value,"v-expansion-panel--before-active":A.value,"v-expansion-panel--after-active":R.value,"v-expansion-panel--disabled":_.value},v.value,i.value,e.class],style:[u.value,e.style]},{default:()=>{var y;return[t("div",{class:["v-expansion-panel__shadow",...o.value]},null),s&&t(S,V({key:"title"},b),{default:()=>[n.title?n.title():e.title]}),c&&t(E,V({key:"text"},D),{default:()=>[n.text?n.text():e.text]}),(y=n.default)==null?void 0:y.call(n)]}})}),{groupItem:a}}}),ae=["default","accordion","inset","popout"],ne=p({flat:Boolean,...W(),...B(),...X(),variant:{type:String,default:"default",validator:e=>ae.includes(e)}},"VExpansionPanels"),se=f()({name:"VExpansionPanels",props:ne(),emits:{"update:modelValue":e=>!0},setup(e,d){let{slots:n}=d;const{next:a,prev:i}=Y(e,x),{themeClasses:u}=Z(e),o=r(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return ee({VExpansionPanel:{bgColor:l(e,"bgColor"),collapseIcon:l(e,"collapseIcon"),color:l(e,"color"),eager:l(e,"eager"),elevation:l(e,"elevation"),expandIcon:l(e,"expandIcon"),focusable:l(e,"focusable"),hideActions:l(e,"hideActions"),readonly:l(e,"readonly"),ripple:l(e,"ripple"),rounded:l(e,"rounded"),static:l(e,"static")}}),P(()=>t(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},u.value,o.value,e.class],style:e.style},{default:()=>{var v;return[(v=n.default)==null?void 0:v.call(n,{prev:i,next:a})]}})),{next:a,prev:i}}});export{te as V,S as a,E as b,se as c};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as C,d as p,a as O,e as $,V as c,b as h,f as A}from"./VSelectionControl-CmFPvGMS.js";import{E as f,O as V,R as y,S as a,as as n,ao as U,be as m,F,h as x,aw as N,cB as w,U as B}from"./admin-drawer-panel-BXpIDQXM.js";const D=f({...C({falseIcon:"$radioOff",trueIcon:"$radioOn"})},"VRadio"),T=V()({name:"VRadio",props:D(),setup(e,l){let{slots:s}=l;return y(()=>a(p,n(e,{class:["v-radio",e.class],style:e.style,type:"radio"}),s)),{}}}),E=f({height:{type:[Number,String],default:"auto"},...O(),...U($(),["multiple"]),trueIcon:{type:m,default:"$radioOn"},falseIcon:{type:m,default:"$radioOff"},type:{type:String,default:"radio"}},"VRadioGroup"),j=V()({name:"VRadioGroup",inheritAttrs:!1,props:E(),emits:{"update:modelValue":e=>!0},setup(e,l){let{attrs:s,slots:t}=l;const b=F(),i=x(()=>e.id||`radio-group-${b}`),o=N(e,"modelValue");return y(()=>{const[v,I]=w(s),R=c.filterProps(e),g=p.filterProps(e),r=t.label?t.label({label:e.label,props:{for:i.value}}):e.label;return a(c,n({class:["v-radio-group",e.class],style:e.style},v,R,{modelValue:o.value,"onUpdate:modelValue":u=>o.value=u,id:i.value}),{...t,default:u=>{let{id:d,messagesId:P,isDisabled:S,isReadonly:G}=u;return a(B,null,[r&&a(h,{id:d.value},{default:()=>[r]}),a(A,n(g,{id:d.value,"aria-describedby":P.value,defaultsTarget:"VRadio",trueIcon:e.trueIcon,falseIcon:e.falseIcon,type:e.type,disabled:S.value,readonly:G.value,"aria-labelledby":r?d.value:void 0,multiple:!1},I,{modelValue:o.value,"onUpdate:modelValue":k=>o.value=k}),t)])}})}),{}}});export{T as V,j as a};
|
|
Binary file
|
|
Binary file
|