codex 1.6.0a4__py3-none-any.whl → 1.6.0a6__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 +28 -18
- codex/librarian/covers/tasks.py +3 -2
- codex/librarian/importer/aggregate_metadata.py +2 -2
- codex/librarian/importer/const.py +31 -3
- codex/librarian/importer/covers.py +47 -0
- codex/librarian/importer/create_fks.py +88 -28
- codex/librarian/importer/deleted.py +71 -9
- codex/librarian/importer/importerd.py +133 -28
- codex/librarian/importer/link_comics.py +55 -0
- codex/librarian/importer/moved.py +78 -3
- codex/librarian/importer/query_fks.py +65 -1
- codex/librarian/importer/status.py +6 -0
- codex/librarian/importer/tasks.py +11 -3
- codex/librarian/importer/update_comics.py +1 -5
- 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/migrations/0029_choices_adminflag_and_timestamp.py +44 -0
- codex/models/admin.py +0 -2
- 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/page.py +0 -1
- codex/serializers/browser/settings.py +3 -0
- codex/settings/settings.py +11 -5
- codex/startup.py +77 -3
- codex/static_root/assets/{VCheckbox-CN6Sn_k7.9bf27129091c.js → VCheckbox-BS5fdM4M.a5d446e4aeb3.js} +1 -1
- codex/static_root/assets/VCheckbox-BS5fdM4M.a5d446e4aeb3.js.br +0 -0
- codex/static_root/assets/VCheckbox-BS5fdM4M.a5d446e4aeb3.js.gz +0 -0
- codex/static_root/assets/{VCheckbox-CN6Sn_k7.js → VCheckbox-BS5fdM4M.js} +1 -1
- codex/static_root/assets/VCheckbox-BS5fdM4M.js.br +0 -0
- codex/static_root/assets/VCheckbox-BS5fdM4M.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-CN1RPZPQ.b763c6a7abaf.js → VCheckboxBtn-m4IbdjEe.f0c4a814ded8.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-m4IbdjEe.f0c4a814ded8.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-m4IbdjEe.f0c4a814ded8.js.gz +0 -0
- codex/static_root/assets/{VCheckboxBtn-CN1RPZPQ.js → VCheckboxBtn-m4IbdjEe.js} +1 -1
- codex/static_root/assets/VCheckboxBtn-m4IbdjEe.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-m4IbdjEe.js.gz +0 -0
- codex/static_root/assets/VCombobox-jg7SI5mn.af66f18b4c54.js +1 -0
- codex/static_root/assets/VCombobox-jg7SI5mn.af66f18b4c54.js.br +0 -0
- codex/static_root/assets/VCombobox-jg7SI5mn.af66f18b4c54.js.gz +0 -0
- codex/static_root/assets/VCombobox-jg7SI5mn.js +1 -0
- codex/static_root/assets/VCombobox-jg7SI5mn.js.br +0 -0
- codex/static_root/assets/VCombobox-jg7SI5mn.js.gz +0 -0
- codex/static_root/assets/{VDialog-DC3KGsMT.71e2a460e44b.js → VDialog-DiixpkQL.f84fd1fd1f84.js} +1 -1
- codex/static_root/assets/VDialog-DiixpkQL.f84fd1fd1f84.js.br +0 -0
- codex/static_root/assets/VDialog-DiixpkQL.f84fd1fd1f84.js.gz +0 -0
- codex/static_root/assets/{VDialog-DC3KGsMT.js → VDialog-DiixpkQL.js} +1 -1
- codex/static_root/assets/VDialog-DiixpkQL.js.br +0 -0
- codex/static_root/assets/VDialog-DiixpkQL.js.gz +0 -0
- codex/static_root/assets/{VExpansionPanels-DJQYXCn2.f0d471a1b80a.js → VExpansionPanels-Db5mPFue.56d0ad094a62.js} +1 -1
- codex/static_root/assets/VExpansionPanels-Db5mPFue.56d0ad094a62.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-Db5mPFue.56d0ad094a62.js.gz +0 -0
- codex/static_root/assets/{VExpansionPanels-DJQYXCn2.js → VExpansionPanels-Db5mPFue.js} +1 -1
- codex/static_root/assets/VExpansionPanels-Db5mPFue.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-Db5mPFue.js.gz +0 -0
- codex/static_root/assets/{VRadioGroup-CgodTThy.b20290d57146.js → VRadioGroup-DULWiMSI.4ae535e01d2b.js} +1 -1
- codex/static_root/assets/VRadioGroup-DULWiMSI.4ae535e01d2b.js.br +0 -0
- codex/static_root/assets/VRadioGroup-DULWiMSI.4ae535e01d2b.js.gz +0 -0
- codex/static_root/assets/{VRadioGroup-CgodTThy.js → VRadioGroup-DULWiMSI.js} +1 -1
- codex/static_root/assets/VRadioGroup-DULWiMSI.js.br +0 -0
- codex/static_root/assets/VRadioGroup-DULWiMSI.js.gz +0 -0
- codex/static_root/assets/VSelect-BnoCfCLY.4d50fd11c77c.js +1 -0
- codex/static_root/assets/VSelect-BnoCfCLY.4d50fd11c77c.js.br +0 -0
- codex/static_root/assets/VSelect-BnoCfCLY.4d50fd11c77c.js.gz +0 -0
- codex/static_root/assets/VSelect-BnoCfCLY.js +1 -0
- codex/static_root/assets/VSelect-BnoCfCLY.js.br +0 -0
- codex/static_root/assets/VSelect-BnoCfCLY.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-zPp4DXWq.635b7f5aa882.js → VSelectionControl-BSL0qeL9.5b5835d286df.js} +1 -1
- codex/static_root/assets/VSelectionControl-BSL0qeL9.5b5835d286df.js.br +0 -0
- codex/static_root/assets/VSelectionControl-BSL0qeL9.5b5835d286df.js.gz +0 -0
- codex/static_root/assets/{VSelectionControl-zPp4DXWq.js → VSelectionControl-BSL0qeL9.js} +1 -1
- codex/static_root/assets/VSelectionControl-BSL0qeL9.js.br +0 -0
- codex/static_root/assets/VSelectionControl-BSL0qeL9.js.gz +0 -0
- codex/static_root/assets/{VSlideGroup-pK9Xompk.67014b86fc74.js → VSlideGroup-BQtz8h9p.ff97dbf209e1.js} +1 -1
- codex/static_root/assets/VSlideGroup-BQtz8h9p.ff97dbf209e1.js.br +0 -0
- codex/static_root/assets/VSlideGroup-BQtz8h9p.ff97dbf209e1.js.gz +0 -0
- codex/static_root/assets/{VSlideGroup-pK9Xompk.js → VSlideGroup-BQtz8h9p.js} +1 -1
- codex/static_root/assets/VSlideGroup-BQtz8h9p.js.br +0 -0
- codex/static_root/assets/VSlideGroup-BQtz8h9p.js.gz +0 -0
- codex/static_root/assets/{VTable-CMi6sDtP.8445f91d9023.js → VTable-C0gAriFq.fa6e4b60d4ef.js} +1 -1
- codex/static_root/assets/VTable-C0gAriFq.fa6e4b60d4ef.js.br +0 -0
- codex/static_root/assets/VTable-C0gAriFq.fa6e4b60d4ef.js.gz +0 -0
- codex/static_root/assets/{VTable-CMi6sDtP.js → VTable-C0gAriFq.js} +1 -1
- codex/static_root/assets/VTable-C0gAriFq.js.br +0 -0
- codex/static_root/assets/VTable-C0gAriFq.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-Da_Hs7ls.c295f24c251e.js +1 -0
- codex/static_root/assets/VTextField-Da_Hs7ls.c295f24c251e.js.br +0 -0
- codex/static_root/assets/VTextField-Da_Hs7ls.c295f24c251e.js.gz +0 -0
- codex/static_root/assets/VTextField-Da_Hs7ls.js +1 -0
- codex/static_root/assets/VTextField-Da_Hs7ls.js.br +0 -0
- codex/static_root/assets/VTextField-Da_Hs7ls.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-DNsRQx9l.c42f636c386e.js → VWindowItem-CFhKCj49.b2458002a937.js} +1 -1
- codex/static_root/assets/VWindowItem-CFhKCj49.b2458002a937.js.br +0 -0
- codex/static_root/assets/VWindowItem-CFhKCj49.b2458002a937.js.gz +0 -0
- codex/static_root/assets/{VWindowItem-DNsRQx9l.js → VWindowItem-CFhKCj49.js} +1 -1
- codex/static_root/assets/VWindowItem-CFhKCj49.js.br +0 -0
- codex/static_root/assets/VWindowItem-CFhKCj49.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-BpGFsvOH.d7193c78d0dd.js +1 -0
- codex/static_root/assets/admin-BpGFsvOH.d7193c78d0dd.js.br +0 -0
- codex/static_root/assets/admin-BpGFsvOH.d7193c78d0dd.js.gz +0 -0
- codex/static_root/assets/admin-BpGFsvOH.js +1 -0
- codex/static_root/assets/admin-BpGFsvOH.js.br +0 -0
- codex/static_root/assets/admin-BpGFsvOH.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/admin-drawer-panel-C34Ze3-5.113c50cdf2cc.js +30 -0
- codex/static_root/assets/admin-drawer-panel-C34Ze3-5.113c50cdf2cc.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-C34Ze3-5.113c50cdf2cc.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-C34Ze3-5.js +30 -0
- codex/static_root/assets/admin-drawer-panel-C34Ze3-5.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-C34Ze3-5.js.gz +0 -0
- codex/static_root/assets/browser-CRPvEdqv.f355a71f4380.js +1 -0
- codex/static_root/assets/browser-CRPvEdqv.f355a71f4380.js.br +0 -0
- codex/static_root/assets/browser-CRPvEdqv.f355a71f4380.js.gz +0 -0
- codex/static_root/assets/browser-CRPvEdqv.js +1 -0
- codex/static_root/assets/browser-CRPvEdqv.js.br +0 -0
- codex/static_root/assets/browser-CRPvEdqv.js.gz +0 -0
- codex/static_root/assets/browser-Zqc9cR6T.b7d6ddeff130.css +1 -0
- codex/static_root/assets/browser-Zqc9cR6T.b7d6ddeff130.css.br +0 -0
- codex/static_root/assets/browser-Zqc9cR6T.b7d6ddeff130.css.gz +0 -0
- codex/static_root/assets/browser-Zqc9cR6T.css +1 -0
- codex/static_root/assets/browser-Zqc9cR6T.css.br +0 -0
- codex/static_root/assets/browser-Zqc9cR6T.css.gz +0 -0
- codex/static_root/assets/{change-password-dialog-BHTkpC6Z.2d5d5dd57ad3.js → change-password-dialog-JYM9aAR9.f71d378f4fa6.js} +1 -1
- codex/static_root/assets/change-password-dialog-JYM9aAR9.f71d378f4fa6.js.br +0 -0
- codex/static_root/assets/change-password-dialog-JYM9aAR9.f71d378f4fa6.js.gz +0 -0
- codex/static_root/assets/{change-password-dialog-BHTkpC6Z.js → change-password-dialog-JYM9aAR9.js} +1 -1
- codex/static_root/assets/change-password-dialog-JYM9aAR9.js.br +0 -0
- codex/static_root/assets/change-password-dialog-JYM9aAR9.js.gz +0 -0
- codex/static_root/assets/{confirm-dialog-DmXGDg4z.284812bd376d.js → confirm-dialog-ZAZ6P1Rc.515858dd21e8.js} +1 -1
- codex/static_root/assets/confirm-dialog-ZAZ6P1Rc.515858dd21e8.js.br +0 -0
- codex/static_root/assets/confirm-dialog-ZAZ6P1Rc.515858dd21e8.js.gz +0 -0
- codex/static_root/assets/{confirm-dialog-DmXGDg4z.js → confirm-dialog-ZAZ6P1Rc.js} +1 -1
- codex/static_root/assets/confirm-dialog-ZAZ6P1Rc.js.br +0 -0
- codex/static_root/assets/confirm-dialog-ZAZ6P1Rc.js.gz +0 -0
- codex/static_root/assets/{datetime-column-DKaH5S3z.5c6042016200.js → datetime-column-BT1MSP82.9617f6b94ebf.js} +1 -1
- codex/static_root/assets/datetime-column-BT1MSP82.9617f6b94ebf.js.br +0 -0
- codex/static_root/assets/datetime-column-BT1MSP82.9617f6b94ebf.js.gz +0 -0
- codex/static_root/assets/{datetime-column-DKaH5S3z.js → datetime-column-BT1MSP82.js} +1 -1
- codex/static_root/assets/datetime-column-BT1MSP82.js.br +0 -0
- codex/static_root/assets/datetime-column-BT1MSP82.js.gz +0 -0
- codex/static_root/assets/{filter-DUVATQW3.e1e7aa6d0b18.js → filter-frSNsexx.eab1570bd32d.js} +1 -1
- codex/static_root/assets/filter-frSNsexx.eab1570bd32d.js.br +0 -0
- codex/static_root/assets/filter-frSNsexx.eab1570bd32d.js.gz +0 -0
- codex/static_root/assets/{filter-DUVATQW3.js → filter-frSNsexx.js} +1 -1
- codex/static_root/assets/filter-frSNsexx.js.br +0 -0
- codex/static_root/assets/filter-frSNsexx.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-Ci_XcDT0.a5ea640a08d6.js +1 -0
- codex/static_root/assets/flag-tab-Ci_XcDT0.a5ea640a08d6.js.br +0 -0
- codex/static_root/assets/flag-tab-Ci_XcDT0.a5ea640a08d6.js.gz +0 -0
- codex/static_root/assets/flag-tab-Ci_XcDT0.js +1 -0
- codex/static_root/assets/flag-tab-Ci_XcDT0.js.br +0 -0
- codex/static_root/assets/flag-tab-Ci_XcDT0.js.gz +0 -0
- codex/static_root/assets/{group-tab-D3CyU-Il.fbf9ce5ef593.js → group-tab-DFma2R-E.879c37b15bbd.js} +1 -1
- codex/static_root/assets/group-tab-DFma2R-E.879c37b15bbd.js.br +0 -0
- codex/static_root/assets/group-tab-DFma2R-E.879c37b15bbd.js.gz +0 -0
- codex/static_root/assets/{group-tab-D3CyU-Il.js → group-tab-DFma2R-E.js} +1 -1
- codex/static_root/assets/group-tab-DFma2R-E.js.br +0 -0
- codex/static_root/assets/group-tab-DFma2R-E.js.gz +0 -0
- codex/static_root/assets/{http-error-0ef6-Ajc.e2879bcd242f.js → http-error-B3fQGxpt.9efc29496e30.js} +1 -1
- codex/static_root/assets/http-error-B3fQGxpt.9efc29496e30.js.br +0 -0
- codex/static_root/assets/http-error-B3fQGxpt.9efc29496e30.js.gz +0 -0
- codex/static_root/assets/{http-error-0ef6-Ajc.js → http-error-B3fQGxpt.js} +1 -1
- codex/static_root/assets/http-error-B3fQGxpt.js.br +0 -0
- codex/static_root/assets/http-error-B3fQGxpt.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-V8DUGoHN.809c548ff347.js +1 -0
- codex/static_root/assets/library-tab-V8DUGoHN.809c548ff347.js.br +0 -0
- codex/static_root/assets/library-tab-V8DUGoHN.809c548ff347.js.gz +0 -0
- codex/static_root/assets/library-tab-V8DUGoHN.js +1 -0
- codex/static_root/assets/library-tab-V8DUGoHN.js.br +0 -0
- codex/static_root/assets/library-tab-V8DUGoHN.js.gz +0 -0
- codex/static_root/assets/{main-CuzJev9T.js → main-Cavvqkyp.a9c4df906406.js} +6 -6
- codex/static_root/assets/main-Cavvqkyp.a9c4df906406.js.br +0 -0
- codex/static_root/assets/main-Cavvqkyp.a9c4df906406.js.gz +0 -0
- codex/static_root/assets/{main-CuzJev9T.f58771cc37e2.js → main-Cavvqkyp.js} +6 -6
- codex/static_root/assets/main-Cavvqkyp.js.br +0 -0
- codex/static_root/assets/main-Cavvqkyp.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-Dg9tH1Ju.b2eb1e0c6985.js +1 -0
- codex/static_root/assets/pagination-toolbar-Dg9tH1Ju.b2eb1e0c6985.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-Dg9tH1Ju.b2eb1e0c6985.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-Dg9tH1Ju.js +1 -0
- codex/static_root/assets/pagination-toolbar-Dg9tH1Ju.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-Dg9tH1Ju.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-BlU5mm5n.0431bcdf48d1.js → pdf-doc-4PKLN-Z3.62d8de4d1fd8.js} +1 -1
- codex/static_root/assets/pdf-doc-4PKLN-Z3.62d8de4d1fd8.js.br +0 -0
- codex/static_root/assets/pdf-doc-4PKLN-Z3.62d8de4d1fd8.js.gz +0 -0
- codex/static_root/assets/{pdf-doc-BlU5mm5n.js → pdf-doc-4PKLN-Z3.js} +1 -1
- codex/static_root/assets/pdf-doc-4PKLN-Z3.js.br +0 -0
- codex/static_root/assets/pdf-doc-4PKLN-Z3.js.gz +0 -0
- codex/static_root/assets/{reader-s7jttB_F.f7b43b04961a.js → reader-C39uGGxn.67b0f324cd5e.js} +2 -2
- codex/static_root/assets/reader-C39uGGxn.67b0f324cd5e.js.br +0 -0
- codex/static_root/assets/reader-C39uGGxn.67b0f324cd5e.js.gz +0 -0
- codex/static_root/assets/{reader-s7jttB_F.js → reader-C39uGGxn.js} +2 -2
- codex/static_root/assets/reader-C39uGGxn.js.br +0 -0
- codex/static_root/assets/reader-C39uGGxn.js.gz +0 -0
- codex/static_root/assets/{reader-BiKxuxj7.css → reader-N2Ei_y2K.8c0cdc0d513f.css} +1 -1
- codex/static_root/assets/reader-N2Ei_y2K.8c0cdc0d513f.css.br +0 -0
- codex/static_root/assets/reader-N2Ei_y2K.8c0cdc0d513f.css.gz +0 -0
- codex/static_root/assets/{reader-BiKxuxj7.dabe592f46f1.css → reader-N2Ei_y2K.css} +1 -1
- codex/static_root/assets/reader-N2Ei_y2K.css.br +0 -0
- codex/static_root/assets/reader-N2Ei_y2K.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-CAC5ytqH.f205d920ffea.js +1 -0
- codex/static_root/assets/relation-chips-CAC5ytqH.f205d920ffea.js.br +0 -0
- codex/static_root/assets/relation-chips-CAC5ytqH.f205d920ffea.js.gz +0 -0
- codex/static_root/assets/relation-chips-CAC5ytqH.js +1 -0
- codex/static_root/assets/relation-chips-CAC5ytqH.js.br +0 -0
- codex/static_root/assets/relation-chips-CAC5ytqH.js.gz +0 -0
- codex/static_root/assets/{settings-drawer-DbJuixzh.352aaaab5925.js → settings-drawer-CT73ieiV.fac6f69e86ff.js} +2 -2
- codex/static_root/assets/settings-drawer-CT73ieiV.fac6f69e86ff.js.br +0 -0
- codex/static_root/assets/settings-drawer-CT73ieiV.fac6f69e86ff.js.gz +0 -0
- codex/static_root/assets/{settings-drawer-DbJuixzh.js → settings-drawer-CT73ieiV.js} +2 -2
- codex/static_root/assets/settings-drawer-CT73ieiV.js.br +0 -0
- codex/static_root/assets/settings-drawer-CT73ieiV.js.gz +0 -0
- codex/static_root/assets/{settings-drawer-BJOfMtqA.6471a50fc05b.css → settings-drawer-nZ9HvKSZ.01744e131806.css} +1 -1
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.br +0 -0
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.01744e131806.css.gz +0 -0
- codex/static_root/assets/{settings-drawer-BJOfMtqA.css → settings-drawer-nZ9HvKSZ.css} +1 -1
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.br +0 -0
- codex/static_root/assets/settings-drawer-nZ9HvKSZ.css.gz +0 -0
- codex/static_root/assets/{stats-tab-BhRLh7XB.7be95b5021c3.js → stats-tab-C6qAnV6-.f08c46b5f141.js} +1 -1
- codex/static_root/assets/stats-tab-C6qAnV6-.f08c46b5f141.js.br +0 -0
- codex/static_root/assets/stats-tab-C6qAnV6-.f08c46b5f141.js.gz +0 -0
- codex/static_root/assets/{stats-tab-BhRLh7XB.js → stats-tab-C6qAnV6-.js} +1 -1
- codex/static_root/assets/stats-tab-C6qAnV6-.js.br +0 -0
- codex/static_root/assets/stats-tab-C6qAnV6-.js.gz +0 -0
- codex/static_root/assets/task-tab-JcG2vvgt.eed6e03db487.js +1 -0
- codex/static_root/assets/task-tab-JcG2vvgt.eed6e03db487.js.br +0 -0
- codex/static_root/assets/task-tab-JcG2vvgt.eed6e03db487.js.gz +0 -0
- codex/static_root/assets/task-tab-JcG2vvgt.js +1 -0
- codex/static_root/assets/task-tab-JcG2vvgt.js.br +0 -0
- codex/static_root/assets/task-tab-JcG2vvgt.js.gz +0 -0
- codex/static_root/assets/{unauthorized-BgXQnNpn.f63b36d526b5.js → unauthorized-28bmiwAU.c74825b5c16f.js} +1 -1
- codex/static_root/assets/unauthorized-28bmiwAU.c74825b5c16f.js.br +0 -0
- codex/static_root/assets/unauthorized-28bmiwAU.c74825b5c16f.js.gz +0 -0
- codex/static_root/assets/{unauthorized-BgXQnNpn.js → unauthorized-28bmiwAU.js} +1 -1
- codex/static_root/assets/unauthorized-28bmiwAU.js.br +0 -0
- codex/static_root/assets/unauthorized-28bmiwAU.js.gz +0 -0
- codex/static_root/assets/{user-tab-cZoJDlb-.2a497e8b2b24.js → user-tab-BOq4BMMc.b64ac15dd772.js} +1 -1
- codex/static_root/assets/user-tab-BOq4BMMc.b64ac15dd772.js.br +0 -0
- codex/static_root/assets/user-tab-BOq4BMMc.b64ac15dd772.js.gz +0 -0
- codex/static_root/assets/{user-tab-cZoJDlb-.js → user-tab-BOq4BMMc.js} +1 -1
- codex/static_root/assets/user-tab-BOq4BMMc.js.br +0 -0
- codex/static_root/assets/user-tab-BOq4BMMc.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.ad9da9714e46.json +642 -0
- codex/static_root/manifest.ad9da9714e46.json.br +0 -0
- codex/static_root/manifest.ad9da9714e46.json.gz +0 -0
- codex/static_root/manifest.json +256 -256
- 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 +3 -3
- codex/views/browser/browser.py +1 -9
- codex/views/browser/browser_annotations.py +101 -20
- codex/views/browser/browser_breadcrumbs.py +2 -2
- codex/views/browser/browser_order_by.py +31 -20
- codex/views/browser/filters/field.py +3 -1
- 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.0a4.dist-info → codex-1.6.0a6.dist-info}/METADATA +3 -2
- {codex-1.6.0a4.dist-info → codex-1.6.0a6.dist-info}/RECORD +350 -347
- codex/static_root/assets/VCheckbox-CN6Sn_k7.9bf27129091c.js.br +0 -0
- codex/static_root/assets/VCheckbox-CN6Sn_k7.9bf27129091c.js.gz +0 -0
- codex/static_root/assets/VCheckbox-CN6Sn_k7.js.br +0 -0
- codex/static_root/assets/VCheckbox-CN6Sn_k7.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-CN1RPZPQ.b763c6a7abaf.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-CN1RPZPQ.b763c6a7abaf.js.gz +0 -0
- codex/static_root/assets/VCheckboxBtn-CN1RPZPQ.js.br +0 -0
- codex/static_root/assets/VCheckboxBtn-CN1RPZPQ.js.gz +0 -0
- codex/static_root/assets/VCombobox-CtLUGYtD.6e49097cea2c.js +0 -1
- codex/static_root/assets/VCombobox-CtLUGYtD.6e49097cea2c.js.br +0 -0
- codex/static_root/assets/VCombobox-CtLUGYtD.6e49097cea2c.js.gz +0 -0
- codex/static_root/assets/VCombobox-CtLUGYtD.js +0 -1
- codex/static_root/assets/VCombobox-CtLUGYtD.js.br +0 -0
- codex/static_root/assets/VCombobox-CtLUGYtD.js.gz +0 -0
- codex/static_root/assets/VDialog-DC3KGsMT.71e2a460e44b.js.br +0 -0
- codex/static_root/assets/VDialog-DC3KGsMT.71e2a460e44b.js.gz +0 -0
- codex/static_root/assets/VDialog-DC3KGsMT.js.br +0 -0
- codex/static_root/assets/VDialog-DC3KGsMT.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DJQYXCn2.f0d471a1b80a.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DJQYXCn2.f0d471a1b80a.js.gz +0 -0
- codex/static_root/assets/VExpansionPanels-DJQYXCn2.js.br +0 -0
- codex/static_root/assets/VExpansionPanels-DJQYXCn2.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-CgodTThy.b20290d57146.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CgodTThy.b20290d57146.js.gz +0 -0
- codex/static_root/assets/VRadioGroup-CgodTThy.js.br +0 -0
- codex/static_root/assets/VRadioGroup-CgodTThy.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-B6s-x36h.de1030c82785.js +0 -1
- codex/static_root/assets/VSelect-B6s-x36h.de1030c82785.js.br +0 -0
- codex/static_root/assets/VSelect-B6s-x36h.de1030c82785.js.gz +0 -0
- codex/static_root/assets/VSelect-B6s-x36h.js +0 -1
- codex/static_root/assets/VSelect-B6s-x36h.js.br +0 -0
- codex/static_root/assets/VSelect-B6s-x36h.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-zPp4DXWq.635b7f5aa882.js.br +0 -0
- codex/static_root/assets/VSelectionControl-zPp4DXWq.635b7f5aa882.js.gz +0 -0
- codex/static_root/assets/VSelectionControl-zPp4DXWq.js.br +0 -0
- codex/static_root/assets/VSelectionControl-zPp4DXWq.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-pK9Xompk.67014b86fc74.js.br +0 -0
- codex/static_root/assets/VSlideGroup-pK9Xompk.67014b86fc74.js.gz +0 -0
- codex/static_root/assets/VSlideGroup-pK9Xompk.js.br +0 -0
- codex/static_root/assets/VSlideGroup-pK9Xompk.js.gz +0 -0
- codex/static_root/assets/VTable-CMi6sDtP.8445f91d9023.js.br +0 -0
- codex/static_root/assets/VTable-CMi6sDtP.8445f91d9023.js.gz +0 -0
- codex/static_root/assets/VTable-CMi6sDtP.js.br +0 -0
- codex/static_root/assets/VTable-CMi6sDtP.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/VTextField-dMTizQEN.e93eefec0fdf.js +0 -1
- codex/static_root/assets/VTextField-dMTizQEN.e93eefec0fdf.js.br +0 -0
- codex/static_root/assets/VTextField-dMTizQEN.e93eefec0fdf.js.gz +0 -0
- codex/static_root/assets/VTextField-dMTizQEN.js +0 -1
- codex/static_root/assets/VTextField-dMTizQEN.js.br +0 -0
- codex/static_root/assets/VTextField-dMTizQEN.js.gz +0 -0
- codex/static_root/assets/VWindowItem-DNsRQx9l.c42f636c386e.js.br +0 -0
- codex/static_root/assets/VWindowItem-DNsRQx9l.c42f636c386e.js.gz +0 -0
- codex/static_root/assets/VWindowItem-DNsRQx9l.js.br +0 -0
- codex/static_root/assets/VWindowItem-DNsRQx9l.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-CApphpty.5a41cbf0eefc.js +0 -1
- codex/static_root/assets/admin-CApphpty.5a41cbf0eefc.js.br +0 -0
- codex/static_root/assets/admin-CApphpty.5a41cbf0eefc.js.gz +0 -0
- codex/static_root/assets/admin-CApphpty.js +0 -1
- codex/static_root/assets/admin-CApphpty.js.br +0 -0
- codex/static_root/assets/admin-CApphpty.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/admin-drawer-panel-Dp8KD9D7.a79eda3055a7.js +0 -30
- codex/static_root/assets/admin-drawer-panel-Dp8KD9D7.a79eda3055a7.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-Dp8KD9D7.a79eda3055a7.js.gz +0 -0
- codex/static_root/assets/admin-drawer-panel-Dp8KD9D7.js +0 -30
- codex/static_root/assets/admin-drawer-panel-Dp8KD9D7.js.br +0 -0
- codex/static_root/assets/admin-drawer-panel-Dp8KD9D7.js.gz +0 -0
- codex/static_root/assets/browser-C_PHQbyN.bb065e2ce21a.js +0 -1
- codex/static_root/assets/browser-C_PHQbyN.bb065e2ce21a.js.br +0 -0
- codex/static_root/assets/browser-C_PHQbyN.bb065e2ce21a.js.gz +0 -0
- codex/static_root/assets/browser-C_PHQbyN.js +0 -1
- codex/static_root/assets/browser-C_PHQbyN.js.br +0 -0
- codex/static_root/assets/browser-C_PHQbyN.js.gz +0 -0
- codex/static_root/assets/browser-DVI4LUNv.css +0 -1
- codex/static_root/assets/browser-DVI4LUNv.css.br +0 -0
- codex/static_root/assets/browser-DVI4LUNv.css.gz +0 -0
- codex/static_root/assets/browser-DVI4LUNv.fef2b997145a.css +0 -1
- codex/static_root/assets/browser-DVI4LUNv.fef2b997145a.css.br +0 -0
- codex/static_root/assets/browser-DVI4LUNv.fef2b997145a.css.gz +0 -0
- codex/static_root/assets/change-password-dialog-BHTkpC6Z.2d5d5dd57ad3.js.br +0 -0
- codex/static_root/assets/change-password-dialog-BHTkpC6Z.2d5d5dd57ad3.js.gz +0 -0
- codex/static_root/assets/change-password-dialog-BHTkpC6Z.js.br +0 -0
- codex/static_root/assets/change-password-dialog-BHTkpC6Z.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-DmXGDg4z.284812bd376d.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DmXGDg4z.284812bd376d.js.gz +0 -0
- codex/static_root/assets/confirm-dialog-DmXGDg4z.js.br +0 -0
- codex/static_root/assets/confirm-dialog-DmXGDg4z.js.gz +0 -0
- codex/static_root/assets/datetime-column-DKaH5S3z.5c6042016200.js.br +0 -0
- codex/static_root/assets/datetime-column-DKaH5S3z.5c6042016200.js.gz +0 -0
- codex/static_root/assets/datetime-column-DKaH5S3z.js.br +0 -0
- codex/static_root/assets/datetime-column-DKaH5S3z.js.gz +0 -0
- codex/static_root/assets/filter-DUVATQW3.e1e7aa6d0b18.js.br +0 -0
- codex/static_root/assets/filter-DUVATQW3.e1e7aa6d0b18.js.gz +0 -0
- codex/static_root/assets/filter-DUVATQW3.js.br +0 -0
- codex/static_root/assets/filter-DUVATQW3.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/flag-tab-CSKMJEn-.5d5c0604541b.js +0 -1
- codex/static_root/assets/flag-tab-CSKMJEn-.5d5c0604541b.js.br +0 -0
- codex/static_root/assets/flag-tab-CSKMJEn-.5d5c0604541b.js.gz +0 -0
- codex/static_root/assets/flag-tab-CSKMJEn-.js +0 -1
- codex/static_root/assets/flag-tab-CSKMJEn-.js.br +0 -0
- codex/static_root/assets/flag-tab-CSKMJEn-.js.gz +0 -0
- codex/static_root/assets/group-tab-D3CyU-Il.fbf9ce5ef593.js.br +0 -0
- codex/static_root/assets/group-tab-D3CyU-Il.fbf9ce5ef593.js.gz +0 -0
- codex/static_root/assets/group-tab-D3CyU-Il.js.br +0 -0
- codex/static_root/assets/group-tab-D3CyU-Il.js.gz +0 -0
- codex/static_root/assets/http-error-0ef6-Ajc.e2879bcd242f.js.br +0 -0
- codex/static_root/assets/http-error-0ef6-Ajc.e2879bcd242f.js.gz +0 -0
- codex/static_root/assets/http-error-0ef6-Ajc.js.br +0 -0
- codex/static_root/assets/http-error-0ef6-Ajc.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/library-tab-IdDfLn4k.70b55460b8e1.js +0 -1
- codex/static_root/assets/library-tab-IdDfLn4k.70b55460b8e1.js.br +0 -0
- codex/static_root/assets/library-tab-IdDfLn4k.70b55460b8e1.js.gz +0 -0
- codex/static_root/assets/library-tab-IdDfLn4k.js +0 -1
- codex/static_root/assets/library-tab-IdDfLn4k.js.br +0 -0
- codex/static_root/assets/library-tab-IdDfLn4k.js.gz +0 -0
- codex/static_root/assets/main-CuzJev9T.f58771cc37e2.js.br +0 -0
- codex/static_root/assets/main-CuzJev9T.f58771cc37e2.js.gz +0 -0
- codex/static_root/assets/main-CuzJev9T.js.br +0 -0
- codex/static_root/assets/main-CuzJev9T.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-CLr9RVHd.66d3b756d974.js +0 -1
- codex/static_root/assets/pagination-toolbar-CLr9RVHd.66d3b756d974.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-CLr9RVHd.66d3b756d974.js.gz +0 -0
- codex/static_root/assets/pagination-toolbar-CLr9RVHd.js +0 -1
- codex/static_root/assets/pagination-toolbar-CLr9RVHd.js.br +0 -0
- codex/static_root/assets/pagination-toolbar-CLr9RVHd.js.gz +0 -0
- codex/static_root/assets/pdf-doc-BlU5mm5n.0431bcdf48d1.js.br +0 -0
- codex/static_root/assets/pdf-doc-BlU5mm5n.0431bcdf48d1.js.gz +0 -0
- codex/static_root/assets/pdf-doc-BlU5mm5n.js.br +0 -0
- codex/static_root/assets/pdf-doc-BlU5mm5n.js.gz +0 -0
- codex/static_root/assets/reader-BiKxuxj7.css.br +0 -0
- codex/static_root/assets/reader-BiKxuxj7.css.gz +0 -0
- codex/static_root/assets/reader-BiKxuxj7.dabe592f46f1.css.br +0 -0
- codex/static_root/assets/reader-BiKxuxj7.dabe592f46f1.css.gz +0 -0
- codex/static_root/assets/reader-s7jttB_F.f7b43b04961a.js.br +0 -0
- codex/static_root/assets/reader-s7jttB_F.f7b43b04961a.js.gz +0 -0
- codex/static_root/assets/reader-s7jttB_F.js.br +0 -0
- codex/static_root/assets/reader-s7jttB_F.js.gz +0 -0
- codex/static_root/assets/relation-chips-BiVsYCd9.27eca8616ba4.js +0 -1
- codex/static_root/assets/relation-chips-BiVsYCd9.27eca8616ba4.js.br +0 -0
- codex/static_root/assets/relation-chips-BiVsYCd9.27eca8616ba4.js.gz +0 -0
- codex/static_root/assets/relation-chips-BiVsYCd9.js +0 -1
- codex/static_root/assets/relation-chips-BiVsYCd9.js.br +0 -0
- codex/static_root/assets/relation-chips-BiVsYCd9.js.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/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.br +0 -0
- codex/static_root/assets/settings-drawer-BJOfMtqA.css.gz +0 -0
- codex/static_root/assets/settings-drawer-DbJuixzh.352aaaab5925.js.br +0 -0
- codex/static_root/assets/settings-drawer-DbJuixzh.352aaaab5925.js.gz +0 -0
- codex/static_root/assets/settings-drawer-DbJuixzh.js.br +0 -0
- codex/static_root/assets/settings-drawer-DbJuixzh.js.gz +0 -0
- codex/static_root/assets/stats-tab-BhRLh7XB.7be95b5021c3.js.br +0 -0
- codex/static_root/assets/stats-tab-BhRLh7XB.7be95b5021c3.js.gz +0 -0
- codex/static_root/assets/stats-tab-BhRLh7XB.js.br +0 -0
- codex/static_root/assets/stats-tab-BhRLh7XB.js.gz +0 -0
- codex/static_root/assets/task-tab-DLrd54z2.c574111658b9.js +0 -1
- codex/static_root/assets/task-tab-DLrd54z2.c574111658b9.js.br +0 -0
- codex/static_root/assets/task-tab-DLrd54z2.c574111658b9.js.gz +0 -0
- codex/static_root/assets/task-tab-DLrd54z2.js +0 -1
- codex/static_root/assets/task-tab-DLrd54z2.js.br +0 -0
- codex/static_root/assets/task-tab-DLrd54z2.js.gz +0 -0
- codex/static_root/assets/unauthorized-BgXQnNpn.f63b36d526b5.js.br +0 -0
- codex/static_root/assets/unauthorized-BgXQnNpn.f63b36d526b5.js.gz +0 -0
- codex/static_root/assets/unauthorized-BgXQnNpn.js.br +0 -0
- codex/static_root/assets/unauthorized-BgXQnNpn.js.gz +0 -0
- codex/static_root/assets/user-tab-cZoJDlb-.2a497e8b2b24.js.br +0 -0
- codex/static_root/assets/user-tab-cZoJDlb-.2a497e8b2b24.js.gz +0 -0
- codex/static_root/assets/user-tab-cZoJDlb-.js.br +0 -0
- codex/static_root/assets/user-tab-cZoJDlb-.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.3c2f342d5f5a.json +0 -642
- codex/static_root/manifest.3c2f342d5f5a.json.br +0 -0
- codex/static_root/manifest.3c2f342d5f5a.json.gz +0 -0
- {codex-1.6.0a4.dist-info → codex-1.6.0a6.dist-info}/LICENSE +0 -0
- {codex-1.6.0a4.dist-info → codex-1.6.0a6.dist-info}/WHEEL +0 -0
- {codex-1.6.0a4.dist-info → codex-1.6.0a6.dist-info}/entry_points.txt +0 -0
|
Binary file
|
|
Binary file
|
codex/static_root/assets/{reader-s7jttB_F.f7b43b04961a.js → reader-C39uGGxn.67b0f324cd5e.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__fileDeps=["assets/pdf-doc-
|
|
2
|
-
import{l as $e,bo as Oe,bp as Ve,ag as P,N as v,O as b,_ as f,Q as g,R as d,P as p,T as c,L as l,ah as R,ad as k,ai as _,ae as B,aD as w,aA as S,aP as ce,M as T,bq as Ee,br as Ne,ap as W,bs as ue,bt as de,aC as he,bu as ge,bv as Ae,a_ as Fe,aZ as D,bl as ze,aB as E,bg as pe,aK as i,aX as Ue,bw as Me,bx as We,k as q,aj as Y,ak as H,by as He,bz as je,bA as Ge,bB as qe,bC as Ke,aL as Ye,aM as Xe,aG as Ze,m as I,bD as Qe,ao as me,aN as X,bE as Je,bF as et,b6 as tt,af as ot,bG as st,b9 as rt,bH as at,b0 as Z,bc as nt,bI as it}from"./admin-drawer-panel-Dp8KD9D7.js";import{t as lt}from"./index-DUjeNg4x.js";import{C as O,r as Q,B as J,_ as ct,a as ke}from"./main-CuzJev9T.js";import{g as ut,A as F,h as j,i as dt,j as ht,T as gt,M as pt,V as z,c as mt,P as fe,d as kt,e as ft}from"./pagination-toolbar-CLr9RVHd.js";import{d as bt,b as _t,S as Pt,V as vt,a as St}from"./settings-drawer-DbJuixzh.js";import{P as wt,a as be,U as Rt,V as Ct}from"./unauthorized-BgXQnNpn.js";import{b as _e,V as Pe}from"./VWindowItem-DNsRQx9l.js";import{a as Bt}from"./VSelect-B6s-x36h.js";import{V as Tt,a as yt,b as Dt,c as It}from"./VExpansionPanels-DJQYXCn2.js";import{V as L,a as U}from"./VRadioGroup-CgodTThy.js";import{V as M}from"./VCheckbox-CN6Sn_k7.js";const ve={fitTo:"",twoPages:null,readingDirection:"",readRtlInReverse:null};Object.freeze(ve);const Se={cacheBook:!1};Object.freeze(Se);const V=new Set(["",null,void 0]);Object.freeze(V);const we={prev:"next",next:"prev"};Object.freeze(we);const G={rel:"prefetch",as:"image"};Object.freeze(G);const K=new Set(["ttb","btt"]);Object.freeze(K);const Re=new Set(["rtl","btt"]);Object.freeze(Re);const y=1,Ce={S:"Screen",W:"Width",H:"Height",O:"Original"};Object.freeze(Ce);const Lt=()=>Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)>600?"HEIGHT":"WIDTH",ee=e=>{K.has(e.readingDirection)&&e.twoPages&&(e.twoPages=!1)},u=$e("reader",{state:()=>({choices:{fitTo:O.reader.fitTo,readingDirection:O.reader.readingDirection,nullValues:V},readerSettings:{fitTo:Lt(),twoPages:!1,readingDirection:"ltr",readRtlInReverse:!1},books:{current:void 0,prev:!1,next:!1},arcs:[],arc:{},empty:!1,page:void 0,routes:{prev:!1,next:!1,books:{prev:!1,next:!1},close:O.browser.breadcrumbs[0]},bookChange:void 0,reactWithScroll:!1,clientSettings:{cacheBook:!1,scale:y}}),getters:{groupBooks(e){const t=[];return e.books.prev[0]&&t.push[e.books.prev[0]],t.push[e.books.current],e.books.next[0]&&t.push[e.books.next[0]],t},activeSettings(e){return e.getSettings(e.books.current)||{}},activeTitle(e){var n;const t=e.books.current;let o;return t?(((n=e.arcs[0])==null?void 0:n.group)!="f"&&(o=ut(t)),o||(o=t.filename||"")):o="",o},routeParams(e){return{pk:+e.books.current.pk,page:+e.page}},isVertical(e){return K.has(e.activeSettings.readingDirection)},isPDF(e){var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.fileType)=="PDF"},cacheBook(e){return e.clientSettings.cacheBook&&!(this.isPDF&&this.isVertical)},isPagesNotRoutes(e){return e.isVertical||this.cacheBook},isReadInReverse(e){return Re.has(e.activeSettings.readingDirection)},isBTT(e){return e.activeSettings.readingDirection==="btt"},isFirstPage(e){return e.page===0},isLastPage(e){const t=e.books.current?e.books.current.maxPage:0,o=e.activeSettings.twoPages?1:0,n=t-o;return this.page>=n}},actions:{setReadRTLInReverse(e){return this.readerSettings.readRtlInReverse&&e.readingDirection==="rtl"?{...e,readingDirection:"ltr"}:e},getSettings(e){const t={...V};let o=e?e.settings:{};o=this.setReadRTLInReverse(o);const n=[this.readerSettings,o];for(const r of n)for(const[s,a]of Object.entries(r))V.has(a)||(t[s]=a);return ee(t),t},bookChangeLocation(e){let t;return this.isBTT?t=e==="next"?"left":"right":t=e==="next"?"right":"left",t},bookChangeCursorClass(e){let t;return this.isReadInReverse?t=e==="next"?"up":"down":t=e==="next"?"down":"up",t+"Cursor"},bookChangeShow(e){return e==="prev"?this.books.prev&&this.isFirstPage:this.books.next&&this.isLastPage},bookChangeIcon(e){let t=e==="next";return this.isBTT&&(t=!t),t?Oe:Ve},isCoverPage(e,t){return e.readLtr!==!1&&t===0||e.readLtr&&t===e.maxPage},_getRouteParams(e,t,o){const n=o==="prev"?-1:1;let r=1;this.getSettings(e).twoPages&&!this.isCoverPage(e,+t+n)&&(r=2),r=r*n;const a=+t+r;let h=!1;return a>=0&&a<=e.maxPage&&(h={pk:e.pk,page:a}),h},fitToClass(e){const t=this.getSettings(e),o={};let n;if(this.clientSettings.scale>y?n="Orig":n=Ce[t.fitTo],n){let r="fitTo";r+=lt(n),this.isVertical?r+="Vertical":t.twoPages&&(r+="Two"),o[r]=!0}return o},_updateSettings(e,t){t?(this.books.current.settings={...this.books.current.settings,...e},ee(this.books.current.settings)):this.readerSettings={...this.readerSettings,...e}},_getBookRoutePage(e,t){let o=0;if(t&&e.readLtr!==!1||!t&&e.readLtr===!1){const r=this.getSettings(e).twoPages?-1:0;o=e.maxPage+r}return o},_getBookRoute(e,t){if(!e)return!1;const o=this._getBookRoutePage(e,t);return{pk:e.pk,page:o}},_getBookRoutes(e,t){return{prev:this._getBookRoute(e,!0),next:this._getBookRoute(t,!1)}},async setRoutesAndBookmarkPage(e){const t=this.books.current;this.$patch(o=>{o.routes.prev=this._getRouteParams(t,e,"prev"),o.routes.next=this._getRouteParams(t,e,"next")}),await this._setBookmarkPage(e).then(()=>(this.bookChange=void 0,!0))},setActivePage(e,t=!0){if(e<0)return console.warn("Page out of bounds. Redirecting to 0."),this.routeToPage(0);if(e>this.books.current.maxPage)return console.warn(`Page out of bounds. Redirecting to ${this.books.current.maxPage}.`),this.routeToPage(this.books.current.maxPage);if(this.reactWithScroll=!!t,this.page=+e,this.setRoutesAndBookmarkPage(e),this.isPagesNotRoutes){const o={params:{pk:this.books.current.pk,page:e}},{href:n}=Q.resolve(o);window.history.pushState({},void 0,n)}else window.scrollTo(0,0)},async loadReaderSettings(){return F.getReaderSettings().then(e=>{const t=e.data;return this._updateSettings(t,!1),this.empty=!1,!0}).catch(console.error)},async loadBooks(e){await F.getReaderInfo(e).then(t=>{const o=t.data,n=[o.books.prevBook,o.books.current,o.books.nextBook];for(const s of n)s&&!s.settings&&(s.settings={});const r=this._getBookRoutes(o.books.prevBook,o.books.nextBook);return this.$patch(s=>{s.books.current=o.books.current,s.books.prev=o.books.prevBook,s.books.next=o.books.nextBook,s.arcs=o.arcs,s.arc=o.arc,s.routes.prev=this._getRouteParams(s.books.current,e.page,"prev"),s.routes.next=this._getRouteParams(s.books.current,e.page,"next"),s.routes.books=r,s.routes.close=o.closeRoute,s.empty=!1}),!0}).catch(t=>{console.debug(t),this.empty=!0})},async _setBookmarkPage(e){const t={group:"c",ids:[+this.books.current.pk]};e=Math.max(Math.min(this.books.current.maxPage,e),0);const o={page:e};await J.setGroupBookmarks(t,o)},async setSettingsLocal(e){this._updateSettings(e,!0);const t={group:"c",ids:[+this.books.current.pk]};await J.setGroupBookmarks(t,this.books.current.settings)},setSettingsClient(e){this.clientSettings={...this.clientSettings,...e}},async clearSettingsLocal(){await this.setSettingsLocal(ve),this.setSettingsClient(Se)},async setSettingsGlobal(e){this._updateSettings(e,!1),await F.setReaderSettings(this.readerSettings),await this.clearSettingsLocal()},setBookChangeFlag(e){e=this.normalizeDirection(e),this.bookChange=this.routes.books[e]?e:void 0},normalizeDirection(e){return this.isReadInReverse?we[e]:e},_validateRoute(e,t){if(t||(t=this.books.current),!t)return{};const o=t.maxPage??0;return e.page>o?(e.page=o,console.warn("Tried to navigate past the end of the book.")):e.page<0&&(e.page=0,console.warn("Tried to navigate before the beginning of the book.")),e},_routeTo(e,t){if(e=this._validateRoute(e,t),this.isPagesNotRoutes&&+e.pk===this.books.current.pk)this.setActivePage(+e.page,!0);else{const o={name:"reader",params:e};Q.push(o).catch(console.debug)}},routeToDirectionOne(e){e=this.normalizeDirection(e);const t=e==="prev"?-1:1,o=this.page+=t;if(o<0||o>this.books.current.maxPage)return;const n={pk:this.books.current.pk,page:o};this._routeTo(n)},routeToDirection(e){if(e=this.normalizeDirection(e),this.routes[e]){const t=this.routes[e];this._routeTo(t)}else this.routes.books[e]?this.bookChange===e?this._routeTo(this.routes.books[e],this.books[e]):this.setBookChangeFlag(e):console.debug("No route to direction",e)},routeToPage(e){const t={pk:this.books.current.pk,page:e};this._routeTo(t)},routeToBook(e){this._routeTo(this.routes.books[e],this.books[e])},_prefetchSrc(e,t,o=!1,n=!1){if(!e)return!1;const r=o?this.books[t]:this.books.current;if(!r)return!1;let s=e.page;if(n){if(!this.getSettings(r).twoPages)return!1;s+=1}if(s>r.maxPage)return!1;const a={pk:e.pk,page:s,mtime:r.mtime};return j(a)},prefetchLinks(e,t,o=!1){if(!o&&this.cacheBook)return{};const n=[this._prefetchSrc(e,t,o,!1),this._prefetchSrc(e,t,o,!0)],r=[];for(const s of n)s&&r.push({...G,href:s});return{link:r}},prefetchBook(e){if(!this.cacheBook||e.fileType=="PDF")return{};const t=e.pk,o=[];for(let n=0;n<=e.maxPage;n++){const r={pk:t,page:n,mtime:e.mtime},s=j(r);s&&o.push({...G,href:s})}return{link:o}},toRoute(e){return e?{params:e}:{}},linkLabel(e,t){return`${e==="prev"?"Previous":"Next"} ${t}`}}}),xt={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...P(u,["isBTT"]),...v(u,{computedDirection(){return this.normalizeDirection(this.direction)},params(e){return e.routes.books[this.computedDirection]},isDrawerOpen(e){return e.bookChange===this.computedDirection},icon(){return this.bookChangeIcon(this.computedDirection)}}),drawerLocation(){return this.bookChangeLocation(this.direction)},cursorClass(){return this.bookChangeCursorClass(this.computedDirection)},show(){return this.bookChangeShow(this.computedDirection)},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Book")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function $t(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(bt,{key:0,class:B(["bookChangeDrawer",{drawerActivated:e.isDrawerOpen}]),"disable-resize-watcher":"","disable-route-watcher":"",location:s.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:c(()=>[l(a,{class:B({navLink:!0,[s.cursorClass]:!0}),to:s.route,"aria-label":s.label,title:s.label,onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},{default:c(()=>[l(R,{class:"bookChangeIcon"},{default:c(()=>[k(_(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value","class"])):w("",!0)}const Ot=f(xt,[["render",$t],["__scopeId","data-v-03e41a14"]]),Vt={name:"BookChangeActivator",components:{BookChangeDrawer:Ot},props:{direction:{type:String,required:!0}},computed:{computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)},show(){return this.bookChangeShow(this.computedDirection)}},methods:{...b(u,["setBookChangeFlag","normalizeDirection","bookChangeLocation","bookChangeCursorClass","bookChangeShow"])}};function Et(e,t,o,n,r,s){const a=g("BookChangeDrawer");return d(),S(T,null,[s.show?(d(),S("div",{key:0,class:B(["bookChangeColumn",{[s.positionClass]:!0,[s.cursorClass]:!0}]),onClick:t[0]||(t[0]=ce(h=>e.setBookChangeFlag(o.direction),["stop"]))},null,2)):w("",!0),l(a,{direction:o.direction},null,8,["direction"])],64)}const Nt=f(Vt,[["render",Et],["__scopeId","data-v-db3eb561"]]),At={name:"LoadingPage",components:{Placeholder:wt},props:{twoPages:{type:Boolean,required:!0}}};function Ft(e,t,o,n,r,s){const a=g("Placeholder");return d(),S("div",{class:B(["pageLoading",{twoPages:o.twoPages}])},[l(a,{class:"pagePlaceholder"})],2)}const zt=f(At,[["render",Ft],["__scopeId","data-v-04027168"]]),te="unauthorized",Ut={name:"ErrorPage",props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},computed:{text(){return this.type===te?"Protected page":"Failed to load page"},icon(){return this.type===te?Ee:Ne}}};function Mt(e,t,o,n,r,s){return d(),p(be,{class:B(["pageError",{twoPages:o.twoPages}]),headline:s.text,icon:s.icon},null,8,["class","headline","icon"])}const Wt=f(Ut,[["render",Mt],["__scopeId","data-v-417a4cab"]]),Ht={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{...v(u,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.scale==1)return e;const t=this.$el;if(!(t!=null&&t.naturalWidth))return e;const o=t.naturalWidth/2;return e.transformOrigin=`${o}px top`,e.transform=`scale(${this.scale})`,e},classes(){return this.fitToClass(this.book)}},methods:{...b(u,["fitToClass"])}},jt=["src"];function Gt(e,t,o,n,r,s){return d(),S("img",W({class:[s.classes,"img"],draggable:"false",src:o.src,style:s.style},e.$attrs,{onError:t[0]||(t[0]=a=>e.$emit("error",a)),onLoad:t[1]||(t[1]=a=>e.$emit("load",a))}),null,16,jt)}const oe=f(Ht,[["render",Gt],["__scopeId","data-v-559e2ecc"]]),se=ue(de(()=>ct(()=>import("./pdf-doc-BlU5mm5n.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])))),qt=333,Kt={name:"BookPage",components:{ErrorPage:Wt,LoadingPage:zt,PDFDoc:se,ImgPage:oe},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:!1}},computed:{...P(u,["isVertical"]),...v(u,{scale:e=>e.clientSettings.scale}),style(){var o;const e={};if(this.book.fileType==="PDF"||this.scale==1)return e;const t=(o=this.$refs.pageComponent)==null?void 0:o.$el;return t!=null&&t.naturalHeight&&(e.height=t.naturalHeight*this.scale+"px",e.width=t.naturalWidth*this.scale+"px"),e},src(){const e={pk:this.book.pk,page:this.page,mtime:this.book.mtime};return j(e)},component(){return this.book.fileType==="PDF"?se:oe},settings(){return this.getSettings(this.book)}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},qt)},methods:{...b(u,["getSettings"]),onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1}}},Yt=["id","data-page"];function Xt(e,t,o,n,r,s){const a=g("ErrorPage"),h=g("LoadingPage");return d(),S("div",{id:`page${o.page}`,"data-page":o.page,class:"page",style:ge(s.style)},[r.error?(d(),p(a,{key:0,"two-pages":s.settings.twoPages,type:r.error},null,8,["two-pages","type"])):r.showProgress&&!r.loaded?(d(),p(h,{key:1,"two-pages":s.settings.twoPages},null,8,["two-pages"])):(d(),p(he(s.component),{key:2,ref:"pageComponent",book:o.book,page:1,src:s.src,onError:s.onError,onLoad:s.onLoad,onUnauthorized:s.onUnauthorized},null,40,["book","src","onError","onLoad","onUnauthorized"]))],12,Yt)}const Be=f(Kt,[["render",Xt],["__scopeId","data-v-87996fa1"]]),Zt=.5,Qt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:Ae}},computed:{...v(u,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=y},style(){return{cursor:this.scale==y?"zoom-in":"all-scroll"}}},methods:{...b(u,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Zt;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:y})}}};function Jt(e,t,o,n,r,s){const a=Fe("drag-scroller");return D((d(),S("div",{class:"scaleForScroll",style:ge(s.style),onDblclick:t[0]||(t[0]=(...h)=>s.onDoubleClick&&s.onDoubleClick(...h))},[ze(e.$slots,"default",{},void 0,!0),s.showReset?(d(),p(R,{key:0,class:"resetIcon",onClick:ce(s.scaleReset,["stop"])},{default:c(()=>[k(_(r.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):w("",!0)],36)),[[a,,void 0,{onlyX:!0}]])}const Te=f(Qt,[["render",Jt],["__scopeId","data-v-b24267c0"]]),eo={name:"HorizontalPages",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{...P(u,["isCoverPage","isReadInReverse"]),showSecondPage(){return this.getSettings(this.book).twoPages&&this.page<this.book.maxPage&&!this.isCoverPage(this.book,this.page)},showPageOne(){return!this.isReadInReverse||this.showSecondPage},showPageTwo(){return this.isReadInReverse||this.showSecondPage},pageOne(){return this.isReadInReverse?this.page+1:this.page},pageTwo(){return this.isReadInReverse?this.page:this.page+1}},methods:{...b(u,["getSettings"])}};function to(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,{class:"noWrap"},{default:c(()=>[s.showPageOne?(d(),p(a,{key:0,ref:"pageOne",book:o.book,page:s.pageOne,class:"horizontalPage"},null,8,["book","page"])):w("",!0),s.showPageTwo?(d(),p(a,{key:1,book:o.book,page:s.pageTwo,class:"horizontalPage"},null,8,["book","page"])):w("",!0)]),_:1})}const oo=f(eo,[["render",to],["__scopeId","data-v-9a560964"]]),so={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...P(u,["isVertical","isFirstPage","isLastPage"]),...v(u,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){let e="pageChange";return e+=this.isVertical?"Row":"Column",e},directionClass(){let e=this.direction;return this.isVertical&&(e+="Vertical"),e},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function ro(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(a,{key:0,to:s.route,"aria-label":s.label,class:B({[s.pageChangeClass]:!0,[s.directionClass]:!0}),onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},null,8,["to","aria-label","class"])):w("",!0)}const ao=f(so,[["render",ro],["__scopeId","data-v-9ade7d96"]]),no=48,io=48,lo={name:"PagerHorizontal",components:{HorizontalPages:oo,PageChangeLink:ao},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{...P(u,["isReadInReverse"]),...v(u,{prevBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.prev},nextBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.next},storePage:e=>e.page,storePk:e=>e.books.current.pk}),twoPages(){return this.getSettings(this.book).twoPages},windowIndex(){const e=this.activePage-this.pages[0];return Math.min(Math.max(0,e),this.book.maxPage)}},watch:{twoPages(){this.setActivePage(this.storePage,!0)},storePage(e){if(this.book.pk===this.storePk){this.activePage=e;const t=this.pages.at(0),o=this.pages.at(-1);(e<t||e>o)&&this.setPages()}},prevBook(e){this.book.pk===e.pk&&(this.activePage=this.book.maxPage)},nextBook(e){this.book.pk===e.pk&&(this.activePage=0)}},created(){this.book.pk===this.storePk?this.activePage=+this.$route.params.page:this.book.pk===this.prevBook.pk?this.activePage=this.book.maxPage:this.activePage=0,this.setPages()},methods:{...b(u,["getSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-no,0),t=Math.min(this.activePage+io,this.book.maxPage),o=ke.range(e,t+1);this.pages=o}}};function co(e,t,o,n,r,s){const a=g("PageChangeLink"),h=g("HorizontalPages");return d(),p(Pe,{"show-arrows":"",continuous:"","model-value":s.windowIndex,reverse:e.isReadInReverse},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,E(r.pages,m=>(d(),p(_e,{key:`c/${o.book.pk}/${m}`,class:"windowItem",disabled:"",eager:m>=e.storePage-1&&m<=e.storePage+2,"model-value":m,transition:!0},{default:c(()=>[l(h,{book:o.book,page:m},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const re=f(lo,[["render",co],["__scopeId","data-v-e04bbc00"]]);function ye(e,t){const{self:o=!1}=t.modifiers??{},n=t.value,r=typeof n=="object"&&n.options||{passive:!0},s=typeof n=="function"||"handleEvent"in n?n:n.handler,a=o?e:t.arg?document.querySelector(t.arg):window;a&&(a.addEventListener("scroll",s,r),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:s,options:r,target:o?void 0:a})}function De(e,t){var s;if(!((s=e._onScroll)!=null&&s[t.instance.$.uid]))return;const{handler:o,options:n,target:r=e}=e._onScroll[t.instance.$.uid];r.removeEventListener("scroll",o,n),delete e._onScroll[t.instance.$.uid]}function uo(e,t){t.value!==t.oldValue&&(De(e,t),ye(e,t))}const ho={mounted:ye,unmounted:De,updated:uo},go=12,ae=250,po={name:"PagerVertical",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1}},computed:{...v(u,{storePage:e=>e.page}),...pe(u,["reactWithScroll"]),settings(){return this.getSettings(this.book)},readInReverse(){return this.settings.readInReverse},items(){var o;const e=(o=this.book)!=null&&o.maxPage?this.book.maxPage+1:0,t=ke.range(0,e);return this.readInReverse&&t.reverse(),t},visibleItems(){var e;return Math.min(((e=this.book)==null?void 0:e.maxPage)??0,go)}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},ae)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...b(u,["setActivePage","setBookChangeFlag","getSettings"]),onIntersect(e,t){if(e&&this.intersectorOn){const n=+t[0].target.dataset.page;this.setActivePage(n,!1)}},onScroll(){if(this.programmaticScroll)return;this.intersectorOn=!0;const e=this.$refs.verticalScroll.$el,t=e.scrollTop;if(this.storePage===0&&t===0)this.setBookChangeFlag("prev");else if(this.storePage===this.book.maxPage){const o=e.scrollTopMax||e.scrollHeight-e.clientTop;window.innerHeight+t+1>=o&&this.setBookChangeFlag("next")}},scrollToPage(e){this.intersectorOn=!1,this.programmaticScroll=!0;const t=this.$refs.verticalScroll;t?t.scrollToIndex(e):console.debug("Can't find verticalScroll component."),setTimeout(()=>{this.programmaticScroll=!1},ae)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},mo=["data-page"];function ko(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,null,{default:c(()=>[D((d(),p(Bt,{id:"verticalScroll",key:s.readInReverse,ref:"verticalScroll",items:s.items,height:r.innerHeight,width:r.innerWidth},{default:c(({item:m})=>[l(a,{book:o.book,page:m,class:"verticalPage"},null,8,["book","page"]),D(i("div",{class:"pageTracker","data-page":m},null,8,mo),[[Ue,{handler:s.onIntersect,options:{threshold:[.75]}},void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[ho,s.onScroll,"#verticalScroll"]])]),_:1})}const ne=f(po,[["render",ko],["__scopeId","data-v-97638fc3"]]),ie=ue(de(()=>"@/components/reader/pager/pager-full-pdf.vue")),fo={name:"PagerSelector",components:{PagerHorizontal:re,PagerPDF:ie,PagerVertical:ne},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...P(u,["isVertical","cacheBook"]),...v(u,{storePk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0}}),readFullPdf(){return this.book.fileType=="PDF"&&this.cacheBook},component(){return this.readFullPdf?ie:this.isVertical?ne:re}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.book.pk===this.storePk&&this.setActivePage(+this.$route.params.page,!0)},methods:{...b(u,["getSettings","setActivePage","prefetchBook"])}};function bo(e,t,o,n,r,s){return d(),p(he(s.component),{book:o.book},null,8,["book"])}const _o=f(fo,[["render",bo]]),Po={name:"BooksWindow",components:{BookChangeActivator:Nt,Pager:_o},emits:["click"],computed:{...P(u,["isBTT"]),...v(u,{books:e=>[e.books.prev,e.books.current,e.books.next].filter(Boolean),bookChange:e=>e.bookChange,currentBookPk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0},bookRoutes:e=>e.routes.books})},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks(e.params)}},beforeMount(){this.setBookChangeFlag(),this.loadBooks(this.$route.params)},methods:{...b(u,["setBookChangeFlag","loadBooks"]),click(){this.setBookChangeFlag(),this.$emit("click")},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function vo(e,t,o,n,r,s){const a=g("BookChangeActivator"),h=g("Pager");return d(),p(Pe,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:s.click},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,E(e.books,m=>(d(),p(_e,{key:`c/${m.pk}`,class:"windowItem",disabled:"",eager:s.eager(m.pk),value:m.pk,transition:!0},{default:c(()=>[l(h,{book:m,onClick:s.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const So=f(Po,[["render",vo],["__scopeId","data-v-2a90783e"]]),wo={name:"DownloadPanel",data(){return{mdiDownload:Me,mdiFileImage:We}},computed:{...P(u,["activeTitle","routeParams"]),...v(u,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return dt(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return ht({pk:e,page:this.storePage,mtime:t})},pageName(){return`${this.activeTitle} - page ${this.storePage}.jpg`}},methods:{...b(q,["downloadIOSPWAFix"]),downloadPage(){this.downloadIOSPWAFix(this.pageSrc,this.pageName)},downloadBook(){this.downloadIOSPWAFix(this.downloadURL,this.filename)}}},Ro={key:0,id:"downloadPanel"};function Co(e,t,o,n,r,s){return e.currentBook?(d(),S("div",Ro,[l(H,{onClick:s.downloadPage},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiFileImage),1)]),_:1}),k("Download Page "+_(e.storePage),1)]),_:1})]),_:1},8,["onClick"]),l(H,{onClick:s.downloadBook},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiDownload),1)]),_:1}),k("Download Book ")]),_:1})]),_:1},8,["onClick"])])):w("",!0)}const Bo=f(wo,[["render",Co],["__scopeId","data-v-9e01f4cb"]]),To={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:He,mdiMenuRight:je,mdiKeyboardOutline:Ge,mdiKeyboardSpace:qe,mdiAppleKeyboardShift:Ke}},computed:{...P(q,["isMobile"])}},C=e=>(Ye("data-v-a8b4ac47"),e=e(),Xe(),e),yo=C(()=>i("h4",null,"Navigation",-1)),Do={class:"highlight-table"},Io=C(()=>i("td",null,"Previous page",-1)),Lo=C(()=>i("td",null,"Next page",-1)),xo=C(()=>i("tr",null,[i("td",null,","),i("td",null,[k("Next "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),$o=C(()=>i("tr",null,[i("td",null,"."),i("td",null,[k("Previous "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),Oo=C(()=>i("tr",null,[i("td",null,"p"),i("td",null,"Previous Book")],-1)),Vo=C(()=>i("tr",null,[i("td",null,"n"),i("td",null,"Next Book")],-1)),Eo=C(()=>i("tr",null,[i("td",null,"esc"),i("td",null,"Close book")],-1)),No=C(()=>i("h4",null,"Fit Page To",-1)),Ao=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"s"),i("td",null,"screen")]),i("tr",null,[i("td",null,"h"),i("td",null,"screen height")]),i("tr",null,[i("td",null,"w"),i("td",null,"screen width")]),i("tr",null,[i("td",null,"o"),i("td",null,"Show page at original size")]),i("tr",null,[i("td",null,"2"),i("td",null,"Toggle two page view")]),i("tr",null,[i("td",null,"r"),i("td",null,"Read Right to Left")]),i("tr",null,[i("td",null,"l"),i("td",null,"Read Left to Right")]),i("tr",null,[i("td",null,"t"),i("td",null,"Read Top to Bottom")]),i("tr",null,[i("td",null,"b"),i("td",null,"Read in Bottom to Top")])])],-1)),Fo=C(()=>i("h4",null,"Other",-1)),zo=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"m"),i("td",null,"Show comic's metadata")]),i("tr",null,[i("td",null,"double click"),i("td",null,"Zoom page")])])],-1));function Uo(e,t,o,n,r,s){return e.isMobile?w("",!0):(d(),p(It,{key:0},{default:c(()=>[l(Tt,{id:"readerKeyboardShortcuts"},{default:c(()=>[l(yt,{id:"shortcutsTitle"},{default:c(()=>[l(R,{id:"keyboardIcon"},{default:c(()=>[k(_(r.mdiKeyboardOutline),1)]),_:1}),k("Keyboard Shortcuts ")]),_:1}),l(Dt,null,{default:c(()=>[yo,i("table",Do,[i("tbody",null,[i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuLeft),1)]),_:1}),k(", j, "),i("div",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiAppleKeyboardShift),1)]),_:1}),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})])]),Io]),i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuRight),1)]),_:1}),k(", k, "),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})]),Lo]),xo,$o,Oo,Vo,Eo])]),No,Ao,Fo,zo]),_:1})]),_:1})]),_:1}))}const Mo=f(To,[["render",Uo],["__scopeId","data-v-a8b4ac47"]]),Ie=["fitTo","readingDirection","twoPages"];Object.freeze(Ie);const Wo={name:"ReaderSettingsPanel",data(){return{isGlobalScope:!1,mdiOpenInNew:Ze}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["isVertical","isPDF","cacheBook"]),...v(u,{choices:e=>e.choices,validBook:e=>{var t;return!!((t=e.books)!=null&&t.current)},selectedSettings(e){var t,o;return this.isGlobalScope||!((t=e.books)!=null&&t.current)?e.readerSettings:(o=e.books)==null?void 0:o.current.settings},isClearSettingsButtonDisabled(e){var t,o;if(this.isGlobalScope||!((t=e.books)!=null&&t.current))return!0;for(const n of Ie){const r=(o=e.books)==null?void 0:o.current.settings[n];if(!e.choices.nullValues.has(r))return!1}return!0},bookInBrowserURL(e){var t,o;return(t=e.books)!=null&&t.current?Qe((o=e.books)==null?void 0:o.current):""}}),...pe(u,["readRtlInReverse"]),fitToChoices(){return this.choicesWithoutNull("fitTo")},readingDirectionChoices(){return this.choicesWithoutNull("readingDirection")},disableTwoPages(){return this.isVertical||this.isPDF&&this.cacheBook},disableCacheBook(){return this.isVertical&&this.isPDF}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["clearSettingsLocal","setSettingsGlobal","setSettingsLocal","setSettingsClient"]),settingsDialogChanged(e){this.isGlobalScope?this.setSettingsGlobal(e):this.setSettingsLocal(e)},choicesWithoutNull(e){const t=[];for(const o of this.choices[e])o.value&&t.push(o);return Object.freeze(t),t},_keyUpListener(e){if(e.stopPropagation(),this.isAuthDialogOpen)return;let t;switch(e.key){case"w":t={fitTo:"W"};break;case"h":t={fitTo:"H"};break;case"s":t={fitTo:"S"};break;case"o":t={fitTo:"O"};break;case"2":t={twoPages:!this.selectedSettings.twoPages};break;case"l":t={readingDirection:"ltr"};break;case"r":t={readingDirection:"rtl"};break;case"t":t={readingDirection:"ttb"};break;case"b":t={readingDirection:"bbt"};break}t&&this.setSettingsLocal(t)}}},Ho={key:0,id:"readerSettings"},jo=["href"];function Go(e,t,o,n,r,s){return e.validBook?(d(),S("div",Ho,[l(U,{modelValue:r.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=a=>r.isGlobalScope=a),density:"compact",label:"Scope","hide-details":"auto"},{default:c(()=>[l(L,{label:"Only this comic",value:!1}),l(L,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=a=>s.settingsDialogChanged({fitTo:a}))},{default:c(()=>[(d(!0),S(T,null,E(s.fitToChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{disabled:s.disableTwoPages,class:"displayTwoPages",density:"compact",label:"Two pages","hide-details":"auto","model-value":e.selectedSettings.twoPages,"true-value":!0,indeterminate:e.selectedSettings.twoPages===null||e.selectedSettings.twoPages===void 0,"onUpdate:modelValue":t[2]||(t[2]=a=>s.settingsDialogChanged({twoPages:a}))},null,8,["disabled","model-value","indeterminate"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=a=>s.settingsDialogChanged({readingDirection:a}))},{default:c(()=>[(d(!0),S(T,null,E(s.readingDirectionChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{"model-value":e.cacheBook,class:"cacheBook",density:"compact",disabled:s.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=a=>e.setSettingsClient({cacheBook:a}))},null,8,["model-value","disabled"]),e.isPDF?(d(),S("a",{key:0,id:"readPDFInBrowser",href:e.bookInBrowserURL,target:"_blank"},[l(R,null,{default:c(()=>[k(_(r.mdiOpenInNew),1)]),_:1}),k("Read PDF in Browser ")],8,jo)):w("",!0),r.isGlobalScope?(d(),p(M,{key:1,"model-value":e.selectedSettings.readRtlInReverse,class:"readRtlInReverse",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=a=>s.settingsDialogChanged({readRtlInReverse:a}))},null,8,["model-value"])):w("",!0),r.isGlobalScope?w("",!0):(d(),p(me,{key:2,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,title:"Use the default settings for all comics for this comic",onClick:e.clearSettingsLocal},{default:c(()=>[k(" Clear Comic Settings ")]),_:1},8,["disabled","onClick"]))])):w("",!0)}const qo=f(Wo,[["render",Go],["__scopeId","data-v-599636e1"]]),Ko={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:Bo,ReaderKeyboardShortcutsPanel:Mo,ReaderSettingsPanel:qo}};function Yo(e,t,o,n,r,s){const a=g("ReaderSettingsPanel"),h=g("ReaderKeyboardShortcutsPanel"),m=g("DownloadPanel");return d(),S(T,null,[l(a),l(X),l(h),l(X),l(m)],64)}const Xo=f(Ko,[["render",Yo]]),Zo={name:"ReaderSettingsDrawer",components:{SettingsDrawer:_t,ReaderSettingsSuperPanel:Xo}};function Qo(e,t,o,n,r,s){const a=g("ReaderSettingsSuperPanel"),h=g("SettingsDrawer");return d(),p(h,{title:"Reader",temporary:"","disable-resize-watcher":""},{panel:c(()=>[l(a)]),_:1})}const Jo=f(Zo,[["render",Qo]]),le={a:et,f:tt,s:ot},es={a:"Story Arc",f:"Folder",s:"Series"},ts={name:"ReaderArcSelect",components:{ToolbarSelect:gt},computed:{...v(u,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arc:e=>e.arc,arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pks===t.pks)return t.name;return"Unknown"},arcItems:e=>{const t=[];for(const o of e.arcs){const n={value:o,title:o.name,group:o.group,subtitle:es[o.group],prependIcon:le[o.group]};t.push(n)}return t}})},methods:{...b(u,["loadBooks"]),arcIcon(e){return le[e]},checkIcon(e){return e===this.arc?Je:""},onUpdate(e){const t=this.$route.params;if(!t)return;const o={group:e.group,pks:e.pks},n={...t,arc:o};this.loadBooks(n)}}},os={id:"arcPos"};function ss(e,t,o,n,r,s){const a=g("ToolbarSelect");return d(),p(a,{"model-value":e.arc,class:"arcSelect","select-label":"reading order",items:e.arcItems,disabled:!e.arcItems||e.arcItems.length<=1,"onUpdate:modelValue":s.onUpdate},{item:c(({item:h,props:m})=>[l(H,W(m,{density:"compact",variant:"plain","prepend-icon":h.raw.prependIcon,subtitle:h.raw.subtitle,"append-icon":s.checkIcon(m.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:c(({item:h,props:m})=>[l(R,W({size:"large"},m,{class:"arcSelectIcon"}),{default:c(()=>[k(_(s.arcIcon(h.raw.group)),1)]),_:2},1040),i("span",os,_(e.arc.index)+" / "+_(e.arc.count),1)]),_:1},8,["model-value","items","disabled","onUpdate:modelValue"])}const rs=f(ts,[["render",ss],["__scopeId","data-v-42a57aca"]]),as={name:"ReaderTitleToolbar",components:{MetadataDialog:pt,ReaderArcSelect:rs,SettingsDrawerButton:Pt},data(){return{mdiClose:st,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeTitle"]),...v(u,{currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}},closeRoute:e=>e.routes.close,empty:e=>e.empty,subtitle:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.name)||""}}),closeBookRoute(){var t;const e={name:"browser",params:this.closeRoute};return e.params?e.hash=`#card-${(t=this.currentBook)==null?void 0:t.pk}`:e.params=window.CODEX.LAST_ROUTE||O.browser.breadcrumbs[0],e},title(){return this.activeTitle},extensionHeight(){let e=32;return this.subtitle&&(e*=2),e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(q,["setTimestamp"]),...b(u,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.empty||this.openMetadata();break}}}},ns={id:"title"},is={key:0,id:"subtitle"};function ls(e,t,o,n,r,s){const a=g("ReaderArcSelect"),h=g("MetadataDialog"),m=g("SettingsDrawerButton");return d(),p(St,{id:"readerToolbarTop",density:"compact","extension-height":s.extensionHeight},rt({default:c(()=>[l(z,null,{default:c(()=>[l(me,{ref:"closeBook",class:"closeBook",to:s.closeBookRoute,size:"large",density:"compact",variant:"plain",onClick:s.onCloseBook},{default:c(()=>[k(" close book ")]),_:1},8,["to","onClick"])]),_:1}),l(mt),e.empty?w("",!0):(d(),p(z,{key:0},{default:c(()=>[l(a),l(h,{ref:"metadataDialog",group:"c",toolbar:!0,book:e.currentBook},null,8,["book"])]),_:1})),l(z,null,{default:c(()=>[l(m)]),_:1})]),_:2},[s.title?{name:"extension",fn:c(()=>[l(vt,{class:"readerTitle"},{default:c(()=>[i("div",ns,_(s.title),1),e.subtitle?(d(),S("div",is,_(e.subtitle),1)):w("",!0)]),_:1})]),key:"0"}:void 0]),1032,["extension-height"])}const Le=f(as,[["render",ls],["__scopeId","data-v-0217ea46"]]),cs={name:"ReaderEmpty",components:{ReaderTopToolbar:Le},data(){return{mdiBookRemoveOutline:at}}};function us(e,t,o,n,r,s){const a=g("ReaderTopToolbar");return d(),S(T,null,[l(a),l(be,{class:"empty",headline:"Book Not Found",title:"Close the reader and find another book",icon:r.mdiBookRemoveOutline},null,8,["icon"])],64)}const ds=f(cs,[["render",us],["__scopeId","data-v-65d65e48"]]),hs={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:fe},props:{direction:{type:String,required:!0}},computed:{...P(u,["isBTT"]),...v(u,{toRoute(e){var o;const t=(o=e==null?void 0:e.routes)==null?void 0:o.books[this.direction];return t?{params:{...t}}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},classes(){return{bookChangeNavButtonLeft:this.direction==="prev",bookChangeNavButtonRight:this.direction==="next"}}},methods:{...b(u,["bookChangeIcon"])}};function gs(e,t,o,n,r,s){const a=g("PaginationNavButton");return e.toRoute?(d(),p(a,{key:0,class:B(s.classes),icon:"",variant:"plain",title:s.title,to:e.toRoute},{default:c(()=>[l(R,null,{default:c(()=>[k(_(s.icon),1)]),_:1})]),_:1},8,["class","title","to"])):w("",!0)}const ps=f(hs,[["render",gs],["__scopeId","data-v-77bee8ef"]]),ms={name:"ReaderNavButton",components:{PaginationNavButton:fe},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...P(u,["isVertical"]),...v(u,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}},isBookPrev:e=>!!e.routes.books.prev,isBookNext:e=>!!e.routes.books.next}),classes(){return{readerNavButtonLeft:!this.isBookPrev&&this.value===0,readerNavButtonRight:!this.isBookNext&&this.value!=0}},title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...b(u,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function ks(e,t,o,n,r,s){const a=g("PaginationNavButton");return d(),p(a,{key:e.isVertical,disabled:s.disabled,class:B(["readerNavButton",s.classes]),title:s.title,to:e.toRoute,onClick:s.onClick},{default:c(()=>[k(_(o.value),1)]),_:1},8,["disabled","class","title","to","onClick"])}const fs=f(ms,[["render",ks],["__scopeId","data-v-acdb098d"]]),x="prev",$="next",bs={name:"ReaderNavToolbar",components:{PaginationSlider:kt,ReaderNavButton:fs,PaginationToolbar:ft,ReaderBookChangeNavButton:ps},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeSettings","isReadInReverse","isVertical"]),...v(u,{storePage:e=>e.page,key(e){var t,o;return`${(o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk}:${this.step}:${this.isReadInReverse}`},maxPage:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.maxPage)||0}}),twoPages(){return this.activeSettings.twoPages},step(){return this.activeSettings.twoPages?2:1},trackColor(){return this.twoPages&&+this.storePage>=this.maxPage-1?this.$vuetify.theme.current.colors.primary:""},min(){return this.isReadInReverse?this.maxPage:0},max(){return this.isReadInReverse?0:this.maxPage},bookPrev(){return this.isReadInReverse?"next":"prev"},bookNext(){return this.isReadInReverse?"prev":"next"}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection($):e.shiftKey&&window.scrollY===0&&this.routeToDirection(x);break;case"j":case"ArrowRight":this.routeToDirection($);break;case"k":case"ArrowLeft":this.routeToDirection(x);break;case",":this.routeToDirectionOne(x);break;case".":this.routeToDirectionOne($);break;case"n":this.routeToBook($);break;case"p":this.routeToBook(x);break}}}};function _s(e,t,o,n,r,s){const a=g("ReaderBookChangeNavButton"),h=g("ReaderNavButton"),m=g("PaginationSlider"),N=g("PaginationToolbar");return e.maxPage?(d(),p(N,{key:0,id:"readerToolbarNav"},{default:c(()=>[l(a,{direction:s.bookPrev,narrow:!1},null,8,["direction"]),l(h,{value:s.min,"two-pages":s.twoPages},null,8,["value","two-pages"]),(d(),p(m,{key:e.key,"model-value":e.storePage,min:0,max:e.maxPage,step:s.step,"track-color":s.trackColor,reverse:e.isReadInReverse,"onUpdate:modelValue":t[0]||(t[0]=A=>s.onSliderUpdate(A))},null,8,["model-value","max","step","track-color","reverse"])),l(h,{value:s.max,"two-pages":s.twoPages},null,8,["value","two-pages"]),l(a,{direction:s.bookNext,narrow:!1},null,8,["direction"])]),_:1})):w("",!0)}const Ps=f(bs,[["render",_s],["__scopeId","data-v-dab0637e"]]),vs={name:"MainReader",components:{BooksWindow:So,ReaderEmpty:ds,ReaderNavToolbar:Ps,ReaderTopToolbar:Le,ReaderSettingsDrawer:Jo,Unauthorized:Rt},data(){return{showToolbars:!1}},computed:{...P(I,["isAuthorized"]),...v(I,{user:e=>e.user}),...v(u,{empty:e=>e.empty})},watch:{user(){this.loadReaderSettings()},isAuthorized(){this.loadReaderSettings()}},beforeMount(){u().$reset,this.loadReaderSettings()},methods:{...b(u,["loadReaderSettings"]),toggleToolbars(){this.showToolbars=!this.showToolbars}}},Ss={key:0},ws={id:"readerContainer"};function Rs(e,t,o,n,r,s){const a=g("ReaderTopToolbar"),h=g("BooksWindow"),m=g("ReaderNavToolbar"),N=g("ReaderEmpty"),A=g("ReaderSettingsDrawer"),xe=g("Unauthorized");return e.isAuthorized?(d(),p(Ct,{key:0,id:"readerWrapper"},{default:c(()=>[e.empty?(d(),p(N,{key:1})):(d(),S("div",Ss,[i("div",ws,[l(nt,null,{default:c(()=>[D(l(a,null,null,512),[[Z,r.showToolbars]])]),_:1}),l(h,{onClick:s.toggleToolbars},null,8,["onClick"]),l(it,null,{default:c(()=>[D(l(m,null,null,512),[[Z,r.showToolbars]])]),_:1})])])),l(A)]),_:1})):(d(),p(xe,{key:1}))}const Cs=f(vs,[["render",Rs],["__scopeId","data-v-dab9a44d"]]),Ns=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"}));export{Ns as r,u};
|
|
1
|
+
const __vite__fileDeps=["assets/pdf-doc-4PKLN-Z3.js","assets/admin-drawer-panel-C34Ze3-5.js","assets/admin-drawer-panel-BHdNPwzF.css","assets/main-Cavvqkyp.js","assets/main-sK7HC5h4.css","assets/index-DUjeNg4x.js","assets/pagination-toolbar-Dg9tH1Ju.js","assets/VSelect-BnoCfCLY.js","assets/VTextField-Da_Hs7ls.js","assets/VDialog-DiixpkQL.js","assets/VDialog-C5Nxd_zP.css","assets/VSelectionControl-BSL0qeL9.js","assets/VSelectionControl-BFq--28I.css","assets/VTextField-BssVoDhB.css","assets/VCheckboxBtn-m4IbdjEe.js","assets/VSlideGroup-BQtz8h9p.js","assets/VSlideGroup-Dk_1upHt.css","assets/VSelect-MGVSeLgr.css","assets/to-case-kUm8NPpW.js","assets/unauthorized-28bmiwAU.js","assets/change-password-dialog-JYM9aAR9.js","assets/change-password-dialog-HvIvmmIE.css","assets/unauthorized-DHV6Q1n-.css","assets/settings-drawer-CT73ieiV.js","assets/settings-drawer-nZ9HvKSZ.css","assets/pagination-toolbar-ClZui9Zf.css","assets/VWindowItem-CFhKCj49.js","assets/VWindowItem-ByIod57Y.css","assets/VExpansionPanels-Db5mPFue.js","assets/VExpansionPanels-DsEXVcCv.css","assets/VRadioGroup-DULWiMSI.js","assets/VRadioGroup-i2qP9Wu9.css","assets/VCheckbox-BS5fdM4M.js","assets/VCheckbox-CMKdyl0R.css","assets/pdf-doc-CMzaSV_K.css"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
|
|
2
|
+
import{l as $e,bw as Oe,bx as Ne,ag as P,N as v,O as b,_ as f,Q as g,R as d,P as p,T as c,L as l,ah as R,ad as k,ai as _,ae as B,aD as w,aA as S,aS as ce,M as T,by as Ve,bz as Ee,ap as W,bA as ue,bB as de,aC as he,bC as ge,bD as Ae,b1 as Fe,b0 as D,bt as ze,aB as V,bo as pe,aN as i,a_ as Ue,bE as Me,bF as We,k as q,aj as Y,ak as H,bG as He,bH as je,bI as Ge,bJ as qe,bK as Ke,aO as Ye,aP as Xe,aJ as Qe,m as I,bL as Je,ao as me,aQ as X,bM as Ze,bN as et,bf as tt,af as ot,bO as st,bh as rt,bP as at,b3 as Q,bk as nt,bQ as it}from"./admin-drawer-panel-C34Ze3-5.js";import{t as lt}from"./index-DUjeNg4x.js";import{C as O,r as J,B as Z,_ as ct,a as ke}from"./main-Cavvqkyp.js";import{g as ut,A as F,h as j,i as dt,j as ht,T as gt,M as pt,V as z,c as mt,P as fe,d as kt,e as ft}from"./pagination-toolbar-Dg9tH1Ju.js";import{d as bt,b as _t,S as Pt,V as vt,a as St}from"./settings-drawer-CT73ieiV.js";import{P as wt,a as be,U as Rt,V as Ct}from"./unauthorized-28bmiwAU.js";import{b as _e,V as Pe}from"./VWindowItem-CFhKCj49.js";import{b as Bt}from"./VSelect-BnoCfCLY.js";import{V as Tt,a as yt,b as Dt,c as It}from"./VExpansionPanels-Db5mPFue.js";import{V as L,a as U}from"./VRadioGroup-DULWiMSI.js";import{V as M}from"./VCheckbox-BS5fdM4M.js";const ve={fitTo:"",twoPages:null,readingDirection:"",readRtlInReverse:null};Object.freeze(ve);const Se={cacheBook:!1};Object.freeze(Se);const N=new Set(["",null,void 0]);Object.freeze(N);const we={prev:"next",next:"prev"};Object.freeze(we);const G={rel:"prefetch",as:"image"};Object.freeze(G);const K=new Set(["ttb","btt"]);Object.freeze(K);const Re=new Set(["rtl","btt"]);Object.freeze(Re);const y=1,Ce={S:"Screen",W:"Width",H:"Height",O:"Original"};Object.freeze(Ce);const Lt=()=>Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)>600?"HEIGHT":"WIDTH",ee=e=>{K.has(e.readingDirection)&&e.twoPages&&(e.twoPages=!1)},u=$e("reader",{state:()=>({choices:{fitTo:O.reader.fitTo,readingDirection:O.reader.readingDirection,nullValues:N},readerSettings:{fitTo:Lt(),twoPages:!1,readingDirection:"ltr",readRtlInReverse:!1},books:{current:void 0,prev:!1,next:!1},arcs:[],arc:{},empty:!1,page:void 0,routes:{prev:!1,next:!1,books:{prev:!1,next:!1},close:O.browser.breadcrumbs[0]},bookChange:void 0,reactWithScroll:!1,clientSettings:{cacheBook:!1,scale:y}}),getters:{groupBooks(e){const t=[];return e.books.prev[0]&&t.push[e.books.prev[0]],t.push[e.books.current],e.books.next[0]&&t.push[e.books.next[0]],t},activeSettings(e){return e.getSettings(e.books.current)||{}},activeTitle(e){var n;const t=e.books.current;let o;return t?(((n=e.arcs[0])==null?void 0:n.group)!="f"&&(o=ut(t)),o||(o=t.filename||"")):o="",o},routeParams(e){return{pk:+e.books.current.pk,page:+e.page}},isVertical(e){return K.has(e.activeSettings.readingDirection)},isPDF(e){var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.fileType)=="PDF"},cacheBook(e){return e.clientSettings.cacheBook&&!(this.isPDF&&this.isVertical)},isPagesNotRoutes(e){return e.isVertical||this.cacheBook},isReadInReverse(e){return Re.has(e.activeSettings.readingDirection)},isBTT(e){return e.activeSettings.readingDirection==="btt"},isFirstPage(e){return e.page===0},isLastPage(e){const t=e.books.current?e.books.current.maxPage:0,o=e.activeSettings.twoPages?1:0,n=t-o;return this.page>=n}},actions:{setReadRTLInReverse(e){return this.readerSettings.readRtlInReverse&&e.readingDirection==="rtl"?{...e,readingDirection:"ltr"}:e},getSettings(e){const t={...N};let o=e?e.settings:{};o=this.setReadRTLInReverse(o);const n=[this.readerSettings,o];for(const r of n)for(const[s,a]of Object.entries(r))N.has(a)||(t[s]=a);return ee(t),t},bookChangeLocation(e){let t;return this.isBTT?t=e==="next"?"left":"right":t=e==="next"?"right":"left",t},bookChangeCursorClass(e){let t;return this.isReadInReverse?t=e==="next"?"up":"down":t=e==="next"?"down":"up",t+"Cursor"},bookChangeShow(e){return e==="prev"?this.books.prev&&this.isFirstPage:this.books.next&&this.isLastPage},bookChangeIcon(e){let t=e==="next";return this.isBTT&&(t=!t),t?Oe:Ne},isCoverPage(e,t){return e.readLtr!==!1&&t===0||e.readLtr&&t===e.maxPage},_getRouteParams(e,t,o){const n=o==="prev"?-1:1;let r=1;this.getSettings(e).twoPages&&!this.isCoverPage(e,+t+n)&&(r=2),r=r*n;const a=+t+r;let h=!1;return a>=0&&a<=e.maxPage&&(h={pk:e.pk,page:a}),h},fitToClass(e){const t=this.getSettings(e),o={};let n;if(this.clientSettings.scale>y?n="Orig":n=Ce[t.fitTo],n){let r="fitTo";r+=lt(n),this.isVertical?r+="Vertical":t.twoPages&&(r+="Two"),o[r]=!0}return o},_updateSettings(e,t){t?(this.books.current.settings={...this.books.current.settings,...e},ee(this.books.current.settings)):this.readerSettings={...this.readerSettings,...e}},_getBookRoutePage(e,t){let o=0;if(t&&e.readLtr!==!1||!t&&e.readLtr===!1){const r=this.getSettings(e).twoPages?-1:0;o=e.maxPage+r}return o},_getBookRoute(e,t){if(!e)return!1;const o=this._getBookRoutePage(e,t);return{pk:e.pk,page:o}},_getBookRoutes(e,t){return{prev:this._getBookRoute(e,!0),next:this._getBookRoute(t,!1)}},async setRoutesAndBookmarkPage(e){const t=this.books.current;this.$patch(o=>{o.routes.prev=this._getRouteParams(t,e,"prev"),o.routes.next=this._getRouteParams(t,e,"next")}),await this._setBookmarkPage(e).then(()=>(this.bookChange=void 0,!0))},setActivePage(e,t=!0){if(e<0)return console.warn("Page out of bounds. Redirecting to 0."),this.routeToPage(0);if(e>this.books.current.maxPage)return console.warn(`Page out of bounds. Redirecting to ${this.books.current.maxPage}.`),this.routeToPage(this.books.current.maxPage);if(this.reactWithScroll=!!t,this.page=+e,this.setRoutesAndBookmarkPage(e),this.isPagesNotRoutes){const o={params:{pk:this.books.current.pk,page:e}},{href:n}=J.resolve(o);window.history.pushState({},void 0,n)}else window.scrollTo(0,0)},async loadReaderSettings(){return F.getReaderSettings().then(e=>{const t=e.data;return this._updateSettings(t,!1),this.empty=!1,!0}).catch(console.error)},async loadBooks(e){await F.getReaderInfo(e).then(t=>{const o=t.data,n=[o.books.prevBook,o.books.current,o.books.nextBook];for(const s of n)s&&!s.settings&&(s.settings={});const r=this._getBookRoutes(o.books.prevBook,o.books.nextBook);return this.$patch(s=>{s.books.current=o.books.current,s.books.prev=o.books.prevBook,s.books.next=o.books.nextBook,s.arcs=o.arcs,s.arc=o.arc,s.routes.prev=this._getRouteParams(s.books.current,e.page,"prev"),s.routes.next=this._getRouteParams(s.books.current,e.page,"next"),s.routes.books=r,s.routes.close=o.closeRoute,s.empty=!1}),!0}).catch(t=>{console.debug(t),this.empty=!0})},async _setBookmarkPage(e){const t={group:"c",ids:[+this.books.current.pk]};e=Math.max(Math.min(this.books.current.maxPage,e),0);const o={page:e};await Z.setGroupBookmarks(t,o)},async setSettingsLocal(e){this._updateSettings(e,!0);const t={group:"c",ids:[+this.books.current.pk]};await Z.setGroupBookmarks(t,this.books.current.settings)},setSettingsClient(e){this.clientSettings={...this.clientSettings,...e}},async clearSettingsLocal(){await this.setSettingsLocal(ve),this.setSettingsClient(Se)},async setSettingsGlobal(e){this._updateSettings(e,!1),await F.setReaderSettings(this.readerSettings),await this.clearSettingsLocal()},setBookChangeFlag(e){e=this.normalizeDirection(e),this.bookChange=this.routes.books[e]?e:void 0},normalizeDirection(e){return this.isReadInReverse?we[e]:e},_validateRoute(e,t){if(t||(t=this.books.current),!t)return{};const o=t.maxPage??0;return e.page>o?(e.page=o,console.warn("Tried to navigate past the end of the book.")):e.page<0&&(e.page=0,console.warn("Tried to navigate before the beginning of the book.")),e},_routeTo(e,t){if(e=this._validateRoute(e,t),this.isPagesNotRoutes&&+e.pk===this.books.current.pk)this.setActivePage(+e.page,!0);else{const o={name:"reader",params:e};J.push(o).catch(console.debug)}},routeToDirectionOne(e){e=this.normalizeDirection(e);const t=e==="prev"?-1:1,o=this.page+=t;if(o<0||o>this.books.current.maxPage)return;const n={pk:this.books.current.pk,page:o};this._routeTo(n)},routeToDirection(e){if(e=this.normalizeDirection(e),this.routes[e]){const t=this.routes[e];this._routeTo(t)}else this.routes.books[e]?this.bookChange===e?this._routeTo(this.routes.books[e],this.books[e]):this.setBookChangeFlag(e):console.debug("No route to direction",e)},routeToPage(e){const t={pk:this.books.current.pk,page:e};this._routeTo(t)},routeToBook(e){this._routeTo(this.routes.books[e],this.books[e])},_prefetchSrc(e,t,o=!1,n=!1){if(!e)return!1;const r=o?this.books[t]:this.books.current;if(!r)return!1;let s=e.page;if(n){if(!this.getSettings(r).twoPages)return!1;s+=1}if(s>r.maxPage)return!1;const a={pk:e.pk,page:s,mtime:r.mtime};return j(a)},prefetchLinks(e,t,o=!1){if(!o&&this.cacheBook)return{};const n=[this._prefetchSrc(e,t,o,!1),this._prefetchSrc(e,t,o,!0)],r=[];for(const s of n)s&&r.push({...G,href:s});return{link:r}},prefetchBook(e){if(!this.cacheBook||e.fileType=="PDF")return{};const t=e.pk,o=[];for(let n=0;n<=e.maxPage;n++){const r={pk:t,page:n,mtime:e.mtime},s=j(r);s&&o.push({...G,href:s})}return{link:o}},toRoute(e){return e?{params:e}:{}},linkLabel(e,t){return`${e==="prev"?"Previous":"Next"} ${t}`}}}),xt={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...P(u,["isBTT"]),...v(u,{computedDirection(){return this.normalizeDirection(this.direction)},params(e){return e.routes.books[this.computedDirection]},isDrawerOpen(e){return e.bookChange===this.computedDirection},icon(){return this.bookChangeIcon(this.computedDirection)}}),drawerLocation(){return this.bookChangeLocation(this.direction)},cursorClass(){return this.bookChangeCursorClass(this.computedDirection)},show(){return this.bookChangeShow(this.computedDirection)},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Book")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function $t(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(bt,{key:0,class:B(["bookChangeDrawer",{drawerActivated:e.isDrawerOpen}]),"disable-resize-watcher":"","disable-route-watcher":"",location:s.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:c(()=>[l(a,{class:B({navLink:!0,[s.cursorClass]:!0}),to:s.route,"aria-label":s.label,title:s.label,onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},{default:c(()=>[l(R,{class:"bookChangeIcon"},{default:c(()=>[k(_(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value","class"])):w("",!0)}const Ot=f(xt,[["render",$t],["__scopeId","data-v-03e41a14"]]),Nt={name:"BookChangeActivator",components:{BookChangeDrawer:Ot},props:{direction:{type:String,required:!0}},computed:{computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)},show(){return this.bookChangeShow(this.computedDirection)}},methods:{...b(u,["setBookChangeFlag","normalizeDirection","bookChangeLocation","bookChangeCursorClass","bookChangeShow"])}};function Vt(e,t,o,n,r,s){const a=g("BookChangeDrawer");return d(),S(T,null,[s.show?(d(),S("div",{key:0,class:B(["bookChangeColumn",{[s.positionClass]:!0,[s.cursorClass]:!0}]),onClick:t[0]||(t[0]=ce(h=>e.setBookChangeFlag(o.direction),["stop"]))},null,2)):w("",!0),l(a,{direction:o.direction},null,8,["direction"])],64)}const Et=f(Nt,[["render",Vt],["__scopeId","data-v-db3eb561"]]),At={name:"LoadingPage",components:{Placeholder:wt},props:{twoPages:{type:Boolean,required:!0}}};function Ft(e,t,o,n,r,s){const a=g("Placeholder");return d(),S("div",{class:B(["pageLoading",{twoPages:o.twoPages}])},[l(a,{class:"pagePlaceholder"})],2)}const zt=f(At,[["render",Ft],["__scopeId","data-v-04027168"]]),te="unauthorized",Ut={name:"ErrorPage",props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},computed:{text(){return this.type===te?"Protected page":"Failed to load page"},icon(){return this.type===te?Ve:Ee}}};function Mt(e,t,o,n,r,s){return d(),p(be,{class:B(["pageError",{twoPages:o.twoPages}]),headline:s.text,icon:s.icon},null,8,["class","headline","icon"])}const Wt=f(Ut,[["render",Mt],["__scopeId","data-v-417a4cab"]]),Ht={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{...v(u,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.scale==1)return e;const t=this.$el;if(!(t!=null&&t.naturalWidth))return e;const o=t.naturalWidth/2;return e.transformOrigin=`${o}px top`,e.transform=`scale(${this.scale})`,e},classes(){return this.fitToClass(this.book)}},methods:{...b(u,["fitToClass"])}},jt=["src"];function Gt(e,t,o,n,r,s){return d(),S("img",W({class:[s.classes,"img"],draggable:"false",src:o.src,style:s.style},e.$attrs,{onError:t[0]||(t[0]=a=>e.$emit("error",a)),onLoad:t[1]||(t[1]=a=>e.$emit("load",a))}),null,16,jt)}const oe=f(Ht,[["render",Gt],["__scopeId","data-v-559e2ecc"]]),se=ue(de(()=>ct(()=>import("./pdf-doc-4PKLN-Z3.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])))),qt=333,Kt={name:"BookPage",components:{ErrorPage:Wt,LoadingPage:zt,PDFDoc:se,ImgPage:oe},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:!1}},computed:{...P(u,["isVertical"]),...v(u,{scale:e=>e.clientSettings.scale}),style(){var o;const e={};if(this.book.fileType==="PDF"||this.scale==1)return e;const t=(o=this.$refs.pageComponent)==null?void 0:o.$el;return t!=null&&t.naturalHeight&&(e.height=t.naturalHeight*this.scale+"px",e.width=t.naturalWidth*this.scale+"px"),e},src(){const e={pk:this.book.pk,page:this.page,mtime:this.book.mtime};return j(e)},component(){return this.book.fileType==="PDF"?se:oe},settings(){return this.getSettings(this.book)}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},qt)},methods:{...b(u,["getSettings"]),onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1}}},Yt=["id","data-page"];function Xt(e,t,o,n,r,s){const a=g("ErrorPage"),h=g("LoadingPage");return d(),S("div",{id:`page${o.page}`,"data-page":o.page,class:"page",style:ge(s.style)},[r.error?(d(),p(a,{key:0,"two-pages":s.settings.twoPages,type:r.error},null,8,["two-pages","type"])):r.showProgress&&!r.loaded?(d(),p(h,{key:1,"two-pages":s.settings.twoPages},null,8,["two-pages"])):(d(),p(he(s.component),{key:2,ref:"pageComponent",book:o.book,page:1,src:s.src,onError:s.onError,onLoad:s.onLoad,onUnauthorized:s.onUnauthorized},null,40,["book","src","onError","onLoad","onUnauthorized"]))],12,Yt)}const Be=f(Kt,[["render",Xt],["__scopeId","data-v-87996fa1"]]),Qt=.5,Jt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:Ae}},computed:{...v(u,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=y},style(){return{cursor:this.scale==y?"zoom-in":"all-scroll"}}},methods:{...b(u,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Qt;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:y})}}};function Zt(e,t,o,n,r,s){const a=Fe("drag-scroller");return D((d(),S("div",{class:"scaleForScroll",style:ge(s.style),onDblclick:t[0]||(t[0]=(...h)=>s.onDoubleClick&&s.onDoubleClick(...h))},[ze(e.$slots,"default",{},void 0,!0),s.showReset?(d(),p(R,{key:0,class:"resetIcon",onClick:ce(s.scaleReset,["stop"])},{default:c(()=>[k(_(r.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):w("",!0)],36)),[[a,,void 0,{onlyX:!0}]])}const Te=f(Jt,[["render",Zt],["__scopeId","data-v-b24267c0"]]),eo={name:"HorizontalPages",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{...P(u,["isCoverPage","isReadInReverse"]),showSecondPage(){return this.getSettings(this.book).twoPages&&this.page<this.book.maxPage&&!this.isCoverPage(this.book,this.page)},showPageOne(){return!this.isReadInReverse||this.showSecondPage},showPageTwo(){return this.isReadInReverse||this.showSecondPage},pageOne(){return this.isReadInReverse?this.page+1:this.page},pageTwo(){return this.isReadInReverse?this.page:this.page+1}},methods:{...b(u,["getSettings"])}};function to(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,{class:"noWrap"},{default:c(()=>[s.showPageOne?(d(),p(a,{key:0,ref:"pageOne",book:o.book,page:s.pageOne,class:"horizontalPage"},null,8,["book","page"])):w("",!0),s.showPageTwo?(d(),p(a,{key:1,book:o.book,page:s.pageTwo,class:"horizontalPage"},null,8,["book","page"])):w("",!0)]),_:1})}const oo=f(eo,[["render",to],["__scopeId","data-v-9a560964"]]),so={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...P(u,["isVertical","isFirstPage","isLastPage"]),...v(u,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){let e="pageChange";return e+=this.isVertical?"Row":"Column",e},directionClass(){let e=this.direction;return this.isVertical&&(e+="Vertical"),e},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function ro(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(a,{key:0,to:s.route,"aria-label":s.label,class:B({[s.pageChangeClass]:!0,[s.directionClass]:!0}),onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},null,8,["to","aria-label","class"])):w("",!0)}const ao=f(so,[["render",ro],["__scopeId","data-v-9ade7d96"]]),no=48,io=48,lo={name:"PagerHorizontal",components:{HorizontalPages:oo,PageChangeLink:ao},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{...P(u,["isReadInReverse"]),...v(u,{prevBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.prev},nextBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.next},storePage:e=>e.page,storePk:e=>e.books.current.pk}),twoPages(){return this.getSettings(this.book).twoPages},windowIndex(){const e=this.activePage-this.pages[0];return Math.min(Math.max(0,e),this.book.maxPage)}},watch:{twoPages(){this.setActivePage(this.storePage,!0)},storePage(e){if(this.book.pk===this.storePk){this.activePage=e;const t=this.pages.at(0),o=this.pages.at(-1);(e<t||e>o)&&this.setPages()}},prevBook(e){this.book.pk===e.pk&&(this.activePage=this.book.maxPage)},nextBook(e){this.book.pk===e.pk&&(this.activePage=0)}},created(){this.book.pk===this.storePk?this.activePage=+this.$route.params.page:this.book.pk===this.prevBook.pk?this.activePage=this.book.maxPage:this.activePage=0,this.setPages()},methods:{...b(u,["getSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-no,0),t=Math.min(this.activePage+io,this.book.maxPage),o=ke.range(e,t+1);this.pages=o}}};function co(e,t,o,n,r,s){const a=g("PageChangeLink"),h=g("HorizontalPages");return d(),p(Pe,{"show-arrows":"",continuous:"","model-value":s.windowIndex,reverse:e.isReadInReverse},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,V(r.pages,m=>(d(),p(_e,{key:`c/${o.book.pk}/${m}`,class:"windowItem",disabled:"",eager:m>=e.storePage-1&&m<=e.storePage+2,"model-value":m,transition:!0},{default:c(()=>[l(h,{book:o.book,page:m},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const re=f(lo,[["render",co],["__scopeId","data-v-e04bbc00"]]);function ye(e,t){const{self:o=!1}=t.modifiers??{},n=t.value,r=typeof n=="object"&&n.options||{passive:!0},s=typeof n=="function"||"handleEvent"in n?n:n.handler,a=o?e:t.arg?document.querySelector(t.arg):window;a&&(a.addEventListener("scroll",s,r),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:s,options:r,target:o?void 0:a})}function De(e,t){var s;if(!((s=e._onScroll)!=null&&s[t.instance.$.uid]))return;const{handler:o,options:n,target:r=e}=e._onScroll[t.instance.$.uid];r.removeEventListener("scroll",o,n),delete e._onScroll[t.instance.$.uid]}function uo(e,t){t.value!==t.oldValue&&(De(e,t),ye(e,t))}const ho={mounted:ye,unmounted:De,updated:uo},go=12,ae=250,po={name:"PagerVertical",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1}},computed:{...v(u,{storePage:e=>e.page}),...pe(u,["reactWithScroll"]),settings(){return this.getSettings(this.book)},readInReverse(){return this.settings.readInReverse},items(){var o;const e=(o=this.book)!=null&&o.maxPage?this.book.maxPage+1:0,t=ke.range(0,e);return this.readInReverse&&t.reverse(),t},visibleItems(){var e;return Math.min(((e=this.book)==null?void 0:e.maxPage)??0,go)}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},ae)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...b(u,["setActivePage","setBookChangeFlag","getSettings"]),onIntersect(e,t){if(e&&this.intersectorOn){const n=+t[0].target.dataset.page;this.setActivePage(n,!1)}},onScroll(){if(this.programmaticScroll)return;this.intersectorOn=!0;const e=this.$refs.verticalScroll.$el,t=e.scrollTop;if(this.storePage===0&&t===0)this.setBookChangeFlag("prev");else if(this.storePage===this.book.maxPage){const o=e.scrollTopMax||e.scrollHeight-e.clientTop;window.innerHeight+t+1>=o&&this.setBookChangeFlag("next")}},scrollToPage(e){this.intersectorOn=!1,this.programmaticScroll=!0;const t=this.$refs.verticalScroll;t?t.scrollToIndex(e):console.debug("Can't find verticalScroll component."),setTimeout(()=>{this.programmaticScroll=!1},ae)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},mo=["data-page"];function ko(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,null,{default:c(()=>[D((d(),p(Bt,{id:"verticalScroll",key:s.readInReverse,ref:"verticalScroll",items:s.items,height:r.innerHeight,width:r.innerWidth},{default:c(({item:m})=>[l(a,{book:o.book,page:m,class:"verticalPage"},null,8,["book","page"]),D(i("div",{class:"pageTracker","data-page":m},null,8,mo),[[Ue,{handler:s.onIntersect,options:{threshold:[.75]}},void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[ho,s.onScroll,"#verticalScroll"]])]),_:1})}const ne=f(po,[["render",ko],["__scopeId","data-v-97638fc3"]]),ie=ue(de(()=>"@/components/reader/pager/pager-full-pdf.vue")),fo={name:"PagerSelector",components:{PagerHorizontal:re,PagerPDF:ie,PagerVertical:ne},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...P(u,["isVertical","cacheBook"]),...v(u,{storePk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0}}),readFullPdf(){return this.book.fileType=="PDF"&&this.cacheBook},component(){return this.readFullPdf?ie:this.isVertical?ne:re}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.book.pk===this.storePk&&this.setActivePage(+this.$route.params.page,!0)},methods:{...b(u,["getSettings","setActivePage","prefetchBook"])}};function bo(e,t,o,n,r,s){return d(),p(he(s.component),{book:o.book},null,8,["book"])}const _o=f(fo,[["render",bo]]),Po={name:"BooksWindow",components:{BookChangeActivator:Et,Pager:_o},emits:["click"],computed:{...P(u,["isBTT"]),...v(u,{books:e=>[e.books.prev,e.books.current,e.books.next].filter(Boolean),bookChange:e=>e.bookChange,currentBookPk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0},bookRoutes:e=>e.routes.books})},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks(e.params)}},beforeMount(){this.setBookChangeFlag(),this.loadBooks(this.$route.params)},methods:{...b(u,["setBookChangeFlag","loadBooks"]),click(){this.setBookChangeFlag(),this.$emit("click")},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function vo(e,t,o,n,r,s){const a=g("BookChangeActivator"),h=g("Pager");return d(),p(Pe,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:s.click},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,V(e.books,m=>(d(),p(_e,{key:`c/${m.pk}`,class:"windowItem",disabled:"",eager:s.eager(m.pk),value:m.pk,transition:!0},{default:c(()=>[l(h,{book:m,onClick:s.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const So=f(Po,[["render",vo],["__scopeId","data-v-2a90783e"]]),wo={name:"DownloadPanel",data(){return{mdiDownload:Me,mdiFileImage:We}},computed:{...P(u,["activeTitle","routeParams"]),...v(u,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return dt(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return ht({pk:e,page:this.storePage,mtime:t})},pageName(){return`${this.activeTitle} - page ${this.storePage}.jpg`}},methods:{...b(q,["downloadIOSPWAFix"]),downloadPage(){this.downloadIOSPWAFix(this.pageSrc,this.pageName)},downloadBook(){this.downloadIOSPWAFix(this.downloadURL,this.filename)}}},Ro={key:0,id:"downloadPanel"};function Co(e,t,o,n,r,s){return e.currentBook?(d(),S("div",Ro,[l(H,{onClick:s.downloadPage},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiFileImage),1)]),_:1}),k("Download Page "+_(e.storePage),1)]),_:1})]),_:1},8,["onClick"]),l(H,{onClick:s.downloadBook},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiDownload),1)]),_:1}),k("Download Book ")]),_:1})]),_:1},8,["onClick"])])):w("",!0)}const Bo=f(wo,[["render",Co],["__scopeId","data-v-9e01f4cb"]]),To={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:He,mdiMenuRight:je,mdiKeyboardOutline:Ge,mdiKeyboardSpace:qe,mdiAppleKeyboardShift:Ke}},computed:{...P(q,["isMobile"])}},C=e=>(Ye("data-v-a8b4ac47"),e=e(),Xe(),e),yo=C(()=>i("h4",null,"Navigation",-1)),Do={class:"highlight-table"},Io=C(()=>i("td",null,"Previous page",-1)),Lo=C(()=>i("td",null,"Next page",-1)),xo=C(()=>i("tr",null,[i("td",null,","),i("td",null,[k("Next "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),$o=C(()=>i("tr",null,[i("td",null,"."),i("td",null,[k("Previous "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),Oo=C(()=>i("tr",null,[i("td",null,"p"),i("td",null,"Previous Book")],-1)),No=C(()=>i("tr",null,[i("td",null,"n"),i("td",null,"Next Book")],-1)),Vo=C(()=>i("tr",null,[i("td",null,"esc"),i("td",null,"Close book")],-1)),Eo=C(()=>i("h4",null,"Fit Page To",-1)),Ao=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"s"),i("td",null,"screen")]),i("tr",null,[i("td",null,"h"),i("td",null,"screen height")]),i("tr",null,[i("td",null,"w"),i("td",null,"screen width")]),i("tr",null,[i("td",null,"o"),i("td",null,"Show page at original size")]),i("tr",null,[i("td",null,"2"),i("td",null,"Toggle two page view")]),i("tr",null,[i("td",null,"r"),i("td",null,"Read Right to Left")]),i("tr",null,[i("td",null,"l"),i("td",null,"Read Left to Right")]),i("tr",null,[i("td",null,"t"),i("td",null,"Read Top to Bottom")]),i("tr",null,[i("td",null,"b"),i("td",null,"Read in Bottom to Top")])])],-1)),Fo=C(()=>i("h4",null,"Other",-1)),zo=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"m"),i("td",null,"Show comic's metadata")]),i("tr",null,[i("td",null,"double click"),i("td",null,"Zoom page")])])],-1));function Uo(e,t,o,n,r,s){return e.isMobile?w("",!0):(d(),p(It,{key:0},{default:c(()=>[l(Tt,{id:"readerKeyboardShortcuts"},{default:c(()=>[l(yt,{id:"shortcutsTitle"},{default:c(()=>[l(R,{id:"keyboardIcon"},{default:c(()=>[k(_(r.mdiKeyboardOutline),1)]),_:1}),k("Keyboard Shortcuts ")]),_:1}),l(Dt,null,{default:c(()=>[yo,i("table",Do,[i("tbody",null,[i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuLeft),1)]),_:1}),k(", j, "),i("div",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiAppleKeyboardShift),1)]),_:1}),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})])]),Io]),i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuRight),1)]),_:1}),k(", k, "),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})]),Lo]),xo,$o,Oo,No,Vo])]),Eo,Ao,Fo,zo]),_:1})]),_:1})]),_:1}))}const Mo=f(To,[["render",Uo],["__scopeId","data-v-a8b4ac47"]]),Ie=["fitTo","readingDirection","twoPages"];Object.freeze(Ie);const Wo={name:"ReaderSettingsPanel",data(){return{isGlobalScope:!1,mdiOpenInNew:Qe}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["isVertical","isPDF","cacheBook"]),...v(u,{choices:e=>e.choices,validBook:e=>{var t;return!!((t=e.books)!=null&&t.current)},selectedSettings(e){var t,o;return this.isGlobalScope||!((t=e.books)!=null&&t.current)?e.readerSettings:(o=e.books)==null?void 0:o.current.settings},isClearSettingsButtonDisabled(e){var t,o;if(this.isGlobalScope||!((t=e.books)!=null&&t.current))return!0;for(const n of Ie){const r=(o=e.books)==null?void 0:o.current.settings[n];if(!e.choices.nullValues.has(r))return!1}return!0},bookInBrowserURL(e){var t,o;return(t=e.books)!=null&&t.current?Je((o=e.books)==null?void 0:o.current):""}}),...pe(u,["readRtlInReverse"]),fitToChoices(){return this.choicesWithoutNull("fitTo")},readingDirectionChoices(){return this.choicesWithoutNull("readingDirection")},disableTwoPages(){return this.isVertical||this.isPDF&&this.cacheBook},disableCacheBook(){return this.isVertical&&this.isPDF}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["clearSettingsLocal","setSettingsGlobal","setSettingsLocal","setSettingsClient"]),settingsDialogChanged(e){this.isGlobalScope?this.setSettingsGlobal(e):this.setSettingsLocal(e)},choicesWithoutNull(e){const t=[];for(const o of this.choices[e])o.value&&t.push(o);return Object.freeze(t),t},_keyUpListener(e){if(e.stopPropagation(),this.isAuthDialogOpen)return;let t;switch(e.key){case"w":t={fitTo:"W"};break;case"h":t={fitTo:"H"};break;case"s":t={fitTo:"S"};break;case"o":t={fitTo:"O"};break;case"2":t={twoPages:!this.selectedSettings.twoPages};break;case"l":t={readingDirection:"ltr"};break;case"r":t={readingDirection:"rtl"};break;case"t":t={readingDirection:"ttb"};break;case"b":t={readingDirection:"bbt"};break}t&&this.setSettingsLocal(t)}}},Ho={key:0,id:"readerSettings"},jo=["href"];function Go(e,t,o,n,r,s){return e.validBook?(d(),S("div",Ho,[l(U,{modelValue:r.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=a=>r.isGlobalScope=a),density:"compact",label:"Scope","hide-details":"auto"},{default:c(()=>[l(L,{label:"Only this comic",value:!1}),l(L,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=a=>s.settingsDialogChanged({fitTo:a}))},{default:c(()=>[(d(!0),S(T,null,V(s.fitToChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{disabled:s.disableTwoPages,class:"displayTwoPages",density:"compact",label:"Two pages","hide-details":"auto","model-value":e.selectedSettings.twoPages,"true-value":!0,indeterminate:e.selectedSettings.twoPages===null||e.selectedSettings.twoPages===void 0,"onUpdate:modelValue":t[2]||(t[2]=a=>s.settingsDialogChanged({twoPages:a}))},null,8,["disabled","model-value","indeterminate"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=a=>s.settingsDialogChanged({readingDirection:a}))},{default:c(()=>[(d(!0),S(T,null,V(s.readingDirectionChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{"model-value":e.cacheBook,class:"cacheBook",density:"compact",disabled:s.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=a=>e.setSettingsClient({cacheBook:a}))},null,8,["model-value","disabled"]),e.isPDF?(d(),S("a",{key:0,id:"readPDFInBrowser",href:e.bookInBrowserURL,target:"_blank"},[l(R,null,{default:c(()=>[k(_(r.mdiOpenInNew),1)]),_:1}),k("Read PDF in Browser ")],8,jo)):w("",!0),r.isGlobalScope?(d(),p(M,{key:1,"model-value":e.selectedSettings.readRtlInReverse,class:"readRtlInReverse",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=a=>s.settingsDialogChanged({readRtlInReverse:a}))},null,8,["model-value"])):w("",!0),r.isGlobalScope?w("",!0):(d(),p(me,{key:2,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,title:"Use the default settings for all comics for this comic",onClick:e.clearSettingsLocal},{default:c(()=>[k(" Clear Comic Settings ")]),_:1},8,["disabled","onClick"]))])):w("",!0)}const qo=f(Wo,[["render",Go],["__scopeId","data-v-599636e1"]]),Ko={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:Bo,ReaderKeyboardShortcutsPanel:Mo,ReaderSettingsPanel:qo}};function Yo(e,t,o,n,r,s){const a=g("ReaderSettingsPanel"),h=g("ReaderKeyboardShortcutsPanel"),m=g("DownloadPanel");return d(),S(T,null,[l(a),l(X),l(h),l(X),l(m)],64)}const Xo=f(Ko,[["render",Yo]]),Qo={name:"ReaderSettingsDrawer",components:{SettingsDrawer:_t,ReaderSettingsSuperPanel:Xo}};function Jo(e,t,o,n,r,s){const a=g("ReaderSettingsSuperPanel"),h=g("SettingsDrawer");return d(),p(h,{title:"Reader",temporary:"","disable-resize-watcher":""},{panel:c(()=>[l(a)]),_:1})}const Zo=f(Qo,[["render",Jo]]),le={a:et,f:tt,s:ot},es={a:"Story Arc",f:"Folder",s:"Series"},ts={name:"ReaderArcSelect",components:{ToolbarSelect:gt},computed:{...v(u,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arc:e=>e.arc,arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pks===t.pks)return t.name;return"Unknown"},arcItems:e=>{const t=[];for(const o of e.arcs){const n={value:o,title:o.name,group:o.group,subtitle:es[o.group],prependIcon:le[o.group]};t.push(n)}return t}})},methods:{...b(u,["loadBooks"]),arcIcon(e){return le[e]},checkIcon(e){return e===this.arc?Ze:""},onUpdate(e){const t=this.$route.params;if(!t)return;const o={group:e.group,pks:e.pks},n={...t,arc:o};this.loadBooks(n)}}},os={id:"arcPos"};function ss(e,t,o,n,r,s){const a=g("ToolbarSelect");return d(),p(a,{"model-value":e.arc,class:"arcSelect","select-label":"reading order",items:e.arcItems,disabled:!e.arcItems||e.arcItems.length<=1,"onUpdate:modelValue":s.onUpdate},{item:c(({item:h,props:m})=>[l(H,W(m,{density:"compact",variant:"plain","prepend-icon":h.raw.prependIcon,subtitle:h.raw.subtitle,"append-icon":s.checkIcon(m.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:c(({item:h,props:m})=>[l(R,W({size:"large"},m,{class:"arcSelectIcon"}),{default:c(()=>[k(_(s.arcIcon(h.raw.group)),1)]),_:2},1040),i("span",os,_(e.arc.index)+" / "+_(e.arc.count),1)]),_:1},8,["model-value","items","disabled","onUpdate:modelValue"])}const rs=f(ts,[["render",ss],["__scopeId","data-v-42a57aca"]]),as={name:"ReaderTitleToolbar",components:{MetadataDialog:pt,ReaderArcSelect:rs,SettingsDrawerButton:Pt},data(){return{mdiClose:st,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeTitle"]),...v(u,{currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}},closeRoute:e=>e.routes.close,empty:e=>e.empty,subtitle:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.name)||""}}),closeBookRoute(){var t;const e={name:"browser",params:this.closeRoute};return e.params?e.hash=`#card-${(t=this.currentBook)==null?void 0:t.pk}`:e.params=window.CODEX.LAST_ROUTE||O.browser.breadcrumbs[0],e},title(){return this.activeTitle},extensionHeight(){let e=32;return this.subtitle&&(e*=2),e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(q,["setTimestamp"]),...b(u,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.empty||this.openMetadata();break}}}},ns={id:"title"},is={key:0,id:"subtitle"};function ls(e,t,o,n,r,s){const a=g("ReaderArcSelect"),h=g("MetadataDialog"),m=g("SettingsDrawerButton");return d(),p(St,{id:"readerToolbarTop",density:"compact","extension-height":s.extensionHeight},rt({default:c(()=>[l(z,null,{default:c(()=>[l(me,{ref:"closeBook",class:"closeBook",to:s.closeBookRoute,size:"large",density:"compact",variant:"plain",onClick:s.onCloseBook},{default:c(()=>[k(" close book ")]),_:1},8,["to","onClick"])]),_:1}),l(mt),e.empty?w("",!0):(d(),p(z,{key:0},{default:c(()=>[l(a),l(h,{ref:"metadataDialog",group:"c",toolbar:!0,book:e.currentBook},null,8,["book"])]),_:1})),l(z,null,{default:c(()=>[l(m)]),_:1})]),_:2},[s.title?{name:"extension",fn:c(()=>[l(vt,{class:"readerTitle"},{default:c(()=>[i("div",ns,_(s.title),1),e.subtitle?(d(),S("div",is,_(e.subtitle),1)):w("",!0)]),_:1})]),key:"0"}:void 0]),1032,["extension-height"])}const Le=f(as,[["render",ls],["__scopeId","data-v-0217ea46"]]),cs={name:"ReaderEmpty",components:{ReaderTopToolbar:Le},data(){return{mdiBookRemoveOutline:at}}};function us(e,t,o,n,r,s){const a=g("ReaderTopToolbar");return d(),S(T,null,[l(a),l(be,{class:"empty",headline:"Book Not Found",title:"Close the reader and find another book",icon:r.mdiBookRemoveOutline},null,8,["icon"])],64)}const ds=f(cs,[["render",us],["__scopeId","data-v-65d65e48"]]),hs={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:fe},props:{direction:{type:String,required:!0}},computed:{...P(u,["isBTT"]),...v(u,{toRoute(e){var o;const t=(o=e==null?void 0:e.routes)==null?void 0:o.books[this.direction];return t?{params:{...t}}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},classes(){return{bookChangeNavButtonLeft:this.direction==="prev",bookChangeNavButtonRight:this.direction==="next"}}},methods:{...b(u,["bookChangeIcon"])}};function gs(e,t,o,n,r,s){const a=g("PaginationNavButton");return e.toRoute?(d(),p(a,{key:0,class:B(s.classes),icon:"",variant:"plain",title:s.title,to:e.toRoute},{default:c(()=>[l(R,null,{default:c(()=>[k(_(s.icon),1)]),_:1})]),_:1},8,["class","title","to"])):w("",!0)}const ps=f(hs,[["render",gs],["__scopeId","data-v-117f651c"]]),ms={name:"ReaderNavButton",components:{PaginationNavButton:fe},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...P(u,["isVertical"]),...v(u,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}},isBookPrev:e=>!!e.routes.books.prev,isBookNext:e=>!!e.routes.books.next}),classes(){return{readerNavButtonLeft:!this.isBookPrev&&this.value===0,readerNavButtonRight:!this.isBookNext&&this.value!=0}},title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...b(u,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function ks(e,t,o,n,r,s){const a=g("PaginationNavButton");return d(),p(a,{key:e.isVertical,disabled:s.disabled,class:B(["readerNavButton",s.classes]),title:s.title,to:e.toRoute,onClick:s.onClick},{default:c(()=>[k(_(o.value),1)]),_:1},8,["disabled","class","title","to","onClick"])}const fs=f(ms,[["render",ks],["__scopeId","data-v-530fba8c"]]),x="prev",$="next",bs={name:"ReaderNavToolbar",components:{PaginationSlider:kt,ReaderNavButton:fs,PaginationToolbar:ft,ReaderBookChangeNavButton:ps},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeSettings","isReadInReverse","isVertical"]),...v(u,{storePage:e=>e.page,key(e){var t,o;return`${(o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk}:${this.step}:${this.isReadInReverse}`},maxPage:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.maxPage)||0}}),twoPages(){return this.activeSettings.twoPages},step(){return this.activeSettings.twoPages?2:1},trackColor(){return this.twoPages&&+this.storePage>=this.maxPage-1?this.$vuetify.theme.current.colors.primary:""},min(){return this.isReadInReverse?this.maxPage:0},max(){return this.isReadInReverse?0:this.maxPage},bookPrev(){return this.isReadInReverse?"next":"prev"},bookNext(){return this.isReadInReverse?"prev":"next"}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection($):e.shiftKey&&window.scrollY===0&&this.routeToDirection(x);break;case"j":case"ArrowRight":this.routeToDirection($);break;case"k":case"ArrowLeft":this.routeToDirection(x);break;case",":this.routeToDirectionOne(x);break;case".":this.routeToDirectionOne($);break;case"n":this.routeToBook($);break;case"p":this.routeToBook(x);break}}}};function _s(e,t,o,n,r,s){const a=g("ReaderBookChangeNavButton"),h=g("ReaderNavButton"),m=g("PaginationSlider"),E=g("PaginationToolbar");return e.maxPage?(d(),p(E,{key:0,id:"readerToolbarNav"},{default:c(()=>[l(a,{direction:s.bookPrev,narrow:!1},null,8,["direction"]),l(h,{value:s.min,"two-pages":s.twoPages},null,8,["value","two-pages"]),(d(),p(m,{key:e.key,"model-value":e.storePage,min:0,max:e.maxPage,step:s.step,"track-color":s.trackColor,reverse:e.isReadInReverse,"onUpdate:modelValue":t[0]||(t[0]=A=>s.onSliderUpdate(A))},null,8,["model-value","max","step","track-color","reverse"])),l(h,{value:s.max,"two-pages":s.twoPages},null,8,["value","two-pages"]),l(a,{direction:s.bookNext,narrow:!1},null,8,["direction"])]),_:1})):w("",!0)}const Ps=f(bs,[["render",_s],["__scopeId","data-v-dab0637e"]]),vs={name:"MainReader",components:{BooksWindow:So,ReaderEmpty:ds,ReaderNavToolbar:Ps,ReaderTopToolbar:Le,ReaderSettingsDrawer:Zo,Unauthorized:Rt},data(){return{showToolbars:!1}},computed:{...P(I,["isAuthorized"]),...v(I,{user:e=>e.user}),...v(u,{empty:e=>e.empty})},watch:{user(){this.loadReaderSettings()},isAuthorized(){this.loadReaderSettings()}},beforeMount(){u().$reset,this.loadReaderSettings()},methods:{...b(u,["loadReaderSettings"]),toggleToolbars(){this.showToolbars=!this.showToolbars}}},Ss={key:0},ws={id:"readerContainer"};function Rs(e,t,o,n,r,s){const a=g("ReaderTopToolbar"),h=g("BooksWindow"),m=g("ReaderNavToolbar"),E=g("ReaderEmpty"),A=g("ReaderSettingsDrawer"),xe=g("Unauthorized");return e.isAuthorized?(d(),p(Ct,{key:0,id:"readerWrapper"},{default:c(()=>[e.empty?(d(),p(E,{key:1})):(d(),S("div",Ss,[i("div",ws,[l(nt,null,{default:c(()=>[D(l(a,null,null,512),[[Q,r.showToolbars]])]),_:1}),l(h,{onClick:s.toggleToolbars},null,8,["onClick"]),l(it,null,{default:c(()=>[D(l(m,null,null,512),[[Q,r.showToolbars]])]),_:1})])])),l(A)]),_:1})):(d(),p(xe,{key:1}))}const Cs=f(vs,[["render",Rs],["__scopeId","data-v-dab9a44d"]]),Es=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"}));export{Es as r,u};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__fileDeps=["assets/pdf-doc-
|
|
2
|
-
import{l as $e,bo as Oe,bp as Ve,ag as P,N as v,O as b,_ as f,Q as g,R as d,P as p,T as c,L as l,ah as R,ad as k,ai as _,ae as B,aD as w,aA as S,aP as ce,M as T,bq as Ee,br as Ne,ap as W,bs as ue,bt as de,aC as he,bu as ge,bv as Ae,a_ as Fe,aZ as D,bl as ze,aB as E,bg as pe,aK as i,aX as Ue,bw as Me,bx as We,k as q,aj as Y,ak as H,by as He,bz as je,bA as Ge,bB as qe,bC as Ke,aL as Ye,aM as Xe,aG as Ze,m as I,bD as Qe,ao as me,aN as X,bE as Je,bF as et,b6 as tt,af as ot,bG as st,b9 as rt,bH as at,b0 as Z,bc as nt,bI as it}from"./admin-drawer-panel-Dp8KD9D7.js";import{t as lt}from"./index-DUjeNg4x.js";import{C as O,r as Q,B as J,_ as ct,a as ke}from"./main-CuzJev9T.js";import{g as ut,A as F,h as j,i as dt,j as ht,T as gt,M as pt,V as z,c as mt,P as fe,d as kt,e as ft}from"./pagination-toolbar-CLr9RVHd.js";import{d as bt,b as _t,S as Pt,V as vt,a as St}from"./settings-drawer-DbJuixzh.js";import{P as wt,a as be,U as Rt,V as Ct}from"./unauthorized-BgXQnNpn.js";import{b as _e,V as Pe}from"./VWindowItem-DNsRQx9l.js";import{a as Bt}from"./VSelect-B6s-x36h.js";import{V as Tt,a as yt,b as Dt,c as It}from"./VExpansionPanels-DJQYXCn2.js";import{V as L,a as U}from"./VRadioGroup-CgodTThy.js";import{V as M}from"./VCheckbox-CN6Sn_k7.js";const ve={fitTo:"",twoPages:null,readingDirection:"",readRtlInReverse:null};Object.freeze(ve);const Se={cacheBook:!1};Object.freeze(Se);const V=new Set(["",null,void 0]);Object.freeze(V);const we={prev:"next",next:"prev"};Object.freeze(we);const G={rel:"prefetch",as:"image"};Object.freeze(G);const K=new Set(["ttb","btt"]);Object.freeze(K);const Re=new Set(["rtl","btt"]);Object.freeze(Re);const y=1,Ce={S:"Screen",W:"Width",H:"Height",O:"Original"};Object.freeze(Ce);const Lt=()=>Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)>600?"HEIGHT":"WIDTH",ee=e=>{K.has(e.readingDirection)&&e.twoPages&&(e.twoPages=!1)},u=$e("reader",{state:()=>({choices:{fitTo:O.reader.fitTo,readingDirection:O.reader.readingDirection,nullValues:V},readerSettings:{fitTo:Lt(),twoPages:!1,readingDirection:"ltr",readRtlInReverse:!1},books:{current:void 0,prev:!1,next:!1},arcs:[],arc:{},empty:!1,page:void 0,routes:{prev:!1,next:!1,books:{prev:!1,next:!1},close:O.browser.breadcrumbs[0]},bookChange:void 0,reactWithScroll:!1,clientSettings:{cacheBook:!1,scale:y}}),getters:{groupBooks(e){const t=[];return e.books.prev[0]&&t.push[e.books.prev[0]],t.push[e.books.current],e.books.next[0]&&t.push[e.books.next[0]],t},activeSettings(e){return e.getSettings(e.books.current)||{}},activeTitle(e){var n;const t=e.books.current;let o;return t?(((n=e.arcs[0])==null?void 0:n.group)!="f"&&(o=ut(t)),o||(o=t.filename||"")):o="",o},routeParams(e){return{pk:+e.books.current.pk,page:+e.page}},isVertical(e){return K.has(e.activeSettings.readingDirection)},isPDF(e){var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.fileType)=="PDF"},cacheBook(e){return e.clientSettings.cacheBook&&!(this.isPDF&&this.isVertical)},isPagesNotRoutes(e){return e.isVertical||this.cacheBook},isReadInReverse(e){return Re.has(e.activeSettings.readingDirection)},isBTT(e){return e.activeSettings.readingDirection==="btt"},isFirstPage(e){return e.page===0},isLastPage(e){const t=e.books.current?e.books.current.maxPage:0,o=e.activeSettings.twoPages?1:0,n=t-o;return this.page>=n}},actions:{setReadRTLInReverse(e){return this.readerSettings.readRtlInReverse&&e.readingDirection==="rtl"?{...e,readingDirection:"ltr"}:e},getSettings(e){const t={...V};let o=e?e.settings:{};o=this.setReadRTLInReverse(o);const n=[this.readerSettings,o];for(const r of n)for(const[s,a]of Object.entries(r))V.has(a)||(t[s]=a);return ee(t),t},bookChangeLocation(e){let t;return this.isBTT?t=e==="next"?"left":"right":t=e==="next"?"right":"left",t},bookChangeCursorClass(e){let t;return this.isReadInReverse?t=e==="next"?"up":"down":t=e==="next"?"down":"up",t+"Cursor"},bookChangeShow(e){return e==="prev"?this.books.prev&&this.isFirstPage:this.books.next&&this.isLastPage},bookChangeIcon(e){let t=e==="next";return this.isBTT&&(t=!t),t?Oe:Ve},isCoverPage(e,t){return e.readLtr!==!1&&t===0||e.readLtr&&t===e.maxPage},_getRouteParams(e,t,o){const n=o==="prev"?-1:1;let r=1;this.getSettings(e).twoPages&&!this.isCoverPage(e,+t+n)&&(r=2),r=r*n;const a=+t+r;let h=!1;return a>=0&&a<=e.maxPage&&(h={pk:e.pk,page:a}),h},fitToClass(e){const t=this.getSettings(e),o={};let n;if(this.clientSettings.scale>y?n="Orig":n=Ce[t.fitTo],n){let r="fitTo";r+=lt(n),this.isVertical?r+="Vertical":t.twoPages&&(r+="Two"),o[r]=!0}return o},_updateSettings(e,t){t?(this.books.current.settings={...this.books.current.settings,...e},ee(this.books.current.settings)):this.readerSettings={...this.readerSettings,...e}},_getBookRoutePage(e,t){let o=0;if(t&&e.readLtr!==!1||!t&&e.readLtr===!1){const r=this.getSettings(e).twoPages?-1:0;o=e.maxPage+r}return o},_getBookRoute(e,t){if(!e)return!1;const o=this._getBookRoutePage(e,t);return{pk:e.pk,page:o}},_getBookRoutes(e,t){return{prev:this._getBookRoute(e,!0),next:this._getBookRoute(t,!1)}},async setRoutesAndBookmarkPage(e){const t=this.books.current;this.$patch(o=>{o.routes.prev=this._getRouteParams(t,e,"prev"),o.routes.next=this._getRouteParams(t,e,"next")}),await this._setBookmarkPage(e).then(()=>(this.bookChange=void 0,!0))},setActivePage(e,t=!0){if(e<0)return console.warn("Page out of bounds. Redirecting to 0."),this.routeToPage(0);if(e>this.books.current.maxPage)return console.warn(`Page out of bounds. Redirecting to ${this.books.current.maxPage}.`),this.routeToPage(this.books.current.maxPage);if(this.reactWithScroll=!!t,this.page=+e,this.setRoutesAndBookmarkPage(e),this.isPagesNotRoutes){const o={params:{pk:this.books.current.pk,page:e}},{href:n}=Q.resolve(o);window.history.pushState({},void 0,n)}else window.scrollTo(0,0)},async loadReaderSettings(){return F.getReaderSettings().then(e=>{const t=e.data;return this._updateSettings(t,!1),this.empty=!1,!0}).catch(console.error)},async loadBooks(e){await F.getReaderInfo(e).then(t=>{const o=t.data,n=[o.books.prevBook,o.books.current,o.books.nextBook];for(const s of n)s&&!s.settings&&(s.settings={});const r=this._getBookRoutes(o.books.prevBook,o.books.nextBook);return this.$patch(s=>{s.books.current=o.books.current,s.books.prev=o.books.prevBook,s.books.next=o.books.nextBook,s.arcs=o.arcs,s.arc=o.arc,s.routes.prev=this._getRouteParams(s.books.current,e.page,"prev"),s.routes.next=this._getRouteParams(s.books.current,e.page,"next"),s.routes.books=r,s.routes.close=o.closeRoute,s.empty=!1}),!0}).catch(t=>{console.debug(t),this.empty=!0})},async _setBookmarkPage(e){const t={group:"c",ids:[+this.books.current.pk]};e=Math.max(Math.min(this.books.current.maxPage,e),0);const o={page:e};await J.setGroupBookmarks(t,o)},async setSettingsLocal(e){this._updateSettings(e,!0);const t={group:"c",ids:[+this.books.current.pk]};await J.setGroupBookmarks(t,this.books.current.settings)},setSettingsClient(e){this.clientSettings={...this.clientSettings,...e}},async clearSettingsLocal(){await this.setSettingsLocal(ve),this.setSettingsClient(Se)},async setSettingsGlobal(e){this._updateSettings(e,!1),await F.setReaderSettings(this.readerSettings),await this.clearSettingsLocal()},setBookChangeFlag(e){e=this.normalizeDirection(e),this.bookChange=this.routes.books[e]?e:void 0},normalizeDirection(e){return this.isReadInReverse?we[e]:e},_validateRoute(e,t){if(t||(t=this.books.current),!t)return{};const o=t.maxPage??0;return e.page>o?(e.page=o,console.warn("Tried to navigate past the end of the book.")):e.page<0&&(e.page=0,console.warn("Tried to navigate before the beginning of the book.")),e},_routeTo(e,t){if(e=this._validateRoute(e,t),this.isPagesNotRoutes&&+e.pk===this.books.current.pk)this.setActivePage(+e.page,!0);else{const o={name:"reader",params:e};Q.push(o).catch(console.debug)}},routeToDirectionOne(e){e=this.normalizeDirection(e);const t=e==="prev"?-1:1,o=this.page+=t;if(o<0||o>this.books.current.maxPage)return;const n={pk:this.books.current.pk,page:o};this._routeTo(n)},routeToDirection(e){if(e=this.normalizeDirection(e),this.routes[e]){const t=this.routes[e];this._routeTo(t)}else this.routes.books[e]?this.bookChange===e?this._routeTo(this.routes.books[e],this.books[e]):this.setBookChangeFlag(e):console.debug("No route to direction",e)},routeToPage(e){const t={pk:this.books.current.pk,page:e};this._routeTo(t)},routeToBook(e){this._routeTo(this.routes.books[e],this.books[e])},_prefetchSrc(e,t,o=!1,n=!1){if(!e)return!1;const r=o?this.books[t]:this.books.current;if(!r)return!1;let s=e.page;if(n){if(!this.getSettings(r).twoPages)return!1;s+=1}if(s>r.maxPage)return!1;const a={pk:e.pk,page:s,mtime:r.mtime};return j(a)},prefetchLinks(e,t,o=!1){if(!o&&this.cacheBook)return{};const n=[this._prefetchSrc(e,t,o,!1),this._prefetchSrc(e,t,o,!0)],r=[];for(const s of n)s&&r.push({...G,href:s});return{link:r}},prefetchBook(e){if(!this.cacheBook||e.fileType=="PDF")return{};const t=e.pk,o=[];for(let n=0;n<=e.maxPage;n++){const r={pk:t,page:n,mtime:e.mtime},s=j(r);s&&o.push({...G,href:s})}return{link:o}},toRoute(e){return e?{params:e}:{}},linkLabel(e,t){return`${e==="prev"?"Previous":"Next"} ${t}`}}}),xt={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...P(u,["isBTT"]),...v(u,{computedDirection(){return this.normalizeDirection(this.direction)},params(e){return e.routes.books[this.computedDirection]},isDrawerOpen(e){return e.bookChange===this.computedDirection},icon(){return this.bookChangeIcon(this.computedDirection)}}),drawerLocation(){return this.bookChangeLocation(this.direction)},cursorClass(){return this.bookChangeCursorClass(this.computedDirection)},show(){return this.bookChangeShow(this.computedDirection)},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Book")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function $t(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(bt,{key:0,class:B(["bookChangeDrawer",{drawerActivated:e.isDrawerOpen}]),"disable-resize-watcher":"","disable-route-watcher":"",location:s.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:c(()=>[l(a,{class:B({navLink:!0,[s.cursorClass]:!0}),to:s.route,"aria-label":s.label,title:s.label,onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},{default:c(()=>[l(R,{class:"bookChangeIcon"},{default:c(()=>[k(_(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value","class"])):w("",!0)}const Ot=f(xt,[["render",$t],["__scopeId","data-v-03e41a14"]]),Vt={name:"BookChangeActivator",components:{BookChangeDrawer:Ot},props:{direction:{type:String,required:!0}},computed:{computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)},show(){return this.bookChangeShow(this.computedDirection)}},methods:{...b(u,["setBookChangeFlag","normalizeDirection","bookChangeLocation","bookChangeCursorClass","bookChangeShow"])}};function Et(e,t,o,n,r,s){const a=g("BookChangeDrawer");return d(),S(T,null,[s.show?(d(),S("div",{key:0,class:B(["bookChangeColumn",{[s.positionClass]:!0,[s.cursorClass]:!0}]),onClick:t[0]||(t[0]=ce(h=>e.setBookChangeFlag(o.direction),["stop"]))},null,2)):w("",!0),l(a,{direction:o.direction},null,8,["direction"])],64)}const Nt=f(Vt,[["render",Et],["__scopeId","data-v-db3eb561"]]),At={name:"LoadingPage",components:{Placeholder:wt},props:{twoPages:{type:Boolean,required:!0}}};function Ft(e,t,o,n,r,s){const a=g("Placeholder");return d(),S("div",{class:B(["pageLoading",{twoPages:o.twoPages}])},[l(a,{class:"pagePlaceholder"})],2)}const zt=f(At,[["render",Ft],["__scopeId","data-v-04027168"]]),te="unauthorized",Ut={name:"ErrorPage",props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},computed:{text(){return this.type===te?"Protected page":"Failed to load page"},icon(){return this.type===te?Ee:Ne}}};function Mt(e,t,o,n,r,s){return d(),p(be,{class:B(["pageError",{twoPages:o.twoPages}]),headline:s.text,icon:s.icon},null,8,["class","headline","icon"])}const Wt=f(Ut,[["render",Mt],["__scopeId","data-v-417a4cab"]]),Ht={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{...v(u,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.scale==1)return e;const t=this.$el;if(!(t!=null&&t.naturalWidth))return e;const o=t.naturalWidth/2;return e.transformOrigin=`${o}px top`,e.transform=`scale(${this.scale})`,e},classes(){return this.fitToClass(this.book)}},methods:{...b(u,["fitToClass"])}},jt=["src"];function Gt(e,t,o,n,r,s){return d(),S("img",W({class:[s.classes,"img"],draggable:"false",src:o.src,style:s.style},e.$attrs,{onError:t[0]||(t[0]=a=>e.$emit("error",a)),onLoad:t[1]||(t[1]=a=>e.$emit("load",a))}),null,16,jt)}const oe=f(Ht,[["render",Gt],["__scopeId","data-v-559e2ecc"]]),se=ue(de(()=>ct(()=>import("./pdf-doc-BlU5mm5n.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])))),qt=333,Kt={name:"BookPage",components:{ErrorPage:Wt,LoadingPage:zt,PDFDoc:se,ImgPage:oe},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:!1}},computed:{...P(u,["isVertical"]),...v(u,{scale:e=>e.clientSettings.scale}),style(){var o;const e={};if(this.book.fileType==="PDF"||this.scale==1)return e;const t=(o=this.$refs.pageComponent)==null?void 0:o.$el;return t!=null&&t.naturalHeight&&(e.height=t.naturalHeight*this.scale+"px",e.width=t.naturalWidth*this.scale+"px"),e},src(){const e={pk:this.book.pk,page:this.page,mtime:this.book.mtime};return j(e)},component(){return this.book.fileType==="PDF"?se:oe},settings(){return this.getSettings(this.book)}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},qt)},methods:{...b(u,["getSettings"]),onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1}}},Yt=["id","data-page"];function Xt(e,t,o,n,r,s){const a=g("ErrorPage"),h=g("LoadingPage");return d(),S("div",{id:`page${o.page}`,"data-page":o.page,class:"page",style:ge(s.style)},[r.error?(d(),p(a,{key:0,"two-pages":s.settings.twoPages,type:r.error},null,8,["two-pages","type"])):r.showProgress&&!r.loaded?(d(),p(h,{key:1,"two-pages":s.settings.twoPages},null,8,["two-pages"])):(d(),p(he(s.component),{key:2,ref:"pageComponent",book:o.book,page:1,src:s.src,onError:s.onError,onLoad:s.onLoad,onUnauthorized:s.onUnauthorized},null,40,["book","src","onError","onLoad","onUnauthorized"]))],12,Yt)}const Be=f(Kt,[["render",Xt],["__scopeId","data-v-87996fa1"]]),Zt=.5,Qt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:Ae}},computed:{...v(u,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=y},style(){return{cursor:this.scale==y?"zoom-in":"all-scroll"}}},methods:{...b(u,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Zt;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:y})}}};function Jt(e,t,o,n,r,s){const a=Fe("drag-scroller");return D((d(),S("div",{class:"scaleForScroll",style:ge(s.style),onDblclick:t[0]||(t[0]=(...h)=>s.onDoubleClick&&s.onDoubleClick(...h))},[ze(e.$slots,"default",{},void 0,!0),s.showReset?(d(),p(R,{key:0,class:"resetIcon",onClick:ce(s.scaleReset,["stop"])},{default:c(()=>[k(_(r.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):w("",!0)],36)),[[a,,void 0,{onlyX:!0}]])}const Te=f(Qt,[["render",Jt],["__scopeId","data-v-b24267c0"]]),eo={name:"HorizontalPages",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{...P(u,["isCoverPage","isReadInReverse"]),showSecondPage(){return this.getSettings(this.book).twoPages&&this.page<this.book.maxPage&&!this.isCoverPage(this.book,this.page)},showPageOne(){return!this.isReadInReverse||this.showSecondPage},showPageTwo(){return this.isReadInReverse||this.showSecondPage},pageOne(){return this.isReadInReverse?this.page+1:this.page},pageTwo(){return this.isReadInReverse?this.page:this.page+1}},methods:{...b(u,["getSettings"])}};function to(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,{class:"noWrap"},{default:c(()=>[s.showPageOne?(d(),p(a,{key:0,ref:"pageOne",book:o.book,page:s.pageOne,class:"horizontalPage"},null,8,["book","page"])):w("",!0),s.showPageTwo?(d(),p(a,{key:1,book:o.book,page:s.pageTwo,class:"horizontalPage"},null,8,["book","page"])):w("",!0)]),_:1})}const oo=f(eo,[["render",to],["__scopeId","data-v-9a560964"]]),so={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...P(u,["isVertical","isFirstPage","isLastPage"]),...v(u,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){let e="pageChange";return e+=this.isVertical?"Row":"Column",e},directionClass(){let e=this.direction;return this.isVertical&&(e+="Vertical"),e},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function ro(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(a,{key:0,to:s.route,"aria-label":s.label,class:B({[s.pageChangeClass]:!0,[s.directionClass]:!0}),onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},null,8,["to","aria-label","class"])):w("",!0)}const ao=f(so,[["render",ro],["__scopeId","data-v-9ade7d96"]]),no=48,io=48,lo={name:"PagerHorizontal",components:{HorizontalPages:oo,PageChangeLink:ao},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{...P(u,["isReadInReverse"]),...v(u,{prevBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.prev},nextBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.next},storePage:e=>e.page,storePk:e=>e.books.current.pk}),twoPages(){return this.getSettings(this.book).twoPages},windowIndex(){const e=this.activePage-this.pages[0];return Math.min(Math.max(0,e),this.book.maxPage)}},watch:{twoPages(){this.setActivePage(this.storePage,!0)},storePage(e){if(this.book.pk===this.storePk){this.activePage=e;const t=this.pages.at(0),o=this.pages.at(-1);(e<t||e>o)&&this.setPages()}},prevBook(e){this.book.pk===e.pk&&(this.activePage=this.book.maxPage)},nextBook(e){this.book.pk===e.pk&&(this.activePage=0)}},created(){this.book.pk===this.storePk?this.activePage=+this.$route.params.page:this.book.pk===this.prevBook.pk?this.activePage=this.book.maxPage:this.activePage=0,this.setPages()},methods:{...b(u,["getSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-no,0),t=Math.min(this.activePage+io,this.book.maxPage),o=ke.range(e,t+1);this.pages=o}}};function co(e,t,o,n,r,s){const a=g("PageChangeLink"),h=g("HorizontalPages");return d(),p(Pe,{"show-arrows":"",continuous:"","model-value":s.windowIndex,reverse:e.isReadInReverse},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,E(r.pages,m=>(d(),p(_e,{key:`c/${o.book.pk}/${m}`,class:"windowItem",disabled:"",eager:m>=e.storePage-1&&m<=e.storePage+2,"model-value":m,transition:!0},{default:c(()=>[l(h,{book:o.book,page:m},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const re=f(lo,[["render",co],["__scopeId","data-v-e04bbc00"]]);function ye(e,t){const{self:o=!1}=t.modifiers??{},n=t.value,r=typeof n=="object"&&n.options||{passive:!0},s=typeof n=="function"||"handleEvent"in n?n:n.handler,a=o?e:t.arg?document.querySelector(t.arg):window;a&&(a.addEventListener("scroll",s,r),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:s,options:r,target:o?void 0:a})}function De(e,t){var s;if(!((s=e._onScroll)!=null&&s[t.instance.$.uid]))return;const{handler:o,options:n,target:r=e}=e._onScroll[t.instance.$.uid];r.removeEventListener("scroll",o,n),delete e._onScroll[t.instance.$.uid]}function uo(e,t){t.value!==t.oldValue&&(De(e,t),ye(e,t))}const ho={mounted:ye,unmounted:De,updated:uo},go=12,ae=250,po={name:"PagerVertical",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1}},computed:{...v(u,{storePage:e=>e.page}),...pe(u,["reactWithScroll"]),settings(){return this.getSettings(this.book)},readInReverse(){return this.settings.readInReverse},items(){var o;const e=(o=this.book)!=null&&o.maxPage?this.book.maxPage+1:0,t=ke.range(0,e);return this.readInReverse&&t.reverse(),t},visibleItems(){var e;return Math.min(((e=this.book)==null?void 0:e.maxPage)??0,go)}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},ae)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...b(u,["setActivePage","setBookChangeFlag","getSettings"]),onIntersect(e,t){if(e&&this.intersectorOn){const n=+t[0].target.dataset.page;this.setActivePage(n,!1)}},onScroll(){if(this.programmaticScroll)return;this.intersectorOn=!0;const e=this.$refs.verticalScroll.$el,t=e.scrollTop;if(this.storePage===0&&t===0)this.setBookChangeFlag("prev");else if(this.storePage===this.book.maxPage){const o=e.scrollTopMax||e.scrollHeight-e.clientTop;window.innerHeight+t+1>=o&&this.setBookChangeFlag("next")}},scrollToPage(e){this.intersectorOn=!1,this.programmaticScroll=!0;const t=this.$refs.verticalScroll;t?t.scrollToIndex(e):console.debug("Can't find verticalScroll component."),setTimeout(()=>{this.programmaticScroll=!1},ae)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},mo=["data-page"];function ko(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,null,{default:c(()=>[D((d(),p(Bt,{id:"verticalScroll",key:s.readInReverse,ref:"verticalScroll",items:s.items,height:r.innerHeight,width:r.innerWidth},{default:c(({item:m})=>[l(a,{book:o.book,page:m,class:"verticalPage"},null,8,["book","page"]),D(i("div",{class:"pageTracker","data-page":m},null,8,mo),[[Ue,{handler:s.onIntersect,options:{threshold:[.75]}},void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[ho,s.onScroll,"#verticalScroll"]])]),_:1})}const ne=f(po,[["render",ko],["__scopeId","data-v-97638fc3"]]),ie=ue(de(()=>"@/components/reader/pager/pager-full-pdf.vue")),fo={name:"PagerSelector",components:{PagerHorizontal:re,PagerPDF:ie,PagerVertical:ne},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...P(u,["isVertical","cacheBook"]),...v(u,{storePk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0}}),readFullPdf(){return this.book.fileType=="PDF"&&this.cacheBook},component(){return this.readFullPdf?ie:this.isVertical?ne:re}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.book.pk===this.storePk&&this.setActivePage(+this.$route.params.page,!0)},methods:{...b(u,["getSettings","setActivePage","prefetchBook"])}};function bo(e,t,o,n,r,s){return d(),p(he(s.component),{book:o.book},null,8,["book"])}const _o=f(fo,[["render",bo]]),Po={name:"BooksWindow",components:{BookChangeActivator:Nt,Pager:_o},emits:["click"],computed:{...P(u,["isBTT"]),...v(u,{books:e=>[e.books.prev,e.books.current,e.books.next].filter(Boolean),bookChange:e=>e.bookChange,currentBookPk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0},bookRoutes:e=>e.routes.books})},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks(e.params)}},beforeMount(){this.setBookChangeFlag(),this.loadBooks(this.$route.params)},methods:{...b(u,["setBookChangeFlag","loadBooks"]),click(){this.setBookChangeFlag(),this.$emit("click")},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function vo(e,t,o,n,r,s){const a=g("BookChangeActivator"),h=g("Pager");return d(),p(Pe,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:s.click},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,E(e.books,m=>(d(),p(_e,{key:`c/${m.pk}`,class:"windowItem",disabled:"",eager:s.eager(m.pk),value:m.pk,transition:!0},{default:c(()=>[l(h,{book:m,onClick:s.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const So=f(Po,[["render",vo],["__scopeId","data-v-2a90783e"]]),wo={name:"DownloadPanel",data(){return{mdiDownload:Me,mdiFileImage:We}},computed:{...P(u,["activeTitle","routeParams"]),...v(u,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return dt(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return ht({pk:e,page:this.storePage,mtime:t})},pageName(){return`${this.activeTitle} - page ${this.storePage}.jpg`}},methods:{...b(q,["downloadIOSPWAFix"]),downloadPage(){this.downloadIOSPWAFix(this.pageSrc,this.pageName)},downloadBook(){this.downloadIOSPWAFix(this.downloadURL,this.filename)}}},Ro={key:0,id:"downloadPanel"};function Co(e,t,o,n,r,s){return e.currentBook?(d(),S("div",Ro,[l(H,{onClick:s.downloadPage},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiFileImage),1)]),_:1}),k("Download Page "+_(e.storePage),1)]),_:1})]),_:1},8,["onClick"]),l(H,{onClick:s.downloadBook},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiDownload),1)]),_:1}),k("Download Book ")]),_:1})]),_:1},8,["onClick"])])):w("",!0)}const Bo=f(wo,[["render",Co],["__scopeId","data-v-9e01f4cb"]]),To={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:He,mdiMenuRight:je,mdiKeyboardOutline:Ge,mdiKeyboardSpace:qe,mdiAppleKeyboardShift:Ke}},computed:{...P(q,["isMobile"])}},C=e=>(Ye("data-v-a8b4ac47"),e=e(),Xe(),e),yo=C(()=>i("h4",null,"Navigation",-1)),Do={class:"highlight-table"},Io=C(()=>i("td",null,"Previous page",-1)),Lo=C(()=>i("td",null,"Next page",-1)),xo=C(()=>i("tr",null,[i("td",null,","),i("td",null,[k("Next "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),$o=C(()=>i("tr",null,[i("td",null,"."),i("td",null,[k("Previous "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),Oo=C(()=>i("tr",null,[i("td",null,"p"),i("td",null,"Previous Book")],-1)),Vo=C(()=>i("tr",null,[i("td",null,"n"),i("td",null,"Next Book")],-1)),Eo=C(()=>i("tr",null,[i("td",null,"esc"),i("td",null,"Close book")],-1)),No=C(()=>i("h4",null,"Fit Page To",-1)),Ao=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"s"),i("td",null,"screen")]),i("tr",null,[i("td",null,"h"),i("td",null,"screen height")]),i("tr",null,[i("td",null,"w"),i("td",null,"screen width")]),i("tr",null,[i("td",null,"o"),i("td",null,"Show page at original size")]),i("tr",null,[i("td",null,"2"),i("td",null,"Toggle two page view")]),i("tr",null,[i("td",null,"r"),i("td",null,"Read Right to Left")]),i("tr",null,[i("td",null,"l"),i("td",null,"Read Left to Right")]),i("tr",null,[i("td",null,"t"),i("td",null,"Read Top to Bottom")]),i("tr",null,[i("td",null,"b"),i("td",null,"Read in Bottom to Top")])])],-1)),Fo=C(()=>i("h4",null,"Other",-1)),zo=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"m"),i("td",null,"Show comic's metadata")]),i("tr",null,[i("td",null,"double click"),i("td",null,"Zoom page")])])],-1));function Uo(e,t,o,n,r,s){return e.isMobile?w("",!0):(d(),p(It,{key:0},{default:c(()=>[l(Tt,{id:"readerKeyboardShortcuts"},{default:c(()=>[l(yt,{id:"shortcutsTitle"},{default:c(()=>[l(R,{id:"keyboardIcon"},{default:c(()=>[k(_(r.mdiKeyboardOutline),1)]),_:1}),k("Keyboard Shortcuts ")]),_:1}),l(Dt,null,{default:c(()=>[yo,i("table",Do,[i("tbody",null,[i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuLeft),1)]),_:1}),k(", j, "),i("div",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiAppleKeyboardShift),1)]),_:1}),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})])]),Io]),i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuRight),1)]),_:1}),k(", k, "),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})]),Lo]),xo,$o,Oo,Vo,Eo])]),No,Ao,Fo,zo]),_:1})]),_:1})]),_:1}))}const Mo=f(To,[["render",Uo],["__scopeId","data-v-a8b4ac47"]]),Ie=["fitTo","readingDirection","twoPages"];Object.freeze(Ie);const Wo={name:"ReaderSettingsPanel",data(){return{isGlobalScope:!1,mdiOpenInNew:Ze}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["isVertical","isPDF","cacheBook"]),...v(u,{choices:e=>e.choices,validBook:e=>{var t;return!!((t=e.books)!=null&&t.current)},selectedSettings(e){var t,o;return this.isGlobalScope||!((t=e.books)!=null&&t.current)?e.readerSettings:(o=e.books)==null?void 0:o.current.settings},isClearSettingsButtonDisabled(e){var t,o;if(this.isGlobalScope||!((t=e.books)!=null&&t.current))return!0;for(const n of Ie){const r=(o=e.books)==null?void 0:o.current.settings[n];if(!e.choices.nullValues.has(r))return!1}return!0},bookInBrowserURL(e){var t,o;return(t=e.books)!=null&&t.current?Qe((o=e.books)==null?void 0:o.current):""}}),...pe(u,["readRtlInReverse"]),fitToChoices(){return this.choicesWithoutNull("fitTo")},readingDirectionChoices(){return this.choicesWithoutNull("readingDirection")},disableTwoPages(){return this.isVertical||this.isPDF&&this.cacheBook},disableCacheBook(){return this.isVertical&&this.isPDF}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["clearSettingsLocal","setSettingsGlobal","setSettingsLocal","setSettingsClient"]),settingsDialogChanged(e){this.isGlobalScope?this.setSettingsGlobal(e):this.setSettingsLocal(e)},choicesWithoutNull(e){const t=[];for(const o of this.choices[e])o.value&&t.push(o);return Object.freeze(t),t},_keyUpListener(e){if(e.stopPropagation(),this.isAuthDialogOpen)return;let t;switch(e.key){case"w":t={fitTo:"W"};break;case"h":t={fitTo:"H"};break;case"s":t={fitTo:"S"};break;case"o":t={fitTo:"O"};break;case"2":t={twoPages:!this.selectedSettings.twoPages};break;case"l":t={readingDirection:"ltr"};break;case"r":t={readingDirection:"rtl"};break;case"t":t={readingDirection:"ttb"};break;case"b":t={readingDirection:"bbt"};break}t&&this.setSettingsLocal(t)}}},Ho={key:0,id:"readerSettings"},jo=["href"];function Go(e,t,o,n,r,s){return e.validBook?(d(),S("div",Ho,[l(U,{modelValue:r.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=a=>r.isGlobalScope=a),density:"compact",label:"Scope","hide-details":"auto"},{default:c(()=>[l(L,{label:"Only this comic",value:!1}),l(L,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=a=>s.settingsDialogChanged({fitTo:a}))},{default:c(()=>[(d(!0),S(T,null,E(s.fitToChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{disabled:s.disableTwoPages,class:"displayTwoPages",density:"compact",label:"Two pages","hide-details":"auto","model-value":e.selectedSettings.twoPages,"true-value":!0,indeterminate:e.selectedSettings.twoPages===null||e.selectedSettings.twoPages===void 0,"onUpdate:modelValue":t[2]||(t[2]=a=>s.settingsDialogChanged({twoPages:a}))},null,8,["disabled","model-value","indeterminate"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=a=>s.settingsDialogChanged({readingDirection:a}))},{default:c(()=>[(d(!0),S(T,null,E(s.readingDirectionChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{"model-value":e.cacheBook,class:"cacheBook",density:"compact",disabled:s.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=a=>e.setSettingsClient({cacheBook:a}))},null,8,["model-value","disabled"]),e.isPDF?(d(),S("a",{key:0,id:"readPDFInBrowser",href:e.bookInBrowserURL,target:"_blank"},[l(R,null,{default:c(()=>[k(_(r.mdiOpenInNew),1)]),_:1}),k("Read PDF in Browser ")],8,jo)):w("",!0),r.isGlobalScope?(d(),p(M,{key:1,"model-value":e.selectedSettings.readRtlInReverse,class:"readRtlInReverse",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=a=>s.settingsDialogChanged({readRtlInReverse:a}))},null,8,["model-value"])):w("",!0),r.isGlobalScope?w("",!0):(d(),p(me,{key:2,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,title:"Use the default settings for all comics for this comic",onClick:e.clearSettingsLocal},{default:c(()=>[k(" Clear Comic Settings ")]),_:1},8,["disabled","onClick"]))])):w("",!0)}const qo=f(Wo,[["render",Go],["__scopeId","data-v-599636e1"]]),Ko={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:Bo,ReaderKeyboardShortcutsPanel:Mo,ReaderSettingsPanel:qo}};function Yo(e,t,o,n,r,s){const a=g("ReaderSettingsPanel"),h=g("ReaderKeyboardShortcutsPanel"),m=g("DownloadPanel");return d(),S(T,null,[l(a),l(X),l(h),l(X),l(m)],64)}const Xo=f(Ko,[["render",Yo]]),Zo={name:"ReaderSettingsDrawer",components:{SettingsDrawer:_t,ReaderSettingsSuperPanel:Xo}};function Qo(e,t,o,n,r,s){const a=g("ReaderSettingsSuperPanel"),h=g("SettingsDrawer");return d(),p(h,{title:"Reader",temporary:"","disable-resize-watcher":""},{panel:c(()=>[l(a)]),_:1})}const Jo=f(Zo,[["render",Qo]]),le={a:et,f:tt,s:ot},es={a:"Story Arc",f:"Folder",s:"Series"},ts={name:"ReaderArcSelect",components:{ToolbarSelect:gt},computed:{...v(u,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arc:e=>e.arc,arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pks===t.pks)return t.name;return"Unknown"},arcItems:e=>{const t=[];for(const o of e.arcs){const n={value:o,title:o.name,group:o.group,subtitle:es[o.group],prependIcon:le[o.group]};t.push(n)}return t}})},methods:{...b(u,["loadBooks"]),arcIcon(e){return le[e]},checkIcon(e){return e===this.arc?Je:""},onUpdate(e){const t=this.$route.params;if(!t)return;const o={group:e.group,pks:e.pks},n={...t,arc:o};this.loadBooks(n)}}},os={id:"arcPos"};function ss(e,t,o,n,r,s){const a=g("ToolbarSelect");return d(),p(a,{"model-value":e.arc,class:"arcSelect","select-label":"reading order",items:e.arcItems,disabled:!e.arcItems||e.arcItems.length<=1,"onUpdate:modelValue":s.onUpdate},{item:c(({item:h,props:m})=>[l(H,W(m,{density:"compact",variant:"plain","prepend-icon":h.raw.prependIcon,subtitle:h.raw.subtitle,"append-icon":s.checkIcon(m.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:c(({item:h,props:m})=>[l(R,W({size:"large"},m,{class:"arcSelectIcon"}),{default:c(()=>[k(_(s.arcIcon(h.raw.group)),1)]),_:2},1040),i("span",os,_(e.arc.index)+" / "+_(e.arc.count),1)]),_:1},8,["model-value","items","disabled","onUpdate:modelValue"])}const rs=f(ts,[["render",ss],["__scopeId","data-v-42a57aca"]]),as={name:"ReaderTitleToolbar",components:{MetadataDialog:pt,ReaderArcSelect:rs,SettingsDrawerButton:Pt},data(){return{mdiClose:st,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeTitle"]),...v(u,{currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}},closeRoute:e=>e.routes.close,empty:e=>e.empty,subtitle:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.name)||""}}),closeBookRoute(){var t;const e={name:"browser",params:this.closeRoute};return e.params?e.hash=`#card-${(t=this.currentBook)==null?void 0:t.pk}`:e.params=window.CODEX.LAST_ROUTE||O.browser.breadcrumbs[0],e},title(){return this.activeTitle},extensionHeight(){let e=32;return this.subtitle&&(e*=2),e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(q,["setTimestamp"]),...b(u,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.empty||this.openMetadata();break}}}},ns={id:"title"},is={key:0,id:"subtitle"};function ls(e,t,o,n,r,s){const a=g("ReaderArcSelect"),h=g("MetadataDialog"),m=g("SettingsDrawerButton");return d(),p(St,{id:"readerToolbarTop",density:"compact","extension-height":s.extensionHeight},rt({default:c(()=>[l(z,null,{default:c(()=>[l(me,{ref:"closeBook",class:"closeBook",to:s.closeBookRoute,size:"large",density:"compact",variant:"plain",onClick:s.onCloseBook},{default:c(()=>[k(" close book ")]),_:1},8,["to","onClick"])]),_:1}),l(mt),e.empty?w("",!0):(d(),p(z,{key:0},{default:c(()=>[l(a),l(h,{ref:"metadataDialog",group:"c",toolbar:!0,book:e.currentBook},null,8,["book"])]),_:1})),l(z,null,{default:c(()=>[l(m)]),_:1})]),_:2},[s.title?{name:"extension",fn:c(()=>[l(vt,{class:"readerTitle"},{default:c(()=>[i("div",ns,_(s.title),1),e.subtitle?(d(),S("div",is,_(e.subtitle),1)):w("",!0)]),_:1})]),key:"0"}:void 0]),1032,["extension-height"])}const Le=f(as,[["render",ls],["__scopeId","data-v-0217ea46"]]),cs={name:"ReaderEmpty",components:{ReaderTopToolbar:Le},data(){return{mdiBookRemoveOutline:at}}};function us(e,t,o,n,r,s){const a=g("ReaderTopToolbar");return d(),S(T,null,[l(a),l(be,{class:"empty",headline:"Book Not Found",title:"Close the reader and find another book",icon:r.mdiBookRemoveOutline},null,8,["icon"])],64)}const ds=f(cs,[["render",us],["__scopeId","data-v-65d65e48"]]),hs={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:fe},props:{direction:{type:String,required:!0}},computed:{...P(u,["isBTT"]),...v(u,{toRoute(e){var o;const t=(o=e==null?void 0:e.routes)==null?void 0:o.books[this.direction];return t?{params:{...t}}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},classes(){return{bookChangeNavButtonLeft:this.direction==="prev",bookChangeNavButtonRight:this.direction==="next"}}},methods:{...b(u,["bookChangeIcon"])}};function gs(e,t,o,n,r,s){const a=g("PaginationNavButton");return e.toRoute?(d(),p(a,{key:0,class:B(s.classes),icon:"",variant:"plain",title:s.title,to:e.toRoute},{default:c(()=>[l(R,null,{default:c(()=>[k(_(s.icon),1)]),_:1})]),_:1},8,["class","title","to"])):w("",!0)}const ps=f(hs,[["render",gs],["__scopeId","data-v-77bee8ef"]]),ms={name:"ReaderNavButton",components:{PaginationNavButton:fe},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...P(u,["isVertical"]),...v(u,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}},isBookPrev:e=>!!e.routes.books.prev,isBookNext:e=>!!e.routes.books.next}),classes(){return{readerNavButtonLeft:!this.isBookPrev&&this.value===0,readerNavButtonRight:!this.isBookNext&&this.value!=0}},title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...b(u,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function ks(e,t,o,n,r,s){const a=g("PaginationNavButton");return d(),p(a,{key:e.isVertical,disabled:s.disabled,class:B(["readerNavButton",s.classes]),title:s.title,to:e.toRoute,onClick:s.onClick},{default:c(()=>[k(_(o.value),1)]),_:1},8,["disabled","class","title","to","onClick"])}const fs=f(ms,[["render",ks],["__scopeId","data-v-acdb098d"]]),x="prev",$="next",bs={name:"ReaderNavToolbar",components:{PaginationSlider:kt,ReaderNavButton:fs,PaginationToolbar:ft,ReaderBookChangeNavButton:ps},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeSettings","isReadInReverse","isVertical"]),...v(u,{storePage:e=>e.page,key(e){var t,o;return`${(o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk}:${this.step}:${this.isReadInReverse}`},maxPage:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.maxPage)||0}}),twoPages(){return this.activeSettings.twoPages},step(){return this.activeSettings.twoPages?2:1},trackColor(){return this.twoPages&&+this.storePage>=this.maxPage-1?this.$vuetify.theme.current.colors.primary:""},min(){return this.isReadInReverse?this.maxPage:0},max(){return this.isReadInReverse?0:this.maxPage},bookPrev(){return this.isReadInReverse?"next":"prev"},bookNext(){return this.isReadInReverse?"prev":"next"}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection($):e.shiftKey&&window.scrollY===0&&this.routeToDirection(x);break;case"j":case"ArrowRight":this.routeToDirection($);break;case"k":case"ArrowLeft":this.routeToDirection(x);break;case",":this.routeToDirectionOne(x);break;case".":this.routeToDirectionOne($);break;case"n":this.routeToBook($);break;case"p":this.routeToBook(x);break}}}};function _s(e,t,o,n,r,s){const a=g("ReaderBookChangeNavButton"),h=g("ReaderNavButton"),m=g("PaginationSlider"),N=g("PaginationToolbar");return e.maxPage?(d(),p(N,{key:0,id:"readerToolbarNav"},{default:c(()=>[l(a,{direction:s.bookPrev,narrow:!1},null,8,["direction"]),l(h,{value:s.min,"two-pages":s.twoPages},null,8,["value","two-pages"]),(d(),p(m,{key:e.key,"model-value":e.storePage,min:0,max:e.maxPage,step:s.step,"track-color":s.trackColor,reverse:e.isReadInReverse,"onUpdate:modelValue":t[0]||(t[0]=A=>s.onSliderUpdate(A))},null,8,["model-value","max","step","track-color","reverse"])),l(h,{value:s.max,"two-pages":s.twoPages},null,8,["value","two-pages"]),l(a,{direction:s.bookNext,narrow:!1},null,8,["direction"])]),_:1})):w("",!0)}const Ps=f(bs,[["render",_s],["__scopeId","data-v-dab0637e"]]),vs={name:"MainReader",components:{BooksWindow:So,ReaderEmpty:ds,ReaderNavToolbar:Ps,ReaderTopToolbar:Le,ReaderSettingsDrawer:Jo,Unauthorized:Rt},data(){return{showToolbars:!1}},computed:{...P(I,["isAuthorized"]),...v(I,{user:e=>e.user}),...v(u,{empty:e=>e.empty})},watch:{user(){this.loadReaderSettings()},isAuthorized(){this.loadReaderSettings()}},beforeMount(){u().$reset,this.loadReaderSettings()},methods:{...b(u,["loadReaderSettings"]),toggleToolbars(){this.showToolbars=!this.showToolbars}}},Ss={key:0},ws={id:"readerContainer"};function Rs(e,t,o,n,r,s){const a=g("ReaderTopToolbar"),h=g("BooksWindow"),m=g("ReaderNavToolbar"),N=g("ReaderEmpty"),A=g("ReaderSettingsDrawer"),xe=g("Unauthorized");return e.isAuthorized?(d(),p(Ct,{key:0,id:"readerWrapper"},{default:c(()=>[e.empty?(d(),p(N,{key:1})):(d(),S("div",Ss,[i("div",ws,[l(nt,null,{default:c(()=>[D(l(a,null,null,512),[[Z,r.showToolbars]])]),_:1}),l(h,{onClick:s.toggleToolbars},null,8,["onClick"]),l(it,null,{default:c(()=>[D(l(m,null,null,512),[[Z,r.showToolbars]])]),_:1})])])),l(A)]),_:1})):(d(),p(xe,{key:1}))}const Cs=f(vs,[["render",Rs],["__scopeId","data-v-dab9a44d"]]),Ns=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"}));export{Ns as r,u};
|
|
1
|
+
const __vite__fileDeps=["assets/pdf-doc-4PKLN-Z3.js","assets/admin-drawer-panel-C34Ze3-5.js","assets/admin-drawer-panel-BHdNPwzF.css","assets/main-Cavvqkyp.js","assets/main-sK7HC5h4.css","assets/index-DUjeNg4x.js","assets/pagination-toolbar-Dg9tH1Ju.js","assets/VSelect-BnoCfCLY.js","assets/VTextField-Da_Hs7ls.js","assets/VDialog-DiixpkQL.js","assets/VDialog-C5Nxd_zP.css","assets/VSelectionControl-BSL0qeL9.js","assets/VSelectionControl-BFq--28I.css","assets/VTextField-BssVoDhB.css","assets/VCheckboxBtn-m4IbdjEe.js","assets/VSlideGroup-BQtz8h9p.js","assets/VSlideGroup-Dk_1upHt.css","assets/VSelect-MGVSeLgr.css","assets/to-case-kUm8NPpW.js","assets/unauthorized-28bmiwAU.js","assets/change-password-dialog-JYM9aAR9.js","assets/change-password-dialog-HvIvmmIE.css","assets/unauthorized-DHV6Q1n-.css","assets/settings-drawer-CT73ieiV.js","assets/settings-drawer-nZ9HvKSZ.css","assets/pagination-toolbar-ClZui9Zf.css","assets/VWindowItem-CFhKCj49.js","assets/VWindowItem-ByIod57Y.css","assets/VExpansionPanels-Db5mPFue.js","assets/VExpansionPanels-DsEXVcCv.css","assets/VRadioGroup-DULWiMSI.js","assets/VRadioGroup-i2qP9Wu9.css","assets/VCheckbox-BS5fdM4M.js","assets/VCheckbox-CMKdyl0R.css","assets/pdf-doc-CMzaSV_K.css"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
|
|
2
|
+
import{l as $e,bw as Oe,bx as Ne,ag as P,N as v,O as b,_ as f,Q as g,R as d,P as p,T as c,L as l,ah as R,ad as k,ai as _,ae as B,aD as w,aA as S,aS as ce,M as T,by as Ve,bz as Ee,ap as W,bA as ue,bB as de,aC as he,bC as ge,bD as Ae,b1 as Fe,b0 as D,bt as ze,aB as V,bo as pe,aN as i,a_ as Ue,bE as Me,bF as We,k as q,aj as Y,ak as H,bG as He,bH as je,bI as Ge,bJ as qe,bK as Ke,aO as Ye,aP as Xe,aJ as Qe,m as I,bL as Je,ao as me,aQ as X,bM as Ze,bN as et,bf as tt,af as ot,bO as st,bh as rt,bP as at,b3 as Q,bk as nt,bQ as it}from"./admin-drawer-panel-C34Ze3-5.js";import{t as lt}from"./index-DUjeNg4x.js";import{C as O,r as J,B as Z,_ as ct,a as ke}from"./main-Cavvqkyp.js";import{g as ut,A as F,h as j,i as dt,j as ht,T as gt,M as pt,V as z,c as mt,P as fe,d as kt,e as ft}from"./pagination-toolbar-Dg9tH1Ju.js";import{d as bt,b as _t,S as Pt,V as vt,a as St}from"./settings-drawer-CT73ieiV.js";import{P as wt,a as be,U as Rt,V as Ct}from"./unauthorized-28bmiwAU.js";import{b as _e,V as Pe}from"./VWindowItem-CFhKCj49.js";import{b as Bt}from"./VSelect-BnoCfCLY.js";import{V as Tt,a as yt,b as Dt,c as It}from"./VExpansionPanels-Db5mPFue.js";import{V as L,a as U}from"./VRadioGroup-DULWiMSI.js";import{V as M}from"./VCheckbox-BS5fdM4M.js";const ve={fitTo:"",twoPages:null,readingDirection:"",readRtlInReverse:null};Object.freeze(ve);const Se={cacheBook:!1};Object.freeze(Se);const N=new Set(["",null,void 0]);Object.freeze(N);const we={prev:"next",next:"prev"};Object.freeze(we);const G={rel:"prefetch",as:"image"};Object.freeze(G);const K=new Set(["ttb","btt"]);Object.freeze(K);const Re=new Set(["rtl","btt"]);Object.freeze(Re);const y=1,Ce={S:"Screen",W:"Width",H:"Height",O:"Original"};Object.freeze(Ce);const Lt=()=>Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)>600?"HEIGHT":"WIDTH",ee=e=>{K.has(e.readingDirection)&&e.twoPages&&(e.twoPages=!1)},u=$e("reader",{state:()=>({choices:{fitTo:O.reader.fitTo,readingDirection:O.reader.readingDirection,nullValues:N},readerSettings:{fitTo:Lt(),twoPages:!1,readingDirection:"ltr",readRtlInReverse:!1},books:{current:void 0,prev:!1,next:!1},arcs:[],arc:{},empty:!1,page:void 0,routes:{prev:!1,next:!1,books:{prev:!1,next:!1},close:O.browser.breadcrumbs[0]},bookChange:void 0,reactWithScroll:!1,clientSettings:{cacheBook:!1,scale:y}}),getters:{groupBooks(e){const t=[];return e.books.prev[0]&&t.push[e.books.prev[0]],t.push[e.books.current],e.books.next[0]&&t.push[e.books.next[0]],t},activeSettings(e){return e.getSettings(e.books.current)||{}},activeTitle(e){var n;const t=e.books.current;let o;return t?(((n=e.arcs[0])==null?void 0:n.group)!="f"&&(o=ut(t)),o||(o=t.filename||"")):o="",o},routeParams(e){return{pk:+e.books.current.pk,page:+e.page}},isVertical(e){return K.has(e.activeSettings.readingDirection)},isPDF(e){var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.fileType)=="PDF"},cacheBook(e){return e.clientSettings.cacheBook&&!(this.isPDF&&this.isVertical)},isPagesNotRoutes(e){return e.isVertical||this.cacheBook},isReadInReverse(e){return Re.has(e.activeSettings.readingDirection)},isBTT(e){return e.activeSettings.readingDirection==="btt"},isFirstPage(e){return e.page===0},isLastPage(e){const t=e.books.current?e.books.current.maxPage:0,o=e.activeSettings.twoPages?1:0,n=t-o;return this.page>=n}},actions:{setReadRTLInReverse(e){return this.readerSettings.readRtlInReverse&&e.readingDirection==="rtl"?{...e,readingDirection:"ltr"}:e},getSettings(e){const t={...N};let o=e?e.settings:{};o=this.setReadRTLInReverse(o);const n=[this.readerSettings,o];for(const r of n)for(const[s,a]of Object.entries(r))N.has(a)||(t[s]=a);return ee(t),t},bookChangeLocation(e){let t;return this.isBTT?t=e==="next"?"left":"right":t=e==="next"?"right":"left",t},bookChangeCursorClass(e){let t;return this.isReadInReverse?t=e==="next"?"up":"down":t=e==="next"?"down":"up",t+"Cursor"},bookChangeShow(e){return e==="prev"?this.books.prev&&this.isFirstPage:this.books.next&&this.isLastPage},bookChangeIcon(e){let t=e==="next";return this.isBTT&&(t=!t),t?Oe:Ne},isCoverPage(e,t){return e.readLtr!==!1&&t===0||e.readLtr&&t===e.maxPage},_getRouteParams(e,t,o){const n=o==="prev"?-1:1;let r=1;this.getSettings(e).twoPages&&!this.isCoverPage(e,+t+n)&&(r=2),r=r*n;const a=+t+r;let h=!1;return a>=0&&a<=e.maxPage&&(h={pk:e.pk,page:a}),h},fitToClass(e){const t=this.getSettings(e),o={};let n;if(this.clientSettings.scale>y?n="Orig":n=Ce[t.fitTo],n){let r="fitTo";r+=lt(n),this.isVertical?r+="Vertical":t.twoPages&&(r+="Two"),o[r]=!0}return o},_updateSettings(e,t){t?(this.books.current.settings={...this.books.current.settings,...e},ee(this.books.current.settings)):this.readerSettings={...this.readerSettings,...e}},_getBookRoutePage(e,t){let o=0;if(t&&e.readLtr!==!1||!t&&e.readLtr===!1){const r=this.getSettings(e).twoPages?-1:0;o=e.maxPage+r}return o},_getBookRoute(e,t){if(!e)return!1;const o=this._getBookRoutePage(e,t);return{pk:e.pk,page:o}},_getBookRoutes(e,t){return{prev:this._getBookRoute(e,!0),next:this._getBookRoute(t,!1)}},async setRoutesAndBookmarkPage(e){const t=this.books.current;this.$patch(o=>{o.routes.prev=this._getRouteParams(t,e,"prev"),o.routes.next=this._getRouteParams(t,e,"next")}),await this._setBookmarkPage(e).then(()=>(this.bookChange=void 0,!0))},setActivePage(e,t=!0){if(e<0)return console.warn("Page out of bounds. Redirecting to 0."),this.routeToPage(0);if(e>this.books.current.maxPage)return console.warn(`Page out of bounds. Redirecting to ${this.books.current.maxPage}.`),this.routeToPage(this.books.current.maxPage);if(this.reactWithScroll=!!t,this.page=+e,this.setRoutesAndBookmarkPage(e),this.isPagesNotRoutes){const o={params:{pk:this.books.current.pk,page:e}},{href:n}=J.resolve(o);window.history.pushState({},void 0,n)}else window.scrollTo(0,0)},async loadReaderSettings(){return F.getReaderSettings().then(e=>{const t=e.data;return this._updateSettings(t,!1),this.empty=!1,!0}).catch(console.error)},async loadBooks(e){await F.getReaderInfo(e).then(t=>{const o=t.data,n=[o.books.prevBook,o.books.current,o.books.nextBook];for(const s of n)s&&!s.settings&&(s.settings={});const r=this._getBookRoutes(o.books.prevBook,o.books.nextBook);return this.$patch(s=>{s.books.current=o.books.current,s.books.prev=o.books.prevBook,s.books.next=o.books.nextBook,s.arcs=o.arcs,s.arc=o.arc,s.routes.prev=this._getRouteParams(s.books.current,e.page,"prev"),s.routes.next=this._getRouteParams(s.books.current,e.page,"next"),s.routes.books=r,s.routes.close=o.closeRoute,s.empty=!1}),!0}).catch(t=>{console.debug(t),this.empty=!0})},async _setBookmarkPage(e){const t={group:"c",ids:[+this.books.current.pk]};e=Math.max(Math.min(this.books.current.maxPage,e),0);const o={page:e};await Z.setGroupBookmarks(t,o)},async setSettingsLocal(e){this._updateSettings(e,!0);const t={group:"c",ids:[+this.books.current.pk]};await Z.setGroupBookmarks(t,this.books.current.settings)},setSettingsClient(e){this.clientSettings={...this.clientSettings,...e}},async clearSettingsLocal(){await this.setSettingsLocal(ve),this.setSettingsClient(Se)},async setSettingsGlobal(e){this._updateSettings(e,!1),await F.setReaderSettings(this.readerSettings),await this.clearSettingsLocal()},setBookChangeFlag(e){e=this.normalizeDirection(e),this.bookChange=this.routes.books[e]?e:void 0},normalizeDirection(e){return this.isReadInReverse?we[e]:e},_validateRoute(e,t){if(t||(t=this.books.current),!t)return{};const o=t.maxPage??0;return e.page>o?(e.page=o,console.warn("Tried to navigate past the end of the book.")):e.page<0&&(e.page=0,console.warn("Tried to navigate before the beginning of the book.")),e},_routeTo(e,t){if(e=this._validateRoute(e,t),this.isPagesNotRoutes&&+e.pk===this.books.current.pk)this.setActivePage(+e.page,!0);else{const o={name:"reader",params:e};J.push(o).catch(console.debug)}},routeToDirectionOne(e){e=this.normalizeDirection(e);const t=e==="prev"?-1:1,o=this.page+=t;if(o<0||o>this.books.current.maxPage)return;const n={pk:this.books.current.pk,page:o};this._routeTo(n)},routeToDirection(e){if(e=this.normalizeDirection(e),this.routes[e]){const t=this.routes[e];this._routeTo(t)}else this.routes.books[e]?this.bookChange===e?this._routeTo(this.routes.books[e],this.books[e]):this.setBookChangeFlag(e):console.debug("No route to direction",e)},routeToPage(e){const t={pk:this.books.current.pk,page:e};this._routeTo(t)},routeToBook(e){this._routeTo(this.routes.books[e],this.books[e])},_prefetchSrc(e,t,o=!1,n=!1){if(!e)return!1;const r=o?this.books[t]:this.books.current;if(!r)return!1;let s=e.page;if(n){if(!this.getSettings(r).twoPages)return!1;s+=1}if(s>r.maxPage)return!1;const a={pk:e.pk,page:s,mtime:r.mtime};return j(a)},prefetchLinks(e,t,o=!1){if(!o&&this.cacheBook)return{};const n=[this._prefetchSrc(e,t,o,!1),this._prefetchSrc(e,t,o,!0)],r=[];for(const s of n)s&&r.push({...G,href:s});return{link:r}},prefetchBook(e){if(!this.cacheBook||e.fileType=="PDF")return{};const t=e.pk,o=[];for(let n=0;n<=e.maxPage;n++){const r={pk:t,page:n,mtime:e.mtime},s=j(r);s&&o.push({...G,href:s})}return{link:o}},toRoute(e){return e?{params:e}:{}},linkLabel(e,t){return`${e==="prev"?"Previous":"Next"} ${t}`}}}),xt={name:"BookChangeDrawer",props:{direction:{type:String,required:!0}},head(){if(this.isDrawerOpen)return this.prefetchLinks(this.params,this.computedDirection,!0)},computed:{...P(u,["isBTT"]),...v(u,{computedDirection(){return this.normalizeDirection(this.direction)},params(e){return e.routes.books[this.computedDirection]},isDrawerOpen(e){return e.bookChange===this.computedDirection},icon(){return this.bookChangeIcon(this.computedDirection)}}),drawerLocation(){return this.bookChangeLocation(this.direction)},cursorClass(){return this.bookChangeCursorClass(this.computedDirection)},show(){return this.bookChangeShow(this.computedDirection)},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Book")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute","bookChangeLocation","bookChangeCursorClass","bookChangeShow","bookChangeIcon"])}};function $t(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(bt,{key:0,class:B(["bookChangeDrawer",{drawerActivated:e.isDrawerOpen}]),"disable-resize-watcher":"","disable-route-watcher":"",location:s.drawerLocation,"model-value":e.isDrawerOpen,scrim:!1,temporary:"",touchless:""},{default:c(()=>[l(a,{class:B({navLink:!0,[s.cursorClass]:!0}),to:s.route,"aria-label":s.label,title:s.label,onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},{default:c(()=>[l(R,{class:"bookChangeIcon"},{default:c(()=>[k(_(e.icon),1)]),_:1})]),_:1},8,["class","to","aria-label","title"])]),_:1},8,["location","model-value","class"])):w("",!0)}const Ot=f(xt,[["render",$t],["__scopeId","data-v-03e41a14"]]),Nt={name:"BookChangeActivator",components:{BookChangeDrawer:Ot},props:{direction:{type:String,required:!0}},computed:{computedDirection(){return this.normalizeDirection(this.direction)},positionClass(){return this.bookChangeLocation(this.direction)+"Pos"},cursorClass(){return this.bookChangeCursorClass(this.direction)},show(){return this.bookChangeShow(this.computedDirection)}},methods:{...b(u,["setBookChangeFlag","normalizeDirection","bookChangeLocation","bookChangeCursorClass","bookChangeShow"])}};function Vt(e,t,o,n,r,s){const a=g("BookChangeDrawer");return d(),S(T,null,[s.show?(d(),S("div",{key:0,class:B(["bookChangeColumn",{[s.positionClass]:!0,[s.cursorClass]:!0}]),onClick:t[0]||(t[0]=ce(h=>e.setBookChangeFlag(o.direction),["stop"]))},null,2)):w("",!0),l(a,{direction:o.direction},null,8,["direction"])],64)}const Et=f(Nt,[["render",Vt],["__scopeId","data-v-db3eb561"]]),At={name:"LoadingPage",components:{Placeholder:wt},props:{twoPages:{type:Boolean,required:!0}}};function Ft(e,t,o,n,r,s){const a=g("Placeholder");return d(),S("div",{class:B(["pageLoading",{twoPages:o.twoPages}])},[l(a,{class:"pagePlaceholder"})],2)}const zt=f(At,[["render",Ft],["__scopeId","data-v-04027168"]]),te="unauthorized",Ut={name:"ErrorPage",props:{twoPages:{type:Boolean,required:!0},type:{type:String,required:!0}},computed:{text(){return this.type===te?"Protected page":"Failed to load page"},icon(){return this.type===te?Ve:Ee}}};function Mt(e,t,o,n,r,s){return d(),p(be,{class:B(["pageError",{twoPages:o.twoPages}]),headline:s.text,icon:s.icon},null,8,["class","headline","icon"])}const Wt=f(Ut,[["render",Mt],["__scopeId","data-v-417a4cab"]]),Ht={name:"ImgPage",props:{book:{type:Object,required:!0},src:{type:String,required:!0}},emits:["load","error"],computed:{...v(u,{scale:e=>e.clientSettings.scale}),style(){const e={};if(this.scale==1)return e;const t=this.$el;if(!(t!=null&&t.naturalWidth))return e;const o=t.naturalWidth/2;return e.transformOrigin=`${o}px top`,e.transform=`scale(${this.scale})`,e},classes(){return this.fitToClass(this.book)}},methods:{...b(u,["fitToClass"])}},jt=["src"];function Gt(e,t,o,n,r,s){return d(),S("img",W({class:[s.classes,"img"],draggable:"false",src:o.src,style:s.style},e.$attrs,{onError:t[0]||(t[0]=a=>e.$emit("error",a)),onLoad:t[1]||(t[1]=a=>e.$emit("load",a))}),null,16,jt)}const oe=f(Ht,[["render",Gt],["__scopeId","data-v-559e2ecc"]]),se=ue(de(()=>ct(()=>import("./pdf-doc-4PKLN-Z3.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34])))),qt=333,Kt={name:"BookPage",components:{ErrorPage:Wt,LoadingPage:zt,PDFDoc:se,ImgPage:oe},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},data(){return{showProgress:!1,loaded:!1,error:!1}},computed:{...P(u,["isVertical"]),...v(u,{scale:e=>e.clientSettings.scale}),style(){var o;const e={};if(this.book.fileType==="PDF"||this.scale==1)return e;const t=(o=this.$refs.pageComponent)==null?void 0:o.$el;return t!=null&&t.naturalHeight&&(e.height=t.naturalHeight*this.scale+"px",e.width=t.naturalWidth*this.scale+"px"),e},src(){const e={pk:this.book.pk,page:this.page,mtime:this.book.mtime};return j(e)},component(){return this.book.fileType==="PDF"?se:oe},settings(){return this.getSettings(this.book)}},mounted(){setTimeout(function(){this.loaded||(this.loading=!0)},qt)},methods:{...b(u,["getSettings"]),onLoad(){this.showProgress=!1,this.loaded=!0,this.error=!1},onError(){this.error="load",this.showProgress=!1},onUnauthorized(){this.error="unauthorized",this.showProgress=!1}}},Yt=["id","data-page"];function Xt(e,t,o,n,r,s){const a=g("ErrorPage"),h=g("LoadingPage");return d(),S("div",{id:`page${o.page}`,"data-page":o.page,class:"page",style:ge(s.style)},[r.error?(d(),p(a,{key:0,"two-pages":s.settings.twoPages,type:r.error},null,8,["two-pages","type"])):r.showProgress&&!r.loaded?(d(),p(h,{key:1,"two-pages":s.settings.twoPages},null,8,["two-pages"])):(d(),p(he(s.component),{key:2,ref:"pageComponent",book:o.book,page:1,src:s.src,onError:s.onError,onLoad:s.onLoad,onUnauthorized:s.onUnauthorized},null,40,["book","src","onError","onLoad","onUnauthorized"]))],12,Yt)}const Be=f(Kt,[["render",Xt],["__scopeId","data-v-87996fa1"]]),Qt=.5,Jt={name:"ScaleForScroll",emits:["click"],data(){return{mdiMagnifyMinusOutline:Ae}},computed:{...v(u,{scale:e=>e.clientSettings.scale}),showReset(){return this.scale!=y},style(){return{cursor:this.scale==y?"zoom-in":"all-scroll"}}},methods:{...b(u,["setSettingsClient"]),clearSelection(){window.getSelection&&window.getSelection().removeAllRanges()},onDoubleClick(){this.clearSelection();const e=this.scale+Qt;this.setSettingsClient({scale:e})},scaleReset(){this.setSettingsClient({scale:y})}}};function Zt(e,t,o,n,r,s){const a=Fe("drag-scroller");return D((d(),S("div",{class:"scaleForScroll",style:ge(s.style),onDblclick:t[0]||(t[0]=(...h)=>s.onDoubleClick&&s.onDoubleClick(...h))},[ze(e.$slots,"default",{},void 0,!0),s.showReset?(d(),p(R,{key:0,class:"resetIcon",onClick:ce(s.scaleReset,["stop"])},{default:c(()=>[k(_(r.mdiMagnifyMinusOutline),1)]),_:1},8,["onClick"])):w("",!0)],36)),[[a,,void 0,{onlyX:!0}]])}const Te=f(Jt,[["render",Zt],["__scopeId","data-v-b24267c0"]]),eo={name:"HorizontalPages",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0},page:{type:Number,required:!0}},emits:["click"],computed:{...P(u,["isCoverPage","isReadInReverse"]),showSecondPage(){return this.getSettings(this.book).twoPages&&this.page<this.book.maxPage&&!this.isCoverPage(this.book,this.page)},showPageOne(){return!this.isReadInReverse||this.showSecondPage},showPageTwo(){return this.isReadInReverse||this.showSecondPage},pageOne(){return this.isReadInReverse?this.page+1:this.page},pageTwo(){return this.isReadInReverse?this.page:this.page+1}},methods:{...b(u,["getSettings"])}};function to(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,{class:"noWrap"},{default:c(()=>[s.showPageOne?(d(),p(a,{key:0,ref:"pageOne",book:o.book,page:s.pageOne,class:"horizontalPage"},null,8,["book","page"])):w("",!0),s.showPageTwo?(d(),p(a,{key:1,book:o.book,page:s.pageTwo,class:"horizontalPage"},null,8,["book","page"])):w("",!0)]),_:1})}const oo=f(eo,[["render",to],["__scopeId","data-v-9a560964"]]),so={name:"PageChangeLink",props:{direction:{type:String,required:!0}},head(){return this.prefetchLinks(this.params,this.computedDirection)},computed:{...P(u,["isVertical","isFirstPage","isLastPage"]),...v(u,{params(e){return e.routes[this.computedDirection]}}),computedDirection(){return this.normalizeDirection(this.direction)},show(){return this.computedDirection==="prev"?!this.isFirstPage:!this.isLastPage},pageChangeClass(){let e="pageChange";return e+=this.isVertical?"Row":"Column",e},directionClass(){let e=this.direction;return this.isVertical&&(e+="Vertical"),e},route(){return this.toRoute(this.params)},label(){return this.linkLabel(this.computedDirection,"Page")}},methods:{...b(u,["getSettings","linkLabel","normalizeDirection","prefetchLinks","toRoute"])}};function ro(e,t,o,n,r,s){const a=g("router-link");return s.show?(d(),p(a,{key:0,to:s.route,"aria-label":s.label,class:B({[s.pageChangeClass]:!0,[s.directionClass]:!0}),onClick:t[0]||(t[0]=h=>h.stopImmediatePropagation())},null,8,["to","aria-label","class"])):w("",!0)}const ao=f(so,[["render",ro],["__scopeId","data-v-9ade7d96"]]),no=48,io=48,lo={name:"PagerHorizontal",components:{HorizontalPages:oo,PageChangeLink:ao},props:{book:{type:Object,required:!0}},data(){return{activePage:0,pages:[]}},computed:{...P(u,["isReadInReverse"]),...v(u,{prevBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.prev},nextBook:e=>{var t;return(t=e.routes.books)==null?void 0:t.next},storePage:e=>e.page,storePk:e=>e.books.current.pk}),twoPages(){return this.getSettings(this.book).twoPages},windowIndex(){const e=this.activePage-this.pages[0];return Math.min(Math.max(0,e),this.book.maxPage)}},watch:{twoPages(){this.setActivePage(this.storePage,!0)},storePage(e){if(this.book.pk===this.storePk){this.activePage=e;const t=this.pages.at(0),o=this.pages.at(-1);(e<t||e>o)&&this.setPages()}},prevBook(e){this.book.pk===e.pk&&(this.activePage=this.book.maxPage)},nextBook(e){this.book.pk===e.pk&&(this.activePage=0)}},created(){this.book.pk===this.storePk?this.activePage=+this.$route.params.page:this.book.pk===this.prevBook.pk?this.activePage=this.book.maxPage:this.activePage=0,this.setPages()},methods:{...b(u,["getSettings","setBookChangeFlag","setActivePage"]),setPages(){const e=Math.max(this.activePage-no,0),t=Math.min(this.activePage+io,this.book.maxPage),o=ke.range(e,t+1);this.pages=o}}};function co(e,t,o,n,r,s){const a=g("PageChangeLink"),h=g("HorizontalPages");return d(),p(Pe,{"show-arrows":"",continuous:"","model-value":s.windowIndex,reverse:e.isReadInReverse},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,V(r.pages,m=>(d(),p(_e,{key:`c/${o.book.pk}/${m}`,class:"windowItem",disabled:"",eager:m>=e.storePage-1&&m<=e.storePage+2,"model-value":m,transition:!0},{default:c(()=>[l(h,{book:o.book,page:m},null,8,["book","page"])]),_:2},1032,["eager","model-value"]))),128))]),_:1},8,["model-value","reverse"])}const re=f(lo,[["render",co],["__scopeId","data-v-e04bbc00"]]);function ye(e,t){const{self:o=!1}=t.modifiers??{},n=t.value,r=typeof n=="object"&&n.options||{passive:!0},s=typeof n=="function"||"handleEvent"in n?n:n.handler,a=o?e:t.arg?document.querySelector(t.arg):window;a&&(a.addEventListener("scroll",s,r),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:s,options:r,target:o?void 0:a})}function De(e,t){var s;if(!((s=e._onScroll)!=null&&s[t.instance.$.uid]))return;const{handler:o,options:n,target:r=e}=e._onScroll[t.instance.$.uid];r.removeEventListener("scroll",o,n),delete e._onScroll[t.instance.$.uid]}function uo(e,t){t.value!==t.oldValue&&(De(e,t),ye(e,t))}const ho={mounted:ye,unmounted:De,updated:uo},go=12,ae=250,po={name:"PagerVertical",components:{BookPage:Be,ScaleForScroll:Te},props:{book:{type:Object,required:!0}},data(){return{innerHeight:window.innerHeight,innerWidth:window.innerWidth,intersectorOn:!1,programmaticScroll:!1}},computed:{...v(u,{storePage:e=>e.page}),...pe(u,["reactWithScroll"]),settings(){return this.getSettings(this.book)},readInReverse(){return this.settings.readInReverse},items(){var o;const e=(o=this.book)!=null&&o.maxPage?this.book.maxPage+1:0,t=ke.range(0,e);return this.readInReverse&&t.reverse(),t},visibleItems(){var e;return Math.min(((e=this.book)==null?void 0:e.maxPage)??0,go)}},watch:{storePage(e){this.reactWithScroll&&this.scrollToPage(e)}},mounted(){window.addEventListener("resize",this.onResize),setTimeout(()=>{this.scrollToPage(this.storePage)},ae)},beforeUnmount(){window.removeEventListener("resize",this.onResize)},methods:{...b(u,["setActivePage","setBookChangeFlag","getSettings"]),onIntersect(e,t){if(e&&this.intersectorOn){const n=+t[0].target.dataset.page;this.setActivePage(n,!1)}},onScroll(){if(this.programmaticScroll)return;this.intersectorOn=!0;const e=this.$refs.verticalScroll.$el,t=e.scrollTop;if(this.storePage===0&&t===0)this.setBookChangeFlag("prev");else if(this.storePage===this.book.maxPage){const o=e.scrollTopMax||e.scrollHeight-e.clientTop;window.innerHeight+t+1>=o&&this.setBookChangeFlag("next")}},scrollToPage(e){this.intersectorOn=!1,this.programmaticScroll=!0;const t=this.$refs.verticalScroll;t?t.scrollToIndex(e):console.debug("Can't find verticalScroll component."),setTimeout(()=>{this.programmaticScroll=!1},ae)},onResize(){this.innerHeight=window.innerHeight,this.innerWidth=window.innerWidth}}},mo=["data-page"];function ko(e,t,o,n,r,s){const a=g("BookPage"),h=g("ScaleForScroll");return d(),p(h,null,{default:c(()=>[D((d(),p(Bt,{id:"verticalScroll",key:s.readInReverse,ref:"verticalScroll",items:s.items,height:r.innerHeight,width:r.innerWidth},{default:c(({item:m})=>[l(a,{book:o.book,page:m,class:"verticalPage"},null,8,["book","page"]),D(i("div",{class:"pageTracker","data-page":m},null,8,mo),[[Ue,{handler:s.onIntersect,options:{threshold:[.75]}},void 0,{quiet:!0}]])]),_:1},8,["items","height","width"])),[[ho,s.onScroll,"#verticalScroll"]])]),_:1})}const ne=f(po,[["render",ko],["__scopeId","data-v-97638fc3"]]),ie=ue(de(()=>"@/components/reader/pager/pager-full-pdf.vue")),fo={name:"PagerSelector",components:{PagerHorizontal:re,PagerPDF:ie,PagerVertical:ne},props:{book:{type:Object,required:!0}},emits:["click"],head(){return this.prefetchBook(this.book)},computed:{...P(u,["isVertical","cacheBook"]),...v(u,{storePk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0}}),readFullPdf(){return this.book.fileType=="PDF"&&this.cacheBook},component(){return this.readFullPdf?ie:this.isVertical?ne:re}},watch:{$route(e){+e.params.pk===this.book.pk&&this.setActivePage(+e.params.page,!0)}},created(){this.book.pk===this.storePk&&this.setActivePage(+this.$route.params.page,!0)},methods:{...b(u,["getSettings","setActivePage","prefetchBook"])}};function bo(e,t,o,n,r,s){return d(),p(he(s.component),{book:o.book},null,8,["book"])}const _o=f(fo,[["render",bo]]),Po={name:"BooksWindow",components:{BookChangeActivator:Et,Pager:_o},emits:["click"],computed:{...P(u,["isBTT"]),...v(u,{books:e=>[e.books.prev,e.books.current,e.books.next].filter(Boolean),bookChange:e=>e.bookChange,currentBookPk:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk)||0},bookRoutes:e=>e.routes.books})},watch:{$route(e,t){(!t||!t.params||+e.params.pk!=+t.params.pk)&&this.loadBooks(e.params)}},beforeMount(){this.setBookChangeFlag(),this.loadBooks(this.$route.params)},methods:{...b(u,["setBookChangeFlag","loadBooks"]),click(){this.setBookChangeFlag(),this.$emit("click")},eager(e){return this.bookChange&&this.bookRoutes[this.bookChange]&&this.bookRoutes[this.bookChange].pk===e}}};function vo(e,t,o,n,r,s){const a=g("BookChangeActivator"),h=g("Pager");return d(),p(Pe,{id:"booksWindow",direction:"vertical","model-value":e.currentBookPk,reverse:e.isBTT,"show-arrows":"",onClick:s.click},{prev:c(()=>[l(a,{direction:"prev"})]),next:c(()=>[l(a,{direction:"next"})]),default:c(()=>[(d(!0),S(T,null,V(e.books,m=>(d(),p(_e,{key:`c/${m.pk}`,class:"windowItem",disabled:"",eager:s.eager(m.pk),value:m.pk,transition:!0},{default:c(()=>[l(h,{book:m,onClick:s.click},null,8,["book","onClick"])]),_:2},1032,["eager","value"]))),128))]),_:1},8,["model-value","reverse","onClick"])}const So=f(Po,[["render",vo],["__scopeId","data-v-2a90783e"]]),wo={name:"DownloadPanel",data(){return{mdiDownload:Me,mdiFileImage:We}},computed:{...P(u,["activeTitle","routeParams"]),...v(u,{currentBook:e=>{var t;return(t=e.books)==null?void 0:t.current},storePage:e=>e.page}),downloadURL(){return dt(this.currentBook)},filename(){var e;return(e=this.currentBook)==null?void 0:e.filename},pageSrc(){const{pk:e,mtime:t}=this.currentBook;return ht({pk:e,page:this.storePage,mtime:t})},pageName(){return`${this.activeTitle} - page ${this.storePage}.jpg`}},methods:{...b(q,["downloadIOSPWAFix"]),downloadPage(){this.downloadIOSPWAFix(this.pageSrc,this.pageName)},downloadBook(){this.downloadIOSPWAFix(this.downloadURL,this.filename)}}},Ro={key:0,id:"downloadPanel"};function Co(e,t,o,n,r,s){return e.currentBook?(d(),S("div",Ro,[l(H,{onClick:s.downloadPage},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiFileImage),1)]),_:1}),k("Download Page "+_(e.storePage),1)]),_:1})]),_:1},8,["onClick"]),l(H,{onClick:s.downloadBook},{default:c(()=>[l(Y,null,{default:c(()=>[l(R,null,{default:c(()=>[k(_(r.mdiDownload),1)]),_:1}),k("Download Book ")]),_:1})]),_:1},8,["onClick"])])):w("",!0)}const Bo=f(wo,[["render",Co],["__scopeId","data-v-9e01f4cb"]]),To={name:"KeyboardShortcutsPanel",data(){return{mdiMenuLeft:He,mdiMenuRight:je,mdiKeyboardOutline:Ge,mdiKeyboardSpace:qe,mdiAppleKeyboardShift:Ke}},computed:{...P(q,["isMobile"])}},C=e=>(Ye("data-v-a8b4ac47"),e=e(),Xe(),e),yo=C(()=>i("h4",null,"Navigation",-1)),Do={class:"highlight-table"},Io=C(()=>i("td",null,"Previous page",-1)),Lo=C(()=>i("td",null,"Next page",-1)),xo=C(()=>i("tr",null,[i("td",null,","),i("td",null,[k("Next "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),$o=C(()=>i("tr",null,[i("td",null,"."),i("td",null,[k("Previous "),i("em",null,"only"),k(" one page in two page mode.")])],-1)),Oo=C(()=>i("tr",null,[i("td",null,"p"),i("td",null,"Previous Book")],-1)),No=C(()=>i("tr",null,[i("td",null,"n"),i("td",null,"Next Book")],-1)),Vo=C(()=>i("tr",null,[i("td",null,"esc"),i("td",null,"Close book")],-1)),Eo=C(()=>i("h4",null,"Fit Page To",-1)),Ao=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"s"),i("td",null,"screen")]),i("tr",null,[i("td",null,"h"),i("td",null,"screen height")]),i("tr",null,[i("td",null,"w"),i("td",null,"screen width")]),i("tr",null,[i("td",null,"o"),i("td",null,"Show page at original size")]),i("tr",null,[i("td",null,"2"),i("td",null,"Toggle two page view")]),i("tr",null,[i("td",null,"r"),i("td",null,"Read Right to Left")]),i("tr",null,[i("td",null,"l"),i("td",null,"Read Left to Right")]),i("tr",null,[i("td",null,"t"),i("td",null,"Read Top to Bottom")]),i("tr",null,[i("td",null,"b"),i("td",null,"Read in Bottom to Top")])])],-1)),Fo=C(()=>i("h4",null,"Other",-1)),zo=C(()=>i("table",{class:"highlight-table"},[i("tbody",null,[i("tr",null,[i("td",null,"m"),i("td",null,"Show comic's metadata")]),i("tr",null,[i("td",null,"double click"),i("td",null,"Zoom page")])])],-1));function Uo(e,t,o,n,r,s){return e.isMobile?w("",!0):(d(),p(It,{key:0},{default:c(()=>[l(Tt,{id:"readerKeyboardShortcuts"},{default:c(()=>[l(yt,{id:"shortcutsTitle"},{default:c(()=>[l(R,{id:"keyboardIcon"},{default:c(()=>[k(_(r.mdiKeyboardOutline),1)]),_:1}),k("Keyboard Shortcuts ")]),_:1}),l(Dt,null,{default:c(()=>[yo,i("table",Do,[i("tbody",null,[i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuLeft),1)]),_:1}),k(", j, "),i("div",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiAppleKeyboardShift),1)]),_:1}),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})])]),Io]),i("tr",null,[i("td",null,[l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiMenuRight),1)]),_:1}),k(", k, "),l(R,{class:"keyIcon",density:"compact"},{default:c(()=>[k(_(r.mdiKeyboardSpace),1)]),_:1})]),Lo]),xo,$o,Oo,No,Vo])]),Eo,Ao,Fo,zo]),_:1})]),_:1})]),_:1}))}const Mo=f(To,[["render",Uo],["__scopeId","data-v-a8b4ac47"]]),Ie=["fitTo","readingDirection","twoPages"];Object.freeze(Ie);const Wo={name:"ReaderSettingsPanel",data(){return{isGlobalScope:!1,mdiOpenInNew:Qe}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["isVertical","isPDF","cacheBook"]),...v(u,{choices:e=>e.choices,validBook:e=>{var t;return!!((t=e.books)!=null&&t.current)},selectedSettings(e){var t,o;return this.isGlobalScope||!((t=e.books)!=null&&t.current)?e.readerSettings:(o=e.books)==null?void 0:o.current.settings},isClearSettingsButtonDisabled(e){var t,o;if(this.isGlobalScope||!((t=e.books)!=null&&t.current))return!0;for(const n of Ie){const r=(o=e.books)==null?void 0:o.current.settings[n];if(!e.choices.nullValues.has(r))return!1}return!0},bookInBrowserURL(e){var t,o;return(t=e.books)!=null&&t.current?Je((o=e.books)==null?void 0:o.current):""}}),...pe(u,["readRtlInReverse"]),fitToChoices(){return this.choicesWithoutNull("fitTo")},readingDirectionChoices(){return this.choicesWithoutNull("readingDirection")},disableTwoPages(){return this.isVertical||this.isPDF&&this.cacheBook},disableCacheBook(){return this.isVertical&&this.isPDF}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["clearSettingsLocal","setSettingsGlobal","setSettingsLocal","setSettingsClient"]),settingsDialogChanged(e){this.isGlobalScope?this.setSettingsGlobal(e):this.setSettingsLocal(e)},choicesWithoutNull(e){const t=[];for(const o of this.choices[e])o.value&&t.push(o);return Object.freeze(t),t},_keyUpListener(e){if(e.stopPropagation(),this.isAuthDialogOpen)return;let t;switch(e.key){case"w":t={fitTo:"W"};break;case"h":t={fitTo:"H"};break;case"s":t={fitTo:"S"};break;case"o":t={fitTo:"O"};break;case"2":t={twoPages:!this.selectedSettings.twoPages};break;case"l":t={readingDirection:"ltr"};break;case"r":t={readingDirection:"rtl"};break;case"t":t={readingDirection:"ttb"};break;case"b":t={readingDirection:"bbt"};break}t&&this.setSettingsLocal(t)}}},Ho={key:0,id:"readerSettings"},jo=["href"];function Go(e,t,o,n,r,s){return e.validBook?(d(),S("div",Ho,[l(U,{modelValue:r.isGlobalScope,"onUpdate:modelValue":t[0]||(t[0]=a=>r.isGlobalScope=a),density:"compact",label:"Scope","hide-details":"auto"},{default:c(()=>[l(L,{label:"Only this comic",value:!1}),l(L,{label:"Default for all comics",value:!0})]),_:1},8,["modelValue"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Display","hide-details":"auto","model-value":e.selectedSettings.fitTo,"onUpdate:modelValue":t[1]||(t[1]=a=>s.settingsDialogChanged({fitTo:a}))},{default:c(()=>[(d(!0),S(T,null,V(s.fitToChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{disabled:s.disableTwoPages,class:"displayTwoPages",density:"compact",label:"Two pages","hide-details":"auto","model-value":e.selectedSettings.twoPages,"true-value":!0,indeterminate:e.selectedSettings.twoPages===null||e.selectedSettings.twoPages===void 0,"onUpdate:modelValue":t[2]||(t[2]=a=>s.settingsDialogChanged({twoPages:a}))},null,8,["disabled","model-value","indeterminate"]),l(U,{class:"displayRadioGroup",density:"compact",label:"Reading Direction","hide-details":"auto","model-value":e.selectedSettings.readingDirection,"onUpdate:modelValue":t[3]||(t[3]=a=>s.settingsDialogChanged({readingDirection:a}))},{default:c(()=>[(d(!0),S(T,null,V(s.readingDirectionChoices,a=>(d(),p(L,{key:a.value,label:a.title,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"]),l(M,{"model-value":e.cacheBook,class:"cacheBook",density:"compact",disabled:s.disableCacheBook,label:"Cache Entire Book","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[4]||(t[4]=a=>e.setSettingsClient({cacheBook:a}))},null,8,["model-value","disabled"]),e.isPDF?(d(),S("a",{key:0,id:"readPDFInBrowser",href:e.bookInBrowserURL,target:"_blank"},[l(R,null,{default:c(()=>[k(_(r.mdiOpenInNew),1)]),_:1}),k("Read PDF in Browser ")],8,jo)):w("",!0),r.isGlobalScope?(d(),p(M,{key:1,"model-value":e.selectedSettings.readRtlInReverse,class:"readRtlInReverse",density:"compact",label:"Read RTL Comics as LTR","hide-details":"auto","true-value":!0,"onUpdate:modelValue":t[5]||(t[5]=a=>s.settingsDialogChanged({readRtlInReverse:a}))},null,8,["model-value"])):w("",!0),r.isGlobalScope?w("",!0):(d(),p(me,{key:2,id:"clearSettingsButton",disabled:e.isClearSettingsButtonDisabled,title:"Use the default settings for all comics for this comic",onClick:e.clearSettingsLocal},{default:c(()=>[k(" Clear Comic Settings ")]),_:1},8,["disabled","onClick"]))])):w("",!0)}const qo=f(Wo,[["render",Go],["__scopeId","data-v-599636e1"]]),Ko={name:"ReaderSettingsSuperPanel",components:{DownloadPanel:Bo,ReaderKeyboardShortcutsPanel:Mo,ReaderSettingsPanel:qo}};function Yo(e,t,o,n,r,s){const a=g("ReaderSettingsPanel"),h=g("ReaderKeyboardShortcutsPanel"),m=g("DownloadPanel");return d(),S(T,null,[l(a),l(X),l(h),l(X),l(m)],64)}const Xo=f(Ko,[["render",Yo]]),Qo={name:"ReaderSettingsDrawer",components:{SettingsDrawer:_t,ReaderSettingsSuperPanel:Xo}};function Jo(e,t,o,n,r,s){const a=g("ReaderSettingsSuperPanel"),h=g("SettingsDrawer");return d(),p(h,{title:"Reader",temporary:"","disable-resize-watcher":""},{panel:c(()=>[l(a)]),_:1})}const Zo=f(Qo,[["render",Jo]]),le={a:et,f:tt,s:ot},es={a:"Story Arc",f:"Folder",s:"Series"},ts={name:"ReaderArcSelect",components:{ToolbarSelect:gt},computed:{...v(u,{arcGroup:e=>{var t;return((t=e.arc)==null?void 0:t.group)||"s"},arc:e=>e.arc,arcName:e=>{for(const t of e.arcs)if(e.arc.group===t.group&&e.arc.pks===t.pks)return t.name;return"Unknown"},arcItems:e=>{const t=[];for(const o of e.arcs){const n={value:o,title:o.name,group:o.group,subtitle:es[o.group],prependIcon:le[o.group]};t.push(n)}return t}})},methods:{...b(u,["loadBooks"]),arcIcon(e){return le[e]},checkIcon(e){return e===this.arc?Ze:""},onUpdate(e){const t=this.$route.params;if(!t)return;const o={group:e.group,pks:e.pks},n={...t,arc:o};this.loadBooks(n)}}},os={id:"arcPos"};function ss(e,t,o,n,r,s){const a=g("ToolbarSelect");return d(),p(a,{"model-value":e.arc,class:"arcSelect","select-label":"reading order",items:e.arcItems,disabled:!e.arcItems||e.arcItems.length<=1,"onUpdate:modelValue":s.onUpdate},{item:c(({item:h,props:m})=>[l(H,W(m,{density:"compact",variant:"plain","prepend-icon":h.raw.prependIcon,subtitle:h.raw.subtitle,"append-icon":s.checkIcon(m.value)}),null,16,["prepend-icon","subtitle","append-icon"])]),selection:c(({item:h,props:m})=>[l(R,W({size:"large"},m,{class:"arcSelectIcon"}),{default:c(()=>[k(_(s.arcIcon(h.raw.group)),1)]),_:2},1040),i("span",os,_(e.arc.index)+" / "+_(e.arc.count),1)]),_:1},8,["model-value","items","disabled","onUpdate:modelValue"])}const rs=f(ts,[["render",ss],["__scopeId","data-v-42a57aca"]]),as={name:"ReaderTitleToolbar",components:{MetadataDialog:pt,ReaderArcSelect:rs,SettingsDrawerButton:Pt},data(){return{mdiClose:st,routeChanged:!1}},head(){return{meta:[{hid:"description",name:"description",content:`reader ${this.activeTitle} page ${this.storePage}`}]}},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeTitle"]),...v(u,{currentBook:e=>{var t;return((t=e.books)==null?void 0:t.current)||{}},closeRoute:e=>e.routes.close,empty:e=>e.empty,subtitle:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.name)||""}}),closeBookRoute(){var t;const e={name:"browser",params:this.closeRoute};return e.params?e.hash=`#card-${(t=this.currentBook)==null?void 0:t.pk}`:e.params=window.CODEX.LAST_ROUTE||O.browser.breadcrumbs[0],e},title(){return this.activeTitle},extensionHeight(){let e=32;return this.subtitle&&(e*=2),e}},watch:{$route(e,t){t&&(this.routeChanged=!0)}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(q,["setTimestamp"]),...b(u,["routeToDirection","routeToDirectionOne","routeToBook","setBookChangeFlag"]),openMetadata(){this.$refs.metadataDialog.dialog=!0},onCloseBook(){this.routeChanged&&this.setTimestamp()},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case"Escape":this.$refs.closeBook.$el.click();break;case"m":this.empty||this.openMetadata();break}}}},ns={id:"title"},is={key:0,id:"subtitle"};function ls(e,t,o,n,r,s){const a=g("ReaderArcSelect"),h=g("MetadataDialog"),m=g("SettingsDrawerButton");return d(),p(St,{id:"readerToolbarTop",density:"compact","extension-height":s.extensionHeight},rt({default:c(()=>[l(z,null,{default:c(()=>[l(me,{ref:"closeBook",class:"closeBook",to:s.closeBookRoute,size:"large",density:"compact",variant:"plain",onClick:s.onCloseBook},{default:c(()=>[k(" close book ")]),_:1},8,["to","onClick"])]),_:1}),l(mt),e.empty?w("",!0):(d(),p(z,{key:0},{default:c(()=>[l(a),l(h,{ref:"metadataDialog",group:"c",toolbar:!0,book:e.currentBook},null,8,["book"])]),_:1})),l(z,null,{default:c(()=>[l(m)]),_:1})]),_:2},[s.title?{name:"extension",fn:c(()=>[l(vt,{class:"readerTitle"},{default:c(()=>[i("div",ns,_(s.title),1),e.subtitle?(d(),S("div",is,_(e.subtitle),1)):w("",!0)]),_:1})]),key:"0"}:void 0]),1032,["extension-height"])}const Le=f(as,[["render",ls],["__scopeId","data-v-0217ea46"]]),cs={name:"ReaderEmpty",components:{ReaderTopToolbar:Le},data(){return{mdiBookRemoveOutline:at}}};function us(e,t,o,n,r,s){const a=g("ReaderTopToolbar");return d(),S(T,null,[l(a),l(be,{class:"empty",headline:"Book Not Found",title:"Close the reader and find another book",icon:r.mdiBookRemoveOutline},null,8,["icon"])],64)}const ds=f(cs,[["render",us],["__scopeId","data-v-65d65e48"]]),hs={name:"ReaderBookChangeNavButton",components:{PaginationNavButton:fe},props:{direction:{type:String,required:!0}},computed:{...P(u,["isBTT"]),...v(u,{toRoute(e){var o;const t=(o=e==null?void 0:e.routes)==null?void 0:o.books[this.direction];return t?{params:{...t}}:""}}),title(){return(this.direction==="prev"?"Previous":"Next")+" Book"},icon(){return this.bookChangeIcon(this.direction)},classes(){return{bookChangeNavButtonLeft:this.direction==="prev",bookChangeNavButtonRight:this.direction==="next"}}},methods:{...b(u,["bookChangeIcon"])}};function gs(e,t,o,n,r,s){const a=g("PaginationNavButton");return e.toRoute?(d(),p(a,{key:0,class:B(s.classes),icon:"",variant:"plain",title:s.title,to:e.toRoute},{default:c(()=>[l(R,null,{default:c(()=>[k(_(s.icon),1)]),_:1})]),_:1},8,["class","title","to"])):w("",!0)}const ps=f(hs,[["render",gs],["__scopeId","data-v-117f651c"]]),ms={name:"ReaderNavButton",components:{PaginationNavButton:fe},props:{value:{type:Number,required:!0},twoPages:{type:Boolean,default:!1}},computed:{...P(u,["isVertical"]),...v(u,{storePage:e=>e.page,toRoute(e){if(!this.isVertical)return{params:{pk:e.books.current.pk,page:this.value}}},isBookPrev:e=>!!e.routes.books.prev,isBookNext:e=>!!e.routes.books.next}),classes(){return{readerNavButtonLeft:!this.isBookPrev&&this.value===0,readerNavButtonRight:!this.isBookNext&&this.value!=0}},title(){return"Page "+this.value},disabled(){return this.value===this.storePage||this.twoPages&&!!(this.value%2)&&this.value-1===this.storePage}},methods:{...b(u,["setActivePage"]),onClick(){this.isVertical&&this.setActivePage(this.value,!0)}}};function ks(e,t,o,n,r,s){const a=g("PaginationNavButton");return d(),p(a,{key:e.isVertical,disabled:s.disabled,class:B(["readerNavButton",s.classes]),title:s.title,to:e.toRoute,onClick:s.onClick},{default:c(()=>[k(_(o.value),1)]),_:1},8,["disabled","class","title","to","onClick"])}const fs=f(ms,[["render",ks],["__scopeId","data-v-530fba8c"]]),x="prev",$="next",bs={name:"ReaderNavToolbar",components:{PaginationSlider:kt,ReaderNavButton:fs,PaginationToolbar:ft,ReaderBookChangeNavButton:ps},computed:{...P(I,["isAuthDialogOpen"]),...P(u,["activeSettings","isReadInReverse","isVertical"]),...v(u,{storePage:e=>e.page,key(e){var t,o;return`${(o=(t=e.books)==null?void 0:t.current)==null?void 0:o.pk}:${this.step}:${this.isReadInReverse}`},maxPage:e=>{var t,o;return((o=(t=e.books)==null?void 0:t.current)==null?void 0:o.maxPage)||0}}),twoPages(){return this.activeSettings.twoPages},step(){return this.activeSettings.twoPages?2:1},trackColor(){return this.twoPages&&+this.storePage>=this.maxPage-1?this.$vuetify.theme.current.colors.primary:""},min(){return this.isReadInReverse?this.maxPage:0},max(){return this.isReadInReverse?0:this.maxPage},bookPrev(){return this.isReadInReverse?"next":"prev"},bookNext(){return this.isReadInReverse?"prev":"next"}},mounted(){document.addEventListener("keyup",this._keyUpListener)},beforeUnmount(){document.removeEventListener("keyup",this._keyUpListener)},methods:{...b(u,["routeToBook","routeToDirection","routeToDirectionOne","routeToPage","setActivePage"]),onSliderUpdate(e){this.isVertical?this.setActivePage(e,!0):this.routeToPage(e)},_keyUpListener(e){if(e.stopPropagation(),!this.isAuthDialogOpen)switch(e.key){case" ":!e.shiftKey&&window.innerHeight+window.scrollY+1>=document.body.scrollHeight?this.routeToDirection($):e.shiftKey&&window.scrollY===0&&this.routeToDirection(x);break;case"j":case"ArrowRight":this.routeToDirection($);break;case"k":case"ArrowLeft":this.routeToDirection(x);break;case",":this.routeToDirectionOne(x);break;case".":this.routeToDirectionOne($);break;case"n":this.routeToBook($);break;case"p":this.routeToBook(x);break}}}};function _s(e,t,o,n,r,s){const a=g("ReaderBookChangeNavButton"),h=g("ReaderNavButton"),m=g("PaginationSlider"),E=g("PaginationToolbar");return e.maxPage?(d(),p(E,{key:0,id:"readerToolbarNav"},{default:c(()=>[l(a,{direction:s.bookPrev,narrow:!1},null,8,["direction"]),l(h,{value:s.min,"two-pages":s.twoPages},null,8,["value","two-pages"]),(d(),p(m,{key:e.key,"model-value":e.storePage,min:0,max:e.maxPage,step:s.step,"track-color":s.trackColor,reverse:e.isReadInReverse,"onUpdate:modelValue":t[0]||(t[0]=A=>s.onSliderUpdate(A))},null,8,["model-value","max","step","track-color","reverse"])),l(h,{value:s.max,"two-pages":s.twoPages},null,8,["value","two-pages"]),l(a,{direction:s.bookNext,narrow:!1},null,8,["direction"])]),_:1})):w("",!0)}const Ps=f(bs,[["render",_s],["__scopeId","data-v-dab0637e"]]),vs={name:"MainReader",components:{BooksWindow:So,ReaderEmpty:ds,ReaderNavToolbar:Ps,ReaderTopToolbar:Le,ReaderSettingsDrawer:Zo,Unauthorized:Rt},data(){return{showToolbars:!1}},computed:{...P(I,["isAuthorized"]),...v(I,{user:e=>e.user}),...v(u,{empty:e=>e.empty})},watch:{user(){this.loadReaderSettings()},isAuthorized(){this.loadReaderSettings()}},beforeMount(){u().$reset,this.loadReaderSettings()},methods:{...b(u,["loadReaderSettings"]),toggleToolbars(){this.showToolbars=!this.showToolbars}}},Ss={key:0},ws={id:"readerContainer"};function Rs(e,t,o,n,r,s){const a=g("ReaderTopToolbar"),h=g("BooksWindow"),m=g("ReaderNavToolbar"),E=g("ReaderEmpty"),A=g("ReaderSettingsDrawer"),xe=g("Unauthorized");return e.isAuthorized?(d(),p(Ct,{key:0,id:"readerWrapper"},{default:c(()=>[e.empty?(d(),p(E,{key:1})):(d(),S("div",Ss,[i("div",ws,[l(nt,null,{default:c(()=>[D(l(a,null,null,512),[[Q,r.showToolbars]])]),_:1}),l(h,{onClick:s.toggleToolbars},null,8,["onClick"]),l(it,null,{default:c(()=>[D(l(m,null,null,512),[[Q,r.showToolbars]])]),_:1})])])),l(A)]),_:1})):(d(),p(xe,{key:1}))}const Cs=f(vs,[["render",Rs],["__scopeId","data-v-dab9a44d"]]),Es=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"}));export{Es as r,u};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.bookChangeDrawer[data-v-03e41a14]{opacity:.75!important;z-index:15!important}.drawerActivated[data-v-03e41a14]{width:33vw!important}.prevCursor[data-v-03e41a14]{cursor:n-resize}.nextCursor[data-v-03e41a14]{cursor:s-resize}.navLink[data-v-03e41a14]{display:block;height:100%}.bookChangeIcon[data-v-03e41a14]{top:50%;left:50%;transform:translate(-50%) translateY(-50%);height:25%;width:25%;color:#fff}.bookChangeColumn[data-v-db3eb561]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.leftPos[data-v-db3eb561]{left:0}.rightPos[data-v-db3eb561]{right:0}.upCursor[data-v-db3eb561]{cursor:n-resize}.downCursor[data-v-db3eb561]{cursor:s-resize}.pageLoading[data-v-04027168]{display:inline-flex;height:100vh;width:100vw;justify-content:center;align-items:center}.twoPages[data-v-04027168]{max-width:50vw}.pagePlaceholder[data-v-04027168]{height:50%!important;width:50%!important}.pageError[data-v-417a4cab]{height:100vh}.pageError[data-v-417a4cab] .v-icon,.pageError[data-v-417a4cab] .v-empty-state__headline{color:rgb(var(--v-theme-error))!important}.twoPages[data-v-417a4cab]{max-width:50vw}.img[data-v-559e2ecc]{transition:transform .5s ease-in-out}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{object-fit:contain}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc],.fitToHeight[data-v-559e2ecc],.fitToHeightTwo[data-v-559e2ecc],.fitToHeightVertical[data-v-559e2ecc]{height:100vh}.fitToScreenTwo[data-v-559e2ecc]{max-width:50vw}.fitToWidth[data-v-559e2ecc],.fitToWidthVertical[data-v-559e2ecc],.fitToScreen[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{width:100vw}.fitToWidthTwo[data-v-559e2ecc]{width:50vw}.fitToOrig[data-v-559e2ecc],.fitToOrigTwo[data-v-559e2ecc],.fitToOrigVertical[data-v-559e2ecc]{object-fit:none}.page[data-v-87996fa1]{font-size:0}.scaleForScroll[data-v-b24267c0]{overflow:scroll;-webkit-overflow-scrolling:touch}.resetIcon[data-v-b24267c0]{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 45px);right:50%;transform:translate(50%);z-index:200;font-size:50px;color:#fff;filter:drop-shadow(1px 1px 1px black);opacity:.666}.resetIcon[data-v-b24267c0]:hover{opacity:1}.noWrap[data-v-9a560964]{white-space:nowrap}.horizontalPage[data-v-9a560964]{display:inline-block}.pageChangeColumn[data-v-9ade7d96]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.pageChangeRow[data-v-9ade7d96]{position:fixed;height:33vh;width:100%}.prev[data-v-9ade7d96]{left:0;cursor:w-resize}.prevVertical[data-v-9ade7d96]{top:0;cursor:n-resize}.next[data-v-9ade7d96]{right:0;cursor:e-resize}.nextVertical[data-v-9ade7d96]{bottom:0;cursor:s-resize}.windowItem[data-v-e04bbc00]{font-size:0}.verticalPage[data-v-97638fc3]{display:block}[data-v-97638fc3] .v-virtual-scroll__item{position:relative}.pageTracker[data-v-97638fc3]{position:absolute;top:0;left:2.5%;z-index:15;width:95vw;height:85vh;z-index:10}[data-v-2a90783e] .windowItem{min-height:100vh;text-align:center}[data-v-2a90783e] .v-window__controls{position:fixed;top:48px;height:calc(100vh - 96px);padding:0}#downloadPanel[data-v-9e01f4cb],#readerKeyboardShortcuts[data-v-a8b4ac47]{background-color:rgb(var(--v-theme-background))}#shortcutsTitle[data-v-a8b4ac47]{padding:0 10px 0 17px;font-size:16px}#keyboardIcon[data-v-a8b4ac47]{margin-right:.33em!important;color:rgb(var(--v-theme-textDisabled))}[data-v-a8b4ac47] .v-expansion-panel-title--active{min-height:48px!important}[data-v-a8b4ac47] .v-expansion-panel-text__wrapper{padding-left:10px;padding-right:10px}.highlight-table[data-v-a8b4ac47]{margin-top:10px;border-collapse:collapse;color:rgb(var(--v-theme-textDisabled))}h4[data-v-a8b4ac47]{padding-left:.5em;color:rgb(var(--v-theme-textSecondary))}.highlight-table tr[data-v-a8b4ac47]:nth-child(odd){background-color:rgb(var(--v-theme-surface))!important}.highlight-table td[data-v-a8b4ac47]{min-width:60px;padding:5px}.highlight-table td[data-v-a8b4ac47]:first-child{text-align:center}.keyIcon[data-v-a8b4ac47]{margin:0}#readerSettings[data-v-599636e1]{padding-top:10px;padding-left:15px;padding-right:env(safe-area-inset-right);padding-bottom:10px;background-color:inherit}.displayRadioGroup[data-v-599636e1]{margin-top:15px}.displayTwoPages[data-v-599636e1]{margin-top:5px;margin-bottom:10px}.readRtlInReverse[data-v-599636e1]{transition:visibility .25s,opacity .25s}#clearSettingsButton[data-v-599636e1]{margin-top:4px;margin-bottom:4px;transition:visibility .25s,opacity .25s}#readPDFInBrowser[data-v-599636e1]{display:block;padding-left:2px;color:rgba(var(--v-theme-textSecondary))}.arcSelect[data-v-42a57aca]{min-width:74px}#arcPos[data-v-42a57aca]{height:22.75px;padding-top:4px;font-size:16px;letter-spacing:-.15em}[data-v-42a57aca] .v-select__selection{color:rgb(var(--v-theme-textSecondary))!important}[data-v-42a57aca] .v-select__selection .arcSelectIcon{top:4px;color:rgb(var(--v-theme-textSecondary))}[data-v-42a57aca] .v-select__selection:hover .arcSelectIcon{color:#fff}[data-v-42a57aca] .v-list-item__spacer{max-width:12px}#readerToolbarTop[data-v-0217ea46]{position:fixed;top:0;width:100%;padding-top:env(safe-area-inset-top);padding-left:0;padding-right:0;z-index:20}.closeBook[data-v-0217ea46]{padding-left:max(20px,env(safe-area-inset-left) / 2)}.readerTitle[data-v-0217ea46]{padding-left:calc(env(safe-area-inset-left)/2);padding-right:calc(env(safe-area-inset-left)/2);text-align:center;white-space:nowrap;overflow:scroll}#title[data-v-0217ea46]{font-size:clamp(18px,3vw,20px)}#subtitle[data-v-0217ea46]{font-size:clamp(16px,3vw,18px);color:rgb(var(--v-theme-textSecondary));padding-bottom:10px}.empty[data-v-65d65e48]{color:rgb(var(--v-theme-textDisabled))}.bookChangeNavButtonLeft[data-v-
|
|
1
|
+
.bookChangeDrawer[data-v-03e41a14]{opacity:.75!important;z-index:15!important}.drawerActivated[data-v-03e41a14]{width:33vw!important}.prevCursor[data-v-03e41a14]{cursor:n-resize}.nextCursor[data-v-03e41a14]{cursor:s-resize}.navLink[data-v-03e41a14]{display:block;height:100%}.bookChangeIcon[data-v-03e41a14]{top:50%;left:50%;transform:translate(-50%) translateY(-50%);height:25%;width:25%;color:#fff}.bookChangeColumn[data-v-db3eb561]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.leftPos[data-v-db3eb561]{left:0}.rightPos[data-v-db3eb561]{right:0}.upCursor[data-v-db3eb561]{cursor:n-resize}.downCursor[data-v-db3eb561]{cursor:s-resize}.pageLoading[data-v-04027168]{display:inline-flex;height:100vh;width:100vw;justify-content:center;align-items:center}.twoPages[data-v-04027168]{max-width:50vw}.pagePlaceholder[data-v-04027168]{height:50%!important;width:50%!important}.pageError[data-v-417a4cab]{height:100vh}.pageError[data-v-417a4cab] .v-icon,.pageError[data-v-417a4cab] .v-empty-state__headline{color:rgb(var(--v-theme-error))!important}.twoPages[data-v-417a4cab]{max-width:50vw}.img[data-v-559e2ecc]{transition:transform .5s ease-in-out}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{object-fit:contain}.fitToScreen[data-v-559e2ecc],.fitToScreenTwo[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc],.fitToHeight[data-v-559e2ecc],.fitToHeightTwo[data-v-559e2ecc],.fitToHeightVertical[data-v-559e2ecc]{height:100vh}.fitToScreenTwo[data-v-559e2ecc]{max-width:50vw}.fitToWidth[data-v-559e2ecc],.fitToWidthVertical[data-v-559e2ecc],.fitToScreen[data-v-559e2ecc],.fitToScreenVertical[data-v-559e2ecc]{width:100vw}.fitToWidthTwo[data-v-559e2ecc]{width:50vw}.fitToOrig[data-v-559e2ecc],.fitToOrigTwo[data-v-559e2ecc],.fitToOrigVertical[data-v-559e2ecc]{object-fit:none}.page[data-v-87996fa1]{font-size:0}.scaleForScroll[data-v-b24267c0]{overflow:scroll;-webkit-overflow-scrolling:touch}.resetIcon[data-v-b24267c0]{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 45px);right:50%;transform:translate(50%);z-index:200;font-size:50px;color:#fff;filter:drop-shadow(1px 1px 1px black);opacity:.666}.resetIcon[data-v-b24267c0]:hover{opacity:1}.noWrap[data-v-9a560964]{white-space:nowrap}.horizontalPage[data-v-9a560964]{display:inline-block}.pageChangeColumn[data-v-9ade7d96]{position:fixed;top:48px;height:calc(100vh - 96px);width:33vw}.pageChangeRow[data-v-9ade7d96]{position:fixed;height:33vh;width:100%}.prev[data-v-9ade7d96]{left:0;cursor:w-resize}.prevVertical[data-v-9ade7d96]{top:0;cursor:n-resize}.next[data-v-9ade7d96]{right:0;cursor:e-resize}.nextVertical[data-v-9ade7d96]{bottom:0;cursor:s-resize}.windowItem[data-v-e04bbc00]{font-size:0}.verticalPage[data-v-97638fc3]{display:block}[data-v-97638fc3] .v-virtual-scroll__item{position:relative}.pageTracker[data-v-97638fc3]{position:absolute;top:0;left:2.5%;z-index:15;width:95vw;height:85vh;z-index:10}[data-v-2a90783e] .windowItem{min-height:100vh;text-align:center}[data-v-2a90783e] .v-window__controls{position:fixed;top:48px;height:calc(100vh - 96px);padding:0}#downloadPanel[data-v-9e01f4cb],#readerKeyboardShortcuts[data-v-a8b4ac47]{background-color:rgb(var(--v-theme-background))}#shortcutsTitle[data-v-a8b4ac47]{padding:0 10px 0 17px;font-size:16px}#keyboardIcon[data-v-a8b4ac47]{margin-right:.33em!important;color:rgb(var(--v-theme-textDisabled))}[data-v-a8b4ac47] .v-expansion-panel-title--active{min-height:48px!important}[data-v-a8b4ac47] .v-expansion-panel-text__wrapper{padding-left:10px;padding-right:10px}.highlight-table[data-v-a8b4ac47]{margin-top:10px;border-collapse:collapse;color:rgb(var(--v-theme-textDisabled))}h4[data-v-a8b4ac47]{padding-left:.5em;color:rgb(var(--v-theme-textSecondary))}.highlight-table tr[data-v-a8b4ac47]:nth-child(odd){background-color:rgb(var(--v-theme-surface))!important}.highlight-table td[data-v-a8b4ac47]{min-width:60px;padding:5px}.highlight-table td[data-v-a8b4ac47]:first-child{text-align:center}.keyIcon[data-v-a8b4ac47]{margin:0}#readerSettings[data-v-599636e1]{padding-top:10px;padding-left:15px;padding-right:env(safe-area-inset-right);padding-bottom:10px;background-color:inherit}.displayRadioGroup[data-v-599636e1]{margin-top:15px}.displayTwoPages[data-v-599636e1]{margin-top:5px;margin-bottom:10px}.readRtlInReverse[data-v-599636e1]{transition:visibility .25s,opacity .25s}#clearSettingsButton[data-v-599636e1]{margin-top:4px;margin-bottom:4px;transition:visibility .25s,opacity .25s}#readPDFInBrowser[data-v-599636e1]{display:block;padding-left:2px;color:rgba(var(--v-theme-textSecondary))}.arcSelect[data-v-42a57aca]{min-width:74px}#arcPos[data-v-42a57aca]{height:22.75px;padding-top:4px;font-size:16px;letter-spacing:-.15em}[data-v-42a57aca] .v-select__selection{color:rgb(var(--v-theme-textSecondary))!important}[data-v-42a57aca] .v-select__selection .arcSelectIcon{top:4px;color:rgb(var(--v-theme-textSecondary))}[data-v-42a57aca] .v-select__selection:hover .arcSelectIcon{color:#fff}[data-v-42a57aca] .v-list-item__spacer{max-width:12px}#readerToolbarTop[data-v-0217ea46]{position:fixed;top:0;width:100%;padding-top:env(safe-area-inset-top);padding-left:0;padding-right:0;z-index:20}.closeBook[data-v-0217ea46]{padding-left:max(20px,env(safe-area-inset-left) / 2)}.readerTitle[data-v-0217ea46]{padding-left:calc(env(safe-area-inset-left)/2);padding-right:calc(env(safe-area-inset-left)/2);text-align:center;white-space:nowrap;overflow:scroll}#title[data-v-0217ea46]{font-size:clamp(18px,3vw,20px)}#subtitle[data-v-0217ea46]{font-size:clamp(16px,3vw,18px);color:rgb(var(--v-theme-textSecondary));padding-bottom:10px}.empty[data-v-65d65e48]{color:rgb(var(--v-theme-textDisabled))}.bookChangeNavButtonLeft[data-v-117f651c]{padding-left:max(15px,env(safe-area-inset-left) / 3)}.bookChangeNavButtonRight[data-v-117f651c]{padding-right:max(15px,env(safe-area-inset-right) / 3)}.readerNavButton[data-v-530fba8c]{padding-left:15px;padding-right:15px}.readerNavButtonLeft[data-v-530fba8c]{padding-left:max(15px,env(safe-area-inset-left) / 3)!important}.readerNavButtonRight[data-v-530fba8c]{padding-right:max(15px,env(safe-area-inset-right) / 3)!important}#readerToolbarNav[data-v-dab0637e]{padding-left:0;padding-right:0;padding-bottom:env(safe-area-inset-top)}#readerContainer[data-v-dab9a44d]{max-width:100%;position:relative}
|
|
Binary file
|
|
Binary file
|