codex 1.6.2__py3-none-any.whl → 1.6.4__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 +42 -16
- codex/librarian/importer/importer.py +1 -1
- codex/librarian/janitor/cleanup.py +2 -4
- codex/librarian/janitor/update.py +10 -9
- codex/librarian/search/merge.py +37 -40
- codex/librarian/search/remove.py +30 -26
- codex/librarian/search/update.py +47 -38
- codex/librarian/stats.py +177 -0
- codex/librarian/watchdog/events.py +2 -2
- codex/serializers/admin/__init__.py +1 -0
- codex/serializers/admin/flags.py +15 -0
- codex/serializers/admin/groups.py +38 -0
- codex/serializers/admin/libraries.py +90 -0
- codex/serializers/admin/stats.py +126 -0
- codex/serializers/admin/tasks.py +16 -0
- codex/serializers/admin/users.py +40 -0
- codex/serializers/fields.py +30 -0
- codex/serializers/reader.py +8 -3
- codex/settings/settings.py +3 -3
- codex/static_root/assets/VCheckbox-DtXDauZz.54986ad416a1.js +1 -0
- codex/static_root/assets/VCheckbox-DtXDauZz.54986ad416a1.js.br +0 -0
- codex/static_root/assets/VCheckbox-DtXDauZz.54986ad416a1.js.gz +0 -0
- codex/static_root/assets/VCheckbox-DtXDauZz.js +1 -0
- codex/static_root/assets/VCheckbox-DtXDauZz.js.br +0 -0
- codex/static_root/assets/VCheckbox-DtXDauZz.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-B-iT1MnG.8505f6eed0fe.js +1 -0
- codex/static_root/assets/VCheckboxBtn-B-iT1MnG.8505f6eed0fe.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-B-iT1MnG.8505f6eed0fe.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-B-iT1MnG.js +1 -0
- codex/static_root/assets/VCheckboxBtn-B-iT1MnG.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-B-iT1MnG.js.gz +0 -0
- codex/static_root/assets/{VCombobox-CGyBgdqr.2f85598cc1a4.js → VCombobox-DZmum3X-.330883d59742.js} +1 -1
- codex/static_root/assets/VCombobox-DZmum3X-.330883d59742.js.br +0 -0
- codex/static_root/assets/VCombobox-DZmum3X-.330883d59742.js.gz +0 -0
- codex/static_root/assets/{VCombobox-CGyBgdqr.js → VCombobox-DZmum3X-.js} +1 -1
- codex/static_root/assets/VCombobox-DZmum3X-.js.br +0 -0
- codex/static_root/assets/VCombobox-DZmum3X-.js.gz +0 -0
- codex/static_root/assets/VDialog-DUdNpXLj.6088d518d3af.js +1 -0
- codex/static_root/assets/VDialog-DUdNpXLj.6088d518d3af.js.br +0 -0
- codex/static_root/assets/VDialog-DUdNpXLj.6088d518d3af.js.gz +0 -0
- codex/static_root/assets/VDialog-DUdNpXLj.js +1 -0
- codex/static_root/assets/VDialog-DUdNpXLj.js.br +0 -0
- codex/static_root/assets/VDialog-DUdNpXLj.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-CurqcyFg.860017abf25d.js +1 -0
- codex/static_root/assets/VExpansionPanels-CurqcyFg.860017abf25d.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CurqcyFg.860017abf25d.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-CurqcyFg.js +1 -0
- codex/static_root/assets/VExpansionPanels-CurqcyFg.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-CurqcyFg.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-B7n5ReZ-.8acbc71ac411.js +1 -0
- codex/static_root/assets/VRadioGroup-B7n5ReZ-.8acbc71ac411.js.br +0 -0
- codex/static_root/assets/VRadioGroup-B7n5ReZ-.8acbc71ac411.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-B7n5ReZ-.js +1 -0
- codex/static_root/assets/VRadioGroup-B7n5ReZ-.js.br +0 -0
- codex/static_root/assets/VRadioGroup-B7n5ReZ-.js.gz +0 -0
- codex/static_root/assets/VSelect-FYWbH55D.83e91b93fdd1.js +1 -0
- codex/static_root/assets/VSelect-FYWbH55D.83e91b93fdd1.js.br +0 -0
- codex/static_root/assets/VSelect-FYWbH55D.83e91b93fdd1.js.gz +0 -0
- codex/static_root/assets/VSelect-FYWbH55D.js +1 -0
- codex/static_root/assets/VSelect-FYWbH55D.js.br +0 -0
- codex/static_root/assets/VSelect-FYWbH55D.js.gz +0 -0
- codex/static_root/assets/{VSelectionControl-DXxRmssH.js → VSelectionControl-CUlT3cc_.63f60240eb49.js} +1 -1
- codex/static_root/assets/VSelectionControl-CUlT3cc_.63f60240eb49.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CUlT3cc_.63f60240eb49.js.gz +0 -0
- codex/static_root/assets/{VSelectionControl-DXxRmssH.252890f79cc6.js → VSelectionControl-CUlT3cc_.js} +1 -1
- codex/static_root/assets/VSelectionControl-CUlT3cc_.js.br +0 -0
- codex/static_root/assets/VSelectionControl-CUlT3cc_.js.gz +0 -0
- codex/static_root/assets/{VSlideGroup-DYJ3EYZI.a2542c5f90c4.js → VSlideGroup-CRJazQeR.cb89b2222518.js} +1 -1
- codex/static_root/assets/VSlideGroup-CRJazQeR.cb89b2222518.js.br +0 -0
- codex/static_root/assets/VSlideGroup-CRJazQeR.cb89b2222518.js.gz +0 -0
- codex/static_root/assets/{VSlideGroup-DYJ3EYZI.js → VSlideGroup-CRJazQeR.js} +1 -1
- codex/static_root/assets/VSlideGroup-CRJazQeR.js.br +0 -0
- codex/static_root/assets/VSlideGroup-CRJazQeR.js.gz +0 -0
- codex/static_root/assets/{VTable-BveGtxei.7f76f4ef812b.js → VTable-DtyBEZ5i.6848f15ea03f.js} +1 -1
- codex/static_root/assets/VTable-DtyBEZ5i.6848f15ea03f.js.br +0 -0
- codex/static_root/assets/VTable-DtyBEZ5i.6848f15ea03f.js.gz +0 -0
- codex/static_root/assets/{VTable-BveGtxei.js → VTable-DtyBEZ5i.js} +1 -1
- codex/static_root/assets/VTable-DtyBEZ5i.js.br +0 -0
- codex/static_root/assets/VTable-DtyBEZ5i.js.gz +0 -0
- codex/static_root/assets/VTextField-DEiVah7O.fbf3130f2dea.js +1 -0
- codex/static_root/assets/VTextField-DEiVah7O.fbf3130f2dea.js.br +0 -0
- codex/static_root/assets/VTextField-DEiVah7O.fbf3130f2dea.js.gz +0 -0
- codex/static_root/assets/VTextField-DEiVah7O.js +1 -0
- codex/static_root/assets/VTextField-DEiVah7O.js.br +0 -0
- codex/static_root/assets/VTextField-DEiVah7O.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-FBuIO_rT.8610c7e83905.js → VWindowItem-BVIaHO-S.419e4ecf523d.js} +1 -1
- codex/static_root/assets/VWindowItem-BVIaHO-S.419e4ecf523d.js.br +0 -0
- codex/static_root/assets/VWindowItem-BVIaHO-S.419e4ecf523d.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-FBuIO_rT.js → VWindowItem-BVIaHO-S.js} +1 -1
- codex/static_root/assets/VWindowItem-BVIaHO-S.js.br +0 -0
- codex/static_root/assets/VWindowItem-BVIaHO-S.js.gz +0 -0
- codex/static_root/assets/{admin-B8Bp2Uih.82c98714bcf1.css → admin-D4sw3N4T.b590f88a62cf.css} +1 -1
- codex/static_root/assets/admin-D4sw3N4T.b590f88a62cf.css.br +0 -0
- codex/static_root/assets/admin-D4sw3N4T.b590f88a62cf.css.gz +0 -0
- codex/static_root/assets/{admin-B8Bp2Uih.css → admin-D4sw3N4T.css} +1 -1
- codex/static_root/assets/admin-D4sw3N4T.css.br +0 -0
- codex/static_root/assets/admin-D4sw3N4T.css.gz +0 -0
- codex/static_root/assets/admin-S53JleJt.f629d90f73a1.js +1 -0
- codex/static_root/assets/admin-S53JleJt.f629d90f73a1.js.br +0 -0
- codex/static_root/assets/admin-S53JleJt.f629d90f73a1.js.gz +0 -0
- codex/static_root/assets/admin-S53JleJt.js +1 -0
- codex/static_root/assets/admin-S53JleJt.js.br +0 -0
- codex/static_root/assets/admin-S53JleJt.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-CnAnGx7w.1e4eb021cb21.js +56 -0
- codex/static_root/assets/admin-drawer-panel-CnAnGx7w.1e4eb021cb21.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-CnAnGx7w.1e4eb021cb21.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-CnAnGx7w.js +56 -0
- codex/static_root/assets/admin-drawer-panel-CnAnGx7w.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-CnAnGx7w.js.gz +0 -0
- codex/static_root/assets/browser-BHHgqDP7.7ada4400d63f.js +1 -0
- codex/static_root/assets/browser-BHHgqDP7.7ada4400d63f.js.br +0 -0
- codex/static_root/assets/browser-BHHgqDP7.7ada4400d63f.js.gz +0 -0
- codex/static_root/assets/browser-BHHgqDP7.js +1 -0
- codex/static_root/assets/browser-BHHgqDP7.js.br +0 -0
- codex/static_root/assets/browser-BHHgqDP7.js.gz +0 -0
- codex/static_root/assets/{browser-DP9eEJ0M.css → browser-Cy0OgQJC.css} +1 -1
- codex/static_root/assets/browser-Cy0OgQJC.css.br +0 -0
- codex/static_root/assets/browser-Cy0OgQJC.css.gz +0 -0
- codex/static_root/assets/{browser-DP9eEJ0M.276e8636f8fc.css → browser-Cy0OgQJC.fabbd1aaffcf.css} +1 -1
- codex/static_root/assets/browser-Cy0OgQJC.fabbd1aaffcf.css.br +0 -0
- codex/static_root/assets/browser-Cy0OgQJC.fabbd1aaffcf.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-Du1bwEt1.a4c0205c9bc4.js +1 -0
- codex/static_root/assets/change-password-dialog-Du1bwEt1.a4c0205c9bc4.js.br +0 -0
- codex/static_root/assets/change-password-dialog-Du1bwEt1.a4c0205c9bc4.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-Du1bwEt1.js +1 -0
- codex/static_root/assets/change-password-dialog-Du1bwEt1.js.br +0 -0
- codex/static_root/assets/change-password-dialog-Du1bwEt1.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-eKN71B8a.af6187dc12bd.js +1 -0
- codex/static_root/assets/confirm-dialog-eKN71B8a.af6187dc12bd.js.br +0 -0
- codex/static_root/assets/confirm-dialog-eKN71B8a.af6187dc12bd.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-eKN71B8a.js +1 -0
- codex/static_root/assets/confirm-dialog-eKN71B8a.js.br +0 -0
- codex/static_root/assets/confirm-dialog-eKN71B8a.js.gz +0 -0
- codex/static_root/assets/{datetime-column-uaXWFgF_.29c6d50b483e.js → datetime-column-CWp600fz.e8a969126bf5.js} +1 -1
- codex/static_root/assets/datetime-column-CWp600fz.e8a969126bf5.js.br +0 -0
- codex/static_root/assets/datetime-column-CWp600fz.e8a969126bf5.js.gz +0 -0
- codex/static_root/assets/{datetime-column-uaXWFgF_.js → datetime-column-CWp600fz.js} +1 -1
- codex/static_root/assets/datetime-column-CWp600fz.js.br +0 -0
- codex/static_root/assets/datetime-column-CWp600fz.js.gz +0 -0
- codex/static_root/assets/{filter-DS84uTvk.4fbebd4832bc.js → filter-_XbKRiIR.2c7ac68a2d03.js} +1 -1
- codex/static_root/assets/filter-_XbKRiIR.2c7ac68a2d03.js.br +0 -0
- codex/static_root/assets/filter-_XbKRiIR.2c7ac68a2d03.js.gz +0 -0
- codex/static_root/assets/{filter-DS84uTvk.js → filter-_XbKRiIR.js} +1 -1
- codex/static_root/assets/filter-_XbKRiIR.js.br +0 -0
- codex/static_root/assets/filter-_XbKRiIR.js.gz +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.css +1 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.css.br +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.css.gz +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.dcfef39f541e.css +1 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.dcfef39f541e.css.br +0 -0
- codex/static_root/assets/flag-tab-DBqpLKi7.dcfef39f541e.css.gz +0 -0
- codex/static_root/assets/flag-tab-DR_nY0Jg.7323e386c6ed.js +1 -0
- codex/static_root/assets/flag-tab-DR_nY0Jg.7323e386c6ed.js.br +0 -0
- codex/static_root/assets/flag-tab-DR_nY0Jg.7323e386c6ed.js.gz +0 -0
- codex/static_root/assets/flag-tab-DR_nY0Jg.js +1 -0
- codex/static_root/assets/flag-tab-DR_nY0Jg.js.br +0 -0
- codex/static_root/assets/flag-tab-DR_nY0Jg.js.gz +0 -0
- codex/static_root/assets/group-tab-JKsMHOmK.d2c2f3fceec1.js +1 -0
- codex/static_root/assets/group-tab-JKsMHOmK.d2c2f3fceec1.js.br +0 -0
- codex/static_root/assets/group-tab-JKsMHOmK.d2c2f3fceec1.js.gz +0 -0
- codex/static_root/assets/group-tab-JKsMHOmK.js +1 -0
- codex/static_root/assets/group-tab-JKsMHOmK.js.br +0 -0
- codex/static_root/assets/group-tab-JKsMHOmK.js.gz +0 -0
- codex/static_root/assets/http-error-Bw1wUv3U.c8313a2fb129.js +1 -0
- codex/static_root/assets/http-error-Bw1wUv3U.c8313a2fb129.js.br +0 -0
- codex/static_root/assets/http-error-Bw1wUv3U.c8313a2fb129.js.gz +0 -0
- codex/static_root/assets/http-error-Bw1wUv3U.js +1 -0
- codex/static_root/assets/http-error-Bw1wUv3U.js.br +0 -0
- codex/static_root/assets/http-error-Bw1wUv3U.js.gz +0 -0
- codex/static_root/assets/{library-tab-BN0SfPcH.913e236f625e.css → library-tab-BygwYPnO.94e92aa60bf2.css} +1 -1
- codex/static_root/assets/library-tab-BygwYPnO.94e92aa60bf2.css.br +0 -0
- codex/static_root/assets/library-tab-BygwYPnO.94e92aa60bf2.css.gz +0 -0
- codex/static_root/assets/{library-tab-BN0SfPcH.css → library-tab-BygwYPnO.css} +1 -1
- codex/static_root/assets/library-tab-BygwYPnO.css.br +0 -0
- codex/static_root/assets/library-tab-BygwYPnO.css.gz +0 -0
- codex/static_root/assets/library-tab-D9GTugZ6.8e3e6ebd38b7.js +1 -0
- codex/static_root/assets/library-tab-D9GTugZ6.8e3e6ebd38b7.js.br +0 -0
- codex/static_root/assets/library-tab-D9GTugZ6.8e3e6ebd38b7.js.gz +0 -0
- codex/static_root/assets/library-tab-D9GTugZ6.js +1 -0
- codex/static_root/assets/library-tab-D9GTugZ6.js.br +0 -0
- codex/static_root/assets/library-tab-D9GTugZ6.js.gz +0 -0
- codex/static_root/assets/main-BJiV8IG3.9d708627091f.js +6 -0
- codex/static_root/assets/main-BJiV8IG3.9d708627091f.js.br +0 -0
- codex/static_root/assets/main-BJiV8IG3.9d708627091f.js.gz +0 -0
- codex/static_root/assets/main-BJiV8IG3.js +6 -0
- codex/static_root/assets/main-BJiV8IG3.js.br +0 -0
- codex/static_root/assets/main-BJiV8IG3.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-i2VoXaGH.c3dbb703af2e.js +1 -0
- codex/static_root/assets/pagination-toolbar-i2VoXaGH.c3dbb703af2e.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-i2VoXaGH.c3dbb703af2e.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-i2VoXaGH.js +1 -0
- codex/static_root/assets/pagination-toolbar-i2VoXaGH.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-i2VoXaGH.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-C-4EM9-d.ce9cf66bd4c3.js → pdf-doc-BLxZLD38.4cf9622c535f.js} +1 -1
- codex/static_root/assets/pdf-doc-BLxZLD38.4cf9622c535f.js.br +0 -0
- codex/static_root/assets/pdf-doc-BLxZLD38.4cf9622c535f.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-C-4EM9-d.js → pdf-doc-BLxZLD38.js} +1 -1
- codex/static_root/assets/pdf-doc-BLxZLD38.js.br +0 -0
- codex/static_root/assets/pdf-doc-BLxZLD38.js.gz +0 -0
- codex/static_root/assets/reader-D2O_yHTW.70d616ddc2cc.js +2 -0
- codex/static_root/assets/reader-D2O_yHTW.70d616ddc2cc.js.br +0 -0
- codex/static_root/assets/reader-D2O_yHTW.70d616ddc2cc.js.gz +0 -0
- codex/static_root/assets/reader-D2O_yHTW.js +2 -0
- codex/static_root/assets/reader-D2O_yHTW.js.br +0 -0
- codex/static_root/assets/reader-D2O_yHTW.js.gz +0 -0
- codex/static_root/assets/{reader-DOQuhDYO.css → reader-YbzUiD0T.css} +1 -1
- codex/static_root/assets/reader-YbzUiD0T.css.br +0 -0
- codex/static_root/assets/reader-YbzUiD0T.css.gz +0 -0
- codex/static_root/assets/{reader-DOQuhDYO.df559ad29ab3.css → reader-YbzUiD0T.efb15835b39d.css} +1 -1
- codex/static_root/assets/reader-YbzUiD0T.efb15835b39d.css.br +0 -0
- codex/static_root/assets/reader-YbzUiD0T.efb15835b39d.css.gz +0 -0
- codex/static_root/assets/{relation-chips-Bsc-gUxE.98e65384c3c9.css → relation-chips-BGitp3yx.b3e7d178a615.css} +1 -1
- codex/static_root/assets/relation-chips-BGitp3yx.b3e7d178a615.css.br +0 -0
- codex/static_root/assets/relation-chips-BGitp3yx.b3e7d178a615.css.gz +0 -0
- codex/static_root/assets/{relation-chips-Bsc-gUxE.css → relation-chips-BGitp3yx.css} +1 -1
- codex/static_root/assets/relation-chips-BGitp3yx.css.br +0 -0
- codex/static_root/assets/relation-chips-BGitp3yx.css.gz +0 -0
- codex/static_root/assets/relation-chips-CmeSIsRq.f169f7c3f48d.js +1 -0
- codex/static_root/assets/relation-chips-CmeSIsRq.f169f7c3f48d.js.br +0 -0
- codex/static_root/assets/relation-chips-CmeSIsRq.f169f7c3f48d.js.gz +0 -0
- codex/static_root/assets/relation-chips-CmeSIsRq.js +1 -0
- codex/static_root/assets/relation-chips-CmeSIsRq.js.br +0 -0
- codex/static_root/assets/relation-chips-CmeSIsRq.js.gz +0 -0
- codex/static_root/assets/settings-drawer-XH4sNDNT.98ee4b24901c.js +2 -0
- codex/static_root/assets/settings-drawer-XH4sNDNT.98ee4b24901c.js.br +0 -0
- codex/static_root/assets/settings-drawer-XH4sNDNT.98ee4b24901c.js.gz +0 -0
- codex/static_root/assets/settings-drawer-XH4sNDNT.js +2 -0
- codex/static_root/assets/settings-drawer-XH4sNDNT.js.br +0 -0
- codex/static_root/assets/settings-drawer-XH4sNDNT.js.gz +0 -0
- codex/static_root/assets/stats-tab-BGxkeKnY.44cf18ca895d.js +1 -0
- codex/static_root/assets/stats-tab-BGxkeKnY.44cf18ca895d.js.br +0 -0
- codex/static_root/assets/stats-tab-BGxkeKnY.44cf18ca895d.js.gz +0 -0
- codex/static_root/assets/stats-tab-BGxkeKnY.js +1 -0
- codex/static_root/assets/stats-tab-BGxkeKnY.js.br +0 -0
- codex/static_root/assets/stats-tab-BGxkeKnY.js.gz +0 -0
- codex/static_root/assets/stats-tab-CI0u-X7Y.2d1b6a0d4139.css +1 -0
- codex/static_root/assets/stats-tab-CI0u-X7Y.2d1b6a0d4139.css.br +0 -0
- codex/static_root/assets/stats-tab-CI0u-X7Y.2d1b6a0d4139.css.gz +0 -0
- codex/static_root/assets/stats-tab-CI0u-X7Y.css +1 -0
- codex/static_root/assets/stats-tab-CI0u-X7Y.css.br +0 -0
- codex/static_root/assets/stats-tab-CI0u-X7Y.css.gz +0 -0
- codex/static_root/assets/task-tab-B74Kah_b.58627993d3c6.js +1 -0
- codex/static_root/assets/task-tab-B74Kah_b.58627993d3c6.js.br +0 -0
- codex/static_root/assets/task-tab-B74Kah_b.58627993d3c6.js.gz +0 -0
- codex/static_root/assets/task-tab-B74Kah_b.js +1 -0
- codex/static_root/assets/task-tab-B74Kah_b.js.br +0 -0
- codex/static_root/assets/task-tab-B74Kah_b.js.gz +0 -0
- codex/static_root/assets/unauthorized-BF45der6.d34f8022124b.js +1 -0
- codex/static_root/assets/unauthorized-BF45der6.d34f8022124b.js.br +0 -0
- codex/static_root/assets/unauthorized-BF45der6.d34f8022124b.js.gz +0 -0
- codex/static_root/assets/unauthorized-BF45der6.js +1 -0
- codex/static_root/assets/unauthorized-BF45der6.js.br +0 -0
- codex/static_root/assets/unauthorized-BF45der6.js.gz +0 -0
- codex/static_root/assets/user-tab-BP2TTPg5.e63a5661a1a5.js +1 -0
- codex/static_root/assets/user-tab-BP2TTPg5.e63a5661a1a5.js.br +0 -0
- codex/static_root/assets/user-tab-BP2TTPg5.e63a5661a1a5.js.gz +0 -0
- codex/static_root/assets/user-tab-BP2TTPg5.js +1 -0
- codex/static_root/assets/user-tab-BP2TTPg5.js.br +0 -0
- codex/static_root/assets/user-tab-BP2TTPg5.js.gz +0 -0
- codex/static_root/{manifest.80e911824648.json → manifest.7033f9a22987.json} +230 -242
- codex/static_root/manifest.7033f9a22987.json.br +0 -0
- codex/static_root/manifest.7033f9a22987.json.gz +0 -0
- codex/static_root/manifest.json +230 -242
- codex/static_root/manifest.json.br +0 -0
- codex/static_root/manifest.json.gz +0 -0
- codex/static_root/staticfiles.json +1 -1
- codex/urls/root.py +12 -2
- codex/views/admin/api_key.py +1 -1
- codex/views/admin/flag.py +1 -1
- codex/views/admin/group.py +1 -1
- codex/views/admin/library.py +1 -1
- codex/views/admin/stats.py +41 -155
- codex/views/admin/tasks.py +1 -1
- codex/views/admin/user.py +1 -1
- codex/views/browser/browser.py +4 -1
- codex/views/browser/filters/field.py +15 -6
- codex/views/browser/paginate.py +61 -11
- codex/views/browser/validate.py +7 -5
- codex/views/opds/binary.py +1 -3
- codex/views/opds/const.py +10 -0
- codex/views/opds/util.py +10 -0
- codex/views/opds/v1/entry/entry.py +14 -18
- codex/views/opds/v1/feed.py +10 -24
- codex/views/opds/v1/links.py +1 -0
- codex/views/reader/arcs.py +65 -53
- codex/views/reader/books.py +38 -38
- codex/views/reader/init.py +7 -5
- codex/views/reader/reader.py +0 -2
- {codex-1.6.2.dist-info → codex-1.6.4.dist-info}/METADATA +18 -7
- {codex-1.6.2.dist-info → codex-1.6.4.dist-info}/RECORD +293 -289
- codex/serializers/admin.py +0 -268
- codex/settings/logging.py +0 -20
- codex/static_root/assets/VCheckbox-DUxuAZcY.46ab94043464.js +0 -1
- codex/static_root/assets/VCheckbox-DUxuAZcY.46ab94043464.js.br +0 -0
- codex/static_root/assets/VCheckbox-DUxuAZcY.46ab94043464.js.gz +0 -0
- codex/static_root/assets/VCheckbox-DUxuAZcY.js +0 -1
- codex/static_root/assets/VCheckbox-DUxuAZcY.js.br +0 -0
- codex/static_root/assets/VCheckbox-DUxuAZcY.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-BTFFFGx3.0cbde4eb9a65.js +0 -1
- codex/static_root/assets/VCheckboxBtn-BTFFFGx3.0cbde4eb9a65.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-BTFFFGx3.0cbde4eb9a65.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-BTFFFGx3.js +0 -1
- codex/static_root/assets/VCheckboxBtn-BTFFFGx3.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-BTFFFGx3.js.gz +0 -0
- codex/static_root/assets/VCombobox-CGyBgdqr.2f85598cc1a4.js.br +0 -0
- codex/static_root/assets/VCombobox-CGyBgdqr.2f85598cc1a4.js.gz +0 -0
- codex/static_root/assets/VCombobox-CGyBgdqr.js.br +0 -0
- codex/static_root/assets/VCombobox-CGyBgdqr.js.gz +0 -0
- codex/static_root/assets/VDialog-DTWAoZBU.b8c4c276e9b2.js +0 -1
- codex/static_root/assets/VDialog-DTWAoZBU.b8c4c276e9b2.js.br +0 -0
- codex/static_root/assets/VDialog-DTWAoZBU.b8c4c276e9b2.js.gz +0 -0
- codex/static_root/assets/VDialog-DTWAoZBU.js +0 -1
- codex/static_root/assets/VDialog-DTWAoZBU.js.br +0 -0
- codex/static_root/assets/VDialog-DTWAoZBU.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-D4psrz4h.b55b901da65f.js +0 -1
- codex/static_root/assets/VExpansionPanels-D4psrz4h.b55b901da65f.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-D4psrz4h.b55b901da65f.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-D4psrz4h.js +0 -1
- codex/static_root/assets/VExpansionPanels-D4psrz4h.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-D4psrz4h.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-BY572TP-.6d47a94795de.js +0 -1
- codex/static_root/assets/VRadioGroup-BY572TP-.6d47a94795de.js.br +0 -2
- codex/static_root/assets/VRadioGroup-BY572TP-.6d47a94795de.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-BY572TP-.js +0 -1
- codex/static_root/assets/VRadioGroup-BY572TP-.js.br +0 -2
- codex/static_root/assets/VRadioGroup-BY572TP-.js.gz +0 -0
- codex/static_root/assets/VSelect-Bnhj5kBc.fdcd87c9e253.js +0 -1
- codex/static_root/assets/VSelect-Bnhj5kBc.fdcd87c9e253.js.br +0 -0
- codex/static_root/assets/VSelect-Bnhj5kBc.fdcd87c9e253.js.gz +0 -0
- codex/static_root/assets/VSelect-Bnhj5kBc.js +0 -1
- codex/static_root/assets/VSelect-Bnhj5kBc.js.br +0 -0
- codex/static_root/assets/VSelect-Bnhj5kBc.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-DXxRmssH.252890f79cc6.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DXxRmssH.252890f79cc6.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-DXxRmssH.js.br +0 -0
- codex/static_root/assets/VSelectionControl-DXxRmssH.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-DYJ3EYZI.a2542c5f90c4.js.br +0 -0
- codex/static_root/assets/VSlideGroup-DYJ3EYZI.a2542c5f90c4.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-DYJ3EYZI.js.br +0 -0
- codex/static_root/assets/VSlideGroup-DYJ3EYZI.js.gz +0 -0
- codex/static_root/assets/VTable-BveGtxei.7f76f4ef812b.js.br +0 -0
- codex/static_root/assets/VTable-BveGtxei.7f76f4ef812b.js.gz +0 -0
- codex/static_root/assets/VTable-BveGtxei.js.br +0 -0
- codex/static_root/assets/VTable-BveGtxei.js.gz +0 -0
- codex/static_root/assets/VTextField-BayL7C1D.6e53c61b3760.js +0 -1
- codex/static_root/assets/VTextField-BayL7C1D.6e53c61b3760.js.br +0 -0
- codex/static_root/assets/VTextField-BayL7C1D.6e53c61b3760.js.gz +0 -0
- codex/static_root/assets/VTextField-BayL7C1D.js +0 -1
- codex/static_root/assets/VTextField-BayL7C1D.js.br +0 -0
- codex/static_root/assets/VTextField-BayL7C1D.js.gz +0 -0
- codex/static_root/assets/VWindowItem-FBuIO_rT.8610c7e83905.js.br +0 -0
- codex/static_root/assets/VWindowItem-FBuIO_rT.8610c7e83905.js.gz +0 -0
- codex/static_root/assets/VWindowItem-FBuIO_rT.js.br +0 -0
- codex/static_root/assets/VWindowItem-FBuIO_rT.js.gz +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.82c98714bcf1.css.br +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.82c98714bcf1.css.gz +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.css.br +0 -0
- codex/static_root/assets/admin-B8Bp2Uih.css.gz +0 -0
- codex/static_root/assets/admin-BH6uiYBb.d51c720fa05c.js +0 -1
- codex/static_root/assets/admin-BH6uiYBb.d51c720fa05c.js.br +0 -0
- codex/static_root/assets/admin-BH6uiYBb.d51c720fa05c.js.gz +0 -0
- codex/static_root/assets/admin-BH6uiYBb.js +0 -1
- codex/static_root/assets/admin-BH6uiYBb.js.br +0 -0
- codex/static_root/assets/admin-BH6uiYBb.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-DsgLbfnD.7c409b430d79.js +0 -30
- codex/static_root/assets/admin-drawer-panel-DsgLbfnD.7c409b430d79.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-DsgLbfnD.7c409b430d79.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-DsgLbfnD.js +0 -30
- codex/static_root/assets/admin-drawer-panel-DsgLbfnD.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-DsgLbfnD.js.gz +0 -0
- codex/static_root/assets/browser-BVciW8XB.ab1d75272aa7.js +0 -1
- codex/static_root/assets/browser-BVciW8XB.ab1d75272aa7.js.br +0 -0
- codex/static_root/assets/browser-BVciW8XB.ab1d75272aa7.js.gz +0 -0
- codex/static_root/assets/browser-BVciW8XB.js +0 -1
- codex/static_root/assets/browser-BVciW8XB.js.br +0 -0
- codex/static_root/assets/browser-BVciW8XB.js.gz +0 -0
- codex/static_root/assets/browser-DP9eEJ0M.276e8636f8fc.css.br +0 -0
- codex/static_root/assets/browser-DP9eEJ0M.276e8636f8fc.css.gz +0 -0
- codex/static_root/assets/browser-DP9eEJ0M.css.br +0 -0
- codex/static_root/assets/browser-DP9eEJ0M.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-B-Sd5U5p.adf0a0f02866.js +0 -1
- codex/static_root/assets/change-password-dialog-B-Sd5U5p.adf0a0f02866.js.br +0 -0
- codex/static_root/assets/change-password-dialog-B-Sd5U5p.adf0a0f02866.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-B-Sd5U5p.js +0 -1
- codex/static_root/assets/change-password-dialog-B-Sd5U5p.js.br +0 -0
- codex/static_root/assets/change-password-dialog-B-Sd5U5p.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-CYEBgtj5.a5f142656c12.js +0 -1
- codex/static_root/assets/confirm-dialog-CYEBgtj5.a5f142656c12.js.br +0 -0
- codex/static_root/assets/confirm-dialog-CYEBgtj5.a5f142656c12.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-CYEBgtj5.js +0 -1
- codex/static_root/assets/confirm-dialog-CYEBgtj5.js.br +0 -0
- codex/static_root/assets/confirm-dialog-CYEBgtj5.js.gz +0 -0
- codex/static_root/assets/datetime-column-uaXWFgF_.29c6d50b483e.js.br +0 -0
- codex/static_root/assets/datetime-column-uaXWFgF_.29c6d50b483e.js.gz +0 -0
- codex/static_root/assets/datetime-column-uaXWFgF_.js.br +0 -0
- codex/static_root/assets/datetime-column-uaXWFgF_.js.gz +0 -0
- codex/static_root/assets/filter-DS84uTvk.4fbebd4832bc.js.br +0 -0
- codex/static_root/assets/filter-DS84uTvk.4fbebd4832bc.js.gz +0 -0
- codex/static_root/assets/filter-DS84uTvk.js.br +0 -0
- codex/static_root/assets/filter-DS84uTvk.js.gz +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css +0 -1
- codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css.br +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.b755a99fff7e.css.gz +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.css +0 -1
- codex/static_root/assets/flag-tab-BNwbLfrN.css.br +0 -0
- codex/static_root/assets/flag-tab-BNwbLfrN.css.gz +0 -0
- codex/static_root/assets/flag-tab-iJTJldQ1.213201f8e03b.js +0 -1
- codex/static_root/assets/flag-tab-iJTJldQ1.213201f8e03b.js.br +0 -0
- codex/static_root/assets/flag-tab-iJTJldQ1.213201f8e03b.js.gz +0 -0
- codex/static_root/assets/flag-tab-iJTJldQ1.js +0 -1
- codex/static_root/assets/flag-tab-iJTJldQ1.js.br +0 -0
- codex/static_root/assets/flag-tab-iJTJldQ1.js.gz +0 -0
- codex/static_root/assets/group-tab-DdmGE4gB.48ef83a4c7cd.js +0 -1
- codex/static_root/assets/group-tab-DdmGE4gB.48ef83a4c7cd.js.br +0 -0
- codex/static_root/assets/group-tab-DdmGE4gB.48ef83a4c7cd.js.gz +0 -0
- codex/static_root/assets/group-tab-DdmGE4gB.js +0 -1
- codex/static_root/assets/group-tab-DdmGE4gB.js.br +0 -0
- codex/static_root/assets/group-tab-DdmGE4gB.js.gz +0 -0
- codex/static_root/assets/http-error-HtOe8jPa.141ad665f81d.js +0 -1
- codex/static_root/assets/http-error-HtOe8jPa.141ad665f81d.js.br +0 -0
- codex/static_root/assets/http-error-HtOe8jPa.141ad665f81d.js.gz +0 -0
- codex/static_root/assets/http-error-HtOe8jPa.js +0 -1
- codex/static_root/assets/http-error-HtOe8jPa.js.br +0 -0
- codex/static_root/assets/http-error-HtOe8jPa.js.gz +0 -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.br +0 -0
- codex/static_root/assets/library-tab-BN0SfPcH.css.gz +0 -0
- codex/static_root/assets/library-tab-DLAJV6j2.dae6292bbf28.js +0 -1
- codex/static_root/assets/library-tab-DLAJV6j2.dae6292bbf28.js.br +0 -0
- codex/static_root/assets/library-tab-DLAJV6j2.dae6292bbf28.js.gz +0 -0
- codex/static_root/assets/library-tab-DLAJV6j2.js +0 -1
- codex/static_root/assets/library-tab-DLAJV6j2.js.br +0 -0
- codex/static_root/assets/library-tab-DLAJV6j2.js.gz +0 -0
- codex/static_root/assets/main-BjGE3kSi.22c1b19a9e19.js +0 -32
- codex/static_root/assets/main-BjGE3kSi.22c1b19a9e19.js.br +0 -0
- codex/static_root/assets/main-BjGE3kSi.22c1b19a9e19.js.gz +0 -0
- codex/static_root/assets/main-BjGE3kSi.js +0 -32
- codex/static_root/assets/main-BjGE3kSi.js.br +0 -0
- codex/static_root/assets/main-BjGE3kSi.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-C8CSryCU.9b61f95fd710.js +0 -1
- codex/static_root/assets/pagination-toolbar-C8CSryCU.9b61f95fd710.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-C8CSryCU.9b61f95fd710.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-C8CSryCU.js +0 -1
- codex/static_root/assets/pagination-toolbar-C8CSryCU.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-C8CSryCU.js.gz +0 -0
- codex/static_root/assets/pdf-doc-C-4EM9-d.ce9cf66bd4c3.js.br +0 -0
- codex/static_root/assets/pdf-doc-C-4EM9-d.ce9cf66bd4c3.js.gz +0 -0
- codex/static_root/assets/pdf-doc-C-4EM9-d.js.br +0 -0
- codex/static_root/assets/pdf-doc-C-4EM9-d.js.gz +0 -0
- codex/static_root/assets/reader-C5OTEQ7N.fae52c1fee51.js +0 -2
- codex/static_root/assets/reader-C5OTEQ7N.fae52c1fee51.js.br +0 -0
- codex/static_root/assets/reader-C5OTEQ7N.fae52c1fee51.js.gz +0 -0
- codex/static_root/assets/reader-C5OTEQ7N.js +0 -2
- codex/static_root/assets/reader-C5OTEQ7N.js.br +0 -0
- codex/static_root/assets/reader-C5OTEQ7N.js.gz +0 -0
- codex/static_root/assets/reader-DOQuhDYO.css.br +0 -0
- codex/static_root/assets/reader-DOQuhDYO.css.gz +0 -0
- codex/static_root/assets/reader-DOQuhDYO.df559ad29ab3.css.br +0 -0
- codex/static_root/assets/reader-DOQuhDYO.df559ad29ab3.css.gz +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.98e65384c3c9.css.br +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.98e65384c3c9.css.gz +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.css.br +0 -0
- codex/static_root/assets/relation-chips-Bsc-gUxE.css.gz +0 -0
- codex/static_root/assets/relation-chips-C4LQSHRc.3c85433df91c.js +0 -1
- codex/static_root/assets/relation-chips-C4LQSHRc.3c85433df91c.js.br +0 -0
- codex/static_root/assets/relation-chips-C4LQSHRc.3c85433df91c.js.gz +0 -0
- codex/static_root/assets/relation-chips-C4LQSHRc.js +0 -1
- codex/static_root/assets/relation-chips-C4LQSHRc.js.br +0 -0
- codex/static_root/assets/relation-chips-C4LQSHRc.js.gz +0 -0
- codex/static_root/assets/settings-drawer-aTAAoX2A.2f21008ade35.js +0 -2
- codex/static_root/assets/settings-drawer-aTAAoX2A.2f21008ade35.js.br +0 -0
- codex/static_root/assets/settings-drawer-aTAAoX2A.2f21008ade35.js.gz +0 -0
- codex/static_root/assets/settings-drawer-aTAAoX2A.js +0 -2
- codex/static_root/assets/settings-drawer-aTAAoX2A.js.br +0 -0
- codex/static_root/assets/settings-drawer-aTAAoX2A.js.gz +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css +0 -1
- codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css.br +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.a5728396494b.css.gz +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.css +0 -1
- codex/static_root/assets/stats-tab-B4yKuY0c.css.br +0 -0
- codex/static_root/assets/stats-tab-B4yKuY0c.css.gz +0 -0
- codex/static_root/assets/stats-tab-DL4J3pvZ.b9056e70a70f.js +0 -1
- codex/static_root/assets/stats-tab-DL4J3pvZ.b9056e70a70f.js.br +0 -0
- codex/static_root/assets/stats-tab-DL4J3pvZ.b9056e70a70f.js.gz +0 -0
- codex/static_root/assets/stats-tab-DL4J3pvZ.js +0 -1
- codex/static_root/assets/stats-tab-DL4J3pvZ.js.br +0 -0
- codex/static_root/assets/stats-tab-DL4J3pvZ.js.gz +0 -0
- codex/static_root/assets/task-tab-0t7ZJlwL.1ff1cc14a6aa.js +0 -1
- codex/static_root/assets/task-tab-0t7ZJlwL.1ff1cc14a6aa.js.br +0 -0
- codex/static_root/assets/task-tab-0t7ZJlwL.1ff1cc14a6aa.js.gz +0 -0
- codex/static_root/assets/task-tab-0t7ZJlwL.js +0 -1
- codex/static_root/assets/task-tab-0t7ZJlwL.js.br +0 -0
- codex/static_root/assets/task-tab-0t7ZJlwL.js.gz +0 -0
- codex/static_root/assets/to-case-BCB751sX.4afb5ae1b77d.js +0 -1
- codex/static_root/assets/to-case-BCB751sX.js +0 -1
- codex/static_root/assets/unauthorized-Ovy_BO5R.598527e8e4fe.js +0 -1
- codex/static_root/assets/unauthorized-Ovy_BO5R.598527e8e4fe.js.br +0 -0
- codex/static_root/assets/unauthorized-Ovy_BO5R.598527e8e4fe.js.gz +0 -0
- codex/static_root/assets/unauthorized-Ovy_BO5R.js +0 -1
- codex/static_root/assets/unauthorized-Ovy_BO5R.js.br +0 -0
- codex/static_root/assets/unauthorized-Ovy_BO5R.js.gz +0 -0
- codex/static_root/assets/user-tab-Cdspo8ie.8e886a1a28e8.js +0 -1
- codex/static_root/assets/user-tab-Cdspo8ie.8e886a1a28e8.js.br +0 -0
- codex/static_root/assets/user-tab-Cdspo8ie.8e886a1a28e8.js.gz +0 -0
- codex/static_root/assets/user-tab-Cdspo8ie.js +0 -1
- codex/static_root/assets/user-tab-Cdspo8ie.js.br +0 -0
- codex/static_root/assets/user-tab-Cdspo8ie.js.gz +0 -0
- codex/static_root/manifest.80e911824648.json.br +0 -0
- codex/static_root/manifest.80e911824648.json.gz +0 -0
- {codex-1.6.2.dist-info → codex-1.6.4.dist-info}/LICENSE +0 -0
- {codex-1.6.2.dist-info → codex-1.6.4.dist-info}/WHEEL +0 -0
- {codex-1.6.2.dist-info → codex-1.6.4.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Admin group serializers."""
|
|
2
|
+
|
|
3
|
+
from django.contrib.auth.models import Group
|
|
4
|
+
from rest_framework.serializers import (
|
|
5
|
+
BooleanField,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
from codex.models.admin import GroupAuth
|
|
9
|
+
from codex.serializers.models.base import BaseModelSerializer
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GroupSerializer(BaseModelSerializer):
|
|
13
|
+
"""Group Serialier."""
|
|
14
|
+
|
|
15
|
+
exclude = BooleanField(default=False, source="groupauth.exclude")
|
|
16
|
+
|
|
17
|
+
class Meta(BaseModelSerializer.Meta):
|
|
18
|
+
"""Specify Model."""
|
|
19
|
+
|
|
20
|
+
model = Group
|
|
21
|
+
fields = ("pk", "name", "library_set", "user_set", "exclude")
|
|
22
|
+
read_only_fields = ("pk",)
|
|
23
|
+
|
|
24
|
+
def update(self, instance, validated_data):
|
|
25
|
+
"""Update with nested GroupAuth."""
|
|
26
|
+
exclude = validated_data.pop("groupauth", {}).get("exclude")
|
|
27
|
+
if exclude is not None:
|
|
28
|
+
groupauth = GroupAuth.objects.get(group=instance)
|
|
29
|
+
groupauth.exclude = exclude
|
|
30
|
+
groupauth.save()
|
|
31
|
+
return super().update(instance, validated_data)
|
|
32
|
+
|
|
33
|
+
def create(self, validated_data):
|
|
34
|
+
"""Create with nested GroupAuth."""
|
|
35
|
+
exclude = validated_data.pop("groupauth", {}).get("exclude", False)
|
|
36
|
+
instance = super().create(validated_data)
|
|
37
|
+
GroupAuth.objects.create(group=instance, exclude=exclude)
|
|
38
|
+
return instance
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"""Admin libraries serializers."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from rest_framework.serializers import (
|
|
6
|
+
BooleanField,
|
|
7
|
+
CharField,
|
|
8
|
+
ListField,
|
|
9
|
+
Serializer,
|
|
10
|
+
ValidationError,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from codex.models import FailedImport, Library
|
|
14
|
+
from codex.serializers.models.base import BaseModelSerializer
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class LibrarySerializer(BaseModelSerializer):
|
|
18
|
+
"""Library Serializer."""
|
|
19
|
+
|
|
20
|
+
class Meta(BaseModelSerializer.Meta):
|
|
21
|
+
"""Specify Model."""
|
|
22
|
+
|
|
23
|
+
model = Library
|
|
24
|
+
fields = (
|
|
25
|
+
"pk",
|
|
26
|
+
"path",
|
|
27
|
+
"events",
|
|
28
|
+
"last_poll",
|
|
29
|
+
"poll",
|
|
30
|
+
"poll_every",
|
|
31
|
+
"groups",
|
|
32
|
+
"covers_only",
|
|
33
|
+
)
|
|
34
|
+
read_only_fields = ("last_poll", "pk", "covers_only")
|
|
35
|
+
|
|
36
|
+
def validate_path(self, path):
|
|
37
|
+
"""Validate new library paths."""
|
|
38
|
+
ppath = Path(path).resolve()
|
|
39
|
+
if not ppath.is_dir():
|
|
40
|
+
reason = "Not a valid folder on this server"
|
|
41
|
+
raise ValidationError(reason)
|
|
42
|
+
existing_path_strs = Library.objects.values_list("path", flat=True)
|
|
43
|
+
for existing_path_str in existing_path_strs:
|
|
44
|
+
existing_path = Path(existing_path_str)
|
|
45
|
+
if existing_path.is_relative_to(ppath):
|
|
46
|
+
reason = "Parent of existing library path"
|
|
47
|
+
raise ValidationError(reason)
|
|
48
|
+
if ppath.is_relative_to(existing_path):
|
|
49
|
+
reason = "Child of existing library path"
|
|
50
|
+
raise ValidationError(reason)
|
|
51
|
+
return path
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class FailedImportSerializer(BaseModelSerializer):
|
|
55
|
+
"""Failed Import Serializer."""
|
|
56
|
+
|
|
57
|
+
class Meta(BaseModelSerializer.Meta):
|
|
58
|
+
"""Specify Model."""
|
|
59
|
+
|
|
60
|
+
model = FailedImport
|
|
61
|
+
fields = ("pk", "path", "created_at")
|
|
62
|
+
read_only_fields = ("pk", "path", "created_at")
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class AdminFolderListSerializer(Serializer):
|
|
66
|
+
"""Get a list of dirs."""
|
|
67
|
+
|
|
68
|
+
root_folder = CharField(read_only=True)
|
|
69
|
+
folders = ListField(child=CharField(read_only=True))
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class AdminFolderSerializer(Serializer):
|
|
73
|
+
"""Validate a dir."""
|
|
74
|
+
|
|
75
|
+
path = CharField(default=".")
|
|
76
|
+
show_hidden = BooleanField(default=False)
|
|
77
|
+
|
|
78
|
+
def validate_path(self, path):
|
|
79
|
+
"""Validate the path is an existing directory."""
|
|
80
|
+
ppath = Path(path)
|
|
81
|
+
if not ppath.resolve().is_dir():
|
|
82
|
+
reason = "Not a directory"
|
|
83
|
+
raise ValidationError(reason)
|
|
84
|
+
return path
|
|
85
|
+
|
|
86
|
+
def validate_show_hidden(self, show_hidden):
|
|
87
|
+
"""Snakecase the showHidden field."""
|
|
88
|
+
return (
|
|
89
|
+
show_hidden == "true" or self.initial_data.get("showHidden") == "true" # type: ignore
|
|
90
|
+
)
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Admin stats serializers."""
|
|
2
|
+
|
|
3
|
+
from rest_framework.serializers import (
|
|
4
|
+
BooleanField,
|
|
5
|
+
CharField,
|
|
6
|
+
IntegerField,
|
|
7
|
+
Serializer,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from codex.serializers.fields import (
|
|
11
|
+
CountDictField,
|
|
12
|
+
SerializerChoicesField,
|
|
13
|
+
StringListMultipleChoiceField,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
FILE_TYPES_CHOICES = ("CBZ", "CBR", "CBT", "PDF", "UNKNOWN")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class StatsSystemSerializer(Serializer):
|
|
20
|
+
"""Platform System Information."""
|
|
21
|
+
|
|
22
|
+
name = CharField(required=False, read_only=True)
|
|
23
|
+
release = CharField(required=False, read_only=True)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class StatsPlatformSerializer(Serializer):
|
|
27
|
+
"""Platform Information."""
|
|
28
|
+
|
|
29
|
+
docker = BooleanField(read_only=True)
|
|
30
|
+
machine = CharField(read_only=True)
|
|
31
|
+
cores = IntegerField(read_only=True)
|
|
32
|
+
system = StatsSystemSerializer(read_only=True)
|
|
33
|
+
python_version = CharField(read_only=True)
|
|
34
|
+
codex_version = CharField(read_only=True)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class StatsConfigSerializer(Serializer):
|
|
38
|
+
"""Config Information."""
|
|
39
|
+
|
|
40
|
+
library_count = IntegerField(required=False, read_only=True)
|
|
41
|
+
user_anonymous_count = IntegerField(required=False, read_only=True)
|
|
42
|
+
user_registered_count = IntegerField(required=False, read_only=True)
|
|
43
|
+
auth_group_count = IntegerField(required=False, read_only=True)
|
|
44
|
+
# Only for api
|
|
45
|
+
api_key = CharField(required=False, read_only=True)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class StatsSessionsSerializer(Serializer):
|
|
49
|
+
"""Session Settings."""
|
|
50
|
+
|
|
51
|
+
top_group = CountDictField(required=False, read_only=True)
|
|
52
|
+
order_by = CountDictField(required=False, read_only=True)
|
|
53
|
+
dynamic_covers = CountDictField(required=False, read_only=True)
|
|
54
|
+
finish_on_last_page = CountDictField(required=False, read_only=True)
|
|
55
|
+
fit_to = CountDictField(required=False, read_only=True)
|
|
56
|
+
reading_direction = CountDictField(required=False, read_only=True)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class StatsGroupSerializer(Serializer):
|
|
60
|
+
"""Group Counts."""
|
|
61
|
+
|
|
62
|
+
publisher_count = IntegerField(required=False, read_only=True)
|
|
63
|
+
imprint_count = IntegerField(required=False, read_only=True)
|
|
64
|
+
series_count = IntegerField(required=False, read_only=True)
|
|
65
|
+
volume_count = IntegerField(required=False, read_only=True)
|
|
66
|
+
issue_count = IntegerField(required=False, read_only=True)
|
|
67
|
+
folder_count = IntegerField(required=False, read_only=True)
|
|
68
|
+
story_arc_count = IntegerField(required=False, read_only=True)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class StatsComicMetadataSerializer(Serializer):
|
|
72
|
+
"""Metadata Counts."""
|
|
73
|
+
|
|
74
|
+
age_rating_count = IntegerField(required=False, read_only=True)
|
|
75
|
+
character_count = IntegerField(required=False, read_only=True)
|
|
76
|
+
contributor_count = IntegerField(required=False, read_only=True)
|
|
77
|
+
contributor_person_count = IntegerField(required=False, read_only=True)
|
|
78
|
+
contributor_role_count = IntegerField(required=False, read_only=True)
|
|
79
|
+
country_count = IntegerField(required=False, read_only=True)
|
|
80
|
+
genre_count = IntegerField(required=False, read_only=True)
|
|
81
|
+
identifier_count = IntegerField(required=False, read_only=True)
|
|
82
|
+
identifier_type_count = IntegerField(required=False, read_only=True)
|
|
83
|
+
language_count = IntegerField(required=False, read_only=True)
|
|
84
|
+
location_count = IntegerField(required=False, read_only=True)
|
|
85
|
+
original_format_count = IntegerField(required=False, read_only=True)
|
|
86
|
+
series_group_count = IntegerField(required=False, read_only=True)
|
|
87
|
+
scan_info_count = IntegerField(required=False, read_only=True)
|
|
88
|
+
story_arc_count = IntegerField(required=False)
|
|
89
|
+
story_arc_number_count = IntegerField(required=False, read_only=True)
|
|
90
|
+
tag_count = IntegerField(required=False, read_only=True)
|
|
91
|
+
tagger_count = IntegerField(required=False, read_only=True)
|
|
92
|
+
team_count = IntegerField(required=False, read_only=True)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class StatsSerializer(Serializer):
|
|
96
|
+
"""Admin Stats Tab."""
|
|
97
|
+
|
|
98
|
+
platform = StatsPlatformSerializer(required=False)
|
|
99
|
+
config = StatsConfigSerializer(required=False)
|
|
100
|
+
sessions = StatsSessionsSerializer(required=False)
|
|
101
|
+
groups = StatsGroupSerializer(required=False)
|
|
102
|
+
file_types = CountDictField(required=False)
|
|
103
|
+
metadata = StatsComicMetadataSerializer(required=False)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class AdminStatsRequestSerializer(Serializer):
|
|
107
|
+
"""Admin Stats Tab Request."""
|
|
108
|
+
|
|
109
|
+
platform = SerializerChoicesField(
|
|
110
|
+
serializer=StatsPlatformSerializer, required=False
|
|
111
|
+
)
|
|
112
|
+
config = SerializerChoicesField(serializer=StatsConfigSerializer, required=False)
|
|
113
|
+
sessions = SerializerChoicesField(
|
|
114
|
+
serializer=StatsSessionsSerializer, required=False
|
|
115
|
+
)
|
|
116
|
+
groups = SerializerChoicesField(serializer=StatsGroupSerializer, required=False)
|
|
117
|
+
file_types = StringListMultipleChoiceField(choices=FILE_TYPES_CHOICES)
|
|
118
|
+
metadata = SerializerChoicesField(
|
|
119
|
+
serializer=StatsComicMetadataSerializer, required=False
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class APIKeySerializer(Serializer):
|
|
124
|
+
"""API Key."""
|
|
125
|
+
|
|
126
|
+
api_key = CharField(source="name")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Admin tasks serializers."""
|
|
2
|
+
|
|
3
|
+
from rest_framework.serializers import (
|
|
4
|
+
ChoiceField,
|
|
5
|
+
IntegerField,
|
|
6
|
+
Serializer,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from codex.serializers.choices import CHOICES
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AdminLibrarianTaskSerializer(Serializer):
|
|
13
|
+
"""Get tasks from front end."""
|
|
14
|
+
|
|
15
|
+
task = ChoiceField(choices=CHOICES["admin"]["tasks"])
|
|
16
|
+
library_id = IntegerField(required=False)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""User serializers."""
|
|
2
|
+
|
|
3
|
+
from django.contrib.auth.models import User
|
|
4
|
+
from rest_framework.serializers import (
|
|
5
|
+
CharField,
|
|
6
|
+
DateTimeField,
|
|
7
|
+
Serializer,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from codex.serializers.models.base import BaseModelSerializer
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class UserSerializer(BaseModelSerializer):
|
|
14
|
+
"""User Serializer."""
|
|
15
|
+
|
|
16
|
+
last_active = DateTimeField(
|
|
17
|
+
read_only=True, source="useractive.updated_at", allow_null=True
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
class Meta(BaseModelSerializer.Meta):
|
|
21
|
+
"""Specify Model."""
|
|
22
|
+
|
|
23
|
+
model = User
|
|
24
|
+
fields = (
|
|
25
|
+
"pk",
|
|
26
|
+
"username",
|
|
27
|
+
"groups",
|
|
28
|
+
"is_staff",
|
|
29
|
+
"is_active",
|
|
30
|
+
"last_active",
|
|
31
|
+
"last_login",
|
|
32
|
+
"date_joined",
|
|
33
|
+
)
|
|
34
|
+
read_only_fields = ("pk", "last_active", "last_login", "date_joined")
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class UserChangePasswordSerializer(Serializer):
|
|
38
|
+
"""Special User Change Password Serializer."""
|
|
39
|
+
|
|
40
|
+
password = CharField(write_only=True)
|
codex/serializers/fields.py
CHANGED
|
@@ -10,9 +10,11 @@ from rest_framework.serializers import (
|
|
|
10
10
|
BooleanField,
|
|
11
11
|
CharField,
|
|
12
12
|
ChoiceField,
|
|
13
|
+
DictField,
|
|
13
14
|
FloatField,
|
|
14
15
|
IntegerField,
|
|
15
16
|
ListField,
|
|
17
|
+
MultipleChoiceField,
|
|
16
18
|
)
|
|
17
19
|
|
|
18
20
|
from codex.logger.logging import get_logger
|
|
@@ -147,3 +149,31 @@ class LanguageField(PyCountryField):
|
|
|
147
149
|
"""Serializer to long language name."""
|
|
148
150
|
|
|
149
151
|
LOOKUP_MODULE = pycountry.languages
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class CountDictField(DictField):
|
|
155
|
+
"""Dict for counting things."""
|
|
156
|
+
|
|
157
|
+
child = IntegerField(read_only=True)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
class StringListMultipleChoiceField(MultipleChoiceField):
|
|
161
|
+
"""A Multiple Choice Field expressed as as a comma delimited string."""
|
|
162
|
+
|
|
163
|
+
def to_internal_value(self, data):
|
|
164
|
+
"""Convert comma delimited strings to sets."""
|
|
165
|
+
if isinstance(data, str):
|
|
166
|
+
data = frozenset(data.split(","))
|
|
167
|
+
return super().to_internal_value(data) # type: ignore
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
class SerializerChoicesField(StringListMultipleChoiceField):
|
|
171
|
+
"""A String List Multiple Choice Field limited to a specified serializer's fields."""
|
|
172
|
+
|
|
173
|
+
def __init__(self, *args, serializer=None, **kwargs):
|
|
174
|
+
"""Limit choices to fields from serializers."""
|
|
175
|
+
if not serializer:
|
|
176
|
+
reason = "serializer required for this field."
|
|
177
|
+
raise ValueError(reason)
|
|
178
|
+
choices = serializer().get_fields().keys()
|
|
179
|
+
super().__init__(*args, choices=choices, **kwargs)
|
codex/serializers/reader.py
CHANGED
|
@@ -10,7 +10,10 @@ from rest_framework.serializers import (
|
|
|
10
10
|
)
|
|
11
11
|
|
|
12
12
|
from codex.models import Bookmark
|
|
13
|
-
from codex.serializers.browser.settings import
|
|
13
|
+
from codex.serializers.browser.settings import (
|
|
14
|
+
BrowserSettingsFilterSerializer,
|
|
15
|
+
BrowserSettingsShowGroupFlagsSerializer,
|
|
16
|
+
)
|
|
14
17
|
from codex.serializers.fields import BreadcrumbsField, TimestampField, TopGroupField
|
|
15
18
|
from codex.serializers.route import RouteSerializer, SimpleRouteSerializer
|
|
16
19
|
|
|
@@ -43,10 +46,11 @@ class ReaderComicSerializer(Serializer):
|
|
|
43
46
|
class ReaderArcSerializer(SimpleRouteSerializer):
|
|
44
47
|
"""Information about the current Arc."""
|
|
45
48
|
|
|
46
|
-
name = CharField(required=False)
|
|
47
|
-
index = IntegerField(required=False)
|
|
48
49
|
count = IntegerField(required=False)
|
|
50
|
+
index = IntegerField(required=False)
|
|
51
|
+
filters = BrowserSettingsFilterSerializer(required=False)
|
|
49
52
|
mtime = TimestampField(read_only=True)
|
|
53
|
+
name = CharField(required=False)
|
|
50
54
|
|
|
51
55
|
|
|
52
56
|
class ReaderViewInputSerializer(Serializer):
|
|
@@ -54,6 +58,7 @@ class ReaderViewInputSerializer(Serializer):
|
|
|
54
58
|
|
|
55
59
|
arc = ReaderArcSerializer(required=False)
|
|
56
60
|
breadcrumbs = BreadcrumbsField(required=False)
|
|
61
|
+
browser_arc = ReaderArcSerializer(required=False)
|
|
57
62
|
show = BrowserSettingsShowGroupFlagsSerializer(required=False)
|
|
58
63
|
top_group = TopGroupField(required=False)
|
|
59
64
|
|
codex/settings/settings.py
CHANGED
|
@@ -9,6 +9,7 @@ For the full list of settings and their values, see
|
|
|
9
9
|
https://docs.djangoproject.com/en/dev/ref/settings/
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
+
import logging
|
|
12
13
|
from logging import WARN, getLogger
|
|
13
14
|
from os import environ
|
|
14
15
|
from pathlib import Path
|
|
@@ -16,7 +17,6 @@ from sys import maxsize
|
|
|
16
17
|
from types import MappingProxyType
|
|
17
18
|
|
|
18
19
|
from codex.settings.hypercorn import load_hypercorn_config
|
|
19
|
-
from codex.settings.logging import get_loglevel
|
|
20
20
|
from codex.settings.secret_key import get_secret_key
|
|
21
21
|
from codex.settings.timezone import get_time_zone
|
|
22
22
|
from codex.settings.whitenoise import immutable_file_test
|
|
@@ -47,7 +47,7 @@ VITE_HOST = environ.get("VITE_HOST")
|
|
|
47
47
|
####################################
|
|
48
48
|
# Documented Environment Variables #
|
|
49
49
|
####################################
|
|
50
|
-
LOGLEVEL =
|
|
50
|
+
LOGLEVEL = environ.get("LOGLEVEL", logging.DEBUG if DEBUG else logging.INFO)
|
|
51
51
|
TZ = environ.get("TIMEZONE", environ.get("TZ"))
|
|
52
52
|
CONFIG_PATH = Path(environ.get("CODEX_CONFIG_DIR", Path.cwd() / "config"))
|
|
53
53
|
RESET_ADMIN = bool(environ.get("CODEX_RESET_ADMIN"))
|
|
@@ -105,7 +105,7 @@ INSTALLED_APPS = [
|
|
|
105
105
|
|
|
106
106
|
if DEBUG:
|
|
107
107
|
# comes before static apps
|
|
108
|
-
INSTALLED_APPS += ["nplusone.ext.django"]
|
|
108
|
+
INSTALLED_APPS += ["nplusone.ext.django", "schema_graph"]
|
|
109
109
|
|
|
110
110
|
INSTALLED_APPS += [
|
|
111
111
|
"whitenoise.runserver_nostatic",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as g,V as t}from"./VCheckboxBtn-B-iT1MnG.js";import{a as A,u as I,V as l}from"./VSelectionControl-CUlT3cc_.js";import{F as B,aq as U,P as R,ay as q,G as D,h as E,S as G,cE as M,T as u,au as r}from"./admin-drawer-panel-CnAnGx7w.js";const N=B({...A(),...U(g(),["inline"])},"VCheckbox"),j=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=q(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=D(),p=E(()=>e.id||`checkbox-${V}`);return G(()=>{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:h,messagesId:x,isDisabled:P,isReadonly:y,isValid:C}=o;return u(t,r(k,{id:h.value,"aria-describedby":x.value,disabled:P.value,readonly:y.value},f,{error:C.value===!1,modelValue:s.value,"onUpdate:modelValue":F=>s.value=F,onFocus:i,onBlur:m}),a)}})}),{}}});export{j as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as g,V as t}from"./VCheckboxBtn-B-iT1MnG.js";import{a as A,u as I,V as l}from"./VSelectionControl-CUlT3cc_.js";import{F as B,aq as U,P as R,ay as q,G as D,h as E,S as G,cE as M,T as u,au as r}from"./admin-drawer-panel-CnAnGx7w.js";const N=B({...A(),...U(g(),["inline"])},"VCheckbox"),j=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=q(e,"modelValue"),{isFocused:n,focus:i,blur:m}=I(e),V=D(),p=E(()=>e.id||`checkbox-${V}`);return G(()=>{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:h,messagesId:x,isDisabled:P,isReadonly:y,isValid:C}=o;return u(t,r(k,{id:h.value,"aria-describedby":x.value,disabled:P.value,readonly:y.value},f,{error:C.value===!1,modelValue:s.value,"onUpdate:modelValue":F=>s.value=F,onFocus:i,onBlur:m}),a)}})}),{}}});export{j as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as f,d as o}from"./VSelectionControl-CUlT3cc_.js";import{F as V,bf as v,P as I,ay as c,h as l,S as h,aq as k,T as x,au as b}from"./admin-drawer-panel-CnAnGx7w.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:v,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=I()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:u}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function s(a){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),d=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return h(()=>{const a=k(o.filterProps(e),["modelValue"]);return x(o,b(a,{modelValue:n.value,"onUpdate:modelValue":[m=>n.value=m,s],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:d.value,"aria-checked":t.value?"mixed":void 0}),u)}),{}}});export{B as V,C as m};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as f,d as o}from"./VSelectionControl-CUlT3cc_.js";import{F as V,bf as v,P as I,ay as c,h as l,S as h,aq as k,T as x,au as b}from"./admin-drawer-panel-CnAnGx7w.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:v,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=I()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:u}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function s(a){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),d=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return h(()=>{const a=k(o.filterProps(e),["modelValue"]);return x(o,b(a,{modelValue:n.value,"onUpdate:modelValue":[m=>n.value=m,s],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:d.value,"aria-checked":t.value?"mixed":void 0}),u)}),{}}});export{B as V,C as m};
|
|
Binary file
|
|
Binary file
|
codex/static_root/assets/{VCombobox-CGyBgdqr.2f85598cc1a4.js → VCombobox-DZmum3X-.330883d59742.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as Ce,u as ke,V as pe,a as we,b as Se}from"./VSelect-
|
|
1
|
+
import{m as Ce,u as ke,V as pe,a as we,b as Se}from"./VSelect-FYWbH55D.js";import{m as Fe,V as X}from"./VTextField-DEiVah7O.js";import{F as Ie,aq as Pe,b5 as De,P as Re,c0 as _e,r as L,s as P,ay as Y,h as b,cQ as Ae,as as Te,cR as D,a as R,n as Z,ai as Me,S as Ee,T as i,V as N,au as I,bx as Le,a_ as ee,cS as Ne,aR as le,cT as Oe,bi as Ke,al as Ue,cU as Be,av as je,cV as qe,cW as ze}from"./admin-drawer-panel-CnAnGx7w.js";import{m as He,u as We}from"./filter-_XbKRiIR.js";import{g as $e}from"./VSelectionControl-CUlT3cc_.js";import{V as Qe}from"./VCheckboxBtn-B-iT1MnG.js";function Ge(e,g,_){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(N,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,_)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+_)])]):e}const Je=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...He({filterKeys:["title"]}),...Ce({hideNoData:!0,returnObject:!0}),...Pe(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...De({transition:!1})},"VCombobox"),tl=Re()({name:"VCombobox",props:Je(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var Q;let{emit:_,slots:o}=g;const{t:O}=_e(),V=L(),x=P(!1),C=P(!0),K=P(!1),H=L(),W=L(),U=Y(e,"menu"),c=b({get:()=>U.value,set:l=>{var t;U.value&&!l&&((t=H.value)!=null&&t.ΨopenChildren)||(U.value=l)}}),s=P(-1);let B=!1;const ae=b(()=>{var l;return(l=V.value)==null?void 0:l.color}),$=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=Ae(e),{textColorClasses:oe,textColorStyles:ie}=Te(ae),n=Y(e,"modelValue",[],l=>ne(ze(l)),l=>{const t=ue(l);return e.multiple?t:t[0]??null}),F=$e(),A=b(()=>!!(e.chips||o.chip)),y=b(()=>A.value||!!o.selection),k=P(!e.multiple&&!y.value?((Q=n.value[0])==null?void 0:Q.title)??"":""),v=b({get:()=>k.value,set:l=>{var t;if(k.value=l??"",!e.multiple&&!y.value&&(n.value=[D(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(a=>{a=a.trim(),a&&h(D(e,a))}),k.value="")}l||(s.value=-1),C.value=!l}}),se=b(()=>typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?n.value.length:v.value.length);R(k,l=>{B?Z(()=>B=!1):x.value&&!c.value&&(c.value=!0),_("update:search",l)}),R(n,l=>{var t;!e.multiple&&!y.value&&(k.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:T,getMatches:re}=We(e,te,()=>C.value?"":v.value),p=b(()=>e.hideSelected?T.value.filter(l=>!n.value.some(t=>t.value===l.value)):T.value),ce=b(()=>n.value.map(l=>l.value)),j=b(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=p.value[0])==null?void 0:t.title))&&p.value.length>0&&!C.value&&!K.value}),q=b(()=>e.hideNoData&&!p.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),z=L(),{onListScroll:ve,onListKeydown:de}=ke(z,V);function fe(l){B=!0,e.openOnClear&&(c.value=!0)}function me(){q.value||(c.value=!0)}function be(l){q.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function he(l){var a;if(qe(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=V.value.selectionStart,r=n.value.length;if((s.value>-1||["Enter","ArrowDown","ArrowUp"].includes(l.key))&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(c.value=!0),["Escape"].includes(l.key)&&(c.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(j.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===p.value[0].value})&&h(T.value[0]),C.value=!0),l.key==="ArrowDown"&&j.value&&((a=z.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(h(D(e,v.value)),y.value&&(k.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&n.value.length>0&&!v.value)return h(n.value[0],!1);if(~s.value){const u=s.value;h(n.value[s.value],!1),s.value=u>=r-1?r-2:u}else l.key==="Backspace"&&!v.value&&(s.value=r-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(s.value<0&&t>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(s.value<0)return;const u=s.value+1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(C.value=!0,(l=V.value)==null||l.focus())}function h(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const r=n.value.findIndex(u=>e.valueComparator(u.value,l.value)),a=t??!~r;if(~r){const u=a?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else a&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=t!==!1;n.value=r?[l]:[],k.value=r&&!y.value?l.title:"",Z(()=>{c.value=!1,C.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{K.value=!0})}function ye(l){K.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(n.value=[])}return R(x,(l,t)=>{if(!(l||l===t)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(D(e,v.value));return}if(!y.value)return;n.value.some(r=>{let{title:a}=r;return a===v.value})?k.value="":h(D(e,v.value))}}),R(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=p.value.findIndex(t=>n.value.some(r=>e.valueComparator(r.value,t.value)));Me&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=W.value)==null||t.scrollToIndex(l))})}}),R(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Ee(()=>{const l=!!(!e.hideNoData||p.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),t=n.value.length>0,r=X.filterProps(e);return i(X,I({ref:V},r,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:n.externalValue,counterValue:se.value,dirty:t,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!y.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:t?void 0:e.placeholder,"onClick:clear":fe,"onMousedown:control":me,onKeydown:he}),{...o,default:()=>i(N,null,[i(pe,I({ref:H,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:q.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&i(Le,I({ref:z,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,u,m;return[(a=o["prepend-item"])==null?void 0:a.call(o),!p.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(ee,{title:O(e.noDataText)},null)),i(we,{ref:W,renderless:!0,items:p.value},{default:w=>{var J;let{item:d,index:S,itemRef:f}=w;const G=I(d.props,{ref:f,key:S,active:j.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((J=o.item)==null?void 0:J.call(o,{item:d,index:S,props:G}))??i(ee,I(G,{role:"option"}),{prepend:M=>{let{isSelected:E}=M;return i(N,null,[e.multiple&&!e.hideSelected?i(Qe,{key:d.value,modelValue:E,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Ne,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(le,{icon:d.props.prependIcon},null)])},title:()=>{var M,E;return C.value?d.title:Ge(d.title,(M=re(d))==null?void 0:M.title,((E=v.value)==null?void 0:E.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((a,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const w={"onClick:close":m,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),m(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=A.value?!!o.chip:!!o.selection,S=d?Oe(A.value?o.chip({item:a,index:u,props:w}):o.selection({item:a,index:u})):void 0;if(!(d&&!S))return i("div",{key:a.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[A.value?o.chip?i(Ke,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):i(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[Ue(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,u=new Array(a),m=0;m<a;m++)u[m]=arguments[m];return i(N,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:be,onClick:Be,"aria-label":O($.value),title:O($.value),tabindex:"-1"},null):void 0])}})}),je({isFocused:x,isPristine:C,menu:c,search:v,selectionIndex:s,filteredItems:T,select:h},V)}});export{tl as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as Ce,u as ke,V as pe,a as we,b as Se}from"./VSelect-
|
|
1
|
+
import{m as Ce,u as ke,V as pe,a as we,b as Se}from"./VSelect-FYWbH55D.js";import{m as Fe,V as X}from"./VTextField-DEiVah7O.js";import{F as Ie,aq as Pe,b5 as De,P as Re,c0 as _e,r as L,s as P,ay as Y,h as b,cQ as Ae,as as Te,cR as D,a as R,n as Z,ai as Me,S as Ee,T as i,V as N,au as I,bx as Le,a_ as ee,cS as Ne,aR as le,cT as Oe,bi as Ke,al as Ue,cU as Be,av as je,cV as qe,cW as ze}from"./admin-drawer-panel-CnAnGx7w.js";import{m as He,u as We}from"./filter-_XbKRiIR.js";import{g as $e}from"./VSelectionControl-CUlT3cc_.js";import{V as Qe}from"./VCheckboxBtn-B-iT1MnG.js";function Ge(e,g,_){if(g==null)return e;if(Array.isArray(g))throw new Error("Multiple matches is not implemented");return typeof g=="number"&&~g?i(N,null,[i("span",{class:"v-combobox__unmask"},[e.substr(0,g)]),i("span",{class:"v-combobox__mask"},[e.substr(g,_)]),i("span",{class:"v-combobox__unmask"},[e.substr(g+_)])]):e}const Je=Ie({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...He({filterKeys:["title"]}),...Ce({hideNoData:!0,returnObject:!0}),...Pe(Fe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...De({transition:!1})},"VCombobox"),tl=Re()({name:"VCombobox",props:Je(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,g){var Q;let{emit:_,slots:o}=g;const{t:O}=_e(),V=L(),x=P(!1),C=P(!0),K=P(!1),H=L(),W=L(),U=Y(e,"menu"),c=b({get:()=>U.value,set:l=>{var t;U.value&&!l&&((t=H.value)!=null&&t.ΨopenChildren)||(U.value=l)}}),s=P(-1);let B=!1;const ae=b(()=>{var l;return(l=V.value)==null?void 0:l.color}),$=b(()=>c.value?e.closeText:e.openText),{items:te,transformIn:ne,transformOut:ue}=Ae(e),{textColorClasses:oe,textColorStyles:ie}=Te(ae),n=Y(e,"modelValue",[],l=>ne(ze(l)),l=>{const t=ue(l);return e.multiple?t:t[0]??null}),F=$e(),A=b(()=>!!(e.chips||o.chip)),y=b(()=>A.value||!!o.selection),k=P(!e.multiple&&!y.value?((Q=n.value[0])==null?void 0:Q.title)??"":""),v=b({get:()=>k.value,set:l=>{var t;if(k.value=l??"",!e.multiple&&!y.value&&(n.value=[D(e,l)]),l&&e.multiple&&((t=e.delimiters)!=null&&t.length)){const r=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));r.length>1&&(r.forEach(a=>{a=a.trim(),a&&h(D(e,a))}),k.value="")}l||(s.value=-1),C.value=!l}}),se=b(()=>typeof e.counterValue=="function"?e.counterValue(n.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?n.value.length:v.value.length);R(k,l=>{B?Z(()=>B=!1):x.value&&!c.value&&(c.value=!0),_("update:search",l)}),R(n,l=>{var t;!e.multiple&&!y.value&&(k.value=((t=l[0])==null?void 0:t.title)??"")});const{filteredItems:T,getMatches:re}=We(e,te,()=>C.value?"":v.value),p=b(()=>e.hideSelected?T.value.filter(l=>!n.value.some(t=>t.value===l.value)):T.value),ce=b(()=>n.value.map(l=>l.value)),j=b(()=>{var t;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&v.value===((t=p.value[0])==null?void 0:t.title))&&p.value.length>0&&!C.value&&!K.value}),q=b(()=>e.hideNoData&&!p.value.length||e.readonly||(F==null?void 0:F.isReadonly.value)),z=L(),{onListScroll:ve,onListKeydown:de}=ke(z,V);function fe(l){B=!0,e.openOnClear&&(c.value=!0)}function me(){q.value||(c.value=!0)}function be(l){q.value||(x.value&&(l.preventDefault(),l.stopPropagation()),c.value=!c.value)}function he(l){var a;if(qe(l)||e.readonly||F!=null&&F.isReadonly.value)return;const t=V.value.selectionStart,r=n.value.length;if((s.value>-1||["Enter","ArrowDown","ArrowUp"].includes(l.key))&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(c.value=!0),["Escape"].includes(l.key)&&(c.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(j.value&&["Enter","Tab"].includes(l.key)&&!n.value.some(u=>{let{value:m}=u;return m===p.value[0].value})&&h(T.value[0]),C.value=!0),l.key==="ArrowDown"&&j.value&&((a=z.value)==null||a.focus("next")),l.key==="Enter"&&v.value&&(h(D(e,v.value)),y.value&&(k.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&y.value&&n.value.length>0&&!v.value)return h(n.value[0],!1);if(~s.value){const u=s.value;h(n.value[s.value],!1),s.value=u>=r-1?r-2:u}else l.key==="Backspace"&&!v.value&&(s.value=r-1)}if(e.multiple){if(l.key==="ArrowLeft"){if(s.value<0&&t>0)return;const u=s.value>-1?s.value-1:r-1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(v.value.length,v.value.length))}if(l.key==="ArrowRight"){if(s.value<0)return;const u=s.value+1;n.value[u]?s.value=u:(s.value=-1,V.value.setSelectionRange(0,0))}}}function ge(){var l;x.value&&(C.value=!0,(l=V.value)==null||l.focus())}function h(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const r=n.value.findIndex(u=>e.valueComparator(u.value,l.value)),a=t??!~r;if(~r){const u=a?[...n.value,l]:[...n.value];u.splice(r,1),n.value=u}else a&&(n.value=[...n.value,l]);e.clearOnSelect&&(v.value="")}else{const r=t!==!1;n.value=r?[l]:[],k.value=r&&!y.value?l.title:"",Z(()=>{c.value=!1,C.value=!0})}}function xe(l){x.value=!0,setTimeout(()=>{K.value=!0})}function ye(l){K.value=!1}function Ve(l){(l==null||l===""&&!e.multiple&&!y.value)&&(n.value=[])}return R(x,(l,t)=>{if(!(l||l===t)&&(s.value=-1,c.value=!1,v.value)){if(e.multiple){h(D(e,v.value));return}if(!y.value)return;n.value.some(r=>{let{title:a}=r;return a===v.value})?k.value="":h(D(e,v.value))}}),R(c,()=>{if(!e.hideSelected&&c.value&&n.value.length){const l=p.value.findIndex(t=>n.value.some(r=>e.valueComparator(r.value,t.value)));Me&&window.requestAnimationFrame(()=>{var t;l>=0&&((t=W.value)==null||t.scrollToIndex(l))})}}),R(()=>e.items,(l,t)=>{c.value||x.value&&!t.length&&l.length&&(c.value=!0)}),Ee(()=>{const l=!!(!e.hideNoData||p.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),t=n.value.length>0,r=X.filterProps(e);return i(X,I({ref:V},r,{modelValue:v.value,"onUpdate:modelValue":[a=>v.value=a,Ve],focused:x.value,"onUpdate:focused":a=>x.value=a,validationValue:n.externalValue,counterValue:se.value,dirty:t,class:["v-combobox",{"v-combobox--active-menu":c.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!y.value,"v-combobox--selecting-index":s.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:t?void 0:e.placeholder,"onClick:clear":fe,"onMousedown:control":me,onKeydown:he}),{...o,default:()=>i(N,null,[i(pe,I({ref:H,modelValue:c.value,"onUpdate:modelValue":a=>c.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:q.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:ge},e.menuProps),{default:()=>[l&&i(Le,I({ref:z,selected:ce.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:xe,onFocusout:ye,onScrollPassive:ve,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var a,u,m;return[(a=o["prepend-item"])==null?void 0:a.call(o),!p.value.length&&!e.hideNoData&&(((u=o["no-data"])==null?void 0:u.call(o))??i(ee,{title:O(e.noDataText)},null)),i(we,{ref:W,renderless:!0,items:p.value},{default:w=>{var J;let{item:d,index:S,itemRef:f}=w;const G=I(d.props,{ref:f,key:S,active:j.value&&S===0?!0:void 0,onClick:()=>h(d,null)});return((J=o.item)==null?void 0:J.call(o,{item:d,index:S,props:G}))??i(ee,I(G,{role:"option"}),{prepend:M=>{let{isSelected:E}=M;return i(N,null,[e.multiple&&!e.hideSelected?i(Qe,{key:d.value,modelValue:E,ripple:!1,tabindex:"-1"},null):void 0,d.props.prependAvatar&&i(Ne,{image:d.props.prependAvatar},null),d.props.prependIcon&&i(le,{icon:d.props.prependIcon},null)])},title:()=>{var M,E;return C.value?d.title:Ge(d.title,(M=re(d))==null?void 0:M.title,((E=v.value)==null?void 0:E.length)??0)}})}}),(m=o["append-item"])==null?void 0:m.call(o)]}})]}),n.value.map((a,u)=>{function m(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const w={"onClick:close":m,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),m(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},d=A.value?!!o.chip:!!o.selection,S=d?Oe(A.value?o.chip({item:a,index:u,props:w}):o.selection({item:a,index:u})):void 0;if(!(d&&!S))return i("div",{key:a.value,class:["v-combobox__selection",u===s.value&&["v-combobox__selection--selected",oe.value]],style:u===s.value?ie.value:{}},[A.value?o.chip?i(Ke,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):i(Se,I({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},w),null):S??i("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&u<n.value.length-1&&i("span",{class:"v-combobox__selection-comma"},[Ue(",")])])])})]),"append-inner":function(){var w;for(var a=arguments.length,u=new Array(a),m=0;m<a;m++)u[m]=arguments[m];return i(N,null,[(w=o["append-inner"])==null?void 0:w.call(o,...u),(!e.hideNoData||e.items.length)&&e.menuIcon?i(le,{class:"v-combobox__menu-icon",icon:e.menuIcon,onMousedown:be,onClick:Be,"aria-label":O($.value),title:O($.value),tabindex:"-1"},null):void 0])}})}),je({isFocused:x,isPristine:C,menu:c,search:v,selectionIndex:s,filteredItems:T,select:h},V)}});export{tl as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as S,$ as D,aH as F,T as v,a0 as E,al as V,aJ as T,at as b,F as $,da as A,db as L,P as _,ay as h,aE as k,r as w,ai as I,a as P,n as R,S as N,de as y,au as m,bi as O,av as q,df as z}from"./admin-drawer-panel-CnAnGx7w.js";const H={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},J={class:"confirmFooter"};function M(e,l,f,c,s,g){return D(),F("footer",J,[v(b,{class:"confirmButton",disabled:f.disabled,onClick:l[0]||(l[0]=t=>e.$emit("confirm"))},{default:E(()=>[V(T(f.confirmText),1)]),_:1},8,["disabled"]),v(b,{class:"cancelButton",onClick:l[1]||(l[1]=t=>e.$emit("cancel"))},{default:E(()=>[V(" Cancel ")]),_:1})])}const j=S(H,[["render",M],["__scopeId","data-v-24df1550"]]),U=$({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...A({origin:"center center",scrollStrategy:"block",transition:{component:L},zIndex:2400})},"VDialog"),G=_()({name:"VDialog",props:U(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,l){let{emit:f,slots:c}=l;const s=h(e,"modelValue"),{scopeId:g}=k(),t=w();function p(a){var r,u;const n=a.relatedTarget,i=a.target;if(n!==i&&((r=t.value)!=null&&r.contentEl)&&((u=t.value)!=null&&u.globalTop)&&![document,t.value.contentEl].includes(i)&&!t.value.contentEl.contains(i)){const o=z(t.value.contentEl);if(!o.length)return;const d=o[0],C=o[o.length-1];n===d?C.focus():d.focus()}}I&&P(()=>s.value&&e.retainFocus,a=>{a?document.addEventListener("focusin",p):document.removeEventListener("focusin",p)},{immediate:!0});function x(){var a;(a=t.value)!=null&&a.contentEl&&!t.value.contentEl.contains(document.activeElement)&&t.value.contentEl.focus({preventScroll:!0})}function B(){f("afterLeave")}return P(s,async a=>{var n;a||(await R(),(n=t.value.activatorEl)==null||n.focus({preventScroll:!0}))}),N(()=>{const a=y.filterProps(e),n=m({"aria-haspopup":"dialog","aria-expanded":String(s.value)},e.activatorProps),i=m({tabindex:-1},e.contentProps);return v(y,m({ref:t,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},a,{modelValue:s.value,"onUpdate:modelValue":r=>s.value=r,"aria-modal":"true",activatorProps:n,contentProps:i,role:"dialog",onAfterEnter:x,onAfterLeave:B},g),{activator:c.activator,default:function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];return v(O,{root:"VDialog"},{default:()=>{var d;return[(d=c.default)==null?void 0:d.call(c,...u)]}})}})}),q({},t)}});export{j as C,G as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as S,$ as D,aH as F,T as v,a0 as E,al as V,aJ as T,at as b,F as $,da as A,db as L,P as _,ay as h,aE as k,r as w,ai as I,a as P,n as R,S as N,de as y,au as m,bi as O,av as q,df as z}from"./admin-drawer-panel-CnAnGx7w.js";const H={name:"ConfirmFooter",props:{confirmText:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["confirm","cancel"]},J={class:"confirmFooter"};function M(e,l,f,c,s,g){return D(),F("footer",J,[v(b,{class:"confirmButton",disabled:f.disabled,onClick:l[0]||(l[0]=t=>e.$emit("confirm"))},{default:E(()=>[V(T(f.confirmText),1)]),_:1},8,["disabled"]),v(b,{class:"cancelButton",onClick:l[1]||(l[1]=t=>e.$emit("cancel"))},{default:E(()=>[V(" Cancel ")]),_:1})])}const j=S(H,[["render",M],["__scopeId","data-v-24df1550"]]),U=$({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...A({origin:"center center",scrollStrategy:"block",transition:{component:L},zIndex:2400})},"VDialog"),G=_()({name:"VDialog",props:U(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,l){let{emit:f,slots:c}=l;const s=h(e,"modelValue"),{scopeId:g}=k(),t=w();function p(a){var r,u;const n=a.relatedTarget,i=a.target;if(n!==i&&((r=t.value)!=null&&r.contentEl)&&((u=t.value)!=null&&u.globalTop)&&![document,t.value.contentEl].includes(i)&&!t.value.contentEl.contains(i)){const o=z(t.value.contentEl);if(!o.length)return;const d=o[0],C=o[o.length-1];n===d?C.focus():d.focus()}}I&&P(()=>s.value&&e.retainFocus,a=>{a?document.addEventListener("focusin",p):document.removeEventListener("focusin",p)},{immediate:!0});function x(){var a;(a=t.value)!=null&&a.contentEl&&!t.value.contentEl.contains(document.activeElement)&&t.value.contentEl.focus({preventScroll:!0})}function B(){f("afterLeave")}return P(s,async a=>{var n;a||(await R(),(n=t.value.activatorEl)==null||n.focus({preventScroll:!0}))}),N(()=>{const a=y.filterProps(e),n=m({"aria-haspopup":"dialog","aria-expanded":String(s.value)},e.activatorProps),i=m({tabindex:-1},e.contentProps);return v(y,m({ref:t,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},a,{modelValue:s.value,"onUpdate:modelValue":r=>s.value=r,"aria-modal":"true",activatorProps:n,contentProps:i,role:"dialog",onAfterEnter:x,onAfterLeave:B},g),{activator:c.activator,default:function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];return v(O,{root:"VDialog"},{default:()=>{var d;return[(d=c.default)==null?void 0:d.call(c,...u)]}})}})}),q({},t)}});export{j as C,G as V};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as P,N as k,c3 as G,P as b,i as C,c7 as L,S as m,T as l,aV as I,bY as F,bS as $,bf as g,cf as j,aC as T,h as v,b8 as z,bi as h,aR as N,cd as O,c2 as Q,bg as X,aA as Y,c5 as q,cg as H,bh as J,p as K,cX as M,O as U,c1 as W,Q as Z,aF as ee,aD as t}from"./admin-drawer-panel-CnAnGx7w.js";const p=Symbol.for("vuetify:v-expansion-panel"),w=P({...k(),...G()},"VExpansionPanelText"),E=b()({name:"VExpansionPanelText",props:w(),setup(e,d){let{slots:n}=d;const a=C(p);if(!a)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:i,onAfterLeave:u}=L(e,a.isSelected);return m(()=>l($,{onAfterLeave:u},{default:()=>{var o;return[I(l("div",{class:["v-expansion-panel-text",e.class],style:e.style},[n.default&&i.value&&l("div",{class:"v-expansion-panel-text__wrapper"},[(o=n.default)==null?void 0:o.call(n)])]),[[F,a.isSelected.value]])]}})),{}}}),A=P({color:String,expandIcon:{type:g,default:"$expand"},collapseIcon:{type:g,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...k()},"VExpansionPanelTitle"),S=b()({name:"VExpansionPanelTitle",directives:{Ripple:j},props:A(),setup(e,d){let{slots:n}=d;const a=C(p);if(!a)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:i,backgroundColorStyles:u}=T(e,"color"),o=v(()=>({collapseIcon:e.collapseIcon,disabled:a.disabled.value,expanded:a.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly})),r=v(()=>a.isSelected.value?e.collapseIcon:e.expandIcon);return m(()=>{var f;return I(l("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":a.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},i.value,e.class],style:[u.value,e.style],type:"button",tabindex:a.disabled.value?-1:void 0,disabled:a.disabled.value,"aria-expanded":a.isSelected.value,onClick:e.readonly?void 0:a.toggle},[l("span",{class:"v-expansion-panel-title__overlay"},null),(f=n.default)==null?void 0:f.call(n,o.value),!e.hideActions&&l(h,{defaults:{VIcon:{icon:r.value}}},{default:()=>{var x;return[l("span",{class:"v-expansion-panel-title__icon"},[((x=n.actions)==null?void 0:x.call(n,o.value))??l(N,null,null)])]}})]),[[z("ripple"),e.ripple]])}),{}}}),B=P({title:String,text:String,bgColor:String,...O(),...Q(),...X(),...Y(),...A(),...w()},"VExpansionPanel"),te=b()({name:"VExpansionPanel",props:B(),emits:{"group:selected":e=>!0},setup(e,d){let{slots:n}=d;const a=q(e,p),{backgroundColorClasses:i,backgroundColorStyles:u}=T(e,"bgColor"),{elevationClasses:o}=H(e),{roundedClasses:r}=J(e),f=v(()=>(a==null?void 0:a.disabled.value)||e.disabled),x=v(()=>a.group.items.value.reduce((c,s,y)=>(a.group.selected.value.includes(s.id)&&c.push(y),c),[])),_=v(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&x.value.some(s=>s-c===1)}),D=v(()=>{const c=a.group.items.value.findIndex(s=>s.id===a.id);return!a.isSelected.value&&x.value.some(s=>s-c===-1)});return K(p,a),m(()=>{const c=!!(n.text||e.text),s=!!(n.title||e.title),y=S.filterProps(e),R=E.filterProps(e);return l(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":a.isSelected.value,"v-expansion-panel--before-active":_.value,"v-expansion-panel--after-active":D.value,"v-expansion-panel--disabled":f.value},r.value,i.value,e.class],style:[u.value,e.style]},{default:()=>[l("div",{class:["v-expansion-panel__shadow",...o.value]},null),l(h,{defaults:{VExpansionPanelTitle:{...y},VExpansionPanelText:{...R}}},{default:()=>{var V;return[s&&l(S,{key:"title"},{default:()=>[n.title?n.title():e.title]}),c&&l(E,{key:"text"},{default:()=>[n.text?n.text():e.text]}),(V=n.default)==null?void 0:V.call(n)]}})]})}),{groupItem:a}}}),ae=["default","accordion","inset","popout"],ne=P({flat:Boolean,...M(),...B(),...U(),variant:{type:String,default:"default",validator:e=>ae.includes(e)}},"VExpansionPanels"),se=b()({name:"VExpansionPanels",props:ne(),emits:{"update:modelValue":e=>!0},setup(e,d){let{slots:n}=d;const{next:a,prev:i}=W(e,p),{themeClasses:u}=Z(e),o=v(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return ee({VExpansionPanel:{bgColor:t(e,"bgColor"),collapseIcon:t(e,"collapseIcon"),color:t(e,"color"),eager:t(e,"eager"),elevation:t(e,"elevation"),expandIcon:t(e,"expandIcon"),focusable:t(e,"focusable"),hideActions:t(e,"hideActions"),readonly:t(e,"readonly"),ripple:t(e,"ripple"),rounded:t(e,"rounded"),static:t(e,"static")}}),m(()=>l(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},u.value,o.value,e.class],style:e.style},{default:()=>{var r;return[(r=n.default)==null?void 0:r.call(n,{prev:i,next:a})]}})),{next:a,prev:i}}});export{te as V,S as a,E as b,se as c};
|
|
Binary file
|