codex 1.6.0a3__py3-none-any.whl → 1.6.0a5__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 +17 -6
- codex/integrity.py +67 -3
- codex/librarian/covers/coverd.py +2 -2
- codex/librarian/covers/create.py +29 -13
- codex/librarian/covers/path.py +8 -6
- codex/librarian/covers/purge.py +27 -16
- codex/librarian/covers/tasks.py +3 -2
- codex/librarian/importer/aggregate_metadata.py +2 -2
- codex/librarian/importer/const.py +23 -7
- codex/librarian/importer/create_fks.py +88 -28
- codex/librarian/importer/deleted.py +26 -2
- codex/librarian/importer/importerd.py +124 -27
- codex/librarian/importer/link_comics.py +55 -0
- codex/librarian/importer/moved.py +78 -3
- codex/librarian/importer/query_fks.py +68 -4
- codex/librarian/importer/status.py +6 -0
- codex/librarian/importer/tasks.py +11 -3
- codex/librarian/importer/update_comics.py +1 -3
- codex/librarian/janitor/cleanup.py +24 -0
- codex/librarian/janitor/failed_imports.py +1 -1
- codex/librarian/janitor/janitor.py +5 -0
- codex/librarian/janitor/janitord.py +1 -1
- codex/librarian/janitor/status.py +1 -0
- codex/librarian/janitor/tasks.py +5 -0
- codex/librarian/librariand.py +3 -3
- codex/librarian/search/update.py +1 -1
- codex/librarian/watchdog/db_snapshot.py +9 -6
- codex/librarian/watchdog/emitter.py +3 -0
- codex/librarian/watchdog/event_batcherd.py +19 -3
- codex/librarian/watchdog/events.py +176 -36
- codex/librarian/watchdog/observers.py +13 -3
- codex/migrations/0027_sort_name.py +2 -12
- codex/migrations/0028_custom_covers.py +166 -0
- codex/models/admin.py +0 -1
- codex/models/base.py +3 -0
- codex/models/comic.py +15 -9
- codex/models/groups.py +30 -14
- codex/models/library.py +11 -3
- codex/models/paths.py +62 -14
- codex/models/{const.py → util.py} +15 -2
- codex/serializers/admin.py +11 -2
- codex/serializers/browser/mixins.py +1 -0
- codex/serializers/browser/settings.py +3 -0
- codex/settings/settings.py +11 -5
- codex/startup.py +77 -3
- codex/static_root/assets/{VCheckbox-CRu3BJ5D.48cbd6b412f4.js → VCheckbox-BF_99tgB.7fe59e56d9d4.js} +1 -1
- codex/static_root/assets/VCheckbox-BF_99tgB.7fe59e56d9d4.js.br +0 -0
- codex/static_root/assets/VCheckbox-BF_99tgB.7fe59e56d9d4.js.gz +0 -0
- codex/static_root/assets/{VCheckbox-CRu3BJ5D.js → VCheckbox-BF_99tgB.js} +1 -1
- codex/static_root/assets/VCheckbox-BF_99tgB.js.br +0 -0
- codex/static_root/assets/VCheckbox-BF_99tgB.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-CAUrQoP4.b162429d9a68.js → VCheckboxBtn-Coc7g8m7.31e1e6aa44c9.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-Coc7g8m7.31e1e6aa44c9.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-Coc7g8m7.31e1e6aa44c9.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-CAUrQoP4.js → VCheckboxBtn-Coc7g8m7.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-Coc7g8m7.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-Coc7g8m7.js.gz +0 -0
- codex/static_root/assets/VCombobox-CTRWnOuM.0f00903c2ebc.js +1 -0
- codex/static_root/assets/VCombobox-CTRWnOuM.0f00903c2ebc.js.br +0 -0
- codex/static_root/assets/VCombobox-CTRWnOuM.0f00903c2ebc.js.gz +0 -0
- codex/static_root/assets/VCombobox-CTRWnOuM.js +1 -0
- codex/static_root/assets/VCombobox-CTRWnOuM.js.br +0 -0
- codex/static_root/assets/VCombobox-CTRWnOuM.js.gz +0 -0
- codex/static_root/assets/{VDialog-BcnzrzZO.7fa7ec337394.js → VDialog-pzwzInEh.51acf566a069.js} +1 -1
- codex/static_root/assets/VDialog-pzwzInEh.51acf566a069.js.br +0 -0
- codex/static_root/assets/VDialog-pzwzInEh.51acf566a069.js.gz +0 -0
- codex/static_root/assets/{VDialog-BcnzrzZO.js → VDialog-pzwzInEh.js} +1 -1
- codex/static_root/assets/VDialog-pzwzInEh.js.br +0 -0
- codex/static_root/assets/VDialog-pzwzInEh.js.gz +0 -0
- codex/static_root/assets/{VExpansionPanels-DP3HSBJj.a5600e541dc2.js → VExpansionPanels-CKSq1GpG.0ecf702c5b67.js} +1 -1
- codex/static_root/assets/VExpansionPanels-CKSq1GpG.0ecf702c5b67.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CKSq1GpG.0ecf702c5b67.js.gz +0 -0
- codex/static_root/assets/{VExpansionPanels-DP3HSBJj.js → VExpansionPanels-CKSq1GpG.js} +1 -1
- codex/static_root/assets/VExpansionPanels-CKSq1GpG.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CKSq1GpG.js.gz +0 -0
- codex/static_root/assets/{VRadioGroup-B9OZxVQw.28f10e381149.js → VRadioGroup-CW5GobGU.b72925bca3de.js} +1 -1
- codex/static_root/assets/VRadioGroup-CW5GobGU.b72925bca3de.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CW5GobGU.b72925bca3de.js.gz +0 -0
- codex/static_root/assets/{VRadioGroup-B9OZxVQw.js → VRadioGroup-CW5GobGU.js} +1 -1
- codex/static_root/assets/VRadioGroup-CW5GobGU.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CW5GobGU.js.gz +0 -0
- codex/static_root/assets/VSelect-ChOlLRyH.00b11751b25e.js +1 -0
- codex/static_root/assets/VSelect-ChOlLRyH.00b11751b25e.js.br +0 -0
- codex/static_root/assets/VSelect-ChOlLRyH.00b11751b25e.js.gz +0 -0
- codex/static_root/assets/VSelect-ChOlLRyH.js +1 -0
- codex/static_root/assets/VSelect-ChOlLRyH.js.br +0 -0
- codex/static_root/assets/VSelect-ChOlLRyH.js.gz +0 -0
- codex/static_root/assets/VSelect-MGVSeLgr.7cabd30bc5e4.css +1 -0
- codex/static_root/assets/VSelect-MGVSeLgr.7cabd30bc5e4.css.br +0 -0
- codex/static_root/assets/VSelect-MGVSeLgr.7cabd30bc5e4.css.gz +0 -0
- codex/static_root/assets/VSelect-MGVSeLgr.css +1 -0
- codex/static_root/assets/VSelect-MGVSeLgr.css.br +0 -0
- codex/static_root/assets/VSelect-MGVSeLgr.css.gz +0 -0
- codex/static_root/assets/{VSelectionControl-gDbXN6J_.js → VSelectionControl-DKOhc2zB.061dca094303.js} +1 -1
- codex/static_root/assets/VSelectionControl-DKOhc2zB.061dca094303.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DKOhc2zB.061dca094303.js.gz +0 -0
- codex/static_root/assets/{VSelectionControl-gDbXN6J_.137a5bce3954.js → VSelectionControl-DKOhc2zB.js} +1 -1
- codex/static_root/assets/VSelectionControl-DKOhc2zB.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DKOhc2zB.js.gz +0 -0
- codex/static_root/assets/{VSlideGroup-D8FKczaP.3c2d0e591ae3.js → VSlideGroup-zFz5_byd.e0e246b7acbb.js} +1 -1
- codex/static_root/assets/VSlideGroup-zFz5_byd.e0e246b7acbb.js.br +0 -0
- codex/static_root/assets/VSlideGroup-zFz5_byd.e0e246b7acbb.js.gz +0 -0
- codex/static_root/assets/{VSlideGroup-D8FKczaP.js → VSlideGroup-zFz5_byd.js} +1 -1
- codex/static_root/assets/VSlideGroup-zFz5_byd.js.br +0 -0
- codex/static_root/assets/VSlideGroup-zFz5_byd.js.gz +0 -0
- codex/static_root/assets/{VTable-D86x2F7y.60c6356a0b73.js → VTable-FKMTcdkF.6c1eed84d25e.js} +1 -1
- codex/static_root/assets/VTable-FKMTcdkF.6c1eed84d25e.js.br +0 -0
- codex/static_root/assets/VTable-FKMTcdkF.6c1eed84d25e.js.gz +0 -0
- codex/static_root/assets/{VTable-D86x2F7y.js → VTable-FKMTcdkF.js} +1 -1
- codex/static_root/assets/VTable-FKMTcdkF.js.br +0 -0
- codex/static_root/assets/VTable-FKMTcdkF.js.gz +0 -0
- codex/static_root/assets/VTextField-BssVoDhB.4cc388b4aa3c.css +1 -0
- 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 +1 -0
- 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-Dftcik85.cb2f1dda87e1.js +1 -0
- codex/static_root/assets/VTextField-Dftcik85.cb2f1dda87e1.js.br +0 -0
- codex/static_root/assets/VTextField-Dftcik85.cb2f1dda87e1.js.gz +0 -0
- codex/static_root/assets/VTextField-Dftcik85.js +1 -0
- codex/static_root/assets/VTextField-Dftcik85.js.br +0 -0
- codex/static_root/assets/VTextField-Dftcik85.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-aBb7Akq5.f0d7de98e392.js → VWindowItem-CYCwnt3s.28025dc36c6a.js} +1 -1
- codex/static_root/assets/VWindowItem-CYCwnt3s.28025dc36c6a.js.br +0 -0
- codex/static_root/assets/VWindowItem-CYCwnt3s.28025dc36c6a.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-aBb7Akq5.js → VWindowItem-CYCwnt3s.js} +1 -1
- codex/static_root/assets/VWindowItem-CYCwnt3s.js.br +0 -0
- codex/static_root/assets/VWindowItem-CYCwnt3s.js.gz +0 -0
- codex/static_root/assets/{admin-BbrOU9Y9.29936748af9e.css → admin-B8Bp2Uih.82c98714bcf1.css} +1 -1
- 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-BbrOU9Y9.css → admin-B8Bp2Uih.css} +1 -1
- 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-DH_DrB0F.dc45fb726e07.js +1 -0
- codex/static_root/assets/admin-DH_DrB0F.dc45fb726e07.js.br +0 -0
- codex/static_root/assets/admin-DH_DrB0F.dc45fb726e07.js.gz +0 -0
- codex/static_root/assets/admin-DH_DrB0F.js +1 -0
- codex/static_root/assets/admin-DH_DrB0F.js.br +0 -0
- codex/static_root/assets/admin-DH_DrB0F.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-B2rmpAVA.a9e72fbfdadc.js +30 -0
- codex/static_root/assets/admin-drawer-panel-B2rmpAVA.a9e72fbfdadc.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-B2rmpAVA.a9e72fbfdadc.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-B2rmpAVA.js +30 -0
- codex/static_root/assets/admin-drawer-panel-B2rmpAVA.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-B2rmpAVA.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-BHdNPwzF.bd2c1d6148bb.css +1 -0
- codex/static_root/assets/admin-drawer-panel-BHdNPwzF.bd2c1d6148bb.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-BHdNPwzF.bd2c1d6148bb.css.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-BHdNPwzF.css +1 -0
- codex/static_root/assets/admin-drawer-panel-BHdNPwzF.css.br +0 -0
- codex/static_root/assets/admin-drawer-panel-BHdNPwzF.css.gz +0 -0
- codex/static_root/assets/browser-CpppBvim.a1b5d4fe97b1.css +1 -0
- codex/static_root/assets/browser-CpppBvim.a1b5d4fe97b1.css.br +0 -0
- codex/static_root/assets/browser-CpppBvim.a1b5d4fe97b1.css.gz +0 -0
- codex/static_root/assets/browser-CpppBvim.css +1 -0
- codex/static_root/assets/browser-CpppBvim.css.br +0 -0
- codex/static_root/assets/browser-CpppBvim.css.gz +0 -0
- codex/static_root/assets/browser-lKU7rqLd.cdb86e625ed9.js +1 -0
- codex/static_root/assets/browser-lKU7rqLd.cdb86e625ed9.js.br +0 -0
- codex/static_root/assets/browser-lKU7rqLd.cdb86e625ed9.js.gz +0 -0
- codex/static_root/assets/browser-lKU7rqLd.js +1 -0
- codex/static_root/assets/browser-lKU7rqLd.js.br +0 -0
- codex/static_root/assets/browser-lKU7rqLd.js.gz +0 -0
- codex/static_root/assets/{change-password-dialog-DywVK04u.eabe6b4c3e27.js → change-password-dialog-BIBG6Bk8.3583021c124a.js} +1 -1
- codex/static_root/assets/change-password-dialog-BIBG6Bk8.3583021c124a.js.br +0 -0
- codex/static_root/assets/change-password-dialog-BIBG6Bk8.3583021c124a.js.gz +0 -0
- codex/static_root/assets/{change-password-dialog-DywVK04u.js → change-password-dialog-BIBG6Bk8.js} +1 -1
- codex/static_root/assets/change-password-dialog-BIBG6Bk8.js.br +0 -0
- codex/static_root/assets/change-password-dialog-BIBG6Bk8.js.gz +0 -0
- codex/static_root/assets/{confirm-dialog-UnMzYsqN.d732afc0dc59.js → confirm-dialog-DARLmXRf.53fc6938fb8c.js} +1 -1
- codex/static_root/assets/confirm-dialog-DARLmXRf.53fc6938fb8c.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DARLmXRf.53fc6938fb8c.js.gz +0 -0
- codex/static_root/assets/{confirm-dialog-UnMzYsqN.js → confirm-dialog-DARLmXRf.js} +1 -1
- codex/static_root/assets/confirm-dialog-DARLmXRf.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DARLmXRf.js.gz +0 -0
- codex/static_root/assets/{datetime-column-IeiZdinf.e2807c847ddc.js → datetime-column-LpLgWpkf.16ce3324970f.js} +1 -1
- codex/static_root/assets/datetime-column-LpLgWpkf.16ce3324970f.js.br +0 -0
- codex/static_root/assets/datetime-column-LpLgWpkf.16ce3324970f.js.gz +0 -0
- codex/static_root/assets/{datetime-column-IeiZdinf.js → datetime-column-LpLgWpkf.js} +1 -1
- codex/static_root/assets/datetime-column-LpLgWpkf.js.br +0 -0
- codex/static_root/assets/datetime-column-LpLgWpkf.js.gz +0 -0
- codex/static_root/assets/{filter-BT3OCu_E.39135c83c357.js → filter-jRB1Ob6r.6a559a53e805.js} +1 -1
- codex/static_root/assets/filter-jRB1Ob6r.6a559a53e805.js.br +0 -0
- codex/static_root/assets/filter-jRB1Ob6r.6a559a53e805.js.gz +0 -0
- codex/static_root/assets/{filter-BT3OCu_E.js → filter-jRB1Ob6r.js} +1 -1
- codex/static_root/assets/filter-jRB1Ob6r.js.br +0 -0
- codex/static_root/assets/filter-jRB1Ob6r.js.gz +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css +1 -0
- 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 +1 -0
- 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/flag-tab-mYS2wg5e.17829c46cae9.js +1 -0
- codex/static_root/assets/flag-tab-mYS2wg5e.17829c46cae9.js.br +0 -0
- codex/static_root/assets/flag-tab-mYS2wg5e.17829c46cae9.js.gz +0 -0
- codex/static_root/assets/flag-tab-mYS2wg5e.js +1 -0
- codex/static_root/assets/flag-tab-mYS2wg5e.js.br +0 -0
- codex/static_root/assets/flag-tab-mYS2wg5e.js.gz +0 -0
- codex/static_root/assets/{group-tab-Bt_AURnL.59aa6b13b14b.js → group-tab-MK1lcjUU.98406d5babdc.js} +1 -1
- codex/static_root/assets/group-tab-MK1lcjUU.98406d5babdc.js.br +0 -0
- codex/static_root/assets/group-tab-MK1lcjUU.98406d5babdc.js.gz +0 -0
- codex/static_root/assets/{group-tab-Bt_AURnL.js → group-tab-MK1lcjUU.js} +1 -1
- codex/static_root/assets/group-tab-MK1lcjUU.js.br +0 -0
- codex/static_root/assets/group-tab-MK1lcjUU.js.gz +0 -0
- codex/static_root/assets/http-error-DKulXuTl.95e42988d5d5.css +1 -0
- codex/static_root/assets/{http-error-_wlDqEcp.5b78d3e332c9.css.br → http-error-DKulXuTl.95e42988d5d5.css.br} +0 -0
- codex/static_root/assets/http-error-DKulXuTl.95e42988d5d5.css.gz +0 -0
- codex/static_root/assets/http-error-DKulXuTl.css +1 -0
- codex/static_root/assets/{http-error-_wlDqEcp.css.br → http-error-DKulXuTl.css.br} +0 -0
- codex/static_root/assets/http-error-DKulXuTl.css.gz +0 -0
- codex/static_root/assets/http-error-HFeYnF0n.a3c578a0265e.js +1 -0
- codex/static_root/assets/http-error-HFeYnF0n.a3c578a0265e.js.br +0 -0
- codex/static_root/assets/http-error-HFeYnF0n.a3c578a0265e.js.gz +0 -0
- codex/static_root/assets/http-error-HFeYnF0n.js +1 -0
- codex/static_root/assets/http-error-HFeYnF0n.js.br +0 -0
- codex/static_root/assets/http-error-HFeYnF0n.js.gz +0 -0
- codex/static_root/assets/library-tab-BN0SfPcH.913e236f625e.css +1 -0
- 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 +1 -0
- 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-DYeEBYlT.a2a2ef088d1c.js +1 -0
- codex/static_root/assets/library-tab-DYeEBYlT.a2a2ef088d1c.js.br +0 -0
- codex/static_root/assets/library-tab-DYeEBYlT.a2a2ef088d1c.js.gz +0 -0
- codex/static_root/assets/library-tab-DYeEBYlT.js +1 -0
- codex/static_root/assets/library-tab-DYeEBYlT.js.br +0 -0
- codex/static_root/assets/library-tab-DYeEBYlT.js.gz +0 -0
- codex/static_root/assets/main-gSW7TFDY.329223b148d4.js +32 -0
- codex/static_root/assets/main-gSW7TFDY.329223b148d4.js.br +0 -0
- codex/static_root/assets/main-gSW7TFDY.329223b148d4.js.gz +0 -0
- codex/static_root/assets/main-gSW7TFDY.js +32 -0
- codex/static_root/assets/main-gSW7TFDY.js.br +0 -0
- codex/static_root/assets/main-gSW7TFDY.js.gz +0 -0
- codex/static_root/assets/{pagination-toolbar-B3wS4_7p.7695fafdefce.css → pagination-toolbar-ClZui9Zf.697d7ae11c21.css} +1 -1
- codex/static_root/assets/pagination-toolbar-ClZui9Zf.697d7ae11c21.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-ClZui9Zf.697d7ae11c21.css.gz +0 -0
- codex/static_root/assets/{pagination-toolbar-B3wS4_7p.css → pagination-toolbar-ClZui9Zf.css} +1 -1
- codex/static_root/assets/pagination-toolbar-ClZui9Zf.css.br +0 -0
- codex/static_root/assets/pagination-toolbar-ClZui9Zf.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-Dlm70Bhs.8f23f8bd9a05.js +1 -0
- codex/static_root/assets/pagination-toolbar-Dlm70Bhs.8f23f8bd9a05.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-Dlm70Bhs.8f23f8bd9a05.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-Dlm70Bhs.js +1 -0
- codex/static_root/assets/pagination-toolbar-Dlm70Bhs.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-Dlm70Bhs.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-DNwjWxO_.70b904e8e4ff.js → pdf-doc-BTdS9hUz.7c966524280a.js} +1 -1
- codex/static_root/assets/pdf-doc-BTdS9hUz.7c966524280a.js.br +0 -0
- codex/static_root/assets/pdf-doc-BTdS9hUz.7c966524280a.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-DNwjWxO_.js → pdf-doc-BTdS9hUz.js} +1 -1
- codex/static_root/assets/pdf-doc-BTdS9hUz.js.br +0 -0
- codex/static_root/assets/pdf-doc-BTdS9hUz.js.gz +0 -0
- codex/static_root/assets/{reader-CScIyWY8.0f2b4c8ea2bf.js → reader-BtSTIETq.f940f66c0e58.js} +2 -2
- codex/static_root/assets/reader-BtSTIETq.f940f66c0e58.js.br +0 -0
- codex/static_root/assets/reader-BtSTIETq.f940f66c0e58.js.gz +0 -0
- codex/static_root/assets/{reader-CScIyWY8.js → reader-BtSTIETq.js} +2 -2
- codex/static_root/assets/reader-BtSTIETq.js.br +0 -0
- codex/static_root/assets/reader-BtSTIETq.js.gz +0 -0
- codex/static_root/assets/{reader-pqgXBr7J.92a23ab06864.css → reader-CF3xt6JG.19fad7f62450.css} +1 -1
- codex/static_root/assets/reader-CF3xt6JG.19fad7f62450.css.br +0 -0
- codex/static_root/assets/reader-CF3xt6JG.19fad7f62450.css.gz +0 -0
- codex/static_root/assets/{reader-pqgXBr7J.css → reader-CF3xt6JG.css} +1 -1
- codex/static_root/assets/reader-CF3xt6JG.css.br +0 -0
- codex/static_root/assets/reader-CF3xt6JG.css.gz +0 -0
- codex/static_root/assets/{relation-chips-D6T6FX7G.css → relation-chips-Bsc-gUxE.98e65384c3c9.css} +1 -1
- 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-D6T6FX7G.db095b2497e4.css → relation-chips-Bsc-gUxE.css} +1 -1
- 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-C4Ob7ySi.95855a010f4a.js +1 -0
- codex/static_root/assets/relation-chips-C4Ob7ySi.95855a010f4a.js.br +0 -0
- codex/static_root/assets/relation-chips-C4Ob7ySi.95855a010f4a.js.gz +0 -0
- codex/static_root/assets/relation-chips-C4Ob7ySi.js +1 -0
- codex/static_root/assets/relation-chips-C4Ob7ySi.js.br +0 -0
- codex/static_root/assets/relation-chips-C4Ob7ySi.js.gz +0 -0
- codex/static_root/assets/settings-drawer-BJOfMtqA.6471a50fc05b.css +1 -0
- codex/static_root/assets/settings-drawer-BJOfMtqA.6471a50fc05b.css.br +0 -0
- codex/static_root/assets/settings-drawer-BJOfMtqA.6471a50fc05b.css.gz +0 -0
- codex/static_root/assets/settings-drawer-BJOfMtqA.css +1 -0
- codex/static_root/assets/settings-drawer-BJOfMtqA.css.br +0 -0
- codex/static_root/assets/settings-drawer-BJOfMtqA.css.gz +0 -0
- codex/static_root/assets/settings-drawer-xSctoxZn.4ce8afcb879a.js +2 -0
- codex/static_root/assets/settings-drawer-xSctoxZn.4ce8afcb879a.js.br +0 -0
- codex/static_root/assets/settings-drawer-xSctoxZn.4ce8afcb879a.js.gz +0 -0
- codex/static_root/assets/settings-drawer-xSctoxZn.js +2 -0
- codex/static_root/assets/settings-drawer-xSctoxZn.js.br +0 -0
- codex/static_root/assets/settings-drawer-xSctoxZn.js.gz +0 -0
- codex/static_root/assets/{stats-tab-Bn9lHtZb.b2969fd36ae9.js → stats-tab-C_uC_U7o.e6b014b6e8c6.js} +1 -1
- codex/static_root/assets/stats-tab-C_uC_U7o.e6b014b6e8c6.js.br +0 -0
- codex/static_root/assets/stats-tab-C_uC_U7o.e6b014b6e8c6.js.gz +0 -0
- codex/static_root/assets/{stats-tab-Bn9lHtZb.js → stats-tab-C_uC_U7o.js} +1 -1
- codex/static_root/assets/stats-tab-C_uC_U7o.js.br +0 -0
- codex/static_root/assets/stats-tab-C_uC_U7o.js.gz +0 -0
- codex/static_root/assets/task-tab-VIpy1Ula.c07877250c88.js +1 -0
- codex/static_root/assets/task-tab-VIpy1Ula.c07877250c88.js.br +0 -0
- codex/static_root/assets/task-tab-VIpy1Ula.c07877250c88.js.gz +0 -0
- codex/static_root/assets/task-tab-VIpy1Ula.js +1 -0
- codex/static_root/assets/task-tab-VIpy1Ula.js.br +0 -0
- codex/static_root/assets/task-tab-VIpy1Ula.js.gz +0 -0
- codex/static_root/assets/{unauthorized-DWgytUow.ca2f13dbdbf5.css → unauthorized-DHV6Q1n-.b7847b2872a1.css} +1 -1
- codex/static_root/assets/unauthorized-DHV6Q1n-.b7847b2872a1.css.br +0 -0
- codex/static_root/assets/unauthorized-DHV6Q1n-.b7847b2872a1.css.gz +0 -0
- codex/static_root/assets/{unauthorized-DWgytUow.css → unauthorized-DHV6Q1n-.css} +1 -1
- codex/static_root/assets/unauthorized-DHV6Q1n-.css.br +0 -0
- codex/static_root/assets/unauthorized-DHV6Q1n-.css.gz +0 -0
- codex/static_root/assets/unauthorized-kEuFL5br.475729603aeb.js +1 -0
- codex/static_root/assets/unauthorized-kEuFL5br.475729603aeb.js.br +0 -0
- codex/static_root/assets/unauthorized-kEuFL5br.475729603aeb.js.gz +0 -0
- codex/static_root/assets/unauthorized-kEuFL5br.js +1 -0
- codex/static_root/assets/unauthorized-kEuFL5br.js.br +0 -0
- codex/static_root/assets/unauthorized-kEuFL5br.js.gz +0 -0
- codex/static_root/assets/{user-tab-DDViQ8Q6.c258185d0ebe.js → user-tab-CZNFTTEI.f3940a75daae.js} +1 -1
- codex/static_root/assets/user-tab-CZNFTTEI.f3940a75daae.js.br +0 -0
- codex/static_root/assets/user-tab-CZNFTTEI.f3940a75daae.js.gz +0 -0
- codex/static_root/assets/{user-tab-DDViQ8Q6.js → user-tab-CZNFTTEI.js} +1 -1
- codex/static_root/assets/user-tab-CZNFTTEI.js.br +0 -0
- codex/static_root/assets/user-tab-CZNFTTEI.js.gz +0 -0
- codex/static_root/js/choices-admin.ef1ff3a8b9da.json +1 -0
- codex/static_root/js/choices-admin.ef1ff3a8b9da.json.br +0 -0
- codex/static_root/js/choices-admin.ef1ff3a8b9da.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 → choices.23fedac2b9ba.json} +1 -1
- codex/static_root/js/choices.23fedac2b9ba.json.br +0 -0
- codex/static_root/js/choices.23fedac2b9ba.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.6ef112683dae.json +642 -0
- codex/static_root/manifest.6ef112683dae.json.br +0 -0
- codex/static_root/manifest.6ef112683dae.json.gz +0 -0
- codex/static_root/manifest.json +259 -258
- 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 +11 -2
- codex/views/admin/library.py +47 -27
- codex/views/admin/stats.py +4 -1
- codex/views/admin/tasks.py +6 -1
- codex/views/browser/base.py +2 -2
- codex/views/browser/browser.py +1 -2
- codex/views/browser/browser_annotations.py +87 -17
- codex/views/browser/browser_breadcrumbs.py +2 -2
- codex/views/browser/browser_order_by.py +31 -20
- codex/views/browser/filters/search.py +1 -1
- codex/views/browser/metadata.py +0 -1
- codex/views/cover.py +3 -2
- codex/views/session.py +1 -0
- {codex-1.6.0a3.dist-info → codex-1.6.0a5.dist-info}/METADATA +3 -2
- {codex-1.6.0a3.dist-info → codex-1.6.0a5.dist-info}/RECORD +358 -357
- codex/static_root/assets/VCheckbox-CRu3BJ5D.48cbd6b412f4.js.br +0 -0
- codex/static_root/assets/VCheckbox-CRu3BJ5D.48cbd6b412f4.js.gz +0 -0
- codex/static_root/assets/VCheckbox-CRu3BJ5D.js.br +0 -0
- codex/static_root/assets/VCheckbox-CRu3BJ5D.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-CAUrQoP4.b162429d9a68.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-CAUrQoP4.b162429d9a68.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-CAUrQoP4.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-CAUrQoP4.js.gz +0 -0
- codex/static_root/assets/VCombobox-DJFO04Gk.b335ed051992.js +0 -1
- codex/static_root/assets/VCombobox-DJFO04Gk.b335ed051992.js.br +0 -0
- codex/static_root/assets/VCombobox-DJFO04Gk.b335ed051992.js.gz +0 -0
- codex/static_root/assets/VCombobox-DJFO04Gk.js +0 -1
- codex/static_root/assets/VCombobox-DJFO04Gk.js.br +0 -0
- codex/static_root/assets/VCombobox-DJFO04Gk.js.gz +0 -0
- codex/static_root/assets/VDialog-BcnzrzZO.7fa7ec337394.js.br +0 -0
- codex/static_root/assets/VDialog-BcnzrzZO.7fa7ec337394.js.gz +0 -0
- codex/static_root/assets/VDialog-BcnzrzZO.js.br +0 -0
- codex/static_root/assets/VDialog-BcnzrzZO.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DP3HSBJj.a5600e541dc2.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DP3HSBJj.a5600e541dc2.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DP3HSBJj.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DP3HSBJj.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-B9OZxVQw.28f10e381149.js.br +0 -5
- codex/static_root/assets/VRadioGroup-B9OZxVQw.28f10e381149.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-B9OZxVQw.js.br +0 -5
- codex/static_root/assets/VRadioGroup-B9OZxVQw.js.gz +0 -0
- codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css +0 -1
- codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css.br +0 -0
- codex/static_root/assets/VSelect-ARDhJiQK.372c098fb475.css.gz +0 -0
- codex/static_root/assets/VSelect-ARDhJiQK.css +0 -1
- codex/static_root/assets/VSelect-ARDhJiQK.css.br +0 -0
- codex/static_root/assets/VSelect-ARDhJiQK.css.gz +0 -0
- codex/static_root/assets/VSelect-BIXGglsb.018666f134d5.js +0 -1
- codex/static_root/assets/VSelect-BIXGglsb.018666f134d5.js.br +0 -0
- codex/static_root/assets/VSelect-BIXGglsb.018666f134d5.js.gz +0 -0
- codex/static_root/assets/VSelect-BIXGglsb.js +0 -1
- codex/static_root/assets/VSelect-BIXGglsb.js.br +0 -0
- codex/static_root/assets/VSelect-BIXGglsb.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-gDbXN6J_.137a5bce3954.js.br +0 -0
- codex/static_root/assets/VSelectionControl-gDbXN6J_.137a5bce3954.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-gDbXN6J_.js.br +0 -0
- codex/static_root/assets/VSelectionControl-gDbXN6J_.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-D8FKczaP.3c2d0e591ae3.js.br +0 -0
- codex/static_root/assets/VSlideGroup-D8FKczaP.3c2d0e591ae3.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-D8FKczaP.js.br +0 -0
- codex/static_root/assets/VSlideGroup-D8FKczaP.js.gz +0 -0
- codex/static_root/assets/VTable-D86x2F7y.60c6356a0b73.js.br +0 -0
- codex/static_root/assets/VTable-D86x2F7y.60c6356a0b73.js.gz +0 -0
- codex/static_root/assets/VTable-D86x2F7y.js.br +0 -0
- codex/static_root/assets/VTable-D86x2F7y.js.gz +0 -0
- codex/static_root/assets/VTextField-BEgIi5E-.6a5cf9192004.js +0 -1
- codex/static_root/assets/VTextField-BEgIi5E-.6a5cf9192004.js.br +0 -0
- codex/static_root/assets/VTextField-BEgIi5E-.6a5cf9192004.js.gz +0 -0
- codex/static_root/assets/VTextField-BEgIi5E-.js +0 -1
- codex/static_root/assets/VTextField-BEgIi5E-.js.br +0 -0
- codex/static_root/assets/VTextField-BEgIi5E-.js.gz +0 -0
- codex/static_root/assets/VTextField-DuIIp-VY.580110ad24dc.css +0 -1
- 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 +0 -1
- 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-aBb7Akq5.f0d7de98e392.js.br +0 -0
- codex/static_root/assets/VWindowItem-aBb7Akq5.f0d7de98e392.js.gz +0 -0
- codex/static_root/assets/VWindowItem-aBb7Akq5.js.br +0 -0
- codex/static_root/assets/VWindowItem-aBb7Akq5.js.gz +0 -0
- 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-BbrOU9Y9.css.br +0 -0
- codex/static_root/assets/admin-BbrOU9Y9.css.gz +0 -0
- codex/static_root/assets/admin-CUlXuIkb.2c5ca314c698.js +0 -1
- codex/static_root/assets/admin-CUlXuIkb.2c5ca314c698.js.br +0 -0
- codex/static_root/assets/admin-CUlXuIkb.2c5ca314c698.js.gz +0 -0
- codex/static_root/assets/admin-CUlXuIkb.js +0 -1
- codex/static_root/assets/admin-CUlXuIkb.js.br +0 -0
- codex/static_root/assets/admin-CUlXuIkb.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-B98ueC5c.3fb257a9e9e8.js +0 -30
- codex/static_root/assets/admin-drawer-panel-B98ueC5c.3fb257a9e9e8.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-B98ueC5c.3fb257a9e9e8.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-B98ueC5c.js +0 -30
- codex/static_root/assets/admin-drawer-panel-B98ueC5c.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-B98ueC5c.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-BF0dMvEE.1514926c78e8.css +0 -1
- 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 +0 -1
- 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/browser-C3YcP-vH.31dac9c003c4.js +0 -1
- codex/static_root/assets/browser-C3YcP-vH.31dac9c003c4.js.br +0 -0
- codex/static_root/assets/browser-C3YcP-vH.31dac9c003c4.js.gz +0 -0
- codex/static_root/assets/browser-C3YcP-vH.js +0 -1
- codex/static_root/assets/browser-C3YcP-vH.js.br +0 -0
- codex/static_root/assets/browser-C3YcP-vH.js.gz +0 -0
- codex/static_root/assets/browser-CwzOGMJs.css +0 -1
- codex/static_root/assets/browser-CwzOGMJs.css.br +0 -0
- codex/static_root/assets/browser-CwzOGMJs.css.gz +0 -0
- codex/static_root/assets/browser-CwzOGMJs.e53bf262a521.css +0 -1
- codex/static_root/assets/browser-CwzOGMJs.e53bf262a521.css.br +0 -0
- codex/static_root/assets/browser-CwzOGMJs.e53bf262a521.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-DywVK04u.eabe6b4c3e27.js.br +0 -0
- codex/static_root/assets/change-password-dialog-DywVK04u.eabe6b4c3e27.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-DywVK04u.js.br +0 -0
- codex/static_root/assets/change-password-dialog-DywVK04u.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-UnMzYsqN.d732afc0dc59.js.br +0 -0
- codex/static_root/assets/confirm-dialog-UnMzYsqN.d732afc0dc59.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-UnMzYsqN.js.br +0 -0
- codex/static_root/assets/confirm-dialog-UnMzYsqN.js.gz +0 -0
- codex/static_root/assets/datetime-column-IeiZdinf.e2807c847ddc.js.br +0 -0
- codex/static_root/assets/datetime-column-IeiZdinf.e2807c847ddc.js.gz +0 -0
- codex/static_root/assets/datetime-column-IeiZdinf.js.br +0 -0
- codex/static_root/assets/datetime-column-IeiZdinf.js.gz +0 -0
- codex/static_root/assets/filter-BT3OCu_E.39135c83c357.js.br +0 -0
- codex/static_root/assets/filter-BT3OCu_E.39135c83c357.js.gz +0 -0
- codex/static_root/assets/filter-BT3OCu_E.js.br +0 -0
- codex/static_root/assets/filter-BT3OCu_E.js.gz +0 -0
- codex/static_root/assets/flag-tab-BQmB4JNc.29dd38ce57d1.js +0 -1
- codex/static_root/assets/flag-tab-BQmB4JNc.29dd38ce57d1.js.br +0 -0
- codex/static_root/assets/flag-tab-BQmB4JNc.29dd38ce57d1.js.gz +0 -0
- codex/static_root/assets/flag-tab-BQmB4JNc.js +0 -1
- codex/static_root/assets/flag-tab-BQmB4JNc.js.br +0 -0
- codex/static_root/assets/flag-tab-BQmB4JNc.js.gz +0 -0
- codex/static_root/assets/flag-tab-BacZLlVi.8deba6a5370d.css +0 -1
- 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 +0 -1
- 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/group-tab-Bt_AURnL.59aa6b13b14b.js.br +0 -0
- codex/static_root/assets/group-tab-Bt_AURnL.59aa6b13b14b.js.gz +0 -0
- codex/static_root/assets/group-tab-Bt_AURnL.js.br +0 -0
- codex/static_root/assets/group-tab-Bt_AURnL.js.gz +0 -0
- codex/static_root/assets/http-error-Cy29flzW.26884b2f42da.js +0 -1
- codex/static_root/assets/http-error-Cy29flzW.26884b2f42da.js.br +0 -4
- codex/static_root/assets/http-error-Cy29flzW.26884b2f42da.js.gz +0 -0
- codex/static_root/assets/http-error-Cy29flzW.js +0 -1
- codex/static_root/assets/http-error-Cy29flzW.js.br +0 -4
- codex/static_root/assets/http-error-Cy29flzW.js.gz +0 -0
- codex/static_root/assets/http-error-_wlDqEcp.5b78d3e332c9.css +0 -1
- codex/static_root/assets/http-error-_wlDqEcp.5b78d3e332c9.css.gz +0 -0
- codex/static_root/assets/http-error-_wlDqEcp.css +0 -1
- codex/static_root/assets/http-error-_wlDqEcp.css.gz +0 -0
- codex/static_root/assets/library-tab-0LLO3xlP.3636f75510b6.js +0 -1
- codex/static_root/assets/library-tab-0LLO3xlP.3636f75510b6.js.br +0 -0
- codex/static_root/assets/library-tab-0LLO3xlP.3636f75510b6.js.gz +0 -0
- codex/static_root/assets/library-tab-0LLO3xlP.js +0 -1
- codex/static_root/assets/library-tab-0LLO3xlP.js.br +0 -0
- codex/static_root/assets/library-tab-0LLO3xlP.js.gz +0 -0
- codex/static_root/assets/library-tab-CXbkxNZt.954f2850a439.css +0 -1
- codex/static_root/assets/library-tab-CXbkxNZt.954f2850a439.css.br +0 -2
- codex/static_root/assets/library-tab-CXbkxNZt.954f2850a439.css.gz +0 -0
- codex/static_root/assets/library-tab-CXbkxNZt.css +0 -1
- codex/static_root/assets/library-tab-CXbkxNZt.css.br +0 -2
- codex/static_root/assets/library-tab-CXbkxNZt.css.gz +0 -0
- codex/static_root/assets/main-BCYKxiL-.67d660e491ad.js +0 -32
- codex/static_root/assets/main-BCYKxiL-.67d660e491ad.js.br +0 -0
- codex/static_root/assets/main-BCYKxiL-.67d660e491ad.js.gz +0 -0
- codex/static_root/assets/main-BCYKxiL-.js +0 -32
- codex/static_root/assets/main-BCYKxiL-.js.br +0 -0
- codex/static_root/assets/main-BCYKxiL-.js.gz +0 -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.br +0 -0
- codex/static_root/assets/pagination-toolbar-B3wS4_7p.css.gz +0 -0
- codex/static_root/assets/pagination-toolbar-DQ8B0BSx.845b2f091ae7.js +0 -1
- codex/static_root/assets/pagination-toolbar-DQ8B0BSx.845b2f091ae7.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-DQ8B0BSx.845b2f091ae7.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-DQ8B0BSx.js +0 -1
- codex/static_root/assets/pagination-toolbar-DQ8B0BSx.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-DQ8B0BSx.js.gz +0 -0
- codex/static_root/assets/pdf-doc-DNwjWxO_.70b904e8e4ff.js.br +0 -0
- codex/static_root/assets/pdf-doc-DNwjWxO_.70b904e8e4ff.js.gz +0 -0
- codex/static_root/assets/pdf-doc-DNwjWxO_.js.br +0 -0
- codex/static_root/assets/pdf-doc-DNwjWxO_.js.gz +0 -0
- codex/static_root/assets/reader-CScIyWY8.0f2b4c8ea2bf.js.br +0 -0
- codex/static_root/assets/reader-CScIyWY8.0f2b4c8ea2bf.js.gz +0 -0
- codex/static_root/assets/reader-CScIyWY8.js.br +0 -0
- codex/static_root/assets/reader-CScIyWY8.js.gz +0 -0
- codex/static_root/assets/reader-pqgXBr7J.92a23ab06864.css.br +0 -0
- codex/static_root/assets/reader-pqgXBr7J.92a23ab06864.css.gz +0 -0
- codex/static_root/assets/reader-pqgXBr7J.css.br +0 -0
- codex/static_root/assets/reader-pqgXBr7J.css.gz +0 -0
- 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-D6T6FX7G.db095b2497e4.css.br +0 -0
- codex/static_root/assets/relation-chips-D6T6FX7G.db095b2497e4.css.gz +0 -0
- codex/static_root/assets/relation-chips-LT1N5iCN.37fceb98c9dd.js +0 -1
- codex/static_root/assets/relation-chips-LT1N5iCN.37fceb98c9dd.js.br +0 -0
- codex/static_root/assets/relation-chips-LT1N5iCN.37fceb98c9dd.js.gz +0 -0
- codex/static_root/assets/relation-chips-LT1N5iCN.js +0 -1
- codex/static_root/assets/relation-chips-LT1N5iCN.js.br +0 -0
- codex/static_root/assets/relation-chips-LT1N5iCN.js.gz +0 -0
- codex/static_root/assets/settings-drawer-BgUazs7O.7bbeb1fd98f1.css +0 -1
- 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 +0 -1
- 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-DwqbWCCT.c6f1febbec8d.js +0 -2
- codex/static_root/assets/settings-drawer-DwqbWCCT.c6f1febbec8d.js.br +0 -0
- codex/static_root/assets/settings-drawer-DwqbWCCT.c6f1febbec8d.js.gz +0 -0
- codex/static_root/assets/settings-drawer-DwqbWCCT.js +0 -2
- codex/static_root/assets/settings-drawer-DwqbWCCT.js.br +0 -0
- codex/static_root/assets/settings-drawer-DwqbWCCT.js.gz +0 -0
- codex/static_root/assets/stats-tab-Bn9lHtZb.b2969fd36ae9.js.br +0 -0
- codex/static_root/assets/stats-tab-Bn9lHtZb.b2969fd36ae9.js.gz +0 -0
- codex/static_root/assets/stats-tab-Bn9lHtZb.js.br +0 -0
- codex/static_root/assets/stats-tab-Bn9lHtZb.js.gz +0 -0
- codex/static_root/assets/task-tab-BBfwR3Q4.d0de374d7ec0.js +0 -1
- codex/static_root/assets/task-tab-BBfwR3Q4.d0de374d7ec0.js.br +0 -0
- codex/static_root/assets/task-tab-BBfwR3Q4.d0de374d7ec0.js.gz +0 -0
- codex/static_root/assets/task-tab-BBfwR3Q4.js +0 -1
- codex/static_root/assets/task-tab-BBfwR3Q4.js.br +0 -0
- codex/static_root/assets/task-tab-BBfwR3Q4.js.gz +0 -0
- codex/static_root/assets/unauthorized-BWF4C258.3da18d521795.js +0 -1
- codex/static_root/assets/unauthorized-BWF4C258.3da18d521795.js.br +0 -0
- codex/static_root/assets/unauthorized-BWF4C258.3da18d521795.js.gz +0 -0
- codex/static_root/assets/unauthorized-BWF4C258.js +0 -1
- codex/static_root/assets/unauthorized-BWF4C258.js.br +0 -0
- codex/static_root/assets/unauthorized-BWF4C258.js.gz +0 -0
- 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-DWgytUow.css.br +0 -0
- codex/static_root/assets/unauthorized-DWgytUow.css.gz +0 -0
- codex/static_root/assets/user-tab-DDViQ8Q6.c258185d0ebe.js.br +0 -0
- codex/static_root/assets/user-tab-DDViQ8Q6.c258185d0ebe.js.gz +0 -0
- codex/static_root/assets/user-tab-DDViQ8Q6.js.br +0 -0
- codex/static_root/assets/user-tab-DDViQ8Q6.js.gz +0 -0
- codex/static_root/js/choices-admin.248384ece3f6.json +0 -1
- 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.b60817ba0a93.json.br +0 -0
- codex/static_root/js/choices.b60817ba0a93.json.gz +0 -0
- codex/static_root/manifest.776c8d59c3e4.json +0 -641
- codex/static_root/manifest.776c8d59c3e4.json.br +0 -0
- codex/static_root/manifest.776c8d59c3e4.json.gz +0 -0
- {codex-1.6.0a3.dist-info → codex-1.6.0a5.dist-info}/LICENSE +0 -0
- {codex-1.6.0a3.dist-info → codex-1.6.0a5.dist-info}/WHEEL +0 -0
- {codex-1.6.0a3.dist-info → codex-1.6.0a5.dist-info}/entry_points.txt +0 -0
codex/models/library.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from datetime import timedelta
|
|
4
4
|
from pathlib import Path
|
|
5
|
+
from types import MappingProxyType
|
|
5
6
|
|
|
6
7
|
from django.contrib.auth.models import Group
|
|
7
8
|
from django.core.exceptions import ValidationError
|
|
@@ -32,7 +33,14 @@ class Library(BaseModel):
|
|
|
32
33
|
|
|
33
34
|
DEFAULT_POLL_EVERY_SECONDS = 60 * 60
|
|
34
35
|
DEFAULT_POLL_EVERY = timedelta(seconds=DEFAULT_POLL_EVERY_SECONDS)
|
|
35
|
-
|
|
36
|
+
CUSTOM_COVERS_DIR_DEFAULTS = MappingProxyType(
|
|
37
|
+
{
|
|
38
|
+
"covers_only": True,
|
|
39
|
+
"events": False,
|
|
40
|
+
"poll": False,
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
covers_only = BooleanField(db_index=True, default=False)
|
|
36
44
|
path = CharField(
|
|
37
45
|
unique=True,
|
|
38
46
|
db_index=True,
|
|
@@ -46,9 +54,9 @@ class Library(BaseModel):
|
|
|
46
54
|
update_in_progress = BooleanField(default=False)
|
|
47
55
|
groups = ManyToManyField(Group, blank=True)
|
|
48
56
|
|
|
49
|
-
def __str__(self):
|
|
57
|
+
def __str__(self) -> str:
|
|
50
58
|
"""Return the path."""
|
|
51
|
-
return self.path
|
|
59
|
+
return str(self.path)
|
|
52
60
|
|
|
53
61
|
class Meta(BaseModel.Meta):
|
|
54
62
|
"""Pluralize."""
|
codex/models/paths.py
CHANGED
|
@@ -1,32 +1,35 @@
|
|
|
1
1
|
"""Watched Path models."""
|
|
2
2
|
|
|
3
3
|
from pathlib import Path
|
|
4
|
+
from types import MappingProxyType
|
|
4
5
|
|
|
5
6
|
from django.db.models import CASCADE, CharField, ForeignKey, JSONField
|
|
7
|
+
from django.db.models.enums import Choices
|
|
6
8
|
|
|
7
|
-
from codex.models.base import MAX_NAME_LEN
|
|
8
|
-
from codex.models.groups import BrowserGroupModel
|
|
9
|
+
from codex.models.base import MAX_NAME_LEN, BaseModel
|
|
9
10
|
from codex.models.library import MAX_PATH_LEN, Library
|
|
11
|
+
from codex.models.util import get_sort_name
|
|
10
12
|
|
|
11
|
-
__all__ = ("
|
|
13
|
+
__all__ = ("CustomCover", "FailedImport")
|
|
12
14
|
|
|
13
15
|
|
|
14
|
-
class WatchedPath(
|
|
16
|
+
class WatchedPath(BaseModel):
|
|
15
17
|
"""A filesystem path with data for Watchdog."""
|
|
16
18
|
|
|
17
19
|
library = ForeignKey(Library, on_delete=CASCADE, db_index=True)
|
|
18
|
-
path = CharField(max_length=MAX_PATH_LEN, db_index=True)
|
|
19
|
-
stat = JSONField(null=True)
|
|
20
20
|
parent_folder = ForeignKey(
|
|
21
21
|
"Folder",
|
|
22
22
|
on_delete=CASCADE,
|
|
23
23
|
null=True,
|
|
24
24
|
)
|
|
25
|
+
path = CharField(max_length=MAX_PATH_LEN, db_index=True)
|
|
26
|
+
stat = JSONField(null=True)
|
|
25
27
|
ZERO_STAT = (0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0)
|
|
26
28
|
|
|
27
29
|
def set_stat(self):
|
|
28
30
|
"""Set select stat params from the filesystem."""
|
|
29
|
-
|
|
31
|
+
path = Path(str(self.path))
|
|
32
|
+
st_record = path.stat()
|
|
30
33
|
# Converting os.stat directly to a list or tuple saves
|
|
31
34
|
# mtime as an int and causes problems.
|
|
32
35
|
st = list(self.ZERO_STAT)
|
|
@@ -43,27 +46,29 @@ class WatchedPath(BrowserGroupModel):
|
|
|
43
46
|
|
|
44
47
|
def presave(self):
|
|
45
48
|
"""Save stat."""
|
|
46
|
-
super().presave()
|
|
47
49
|
self.set_stat()
|
|
48
50
|
|
|
49
51
|
def __str__(self):
|
|
50
52
|
"""Return the full path."""
|
|
51
|
-
return self.path
|
|
53
|
+
return str(self.path)
|
|
52
54
|
|
|
53
|
-
class Meta(
|
|
54
|
-
"""
|
|
55
|
+
class Meta(BaseModel.Meta):
|
|
56
|
+
"""Use Mixin Meta."""
|
|
55
57
|
|
|
56
58
|
unique_together = ("library", "path")
|
|
57
59
|
abstract = True
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
def search_path(self) -> str:
|
|
62
|
+
"""Relative path for search index."""
|
|
63
|
+
return self.path.removeprefix(self.library.path)
|
|
62
64
|
|
|
63
65
|
|
|
64
66
|
class FailedImport(WatchedPath):
|
|
65
67
|
"""Failed Comic Imports. Displayed in Admin Panel."""
|
|
66
68
|
|
|
69
|
+
# TODO rename reason
|
|
70
|
+
name = CharField(db_index=True, max_length=MAX_NAME_LEN, default="")
|
|
71
|
+
|
|
67
72
|
def set_reason(self, exc):
|
|
68
73
|
"""Can't do this in save() because it breaks update_or_create."""
|
|
69
74
|
reason = str(exc)
|
|
@@ -72,3 +77,46 @@ class FailedImport(WatchedPath):
|
|
|
72
77
|
reason = reason.removesuffix(suffix)
|
|
73
78
|
reason = reason[:MAX_NAME_LEN]
|
|
74
79
|
self.name = reason.strip()
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class CustomCover(WatchedPath):
|
|
83
|
+
"""Custom Cover Image."""
|
|
84
|
+
|
|
85
|
+
class GroupChoice(Choices):
|
|
86
|
+
"""Reading direction choices."""
|
|
87
|
+
|
|
88
|
+
P = "p"
|
|
89
|
+
I = "i" # noqa: E741
|
|
90
|
+
S = "s"
|
|
91
|
+
A = "a"
|
|
92
|
+
F = "f"
|
|
93
|
+
|
|
94
|
+
FOLDER_COVER_STEM = ".codex-cover"
|
|
95
|
+
DIR_GROUP_CHOICE_MAP = MappingProxyType(
|
|
96
|
+
{
|
|
97
|
+
"publishers": GroupChoice.P,
|
|
98
|
+
"imprints": GroupChoice.I,
|
|
99
|
+
"series": GroupChoice.S,
|
|
100
|
+
"story-arcs": GroupChoice.A,
|
|
101
|
+
}
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
parent_folder = None
|
|
105
|
+
group = CharField(max_length=1, db_index=True, choices=GroupChoice.choices)
|
|
106
|
+
sort_name = CharField(max_length=MAX_NAME_LEN, db_index=True, default="")
|
|
107
|
+
|
|
108
|
+
def _set_group_and_sort_name(self):
|
|
109
|
+
"""Set group and sort_name from path."""
|
|
110
|
+
path = Path(self.path)
|
|
111
|
+
stem = path.stem
|
|
112
|
+
if stem == self.FOLDER_COVER_STEM:
|
|
113
|
+
self.group = self.GroupChoice.F.value
|
|
114
|
+
else:
|
|
115
|
+
choice = self.DIR_GROUP_CHOICE_MAP[path.parent.name]
|
|
116
|
+
self.group = choice.value
|
|
117
|
+
self.sort_name = get_sort_name(stem)
|
|
118
|
+
|
|
119
|
+
def presave(self):
|
|
120
|
+
"""Presave group and sort_name."""
|
|
121
|
+
super().presave()
|
|
122
|
+
self._set_group_and_sort_name()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Utilities for models."""
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
_ARTICLES = frozenset(
|
|
4
4
|
("a", "an", "the") # en # noqa RUF005
|
|
5
5
|
+ ("un", "unos", "unas", "el", "los", "la", "las") # es
|
|
6
6
|
+ ("un", "une", "le", "les", "la", "les", "l'") # fr
|
|
@@ -16,3 +16,16 @@ ARTICLES = frozenset(
|
|
|
16
16
|
+ ("en", "et") # da
|
|
17
17
|
+ ("el", "la", "els", "les", "un", "una", "uns", "unes", "na") # ct
|
|
18
18
|
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_sort_name(name: str) -> str:
|
|
22
|
+
"""Create sort_name from name."""
|
|
23
|
+
lower_name = name.lower()
|
|
24
|
+
sort_name = lower_name
|
|
25
|
+
name_parts = lower_name.split()
|
|
26
|
+
if len(name_parts) > 1:
|
|
27
|
+
first_word = name_parts[0]
|
|
28
|
+
if first_word in _ARTICLES:
|
|
29
|
+
sort_name = " ".join(name_parts[1:])
|
|
30
|
+
sort_name += ", " + first_word
|
|
31
|
+
return sort_name
|
codex/serializers/admin.py
CHANGED
|
@@ -101,8 +101,17 @@ class LibrarySerializer(BaseModelSerializer):
|
|
|
101
101
|
"""Specify Model."""
|
|
102
102
|
|
|
103
103
|
model = Library
|
|
104
|
-
fields = (
|
|
105
|
-
|
|
104
|
+
fields = (
|
|
105
|
+
"pk",
|
|
106
|
+
"path",
|
|
107
|
+
"events",
|
|
108
|
+
"last_poll",
|
|
109
|
+
"poll",
|
|
110
|
+
"poll_every",
|
|
111
|
+
"groups",
|
|
112
|
+
"covers_only",
|
|
113
|
+
)
|
|
114
|
+
read_only_fields = ("last_poll", "pk", "covers_only")
|
|
106
115
|
|
|
107
116
|
def validate_path(self, path):
|
|
108
117
|
"""Validate new library paths."""
|
|
@@ -22,6 +22,7 @@ class BrowserAggregateSerializerMixin(Serializer):
|
|
|
22
22
|
child_count = IntegerField(read_only=True)
|
|
23
23
|
cover_pk = IntegerField(read_only=True)
|
|
24
24
|
cover_mtime = DateTimeField(format="%s", read_only=True)
|
|
25
|
+
cover_custom = BooleanField(read_only=True)
|
|
25
26
|
|
|
26
27
|
# Bookmark annotations
|
|
27
28
|
page = IntegerField(read_only=True)
|
|
@@ -36,6 +36,9 @@ class BrowserSettingsSerializer(Serializer):
|
|
|
36
36
|
q = CharField(allow_blank=True, required=False)
|
|
37
37
|
query = CharField(allow_blank=True, required=False) # OPDS 2.0
|
|
38
38
|
show = BrowserSettingsShowGroupFlagsSerializer(required=False)
|
|
39
|
+
cover_style = ChoiceField(
|
|
40
|
+
choices=tuple(CHOICES["coverStyle"].keys()), required=False
|
|
41
|
+
)
|
|
39
42
|
# search_results_limit = IntegerField(required=False)
|
|
40
43
|
twenty_four_hour_time = BooleanField(required=False)
|
|
41
44
|
top_group = ChoiceField(choices=tuple(CHOICES["topGroup"].keys()), required=False)
|
codex/settings/settings.py
CHANGED
|
@@ -37,10 +37,11 @@ WRITER_MEMORY_PERCENT = float(environ.get("CODEX_WRITER_MEMORY_PERCENT", 0.6))
|
|
|
37
37
|
CPU_MULTIPLIER = float(environ.get("CODEX_CPU_MULTIPLIER", 1.25))
|
|
38
38
|
CHUNK_PER_GB = int(environ.get("CODEX_CHUNK_PER_GB", 250))
|
|
39
39
|
MAX_CHUNK_SIZE = int(environ.get("CODEX_MAX_CHUNK_SIZE", 1000))
|
|
40
|
-
# sqlite parser breaks with more than 1000 variables in a query and
|
|
41
|
-
# fixes this in the bulk_create & bulk_update functions.
|
|
42
|
-
# queries I gotta batch them myself. Filter arg
|
|
43
|
-
|
|
40
|
+
# sqlite parser breaks with more than 1000 variables in a query and
|
|
41
|
+
# django only fixes this in the bulk_create & bulk_update functions.
|
|
42
|
+
# So for complicated queries I gotta batch them myself. Filter arg
|
|
43
|
+
# count is a proxy, but it works. 990 errors sometimes.
|
|
44
|
+
FILTER_BATCH_SIZE = int(environ.get("CODEX_FILTER_BATCH_SIZE", 900))
|
|
44
45
|
VITE_HOST = environ.get("VITE_HOST")
|
|
45
46
|
|
|
46
47
|
####################################
|
|
@@ -62,7 +63,12 @@ THROTTLE_OPENSEARCH = int(environ.get("CODEX_THROTTLE_OPENSEARCH", 0))
|
|
|
62
63
|
# Base paths
|
|
63
64
|
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
|
64
65
|
CODEX_PATH = BASE_DIR / "codex"
|
|
65
|
-
|
|
66
|
+
CUSTOM_COVERS_SUBDIR = "custom-covers"
|
|
67
|
+
CUSTOM_COVERS_DIR = CONFIG_PATH / CUSTOM_COVERS_SUBDIR
|
|
68
|
+
CUSTOM_COVERS_GROUP_DIRS = ("publishers", "imprints", "series", "volumes", "story-arcs")
|
|
69
|
+
for group_dir in CUSTOM_COVERS_GROUP_DIRS:
|
|
70
|
+
custom_cover_group_dir = CUSTOM_COVERS_DIR / group_dir
|
|
71
|
+
custom_cover_group_dir.mkdir(exist_ok=True, parents=True)
|
|
66
72
|
|
|
67
73
|
# SECURITY WARNING: keep the secret key used in production secret!
|
|
68
74
|
SECRET_KEY = get_secret_key(CONFIG_PATH)
|
codex/startup.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"""Initialize Codex Dataabse before running."""
|
|
2
2
|
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
3
5
|
from django.core.cache import cache
|
|
4
6
|
from django.core.management import call_command
|
|
5
7
|
from django.db import connection
|
|
6
|
-
from django.db.models import Q
|
|
8
|
+
from django.db.models import F, Q
|
|
7
9
|
from django.db.models.functions import Now
|
|
8
10
|
|
|
9
11
|
from codex.integrity import has_unapplied_migrations, rebuild_db, repair_db
|
|
@@ -11,11 +13,13 @@ from codex.librarian.janitor.janitor import Janitor
|
|
|
11
13
|
from codex.librarian.mp_queue import LIBRARIAN_QUEUE
|
|
12
14
|
from codex.logger.logging import get_logger
|
|
13
15
|
from codex.logger.mp_queue import LOG_QUEUE
|
|
14
|
-
from codex.models import AdminFlag, LibrarianStatus, Library, Timestamp
|
|
16
|
+
from codex.models import AdminFlag, CustomCover, LibrarianStatus, Library, Timestamp
|
|
15
17
|
from codex.registration import patch_registration_setting
|
|
16
18
|
from codex.serializers.choices import CHOICES
|
|
17
19
|
from codex.settings.settings import (
|
|
18
20
|
BACKUP_DB_PATH,
|
|
21
|
+
CUSTOM_COVERS_DIR,
|
|
22
|
+
CUSTOM_COVERS_SUBDIR,
|
|
19
23
|
HYPERCORN_CONFIG,
|
|
20
24
|
HYPERCORN_CONFIG_TOML,
|
|
21
25
|
RESET_ADMIN,
|
|
@@ -124,7 +128,75 @@ def clear_library_status():
|
|
|
124
128
|
count = Library.objects.filter(update_in_progress=True).update(
|
|
125
129
|
update_in_progress=False, updated_at=Now()
|
|
126
130
|
)
|
|
127
|
-
|
|
131
|
+
if count:
|
|
132
|
+
LOG.debug(f"Reset {count} Libraries' update_in_progress flag")
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def init_custom_cover_dir():
|
|
136
|
+
"""Initialize the Custom Cover Dir singleton row."""
|
|
137
|
+
defaults = dict(**Library.CUSTOM_COVERS_DIR_DEFAULTS, path=CUSTOM_COVERS_DIR)
|
|
138
|
+
covers_library, created = Library.objects.get_or_create(
|
|
139
|
+
defaults=defaults, covers_only=True
|
|
140
|
+
)
|
|
141
|
+
if created:
|
|
142
|
+
LOG.info("Created Custom Covers Dir settings in the db.")
|
|
143
|
+
|
|
144
|
+
old_path = covers_library.path
|
|
145
|
+
if Path(old_path) != CUSTOM_COVERS_DIR:
|
|
146
|
+
Library.objects.filter(covers_only=True).update(path=str(CUSTOM_COVERS_DIR))
|
|
147
|
+
LOG.info(
|
|
148
|
+
f"Updated Custom Group Covers Dir path from {old_path} to {CUSTOM_COVERS_DIR}."
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def update_custom_covers_for_config_dir():
|
|
153
|
+
"""Update custom covers if the config dir changes."""
|
|
154
|
+
# This is okay, but I wouldn't need to do it if paths were constructed from
|
|
155
|
+
# parent_folder and library.path
|
|
156
|
+
# Fast lookup without relations seems better though, paths shouldn't change too much.
|
|
157
|
+
|
|
158
|
+
# Determine which covers need re-pathing
|
|
159
|
+
update_covers = []
|
|
160
|
+
delete_cover_pks = []
|
|
161
|
+
update_fields = ("path", "updated_at")
|
|
162
|
+
group_covers = (
|
|
163
|
+
CustomCover.objects.filter(library__covers_only=True)
|
|
164
|
+
.exclude(path__startswith=F("library__path"))
|
|
165
|
+
.only(*update_fields)
|
|
166
|
+
)
|
|
167
|
+
LOG.debug(f"Checking that group custom covers are under {CUSTOM_COVERS_DIR}")
|
|
168
|
+
for cover in group_covers.iterator():
|
|
169
|
+
old_path = cover.path
|
|
170
|
+
parts = old_path.rsplit(f"/{CUSTOM_COVERS_SUBDIR}/")
|
|
171
|
+
if len(parts) < 2: # noqa: PLR2004
|
|
172
|
+
delete_cover_pks.append(cover.pk)
|
|
173
|
+
continue
|
|
174
|
+
new_path = CUSTOM_COVERS_DIR / parts[1]
|
|
175
|
+
if new_path.exists():
|
|
176
|
+
cover.path = str(new_path)
|
|
177
|
+
update_covers.append(cover)
|
|
178
|
+
else:
|
|
179
|
+
delete_cover_pks.append(cover.pk)
|
|
180
|
+
update_count = len(update_covers)
|
|
181
|
+
LOG.debug(
|
|
182
|
+
f"Found {update_count} custom covers to update, {len(delete_cover_pks)} to delete."
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
# Update covers
|
|
186
|
+
if update_count:
|
|
187
|
+
CustomCover.objects.bulk_update(update_covers, update_fields)
|
|
188
|
+
LOG.info(
|
|
189
|
+
f"Updated {update_count} CustomCovers sources to point to new config dir"
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
# Delete covers we can't reliably update.
|
|
193
|
+
if delete_cover_pks:
|
|
194
|
+
delete_qs = CustomCover.objects.filter(pk__in=delete_cover_pks)
|
|
195
|
+
delete_count = delete_qs.count()
|
|
196
|
+
delete_qs.delete()
|
|
197
|
+
LOG.warning(
|
|
198
|
+
f"Delete {delete_count} CustomCovers that could not be re-sourced after config dir change."
|
|
199
|
+
)
|
|
128
200
|
|
|
129
201
|
|
|
130
202
|
def ensure_db_rows():
|
|
@@ -134,6 +206,8 @@ def ensure_db_rows():
|
|
|
134
206
|
init_timestamps()
|
|
135
207
|
init_librarian_statuses()
|
|
136
208
|
clear_library_status()
|
|
209
|
+
init_custom_cover_dir()
|
|
210
|
+
update_custom_covers_for_config_dir()
|
|
137
211
|
|
|
138
212
|
|
|
139
213
|
def codex_init():
|
codex/static_root/assets/{VCheckbox-CRu3BJ5D.48cbd6b412f4.js → VCheckbox-BF_99tgB.7fe59e56d9d4.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as A,V as t}from"./VCheckboxBtn-
|
|
1
|
+
import{m as A,V as t}from"./VCheckboxBtn-Coc7g8m7.js";import{a as F,u as I,V as l}from"./VSelectionControl-DKOhc2zB.js";import{x as B,al as U,G as R,as as D,y as G,h as K,K as L,cr as M,L as u,ap as r}from"./admin-drawer-panel-B2rmpAVA.js";const N=B({...F(),...U(A(),["inline"])},"VCheckbox"),w=R()({name:"VCheckbox",inheritAttrs:!1,props:N(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=D(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=G(),p=K(()=>e.id||`checkbox-${V}`);return L(()=>{const[b,f]=M(d),v=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},b,v,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:p.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:y,isValid:C}=o;return u(t,r(k,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:y.value},f,{error:C.value===!1,modelValue:s.value,"onUpdate:modelValue":g=>s.value=g,onFocus:i,onBlur:m}),a)}})}),{}}});export{w as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as A,V as t}from"./VCheckboxBtn-
|
|
1
|
+
import{m as A,V as t}from"./VCheckboxBtn-Coc7g8m7.js";import{a as F,u as I,V as l}from"./VSelectionControl-DKOhc2zB.js";import{x as B,al as U,G as R,as as D,y as G,h as K,K as L,cr as M,L as u,ap as r}from"./admin-drawer-panel-B2rmpAVA.js";const N=B({...F(),...U(A(),["inline"])},"VCheckbox"),w=R()({name:"VCheckbox",inheritAttrs:!1,props:N(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:d,slots:a}=c;const s=D(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=G(),p=K(()=>e.id||`checkbox-${V}`);return L(()=>{const[b,f]=M(d),v=l.filterProps(e),k=t.filterProps(e);return u(l,r({class:["v-checkbox",e.class]},b,v,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:p.value,focused:n.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:y,isValid:C}=o;return u(t,r(k,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:y.value},f,{error:C.value===!1,modelValue:s.value,"onUpdate:modelValue":g=>s.value=g,onFocus:i,onBlur:m}),a)}})}),{}}});export{w as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as f,d as o}from"./VSelectionControl-
|
|
1
|
+
import{c as f,d as o}from"./VSelectionControl-DKOhc2zB.js";import{x as V,ba as v,G as x,as as c,h as l,K as I,al as h,L as k,ap as b}from"./admin-drawer-panel-B2rmpAVA.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:v,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),y=x()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:s}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function u(a){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),d=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const a=h(o.filterProps(e),["modelValue"]);return k(o,b(a,{modelValue:n.value,"onUpdate:modelValue":[m=>n.value=m,u],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:d.value,"aria-checked":t.value?"mixed":void 0}),s)}),{}}});export{y as V,C as m};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as f,d as o}from"./VSelectionControl-
|
|
1
|
+
import{c as f,d as o}from"./VSelectionControl-DKOhc2zB.js";import{x as V,ba as v,G as x,as as c,h as l,K as I,al as h,L as k,ap as b}from"./admin-drawer-panel-B2rmpAVA.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:v,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),y=x()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:s}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function u(a){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),d=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const a=h(o.filterProps(e),["modelValue"]);return k(o,b(a,{modelValue:n.value,"onUpdate:modelValue":[m=>n.value=m,u],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:d.value,"aria-checked":t.value?"mixed":void 0}),s)}),{}}});export{y as V,C as m};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as pe,u as ke,a as Ce,b as we,c as Se}from"./VSelect-ChOlLRyH.js";import{m as Fe,V as Z}from"./VTextField-Dftcik85.js";import{x as Ie,al as De,aZ as Pe,G as Ae,bS as Re,r as K,s as D,as as Q,h,cD as _e,an as Me,cE as P,a as A,n as Y,X as Ee,K as Te,L as s,M as O,ap as I,bq as Le,ak as ee,cF as Ne,ah as le,cG as Ke,bd as Oe,ad as Be,cH as Ue,cI as He,cJ as je}from"./admin-drawer-panel-B2rmpAVA.js";import{m as qe,u as ze}from"./filter-jRB1Ob6r.js";import{g as Ge}from"./VSelectionControl-DKOhc2zB.js";import{f as $e}from"./VDialog-pzwzInEh.js";import{V as Je}from"./VCheckboxBtn-Coc7g8m7.js";function We(e,g,R){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?s(O,null,[s("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),s("span",{class:"v-combobox__mask"},[e.substr(g,R)]),s("span",{class:"v-combobox__unmask"},[e.substr(g+R)])]):e}const Xe=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...qe({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...De(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Pe({transition:!1})},"VCombobox"),ul=Ae()({name:"VCombobox",props:Xe(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var J;let{emit:R,slots:n}=g;const{t:B}=Re(),p=K(),x=D(!1),k=D(!0),_=D(!1),z=K(),G=K(),U=Q(e,"menu"),c=h({get:()=>U.value,set:l=>{var t;U.value&&!l&&((t=z.value)!=null&&t.ΨopenChildren)||(U.value=l)}}),r=D(-1);let H=!1;const ae=h(()=>{var l;return(l=p.value)==null?void 0:l.color}),$=h(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ue,transformOut:ne}=_e(e),{textColorClasses:oe,textColorStyles:ie}=Me(ae),u=Q(e,"modelValue",[],l=>ue(je(l)),l=>{const t=ne(l);return e.multiple?t:t[0]??null}),F=Ge(),M=h(()=>!!(e.chips||n.chip)),y=h(()=>M.value||!!n.selection),C=D(!e.multiple&&!y.value?((J=u.value[0])==null?void 0:J.title)??"":""),v=h({get:()=>C.value,set:l=>{var t;if(C.value=l??"",!e.multiple&&!y.value&&(u.value=[P(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const i=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));i.length>1&&(i.forEach(a=>{a=a.trim(),a&&m(P(e,a))}),C.value="")}l||(r.value=-1),k.value=!l}}),se=h(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?u.value.length:v.value.length);A(C,l=>{H?Y(()=>H=!1):x.value&&!c.value&&(c.value=!0),R("update:search",l)}),A(u,l=>{var t;!e.multiple&&!y.value&&(C.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:E,getMatches:re}=ze(e,te,()=>k.value?"":v.value),V=h(()=>e.hideSelected?E.value.filter(l=>!u.value.some(t=>t.value===l.value)):E.value),ce=h(()=>u.value.map(l=>l.value)),T=h(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=V.value[0])==null?void 0:t.title))&&V.value.length>0&&!k.value&&!_.value}),j=h(()=>e.hideNoData&&!V.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),q=K(),{onListScroll:ve,onListKeydown:de}=ke(q,p);function fe(l){H=!0,e.openOnClear&&(c.value=!0)}function me(){j.value||(c.value=!0)}function he(l){j.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function be(l){var a;if(He(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=p.value.selectionStart,i=u.value.length;if((r.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"].includes(l.key)&&(T.value&&l.key==="Enter"&&m(E.value[0]),k.value=!0),l.key==="ArrowDown"&&T.value&&((a=q.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(m(P(e,v.value)),y.value&&(C.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&u.value.length>0&&!v.value)return m(u.value[0],!1);if(~r.value){const o=r.value;m(u.value[r.value],!1),r.value=o>=i-1?i-2:o}else l.key==="Backspace"&&!v.value&&(r.value=i-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(r.value<0&&t>0)return;const o=r.value>-1?r.value-1:i-1;u.value[o]?r.value=o:(r.value=-1,p.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(r.value<0)return;const o=r.value+1;u.value[o]?r.value=o:(r.value=-1,p.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(k.value=!0,(l=p.value)==null||l.focus())}function m(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const i=u.value.findIndex(o=>e.valueComparator(o.value,l.value)),a=t??!~i;if(~i){const o=a?[...u.value,l]:[...u.value];o.splice(i,1),u.value=o}else a&&(u.value=[...u.value,l]);e.clearOnSelect&&(v.value="")}else{const i=t!==!1;u.value=i?[l]:[],C.value=i&&!y.value?l.title:"",Y(()=>{c.value=!1,k.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{_.value=!0})}function ye(l){_.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(u.value=[])}return A(x,(l,t)=>{if(!(l||l===t)){if(r.value=-1,c.value=!1,T.value&&!_.value&&!u.value.some(i=>{let{value:a}=i;return a===V.value[0].value})){m(V.value[0]);return}if(v.value){if(e.multiple){m(P(e,v.value));return}if(!y.value)return;u.value.some(i=>{let{title:a}=i;return a===v.value})?C.value="":m(P(e,v.value))}}}),A(c,()=>{if(!e.hideSelected&&c.value&&u.value.length){const l=V.value.findIndex(t=>u.value.some(i=>e.valueComparator(i.value,t.value)));Ee&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=G.value)==null||t.scrollToIndex(l))})}}),A(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Te(()=>{const l=!!(!e.hideNoData||V.value.length||n["prepend-item"]||n["append-item"]||n["no-data"]),t=u.value.length>0,i=Z.filterProps(e);return s(Z,I({ref:p},i,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:u.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":r.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:be}),{...n,default:()=>s(O,null,[s(Ce,I({ref:z,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:j.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&s(Le,I({ref:q,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,o,b;return[(a=n["prepend-item"])==null?void 0:a.call(n),!V.value.length&&!e.hideNoData&&(((o=n["no-data"])==null?void 0:o.call(n))??s(ee,{title:B(e.noDataText)},null)),s(we,{ref:G,renderless:!0,items:V.value},{default:w=>{var X;let{item:d,index:S,itemRef:f}=w;const W=I(d.props,{ref:f,key:S,active:T.value&&S===0?!0:void 0,onClick:()=>m(d,null)});return((X=n.item)==null?void 0:X.call(n,{item:d,index:S,props:W}))??s(ee,I(W,{role:"option"}),{prepend:L=>{let{isSelected:N}=L;return s(O,null,[e.multiple&&!e.hideSelected?s(Je,{key:d.value,modelValue:N,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&s(Ne,{image:d.props.prependAvatar},null),d.props.prependIcon&&s(le,{icon:d.props.prependIcon},null)])},title:()=>{var L,N;return k.value?d.title:We(d.title,(L=re(d))==null?void 0:L.title,((N=v.value)==null?void 0:N.length)??0)}})}}),(b=n["append-item"])==null?void 0:b.call(n)]}})]}),u.value.map((a,o)=>{function b(f){f.stopPropagation(),f.preventDefault(),m(a,!1)}const w={"onClick:close":b,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),b(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=M.value?!!n.chip:!!n.selection,S=d?Ke(M.value?n.chip({item:a,index:o,props:w}):n.selection({item:a,index:o})):void 0;if(!(d&&!S))return s("div",{key:a.value,class:["v-combobox__selection",o===r.value&&["v-combobox__selection--selected",oe.value]],style:o===r.value?ie.value:{}},[M.value?n.chip?s(Oe,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):s(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??s("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&o<u.value.length-1&&s("span",{class:"v-combobox__selection-comma"},[Be(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,o=new Array(a),b=0;b<a;b++)o[b]=arguments[b];return s(O,null,[(w=n["append-inner"])==null?void 0:w.call(n,...o),(!e.hideNoData||e.items.length)&&e.menuIcon?s(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:he,onClick:Ue,"aria-label":B($.value),title:B($.value),tabindex:"-1"},null):void 0])}})}),$e({isFocused:x,isPristine:k,menu:c,search:v,selectionIndex:r,filteredItems:E,select:m},p)}});export{ul as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as pe,u as ke,a as Ce,b as we,c as Se}from"./VSelect-ChOlLRyH.js";import{m as Fe,V as Z}from"./VTextField-Dftcik85.js";import{x as Ie,al as De,aZ as Pe,G as Ae,bS as Re,r as K,s as D,as as Q,h,cD as _e,an as Me,cE as P,a as A,n as Y,X as Ee,K as Te,L as s,M as O,ap as I,bq as Le,ak as ee,cF as Ne,ah as le,cG as Ke,bd as Oe,ad as Be,cH as Ue,cI as He,cJ as je}from"./admin-drawer-panel-B2rmpAVA.js";import{m as qe,u as ze}from"./filter-jRB1Ob6r.js";import{g as Ge}from"./VSelectionControl-DKOhc2zB.js";import{f as $e}from"./VDialog-pzwzInEh.js";import{V as Je}from"./VCheckboxBtn-Coc7g8m7.js";function We(e,g,R){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?s(O,null,[s("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),s("span",{class:"v-combobox__mask"},[e.substr(g,R)]),s("span",{class:"v-combobox__unmask"},[e.substr(g+R)])]):e}const Xe=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...qe({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...De(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Pe({transition:!1})},"VCombobox"),ul=Ae()({name:"VCombobox",props:Xe(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var J;let{emit:R,slots:n}=g;const{t:B}=Re(),p=K(),x=D(!1),k=D(!0),_=D(!1),z=K(),G=K(),U=Q(e,"menu"),c=h({get:()=>U.value,set:l=>{var t;U.value&&!l&&((t=z.value)!=null&&t.ΨopenChildren)||(U.value=l)}}),r=D(-1);let H=!1;const ae=h(()=>{var l;return(l=p.value)==null?void 0:l.color}),$=h(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ue,transformOut:ne}=_e(e),{textColorClasses:oe,textColorStyles:ie}=Me(ae),u=Q(e,"modelValue",[],l=>ue(je(l)),l=>{const t=ne(l);return e.multiple?t:t[0]??null}),F=Ge(),M=h(()=>!!(e.chips||n.chip)),y=h(()=>M.value||!!n.selection),C=D(!e.multiple&&!y.value?((J=u.value[0])==null?void 0:J.title)??"":""),v=h({get:()=>C.value,set:l=>{var t;if(C.value=l??"",!e.multiple&&!y.value&&(u.value=[P(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const i=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));i.length>1&&(i.forEach(a=>{a=a.trim(),a&&m(P(e,a))}),C.value="")}l||(r.value=-1),k.value=!l}}),se=h(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?u.value.length:v.value.length);A(C,l=>{H?Y(()=>H=!1):x.value&&!c.value&&(c.value=!0),R("update:search",l)}),A(u,l=>{var t;!e.multiple&&!y.value&&(C.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:E,getMatches:re}=ze(e,te,()=>k.value?"":v.value),V=h(()=>e.hideSelected?E.value.filter(l=>!u.value.some(t=>t.value===l.value)):E.value),ce=h(()=>u.value.map(l=>l.value)),T=h(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=V.value[0])==null?void 0:t.title))&&V.value.length>0&&!k.value&&!_.value}),j=h(()=>e.hideNoData&&!V.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),q=K(),{onListScroll:ve,onListKeydown:de}=ke(q,p);function fe(l){H=!0,e.openOnClear&&(c.value=!0)}function me(){j.value||(c.value=!0)}function he(l){j.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function be(l){var a;if(He(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=p.value.selectionStart,i=u.value.length;if((r.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"].includes(l.key)&&(T.value&&l.key==="Enter"&&m(E.value[0]),k.value=!0),l.key==="ArrowDown"&&T.value&&((a=q.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(m(P(e,v.value)),y.value&&(C.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&u.value.length>0&&!v.value)return m(u.value[0],!1);if(~r.value){const o=r.value;m(u.value[r.value],!1),r.value=o>=i-1?i-2:o}else l.key==="Backspace"&&!v.value&&(r.value=i-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(r.value<0&&t>0)return;const o=r.value>-1?r.value-1:i-1;u.value[o]?r.value=o:(r.value=-1,p.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(r.value<0)return;const o=r.value+1;u.value[o]?r.value=o:(r.value=-1,p.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(k.value=!0,(l=p.value)==null||l.focus())}function m(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const i=u.value.findIndex(o=>e.valueComparator(o.value,l.value)),a=t??!~i;if(~i){const o=a?[...u.value,l]:[...u.value];o.splice(i,1),u.value=o}else a&&(u.value=[...u.value,l]);e.clearOnSelect&&(v.value="")}else{const i=t!==!1;u.value=i?[l]:[],C.value=i&&!y.value?l.title:"",Y(()=>{c.value=!1,k.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{_.value=!0})}function ye(l){_.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(u.value=[])}return A(x,(l,t)=>{if(!(l||l===t)){if(r.value=-1,c.value=!1,T.value&&!_.value&&!u.value.some(i=>{let{value:a}=i;return a===V.value[0].value})){m(V.value[0]);return}if(v.value){if(e.multiple){m(P(e,v.value));return}if(!y.value)return;u.value.some(i=>{let{title:a}=i;return a===v.value})?C.value="":m(P(e,v.value))}}}),A(c,()=>{if(!e.hideSelected&&c.value&&u.value.length){const l=V.value.findIndex(t=>u.value.some(i=>e.valueComparator(i.value,t.value)));Ee&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=G.value)==null||t.scrollToIndex(l))})}}),A(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Te(()=>{const l=!!(!e.hideNoData||V.value.length||n["prepend-item"]||n["append-item"]||n["no-data"]),t=u.value.length>0,i=Z.filterProps(e);return s(Z,I({ref:p},i,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:u.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":r.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:be}),{...n,default:()=>s(O,null,[s(Ce,I({ref:z,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:j.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&s(Le,I({ref:q,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,o,b;return[(a=n["prepend-item"])==null?void 0:a.call(n),!V.value.length&&!e.hideNoData&&(((o=n["no-data"])==null?void 0:o.call(n))??s(ee,{title:B(e.noDataText)},null)),s(we,{ref:G,renderless:!0,items:V.value},{default:w=>{var X;let{item:d,index:S,itemRef:f}=w;const W=I(d.props,{ref:f,key:S,active:T.value&&S===0?!0:void 0,onClick:()=>m(d,null)});return((X=n.item)==null?void 0:X.call(n,{item:d,index:S,props:W}))??s(ee,I(W,{role:"option"}),{prepend:L=>{let{isSelected:N}=L;return s(O,null,[e.multiple&&!e.hideSelected?s(Je,{key:d.value,modelValue:N,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&s(Ne,{image:d.props.prependAvatar},null),d.props.prependIcon&&s(le,{icon:d.props.prependIcon},null)])},title:()=>{var L,N;return k.value?d.title:We(d.title,(L=re(d))==null?void 0:L.title,((N=v.value)==null?void 0:N.length)??0)}})}}),(b=n["append-item"])==null?void 0:b.call(n)]}})]}),u.value.map((a,o)=>{function b(f){f.stopPropagation(),f.preventDefault(),m(a,!1)}const w={"onClick:close":b,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),b(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=M.value?!!n.chip:!!n.selection,S=d?Ke(M.value?n.chip({item:a,index:o,props:w}):n.selection({item:a,index:o})):void 0;if(!(d&&!S))return s("div",{key:a.value,class:["v-combobox__selection",o===r.value&&["v-combobox__selection--selected",oe.value]],style:o===r.value?ie.value:{}},[M.value?n.chip?s(Oe,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):s(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??s("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&o<u.value.length-1&&s("span",{class:"v-combobox__selection-comma"},[Be(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,o=new Array(a),b=0;b<a;b++)o[b]=arguments[b];return s(O,null,[(w=n["append-inner"])==null?void 0:w.call(n,...o),(!e.hideNoData||e.items.length)&&e.menuIcon?s(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:he,onClick:Ue,"aria-label":B($.value),title:B($.value),tabindex:"-1"},null):void 0])}})}),$e({isFocused:x,isPristine:k,menu:c,search:v,selectionIndex:r,filteredItems:E,select:m},p)}});export{ul as V};
|
|
Binary file
|
|
Binary file
|
codex/static_root/assets/{VDialog-BcnzrzZO.7fa7ec337394.js → VDialog-pzwzInEh.51acf566a069.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Ue,R as Ge,aA as Xe,L as B,T as ge,ad as ye,ai as Ye,ao as he,x as z,r as W,X as N,ch as fe,a as R,ci as $,df as Ke,dg as Ze,dh as be,di as ne,dj as oe,dk as we,h as O,n as Q,dl as Je,dm as Z,dn as ae,dp as Ee,dq as xe,C as V,a0 as Se,d7 as Qe,w as ve,dr as Te,ds as et,dt as tt,z as de,i as Be,du as pe,dv as nt,ap as D,dw as ot,d6 as at,s as j,cf as rt,f as Fe,p as lt,dx as it,dy as st,dz as Le,E as ct,aV as ut,F as ft,aW as vt,G as Me,as as _e,I as dt,J as mt,aw as gt,ax as yt,aY as ht,o as bt,cj as wt,d4 as Et,aq as xt,K as Ve,dA as St,a$ as pt,aZ as Pt,b0 as Ot,a_ as At,M as Ct,cl as kt,dB as Rt,ar as Tt,cU as Bt,c6 as Ft,cW as Lt}from"./admin-drawer-panel-B98ueC5c.js";import{d as Mt}from"./main-BCYKxiL-.js";const _t={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},Vt={class:"confirmFooter"};function Dt(e,n,t,o,i,a){return Ge(),Xe("footer",Vt,[B(he,{class:"confirmButton",disabled:t.disabled,onClick:n[0]||(n[0]=r=>e.$emit("confirm"))},{default:ge(()=>[ye(Ye(t.confirmText),1)]),_:1},8,["disabled"]),B(he,{class:"cancelButton",onClick:n[1]||(n[1]=r=>e.$emit("cancel"))},{default:ge(()=>[ye(" Cancel ")]),_:1})])}const yn=Ue(_t,[["render",Dt],["__scopeId","data-v-24df1550"]]);function re(e,n){return{x:e.x+n.x,y:e.y+n.y}}function It(e,n){return{x:e.x-n.x,y:e.y-n.y}}function Pe(e,n){if(e.side==="top"||e.side==="bottom"){const{side:t,align:o}=e,i=o==="left"?0:o==="center"?n.width/2:o==="right"?n.width:o,a=t==="top"?0:t==="bottom"?n.height:t;return re({x:i,y:a},n)}else if(e.side==="left"||e.side==="right"){const{side:t,align:o}=e,i=t==="left"?0:t==="right"?n.width:t,a=o==="top"?0:o==="center"?n.height/2:o==="bottom"?n.height:o;return re({x:i,y:a},n)}return re({x:n.width/2,y:n.height/2},n)}const De={static:Ht,connected:qt},Wt=z({locationStrategy:{type:[String,Function],default:"static",validator:e=>typeof e=="function"||e in De},location:{type:String,default:"bottom"},origin:{type:String,default:"auto"},offset:[Number,String,Array]},"VOverlay-location-strategies");function $t(e,n){const t=W({}),o=W();N&&fe(()=>!!(n.isActive.value&&e.locationStrategy),a=>{var r,l;R(()=>e.locationStrategy,a),$(()=>{window.removeEventListener("resize",i),o.value=void 0}),window.addEventListener("resize",i,{passive:!0}),typeof e.locationStrategy=="function"?o.value=(r=e.locationStrategy(n,e,t))==null?void 0:r.updateLocation:o.value=(l=De[e.locationStrategy](n,e,t))==null?void 0:l.updateLocation});function i(a){var r;(r=o.value)==null||r.call(o,a)}return{contentStyles:t,updateLocation:o}}function Ht(){}function Nt(e,n){n?e.style.removeProperty("left"):e.style.removeProperty("right");const t=Qe(e);return n?t.x+=parseFloat(e.style.right||0):t.x-=parseFloat(e.style.left||0),t.y-=parseFloat(e.style.top||0),t}function qt(e,n,t){(Array.isArray(e.target.value)||Ke(e.target.value))&&Object.assign(t.value,{position:"fixed",top:0,[e.isRtl.value?"right":"left"]:0});const{preferredAnchor:i,preferredOrigin:a}=Ze(()=>{const d=be(n.location,e.isRtl.value),u=n.origin==="overlap"?d:n.origin==="auto"?ne(d):be(n.origin,e.isRtl.value);return d.side===u.side&&d.align===oe(u).align?{preferredAnchor:we(d),preferredOrigin:we(u)}:{preferredAnchor:d,preferredOrigin:u}}),[r,l,f,v]=["minWidth","minHeight","maxWidth","maxHeight"].map(d=>O(()=>{const u=parseFloat(n[d]);return isNaN(u)?1/0:u})),c=O(()=>{if(Array.isArray(n.offset))return n.offset;if(typeof n.offset=="string"){const d=n.offset.split(" ").map(parseFloat);return d.length<2&&d.push(0),d}return typeof n.offset=="number"?[n.offset,0]:[0,0]});let m=!1;const b=new ResizeObserver(()=>{m&&h()});R([e.target,e.contentEl],(d,u)=>{let[S,A]=d,[p,w]=u;p&&!Array.isArray(p)&&b.unobserve(p),S&&!Array.isArray(S)&&b.observe(S),w&&b.unobserve(w),A&&b.observe(A)},{immediate:!0}),$(()=>{b.disconnect()});function h(){if(m=!1,requestAnimationFrame(()=>m=!0),!e.target.value||!e.contentEl.value)return;const d=Je(e.target.value),u=Nt(e.contentEl.value,e.isRtl.value),S=Z(e.contentEl.value),A=12;S.length||(S.push(document.documentElement),e.contentEl.value.style.top&&e.contentEl.value.style.left||(u.x-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-x")||0),u.y-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-y")||0)));const p=S.reduce((P,E)=>{const g=E.getBoundingClientRect(),y=new ae({x:E===document.documentElement?0:g.x,y:E===document.documentElement?0:g.y,width:E.clientWidth,height:E.clientHeight});return P?new ae({x:Math.max(P.left,y.left),y:Math.max(P.top,y.top),width:Math.min(P.right,y.right)-Math.max(P.left,y.left),height:Math.min(P.bottom,y.bottom)-Math.max(P.top,y.top)}):y},void 0);p.x+=A,p.y+=A,p.width-=A*2,p.height-=A*2;let w={anchor:i.value,origin:a.value};function H(P){const E=new ae(u),g=Pe(P.anchor,d),y=Pe(P.origin,E);let{x:M,y:F}=It(g,y);switch(P.anchor.side){case"top":F-=c.value[0];break;case"bottom":F+=c.value[0];break;case"left":M-=c.value[0];break;case"right":M+=c.value[0];break}switch(P.anchor.align){case"top":F-=c.value[1];break;case"bottom":F+=c.value[1];break;case"left":M-=c.value[1];break;case"right":M+=c.value[1];break}return E.x+=M,E.y+=F,E.width=Math.min(E.width,f.value),E.height=Math.min(E.height,v.value),{overflows:xe(E,p),x:M,y:F}}let L=0,C=0;const s={x:0,y:0},T={x:!1,y:!1};let ee=-1;for(;!(ee++>10);){const{x:P,y:E,overflows:g}=H(w);L+=P,C+=E,u.x+=P,u.y+=E;{const y=Ee(w.anchor),M=g.x.before||g.x.after,F=g.y.before||g.y.after;let U=!1;if(["x","y"].forEach(k=>{if(k==="x"&&M&&!T.x||k==="y"&&F&&!T.y){const _={anchor:{...w.anchor},origin:{...w.origin}},X=k==="x"?y==="y"?oe:ne:y==="y"?ne:oe;_.anchor=X(_.anchor),_.origin=X(_.origin);const{overflows:q}=H(_);(q[k].before<=g[k].before&&q[k].after<=g[k].after||q[k].before+q[k].after<(g[k].before+g[k].after)/2)&&(w=_,U=T[k]=!0)}}),U)continue}g.x.before&&(L+=g.x.before,u.x+=g.x.before),g.x.after&&(L-=g.x.after,u.x-=g.x.after),g.y.before&&(C+=g.y.before,u.y+=g.y.before),g.y.after&&(C-=g.y.after,u.y-=g.y.after);{const y=xe(u,p);s.x=p.width-y.x.before-y.x.after,s.y=p.height-y.y.before-y.y.after,L+=y.x.before,u.x+=y.x.before,C+=y.y.before,u.y+=y.y.before}break}const te=Ee(w.anchor);return Object.assign(t.value,{"--v-overlay-anchor-origin":`${w.anchor.side} ${w.anchor.align}`,transformOrigin:`${w.origin.side} ${w.origin.align}`,top:V(le(C)),left:e.isRtl.value?void 0:V(le(L)),right:e.isRtl.value?V(le(-L)):void 0,minWidth:V(te==="y"?Math.min(r.value,d.width):r.value),maxWidth:V(Oe(Se(s.x,r.value===1/0?0:r.value,f.value))),maxHeight:V(Oe(Se(s.y,l.value===1/0?0:l.value,v.value)))}),{available:s,contentBox:u}}return R(()=>[i.value,a.value,n.offset,n.minWidth,n.minHeight,n.maxWidth,n.maxHeight],()=>h()),Q(()=>{const d=h();if(!d)return;const{available:u,contentBox:S}=d;S.height>u.y&&requestAnimationFrame(()=>{h(),requestAnimationFrame(()=>{h()})})}),{updateLocation:h}}function le(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function Oe(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}let ce=!0;const J=[];function zt(e){!ce||J.length?(J.push(e),ue()):(ce=!1,e(),ue())}let Ae=-1;function ue(){cancelAnimationFrame(Ae),Ae=requestAnimationFrame(()=>{const e=J.shift();e&&e(),J.length?ue():ce=!0})}const K={none:null,close:Gt,block:Xt,reposition:Yt},jt=z({scrollStrategy:{type:[String,Function],default:"block",validator:e=>typeof e=="function"||e in K}},"VOverlay-scroll-strategies");function Ut(e,n){if(!N)return;let t;ve(async()=>{t==null||t.stop(),n.isActive.value&&e.scrollStrategy&&(t=Te(),await new Promise(o=>setTimeout(o)),t.active&&t.run(()=>{var o;typeof e.scrollStrategy=="function"?e.scrollStrategy(n,e,t):(o=K[e.scrollStrategy])==null||o.call(K,n,e,t)}))}),$(()=>{t==null||t.stop()})}function Gt(e){function n(t){e.isActive.value=!1}Ie(e.targetEl.value??e.contentEl.value,n)}function Xt(e,n){var r;const t=(r=e.root.value)==null?void 0:r.offsetParent,o=[...new Set([...Z(e.targetEl.value,n.contained?t:void 0),...Z(e.contentEl.value,n.contained?t:void 0)])].filter(l=>!l.classList.contains("v-overlay-scroll-blocked")),i=window.innerWidth-document.documentElement.offsetWidth,a=(l=>et(l)&&l)(t||document.documentElement);a&&e.root.value.classList.add("v-overlay--scroll-blocked"),o.forEach((l,f)=>{l.style.setProperty("--v-body-scroll-x",V(-l.scrollLeft)),l.style.setProperty("--v-body-scroll-y",V(-l.scrollTop)),l!==document.documentElement&&l.style.setProperty("--v-scrollbar-offset",V(i)),l.classList.add("v-overlay-scroll-blocked")}),$(()=>{o.forEach((l,f)=>{const v=parseFloat(l.style.getPropertyValue("--v-body-scroll-x")),c=parseFloat(l.style.getPropertyValue("--v-body-scroll-y")),m=l.style.scrollBehavior;l.style.scrollBehavior="auto",l.style.removeProperty("--v-body-scroll-x"),l.style.removeProperty("--v-body-scroll-y"),l.style.removeProperty("--v-scrollbar-offset"),l.classList.remove("v-overlay-scroll-blocked"),l.scrollLeft=-v,l.scrollTop=-c,l.style.scrollBehavior=m}),a&&e.root.value.classList.remove("v-overlay--scroll-blocked")})}function Yt(e,n,t){let o=!1,i=-1,a=-1;function r(l){zt(()=>{var c,m;const f=performance.now();(m=(c=e.updateLocation).value)==null||m.call(c,l),o=(performance.now()-f)/(1e3/60)>2})}a=(typeof requestIdleCallback>"u"?l=>l():requestIdleCallback)(()=>{t.run(()=>{Ie(e.targetEl.value??e.contentEl.value,l=>{o?(cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=requestAnimationFrame(()=>{r(l)})})):r(l)})})}),$(()=>{typeof cancelIdleCallback<"u"&&cancelIdleCallback(a),cancelAnimationFrame(i)})}function Ie(e,n){const t=[document,...Z(e)];t.forEach(o=>{o.addEventListener("scroll",n,{passive:!0})}),$(()=>{t.forEach(o=>{o.removeEventListener("scroll",n)})})}const Kt=Symbol.for("vuetify:v-menu"),Zt=z({closeDelay:[Number,String],openDelay:[Number,String]},"delay");function Jt(e,n){let t=()=>{};function o(r){t==null||t();const l=Number(r?e.openDelay:e.closeDelay);return new Promise(f=>{t=tt(l,()=>{n==null||n(r),f(r)})})}function i(){return o(!0)}function a(){return o(!1)}return{clearDelay:t,runOpenDelay:i,runCloseDelay:a}}const Qt=z({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...Zt()},"VOverlay-activator");function en(e,n){let{isActive:t,isTop:o}=n;const i=de("useActivator"),a=W();let r=!1,l=!1,f=!0;const v=O(()=>e.openOnFocus||e.openOnFocus==null&&e.openOnHover),c=O(()=>e.openOnClick||e.openOnClick==null&&!e.openOnHover&&!v.value),{runOpenDelay:m,runCloseDelay:b}=Jt(e,s=>{s===(e.openOnHover&&r||v.value&&l)&&!(e.openOnHover&&t.value&&!o.value)&&(t.value!==s&&(f=!0),t.value=s)}),h=W(),d={onClick:s=>{s.stopPropagation(),a.value=s.currentTarget||s.target,t.value||(h.value=[s.clientX,s.clientY]),t.value=!t.value},onMouseenter:s=>{var T;(T=s.sourceCapabilities)!=null&&T.firesTouchEvents||(r=!0,a.value=s.currentTarget||s.target,m())},onMouseleave:s=>{r=!1,b()},onFocus:s=>{at(s.target,":focus-visible")!==!1&&(l=!0,s.stopPropagation(),a.value=s.currentTarget||s.target,m())},onBlur:s=>{l=!1,s.stopPropagation(),b()}},u=O(()=>{const s={};return c.value&&(s.onClick=d.onClick),e.openOnHover&&(s.onMouseenter=d.onMouseenter,s.onMouseleave=d.onMouseleave),v.value&&(s.onFocus=d.onFocus,s.onBlur=d.onBlur),s}),S=O(()=>{const s={};if(e.openOnHover&&(s.onMouseenter=()=>{r=!0,m()},s.onMouseleave=()=>{r=!1,b()}),v.value&&(s.onFocusin=()=>{l=!0,m()},s.onFocusout=()=>{l=!1,b()}),e.closeOnContentClick){const T=Be(Kt,null);s.onClick=()=>{t.value=!1,T==null||T.closeParents()}}return s}),A=O(()=>{const s={};return e.openOnHover&&(s.onMouseenter=()=>{f&&(r=!0,f=!1,m())},s.onMouseleave=()=>{r=!1,b()}),s});R(o,s=>{s&&(e.openOnHover&&!r&&(!v.value||!l)||v.value&&!l&&(!e.openOnHover||!r))&&(t.value=!1)}),R(t,s=>{s||setTimeout(()=>{h.value=void 0})},{flush:"post"});const p=pe();ve(()=>{p.value&&Q(()=>{a.value=p.el})});const w=pe(),H=O(()=>e.target==="cursor"&&h.value?h.value:w.value?w.el:We(e.target,i)||a.value),L=O(()=>Array.isArray(H.value)?void 0:H.value);let C;return R(()=>!!e.activator,s=>{s&&N?(C=Te(),C.run(()=>{tn(e,i,{activatorEl:a,activatorEvents:u})})):C&&C.stop()},{flush:"post",immediate:!0}),$(()=>{C==null||C.stop()}),{activatorEl:a,activatorRef:p,target:H,targetEl:L,targetRef:w,activatorEvents:u,contentEvents:S,scrimEvents:A}}function tn(e,n,t){let{activatorEl:o,activatorEvents:i}=t;R(()=>e.activator,(f,v)=>{if(v&&f!==v){const c=l(v);c&&r(c)}f&&Q(()=>a())},{immediate:!0}),R(()=>e.activatorProps,()=>{a()}),$(()=>{r()});function a(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:l(),v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;f&&nt(f,D(i.value,v))}function r(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:l(),v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;f&&ot(f,D(i.value,v))}function l(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activator;const v=We(f,n);return o.value=(v==null?void 0:v.nodeType)===Node.ELEMENT_NODE?v:void 0,o.value}}function We(e,n){var o,i;if(!e)return;let t;if(e==="parent"){let a=(i=(o=n==null?void 0:n.proxy)==null?void 0:o.$el)==null?void 0:i.parentNode;for(;a!=null&&a.hasAttribute("data-no-activator");)a=a.parentNode;t=a}else typeof e=="string"?t=document.querySelector(e):"$el"in e?t=e.$el:t=e;return t}function nn(){if(!N)return j(!1);const{ssr:e}=Mt();if(e){const n=j(!1);return rt(()=>{n.value=!0}),n}else return j(!0)}const on=z({eager:Boolean},"lazy");function an(e,n){const t=j(!1),o=O(()=>t.value||e.eager||n.value);R(n,()=>t.value=!0);function i(){e.eager||(t.value=!1)}return{isBooted:t,hasContent:o,onAfterLeave:i}}function $e(){const n=de("useScopeId").vnode.scopeId;return{scopeId:n?{[n]:""}:void 0}}const Ce=Symbol.for("vuetify:stack"),G=Fe([]);function rn(e,n,t){const o=de("useStack"),i=!t,a=Be(Ce,void 0),r=Fe({activeChildren:new Set});lt(Ce,r);const l=j(+n.value);fe(e,()=>{var m;const c=(m=G.at(-1))==null?void 0:m[1];l.value=c?c+10:+n.value,i&&G.push([o.uid,l.value]),a==null||a.activeChildren.add(o.uid),$(()=>{if(i){const b=it(G).findIndex(h=>h[0]===o.uid);G.splice(b,1)}a==null||a.activeChildren.delete(o.uid)})});const f=j(!0);i&&ve(()=>{var m;const c=((m=G.at(-1))==null?void 0:m[0])===o.uid;setTimeout(()=>f.value=c)});const v=O(()=>!r.activeChildren.size);return{globalTop:st(f),localTop:v,stackStyles:O(()=>({zIndex:l.value}))}}function ln(e){return{teleportTarget:O(()=>{const t=e.value;if(t===!0||!N)return;const o=t===!1?document.body:typeof t=="string"?document.querySelector(t):t;if(o==null)return;let i=o.querySelector(":scope > .v-overlay-container");return i||(i=document.createElement("div"),i.className="v-overlay-container",o.appendChild(i)),i})}}function sn(){return!0}function He(e,n,t){if(!e||Ne(e,t)===!1)return!1;const o=Le(n);if(typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&o.host===e.target)return!1;const i=(typeof t.value=="object"&&t.value.include||(()=>[]))();return i.push(n),!i.some(a=>a==null?void 0:a.contains(e.target))}function Ne(e,n){return(typeof n.value=="object"&&n.value.closeConditional||sn)(e)}function cn(e,n,t){const o=typeof t.value=="function"?t.value:t.value.handler;n._clickOutside.lastMousedownWasOutside&&He(e,n,t)&&setTimeout(()=>{Ne(e,t)&&o&&o(e)},0)}function ke(e,n){const t=Le(e);n(document),typeof ShadowRoot<"u"&&t instanceof ShadowRoot&&n(t)}const un={mounted(e,n){const t=i=>cn(i,e,n),o=i=>{e._clickOutside.lastMousedownWasOutside=He(i,e,n)};ke(e,i=>{i.addEventListener("click",t,!0),i.addEventListener("mousedown",o,!0)}),e._clickOutside||(e._clickOutside={lastMousedownWasOutside:!1}),e._clickOutside[n.instance.$.uid]={onClick:t,onMousedown:o}},unmounted(e,n){e._clickOutside&&(ke(e,t=>{var a;if(!t||!((a=e._clickOutside)!=null&&a[n.instance.$.uid]))return;const{onClick:o,onMousedown:i}=e._clickOutside[n.instance.$.uid];t.removeEventListener("click",o,!0),t.removeEventListener("mousedown",i,!0)}),delete e._clickOutside[n.instance.$.uid])}};function fn(e){const{modelValue:n,color:t,...o}=e;return B(kt,{name:"fade-transition",appear:!0},{default:()=>[e.modelValue&&B("div",D({class:["v-overlay__scrim",e.color.backgroundColorClasses.value],style:e.color.backgroundColorStyles.value},o),null)]})}const qe=z({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:!0},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,opacity:[Number,String],noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:!0},zIndex:{type:[Number,String],default:2e3},...Qt(),...ct(),...ut(),...on(),...Wt(),...jt(),...ft(),...vt()},"VOverlay"),Re=Me()({name:"VOverlay",directives:{ClickOutside:un},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...qe()},emits:{"click:outside":e=>!0,"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(e,n){let{slots:t,attrs:o,emit:i}=n;const a=_e(e,"modelValue"),r=O({get:()=>a.value,set:x=>{x&&e.disabled||(a.value=x)}}),{teleportTarget:l}=ln(O(()=>e.attach||e.contained)),{themeClasses:f}=dt(e),{rtlClasses:v,isRtl:c}=mt(),{hasContent:m,onAfterLeave:b}=an(e,r),h=gt(O(()=>typeof e.scrim=="string"?e.scrim:null)),{globalTop:d,localTop:u,stackStyles:S}=rn(r,yt(e,"zIndex"),e._disableGlobalStack),{activatorEl:A,activatorRef:p,target:w,targetEl:H,targetRef:L,activatorEvents:C,contentEvents:s,scrimEvents:T}=en(e,{isActive:r,isTop:u}),{dimensionStyles:ee}=ht(e),te=nn(),{scopeId:P}=$e();R(()=>e.disabled,x=>{x&&(r.value=!1)});const E=W(),g=W(),y=W(),{contentStyles:M,updateLocation:F}=$t(e,{isRtl:c,contentEl:y,target:w,isActive:r});Ut(e,{root:E,contentEl:y,targetEl:H,isActive:r,updateLocation:F});function U(x){i("click:outside",x),e.persistent?Y():r.value=!1}function k(x){return r.value&&d.value&&(!e.scrim||x.target===g.value)}N&&R(r,x=>{x?window.addEventListener("keydown",_):window.removeEventListener("keydown",_)},{immediate:!0}),bt(()=>{N&&window.removeEventListener("keydown",_)});function _(x){var I,me;x.key==="Escape"&&d.value&&(e.persistent?Y():(r.value=!1,(I=y.value)!=null&&I.contains(document.activeElement)&&((me=A.value)==null||me.focus())))}const X=wt();fe(()=>e.closeOnBack,()=>{Rt(X,x=>{d.value&&r.value?(x(!1),e.persistent?Y():r.value=!1):x()})});const q=W();R(()=>r.value&&(e.absolute||e.contained)&&l.value==null,x=>{if(x){const I=Et(E.value);I&&I!==document.scrollingElement&&(q.value=I.scrollTop)}});function Y(){e.noClickAnimation||y.value&&xt(y.value,[{transformOrigin:"center"},{transform:"scale(1.03)"},{transformOrigin:"center"}],{duration:150,easing:Tt})}function ze(){i("afterEnter")}function je(){b(),i("afterLeave")}return Ve(()=>{var x;return B(Ct,null,[(x=t.activator)==null?void 0:x.call(t,{isActive:r.value,targetRef:L,props:D({ref:p},C.value,e.activatorProps)}),te.value&&m.value&&B(St,{disabled:!l.value,to:l.value},{default:()=>[B("div",D({class:["v-overlay",{"v-overlay--absolute":e.absolute||e.contained,"v-overlay--active":r.value,"v-overlay--contained":e.contained},f.value,v.value,e.class],style:[S.value,{"--v-overlay-opacity":e.opacity,top:V(q.value)},e.style],ref:E},P,o),[B(fn,D({color:h,modelValue:r.value&&!!e.scrim,ref:g},T.value),null),B(pt,{appear:!0,persisted:!0,transition:e.transition,target:w.value,onAfterEnter:ze,onAfterLeave:je},{default:()=>{var I;return[Pt(B("div",D({ref:y,class:["v-overlay__content",e.contentClass],style:[ee.value,M.value]},s.value,e.contentProps),[(I=t.default)==null?void 0:I.call(t,{isActive:r})]),[[Ot,r.value],[At("click-outside"),{handler:U,closeConditional:k,include:()=>[A.value]}]])]}})])]})])}),{activatorEl:A,scrimEl:g,target:w,animateClick:Y,contentEl:y,globalTop:d,localTop:u,updateLocation:F}}}),ie=Symbol("Forwarded refs");function se(e,n){let t=e;for(;t;){const o=Reflect.getOwnPropertyDescriptor(t,n);if(o)return o;t=Object.getPrototypeOf(t)}}function vn(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),o=1;o<n;o++)t[o-1]=arguments[o];return e[ie]=t,new Proxy(e,{get(i,a){if(Reflect.has(i,a))return Reflect.get(i,a);if(!(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))){for(const r of t)if(r.value&&Reflect.has(r.value,a)){const l=Reflect.get(r.value,a);return typeof l=="function"?l.bind(r.value):l}}},has(i,a){if(Reflect.has(i,a))return!0;if(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))return!1;for(const r of t)if(r.value&&Reflect.has(r.value,a))return!0;return!1},set(i,a,r){if(Reflect.has(i,a))return Reflect.set(i,a,r);if(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))return!1;for(const l of t)if(l.value&&Reflect.has(l.value,a))return Reflect.set(l.value,a,r);return!1},getOwnPropertyDescriptor(i,a){var l;const r=Reflect.getOwnPropertyDescriptor(i,a);if(r)return r;if(!(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))){for(const f of t){if(!f.value)continue;const v=se(f.value,a)??("_"in f.value?se((l=f.value._)==null?void 0:l.setupState,a):void 0);if(v)return v}for(const f of t){const v=f.value&&f.value[ie];if(!v)continue;const c=v.slice();for(;c.length;){const m=c.shift(),b=se(m.value,a);if(b)return b;const h=m.value&&m.value[ie];h&&c.push(...h)}}}}})}const dn=z({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...qe({origin:"center center",scrollStrategy:"block",transition:{component:Bt},zIndex:2400})},"VDialog"),hn=Me()({name:"VDialog",props:dn(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,n){let{emit:t,slots:o}=n;const i=_e(e,"modelValue"),{scopeId:a}=$e(),r=W();function l(c){var h,d;const m=c.relatedTarget,b=c.target;if(m!==b&&((h=r.value)!=null&&h.contentEl)&&((d=r.value)!=null&&d.globalTop)&&![document,r.value.contentEl].includes(b)&&!r.value.contentEl.contains(b)){const u=Lt(r.value.contentEl);if(!u.length)return;const S=u[0],A=u[u.length-1];m===S?A.focus():S.focus()}}N&&R(()=>i.value&&e.retainFocus,c=>{c?document.addEventListener("focusin",l):document.removeEventListener("focusin",l)},{immediate:!0});function f(){var c;(c=r.value)!=null&&c.contentEl&&!r.value.contentEl.contains(document.activeElement)&&r.value.contentEl.focus({preventScroll:!0})}function v(){t("afterLeave")}return R(i,async c=>{var m;c||(await Q(),(m=r.value.activatorEl)==null||m.focus({preventScroll:!0}))}),Ve(()=>{const c=Re.filterProps(e),m=D({"aria-haspopup":"dialog","aria-expanded":String(i.value)},e.activatorProps),b=D({tabindex:-1},e.contentProps);return B(Re,D({ref:r,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},c,{modelValue:i.value,"onUpdate:modelValue":h=>i.value=h,"aria-modal":"true",activatorProps:m,contentProps:b,role:"dialog",onAfterEnter:f,onAfterLeave:v},a),{activator:o.activator,default:function(){for(var h=arguments.length,d=new Array(h),u=0;u<h;u++)d[u]=arguments[u];return B(Ft,{root:"VDialog"},{default:()=>{var S;return[(S=o.default)==null?void 0:S.call(o,...d)]}})}})}),vn({},r)}});export{yn as C,hn as V,an as a,Zt as b,Jt as c,qe as d,Kt as e,vn as f,Re as g,on as m,$e as u};
|
|
1
|
+
import{_ as Ge,R as Ue,aA as Xe,L as B,T as ge,ad as ye,ai as Ye,ao as he,x as z,r as W,X as N,cl as fe,a as R,cm as $,di as Ke,dj as Ze,dk as be,dl as ne,dm as oe,dn as we,h as O,n as Q,dp as Je,dq as Z,dr as ae,ds as Ee,dt as xe,C as V,a0 as Se,da as Qe,w as ve,du as Te,dv as et,dw as tt,z as de,i as Be,dx as pe,dy as nt,ap as D,dz as ot,d9 as at,s as j,cj as rt,f as Fe,p as lt,dA as it,dB as st,dC as Le,E as ct,aY as ut,F as ft,aZ as vt,G as Me,as as _e,I as dt,J as mt,aw as gt,ax as yt,a$ as ht,o as bt,cn as wt,d7 as Et,aq as xt,K as Ve,dD as St,b2 as pt,b0 as Pt,b3 as Ot,b1 as Ct,M as At,cp as kt,dE as Rt,ar as Tt,d1 as Bt,bd as Ft,d3 as Lt}from"./admin-drawer-panel-B2rmpAVA.js";import{d as Mt}from"./main-gSW7TFDY.js";const _t={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},Vt={class:"confirmFooter"};function Dt(e,n,t,o,i,a){return Ue(),Xe("footer",Vt,[B(he,{class:"confirmButton",disabled:t.disabled,onClick:n[0]||(n[0]=r=>e.$emit("confirm"))},{default:ge(()=>[ye(Ye(t.confirmText),1)]),_:1},8,["disabled"]),B(he,{class:"cancelButton",onClick:n[1]||(n[1]=r=>e.$emit("cancel"))},{default:ge(()=>[ye(" Cancel ")]),_:1})])}const yn=Ge(_t,[["render",Dt],["__scopeId","data-v-24df1550"]]);function re(e,n){return{x:e.x+n.x,y:e.y+n.y}}function It(e,n){return{x:e.x-n.x,y:e.y-n.y}}function Pe(e,n){if(e.side==="top"||e.side==="bottom"){const{side:t,align:o}=e,i=o==="left"?0:o==="center"?n.width/2:o==="right"?n.width:o,a=t==="top"?0:t==="bottom"?n.height:t;return re({x:i,y:a},n)}else if(e.side==="left"||e.side==="right"){const{side:t,align:o}=e,i=t==="left"?0:t==="right"?n.width:t,a=o==="top"?0:o==="center"?n.height/2:o==="bottom"?n.height:o;return re({x:i,y:a},n)}return re({x:n.width/2,y:n.height/2},n)}const De={static:Ht,connected:qt},Wt=z({locationStrategy:{type:[String,Function],default:"static",validator:e=>typeof e=="function"||e in De},location:{type:String,default:"bottom"},origin:{type:String,default:"auto"},offset:[Number,String,Array]},"VOverlay-location-strategies");function $t(e,n){const t=W({}),o=W();N&&fe(()=>!!(n.isActive.value&&e.locationStrategy),a=>{var r,l;R(()=>e.locationStrategy,a),$(()=>{window.removeEventListener("resize",i),o.value=void 0}),window.addEventListener("resize",i,{passive:!0}),typeof e.locationStrategy=="function"?o.value=(r=e.locationStrategy(n,e,t))==null?void 0:r.updateLocation:o.value=(l=De[e.locationStrategy](n,e,t))==null?void 0:l.updateLocation});function i(a){var r;(r=o.value)==null||r.call(o,a)}return{contentStyles:t,updateLocation:o}}function Ht(){}function Nt(e,n){n?e.style.removeProperty("left"):e.style.removeProperty("right");const t=Qe(e);return n?t.x+=parseFloat(e.style.right||0):t.x-=parseFloat(e.style.left||0),t.y-=parseFloat(e.style.top||0),t}function qt(e,n,t){(Array.isArray(e.target.value)||Ke(e.target.value))&&Object.assign(t.value,{position:"fixed",top:0,[e.isRtl.value?"right":"left"]:0});const{preferredAnchor:i,preferredOrigin:a}=Ze(()=>{const d=be(n.location,e.isRtl.value),u=n.origin==="overlap"?d:n.origin==="auto"?ne(d):be(n.origin,e.isRtl.value);return d.side===u.side&&d.align===oe(u).align?{preferredAnchor:we(d),preferredOrigin:we(u)}:{preferredAnchor:d,preferredOrigin:u}}),[r,l,f,v]=["minWidth","minHeight","maxWidth","maxHeight"].map(d=>O(()=>{const u=parseFloat(n[d]);return isNaN(u)?1/0:u})),c=O(()=>{if(Array.isArray(n.offset))return n.offset;if(typeof n.offset=="string"){const d=n.offset.split(" ").map(parseFloat);return d.length<2&&d.push(0),d}return typeof n.offset=="number"?[n.offset,0]:[0,0]});let m=!1;const b=new ResizeObserver(()=>{m&&h()});R([e.target,e.contentEl],(d,u)=>{let[S,C]=d,[p,w]=u;p&&!Array.isArray(p)&&b.unobserve(p),S&&!Array.isArray(S)&&b.observe(S),w&&b.unobserve(w),C&&b.observe(C)},{immediate:!0}),$(()=>{b.disconnect()});function h(){if(m=!1,requestAnimationFrame(()=>m=!0),!e.target.value||!e.contentEl.value)return;const d=Je(e.target.value),u=Nt(e.contentEl.value,e.isRtl.value),S=Z(e.contentEl.value),C=12;S.length||(S.push(document.documentElement),e.contentEl.value.style.top&&e.contentEl.value.style.left||(u.x-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-x")||0),u.y-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-y")||0)));const p=S.reduce((P,E)=>{const g=E.getBoundingClientRect(),y=new ae({x:E===document.documentElement?0:g.x,y:E===document.documentElement?0:g.y,width:E.clientWidth,height:E.clientHeight});return P?new ae({x:Math.max(P.left,y.left),y:Math.max(P.top,y.top),width:Math.min(P.right,y.right)-Math.max(P.left,y.left),height:Math.min(P.bottom,y.bottom)-Math.max(P.top,y.top)}):y},void 0);p.x+=C,p.y+=C,p.width-=C*2,p.height-=C*2;let w={anchor:i.value,origin:a.value};function H(P){const E=new ae(u),g=Pe(P.anchor,d),y=Pe(P.origin,E);let{x:M,y:F}=It(g,y);switch(P.anchor.side){case"top":F-=c.value[0];break;case"bottom":F+=c.value[0];break;case"left":M-=c.value[0];break;case"right":M+=c.value[0];break}switch(P.anchor.align){case"top":F-=c.value[1];break;case"bottom":F+=c.value[1];break;case"left":M-=c.value[1];break;case"right":M+=c.value[1];break}return E.x+=M,E.y+=F,E.width=Math.min(E.width,f.value),E.height=Math.min(E.height,v.value),{overflows:xe(E,p),x:M,y:F}}let L=0,A=0;const s={x:0,y:0},T={x:!1,y:!1};let ee=-1;for(;!(ee++>10);){const{x:P,y:E,overflows:g}=H(w);L+=P,A+=E,u.x+=P,u.y+=E;{const y=Ee(w.anchor),M=g.x.before||g.x.after,F=g.y.before||g.y.after;let G=!1;if(["x","y"].forEach(k=>{if(k==="x"&&M&&!T.x||k==="y"&&F&&!T.y){const _={anchor:{...w.anchor},origin:{...w.origin}},X=k==="x"?y==="y"?oe:ne:y==="y"?ne:oe;_.anchor=X(_.anchor),_.origin=X(_.origin);const{overflows:q}=H(_);(q[k].before<=g[k].before&&q[k].after<=g[k].after||q[k].before+q[k].after<(g[k].before+g[k].after)/2)&&(w=_,G=T[k]=!0)}}),G)continue}g.x.before&&(L+=g.x.before,u.x+=g.x.before),g.x.after&&(L-=g.x.after,u.x-=g.x.after),g.y.before&&(A+=g.y.before,u.y+=g.y.before),g.y.after&&(A-=g.y.after,u.y-=g.y.after);{const y=xe(u,p);s.x=p.width-y.x.before-y.x.after,s.y=p.height-y.y.before-y.y.after,L+=y.x.before,u.x+=y.x.before,A+=y.y.before,u.y+=y.y.before}break}const te=Ee(w.anchor);return Object.assign(t.value,{"--v-overlay-anchor-origin":`${w.anchor.side} ${w.anchor.align}`,transformOrigin:`${w.origin.side} ${w.origin.align}`,top:V(le(A)),left:e.isRtl.value?void 0:V(le(L)),right:e.isRtl.value?V(le(-L)):void 0,minWidth:V(te==="y"?Math.min(r.value,d.width):r.value),maxWidth:V(Oe(Se(s.x,r.value===1/0?0:r.value,f.value))),maxHeight:V(Oe(Se(s.y,l.value===1/0?0:l.value,v.value)))}),{available:s,contentBox:u}}return R(()=>[i.value,a.value,n.offset,n.minWidth,n.minHeight,n.maxWidth,n.maxHeight],()=>h()),Q(()=>{const d=h();if(!d)return;const{available:u,contentBox:S}=d;S.height>u.y&&requestAnimationFrame(()=>{h(),requestAnimationFrame(()=>{h()})})}),{updateLocation:h}}function le(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function Oe(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}let ce=!0;const J=[];function zt(e){!ce||J.length?(J.push(e),ue()):(ce=!1,e(),ue())}let Ce=-1;function ue(){cancelAnimationFrame(Ce),Ce=requestAnimationFrame(()=>{const e=J.shift();e&&e(),J.length?ue():ce=!0})}const K={none:null,close:Ut,block:Xt,reposition:Yt},jt=z({scrollStrategy:{type:[String,Function],default:"block",validator:e=>typeof e=="function"||e in K}},"VOverlay-scroll-strategies");function Gt(e,n){if(!N)return;let t;ve(async()=>{t==null||t.stop(),n.isActive.value&&e.scrollStrategy&&(t=Te(),await new Promise(o=>setTimeout(o)),t.active&&t.run(()=>{var o;typeof e.scrollStrategy=="function"?e.scrollStrategy(n,e,t):(o=K[e.scrollStrategy])==null||o.call(K,n,e,t)}))}),$(()=>{t==null||t.stop()})}function Ut(e){function n(t){e.isActive.value=!1}Ie(e.targetEl.value??e.contentEl.value,n)}function Xt(e,n){var r;const t=(r=e.root.value)==null?void 0:r.offsetParent,o=[...new Set([...Z(e.targetEl.value,n.contained?t:void 0),...Z(e.contentEl.value,n.contained?t:void 0)])].filter(l=>!l.classList.contains("v-overlay-scroll-blocked")),i=window.innerWidth-document.documentElement.offsetWidth,a=(l=>et(l)&&l)(t||document.documentElement);a&&e.root.value.classList.add("v-overlay--scroll-blocked"),o.forEach((l,f)=>{l.style.setProperty("--v-body-scroll-x",V(-l.scrollLeft)),l.style.setProperty("--v-body-scroll-y",V(-l.scrollTop)),l!==document.documentElement&&l.style.setProperty("--v-scrollbar-offset",V(i)),l.classList.add("v-overlay-scroll-blocked")}),$(()=>{o.forEach((l,f)=>{const v=parseFloat(l.style.getPropertyValue("--v-body-scroll-x")),c=parseFloat(l.style.getPropertyValue("--v-body-scroll-y")),m=l.style.scrollBehavior;l.style.scrollBehavior="auto",l.style.removeProperty("--v-body-scroll-x"),l.style.removeProperty("--v-body-scroll-y"),l.style.removeProperty("--v-scrollbar-offset"),l.classList.remove("v-overlay-scroll-blocked"),l.scrollLeft=-v,l.scrollTop=-c,l.style.scrollBehavior=m}),a&&e.root.value.classList.remove("v-overlay--scroll-blocked")})}function Yt(e,n,t){let o=!1,i=-1,a=-1;function r(l){zt(()=>{var c,m;const f=performance.now();(m=(c=e.updateLocation).value)==null||m.call(c,l),o=(performance.now()-f)/(1e3/60)>2})}a=(typeof requestIdleCallback>"u"?l=>l():requestIdleCallback)(()=>{t.run(()=>{Ie(e.targetEl.value??e.contentEl.value,l=>{o?(cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=requestAnimationFrame(()=>{r(l)})})):r(l)})})}),$(()=>{typeof cancelIdleCallback<"u"&&cancelIdleCallback(a),cancelAnimationFrame(i)})}function Ie(e,n){const t=[document,...Z(e)];t.forEach(o=>{o.addEventListener("scroll",n,{passive:!0})}),$(()=>{t.forEach(o=>{o.removeEventListener("scroll",n)})})}const Kt=Symbol.for("vuetify:v-menu"),Zt=z({closeDelay:[Number,String],openDelay:[Number,String]},"delay");function Jt(e,n){let t=()=>{};function o(r){t==null||t();const l=Number(r?e.openDelay:e.closeDelay);return new Promise(f=>{t=tt(l,()=>{n==null||n(r),f(r)})})}function i(){return o(!0)}function a(){return o(!1)}return{clearDelay:t,runOpenDelay:i,runCloseDelay:a}}const Qt=z({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...Zt()},"VOverlay-activator");function en(e,n){let{isActive:t,isTop:o}=n;const i=de("useActivator"),a=W();let r=!1,l=!1,f=!0;const v=O(()=>e.openOnFocus||e.openOnFocus==null&&e.openOnHover),c=O(()=>e.openOnClick||e.openOnClick==null&&!e.openOnHover&&!v.value),{runOpenDelay:m,runCloseDelay:b}=Jt(e,s=>{s===(e.openOnHover&&r||v.value&&l)&&!(e.openOnHover&&t.value&&!o.value)&&(t.value!==s&&(f=!0),t.value=s)}),h=W(),d={onClick:s=>{s.stopPropagation(),a.value=s.currentTarget||s.target,t.value||(h.value=[s.clientX,s.clientY]),t.value=!t.value},onMouseenter:s=>{var T;(T=s.sourceCapabilities)!=null&&T.firesTouchEvents||(r=!0,a.value=s.currentTarget||s.target,m())},onMouseleave:s=>{r=!1,b()},onFocus:s=>{at(s.target,":focus-visible")!==!1&&(l=!0,s.stopPropagation(),a.value=s.currentTarget||s.target,m())},onBlur:s=>{l=!1,s.stopPropagation(),b()}},u=O(()=>{const s={};return c.value&&(s.onClick=d.onClick),e.openOnHover&&(s.onMouseenter=d.onMouseenter,s.onMouseleave=d.onMouseleave),v.value&&(s.onFocus=d.onFocus,s.onBlur=d.onBlur),s}),S=O(()=>{const s={};if(e.openOnHover&&(s.onMouseenter=()=>{r=!0,m()},s.onMouseleave=()=>{r=!1,b()}),v.value&&(s.onFocusin=()=>{l=!0,m()},s.onFocusout=()=>{l=!1,b()}),e.closeOnContentClick){const T=Be(Kt,null);s.onClick=()=>{t.value=!1,T==null||T.closeParents()}}return s}),C=O(()=>{const s={};return e.openOnHover&&(s.onMouseenter=()=>{f&&(r=!0,f=!1,m())},s.onMouseleave=()=>{r=!1,b()}),s});R(o,s=>{s&&(e.openOnHover&&!r&&(!v.value||!l)||v.value&&!l&&(!e.openOnHover||!r))&&(t.value=!1)}),R(t,s=>{s||setTimeout(()=>{h.value=void 0})},{flush:"post"});const p=pe();ve(()=>{p.value&&Q(()=>{a.value=p.el})});const w=pe(),H=O(()=>e.target==="cursor"&&h.value?h.value:w.value?w.el:We(e.target,i)||a.value),L=O(()=>Array.isArray(H.value)?void 0:H.value);let A;return R(()=>!!e.activator,s=>{s&&N?(A=Te(),A.run(()=>{tn(e,i,{activatorEl:a,activatorEvents:u})})):A&&A.stop()},{flush:"post",immediate:!0}),$(()=>{A==null||A.stop()}),{activatorEl:a,activatorRef:p,target:H,targetEl:L,targetRef:w,activatorEvents:u,contentEvents:S,scrimEvents:C}}function tn(e,n,t){let{activatorEl:o,activatorEvents:i}=t;R(()=>e.activator,(f,v)=>{if(v&&f!==v){const c=l(v);c&&r(c)}f&&Q(()=>a())},{immediate:!0}),R(()=>e.activatorProps,()=>{a()}),$(()=>{r()});function a(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:l(),v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;f&&nt(f,D(i.value,v))}function r(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:l(),v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;f&&ot(f,D(i.value,v))}function l(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activator;const v=We(f,n);return o.value=(v==null?void 0:v.nodeType)===Node.ELEMENT_NODE?v:void 0,o.value}}function We(e,n){var o,i;if(!e)return;let t;if(e==="parent"){let a=(i=(o=n==null?void 0:n.proxy)==null?void 0:o.$el)==null?void 0:i.parentNode;for(;a!=null&&a.hasAttribute("data-no-activator");)a=a.parentNode;t=a}else typeof e=="string"?t=document.querySelector(e):"$el"in e?t=e.$el:t=e;return t}function nn(){if(!N)return j(!1);const{ssr:e}=Mt();if(e){const n=j(!1);return rt(()=>{n.value=!0}),n}else return j(!0)}const on=z({eager:Boolean},"lazy");function an(e,n){const t=j(!1),o=O(()=>t.value||e.eager||n.value);R(n,()=>t.value=!0);function i(){e.eager||(t.value=!1)}return{isBooted:t,hasContent:o,onAfterLeave:i}}function $e(){const n=de("useScopeId").vnode.scopeId;return{scopeId:n?{[n]:""}:void 0}}const Ae=Symbol.for("vuetify:stack"),U=Fe([]);function rn(e,n,t){const o=de("useStack"),i=!t,a=Be(Ae,void 0),r=Fe({activeChildren:new Set});lt(Ae,r);const l=j(+n.value);fe(e,()=>{var m;const c=(m=U.at(-1))==null?void 0:m[1];l.value=c?c+10:+n.value,i&&U.push([o.uid,l.value]),a==null||a.activeChildren.add(o.uid),$(()=>{if(i){const b=it(U).findIndex(h=>h[0]===o.uid);U.splice(b,1)}a==null||a.activeChildren.delete(o.uid)})});const f=j(!0);i&&ve(()=>{var m;const c=((m=U.at(-1))==null?void 0:m[0])===o.uid;setTimeout(()=>f.value=c)});const v=O(()=>!r.activeChildren.size);return{globalTop:st(f),localTop:v,stackStyles:O(()=>({zIndex:l.value}))}}function ln(e){return{teleportTarget:O(()=>{const t=e.value;if(t===!0||!N)return;const o=t===!1?document.body:typeof t=="string"?document.querySelector(t):t;if(o==null)return;let i=o.querySelector(":scope > .v-overlay-container");return i||(i=document.createElement("div"),i.className="v-overlay-container",o.appendChild(i)),i})}}function sn(){return!0}function He(e,n,t){if(!e||Ne(e,t)===!1)return!1;const o=Le(n);if(typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&o.host===e.target)return!1;const i=(typeof t.value=="object"&&t.value.include||(()=>[]))();return i.push(n),!i.some(a=>a==null?void 0:a.contains(e.target))}function Ne(e,n){return(typeof n.value=="object"&&n.value.closeConditional||sn)(e)}function cn(e,n,t){const o=typeof t.value=="function"?t.value:t.value.handler;n._clickOutside.lastMousedownWasOutside&&He(e,n,t)&&setTimeout(()=>{Ne(e,t)&&o&&o(e)},0)}function ke(e,n){const t=Le(e);n(document),typeof ShadowRoot<"u"&&t instanceof ShadowRoot&&n(t)}const un={mounted(e,n){const t=i=>cn(i,e,n),o=i=>{e._clickOutside.lastMousedownWasOutside=He(i,e,n)};ke(e,i=>{i.addEventListener("click",t,!0),i.addEventListener("mousedown",o,!0)}),e._clickOutside||(e._clickOutside={lastMousedownWasOutside:!1}),e._clickOutside[n.instance.$.uid]={onClick:t,onMousedown:o}},unmounted(e,n){e._clickOutside&&(ke(e,t=>{var a;if(!t||!((a=e._clickOutside)!=null&&a[n.instance.$.uid]))return;const{onClick:o,onMousedown:i}=e._clickOutside[n.instance.$.uid];t.removeEventListener("click",o,!0),t.removeEventListener("mousedown",i,!0)}),delete e._clickOutside[n.instance.$.uid])}};function fn(e){const{modelValue:n,color:t,...o}=e;return B(kt,{name:"fade-transition",appear:!0},{default:()=>[e.modelValue&&B("div",D({class:["v-overlay__scrim",e.color.backgroundColorClasses.value],style:e.color.backgroundColorStyles.value},o),null)]})}const qe=z({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:!0},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,opacity:[Number,String],noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:!0},zIndex:{type:[Number,String],default:2e3},...Qt(),...ct(),...ut(),...on(),...Wt(),...jt(),...ft(),...vt()},"VOverlay"),Re=Me()({name:"VOverlay",directives:{ClickOutside:un},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...qe()},emits:{"click:outside":e=>!0,"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(e,n){let{slots:t,attrs:o,emit:i}=n;const a=_e(e,"modelValue"),r=O({get:()=>a.value,set:x=>{x&&e.disabled||(a.value=x)}}),{teleportTarget:l}=ln(O(()=>e.attach||e.contained)),{themeClasses:f}=dt(e),{rtlClasses:v,isRtl:c}=mt(),{hasContent:m,onAfterLeave:b}=an(e,r),h=gt(O(()=>typeof e.scrim=="string"?e.scrim:null)),{globalTop:d,localTop:u,stackStyles:S}=rn(r,yt(e,"zIndex"),e._disableGlobalStack),{activatorEl:C,activatorRef:p,target:w,targetEl:H,targetRef:L,activatorEvents:A,contentEvents:s,scrimEvents:T}=en(e,{isActive:r,isTop:u}),{dimensionStyles:ee}=ht(e),te=nn(),{scopeId:P}=$e();R(()=>e.disabled,x=>{x&&(r.value=!1)});const E=W(),g=W(),y=W(),{contentStyles:M,updateLocation:F}=$t(e,{isRtl:c,contentEl:y,target:w,isActive:r});Gt(e,{root:E,contentEl:y,targetEl:H,isActive:r,updateLocation:F});function G(x){i("click:outside",x),e.persistent?Y():r.value=!1}function k(x){return r.value&&d.value&&(!e.scrim||x.target===g.value)}N&&R(r,x=>{x?window.addEventListener("keydown",_):window.removeEventListener("keydown",_)},{immediate:!0}),bt(()=>{N&&window.removeEventListener("keydown",_)});function _(x){var I,me;x.key==="Escape"&&d.value&&(e.persistent?Y():(r.value=!1,(I=y.value)!=null&&I.contains(document.activeElement)&&((me=C.value)==null||me.focus())))}const X=wt();fe(()=>e.closeOnBack,()=>{Rt(X,x=>{d.value&&r.value?(x(!1),e.persistent?Y():r.value=!1):x()})});const q=W();R(()=>r.value&&(e.absolute||e.contained)&&l.value==null,x=>{if(x){const I=Et(E.value);I&&I!==document.scrollingElement&&(q.value=I.scrollTop)}});function Y(){e.noClickAnimation||y.value&&xt(y.value,[{transformOrigin:"center"},{transform:"scale(1.03)"},{transformOrigin:"center"}],{duration:150,easing:Tt})}function ze(){i("afterEnter")}function je(){b(),i("afterLeave")}return Ve(()=>{var x;return B(At,null,[(x=t.activator)==null?void 0:x.call(t,{isActive:r.value,targetRef:L,props:D({ref:p},A.value,e.activatorProps)}),te.value&&m.value&&B(St,{disabled:!l.value,to:l.value},{default:()=>[B("div",D({class:["v-overlay",{"v-overlay--absolute":e.absolute||e.contained,"v-overlay--active":r.value,"v-overlay--contained":e.contained},f.value,v.value,e.class],style:[S.value,{"--v-overlay-opacity":e.opacity,top:V(q.value)},e.style],ref:E},P,o),[B(fn,D({color:h,modelValue:r.value&&!!e.scrim,ref:g},T.value),null),B(pt,{appear:!0,persisted:!0,transition:e.transition,target:w.value,onAfterEnter:ze,onAfterLeave:je},{default:()=>{var I;return[Pt(B("div",D({ref:y,class:["v-overlay__content",e.contentClass],style:[ee.value,M.value]},s.value,e.contentProps),[(I=t.default)==null?void 0:I.call(t,{isActive:r})]),[[Ot,r.value],[Ct("click-outside"),{handler:G,closeConditional:k,include:()=>[C.value]}]])]}})])]})])}),{activatorEl:C,scrimEl:g,target:w,animateClick:Y,contentEl:y,globalTop:d,localTop:u,updateLocation:F}}}),ie=Symbol("Forwarded refs");function se(e,n){let t=e;for(;t;){const o=Reflect.getOwnPropertyDescriptor(t,n);if(o)return o;t=Object.getPrototypeOf(t)}}function vn(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),o=1;o<n;o++)t[o-1]=arguments[o];return e[ie]=t,new Proxy(e,{get(i,a){if(Reflect.has(i,a))return Reflect.get(i,a);if(!(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))){for(const r of t)if(r.value&&Reflect.has(r.value,a)){const l=Reflect.get(r.value,a);return typeof l=="function"?l.bind(r.value):l}}},has(i,a){if(Reflect.has(i,a))return!0;if(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))return!1;for(const r of t)if(r.value&&Reflect.has(r.value,a))return!0;return!1},set(i,a,r){if(Reflect.has(i,a))return Reflect.set(i,a,r);if(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))return!1;for(const l of t)if(l.value&&Reflect.has(l.value,a))return Reflect.set(l.value,a,r);return!1},getOwnPropertyDescriptor(i,a){var l;const r=Reflect.getOwnPropertyDescriptor(i,a);if(r)return r;if(!(typeof a=="symbol"||a.startsWith("$")||a.startsWith("__"))){for(const f of t){if(!f.value)continue;const v=se(f.value,a)??("_"in f.value?se((l=f.value._)==null?void 0:l.setupState,a):void 0);if(v)return v}for(const f of t){const v=f.value&&f.value[ie];if(!v)continue;const c=v.slice();for(;c.length;){const m=c.shift(),b=se(m.value,a);if(b)return b;const h=m.value&&m.value[ie];h&&c.push(...h)}}}}})}const dn=z({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...qe({origin:"center center",scrollStrategy:"block",transition:{component:Bt},zIndex:2400})},"VDialog"),hn=Me()({name:"VDialog",props:dn(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,n){let{emit:t,slots:o}=n;const i=_e(e,"modelValue"),{scopeId:a}=$e(),r=W();function l(c){var h,d;const m=c.relatedTarget,b=c.target;if(m!==b&&((h=r.value)!=null&&h.contentEl)&&((d=r.value)!=null&&d.globalTop)&&![document,r.value.contentEl].includes(b)&&!r.value.contentEl.contains(b)){const u=Lt(r.value.contentEl);if(!u.length)return;const S=u[0],C=u[u.length-1];m===S?C.focus():S.focus()}}N&&R(()=>i.value&&e.retainFocus,c=>{c?document.addEventListener("focusin",l):document.removeEventListener("focusin",l)},{immediate:!0});function f(){var c;(c=r.value)!=null&&c.contentEl&&!r.value.contentEl.contains(document.activeElement)&&r.value.contentEl.focus({preventScroll:!0})}function v(){t("afterLeave")}return R(i,async c=>{var m;c||(await Q(),(m=r.value.activatorEl)==null||m.focus({preventScroll:!0}))}),Ve(()=>{const c=Re.filterProps(e),m=D({"aria-haspopup":"dialog","aria-expanded":String(i.value)},e.activatorProps),b=D({tabindex:-1},e.contentProps);return B(Re,D({ref:r,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},c,{modelValue:i.value,"onUpdate:modelValue":h=>i.value=h,"aria-modal":"true",activatorProps:m,contentProps:b,role:"dialog",onAfterEnter:f,onAfterLeave:v},a),{activator:o.activator,default:function(){for(var h=arguments.length,d=new Array(h),u=0;u<h;u++)d[u]=arguments[u];return B(Ft,{root:"VDialog"},{default:()=>{var S;return[(S=o.default)==null?void 0:S.call(o,...d)]}})}})}),vn({},r)}});export{yn as C,hn as V,an as a,Zt as b,Jt as c,qe as d,Kt as e,vn as f,Re as g,on as m,$e as u};
|
|
Binary file
|
|
Binary file
|