{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/TermsAcceptance.vue?eeb2","webpack:///./src/views/content/Help.vue?0f52","webpack:///./src/views/content/NewTab.vue?d3e5","webpack:///./src/components/LegalLinks.vue?892b","webpack:///./src/components/SearchPriorityBook.vue?d6c1","webpack:///./src/components/mobile/MobileBookmarks.vue?f3db","webpack:///./src/components/bottom-bar/BottomBar.vue?f551","webpack:///./src/components/presentation/PresentationControls.vue?ab22","webpack:///./src/views/content/BookCover.vue?eefd","webpack:///./src/components/bottom-bar/BottomBarTooltip.vue?145b","webpack:///./src/components/nav/NavItemIcon.vue?7113","webpack:///./src/components/SearchPriorityBookSection.vue?366b","webpack:///./src/components/TabsBar.vue?8aef","webpack:///./src/layouts/AuthLayout.vue?79af","webpack:///./src/layouts/CommonLayout.vue?562f","webpack:///./src/views/content/BookContent.vue?9b6c","webpack:///./src/components/TextTypesFilter.vue?5919","webpack:///./src/views/content/AuthorBio.vue?06db","webpack:///./src/components/mobile/MobileNavigation.vue?98a1","webpack:///./src/components/bottom-bar/BottomBarControl.vue?3db8","webpack:///./src/components/ui/ConnectionStatus.vue?5132","webpack:///./src/components/BookNoteOverlay.vue?2c87","webpack:///./src/views/content/SearchResults.vue?7ea8","webpack:///./src/App.vue?7db9","webpack:///./src/components/ui/SearchInput.vue?0c12","webpack:///./src/views/Reader.vue?ddf0","webpack:///./src/components/SearchPriorityAuthor.vue?d171","webpack:///./src/components/BooksWithTranslationsList.vue?27b1","webpack:///./src/components/ui/InputText.vue?99b7","webpack:///./src/components/ui/Tab.vue?69bf","webpack:///./src/views/content/Home.vue?7797","webpack:///./src/components/Profile.vue?04f1","webpack:///./src/components/nav/NavItemLink.vue?fea8","webpack:///./src/components/ui/AccordionContent.vue?6397","webpack:///./src/views/AcceptTerms.vue?855f","webpack:///./src/components/bottom-bar/BottomBarBookInfo.vue?f392","webpack:///./src/components/nav/NavItemText.vue?1688","webpack:///./src/components/bottom-bar/BottomBarControlValue.vue?ede2","webpack:///./src/components/LoginForm.vue?0181","webpack:///./src/components/settings/SettingsExample.vue?fd60","webpack:///./src/components/Header.vue?ad8e","webpack:///./src/components/settings/Settings.vue?7802","webpack:///./src/components/NewsList.vue?93bd","webpack:///./src/components/SwitchLang.vue?5633","webpack:///./src/components/nav/NavItemFolder.vue?5c0f","webpack:///./src/components/nav/NavRubrics.vue?47b2","webpack:///./src/components/ui/Collapsible.vue?3ac0","webpack:///./src/components/ui/Checkbox.vue?98f2","webpack:///./src/views/Login.vue?d57c","webpack:///./src/components/ContextMenu.vue?e523","webpack:///./src/App.vue?9d2c","webpack:///./src/components/ui/Loader.vue?0e7c","webpack:///./src/components/ui/Spinner.vue?e3a3","webpack:///./src/components/ui/Spinner.vue","webpack:///./src/components/ui/Loader.vue","webpack:///./src/components/ui/Loader.vue?1f7b","webpack:///./src/components/ui/Loader.vue?75e3","webpack:///./src/components/ui/ConnectionStatus.vue?ea9b","webpack:///./src/assets/icons/info.svg","webpack:///./src/services/CookieService.ts","webpack:///./src/services/Api/ApiBaseUrl.ts","webpack:///./src/services/Api/ApiService.ts","webpack:///./src/services/Api/AuthService/index.ts","webpack:///./src/store/modules/auth.ts","webpack:///./src/views/content/Home.vue?7f07","webpack:///./src/constants.ts","webpack:///./src/services/Api/NewsService/index.ts","webpack:///./src/services/Api/UserService/index.ts","webpack:///./src/components/NewsList.vue?bfc1","webpack:///./src/components/NewsList.vue","webpack:///./src/components/NewsList.vue?4b65","webpack:///./src/components/NewsList.vue?7083","webpack:///./src/components/UserRecentBooks.vue?72e5","webpack:///./src/services/UrlBuilderService.ts","webpack:///./src/components/UserRecentBooks.vue","webpack:///./src/components/UserRecentBooks.vue?0414","webpack:///./src/components/UserRecentBooks.vue?ddff","webpack:///./src/components/SearchHistory.vue?723d","webpack:///./src/services/Api/SearchService/index.ts","webpack:///./src/components/SearchHistory.vue","webpack:///./src/components/SearchHistory.vue?47ca","webpack:///./src/components/SearchHistory.vue?0115","webpack:///./src/views/content/Home.vue","webpack:///./src/views/content/Home.vue?cbc7","webpack:///./src/views/content/Home.vue?5b02","webpack:///./src/views/Login.vue?187d","webpack:///./src/layouts/AuthLayout.vue?906c","webpack:///./src/assets/icons/logo.svg","webpack:///./src/components/SwitchLang.vue?3116","webpack:///./src/components/SwitchLang.vue","webpack:///./src/components/SwitchLang.vue?89df","webpack:///./src/components/SwitchLang.vue?9bca","webpack:///./src/components/LegalLinks.vue?b4a8","webpack:///./src/components/LegalLinks.vue","webpack:///./src/components/LegalLinks.vue?36b4","webpack:///./src/components/LegalLinks.vue?d41b","webpack:///./src/layouts/AuthLayout.vue","webpack:///./src/layouts/AuthLayout.vue?f693","webpack:///./src/layouts/AuthLayout.vue?bb42","webpack:///./src/components/LoginForm.vue?c2dc","webpack:///./src/components/ui/Checkbox.vue?b980","webpack:///./src/components/ui/Checkbox.vue","webpack:///./src/components/ui/Checkbox.vue?d10e","webpack:///./src/components/ui/Checkbox.vue?198e","webpack:///./src/components/ui/InputText.vue?66eb","webpack:///./src/components/ui/InputText.vue","webpack:///./src/components/ui/InputText.vue?ae4d","webpack:///./src/components/ui/InputText.vue?9533","webpack:///./src/components/LoginForm.vue","webpack:///./src/components/LoginForm.vue?c86a","webpack:///./src/components/LoginForm.vue?9e73","webpack:///./src/views/Login.vue","webpack:///./src/views/Login.vue?3467","webpack:///./src/views/Login.vue?0300","webpack:///./src/views/ForgotPassword.vue?6011","webpack:///./src/views/ForgotPassword.vue","webpack:///./src/views/ForgotPassword.vue?18ad","webpack:///./src/views/ForgotPassword.vue?6c82","webpack:///./src/views/ResetPassword.vue?6f1a","webpack:///./src/views/ResetPassword.vue","webpack:///./src/views/ResetPassword.vue?a158","webpack:///./src/views/ResetPassword.vue?816b","webpack:///./src/views/Registration.vue?84eb","webpack:///./src/components/TermsAcceptance.vue?48c7","webpack:///./src/services/LegalService.ts","webpack:///./src/components/TermsAcceptance.vue","webpack:///./src/components/TermsAcceptance.vue?377a","webpack:///./src/components/TermsAcceptance.vue?7895","webpack:///./src/views/Registration.vue","webpack:///./src/views/Registration.vue?5f92","webpack:///./src/views/Registration.vue?bd46","webpack:///./src/views/VerifyEmail.vue?426a","webpack:///./src/views/VerifyEmail.vue","webpack:///./src/views/VerifyEmail.vue?7f41","webpack:///./src/views/VerifyEmail.vue?cc43","webpack:///./src/views/content/Help.vue?c9c4","webpack:///./src/services/Api/HelpService/index.ts","webpack:///./src/views/content/Help.vue","webpack:///./src/views/content/Help.vue?7c02","webpack:///./src/views/content/Help.vue?e0c3","webpack:///./src/views/Reader.vue?531e","webpack:///./src/layouts/CommonLayout.vue?159f","webpack:///./src/components/Header.vue?8dc5","webpack:///./src/assets/icons/logout.svg","webpack:///./src/components/ui/Overlay.vue?3d14","webpack:///./src/assets/icons/cross-bolder.svg","webpack:///./src/components/ui/Overlay.vue","webpack:///./src/components/ui/Overlay.vue?dd71","webpack:///./src/components/ui/Overlay.vue?b9b6","webpack:///./src/components/Profile.vue?b71a","webpack:///./src/components/Profile.vue","webpack:///./src/components/Profile.vue?1cfb","webpack:///./src/components/Profile.vue?8a0d","webpack:///./src/assets/icons/arrow-down.svg","webpack:///./src/assets/icons/book.svg","webpack:///./src/assets/icons/text-settings-icon.svg","webpack:///./src/assets/icons/return.svg","webpack:///./src/assets/icons/list.svg","webpack:///./src/assets/icons/zoom.svg","webpack:///./src/assets/icons/bookmark-nav.svg","webpack:///./src/assets/icons/more.svg","webpack:///./src/services/RelatedNavigationService.ts","webpack:///./src/components/Header.vue","webpack:///./src/components/Header.vue?a312","webpack:///./src/components/Header.vue?5f53","webpack:///./src/components/Sidebar.vue?5194","webpack:///./src/assets/icons/star.svg","webpack:///./src/assets/icons/bookmark.svg","webpack:///./src/assets/icons/settings.svg","webpack:///./src/assets/icons/help.svg","webpack:///./src/assets/icons/catalog-ru.svg","webpack:///./src/assets/icons/catalog-en.svg","webpack:///./src/assets/icons/catalog-st.svg","webpack:///./src/components/Sidebar.vue","webpack:///./src/components/Sidebar.vue?adb1","webpack:///./src/components/Sidebar.vue?b35c","webpack:///./src/layouts/CommonLayout.vue","webpack:///./src/layouts/CommonLayout.vue?ca52","webpack:///./src/layouts/CommonLayout.vue?7b38","webpack:///./src/components/TabsBar.vue?231c","webpack:///./src/components/ui/Tab.vue?0a4c","webpack:///./src/assets/icons/cross.svg","webpack:///./src/components/ui/Tab.vue","webpack:///./src/components/ui/Tab.vue?fff9","webpack:///./src/components/ui/Tab.vue?b9d7","webpack:///./src/assets/icons/plus.svg","webpack:///./src/components/TabsBar.vue","webpack:///./src/components/TabsBar.vue?d94c","webpack:///./src/components/TabsBar.vue?8b76","webpack:///./src/components/Search.vue?0938","webpack:///./src/assets/icons/search-settings.svg","webpack:///./src/assets/icons/history.svg","webpack:///./src/assets/icons/arrow-search-left.svg","webpack:///./src/assets/icons/arrow-search-right.svg","webpack:///./src/components/ui/SearchInput.vue?85b8","webpack:///./src/services/SearchScopeService.ts","webpack:///./src/components/ui/SearchInput.vue","webpack:///./src/components/ui/SearchInput.vue?48b4","webpack:///./src/components/ui/SearchInput.vue?4177","webpack:///./src/components/ui/AccordionControl.vue?80a9","webpack:///./src/components/ui/AccordionControl.vue","webpack:///./src/components/ui/AccordionControl.vue?a150","webpack:///./src/components/ui/AccordionControl.vue?f1ca","webpack:///./src/components/ui/AccordionContent.vue?2e48","webpack:///./src/components/ui/AccordionContent.vue","webpack:///./src/components/ui/AccordionContent.vue?138d","webpack:///./src/components/ui/AccordionContent.vue?ec91","webpack:///./src/components/Search.vue","webpack:///./src/components/Search.vue?1a48","webpack:///./src/components/Search.vue?6d88","webpack:///./src/views/content/NewTab.vue?c0ae","webpack:///./src/views/content/NewTab.vue","webpack:///./src/views/content/NewTab.vue?4f53","webpack:///./src/views/content/NewTab.vue?7ba4","webpack:///./src/components/TextTypesFilter.vue?9599","webpack:///./src/components/TextTypesFilter.vue","webpack:///./src/components/TextTypesFilter.vue?3f80","webpack:///./src/components/TextTypesFilter.vue?e576","webpack:///./src/services/StorageService.ts","webpack:///./src/views/nav/Catalog.vue?65e2","webpack:///./src/components/nav/NavRubrics.vue?10a3","webpack:///./src/components/nav/NavRubrics.vue","webpack:///./src/components/nav/NavRubrics.vue?901b","webpack:///./src/components/nav/NavRubrics.vue?1e8a","webpack:///./src/components/nav/NavCategory.vue?c24a","webpack:///./src/components/nav/NavItemLink.vue?9181","webpack:///./src/components/nav/NavItemIcon.vue?ba08","webpack:///./src/assets/icons/minus.svg","webpack:///./src/assets/icons/nav-book.svg","webpack:///./src/components/nav/NavItemIcon.vue","webpack:///./src/components/nav/NavItemIcon.vue?d47a","webpack:///./src/components/nav/NavItemIcon.vue?f101","webpack:///./src/components/nav/NavItemText.vue?1756","webpack:///./src/services/StringService.ts","webpack:///./src/components/nav/NavItemText.vue","webpack:///./src/components/nav/NavItemText.vue?20fc","webpack:///./src/components/nav/NavItemText.vue?dcfb","webpack:///./src/components/nav/NavItemEntriesCount.vue?c664","webpack:///./src/components/nav/NavItemEntriesCount.vue","webpack:///./src/components/nav/NavItemEntriesCount.vue?64e4","webpack:///./src/components/nav/NavItemEntriesCount.vue?ff8d","webpack:///./src/components/nav/NavItemLink.vue","webpack:///./src/components/nav/NavItemLink.vue?02e8","webpack:///./src/components/nav/NavItemLink.vue?9596","webpack:///./src/components/nav/NavItemFolder.vue?a159","webpack:///./src/components/nav/NavItemFolder.vue","webpack:///./src/components/nav/NavItemFolder.vue?54e5","webpack:///./src/components/nav/NavItemFolder.vue?a000","webpack:///./src/components/nav/NavBook.vue?fb4a","webpack:///./src/components/nav/NavBookSection.vue?111d","webpack:///./src/services/Navigation/constants.ts","webpack:///./src/components/nav/NavBookSection.vue","webpack:///./src/components/nav/NavBookSection.vue?95d4","webpack:///./src/components/nav/NavBookSection.vue?d664","webpack:///./src/components/nav/NavBook.vue","webpack:///./src/components/nav/NavBook.vue?c20b","webpack:///./src/components/nav/NavBook.vue?c849","webpack:///./src/components/nav/NavCategory.vue","webpack:///./src/components/nav/NavCategory.vue?aae6","webpack:///./src/components/nav/NavCategory.vue?7e17","webpack:///./src/components/nav/NavLetter.vue?aaaa","webpack:///./src/components/nav/NavAuthor.vue?2341","webpack:///./src/components/nav/NavAuthor.vue","webpack:///./src/components/nav/NavAuthor.vue?7c30","webpack:///./src/components/nav/NavAuthor.vue?ae10","webpack:///./src/components/nav/NavLetter.vue","webpack:///./src/components/nav/NavLetter.vue?102d","webpack:///./src/components/nav/NavLetter.vue?10cf","webpack:///./src/services/Navigation/Helpers.ts","webpack:///./src/assets/icons/collapse-list.svg","webpack:///./src/views/nav/Catalog.vue","webpack:///./src/views/nav/Catalog.vue?ec19","webpack:///./src/views/nav/Catalog.vue?3700","webpack:///./src/views/nav/NewBooks.vue?b89c","webpack:///./src/services/Api/BooksService/index.ts","webpack:///./src/views/nav/NewBooks.vue","webpack:///./src/views/nav/NewBooks.vue?86ac","webpack:///./src/views/nav/NewBooks.vue?9201","webpack:///./src/components/settings/Settings.vue?d8c8","webpack:///./src/components/settings/SettingsExample.vue?f5f7","webpack:///./src/components/settings/SettingsExample.vue","webpack:///./src/components/settings/SettingsExample.vue?8178","webpack:///./src/components/settings/SettingsExample.vue?4929","webpack:///./src/components/settings/Settings.vue","webpack:///./src/components/settings/Settings.vue?48a8","webpack:///./src/components/settings/Settings.vue?2022","webpack:///./src/components/mobile/MobileNavigation.vue?a045","webpack:///./src/components/mobile/MobileNavigation.vue","webpack:///./src/components/mobile/MobileNavigation.vue?184a","webpack:///./src/components/mobile/MobileNavigation.vue?2875","webpack:///./src/components/mobile/MobileBookmarks.vue?b241","webpack:///./src/components/mobile/MobileBookmarks.vue","webpack:///./src/components/mobile/MobileBookmarks.vue?b791","webpack:///./src/components/mobile/MobileBookmarks.vue?babd","webpack:///./src/components/mobile/MobileReaderThemePicker.vue?a629","webpack:///./src/components/mobile/MobileReaderThemePicker.vue","webpack:///./src/components/mobile/MobileReaderThemePicker.vue?e37d","webpack:///./src/components/mobile/MobileReaderThemePicker.vue?5653","webpack:///./src/components/mobile/MobileBookmarkSheet.vue?c0ab","webpack:///./src/assets/icons/note.svg","webpack:///./src/components/mobile/MobileBookmarkSheet.vue","webpack:///./src/components/mobile/MobileBookmarkSheet.vue?05fa","webpack:///./src/components/mobile/MobileBookmarkSheet.vue?15a6","webpack:///./src/components/presentation/PresentationControls.vue?263f","webpack:///./src/assets/icons/nav-arrow-left.svg","webpack:///./src/assets/icons/nav-arrow-right.svg","webpack:///./src/assets/icons/presentation.svg","webpack:///./src/components/presentation/PresentationControls.vue","webpack:///./src/components/presentation/PresentationControls.vue?9a34","webpack:///./src/components/presentation/PresentationControls.vue?9094","webpack:///./src/store/modules/tabs.ts","webpack:///./src/store/modules/bookmarks.ts","webpack:///./src/views/Reader.vue","webpack:///./src/views/Reader.vue?887f","webpack:///./src/views/Reader.vue?5d00","webpack:///./src/views/content/BookContent.vue?8488","webpack:///./src/components/bottom-bar/BottomBar.vue?2243","webpack:///./src/assets/icons/globe.svg","webpack:///./src/assets/icons/book-cover.svg","webpack:///./src/components/bottom-bar/BottomBarControl.vue?dff9","webpack:///./src/components/bottom-bar/BottomBarControlValue.vue?0e47","webpack:///./src/components/bottom-bar/BottomBarControlValue.vue","webpack:///./src/components/bottom-bar/BottomBarControlValue.vue?d385","webpack:///./src/components/bottom-bar/BottomBarControlValue.vue?1514","webpack:///./src/components/bottom-bar/BottomBarControl.vue","webpack:///./src/components/bottom-bar/BottomBarControl.vue?8d8f","webpack:///./src/components/bottom-bar/BottomBarControl.vue?fcc7","webpack:///./src/components/bottom-bar/BottomBarRelated.vue?1f23","webpack:///./src/components/bottom-bar/BottomBarRelated.vue","webpack:///./src/components/bottom-bar/BottomBarRelated.vue?379b","webpack:///./src/components/bottom-bar/BottomBarRelated.vue?e54f","webpack:///./src/components/bottom-bar/BottomBarTooltip.vue?0bd2","webpack:///./src/components/bottom-bar/BottomBarTooltip.vue","webpack:///./src/components/bottom-bar/BottomBarTooltip.vue?9481","webpack:///./src/components/bottom-bar/BottomBarTooltip.vue?38d5","webpack:///./src/components/bottom-bar/BottomBarBookInfo.vue?0bcb","webpack:///./src/components/bottom-bar/BottomBarBookInfo.vue","webpack:///./src/components/bottom-bar/BottomBarBookInfo.vue?48fc","webpack:///./src/components/bottom-bar/BottomBarBookInfo.vue?5c34","webpack:///./src/components/bottom-bar/BottomBar.vue","webpack:///./src/components/bottom-bar/BottomBar.vue?f416","webpack:///./src/components/bottom-bar/BottomBar.vue?bdb6","webpack:///./src/components/BookNoteOverlay.vue?6564","webpack:///./src/components/BookNoteOverlay.vue","webpack:///./src/components/BookNoteOverlay.vue?c0f4","webpack:///./src/components/BookNoteOverlay.vue?fb72","webpack:///./src/components/ContextMenu.vue?dd07","webpack:///./src/components/ContextMenu.vue","webpack:///./src/components/ContextMenu.vue?7d29","webpack:///./src/components/ContextMenu.vue?ba1e","webpack:///./src/views/content/BookContent.vue","webpack:///./src/views/content/BookContent.vue?5417","webpack:///./src/views/content/BookContent.vue?a018","webpack:///./src/views/content/BookCover.vue?bc63","webpack:///./src/assets/icons/download.svg","webpack:///./src/components/BooksWithTranslations.vue?8728","webpack:///./src/components/ui/Collapsible.vue?1d97","webpack:///./src/components/ui/Collapsible.vue","webpack:///./src/components/ui/Collapsible.vue?e6f5","webpack:///./src/components/ui/Collapsible.vue?1567","webpack:///./src/components/BooksWithTranslationsList.vue?4c55","webpack:///./src/components/BooksWithTranslationsList.vue","webpack:///./src/components/BooksWithTranslationsList.vue?2be6","webpack:///./src/components/BooksWithTranslationsList.vue?2663","webpack:///./src/components/BooksWithTranslations.vue","webpack:///./src/components/BooksWithTranslations.vue?12f3","webpack:///./src/components/BooksWithTranslations.vue?973a","webpack:///./src/views/content/BookCover.vue","webpack:///./src/views/content/BookCover.vue?eb5e","webpack:///./src/views/content/BookCover.vue?b2c1","webpack:///./src/views/content/AuthorBio.vue?cf3b","webpack:///./src/services/Api/AuthorsService/index.ts","webpack:///./src/views/content/AuthorBio.vue","webpack:///./src/views/content/AuthorBio.vue?4dd0","webpack:///./src/views/content/AuthorBio.vue?f9ff","webpack:///./src/views/content/SearchResults.vue?b5bb","webpack:///./src/services/ArrayService.ts","webpack:///./src/components/SearchPriorityBook.vue?e362","webpack:///./src/components/SearchPriorityBook.vue","webpack:///./src/components/SearchPriorityBook.vue?d090","webpack:///./src/components/SearchPriorityBook.vue?d42d","webpack:///./src/components/SearchPriorityAuthor.vue?275c","webpack:///./src/components/SearchPriorityAuthor.vue","webpack:///./src/components/SearchPriorityAuthor.vue?3b6b","webpack:///./src/components/SearchPriorityAuthor.vue?22a1","webpack:///./src/components/SearchPriorityBookSection.vue?efdb","webpack:///./src/components/SearchPriorityBookSection.vue","webpack:///./src/components/SearchPriorityBookSection.vue?a513","webpack:///./src/components/SearchPriorityBookSection.vue?0cd0","webpack:///./src/views/content/SearchResults.vue","webpack:///./src/views/content/SearchResults.vue?302e","webpack:///./src/views/content/SearchResults.vue?d96e","webpack:///./src/views/AcceptTerms.vue?c6bd","webpack:///./src/views/AcceptTerms.vue","webpack:///./src/views/AcceptTerms.vue?4e3b","webpack:///./src/views/AcceptTerms.vue?3950","webpack:///./src/router.ts","webpack:///./src/services/Navigation/HighlightService.ts","webpack:///./src/services/Navigation/ProcessService.ts","webpack:///./src/services/Navigation/PagingService.ts","webpack:///./src/services/Api/NavigationService/index.ts","webpack:///./src/services/Navigation/CheckService.ts","webpack:///./src/services/Navigation/ExpandService.ts","webpack:///./src/store/modules/navigation.ts","webpack:///./src/store/modules/user.ts","webpack:///./src/store/modules/reader.ts","webpack:///./src/store/modules/search.ts","webpack:///./src/store/modules/settings.ts","webpack:///./src/store/index.ts","webpack:///./src/translations/ru.ts","webpack:///./src/translations/en.ts","webpack:///./src/translations/index.ts","webpack:///./src/services/Translation.ts","webpack:///./src/components/ui/ConnectionStatus.vue","webpack:///./src/components/ui/ConnectionStatus.vue?ba5b","webpack:///./src/components/ui/ConnectionStatus.vue?aee9","webpack:///./src/App.vue","webpack:///./src/App.vue?f7dc","webpack:///./src/App.vue?6ef1","webpack:///./src/main.ts","webpack:///./src/components/UserRecentBooks.vue?f2b7","webpack:///./src/views/nav/NewBooks.vue?380b","webpack:///./src/components/bottom-bar/BottomBarRelated.vue?dbaf","webpack:///./src/components/ui/Spinner.vue?7cf8","webpack:///./src/components/Search.vue?9091","webpack:///./src/components/mobile/MobileReaderThemePicker.vue?9092","webpack:///./src/components/Sidebar.vue?1eb5","webpack:///./src/components/ui/Loader.vue?fa0a","webpack:///./src/components/ui/AccordionControl.vue?41b1","webpack:///./src/views/nav/Catalog.vue?5554","webpack:///./src/components/ui/Overlay.vue?59a2","webpack:///./src/components/nav/NavItemEntriesCount.vue?74c4","webpack:///./src/components/SearchHistory.vue?ee85","webpack:///./src/components/mobile/MobileBookmarkSheet.vue?0c56"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","loading","staticClass","class","staticRenderFns","hidden","_l","index","script","component","components","Spinner","status","_v","_s","title","getTranslation","_e","functional","children","classNames","style","staticStyle","rest","assign","concat","getCookieDomain","hostname","location","sharedRootDomain","find","domain","endsWith","match","document","cookie","RegExp","replace","decodeURIComponent","days","domainAttribute","expires","Date","now","toUTCString","secure","protocol","encodeURIComponent","getApiBaseUrl","cacheStorage","GET_RETRY_DELAYS","isRetriableRequestError","method","error","String","toUpperCase","a","isCancel","response","Number","wait","delay","Promise","resolve","setTimeout","config","params","body","cancelPreviousRequests","cacheable","callsCount","endpoint","token","cancelTokenSource","cancel","send","FormData","JSON","stringify","abort","checkRequestData","url","reject","attempt","CancelToken","source","headers","withCredentials","VUE_APP_API_WITH_CREDENTIALS","timeout","cancelToken","ApiService","checkResponse","Error","success","message","email","password","auth","login","setEndpoint","setBody","post","logout","forgotPassword","passwordConfirmation","resetPassword","password_confirmation","payload","register","userId","hash","signature","verifyEmail","setToken","store","state","setParams","verifyEmailResend","syncInitialToken","authorized","actions","commit","root","id","mutations","set","remove","namespaced","tab","code","active","currentTab","on","$event","news","pagination","userRecentBooks","LANGUAGE_CODE_RUSSIAN","LANGUAGE_CODE_ENGLISH","LANGUAGE_CODE_SANSKRIT","LANGUAGE_CODE_DEFAULT","LANGUAGES","LIST_TYPE_DEFAULT","LIST_SCALE_AUTO","LIST_SCALE_DESKTOP","LIST_SCALE_TABLET","LIST_SCALE_DEFAULT","language","reader","interfaceLanguage","then","book","user","ownerKey","bookKey","request","previous","UserService","readingPositionRequests","queued","catch","clearQueuedRequest","closedReadingTabs","delete","readingTabKey","currentUser","res","fields","readingTabs","bookmarksApiEnabled","bookmarks","put","has","undefined","enqueueReadingTabRequest","fetch","credentials","keepalive","add","Set","getNews","items","date","item","text","image","src","preview","forEach","activeFrom","required","bookSlug","categorySlug","authorSlug","bookSectionSlug","query","returnTo","searchParams","slug","entries","filter","toString","URLSearchParams","searchItem","currentSearchLanguage","router","currentRoute","searchLanguage","resultLanguage","section_slug","UrlBuilderService","getBookSectionUrl","book_slug","getBookUrl","highlight","join","list","map","clearSearchHistory","nativeOn","$emit","options","search","autocomplete","history","priority","loaded","getSearchHistory","prepareList","$route","navigationLanguage","getSearchQueryUrl","namespace","tabs","current","total","$store","fetchNews","fetchUserRecentBooks","getUserRecentBooks","NewsList","UserRecentBooks","SearchHistory","onAuthorize","_t","setInterfaceLanguage","baseUrl","languageAnchor","SwitchLang","Logo","LegalLinks","errors","onChangeField","submit","rememberMe","checked","partiallyChecked","label","labelGreyText","directives","rawName","expression","placeholder","domProps","Array","isArray","_i","handleInput","handleKeyUp","$$a","$$el","target","$$c","$$v","$$i","_q","type","composing","hint","errorFormatted","e","isComposing","keyCode","default","dispatch","fieldName","InputText","AuthLayout","Checkbox","redirect","isAllowedRedirect","href","$router","parsed","URL","some","LoginForm","errorsByField","last_name","spiritual_name","access_code","ref","termsError","model","callback","termsAccepted","disabled","termsUrl","privacyUrl","TERMS_VERSION","legalDocumentUrl","anchor","safeReturnPath","test","startsWith","$refs","checkbox","focus","registered","termsAttempted","terms","terms_accepted","terms_version","TermsAcceptance","reloadPage","fail","verificationResent","resendingVerification","resendVerification","needPageReload","sendLogout","reload","Loader","Login","content","apiService","HelpService","instance","lang","getInstance","help","cache","actualizeContent","getHelp","html","_obj","mobileReader","readerChromeVisible","presentationMode","openReaderCatalog","openMobileBookSearch","mobileBookmarkSheetVisible","toggleMobileThemePicker","mobileThemePickerVisible","openMobileView","mobileView","isNarrowVisualViewport","mobileVisualViewportWidth","onPresentationActivity","readMode","mobileCatalogVisible","minWidth","leftColumnWidth","mobileLanguageMenuVisible","toggleMobileLanguageMenu","currentCatalogLanguage","icon","tag","rotate","refInFor","navLanguage","changeCatalogLanguage","closeMobileSearchArea","selectedBooksCount","readerBook","bookSection","isCompactViewport","onMouseDown","mobileBookSearchName","openMobileSearchArea","closeMobileBookSearch","mobileSearchOverlayVisible","activeTab","addBookmarkAtCurrentPlace","moveBookmarkToCurrentPlace","updateBookmarkNote","removeBookmark","openMobileBookmark","returnToMobileReader","mobileSettingsReturnTo","showMobileContent","onContentInteraction","colorMode","link","mobileNavigationView","currentReadingSession","presentationControlsVisible","presentationBookTitle","presentationSectionTitle","presentationCurrentIndex","presentationSections","presentationHasPrevious","presentationHasNext","presentationScale","presentationAutoFit","presentationHideTextTypes","navigatePresentation","exitPresentationMode","onPresentationSettingsChange","updatePresentationScale","setPresentationAutoFit","setColorMode","switchPresentationTextTypeFilter","isSettingsVisible","hideSettings","homeUrl","onLogoClick","hasRelatedHistory","leaveMobileReader","setReadMode","mobileActionsVisible","openBookmarks","openThemePicker","openTextSettings","toggleTextSettings","isTextTypesFiltersVisible","showProfileOverlay","showLogoutOverlay","titleId","onKeydown","centered","overlayIndex","visible","focusDialog","restoreFocus","previouslyFocused","activeElement","$nextTick","dialog","contains","event","preventDefault","focusable","from","querySelectorAll","element","tabIndex","getAttribute","offsetParent","first","last","shiftKey","CrossBolderIcon","subscribe_level","editMode","updateUser","setUser","RELATED_TRAIL_QUERY","MAX_RELATED_TRAIL_LENGTH","targetUrl","currentUrl","trailValue","trail","RelatedNavigationService","parseTrail","sourceUrl","withTrail","previousUrl","pop","raw","parse","hashIndex","indexOf","withoutHash","queryIndex","path","queryString","compactViewport","setLanguage","relatedReturnUrl","getPreviousUrl","relatedTrail","reading","split","toggleTextTypesFilter","currentBook","currentBookSection","innerWidth","hasPrevious","Profile","Overlay","IconLogout","IconBook","IconList","IconSearch","IconBookmark","IconMore","IconReturn","IconTextSettings","IconArrowDown","navigation","updateLanguage","toggleSettings","openHelp","IconStar","IconSettings","IconHelp","Header","Sidebar","props","Boolean","dark","onTabClick","onTabDelete","className","stopPropagation","includes","CrossIcon","ZoomIcon","setActiveTab","fullPath","closeTab","Tab","IconPlus","mobileVisible","mobileBookName","onSearchSubmit","onSearchClear","goToSearchList","prevSearchResultUrl","nextSearchResultUrl","is_show_edit_link","editUrl","mobileBookSearch","inBookSearch","advancedSearch","advancedSearchPanelExpanded","toggleAdvancedSearch","openSearchAreaPicker","openSearchHistory","showSearchHistoryOverlay","searchBookSlug","onInBookSearchChange","dragging","mobileSheetDragging","startMobileSheetDrag","moveMobileSheetDrag","endMobileSheetDrag","cancelMobileSheetDrag","searchInPoem","resetSearchSettings","exact","considerDiacritics","equalizeWriting","showHelp","toggleHelp","mobileSheetLayerVisible","closing","closeMobilePanels","closeSearchHistory","onSearchHistoryState","loadingSuggestions","handleInputFocus","handleInputBlur","handleInputChange","handlePressEnter","handleClear","hasSuggestions","suggestions","suggestion","handleSuggestionClick","books","categories","book_sections","categoryId","branchIds","previousSize","size","category","parent_id","SearchScopeService","getBranchCategoryIds","is_books_exist","bookIds","requestedCategoryIds","mappings","requestedIds","mappingById","Map","mapping","selectedBookIds","bookId","suggestionsRequestId","actualizeSuggestions","resetSuggestions","suggestionTimeout","fetchSuggestions","hasActiveScope","searchOptions","requestId","getSuggestions","scopeIsStillGlobal","suggestionIsCurrent","clearTimeout","IconCross","expanded","collapsed","maxHeight","height","hasSearchHistory","searchQuery","mobileSheetDragStartY","mobileSheetDragOffset","mobileSheetPointerId","mobilePanelTrigger","mobileSheetCloseTimer","advancedSearchPanelVisible","actualizeSearchParams","actualizeShowAdvancedSearch","addEventListener","onDocumentKeydown","syncMobileSheetDocumentState","refreshSearchHistoryAvailability","removeEventListener","documentElement","classList","to","languageChanged","trim","setResults","setResultsCount","setPriorityResults","setNeedUpdate","updateUrl","toggle","emitMobileOverlayState","requestedMobileBookSearch","bookSearch","hasBookSlug","mobileBookSearchRoute","setInBookSearch","inBookOnly","hasItems","setShowSearchResultsFlag","searchBookId","newPath","setAdvancedSearch","checkedCategories","resetMobileSheetDrag","rememberMobilePanelTrigger","focusActiveMobilePanel","trapMobilePanelFocus","HTMLElement","panel","getActiveMobilePanel","searchHelpPanel","searchOptionsPanel","$el","pointerId","clientY","dragRegion","currentTarget","setPointerCapture","Math","max","cancelable","releasePointerCapture","hasPointerCapture","searchListUrl","parseInt","currentSearchResultIndex","searchResults","getSearchResultItemUrl","edit_link","transform","routeBookId","parsedBookId","val","AccordionControl","AccordionContent","SearchInput","IconSearchSettings","IconHistory","IconArrowSearchLeft","IconArrowSearchRight","close","dragOffset","startDrag","moveDrag","endDrag","cancelDrag","textType","hideTextTypes","switchTextTypeFilter","dragStartY","dragPointerId","dialogTrigger","textTypes","getTextTypes","trapFocus","requestAnimationFrame","setTextTypesFilterVisible","closest","storageName","storage","read","localStorage","setItem","getItem","onLanguage","showSearchResults","navLoading","lists","listType","changeListType","filterQuery","onSearch","mobileMode","collapseAll","returnToCatalog","light","searchLoading","searchResultsCount","foundBooks","keys","checkAll","uncheckAll","showCheckboxes","showEntriesCount","depth","letter","offset","searchMatch","toggleExpand","toggleCheck","child","level","primary","catalogListScale","paddingLeft","entriesCount","onNavigate","validator","MinusIcon","PlusIcon","NavBookIcon","textFormatted","str","charAt","string","obj","re","replaceAll","count","$root","NavItemEntriesCount","NavItemIcon","NavItemText","showCheckbox","bookIcon","checkboxChecked","checkboxPartiallyChecked","bookName","doc_count","bookSections","author","isCurrentSection","isInCurrentPath","is_parent","hasChildren","displayExpanded","catalogTree","activeSectionSlug","LEVEL_OFFSET_PX","LABEL_OFFSET_PX","toggleBookSectionExpand","bookSectionId","showSearchResultsFlag","toggleFoundBookSectionCheck","toggleBookSectionCheck","section","parentId","reduce","docCount","NavBookSection","NavItemLink","NavItemFolder","needBookSectionsLoad","loadBookSections","toggleFoundBookExpand","toggleBookExpand","toggleFoundBookCheck","toggleBookCheck","searchBookSections","fetchBookSections","needBooksLoad","loadBooks","toggleCategoryExpand","toggleCategorySelection","fetchCategoryBooks","navData","values","NavBook","NavCategory","authors","toggleAuthorExpand","fetchAuthorBooks","authorId","getAuthorUrl","loadBooksIfNeeded","actualizeHighlight","toggleBookLetterExpand","toggleAuthorLetterExpand","fetchLetterBooks","letterName","authorIds","NavAuthor","array","origin","one","startIndex","parents","initialDepth","previousDepth","childrenPropName","isParent","Helpers","flatten","cancelPendingHighlightScroll","passive","isSearchResultsPage","setListType","parseListTypeFromUrl","fetchData","highlightScrollTimeout","scrollToHighlighted","getSearchParamsHash","highlightLetter","routeQuery","cachedData","hasCachedCatalog","booksAlphabet","authorsAlphabet","highlightLetterByBookSlug","route","searchParamNames","$forceUpdate","refTree","activeLinks","scroll","querySelector","parentElement","scrollTo","top","offsetTop","offsetHeight","behavior","beforeText","afterText","toLocaleLowerCase","capitalize","categoryIds","bookSlugs","navigationError","hasCatalogData","NavLetter","NavRubrics","CollapseListIcon","ReturnIcon","languages","currentLanguage","changeLanguage","month","BooksService","newBooks","cover","newBooksAll","all","ru","en","getNewBooks","previousMonth","newBook","created_at","prepareMonths","setCatalogListScale","isTextTypeVisible","scale","setScale","round","fontSize","_m","SettingsExample","readingAvailable","getItems","IconLibrary","IconReading","bookmark","languageLabel","note","theme","selectTheme","resetDrag","finishDrag","draftNote","resizeTextarea","addBookmark","manualBookmarks","editing","editingBookmarkId","progressLabel","openActionsBookmarkId","toggleActions","startEditing","moveBookmark","editingNote","saveNote","moveEditedBookmark","cancelEditing","position","textarea","HTMLTextAreaElement","eventOrElement","scrollHeight","overflowY","IconNote","settingsVisible","bookTitle","sectionTitle","hasNext","currentIndex","totalSections","min","autoFit","isTypeVisible","hiddenTextTypes","IconArrowLeft","IconArrowRight","IconMinus","IconPresentation","emptyTab","paragraphAnchor","updatedAt","sectionPositions","tabsStorageKey","closedTabsStorageKey","currentReadingStorageKey","save","closed","currentReading","getBookKeyFromLink","segments","isBookSectionLink","getLegacyBookDetails","parts","normalized","activeIndex","switchOwner","nextOwnerKey","updateCurrentReading","openTab","closingTab","wasActive","keepOnlyActiveTab","activateBookTab","existingIndex","findIndex","activeEmptyIndex","targetIndex","existingTab","keepSavedSection","preserveLastLocation","keepExistingPosition","savedSectionPosition","activateRouteTab","routeTabIndex","updateActiveTabLink","updateActiveTabName","updateActiveTabDetails","details","updateBookTabDetails","mergeServerReadingTabs","records","record","sectionSlug","serverUpdatedAt","updated_at","serverSession","section_name","scroll_ratio","paragraph_anchor","section_positions","existing","serverIsNewer","serverClearedStaleSection","storageKey","normalize","mapServerBookmark","mergeServerRecords","localBookmarks","serverBookmarks","sort","left","right","localeCompare","upsert","unshift","MOBILE_SECTION_ORDER","library","settings","MIN_LEFT_COLUMN_WIDTH","MAX_LEFT_COLUMN_WIDTH","LEFT_COLUMN_LOCAL_STORAGE_PARAM","MOBILE_SEARCH_ROUTE_LOCAL_STORAGE_PARAM","MOBILE_CATALOG_STATES_LOCAL_STORAGE_PARAM","SAVED_LEFT_COLUMN_WIDTH","SAVED_MOBILE_SEARCH_ROUTES","SAVED_MOBILE_CATALOG_STATES","scrollTop","bookLetters","authorLetters","sections","searchArea","BOOK_ROUTE_NAMES","BOOK_SECTION_ROUTE_NAMES","mobileTocInitializedBookKey","mobileBookSearchSlug","mobileReadingResumePending","mobileTransitionToken","mobileReaderNavigationKey","mobileSearchRoutes","mobileCatalogStates","mobileCatalogRestoreToken","readerScrollDirection","readerScrollDistance","readerEndPinToken","presentationSettingsOpen","presentationOwnsFullscreen","prevPageX","normalizeLeftColumnWidth","updateViewport","visualViewport","onFullscreenChange","$on","onReaderScroll","onReaderLinkSelected","onRouteChange","hydrateReadingState","mobileTransitionTimer","$off","presentationControlsTimer","setPresentationMode","syncPresentationModeWithRoute","resetReaderScrollIntent","scope","syncMobileViewWithRoute","objectToQueryString","routeName","openReadingTab","isSectionRoute","updateNavLanguage","ensureMobileReaderNavigation","wasLoading","restoreMobileCatalogState","setNavLanguage","cachedSection","navigationKey","mobileReaderNavigationRequest","prepareMobileReaderNavigation","finally","navigationData","cachedBook","hasRequestedSection","is_article","wasCompact","width","isBookSectionRoute","bookTab","preservedBookName","isBookRoute","view","previousView","readingReturnTo","captureMobileReadingReturnRoute","navigate","saveMobileCatalogState","resumeCurrentReading","libraryRoute","savedSearchRoute","searchRoute","sanitizeGlobalSearchRoute","fromIndex","toIndex","viewTransitionDocument","reduceMotion","matchMedia","matches","startViewTransition","transitionClass","transitionToken","mobileActiveTransition","skipTransition","transition","finishMobileViewTransition","ready","updateCallbackDone","finished","normalizedQuery","session","resume","currentBookId","currentBookmarkPayload","mobileLanguageOptions","selectedIndex","catalogLanguages","selected","trigger","mobileLanguageTrigger","closeMobileLanguageMenu","direction","nextIndex","requested","presentation","deactivatePresentation","toc","fullscreenElement","requestFullscreen","syncRoute","shouldExitFullscreen","exitFullscreen","open","setPresentationScale","toFixed","context","states","getMobileCatalogStates","scrollElement","getMobileCatalogScrollElement","captureMobileCatalogExpansion","restoreToken","$set","modeClass","getters","collectSections","scrollCurrentTocSectionIntoView","scrollLeft","scrollRect","getBoundingClientRect","currentRect","clientHeight","scrollEvent","delta","remaining","shouldPinEnd","pinReaderToEnd","startedAt","performance","pin","showReaderChrome","isCurrentOwner","getReadingTabs","readingProgress","getBookmarks","contentView","livePosition","captureCurrentReadingPosition","bookmarkAnchor","candidates","anchorPrefix","toLowerCase","candidate","lastSegment","random","toISOString","local","localBookmark","createBookmark","saved","moved","updateBookmark","serverBookmark","updated","storedSection","resolvedSection","resolveBookmarkSection","bookmarkSection","bookmarkLink","replaceBookmarkSectionInLink","bookmarkRoute","sectionLink","pageX","onMouseMove","onMouseUp","currentBookSections","isSafeInternalRoute","MobileNavigation","MobileBookmarks","MobileBookmarkSheet","MobileReaderThemePicker","PresentationControls","Settings","NewBooks","Catalog","CommonLayout","Search","TabsBar","NewTab","TextTypesFilter","textTypeVisibilityClasses","mobilePaginationType","onClickOnNote","blockingError","loadingMore","currentBookSectionsWithContent","isPresentationCurrentSection","getPageStyle","formatBookTitle","book_title","entities","entity","getParagraphAnchor","properties","getContent","contextMenu","currentBookSectionWithContent","tabName","hasRelatedBooks","showBookInfo","showRelatedBooks","bookContent","related_archi_book_name","related_poem_in_books","currentSection","translation","getTranslationUrl","short_name","prevSectionUrl","nextSectionUrl","chapter","chapters","prevChapterUrl","nextChapterUrl","poem","poems","prevPoemUrl","nextPoemUrl","relatedBooksCount","prevUrl","nextUrl","canIncreaseScale","number","canDecreaseScale","listIsVisible","getItemUrl","handleClickOutside","refList","refButton","BottomBarControlValue","ArrowLeftIcon","ArrowRightIcon","returnToPrevious","textInOtherBooks","previousRelatedUrl","translations","createTargetUrl","bookDetails","getAuthorLink","commentators","categoriesChain","fetchBookDetails","getBookCover","getEntityIndex","pagingItem","number_code_chapter","number_code_poem","number_code_section","relatedBooks","getPrevUrl","getNextUrl","BottomBarBookInfo","BottomBarTooltip","BottomBarRelated","BottomBarControl","InfoIcon","GlobeIcon","BookCoverIcon","openLink","onClickOutside","refContextMenu","newTab","contentError","loadingSectionKey","preloadingSectionKeys","loadingContinuousSection","sectionContentRequests","bookSectionsWithContent","presentationFontSize","lastScrollPosition","suppressReaderScrollUntil","refScroll","onScroll","onViewportResize","flushCurrentReadingPosition","onScrollTimeout","readingPositionTimeout","viewportResizeTimeout","presentationFitFrame","cancelAnimationFrame","pendingReadingPosition","saveReadingPosition","bindLinksEvent","schedulePresentationFit","changedBook","changedSectionRoute","routeLoadKey","getRouteLoadKey","isCurrentBookSectionRoute","waitForReadingFonts","scrollToCurrentPage","updateTabName","ensureContinuousContentAhead","fetchContent","setContentError","sectionKey","initialLoadContent","fitPresentationContent","page","availableHeight","availableWidth","clientWidth","lower","upper","iteration","fits","scrollWidth","fittedSize","floor","abs","baseSize","manualSize","console","fetchBookSectionContent","adjacentContent","preloadAdjacentContent","getSavedReadingPosition","sectionId","fetchContentBeforeCurrent","fetchContentAfterCurrent","bookSectionsBefore","bookSectionsAfter","needFixScroll","wasBookSectionPreviouslyLoaded","fixScrollPosition","requestKey","getBookSectionContent","bestEffort","results","loadedIds","firstMissingIndex","currentBookSectionIndex","nextSection","doFetchContent","latest","continuousFillPromise","fillPromise","loadNextContinuousSection","preload","reverse","bookSectionLink","currentBookSectionElement","findPageElement","scrollToPage","dataset","currentScrollPosition","scrollPosition","pages","newPage","el","readingPosition","getReadingPosition","updateReadingPositionLocally","scheduleReadingPositionSave","pageElement","queryPosition","NaN","scrollToSectionHeading","isFinite","queryAnchor","savedAnchor","getSavedParagraphAnchor","scrollToParagraph","clearBookmarkOpeningFlag","fonts","heading","headingRect","paragraph","paragraphRect","relativeTop","canMeasureParagraphs","paragraphs","lastReadingPosition","getSavedSectionPositions","saveReadingPositionOnPageHide","decorateWordByWordTerms","word","template","createElement","innerHTML","nextSibling","separator","textContent","walker","createTreeWalker","NodeFilter","SHOW_TEXT","textNodes","currentNode","nextNode","textNode","parent","termPattern","fragment","createDocumentFragment","lastIndex","exec","appendChild","createTextNode","term","replaceWith","links","scrollOffsetTop","pageY","offsetLeft","bound","hiddenTypes","deep","immediate","ContextMenu","BookNoteOverlay","BottomBar","cover_image","download_files","file","extension","original_name","description","continueReadingUrl","bookSearchUrl","related_books","other_publications","translator","editor","publisher","publishing_year","ISBN","pages_count","book_copies","collapseAfter","expandText","collapseText","BooksWithTranslationsList","Collapsible","fetchBook","navigationBook","prepareTranslations","first_section_slug","firstSectionUrl","getFirstBookSectionLink","publication","validateSectionUrl","firstValidSection","savedTab","BooksWithTranslations","DownloadIcon","SearchIcon","statistics","AuthorsService","fetchAuthor","getAuthor","hasQuery","searchPriorityResults","person","getSearchItemUrl","paths","array1","array2","ArrayService","getIntersections","extractIds","bookUrl","bookAuthors","bookByLanguage","relation_books_quantity","IconBookCover","IconGlobe","authorUrl","authorBooks","bookSectionUrl","bookSectionTitle","contentOfSelectedLanguage","translate","switchContentLanguage","contentLanguageButtonText","contentLanguage","bookTranslations","patch","perPage","fetchResults","makeHashFromIds","navShowSearchResults","doFetchResults","refSearchResults","isScrolledToBottom","hasMorePages","fetchMore","SearchPriorityBookSection","SearchPriorityAuthor","SearchPriorityBook","saving","accepted","attempted","getUser","terms_required","use","entryUrl","guard","next","needEmailVerification","base","routes","Registration","beforeEnter","HighlightService","reset","highlightCategory","highlightAuthor","authorIndex","highlightAuthorLetter","highlightBookLetter","needBookHighlight","highlightBook","highlightBookSection","resetEntitiesArray","resetBooks","resetBookSections","bookSectionIndex","routeCategory","highlightedCategory","highlightParents","routeAuthor","routeBook","routeBookSection","highlightedIndex","updateParents","ProcessService","processCategories","processAuthors","makeAuthorsAlphabet","processBooksAlphabet","books_first_letter","collapseBooks","preloadBookSectionAmount","loadBookSectionsBefore","loadBookSectionsAfter","processedBooks","bookSectionEntries","processedBookSections","parent_code","quantity","letters","currentBooks","entityId","mappedAuthors","alphabet","PagingService","getChapters","getSections","getPoems","NavigationService","catalog","categoryBooks","booksByCategories","letterBooks","bookParams","filterCategories","filterAuthors","filterLetters","searchBooks","searchBookSectionEntries","checkedBooks","checkBooks","checkBookSections","checkedFoundBooks","uncheckedBooks","uncheckBooks","uncheckBookSections","uncheckedFoundBooks","categoryIndex","branchCategoryIds","branchBookIds","branchCategory","CheckService","actualizeParentCategories","actualizeCategory","updateChildren","childBookSection","actualizeEntryFlags","categoryBookIds","childCategory","checkedChildren","partiallyCheckedChildren","letterId","initialData","st","getNavigation","navigationDataRaw","processNavigation","getCategoryBooks","processBooks","concatBooks","mapBookIds","fetchCategoriesBooks","getCategoriesBooks","applyCategoryBookMappings","shouldLoadBookIds","unloadedCategoryIds","getUnloadedBookCategoryIds","getAuthorBooks","getLetterBooks","getBookSections","processBookSections","needBookSectionHighlight","getBookParams","fallbackBranches","action","branch","directBooks","related_books_count","sectionsEntity","filterData","stateData","stateBooks","rootState","hasCheckedEntities","updateNavigationData","setLoading","setError","toggleFoundBookSectionExpand","toggleLetterExpand","collapseBookTree","collapseSections","collapseBook","restoreExpansionState","snapshot","bookLetterIds","authorLetterIds","foundBookSlugs","sectionKeys","applySections","toggleCategoryCheck","updatePreloadFlag","clearFoundBooks","resetFilter","updateFilterQuery","dataFromStateLanguage","dataFromRouteLanguage","routeLanguage","getPaging","checkedCategoriesIds","hasIntersections","getSelectedBookIds","checkedBookSections","checkedBookIds","checkedFoundBookSections","foundBookSections","unset","defaultState","storedState","latestSearchRequestId","hasSelectedScope","getPriorityResults","total_results","resultsCount","priorityResults","needUpdate","needUpdated","rootGetters","navigationBooks","routeRequestsBookSearch","useBookScope","useSelectedScope","scopedBook","scopedBookId","booksIds","search_in_poem","consider_diacritics","equalize_writing","show","hide","Store","startLoading","stopLoading","termsAcceptPrefix","howWeProcessData","termsAcceptanceRequired","termsVersionChanged","termsReviewTitle","termsReviewDescription","termsAcceptContinue","termsSaving","requestAccountDeletion","legalDocuments","privacyPolicy","termsOfUse","opensInNewTab","defaultErrorMessage","onLanguageRu","onLanguageEn","onLanguageSt","onLanguageCatalogRu","onLanguageCatalogEn","onLanguageCatalogSt","russian","english","change","profile","edit","refresh","continueReading","addBookmarkHere","moveBookmarkHere","deleteBookmark","bookmarkNotePlaceholder","moreActions","noBookmarks","tableOfContents","searchInBook","backToBook","backToPreviousText","backToReading","connectionLost","connectionLostDescription","connectionRestored","loginCaption","yourEmail","enterYourEmail","repeatPassword","signIn","registration","registrationVerifyEmail","authorization","verifyEmailIsNotVerified","verifyEmailFail","lastName","spiritualName","fillIfExists","accessCode","tooManyRequests","catalogsUpdate","bookInCategories","errorOccurred","tryToRefreshPage","selectSearchAreaInCatalog","showBooksCatalog","found","selectAll","collapse","collapseAllBranches","catalogSearch","filterBooks","useSearch","orOpenBookInCatalog","above","onLeft","noSearchResults","changeQuery","downloadFile","linkedBooks","otherPublishings","outputData","bookOriginalTitle","bookTranslation","publishingYear","pagesAmount","printRun","commentator","wordByWordTranslation","comment","sanskrit","diacritic","booksSelected","searchScope","searchEverywhere","searchPoems","resetSettings","exactPhrase","searchOperatorsHelper","aboutBook","bookChapter","bookPoem","colorTheme","colorThemeLight","colorThemeMixed","colorThemeDark","clearList","enterNewAddress","newPassword","repeatNewPassword","toChangePasswordEnterNewPassword","enterPersonalData","changePassword","exitReadingMode","presentationSettings","fitToScreen","previousSection","textSettings","logOutAreYouSure","recentlyViewedBooks","searchQueries","enterSearchQuery","inNewTab","inCurrentTab","structureScale","textScale","textExample","tablet","pc","auto","booksInWhichPoemWasMentioned","searchHistory","searchHistoryEmpty","allResults","showAllList","showOnEnglishLanguage","showOnRussianLanguage","textInOtherBooksAction","searchHelp","wasOffline","handleOffline","handleOnline","navigator","onLine","clearRestoreTimer","restoreTimer","IconInfo","subscribe","mutation","ConnectionStatus","productionTip","render","h","$mount"],"mappings":"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","file":"js/app.js?p=c1c814ce","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsAcceptance.vue?vue&type=style&index=0&id=13e49e84&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsAcceptance.vue?vue&type=style&index=0&id=13e49e84&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Help.vue?vue&type=style&index=0&id=b1a1b6b8&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Help.vue?vue&type=style&index=0&id=b1a1b6b8&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTab.vue?vue&type=style&index=0&id=442d66fe&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTab.vue?vue&type=style&index=0&id=442d66fe&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LegalLinks.vue?vue&type=style&index=0&id=131f0c50&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LegalLinks.vue?vue&type=style&index=0&id=131f0c50&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBook.vue?vue&type=style&index=0&id=51c376ad&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBook.vue?vue&type=style&index=0&id=51c376ad&lang=scss&scoped=true&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarks.vue?vue&type=style&index=0&id=32f143f6&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarks.vue?vue&type=style&index=0&id=32f143f6&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBar.vue?vue&type=style&index=0&id=4ac49d79&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBar.vue?vue&type=style&index=0&id=4ac49d79&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./PresentationControls.vue?vue&type=style&index=0&id=587f1004&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./PresentationControls.vue?vue&type=style&index=0&id=587f1004&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookCover.vue?vue&type=style&index=0&id=0a638dda&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookCover.vue?vue&type=style&index=0&id=0a638dda&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarTooltip.vue?vue&type=style&index=0&id=a881c0ea&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarTooltip.vue?vue&type=style&index=0&id=a881c0ea&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemIcon.vue?vue&type=style&index=0&id=0f3daa65&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemIcon.vue?vue&type=style&index=0&id=0f3daa65&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBookSection.vue?vue&type=style&index=0&id=20da2520&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBookSection.vue?vue&type=style&index=0&id=20da2520&lang=scss&scoped=true&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TabsBar.vue?vue&type=style&index=0&id=e723ac04&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TabsBar.vue?vue&type=style&index=0&id=e723ac04&lang=scss&scoped=true&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthLayout.vue?vue&type=style&index=0&id=49f6eb4d&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthLayout.vue?vue&type=style&index=0&id=49f6eb4d&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonLayout.vue?vue&type=style&index=0&id=abe9d728&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonLayout.vue?vue&type=style&index=0&id=abe9d728&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookContent.vue?vue&type=style&index=0&id=64ac2e40&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookContent.vue?vue&type=style&index=0&id=64ac2e40&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TextTypesFilter.vue?vue&type=style&index=0&id=5ce4a862&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TextTypesFilter.vue?vue&type=style&index=0&id=5ce4a862&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorBio.vue?vue&type=style&index=0&id=130a682e&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorBio.vue?vue&type=style&index=0&id=130a682e&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileNavigation.vue?vue&type=style&index=0&id=2f452343&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileNavigation.vue?vue&type=style&index=0&id=2f452343&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControl.vue?vue&type=style&index=0&id=5f19924f&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControl.vue?vue&type=style&index=0&id=5f19924f&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=style&index=0&id=2779270b&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=style&index=0&id=2779270b&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookNoteOverlay.vue?vue&type=style&index=0&id=0d17b641&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookNoteOverlay.vue?vue&type=style&index=0&id=0d17b641&lang=scss&scoped=true&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=style&index=0&id=47d15bcc&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=style&index=0&id=47d15bcc&scoped=true&lang=scss&\"","import mod from \"-!../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=style&index=0&id=0609a630&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=style&index=0&id=0609a630&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Reader.vue?vue&type=style&index=0&id=3603f408&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Reader.vue?vue&type=style&index=0&id=3603f408&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityAuthor.vue?vue&type=style&index=0&id=52d64153&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityAuthor.vue?vue&type=style&index=0&id=52d64153&lang=scss&scoped=true&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BooksWithTranslationsList.vue?vue&type=style&index=0&id=7afc7ed5&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BooksWithTranslationsList.vue?vue&type=style&index=0&id=7afc7ed5&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./InputText.vue?vue&type=style&index=0&id=0947fcaa&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./InputText.vue?vue&type=style&index=0&id=0947fcaa&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=style&index=0&id=3998c287&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=style&index=0&id=3998c287&lang=scss&scoped=true&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=ab54df4e&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=ab54df4e&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=style&index=0&id=75b56084&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=style&index=0&id=75b56084&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemLink.vue?vue&type=style&index=0&id=cd92ce9e&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemLink.vue?vue&type=style&index=0&id=cd92ce9e&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionContent.vue?vue&type=style&index=0&id=300bbaf2&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionContent.vue?vue&type=style&index=0&id=300bbaf2&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AcceptTerms.vue?vue&type=style&index=0&id=3a8421b9&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AcceptTerms.vue?vue&type=style&index=0&id=3a8421b9&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarBookInfo.vue?vue&type=style&index=0&id=79a54c6a&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarBookInfo.vue?vue&type=style&index=0&id=79a54c6a&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemText.vue?vue&type=style&index=0&id=c94b25e8&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemText.vue?vue&type=style&index=0&id=c94b25e8&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControlValue.vue?vue&type=style&index=0&id=c114e4cc&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControlValue.vue?vue&type=style&index=0&id=c114e4cc&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=509e0954&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=style&index=0&id=509e0954&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsExample.vue?vue&type=style&index=0&id=686383f6&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsExample.vue?vue&type=style&index=0&id=686383f6&lang=scss&scoped=true&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&id=308ed700&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&id=308ed700&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=4bf2e66c&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=4bf2e66c&lang=scss&scoped=true&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewsList.vue?vue&type=style&index=0&id=c281644e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewsList.vue?vue&type=style&index=0&id=c281644e&lang=scss&scoped=true&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchLang.vue?vue&type=style&index=0&id=796a3c32&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchLang.vue?vue&type=style&index=0&id=796a3c32&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemFolder.vue?vue&type=style&index=0&id=46791ea8&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemFolder.vue?vue&type=style&index=0&id=46791ea8&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavRubrics.vue?vue&type=style&index=0&id=8fafeeac&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavRubrics.vue?vue&type=style&index=0&id=8fafeeac&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsible.vue?vue&type=style&index=0&id=7bc9de6e&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsible.vue?vue&type=style&index=0&id=7bc9de6e&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkbox.vue?vue&type=style&index=0&id=68698b38&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkbox.vue?vue&type=style&index=0&id=68698b38&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=1ea48fce&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=1ea48fce&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextMenu.vue?vue&type=style&index=0&id=46e239fa&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextMenu.vue?vue&type=style&index=0&id=46e239fa&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Loader',{attrs:{\"hidden\":!_vm.loading}}),_c('div',{staticClass:\"app-inner\",class:{ 'app-inner--loaded': !_vm.loading }},[_c('router-view')],1),_c('ConnectionStatus')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loader\",class:{ hidden: _vm.hidden }},[_c('Spinner')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"spinner\"},_vm._l((12),function(index){return _c('div',{key:index})}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Spinner.vue?vue&type=template&id=0fa5e6af&scoped=true&\"\nvar script = {}\nimport style0 from \"./Spinner.vue?vue&type=style&index=0&id=0fa5e6af&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0fa5e6af\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport Spinner from './Spinner.vue';\n\n@Component({\n  components: { Spinner }\n})\nexport default class Loader extends Vue {\n  @Prop()\n  hidden?: boolean;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Loader.vue?vue&type=template&id=b74f8330&scoped=true&\"\nimport script from \"./Loader.vue?vue&type=script&lang=ts&\"\nexport * from \"./Loader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Loader.vue?vue&type=style&index=0&id=b74f8330&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b74f8330\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"connection-status\"}},[(_vm.status)?_c('aside',{staticClass:\"connection-status\",class:(\"connection-status--\" + _vm.status),attrs:{\"role\":\"status\",\"aria-live\":\"polite\",\"aria-atomic\":\"true\"}},[_c('span',{staticClass:\"connection-status-icon\",attrs:{\"aria-hidden\":\"true\"}},[_c('IconInfo')],1),_c('span',{staticClass:\"connection-status-copy\"},[_c('strong',[_vm._v(_vm._s(_vm.title))]),(_vm.status === 'offline')?_c('span',[_vm._v(_vm._s(_vm.getTranslation('connectionLostDescription')))]):_vm._e()])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"16\",\"height\":\"16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('circle',{attrs:{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"7.5\",\"stroke\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M7 5a1 1 0 112 0 1 1 0 01-2 0zM7.5 7.5a.5.5 0 011 0v4a.5.5 0 01-1 0v-4z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","export function getCookieDomain(hostname: string = window.location.hostname): string {\n  const sharedRootDomain = ['vedarama.com', 'vedarama.ru'].find(\n    domain => hostname === domain || hostname.endsWith(`.${domain}`)\n  );\n  if (sharedRootDomain) {\n    return `.${sharedRootDomain}`;\n  }\n  return '';\n}\n\nclass CookieService {\n  get(name: string): string | null {\n    const match = document.cookie.match(\n      new RegExp('(?:^|; )' + name.replace(/([.$?*|{}()[\\]\\\\/+^])/g, '\\\\$1') + '=([^;]*)')\n    );\n    return match ? decodeURIComponent(match[1]) : null;\n  }\n\n  set(name: string, value: string, days: number = 365) {\n    const domain = getCookieDomain();\n    const domainAttribute = domain ? `; domain=${domain}` : '';\n    const expires = new Date(Date.now() + days * 24 * 60 * 60 * 1000).toUTCString();\n    const secure = window.location.protocol === 'https:' ? '; Secure' : '';\n    document.cookie = `${name}=${encodeURIComponent(\n      value\n    )}; path=/${domainAttribute}; expires=${expires}; SameSite=None${secure}`;\n  }\n\n  remove(name: string) {\n    const domain = getCookieDomain();\n    const domainAttribute = domain ? `; domain=${domain}` : '';\n    const secure = window.location.protocol === 'https:' ? '; Secure' : '';\n    document.cookie = `${name}=; path=/${domainAttribute}; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=None${secure}`;\n  }\n}\n\nexport default new CookieService();\n","export function getApiBaseUrl(): string {\n  const hostname = window.location.hostname;\n  if (hostname === 'vedarama.ru' || hostname.endsWith('.vedarama.ru')) {\n    return 'https://api.vedarama.ru';\n  }\n  if (hostname === 'vedarama.com' || hostname.endsWith('.vedarama.com')) {\n    return 'https://api.vedarama.com';\n  }\n  return process.env.VUE_APP_API_URL || '';\n}\n","import { getApiBaseUrl } from '@/services/Api/ApiBaseUrl';\n// we have to use axios due to CORS policy\nimport axios, { CancelTokenSource, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { getTranslation } from '@/services/Translation';\n\ninterface ApiConfig {\n  cancelPreviousRequests: boolean;\n}\n\nconst cacheStorage: { [name: string]: AxiosResponse } = {};\nconst GET_RETRY_DELAYS = [250, 750];\n\nexport function isRetriableRequestError(method: string | undefined, error: any) {\n  if (String(method || '').toUpperCase() !== 'GET' || axios.isCancel(error)) {\n    return false;\n  }\n  const status = error && error.response && Number(error.response.status);\n  return !status || status === 408 || status === 429 || status >= 500;\n}\n\nfunction wait(delay: number) {\n  return new Promise(resolve => setTimeout(resolve, delay));\n}\n\nexport class ApiService {\n  protected endpoint?: string;\n\n  protected params: object = {};\n\n  protected body: object | FormData = {};\n\n  protected token?: string;\n\n  protected cancelPreviousRequests: boolean = false;\n\n  protected cancelTokenSource?: CancelTokenSource;\n\n  protected cacheable: boolean = false;\n\n  public callsCount: number = 0;\n\n  constructor(config?: ApiConfig) {\n    if (config) {\n      this.cancelPreviousRequests = config.cancelPreviousRequests || false;\n    }\n  }\n\n  public setEndpoint(endpoint: string) {\n    this.endpoint = endpoint;\n    return this;\n  }\n\n  public setParams(params: object) {\n    this.params = params;\n    return this;\n  }\n\n  public setBody(body: object) {\n    this.body = body;\n    return this;\n  }\n\n  public setToken(token: string) {\n    this.token = token;\n    return this;\n  }\n\n  public cache() {\n    this.cacheable = true;\n    return this;\n  }\n\n  public abort() {\n    if (this.cancelTokenSource) {\n      this.cancelTokenSource.cancel();\n    }\n  }\n\n  public async get() {\n    return this.send({ method: 'GET', params: this.params });\n  }\n\n  public async post() {\n    return this.send({\n      method: 'POST',\n      data: this.body instanceof FormData ? this.body : JSON.stringify(this.body)\n    });\n  }\n\n  public async patch() {\n    return this.send({\n      method: 'PATCH',\n      data: this.body instanceof FormData ? this.body : JSON.stringify(this.body)\n    });\n  }\n\n  public async put() {\n    return this.send({\n      method: 'PUT',\n      data: this.body instanceof FormData ? this.body : JSON.stringify(this.body)\n    });\n  }\n\n  public async delete() {\n    return this.send({ method: 'DELETE', params: this.params });\n  }\n\n  protected get url() {\n    if (this.endpoint) {\n      return getApiBaseUrl() + this.endpoint;\n    }\n    return undefined;\n  }\n\n  protected get headers() {\n    const headers: { [key: string]: string } = {\n      'Content-Type': 'application/json'\n    };\n    if (this.token) {\n      headers['Api-Authorization'] = this.token;\n    }\n    return headers;\n  }\n\n  protected async send(config: AxiosRequestConfig) {\n    if (this.cancelPreviousRequests && this.cancelTokenSource) {\n      // when user quickly clicks on different links in the navigation causing sending several requests in the same time - they could be executed in a random order, so the content could be shown for the latest loaded request (not necessary the last clicked one). To prevent this, we need to cancel previous requests for the same area before sending new ones.\n      this.abort();\n    }\n    this.checkRequestData();\n    const url = this.url;\n    if (!url) {\n      return Promise.reject();\n    }\n    if (cacheStorage[url]) {\n      return Promise.resolve(cacheStorage[url]);\n    }\n    this.callsCount += 1;\n    let response: AxiosResponse;\n    try {\n      for (let attempt = 0; ; attempt += 1) {\n        this.cancelTokenSource = axios.CancelToken.source();\n        try {\n          response = await axios({\n            url,\n            headers: this.headers,\n            withCredentials: process.env.VUE_APP_API_WITH_CREDENTIALS !== 'false',\n            timeout: 30000,\n            ...config,\n            cancelToken: this.cancelTokenSource.token\n          });\n          break;\n        } catch (error) {\n          if (attempt >= GET_RETRY_DELAYS.length || !isRetriableRequestError(config.method, error)) {\n            throw error;\n          }\n          await wait(GET_RETRY_DELAYS[attempt]);\n        }\n      }\n    } finally {\n      this.callsCount -= 1;\n    }\n    ApiService.checkResponse(response);\n    if (!(response && response.data)) {\n      return Promise.reject();\n    }\n    if (this.cacheable) {\n      cacheStorage[url] = response;\n    }\n    return Promise.resolve(response);\n  }\n\n  protected checkRequestData() {\n    if (!this.endpoint) {\n      throw new Error('Api endpoint is not set');\n    }\n  }\n\n  protected static checkResponse(response: AxiosResponse | void) {\n    if (typeof response !== 'object') {\n      throw new Error(getTranslation('defaultErrorMessage'));\n    }\n    if (typeof response.data !== 'object') {\n      throw new Error(`Ошибка соединения. Некорректный ответ от сервера ${typeof response.data}`);\n    }\n    if (!response.data.success) {\n      throw new Error(response.data.message);\n    }\n  }\n}\n","import { ApiService } from '@/services/Api/ApiService';\nimport { endpoints } from '@/api-endpoints.json';\nimport { store } from '@/store';\n\nexport default class AuthService {\n  static async login(email: string, password: string) {\n    const endpoint = endpoints.auth.login;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setBody({\n        email,\n        password\n      })\n      .post();\n  }\n\n  static async logout() {\n    const endpoint = endpoints.auth.logout;\n    return new ApiService().setEndpoint(endpoint).get();\n  }\n\n  static async forgotPassword(email: string) {\n    const endpoint = endpoints.auth.forgotPassword;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setBody({\n        email\n      })\n      .post();\n  }\n\n  static async resetPassword(token: string, email: string, password: string, passwordConfirmation: string) {\n    const endpoint = endpoints.auth.resetPassword;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setBody({\n        token,\n        email,\n        password,\n        password_confirmation: passwordConfirmation\n      })\n      .post();\n  }\n\n  static async register(payload: { [fieldName: string]: string }) {\n    const endpoint = endpoints.auth.register;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setBody(payload)\n      .post();\n  }\n\n  static async verifyEmail(userId: string, hash: string, expires: string, signature: string) {\n    const endpoint = endpoints.auth.verifyEmail.replace(':userId', userId).replace(':hash', hash);\n    return new ApiService()\n      .setToken(store.state.auth.token)\n      .setEndpoint(endpoint)\n      .setParams({ expires, signature })\n      .get();\n  }\n\n  static async verifyEmailResend() {\n    const endpoint = endpoints.auth.verifyEmailResend;\n    return new ApiService()\n      .setToken(store.state.auth.token)\n      .setEndpoint(endpoint)\n      .post();\n  }\n}\n","import { ActionTree, Module, MutationTree } from 'vuex';\nimport CookieService from '@/services/CookieService';\nimport AuthService from '@/services/Api/AuthService';\nimport { RootState } from '@/store';\n\nexport interface AuthState {\n  token: string;\n  authorized: boolean;\n}\n\nfunction syncInitialToken(): AuthState {\n  const token = CookieService.get('api_token') || '';\n  return token ? { token, authorized: true } : { token: '', authorized: false };\n}\n\nconst state: AuthState = syncInitialToken();\n\nconst actions: ActionTree<AuthState, RootState> = {\n  async login({ commit }, { email, password }) {\n    const response = await AuthService.login(email, password);\n    commit('login', response.headers['api-token']);\n    commit('user/set', response.data.data, { root: true });\n    commit('tabs/switchOwner', String(response.data.data.id || response.data.data.email), { root: true });\n    commit('bookmarks/switchOwner', String(response.data.data.id || response.data.data.email), {\n      root: true\n    });\n  },\n  logout({ commit }) {\n    commit('startLoading', null, { root: true });\n    // @toDo: uncomment when api implement this method\n    // await AuthService.logout();\n    // store.dispatch('unsetUser');\n    commit('logout');\n    commit('tabs/switchOwner', 'guest', { root: true });\n    commit('bookmarks/switchOwner', 'guest', { root: true });\n    commit('user/unset', null, { root: true });\n    commit('stopLoading', null, { root: true });\n  }\n};\n\nconst mutations: MutationTree<AuthState> = {\n  login(state: AuthState, token: string) {\n    state.token = token;\n    state.authorized = true;\n    if (token) {\n      CookieService.set('api_token', token);\n    }\n  },\n  logout(state: AuthState) {\n    state.token = '';\n    state.authorized = false;\n    CookieService.remove('api_token');\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  actions,\n  mutations\n} as Module<AuthState, RootState>;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"tabs\"},_vm._l((_vm.tabs),function(tab){return _c('button',{key:tab.code,staticClass:\"tab\",class:{ active: _vm.currentTab === tab.code },attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.currentTab = tab.code}}},[_vm._v(\"\\n      \"+_vm._s(tab.name)+\"\\n    \")])}),0),(_vm.currentTab === 'news' && _vm.news.length)?_c('NewsList',{attrs:{\"news\":_vm.news,\"pagination\":_vm.pagination}}):_vm._e(),(_vm.currentTab === 'recently-viewed-books')?_c('UserRecentBooks',{attrs:{\"list\":_vm.userRecentBooks}}):_vm._e(),(_vm.currentTab === 'search-history')?_c('SearchHistory',{staticClass:\"search-history\"}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const LANGUAGE_CODE_RUSSIAN = 'ru';\nexport const LANGUAGE_CODE_ENGLISH = 'en';\nexport const LANGUAGE_CODE_SANSKRIT = 'st';\nexport const LANGUAGE_CODE_DEFAULT = LANGUAGE_CODE_RUSSIAN;\nexport const LANGUAGES = [LANGUAGE_CODE_RUSSIAN, LANGUAGE_CODE_ENGLISH, LANGUAGE_CODE_SANSKRIT];\n\nexport const LIST_TYPE_DEFAULT = 'categories';\n\nexport const LIST_SCALE_AUTO = 'auto';\nexport const LIST_SCALE_DESKTOP = 'desktop';\nexport const LIST_SCALE_TABLET = 'tablet';\nexport const LIST_SCALE_DEFAULT = LIST_SCALE_AUTO;\n","import { ApiService } from '@/services/Api/ApiService';\nimport { endpoints } from '@/api-endpoints.json';\n\nimport { store } from '@/store';\nimport { LANGUAGE_CODE_DEFAULT } from '@/constants';\n\nexport default class NewsService {\n  static async getNews() {\n    const endpoint = endpoints.news;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setParams({\n        language: store.state.reader.interfaceLanguage || LANGUAGE_CODE_DEFAULT\n      })\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data);\n  }\n}\n","import { getApiBaseUrl } from '@/services/Api/ApiBaseUrl';\nimport { store } from '@/store';\nimport { ApiService } from '@/services/Api/ApiService';\nimport { endpoints } from '@/api-endpoints.json';\nimport { User } from '@/store/modules/user';\n\nexport default class UserService {\n  private static readingPositionRequests: { [bookKey: string]: Promise<any> } = {};\n\n  private static closedReadingTabs: Set<string> = new Set();\n\n  static get bookmarksApiEnabled() {\n    return process.env.VUE_APP_BOOKMARKS_API_ENABLED === 'true';\n  }\n\n  private static readingTabKey(language: string, book: string) {\n    const user = store.state.user.data as User;\n    const ownerKey = user.id || user.email || 'guest';\n    return `${ownerKey}:${language}:${book}`;\n  }\n\n  private static enqueueReadingTabRequest(bookKey: string, request: () => Promise<any>) {\n    const previous = UserService.readingPositionRequests[bookKey] || Promise.resolve();\n    const queued = previous.catch(() => undefined).then(request);\n    UserService.readingPositionRequests[bookKey] = queued;\n    const clearQueuedRequest = () => {\n      if (UserService.readingPositionRequests[bookKey] === queued) {\n        delete UserService.readingPositionRequests[bookKey];\n      }\n    };\n    queued.then(clearQueuedRequest, clearQueuedRequest);\n    return queued;\n  }\n\n  static openReadingTab(language: string, book: string) {\n    UserService.closedReadingTabs.delete(UserService.readingTabKey(language, book));\n  }\n\n  static getUser() {\n    const endpoint = endpoints.user.currentUser;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(res => res.data.data);\n  }\n\n  static updateUser(fields: Partial<User>) {\n    const endpoint = endpoints.user.currentUser;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .setBody(fields)\n      .post()\n      .then(res => res.data.data);\n  }\n\n  static async getUserRecentBooks() {\n    const endpoint = endpoints.user.userRecentBooks;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getReadingTabs() {\n    const endpoint = endpoints.user.readingTabs;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getBookmarks() {\n    if (!UserService.bookmarksApiEnabled) {\n      return [];\n    }\n    const endpoint = endpoints.user.bookmarks;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async createBookmark(payload: {\n    language: string;\n    book: string;\n    section: string;\n    position: number;\n    paragraph_anchor?: string;\n    note?: string;\n  }) {\n    if (!UserService.bookmarksApiEnabled) {\n      return null;\n    }\n    return new ApiService()\n      .setEndpoint(endpoints.user.bookmarks)\n      .setToken(store.state.auth.token)\n      .setBody(payload)\n      .post()\n      .then(response => response.data.data);\n  }\n\n  static async updateBookmark(\n    id: string | number,\n    payload: {\n      language: string;\n      book: string;\n      section: string;\n      position: number;\n      paragraph_anchor?: string;\n      note?: string;\n    }\n  ) {\n    if (!UserService.bookmarksApiEnabled) {\n      return null;\n    }\n    return new ApiService()\n      .setEndpoint(`${endpoints.user.bookmarks}/${id}`)\n      .setToken(store.state.auth.token)\n      .setBody(payload)\n      .put()\n      .then(response => response.data.data);\n  }\n\n  static async removeBookmark(id: string | number) {\n    if (!UserService.bookmarksApiEnabled) {\n      return null;\n    }\n    return new ApiService()\n      .setEndpoint(`${endpoints.user.bookmarks}/${id}`)\n      .setToken(store.state.auth.token)\n      .delete()\n      .then(response => response.data.data);\n  }\n\n  static async saveReadingPosition(payload: {\n    language: string;\n    book: string;\n    section: string;\n    position: number;\n    section_positions?: { [link: string]: number };\n  }) {\n    const bookKey = UserService.readingTabKey(payload.language, payload.book);\n    if (UserService.closedReadingTabs.has(bookKey)) {\n      return undefined;\n    }\n    const endpoint = endpoints.user.readingTabs;\n    const token = store.state.auth.token;\n    return UserService.enqueueReadingTabRequest(bookKey, () =>\n      new ApiService()\n        .setEndpoint(endpoint)\n        .setToken(token)\n        .setBody(payload)\n        .post()\n        .then(response => response.data.data)\n    );\n  }\n\n  static saveReadingPositionOnPageHide(payload: {\n    language: string;\n    book: string;\n    section: string;\n    position: number;\n    section_positions?: { [link: string]: number };\n  }) {\n    const bookKey = UserService.readingTabKey(payload.language, payload.book);\n    if (UserService.closedReadingTabs.has(bookKey)) {\n      return Promise.resolve(undefined);\n    }\n    const headers: { [name: string]: string } = {\n      'Content-Type': 'application/json'\n    };\n    if (store.state.auth.token) {\n      headers['Api-Authorization'] = store.state.auth.token;\n    }\n    return fetch(`${getApiBaseUrl()}${endpoints.user.readingTabs}`, {\n      method: 'POST',\n      headers,\n      credentials: 'include',\n      keepalive: true,\n      body: JSON.stringify(payload)\n    }).catch(() => undefined);\n  }\n\n  static async closeReadingTab(language: string, book: string) {\n    const bookKey = UserService.readingTabKey(language, book);\n    UserService.closedReadingTabs.add(bookKey);\n    const endpoint = endpoints.user.readingTabs;\n    const token = store.state.auth.token;\n    return UserService.enqueueReadingTabRequest(bookKey, () =>\n      new ApiService()\n        .setEndpoint(endpoint)\n        .setToken(token)\n        .setParams({ language, book })\n        .delete()\n        .then(response => response.data.data)\n    );\n  }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.getNews()),function(items,date){return _c('div',{key:date},[_c('div',{staticClass:\"date\"},[_vm._v(_vm._s(date))]),_vm._l((items),function(item,index){return _c('div',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(item.title))]),_c('div',{staticClass:\"text\"},[_vm._v(_vm._s(item.text))]),_c('div',{staticClass:\"images\"},_vm._l((item.images),function(image){return _c('div',{key:image.src,staticClass:\"image\"},[_c('img',{attrs:{\"src\":image.preview,\"alt\":\"\"}})])}),0)])})],2)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\n@Component\nexport default class NewsList extends Vue {\n  @Prop({ required: true })\n  news!: Array<any>;\n\n  @Prop({ required: true })\n  pagination!: Array<any>;\n\n  getNews() {\n    const news: { [key: string]: any } = {};\n    this.news.forEach((item: any) => {\n      const activeFrom = item['active_from']; // eslint-disable-line dot-notation\n      news[activeFrom] = news[activeFrom] || [];\n      news[activeFrom].push(item);\n    });\n    return news;\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewsList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewsList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewsList.vue?vue&type=template&id=c281644e&scoped=true&\"\nimport script from \"./NewsList.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewsList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewsList.vue?vue&type=style&index=0&id=c281644e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"c281644e\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.books),function(book){return _c('div',{key:(\"book-\" + (book.url)),staticClass:\"item\"},[_c('router-link',{staticClass:\"title\",attrs:{\"to\":book.url}},[_vm._v(_vm._s(book.name))]),_c('div',{staticClass:\"date\"},[_vm._v(_vm._s(book['created_at']))])],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import router from '@/router';\nimport { SearchItem } from '@/services/Api/SearchService';\n\ninterface BookUrlParams {\n  language: string;\n  bookSlug: string;\n  categorySlug?: string;\n  authorSlug?: string;\n  letter?: string;\n}\n\ninterface BookSectionUrlParams extends BookUrlParams {\n  bookSectionSlug: string;\n}\n\ninterface AuthorUrlParams {\n  language: string;\n  authorSlug: string;\n}\n\ninterface SearchUrlParams {\n  language: string;\n  query: string;\n  showAdvancedSearch?: boolean;\n  showHelp?: boolean;\n  inBookOnly?: boolean;\n  searchInPoem?: boolean;\n  exact?: boolean;\n  considerDiacritics?: boolean;\n  equalizeWriting?: boolean;\n  bookSlug?: string;\n  bookId?: number;\n  bookSearch?: boolean;\n  returnTo?: string;\n}\n\nexport default class UrlBuilderService {\n  static getBookUrl({ language, bookSlug, categorySlug, authorSlug }: BookUrlParams) {\n    if (categorySlug) {\n      return `/${language}/categories/${categorySlug}/${bookSlug}`;\n    }\n    if (authorSlug) {\n      return `/${language}/authors/${authorSlug}/${bookSlug}`;\n    }\n    return `/${language}/books/${bookSlug}`;\n  }\n\n  static getBookSectionUrl({\n    language,\n    bookSlug,\n    bookSectionSlug,\n    categorySlug,\n    authorSlug\n  }: BookSectionUrlParams) {\n    if (categorySlug) {\n      return `/${language}/categories/${categorySlug}/${bookSlug}/${bookSectionSlug}`;\n    }\n    if (authorSlug) {\n      return `/${language}/authors/${authorSlug}/${bookSlug}/${bookSectionSlug}`;\n    }\n    return `/${language}/books/${bookSlug}/${bookSectionSlug}`;\n  }\n\n  static getAuthorUrl({ language, authorSlug }: AuthorUrlParams) {\n    return `/${language}/authors/${authorSlug}`;\n  }\n\n  static getSearchQueryUrl({ language, query, bookSlug, returnTo, ...rest }: SearchUrlParams) {\n    const searchParams: { [key: string]: string } = { query };\n    if (bookSlug) {\n      searchParams.slug = bookSlug;\n    }\n    if (returnTo) {\n      searchParams.returnTo = returnTo;\n    }\n    Object.entries(rest)\n      .filter(([key, value]) => value)\n      .forEach(([key, value]) => {\n        searchParams[key] = Number(value).toString();\n      });\n    return `/${language}/search?${new URLSearchParams({ ...searchParams }).toString()}`;\n  }\n\n  static getSearchResultItemUrl(searchItem: SearchItem, index: number) {\n    let url = '';\n    const currentSearchLanguage =\n      typeof router.currentRoute.query.searchLanguage === 'string'\n        ? router.currentRoute.query.searchLanguage\n        : router.currentRoute.params.language;\n    const resultLanguage = searchItem.language || router.currentRoute.params.language;\n    if (searchItem.section_slug) {\n      url = UrlBuilderService.getBookSectionUrl({\n        language: resultLanguage,\n        bookSlug: searchItem.book_slug,\n        bookSectionSlug: searchItem.section_slug\n      });\n    } else {\n      url = UrlBuilderService.getBookUrl({\n        language: resultLanguage,\n        bookSlug: searchItem.book_slug\n      });\n    }\n    if (typeof router.currentRoute.query.query === 'string') {\n      const searchParams = new URLSearchParams();\n      Object.entries(router.currentRoute.query).forEach(([name, value]) => {\n        if (name !== 'scope' && typeof value === 'string') {\n          searchParams.set(name, value);\n        }\n      });\n      searchParams.set('index', index.toString());\n      searchParams.set('highlight', searchItem.highlight.join(','));\n      searchParams.set('searchLanguage', currentSearchLanguage);\n      return `${url}?${searchParams.toString()}`;\n    }\n    return url;\n  }\n\n  static getSearchParams({\n    query,\n    index,\n    highlight = ''\n  }: {\n    query: string;\n    index: number | string;\n    highlight?: string;\n  }) {\n    return new URLSearchParams({ query, index: index.toString(), highlight });\n  }\n}\n","\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\ninterface Book {\n  name: string;\n  language: string;\n  slug: string;\n  url?: string;\n  created_at: string;\n}\n\n@Component\nexport default class UserRecentBooks extends Vue {\n  @Prop({ required: true })\n  list!: Array<Book>;\n\n  get books() {\n    return this.list.map((book: Book) => ({\n      url: UrlBuilderService.getBookUrl({ language: book.language, bookSlug: book.slug }),\n      ...book\n    }));\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRecentBooks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRecentBooks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserRecentBooks.vue?vue&type=template&id=4d91831c&scoped=true&\"\nimport script from \"./UserRecentBooks.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserRecentBooks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserRecentBooks.vue?vue&type=style&index=0&id=4d91831c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4d91831c\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.list.length)?_c('button',{staticClass:\"link clear-history\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.clearSearchHistory()}}},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('clearList'))+\"\\n  \")]):_vm._e(),(_vm.list && _vm.list.length)?_c('div',_vm._l((_vm.list),function(item){return _c('div',{key:item.query,staticClass:\"item\"},[_c('router-link',{attrs:{\"to\":item.url},nativeOn:{\"click\":function($event){return _vm.$emit('click')}}},[_vm._v(_vm._s(item.query))])],1)}),0):(_vm.error)?_c('div',{staticClass:\"history-error\"},[_vm._v(_vm._s(_vm.getTranslation('errorOccurred')))]):(_vm.loaded)?_c('div',{staticClass:\"history-empty\"},[_vm._v(_vm._s(_vm.getTranslation('searchHistoryEmpty')))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { endpoints } from '@/api-endpoints.json';\nimport { ApiService } from '@/services/Api/ApiService';\nimport { store } from '@/store';\nimport { LANGUAGE_CODE_DEFAULT } from '@/constants';\n\nexport type SearchBaseOptions = {\n  book_slug: string;\n  search_in_poem: boolean;\n  exact: boolean;\n  consider_diacritics: boolean;\n  equalize_writing: boolean;\n  books: Array<number>;\n  book_sections: Array<string>;\n  categories: Array<number>;\n};\n\nexport interface SearchOptions extends SearchBaseOptions {\n  size: number;\n  from: number;\n}\n\nexport interface SearchItem {\n  language?: string;\n  book_slug: string;\n  section_slug: string;\n  title: string;\n  body: string;\n  highlight: Array<string>;\n  paths: Array<Array<{ title: string }>>;\n}\n\nexport default class SearchService {\n  static async search(\n    language: string = LANGUAGE_CODE_DEFAULT,\n    query: string,\n    options: Partial<SearchOptions> = {}\n  ) {\n    return new ApiService()\n      .setEndpoint(endpoints.search.query.replace(':lang', language))\n      .setToken(store.state.auth.token)\n      .setBody({\n        language,\n        query,\n        ...options\n      })\n      .post()\n      .then(response => response.data);\n  }\n\n  static async getSuggestions(\n    language: string = LANGUAGE_CODE_DEFAULT,\n    query: string,\n    options: Partial<SearchBaseOptions> = {}\n  ) {\n    return new ApiService()\n      .setEndpoint(endpoints.search.autocomplete.replace(':lang', language))\n      .setToken(store.state.auth.token)\n      .setBody({\n        language,\n        query,\n        ...options\n      })\n      .post()\n      .then(response => response.data);\n  }\n\n  static async getSearchHistory() {\n    const endpoint = endpoints.search.history;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async clearSearchHistory() {\n    const endpoint = endpoints.search.history;\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .delete()\n      .then(response => response.data.data);\n  }\n\n  static async getPriorityResults(language: string = LANGUAGE_CODE_DEFAULT, query: string) {\n    const endpoint = endpoints.search.priority.replace(':lang', language);\n    return new ApiService()\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .setBody({\n        query\n      })\n      .post()\n      .then(response => response.data.data);\n  }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport SearchService from '@/services/Api/SearchService';\nimport { LANGUAGE_CODE_DEFAULT } from '@/constants';\nimport { getTranslation } from '@/services/Translation';\nimport { State } from 'vuex-class';\n\n@Component\nexport default class SearchHistory extends Vue {\n  list: Array<{ query: string; url: string }> = [];\n\n  error: boolean = false;\n\n  loaded: boolean = false;\n\n  getTranslation = getTranslation;\n\n  @State('language', { namespace: 'navigation' })\n  navigationLanguage!: string;\n\n  async mounted() {\n    this.list = [];\n    this.error = false;\n    try {\n      const response: Array<{ query: string }> = await SearchService.getSearchHistory();\n      if (response && response.length) {\n        this.list = this.prepareList(response);\n      }\n    } catch (e) {\n      this.error = true;\n    } finally {\n      this.loaded = true;\n      this.$emit('state-change', this.list.length > 0);\n    }\n  }\n\n  async clearSearchHistory() {\n    this.list = [];\n    this.error = false;\n    try {\n      const response = await SearchService.clearSearchHistory();\n      if (response && response.length) {\n        this.list = this.prepareList(response);\n      }\n      this.$emit('state-change', this.list.length > 0);\n      this.$emit('cleared');\n    } catch (e) {\n      this.error = true;\n    }\n  }\n\n  prepareList(list: Array<{ query: string }>) {\n    const language = this.$route.params.language || this.navigationLanguage || LANGUAGE_CODE_DEFAULT;\n    return list.map(item => ({\n      ...item,\n      url: UrlBuilderService.getSearchQueryUrl({ language, query: item.query })\n    }));\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHistory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHistory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchHistory.vue?vue&type=template&id=0b20d2ae&scoped=true&\"\nimport script from \"./SearchHistory.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchHistory.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchHistory.vue?vue&type=style&index=0&id=0b20d2ae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0b20d2ae\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport NewsService from '@/services/Api/NewsService';\nimport UserService from '@/services/Api/UserService';\nimport NewsList from '@/components/NewsList.vue';\nimport UserRecentBooks from '@/components/UserRecentBooks.vue';\nimport SearchHistory from '@/components/SearchHistory.vue';\nimport Component from 'vue-class-component';\nimport { getTranslation } from '@/services/Translation';\nimport { State } from 'vuex-class';\nimport { Watch } from 'vue-property-decorator';\n\n@Component({\n  components: { NewsList, UserRecentBooks, SearchHistory }\n})\nexport default class Home extends Vue {\n  tabs = [\n    {\n      code: 'news',\n      name: getTranslation('news')\n    },\n    {\n      code: 'recently-viewed-books',\n      name: getTranslation('recentlyViewedBooks')\n    },\n    {\n      code: 'search-history',\n      name: getTranslation('searchQueries')\n    }\n  ];\n\n  currentTab: string = 'news';\n  news: Array<any> = [];\n  userRecentBooks: Array<any> = [];\n  pagination = {\n    current: 1,\n    total: 1\n  };\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  async mounted() {\n    this.$store.commit('tabs/updateActiveTabName', 'Vedarama');\n    await this.fetchNews();\n    await this.fetchUserRecentBooks();\n  }\n\n  @Watch('interfaceLanguage')\n  async onChangeInterfaceLang() {\n    this.tabs = [\n      {\n        code: 'news',\n        name: getTranslation('news')\n      },\n      {\n        code: 'recently-viewed-books',\n        name: getTranslation('recentlyViewedBooks')\n      },\n      {\n        code: 'search-history',\n        name: getTranslation('searchQueries')\n      }\n    ];\n    await this.fetchNews();\n  }\n\n  async fetchNews() {\n    const { data, pagination } = await NewsService.getNews();\n    this.news = data;\n    if (pagination) {\n      this.pagination = pagination;\n    }\n  }\n\n  async fetchUserRecentBooks() {\n    this.userRecentBooks = await UserService.getUserRecentBooks();\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=ab54df4e&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=ab54df4e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ab54df4e\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AuthLayout',[_c('h2',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.getTranslation('loginCaption')))]),_c('LoginForm',{on:{\"authorized\":_vm.onAuthorize}}),_c('div',{staticClass:\"registration\"},[_c('router-link',{staticClass:\"button secondary light-gold-color w100pc\",attrs:{\"to\":\"registration\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('registration'))+\"\\n    \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layout\"},[_c('div',[_c('div',{staticClass:\"logo\"},[_c('Logo',{attrs:{\"viewBox\":\"0 0 380 44\"}})],1),_c('div',{staticClass:\"content\"},[_vm._t(\"default\")],2)]),_c('footer',[_c('SwitchLang'),_c('LegalLinks')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"380\",\"height\":\"44\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M17.943 25.692l1.08 7.262h.3l1.2-7.323L28.564.611h8.642L21.603 43.633h-5.88L0 .61h9.541l8.402 25.082zM52.242.61h24.904v7.445H60.463v9.948h15.182v7.445H60.463v10.435h16.983v7.446H52.242V.61zM95.596.61c.84-.122 1.78-.223 2.82-.305a89.348 89.348 0 016.541-.244A77.42 77.42 0 01107.839 0c3.721 0 6.901.529 9.541 1.587 2.641 1.057 4.781 2.542 6.421 4.455 1.641 1.912 2.841 4.19 3.601 6.835.76 2.644 1.14 5.553 1.14 8.726 0 2.889-.36 5.676-1.08 8.36-.72 2.686-1.92 5.066-3.601 7.141-1.68 2.075-3.9 3.743-6.661 5.004-2.72 1.261-6.101 1.892-10.141 1.892-.64 0-1.5-.02-2.581-.061-1.04-.04-2.14-.102-3.3-.183a77.77 77.77 0 01-3.24-.183c-1.04-.04-1.82-.102-2.34-.183V.61zm12.902 6.835c-.88 0-1.78.02-2.7.061-.88.04-1.541.102-1.981.183v28.622c.16.04.42.081.78.122.401 0 .821.02 1.261.06.44 0 .86.021 1.26.062h.9c2.32 0 4.241-.407 5.761-1.22 1.56-.855 2.78-1.974 3.66-3.357.921-1.384 1.561-2.97 1.921-4.76.36-1.831.54-3.703.54-5.615 0-1.668-.16-3.336-.48-5.004-.32-1.709-.92-3.234-1.801-4.577-.84-1.342-2-2.44-3.48-3.295s-3.361-1.282-5.641-1.282zM165.455 33.87h-12.902l-3.18 9.459h-8.221L156.274.305h6.061l15.122 43.024h-8.641l-3.361-9.46zm-10.801-6.713h9.001l-3.12-9.52-1.261-6.713h-.3l-1.26 6.774-3.06 9.459zM193.088 1.037c.92-.162 1.9-.305 2.94-.427 1.08-.162 2.14-.285 3.181-.366 1.08-.081 2.12-.142 3.12-.183 1-.04 1.92-.061 2.761-.061 1.96 0 3.88.183 5.76.55 1.921.365 3.621.996 5.101 1.891 1.52.895 2.721 2.136 3.601 3.723.92 1.546 1.38 3.499 1.38 5.858 0 3.499-.8 6.347-2.4 8.544-1.601 2.197-3.741 3.723-6.421 4.577l2.94 1.892 9.602 16.294h-9.482l-9.541-16.721-4.321-.794V43.33h-8.221V1.037zm12.602 6.408a52.1 52.1 0 00-2.521.061c-.8.04-1.42.122-1.86.244V20.14h3.48c2.281 0 4.101-.53 5.461-1.587 1.361-1.058 2.041-2.807 2.041-5.248 0-1.831-.56-3.255-1.681-4.272-1.12-1.058-2.76-1.587-4.92-1.587zM259.665 33.87h-12.902l-3.18 9.459h-8.222L250.484.305h6.061l15.122 43.024h-8.641l-3.361-9.46zm-10.802-6.713h9.002l-3.121-9.52-1.26-6.713h-.3l-1.26 6.774-3.061 9.459zM319.882 21.176l.901-8.482h-.36l-2.581 6.834-8.941 15.928h-2.641l-9.421-15.989-2.64-6.773h-.301l1.201 8.421V43.33h-7.802V.61h7.502L306.02 20.14l1.981 4.882h.24l1.8-5.004L320.663.61h7.441V43.33h-8.222V21.176zM367.998 33.87h-12.902l-3.18 9.459h-8.222L358.817.305h6.061L380 43.33h-8.641l-3.361-9.46zm-10.801-6.713h9.001l-3.121-9.52-1.26-6.713h-.3l-1.26 6.774-3.06 9.459z\",\"fill\":\"#B78A54\"}})])\n          )\n        }\n      }\n    ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"switch-lang\"},[(_vm.interfaceLanguage === _vm.LANGUAGE_CODE_RUSSIAN)?_c('button',{staticClass:\"link\",on:{\"click\":function($event){return _vm.setInterfaceLanguage(_vm.LANGUAGE_CODE_ENGLISH)}}},[_vm._v(\"\\n    Switch to English version\\n  \")]):_c('button',{staticClass:\"link\",on:{\"click\":function($event){return _vm.setInterfaceLanguage(_vm.LANGUAGE_CODE_RUSSIAN)}}},[_vm._v(\"\\n    Switch to Russian version\\n  \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Mutation, State } from 'vuex-class';\nimport { LANGUAGE_CODE_RUSSIAN, LANGUAGE_CODE_ENGLISH } from '@/constants';\n\n@Component\nexport default class SwitchLang extends Vue {\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  @Mutation('setInterfaceLanguage', { namespace: 'reader' })\n  setInterfaceLanguage!: Function;\n\n  LANGUAGE_CODE_RUSSIAN = LANGUAGE_CODE_RUSSIAN;\n  LANGUAGE_CODE_ENGLISH = LANGUAGE_CODE_ENGLISH;\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchLang.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchLang.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchLang.vue?vue&type=template&id=796a3c32&scoped=true&\"\nimport script from \"./SwitchLang.vue?vue&type=script&lang=ts&\"\nexport * from \"./SwitchLang.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SwitchLang.vue?vue&type=style&index=0&id=796a3c32&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"796a3c32\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"legal-links\",attrs:{\"aria-label\":_vm.getTranslation('legalDocuments')}},[_c('a',{attrs:{\"href\":(_vm.baseUrl + \"privacy-policy.html#\" + _vm.languageAnchor),\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('privacyPolicy'))+\"\\n    \"),_c('span',{staticClass:\"legal-links__new-tab\"},[_vm._v(\"(\"+_vm._s(_vm.getTranslation('opensInNewTab'))+\")\")])]),_c('a',{attrs:{\"href\":(_vm.baseUrl + \"terms-of-use.html#\" + _vm.languageAnchor),\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('termsOfUse'))+\"\\n    \"),_c('span',{staticClass:\"legal-links__new-tab\"},[_vm._v(\"(\"+_vm._s(_vm.getTranslation('opensInNewTab'))+\")\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { getTranslation } from '@/services/Translation';\n\n@Component\nexport default class LegalLinks extends Vue {\n  getTranslation = getTranslation;\n  baseUrl = process.env.BASE_URL || '/';\n\n  get languageAnchor() {\n    return this.$store.state.reader.interfaceLanguage === 'en' ? 'english' : 'russian';\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LegalLinks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LegalLinks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LegalLinks.vue?vue&type=template&id=131f0c50&scoped=true&\"\nimport script from \"./LegalLinks.vue?vue&type=script&lang=ts&\"\nexport * from \"./LegalLinks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LegalLinks.vue?vue&type=style&index=0&id=131f0c50&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"131f0c50\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Logo from '@/assets/icons/logo.svg';\nimport SwitchLang from '@/components/SwitchLang.vue';\nimport LegalLinks from '@/components/LegalLinks.vue';\n\nexport default {\n  components: { SwitchLang, Logo, LegalLinks }\n};\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthLayout.vue?vue&type=template&id=49f6eb4d&scoped=true&\"\nimport script from \"./AuthLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthLayout.vue?vue&type=style&index=0&id=49f6eb4d&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"49f6eb4d\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"text\",\"placeholder\":\"example@vedarama.com\",\"label\":_vm.getTranslation('yourEmail'),\"value\":_vm.payload.email,\"error\":_vm.errors.email},on:{\"change\":function (value) { return _vm.onChangeField('email', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"flex justify-content-space-between\"},[_c('label',{staticClass:\"form-label\"},[_vm._v(_vm._s(_vm.getTranslation('password')))]),(_vm.showForgotPasswordLink)?_c('router-link',{staticClass:\"forgot-password-link\",attrs:{\"to\":\"forgot-password\"}},[_vm._v(_vm._s(_vm.getTranslation('forgotPassword')))]):_vm._e()],1),_c('InputText',{attrs:{\"type\":\"password\",\"value\":_vm.payload.password,\"error\":_vm.errors.password},on:{\"change\":function (value) { return _vm.onChangeField('password', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"flex justify-content-space-between align-items-center\"},[_c('Checkbox',{attrs:{\"checked\":_vm.rememberMe},on:{\"change\":function($event){_vm.rememberMe = !_vm.rememberMe}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('rememberMe'))+\"\\n      \")]),_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('signIn'))+\"\\n      \")])],1)]),_c('div',{staticClass:\"red-color\"},[_vm._v(_vm._s(_vm.error))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"checkbox\",class:{ 'is-checked': _vm.checked, 'is-partially-checked': _vm.partiallyChecked },attrs:{\"type\":\"button\",\"role\":\"checkbox\",\"aria-checked\":_vm.partiallyChecked ? 'mixed' : String(!!_vm.checked)},on:{\"click\":function($event){return _vm.$emit('change')}}},[_c('div',{staticClass:\"checkbox-inner\",class:{ checked: _vm.checked, 'partial-check': _vm.partiallyChecked }},[_c('span',{staticClass:\"checkbox-mobile-indicator\",attrs:{\"aria-hidden\":\"true\"}},[(_vm.checked && !_vm.partiallyChecked)?_c('svg',{attrs:{\"viewBox\":\"0 0 20 20\"}},[_c('path',{attrs:{\"d\":\"M5 10.25 8.4 13.5 15 6.8\"}})]):(_vm.partiallyChecked)?_c('span',{staticClass:\"checkbox-mobile-partial\"}):_vm._e()]),_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\n@Component\nexport default class Checkbox extends Vue {\n  @Prop({ required: false })\n  checked?: boolean;\n\n  @Prop({ required: false })\n  partiallyChecked?: boolean;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkbox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkbox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Checkbox.vue?vue&type=template&id=68698b38&scoped=true&\"\nimport script from \"./Checkbox.vue?vue&type=script&lang=ts&\"\nexport * from \"./Checkbox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Checkbox.vue?vue&type=style&index=0&id=68698b38&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"68698b38\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-text\"},[_c('label',{staticClass:\"label\"},[(_vm.label)?_c('div',{staticClass:\"label-text\"},[_vm._v(\"\\n      \"+_vm._s(_vm.label)+\"\\n      \"),(_vm.labelGreyText)?_c('span',{staticClass:\"gray-text-color\"},[_vm._v(_vm._s(_vm.labelGreyText))]):_vm._e()]):_vm._e(),((_vm.type)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.text),expression:\"text\"}],staticClass:\"input\",class:{ error: _vm.error },attrs:{\"placeholder\":_vm.placeholder,\"autocomplete\":_vm.autocomplete ? '' : 'new-password',\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.text)?_vm._i(_vm.text,null)>-1:(_vm.text)},on:{\"input\":_vm.handleInput,\"keyup\":_vm.handleKeyUp,\"blur\":function($event){return _vm.$emit('blur')},\"focus\":function($event){return _vm.$emit('focus')},\"change\":function($event){var $$a=_vm.text,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.text=$$a.concat([$$v]))}else{$$i>-1&&(_vm.text=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.text=$$c}}}}):((_vm.type)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.text),expression:\"text\"}],staticClass:\"input\",class:{ error: _vm.error },attrs:{\"placeholder\":_vm.placeholder,\"autocomplete\":_vm.autocomplete ? '' : 'new-password',\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.text,null)},on:{\"input\":_vm.handleInput,\"keyup\":_vm.handleKeyUp,\"blur\":function($event){return _vm.$emit('blur')},\"focus\":function($event){return _vm.$emit('focus')},\"change\":function($event){_vm.text=null}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.text),expression:\"text\"}],staticClass:\"input\",class:{ error: _vm.error },attrs:{\"placeholder\":_vm.placeholder,\"autocomplete\":_vm.autocomplete ? '' : 'new-password',\"type\":_vm.type},domProps:{\"value\":(_vm.text)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.text=$event.target.value},_vm.handleInput],\"keyup\":_vm.handleKeyUp,\"blur\":function($event){return _vm.$emit('blur')},\"focus\":function($event){return _vm.$emit('focus')}}})]),(_vm.hint)?_c('div',{staticClass:\"note hint\"},[_vm._v(\"\\n    \"+_vm._s(_vm.hint)+\"\\n  \")]):_vm._e(),(_vm.error)?_c('div',{staticClass:\"note error\",domProps:{\"innerHTML\":_vm._s(_vm.errorFormatted)}}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\n\n@Component\nexport default class InputText extends Vue {\n  @Prop({ required: false, default: '' })\n  placeholder?: string;\n\n  @Prop({ required: false })\n  value?: string;\n\n  @Prop({ required: false })\n  label?: string;\n\n  @Prop({ required: false })\n  labelGreyText?: string;\n\n  @Prop({ required: false })\n  hint?: string;\n\n  @Prop({ required: false, default: 'text' })\n  type?: string;\n\n  @Prop({ required: false })\n  error?: string | Array<string>;\n\n  @Prop({ required: false, default: true })\n  autocomplete?: boolean;\n\n  text: string;\n\n  constructor() {\n    super();\n    this.text = this.value || '';\n  }\n\n  @Watch('value')\n  onChangeValue() {\n    this.text = this.value || '';\n  }\n\n  get errorFormatted() {\n    return this.error instanceof Array ? this.error.join('<br/>') : this.error;\n  }\n\n  handleInput(e: InputEvent) {\n    if (!e.isComposing) {\n      this.$emit('change', (e.target as HTMLInputElement).value);\n    }\n  }\n\n  handleKeyUp(e: KeyboardEvent) {\n    if (e.keyCode === 13 && !e.isComposing) {\n      this.$emit('enter', this.text);\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./InputText.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./InputText.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputText.vue?vue&type=template&id=0947fcaa&scoped=true&\"\nimport script from \"./InputText.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputText.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InputText.vue?vue&type=style&index=0&id=0947fcaa&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0947fcaa\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { getTranslation } from '@/services/Translation';\nimport AuthLayout from '@/layouts/AuthLayout.vue';\nimport Checkbox from '@/components/ui/Checkbox.vue';\nimport InputText from '@/components/ui/InputText.vue';\n\n@Component({\n  components: { InputText, AuthLayout, Checkbox }\n})\nexport default class LoginForm extends Vue {\n  loading: boolean = false;\n  email: string = '';\n  password: string = '';\n  error: string = '';\n  errors: { [field: string]: Array<string> } = {};\n  payload: { [fieldName: string]: string } = {\n    email: '',\n    password: ''\n  };\n  rememberMe: boolean = true;\n\n  @Prop({ default: true })\n  showForgotPasswordLink?: boolean;\n\n  getTranslation = getTranslation;\n\n  async submit() {\n    if (this.loading) {\n      return;\n    }\n    this.error = '';\n    this.errors = {};\n    this.loading = true;\n    try {\n      await this.$store.dispatch('auth/login', this.payload);\n      this.$emit('authorized');\n    } catch (e) {\n      if (e.response && e.response.data) {\n        this.error = e.response.data.message || getTranslation('defaultErrorMessage');\n        this.errors = e.response.data.errors;\n      } else {\n        this.error = e.message || getTranslation('defaultErrorMessage');\n      }\n    } finally {\n      this.loading = false;\n    }\n  }\n\n  async onChangeField(fieldName: string, value: string) {\n    this.payload[fieldName] = value;\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=509e0954&scoped=true&\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=509e0954&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"509e0954\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport AuthLayout from '@/layouts/AuthLayout.vue';\nimport { getTranslation } from '@/services/Translation';\nimport LoginForm from '@/components/LoginForm.vue';\n\n@Component({\n  components: { LoginForm, AuthLayout }\n})\nexport default class Login extends Vue {\n  getTranslation = getTranslation;\n\n  onAuthorize() {\n    const redirect = this.$route.query.redirect as string;\n    if (redirect && this.isAllowedRedirect(redirect)) {\n      window.location.href = redirect;\n      return;\n    }\n    this.$router.push('/').catch(() => {});\n  }\n\n  private isAllowedRedirect(url: string): boolean {\n    try {\n      const parsed = new URL(url);\n      return ['vedarama.com', 'vedarama.ru'].some(\n        domain => parsed.hostname === domain || parsed.hostname.endsWith(`.${domain}`)\n      );\n    } catch {\n      return false;\n    }\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=1ea48fce&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=1ea48fce&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1ea48fce\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AuthLayout',[_c('h2',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.getTranslation('forgotPassword')))]),(_vm.result && _vm.result.data)?_c('div',{staticClass:\"text-center\"},[_vm._v(\"\\n    \"+_vm._s(_vm.result.data.message)+\"\\n  \")]):[_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"placeholder\":\"example@vedarama.com\",\"label\":_vm.getTranslation('enterYourEmail'),\"autocomplete\":false},on:{\"change\":function (value) { return (_vm.email = value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"flex justify-content-space-between\"},[_c('router-link',{attrs:{\"to\":\"/login\"}},[_vm._v(_vm._s(_vm.getTranslation('authorization')))]),_c('div',[_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('submit'))+\"\\n          \")])])],1)]),_c('div',{staticClass:\"red-color\"},[_vm._v(_vm._s(_vm.error))])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport AuthLayout from '@/layouts/AuthLayout.vue';\nimport AuthService from '@/services/Api/AuthService';\nimport Component from 'vue-class-component';\nimport { getTranslation } from '@/services/Translation';\nimport InputText from '@/components/ui/InputText.vue';\n\n@Component({\n  components: { InputText, AuthLayout }\n})\nexport default class ForgotPassword extends Vue {\n  loading = false;\n  email = '';\n  error = '';\n  result: any = null;\n\n  getTranslation = getTranslation;\n\n  async submit() {\n    if (this.loading) {\n      return;\n    }\n    this.loading = true;\n    try {\n      this.result = await AuthService.forgotPassword(this.email);\n      this.loading = false;\n    } catch (e) {\n      this.loading = false;\n      this.error =\n        e.response && e.response.data && e.response.data.message\n          ? e.response.data.message\n          : e.message || getTranslation('defaultErrorMessage');\n    }\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ForgotPassword.vue?vue&type=template&id=15c1276b&\"\nimport script from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AuthLayout',[_c('h2',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.getTranslation('resetPassword')))]),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"placeholder\":\"example@vedarama.com\",\"label\":_vm.getTranslation('yourEmail'),\"value\":_vm.email,\"autocomplete\":false,\"error\":_vm.errorsByField ? _vm.errorsByField.email : null},on:{\"change\":function (value) { return (_vm.email = value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"password\",\"label\":_vm.getTranslation('password'),\"autocomplete\":false,\"error\":_vm.errorsByField ? _vm.errorsByField.password : null},on:{\"change\":function (value) { return (_vm.password = value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"password\",\"label\":_vm.getTranslation('repeatPassword'),\"autocomplete\":false,\"error\":_vm.errorsByField ? _vm.errorsByField.password_confirmation : null},on:{\"change\":function (value) { return (_vm.passwordConfirmation = value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"flex justify-content-space-between\"},[_c('router-link',{attrs:{\"to\":\"/login\"}},[_vm._v(_vm._s(_vm.getTranslation('authorization')))]),_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('submit'))+\"\\n      \")])],1)]),_c('div',{staticClass:\"red-color\"},[_vm._v(_vm._s(_vm.error))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport AuthLayout from '@/layouts/AuthLayout.vue';\nimport AuthService from '@/services/Api/AuthService';\nimport Component from 'vue-class-component';\nimport { getTranslation } from '@/services/Translation';\nimport InputText from '@/components/ui/InputText.vue';\n\n@Component({\n  components: { InputText, AuthLayout }\n})\nexport default class ResetPassword extends Vue {\n  loading = false;\n  token = '';\n  email = '';\n  password = '';\n  passwordConfirmation = '';\n  error = '';\n  errorsByField = null;\n\n  getTranslation = getTranslation;\n\n  created() {\n    this.token = this.$route.params.token;\n    this.email = typeof this.$route.query.email === 'string' ? this.$route.query.email : '';\n  }\n\n  async submit() {\n    if (this.loading) {\n      return;\n    }\n    this.loading = true;\n    try {\n      await AuthService.resetPassword(this.token, this.email, this.password, this.passwordConfirmation);\n      this.loading = false;\n      this.$router.push('/').catch(() => {});\n    } catch (e) {\n      this.loading = false;\n      this.errorsByField = e.response && e.response.data && e.response.data.errors;\n      this.error =\n        e.response && e.response.data && e.response.data.message\n          ? e.response.data.message\n          : e.message || getTranslation('defaultErrorMessage');\n    }\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=580f64cc&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AuthLayout',[_c('h2',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.getTranslation('registration')))]),(_vm.registered)?_c('div',[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('registrationVerifyEmail'))+\"\\n  \")]):[_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"text\",\"placeholder\":\"example@vedarama.com\",\"label\":_vm.getTranslation('yourEmail'),\"value\":_vm.payload.email,\"error\":_vm.errors.email},on:{\"change\":function (value) { return _vm.onChangeField('email', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"password\",\"label\":_vm.getTranslation('password'),\"value\":_vm.payload.password,\"error\":_vm.errors.password},on:{\"change\":function (value) { return _vm.onChangeField('password', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"text\",\"placeholder\":\"Иван\",\"label\":_vm.getTranslation('name'),\"value\":_vm.payload.name,\"error\":_vm.errors.name},on:{\"change\":function (value) { return _vm.onChangeField('name', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"text\",\"placeholder\":\"Петров\",\"label\":_vm.getTranslation('lastName'),\"value\":_vm.payload.last_name,\"error\":_vm.errors.last_name},on:{\"change\":function (value) { return _vm.onChangeField('last_name', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"text\",\"placeholder\":\"Говинда Дас\",\"label\":_vm.getTranslation('spiritualName'),\"labelGreyText\":_vm.getTranslation('fillIfExists'),\"value\":_vm.payload.spiritual_name,\"error\":_vm.errors.spiritual_name},on:{\"change\":function (value) { return _vm.onChangeField('spiritual_name', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"form-row\"},[_c('InputText',{attrs:{\"type\":\"text\",\"placeholder\":\"1234\",\"label\":_vm.getTranslation('accessCode'),\"labelGreyText\":_vm.getTranslation('fillIfExists'),\"value\":_vm.payload.access_code,\"error\":_vm.errors.access_code},on:{\"change\":function (value) { return _vm.onChangeField('access_code', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('TermsAcceptance',{ref:\"terms\",attrs:{\"disabled\":_vm.loading,\"error\":_vm.termsError},model:{value:(_vm.termsAccepted),callback:function ($$v) {_vm.termsAccepted=$$v},expression:\"termsAccepted\"}}),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"flex justify-content-space-between\"},[_c('router-link',{attrs:{\"to\":\"/login\"}},[_vm._v(_vm._s(_vm.getTranslation('authorization')))]),_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('submit'))+\"\\n        \")])],1)]),_c('div',{staticClass:\"red-color\"},[_vm._v(_vm._s(_vm.error))])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"terms-acceptance\"},[_c('div',{staticClass:\"terms-acceptance__row\"},[_c('input',{ref:\"checkbox\",attrs:{\"id\":\"terms-accepted\",\"type\":\"checkbox\",\"disabled\":_vm.disabled,\"aria-invalid\":_vm.error ? 'true' : 'false',\"aria-describedby\":_vm.error ? 'terms-error terms-privacy' : 'terms-privacy'},domProps:{\"checked\":_vm.value},on:{\"change\":function($event){return _vm.$emit('input', $event.target.checked)}}}),_c('label',{attrs:{\"for\":\"terms-accepted\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('termsAcceptPrefix'))+\"\\n      \"),_c('a',{attrs:{\"href\":_vm.termsUrl,\"target\":\"_blank\",\"rel\":\"noopener\",\"title\":_vm.getTranslation('opensInNewTab')}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('termsOfUse'))+\"\\n      \")])])]),_c('p',{staticClass:\"terms-acceptance__privacy\",attrs:{\"id\":\"terms-privacy\"}},[_c('a',{attrs:{\"href\":_vm.privacyUrl,\"target\":\"_blank\",\"rel\":\"noopener\",\"title\":_vm.getTranslation('opensInNewTab')}},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('howWeProcessData'))+\"\\n    \")])]),(_vm.error)?_c('p',{staticClass:\"terms-acceptance__error\",attrs:{\"id\":\"terms-error\",\"role\":\"alert\"}},[_vm._v(_vm._s(_vm.error))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const TERMS_VERSION = '2026-09-11';\n\nexport function legalDocumentUrl(document: 'terms-of-use' | 'privacy-policy', language: string) {\n  const anchor = language === 'en' ? 'english' : 'russian';\n  return `${process.env.BASE_URL || '/'}${document}.html#${anchor}`;\n}\n\nexport function safeReturnPath(value: unknown): string {\n  return typeof value === 'string' &&\n    /^\\/(?!\\/)/.test(value) &&\n    !/[\\\\\\r\\n]/.test(value) &&\n    !value.startsWith('/accept-terms')\n    ? value\n    : '/';\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { getTranslation } from '@/services/Translation';\nimport { legalDocumentUrl } from '@/services/LegalService';\n\n@Component\nexport default class TermsAcceptance extends Vue {\n  @Prop({ default: false }) value!: boolean;\n  @Prop({ default: false }) disabled!: boolean;\n  @Prop({ default: '' }) error!: string;\n  getTranslation = getTranslation;\n\n  get termsUrl() {\n    return legalDocumentUrl('terms-of-use', this.$store.state.reader.interfaceLanguage);\n  }\n\n  get privacyUrl() {\n    return legalDocumentUrl('privacy-policy', this.$store.state.reader.interfaceLanguage);\n  }\n\n  focus() {\n    (this.$refs.checkbox as HTMLInputElement).focus();\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsAcceptance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsAcceptance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TermsAcceptance.vue?vue&type=template&id=13e49e84&scoped=true&\"\nimport script from \"./TermsAcceptance.vue?vue&type=script&lang=ts&\"\nexport * from \"./TermsAcceptance.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TermsAcceptance.vue?vue&type=style&index=0&id=13e49e84&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"13e49e84\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport AuthLayout from '@/layouts/AuthLayout.vue';\nimport AuthService from '@/services/Api/AuthService';\nimport Component from 'vue-class-component';\nimport InputText from '@/components/ui/InputText.vue';\nimport { getTranslation } from '@/services/Translation';\nimport TermsAcceptance from '@/components/TermsAcceptance.vue';\nimport { TERMS_VERSION } from '@/services/LegalService';\n\n@Component({\n  components: { AuthLayout, InputText, TermsAcceptance }\n})\nexport default class ResetPassword extends Vue {\n  loading = false;\n  registered = false;\n  error = '';\n  termsAccepted = false;\n  termsAttempted = false;\n\n  get termsError() {\n    return this.termsAttempted && !this.termsAccepted ? getTranslation('termsAcceptanceRequired') : '';\n  }\n  errors: { [field: string]: Array<string> } = {};\n  payload: { [fieldName: string]: string } = {\n    email: '',\n    name: '',\n    last_name: '',\n    password: '',\n    spiritual_name: '',\n    access_code: ''\n  };\n  getTranslation = getTranslation;\n\n  async submit() {\n    if (this.loading) {\n      return;\n    }\n    this.termsAttempted = true;\n    if (!this.termsAccepted) {\n      (this.$refs.terms as TermsAcceptance).focus();\n      return;\n    }\n    this.error = '';\n    this.errors = {};\n    this.loading = true;\n    try {\n      this.payload.password_confirmation = this.payload.password;\n      await AuthService.register({ ...this.payload, terms_accepted: '1', terms_version: TERMS_VERSION });\n      this.registered = true;\n    } catch (e) {\n      this.error =\n        e.response && e.response.data && e.response.data.message\n          ? e.response.data.message\n          : e.message || getTranslation('defaultErrorMessage');\n\n      this.errors = (e.response && e.response.data && e.response.data.errors) || {};\n      if (this.errors.terms_version) {\n        this.error = getTranslation('termsVersionChanged');\n      } else if (this.errors.terms_accepted) {\n        this.termsAccepted = false;\n      }\n    } finally {\n      this.loading = false;\n    }\n  }\n\n  async onChangeField(fieldName: string, value: string) {\n    this.payload[fieldName] = value;\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Registration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Registration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Registration.vue?vue&type=template&id=60e4718e&\"\nimport script from \"./Registration.vue?vue&type=script&lang=ts&\"\nexport * from \"./Registration.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AuthLayout',[(_vm.loading)?_c('Loader'):[(_vm.authorized)?[_c('h2',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.getTranslation('verifyEmail')))]),(_vm.needPageReload)?[_c('p',[_vm._v(_vm._s(_vm.getTranslation('tooManyRequests')))]),_c('button',{staticClass:\"button\",on:{\"click\":_vm.reloadPage}},[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('refresh'))+\"\\n        \")])]:[(_vm.fail)?_c('p',{staticClass:\"red-color\"},[_vm._v(_vm._s(_vm.getTranslation('verifyEmailFail'))),_c('br')]):_vm._e(),(!_vm.fail && _vm.verificationResent)?_c('p',[_vm._v(_vm._s(_vm.getTranslation('registrationVerifyEmail')))]):_vm._e(),(!_vm.verificationResent)?[_c('p',[_vm._v(_vm._s(_vm.getTranslation('verifyEmailIsNotVerified')))]),_c('button',{staticClass:\"button\",attrs:{\"disabled\":_vm.resendingVerification},on:{\"click\":_vm.resendVerification}},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('submit'))+\"\\n          \")]),_vm._v(\"\\n             \"),_c('button',{staticClass:\"link\",on:{\"click\":_vm.logout}},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('logout'))+\"\\n          \")])]:_vm._e()]]:[_c('h2',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.getTranslation('authorization')))]),_c('LoginForm',{attrs:{\"showForgotPasswordLink\":false},on:{\"authorized\":_vm.verifyEmail}})]]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport AuthLayout from '@/layouts/AuthLayout.vue';\nimport Component from 'vue-class-component';\nimport { getTranslation } from '@/services/Translation';\nimport AuthService from '@/services/Api/AuthService';\nimport Login from '@/views/Login.vue';\nimport LoginForm from '@/components/LoginForm.vue';\nimport { Action, State } from 'vuex-class';\nimport Loader from '@/components/ui/Loader.vue';\nimport { User } from '@/store/modules/user';\nimport UserService from '@/services/Api/UserService';\nimport { store } from '@/store';\nimport { Watch } from 'vue-property-decorator';\n\n@Component({\n  components: { Loader, LoginForm, Login, AuthLayout }\n})\nexport default class VerifyEmail extends Vue {\n  loading = true;\n  fail = false;\n  resendingVerification = false;\n  verificationResent = false;\n  needPageReload = false;\n\n  @State('authorized', { namespace: 'auth' })\n  authorized!: boolean;\n\n  @State('data', { namespace: 'user' })\n  user!: User;\n\n  @Action('logout', { namespace: 'auth' })\n  sendLogout!: Function;\n\n  getTranslation = getTranslation;\n\n  async mounted() {\n    if (this.$route.name === 'verify-email') {\n      await this.verifyEmail();\n    }\n    this.loading = false;\n  }\n\n  @Watch('authorized')\n  async onAuthorizedChange() {\n    this.loading = true;\n    await this.verifyEmail();\n    this.loading = false;\n  }\n\n  async verifyEmail() {\n    const userId = this.$route.params.userId;\n    const hash = this.$route.params.hash;\n    const expires = this.$route.query.expires || '';\n    const signature = this.$route.query.signature || '';\n\n    if (\n      !(userId && hash && typeof expires == 'string' && typeof signature === 'string' && expires && signature)\n    ) {\n      this.fail = true;\n      return;\n    }\n    const result = await AuthService.verifyEmail(userId, hash, expires, signature).catch(async e => {\n      if (e.response.status === 429) {\n        this.needPageReload = true;\n      }\n      if (e.response.status === 401) {\n        await this.sendLogout();\n      }\n      this.fail = true;\n    });\n    if (result && result.data && result.data.success) {\n      await this.$router.replace('/');\n      return;\n    } else {\n      this.fail = true;\n    }\n  }\n\n  async resendVerification() {\n    this.resendingVerification = true;\n    try {\n      await AuthService.verifyEmailResend();\n      this.fail = false;\n      this.resendingVerification = false;\n      this.verificationResent = true;\n    } catch {\n      this.fail = true;\n    }\n  }\n\n  reloadPage() {\n    window.location.reload();\n  }\n\n  async logout() {\n    this.sendLogout();\n    await this.$router.replace('/');\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyEmail.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyEmail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VerifyEmail.vue?vue&type=template&id=927dd774&\"\nimport script from \"./VerifyEmail.vue?vue&type=script&lang=ts&\"\nexport * from \"./VerifyEmail.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.content)}}),_c('LegalLinks')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { store } from '@/store';\nimport { endpoints } from '@/api-endpoints.json';\nimport { ApiService } from '@/services/Api/ApiService';\n\nexport default class HelpService {\n  private static instance: HelpService;\n\n  apiService: ApiService = new ApiService();\n\n  private static getInstance() {\n    if (!HelpService.instance) {\n      HelpService.instance = new HelpService();\n    }\n    return HelpService.instance;\n  }\n\n  static async getHelp(lang: string): Promise<{ html: string }> {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.help.replace(':lang', lang))\n      .setToken(store.state.auth.token)\n      .cache()\n      .get()\n      .then(response => response.data.data);\n  }\n}\n","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { State } from 'vuex-class';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { getTranslation } from '@/services/Translation';\nimport HelpService from '@/services/Api/HelpService';\nimport LegalLinks from '@/components/LegalLinks.vue';\n\n@Component({ components: { LegalLinks } })\nexport default class Help extends Vue {\n  content = '';\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  async mounted() {\n    await this.actualizeContent();\n  }\n\n  @Watch('interfaceLanguage')\n  async onInterfaceLanguageChange() {\n    await this.actualizeContent();\n  }\n\n  async actualizeContent() {\n    this.$store.commit('tabs/updateActiveTabName', getTranslation('help'));\n    const { html } = await HelpService.getHelp(this.interfaceLanguage);\n    this.content = html;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Help.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Help.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Help.vue?vue&type=template&id=b1a1b6b8&scoped=true&\"\nimport script from \"./Help.vue?vue&type=script&lang=ts&\"\nexport * from \"./Help.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Help.vue?vue&type=style&index=0&id=b1a1b6b8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b1a1b6b8\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('CommonLayout',{attrs:{\"mobile-reader\":_vm.mobileReader,\"reader-chrome-visible\":_vm.readerChromeVisible,\"presentation-mode\":_vm.presentationMode},on:{\"toggle-catalog\":_vm.openReaderCatalog,\"search-book\":_vm.openMobileBookSearch,\"toggle-bookmarks\":function($event){_vm.mobileBookmarkSheetVisible = true},\"toggle-theme\":_vm.toggleMobileThemePicker,\"toggle-text-settings\":function($event){_vm.mobileThemePickerVisible = false},\"open-settings\":function($event){return _vm.openMobileView('settings')}}},[_c('div',{staticClass:\"reader-shell\",class:[\n      (\"mobile-view-\" + _vm.mobileView),\n      {\n        'mobile-reader': _vm.mobileReader,\n        'mobile-narrow-visual': _vm.isNarrowVisualViewport,\n        'reader-chrome-hidden': !_vm.readerChromeVisible,\n        'presentation-mode': _vm.presentationMode\n      }\n    ],style:({ '--mobile-visual-width': (_vm.mobileVisualViewportWidth + \"px\") }),on:{\"mousemove\":_vm.onPresentationActivity,\"&touchstart\":function($event){return _vm.onPresentationActivity($event)}}},[_c('div',{staticClass:\"left\",class:{\n        hidden: _vm.$store.state.reader.readMode,\n        'mobile-open': _vm.mobileCatalogVisible,\n        'mobile-library': _vm.mobileView === 'library',\n        'mobile-search-area': _vm.mobileView === 'search-area'\n      },style:({ minWidth: (_vm.leftColumnWidth + \"px\") })},[(_vm.mobileView === 'library')?_c('div',{staticClass:\"mobile-library-header\"},[_c('h1',[_vm._v(_vm._s(_vm.getTranslation('library')))]),(_vm.mobileLanguageMenuVisible)?_c('button',{staticClass:\"mobile-language-backdrop\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":function($event){_vm.mobileLanguageMenuVisible = false}}}):_vm._e(),_c('div',{staticClass:\"mobile-language-picker\"},[_c('button',{ref:\"mobileLanguageTrigger\",staticClass:\"mobile-language-trigger\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('bookTranslation'),\"aria-expanded\":String(_vm.mobileLanguageMenuVisible),\"aria-haspopup\":\"listbox\",\"aria-controls\":\"mobile-catalog-language-menu\"},on:{\"click\":_vm.toggleMobileLanguageMenu}},[_c('span',{staticClass:\"mobile-language-value\"},[_c(_vm.currentCatalogLanguage.icon,{tag:\"component\"}),_c('span',[_vm._v(_vm._s(_vm.currentCatalogLanguage.label))])],1),_c('IconArrowDown',{class:{ rotate: _vm.mobileLanguageMenuVisible }})],1),(_vm.mobileLanguageMenuVisible)?_c('div',{staticClass:\"mobile-language-menu\",attrs:{\"id\":\"mobile-catalog-language-menu\",\"role\":\"listbox\",\"aria-label\":_vm.getTranslation('bookTranslation')}},_vm._l((_vm.catalogLanguages),function(language){return _c('button',{key:language.code,ref:\"mobileLanguageOptions\",refInFor:true,class:{ active: language.code === _vm.navLanguage },attrs:{\"type\":\"button\",\"role\":\"option\",\"aria-selected\":String(language.code === _vm.navLanguage)},on:{\"click\":function($event){return _vm.changeCatalogLanguage(language.code)}}},[_c('span',{staticClass:\"mobile-language-value\"},[_c(language.icon,{tag:\"component\"}),_c('span',[_vm._v(_vm._s(language.label))])],1)])}),0):_vm._e()])]):(_vm.mobileView === 'search-area')?_c('div',{staticClass:\"mobile-search-area-header\"},[_c('button',{staticClass:\"mobile-search-area-back nav-icon\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('search')},on:{\"click\":_vm.closeMobileSearchArea}},[_c('IconReturn')],1),_c('div',{staticClass:\"mobile-search-area-copy\"},[_c('span',[_vm._v(_vm._s(_vm.getTranslation('search')))]),_c('h1',[_vm._v(_vm._s(_vm.getTranslation('searchScope')))])]),(_vm.selectedBooksCount)?_c('span',{staticClass:\"mobile-search-area-count\"},[_vm._v(\"\\n          \"+_vm._s(_vm.selectedBooksCount)+\"\\n        \")]):_vm._e()]):_vm._e(),(_vm.mobileReader)?_c('div',{staticClass:\"mobile-table-of-contents\"},[_c('header',{staticClass:\"mobile-toc-header\"},[_c('div',[_c('span',[_vm._v(_vm._s(_vm.getTranslation('tableOfContents')))]),_c('h2',[_vm._v(_vm._s(_vm.readerBook ? _vm.readerBook.name : ''))])]),_c('button',{staticClass:\"mobile-catalog-close nav-icon\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":function($event){_vm.mobileCatalogVisible = false}}},[_c('IconCross')],1)]),_c('div',{staticClass:\"mobile-toc-scroll\"},[(_vm.readerBook)?_vm._l((_vm.readerBookRootSections),function(bookSection){return _c('NavBookSection',{key:bookSection.id,attrs:{\"bookSection\":bookSection,\"bookSections\":_vm.readerBook.children,\"level\":0,\"showCheckboxes\":false,\"catalogTree\":true,\"activeSectionSlug\":_vm.$route.params.bookSection || ''}})}):_c('Loader')],2)]):(_vm.isCompactViewport || _vm.navLanguage || _vm.$route.params.language)?_c('Catalog',{staticClass:\"left-inner\",attrs:{\"mobile-mode\":_vm.isCompactViewport\n            ? _vm.mobileView === 'search-area'\n              ? 'search-area'\n              : _vm.mobileView === 'library'\n              ? 'library'\n              : ''\n            : ''}}):_c('NewBooks',{staticClass:\"left-inner\"}),_c('div',{staticClass:\"left-resize\",on:{\"mousedown\":_vm.onMouseDown}})],1),(_vm.mobileCatalogVisible)?_c('button',{staticClass:\"mobile-catalog-backdrop\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":function($event){_vm.mobileCatalogVisible = false}}}):_vm._e(),_c('div',{staticClass:\"main\"},[_c('Search',{attrs:{\"mobile-visible\":_vm.mobileView === 'search' || _vm.mobileView === 'book-search',\"mobile-book-search\":_vm.mobileView === 'book-search',\"mobile-book-name\":_vm.mobileBookSearchName},on:{\"select-search-area\":_vm.openMobileSearchArea,\"close-book-search\":_vm.closeMobileBookSearch,\"mobile-overlay-change\":function($event){_vm.mobileSearchOverlayVisible = $event}}}),_c('TextTypesFilter'),_c('MobileReaderThemePicker',{attrs:{\"visible\":_vm.mobileThemePickerVisible},on:{\"close\":function($event){_vm.mobileThemePickerVisible = false}}}),_c('MobileBookmarkSheet',{attrs:{\"visible\":_vm.mobileBookmarkSheetVisible,\"current-tab\":_vm.activeTab || null,\"bookmarks\":_vm.$store.state.bookmarks.list},on:{\"close\":function($event){_vm.mobileBookmarkSheetVisible = false},\"add\":_vm.addBookmarkAtCurrentPlace,\"move\":_vm.moveBookmarkToCurrentPlace,\"note\":_vm.updateBookmarkNote,\"remove\":_vm.removeBookmark}}),_c('TabsBar'),(_vm.mobileView === 'bookmarks')?_c('MobileBookmarks',{staticClass:\"mobile-screen\",attrs:{\"bookmarks\":_vm.$store.state.bookmarks.list},on:{\"open\":_vm.openMobileBookmark,\"remove\":_vm.removeBookmark}}):_vm._e(),(_vm.mobileView === 'settings')?_c('section',{staticClass:\"mobile-screen mobile-settings\"},[(_vm.mobileSettingsReturnTo)?_c('button',{staticClass:\"mobile-back-to-reading\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.returnToMobileReader}},[_c('span',{staticClass:\"mobile-back-to-reading-icon\",attrs:{\"aria-hidden\":\"true\"}},[_c('IconReturn')],1),_c('span',[_vm._v(_vm._s(_vm.getTranslation('backToReading')))])]):_vm._e(),_c('h1',[_vm._v(_vm._s(_vm.getTranslation('settings')))]),_c('Settings',{attrs:{\"show-text-visibility\":!!_vm.mobileSettingsReturnTo}})],1):_vm._e(),_c('div',{staticClass:\"content\",class:{ 'mobile-content-hidden': !_vm.showMobileContent },on:{\"click\":_vm.onContentInteraction}},[_c('div',{staticClass:\"content-inner\",class:( _obj = {}, _obj[_vm.$store.state.reader.readMode ? _vm.$store.state.reader.colorMode : 'light'] = _vm.activeTab && _vm.activeTab.link, _obj )},[(!(_vm.activeTab && _vm.activeTab.link))?_c('NewTab'):_vm._e(),(_vm.isCompactViewport)?_c('keep-alive',{attrs:{\"include\":\"BookContent\"}},[(_vm.activeTab && _vm.activeTab.link)?_c('router-view',{ref:\"contentView\"}):_vm._e()],1):(_vm.activeTab && _vm.activeTab.link)?_c('router-view',{ref:\"contentView\"}):_vm._e()],1)])],1),(!_vm.mobileReader && _vm.mobileView !== 'book-search' && !_vm.mobileSearchOverlayVisible)?_c('MobileNavigation',{attrs:{\"active\":_vm.mobileNavigationView,\"reading-available\":!!_vm.currentReadingSession},on:{\"navigate\":_vm.openMobileView}}):_vm._e(),(_vm.presentationMode)?_c('PresentationControls',{attrs:{\"visible\":_vm.presentationControlsVisible,\"book-title\":_vm.presentationBookTitle,\"section-title\":_vm.presentationSectionTitle,\"current-index\":_vm.presentationCurrentIndex,\"total-sections\":_vm.presentationSections.length,\"has-previous\":_vm.presentationHasPrevious,\"has-next\":_vm.presentationHasNext,\"scale\":_vm.$store.state.reader.presentationScale,\"auto-fit\":_vm.$store.state.reader.presentationAutoFit,\"color-mode\":_vm.$store.state.reader.colorMode,\"hidden-text-types\":_vm.$store.state.reader.presentationHideTextTypes},on:{\"previous\":function($event){return _vm.navigatePresentation(-1)},\"next\":function($event){return _vm.navigatePresentation(1)},\"exit\":_vm.exitPresentationMode,\"settings-change\":_vm.onPresentationSettingsChange,\"scale\":_vm.updatePresentationScale,\"auto-fit\":_vm.setPresentationAutoFit,\"color-mode\":_vm.setColorMode,\"toggle-text-type\":_vm.switchPresentationTextTypeFilter}}):_vm._e()],1),_c('Overlay',{attrs:{\"title\":_vm.getTranslation('settings'),\"visible\":_vm.isSettingsVisible},on:{\"close\":_vm.hideSettings}},[_c('Settings')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layout\",class:{\n    'mobile-reader': _vm.mobileReader,\n    'reader-chrome-hidden': !_vm.readerChromeVisible,\n    'presentation-mode': _vm.presentationMode\n  }},[(!_vm.presentationMode)?_c('Header',{attrs:{\"mobile-reader\":_vm.mobileReader},on:{\"toggle-catalog\":function($event){return _vm.$emit('toggle-catalog')},\"search-book\":function($event){return _vm.$emit('search-book')},\"toggle-bookmarks\":function($event){return _vm.$emit('toggle-bookmarks')},\"toggle-theme\":function($event){return _vm.$emit('toggle-theme')},\"toggle-text-settings\":function($event){return _vm.$emit('toggle-text-settings')},\"open-settings\":function($event){return _vm.$emit('open-settings')}}}):_vm._e(),_c('div',{staticClass:\"content\"},[_c('Sidebar'),_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\",class:{ 'mobile-reader': _vm.mobileReader }},[_c('div',{staticClass:\"logo\"},[_c('router-link',{staticClass:\"logo-link\",attrs:{\"to\":_vm.homeUrl},nativeOn:{\"click\":function($event){return _vm.onLogoClick($event)}}},[_vm._v(\"\\n      VEDARAMA\\n    \")])],1),(_vm.$store.state.reader.readMode)?_c('div',{staticClass:\"reader-controls\"},[_c('button',{staticClass:\"nav-link header-button\",attrs:{\"type\":\"button\",\"aria-label\":_vm.mobileReader && _vm.hasRelatedHistory\n          ? _vm.getTranslation('backToPreviousText')\n          : _vm.getTranslation('exitReadingMode')},on:{\"click\":function($event){_vm.mobileReader ? _vm.leaveMobileReader() : _vm.setReadMode(false)}}},[_c('span',{staticClass:\"header-button-inner\"},[(_vm.mobileReader)?_c('IconReturn'):_c('IconBook'),_c('span',{staticClass:\"header-button-text\"},[_vm._v(_vm._s(_vm.getTranslation('exitReadingMode')))])],1)]),(_vm.mobileReader)?_c('div',{staticClass:\"mobile-reader-title\"},[_vm._v(_vm._s(_vm.readerBook ? _vm.readerBook.name : ''))]):_vm._e(),(_vm.mobileReader)?_c('button',{staticClass:\"nav-link header-button mobile-reader-action\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('showBooksCatalog')},on:{\"click\":function($event){return _vm.$emit('toggle-catalog')}}},[_c('IconList')],1):_vm._e(),(_vm.mobileReader)?_c('button',{staticClass:\"nav-link header-button mobile-reader-action\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('searchInBook')},on:{\"click\":function($event){return _vm.$emit('search-book')}}},[_c('IconSearch')],1):_vm._e(),(_vm.mobileReader)?_c('button',{staticClass:\"nav-link header-button mobile-reader-action mobile-more-button\",class:{ active: _vm.mobileActionsVisible },attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('moreActions'),\"aria-expanded\":String(_vm.mobileActionsVisible),\"aria-haspopup\":\"menu\"},on:{\"click\":function($event){_vm.mobileActionsVisible = !_vm.mobileActionsVisible}}},[_c('IconMore')],1):_vm._e(),(_vm.mobileActionsVisible)?_c('button',{staticClass:\"mobile-reader-menu-backdrop\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":function($event){_vm.mobileActionsVisible = false}}}):_vm._e(),(_vm.mobileActionsVisible)?_c('div',{staticClass:\"mobile-reader-menu\",attrs:{\"role\":\"menu\"}},[_c('button',{attrs:{\"type\":\"button\",\"role\":\"menuitem\"},on:{\"click\":_vm.openBookmarks}},[_c('span',{staticClass:\"mobile-reader-menu-icon\"},[_c('IconBookmark')],1),_c('span',[_vm._v(_vm._s(_vm.getTranslation('bookmarks')))])]),_c('button',{attrs:{\"type\":\"button\",\"role\":\"menuitem\"},on:{\"click\":_vm.openThemePicker}},[_c('span',{staticClass:\"mobile-reader-menu-icon\"},[_c('span',{staticClass:\"mobile-theme-swatch\",class:_vm.$store.state.reader.colorMode})]),_c('span',[_vm._v(_vm._s(_vm.getTranslation('colorTheme')))])]),_c('button',{attrs:{\"type\":\"button\",\"role\":\"menuitem\"},on:{\"click\":_vm.openTextSettings}},[_c('span',{staticClass:\"mobile-reader-menu-icon\"},[_c('IconTextSettings')],1),_c('span',[_vm._v(_vm._s(_vm.getTranslation('textSettings')))])])]):_vm._e(),(!_vm.mobileReader)?_c('button',{staticClass:\"nav-link header-button\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('textSettings')},on:{\"click\":_vm.toggleTextSettings}},[_c('span',{staticClass:\"header-button-inner\"},[_c('IconTextSettings'),_c('span',{staticClass:\"header-button-text\"},[_vm._v(_vm._s(_vm.getTranslation('textSettings'))+\"  \\n          \"),_c('IconArrowDown',{class:{ rotate: _vm.$store.state.reader.isTextTypesFiltersVisible }})],1)],1)]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"personal\"},[_c('button',{staticClass:\"user nav-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.showProfileOverlay = true}}},[_vm._v(\"\\n      \"+_vm._s(_vm.user.data.spiritual_name || _vm.user.data.name + ' ' + _vm.user.data.last_name)+\"\\n    \")]),_c('button',{staticClass:\"logout\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.showLogoutOverlay = true}}},[_c('IconLogout')],1)]),_c('Overlay',{attrs:{\"title\":_vm.getTranslation('profile'),\"visible\":_vm.showProfileOverlay},on:{\"close\":function($event){_vm.showProfileOverlay = false}}},[_c('Profile')],1),_c('Overlay',{attrs:{\"title\":_vm.getTranslation('logOutAreYouSure'),\"visible\":_vm.showLogoutOverlay,\"centered\":true},on:{\"close\":function($event){_vm.showLogoutOverlay = false}}},[_c('div',{staticClass:\"logout-buttons\"},[_c('button',{staticClass:\"button secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.showLogoutOverlay = false}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('cancel'))+\"\\n      \")]),_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.logout()}}},[_vm._v(_vm._s(_vm.getTranslation('logout')))])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"12\",\"height\":\"12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M5 6h5.5m0 0l-2-2m2 2l-2 2\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}}),_c('path',{attrs:{\"d\":\"M7 .5a.5.5 0 00-.5-.5H2a2 2 0 00-2 2v8a2 2 0 002 2h4.5a.5.5 0 000-1H2a1 1 0 01-1-1V2a1 1 0 011-1h4.5A.5.5 0 007 .5z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div',{ref:\"dialog\",staticClass:\"overlay\",attrs:{\"role\":\"dialog\",\"aria-modal\":\"true\",\"aria-labelledby\":_vm.titleId,\"tabindex\":\"-1\"},on:{\"keydown\":_vm.onKeydown}},[_c('div',{staticClass:\"inner\",class:{ centered: _vm.centered }},[_c('button',{staticClass:\"bg\",attrs:{\"type\":\"button\",\"tabindex\":\"-1\",\"aria-hidden\":\"true\"},on:{\"click\":function($event){return _vm.$emit('close')}}}),_c('div',{staticClass:\"content\"},[_c('button',{staticClass:\"close nav-icon\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('CrossBolderIcon')],1),_c('div',{staticClass:\"content-inner\"},[_c('h1',{staticClass:\"title\",attrs:{\"id\":_vm.titleId}},[_vm._v(_vm._s(_vm.title))]),_vm._t(\"default\")],2)])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"14\",\"height\":\"14\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M1.707.293A1 1 0 00.293 1.707L1.707.293zm10.586 13.414a1 1 0 001.414-1.414l-1.414 1.414zm1.414-12A1 1 0 0012.293.293l1.414 1.414zM.293 12.293a1 1 0 101.414 1.414L.293 12.293zm0-10.586l12 12 1.414-1.414-12-12L.293 1.707zm12-1.414l-12 12 1.414 1.414 12-12L12.293.293z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Component from 'vue-class-component';\nimport Vue from 'vue';\nimport CrossBolderIcon from '@/assets/icons/cross-bolder.svg';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { getTranslation } from '@/services/Translation';\n\nlet overlayIndex = 0;\n\n@Component({\n  components: {\n    CrossBolderIcon\n  }\n})\nexport default class Overlay extends Vue {\n  titleId = `overlay-title-${++overlayIndex}`;\n\n  previouslyFocused?: HTMLElement;\n\n  getTranslation = getTranslation;\n\n  @Prop({ required: false })\n  centered?: boolean;\n\n  @Prop({ required: true })\n  title!: string;\n\n  @Prop({ required: false })\n  visible?: boolean;\n\n  mounted() {\n    if (this.visible) {\n      this.focusDialog();\n    }\n  }\n\n  beforeDestroy() {\n    this.restoreFocus();\n  }\n\n  @Watch('visible')\n  onVisibleChange(visible: boolean) {\n    if (visible) {\n      this.focusDialog();\n    } else {\n      this.restoreFocus();\n    }\n  }\n\n  focusDialog() {\n    this.previouslyFocused = document.activeElement as HTMLElement;\n    this.$nextTick(() => {\n      const dialog = this.$refs.dialog as HTMLElement;\n      if (dialog) {\n        dialog.focus();\n      }\n    });\n  }\n\n  restoreFocus() {\n    if (this.previouslyFocused && document.body.contains(this.previouslyFocused)) {\n      this.previouslyFocused.focus();\n    }\n    this.previouslyFocused = undefined;\n  }\n\n  onKeydown(event: KeyboardEvent) {\n    if (event.key === 'Escape') {\n      event.preventDefault();\n      this.$emit('close');\n      return;\n    }\n    if (event.key !== 'Tab') {\n      return;\n    }\n    const dialog = this.$refs.dialog as HTMLElement;\n    const focusable = dialog\n      ? (Array.from(\n          dialog.querySelectorAll(\n            'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n          )\n        ) as HTMLElement[]).filter(\n          element =>\n            element.tabIndex >= 0 &&\n            element.getAttribute('aria-hidden') !== 'true' &&\n            element.offsetParent !== null\n        )\n      : [];\n    if (!focusable.length) {\n      event.preventDefault();\n      return;\n    }\n    const first = focusable[0];\n    const last = focusable[focusable.length - 1];\n    if (event.shiftKey && document.activeElement === first) {\n      event.preventDefault();\n      last.focus();\n    } else if (!event.shiftKey && document.activeElement === last) {\n      event.preventDefault();\n      first.focus();\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Overlay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Overlay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Overlay.vue?vue&type=template&id=47986292&scoped=true&\"\nimport script from \"./Overlay.vue?vue&type=script&lang=ts&\"\nexport * from \"./Overlay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Overlay.vue?vue&type=style&index=0&id=47986292&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"47986292\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"profile\"},[(_vm.user.subscribe_level)?_c('div',{staticClass:\"link-wrap\"},[_c('div',{staticClass:\"field read-only\"},[_c('div',{staticClass:\"field-value\"},[_vm._v(\"Подписка: \"+_vm._s(_vm.user.subscribe_level))])])]):_vm._e(),_c('hr',{staticClass:\"hr\"}),(_vm.editMode)?_c('div',[_c('div',{staticClass:\"field\"},[_c('InputText',{attrs:{\"label\":_vm.getTranslation('spiritualName'),\"value\":_vm.user.spiritual_name,\"error\":_vm.errors.spiritual_name,\"autocomplete\":false},on:{\"change\":function (value) { return _vm.onChangeField('spiritual_name', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"field\"},[_c('InputText',{attrs:{\"label\":_vm.getTranslation('name'),\"value\":_vm.user.name,\"error\":_vm.errors.name,\"autocomplete\":false},on:{\"change\":function (value) { return _vm.onChangeField('name', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"field\"},[_c('InputText',{attrs:{\"label\":_vm.getTranslation('lastName'),\"value\":_vm.user.last_name,\"error\":_vm.errors.last_name,\"autocomplete\":false},on:{\"change\":function (value) { return _vm.onChangeField('last_name', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('hr',{staticClass:\"hr\"}),_c('div',{staticClass:\"field\"},[_c('InputText',{attrs:{\"label\":_vm.getTranslation('yourEmail'),\"value\":_vm.user.email,\"hint\":_vm.getTranslation('enterNewAddress'),\"error\":_vm.errors.email,\"autocomplete\":false},on:{\"change\":function (value) { return _vm.onChangeField('email', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('hr',{staticClass:\"hr\"}),_c('div',{staticClass:\"field\"},[_c('InputText',{attrs:{\"type\":\"password\",\"label\":_vm.getTranslation('newPassword'),\"error\":_vm.errors.password,\"autocomplete\":false},on:{\"change\":function (value) { return _vm.onChangeField('password', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"field\"},[_c('InputText',{attrs:{\"type\":\"password\",\"label\":_vm.getTranslation('repeatNewPassword'),\"hint\":_vm.getTranslation('toChangePasswordEnterNewPassword'),\"error\":_vm.errors.password_confirmation,\"autocomplete\":false},on:{\"change\":function (value) { return _vm.onChangeField('password_confirmation', value); },\"enter\":function($event){return _vm.submit()}}})],1),_c('div',{staticClass:\"buttons\"},[_c('button',{staticClass:\"button secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.editMode = false}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('cancel'))+\"\\n      \")]),_c('Button',{staticClass:\"button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.getTranslation('save')))])],1)]):_c('div',[_c('div',{staticClass:\"field read-only\"},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.getTranslation('spiritualName')))]),_c('div',{staticClass:\"field-value\"},[_vm._v(_vm._s(_vm.user.spiritual_name))])]),_c('div',{staticClass:\"field read-only\"},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.getTranslation('name')))]),_c('div',{staticClass:\"field-value\"},[_vm._v(_vm._s(_vm.user.name))])]),_c('div',{staticClass:\"field read-only\"},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.getTranslation('lastName')))]),_c('div',{staticClass:\"field-value\"},[_vm._v(_vm._s(_vm.user.last_name))])]),_c('div',{staticClass:\"link-wrap\"},[_c('button',{staticClass:\"link dashed\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.editMode = true}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('enterPersonalData'))+\"\\n      \")])]),_c('hr',{staticClass:\"hr\"}),_c('div',{staticClass:\"field read-only\"},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.getTranslation('yourEmail')))]),_c('div',{staticClass:\"field-value\"},[_vm._v(_vm._s(_vm.user.email))])]),_c('div',{staticClass:\"link-wrap\"},[_c('button',{staticClass:\"link dashed\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.editMode = true}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('change'))+\"\\n      \")])]),_c('hr',{staticClass:\"hr\"}),_c('div',{staticClass:\"link-wrap\"},[_c('button',{staticClass:\"link dashed\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.editMode = true}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('changePassword'))+\"\\n      \")])])]),_c('LegalLinks')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport InputText from '@/components/ui/InputText.vue';\nimport { Mutation, State } from 'vuex-class';\nimport { User } from '@/store/modules/user';\nimport UserService from '@/services/Api/UserService';\nimport { getTranslation } from '@/services/Translation';\nimport LegalLinks from '@/components/LegalLinks.vue';\n@Component({\n  components: { InputText, LegalLinks }\n})\nexport default class Profile extends Vue {\n  editMode: boolean = false;\n\n  @State('data', { namespace: 'user' })\n  user!: User;\n\n  @Mutation('set', { namespace: 'user' })\n  setUser!: Function;\n\n  payload: { [fieldName: string]: string } = {};\n\n  errors: { [field: string]: Array<string> } = {};\n\n  getTranslation = getTranslation;\n\n  mounted() {\n    this.payload = {};\n    Object.entries(this.user)\n      .filter(([fieldName]) => fieldName !== 'id')\n      .forEach(([fieldName, value]) => {\n        this.payload[fieldName] = value;\n      });\n  }\n\n  async submit() {\n    try {\n      const payload: { [key: string]: string } = {};\n      Object.entries(this.payload)\n        .filter(([fieldName, value]) => !!value)\n        .forEach(([fieldName, value]) => {\n          payload[fieldName] = value;\n        });\n      const user = await UserService.updateUser(payload);\n      this.setUser(user);\n      this.editMode = false;\n    } catch (e) {\n      this.errors = e.response.data.errors;\n    }\n  }\n\n  async onChangeField(fieldName: string, value: string) {\n    this.payload[fieldName] = value;\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=75b56084&scoped=true&\"\nimport script from \"./Profile.vue?vue&type=script&lang=ts&\"\nexport * from \"./Profile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Profile.vue?vue&type=style&index=0&id=75b56084&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"75b56084\",\n  null\n  \n)\n\nexport default component.exports","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"10\",\"height\":\"6\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M1 1l4 4 4-4\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"20\",\"height\":\"16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('rect',{attrs:{\"x\":\".5\",\"y\":\".5\",\"width\":\"19\",\"height\":\"15\",\"rx\":\"1.5\",\"stroke\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M12 4h5m-5 2.5h5M12 9h5M3 4h5M3 6.5h5M3 9h5\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}}),_c('path',{attrs:{\"d\":\"M10 1v14\",\"stroke\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"16\",\"height\":\"17\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M3.94 3.097c1.494 1.293 3.822.328 3.963-1.641.017-.229.102-.349.186-.419A.642.642 0 018.5.9c.168 0 .314.056.411.137.084.07.17.19.186.419.141 1.97 2.47 2.934 3.962 1.641.174-.15.319-.174.427-.165a.642.642 0 01.388.194c.119.12.183.262.194.388.01.109-.015.253-.165.427-.043.049-.083.099-.12.15-.109.146-.079.347.05.476l.051.052c.19.189.524.113.7-.089 1.217-1.406-.708-3.33-2.114-2.114-.933.808-2.387.206-2.475-1.025-.134-1.855-2.856-1.855-2.99 0-.088 1.23-1.542 1.833-2.475 1.025C3.124 1.2 1.2 3.124 2.416 4.53c.808.933.206 2.387-1.025 2.475-1.855.134-1.855 2.856 0 2.99 1.23.088 1.833 1.542 1.025 2.475-1.217 1.406.708 3.33 2.114 2.114.933-.808 2.387-.205 2.475 1.025.134 1.855 2.856 1.855 2.99 0 .088-1.23 1.542-1.833 2.475-1.025 1.406 1.217 3.33-.708 2.114-2.114a1.65 1.65 0 01-.053-.064 1.045 1.045 0 00-.084-.097c-.454-.454-1.129-.151-.798.4.072.12.157.238.254.35.15.174.174.319.165.427a.642.642 0 01-.194.388.642.642 0 01-.388.194c-.109.01-.253-.015-.427-.165-1.493-1.293-3.82-.328-3.962 1.641-.017.229-.102.348-.186.419a.642.642 0 01-.411.137.642.642 0 01-.411-.137c-.084-.07-.17-.19-.186-.418-.141-1.97-2.47-2.935-3.962-1.642-.174.15-.318.174-.427.165a.642.642 0 01-.388-.194.642.642 0 01-.194-.388c-.01-.109.015-.253.165-.427 1.293-1.493.328-3.82-1.641-3.962-.229-.017-.349-.102-.419-.186A.642.642 0 01.9 8.5c0-.168.056-.314.137-.411.07-.084.19-.17.419-.186 1.97-.141 2.934-2.47 1.641-3.962-.15-.174-.174-.318-.165-.427a.642.642 0 01.194-.388.642.642 0 01.388-.194c.109-.01.253.015.427.165z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M6.5 6.5h9m-9 2h9m-9 2h9\",\"stroke\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"13\",\"height\":\"11\",\"fill\":\"none\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M1 2.5l2.5 2M1 2.5l2.62-2M1 2.5h7.333S12 2.816 12 6.5s-3.667 4-3.667 4H2.571\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"16\",\"height\":\"16\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M15 7.5H5.5m0 3h4m-4 3h8m-8-9h5m-5-3h7\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}}),_c('rect',{attrs:{\"x\":\"1\",\"y\":\"1\",\"width\":\"2\",\"height\":\"1\",\"rx\":\".5\",\"fill\":\"currentColor\"}}),_c('rect',{attrs:{\"x\":\"1\",\"y\":\"7\",\"width\":\"2\",\"height\":\"1\",\"rx\":\".5\",\"fill\":\"currentColor\"}}),_c('rect',{attrs:{\"x\":\"1\",\"y\":\"13\",\"width\":\"2\",\"height\":\"1\",\"rx\":\".5\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"20\",\"height\":\"20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M13.014 12.305a.5.5 0 10-.707.707l.707-.707zm3.632 5.049a.5.5 0 00.707-.707l-.707.707zm-2.661-9.108a5.744 5.744 0 01-5.743 5.746v1a6.744 6.744 0 006.743-6.746h-1zm-5.743 5.746A5.744 5.744 0 012.5 8.246h-1a6.744 6.744 0 006.742 6.746v-1zM2.5 8.246A5.744 5.744 0 018.242 2.5v-1A6.744 6.744 0 001.5 8.246h1zM8.242 2.5a5.744 5.744 0 015.743 5.746h1A6.744 6.744 0 008.242 1.5v1zm4.065 10.512l4.339 4.341.707-.707-4.339-4.341-.707.707z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M3.25 4.1c0-.75.6-1.35 1.35-1.35h14.8c.75 0 1.35.6 1.35 1.35v17.25L12 15.15l-8.75 6.2V4.1z\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('circle',{attrs:{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1.6\",\"fill\":\"currentColor\"}}),_c('circle',{attrs:{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1.6\",\"fill\":\"currentColor\"}}),_c('circle',{attrs:{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1.6\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","const RELATED_TRAIL_QUERY = 'relatedTrail';\nconst MAX_RELATED_TRAIL_LENGTH = 12;\n\ntype QueryValue = string | Array<string | null> | null | undefined;\n\nexport default class RelatedNavigationService {\n  static createTargetUrl(targetUrl: string, currentUrl: string, trailValue?: QueryValue) {\n    const trail = RelatedNavigationService.parseTrail(trailValue);\n    const sourceUrl = RelatedNavigationService.withTrail(currentUrl, []);\n    if (sourceUrl && trail[trail.length - 1] !== sourceUrl) {\n      trail.push(sourceUrl);\n    }\n    return RelatedNavigationService.withTrail(targetUrl, trail.slice(-MAX_RELATED_TRAIL_LENGTH));\n  }\n\n  static getPreviousUrl(trailValue?: QueryValue) {\n    const trail = RelatedNavigationService.parseTrail(trailValue);\n    const previousUrl = trail.pop();\n    return previousUrl ? RelatedNavigationService.withTrail(previousUrl, trail) : '';\n  }\n\n  static hasPrevious(trailValue?: QueryValue) {\n    return RelatedNavigationService.parseTrail(trailValue).length > 0;\n  }\n\n  private static parseTrail(value?: QueryValue): Array<string> {\n    const raw = Array.isArray(value) ? value[0] : value;\n    if (!raw || typeof raw !== 'string') {\n      return [];\n    }\n    try {\n      const parsed = JSON.parse(raw);\n      return Array.isArray(parsed)\n        ? parsed.filter(item => typeof item === 'string' && item.startsWith('/') && !item.startsWith('//'))\n        : [];\n    } catch (error) {\n      return [];\n    }\n  }\n\n  private static withTrail(url: string, trail: Array<string>) {\n    if (!url || !url.startsWith('/') || url.startsWith('//')) {\n      return '';\n    }\n    const hashIndex = url.indexOf('#');\n    const hash = hashIndex >= 0 ? url.slice(hashIndex) : '';\n    const withoutHash = hashIndex >= 0 ? url.slice(0, hashIndex) : url;\n    const queryIndex = withoutHash.indexOf('?');\n    const path = queryIndex >= 0 ? withoutHash.slice(0, queryIndex) : withoutHash;\n    const query = new URLSearchParams(queryIndex >= 0 ? withoutHash.slice(queryIndex + 1) : '');\n    if (trail.length) {\n      query.set(RELATED_TRAIL_QUERY, JSON.stringify(trail));\n    } else {\n      query.delete(RELATED_TRAIL_QUERY);\n    }\n    const queryString = query.toString();\n    return `${path}${queryString ? `?${queryString}` : ''}${hash}`;\n  }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport IconLogout from '@/assets/icons/logout.svg';\nimport { UserState } from '@/store/modules/user';\nimport Overlay from '@/components/ui/Overlay.vue';\nimport Profile from '@/components/Profile.vue';\nimport IconArrowDown from '@/assets/icons/arrow-down.svg';\nimport IconBook from '@/assets/icons/book.svg';\nimport IconTextSettings from '@/assets/icons/text-settings-icon.svg';\nimport IconReturn from '@/assets/icons/return.svg';\nimport IconList from '@/assets/icons/list.svg';\nimport IconSearch from '@/assets/icons/zoom.svg';\nimport IconBookmark from '@/assets/icons/bookmark-nav.svg';\nimport IconMore from '@/assets/icons/more.svg';\nimport { getTranslation } from '@/services/Translation';\nimport { Book, BookSection } from '@/services/Navigation/types';\nimport { LANGUAGE_CODE_DEFAULT } from '@/constants';\nimport RelatedNavigationService from '@/services/RelatedNavigationService';\n\n@Component({\n  components: {\n    Profile,\n    Overlay,\n    IconLogout,\n    IconBook,\n    IconList,\n    IconSearch,\n    IconBookmark,\n    IconMore,\n    IconReturn,\n    IconTextSettings,\n    IconArrowDown\n  }\n})\nexport default class Header extends Vue {\n  loading: boolean = false;\n\n  getTranslation = getTranslation;\n\n  @Prop({ required: false, default: false })\n  mobileReader!: boolean;\n\n  @Getter('currentBook', { namespace: 'navigation' })\n  currentBook?: Book;\n\n  @Getter('currentBookSection', { namespace: 'navigation' })\n  currentBookSection?: BookSection;\n\n  @Action('logout', { namespace: 'auth' })\n  sendLogout!: Function;\n\n  @State('user')\n  user!: UserState;\n\n  @State('language', { namespace: 'navigation' })\n  navLanguage!: string;\n\n  @Mutation('setReadMode', { namespace: 'reader' })\n  setReadMode!: Function;\n\n  @Mutation('setLanguage', { namespace: 'navigation' })\n  setLanguage!: Function;\n\n  @Mutation('toggleTextTypesFilter', { namespace: 'reader' })\n  toggleTextTypesFilter!: Function;\n\n  showProfileOverlay: boolean = false;\n\n  showLogoutOverlay: boolean = false;\n\n  mobileActionsVisible: boolean = false;\n\n  get readerBook() {\n    return this.currentBook || (this.currentBookSection && this.currentBookSection.book);\n  }\n\n  get compactViewport() {\n    return typeof window !== 'undefined' && window.innerWidth <= 1024;\n  }\n\n  get hasRelatedHistory() {\n    return RelatedNavigationService.hasPrevious(this.$route.query.relatedTrail as string);\n  }\n\n  get homeUrl() {\n    if (!this.compactViewport) {\n      return '/';\n    }\n    const language = this.$route.params.language || this.navLanguage || LANGUAGE_CODE_DEFAULT;\n    return `/${language}/library`;\n  }\n\n  onLogoClick() {\n    this.setReadMode(false);\n    if (this.compactViewport) {\n      this.setLanguage(this.$route.params.language || this.navLanguage || LANGUAGE_CODE_DEFAULT);\n    } else {\n      this.setLanguage('');\n    }\n  }\n\n  async logout() {\n    try {\n      await this.sendLogout();\n      this.$router.push('/login').catch(() => {});\n    } catch (e) {\n      // do nothing\n    }\n  }\n\n  leaveMobileReader() {\n    const relatedReturnUrl = RelatedNavigationService.getPreviousUrl(this.$route.query\n      .relatedTrail as string);\n    if (relatedReturnUrl) {\n      this.mobileActionsVisible = false;\n      this.$router.push(relatedReturnUrl).catch(() => {});\n      return;\n    }\n    this.setReadMode(false);\n    if (typeof this.$route.query.query === 'string' && this.$route.query.query) {\n      const query = { ...this.$route.query };\n      delete query.index;\n      delete query.highlight;\n      delete query.reading;\n      const searchParams = new URLSearchParams();\n      Object.entries(query).forEach(([name, value]) => {\n        if (typeof value === 'string') {\n          searchParams.set(name, value);\n        }\n      });\n      this.$router.push(`/${this.$route.params.language}/search?${searchParams.toString()}`).catch(() => {});\n      return;\n    }\n    const path = this.$route.path\n      .split('/')\n      .slice(0, -1)\n      .join('/');\n    this.$router.push(path || '/').catch(() => {});\n  }\n\n  toggleTextSettings() {\n    this.$emit('toggle-text-settings');\n    this.toggleTextTypesFilter();\n  }\n\n  openBookmarks() {\n    this.mobileActionsVisible = false;\n    this.$emit('toggle-bookmarks');\n  }\n\n  openThemePicker() {\n    this.mobileActionsVisible = false;\n    this.$emit('toggle-theme');\n  }\n\n  openTextSettings() {\n    this.mobileActionsVisible = false;\n    this.$emit('open-settings');\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=308ed700&scoped=true&\"\nimport script from \"./Header.vue?vue&type=script&lang=ts&\"\nexport * from \"./Header.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Header.vue?vue&type=style&index=0&id=308ed700&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"308ed700\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar\"},[_vm._l((_vm.languages),function(language){return _c('button',{key:language.code,staticClass:\"nav-icon\",class:{ active: _vm.$store.state.navigation.language === language.code },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.updateLanguage(language.code)}}},[_c(language.icon,{tag:\"component\"})],1)}),_c('div',{staticClass:\"separator\"}),_c('button',{staticClass:\"nav-icon\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleSettings}},[_c('IconSettings')],1),_c('button',{staticClass:\"nav-icon\",on:{\"click\":_vm.openHelp}},[_c('IconHelp')],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"32\",\"height\":\"32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M19.093 11.958l.114.217.243.043 5.603.973a.5.5 0 01.273.84l-3.965 4.095-.17.176.034.243.81 5.648a.5.5 0 01-.717.519l-5.097-2.515-.221-.11-.221.11-5.097 2.515a.5.5 0 01-.716-.52l.809-5.647.035-.243-.17-.176-3.966-4.095a.5.5 0 01.273-.84l5.603-.973.243-.043.114-.217 2.65-5.042a.5.5 0 01.886 0l2.65 5.042z\",\"stroke\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"viewBox\":\"0 0 32 32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M21.5 25V6.5h-11V25l5.5-5.143L21.5 25z\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.75\",\"stroke-linejoin\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"32\",\"height\":\"32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M18.495 9.237l.06.239.226.098c.496.215.963.486 1.392.805l.198.147.237-.067 2.247-.64a.444.444 0 01.468.128 9.488 9.488 0 011.582 2.736.443.443 0 01-.122.47l-1.68 1.627-.176.171.028.245a7.094 7.094 0 010 1.608l-.028.245.177.171 1.679 1.628c.14.135.178.32.122.47a9.488 9.488 0 01-1.582 2.735.444.444 0 01-.468.128l-2.247-.64-.237-.067-.198.147c-.43.32-.896.59-1.392.805l-.226.098-.06.24-.569 2.264a.444.444 0 01-.346.341 9.566 9.566 0 01-3.16 0l-.082.493.083-.493a.444.444 0 01-.346-.34l-.57-2.266-.06-.239-.226-.098a6.995 6.995 0 01-1.391-.805l-.198-.147-.238.067-2.246.64a.444.444 0 01-.468-.129 9.488 9.488 0 01-1.583-2.735.443.443 0 01.123-.47l-.346-.357.346.357 1.68-1.627.176-.171-.028-.245a7.081 7.081 0 010-1.608l.028-.245-.177-.17-1.68-1.628a.443.443 0 01-.122-.47 9.489 9.489 0 011.583-2.736.444.444 0 01.468-.128l2.246.64.238.067.198-.147c.429-.319.895-.59 1.392-.805l.226-.098.06-.239.569-2.265a.444.444 0 01.346-.341 9.567 9.567 0 013.159 0 .444.444 0 01.346.34l.569 2.266zM16 19a3 3 0 100-6 3 3 0 000 6z\",\"stroke\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"32\",\"height\":\"32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M14.852 18.756a.485.485 0 01-.49-.5c.034-.835.156-1.518.367-2.048.252-.632.71-1.253 1.376-1.862.674-.617 1.121-1.116 1.343-1.496.222-.389.333-.796.333-1.223 0-1.287-.577-1.93-1.731-1.93-.548 0-.988.174-1.32.525-.234.246-.388.56-.462.943-.05.267-.266.485-.537.485h-2.226a.472.472 0 01-.481-.505c.105-1.216.552-2.186 1.341-2.911C13.268 7.41 14.496 7 16.05 7c1.569 0 2.786.392 3.651 1.177.866.777 1.299 1.877 1.299 3.302 0 .647-.14 1.26-.422 1.839-.28.571-.773 1.207-1.476 1.908l-.899.88c-.562.555-.884 1.207-.965 1.953l-.015.229a.5.5 0 01-.499.468h-1.872zm-.822 3.507c0-.51.166-.929.5-1.256.34-.335.773-.503 1.298-.503s.954.168 1.287.503c.34.327.511.746.511 1.256 0 .503-.167.918-.5 1.246-.325.327-.758.491-1.298.491s-.977-.164-1.31-.491c-.325-.328-.488-.743-.488-1.246z\",\"stroke\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"32\",\"height\":\"32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('mask',{attrs:{\"id\":\"a\",\"fill\":\"#fff\"}},[_c('path',{attrs:{\"d\":\"M27 27H5a1 1 0 01-1-1V6a1 1 0 011-1h9a1 1 0 011 1v1.5a.5.5 0 00.5.5H27a1 1 0 011 1v17a1 1 0 01-1 1z\"}})]),_c('path',{attrs:{\"d\":\"M4 12h24v-1H4v1zm1 16h22v-2H5v2zM27 7H15.5v2H27V7zm-11 .5V6h-2v1.5h2zM14 4H5v2h9V4zM3 6v5.5h2V6H3zm0 5.5V26h2V11.5H3zM29 26V11.5h-2V26h2zm0-14.5V9h-2v2.5h2zM16 6a2 2 0 00-2-2v2h2zm-.5 1a.5.5 0 01.5.5h-2A1.5 1.5 0 0015.5 9V7zM27 9h2a2 2 0 00-2-2v2zm0 19a2 2 0 002-2h-2v2zM5 26H3a2 2 0 002 2v-2zM5 4a2 2 0 00-2 2h2V4z\",\"fill\":\"currentColor\",\"mask\":\"url(#a)\"}}),_c('path',{attrs:{\"d\":\"M9.809 15.03c.29-.053.624-.095 1-.126.383-.03.732-.046 1.047-.046.352 0 .686.039 1 .115.322.077.602.204.84.38.245.176.44.406.586.69.146.284.219.629.219 1.035 0 .629-.173 1.138-.518 1.53a2.5 2.5 0 01-1.31.781l.551.426L15.225 23H14.11l-2.22-3.473-1.127-.172V23H9.81v-7.97zm2.07.656h-.31c-.108 0-.212.004-.311.012l-.288.023c-.084.008-.153.02-.207.034v2.967h.897c.53 0 .966-.13 1.311-.39.345-.261.518-.668.518-1.22 0-.414-.142-.755-.426-1.023-.284-.268-.678-.403-1.184-.403zM21.27 14.95h.92v5.37c0 .484-.064.902-.195 1.254a2.195 2.195 0 01-.54.874c-.23.223-.51.388-.84.495-.33.107-.693.16-1.092.16-.95 0-1.668-.214-2.15-.643-.484-.43-.725-1.081-.725-1.955V14.95h.954v5.106c0 .407.039.752.115 1.035.085.276.207.503.368.679.161.169.36.291.598.368.246.077.53.115.851.115.621 0 1.066-.169 1.334-.506.269-.345.403-.909.403-1.69V14.95z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"32\",\"height\":\"32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('mask',{attrs:{\"id\":\"a\",\"fill\":\"#fff\"}},[_c('path',{attrs:{\"d\":\"M27 27H5a1 1 0 01-1-1V6a1 1 0 011-1h9a1 1 0 011 1v1.5a.5.5 0 00.5.5H27a1 1 0 011 1v17a1 1 0 01-1 1z\"}})]),_c('path',{attrs:{\"d\":\"M4 12h24v-1H4v1zm1 16h22v-2H5v2zM27 7H15.5v2H27V7zm-11 .5V6h-2v1.5h2zM14 4H5v2h9V4zM3 6v5.5h2V6H3zm0 5.5V26h2V11.5H3zM29 26V11.5h-2V26h2zm0-14.5V9h-2v2.5h2zM16 6a2 2 0 00-2-2v2h2zm-.5 1a.5.5 0 01.5.5h-2A1.5 1.5 0 0015.5 9V7zM27 9h2a2 2 0 00-2-2v2zm0 19a2 2 0 002-2h-2v2zM5 26H3a2 2 0 002 2v-2zM5 4a2 2 0 00-2 2h2V4z\",\"fill\":\"currentColor\",\"mask\":\"url(#a)\"}}),_c('path',{attrs:{\"d\":\"M10.025 14.982h4.381v.851H10.98v2.633h3.14v.851h-3.14v2.864h3.485v.851h-4.44v-8.05zM17.64 17.765l-.622-1.162h-.046l.115 1.162v5.267h-.897v-8.177h.506l3.853 5.371.598 1.104h.057l-.126-1.104v-5.244h.897v8.177h-.506l-3.83-5.394z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"32\",\"height\":\"32\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('mask',{attrs:{\"id\":\"a\",\"fill\":\"#fff\"}},[_c('path',{attrs:{\"d\":\"M27 27H5a1 1 0 01-1-1V6a1 1 0 011-1h9a1 1 0 011 1v1.5a.5.5 0 00.5.5H27a1 1 0 011 1v17a1 1 0 01-1 1z\"}})]),_c('path',{attrs:{\"d\":\"M4 12h24v-1H4v1zm1 16h22v-2H5v2zM27 7H15.5v2H27V7zm-11 .5V6h-2v1.5h2zM14 4H5v2h9V4zM3 6v5.5h2V6H3zm0 5.5V26h2V11.5H3zM29 26V11.5h-2V26h2zm0-14.5V9h-2v2.5h2zM16 6a2 2 0 00-2-2v2h2zm-.5 1a.5.5 0 01.5.5h-2A1.5 1.5 0 0015.5 9V7zM27 9h2a2 2 0 00-2-2v2zm0 19a2 2 0 002-2h-2v2zM5 26H3a2 2 0 002 2v-2zM5 4a2 2 0 00-2 2h2V4z\",\"fill\":\"currentColor\",\"mask\":\"url(#a)\"}}),_c('path',{attrs:{\"d\":\"M15.012 19.026h2.93v-2.888H15.37v1.707c0 .501-.119.895-.357 1.181zM20.5 15.34v.8h-1.524V23h-1.034v-3.162h-2.227c-.98 0-1.732-.036-2.253-.108L15.9 23h-1.26l-2.478-3.365v-.74h.875c.503 0 .843-.087 1.02-.262.186-.183.278-.47.278-.86v-1.635H11.5v-.8h9zM18.045 14.11a.568.568 0 01-.212-.454c0-.183.07-.338.212-.465.132-.127.3-.191.503-.191.204 0 .376.064.517.19a.603.603 0 01.212.466c0 .183-.07.335-.212.454a.775.775 0 01-.517.179.724.724 0 01-.503-.18z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Mutation } from 'vuex-class';\nimport { LANGUAGE_CODE_ENGLISH, LANGUAGE_CODE_RUSSIAN, LANGUAGE_CODE_SANSKRIT, LANGUAGES } from '@/constants';\nimport IconStar from '@/assets/icons/star.svg';\nimport IconBookmark from '@/assets/icons/bookmark.svg';\nimport IconSettings from '@/assets/icons/settings.svg';\nimport IconHelp from '@/assets/icons/help.svg';\nimport IconCatalogRu from '@/assets/icons/catalog-ru.svg';\nimport IconCatalogEn from '@/assets/icons/catalog-en.svg';\nimport IconCatalogSt from '@/assets/icons/catalog-st.svg';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: {\n    IconStar,\n    IconBookmark,\n    IconSettings,\n    IconHelp\n  }\n})\nexport default class Sidebar extends Vue {\n  @Mutation('setReadMode', { namespace: 'reader' })\n  setReadMode!: Function;\n\n  @Mutation('setLanguage', { namespace: 'navigation' })\n  setLanguage!: Function;\n\n  @Mutation('toggle', { namespace: 'settings' })\n  toggleSettings!: Function;\n\n  get languages() {\n    return LANGUAGES.map(code => {\n      let icon;\n      switch (code) {\n        case LANGUAGE_CODE_RUSSIAN:\n          icon = IconCatalogRu;\n          break;\n        case LANGUAGE_CODE_ENGLISH:\n          icon = IconCatalogEn;\n          break;\n        case LANGUAGE_CODE_SANSKRIT:\n          icon = IconCatalogSt;\n          break;\n      }\n      return { code, icon };\n    });\n  }\n\n  updateLanguage(language: string) {\n    this.setReadMode(false);\n    this.setLanguage(language);\n  }\n\n  openHelp() {\n    this.$store.commit('tabs/openTab');\n    this.$store.commit('tabs/updateActiveTabLink', '/help');\n    this.$store.commit('tabs/updateActiveTabName', getTranslation('help'));\n    this.$router.push('/help');\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=4bb3ac2f&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=4bb3ac2f&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4bb3ac2f\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Header from '@/components/Header.vue';\nimport Sidebar from '@/components/Sidebar.vue';\n\nexport default {\n  components: { Header, Sidebar },\n  props: {\n    mobileReader: {\n      type: Boolean,\n      default: false\n    },\n    readerChromeVisible: {\n      type: Boolean,\n      default: true\n    },\n    presentationMode: {\n      type: Boolean,\n      default: false\n    }\n  }\n};\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommonLayout.vue?vue&type=template&id=abe9d728&scoped=true&\"\nimport script from \"./CommonLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommonLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommonLayout.vue?vue&type=style&index=0&id=abe9d728&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"abe9d728\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabs\",class:{\n    dark: _vm.$store.state.reader.readMode && _vm.$store.state.reader.colorMode === 'dark'\n  }},[_vm._l((_vm.$store.state.tabs.list),function(tab,index){return _c('Tab',{key:index,attrs:{\"name\":tab.name || _vm.getTranslation('newTab'),\"link\":tab.link,\"active\":tab.active},on:{\"click\":function($event){return _vm.onTabClick(index, tab)},\"delete\":function($event){return _vm.onTabDelete(index)}}})}),_c('button',{staticClass:\"nav-icon add-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$store.commit('tabs/openTab')}}},[_c('div',{staticClass:\"add-button-icon\"},[_c('IconPlus')],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tab\",class:[\n    _vm.className,\n    _vm.active ? 'active' : '',\n    _vm.$store.state.reader.readMode && _vm.$store.state.reader.colorMode === 'dark' ? 'dark' : ''\n  ],on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('div',{staticClass:\"tab-inner\"},[_c('div',{staticClass:\"tab-text\"},[(_vm.isSearch)?_c('ZoomIcon',{staticClass:\"tab-text-icon\"}):_vm._e(),_vm._v(\"\\n      \"+_vm._s(_vm.name)+\"\\n    \")],1)]),_c('button',{staticClass:\"nav-icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('delete')}}},[_c('CrossIcon')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"18\",\"height\":\"18\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M3.354 2.646a.5.5 0 10-.708.708l.708-.708zm11.292 12.708a.5.5 0 00.708-.708l-.708.708zm.708-12a.5.5 0 00-.708-.708l.708.708zM2.646 14.646a.5.5 0 00.708.708l-.708-.708zm0-11.292l12 12 .708-.708-12-12-.708.708zm12-.708l-12 12 .708.708 12-12-.708-.708z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport CrossIcon from '@/assets/icons/cross.svg';\nimport ZoomIcon from '@/assets/icons/zoom.svg';\nimport { Prop, Watch } from 'vue-property-decorator';\n\n@Component({\n  components: { CrossIcon, ZoomIcon }\n})\nexport default class Tab extends Vue {\n  @Prop({ required: true })\n  name!: string;\n\n  @Prop({ required: false, default: '' })\n  className!: string;\n\n  @Prop({ required: true })\n  active!: boolean;\n\n  @Prop({ required: false })\n  link!: string | undefined;\n\n  get isSearch() {\n    return this.link && this.link.includes('/search');\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Tab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tab.vue?vue&type=template&id=3998c287&scoped=true&\"\nimport script from \"./Tab.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tab.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tab.vue?vue&type=style&index=0&id=3998c287&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3998c287\",\n  null\n  \n)\n\nexport default component.exports","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"18\",\"height\":\"18\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M1 9h16M9 1v16\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Tab as TabType } from '@/store/modules/tabs';\nimport Tab from '@/components/ui/Tab.vue';\nimport IconPlus from '@/assets/icons/plus.svg';\nimport { Mutation, State } from 'vuex-class';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: { Tab, IconPlus }\n})\nexport default class TabsBar extends Vue {\n  @State('list', { namespace: 'tabs' })\n  tabs!: Array<TabType>;\n\n  @Mutation('closeTab', { namespace: 'tabs' })\n  closeTab!: Function;\n\n  @Mutation('setActiveTab', { namespace: 'tabs' })\n  setActiveTab!: Function;\n\n  getTranslation = getTranslation;\n\n  onTabClick(index: number, tab: TabType) {\n    if (tab.active) {\n      return;\n    }\n    this.setActiveTab(index);\n    if (tab.active && tab.link && this.$route.fullPath !== tab.link) {\n      this.$router.push(tab.link);\n    }\n  }\n\n  onTabDelete(index: number) {\n    this.closeTab(index);\n    const activeTab = this.tabs.find(tab => tab.active);\n    if (activeTab && activeTab.link) {\n      this.$router.push(activeTab.link);\n    }\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TabsBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TabsBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabsBar.vue?vue&type=template&id=e723ac04&scoped=true&\"\nimport script from \"./TabsBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabsBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TabsBar.vue?vue&type=style&index=0&id=e723ac04&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"e723ac04\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.readMode)?_c('div',{staticClass:\"search\",class:{ 'mobile-visible': _vm.mobileVisible }},[(_vm.mobileBookSearch)?_c('div',{staticClass:\"mobile-book-search-context\"},[_c('button',{staticClass:\"mobile-book-search-back nav-icon\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('backToBook')},on:{\"click\":function($event){return _vm.$emit('close-book-search')}}},[_c('IconReturn')],1),_c('div',{staticClass:\"mobile-book-search-copy\"},[_c('span',[_vm._v(_vm._s(_vm.getTranslation('searchInBook')))]),_c('strong',[_vm._v(_vm._s(_vm.mobileBookName))])])]):_vm._e(),_c('div',{staticClass:\"search-bar\"},[_c('div',{staticClass:\"search-left-col\"},[_c('div',{staticClass:\"search-input-wrap\"},[_c('SearchInput',{attrs:{\"placeholder\":_vm.getTranslation('enterSearchQuery'),\"value\":_vm.$route.query.query,\"has-suggestions\":true},on:{\"submit\":_vm.onSearchSubmit,\"clear\":_vm.onSearchClear}}),(_vm.isSearchResultPage)?_c('div',{staticClass:\"search-links\"},[_c('button',{staticClass:\"search-link\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.goToSearchList}},[_c('IconList')],1),(_vm.prevSearchResultUrl)?_c('router-link',{staticClass:\"search-link\",attrs:{\"to\":_vm.prevSearchResultUrl}},[_c('IconArrowSearchLeft')],1):_c('div',{staticClass:\"search-link disabled\"},[_c('IconArrowSearchLeft')],1),(_vm.nextSearchResultUrl)?_c('router-link',{staticClass:\"search-link\",attrs:{\"to\":_vm.nextSearchResultUrl}},[_c('IconArrowSearchRight')],1):_c('div',{staticClass:\"search-link disabled\"},[_c('IconArrowSearchRight')],1)],1):_vm._e()],1)]),_c('div',{staticClass:\"search-right-col\"},[(_vm.currentBook && _vm.currentBook.is_show_edit_link)?_c('a',{staticClass:\"search-edit-button\",attrs:{\"href\":_vm.editUrl,\"target\":\"_blank\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('edit'))+\"\\n      \")]):_vm._e(),(_vm.$route.fullPath !== '/')?_c('button',{staticClass:\"nav-icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setReadMode(true)}}},[_c('IconBook')],1):_vm._e()])]),(!_vm.mobileBookSearch)?_c('div',[(_vm.mobileVisible)?_c('div',{staticClass:\"mobile-search-actions\",attrs:{\"role\":\"toolbar\",\"aria-label\":_vm.getTranslation('search')}},[(!_vm.inBookSearch)?_c('button',{staticClass:\"mobile-search-action mobile-search-action-advanced\",class:{ active: _vm.advancedSearch },attrs:{\"type\":\"button\",\"aria-expanded\":String(_vm.advancedSearchPanelExpanded)},on:{\"click\":_vm.toggleAdvancedSearch}},[_c('IconSearchSettings'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('advancedSearch')))])],1):_vm._e(),(!_vm.inBookSearch)?_c('button',{staticClass:\"mobile-search-action mobile-search-action-scope\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.openSearchAreaPicker}},[_c('IconList'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('searchScope')))]),(_vm.selectedBooksCount)?_c('span',{staticClass:\"mobile-search-area-count\"},[_vm._v(_vm._s(_vm.selectedBooksCount))]):_vm._e()],1):_vm._e(),(_vm.hasSearchHistory)?_c('button',{staticClass:\"mobile-search-action mobile-search-action-history\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.openSearchHistory}},[_c('IconHistory'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('history')))])],1):_vm._e()]):_c('div',{staticClass:\"search-left-col flex justify-content-space-between\"},[_c('div',[(!_vm.inBookSearch)?_c('AccordionControl',{attrs:{\"expanded\":_vm.advancedSearch},on:{\"click\":_vm.toggleAdvancedSearch}},[_c('IconSearchSettings'),_vm._v(\" \"+_vm._s(_vm.getTranslation('advancedSearch'))+\"\\n        \")],1):_vm._e()],1),_c('div',[_c('button',{staticClass:\"nav-link button-history\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.showSearchHistoryOverlay = true}}},[_c('span',{staticClass:\"flex align-items-center\"},[_c('IconHistory'),_vm._v(\" \"+_vm._s(_vm.getTranslation('history'))+\"\\n          \")],1)]),(!_vm.mobileVisible && (_vm.currentBook || _vm.searchBookSlug))?_c('button',{staticClass:\"nav-link\",attrs:{\"type\":\"button\"}},[_c('span',{staticClass:\"flex align-items-center\"},[_c('Checkbox',{attrs:{\"checked\":_vm.inBookSearch},on:{\"change\":_vm.onInBookSearchChange}},[_vm._v(\"\\n              \"+_vm._s(_vm.getTranslation('inBookOnly'))+\"\\n            \")])],1)]):_vm._e()])])]):_vm._e(),_c('AccordionContent',{ref:\"searchOptionsPanel\",staticClass:\"search-options-panel\",class:{ dragging: _vm.mobileSheetDragging },style:(_vm.mobileSheetStyle),attrs:{\"expanded\":_vm.advancedSearchPanelExpanded,\"role\":_vm.mobileVisible && _vm.advancedSearchPanelExpanded ? 'dialog' : undefined,\"aria-modal\":_vm.mobileVisible && _vm.advancedSearchPanelExpanded ? 'true' : undefined,\"aria-label\":_vm.mobileVisible && _vm.advancedSearchPanelExpanded ? _vm.getTranslation('advancedSearch') : undefined,\"tabindex\":_vm.mobileVisible && _vm.advancedSearchPanelExpanded ? -1 : undefined,\"height\":\"101\"}},[(_vm.mobileVisible)?_c('div',{staticClass:\"mobile-search-sheet-drag-region\",on:{\"pointerdown\":_vm.startMobileSheetDrag,\"pointermove\":_vm.moveMobileSheetDrag,\"pointerup\":_vm.endMobileSheetDrag,\"pointercancel\":_vm.cancelMobileSheetDrag}},[_c('span')]):_vm._e(),_c('div',{staticClass:\"advanced-search-inner\"},[_c('div',{staticClass:\"advanced-search-top\"},[_c('div',{staticClass:\"flex\"},[(_vm.selectedBooksCount)?_c('div',{staticClass:\"books-selected\"},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('booksSelected'))+\":  \"),_c('span',{staticClass:\"orange-color\"},[_vm._v(_vm._s(_vm.selectedBooksCount))])]):_vm._e(),_c('div',[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('searchScope'))+\":  \"),_c('button',{staticClass:\"nav-link\",class:{ active: !_vm.searchInPoem },attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.searchInPoem = false}}},[_vm._v(\"\\n              \"+_vm._s(_vm.getTranslation('searchEverywhere'))+\"\\n            \")]),_vm._v(\"\\n            |\\n            \"),_c('button',{staticClass:\"nav-link\",class:{ active: _vm.searchInPoem },attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.searchInPoem = true}}},[_vm._v(\"\\n              \"+_vm._s(_vm.getTranslation('searchPoems'))+\"\\n            \")])])]),_c('div',[_c('button',{staticClass:\"nav-link\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resetSearchSettings}},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('resetSettings'))+\"\\n          \")])])]),_c('div',{staticClass:\"advanced-search-bottom\"},[_c('Checkbox',{attrs:{\"checked\":_vm.exact},on:{\"change\":function($event){_vm.exact = !_vm.exact}}},[_vm._v(_vm._s(_vm.getTranslation('exactPhrase')))]),_c('Checkbox',{attrs:{\"checked\":_vm.considerDiacritics},on:{\"change\":function($event){_vm.considerDiacritics = !_vm.considerDiacritics}}},[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('considerDiacritics'))+\" (ā ≠ а)\\n        \")]),_c('Checkbox',{attrs:{\"checked\":_vm.equalizeWriting},on:{\"change\":function($event){_vm.equalizeWriting = !_vm.equalizeWriting}}},[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('equalizeWriting'))+\" (я = йа)\\n        \")]),_c('AccordionControl',{attrs:{\"expanded\":_vm.showHelp},on:{\"click\":_vm.toggleHelp}},[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('searchOperatorsHelper'))+\"\\n        \")])],1)])]),_c('AccordionContent',{ref:\"searchHelpPanel\",staticClass:\"search-help-panel\",class:{ dragging: _vm.mobileSheetDragging },style:(_vm.mobileSheetStyle),attrs:{\"expanded\":_vm.showHelp,\"role\":_vm.mobileVisible && _vm.showHelp ? 'dialog' : undefined,\"aria-modal\":_vm.mobileVisible && _vm.showHelp ? 'true' : undefined,\"aria-label\":_vm.mobileVisible && _vm.showHelp ? _vm.getTranslation('searchOperatorsHelper') : undefined,\"tabindex\":_vm.mobileVisible && _vm.showHelp ? -1 : undefined,\"height\":\"400\"}},[(_vm.mobileVisible)?_c('div',{staticClass:\"mobile-search-sheet-drag-region\",on:{\"pointerdown\":_vm.startMobileSheetDrag,\"pointermove\":_vm.moveMobileSheetDrag,\"pointerup\":_vm.endMobileSheetDrag,\"pointercancel\":_vm.cancelMobileSheetDrag}},[_c('span')]):_vm._e(),_c('div',{staticClass:\"help\",domProps:{\"innerHTML\":_vm._s(_vm.getTranslation('searchHelp'))}})]),(_vm.mobileVisible && _vm.mobileSheetLayerVisible)?_c('button',{staticClass:\"mobile-search-backdrop\",class:{ closing: !_vm.advancedSearchPanelExpanded && !_vm.showHelp },attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":_vm.closeMobilePanels}}):_vm._e(),_c('Overlay',{staticClass:\"search-history-overlay\",attrs:{\"title\":_vm.getTranslation('searchHistory'),\"visible\":_vm.showSearchHistoryOverlay},on:{\"close\":_vm.closeSearchHistory}},[_c('SearchHistory',{staticClass:\"search-history\",on:{\"click\":_vm.closeSearchHistory,\"cleared\":function($event){return _vm.onSearchHistoryState(false)},\"state-change\":_vm.onSearchHistoryState}})],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"20\",\"height\":\"20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M10.904 11.256a.5.5 0 10-.707.707l.707-.707zm2.394 3.808a.5.5 0 00.707-.707l-.707.707zm-2.393-5.521a2.425 2.425 0 01-2.424 2.425v1a3.425 3.425 0 003.424-3.425h-1zm-2.424 2.425a2.425 2.425 0 01-2.424-2.425h-1a3.425 3.425 0 003.424 3.425v-1zM6.057 9.543A2.425 2.425 0 018.48 7.117v-1a3.425 3.425 0 00-3.424 3.426h1zM8.48 7.117a2.425 2.425 0 012.424 2.426h1a3.425 3.425 0 00-3.424-3.426v1zm1.716 4.846l3.1 3.1.708-.706-3.1-3.101-.708.707z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M3.94 4.097c1.494 1.293 3.822.328 3.963-1.641.017-.229.102-.349.186-.419A.642.642 0 018.5 1.9c.168 0 .314.056.411.137.084.07.17.19.186.419.141 1.97 2.47 2.934 3.962 1.641.174-.15.319-.174.427-.165a.642.642 0 01.388.194c.119.12.183.262.194.388.01.109-.015.253-.165.427-1.293 1.493-.328 3.82 1.641 3.962.229.017.348.102.419.186a.642.642 0 01.137.411.642.642 0 01-.137.411c-.07.084-.19.17-.418.186a2.359 2.359 0 00-1.563.73c-.143.15-.12.384.027.53.2.2.54.148.76-.032.224-.184.51-.307.84-.33 1.855-.134 1.855-2.856 0-2.99-1.23-.088-1.833-1.542-1.025-2.475 1.217-1.406-.708-3.33-2.114-2.114-.933.808-2.387.206-2.475-1.025-.134-1.855-2.856-1.855-2.99 0-.088 1.23-1.542 1.833-2.475 1.025C3.124 2.2 1.2 4.124 2.416 5.53c.808.933.206 2.387-1.025 2.475-1.855.134-1.855 2.856 0 2.99 1.23.088 1.833 1.542 1.025 2.475-1.217 1.406.708 3.33 2.114 2.114.933-.808 2.387-.205 2.475 1.025.134 1.855 2.856 1.855 2.99 0a1.48 1.48 0 01.33-.84c.18-.22.232-.56.032-.76-.146-.146-.38-.17-.53-.027-.406.385-.684.92-.73 1.563-.017.228-.102.347-.186.418a.642.642 0 01-.411.137.642.642 0 01-.411-.137c-.084-.07-.17-.19-.186-.419-.141-1.97-2.47-2.934-3.962-1.641-.174.15-.318.174-.427.165a.642.642 0 01-.388-.194.642.642 0 01-.194-.388c-.01-.109.015-.253.165-.427 1.293-1.493.328-3.82-1.641-3.962-.229-.017-.349-.102-.419-.186A.642.642 0 01.9 9.5c0-.168.056-.314.137-.411.07-.084.19-.17.419-.186 1.97-.141 2.934-2.47 1.641-3.962-.15-.174-.174-.318-.165-.427a.642.642 0 01.194-.388.642.642 0 01.388-.194c.109-.01.253.015.427.165z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"20\",\"height\":\"20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M8.273 6v4.5l3.5 1.5\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}}),_c('path',{attrs:{\"d\":\"M15.773 10a7 7 0 01-13.591 2.361.536.536 0 00-.499-.361c-.333 0-.577.315-.467.63a8 8 0 100-5.259c-.11.314.134.629.467.629a.535.535 0 00.499-.361A7 7 0 0115.774 10z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M1.244 9.32c-.092.05-.263-.007-.307-.102L.01 7.213c-.043-.094.071-.155.206-.11l2.866.941c.135.045.19.162.1.212L1.244 9.319z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"16\",\"height\":\"11\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M15 5.5H5.667M1 5.5l4.667 5M1 5.5l4.667-5M1 5.5h4.667m0 0L8 8M5.667 5.5L8 3\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"16\",\"height\":\"11\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M1 5.5h9.333M15 5.5l-4.667-5M15 5.5l-4.667 5M15 5.5h-4.667m0 0L8 3m2.333 2.5L8 8\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-wrap\",class:{ 'has-query': _vm.query && _vm.query.length, 'is-loading': _vm.loadingSuggestions }},[_c('InputText',{staticClass:\"input-search\",attrs:{\"placeholder\":_vm.placeholder,\"value\":_vm.query},on:{\"focus\":_vm.handleInputFocus,\"blur\":_vm.handleInputBlur,\"change\":_vm.handleInputChange,\"enter\":_vm.handlePressEnter}}),_c('div',{staticClass:\"search-right\"},[_c('div',{staticClass:\"search-loader\"},[_c('Loader',{attrs:{\"hidden\":!_vm.loadingSuggestions}})],1),(_vm.query && _vm.query.length)?_c('button',{staticClass:\"search-button\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":_vm.handleClear}},[_c('span',{staticClass:\"search-button-inner\"},[_c('IconCross')],1)]):_vm._e(),_c('button',{staticClass:\"search-button\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('search')},on:{\"click\":_vm.handlePressEnter}},[_c('span',{staticClass:\"search-button-inner\"},[_c('ZoomIcon')],1)])]),(_vm.hasSuggestions && _vm.suggestions.length)?_c('div',{staticClass:\"search-suggestions\"},[_vm._l((_vm.suggestions),function(suggestion){return _c('button',{key:suggestion.title,staticClass:\"search-suggestions-item\",attrs:{\"type\":\"button\"},domProps:{\"innerHTML\":_vm._s(suggestion.title)},on:{\"click\":function($event){return _vm.handleSuggestionClick(suggestion.value)}}})}),_c('button',{staticClass:\"search-suggestions-all link\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.handlePressEnter}},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('allResults'))+\"\\n    \")])],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Book, Category } from '@/services/Navigation/types';\n\nexport interface SearchScopeOptions {\n  book_slug?: string;\n  books?: Array<number>;\n  categories?: Array<number>;\n  book_sections?: Array<string>;\n}\n\nexport interface CategoryBookMapping {\n  id: number | string;\n  books: Array<number>;\n}\n\nexport default class SearchScopeService {\n  static hasActiveScope(options: SearchScopeOptions = {}) {\n    return (\n      !!options.book_slug ||\n      !!(options.books && options.books.length) ||\n      !!(options.categories && options.categories.length) ||\n      !!(options.book_sections && options.book_sections.length)\n    );\n  }\n\n  static getBranchCategoryIds(categories: Array<Category>, categoryId: number) {\n    const branchIds = new Set<number>([Number(categoryId)]);\n    let previousSize = 0;\n    while (branchIds.size !== previousSize) {\n      previousSize = branchIds.size;\n      categories.forEach(category => {\n        if (branchIds.has(Number(category.parent_id))) {\n          branchIds.add(Number(category.id));\n        }\n      });\n    }\n    return branchIds;\n  }\n\n  static getUnloadedBookCategoryIds(categories: Array<Category>, categoryId: number) {\n    const branchIds = SearchScopeService.getBranchCategoryIds(categories, categoryId);\n    return categories\n      .filter(category => {\n        return branchIds.has(Number(category.id)) && category.is_books_exist && !category.bookIds.length;\n      })\n      .map(category => Number(category.id));\n  }\n\n  static applyCategoryBookMappings(\n    categories: Array<Category>,\n    requestedCategoryIds: Array<number>,\n    mappings: Array<CategoryBookMapping>\n  ) {\n    const requestedIds = new Set(requestedCategoryIds.map(Number));\n    const mappingById = new Map(mappings.map(mapping => [Number(mapping.id), mapping.books.map(Number)]));\n    return categories.map(category =>\n      requestedIds.has(Number(category.id))\n        ? {\n            ...category,\n            bookIds: mappingById.get(Number(category.id)) || []\n          }\n        : category\n    );\n  }\n\n  static getSelectedBookIds(books: Array<Book>, categories: Array<Category>) {\n    const selectedBookIds = new Set<number>();\n    books.forEach(book => selectedBookIds.add(Number(book.id)));\n    categories.forEach(category => {\n      category.bookIds.forEach(bookId => selectedBookIds.add(Number(bookId)));\n    });\n    return selectedBookIds;\n  }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport InputText from '@/components/ui/InputText.vue';\nimport ZoomIcon from '@/assets/icons/zoom.svg';\nimport IconCross from '@/assets/icons/cross.svg';\nimport SearchService, { SearchBaseOptions } from '@/services/Api/SearchService';\nimport Loader from '@/components/ui/Loader.vue';\nimport { Getter } from 'vuex-class';\nimport { getTranslation } from '@/services/Translation';\nimport SearchScopeService from '@/services/SearchScopeService';\n\n@Component({\n  components: { Loader, InputText, ZoomIcon, IconCross }\n})\nexport default class SearchInput extends Vue {\n  query: string;\n\n  suggestionTimeout?: number;\n\n  suggestions: Array<{ title: string; url: string }> = [];\n\n  loadingSuggestions: boolean = false;\n\n  suggestionsRequestId: number = 0;\n\n  getTranslation = getTranslation;\n\n  @Prop({ required: false, default: '' })\n  placeholder!: string;\n\n  @Prop({ required: false })\n  value?: string;\n\n  @Prop({ required: false })\n  hasSuggestions?: boolean;\n\n  @Getter('searchOptions', { namespace: 'search' })\n  searchOptions!: SearchBaseOptions;\n\n  constructor() {\n    super();\n    this.query = this.value || '';\n  }\n\n  @Watch('value')\n  onValueChange() {\n    this.query = this.value || '';\n  }\n\n  handleInputChange(value: string) {\n    this.query = value;\n    this.$emit('change', value);\n    this.actualizeSuggestions();\n  }\n\n  handlePressEnter() {\n    this.$emit('submit', this.query);\n    this.resetSuggestions();\n  }\n\n  handleClear() {\n    this.query = '';\n    this.$emit('clear');\n    this.resetSuggestions();\n  }\n\n  handleInputFocus() {\n    this.actualizeSuggestions();\n  }\n\n  handleInputBlur() {\n    setTimeout(() => {\n      this.resetSuggestions();\n    }, 200);\n  }\n\n  handleSuggestionClick(suggestion: string) {\n    this.$emit('submit', suggestion);\n    this.resetSuggestions();\n  }\n\n  actualizeSuggestions() {\n    this.resetSuggestions();\n    if (!this.hasSuggestions) {\n      return;\n    }\n    this.suggestionTimeout = setTimeout(async () => {\n      const suggestions = await this.fetchSuggestions();\n      if (suggestions) {\n        this.suggestions = suggestions;\n      }\n    }, 400);\n  }\n\n  async fetchSuggestions() {\n    if (!(this.query && this.query.length > 2)) {\n      return [];\n    }\n    if (SearchScopeService.hasActiveScope(this.searchOptions)) {\n      this.loadingSuggestions = false;\n      return [];\n    }\n    this.loadingSuggestions = true;\n    const requestId = ++this.suggestionsRequestId;\n    const { language } = this.$route.params;\n    const { query } = this;\n    try {\n      const response = await SearchService.getSuggestions(language, query, this.searchOptions);\n      const scopeIsStillGlobal = !SearchScopeService.hasActiveScope(this.searchOptions);\n      const suggestionIsCurrent =\n        this.query === query && requestId === this.suggestionsRequestId && scopeIsStillGlobal;\n      return suggestionIsCurrent && response ? response.data : undefined;\n    } catch (e) {\n      return [];\n    } finally {\n      if (requestId === this.suggestionsRequestId) {\n        this.loadingSuggestions = false;\n      }\n    }\n  }\n\n  resetSuggestions() {\n    if (this.suggestionTimeout) {\n      clearTimeout(this.suggestionTimeout);\n      this.suggestionTimeout = undefined;\n    }\n    this.suggestionsRequestId += 1;\n    this.loadingSuggestions = false;\n    this.suggestions = [];\n  }\n\n  beforeDestroy() {\n    this.resetSuggestions();\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchInput.vue?vue&type=template&id=0609a630&scoped=true&\"\nimport script from \"./SearchInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchInput.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchInput.vue?vue&type=style&index=0&id=0609a630&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0609a630\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"nav-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('span',{staticClass:\"flex align-items-center\"},[_vm._t(\"default\"),_vm._v(\" \"),_c('IconArrowDown',{staticClass:\"arrow\",class:{ 'upside-down': _vm.expanded }})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Prop } from 'vue-property-decorator';\nimport Component from 'vue-class-component';\nimport IconArrowDown from '@/assets/icons/arrow-down.svg';\n\n@Component({\n  components: {\n    IconArrowDown\n  }\n})\nexport default class AccordionControl extends Vue {\n  @Prop({ required: true })\n  expanded?: boolean;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionControl.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionControl.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccordionControl.vue?vue&type=template&id=3727bfc9&scoped=true&\"\nimport script from \"./AccordionControl.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccordionControl.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccordionControl.vue?vue&type=style&index=0&id=3727bfc9&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3727bfc9\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"accordion-content\",class:{ collapsed: !_vm.expanded },style:({ maxHeight: (_vm.height + \"px\") })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Prop } from 'vue-property-decorator';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class AccordionContent extends Vue {\n  @Prop({ required: true })\n  expanded?: boolean;\n\n  @Prop({ required: false, default: 100 })\n  height?: number;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccordionContent.vue?vue&type=template&id=300bbaf2&scoped=true&\"\nimport script from \"./AccordionContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccordionContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccordionContent.vue?vue&type=style&index=0&id=300bbaf2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"300bbaf2\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { LANGUAGE_CODE_DEFAULT } from '@/constants';\nimport router from '@/router';\nimport IconBook from '@/assets/icons/book.svg';\nimport IconSearchSettings from '@/assets/icons/search-settings.svg';\nimport IconHistory from '@/assets/icons/history.svg';\nimport IconArrowSearchLeft from '@/assets/icons/arrow-search-left.svg';\nimport IconArrowSearchRight from '@/assets/icons/arrow-search-right.svg';\nimport IconList from '@/assets/icons/list.svg';\nimport IconReturn from '@/assets/icons/return.svg';\nimport Checkbox from '@/components/ui/Checkbox.vue';\nimport SearchInput from '@/components/ui/SearchInput.vue';\nimport AccordionControl from '@/components/ui/AccordionControl.vue';\nimport AccordionContent from '@/components/ui/AccordionContent.vue';\nimport { Book, BookSection, Category } from '@/services/Navigation/types';\nimport SearchService, { SearchItem } from '@/services/Api/SearchService';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport Overlay from '@/components/ui/Overlay.vue';\nimport SearchHistory from '@/components/SearchHistory.vue';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: {\n    SearchHistory,\n    AccordionControl,\n    AccordionContent,\n    Checkbox,\n    SearchInput,\n    IconBook,\n    IconSearchSettings,\n    IconHistory,\n    IconArrowSearchLeft,\n    IconArrowSearchRight,\n    IconList,\n    IconReturn,\n    Overlay\n  }\n})\nexport default class Search extends Vue {\n  @Prop({ required: false, default: false })\n  mobileVisible!: boolean;\n\n  @Prop({ required: false, default: false })\n  mobileBookSearch!: boolean;\n\n  @Prop({ required: false, default: '' })\n  mobileBookName!: string;\n\n  showHelp: boolean = false;\n\n  showSearchHistoryOverlay: boolean = false;\n\n  hasSearchHistory: boolean = false;\n\n  searchQuery: string | null = null; // null means it is not initialised\n\n  searchInPoem: boolean | null = null; // null means it is not initialised\n\n  exact: boolean | null = null; // null means it is not initialised\n\n  considerDiacritics: boolean | null = null; // null means it is not initialised\n\n  equalizeWriting: boolean | null = null; // null means it is not initialised\n\n  mobileSheetDragStartY: number | null = null;\n\n  mobileSheetDragOffset: number = 0;\n\n  mobileSheetDragging: boolean = false;\n\n  mobileSheetPointerId: number | null = null;\n\n  mobilePanelTrigger: HTMLElement | null = null;\n\n  mobileSheetCloseTimer: number | null = null;\n\n  mobileSheetLayerVisible: boolean = false;\n\n  advancedSearchPanelVisible: boolean = false;\n\n  getTranslation = getTranslation;\n\n  @State('results', { namespace: 'search' })\n  searchResults!: Array<SearchItem>;\n\n  @State('inBookSearch', { namespace: 'search' })\n  inBookSearch!: boolean;\n\n  @State('advancedSearch', { namespace: 'search' })\n  advancedSearch!: boolean;\n\n  @State('readMode', { namespace: 'reader' })\n  readMode!: boolean;\n\n  @State('language', { namespace: 'navigation' })\n  navLanguage!: string;\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  @Getter('currentBook', { namespace: 'navigation' })\n  currentBook?: Book;\n\n  @Getter('currentBookSection', { namespace: 'navigation' })\n  currentBookSection?: BookSection;\n\n  @Getter('checkedBooks', { namespace: 'navigation' })\n  checkedBooks!: Array<Book>;\n\n  @Getter('checkedCategories', { namespace: 'navigation' })\n  checkedCategories!: Array<Category>;\n\n  @Getter('selectedBooksCount', { namespace: 'navigation' })\n  selectedBooksCount!: number;\n\n  @Mutation('setReadMode', { namespace: 'reader' })\n  setReadMode!: Function;\n\n  @Mutation('setInBookSearch', { namespace: 'search' })\n  setInBookSearch!: Function;\n\n  @Mutation('setNeedUpdate', { namespace: 'search' })\n  setNeedUpdate!: Function;\n\n  @Mutation('setResults', { namespace: 'search' })\n  setResults!: Function;\n\n  @Mutation('setResultsCount', { namespace: 'search' })\n  setResultsCount!: Function;\n\n  @Mutation('setPriorityResults', { namespace: 'search' })\n  setPriorityResults!: Function;\n\n  @Mutation('setAdvancedSearch', { namespace: 'search' })\n  setAdvancedSearch!: Function;\n\n  @Mutation('setShowSearchResultsFlag', { namespace: 'navigation' })\n  setShowSearchResultsFlag!: Function;\n\n  mounted() {\n    this.actualizeSearchParams(); // initialize search params\n    this.actualizeShowAdvancedSearch(); // and actualize show-advanced-search flag\n    document.addEventListener('keydown', this.onDocumentKeydown);\n    this.syncMobileSheetDocumentState();\n    this.refreshSearchHistoryAvailability();\n  }\n\n  beforeDestroy() {\n    document.removeEventListener('keydown', this.onDocumentKeydown);\n    if (this.mobileSheetCloseTimer !== null) {\n      window.clearTimeout(this.mobileSheetCloseTimer);\n    }\n    document.documentElement.classList.remove('mobile-search-sheet-open', 'mobile-search-history-open');\n    this.$emit('mobile-overlay-change', false);\n  }\n\n  @Watch('$route')\n  onRouteChange(to: any, from?: any) {\n    this.actualizeSearchParams();\n    this.actualizeShowAdvancedSearch();\n    const languageChanged = Boolean(\n      from && to && to.params && from.params && to.params.language !== from.params.language\n    );\n    if (\n      languageChanged &&\n      to.name === 'search-results' &&\n      typeof to.query.query === 'string' &&\n      to.query.query.trim()\n    ) {\n      this.setResults([]);\n      this.setResultsCount(0);\n      this.setPriorityResults(null);\n      this.setNeedUpdate(true);\n    }\n  }\n\n  @Watch('searchQuery')\n  @Watch('searchInPoem')\n  @Watch('exact')\n  @Watch('considerDiacritics')\n  @Watch('equalizeWriting')\n  async onChangeParams(to: string | boolean, from: string | boolean | null) {\n    if (this.$route.name === 'search-results' && from !== null) {\n      await this.updateUrl();\n    }\n  }\n\n  @Watch('advancedSearchPanelVisible')\n  @Watch('showHelp')\n  onMobileSheetVisibilityChange() {\n    this.syncMobileSheetDocumentState();\n  }\n\n  @Watch('showSearchHistoryOverlay')\n  onSearchHistoryVisibilityChange(visible: boolean) {\n    document.documentElement.classList.toggle('mobile-search-history-open', this.mobileVisible && visible);\n    this.emitMobileOverlayState();\n  }\n\n  @Watch('mobileVisible')\n  onMobileVisibilityChange(visible: boolean) {\n    if (visible) {\n      this.refreshSearchHistoryAvailability();\n    } else {\n      this.closeSearchHistory();\n    }\n    this.syncMobileSheetDocumentState();\n  }\n\n  get isSearchResultPage() {\n    const { index } = this.$route.query;\n    return typeof index === 'string';\n  }\n\n  get currentSearchResultIndex() {\n    const { index } = this.$route.query;\n    if (typeof index === 'string') {\n      return parseInt(index, 10);\n    }\n    return null;\n  }\n\n  get prevSearchResultUrl() {\n    if (this.currentSearchResultIndex === null) {\n      return '';\n    }\n    const index = this.currentSearchResultIndex - 1;\n    const searchItem = this.searchResults[index];\n    if (!searchItem) {\n      return '';\n    }\n    return UrlBuilderService.getSearchResultItemUrl(searchItem, index);\n  }\n\n  get nextSearchResultUrl() {\n    if (this.currentSearchResultIndex === null) {\n      return '';\n    }\n    const index = this.currentSearchResultIndex + 1;\n    const searchItem = this.searchResults[index];\n    if (!searchItem) {\n      return '';\n    }\n    return UrlBuilderService.getSearchResultItemUrl(searchItem, index);\n  }\n\n  get searchListUrl() {\n    const query = new URLSearchParams();\n    const searchLanguage =\n      typeof this.$route.query.searchLanguage === 'string'\n        ? this.$route.query.searchLanguage\n        : this.$route.params.language;\n    Object.entries(this.$route.query).forEach(([name, value]) => {\n      if (\n        !['index', 'highlight', 'reading', 'scope', 'searchLanguage'].includes(name) &&\n        typeof value === 'string'\n      ) {\n        query.set(name, value);\n      }\n    });\n    return `/${searchLanguage}/search?${query.toString()}`;\n  }\n\n  get editUrl() {\n    if (!(this.currentBook && this.currentBookSection)) {\n      return '';\n    }\n    return this.currentBook.edit_link.replace('{index}', this.currentBookSection.index.toString());\n  }\n\n  get mobileSheetStyle() {\n    return this.mobileSheetDragOffset\n      ? { transform: `translate(-50%, ${this.mobileSheetDragOffset}px)` }\n      : undefined;\n  }\n\n  get advancedSearchPanelExpanded() {\n    return this.mobileVisible ? this.advancedSearchPanelVisible : this.advancedSearch;\n  }\n\n  get searchBookSlug() {\n    if (this.mobileVisible && !this.mobileBookSearch) {\n      return '';\n    }\n    return this.currentBook ? this.currentBook.slug : (this.$route.query.slug as string) || '';\n  }\n\n  get searchBookId() {\n    if (this.mobileVisible && !this.mobileBookSearch) {\n      return undefined;\n    }\n    if (this.currentBook && this.currentBook.slug === this.searchBookSlug) {\n      return this.currentBook.id;\n    }\n    const routeBookId = this.$route.query.bookId;\n    if (typeof routeBookId !== 'string') {\n      return undefined;\n    }\n    const parsedBookId = parseInt(routeBookId, 10);\n    return parsedBookId > 0 ? parsedBookId : undefined;\n  }\n\n  actualizeSearchParams() {\n    this.searchQuery = (this.$route.query.query || '') as string;\n    this.searchInPoem = this.$route.query.searchInPoem === '1';\n    this.exact = this.$route.query.exact === '1';\n    this.considerDiacritics = this.$route.query.considerDiacritics === '1';\n    this.equalizeWriting = this.$route.query.equalizeWriting === '1';\n    if (this.$route.name === 'search-results') {\n      const compactViewport = typeof window !== 'undefined' && window.innerWidth <= 1024;\n      const requestedMobileBookSearch = this.$route.query.bookSearch === '1';\n      const hasBookSlug = typeof this.$route.query.slug === 'string';\n      const mobileBookSearchRoute = compactViewport && requestedMobileBookSearch && hasBookSlug;\n      this.setInBookSearch(\n        this.mobileBookSearch ||\n          mobileBookSearchRoute ||\n          (!compactViewport && this.$route.query.inBookOnly === '1')\n      );\n    }\n  }\n\n  async onSearchSubmit(searchQuery: string) {\n    this.searchQuery = searchQuery;\n    if (searchQuery.trim()) {\n      this.hasSearchHistory = true;\n    }\n    await this.updateUrl();\n  }\n\n  async refreshSearchHistoryAvailability() {\n    if (!this.mobileVisible) {\n      return;\n    }\n    try {\n      const history = await SearchService.getSearchHistory();\n      this.hasSearchHistory = Array.isArray(history) && history.length > 0;\n    } catch (e) {\n      // Keep the action available so an API error can be shown in the history view.\n      this.hasSearchHistory = true;\n    }\n  }\n\n  openSearchHistory() {\n    document.documentElement.classList.add('mobile-search-history-open');\n    this.showSearchHistoryOverlay = true;\n    this.emitMobileOverlayState();\n  }\n\n  closeSearchHistory() {\n    this.showSearchHistoryOverlay = false;\n    document.documentElement.classList.remove('mobile-search-history-open');\n    this.emitMobileOverlayState();\n  }\n\n  onSearchHistoryState(hasItems: boolean) {\n    this.hasSearchHistory = hasItems;\n    if (!hasItems) {\n      this.closeSearchHistory();\n    }\n  }\n\n  async onSearchClear() {\n    this.searchQuery = '';\n    this.setResults([]);\n    this.setResultsCount(0);\n    this.setPriorityResults(null);\n    this.setNeedUpdate(false);\n    this.setShowSearchResultsFlag(false);\n    if (this.$route.name === 'search-results' && this.$route.query.query) {\n      const language = this.navLanguage || this.$route.params.language || LANGUAGE_CODE_DEFAULT;\n      if (this.mobileBookSearch && this.searchBookSlug) {\n        const query = new URLSearchParams({\n          slug: this.searchBookSlug,\n          inBookOnly: '1',\n          bookSearch: '1'\n        });\n        if (this.searchBookId) {\n          query.set('bookId', this.searchBookId.toString());\n        }\n        if (typeof this.$route.query.returnTo === 'string') {\n          query.set('returnTo', this.$route.query.returnTo);\n        }\n        await this.$router.replace(`/${language}/search?${query.toString()}`);\n      } else {\n        await this.$router.replace(`/${language}/search`);\n      }\n    }\n  }\n\n  async updateUrl() {\n    const language = this.navLanguage || this.$route.params.language || LANGUAGE_CODE_DEFAULT; // language priority: left sidebar, url\n    const query = this.searchQuery;\n    if (!query) {\n      return;\n    }\n    const options = {\n      searchInPoem: !!this.searchInPoem,\n      exact: !!this.exact,\n      considerDiacritics: !!this.considerDiacritics,\n      equalizeWriting: !!this.equalizeWriting\n    };\n    const newPath = UrlBuilderService.getSearchQueryUrl({\n      language,\n      query,\n      bookSlug: this.searchBookSlug || undefined,\n      bookId: this.searchBookId,\n      inBookOnly: this.inBookSearch,\n      bookSearch: this.mobileBookSearch,\n      returnTo:\n        this.mobileBookSearch && typeof this.$route.query.returnTo === 'string'\n          ? this.$route.query.returnTo\n          : undefined,\n      ...options\n    });\n    if (this.$route.fullPath !== newPath) {\n      try {\n        await this.$router.push(newPath);\n      } catch (error) {\n        if (!(error && (error as { name?: string }).name === 'NavigationDuplicated')) {\n          throw error;\n        }\n      }\n    }\n    this.setNeedUpdate(true); // see watcher in SearchResults.vue\n  }\n\n  actualizeShowAdvancedSearch() {\n    this.setAdvancedSearch(\n      this.exact ||\n        this.considerDiacritics ||\n        this.equalizeWriting ||\n        this.searchInPoem ||\n        this.selectedBooksCount > 0 ||\n        (this.checkedCategories && this.checkedCategories.length > 0)\n    );\n  }\n\n  async onInBookSearchChange() {\n    this.setInBookSearch(!this.inBookSearch);\n    if (this.inBookSearch) {\n      this.searchInPoem = false;\n      this.exact = false;\n      this.considerDiacritics = false;\n      this.equalizeWriting = false;\n      this.setAdvancedSearch(false);\n    }\n    if (this.searchQuery) {\n      await this.updateUrl();\n    }\n  }\n\n  resetSearchSettings() {\n    this.searchInPoem = false;\n    this.exact = false;\n    this.considerDiacritics = false;\n    this.equalizeWriting = false;\n    this.setInBookSearch(false);\n    this.setAdvancedSearch(false);\n    this.advancedSearchPanelVisible = false;\n    this.showHelp = false;\n    this.$store.commit('navigation/uncheckAll');\n  }\n\n  toggleAdvancedSearch() {\n    this.resetMobileSheetDrag();\n    if (this.mobileVisible) {\n      if (!this.advancedSearchPanelVisible) {\n        this.rememberMobilePanelTrigger();\n        this.setAdvancedSearch(true);\n      }\n      this.advancedSearchPanelVisible = !this.advancedSearchPanelVisible;\n      this.showHelp = false;\n      this.focusActiveMobilePanel();\n      return;\n    }\n    if (!this.advancedSearch) {\n      this.rememberMobilePanelTrigger();\n    }\n    this.setAdvancedSearch(!this.advancedSearch);\n    this.showHelp = false;\n    this.focusActiveMobilePanel();\n  }\n\n  toggleHelp() {\n    this.resetMobileSheetDrag();\n    if (!this.showHelp) {\n      this.rememberMobilePanelTrigger();\n    }\n    this.showHelp = !this.showHelp;\n    this.focusActiveMobilePanel();\n  }\n\n  openSearchAreaPicker() {\n    this.resetMobileSheetDrag();\n    this.setAdvancedSearch(true);\n    this.advancedSearchPanelVisible = false;\n    this.showHelp = false;\n    this.$emit('select-search-area');\n  }\n\n  closeMobilePanels() {\n    this.resetMobileSheetDrag();\n    this.advancedSearchPanelVisible = false;\n    this.showHelp = false;\n    this.$nextTick(() => {\n      if (this.mobilePanelTrigger && document.contains(this.mobilePanelTrigger)) {\n        this.mobilePanelTrigger.focus();\n      }\n      this.mobilePanelTrigger = null;\n    });\n  }\n\n  onDocumentKeydown(event: KeyboardEvent) {\n    if (!this.mobileVisible || (!this.advancedSearchPanelExpanded && !this.showHelp)) {\n      return;\n    }\n    if (event.key === 'Escape') {\n      this.closeMobilePanels();\n      return;\n    }\n    if (event.key === 'Tab') {\n      this.trapMobilePanelFocus(event);\n    }\n  }\n\n  rememberMobilePanelTrigger() {\n    if (!this.mobileVisible || this.mobilePanelTrigger) {\n      return;\n    }\n    const activeElement = document.activeElement;\n    if (activeElement instanceof HTMLElement && activeElement !== document.body) {\n      this.mobilePanelTrigger = activeElement;\n    }\n  }\n\n  focusActiveMobilePanel() {\n    if (!this.mobileVisible) {\n      return;\n    }\n    this.$nextTick(() => {\n      const panel = this.getActiveMobilePanel();\n      if (panel) {\n        panel.focus();\n      }\n    });\n  }\n\n  getActiveMobilePanel(): HTMLElement | null {\n    const ref = this.showHelp ? this.$refs.searchHelpPanel : this.$refs.searchOptionsPanel;\n    if (!ref) {\n      return null;\n    }\n    return ((ref as Vue).$el || ref) as HTMLElement;\n  }\n\n  trapMobilePanelFocus(event: KeyboardEvent) {\n    const panel = this.getActiveMobilePanel();\n    if (!panel) {\n      return;\n    }\n    const focusable = Array.from(\n      panel.querySelectorAll<HTMLElement>(\n        'button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n      )\n    ).filter(element => element.offsetParent !== null);\n    if (!focusable.length) {\n      event.preventDefault();\n      panel.focus();\n      return;\n    }\n    const first = focusable[0];\n    const last = focusable[focusable.length - 1];\n    if (event.shiftKey && (document.activeElement === first || document.activeElement === panel)) {\n      event.preventDefault();\n      last.focus();\n    } else if (!event.shiftKey && document.activeElement === last) {\n      event.preventDefault();\n      first.focus();\n    }\n  }\n\n  startMobileSheetDrag(event: PointerEvent) {\n    this.mobileSheetPointerId = event.pointerId;\n    this.mobileSheetDragStartY = event.clientY;\n    this.mobileSheetDragging = true;\n    const dragRegion = event.currentTarget as HTMLElement;\n    if (dragRegion.setPointerCapture) {\n      dragRegion.setPointerCapture(event.pointerId);\n    }\n  }\n\n  moveMobileSheetDrag(event: PointerEvent) {\n    if (this.mobileSheetDragStartY === null || this.mobileSheetPointerId !== event.pointerId) {\n      return;\n    }\n    this.mobileSheetDragOffset = Math.max(0, event.clientY - this.mobileSheetDragStartY);\n    if (this.mobileSheetDragOffset > 0 && event.cancelable) {\n      event.preventDefault();\n    }\n  }\n\n  endMobileSheetDrag(event: PointerEvent) {\n    if (this.mobileSheetPointerId !== event.pointerId) {\n      return;\n    }\n    const dragRegion = event.currentTarget as HTMLElement;\n    if (\n      dragRegion.releasePointerCapture &&\n      dragRegion.hasPointerCapture &&\n      dragRegion.hasPointerCapture(event.pointerId)\n    ) {\n      dragRegion.releasePointerCapture(event.pointerId);\n    }\n    if (this.mobileSheetDragOffset >= 64) {\n      this.closeMobilePanels();\n      return;\n    }\n    this.resetMobileSheetDrag();\n  }\n\n  cancelMobileSheetDrag() {\n    this.resetMobileSheetDrag();\n  }\n\n  resetMobileSheetDrag() {\n    this.mobileSheetDragStartY = null;\n    this.mobileSheetDragOffset = 0;\n    this.mobileSheetDragging = false;\n    this.mobileSheetPointerId = null;\n  }\n\n  syncMobileSheetDocumentState() {\n    if (!this.mobileVisible) {\n      this.mobileSheetLayerVisible = false;\n      document.documentElement.classList.remove('mobile-search-sheet-open');\n      this.emitMobileOverlayState();\n      return;\n    }\n    if (this.mobileSheetCloseTimer !== null) {\n      window.clearTimeout(this.mobileSheetCloseTimer);\n      this.mobileSheetCloseTimer = null;\n    }\n    if (this.advancedSearchPanelExpanded || this.showHelp) {\n      this.mobileSheetLayerVisible = true;\n      document.documentElement.classList.add('mobile-search-sheet-open');\n      this.emitMobileOverlayState();\n      return;\n    }\n    this.mobileSheetCloseTimer = window.setTimeout(() => {\n      this.mobileSheetLayerVisible = false;\n      document.documentElement.classList.remove('mobile-search-sheet-open');\n      this.mobileSheetCloseTimer = null;\n      this.emitMobileOverlayState();\n    }, 240);\n  }\n\n  emitMobileOverlayState() {\n    this.$emit(\n      'mobile-overlay-change',\n      this.mobileVisible && (this.mobileSheetLayerVisible || this.showSearchHistoryOverlay)\n    );\n  }\n\n  /**\n   * Converts object to url params string\n   * @see https://stackoverflow.com/a/23639793/2393499\n   */\n  static objectToUrlParams(object: { [key: string]: string | (string | null)[] }) {\n    return Object.entries(object)\n      .map(([key, val]) => (val ? `${key}=${val}` : key))\n      .join('&');\n  }\n\n  goToSearchList() {\n    router.push(this.searchListUrl);\n    this.setShowSearchResultsFlag(true);\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=da544bbc&scoped=true&\"\nimport script from \"./Search.vue?vue&type=script&lang=ts&\"\nexport * from \"./Search.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Search.vue?vue&type=style&index=0&id=da544bbc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"da544bbc\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"new-tab\"},[_c('h2',[_vm._v(_vm._s(_vm.getTranslation('newTab')))]),_c('div',{staticClass:\"text\"},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('useSearch'))+\" \"),_c('span',{staticClass:\"gray-text-color\"},[_vm._v(\"(\"+_vm._s(_vm.getTranslation('above'))+\")\")]),_c('br'),_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('orOpenBookInCatalog'))+\"\\n    \"),_c('span',{staticClass:\"gray-text-color\"},[_vm._v(\"(\"+_vm._s(_vm.getTranslation('onLeft'))+\")\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { getTranslation } from '@/services/Translation';\n\n@Component\nexport default class NewTab extends Vue {\n  getTranslation = getTranslation;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTab.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewTab.vue?vue&type=template&id=442d66fe&scoped=true&\"\nimport script from \"./NewTab.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewTab.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewTab.vue?vue&type=style&index=0&id=442d66fe&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"442d66fe\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.$store.state.reader.readMode)?_c('div',{staticClass:\"text-filters-container\",class:{ collapsed: !_vm.$store.state.reader.isTextTypesFiltersVisible }},[_c('button',{staticClass:\"text-filters-backdrop\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":_vm.close}}),_c('div',{ref:\"dialog\",staticClass:\"text-filters\",class:{ dragging: _vm.dragging },style:({ transform: _vm.dragOffset ? (\"translate(-50%, \" + _vm.dragOffset + \"px)\") : undefined }),attrs:{\"role\":\"dialog\",\"aria-modal\":\"true\",\"aria-label\":_vm.getTranslation('textSettings'),\"tabindex\":_vm.$store.state.reader.isTextTypesFiltersVisible ? -1 : undefined}},[_c('header',{staticClass:\"text-filters-header\",on:{\"pointerdown\":_vm.startDrag,\"pointermove\":_vm.moveDrag,\"pointerup\":_vm.endDrag,\"pointercancel\":_vm.cancelDrag}},[_c('span',{staticClass:\"text-filters-handle\"}),_c('h2',[_vm._v(_vm._s(_vm.getTranslation('show')))])]),_c('div',{staticClass:\"text-filters-inner\"},[_c('div',{staticClass:\"text-filters-label\"},[_vm._v(_vm._s(_vm.getTranslation('show'))+\":\")]),_vm._l((_vm.textTypes),function(textType){return _c('Checkbox',{key:textType.code,staticClass:\"text-filters-checkbox\",attrs:{\"checked\":!_vm.$store.state.reader.hideTextTypes ||\n            (_vm.$store.state.reader.hideTextTypes &&\n              !_vm.$store.state.reader.hideTextTypes.includes(textType.code))},on:{\"change\":function($event){return _vm.switchTextTypeFilter(textType.code)}}},[_vm._v(\"\\n        \"+_vm._s(textType.name)+\"\\n      \")])})],2)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport Checkbox from '@/components/ui/Checkbox.vue';\nimport { Mutation, State } from 'vuex-class';\nimport { getTranslation } from '@/services/Translation';\nimport { Watch } from 'vue-property-decorator';\n\n@Component({\n  components: { Checkbox }\n})\nexport default class TextTypesFilter extends Vue {\n  dragStartY: number | null = null;\n\n  dragOffset: number = 0;\n\n  dragging: boolean = false;\n\n  dragPointerId: number | null = null;\n\n  dialogTrigger: HTMLElement | null = null;\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  @Mutation('switchTextTypeFilter', { namespace: 'reader' })\n  switchTextTypeFilter!: Function;\n\n  @Mutation('setTextTypesFilterVisible', { namespace: 'reader' })\n  setTextTypesFilterVisible!: Function;\n\n  textTypes = this.getTextTypes();\n\n  getTranslation = getTranslation;\n\n  mounted() {\n    document.addEventListener('keydown', this.onDocumentKeydown);\n  }\n\n  beforeDestroy() {\n    document.removeEventListener('keydown', this.onDocumentKeydown);\n  }\n\n  onDocumentKeydown(event: KeyboardEvent) {\n    if (!this.visible) {\n      return;\n    }\n    if (event.key === 'Escape') {\n      this.close();\n      return;\n    }\n    if (event.key === 'Tab') {\n      this.trapFocus(event);\n    }\n  }\n\n  get visible() {\n    return this.$store.state.reader.isTextTypesFiltersVisible;\n  }\n\n  @Watch('visible')\n  onVisibilityChange(visible: boolean) {\n    if (visible) {\n      const activeElement = document.activeElement;\n      this.dialogTrigger =\n        activeElement instanceof HTMLElement && activeElement !== document.body ? activeElement : null;\n      this.$nextTick(() => {\n        const dialog = this.$refs.dialog as HTMLElement;\n        if (dialog) {\n          window.requestAnimationFrame(() => dialog.focus());\n        }\n      });\n      return;\n    }\n    this.$nextTick(() => {\n      if (this.dialogTrigger && document.contains(this.dialogTrigger)) {\n        this.dialogTrigger.focus();\n      }\n      this.dialogTrigger = null;\n    });\n  }\n\n  trapFocus(event: KeyboardEvent) {\n    const dialog = this.$refs.dialog as HTMLElement;\n    if (!dialog) {\n      return;\n    }\n    const focusable = Array.from(\n      dialog.querySelectorAll<HTMLElement>(\n        'button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n      )\n    ).filter(element => element.offsetParent !== null);\n    if (!focusable.length) {\n      event.preventDefault();\n      dialog.focus();\n      return;\n    }\n    const first = focusable[0];\n    const last = focusable[focusable.length - 1];\n    if (event.shiftKey && (document.activeElement === first || document.activeElement === dialog)) {\n      event.preventDefault();\n      last.focus();\n    } else if (!event.shiftKey && document.activeElement === last) {\n      event.preventDefault();\n      first.focus();\n    }\n  }\n\n  getTextTypes() {\n    return [\n      { code: 'sanskrit', name: getTranslation('sanskrit') },\n      { code: 'diacritic', name: getTranslation('diacritic') },\n      { code: 'word-by-word', name: getTranslation('wordByWordTranslation') },\n      { code: 'translate', name: getTranslation('translation') },\n      { code: 'comment', name: getTranslation('comment') }\n    ];\n  }\n\n  close() {\n    this.dragStartY = null;\n    this.dragOffset = 0;\n    this.dragging = false;\n    this.dragPointerId = null;\n    this.setTextTypesFilterVisible(false);\n  }\n\n  startDrag(event: PointerEvent) {\n    const target = event.target as HTMLElement;\n    if (target.closest('button')) {\n      return;\n    }\n    this.dragPointerId = event.pointerId;\n    this.dragStartY = event.clientY;\n    this.dragging = true;\n    const dragRegion = event.currentTarget as HTMLElement;\n    if (dragRegion.setPointerCapture) {\n      dragRegion.setPointerCapture(event.pointerId);\n    }\n  }\n\n  moveDrag(event: PointerEvent) {\n    if (this.dragStartY === null || this.dragPointerId !== event.pointerId) {\n      return;\n    }\n    this.dragOffset = Math.max(0, event.clientY - this.dragStartY);\n    if (this.dragOffset > 0 && event.cancelable) {\n      event.preventDefault();\n    }\n  }\n\n  endDrag(event: PointerEvent) {\n    if (this.dragPointerId !== event.pointerId) {\n      return;\n    }\n    const dragRegion = event.currentTarget as HTMLElement;\n    if (\n      dragRegion.releasePointerCapture &&\n      dragRegion.hasPointerCapture &&\n      dragRegion.hasPointerCapture(event.pointerId)\n    ) {\n      dragRegion.releasePointerCapture(event.pointerId);\n    }\n    if (this.dragOffset >= 64) {\n      this.close();\n      return;\n    }\n    this.dragStartY = null;\n    this.dragOffset = 0;\n    this.dragging = false;\n    this.dragPointerId = null;\n  }\n\n  cancelDrag() {\n    this.dragStartY = null;\n    this.dragOffset = 0;\n    this.dragging = false;\n    this.dragPointerId = null;\n  }\n\n  @Watch('interfaceLanguage')\n  onChangeInterfaceLang() {\n    this.textTypes = this.getTextTypes();\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TextTypesFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./TextTypesFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextTypesFilter.vue?vue&type=template&id=5ce4a862&scoped=true&\"\nimport script from \"./TextTypesFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextTypesFilter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextTypesFilter.vue?vue&type=style&index=0&id=5ce4a862&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5ce4a862\",\n  null\n  \n)\n\nexport default component.exports","class StorageService {\n  storageName: string;\n\n  constructor() {\n    this.storageName = 'vedarama';\n  }\n\n  save(name: string, value: object | string | number) {\n    const storage = this.read();\n    storage[name] = value;\n    localStorage.setItem(this.storageName, JSON.stringify(storage));\n  }\n\n  get(name: string) {\n    return this.read()[name];\n  }\n\n  private read() {\n    const data = localStorage.getItem(this.storageName) || '{}';\n    return JSON.parse(data);\n  }\n}\n\nexport default new StorageService();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"nav-catalog-head\"},[_c('h2',[_vm._v(_vm._s(_vm.onLanguage))]),(!_vm.showSearchResults && !_vm.navLoading)?_c('NavRubrics',{attrs:{\"categories\":_vm.lists,\"current\":_vm.listType},on:{\"change\":_vm.changeListType}}):_vm._e()],1),(_vm.navLoading)?_c('div',{staticClass:\"nav-catalog-loader\"},[_c('Loader')],1):(_vm.showBlockingCatalogError)?_c('div',{staticClass:\"nav-catalog-error red-color\"},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('errorOccurred'))),_c('br'),_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('tryToRefreshPage'))),_c('br')]):_c('div',{staticClass:\"nav-catalog-content\"},[(!_vm.showSearchResults)?_c('div',{staticClass:\"nav-catalog-search\"},[_c('div',{staticClass:\"nav-catalog-search-row\"},[_c('SearchInput',{attrs:{\"placeholder\":_vm.getTranslation('catalogSearch'),\"value\":_vm.filterQuery},on:{\"submit\":_vm.onSearch,\"clear\":function($event){return _vm.onSearch('')}}}),(_vm.mobileMode === 'library')?_c('button',{staticClass:\"mobile-collapse-all nav-icon\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('collapseAllBranches'),\"title\":_vm.getTranslation('collapseAllBranches')},on:{\"click\":function($event){return _vm.collapseAll()}}},[_c('CollapseListIcon'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('collapse')))])],1):_vm._e()],1)]):_vm._e(),(_vm.showSearchResults)?_c('div',{staticClass:\"nav-return-to-catalog\"},[_c('button',{staticClass:\"nav-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.returnToCatalog()}}},[_c('ReturnIcon'),_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation(_vm.advancedSearch ? 'selectSearchAreaInCatalog' : 'showBooksCatalog'))+\"\\n      \")],1)]):_vm._e(),_c('div',{staticClass:\"nav-catalog-content-inner\",class:{ light: _vm.showSearchResults }},[(_vm.showSearchResults)?_c('div',{staticClass:\"nav-search-info\"},[_c('div',[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('found'))+\": \\n          \"),(_vm.searchLoading || _vm.navLoading)?_c('div',{staticClass:\"nav-search-loader\"},[_c('Loader',{attrs:{\"active\":true}})],1):_c('b',[_vm._v(_vm._s(_vm.searchResultsCount))])]),_c('div',[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('foundBooks'))+\":\\n          \"),_c('b',[_vm._v(_vm._s(_vm.data.foundBooks ? Object.keys(_vm.data.foundBooks).length : 0))])])]):_vm._e(),(_vm.showCheckboxes)?_c('div',{staticClass:\"nav-catalog-check-control-buttons\"},[_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.checkAll()}}},[_vm._v(_vm._s(_vm.getTranslation('selectAll')))]),_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.uncheckAll()}}},[_vm._v(_vm._s(_vm.getTranslation('reset')))])]):_vm._e(),_c('div',{ref:\"tree\",staticClass:\"nav-catalog-tree\"},[(_vm.data)?_c('div',{staticClass:\"nav-catalog-tree-inner\"},[(_vm.showSearchResults)?_c('div',_vm._l((_vm.data.foundBooks),function(book){return _c('div',{key:book.id},[_c('NavBook',{attrs:{\"book\":book,\"showCheckboxes\":_vm.showCheckboxes,\"showEntriesCount\":_vm.showEntriesCount}})],1)}),0):_c('div',[(_vm.listType === 'categories')?[(_vm.filterQuery)?[_vm._l((_vm.filteredCategories),function(item){return _c('NavCategory',{key:item.id,attrs:{\"category\":item,\"showCheckboxes\":_vm.showCheckboxes}})}),_vm._l((_vm.filteredBooks),function(item){return _c('NavBook',{key:item.id,attrs:{\"book\":item,\"showCheckboxes\":_vm.showCheckboxes}})})]:_vm._l((_vm.data.categories),function(item){return _c('div',{key:item.id},[(item.depth === 0)?_c('NavCategory',{attrs:{\"category\":item,\"showCheckboxes\":_vm.showCheckboxes}}):_vm._e()],1)})]:(_vm.listType === 'authors')?[(_vm.filterQuery)?_vm._l((_vm.filteredAuthors),function(item){return _c('NavAuthor',{key:item.id,attrs:{\"author\":item,\"showCheckboxes\":_vm.showCheckboxes}})}):_vm._l((_vm.data.authorsAlphabet),function(letter){return _c('NavLetter',{key:letter.id,attrs:{\"letter\":letter,\"listType\":_vm.listType,\"showCheckboxes\":_vm.showCheckboxes}})})]:(_vm.listType === 'books')?[(_vm.filterQuery)?_vm._l((_vm.filteredBooks),function(item){return _c('NavBook',{key:item.id,attrs:{\"book\":item,\"showCheckboxes\":_vm.showCheckboxes}})}):_vm._l((_vm.data.booksAlphabet),function(item){return _c('NavLetter',{key:item.id,attrs:{\"letter\":item,\"listType\":_vm.listType,\"showCheckboxes\":_vm.showCheckboxes}})})]:_vm._e()],2)]):_vm._e()])])]),_c('div',{staticClass:\"nav-bottom-bar\"},[_c('button',{staticClass:\"nav-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.collapseAll()}}},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('collapseAllBranches'))+\"\\n    \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"categories\"},_vm._l((_vm.categories),function(name,code){return _c('button',{key:code,staticClass:\"category\",class:{ active: code === _vm.current },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('change', code)}}},[_vm._v(\"\\n    \"+_vm._s(name)+\"\\n  \")])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\n@Component\nexport default class NavRubrics extends Vue {\n  @Prop({ required: true })\n  categories!: { [key: string]: string };\n\n  @Prop({ required: true })\n  current!: string;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavRubrics.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavRubrics.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavRubrics.vue?vue&type=template&id=8fafeeac&scoped=true&\"\nimport script from \"./NavRubrics.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavRubrics.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavRubrics.vue?vue&type=style&index=0&id=8fafeeac&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"8fafeeac\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('NavItemFolder',{attrs:{\"text\":_vm.category.name,\"highlight\":_vm.category.highlight,\"offset\":_vm.offset,\"expanded\":_vm.category.expanded,\"primary\":true,\"searchMatch\":_vm.category.searchMatch,\"showCheckbox\":_vm.showCheckboxes,\"checkboxChecked\":_vm.category.checked,\"checkboxPartiallyChecked\":_vm.category.partiallyChecked,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.toggleExpand()},\"check\":function($event){return _vm.toggleCheck()}}}),(_vm.children && _vm.children.length > 0 && _vm.category.expanded && !_vm.loading)?_c('div',_vm._l((_vm.children),function(child){return _c('NavCategory',{key:child.id,attrs:{\"category\":child,\"level\":_vm.level + 1,\"showCheckboxes\":_vm.showCheckboxes}})}),1):_vm._e(),(_vm.books.length > 0 && _vm.category.expanded && !_vm.loading)?_c('div',_vm._l((_vm.books),function(book){return _c('NavBook',{key:book.id,attrs:{\"book\":book,\"level\":_vm.level + 1,\"category\":_vm.category,\"showCheckboxes\":_vm.showCheckboxes}})}),1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nav-item-link\",class:{\n    highlight: _vm.highlight,\n    primary: _vm.primary,\n    searchMatch: _vm.searchMatch,\n    'size-tablet': _vm.catalogListScale === _vm.LIST_SCALE_TABLET,\n    'size-auto': _vm.catalogListScale === _vm.LIST_SCALE_AUTO\n  },style:({ paddingLeft: (_vm.offset + \"px\") })},[(_vm.showEntriesCount)?_c('NavItemEntriesCount',{attrs:{\"count\":_vm.entriesCount}}):_vm._e(),_c('NavItemIcon',{attrs:{\"icon\":\"dot\"}}),_c('router-link',{staticClass:\"nav-item-link-text\",attrs:{\"to\":_vm.to},nativeOn:{\"click\":function($event){return _vm.onNavigate($event)}}},[_c('NavItemText',{attrs:{\"text\":_vm.text}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"icon\",class:(\"icon-\" + _vm.icon)},[(_vm.icon === 'plus')?_c('PlusIcon'):_vm._e(),(_vm.icon === 'minus')?_c('MinusIcon'):_vm._e(),(_vm.icon === 'book')?_c('NavBookIcon',{staticClass:\"book-icon\"}):_vm._e(),(_vm.icon === 'dot')?_c('div',{staticClass:\"dot\"},[_vm._v(\"·\")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"18\",\"height\":\"18\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M1 9h16\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"13\",\"height\":\"16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M2.5 15.453h10V3.5m-10 11.953V3.5m0 11.953c-.932 0-2-.48-2-1.444V1.985m2 1.515h10m-10 0c-1 0-2-.433-2-1.515m12 1.515v-3h-10c-1 0-2 .567-2 1.485\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport PlusIcon from '@/assets/icons/plus.svg';\nimport MinusIcon from '@/assets/icons/minus.svg';\nimport NavBookIcon from '@/assets/icons/nav-book.svg';\nimport { Prop } from 'vue-property-decorator';\n\n@Component({\n  components: { MinusIcon, PlusIcon, NavBookIcon }\n})\nexport default class NavItemIcon extends Vue {\n  @Prop({\n    required: true,\n    validator: (value: string) => ['plus', 'minus', 'dot', 'book'].indexOf(value) !== -1\n  })\n  icon!: string;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavItemIcon.vue?vue&type=template&id=0f3daa65&scoped=true&\"\nimport script from \"./NavItemIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavItemIcon.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavItemIcon.vue?vue&type=style&index=0&id=0f3daa65&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0f3daa65\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nav-item-text\",domProps:{\"innerHTML\":_vm._s(_vm.textFormatted)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class StringService {\n  /**\n   * Capitalize first letter of a string\n   * @param str\n   * @see https://stackoverflow.com/a/3291856\n   */\n  static capitalize(str: string) {\n    return str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  static replaceAll(string: string, search: string, replace: string) {\n    return string.split(search).join(replace);\n  }\n\n  /**\n   * https://stackoverflow.com/a/1714899/2393499\n   * @param obj\n   */\n  static objectToQueryString(obj: { [key: string]: any }) {\n    const str = [];\n    for (const key in obj)\n      if (obj.hasOwnProperty(key)) {\n        str.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key].toString()));\n      }\n    return str.join('&');\n  }\n}\n","\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { State } from 'vuex-class';\nimport StringService from '@/services/StringService';\n\n@Component\nexport default class NavItemText extends Vue {\n  @Prop({ required: true })\n  text!: string;\n\n  @State('filterQuery', { namespace: 'navigation' })\n  filterQuery!: string;\n\n  get textFormatted() {\n    if (this.filterQuery) {\n      let re = this.filterQuery;\n      // russian diacritic\n      re = StringService.replaceAll(re, 'а', '[аā]');\n      re = StringService.replaceAll(re, 'р', '[р]');\n      re = StringService.replaceAll(re, 'у', '[yӯ]');\n      re = StringService.replaceAll(re, 'и', '[иӣ]');\n      re = StringService.replaceAll(re, 'д', '[д]');\n      re = StringService.replaceAll(re, 'т', '[т]');\n      re = StringService.replaceAll(re, 'н', '[н]');\n      re = StringService.replaceAll(re, 'х', '[х]');\n      re = StringService.replaceAll(re, 'х', '[н]');\n      re = StringService.replaceAll(re, 'л', '[л]');\n      re = StringService.replaceAll(re, 'ш', '[ш]');\n      re = StringService.replaceAll(re, 'м', '[м]');\n      // eng diacritic\n      re = StringService.replaceAll(re, 's', '[s|ṣ|ś]');\n      re = StringService.replaceAll(re, 'r', '[ṝṛr]');\n      re = StringService.replaceAll(re, 'u', '[ūu]');\n      re = StringService.replaceAll(re, 'i', '[īi]');\n      re = StringService.replaceAll(re, 'a', '[āa]');\n      re = StringService.replaceAll(re, 'd', '[dḍ]');\n      re = StringService.replaceAll(re, 't', '[ṭt]');\n      re = StringService.replaceAll(re, 'n', '[nṅñṇ]');\n      re = StringService.replaceAll(re, 'h', '[ḥh]');\n      re = StringService.replaceAll(re, 'l', '[lḷỿḹ]');\n      re = StringService.replaceAll(re, 'm', '[mṁḿ]');\n\n      return this.text.replace(new RegExp(`(${re})`, 'ig'), '<b>$1</b>');\n    }\n    return this.text;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemText.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemText.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavItemText.vue?vue&type=template&id=c94b25e8&scoped=true&\"\nimport script from \"./NavItemText.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavItemText.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavItemText.vue?vue&type=style&index=0&id=c94b25e8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"c94b25e8\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nav-item-entries\"},[_vm._v(\"\\n  \"+_vm._s(_vm.count)+\"\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\n@Component\nexport default class NavItemEntriesCount extends Vue {\n  @Prop({ required: true })\n  count!: number;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemEntriesCount.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemEntriesCount.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavItemEntriesCount.vue?vue&type=template&id=22d7a447&scoped=true&\"\nimport script from \"./NavItemEntriesCount.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavItemEntriesCount.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavItemEntriesCount.vue?vue&type=style&index=0&id=22d7a447&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"22d7a447\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport Checkbox from '@/components/ui/Checkbox.vue';\nimport NavItemIcon from '@/components/nav/NavItemIcon.vue';\nimport NavItemText from '@/components/nav/NavItemText.vue';\nimport NavItemEntriesCount from '@/components/nav/NavItemEntriesCount.vue';\nimport { State } from 'vuex-class';\nimport { LIST_SCALE_AUTO, LIST_SCALE_TABLET } from '@/constants';\n\n@Component({\n  components: { NavItemEntriesCount, Checkbox, NavItemIcon, NavItemText }\n})\nexport default class NavItemLink extends Vue {\n  LIST_SCALE_AUTO = LIST_SCALE_AUTO;\n\n  LIST_SCALE_TABLET = LIST_SCALE_TABLET;\n\n  @Prop({ required: true })\n  highlight!: boolean;\n\n  @Prop({ required: true })\n  searchMatch!: boolean;\n\n  @Prop({ required: true })\n  to!: string;\n\n  @Prop({ required: true })\n  text!: string;\n\n  @Prop({ required: true })\n  offset!: number;\n\n  @Prop({ required: true })\n  primary!: boolean;\n\n  @Prop({ required: true })\n  checked!: boolean;\n\n  @Prop({ required: false })\n  showEntriesCount?: boolean;\n\n  @Prop({ required: false })\n  entriesCount?: number;\n\n  @State('catalogListScale', { namespace: 'reader' })\n  catalogListScale!: string;\n\n  onNavigate() {\n    this.$nextTick(() => {\n      this.$root.$emit('reader-link-selected', { link: this.to, name: this.text });\n    });\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemLink.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemLink.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavItemLink.vue?vue&type=template&id=cd92ce9e&scoped=true&\"\nimport script from \"./NavItemLink.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavItemLink.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavItemLink.vue?vue&type=style&index=0&id=cd92ce9e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"cd92ce9e\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nav-item-folder\",class:{\n    'size-tablet': _vm.catalogListScale === _vm.LIST_SCALE_TABLET,\n    'size-auto': _vm.catalogListScale === _vm.LIST_SCALE_AUTO\n  }},[_c('div',{staticClass:\"nav-item-folder-row\",class:{ 'with-checkbox': _vm.showCheckbox },style:({ paddingLeft: (_vm.offset + \"px\") })},[(_vm.showEntriesCount)?_c('NavItemEntriesCount',{attrs:{\"count\":_vm.entriesCount}}):_vm._e(),_c('button',{staticClass:\"nav-item-button\",class:{\n        highlight: _vm.highlight,\n        primary: _vm.primary,\n        searchMatch: _vm.searchMatch\n      },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('click')}}},[(_vm.loading)?_c('Loader',{staticClass:\"nav-item-loading\"}):_c('NavItemIcon',{attrs:{\"icon\":_vm.bookIcon ? 'book' : _vm.expanded ? 'minus' : 'plus'}})],1),(_vm.showCheckbox)?_c('Checkbox',{staticClass:\"checkbox\",class:{\n        'size-auto': _vm.catalogListScale === _vm.LIST_SCALE_AUTO,\n        'size-tablet': _vm.catalogListScale === _vm.LIST_SCALE_TABLET\n      },attrs:{\"checked\":_vm.checkboxChecked,\"partially-checked\":_vm.checkboxPartiallyChecked},on:{\"change\":function($event){return _vm.$emit('check')}}}):_vm._e(),(_vm.link)?_c('router-link',{staticClass:\"nav-item-link\",class:{\n        highlight: _vm.highlight,\n        primary: _vm.primary,\n        searchMatch: _vm.searchMatch\n      },attrs:{\"to\":_vm.link},nativeOn:{\"click\":function($event){return _vm.onNavigate($event)}}},[_c('NavItemText',{attrs:{\"text\":_vm.text}})],1):_c('button',{staticClass:\"nav-item-button\",class:{\n        highlight: _vm.highlight,\n        primary: _vm.primary,\n        searchMatch: _vm.searchMatch\n      },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('NavItemText',{attrs:{\"text\":_vm.text}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport Checkbox from '@/components/ui/Checkbox.vue';\nimport Loader from '@/components/ui/Loader.vue';\nimport NavItemIcon from '@/components/nav/NavItemIcon.vue';\nimport NavItemText from '@/components/nav/NavItemText.vue';\nimport NavItemEntriesCount from '@/components/nav/NavItemEntriesCount.vue';\nimport { State } from 'vuex-class';\nimport { LIST_SCALE_TABLET, LIST_SCALE_AUTO } from '@/constants';\n\n@Component({\n  components: { Loader, Checkbox, NavItemIcon, NavItemText, NavItemEntriesCount }\n})\nexport default class NavItemFolder extends Vue {\n  LIST_SCALE_TABLET = LIST_SCALE_TABLET;\n  LIST_SCALE_AUTO = LIST_SCALE_AUTO;\n\n  @Prop({ required: true })\n  highlight!: boolean;\n\n  @Prop({ required: true })\n  searchMatch!: boolean;\n\n  @Prop({ required: true })\n  text!: string;\n\n  @Prop({ required: true })\n  expanded!: boolean;\n\n  @Prop({ required: true })\n  offset!: number;\n\n  @Prop({ required: true })\n  primary!: boolean;\n\n  @Prop({ required: false })\n  bookIcon?: boolean;\n\n  @Prop({ required: false })\n  link?: string;\n\n  @Prop({ required: false })\n  showCheckbox?: boolean;\n\n  @Prop({ required: false })\n  checkboxChecked?: boolean;\n\n  @Prop({ required: false })\n  checkboxPartiallyChecked?: boolean;\n\n  @Prop({ required: false })\n  showEntriesCount?: boolean;\n\n  @Prop({ required: false })\n  entriesCount?: number;\n\n  @Prop({ required: false })\n  loading?: boolean;\n\n  @State('catalogListScale', { namespace: 'reader' })\n  catalogListScale!: string;\n\n  onNavigate() {\n    this.$root.$emit('reader-link-selected', { link: this.link, name: this.text });\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemFolder.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemFolder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavItemFolder.vue?vue&type=template&id=46791ea8&scoped=true&\"\nimport script from \"./NavItemFolder.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavItemFolder.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavItemFolder.vue?vue&type=style&index=0&id=46791ea8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"46791ea8\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.book.visible)?_c('div',[_c('NavItemFolder',{attrs:{\"text\":_vm.bookName,\"highlight\":_vm.highlight,\"offset\":_vm.offset,\"expanded\":_vm.book.expanded,\"primary\":true,\"searchMatch\":_vm.book.searchMatch,\"bookIcon\":true,\"link\":_vm.url,\"showCheckbox\":_vm.showCheckboxes,\"checkboxChecked\":_vm.book.checked,\"checkboxPartiallyChecked\":_vm.book.partiallyChecked,\"showEntriesCount\":_vm.showEntriesCount,\"entriesCount\":_vm.book.doc_count,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.toggleExpand()},\"check\":function($event){return _vm.toggleCheck()}}}),(_vm.bookSections && _vm.bookSections.length > 0 && _vm.book.expanded)?_c('div',_vm._l((_vm.bookSections),function(bookSection){return _c('div',{key:bookSection.id},[(bookSection.depth === 0)?_c('NavBookSection',{attrs:{\"bookSection\":bookSection,\"bookSections\":_vm.bookSections,\"level\":_vm.level + 1,\"category\":_vm.category,\"author\":_vm.author,\"showCheckboxes\":_vm.showCheckboxes,\"showEntriesCount\":_vm.showEntriesCount}}):_vm._e()],1)}),0):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.bookSection.visible)?_c('div',{staticClass:\"nav-section\",class:{\n    'current-section': _vm.isCurrentSection,\n    'current-section-path': _vm.isInCurrentPath && !_vm.isCurrentSection\n  },attrs:{\"data-section-slug\":_vm.bookSection.slug}},[(_vm.bookSection.is_parent || _vm.hasChildren)?_c('NavItemFolder',{attrs:{\"text\":_vm.bookSection.name,\"highlight\":_vm.highlight,\"offset\":_vm.offset,\"expanded\":_vm.displayExpanded,\"showCheckbox\":_vm.showCheckboxes,\"checkboxChecked\":_vm.bookSection.checked,\"checkboxPartiallyChecked\":_vm.bookSection.partiallyChecked,\"primary\":false,\"searchMatch\":_vm.bookSection.searchMatch,\"showEntriesCount\":_vm.showEntriesCount,\"entriesCount\":_vm.entriesCount},on:{\"click\":function($event){return _vm.toggleExpand()},\"check\":function($event){return _vm.toggleCheck()}}}):_c('NavItemLink',{attrs:{\"highlight\":_vm.highlight,\"to\":_vm.url,\"text\":_vm.bookSection.name,\"checked\":_vm.bookSection.checked,\"offset\":_vm.offset,\"primary\":false,\"searchMatch\":_vm.bookSection.searchMatch,\"showEntriesCount\":_vm.showEntriesCount,\"entriesCount\":_vm.entriesCount}}),(_vm.hasChildren && _vm.displayExpanded)?_c('div',_vm._l((_vm.children),function(child){return _c('NavBookSection',{key:child.id,attrs:{\"bookSection\":child,\"bookSections\":_vm.bookSections,\"level\":_vm.level + 1,\"category\":_vm.category,\"author\":_vm.author,\"showCheckboxes\":_vm.showCheckboxes,\"showEntriesCount\":_vm.showEntriesCount,\"catalogTree\":_vm.catalogTree,\"activeSectionSlug\":_vm.activeSectionSlug}})}),1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const LEVEL_OFFSET_PX = 28; // px\nexport const LABEL_OFFSET_PX = 16; // px\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport NavItemLink from '@/components/nav/NavItemLink.vue';\nimport NavItemFolder from '@/components/nav/NavItemFolder.vue';\nimport { Author, BookSection, Category, NavigationData } from '@/services/Navigation/types';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport { LABEL_OFFSET_PX, LEVEL_OFFSET_PX } from '@/services/Navigation/constants';\n\n@Component({\n  name: 'NavBookSection',\n  components: { NavBookSection, NavItemLink, NavItemFolder }\n})\nexport default class NavBookSection extends Vue {\n  @Prop({ required: true })\n  bookSections!: Array<BookSection>;\n\n  @Prop({ required: true })\n  bookSection!: BookSection;\n\n  @Prop({ required: false, default: 0 })\n  level!: number;\n\n  @Prop({ required: true })\n  showCheckboxes!: boolean;\n\n  @Prop({ required: false })\n  category!: Category;\n\n  @Prop({ required: false })\n  author!: Author;\n\n  @Prop({ required: false })\n  showEntriesCount?: boolean;\n\n  @Prop({ required: false, default: false })\n  catalogTree!: boolean;\n\n  @Prop({ required: false, default: '' })\n  activeSectionSlug!: string;\n\n  @Getter('dataFromStateLanguage', { namespace: 'navigation' })\n  navData!: NavigationData;\n\n  @Mutation('toggleBookSectionExpand', { namespace: 'navigation' })\n  toggleBookSectionExpand!: Function;\n\n  @Mutation('toggleBookSectionCheck', { namespace: 'navigation' })\n  toggleBookSectionCheck!: Function;\n\n  @Mutation('toggleFoundBookSectionCheck', { namespace: 'navigation' })\n  toggleFoundBookSectionCheck!: Function;\n\n  @State('language', { namespace: 'navigation' })\n  navLanguage!: string;\n\n  @State('showSearchResultsFlag', { namespace: 'navigation' })\n  showSearchResultsFlag?: boolean;\n\n  get offset() {\n    if (!this.level) {\n      return LABEL_OFFSET_PX;\n    }\n    return this.level * LEVEL_OFFSET_PX + LABEL_OFFSET_PX;\n  }\n\n  get children() {\n    return this.bookSections.filter(section => section.parentId && section.parentId === this.bookSection.id);\n  }\n\n  get url() {\n    const url = UrlBuilderService.getBookSectionUrl({\n      language: this.bookSection.book.language,\n      categorySlug: this.category ? this.category.slug : '',\n      authorSlug: this.author ? this.author.slug : '',\n      bookSlug: this.bookSection.book.slug,\n      bookSectionSlug: this.bookSection.slug\n    });\n    return this.catalogTree ? `${url}?reading=1&toc=1` : url;\n  }\n\n  get highlight() {\n    if (this.catalogTree && this.activeSectionSlug) {\n      return this.isInCurrentPath;\n    }\n    const { category } = this.$route.params;\n    if (this.category && category && this.category.slug !== category) {\n      return false;\n    }\n    return this.bookSection.highlight;\n  }\n\n  get isCurrentSection() {\n    return !!(this.catalogTree && this.activeSectionSlug && this.bookSection.slug === this.activeSectionSlug);\n  }\n\n  get isInCurrentPath() {\n    if (!(this.catalogTree && this.activeSectionSlug)) {\n      return false;\n    }\n    let section = this.bookSections.find(item => item.slug === this.activeSectionSlug);\n    while (section) {\n      if (section.id === this.bookSection.id) {\n        return true;\n      }\n      section = section.parentId ? this.bookSections.find(item => item.id === section!.parentId) : undefined;\n    }\n    return false;\n  }\n\n  get displayExpanded() {\n    return this.bookSection.expanded || this.isInCurrentPath;\n  }\n\n  get hasChildren() {\n    return this.children && this.children.length;\n  }\n\n  get entriesCount() {\n    if (!this.hasChildren) {\n      return this.bookSection.doc_count;\n    }\n\n    return this.children.reduce((docCount, bookSection) => docCount + (bookSection.doc_count || 0), 0);\n  }\n\n  toggleExpand() {\n    this.toggleBookSectionExpand({\n      bookSectionId: this.bookSection.id,\n      bookSlug: this.bookSection.book.slug,\n      catalogTree: this.catalogTree\n    });\n  }\n\n  toggleCheck() {\n    if (this.showSearchResultsFlag) {\n      this.toggleFoundBookSectionCheck({\n        bookSectionId: this.bookSection.id,\n        bookSlug: this.bookSection.book.slug\n      });\n    } else {\n      this.toggleBookSectionCheck({\n        bookSectionId: this.bookSection.id,\n        bookSlug: this.bookSection.book.slug\n      });\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBookSection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBookSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavBookSection.vue?vue&type=template&id=7753980c&\"\nimport script from \"./NavBookSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavBookSection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport NavItemLink from '@/components/nav/NavItemLink.vue';\nimport NavItemFolder from '@/components/nav/NavItemFolder.vue';\nimport { Author, Book, Category, NavigationData } from '@/services/Navigation/types';\nimport NavBookSection from '@/components/nav/NavBookSection.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport { LABEL_OFFSET_PX, LEVEL_OFFSET_PX } from '@/services/Navigation/constants';\nimport { SearchBaseOptions } from '@/services/Api/SearchService';\n\n@Component({\n  components: { NavBookSection, NavItemLink, NavItemFolder }\n})\nexport default class NavBook extends Vue {\n  @Prop({ required: true })\n  book!: Book;\n\n  @Prop({ required: false })\n  category!: Category;\n\n  @Prop({ required: false })\n  author!: Author;\n\n  @Prop({ required: false, default: 0 })\n  level!: number;\n\n  @Prop({ required: false })\n  showCheckboxes!: boolean;\n\n  @Prop({ required: false })\n  showEntriesCount?: boolean;\n\n  @Getter('dataFromStateLanguage', { namespace: 'navigation' })\n  navData!: NavigationData;\n\n  @Getter('searchOptions', { namespace: 'search' })\n  searchOptions!: SearchBaseOptions;\n\n  @Getter('showSearchResults', { namespace: 'navigation' })\n  showSearchResults?: boolean;\n\n  @State('language', { namespace: 'navigation' })\n  navLanguage!: string;\n\n  @Action('fetchBookSections', { namespace: 'navigation' })\n  fetchBookSections!: Function;\n\n  @Action('searchBookSections', { namespace: 'navigation' })\n  searchBookSections!: Function;\n\n  @Mutation('toggleBookExpand', { namespace: 'navigation' })\n  toggleBookExpand!: Function;\n\n  @Mutation('toggleFoundBookExpand', { namespace: 'navigation' })\n  toggleFoundBookExpand!: Function;\n\n  @Mutation('toggleBookCheck', { namespace: 'navigation' })\n  toggleBookCheck!: Function;\n\n  @Mutation('toggleFoundBookCheck', { namespace: 'navigation' })\n  toggleFoundBookCheck!: Function;\n\n  loading: boolean = false;\n\n  async mounted() {\n    if (this.needBookSectionsLoad) {\n      await this.loadBookSections();\n    }\n  }\n\n  @Watch('book.expanded')\n  async onBookExpand(to: boolean, from: boolean) {\n    if (to !== from && this.needBookSectionsLoad) {\n      // if category is expanded and has books and there is no loaded books yet\n      await this.loadBookSections();\n    }\n  }\n\n  get offset() {\n    if (!this.level) {\n      return LABEL_OFFSET_PX;\n    }\n    return this.level * LEVEL_OFFSET_PX + LABEL_OFFSET_PX;\n  }\n\n  get url() {\n    return UrlBuilderService.getBookUrl({\n      language: this.book.language,\n      categorySlug: this.category ? this.category.slug : '',\n      authorSlug: this.author ? this.author.slug : '',\n      bookSlug: this.book.slug\n    });\n  }\n\n  get highlight() {\n    const { category, author } = this.$route.params;\n    if (this.category && category && this.category.slug !== category) {\n      // in case one book linked to several categories\n      return false;\n    }\n    if (this.author && author && this.author.slug !== author) {\n      // in case one book has several authors\n      return false;\n    }\n    return this.book.highlight;\n  }\n\n  get bookSections() {\n    return this.book.children;\n  }\n\n  get needBookSectionsLoad() {\n    return this.book.expanded && !this.bookSections.length;\n  }\n\n  get bookName() {\n    return (this.book.status ? `[${this.book.status}] ` : '') + this.book.name;\n  }\n\n  toggleExpand() {\n    if (this.showSearchResults) {\n      this.toggleFoundBookExpand(this.book.slug);\n    } else {\n      this.toggleBookExpand(this.book.slug);\n    }\n  }\n\n  toggleCheck() {\n    if (this.showSearchResults) {\n      this.toggleFoundBookCheck(this.book.slug);\n    } else {\n      this.toggleBookCheck(this.book.slug);\n    }\n  }\n\n  async loadBookSections() {\n    this.loading = true;\n    try {\n      if (this.showSearchResults) {\n        // if it's a search query\n        await this.searchBookSections({\n          language: this.$store.state.navigation.language,\n          query: this.$route.query.query,\n          bookSlug: this.book.slug,\n          ...this.searchOptions\n        });\n      } else {\n        // if we expand a book in the catalog (without search)\n        await this.fetchBookSections({\n          language: this.$store.state.navigation.language,\n          bookSlug: this.book.slug\n        });\n      }\n    } finally {\n      this.loading = false;\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBook.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBook.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavBook.vue?vue&type=template&id=6789f072&\"\nimport script from \"./NavBook.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavBook.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport NavItemLink from '@/components/nav/NavItemLink.vue';\nimport NavItemFolder from '@/components/nav/NavItemFolder.vue';\nimport { Book, Category, NavigationData } from '@/services/Navigation/types';\nimport NavBook from '@/components/nav/NavBook.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { LABEL_OFFSET_PX, LEVEL_OFFSET_PX } from '@/services/Navigation/constants';\n\n@Component({\n  name: 'NavCategory',\n  components: { NavBook, NavCategory, NavItemLink, NavItemFolder }\n})\nexport default class NavCategory extends Vue {\n  @Prop({ required: true })\n  category!: Category;\n\n  @Prop({ required: false, default: 0 })\n  level!: number;\n\n  @Prop({ required: true })\n  showCheckboxes!: boolean;\n\n  @Getter('dataFromStateLanguage', { namespace: 'navigation' })\n  navData!: NavigationData;\n\n  @Action('fetchCategoryBooks', { namespace: 'navigation' })\n  fetchCategoryBooks!: Function;\n\n  @Mutation('toggleCategoryExpand', { namespace: 'navigation' })\n  toggleCategoryExpand!: Function;\n\n  @Action('toggleCategorySelection', { namespace: 'navigation' })\n  toggleCategorySelection!: Function;\n\n  loading: boolean = false;\n\n  async mounted() {\n    if (this.needBooksLoad) {\n      await this.loadBooks();\n    }\n  }\n\n  @Watch('category.expanded')\n  async onCategoryExpand(to: boolean, from: boolean) {\n    if (to !== from && this.needBooksLoad) {\n      // if category is expanded and has books and there is no loaded books yet\n      await this.loadBooks();\n    }\n  }\n\n  get offset() {\n    if (!this.level) {\n      return LABEL_OFFSET_PX;\n    }\n    return this.level * LEVEL_OFFSET_PX + LABEL_OFFSET_PX;\n  }\n\n  get children() {\n    const { categories } = this.navData;\n    if (this.category.is_parent) {\n      return categories.filter(category => category.parent_id === this.category.id);\n    }\n    return [];\n  }\n\n  get books() {\n    const { books } = this.navData;\n    return Object.values(books).filter((book: Book) => this.category.bookIds.includes(book.id));\n  }\n\n  get needBooksLoad() {\n    return this.category.expanded && this.category.is_books_exist && !this.books.length;\n  }\n\n  toggleExpand() {\n    this.toggleCategoryExpand(this.category.id);\n  }\n\n  toggleCheck() {\n    this.toggleCategorySelection(this.category.id);\n  }\n\n  async loadBooks() {\n    this.loading = true;\n    await this.fetchCategoryBooks({\n      language: this.$store.state.navigation.language,\n      categoryId: this.category.id\n    });\n    this.loading = false;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavCategory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavCategory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavCategory.vue?vue&type=template&id=3f733ada&\"\nimport script from \"./NavCategory.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavCategory.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.letter.visible)?_c('div',[_c('NavItemFolder',{attrs:{\"highlight\":_vm.letter.highlight,\"text\":_vm.letter.name,\"offset\":\"16\",\"expanded\":_vm.letter.expanded,\"primary\":true,\"searchMatch\":_vm.letter.searchMatch,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.toggleExpand()}}}),(_vm.listType === 'books' && _vm.books.length > 0 && _vm.letter.expanded)?_c('div',_vm._l((_vm.books),function(book){return _c('NavBook',{key:book.id,attrs:{\"book\":book,\"level\":1,\"showCheckboxes\":_vm.showCheckboxes}})}),1):_vm._e(),(_vm.listType === 'authors' && _vm.authors && _vm.authors.length > 0 && _vm.letter.expanded)?_c('div',_vm._l((_vm.authors),function(author){return _c('NavAuthor',{key:author.id,attrs:{\"author\":author,\"level\":1,\"showCheckboxes\":_vm.showCheckboxes}})}),1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.author.visible)?_c('div',[_c('NavItemFolder',{attrs:{\"text\":_vm.author.name,\"highlight\":_vm.author.highlight,\"offset\":_vm.offset,\"expanded\":_vm.author.expanded,\"primary\":true,\"searchMatch\":_vm.author.searchMatch,\"link\":_vm.url,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.toggleExpand()}}}),(_vm.books.length > 0 && _vm.author.expanded)?_c('div',_vm._l((_vm.books),function(book){return _c('NavBook',{key:book.id,attrs:{\"book\":book,\"level\":_vm.level + 1,\"author\":_vm.author,\"showCheckboxes\":_vm.showCheckboxes}})}),1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport NavItemFolder from '@/components/nav/NavItemFolder.vue';\nimport { Author, Book, NavigationData } from '@/services/Navigation/types';\nimport NavBook from '@/components/nav/NavBook.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { NavigationState } from '@/store/modules/navigation';\nimport { LABEL_OFFSET_PX, LEVEL_OFFSET_PX } from '@/services/Navigation/constants';\nimport UrlBuilderService from '@/services/UrlBuilderService';\n\n@Component({\n  components: { NavBook, NavItemFolder }\n})\nexport default class NavAuthor extends Vue {\n  @Prop({ required: true })\n  author!: Author;\n\n  @Prop({ required: false, default: 0 })\n  level!: number;\n\n  @Prop({ required: true })\n  showCheckboxes!: boolean;\n\n  @Getter('dataFromStateLanguage', { namespace: 'navigation' })\n  navData!: NavigationData;\n\n  @Action('fetchAuthorBooks', { namespace: 'navigation' })\n  fetchAuthorBooks!: Function;\n\n  @Mutation('toggleAuthorExpand', { namespace: 'navigation' })\n  toggleAuthorExpand!: Function;\n\n  loading: boolean = false;\n\n  async mounted() {\n    if (this.needBooksLoad) {\n      await this.loadBooks();\n    }\n  }\n\n  @Watch('author.expanded')\n  async onAuthorExpand(to: boolean, from: boolean) {\n    if (to !== from && this.needBooksLoad) {\n      // if author is expanded and has books and there is no loaded books yet\n      await this.loadBooks();\n    }\n  }\n\n  get offset() {\n    if (!this.level) {\n      return LABEL_OFFSET_PX;\n    }\n    return this.level * LEVEL_OFFSET_PX + LABEL_OFFSET_PX;\n  }\n\n  get books() {\n    const { books } = this.navData;\n    return this.author.bookIds.map(bookId => Object.values(books).find(book => book.id === bookId));\n  }\n\n  get url() {\n    return UrlBuilderService.getAuthorUrl({\n      language: this.$store.state.navigation.language,\n      authorSlug: this.author.slug\n    });\n  }\n\n  get needBooksLoad() {\n    return this.author.expanded && !this.books.length;\n  }\n\n  toggleExpand() {\n    this.toggleAuthorExpand(this.author.id);\n  }\n\n  async loadBooks() {\n    this.loading = true;\n    await this.fetchAuthorBooks({\n      language: this.$store.state.navigation.language,\n      authorId: this.author.id\n    });\n    this.loading = false;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavAuthor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavAuthor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavAuthor.vue?vue&type=template&id=61f41ec5&\"\nimport script from \"./NavAuthor.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavAuthor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport NavItemLink from '@/components/nav/NavItemLink.vue';\nimport NavItemFolder from '@/components/nav/NavItemFolder.vue';\nimport { AuthorLetter, Book, BookLetter, NavigationData } from '@/services/Navigation/types';\nimport NavBook from '@/components/nav/NavBook.vue';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport NavAuthor from '@/components/nav/NavAuthor.vue';\n\n@Component({\n  components: { NavBook, NavAuthor, NavItemLink, NavItemFolder }\n})\nexport default class NavLetter extends Vue {\n  @Prop({ required: true })\n  letter!: BookLetter | AuthorLetter;\n\n  @Prop({ required: true })\n  listType!: 'books' | 'authors';\n\n  @Prop({ required: true })\n  showCheckboxes!: boolean;\n\n  @Getter('dataFromStateLanguage', { namespace: 'navigation' })\n  navData!: NavigationData;\n\n  @Action('fetchLetterBooks', { namespace: 'navigation' })\n  fetchLetterBooks!: Function;\n\n  @Mutation('actualizeHighlight', { namespace: 'navigation' })\n  actualizeHighlight!: Function;\n\n  @Mutation('toggleBookLetterExpand', { namespace: 'navigation' })\n  toggleBookLetterExpand!: Function;\n\n  @Mutation('toggleAuthorLetterExpand', { namespace: 'navigation' })\n  toggleAuthorLetterExpand!: Function;\n\n  loading: boolean = false;\n\n  async mounted() {\n    await this.loadBooksIfNeeded();\n  }\n\n  @Watch('letter.expanded')\n  async onLetterExpand(to: boolean, from: boolean) {\n    if (to !== from) {\n      await this.loadBooksIfNeeded();\n    }\n  }\n\n  async loadBooksIfNeeded() {\n    if (!this.needBooksLoad) {\n      return;\n    }\n    await this.loadBooks();\n    this.actualizeHighlight();\n  }\n\n  get books() {\n    const { books } = this.navData;\n    return Object.values(books).filter(book => (this.letter as BookLetter).bookIds.includes(book.id));\n  }\n\n  get authors() {\n    const { authors } = this.navData;\n    return authors.filter(author => (this.letter as AuthorLetter).authorIds.includes(author.id));\n  }\n\n  get needBooksLoad() {\n    return this.letter.expanded && this.listType === 'books' && !(this.letter as BookLetter).bookIds.length;\n  }\n\n  toggleExpand() {\n    if (this.listType === 'books') {\n      this.toggleBookLetterExpand(this.letter.id);\n    } else {\n      this.toggleAuthorLetterExpand(this.letter.id);\n    }\n  }\n\n  async loadBooks() {\n    this.loading = true;\n    try {\n      await this.fetchLetterBooks({\n        language: this.$store.state.navigation.language,\n        letterName: this.letter.name\n      });\n    } finally {\n      this.loading = false;\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavLetter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavLetter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavLetter.vue?vue&type=template&id=9a84186e&\"\nimport script from \"./NavLetter.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavLetter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import { AnyNavEntity, Books, ListType } from '@/services/Navigation/types';\nimport { LIST_TYPE_DEFAULT } from '@/constants';\n\nexport default class Helpers {\n  public static collapseAll<T extends AnyNavEntity>(array: Array<T>): Array<T> {\n    return array.map(item => ({ ...item, expanded: false }));\n  }\n\n  public static collapseBooks(origin: Books) {\n    const books = { ...origin };\n    for (let slug in books) {\n      books[slug].expanded = false;\n    }\n    return books;\n  }\n\n  public static checkAll<T extends AnyNavEntity>(array: Array<T>): Array<T> {\n    return array.map(item => ({ ...item, checked: true, partiallyChecked: false }));\n  }\n\n  public static checkBooks(origin: Books) {\n    const books = { ...origin };\n    for (let slug in books) {\n      books[slug].checked = true;\n      books[slug].partiallyChecked = false;\n    }\n    return books;\n  }\n\n  public static checkBookSections(origin: Books) {\n    const books = { ...origin };\n    for (let slug in books) {\n      books[slug].children = books[slug].children.map(one => ({\n        ...one,\n        checked: true,\n        partiallyChecked: false\n      }));\n    }\n    return books;\n  }\n\n  public static uncheckAll<T extends AnyNavEntity>(array: Array<T>): Array<T> {\n    return array.map(item => ({ ...item, checked: false, partiallyChecked: false }));\n  }\n\n  public static uncheckBooks(origin: Books) {\n    const books = { ...origin };\n    for (let slug in books) {\n      books[slug].checked = false;\n      books[slug].partiallyChecked = false;\n    }\n    return books;\n  }\n\n  public static uncheckBookSections(origin: Books) {\n    const books = { ...origin };\n    for (let slug in books) {\n      for (let j in books[slug].children) {\n        books[slug].children = books[slug].children.map(one => ({\n          ...one,\n          checked: false,\n          partiallyChecked: false\n        }));\n      }\n    }\n    return books;\n  }\n\n  public static getParents(array: Array<{ [key: string]: any }>, startIndex: number) {\n    const parents: Array<{ [key: string]: any }> = [];\n    const initialDepth = array[startIndex].depth;\n    let previousDepth = initialDepth;\n    if (previousDepth === 0) {\n      return parents;\n    }\n    for (let i = startIndex; i >= 0; i--) {\n      const item = array[i];\n      // we need to update each item with less depth on each level of depth\n      if (item.depth < initialDepth && item.depth < previousDepth) {\n        parents.push(item);\n        previousDepth = item.depth;\n      }\n      // if current item depth is zero - this is a root item, no parents left\n      if (item.depth === 0) {\n        return parents;\n      }\n    }\n    return parents;\n  }\n\n  public static updateParents(\n    array: Array<{ [key: string]: any }>,\n    startIndex: number,\n    callback: (item: { [key: string]: any }) => { [key: string]: any }\n  ) {\n    const initialDepth = array[startIndex].depth;\n    let previousDepth = initialDepth;\n    if (previousDepth === 0) {\n      return array;\n    }\n    for (let i = startIndex; i >= 0; i--) {\n      const item = array[i];\n      // we need to update each item with less depth on each level of depth\n      if (item.depth < initialDepth && item.depth < previousDepth) {\n        array[i] = Object.assign(array[i], callback(item));\n        previousDepth = item.depth;\n      }\n      // if current item depth is zero - this is a root item, no parents left\n      if (item.depth === 0) {\n        return array;\n      }\n    }\n    return array;\n  }\n\n  public static updateChildren(\n    array: Array<{ [key: string]: any }>,\n    startIndex: number,\n    callback: (item: { [key: string]: any }) => { [key: string]: any }\n  ) {\n    const initialDepth = array[startIndex].depth;\n    for (let i = startIndex; i < array.length; i++) {\n      const item = array[i];\n      // if current item has equal or greater depth then the initial one - then there is no children left\n      if (item.depth <= initialDepth && i !== startIndex) {\n        return array;\n      }\n      // we need to update all items with greater depth\n      if (item.depth > initialDepth) {\n        array[i] = Object.assign(array[i], callback(item));\n      }\n    }\n    return array;\n  }\n\n  public static *flatten(\n    array: Array<{ [key: string]: any }>,\n    childrenPropName: string,\n    depth: number = 0,\n    parentId: number | null = null\n  ): Generator<{ [key: string]: any }> {\n    for (const item of array) {\n      const isParent = !!item[childrenPropName] && item[childrenPropName].length > 0;\n      const id = item.id || item.code; // todo: this workaround for book sections without ID\n      yield {\n        ...item,\n        id,\n        depth,\n        isParent,\n        parentId\n      };\n      if (isParent) {\n        yield* Helpers.flatten(item[childrenPropName], childrenPropName, depth + 1, item.id || item.code);\n      }\n    }\n  }\n\n  public static parseListTypeFromUrl(url: string): ListType {\n    const slug = url.split('/')[2];\n    return slug && ['categories', 'authors', 'books'].includes(slug) ? (slug as ListType) : LIST_TYPE_DEFAULT;\n  }\n}\n","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M3 7.5L5.5 10 8 7.5m-5 9L5.5 14 8 16.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}}),_c('path',{attrs:{\"d\":\"M12 6h9m-9 6h9m-9 6h9\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport NavRubrics from '@/components/nav/NavRubrics.vue';\nimport { Book, BookSection, ListType, NavigationData } from '@/services/Navigation/types';\nimport SearchInput from '@/components/ui/SearchInput.vue';\nimport { Prop, Ref, Watch } from 'vue-property-decorator';\nimport { Route } from 'vue-router';\nimport NavCategory from '@/components/nav/NavCategory.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport NavLetter from '@/components/nav/NavLetter.vue';\nimport Loader from '@/components/ui/Loader.vue';\nimport ReturnIcon from '@/assets/icons/return.svg';\nimport { SearchBaseOptions } from '@/services/Api/SearchService';\nimport NavBook from '@/components/nav/NavBook.vue';\nimport Helpers from '@/services/Navigation/Helpers';\nimport NavAuthor from '@/components/nav/NavAuthor.vue';\nimport { getTranslation } from '@/services/Translation';\nimport StringService from '@/services/StringService';\nimport { TranslationStrings } from '@/translations/types';\nimport { LANGUAGE_CODE_RUSSIAN } from '@/constants';\nimport CollapseListIcon from '@/assets/icons/collapse-list.svg';\n\n@Component({\n  components: {\n    NavAuthor,\n    NavBook,\n    Loader,\n    NavLetter,\n    NavCategory,\n    NavRubrics,\n    SearchInput,\n    CollapseListIcon,\n    ReturnIcon\n  }\n})\nexport default class Catalog extends Vue {\n  @Prop({ required: false, default: '' })\n  mobileMode!: '' | 'library' | 'search-area';\n\n  lists = {\n    categories: getTranslation('filterCategories'),\n    authors: getTranslation('filterAuthors'),\n    books: getTranslation('filterBooks')\n  };\n  getTranslation = getTranslation;\n\n  @Ref('tree')\n  refTree?: HTMLDivElement;\n\n  @Action('highlightLetterByBookSlug', { namespace: 'navigation' })\n  highlightLetterByBookSlug!: Function;\n\n  @Mutation('actualizeHighlight', { namespace: 'navigation' })\n  actualizeHighlight!: Function;\n\n  @Mutation('collapseAll', { namespace: 'navigation' })\n  collapseAll!: Function;\n\n  @Mutation('checkAll', { namespace: 'navigation' })\n  checkAll!: Function;\n\n  @Mutation('uncheckAll', { namespace: 'navigation' })\n  uncheckAll!: Function;\n\n  @Mutation('setListType', { namespace: 'navigation' })\n  setListType!: Function;\n\n  @Getter('dataFromStateLanguage', { namespace: 'navigation' })\n  data!: NavigationData;\n\n  @Getter('currentBook', { namespace: 'navigation' })\n  currentBook?: Book;\n\n  @Getter('currentBookSection', { namespace: 'navigation' })\n  currentBookSection?: BookSection;\n\n  @Getter('searchOptions', { namespace: 'search' })\n  searchOptions!: SearchBaseOptions;\n\n  @State('resultsCount', { namespace: 'search' })\n  searchResultsCount!: number;\n\n  @Getter('showSearchResults', { namespace: 'navigation' })\n  showSearchResults?: boolean;\n\n  @State('language', { namespace: 'navigation' })\n  navLanguage?: string;\n\n  @State('loading', { namespace: 'navigation' })\n  navLoading?: boolean;\n\n  @State('error', { namespace: 'navigation' })\n  navigationError!: boolean | Error;\n\n  @State('loading', { namespace: 'search' })\n  searchLoading?: boolean;\n\n  @State('advancedSearch', { namespace: 'search' })\n  advancedSearch?: boolean;\n\n  @State('listType', { namespace: 'navigation' })\n  listType!: ListType;\n\n  @State('filterQuery', { namespace: 'navigation' })\n  filterQuery!: string;\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  highlightScrollTimeout?: number;\n\n  async mounted() {\n    this.$el.addEventListener('wheel', this.cancelPendingHighlightScroll, { passive: true });\n    this.$el.addEventListener('touchstart', this.cancelPendingHighlightScroll, { passive: true });\n    this.$store.commit('navigation/setShowSearchResultsFlag', this.isSearchResultsPage);\n    if (!this.mobileMode) {\n      this.setListType(Helpers.parseListTypeFromUrl(this.$route.path));\n    }\n    await this.fetchData();\n  }\n\n  beforeDestroy() {\n    this.cancelPendingHighlightScroll();\n    this.$el.removeEventListener('wheel', this.cancelPendingHighlightScroll);\n    this.$el.removeEventListener('touchstart', this.cancelPendingHighlightScroll);\n  }\n\n  @Watch('currentBook.id')\n  @Watch('currentBookSection.id')\n  async onNavigationBookSection(to: number) {\n    if (to) {\n      this.cancelPendingHighlightScroll();\n      this.highlightScrollTimeout = window.setTimeout(this.scrollToHighlighted, 50);\n    }\n  }\n\n  cancelPendingHighlightScroll() {\n    if (this.highlightScrollTimeout !== undefined) {\n      window.clearTimeout(this.highlightScrollTimeout);\n      this.highlightScrollTimeout = undefined;\n    }\n  }\n\n  @Watch('navLanguage') // if user switch language in the left sidebar\n  async onNavLanguageChange(to: string, from: string) {\n    if (to !== from) {\n      await this.fetchData();\n      if (!this.mobileMode) {\n        this.$store.commit('navigation/updateFilterQuery', '');\n      }\n    }\n  }\n\n  @Watch('showSearchResults') // if user sent search request or switched back to catalog\n  async onShowSearchResultsChange(to: boolean, from: boolean) {\n    if (to !== from) {\n      await this.fetchData();\n    }\n  }\n\n  @Watch('$route')\n  async onRouteChange(to: Route, from: Route) {\n    if (this.isSearchResultsPage && this.getSearchParamsHash(from) !== this.getSearchParamsHash(to)) {\n      // if search params changed and we need to refresh left column search results\n      await this.fetchData();\n      this.$store.commit('navigation/setShowSearchResultsFlag', true);\n    }\n    if (!this.mobileMode) {\n      this.setListType(Helpers.parseListTypeFromUrl(to.path));\n    }\n    if (\n      this.listType === 'books' &&\n      to.params.book &&\n      from.params.book !== to.params.book &&\n      !this.currentBook\n    ) {\n      // if list type is books and book was changed and there is no book's data in the store - we assume that this book was not loaded due to book's letter was not expanded yet\n      await this.highlightLetter();\n    }\n    this.actualizeHighlight();\n  }\n\n  @Watch('listType')\n  onListTypeChange() {\n    this.actualizeHighlight();\n  }\n\n  @Watch('interfaceLanguage')\n  async onChangeInterfaceLang() {\n    this.lists = {\n      categories: getTranslation('filterCategories'),\n      authors: getTranslation('filterAuthors'),\n      books: getTranslation('filterBooks')\n    };\n  }\n\n  get onLanguage() {\n    let beforeText = '';\n    let afterText = '';\n    if (this.interfaceLanguage == LANGUAGE_CODE_RUSSIAN) {\n      beforeText = getTranslation('books') + ' ';\n    } else {\n      afterText = ' ' + getTranslation('books').toLocaleLowerCase();\n    }\n\n    if (!this.navLanguage) {\n      return beforeText + '' + afterText;\n    }\n\n    return (\n      beforeText +\n      getTranslation(`onLanguageCatalog${StringService.capitalize(\n        this.navLanguage\n      )}` as keyof TranslationStrings) +\n      afterText\n    );\n  }\n\n  get showCheckboxes() {\n    if (this.mobileMode === 'library') {\n      return false;\n    }\n    if (this.mobileMode === 'search-area') {\n      return true;\n    }\n    return this.advancedSearch;\n  }\n\n  get isSearchResultsPage() {\n    return this.$route.name === 'search-results';\n  }\n\n  get showEntriesCount() {\n    return this.isSearchResultsPage && this.showSearchResults;\n  }\n\n  get filteredCategories() {\n    if (this.filterQuery && this.data.filter.categoryIds) {\n      return this.data.categories.filter(category => this.data.filter.categoryIds.includes(category.id));\n    }\n    return [];\n  }\n\n  get filteredAuthors() {\n    if (this.filterQuery && this.data.filter.authorIds) {\n      return this.data.authors.filter(author => this.data.filter.authorIds.includes(author.id));\n    }\n    return [];\n  }\n\n  get filteredBooks() {\n    return this.data.filter.bookSlugs.map(slug => this.data.books[slug]).filter(book => book);\n  }\n\n  get hasCatalogData() {\n    return !!(\n      this.data &&\n      (this.data.categories.length ||\n        this.data.authors.length ||\n        this.data.booksAlphabet.length ||\n        this.data.authorsAlphabet.length ||\n        Object.keys(this.data.books || {}).length)\n    );\n  }\n\n  get showBlockingCatalogError() {\n    return !!this.navigationError && !this.hasCatalogData;\n  }\n\n  async fetchData() {\n    if (!this.$store.state.navigation.language) {\n      return;\n    }\n\n    const routeQuery = typeof this.$route.query.query === 'string' ? this.$route.query.query.trim() : '';\n    if (this.isSearchResultsPage && this.showSearchResults && routeQuery) {\n      await this.$store.dispatch('navigation/searchBooks', {\n        language: this.$store.state.navigation.language,\n        query: routeQuery,\n        ...this.searchOptions\n      });\n    } else {\n      if (this.isSearchResultsPage && this.showSearchResults && !routeQuery) {\n        this.$store.commit('navigation/setShowSearchResultsFlag', false);\n      }\n      const language = this.$store.state.navigation.language;\n      const cachedData = this.$store.state.navigation.data[language];\n      const hasCachedCatalog =\n        this.mobileMode &&\n        cachedData &&\n        (cachedData.categories.length ||\n          cachedData.authors.length ||\n          cachedData.booksAlphabet.length ||\n          cachedData.authorsAlphabet.length);\n      if (hasCachedCatalog) {\n        this.actualizeHighlight();\n        return;\n      }\n      await this.$store.dispatch('navigation/fetch', this.$store.state.navigation.language);\n      if (this.listType === 'books' && this.$route.params.book) {\n        // since initially we don't know which letter should be highlighted in the book catalog, we have to send additional request to the backend\n        await this.highlightLetter();\n      }\n    }\n  }\n\n  async highlightLetter() {\n    await this.highlightLetterByBookSlug({\n      language: this.$route.params.language,\n      bookSlug: this.$route.params.book\n    });\n  }\n\n  getSearchParamsHash(route: Route) {\n    const searchParamNames = ['query', 'searchInPoem', 'exact', 'considerDiacritics', 'equalizeWriting'];\n    const result: { [key: string]: string } = {};\n    Object.entries(route.query)\n      .filter(([name]) => searchParamNames.includes(name))\n      .forEach(([name, value]) => {\n        result[name.toString()] = value.toString();\n      });\n    return JSON.stringify(result);\n  }\n\n  async changeListType(listType: ListType) {\n    this.setListType(listType);\n    await this.filter(this.filterQuery);\n    this.actualizeHighlight();\n  }\n\n  async onSearch(filterQuery: string) {\n    if (filterQuery.length) {\n      await this.filter(filterQuery);\n    } else {\n      this.$store.commit('navigation/resetFilter');\n    }\n    this.$store.commit('navigation/updateFilterQuery', filterQuery);\n    this.$forceUpdate();\n  }\n\n  async filter(filterQuery: string) {\n    if (!filterQuery) {\n      return;\n    }\n    await this.$store.dispatch('navigation/filter', {\n      language: this.$store.state.navigation.language,\n      query: filterQuery\n    });\n  }\n\n  scrollToHighlighted() {\n    this.highlightScrollTimeout = undefined;\n    if (!this.refTree) {\n      return;\n    }\n    const activeLinks = this.refTree.querySelectorAll('.router-link-active') as NodeListOf<HTMLElement>;\n    const highlight = activeLinks[activeLinks.length - 1];\n    const scroll = this.refTree.querySelector('.nav-catalog-tree-inner');\n    if (highlight && highlight.parentElement && scroll) {\n      scroll.scrollTo({\n        top: highlight.parentElement.offsetTop - this.refTree.offsetHeight * 0.5,\n        behavior: 'auto'\n      });\n    }\n  }\n\n  returnToCatalog() {\n    this.$store.commit('navigation/setShowSearchResultsFlag', false);\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=6d8cedde&scoped=true&\"\nimport script from \"./Catalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Catalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=6d8cedde&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6d8cedde\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"books\"},[_c('h2',[_vm._v(_vm._s(_vm.getTranslation('catalogsUpdate')))]),_c('div',{staticClass:\"languages\"},[_c('NavRubrics',{attrs:{\"categories\":_vm.languages,\"current\":_vm.currentLanguage},on:{\"change\":_vm.changeLanguage}})],1),_c('div',{staticClass:\"list\"},_vm._l((_vm.newBooks),function(book,index){return _c('div',{key:(\"book-\" + index)},[(book.month)?_c('div',{staticClass:\"book-month\"},[_vm._v(\"\\n        \"+_vm._s(book.month)+\"\\n      \")]):_vm._e(),_c('router-link',{staticClass:\"book\",attrs:{\"to\":book.url}},[_c('div',{staticClass:\"book-title\"},[_vm._v(\"\\n          \"+_vm._s(book.name)+\"\\n        \")]),_c('div',{staticClass:\"book-author\"},[_vm._v(\"\\n          \"+_vm._s(book.authors.join(', '))+\"\\n        \")])])],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { store } from '@/store';\nimport { ApiService } from '@/services/Api/ApiService';\nimport { endpoints } from '@/api-endpoints.json';\nimport { LANGUAGE_CODE_DEFAULT } from '@/constants';\n\nexport default class BooksService {\n  private static instance: BooksService;\n\n  private apiService: ApiService = new ApiService();\n\n  private static getInstance() {\n    if (!BooksService.instance) {\n      BooksService.instance = new BooksService();\n    }\n    return BooksService.instance;\n  }\n\n  static async getNewBooks() {\n    const endpoint = endpoints.books.newBooks;\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoint)\n      .setParams({\n        language: store.state.reader.interfaceLanguage || LANGUAGE_CODE_DEFAULT\n      })\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getBookCover(lang: string, book: string) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.books.cover.replace(':lang', lang).replace(':book', book))\n      .setToken(store.state.auth.token)\n      .cache()\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getBookSectionContent(lang: string, book: string, section: string) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(\n        endpoints.books.content\n          .replace(':lang', lang)\n          .replace(':book', book)\n          .replace(':section', section)\n      )\n      .setToken(store.state.auth.token)\n      .cache()\n      .get()\n      .then(response => response.data.data);\n  }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport NavRubrics from '@/components/nav/NavRubrics.vue';\nimport BooksService from '@/services/Api/BooksService';\nimport Component from 'vue-class-component';\nimport { getTranslation } from '@/services/Translation';\nimport { Watch } from 'vue-property-decorator';\nimport { State } from 'vuex-class';\n\ninterface Book {\n  language: string;\n  slug: string;\n  created_at: string;\n}\n\n@Component({\n  components: { NavRubrics }\n})\nexport default class NewBooks extends Vue {\n  newBooksAll: Array<Book> = [];\n  newBooks: Array<Book> = [];\n  currentLanguage: string = 'all';\n  languages: { [key: string]: string } | null = null;\n  getTranslation = getTranslation;\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  created() {\n    this.languages = {\n      all: getTranslation('all'),\n      ru: getTranslation('onLanguageRu'),\n      en: getTranslation('onLanguageEn')\n    };\n  }\n\n  async mounted() {\n    await this.getNewBooks();\n  }\n\n  @Watch('interfaceLanguage')\n  async onChangeInterfaceLang() {\n    this.languages = {\n      all: getTranslation('all'),\n      ru: getTranslation('onLanguageRu'),\n      en: getTranslation('onLanguageEn')\n    };\n    await this.getNewBooks();\n  }\n\n  async getNewBooks() {\n    try {\n      this.newBooksAll = await BooksService.getNewBooks();\n      this.newBooksAll = this.newBooksAll.map(book => ({\n        ...book,\n        url: UrlBuilderService.getBookUrl({ language: book.language, bookSlug: book.slug })\n      }));\n      this.changeLanguage('all');\n    } catch (e) {\n      // do nothing\n    }\n  }\n\n  prepareMonths() {\n    let previousMonth = '';\n    this.newBooks = this.newBooks.map(newBook => {\n      if (newBook.created_at === previousMonth) {\n        return newBook;\n      }\n      previousMonth = newBook.created_at;\n      return {\n        ...newBook,\n        month: newBook.created_at\n      };\n    });\n  }\n\n  changeLanguage(language: 'all' | 'ru' | 'en') {\n    if (language === 'all') {\n      this.newBooks = this.newBooksAll.slice(0);\n    } else {\n      this.newBooks = this.newBooksAll.filter(book => book.language === language);\n    }\n    this.prepareMonths();\n    this.currentLanguage = language;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewBooks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewBooks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewBooks.vue?vue&type=template&id=2b61ab7c&scoped=true&\"\nimport script from \"./NewBooks.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewBooks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewBooks.vue?vue&type=style&index=0&id=2b61ab7c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2b61ab7c\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings\"},[_c('div',{staticClass:\"item\"},[_c('span',{staticClass:\"item-title\"},[_vm._v(_vm._s(_vm.getTranslation('interfaceLanguage')))]),_c('div',{staticClass:\"item-options\"},[_c('button',{staticClass:\"item-option\",class:{ active: _vm.interfaceLanguage === _vm.LANGUAGE_CODE_RUSSIAN },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setInterfaceLanguage(_vm.LANGUAGE_CODE_RUSSIAN)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('russian'))+\"\\n      \")]),_c('button',{staticClass:\"item-option\",class:{ active: _vm.interfaceLanguage === _vm.LANGUAGE_CODE_ENGLISH },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setInterfaceLanguage(_vm.LANGUAGE_CODE_ENGLISH)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('english'))+\"\\n      \")])])]),_c('div',{staticClass:\"item item-catalog-density\"},[_c('span',{staticClass:\"item-title\"},[_vm._v(_vm._s(_vm.getTranslation('structureScale')))]),_c('div',{staticClass:\"item-options\"},[_c('button',{staticClass:\"item-option\",class:{ active: _vm.catalogListScale === _vm.LIST_SCALE_TABLET },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setCatalogListScale(_vm.LIST_SCALE_TABLET)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('tablet'))+\"\\n      \")]),_c('button',{staticClass:\"item-option\",class:{ active: _vm.catalogListScale === _vm.LIST_SCALE_DESKTOP },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setCatalogListScale(_vm.LIST_SCALE_DESKTOP)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('pc'))+\"\\n      \")]),_c('button',{staticClass:\"item-option\",class:{ active: _vm.catalogListScale === _vm.LIST_SCALE_AUTO },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setCatalogListScale(_vm.LIST_SCALE_AUTO)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('auto'))+\"\\n      \")])])]),(_vm.showTextVisibility)?_c('div',{staticClass:\"item item-text-visibility\"},[_c('span',{staticClass:\"item-title\"},[_vm._v(_vm._s(_vm.getTranslation('show')))]),_c('div',{staticClass:\"settings-text-types\",attrs:{\"role\":\"group\",\"aria-label\":_vm.getTranslation('show')}},_vm._l((_vm.textTypes),function(textType){return _c('Checkbox',{key:textType.code,staticClass:\"settings-text-type\",attrs:{\"checked\":_vm.isTextTypeVisible(textType.code)},on:{\"change\":function($event){return _vm.switchTextTypeFilter(textType.code)}}},[_vm._v(\"\\n        \"+_vm._s(textType.name)+\"\\n      \")])}),1)]):_vm._e(),_c('div',{staticClass:\"item item-text-scale\"},[_c('span',{staticClass:\"item-title\"},[_vm._v(_vm._s(_vm.getTranslation('textScale')))]),_c('div',{staticClass:\"scale-control\"},[_c('button',{staticClass:\"item-scale\",attrs:{\"type\":\"button\",\"aria-label\":((_vm.getTranslation('textScale')) + \" -\"),\"disabled\":_vm.scale <= 0.6},on:{\"click\":function($event){return _vm.setScale(_vm.scale - 0.1)}}},[_c('MinusIcon')],1),_c('span',{staticClass:\"item-percents\"},[_vm._v(_vm._s(Math.round(_vm.scale * 100))+\"%\")]),_c('button',{staticClass:\"item-scale\",attrs:{\"type\":\"button\",\"aria-label\":((_vm.getTranslation('textScale')) + \" +\"),\"disabled\":_vm.scale >= 1.5},on:{\"click\":function($event){return _vm.setScale(_vm.scale + 0.1)}}},[_c('PlusIcon')],1)])]),_c('div',{staticClass:\"example\"},[_c('div',{staticClass:\"note\"},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('textExample'))+\"\\n    \")]),_c('SettingsExample')],1),_c('LegalLinks')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings-example\",class:_vm.$store.state.reader.colorMode || 'light',style:({ fontSize: ((10 * _vm.scale) + \"px\") })},[_c('h1',{staticClass:\"title\"},[_vm._v(\"БГ 3.4\")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isTextTypeVisible('sanskrit')),expression:\"isTextTypeVisible('sanskrit')\"}],staticClass:\"paragraph paragraph--type-sanskrit\"},[_vm._v(\"\\n    न कर्मणामनारम्भान्नैष्कर्म्यं पुरुषोऽश्नुते ।\\n  \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isTextTypeVisible('diacritic')),expression:\"isTextTypeVisible('diacritic')\"}],staticClass:\"paragraph paragraph--type-diacritic\"},[_c('p',[_vm._v(\"na karmaṇām anārambhān naiṣkarmyaṁ puruṣo 'śnute\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isTextTypeVisible('word-by-word')),expression:\"isTextTypeVisible('word-by-word')\"}],staticClass:\"paragraph paragraph--type-word-by-word\"},[_c('div',{staticClass:\"note\"},[_vm._v(\"\\n      Пословный перевод:\\n    \")]),_vm._m(0)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isTextTypeVisible('translate')),expression:\"isTextTypeVisible('translate')\"}],staticClass:\"paragraph paragraph--type-literary\"},[_c('div',{staticClass:\"note\"},[_vm._v(\"\\n      Перевод:\\n    \")]),_c('p',[_vm._v(\"\\n      Просто воздерживаясь от деятельности, человек не освободится от её последствий.\\n    \")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isTextTypeVisible('comment')),expression:\"isTextTypeVisible('comment')\"}],staticClass:\"paragraph paragraph--type-comment\"},[_c('div',{staticClass:\"note\"},[_vm._v(\"\\n      Комментарий:\\n    \")]),_c('p',[_vm._v(\"\\n      Отречься от мира может только тот, кто очистился от материальной скверны, выполняя предписанные ему\\n      обязанности. Различные виды деятельности рекомендованы в Ведах прежде всего для того, чтобы очистить\\n      сердце оскверненных материализмом людей.\\n    \")])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_c('em',[_vm._v(\"na\")]),_vm._v(\" — не; \"),_c('em',[_vm._v(\"karmaṇām\")]),_vm._v(\" — предписанных обязанностей; \"),_c('em',[_vm._v(\"anārambhāt\")]),_vm._v(\" — без исполнения;\\n      \"),_c('em',[_vm._v(\"naiṣkarmyam\")]),_vm._v(\" — свободы от последствий деятельности.\\n    \")])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport Overlay from '@/components/ui/Overlay.vue';\nimport { State } from 'vuex-class';\n\n@Component({\n  components: { Overlay }\n})\nexport default class SettingsExample extends Vue {\n  @State('scale', { namespace: 'reader' })\n  scale!: number;\n\n  @State('hideTextTypes', { namespace: 'reader' })\n  hideTextTypes!: Array<string>;\n\n  isTextTypeVisible(code: string) {\n    return !this.hideTextTypes || !this.hideTextTypes.includes(code);\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsExample.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsExample.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsExample.vue?vue&type=template&id=686383f6&scoped=true&\"\nimport script from \"./SettingsExample.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsExample.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SettingsExample.vue?vue&type=style&index=0&id=686383f6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"686383f6\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport Overlay from '@/components/ui/Overlay.vue';\nimport { Mutation, State } from 'vuex-class';\nimport SettingsExample from '@/components/settings/SettingsExample.vue';\nimport Checkbox from '@/components/ui/Checkbox.vue';\nimport MinusIcon from '@/assets/icons/minus.svg';\nimport PlusIcon from '@/assets/icons/plus.svg';\nimport {\n  LANGUAGE_CODE_RUSSIAN,\n  LANGUAGE_CODE_ENGLISH,\n  LIST_SCALE_TABLET,\n  LIST_SCALE_DESKTOP,\n  LIST_SCALE_AUTO\n} from '@/constants';\nimport { getTranslation } from '@/services/Translation';\nimport { Prop } from 'vue-property-decorator';\nimport LegalLinks from '@/components/LegalLinks.vue';\n\n@Component({\n  components: { SettingsExample, Checkbox, Overlay, MinusIcon, PlusIcon, LegalLinks }\n})\nexport default class Settings extends Vue {\n  @Prop({ required: false, default: false })\n  showTextVisibility!: boolean;\n\n  LANGUAGE_CODE_RUSSIAN = LANGUAGE_CODE_RUSSIAN;\n  LANGUAGE_CODE_ENGLISH = LANGUAGE_CODE_ENGLISH;\n  LIST_SCALE_TABLET = LIST_SCALE_TABLET;\n  LIST_SCALE_DESKTOP = LIST_SCALE_DESKTOP;\n  LIST_SCALE_AUTO = LIST_SCALE_AUTO;\n\n  getTranslation = getTranslation;\n\n  @State('scale', { namespace: 'reader' })\n  scale!: number;\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  @State('catalogListScale', { namespace: 'reader' })\n  catalogListScale!: string;\n\n  @State('hideTextTypes', { namespace: 'reader' })\n  hideTextTypes!: Array<string>;\n\n  @Mutation('setScale', { namespace: 'reader' })\n  setScale!: Function;\n\n  @Mutation('setInterfaceLanguage', { namespace: 'reader' })\n  setInterfaceLanguage!: Function;\n\n  @Mutation('setCatalogListScale', { namespace: 'reader' })\n  setCatalogListScale!: Function;\n\n  @Mutation('switchTextTypeFilter', { namespace: 'reader' })\n  switchTextTypeFilter!: Function;\n\n  get textTypes() {\n    return [\n      { code: 'sanskrit', name: getTranslation('sanskrit') },\n      { code: 'diacritic', name: getTranslation('diacritic') },\n      { code: 'word-by-word', name: getTranslation('wordByWordTranslation') },\n      { code: 'translate', name: getTranslation('translation') },\n      { code: 'comment', name: getTranslation('comment') }\n    ];\n  }\n\n  isTextTypeVisible(code: string) {\n    return !this.hideTextTypes || !this.hideTextTypes.includes(code);\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=4bf2e66c&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=4bf2e66c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4bf2e66c\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"mobile-navigation\",attrs:{\"aria-label\":_vm.getTranslation('navigation')}},_vm._l((_vm.items),function(item){return _c('button',{key:item.code,staticClass:\"mobile-navigation-item\",class:[(\"mobile-navigation-item-\" + (item.code)), { active: _vm.active === item.code }],attrs:{\"type\":\"button\",\"aria-current\":_vm.active === item.code ? 'page' : undefined,\"disabled\":item.code === 'reading' && !_vm.readingAvailable},on:{\"click\":function($event){return _vm.$emit('navigate', item.code)}}},[_c('span',{staticClass:\"mobile-navigation-content\"},[_c('span',{staticClass:\"mobile-navigation-icon\",attrs:{\"aria-hidden\":\"true\"}},[_c(item.icon,{tag:\"component\"})],1),_c('span',{staticClass:\"mobile-navigation-label\"},[_vm._v(_vm._s(item.label))])])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport IconLibrary from '@/assets/icons/nav-book.svg';\nimport IconSearch from '@/assets/icons/zoom.svg';\nimport IconReading from '@/assets/icons/book.svg';\nimport IconBookmark from '@/assets/icons/bookmark-nav.svg';\nimport IconSettings from '@/assets/icons/settings.svg';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: { IconLibrary, IconSearch, IconReading, IconBookmark, IconSettings }\n})\nexport default class MobileNavigation extends Vue {\n  @Prop({ required: true })\n  active!: string;\n\n  @Prop({ required: false, default: false })\n  readingAvailable!: boolean;\n\n  getTranslation = getTranslation;\n\n  items = this.getItems();\n\n  @Watch('$store.state.reader.interfaceLanguage')\n  onInterfaceLanguageChange() {\n    this.items = this.getItems();\n  }\n\n  getItems() {\n    return [\n      { code: 'library', label: getTranslation('library'), icon: IconLibrary },\n      { code: 'search', label: getTranslation('search'), icon: IconSearch },\n      { code: 'reading', label: getTranslation('reading'), icon: IconReading },\n      { code: 'bookmarks', label: getTranslation('bookmarks'), icon: IconBookmark },\n      { code: 'settings', label: getTranslation('settings'), icon: IconSettings }\n    ];\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileNavigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileNavigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileNavigation.vue?vue&type=template&id=2f452343&scoped=true&\"\nimport script from \"./MobileNavigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileNavigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileNavigation.vue?vue&type=style&index=0&id=2f452343&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2f452343\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"mobile-bookmarks\"},[_c('header',{staticClass:\"mobile-screen-header\"},[_c('div',{staticClass:\"mobile-screen-title\"},[_c('h1',[_vm._v(_vm._s(_vm.getTranslation('bookmarks')))]),_c('span',{staticClass:\"bookmarks-count\"},[_vm._v(_vm._s(_vm.bookmarks.length))])])]),(_vm.bookmarks.length)?_c('div',{staticClass:\"bookmarks-list\"},_vm._l((_vm.bookmarks),function(bookmark){return _c('article',{key:bookmark.id,staticClass:\"bookmark-item\"},[_c('button',{staticClass:\"bookmark-main\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('open', bookmark)}}},[_c('span',{staticClass:\"bookmark-icon\",attrs:{\"aria-hidden\":\"true\"}},[_c('IconBookmark')],1),_c('span',{staticClass:\"bookmark-copy\"},[_c('span',{staticClass:\"bookmark-kind\"},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('bookmark'))+\"\\n          \")]),_c('span',{staticClass:\"bookmark-title\"},[_vm._v(_vm._s(bookmark.bookName))]),_c('span',{staticClass:\"bookmark-meta\"},[_c('span',{staticClass:\"bookmark-language\"},[_vm._v(_vm._s(_vm.languageLabel(bookmark)))]),(bookmark.location)?_c('span',{staticClass:\"bookmark-location\"},[_vm._v(_vm._s(bookmark.location))]):_vm._e()]),(bookmark.note)?_c('span',{staticClass:\"bookmark-note\"},[_vm._v(_vm._s(bookmark.note))]):_vm._e()])]),_c('button',{staticClass:\"bookmark-delete nav-icon\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('deleteBookmark')},on:{\"click\":function($event){return _vm.$emit('remove', bookmark)}}},[_c('IconCross')],1)])}),0):_c('div',{staticClass:\"bookmarks-empty\"},[_c('IconBookmark'),_c('p',[_vm._v(_vm._s(_vm.getTranslation('noBookmarks')))])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { Bookmark } from '@/store/modules/bookmarks';\nimport IconBookmark from '@/assets/icons/bookmark.svg';\nimport IconCross from '@/assets/icons/cross.svg';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({ components: { IconBookmark, IconCross } })\nexport default class MobileBookmarks extends Vue {\n  @Prop({ required: true })\n  bookmarks!: Array<Bookmark>;\n\n  getTranslation = getTranslation;\n\n  languageLabel(bookmark: Bookmark) {\n    const language = bookmark.language.toUpperCase();\n    return language === 'ST' ? 'SAN' : language;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileBookmarks.vue?vue&type=template&id=32f143f6&scoped=true&\"\nimport script from \"./MobileBookmarks.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileBookmarks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileBookmarks.vue?vue&type=style&index=0&id=32f143f6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"32f143f6\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"theme-sheet\"}},[(_vm.visible)?_c('div',{staticClass:\"theme-picker-container\"},[_c('button',{staticClass:\"theme-picker-backdrop\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":function($event){return _vm.$emit('close')}}}),_c('section',{ref:\"dialog\",staticClass:\"theme-picker\",class:{ dragging: _vm.dragging },style:({ transform: _vm.dragOffset ? (\"translate(-50%, \" + _vm.dragOffset + \"px)\") : undefined }),attrs:{\"role\":\"dialog\",\"aria-modal\":\"true\",\"aria-label\":_vm.getTranslation('colorTheme'),\"tabindex\":\"-1\"}},[_c('header',{staticClass:\"theme-picker-header\",on:{\"pointerdown\":_vm.startDrag,\"pointermove\":_vm.moveDrag,\"pointerup\":_vm.endDrag,\"pointercancel\":_vm.cancelDrag}},[_c('span',{staticClass:\"theme-picker-handle\"}),_c('h2',[_vm._v(_vm._s(_vm.getTranslation('colorTheme')))])]),_c('div',{staticClass:\"theme-options\",attrs:{\"role\":\"radiogroup\",\"aria-label\":_vm.getTranslation('colorTheme')}},_vm._l((_vm.themes),function(theme){return _c('button',{key:theme.code,staticClass:\"theme-option\",class:{ active: _vm.colorMode === theme.code },attrs:{\"type\":\"button\",\"role\":\"radio\",\"aria-checked\":String(_vm.colorMode === theme.code)},on:{\"click\":function($event){return _vm.selectTheme(theme.code)}}},[_c('span',{staticClass:\"theme-preview\",class:theme.code},[_c('span'),_c('span'),_c('span')]),_c('span',{staticClass:\"theme-name\"},[_vm._v(_vm._s(theme.name))])])}),0)])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { Mutation, State } from 'vuex-class';\nimport { getTranslation } from '@/services/Translation';\n\ntype ColorMode = 'light' | 'mixed' | 'dark';\n\n@Component\nexport default class MobileReaderThemePicker extends Vue {\n  @Prop({ required: true, default: false })\n  visible!: boolean;\n\n  @State('colorMode', { namespace: 'reader' })\n  colorMode!: ColorMode;\n\n  @Mutation('setColorMode', { namespace: 'reader' })\n  setColorMode!: (colorMode: ColorMode) => void;\n\n  dragStartY: number | null = null;\n\n  dragOffset: number = 0;\n\n  dragPointerId: number | null = null;\n\n  dragging: boolean = false;\n\n  previouslyFocused: HTMLElement | null = null;\n\n  getTranslation = getTranslation;\n\n  get themes() {\n    return [\n      { code: 'light' as ColorMode, name: getTranslation('colorThemeLight') },\n      { code: 'mixed' as ColorMode, name: getTranslation('colorThemeMixed') },\n      { code: 'dark' as ColorMode, name: getTranslation('colorThemeDark') }\n    ];\n  }\n\n  mounted() {\n    document.addEventListener('keydown', this.onDocumentKeydown);\n    if (this.visible) {\n      this.focusDialog();\n    }\n  }\n\n  beforeDestroy() {\n    document.removeEventListener('keydown', this.onDocumentKeydown);\n    this.restoreFocus();\n  }\n\n  @Watch('visible')\n  onVisibleChange(visible: boolean) {\n    if (visible) {\n      this.focusDialog();\n    } else {\n      this.restoreFocus();\n    }\n  }\n\n  selectTheme(theme: ColorMode) {\n    this.setColorMode(theme);\n  }\n\n  focusDialog() {\n    const activeElement = document.activeElement;\n    this.previouslyFocused =\n      activeElement instanceof HTMLElement && activeElement !== document.body ? activeElement : null;\n    this.$nextTick(() => {\n      const dialog = this.$refs.dialog as HTMLElement;\n      if (dialog) {\n        dialog.focus();\n      }\n    });\n  }\n\n  restoreFocus() {\n    if (this.previouslyFocused && document.contains(this.previouslyFocused)) {\n      this.previouslyFocused.focus();\n    }\n    this.previouslyFocused = null;\n  }\n\n  onDocumentKeydown(event: KeyboardEvent) {\n    if (!this.visible) {\n      return;\n    }\n    if (event.key === 'Escape') {\n      event.preventDefault();\n      this.$emit('close');\n      return;\n    }\n    if (event.key !== 'Tab') {\n      return;\n    }\n    const dialog = this.$refs.dialog as HTMLElement;\n    const options = dialog\n      ? (Array.from(dialog.querySelectorAll('button:not([disabled])')) as HTMLElement[])\n      : [];\n    if (!options.length) {\n      event.preventDefault();\n      dialog.focus();\n      return;\n    }\n    const first = options[0];\n    const last = options[options.length - 1];\n    if (event.shiftKey && (document.activeElement === first || document.activeElement === dialog)) {\n      event.preventDefault();\n      last.focus();\n    } else if (!event.shiftKey && document.activeElement === last) {\n      event.preventDefault();\n      first.focus();\n    }\n  }\n\n  startDrag(event: PointerEvent) {\n    this.dragPointerId = event.pointerId;\n    this.dragStartY = event.clientY;\n    this.dragging = true;\n    const target = event.currentTarget as HTMLElement;\n    if (target.setPointerCapture) {\n      target.setPointerCapture(event.pointerId);\n    }\n  }\n\n  moveDrag(event: PointerEvent) {\n    if (this.dragStartY === null || this.dragPointerId !== event.pointerId) {\n      return;\n    }\n    this.dragOffset = Math.max(0, event.clientY - this.dragStartY);\n    if (this.dragOffset && event.cancelable) {\n      event.preventDefault();\n    }\n  }\n\n  endDrag(event: PointerEvent) {\n    if (this.dragPointerId !== event.pointerId) {\n      return;\n    }\n    if (this.dragOffset >= 64) {\n      this.resetDrag();\n      this.$emit('close');\n      return;\n    }\n    this.resetDrag();\n  }\n\n  cancelDrag() {\n    this.resetDrag();\n  }\n\n  resetDrag() {\n    this.dragStartY = null;\n    this.dragOffset = 0;\n    this.dragPointerId = null;\n    this.dragging = false;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileReaderThemePicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileReaderThemePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileReaderThemePicker.vue?vue&type=template&id=17e45af7&scoped=true&\"\nimport script from \"./MobileReaderThemePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileReaderThemePicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileReaderThemePicker.vue?vue&type=style&index=0&id=17e45af7&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"17e45af7\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div',{staticClass:\"bookmark-sheet-layer\"},[_c('button',{staticClass:\"bookmark-sheet-backdrop\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":function($event){return _vm.$emit('close')}}}),_c('section',{staticClass:\"bookmark-sheet\",class:{ dragging: _vm.dragging },style:({ transform: (\"translateY(\" + _vm.dragOffset + \"px)\") }),attrs:{\"aria-label\":_vm.getTranslation('bookmarks')}},[_c('div',{staticClass:\"bookmark-sheet-drag-zone\",on:{\"pointerdown\":_vm.startDrag,\"pointermove\":_vm.moveDrag,\"pointerup\":_vm.finishDrag,\"pointercancel\":_vm.finishDrag}},[_c('span',{staticClass:\"bookmark-sheet-handle\"})]),_c('div',{staticClass:\"bookmark-sheet-content\"},[_c('header',[_c('span',[_vm._v(_vm._s(_vm.getTranslation('bookmarks')))]),_c('h2',[_vm._v(_vm._s(_vm.currentTab ? _vm.currentTab.bookName : ''))])]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.draftNote),expression:\"draftNote\"}],staticClass:\"bookmark-note-input new-bookmark-note\",attrs:{\"placeholder\":_vm.getTranslation('bookmarkNotePlaceholder'),\"rows\":\"2\"},domProps:{\"value\":(_vm.draftNote)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.draftNote=$event.target.value},_vm.resizeTextarea]}}),_c('button',{staticClass:\"add-bookmark-button\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.addBookmark}},[_c('IconBookmark'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('addBookmarkHere')))])],1),(_vm.manualBookmarks.length)?_c('div',{staticClass:\"bookmarks-in-book\"},[_c('div',{staticClass:\"bookmarks-in-book-heading\"},[_c('span',[_vm._v(_vm._s(_vm.getTranslation('bookmarks')))]),_c('small',[_vm._v(_vm._s(_vm.manualBookmarks.length))])]),_vm._l((_vm.manualBookmarks),function(bookmark){return _c('article',{key:bookmark.id,staticClass:\"bookmark-in-book\",class:{ editing: _vm.editingBookmarkId === bookmark.id }},[_c('div',{staticClass:\"bookmark-in-book-header\"},[_c('div',{staticClass:\"bookmark-in-book-copy\"},[_c('span',[_vm._v(_vm._s(bookmark.location))]),_c('small',[_vm._v(_vm._s(_vm.progressLabel(bookmark)))]),(bookmark.note && _vm.editingBookmarkId !== bookmark.id)?_c('p',[_vm._v(_vm._s(bookmark.note))]):_vm._e()]),(_vm.editingBookmarkId !== bookmark.id)?_c('button',{staticClass:\"bookmark-actions-toggle\",class:{ active: _vm.openActionsBookmarkId === bookmark.id },attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('moreActions'),\"aria-expanded\":String(_vm.openActionsBookmarkId === bookmark.id)},on:{\"click\":function($event){return _vm.toggleActions(bookmark)}}},[_c('IconMore')],1):_vm._e()]),(_vm.openActionsBookmarkId === bookmark.id && _vm.editingBookmarkId !== bookmark.id)?_c('div',{staticClass:\"bookmark-actions-menu vertical\",attrs:{\"role\":\"menu\"}},[_c('button',{staticClass:\"edit-bookmark-button\",attrs:{\"type\":\"button\",\"role\":\"menuitem\"},on:{\"click\":function($event){return _vm.startEditing(bookmark)}}},[_c('span',{staticClass:\"bookmark-action-icon\"},[_c('IconNote')],1),_c('span',[_vm._v(_vm._s(_vm.getTranslation('edit')))])]),_c('button',{staticClass:\"move-bookmark-button\",attrs:{\"type\":\"button\",\"role\":\"menuitem\"},on:{\"click\":function($event){return _vm.moveBookmark(bookmark)}}},[_c('span',{staticClass:\"bookmark-action-icon\"},[_c('IconReturn')],1),_c('span',[_vm._v(_vm._s(_vm.getTranslation('moveBookmarkHere')))])]),_c('button',{staticClass:\"remove-bookmark-button\",attrs:{\"type\":\"button\",\"role\":\"menuitem\"},on:{\"click\":function($event){return _vm.removeBookmark(bookmark)}}},[_c('span',{staticClass:\"bookmark-action-icon\"},[_c('IconCross')],1),_c('span',[_vm._v(_vm._s(_vm.getTranslation('deleteBookmark')))])])]):_vm._e(),(_vm.editingBookmarkId === bookmark.id)?_c('div',{staticClass:\"bookmark-note-editor\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editingNote),expression:\"editingNote\"}],staticClass:\"bookmark-note-input bookmark-note-edit\",attrs:{\"aria-label\":_vm.getTranslation('note'),\"rows\":\"2\"},domProps:{\"value\":(_vm.editingNote)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.editingNote=$event.target.value},_vm.resizeTextarea]}}),_c('div',{staticClass:\"bookmark-edit-actions\"},[_c('button',{staticClass:\"save-bookmark-note-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.saveNote(bookmark)}}},[_vm._v(\"\\n                \"+_vm._s(_vm.getTranslation('save'))+\"\\n              \")]),_c('button',{staticClass:\"move-edited-bookmark-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.moveEditedBookmark(bookmark)}}},[_c('IconReturn'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('moveBookmarkHere')))])],1),_c('button',{staticClass:\"cancel-bookmark-edit-button\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.cancelEditing}},[_vm._v(\"\\n                \"+_vm._s(_vm.getTranslation('cancel'))+\"\\n              \")])])]):_vm._e()])})],2):_vm._e()])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"12\",\"height\":\"16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M2.5 4.514h7m-7 6.019h4M2.5 7.5h7m2 7.046H.5V.502h11v14.043z\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { Bookmark } from '@/store/modules/bookmarks';\nimport { Tab } from '@/store/modules/tabs';\nimport IconBookmark from '@/assets/icons/bookmark.svg';\nimport IconCross from '@/assets/icons/cross.svg';\nimport IconMore from '@/assets/icons/more.svg';\nimport IconNote from '@/assets/icons/note.svg';\nimport IconReturn from '@/assets/icons/return.svg';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({ components: { IconBookmark, IconCross, IconMore, IconNote, IconReturn } })\nexport default class MobileBookmarkSheet extends Vue {\n  @Prop({ required: true })\n  visible!: boolean;\n\n  @Prop({ default: null })\n  currentTab!: Tab | null;\n\n  @Prop({ required: true })\n  bookmarks!: Array<Bookmark>;\n\n  dragOffset = 0;\n  dragStartY = 0;\n  dragging = false;\n  draftNote = '';\n  editingBookmarkId: string | number | null = null;\n  editingNote = '';\n  openActionsBookmarkId: string | number | null = null;\n  getTranslation = getTranslation;\n\n  get manualBookmarks() {\n    if (!this.currentTab || !this.currentTab.bookKey) {\n      return [];\n    }\n    return this.bookmarks.filter(\n      bookmark => bookmark.type === 'manual' && bookmark.bookKey === this.currentTab!.bookKey\n    );\n  }\n\n  @Watch('visible')\n  resetDrag() {\n    this.dragOffset = 0;\n    this.dragging = false;\n    this.draftNote = '';\n    this.editingBookmarkId = null;\n    this.editingNote = '';\n    this.openActionsBookmarkId = null;\n  }\n\n  startDrag(event: PointerEvent) {\n    this.dragging = true;\n    this.dragStartY = event.clientY;\n    (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n  }\n\n  moveDrag(event: PointerEvent) {\n    if (!this.dragging) {\n      return;\n    }\n    this.dragOffset = Math.max(0, event.clientY - this.dragStartY);\n  }\n\n  finishDrag(event: PointerEvent) {\n    if (!this.dragging) {\n      return;\n    }\n    this.dragging = false;\n    if ((event.currentTarget as HTMLElement).hasPointerCapture(event.pointerId)) {\n      (event.currentTarget as HTMLElement).releasePointerCapture(event.pointerId);\n    }\n    if (this.dragOffset > 72) {\n      this.$emit('close');\n    }\n    this.dragOffset = 0;\n  }\n\n  progressLabel(bookmark: Bookmark) {\n    return `${Math.round(bookmark.position * 100)}%`;\n  }\n\n  addBookmark() {\n    this.$emit('add', this.draftNote.trim());\n    this.draftNote = '';\n  }\n\n  toggleActions(bookmark: Bookmark) {\n    this.openActionsBookmarkId = this.openActionsBookmarkId === bookmark.id ? null : bookmark.id;\n  }\n\n  startEditing(bookmark: Bookmark) {\n    this.editingBookmarkId = bookmark.id;\n    this.editingNote = bookmark.note || '';\n    this.openActionsBookmarkId = null;\n    this.$nextTick(() => {\n      const textarea = this.$el.querySelector('.bookmark-in-book.editing .bookmark-note-edit');\n      if (textarea instanceof HTMLTextAreaElement) {\n        this.resizeTextarea(textarea);\n        textarea.focus();\n      }\n    });\n  }\n\n  saveNote(bookmark: Bookmark) {\n    this.$emit('note', { bookmark, note: this.editingNote.trim() });\n    this.cancelEditing();\n  }\n\n  moveBookmark(bookmark: Bookmark) {\n    this.openActionsBookmarkId = null;\n    this.$emit('move', bookmark);\n  }\n\n  moveEditedBookmark(bookmark: Bookmark) {\n    this.$emit('move', { ...bookmark, note: this.editingNote.trim() });\n    this.cancelEditing();\n  }\n\n  removeBookmark(bookmark: Bookmark) {\n    this.openActionsBookmarkId = null;\n    this.$emit('remove', bookmark);\n  }\n\n  cancelEditing() {\n    this.editingBookmarkId = null;\n    this.editingNote = '';\n  }\n\n  resizeTextarea(eventOrElement: Event | HTMLTextAreaElement) {\n    const textarea =\n      eventOrElement instanceof HTMLTextAreaElement\n        ? eventOrElement\n        : (eventOrElement.currentTarget as HTMLTextAreaElement);\n    textarea.style.height = 'auto';\n    textarea.style.height = `${textarea.scrollHeight}px`;\n    textarea.style.overflowY = 'hidden';\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarkSheet.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarkSheet.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileBookmarkSheet.vue?vue&type=template&id=c3918418&scoped=true&\"\nimport script from \"./MobileBookmarkSheet.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileBookmarkSheet.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileBookmarkSheet.vue?vue&type=style&index=0&id=c3918418&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"c3918418\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"presentation-controls\",class:{ visible: _vm.visible, 'settings-open': _vm.settingsVisible },on:{\"click\":function($event){$event.stopPropagation();}}},[_c('header',{staticClass:\"presentation-header\"},[_c('div',{staticClass:\"presentation-brand\"},[_vm._v(\"VEDARAMA\")]),_c('div',{staticClass:\"presentation-identity\"},[_c('span',[_vm._v(_vm._s(_vm.bookTitle))]),_c('strong',[_vm._v(_vm._s(_vm.sectionTitle))])]),_c('button',{staticClass:\"presentation-exit\",attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('exitPresentationMode')},on:{\"click\":function($event){return _vm.$emit('exit')}}},[_c('IconCross'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('exitPresentationMode')))])],1)]),_c('button',{staticClass:\"presentation-edge presentation-edge-previous\",attrs:{\"type\":\"button\",\"disabled\":!_vm.hasPrevious,\"aria-label\":_vm.getTranslation('previousSection')},on:{\"click\":function($event){return _vm.$emit('previous')}}},[_c('IconArrowLeft')],1),_c('button',{staticClass:\"presentation-edge presentation-edge-next\",attrs:{\"type\":\"button\",\"disabled\":!_vm.hasNext,\"aria-label\":_vm.getTranslation('nextSection')},on:{\"click\":function($event){return _vm.$emit('next')}}},[_c('IconArrowRight')],1),_c('footer',{staticClass:\"presentation-footer\"},[_c('button',{staticClass:\"presentation-nav-button\",attrs:{\"type\":\"button\",\"disabled\":!_vm.hasPrevious,\"aria-label\":_vm.getTranslation('previousSection')},on:{\"click\":function($event){return _vm.$emit('previous')}}},[_c('IconArrowLeft')],1),_c('div',{staticClass:\"presentation-position\",attrs:{\"aria-live\":\"polite\"}},[_c('strong',[_vm._v(_vm._s(_vm.sectionTitle))]),_c('span',[_vm._v(_vm._s(_vm.currentIndex + 1)+\" / \"+_vm._s(_vm.totalSections))])]),_c('button',{staticClass:\"presentation-nav-button\",attrs:{\"type\":\"button\",\"disabled\":!_vm.hasNext,\"aria-label\":_vm.getTranslation('nextSection')},on:{\"click\":function($event){return _vm.$emit('next')}}},[_c('IconArrowRight')],1),_c('span',{staticClass:\"presentation-footer-divider\"}),_c('button',{staticClass:\"presentation-settings-button\",class:{ active: _vm.settingsVisible },attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('presentationSettings'),\"aria-expanded\":String(_vm.settingsVisible)},on:{\"click\":_vm.toggleSettings}},[_c('IconSettings')],1)]),(_vm.settingsVisible)?_c('aside',{staticClass:\"presentation-settings\"},[_c('div',{staticClass:\"presentation-settings-header\"},[_c('div',[_c('span',[_vm._v(_vm._s(_vm.getTranslation('presentationMode')))]),_c('h2',[_vm._v(_vm._s(_vm.getTranslation('presentationSettings')))])]),_c('button',{attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('close')},on:{\"click\":_vm.toggleSettings}},[_c('IconCross')],1)]),_c('div',{staticClass:\"presentation-setting-group\"},[_c('span',{staticClass:\"presentation-setting-label\"},[_vm._v(_vm._s(_vm.getTranslation('colorTheme')))]),_c('div',{staticClass:\"presentation-theme-options\",attrs:{\"role\":\"radiogroup\"}},_vm._l((_vm.themes),function(theme){return _c('button',{key:theme.code,class:[theme.code, { active: _vm.colorMode === theme.code }],attrs:{\"type\":\"button\",\"aria-label\":theme.label,\"aria-checked\":String(_vm.colorMode === theme.code),\"role\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('color-mode', theme.code)}}},[_c('span'),_vm._v(\"\\n          \"+_vm._s(theme.label)+\"\\n        \")])}),0)]),_c('div',{staticClass:\"presentation-setting-group\"},[_c('span',{staticClass:\"presentation-setting-label\"},[_vm._v(_vm._s(_vm.getTranslation('textScale')))]),_c('div',{staticClass:\"presentation-scale-control\"},[_c('button',{attrs:{\"type\":\"button\",\"disabled\":_vm.scale <= 0.7,\"aria-label\":((_vm.getTranslation('textScale')) + \" -\")},on:{\"click\":function($event){_vm.$emit('scale', Math.max(0.7, _vm.scale - 0.1))}}},[_c('IconMinus')],1),_c('strong',[_vm._v(_vm._s(Math.round(_vm.scale * 100))+\"%\")]),_c('button',{attrs:{\"type\":\"button\",\"disabled\":_vm.scale >= 1.8,\"aria-label\":((_vm.getTranslation('textScale')) + \" +\")},on:{\"click\":function($event){_vm.$emit('scale', Math.min(1.8, _vm.scale + 0.1))}}},[_c('IconPlus')],1),_c('button',{staticClass:\"presentation-fit-button\",class:{ active: _vm.autoFit },attrs:{\"type\":\"button\",\"aria-pressed\":String(_vm.autoFit)},on:{\"click\":function($event){return _vm.$emit('auto-fit', !_vm.autoFit)}}},[_c('IconPresentation'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('fitToScreen')))])],1)])]),_c('div',{staticClass:\"presentation-setting-group\"},[_c('span',{staticClass:\"presentation-setting-label\"},[_vm._v(_vm._s(_vm.getTranslation('show')))]),_c('div',{staticClass:\"presentation-text-types\"},_vm._l((_vm.textTypes),function(type){return _c('button',{key:type.code,class:{ active: _vm.isTypeVisible(type.code) },attrs:{\"type\":\"button\",\"aria-pressed\":String(_vm.isTypeVisible(type.code))},on:{\"click\":function($event){return _vm.$emit('toggle-text-type', type.code)}}},[_c('span',{staticClass:\"presentation-check\",attrs:{\"aria-hidden\":\"true\"}}),_c('span',[_vm._v(_vm._s(type.label))])])}),0)])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"14\",\"height\":\"9\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M13 4.5H1m0 0l4 4m-4-4l4-4\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"14\",\"height\":\"9\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M1 4.5h12m0 0l-4-4m4 4l-4 4\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('rect',{attrs:{\"x\":\"2.5\",\"y\":\"3.5\",\"width\":\"19\",\"height\":\"14\",\"rx\":\"1.5\",\"stroke\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M8 21l4-3.5 4 3.5\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}}),_c('path',{attrs:{\"d\":\"M8 8h8m-8 3h6\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\"}})])\n          )\n        }\n      }\n    ","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport IconArrowLeft from '@/assets/icons/nav-arrow-left.svg';\nimport IconArrowRight from '@/assets/icons/nav-arrow-right.svg';\nimport IconCross from '@/assets/icons/cross.svg';\nimport IconMinus from '@/assets/icons/minus.svg';\nimport IconPlus from '@/assets/icons/plus.svg';\nimport IconPresentation from '@/assets/icons/presentation.svg';\nimport IconSettings from '@/assets/icons/settings.svg';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: {\n    IconArrowLeft,\n    IconArrowRight,\n    IconCross,\n    IconMinus,\n    IconPlus,\n    IconPresentation,\n    IconSettings\n  }\n})\nexport default class PresentationControls extends Vue {\n  @Prop({ default: false }) visible!: boolean;\n  @Prop({ default: '' }) bookTitle!: string;\n  @Prop({ default: '' }) sectionTitle!: string;\n  @Prop({ default: 0 }) currentIndex!: number;\n  @Prop({ default: 0 }) totalSections!: number;\n  @Prop({ default: false }) hasPrevious!: boolean;\n  @Prop({ default: false }) hasNext!: boolean;\n  @Prop({ default: 1 }) scale!: number;\n  @Prop({ default: true }) autoFit!: boolean;\n  @Prop({ default: 'light' }) colorMode!: 'light' | 'dark' | 'mixed';\n  @Prop({ default: () => [] }) hiddenTextTypes!: Array<string>;\n\n  settingsVisible = false;\n  getTranslation = getTranslation;\n\n  get themes() {\n    return [\n      { code: 'light', label: getTranslation('colorThemeLight') },\n      { code: 'mixed', label: getTranslation('colorThemeMixed') },\n      { code: 'dark', label: getTranslation('colorThemeDark') }\n    ];\n  }\n\n  get textTypes() {\n    return [\n      { code: 'sanskrit', label: getTranslation('sanskrit') },\n      { code: 'diacritic', label: getTranslation('diacritic') },\n      { code: 'word-by-word', label: getTranslation('wordByWordTranslation') },\n      { code: 'translate', label: getTranslation('translation') },\n      { code: 'comment', label: getTranslation('comment') }\n    ];\n  }\n\n  isTypeVisible(code: string) {\n    return !this.hiddenTextTypes.includes(code);\n  }\n\n  toggleSettings() {\n    this.settingsVisible = !this.settingsVisible;\n    this.$emit('settings-change', this.settingsVisible);\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./PresentationControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./PresentationControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PresentationControls.vue?vue&type=template&id=587f1004&scoped=true&\"\nimport script from \"./PresentationControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./PresentationControls.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PresentationControls.vue?vue&type=style&index=0&id=587f1004&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"587f1004\",\n  null\n  \n)\n\nexport default component.exports","import StorageService from '@/services/StorageService';\nimport { Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store';\n\nexport interface Tab {\n  name: string;\n  link: null | string;\n  active: boolean;\n  bookKey?: null | string;\n  bookName?: string;\n  location?: string;\n  position?: number;\n  paragraphAnchor?: string;\n  updatedAt?: string;\n  sectionPositions?: { [link: string]: number };\n}\n\nexport type TabsState = {\n  list: Array<Tab>;\n  closed?: { [bookKey: string]: Tab };\n  currentReading?: Tab | null;\n  ownerKey?: string;\n};\n\nconst emptyTab = {\n  name: '',\n  link: null,\n  active: true,\n  bookKey: null,\n  bookName: '',\n  location: '',\n  position: 0,\n  paragraphAnchor: '',\n  updatedAt: '',\n  sectionPositions: {}\n};\n\nconst tabsStorageKey = (ownerKey: string) => `tabs:${ownerKey}`;\nconst closedTabsStorageKey = (ownerKey: string) => `closedTabs:${ownerKey}`;\nconst currentReadingStorageKey = (ownerKey: string) => `currentReading:${ownerKey}`;\n\nconst saveTabs = (state: TabsState) => {\n  StorageService.save(tabsStorageKey(state.ownerKey || 'guest'), state.list);\n};\n\nconst saveClosedTabs = (state: TabsState) => {\n  StorageService.save(closedTabsStorageKey(state.ownerKey || 'guest'), state.closed || {});\n};\n\nconst saveCurrentReading = (state: TabsState) => {\n  StorageService.save(currentReadingStorageKey(state.ownerKey || 'guest'), state.currentReading || {});\n};\n\nexport const getBookKeyFromLink = (link?: null | string): string | null => {\n  if (!link) {\n    return null;\n  }\n  const segments = link\n    .split('?')[0]\n    .split('/')\n    .filter(Boolean);\n  if (segments.length >= 3 && segments[1] === 'books') {\n    return `${segments[0]}:${segments[2]}`;\n  }\n  if (segments.length >= 4 && ['categories', 'authors'].includes(segments[1])) {\n    return `${segments[0]}:${segments[3]}`;\n  }\n  return null;\n};\n\nexport const isBookSectionLink = (link?: null | string): boolean => {\n  if (!link) {\n    return false;\n  }\n  const segments = link\n    .split('?')[0]\n    .split('/')\n    .filter(Boolean);\n  if (segments[1] === 'books') {\n    return segments.length >= 4;\n  }\n  return ['categories', 'authors'].includes(segments[1]) && segments.length >= 5;\n};\n\nconst getLegacyBookDetails = (tab: Tab, bookKey: string | null) => {\n  if (!bookKey) {\n    return { bookName: tab.bookName || '', location: tab.location || '' };\n  }\n  const parts = (tab.name || '').split(' — ');\n  return {\n    bookName: tab.bookName || parts[0] || '',\n    location: tab.location || (parts.length > 1 ? parts.slice(1).join(' — ') : '')\n  };\n};\n\nexport const normalizeTabs = (tabs: Array<Tab> | null | undefined): Array<Tab> => {\n  const normalized = Array.isArray(tabs)\n    ? tabs\n        .filter(tab => tab && typeof tab === 'object')\n        .map(tab => {\n          const link = tab.link || null;\n          const bookKey = tab.bookKey || getBookKeyFromLink(link);\n          return {\n            name: tab.name || '',\n            link,\n            active: !!tab.active,\n            bookKey,\n            position: typeof tab.position === 'number' ? tab.position : 0,\n            paragraphAnchor: tab.paragraphAnchor || '',\n            updatedAt: tab.updatedAt || '',\n            sectionPositions: tab.sectionPositions || {},\n            ...getLegacyBookDetails(tab, bookKey)\n          };\n        })\n    : [];\n  if (!normalized.length) {\n    return [{ ...emptyTab }];\n  }\n  let activeIndex = -1;\n  normalized.forEach((tab, index) => {\n    if (tab.active) {\n      activeIndex = index;\n    }\n  });\n  if (activeIndex < 0) {\n    activeIndex = 0;\n  }\n  return normalized.map((tab, index) => ({ ...tab, active: index === activeIndex }));\n};\n\nexport const normalizeCurrentReading = (value: Tab | null | undefined): Tab | null => {\n  if (!(value && typeof value === 'object' && value.link)) {\n    return null;\n  }\n  const bookKey = value.bookKey || getBookKeyFromLink(value.link);\n  if (!bookKey || !isBookSectionLink(value.link)) {\n    return null;\n  }\n  return {\n    name: value.name || value.bookName || '',\n    link: value.link.split('?')[0],\n    active: false,\n    bookKey,\n    bookName: value.bookName || value.name || '',\n    location: value.location || '',\n    position: typeof value.position === 'number' ? Math.max(0, Math.min(1, value.position)) : 0,\n    paragraphAnchor: value.paragraphAnchor || '',\n    updatedAt: value.updatedAt || '',\n    sectionPositions: value.sectionPositions || {}\n  };\n};\n\nconst state: TabsState = {\n  list: normalizeTabs(StorageService.get(tabsStorageKey('guest'))),\n  closed: StorageService.get(closedTabsStorageKey('guest')) || {},\n  currentReading: normalizeCurrentReading(StorageService.get(currentReadingStorageKey('guest'))),\n  ownerKey: 'guest'\n};\n\nconst mutations: MutationTree<TabsState> = {\n  switchOwner(state: TabsState, ownerKey: string) {\n    const nextOwnerKey = ownerKey || 'guest';\n    if (state.ownerKey === nextOwnerKey) {\n      return;\n    }\n    state.ownerKey = nextOwnerKey;\n    state.list = normalizeTabs(StorageService.get(tabsStorageKey(nextOwnerKey)));\n    state.closed = StorageService.get(closedTabsStorageKey(nextOwnerKey)) || {};\n    state.currentReading = normalizeCurrentReading(\n      StorageService.get(currentReadingStorageKey(nextOwnerKey))\n    );\n  },\n  updateCurrentReading(state: TabsState, payload: Tab) {\n    const current =\n      state.currentReading && state.currentReading.bookKey === payload.bookKey ? state.currentReading : null;\n    const reading = normalizeCurrentReading({\n      ...(current || {}),\n      ...payload,\n      active: false,\n      sectionPositions: payload.sectionPositions || (current && current.sectionPositions) || {}\n    } as Tab);\n    if (!reading) {\n      return;\n    }\n    state.currentReading = reading;\n    saveCurrentReading(state);\n  },\n  openTab(state: TabsState) {\n    state.list.map(tab => Object.assign(tab, { active: false }));\n    state.list.push({ ...emptyTab });\n    saveTabs(state);\n  },\n  closeTab(state, index) {\n    if (!state.list[index]) {\n      return;\n    }\n    const closingTab = state.list[index];\n    const wasActive = closingTab.active;\n    if (closingTab.bookKey) {\n      state.closed = state.closed || {};\n      state.closed[closingTab.bookKey] = { ...closingTab, active: false };\n      saveClosedTabs(state);\n    }\n    state.list.splice(index, 1);\n    if (state.list.length === 0) {\n      state.list.push({ ...emptyTab });\n    } else if (wasActive) {\n      state.list[Math.min(index, state.list.length - 1)].active = true;\n    }\n    saveTabs(state);\n  },\n  setActiveTab(state, index) {\n    if (!state.list[index]) {\n      return;\n    }\n    state.list.map(tab => Object.assign(tab, { active: false }));\n    state.list[index].active = true;\n    saveTabs(state);\n  },\n  keepOnlyActiveTab(state) {\n    const activeTab = state.list.find(tab => tab.active);\n    if (!activeTab) {\n      return;\n    }\n    state.closed = state.closed || {};\n    state.list.forEach(tab => {\n      if (tab !== activeTab && tab.bookKey) {\n        state.closed![tab.bookKey] = { ...tab, active: false };\n      }\n    });\n    state.list = [activeTab];\n    saveClosedTabs(state);\n    saveTabs(state);\n  },\n  activateBookTab(state, payload) {\n    state.closed = state.closed || {};\n    const existingIndex = state.list.findIndex(tab => tab.bookKey === payload.bookKey);\n    const activeEmptyIndex = state.list.findIndex(tab => tab.active && !tab.link);\n    const targetIndex =\n      existingIndex >= 0 ? existingIndex : activeEmptyIndex >= 0 ? activeEmptyIndex : state.list.length;\n    const existingTab =\n      (existingIndex >= 0 ? state.list[existingIndex] : state.closed[payload.bookKey]) ||\n      state.list[targetIndex];\n    const keepSavedSection =\n      !!payload.preserveLastLocation && !!existingTab && isBookSectionLink(existingTab.link);\n    const bookName =\n      payload.bookName ||\n      (existingTab && existingTab.bookName) ||\n      (existingTab && existingTab.name) ||\n      (payload.location === undefined ? payload.name : '') ||\n      '';\n    const location =\n      payload.location !== undefined\n        ? payload.location\n        : existingTab && existingTab.location\n        ? existingTab.location\n        : '';\n    const keepExistingPosition =\n      keepSavedSection ||\n      (!!existingTab && existingTab.link === payload.link && payload.position === undefined);\n    const savedSectionPosition =\n      existingTab &&\n      existingTab.sectionPositions &&\n      typeof existingTab.sectionPositions[payload.link] === 'number'\n        ? existingTab.sectionPositions[payload.link]\n        : 0;\n    const position =\n      payload.position !== undefined\n        ? payload.position\n        : keepExistingPosition && existingTab && typeof existingTab.position === 'number'\n        ? existingTab.position\n        : savedSectionPosition;\n    const tab: Tab = {\n      name: payload.name || (existingTab && existingTab.name) || bookName,\n      link: keepSavedSection ? existingTab.link : payload.link,\n      active: true,\n      bookKey: payload.bookKey,\n      bookName,\n      location,\n      position,\n      paragraphAnchor:\n        payload.paragraphAnchor !== undefined\n          ? payload.paragraphAnchor\n          : keepExistingPosition && existingTab\n          ? existingTab.paragraphAnchor || ''\n          : '',\n      updatedAt: payload.updatedAt || (existingTab && existingTab.updatedAt) || '',\n      sectionPositions: (existingTab && existingTab.sectionPositions) || {}\n    };\n\n    state.list.forEach(item => {\n      item.active = false;\n    });\n    if (existingTab) {\n      if (targetIndex < state.list.length) {\n        state.list.splice(targetIndex, 1, tab);\n      } else {\n        state.list.push(tab);\n      }\n    } else {\n      state.list.push(tab);\n    }\n    if (state.closed[payload.bookKey]) {\n      delete state.closed[payload.bookKey];\n      saveClosedTabs(state);\n    }\n    saveTabs(state);\n  },\n  activateRouteTab(state, payload) {\n    const activeIndex = state.list.findIndex(tab => tab.active);\n    const activeTab = state.list[activeIndex];\n    if (activeTab && activeTab.bookKey) {\n      const routeTabIndex = state.list.findIndex(tab => !tab.bookKey && tab.link === payload.link);\n      state.list.forEach(tab => {\n        tab.active = false;\n      });\n      if (routeTabIndex >= 0) {\n        state.list[routeTabIndex].active = true;\n      } else {\n        state.list.push({\n          ...emptyTab,\n          name: payload.name || '',\n          link: payload.link\n        });\n      }\n    } else if (activeTab) {\n      activeTab.link = payload.link;\n      if (payload.name) {\n        activeTab.name = payload.name;\n      }\n    }\n    saveTabs(state);\n  },\n  updateActiveTabLink(state, link) {\n    const index = state.list.findIndex(tab => tab.active);\n    if (index < 0) {\n      return;\n    }\n    state.list[index].link = link;\n    saveTabs(state);\n  },\n  updateActiveTabName(state, name) {\n    const index = state.list.findIndex(tab => tab.active);\n    if (index < 0) {\n      return;\n    }\n    state.list[index].name = name;\n    saveTabs(state);\n  },\n  updateActiveTabDetails(state, details) {\n    const tab = state.list.find(item => item.active);\n    if (!tab) {\n      return;\n    }\n    if (details.name !== undefined) {\n      tab.name = details.name;\n    }\n    if (details.bookName !== undefined) {\n      tab.bookName = details.bookName;\n    }\n    if (details.location !== undefined) {\n      tab.location = details.location;\n    }\n    if (details.link !== undefined) {\n      tab.link = details.link;\n    }\n    if (details.position !== undefined) {\n      tab.position = details.position;\n    }\n    if (details.paragraphAnchor !== undefined) {\n      tab.paragraphAnchor = details.paragraphAnchor;\n    }\n    if (details.updatedAt !== undefined) {\n      tab.updatedAt = details.updatedAt;\n    }\n    saveTabs(state);\n  },\n  updateBookTabDetails(state, payload) {\n    const tab = state.list.find(item => item.bookKey === payload.bookKey);\n    if (!tab) {\n      return;\n    }\n    Object.assign(tab, payload.details);\n    if (\n      payload.details.link &&\n      typeof payload.details.position === 'number' &&\n      isBookSectionLink(payload.details.link)\n    ) {\n      tab.sectionPositions = tab.sectionPositions || {};\n      tab.sectionPositions[payload.details.link] = payload.details.position;\n    }\n    saveTabs(state);\n  },\n  mergeServerReadingTabs(state, records) {\n    if (!Array.isArray(records)) {\n      return;\n    }\n    records.forEach(record => {\n      if (!(record && record.language && record.slug)) {\n        return;\n      }\n      const bookKey = `${record.language}:${record.slug}`;\n      const sectionSlug = record.section_slug || '';\n      const link = sectionSlug\n        ? `/${record.language}/books/${record.slug}/${sectionSlug}`\n        : `/${record.language}/books/${record.slug}`;\n      const serverUpdatedAt = record.updated_at || '';\n      const serverSession = normalizeCurrentReading({\n        name: record.name || '',\n        bookName: record.name || '',\n        link,\n        active: false,\n        bookKey,\n        location: record.section_name || sectionSlug,\n        position: Number(record.scroll_ratio) || 0,\n        paragraphAnchor: record.paragraph_anchor || '',\n        updatedAt: serverUpdatedAt,\n        sectionPositions: record.section_positions || {}\n      });\n      if (\n        serverSession &&\n        (!state.currentReading ||\n          !state.currentReading.updatedAt ||\n          !serverUpdatedAt ||\n          serverUpdatedAt >= state.currentReading.updatedAt)\n      ) {\n        state.currentReading = serverSession;\n      }\n      // The legacy reading-tabs endpoint contains reading history from every device,\n      // not a list of desktop tabs to open. Only refresh tabs already opened locally.\n      if (state.closed && state.closed[bookKey]) {\n        return;\n      }\n      const existing = state.list.find(tab => tab.bookKey === bookKey);\n      const serverIsNewer =\n        !existing || !existing.updatedAt || !serverUpdatedAt || serverUpdatedAt >= existing.updatedAt;\n      const serverClearedStaleSection = !!existing && !sectionSlug && isBookSectionLink(existing.link);\n      if (existing && (serverIsNewer || serverClearedStaleSection)) {\n        existing.name = record.name || existing.name;\n        existing.bookName = record.name || existing.bookName;\n        existing.link = link;\n        existing.location = record.section_name || sectionSlug;\n        existing.position = Number(record.scroll_ratio) || 0;\n        existing.paragraphAnchor = record.paragraph_anchor || '';\n        existing.updatedAt = serverUpdatedAt;\n        existing.sectionPositions = {\n          ...(existing.sectionPositions || {}),\n          ...(record.section_positions || {})\n        };\n      }\n    });\n    saveTabs(state);\n    saveCurrentReading(state);\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  mutations\n} as Module<TabsState, RootState>;\n","import StorageService from '@/services/StorageService';\nimport { Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store';\n\nexport type BookmarkType = 'manual';\n\nexport interface Bookmark {\n  id: string | number;\n  type: BookmarkType;\n  bookKey: string;\n  bookName: string;\n  language: string;\n  book: string;\n  link: string;\n  location: string;\n  position: number;\n  anchor?: string;\n  note?: string;\n  updatedAt: string;\n}\n\nexport interface BookmarksState {\n  list: Array<Bookmark>;\n  ownerKey: string;\n}\n\nconst storageKey = (ownerKey: string) => `bookmarks:${ownerKey}`;\n\nconst save = (state: BookmarksState) => {\n  StorageService.save(storageKey(state.ownerKey || 'guest'), state.list);\n};\n\nconst normalize = (records: Array<Bookmark> | null | undefined): Array<Bookmark> =>\n  (Array.isArray(records) ? records : [])\n    .filter(record => record && record.bookKey && record.link)\n    .map(record => ({\n      ...record,\n      type: 'manual',\n      position: Number(record.position) || 0,\n      anchor: record.anchor || '',\n      note: record.note || '',\n      updatedAt: record.updatedAt || ''\n    }));\n\nexport const mapServerBookmark = (record: any): Bookmark | null => {\n  if (!(record && record.language && record.slug)) {\n    return null;\n  }\n  const sectionSlug = record.section_slug || '';\n  return {\n    id: record.id,\n    type: 'manual',\n    bookKey: `${record.language}:${record.slug}`,\n    bookName: record.name || '',\n    language: record.language,\n    book: record.slug,\n    link: sectionSlug\n      ? `/${record.language}/books/${record.slug}/${sectionSlug}`\n      : `/${record.language}/books/${record.slug}`,\n    location: record.section_name || sectionSlug,\n    position: Number(record.scroll_ratio) || 0,\n    anchor: record.paragraph_anchor || '',\n    note: record.note || '',\n    updatedAt: record.updated_at || ''\n  };\n};\n\nconst state: BookmarksState = {\n  list: normalize(StorageService.get(storageKey('guest'))),\n  ownerKey: 'guest'\n};\n\nconst mutations: MutationTree<BookmarksState> = {\n  switchOwner(state, ownerKey: string) {\n    const nextOwnerKey = ownerKey || 'guest';\n    if (state.ownerKey === nextOwnerKey) {\n      return;\n    }\n    state.ownerKey = nextOwnerKey;\n    state.list = normalize(StorageService.get(storageKey(nextOwnerKey)));\n  },\n  mergeServerRecords(state, records: Array<any>) {\n    if (!Array.isArray(records)) {\n      return;\n    }\n    const localBookmarks = state.list.filter(item => String(item.id).startsWith('local:'));\n    const serverBookmarks = records.map(mapServerBookmark).filter(Boolean) as Array<Bookmark>;\n    state.list = [...localBookmarks, ...serverBookmarks];\n    state.list.sort((left, right) => right.updatedAt.localeCompare(left.updatedAt));\n    save(state);\n  },\n  upsert(state, bookmark: Bookmark) {\n    const normalized = normalize([bookmark])[0];\n    if (!normalized) {\n      return;\n    }\n    const index = state.list.findIndex(item => String(item.id) === String(normalized.id));\n    if (index >= 0) {\n      state.list.splice(index, 1, normalized);\n    } else {\n      state.list.unshift(normalized);\n    }\n    state.list.sort((left, right) => right.updatedAt.localeCompare(left.updatedAt));\n    save(state);\n  },\n  remove(state, id: string | number) {\n    state.list = state.list.filter(item => String(item.id) !== String(id));\n    save(state);\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  mutations\n} as Module<BookmarksState, RootState>;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport { Route } from 'vue-router';\nimport CommonLayout from '@/layouts/CommonLayout.vue';\nimport TabsBar from '@/components/TabsBar.vue';\nimport Search from '@/components/Search.vue';\nimport NewTab from '@/views/content/NewTab.vue';\nimport TextTypesFilter from '@/components/TextTypesFilter.vue';\nimport StorageService from '@/services/StorageService';\nimport Catalog from '@/views/nav/Catalog.vue';\nimport NewBooks from '@/views/nav/NewBooks.vue';\nimport StringService from '@/services/StringService';\nimport Settings from '@/components/settings/Settings.vue';\nimport Overlay from '@/components/ui/Overlay.vue';\nimport IconCross from '@/assets/icons/cross.svg';\nimport { getTranslation } from '@/services/Translation';\nimport MobileNavigation from '@/components/mobile/MobileNavigation.vue';\nimport MobileBookmarks from '@/components/mobile/MobileBookmarks.vue';\nimport MobileReaderThemePicker from '@/components/mobile/MobileReaderThemePicker.vue';\nimport MobileBookmarkSheet from '@/components/mobile/MobileBookmarkSheet.vue';\nimport PresentationControls from '@/components/presentation/PresentationControls.vue';\nimport { LANGUAGE_CODE_DEFAULT, LIST_TYPE_DEFAULT } from '@/constants';\nimport { getBookKeyFromLink, isBookSectionLink, Tab } from '@/store/modules/tabs';\nimport NavBookSection from '@/components/nav/NavBookSection.vue';\nimport { Book, BookSection, ListType } from '@/services/Navigation/types';\nimport Loader from '@/components/ui/Loader.vue';\nimport IconArrowDown from '@/assets/icons/arrow-down.svg';\nimport IconCatalogRu from '@/assets/icons/catalog-ru.svg';\nimport IconCatalogEn from '@/assets/icons/catalog-en.svg';\nimport IconCatalogSt from '@/assets/icons/catalog-st.svg';\nimport IconReturn from '@/assets/icons/return.svg';\nimport UserService from '@/services/Api/UserService';\nimport { Bookmark, mapServerBookmark } from '@/store/modules/bookmarks';\nimport UrlBuilderService from '@/services/UrlBuilderService';\n\ntype MobileView =\n  | 'library'\n  | 'search'\n  | 'search-area'\n  | 'book-search'\n  | 'reading'\n  | 'bookmarks'\n  | 'settings'\n  | 'content';\n\ninterface MobileViewTransition {\n  finished: Promise<void>;\n  ready?: Promise<void>;\n  updateCallbackDone?: Promise<void>;\n  skipTransition?: () => void;\n}\n\ninterface ViewTransitionDocument extends Document {\n  startViewTransition?: (update: () => Promise<void> | void) => MobileViewTransition;\n}\n\ninterface MobileVisualViewport {\n  width: number;\n  addEventListener: (type: 'resize', listener: EventListener) => void;\n  removeEventListener: (type: 'resize', listener: EventListener) => void;\n}\n\ninterface MobileWindow extends Window {\n  visualViewport?: MobileVisualViewport;\n}\n\nconst MOBILE_SECTION_ORDER: { [view in MobileView]: number } = {\n  library: 0,\n  content: 0,\n  search: 1,\n  'search-area': 1,\n  'book-search': 1,\n  reading: 2,\n  bookmarks: 3,\n  settings: 4\n};\n\ninterface ReaderScrollEvent {\n  direction: 'up' | 'down';\n  delta: number;\n  top: number;\n  max: number;\n}\n\ninterface MobileCatalogExpansionState {\n  categories: number[];\n  authors: number[];\n  bookLetters: number[];\n  authorLetters: number[];\n  books: string[];\n  foundBooks: string[];\n  sections: string[];\n}\n\ninterface MobileCatalogState {\n  listType: ListType;\n  filterQuery: string;\n  expanded: MobileCatalogExpansionState;\n  scrollTop: number;\n}\n\ntype MobileCatalogStates = {\n  [language: string]: {\n    library: MobileCatalogState;\n    searchArea: MobileCatalogState;\n  };\n};\n\nconst MIN_LEFT_COLUMN_WIDTH = 288;\nconst MAX_LEFT_COLUMN_WIDTH = 488;\nconst LEFT_COLUMN_LOCAL_STORAGE_PARAM = 'leftColumnWidth';\nconst MOBILE_SEARCH_ROUTE_LOCAL_STORAGE_PARAM = 'mobileSearchRoute';\nconst MOBILE_CATALOG_STATES_LOCAL_STORAGE_PARAM = 'mobileCatalogStates';\nconst SAVED_LEFT_COLUMN_WIDTH = parseInt(StorageService.get(LEFT_COLUMN_LOCAL_STORAGE_PARAM));\nconst SAVED_MOBILE_SEARCH_ROUTES = StorageService.get(MOBILE_SEARCH_ROUTE_LOCAL_STORAGE_PARAM);\nconst SAVED_MOBILE_CATALOG_STATES = StorageService.get(MOBILE_CATALOG_STATES_LOCAL_STORAGE_PARAM);\nconst getInitialMobileSearchRoutes = () => {\n  if (\n    SAVED_MOBILE_SEARCH_ROUTES &&\n    typeof SAVED_MOBILE_SEARCH_ROUTES === 'object' &&\n    !Array.isArray(SAVED_MOBILE_SEARCH_ROUTES)\n  ) {\n    return { ...SAVED_MOBILE_SEARCH_ROUTES };\n  }\n  if (typeof SAVED_MOBILE_SEARCH_ROUTES === 'string') {\n    const language = SAVED_MOBILE_SEARCH_ROUTES.split('/').filter(Boolean)[0];\n    return language ? { [language]: SAVED_MOBILE_SEARCH_ROUTES } : {};\n  }\n  return {};\n};\nconst defaultMobileCatalogState = () => ({\n  listType: LIST_TYPE_DEFAULT as ListType,\n  filterQuery: '',\n  scrollTop: 0,\n  expanded: {\n    categories: [],\n    authors: [],\n    bookLetters: [],\n    authorLetters: [],\n    books: [],\n    foundBooks: [],\n    sections: []\n  }\n});\nconst getInitialMobileCatalogStates = (): MobileCatalogStates => {\n  if (\n    !SAVED_MOBILE_CATALOG_STATES ||\n    typeof SAVED_MOBILE_CATALOG_STATES !== 'object' ||\n    Array.isArray(SAVED_MOBILE_CATALOG_STATES) ||\n    SAVED_MOBILE_CATALOG_STATES.library ||\n    SAVED_MOBILE_CATALOG_STATES.searchArea\n  ) {\n    return {};\n  }\n  return { ...SAVED_MOBILE_CATALOG_STATES };\n};\nconst BOOK_ROUTE_NAMES = [\n  'book',\n  'book-section',\n  'category-book',\n  'category-book-section',\n  'author-book',\n  'author-book-section'\n];\nconst BOOK_SECTION_ROUTE_NAMES = ['book-section', 'category-book-section', 'author-book-section'];\n\n@Component({\n  components: {\n    IconCross,\n    IconReturn,\n    IconArrowDown,\n    Loader,\n    MobileNavigation,\n    MobileBookmarks,\n    MobileBookmarkSheet,\n    MobileReaderThemePicker,\n    PresentationControls,\n    NavBookSection,\n    Overlay,\n    Settings,\n    NewBooks,\n    Catalog,\n    CommonLayout,\n    Search,\n    TabsBar,\n    NewTab,\n    TextTypesFilter\n  }\n})\nexport default class Reader extends Vue {\n  leftColumnWidth: number;\n\n  mobileCatalogVisible: boolean = false;\n\n  mobileLanguageMenuVisible: boolean = false;\n\n  mobileThemePickerVisible: boolean = false;\n\n  mobileBookmarkSheetVisible: boolean = false;\n\n  mobileTocInitializedBookKey: string = '';\n\n  mobileView: MobileView = 'library';\n\n  mobileBookSearchName: string = '';\n\n  mobileBookSearchSlug: string = '';\n\n  mobileSearchOverlayVisible: boolean = false;\n\n  mobileReadingResumePending: boolean = false;\n\n  mobileTransitionToken: number = 0;\n\n  mobileActiveTransition?: MobileViewTransition;\n\n  mobileTransitionTimer?: number;\n\n  mobileReaderNavigationRequest?: Promise<void>;\n\n  mobileReaderNavigationKey: string = '';\n\n  mobileSearchRoutes: { [language: string]: string } = getInitialMobileSearchRoutes();\n\n  mobileCatalogStates: MobileCatalogStates = getInitialMobileCatalogStates();\n\n  mobileCatalogRestoreToken: number = 0;\n\n  isCompactViewport: boolean = false;\n\n  isNarrowVisualViewport: boolean = false;\n\n  mobileVisualViewportWidth: number = 0;\n\n  readerChromeVisible: boolean = true;\n\n  readerScrollDirection: 'up' | 'down' | '' = '';\n\n  readerScrollDistance: number = 0;\n\n  readerEndPinToken: number = 0;\n\n  presentationControlsVisible: boolean = true;\n\n  presentationSettingsOpen: boolean = false;\n\n  presentationControlsTimer?: number;\n\n  presentationOwnsFullscreen: boolean = false;\n\n  prevPageX: number = 0;\n\n  getTranslation = getTranslation;\n\n  @State('visible', { namespace: 'settings' })\n  isSettingsVisible!: boolean;\n\n  @Mutation('hide', { namespace: 'settings' })\n  hideSettings!: Function;\n\n  @Mutation('setLanguage', { namespace: 'navigation' })\n  setNavLanguage!: Function;\n\n  @Mutation('setReadMode', { namespace: 'reader' })\n  setReadMode!: Function;\n\n  @Mutation('setTextTypesFilterVisible', { namespace: 'reader' })\n  setTextTypesFilterVisible!: Function;\n\n  @State('presentationMode', { namespace: 'reader' })\n  presentationMode!: boolean;\n\n  @Mutation('setPresentationMode', { namespace: 'reader' })\n  setPresentationMode!: Function;\n\n  @Mutation('setPresentationScale', { namespace: 'reader' })\n  setPresentationScale!: Function;\n\n  @Mutation('setPresentationAutoFit', { namespace: 'reader' })\n  setPresentationAutoFit!: Function;\n\n  @Mutation('switchPresentationTextTypeFilter', { namespace: 'reader' })\n  switchPresentationTextTypeFilter!: Function;\n\n  @Mutation('setColorMode', { namespace: 'reader' })\n  setColorMode!: Function;\n\n  @State('language', { namespace: 'navigation' })\n  navLanguage!: string;\n\n  @Getter('currentBook', { namespace: 'navigation' })\n  currentBook?: Book;\n\n  @Getter('currentBookSection', { namespace: 'navigation' })\n  currentBookSection?: BookSection;\n\n  @Getter('currentBookSections', { namespace: 'navigation' })\n  currentBookSections?: Array<BookSection>;\n\n  @Getter('checkedBooks', { namespace: 'navigation' })\n  checkedBooks!: Array<Book>;\n\n  @Getter('selectedBooksCount', { namespace: 'navigation' })\n  selectedBooksCount!: number;\n\n  constructor() {\n    super();\n    this.leftColumnWidth = Reader.normalizeLeftColumnWidth(SAVED_LEFT_COLUMN_WIDTH) || MIN_LEFT_COLUMN_WIDTH;\n  }\n\n  mounted() {\n    this.updateViewport();\n    window.addEventListener('resize', this.updateViewport);\n    if (this.visualViewport) {\n      this.visualViewport.addEventListener('resize', this.updateViewport);\n    }\n    document.addEventListener('keydown', this.onDocumentKeydown);\n    document.addEventListener('fullscreenchange', this.onFullscreenChange);\n    this.$root.$on('reader-scroll', this.onReaderScroll);\n    this.$root.$on('reader-link-selected', this.onReaderLinkSelected);\n    this.onRouteChange(this.$route);\n    this.hydrateReadingState();\n  }\n\n  beforeDestroy() {\n    window.removeEventListener('resize', this.updateViewport);\n    if (this.visualViewport) {\n      this.visualViewport.removeEventListener('resize', this.updateViewport);\n    }\n    if (this.mobileTransitionTimer !== undefined) {\n      window.clearTimeout(this.mobileTransitionTimer);\n    }\n    document.removeEventListener('keydown', this.onDocumentKeydown);\n    document.removeEventListener('fullscreenchange', this.onFullscreenChange);\n    this.$root.$off('reader-scroll', this.onReaderScroll);\n    this.$root.$off('reader-link-selected', this.onReaderLinkSelected);\n    this.readerEndPinToken += 1;\n    if (this.presentationControlsTimer !== undefined) {\n      window.clearTimeout(this.presentationControlsTimer);\n    }\n    this.setPresentationMode(false);\n  }\n\n  @Watch('$route')\n  onRouteChange(to: Route, from?: Route) {\n    if (typeof this.syncPresentationModeWithRoute === 'function') {\n      this.syncPresentationModeWithRoute(to);\n    }\n    this.mobileCatalogVisible = false;\n    this.mobileLanguageMenuVisible = false;\n    this.mobileThemePickerVisible = false;\n    this.mobileBookmarkSheetVisible = false;\n    this.readerEndPinToken += 1;\n    this.resetReaderScrollIntent();\n    if (this.isCompactViewport) {\n      if (to.name === 'search-results' && to.query.scope !== '1' && to.query.bookSearch !== '1') {\n        this.mobileSearchRoutes[to.params.language] = to.fullPath;\n        StorageService.save(MOBILE_SEARCH_ROUTE_LOCAL_STORAGE_PARAM, this.mobileSearchRoutes);\n      }\n      this.syncMobileViewWithRoute();\n      if (!from || to.path !== from.path) {\n        this.readerChromeVisible = true;\n        this.setTextTypesFilterVisible(false);\n      }\n    }\n    let route = to.path;\n    if (to.query) {\n      let query = { ...to.query };\n      delete query.reading;\n      delete query.bookmark;\n      const queryString = StringService.objectToQueryString(query);\n      route = queryString.length ? `${route}?${queryString}` : route;\n    }\n    const routeName = to.name || '';\n    if (BOOK_ROUTE_NAMES.includes(routeName) && to.params.language && to.params.book) {\n      UserService.openReadingTab(to.params.language, to.params.book);\n      const isSectionRoute = BOOK_SECTION_ROUTE_NAMES.includes(routeName);\n      this.$store.commit('tabs/activateBookTab', {\n        bookKey: `${to.params.language}:${to.params.book}`,\n        link: route,\n        location: isSectionRoute ? to.params.bookSection : undefined,\n        preserveLastLocation: !isSectionRoute\n      });\n    } else {\n      this.$store.commit('tabs/activateRouteTab', { link: route });\n    }\n    if (this.isCompactViewport) {\n      this.$store.commit('tabs/keepOnlyActiveTab');\n    }\n    this.updateNavLanguage();\n    if (typeof this.ensureMobileReaderNavigation === 'function') {\n      this.ensureMobileReaderNavigation(to);\n    }\n  }\n\n  @Watch('$store.state.navigation.loading')\n  onNavigationLoadingChange(loading: boolean, wasLoading: boolean) {\n    if (!this.isCompactViewport || loading || !wasLoading) {\n      return;\n    }\n    if (this.mobileView === 'library' || this.mobileView === 'search-area') {\n      this.restoreMobileCatalogState(this.mobileView === 'library' ? 'library' : 'searchArea');\n    }\n  }\n\n  updateNavLanguage() {\n    // initialization of language variable\n    // we initialize it here, since it's the parent component for all components in the left column, where this variable could be used\n    if (this.isCompactViewport && !this.$route.params.language) {\n      if (!this.navLanguage) {\n        this.setNavLanguage(LANGUAGE_CODE_DEFAULT);\n      }\n      return;\n    }\n    this.setNavLanguage(this.$route.params.language || '');\n  }\n\n  ensureMobileReaderNavigation(route: Route) {\n    if (\n      !this.isCompactViewport ||\n      !BOOK_SECTION_ROUTE_NAMES.includes(route.name || '') ||\n      !route.params.language ||\n      !route.params.book\n    ) {\n      return;\n    }\n    const language = route.params.language;\n    const bookSlug = route.params.book;\n    const sectionSlug = route.params.bookSection || '';\n    const cachedSection = this.currentBookSection;\n    if (\n      cachedSection &&\n      cachedSection.book.language === language &&\n      cachedSection.book.slug === bookSlug &&\n      cachedSection.slug === route.params.bookSection\n    ) {\n      this.$store.commit('navigation/setError', false);\n      return;\n    }\n    const navigationKey = `${language}:${bookSlug}:${sectionSlug}`;\n    if (this.mobileReaderNavigationRequest && this.mobileReaderNavigationKey === navigationKey) {\n      return;\n    }\n    this.mobileReaderNavigationKey = navigationKey;\n    this.mobileReaderNavigationRequest = this.prepareMobileReaderNavigation(language, bookSlug, sectionSlug)\n      .catch(() => {\n        // BookContent owns the visible error state for a failed direct route.\n      })\n      .finally(() => {\n        this.mobileReaderNavigationRequest = undefined;\n        this.mobileReaderNavigationKey = '';\n      });\n  }\n\n  async prepareMobileReaderNavigation(language: string, bookSlug: string, sectionSlug: string = '') {\n    this.setNavLanguage(language);\n    let navigationData = this.$store.state.navigation.data[language];\n    if (!navigationData || !navigationData.booksAlphabet.length) {\n      await this.$store.dispatch('navigation/fetch', language);\n      navigationData = this.$store.state.navigation.data[language];\n    }\n    const cachedBook = navigationData && navigationData.books[bookSlug];\n    const hasRequestedSection =\n      cachedBook &&\n      (!sectionSlug ||\n        cachedBook.is_article ||\n        cachedBook.children.some((section: BookSection) => section.slug === sectionSlug));\n    if (hasRequestedSection) {\n      this.$store.commit('navigation/setError', false);\n      return;\n    }\n    await this.$store.dispatch('navigation/highlightLetterByBookSlug', {\n      language,\n      bookSlug\n    });\n  }\n\n  get activeTab() {\n    return this.$store.state.tabs.list.find((tab: { active: boolean }) => tab.active);\n  }\n\n  get currentReadingSession() {\n    return this.$store.state.tabs.currentReading as Tab | null;\n  }\n\n  get readerBook() {\n    return this.currentBook || (this.currentBookSection && this.currentBookSection.book);\n  }\n\n  get readerBookRootSections() {\n    return this.readerBook\n      ? (this.readerBook.children || []).filter((section: BookSection) => section.depth === 0)\n      : [];\n  }\n\n  get presentationSections() {\n    return this.currentBookSections || [];\n  }\n\n  get presentationCurrentIndex() {\n    if (!this.currentBookSection) {\n      return 0;\n    }\n    return Math.max(\n      0,\n      this.presentationSections.findIndex(section => section.id === this.currentBookSection!.id)\n    );\n  }\n\n  get presentationHasPrevious() {\n    return this.presentationCurrentIndex > 0;\n  }\n\n  get presentationHasNext() {\n    return this.presentationCurrentIndex < this.presentationSections.length - 1;\n  }\n\n  get presentationBookTitle() {\n    return this.readerBook ? this.readerBook.name : '';\n  }\n\n  get presentationSectionTitle() {\n    return this.currentBookSection ? this.currentBookSection.name : '';\n  }\n\n  get visualViewport() {\n    return (window as MobileWindow).visualViewport;\n  }\n\n  get catalogLanguages() {\n    return [\n      { code: 'ru', label: getTranslation('russian'), icon: IconCatalogRu },\n      { code: 'en', label: getTranslation('english'), icon: IconCatalogEn },\n      { code: 'st', label: getTranslation('sanskrit'), icon: IconCatalogSt }\n    ];\n  }\n\n  get currentCatalogLanguage() {\n    return (\n      this.catalogLanguages.find(language => language.code === this.navLanguage) || this.catalogLanguages[0]\n    );\n  }\n\n  get isBookSectionRoute() {\n    return ['book-section', 'category-book-section', 'author-book-section'].includes(this.$route.name || '');\n  }\n\n  get isBookRoute() {\n    return ['book', 'category-book', 'author-book'].includes(this.$route.name || '');\n  }\n\n  get mobileReader() {\n    return this.isCompactViewport && this.isBookSectionRoute;\n  }\n\n  get showMobileContent() {\n    return (\n      this.mobileView === 'content' ||\n      (['search', 'book-search'].includes(this.mobileView) && this.$route.name === 'search-results')\n    );\n  }\n\n  get mobileNavigationView() {\n    if (\n      this.mobileReadingResumePending ||\n      this.mobileView === 'reading' ||\n      (this.mobileView === 'content' && this.isBookSectionRoute)\n    ) {\n      return 'reading';\n    }\n    if (this.mobileView === 'content') {\n      return 'library';\n    }\n    return ['search-area', 'book-search'].includes(this.mobileView) ? 'search' : this.mobileView;\n  }\n\n  get mobileSettingsReturnTo() {\n    const returnTo = this.$route.query.returnTo;\n    return typeof returnTo === 'string' && this.isSafeInternalRoute(returnTo) ? returnTo : '';\n  }\n\n  updateViewport() {\n    const wasCompact = this.isCompactViewport;\n    this.isCompactViewport = window.innerWidth <= 1024;\n    this.mobileVisualViewportWidth = this.visualViewport ? this.visualViewport.width : window.innerWidth;\n    this.isNarrowVisualViewport = this.isCompactViewport && this.mobileVisualViewportWidth < 240;\n    if (this.isCompactViewport && !wasCompact) {\n      this.syncMobileViewWithRoute();\n    } else if (!this.isCompactViewport && wasCompact) {\n      this.readerChromeVisible = true;\n      if (!this.presentationMode) {\n        this.setReadMode(false);\n      }\n    }\n  }\n\n  syncMobileViewWithRoute() {\n    if (this.isBookSectionRoute) {\n      this.mobileView = 'content';\n      this.setReadMode(true);\n      return;\n    }\n    this.setReadMode(false);\n    if (this.$route.name === 'search-results') {\n      if (this.$route.query.bookSearch === '1' && typeof this.$route.query.slug === 'string') {\n        this.mobileView = 'book-search';\n        const bookSlug = this.$route.query.slug;\n        const bookKey = `${this.$route.params.language}:${bookSlug}`;\n        const bookTab = this.$store.state.tabs.list.find(\n          (tab: Tab) => tab.bookKey === bookKey && tab.bookName\n        ) as Tab | undefined;\n        const preservedBookName = this.mobileBookSearchSlug === bookSlug ? this.mobileBookSearchName : '';\n        this.mobileBookSearchName = (bookTab && bookTab.bookName) || preservedBookName || bookSlug;\n        this.mobileBookSearchSlug = bookSlug;\n        this.$store.commit('navigation/setShowSearchResultsFlag', false);\n        return;\n      }\n      this.mobileView = this.$route.query.scope === '1' ? 'search-area' : 'search';\n      this.restoreMobileCatalogState(this.mobileView === 'search-area' ? 'searchArea' : 'library');\n      this.$store.commit(\n        'navigation/setShowSearchResultsFlag',\n        this.mobileView === 'search' &&\n          typeof this.$route.query.query === 'string' &&\n          !!this.$route.query.query\n      );\n    } else if (this.$route.name === 'mobile-library') {\n      this.mobileView = 'library';\n      this.restoreMobileCatalogState('library');\n      this.$store.commit('navigation/setShowSearchResultsFlag', false);\n    } else if (this.$route.name === 'mobile-bookmarks') {\n      this.mobileView = 'bookmarks';\n    } else if (this.$route.name === 'mobile-settings') {\n      this.mobileView = 'settings';\n    } else if (this.isBookRoute || this.$route.name === 'author-bio' || this.$route.name === 'help') {\n      this.mobileView = 'content';\n    } else if (this.$route.path === '/') {\n      this.mobileView = 'library';\n      this.restoreMobileCatalogState('library');\n      this.$store.commit('navigation/setShowSearchResultsFlag', false);\n    }\n    if (this.mobileView === 'library' && !this.navLanguage) {\n      this.setNavLanguage(this.$route.params.language || LANGUAGE_CODE_DEFAULT);\n    }\n  }\n\n  openMobileView(view: MobileView) {\n    if (this.mobileReadingResumePending) {\n      return;\n    }\n    const previousView = this.mobileView;\n    const readingReturnTo = this.mobileReader ? this.captureMobileReadingReturnRoute() : '';\n    const navigate = async () => {\n      if (previousView === 'search-area') {\n        this.saveMobileCatalogState('searchArea');\n      } else if (previousView === 'library') {\n        this.saveMobileCatalogState('library');\n      }\n      this.mobileCatalogVisible = false;\n      this.readerChromeVisible = true;\n      this.setTextTypesFilterVisible(false);\n      if (view === 'reading') {\n        this.mobileReadingResumePending = true;\n        try {\n          await this.resumeCurrentReading();\n        } finally {\n          this.mobileReadingResumePending = false;\n        }\n        return;\n      }\n      this.mobileView = view;\n      this.setReadMode(false);\n      const language = this.$route.params.language || this.navLanguage || LANGUAGE_CODE_DEFAULT;\n      if (view === 'library') {\n        this.restoreMobileCatalogState('library');\n        this.$store.commit('navigation/setShowSearchResultsFlag', false);\n        this.setNavLanguage(language);\n        const libraryRoute = `/${language}/library`;\n        if (this.$route.path !== libraryRoute) {\n          await this.$router.push(libraryRoute);\n        }\n        return;\n      }\n      if (view === 'search') {\n        const savedSearchRoute = this.mobileSearchRoutes[language] || '';\n        const searchRoute = this.sanitizeGlobalSearchRoute(savedSearchRoute || `/${language}/search`);\n        if (this.$route.fullPath !== searchRoute) {\n          await this.$router.push(searchRoute);\n        } else {\n          this.$store.commit(\n            'navigation/setShowSearchResultsFlag',\n            typeof this.$route.query.query === 'string' && !!this.$route.query.query\n          );\n        }\n        return;\n      }\n      if (view === 'bookmarks' || view === 'settings') {\n        const route =\n          view === 'settings' && readingReturnTo\n            ? `/${language}/settings?${new URLSearchParams({ returnTo: readingReturnTo }).toString()}`\n            : `/${language}/${view}`;\n        if (this.$route.path !== route) {\n          await this.$router.push(route);\n        }\n      }\n    };\n\n    const fromIndex = MOBILE_SECTION_ORDER[previousView];\n    const toIndex = MOBILE_SECTION_ORDER[view];\n    const viewTransitionDocument = document as ViewTransitionDocument;\n    const reduceMotion =\n      typeof window.matchMedia === 'function' &&\n      window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    if (\n      !this.isCompactViewport ||\n      view === 'reading' ||\n      fromIndex === toIndex ||\n      reduceMotion ||\n      !viewTransitionDocument.startViewTransition\n    ) {\n      navigate();\n      return;\n    }\n\n    const transitionClass =\n      toIndex > fromIndex ? 'mobile-section-transition-forward' : 'mobile-section-transition-backward';\n    const transitionToken = ++this.mobileTransitionToken;\n    document.documentElement.classList.remove(\n      'mobile-section-transition-forward',\n      'mobile-section-transition-backward'\n    );\n    document.documentElement.classList.add(transitionClass);\n    if (this.mobileActiveTransition && this.mobileActiveTransition.skipTransition) {\n      this.mobileActiveTransition.skipTransition();\n    }\n    const transition = viewTransitionDocument.startViewTransition(async () => {\n      await navigate();\n      await this.$nextTick();\n    });\n    this.mobileActiveTransition = transition;\n    if (this.mobileTransitionTimer !== undefined) {\n      window.clearTimeout(this.mobileTransitionTimer);\n    }\n    this.mobileTransitionTimer = window.setTimeout(() => {\n      if (this.mobileActiveTransition === transition && transition.skipTransition) {\n        transition.skipTransition();\n      }\n      this.finishMobileViewTransition(transition, transitionClass, transitionToken);\n    }, 400);\n    if (transition.ready) {\n      transition.ready.catch(() => {});\n    }\n    if (transition.updateCallbackDone) {\n      transition.updateCallbackDone.catch(() => {});\n    }\n    transition.finished.then(\n      () => this.finishMobileViewTransition(transition, transitionClass, transitionToken),\n      () => this.finishMobileViewTransition(transition, transitionClass, transitionToken)\n    );\n  }\n\n  finishMobileViewTransition(\n    transition: MobileViewTransition,\n    transitionClass: string,\n    transitionToken: number\n  ) {\n    if (this.mobileActiveTransition === transition) {\n      this.mobileActiveTransition = undefined;\n      if (this.mobileTransitionTimer !== undefined) {\n        window.clearTimeout(this.mobileTransitionTimer);\n        this.mobileTransitionTimer = undefined;\n      }\n    }\n    if (transitionToken === this.mobileTransitionToken) {\n      document.documentElement.classList.remove(transitionClass);\n    }\n  }\n\n  sanitizeGlobalSearchRoute(route: string) {\n    const [path, queryString = ''] = route.split('?');\n    const query = new URLSearchParams(queryString);\n    ['slug', 'bookId', 'inBookOnly', 'bookSearch', 'returnTo', 'index', 'highlight', 'reading'].forEach(\n      name => query.delete(name)\n    );\n    const normalizedQuery = query.toString();\n    return normalizedQuery ? `${path}?${normalizedQuery}` : path;\n  }\n\n  async resumeCurrentReading() {\n    const session = this.currentReadingSession;\n    if (!(session && session.bookKey && session.link)) {\n      return false;\n    }\n    const [language, book] = session.bookKey.split(':');\n    const link = session.link.split('?')[0];\n    const segments = link.split('/').filter(Boolean);\n    const section = segments[segments.length - 1] === book ? '' : segments[segments.length - 1];\n    await this.prepareMobileReaderNavigation(language, book, section);\n    this.$store.commit('tabs/activateBookTab', {\n      bookKey: session.bookKey,\n      link,\n      name: session.name,\n      bookName: session.bookName,\n      location: session.location,\n      position: session.position,\n      paragraphAnchor: session.paragraphAnchor || ''\n    });\n    this.$store.commit('tabs/keepOnlyActiveTab');\n    const route = {\n      path: link,\n      query: {\n        reading: '1',\n        resume: '1',\n        position: String(Math.max(0, Math.min(1, Number(session.position) || 0))),\n        ...(session.paragraphAnchor ? { anchor: session.paragraphAnchor } : {})\n      }\n    };\n    try {\n      await this.$router.push(route);\n    } catch (error) {\n      if (!(error && (error as { name?: string }).name === 'NavigationDuplicated')) {\n        return false;\n      }\n    }\n    this.mobileView = 'content';\n    this.setReadMode(true);\n    return true;\n  }\n\n  openMobileBookSearch() {\n    const language = this.$route.params.language || this.navLanguage || LANGUAGE_CODE_DEFAULT;\n    const book = this.$route.params.book;\n    if (!book) {\n      return;\n    }\n    const returnTo = this.captureMobileReadingReturnRoute() || this.$route.fullPath;\n    const query = new URLSearchParams({\n      slug: book,\n      inBookOnly: '1',\n      bookSearch: '1',\n      returnTo\n    });\n    const currentBookId =\n      (this.currentBook && this.currentBook.slug === book && this.currentBook.id) ||\n      (this.currentBookSection &&\n        this.currentBookSection.book.slug === book &&\n        this.currentBookSection.book.id);\n    if (currentBookId) {\n      query.set('bookId', currentBookId.toString());\n    }\n    const bookTab = this.$store.state.tabs.list.find(\n      (tab: Tab) => tab.bookKey === `${language}:${book}` && tab.bookName\n    ) as Tab | undefined;\n    this.mobileBookSearchName = (bookTab && bookTab.bookName) || book;\n    this.mobileBookSearchSlug = book;\n    this.$router.push(`/${language}/search?${query.toString()}`);\n  }\n\n  closeMobileBookSearch() {\n    const returnTo = this.$route.query.returnTo;\n    if (typeof returnTo === 'string' && returnTo) {\n      this.$store.commit('navigation/setError', false);\n      this.$router.replace(returnTo);\n      return;\n    }\n    const language = this.$route.params.language || this.navLanguage || LANGUAGE_CODE_DEFAULT;\n    const book = this.$route.query.slug;\n    this.$router.push(\n      typeof book === 'string' && book ? `/${language}/books/${book}` : `/${language}/library`\n    );\n  }\n\n  captureMobileReadingReturnRoute() {\n    if (!this.isBookSectionRoute) {\n      return '';\n    }\n    const payload = this.currentBookmarkPayload();\n    const query = new URLSearchParams();\n    Object.entries(this.$route.query || {}).forEach(([name, value]) => {\n      if (typeof value === 'string' && !['bookmark', 'toc', 'resume', 'position', 'anchor'].includes(name)) {\n        query.set(name, value);\n      }\n    });\n    query.set('reading', '1');\n    if (payload) {\n      query.set('resume', '1');\n      query.set('position', String(Math.max(0, Math.min(1, Number(payload.position) || 0))));\n      if (payload.anchor) {\n        query.set('anchor', payload.anchor);\n      }\n    }\n    const queryString = query.toString();\n    return queryString ? `${this.$route.path}?${queryString}` : this.$route.path;\n  }\n\n  isSafeInternalRoute(route: string) {\n    return route.startsWith('/') && !route.startsWith('//') && !/[\\r\\n]/.test(route);\n  }\n\n  returnToMobileReader() {\n    const returnTo = this.mobileSettingsReturnTo;\n    if (!returnTo) {\n      return;\n    }\n    this.$store.commit('navigation/setError', false);\n    this.$router.replace(returnTo).catch(() => {});\n  }\n\n  openMobileSearchArea() {\n    this.saveMobileCatalogState('library');\n    this.restoreMobileCatalogState('searchArea');\n    this.$store.commit('navigation/setShowSearchResultsFlag', false);\n    this.mobileView = 'search-area';\n    this.mobileCatalogVisible = false;\n    this.mobileLanguageMenuVisible = false;\n    this.readerChromeVisible = true;\n    this.setTextTypesFilterVisible(false);\n    this.setReadMode(false);\n    if (this.$route.name === 'search-results' && this.$route.query.scope !== '1') {\n      this.$router.push({ query: { ...this.$route.query, scope: '1' } });\n    }\n  }\n\n  closeMobileSearchArea() {\n    this.saveMobileCatalogState('searchArea');\n    this.restoreMobileCatalogState('library');\n    this.mobileView = 'search';\n    this.readerChromeVisible = true;\n    this.$store.commit(\n      'navigation/setShowSearchResultsFlag',\n      typeof this.$route.query.query === 'string' && !!this.$route.query.query\n    );\n    if (this.$route.name === 'search-results' && this.$route.query.scope === '1') {\n      const query = { ...this.$route.query };\n      delete query.scope;\n      this.$router.replace({ query });\n    }\n  }\n\n  changeCatalogLanguage(language: string) {\n    if (this.isCompactViewport && this.mobileView === 'library') {\n      this.saveMobileCatalogState('library');\n    }\n    this.setNavLanguage(language);\n    this.mobileLanguageMenuVisible = false;\n    if (this.isCompactViewport && this.mobileView === 'library') {\n      const libraryRoute = `/${language}/library`;\n      if (this.$route.path !== libraryRoute) {\n        this.$router.push(libraryRoute);\n      }\n    }\n  }\n\n  toggleMobileLanguageMenu() {\n    this.mobileLanguageMenuVisible = !this.mobileLanguageMenuVisible;\n    if (this.mobileLanguageMenuVisible) {\n      this.$nextTick(() => {\n        const options = (this.$refs.mobileLanguageOptions || []) as HTMLElement[];\n        const selectedIndex = this.catalogLanguages.findIndex(language => language.code === this.navLanguage);\n        const selected = options[Math.max(0, selectedIndex)];\n        if (selected) {\n          selected.focus();\n        }\n      });\n    }\n  }\n\n  closeMobileLanguageMenu(restoreFocus: boolean = false) {\n    this.mobileLanguageMenuVisible = false;\n    if (restoreFocus) {\n      this.$nextTick(() => {\n        const trigger = this.$refs.mobileLanguageTrigger as HTMLElement;\n        if (trigger) {\n          trigger.focus();\n        }\n      });\n    }\n  }\n\n  onDocumentKeydown(event: KeyboardEvent) {\n    if (this.presentationMode) {\n      this.onPresentationActivity();\n      if (event.key === 'Escape') {\n        event.preventDefault();\n        this.exitPresentationMode();\n        return;\n      }\n      if (this.presentationSettingsOpen) {\n        return;\n      }\n      if (['ArrowLeft', 'PageUp'].includes(event.key)) {\n        event.preventDefault();\n        this.navigatePresentation(-1);\n        return;\n      }\n      if (['ArrowRight', 'PageDown', ' '].includes(event.key)) {\n        event.preventDefault();\n        this.navigatePresentation(1);\n      }\n      return;\n    }\n    if (!this.mobileLanguageMenuVisible) {\n      return;\n    }\n    if (event.key === 'Escape') {\n      event.preventDefault();\n      this.closeMobileLanguageMenu(true);\n      return;\n    }\n    if (event.key === 'Tab') {\n      this.closeMobileLanguageMenu();\n      return;\n    }\n    if (!['ArrowDown', 'ArrowUp'].includes(event.key)) {\n      return;\n    }\n    const options = (this.$refs.mobileLanguageOptions || []) as HTMLElement[];\n    if (!options.length) {\n      return;\n    }\n    event.preventDefault();\n    const currentIndex = options.indexOf(document.activeElement as HTMLElement);\n    const direction = event.key === 'ArrowDown' ? 1 : -1;\n    const nextIndex = (currentIndex + direction + options.length) % options.length;\n    options[nextIndex].focus();\n  }\n\n  syncPresentationModeWithRoute(route: Route) {\n    const requested = BOOK_SECTION_ROUTE_NAMES.includes(route.name || '') && route.query.presentation === '1';\n    if (requested) {\n      this.setReadMode(true);\n      this.setPresentationMode(true);\n      this.onPresentationActivity();\n    } else if (this.presentationMode) {\n      this.deactivatePresentation(false);\n    }\n  }\n\n  enterPresentationMode() {\n    if (!this.isBookSectionRoute) {\n      return;\n    }\n    this.mobileCatalogVisible = false;\n    this.mobileThemePickerVisible = false;\n    this.mobileBookmarkSheetVisible = false;\n    this.setTextTypesFilterVisible(false);\n    this.setReadMode(true);\n    this.setPresentationMode(true);\n    this.presentationSettingsOpen = false;\n    this.onPresentationActivity();\n\n    const query: { [key: string]: any } = {\n      ...this.$route.query,\n      reading: '1',\n      presentation: '1'\n    };\n    delete query.bookmark;\n    delete query.resume;\n    delete query.toc;\n    delete query.position;\n    delete query.anchor;\n    this.$router.replace({ path: this.$route.path, query }).catch(() => {});\n\n    const fullscreenElement = document.documentElement as HTMLElement & {\n      requestFullscreen?: () => Promise<void>;\n    };\n    if (!document.fullscreenElement && fullscreenElement.requestFullscreen) {\n      this.presentationOwnsFullscreen = true;\n      fullscreenElement.requestFullscreen().catch(() => {\n        this.presentationOwnsFullscreen = false;\n      });\n    }\n  }\n\n  exitPresentationMode() {\n    this.deactivatePresentation(true);\n  }\n\n  deactivatePresentation(syncRoute: boolean) {\n    this.setPresentationMode(false);\n    this.presentationSettingsOpen = false;\n    this.presentationControlsVisible = true;\n    if (this.presentationControlsTimer !== undefined) {\n      window.clearTimeout(this.presentationControlsTimer);\n      this.presentationControlsTimer = undefined;\n    }\n    const shouldExitFullscreen = this.presentationOwnsFullscreen && !!document.fullscreenElement;\n    this.presentationOwnsFullscreen = false;\n    if (shouldExitFullscreen && document.exitFullscreen) {\n      document.exitFullscreen().catch(() => {});\n    }\n    if (syncRoute && this.$route.query.presentation === '1') {\n      const query = { ...this.$route.query };\n      delete query.presentation;\n      this.$router.replace({ path: this.$route.path, query }).catch(() => {});\n    }\n  }\n\n  onFullscreenChange() {\n    if (this.presentationMode && this.presentationOwnsFullscreen && !document.fullscreenElement) {\n      this.presentationOwnsFullscreen = false;\n      this.deactivatePresentation(true);\n    }\n  }\n\n  onPresentationActivity() {\n    if (!this.presentationMode) {\n      return;\n    }\n    this.presentationControlsVisible = true;\n    if (this.presentationControlsTimer !== undefined) {\n      window.clearTimeout(this.presentationControlsTimer);\n    }\n    if (this.presentationSettingsOpen) {\n      this.presentationControlsTimer = undefined;\n      return;\n    }\n    this.presentationControlsTimer = window.setTimeout(() => {\n      this.presentationControlsVisible = false;\n      this.presentationControlsTimer = undefined;\n    }, 3000);\n  }\n\n  onPresentationSettingsChange(open: boolean) {\n    this.presentationSettingsOpen = open;\n    this.onPresentationActivity();\n  }\n\n  updatePresentationScale(scale: number) {\n    this.setPresentationAutoFit(false);\n    this.setPresentationScale(Number(scale.toFixed(1)));\n    this.onPresentationActivity();\n  }\n\n  navigatePresentation(direction: number) {\n    const target = this.presentationSections[this.presentationCurrentIndex + direction];\n    if (!target) {\n      return;\n    }\n    const path = UrlBuilderService.getBookSectionUrl({\n      language: target.book.language,\n      categorySlug: this.$route.params.category,\n      authorSlug: this.$route.params.author,\n      bookSlug: target.book.slug,\n      bookSectionSlug: target.slug\n    });\n    this.$router.push({ path, query: { reading: '1', presentation: '1' } }).catch(() => {});\n    this.onPresentationActivity();\n  }\n\n  saveMobileCatalogState(context: 'library' | 'searchArea') {\n    const language = this.$route.params.language || this.navLanguage || LANGUAGE_CODE_DEFAULT;\n    const states = this.getMobileCatalogStates(language);\n    const scrollElement = this.getMobileCatalogScrollElement(context);\n    states[context] = {\n      listType: this.$store.state.navigation.listType,\n      filterQuery: this.$store.state.navigation.filterQuery,\n      expanded: this.captureMobileCatalogExpansion(),\n      scrollTop: scrollElement ? scrollElement.scrollTop : states[context].scrollTop || 0\n    };\n    StorageService.save(MOBILE_CATALOG_STATES_LOCAL_STORAGE_PARAM, this.mobileCatalogStates);\n  }\n\n  async restoreMobileCatalogState(context: 'library' | 'searchArea') {\n    const language = this.$route.params.language || this.navLanguage || LANGUAGE_CODE_DEFAULT;\n    const state = this.getMobileCatalogStates(language)[context];\n    const restoreToken = ++this.mobileCatalogRestoreToken;\n    if (this.$store.state.navigation.language !== language) {\n      this.setNavLanguage(language);\n    }\n    this.$store.commit('navigation/setListType', state.listType);\n    this.$store.commit('navigation/updateFilterQuery', state.filterQuery);\n    this.$store.commit('navigation/resetFilter');\n    if (state.filterQuery) {\n      await this.$store.dispatch('navigation/filter', {\n        language,\n        query: state.filterQuery\n      });\n    }\n    if (\n      restoreToken !== this.mobileCatalogRestoreToken ||\n      this.$store.state.navigation.language !== language\n    ) {\n      return;\n    }\n    this.$store.commit('navigation/restoreExpansionState', state.expanded);\n    await this.$nextTick();\n    window.requestAnimationFrame(() => {\n      if (restoreToken !== this.mobileCatalogRestoreToken) {\n        return;\n      }\n      const scrollElement = this.getMobileCatalogScrollElement(context);\n      if (scrollElement) {\n        scrollElement.scrollTop = state.scrollTop || 0;\n      }\n    });\n  }\n\n  getMobileCatalogStates(language: string) {\n    if (!this.mobileCatalogStates[language]) {\n      this.$set(this.mobileCatalogStates, language, {\n        library: defaultMobileCatalogState(),\n        searchArea: defaultMobileCatalogState()\n      });\n    }\n    return this.mobileCatalogStates[language];\n  }\n\n  getMobileCatalogScrollElement(context: 'library' | 'searchArea') {\n    const modeClass = context === 'library' ? 'mobile-library' : 'mobile-search-area';\n    const root = this.$el as HTMLElement | undefined;\n    if (!(root && typeof root.querySelector === 'function')) {\n      return null;\n    }\n    return root.querySelector(`.left.${modeClass} .nav-catalog-tree-inner`) as HTMLElement | null;\n  }\n\n  captureMobileCatalogExpansion(): MobileCatalogExpansionState {\n    const data = this.$store.getters['navigation/dataFromStateLanguage'];\n    const sections: string[] = [];\n    const collectSections = (items: Array<BookSection>, bookSlug: string) => {\n      items.forEach(section => {\n        if (section.expanded) {\n          sections.push(`${bookSlug}:${section.id}`);\n        }\n        collectSections(section.children || [], bookSlug);\n      });\n    };\n    Object.values(data.books || {}).forEach((book: any) => collectSections(book.children || [], book.slug));\n    Object.values(data.foundBooks || {}).forEach((book: any) =>\n      collectSections(book.children || [], book.slug)\n    );\n    return {\n      categories: (data.categories || []).filter((item: any) => item.expanded).map((item: any) => item.id),\n      authors: (data.authors || []).filter((item: any) => item.expanded).map((item: any) => item.id),\n      bookLetters: (data.booksAlphabet || [])\n        .filter((item: any) => item.expanded)\n        .map((item: any) => item.id),\n      authorLetters: (data.authorsAlphabet || [])\n        .filter((item: any) => item.expanded)\n        .map((item: any) => item.id),\n      books: Object.values(data.books || {})\n        .filter((item: any) => item.expanded)\n        .map((item: any) => item.slug),\n      foundBooks: Object.values(data.foundBooks || {})\n        .filter((item: any) => item.expanded)\n        .map((item: any) => item.slug),\n      sections\n    };\n  }\n\n  openReaderCatalog() {\n    this.readerChromeVisible = true;\n    this.setTextTypesFilterVisible(false);\n    this.mobileThemePickerVisible = false;\n    if (this.readerBook && this.mobileTocInitializedBookKey !== this.readerBook.slug) {\n      this.$store.commit('navigation/collapseBookTree', this.readerBook.slug);\n      this.mobileTocInitializedBookKey = this.readerBook.slug;\n    }\n    this.mobileCatalogVisible = true;\n    if (typeof this.$nextTick === 'function') {\n      this.$nextTick(() => this.scrollCurrentTocSectionIntoView());\n    }\n  }\n\n  scrollCurrentTocSectionIntoView() {\n    const root = this.$el as HTMLElement | undefined;\n    if (!(root && typeof root.querySelector === 'function')) {\n      return;\n    }\n    const scroll = root.querySelector('.mobile-toc-scroll') as HTMLElement | null;\n    const current = root.querySelector(\n      '.mobile-toc-scroll .nav-section.current-section'\n    ) as HTMLElement | null;\n    if (!(scroll && current)) {\n      return;\n    }\n    scroll.scrollLeft = 0;\n    const scrollRect = scroll.getBoundingClientRect();\n    const currentRect = current.getBoundingClientRect();\n    scroll.scrollTop +=\n      currentRect.top - scrollRect.top - Math.max(12, (scroll.clientHeight - currentRect.height) / 2);\n  }\n\n  toggleMobileThemePicker() {\n    this.readerChromeVisible = true;\n    this.mobileCatalogVisible = false;\n    this.setTextTypesFilterVisible(false);\n    this.mobileThemePickerVisible = !this.mobileThemePickerVisible;\n  }\n\n  onReaderScroll(event: ReaderScrollEvent | string) {\n    if (\n      !this.mobileReader ||\n      this.mobileCatalogVisible ||\n      this.mobileThemePickerVisible ||\n      this.$store.state.reader.isTextTypesFiltersVisible\n    ) {\n      return;\n    }\n    const scrollEvent: ReaderScrollEvent =\n      typeof event === 'string'\n        ? { direction: event as 'up' | 'down', delta: 16, top: 100, max: 1000 }\n        : event;\n    const remaining = Math.max(0, scrollEvent.max - scrollEvent.top);\n    if (scrollEvent.top <= 16) {\n      this.readerChromeVisible = true;\n      this.resetReaderScrollIntent();\n      return;\n    }\n    if (remaining <= 32) {\n      const shouldPinEnd = !this.readerChromeVisible;\n      this.readerChromeVisible = true;\n      this.resetReaderScrollIntent();\n      if (shouldPinEnd) {\n        this.$nextTick(this.pinReaderToEnd);\n      }\n      return;\n    }\n    if (this.readerScrollDirection !== scrollEvent.direction) {\n      this.readerScrollDirection = scrollEvent.direction;\n      this.readerScrollDistance = 0;\n    }\n    this.readerScrollDistance += scrollEvent.delta;\n    if (scrollEvent.direction === 'down' && this.readerChromeVisible && this.readerScrollDistance >= 72) {\n      this.readerChromeVisible = false;\n      this.resetReaderScrollIntent();\n    } else if (\n      scrollEvent.direction === 'up' &&\n      !this.readerChromeVisible &&\n      this.readerScrollDistance >= 48\n    ) {\n      this.readerChromeVisible = true;\n      this.resetReaderScrollIntent();\n    }\n  }\n\n  resetReaderScrollIntent() {\n    this.readerScrollDirection = '';\n    this.readerScrollDistance = 0;\n  }\n\n  pinReaderToEnd() {\n    const root = this.$el as HTMLElement | undefined;\n    if (!(root && typeof root.querySelector === 'function')) {\n      return;\n    }\n    const scroll = root.querySelector('.book-content .scroll') as HTMLElement | null;\n    if (!scroll) {\n      return;\n    }\n    const token = ++this.readerEndPinToken;\n    const startedAt = performance.now();\n    const pin = () => {\n      if (token !== this.readerEndPinToken) {\n        return;\n      }\n      scroll.scrollTop = Math.max(0, scroll.scrollHeight - scroll.clientHeight);\n      if (performance.now() - startedAt < 240) {\n        window.requestAnimationFrame(pin);\n      }\n    };\n    window.requestAnimationFrame(pin);\n  }\n\n  showReaderChrome() {\n    if (this.mobileReader && !this.readerChromeVisible) {\n      this.readerChromeVisible = true;\n    }\n  }\n\n  onContentInteraction() {\n    if (this.presentationMode) {\n      this.onPresentationActivity();\n      return;\n    }\n    this.showReaderChrome();\n  }\n\n  async hydrateReadingState() {\n    if (!this.$store.state.auth.authorized) {\n      return;\n    }\n    const ownerKey = this.$store.state.tabs.ownerKey;\n    const isCurrentOwner = () =>\n      this.$store.state.auth.authorized &&\n      this.$store.state.tabs.ownerKey === ownerKey &&\n      this.$store.state.bookmarks.ownerKey === ownerKey;\n    try {\n      const readingProgress = await UserService.getReadingTabs();\n      if (!isCurrentOwner()) {\n        return;\n      }\n      this.$store.commit('tabs/mergeServerReadingTabs', readingProgress);\n    } catch (e) {\n      // Local tabs remain available while an older backend is being upgraded.\n    }\n    if (!isCurrentOwner()) {\n      return;\n    }\n    try {\n      const bookmarks = await UserService.getBookmarks();\n      if (!isCurrentOwner()) {\n        return;\n      }\n      this.$store.commit('bookmarks/mergeServerRecords', bookmarks);\n    } catch (e) {\n      // Guest and offline bookmarks remain available from local storage.\n    }\n  }\n\n  currentBookmarkPayload() {\n    const activeTab = this.activeTab as Tab | undefined;\n    const contentView = (this.$refs && this.$refs.contentView) as\n      | { captureCurrentReadingPosition?: () => any }\n      | undefined;\n    const livePosition =\n      contentView && typeof contentView.captureCurrentReadingPosition === 'function'\n        ? contentView.captureCurrentReadingPosition()\n        : null;\n    const tab = livePosition\n      ? ({\n          ...activeTab,\n          bookKey: livePosition.bookKey,\n          link: livePosition.link,\n          location: livePosition.location,\n          position: livePosition.position,\n          paragraphAnchor: livePosition.paragraphAnchor\n        } as Tab)\n      : activeTab;\n    if (!(tab && tab.bookKey && tab.link)) {\n      return null;\n    }\n    const [language, book] = tab.bookKey.split(':');\n    const segments = tab.link\n      .split('?')[0]\n      .split('/')\n      .filter(Boolean);\n    const section = segments[segments.length - 1] === book ? '' : segments[segments.length - 1];\n    return {\n      language,\n      book,\n      section,\n      position: Number(tab.position) || 0,\n      anchor: tab.paragraphAnchor || '',\n      tab\n    };\n  }\n\n  resolveBookmarkSection(bookmark: Bookmark) {\n    if (!bookmark.anchor) {\n      return '';\n    }\n    const bookmarkAnchor = bookmark.anchor;\n    const data = this.$store.state.navigation.data[bookmark.language];\n    const book = data && data.books ? data.books[bookmark.book] : null;\n    if (!(book && Array.isArray(book.children))) {\n      return '';\n    }\n    const candidates = book.children\n      .map((section: BookSection) => ({\n        slug: section.slug,\n        anchorPrefix: `paragraph-${String(section.slug || section.id || 'section')\n          .toLowerCase()\n          .replace(/[^a-z0-9]+/g, '-')\n          .replace(/^-|-$/g, '')}-`\n      }))\n      .sort(\n        (left: { anchorPrefix: string }, right: { anchorPrefix: string }) =>\n          right.anchorPrefix.length - left.anchorPrefix.length\n      );\n    const match = candidates.find((candidate: { anchorPrefix: string }) =>\n      bookmarkAnchor.startsWith(candidate.anchorPrefix)\n    );\n    return match ? match.slug : '';\n  }\n\n  replaceBookmarkSectionInLink(link: string, bookSlug: string, sectionSlug: string) {\n    const segments = link\n      .split('?')[0]\n      .split('/')\n      .filter(Boolean);\n    const lastSegment = segments[segments.length - 1];\n    if (lastSegment === bookSlug) {\n      segments.push(sectionSlug);\n    } else {\n      segments[segments.length - 1] = sectionSlug;\n    }\n    return `/${segments.join('/')}`;\n  }\n\n  localBookmark(\n    payload: ReturnType<Reader['currentBookmarkPayload']>,\n    id?: string | number,\n    note: string = ''\n  ) {\n    if (!payload) {\n      return null;\n    }\n    return {\n      id:\n        id ||\n        `local:${Date.now()}:${Math.random()\n          .toString(36)\n          .slice(2)}`,\n      type: 'manual' as const,\n      bookKey: payload.tab.bookKey as string,\n      bookName:\n        payload.tab.bookName || payload.tab.name || (this.readerBook && this.readerBook.name) || payload.book,\n      language: payload.language,\n      book: payload.book,\n      link: payload.tab.link as string,\n      location: payload.tab.location || payload.section,\n      position: payload.position,\n      anchor: payload.anchor,\n      note,\n      updatedAt: new Date().toISOString()\n    };\n  }\n\n  async addBookmarkAtCurrentPlace(note: string = '') {\n    const payload = this.currentBookmarkPayload();\n    const local = this.localBookmark(payload, undefined, note);\n    if (!(payload && local)) {\n      return;\n    }\n    this.$store.commit('bookmarks/upsert', local);\n    if (this.$store.state.auth.authorized) {\n      try {\n        const saved = await UserService.createBookmark({\n          language: payload.language,\n          book: payload.book,\n          section: payload.section,\n          position: payload.position,\n          paragraph_anchor: payload.anchor,\n          note\n        });\n        const bookmark = saved ? mapServerBookmark(saved) : null;\n        if (bookmark) {\n          this.$store.commit('bookmarks/remove', local.id);\n          this.$store.commit('bookmarks/upsert', bookmark);\n        }\n      } catch (e) {\n        // The local bookmark remains available until synchronization can be retried.\n      }\n    }\n    this.mobileBookmarkSheetVisible = false;\n  }\n\n  async moveBookmarkToCurrentPlace(bookmark: Bookmark) {\n    const payload = this.currentBookmarkPayload();\n    if (!(payload && bookmark.bookKey === payload.tab.bookKey)) {\n      return;\n    }\n    const moved = this.localBookmark(payload, bookmark.id, bookmark.note || '');\n    if (!moved) {\n      return;\n    }\n    this.$store.commit('bookmarks/upsert', moved);\n    if (this.$store.state.auth.authorized && typeof bookmark.id === 'number') {\n      try {\n        const saved = await UserService.updateBookmark(bookmark.id, {\n          language: payload.language,\n          book: payload.book,\n          section: payload.section,\n          position: payload.position,\n          paragraph_anchor: payload.anchor,\n          note: bookmark.note || ''\n        });\n        const serverBookmark = mapServerBookmark(saved);\n        if (serverBookmark) {\n          this.$store.commit('bookmarks/upsert', serverBookmark);\n        }\n      } catch (e) {\n        this.$store.commit('bookmarks/upsert', bookmark);\n      }\n    }\n    this.mobileBookmarkSheetVisible = false;\n  }\n\n  async removeBookmark(bookmark: Bookmark) {\n    this.$store.commit('bookmarks/remove', bookmark.id);\n    if (this.$store.state.auth.authorized && typeof bookmark.id === 'number') {\n      UserService.removeBookmark(bookmark.id).catch(() => {\n        this.$store.commit('bookmarks/upsert', bookmark);\n      });\n    }\n  }\n\n  async updateBookmarkNote(payload: { bookmark: Bookmark; note: string }) {\n    const updated = {\n      ...payload.bookmark,\n      note: payload.note,\n      updatedAt: new Date().toISOString()\n    };\n    this.$store.commit('bookmarks/upsert', updated);\n    if (\n      !this.$store.state.auth.authorized ||\n      typeof payload.bookmark.id !== 'number' ||\n      !UserService.bookmarksApiEnabled\n    ) {\n      return;\n    }\n    const segments = payload.bookmark.link\n      .split('?')[0]\n      .split('/')\n      .filter(Boolean);\n    const section = segments[segments.length - 1] === payload.bookmark.book ? '' : segments.pop() || '';\n    try {\n      const saved = await UserService.updateBookmark(payload.bookmark.id, {\n        language: payload.bookmark.language,\n        book: payload.bookmark.book,\n        section,\n        position: payload.bookmark.position,\n        paragraph_anchor: payload.bookmark.anchor || '',\n        note: payload.note\n      });\n      const bookmark = saved ? mapServerBookmark(saved) : null;\n      if (bookmark) {\n        this.$store.commit('bookmarks/upsert', bookmark);\n      }\n    } catch (e) {\n      this.$store.commit('bookmarks/upsert', payload.bookmark);\n    }\n  }\n\n  async openMobileBookmark(bookmark: Bookmark) {\n    const sectionSlug = bookmark.link\n      .split('?')[0]\n      .split('/')\n      .filter(Boolean)\n      .pop();\n    const storedSection = sectionSlug && sectionSlug !== bookmark.book ? sectionSlug : '';\n    await this.prepareMobileReaderNavigation(bookmark.language, bookmark.book, storedSection);\n    const resolvedSection =\n      typeof this.resolveBookmarkSection === 'function' ? this.resolveBookmarkSection(bookmark) : '';\n    const bookmarkSection = resolvedSection || storedSection;\n    if (bookmarkSection && bookmarkSection !== storedSection) {\n      await this.prepareMobileReaderNavigation(bookmark.language, bookmark.book, bookmarkSection);\n    }\n    const bookmarkLink =\n      bookmarkSection && bookmarkSection !== storedSection\n        ? this.replaceBookmarkSectionInLink(bookmark.link, bookmark.book, bookmarkSection)\n        : bookmark.link;\n    this.$store.commit('tabs/activateBookTab', {\n      bookKey: bookmark.bookKey,\n      link: bookmarkLink,\n      name: `${bookmark.bookName} — ${bookmark.location}`,\n      bookName: bookmark.bookName,\n      location: bookmark.location,\n      position: bookmark.position,\n      paragraphAnchor: bookmark.anchor || ''\n    });\n    this.$store.commit('tabs/keepOnlyActiveTab');\n    const bookmarkRoute = {\n      path: bookmarkLink,\n      query: {\n        bookmark: '1',\n        position: String(Math.max(0, Math.min(1, Number(bookmark.position) || 0))),\n        ...(bookmark.anchor ? { anchor: bookmark.anchor } : {}),\n        reading: '1'\n      }\n    };\n    if (this.$route.path !== bookmarkLink || this.$route.query.anchor !== bookmark.anchor) {\n      try {\n        await this.$router.push(bookmarkRoute);\n      } catch (error) {\n        if (!(error && (error as { name?: string }).name === 'NavigationDuplicated')) {\n          return;\n        }\n      }\n    }\n    this.mobileView = 'content';\n  }\n\n  onReaderLinkSelected(payload: { link: string; name: string }) {\n    const bookKey = getBookKeyFromLink(payload.link);\n    if (bookKey) {\n      const sectionLink = isBookSectionLink(payload.link);\n      this.$store.commit('tabs/activateBookTab', {\n        bookKey,\n        link: payload.link,\n        name: payload.name,\n        bookName: sectionLink ? undefined : payload.name,\n        location: sectionLink ? payload.name : undefined,\n        preserveLastLocation: !sectionLink\n      });\n    } else {\n      this.$store.commit('tabs/updateActiveTabLink', payload.link);\n      this.$store.commit('tabs/updateActiveTabName', payload.name);\n    }\n    if (!this.isCompactViewport) {\n      return;\n    }\n    this.$store.commit('tabs/keepOnlyActiveTab');\n    this.mobileCatalogVisible = false;\n    this.mobileView = 'content';\n    if (payload.link.split('?')[0] === this.$route.path) {\n      this.syncMobileViewWithRoute();\n    }\n  }\n\n  onMouseMove(e: MouseEvent) {\n    let leftColumnWidth = this.leftColumnWidth;\n    leftColumnWidth += e.pageX - this.prevPageX;\n    leftColumnWidth = Reader.normalizeLeftColumnWidth(leftColumnWidth);\n    this.leftColumnWidth = leftColumnWidth;\n    this.prevPageX = e.pageX;\n  }\n\n  onMouseUp() {\n    StorageService.save(LEFT_COLUMN_LOCAL_STORAGE_PARAM, this.leftColumnWidth);\n    document.removeEventListener('mousemove', this.onMouseMove);\n    document.removeEventListener('mouseup', this.onMouseUp);\n    document.body.classList.remove('disable-text-select');\n  }\n\n  onMouseDown(e: MouseEvent) {\n    document.addEventListener('mousemove', this.onMouseMove);\n    document.addEventListener('mouseup', this.onMouseUp);\n    document.body.classList.add('disable-text-select');\n    this.prevPageX = e.pageX;\n  }\n\n  static normalizeLeftColumnWidth(leftColumnWidth: number) {\n    let normalized = Math.min(leftColumnWidth, MAX_LEFT_COLUMN_WIDTH);\n    normalized = Math.max(normalized, MIN_LEFT_COLUMN_WIDTH);\n    return normalized;\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Reader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Reader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Reader.vue?vue&type=template&id=3603f408&scoped=true&\"\nimport script from \"./Reader.vue?vue&type=script&lang=ts&\"\nexport * from \"./Reader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Reader.vue?vue&type=style&index=0&id=3603f408&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3603f408\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"book-content\",class:[\n    _vm.textTypeVisibilityClasses,\n    {\n      'has-mobile-pagination': !!_vm.mobilePaginationType,\n      'presentation-mode': _vm.presentationMode\n    }\n  ],on:{\"click\":_vm.onClickOnNote}},[_c('Loader',{attrs:{\"hidden\":!_vm.loading || _vm.blockingError}}),(_vm.blockingError)?_c('div',{staticClass:\"book-content-error red-color\"},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('errorOccurred'))),_c('br'),_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('tryToRefreshPage'))+\"\\n  \")]):_vm._e(),_c('div',{staticClass:\"container\",class:{ hidden: _vm.loading || _vm.blockingError }},[_c('Loader',{staticClass:\"mini-loader\",attrs:{\"hidden\":!_vm.loadingMore}}),_c('div',{ref:\"scroll\",staticClass:\"scroll\"},[_vm._l((_vm.currentBookSectionsWithContent.filter(function (one) { return one; })),function(bookSection){return _c('div',{key:bookSection.book.id + bookSection.code,staticClass:\"page\",class:{\n          loading: _vm.loading,\n          'presentation-current': _vm.isPresentationCurrentSection(bookSection)\n        },style:(_vm.getPageStyle(bookSection)),attrs:{\"data-page\":_vm.getBookSectionUrl(bookSection),\"data-is-parent\":bookSection.isParent}},[(bookSection.content.isFirst)?_c('h1',{staticClass:\"book-title\"},[_vm._v(\"\\n          \"+_vm._s(_vm.formatBookTitle(bookSection.content.book_title))+\"\\n        \")]):_vm._e(),(!bookSection.content.is_article)?_c('h1',{staticClass:\"title\"},[_vm._v(\"\\n          \"+_vm._s(bookSection.content.title)+\"\\n        \")]):_vm._e(),(bookSection.content.entities.length)?_c('div',_vm._l((bookSection.content.entities),function(entity,index){return _c('div',{key:index,staticClass:\"paragraph\",class:(\"paragraph--type-\" + (entity.type)),attrs:{\"id\":_vm.getParagraphAnchor(bookSection, index),\"data-paragraph-anchor\":_vm.getParagraphAnchor(bookSection, index)}},[(entity.type === 'literary')?_c('div',{staticClass:\"note\"},[_vm._v(_vm._s(_vm.getTranslation('translation'))+\":\")]):_vm._e(),(entity.type === 'word-by-word')?_c('div',{staticClass:\"note\"},[_vm._v(\"\\n              \"+_vm._s(_vm.getTranslation('wordByWordTranslation'))+\":\\n            \")]):_vm._e(),(entity.type === 'comment')?_c('div',{staticClass:\"note\"},[_vm._v(_vm._s(_vm.getTranslation('comment'))+\":\")]):_vm._e(),(entity.type === 'comment-plus')?_c('div',{staticClass:\"note\"},[_vm._v(\"\\n              \"+_vm._s(_vm.getTranslation('comment'))+\". \"+_vm._s(_vm.getTranslation('author'))+\"\\n              \"),_c('router-link',{attrs:{\"to\":_vm.getAuthorUrl(entity.properties.author.slug)}},[_vm._v(_vm._s(entity.properties.author.name))]),_vm._v(\":\\n            \")],1):_vm._e(),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.getContent(entity))}})])}),0):_vm._e()])}),(_vm.contextMenu.link)?_c('ContextMenu',{attrs:{\"top\":_vm.contextMenu.top,\"left\":_vm.contextMenu.left,\"link\":_vm.contextMenu.link},on:{\"close\":function($event){_vm.contextMenu.link = ''}}}):_vm._e()],2)],1),(_vm.currentBookSectionWithContent && !_vm.presentationMode)?_c('BottomBar',{attrs:{\"book-content\":_vm.currentBookSectionWithContent.content,\"mobile-pagination-type\":_vm.mobilePaginationType,\"tab-name\":_vm.tabName}}):_vm._e(),_c('BookNoteOverlay',{attrs:{\"title\":_vm.note.title,\"visible\":_vm.note.visible},on:{\"close\":function($event){_vm.note.visible = false}}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.note.content)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.currentSection)?_c('div',{staticClass:\"bottom-bar-wrapper\",class:{ 'mobile-pagination-hidden': !_vm.mobilePaginationType && !_vm.hasRelatedBooks }},[_c('BottomBarTooltip',{attrs:{\"visible\":_vm.showBookInfo},on:{\"close\":function($event){_vm.showBookInfo = false}}},[(_vm.showBookInfo)?_c('BottomBarBookInfo'):_vm._e()],1),_c('BottomBarTooltip',{attrs:{\"visible\":_vm.showRelatedBooks},on:{\"close\":function($event){_vm.showRelatedBooks = false}}},[_c('BottomBarRelated',{attrs:{\"book-name\":_vm.bookContent.related_archi_book_name,\"data\":_vm.bookContent.related_poem_in_books}})],1),_c('div',{staticClass:\"bottom-bar\"},[_c('div',{staticClass:\"bottom-bar-left\"},[_c('div',{staticClass:\"bottom-bar-block nav-link\",class:{ active: _vm.showBookInfo },on:{\"click\":function($event){_vm.showBookInfo = !_vm.showBookInfo}}},[_c('div',{staticClass:\"bottom-bar-icon\"},[_c('InfoIcon')],1),_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('aboutBook'))+\"\\n      \")]),_vm._l((_vm.currentSection.book.translations),function(translation){return _c('router-link',{key:translation.code,staticClass:\"bottom-bar-block nav-link\",attrs:{\"to\":_vm.getTranslationUrl(translation.code)}},[_c('div',{staticClass:\"bottom-bar-icon\"},[_c('GlobeIcon')],1),_vm._v(\"\\n        \"+_vm._s(translation.short_name)+\"\\n      \")])}),(_vm.hasRelatedBooks)?_c('div',{staticClass:\"bottom-bar-block nav-link\",class:{ active: _vm.showRelatedBooks },on:{\"click\":function($event){_vm.showRelatedBooks = !_vm.showRelatedBooks}}},[_c('div',{staticClass:\"bottom-bar-icon\"},[_c('BookCoverIcon')],1),_vm._v(\"\\n        \"+_vm._s(_vm.bookContent.related_poem_in_books.length)+\"\\n      \")]):_vm._e()],2),_c('div',{staticClass:\"bottom-bar-center\"},[(_vm.pagination.section)?_c('BottomBarControl',{staticClass:\"bottom-bar-control\",class:{ 'mobile-pagination-visible': _vm.mobilePaginationType === 'section' },attrs:{\"name\":_vm.getTranslation('bookSection'),\"type\":\"nav\",\"number\":_vm.pagination.section,\"list\":_vm.pagination.sections,\"prevUrl\":_vm.prevSectionUrl,\"nextUrl\":_vm.nextSectionUrl}}):_vm._e(),(_vm.pagination.chapter)?_c('BottomBarControl',{staticClass:\"bottom-bar-control\",class:{ 'mobile-pagination-visible': _vm.mobilePaginationType === 'chapter' },attrs:{\"name\":_vm.getTranslation('bookChapter'),\"type\":\"nav\",\"number\":_vm.pagination.chapter,\"list\":_vm.pagination.chapters,\"prevUrl\":_vm.prevChapterUrl,\"nextUrl\":_vm.nextChapterUrl}}):_vm._e(),(_vm.pagination.poem)?_c('BottomBarControl',{staticClass:\"bottom-bar-control\",class:{ 'mobile-pagination-visible': _vm.mobilePaginationType === 'poem' },attrs:{\"name\":_vm.getTranslation('bookPoem'),\"type\":\"nav\",\"number\":_vm.pagination.poem,\"list\":_vm.pagination.poems,\"prevUrl\":_vm.prevPoemUrl,\"nextUrl\":_vm.nextPoemUrl}}):_vm._e()],1),(_vm.hasRelatedBooks)?_c('button',{staticClass:\"nav-icon mobile-related-books\",class:{ active: _vm.showRelatedBooks },attrs:{\"type\":\"button\",\"aria-label\":_vm.getTranslation('textInOtherBooksAction'),\"aria-expanded\":String(_vm.showRelatedBooks)},on:{\"click\":function($event){_vm.showRelatedBooks = !_vm.showRelatedBooks}}},[_c('BookCoverIcon'),_c('span',[_vm._v(_vm._s(_vm.relatedBooksCount))])],1):_vm._e(),_c('div',{staticClass:\"bottom-bar-right\"},[(_vm.$store.state.reader.readMode)?_c('BottomBarControl',{staticClass:\"bottom-bar-control\",attrs:{\"name\":_vm.getTranslation('colorTheme'),\"type\":\"color-mode\"}}):_vm._e(),_c('BottomBarControl',{staticClass:\"bottom-bar-control\",attrs:{\"name\":_vm.getTranslation('scale'),\"type\":\"scale\",\"number\":((Math.round(_vm.scale * 100)) + \"%\"),\"canIncreaseScale\":_vm.scale > 0.6,\"canDecreaseScale\":_vm.scale < 1.5},on:{\"increaseScale\":function($event){return _vm.setScale(_vm.scale + 0.1)},\"decreaseScale\":function($event){return _vm.setScale(_vm.scale - 0.1)}}})],1)])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"-1 -1 18 18\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M8 .5l.3-.4L8-.125 7.7.1l.3.4zm0 15l-.265.424.29.182.275-.206-.3-.4zM7.5.5v15h1V.5h-1zm4.5 8h3.5v-1H12v1zM7.7.9c.62.465 1.579 1.396 2.38 2.645C10.877 4.792 11.5 6.324 11.5 8h1c0-1.924-.712-3.642-1.58-4.995C10.056 1.654 9.014.635 8.3.1l-.6.8zm.6 15c.713-.535 1.755-1.554 2.62-2.905.868-1.353 1.58-3.071 1.58-4.995h-1c0 1.676-.622 3.208-1.42 4.455-.801 1.249-1.76 2.18-2.38 2.645l.6.8zM.5 8.5H4v-1H.5v1zm3.5 0h8v-1H4v1zM7.7.1c-.713.535-1.755 1.554-2.62 2.905C4.211 4.358 3.5 6.076 3.5 8h1c0-1.676.622-3.208 1.42-4.455C6.722 2.296 7.68 1.365 8.3.9L7.7.1zm.565 14.976C7.027 14.302 4.5 11.775 4.5 8h-1c0 4.225 2.807 7.031 4.235 7.924l.53-.848zM2.205 2.904c1.925 1.4 6.942 3.38 11.59 0l-.59-.808c-4.152 3.02-8.668 1.267-10.41 0l-.59.808zm.563 10.518c1.744-1.11 6.29-2.656 10.464 0l.536-.844c-4.626-2.944-9.614-1.223-11.536 0l.536.844zM15 8a7 7 0 01-7 7v2a9 9 0 009-9h-2zm-7 7a7 7 0 01-7-7h-2a9 9 0 009 9v-2zM1 8a7 7 0 017-7v-2a9 9 0 00-9 9h2zm7-7a7 7 0 017 7h2a9 9 0 00-9-9v2z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"14\",\"height\":\"16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M3 15.453h10V3.5M3 15.453V3.5m0 11.953c-.932 0-2-.48-2-1.444V1.985M3 3.5h10m-10 0c-1 0-2-.433-2-1.515M13 3.5v-3H3c-1 0-2 .567-2 1.485\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])\n          )\n        }\n      }\n    ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bottom-bar-control\"},[_c('div',{staticClass:\"bottom-bar-control-name\"},[_vm._v(_vm._s(_vm.name)+\":\")]),(_vm.type === 'color-mode')?_c('div',{staticClass:\"bottom-bar-control-value\"},[_c('button',{staticClass:\"bottom-bar-control-color-mode\",class:{ active: _vm.$store.state.reader.colorMode === 'mixed' },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setColorMode('mixed')}}},[_c('div',{staticClass:\"bottom-bar-control-color-mode-circle mixed\"})]),_c('button',{staticClass:\"bottom-bar-control-color-mode\",class:{\n        active: _vm.$store.state.reader.colorMode === 'light' || !_vm.$store.state.reader.colorMode\n      },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setColorMode('light')}}},[_c('div',{staticClass:\"bottom-bar-control-color-mode-circle light\"})]),_c('button',{staticClass:\"bottom-bar-control-color-mode\",class:{ active: _vm.$store.state.reader.colorMode === 'dark' },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setColorMode('dark')}}},[_c('div',{staticClass:\"bottom-bar-control-color-mode-circle dark\"})])]):_c('div',{staticClass:\"bottom-bar-control-value\"},[(_vm.prevUrl || _vm.nextUrl || _vm.type === 'scale')?_c('div',{staticClass:\"bottom-bar-control-action\"},[(_vm.prevUrl && _vm.type === 'nav')?_c('router-link',{staticClass:\"nav-link\",attrs:{\"to\":_vm.prevUrl}},[_c('ArrowLeftIcon')],1):_vm._e(),(_vm.type === 'scale' && _vm.canIncreaseScale)?_c('button',{staticClass:\"nav-icon\",on:{\"click\":function($event){return _vm.$emit('decreaseScale')}}},[_c('MinusIcon')],1):_vm._e()],1):_vm._e(),_c('BottomBarControlValue',{attrs:{\"list\":_vm.list,\"number\":_vm.number}}),(_vm.prevUrl || _vm.nextUrl || _vm.type === 'scale')?_c('div',{staticClass:\"bottom-bar-control-action\"},[(_vm.nextUrl && _vm.type === 'nav')?_c('router-link',{staticClass:\"nav-icon\",attrs:{\"to\":_vm.nextUrl}},[_c('ArrowRightIcon')],1):_vm._e(),(_vm.type === 'scale' && _vm.canDecreaseScale)?_c('button',{staticClass:\"nav-icon\",on:{\"click\":function($event){return _vm.$emit('increaseScale')}}},[_c('PlusIcon')],1):_vm._e()],1):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.list && _vm.list.length > 1 && _vm.listIsVisible)?_c('div',{ref:\"list\",staticClass:\"bottom-bar-control-list\"},_vm._l((_vm.list),function(item){return _c('router-link',{key:item.number,staticClass:\"nav-link bottom-bar-control-list-value\",class:{ current: _vm.number === item.number },attrs:{\"type\":\"button\",\"to\":_vm.getItemUrl(item)}},[_vm._v(\"\\n      \"+_vm._s(item.number)+\"\\n    \")])}),1):_vm._e(),_c('button',{ref:\"button\",staticClass:\"bottom-bar-control-value\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.listIsVisible = !_vm.listIsVisible}}},[_vm._v(\"\\n    \"+_vm._s(_vm.number)+\"\\n  \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Ref } from 'vue-property-decorator';\nimport { PagingItem } from '@/services/Navigation/types';\nimport UrlBuilderService from '@/services/UrlBuilderService';\n\n@Component\nexport default class BottomBarControlValue extends Vue {\n  listIsVisible: boolean = false;\n\n  @Prop({ required: true })\n  number!: number;\n\n  @Prop({ required: false })\n  list!: Array<number>;\n\n  @Ref('button')\n  refButton?: HTMLButtonElement;\n\n  @Ref('list')\n  refList?: HTMLDivElement;\n\n  mounted() {\n    document.addEventListener('click', this.handleClickOutside, false);\n  }\n\n  updated() {\n    if (!this.refList) {\n      return;\n    }\n    const current = this.refList.querySelector('.current') as HTMLDivElement;\n    if (this.listIsVisible && current) {\n      this.refList.scrollTo({ top: current.offsetTop });\n    }\n  }\n\n  handleClickOutside(e: MouseEvent) {\n    if (!this.refButton) {\n      return;\n    }\n    if (this.listIsVisible && !this.refButton.contains(e.target as Node)) {\n      this.listIsVisible = false;\n    }\n  }\n\n  getItemUrl(item: PagingItem) {\n    return UrlBuilderService.getBookSectionUrl({\n      language: this.$route.params.language,\n      categorySlug: this.$route.params.category,\n      bookSlug: this.$route.params.book,\n      bookSectionSlug: item.bookSectionSlug\n    });\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControlValue.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControlValue.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BottomBarControlValue.vue?vue&type=template&id=c114e4cc&scoped=true&\"\nimport script from \"./BottomBarControlValue.vue?vue&type=script&lang=ts&\"\nexport * from \"./BottomBarControlValue.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BottomBarControlValue.vue?vue&type=style&index=0&id=c114e4cc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"c114e4cc\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// import store from '@/store';\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport ArrowLeftIcon from '@/assets/icons/nav-arrow-left.svg';\nimport ArrowRightIcon from '@/assets/icons/nav-arrow-right.svg';\nimport MinusIcon from '@/assets/icons/minus.svg';\nimport PlusIcon from '@/assets/icons/plus.svg';\nimport BottomBarControlValue from '@/components/bottom-bar/BottomBarControlValue.vue';\nimport { Mutation } from 'vuex-class';\n\n@Component({\n  components: {\n    BottomBarControlValue,\n    ArrowLeftIcon,\n    ArrowRightIcon,\n    MinusIcon,\n    PlusIcon\n  }\n})\nexport default class BottomBarControl extends Vue {\n  @Prop({ required: true })\n  name!: string;\n\n  @Prop({ required: false })\n  number!: number;\n\n  @Prop({ required: true })\n  type!: string;\n\n  @Prop({ required: false })\n  list!: Array<number>;\n\n  @Prop({ required: false })\n  prevUrl!: string;\n\n  @Prop({ required: false })\n  nextUrl!: string;\n\n  @Prop({ required: false })\n  canIncreaseScale!: boolean;\n\n  @Prop({ required: false })\n  canDecreaseScale!: boolean;\n\n  @Mutation('setColorMode', { namespace: 'reader' })\n  setColorMode!: Function;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControl.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarControl.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BottomBarControl.vue?vue&type=template&id=5f19924f&scoped=true&\"\nimport script from \"./BottomBarControl.vue?vue&type=script&lang=ts&\"\nexport * from \"./BottomBarControl.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BottomBarControl.vue?vue&type=style&index=0&id=5f19924f&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5f19924f\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.previousRelatedUrl)?_c('button',{staticClass:\"related-books-return\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.returnToPrevious}},[_c('IconReturn'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('backToPreviousText')))])],1):_vm._e(),_c('div',{staticClass:\"related-books-title\",domProps:{\"innerHTML\":_vm._s(_vm.textInOtherBooks)}}),_vm._l((_vm.preparedData),function(item){return _c('div',{key:item.name,staticClass:\"related-books-item\"},[_c('span',{staticClass:\"related-books-item-name\"},[_vm._v(_vm._s(item.name)+\" —\")]),_c('span',{staticClass:\"related-books-item-translations\"},[_vm._l((item.translations),function(translation,index){return [(index > 0)?_c('span',{key:((translation.code) + \"-separator\"),attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"\\n           | \\n        \")]):_vm._e(),_c('router-link',{key:translation.code,attrs:{\"to\":translation.url}},[_vm._v(\"\\n          \"+_vm._s(translation.short_name)+\"\\n        \")])]})],2)])})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Getter, State } from 'vuex-class';\nimport { BookSection } from '@/services/Navigation/types';\nimport { Prop } from 'vue-property-decorator';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport { getTranslation } from '@/services/Translation';\nimport RelatedNavigationService from '@/services/RelatedNavigationService';\nimport IconReturn from '@/assets/icons/return.svg';\n\n@Component({ components: { IconReturn } })\nexport default class BottomBarRelated extends Vue {\n  @Getter('currentBookSection', { namespace: 'navigation' })\n  currentSection?: BookSection;\n\n  @Prop({ required: true })\n  data!: any;\n\n  @Prop({ required: true })\n  bookName!: string;\n\n  @State('interfaceLanguage', { namespace: 'reader' })\n  interfaceLanguage!: string;\n\n  getTranslation = getTranslation;\n\n  get preparedData() {\n    return this.data\n      .map((book: any) => ({\n        ...book,\n        translations: book.translations\n          .filter((translation: any) => translation.section_slug)\n          .map((translation: any) => {\n            const url = UrlBuilderService.getBookSectionUrl({\n              language: translation.code,\n              bookSlug: book.slug,\n              bookSectionSlug: translation.section_slug\n            });\n            const targetUrl = this.$route.query.reading ? `${url}?reading=1` : url;\n            return {\n              ...translation,\n              url: RelatedNavigationService.createTargetUrl(targetUrl, this.$route.fullPath, this.$route.query\n                .relatedTrail as string)\n            };\n          })\n      }))\n      .filter((book: any) => book.translations.length > 0);\n  }\n\n  get previousRelatedUrl() {\n    return RelatedNavigationService.getPreviousUrl(this.$route.query.relatedTrail as string);\n  }\n\n  returnToPrevious() {\n    if (this.previousRelatedUrl) {\n      this.$router.push(this.previousRelatedUrl);\n    }\n  }\n\n  get textInOtherBooks() {\n    return getTranslation('textInOtherBooks')\n      .replace('%bookName%', this.bookName)\n      .replace('%currentSectionSlug%', this.currentSection ? this.currentSection.slug : '');\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarRelated.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarRelated.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BottomBarRelated.vue?vue&type=template&id=6be01c29&scoped=true&\"\nimport script from \"./BottomBarRelated.vue?vue&type=script&lang=ts&\"\nexport * from \"./BottomBarRelated.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BottomBarRelated.vue?vue&type=style&index=0&id=6be01c29&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6be01c29\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bottom-bar-tooltip\",class:{ visible: _vm.visible, dragging: _vm.dragging },style:({ transform: _vm.dragOffset ? (\"translateY(\" + _vm.dragOffset + \"px)\") : undefined })},[_c('button',{staticClass:\"nav-link bottom-bar-tooltip-close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('CrossIcon')],1),_c('div',{staticClass:\"bottom-bar-tooltip-drag-region\",on:{\"pointerdown\":_vm.startDrag,\"pointermove\":_vm.moveDrag,\"pointerup\":_vm.endDrag,\"pointercancel\":_vm.cancelDrag}},[_c('span')]),_c('div',{staticClass:\"bottom-bar-tooltip-inner\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport CrossIcon from '@/assets/icons/cross.svg';\n\n@Component({\n  components: {\n    CrossIcon\n  }\n})\nexport default class BottomBarTooltip extends Vue {\n  @Prop({ required: true })\n  visible!: boolean;\n\n  dragStartY: number | null = null;\n\n  dragOffset: number = 0;\n\n  dragging: boolean = false;\n\n  dragPointerId: number | null = null;\n\n  startDrag(event: PointerEvent) {\n    this.dragPointerId = event.pointerId;\n    this.dragStartY = event.clientY;\n    this.dragging = true;\n    const dragRegion = event.currentTarget as HTMLElement;\n    if (dragRegion.setPointerCapture) {\n      dragRegion.setPointerCapture(event.pointerId);\n    }\n  }\n\n  moveDrag(event: PointerEvent) {\n    if (this.dragStartY === null || this.dragPointerId !== event.pointerId) {\n      return;\n    }\n    this.dragOffset = Math.max(0, event.clientY - this.dragStartY);\n    if (this.dragOffset > 0 && event.cancelable) {\n      event.preventDefault();\n    }\n  }\n\n  endDrag(event: PointerEvent) {\n    if (this.dragPointerId !== event.pointerId) {\n      return;\n    }\n    const dragRegion = event.currentTarget as HTMLElement;\n    if (\n      dragRegion.releasePointerCapture &&\n      dragRegion.hasPointerCapture &&\n      dragRegion.hasPointerCapture(event.pointerId)\n    ) {\n      dragRegion.releasePointerCapture(event.pointerId);\n    }\n    if (this.dragOffset >= 64) {\n      this.resetDrag();\n      this.$emit('close');\n      return;\n    }\n    this.resetDrag();\n  }\n\n  cancelDrag() {\n    this.resetDrag();\n  }\n\n  resetDrag() {\n    this.dragStartY = null;\n    this.dragOffset = 0;\n    this.dragging = false;\n    this.dragPointerId = null;\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarTooltip.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarTooltip.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BottomBarTooltip.vue?vue&type=template&id=a881c0ea&scoped=true&\"\nimport script from \"./BottomBarTooltip.vue?vue&type=script&lang=ts&\"\nexport * from \"./BottomBarTooltip.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BottomBarTooltip.vue?vue&type=style&index=0&id=a881c0ea&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"a881c0ea\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.bookDetails)?_c('div',[_c('div',{staticClass:\"bottom-bar-book-info-title\"},[_vm._v(\"\\n    \"+_vm._s(_vm.currentBook.name)+\"\\n  \")]),(_vm.bookDetails.authors && _vm.bookDetails.authors.length)?_c('div',[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('author'))+\":\\n    \"),_vm._l((_vm.bookDetails.authors),function(author,index){return _c('router-link',{key:author.slug,attrs:{\"to\":_vm.getAuthorLink(author.slug)}},[(index > 0 && index !== _vm.bookDetails.authors.length - 1)?[_vm._v(\"\\n        , \\n      \")]:_vm._e(),_vm._v(\"\\n      \"+_vm._s(author.name)+\"\\n    \")],2)})],2):_vm._e(),(_vm.bookDetails.commentators && _vm.bookDetails.commentators.length)?_c('div',[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation(_vm.bookDetails.commentators.length > 1 ? 'commentators' : 'commentator'))+\":\\n    \"+_vm._s(_vm.bookDetails.commentators.join(', '))+\"\\n  \")]):_vm._e(),(_vm.bookDetails.categories && _vm.bookDetails.categories.length)?_c('div',{staticClass:\"categories\"},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('bookInCategories'))+\":\\n    \"),_vm._l((_vm.bookDetails.categories),function(categoriesChain){return _c('div',{key:JSON.stringify(categoriesChain),staticClass:\"categories-chain\"},[_vm._v(\"\\n      \"+_vm._s(categoriesChain.map(function (category) { return category.name; }).join(' • '))+\"\\n    \")])})],2):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport { getTranslation } from '@/services/Translation';\nimport { Book } from '@/services/Navigation/types';\nimport BooksService from '@/services/Api/BooksService';\nimport UrlBuilderService from '@/services/UrlBuilderService';\n\n@Component\nexport default class BottomBarBookInfo extends Vue {\n  bookDetails: any = null;\n\n  @Getter('currentBook', { namespace: 'navigation' })\n  currentBook?: Book;\n\n  getTranslation = getTranslation;\n\n  async mounted() {\n    await this.fetchBookDetails();\n  }\n\n  @Watch('currentBook.id')\n  async onChangeBookId() {\n    await this.fetchBookDetails();\n  }\n\n  async fetchBookDetails() {\n    if (this.currentBook) {\n      this.bookDetails = await BooksService.getBookCover(this.currentBook.language, this.currentBook.slug);\n    }\n  }\n\n  getAuthorLink(slug: string) {\n    return UrlBuilderService.getAuthorUrl({ language: this.$route.params.language, authorSlug: slug });\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarBookInfo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarBookInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BottomBarBookInfo.vue?vue&type=template&id=79a54c6a&scoped=true&\"\nimport script from \"./BottomBarBookInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./BottomBarBookInfo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BottomBarBookInfo.vue?vue&type=style&index=0&id=79a54c6a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"79a54c6a\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport InfoIcon from '@/assets/icons/info.svg';\nimport GlobeIcon from '@/assets/icons/globe.svg';\nimport BookCoverIcon from '@/assets/icons/book-cover.svg';\nimport BottomBarControl from '@/components/bottom-bar/BottomBarControl.vue';\nimport { Book, BookSection, PagingItem } from '@/services/Navigation/types';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport BottomBarRelated from '@/components/bottom-bar/BottomBarRelated.vue';\nimport { getTranslation } from '@/services/Translation';\nimport BottomBarTooltip from '@/components/bottom-bar/BottomBarTooltip.vue';\nimport BottomBarBookInfo from '@/components/bottom-bar/BottomBarBookInfo.vue';\n\ninterface Pagination {\n  chapter: number | null;\n  poem: number | null;\n  section: number | null;\n  chapters: Array<any>;\n  sections: Array<any>;\n  poems: Array<any>;\n}\n\n@Component({\n  components: {\n    BottomBarBookInfo,\n    BottomBarTooltip,\n    BottomBarRelated,\n    BottomBarControl,\n    InfoIcon,\n    GlobeIcon,\n    BookCoverIcon\n  }\n})\nexport default class BottomBar extends Vue {\n  book: Book | null = null;\n\n  showRelatedBooks = false;\n\n  showBookInfo = false;\n\n  getTranslation = getTranslation;\n\n  @Prop({ required: true })\n  bookContent!: any;\n\n  @Prop({ default: '' })\n  mobilePaginationType!: string;\n\n  @State('scale', { namespace: 'reader' })\n  scale!: number;\n\n  @Getter('currentBookSection', { namespace: 'navigation' })\n  currentSection?: BookSection;\n\n  @Getter('pagination', { namespace: 'navigation' })\n  pagination!: Pagination;\n\n  @Mutation('setScale', { namespace: 'reader' })\n  setScale!: Function;\n\n  @Watch('$route')\n  onRouteChange() {\n    this.showRelatedBooks = false;\n  }\n\n  get relatedBooksCount() {\n    const relatedBooks = this.bookContent && this.bookContent.related_poem_in_books;\n    return Array.isArray(relatedBooks)\n      ? relatedBooks.filter(\n          book =>\n            Array.isArray(book.translations) &&\n            book.translations.some((translation: any) => !!translation.section_slug)\n        ).length\n      : 0;\n  }\n\n  get hasRelatedBooks() {\n    const currentSection = this.currentSection;\n    if (!currentSection || !this.relatedBooksCount) {\n      return false;\n    }\n    return (\n      (currentSection.number_code_section || 0) > 0 ||\n      (currentSection.number_code_chapter || 0) > 0 ||\n      (currentSection.number_code_poem || 0) > 0\n    );\n  }\n\n  getEntityIndex(list: Array<PagingItem>, number: number) {\n    return list.findIndex(one => one.number === number);\n  }\n\n  getPrevUrl(list: Array<PagingItem>, number: number) {\n    const index = this.getEntityIndex(list, number);\n    const pagingItem = list[index - 1];\n    if (!pagingItem) {\n      return null;\n    }\n    return UrlBuilderService.getBookSectionUrl({\n      language: this.$route.params.language,\n      categorySlug: this.$route.params.category,\n      bookSlug: this.$route.params.book,\n      bookSectionSlug: pagingItem.bookSectionSlug\n    });\n  }\n\n  getNextUrl(list: Array<PagingItem>, number: number) {\n    const index = this.getEntityIndex(list, number);\n    const pagingItem = list[index + 1];\n    if (!pagingItem) {\n      return null;\n    }\n    return UrlBuilderService.getBookSectionUrl({\n      language: this.$route.params.language,\n      categorySlug: this.$route.params.category,\n      bookSlug: this.$route.params.book,\n      bookSectionSlug: pagingItem.bookSectionSlug\n    });\n  }\n\n  get prevChapterUrl() {\n    return this.pagination.chapter\n      ? this.getPrevUrl(this.pagination.chapters, this.pagination.chapter)\n      : null;\n  }\n\n  get nextChapterUrl() {\n    return this.pagination.chapter\n      ? this.getNextUrl(this.pagination.chapters, this.pagination.chapter)\n      : null;\n  }\n\n  get prevSectionUrl() {\n    return this.pagination.section\n      ? this.getPrevUrl(this.pagination.sections, this.pagination.section)\n      : null;\n  }\n\n  get nextSectionUrl() {\n    return this.pagination.section\n      ? this.getNextUrl(this.pagination.sections, this.pagination.section)\n      : null;\n  }\n\n  get prevPoemUrl() {\n    return this.pagination.poem ? this.getPrevUrl(this.pagination.poems, this.pagination.poem) : null;\n  }\n\n  get nextPoemUrl() {\n    return this.pagination.poem ? this.getNextUrl(this.pagination.poems, this.pagination.poem) : null;\n  }\n\n  get bookUrl() {\n    return UrlBuilderService.getBookUrl({\n      language: this.$route.params.language,\n      categorySlug: this.$route.params.category,\n      bookSlug: this.$route.params.book\n    });\n  }\n\n  getTranslationUrl(code: string) {\n    if (!this.currentSection) {\n      return '';\n    }\n    const { number_code_chapter, number_code_poem, number_code_section } = this.currentSection;\n\n    if (number_code_chapter || number_code_poem || number_code_section) {\n      return UrlBuilderService.getBookSectionUrl({\n        language: code,\n        categorySlug: this.$route.params.category,\n        bookSlug: this.$route.params.book,\n        bookSectionSlug: this.$route.params.bookSection\n      });\n    }\n    return UrlBuilderService.getBookUrl({\n      language: code,\n      categorySlug: this.$route.params.category,\n      bookSlug: this.$route.params.book\n    });\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BottomBar.vue?vue&type=template&id=4ac49d79&scoped=true&\"\nimport script from \"./BottomBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./BottomBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BottomBar.vue?vue&type=style&index=0&id=4ac49d79&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4ac49d79\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Overlay',{attrs:{\"visible\":_vm.visible,\"title\":_vm.title,\"centered\":true},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"content-note\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"flex justify-content-center align-items-center\"},[_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('close'))+\"\\n    \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport Overlay from '@/components/ui/Overlay.vue';\nimport { Prop } from 'vue-property-decorator';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: { Overlay }\n})\nexport default class BookNoteOverlay extends Vue {\n  @Prop({ required: true })\n  title!: boolean;\n\n  @Prop({ required: false })\n  visible?: boolean;\n\n  getTranslation = getTranslation;\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookNoteOverlay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookNoteOverlay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BookNoteOverlay.vue?vue&type=template&id=0d17b641&scoped=true&\"\nimport script from \"./BookNoteOverlay.vue?vue&type=script&lang=ts&\"\nexport * from \"./BookNoteOverlay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BookNoteOverlay.vue?vue&type=style&index=0&id=0d17b641&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0d17b641\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"contextMenu\",staticClass:\"context-menu\",style:({ top: (_vm.top + \"px\"), left: (_vm.left + \"px\") }),attrs:{\"role\":\"menu\"}},[_c('div',{staticClass:\"context-menu-header\"},[_vm._v(_vm._s(_vm.getTranslation('open'))+\"...\")]),_c('button',{staticClass:\"context-menu-item\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openLink(true)}}},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('inNewTab'))+\"\\n  \")]),_c('button',{staticClass:\"context-menu-item\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openLink()}}},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('inCurrentTab'))+\"\\n  \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { Ref } from 'vue-property-decorator';\nimport { getTranslation } from '@/services/Translation';\n\n@Component\nexport default class ContextMenu extends Vue {\n  getTranslation = getTranslation;\n\n  @Prop({ required: true })\n  link!: string;\n\n  @Prop({ required: true })\n  top!: number;\n\n  @Prop({ required: true })\n  left!: number;\n\n  @Ref('contextMenu')\n  refContextMenu!: HTMLDivElement;\n\n  mounted() {\n    setTimeout(() => {\n      document.body.addEventListener('click', this.onClickOutside);\n    }, 100);\n  }\n\n  destroyed() {\n    document.body.removeEventListener('click', this.onClickOutside);\n  }\n\n  onClickOutside(e: MouseEvent) {\n    if (!(e.target === this.refContextMenu || this.refContextMenu.contains(e.target as Node))) {\n      this.$emit('close');\n    }\n  }\n\n  openLink(newTab = false) {\n    if (newTab) {\n      this.$store.commit('tabs/openTab');\n    }\n    this.$router.push(this.link);\n    this.$emit('close');\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContextMenu.vue?vue&type=template&id=46e239fa&scoped=true&\"\nimport script from \"./ContextMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContextMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ContextMenu.vue?vue&type=style&index=0&id=46e239fa&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"46e239fa\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Ref, Watch } from 'vue-property-decorator';\nimport { Getter, State } from 'vuex-class';\nimport BooksService from '@/services/Api/BooksService';\nimport Loader from '@/components/ui/Loader.vue';\nimport BottomBar from '@/components/bottom-bar/BottomBar.vue';\nimport { BookSection } from '@/services/Navigation/types';\nimport router from '@/router';\nimport { Route } from 'vue-router';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport BookNoteOverlay from '@/components/BookNoteOverlay.vue';\nimport StringService from '@/services/StringService';\nimport ContextMenu from '@/components/ContextMenu.vue';\nimport { getTranslation } from '@/services/Translation';\nimport UserService from '@/services/Api/UserService';\n\ninterface BookSectionWithContent extends BookSection {\n  content: {\n    book_title: string;\n    entities: Array<any>;\n    isFirst: boolean;\n    title: string;\n    is_article: boolean;\n  };\n}\n\ninterface ReadingPosition {\n  bookKey: string;\n  language: string;\n  book: string;\n  section: string;\n  location: string;\n  link: string;\n  position: number;\n  paragraphAnchor?: string;\n}\n\ninterface Pagination {\n  chapter: number | null;\n  poem: number | null;\n  section: number | null;\n  chapters: Array<any>;\n  sections: Array<any>;\n  poems: Array<any>;\n}\n\n@Component({\n  components: { ContextMenu, BookNoteOverlay, BottomBar, Loader }\n})\nexport default class BookContent extends Vue {\n  loading: boolean = false;\n  loadingMore: boolean = false;\n  contentError: boolean = false;\n  loadingSectionKey: string | null = null;\n  preloadingSectionKeys: Array<string> = [];\n  loadingContinuousSection: boolean = false;\n  sectionContentRequests: { [key: string]: Promise<BookSectionWithContent> } = {};\n  continuousFillPromise?: Promise<void>;\n  bookSectionsWithContent: { [bookId: number]: Array<BookSectionWithContent> } = {};\n  onScrollTimeout?: number;\n  readingPositionTimeout?: number;\n  viewportResizeTimeout?: number;\n  presentationFitFrame?: number;\n  presentationFontSize = 28;\n  pendingReadingPosition?: ReadingPosition;\n  lastReadingPosition?: ReadingPosition;\n  lastScrollPosition = 0;\n  suppressReaderScrollUntil = 0;\n  note = {\n    title: '',\n    content: '',\n    visible: false\n  };\n  contextMenu = {\n    top: 0,\n    left: 0,\n    link: ''\n  };\n  getTranslation = getTranslation;\n\n  formatBookTitle(title: string) {\n    return title.replace(/\\.\\s+/g, '.\\n');\n  }\n\n  @Ref('scroll')\n  refScroll!: HTMLDivElement;\n\n  @State('scale', { namespace: 'reader' })\n  scale!: number;\n\n  @State('presentationMode', { namespace: 'reader' })\n  presentationMode!: boolean;\n\n  @State('presentationScale', { namespace: 'reader' })\n  presentationScale!: number;\n\n  @State('presentationAutoFit', { namespace: 'reader' })\n  presentationAutoFit!: boolean;\n\n  @State('presentationHideTextTypes', { namespace: 'reader' })\n  presentationHideTextTypes!: Array<string>;\n\n  @State('inBookSearch', { namespace: 'search' })\n  inBookSearch!: boolean;\n\n  @State('error', { namespace: 'navigation' })\n  navigationError!: boolean | Error;\n\n  @Getter('currentBookSection', { namespace: 'navigation' })\n  currentBookSection?: BookSection;\n\n  @Getter('currentBookSections', { namespace: 'navigation' })\n  currentBookSections?: Array<BookSection>;\n\n  @Getter('pagination', { namespace: 'navigation' })\n  pagination?: Pagination;\n\n  async mounted() {\n    this.refScroll.addEventListener('scroll', this.onScroll);\n    window.addEventListener('resize', this.onViewportResize);\n    window.addEventListener('pagehide', this.flushCurrentReadingPosition);\n  }\n\n  beforeDestroy() {\n    this.refScroll.removeEventListener('scroll', this.onScroll);\n    window.removeEventListener('resize', this.onViewportResize);\n    window.removeEventListener('pagehide', this.flushCurrentReadingPosition);\n    if (this.onScrollTimeout) {\n      clearTimeout(this.onScrollTimeout);\n    }\n    if (this.readingPositionTimeout) {\n      clearTimeout(this.readingPositionTimeout);\n    }\n    if (this.viewportResizeTimeout) {\n      clearTimeout(this.viewportResizeTimeout);\n    }\n    if (this.presentationFitFrame !== undefined) {\n      window.cancelAnimationFrame(this.presentationFitFrame);\n    }\n    if (this.pendingReadingPosition) {\n      this.saveReadingPosition(this.pendingReadingPosition);\n    }\n  }\n\n  deactivated() {\n    if (this.pendingReadingPosition) {\n      this.saveReadingPosition(this.pendingReadingPosition);\n    }\n  }\n\n  updated() {\n    this.bindLinksEvent();\n    this.schedulePresentationFit();\n  }\n\n  @Watch('presentationMode')\n  @Watch('presentationScale')\n  @Watch('presentationAutoFit')\n  @Watch('presentationHideTextTypes', { deep: true })\n  onPresentationLayoutChange() {\n    this.schedulePresentationFit();\n  }\n\n  @Watch('$route')\n  async onRouteChange(to: Route, from?: Route) {\n    if (!['book-section', 'category-book-section', 'author-book-section'].includes(to.name || '')) {\n      return;\n    }\n    const changedBook = Boolean(\n      from && (to.params.language !== from.params.language || to.params.book !== from.params.book)\n    );\n    const changedSectionRoute = Boolean(from && to.path !== from.path);\n    if (changedSectionRoute && this.onScrollTimeout) {\n      clearTimeout(this.onScrollTimeout);\n      this.onScrollTimeout = undefined;\n    }\n    const routeLoadKey = this.getRouteLoadKey(to);\n    this.contentError = false;\n    this.$store.commit('navigation/setError', false);\n    if (this.isCurrentBookSectionRoute() && this.currentBookSectionWithContent) {\n      this.loading = false;\n      this.loadingMore = false;\n      if (\n        changedBook ||\n        to.query.bookmark === '1' ||\n        to.query.resume === '1' ||\n        to.query.toc === '1' ||\n        typeof to.query.position === 'string' ||\n        typeof to.query.anchor === 'string'\n      ) {\n        await this.$nextTick();\n        await this.waitForReadingFonts();\n        this.scrollToCurrentPage();\n      }\n      this.updateTabName();\n      this.ensureContinuousContentAhead();\n      return;\n    }\n    if (Object.keys(to.query).find(key => key === 'reading')) {\n      this.loadingMore = true;\n      try {\n        if (await this.fetchContent()) {\n          if (changedBook) {\n            await this.$nextTick();\n            await this.waitForReadingFonts();\n            this.scrollToCurrentPage();\n          }\n          this.updateTabName();\n          this.ensureContinuousContentAhead();\n        }\n      } catch (e) {\n        this.setContentError(e, routeLoadKey);\n      } finally {\n        if (this.getRouteLoadKey() === routeLoadKey) {\n          this.loadingMore = false;\n        }\n      }\n      return;\n    }\n    this.loading = true;\n    try {\n      if (await this.fetchContent()) {\n        await this.$nextTick();\n        await this.waitForReadingFonts();\n        this.scrollToCurrentPage();\n        this.updateTabName();\n        this.ensureContinuousContentAhead();\n      }\n    } catch (e) {\n      this.setContentError(e, routeLoadKey);\n    } finally {\n      if (this.getRouteLoadKey() === routeLoadKey) {\n        this.loading = false;\n      }\n    }\n  }\n\n  @Watch('currentBookSection', { immediate: true })\n  async onCurrentBookSectionChange(to: BookSection) {\n    if (!to) {\n      this.loading = true;\n      return;\n    }\n\n    // Catalog branch commits can briefly clear and restore the selected\n    // section. Do not let that transient state re-enable the full-page loader\n    // after this section's content has already arrived.\n    if (this.currentBookSectionWithContent) {\n      this.loading = false;\n      this.contentError = false;\n      return;\n    }\n\n    const sectionKey = `${to.book.id}:${to.id}`;\n    if (this.loadingSectionKey !== sectionKey) {\n      this.loadingSectionKey = sectionKey;\n      try {\n        await this.initialLoadContent();\n      } finally {\n        if (this.loadingSectionKey === sectionKey) {\n          this.loadingSectionKey = null;\n        }\n      }\n    }\n  }\n\n  isCurrentBookSectionRoute() {\n    const currentBookSection = this.currentBookSection;\n    if (!currentBookSection) {\n      return false;\n    }\n    return (\n      currentBookSection.book.language === this.$route.params.language &&\n      currentBookSection.book.slug === this.$route.params.book &&\n      currentBookSection.slug === this.$route.params.bookSection\n    );\n  }\n\n  get currentBookSectionIndex() {\n    const currentBookSection = this.currentBookSection;\n    const currentBookSections = this.currentBookSections;\n    if (!(currentBookSections && currentBookSection)) {\n      return null;\n    }\n    return currentBookSections.findIndex(bookSection => bookSection.id === currentBookSection.id);\n  }\n\n  /**\n   * Get all sections with content of current book\n   */\n  get currentBookSectionsWithContent() {\n    const currentBookSection = this.currentBookSection;\n    if (!currentBookSection) {\n      return [];\n    }\n    const currentBookId = currentBookSection.book.id;\n    return this.bookSectionsWithContent[currentBookId] || [];\n  }\n\n  /**\n   * Get current section with content of current book\n   */\n  get currentBookSectionWithContent() {\n    const currentBookSection = this.currentBookSection;\n    if (!currentBookSection) {\n      return null;\n    }\n    return this.currentBookSectionsWithContent\n      .filter(one => one)\n      .find(bookSection => bookSection.id === currentBookSection.id);\n  }\n\n  get blockingError() {\n    return !!(\n      this.contentError ||\n      (this.navigationError && !this.currentBookSection && !this.currentBookSectionWithContent)\n    );\n  }\n\n  get tabName() {\n    let tabName = '...';\n    if (!this.currentBookSectionWithContent) {\n      return '';\n    }\n    if (this.currentBookSectionWithContent.content.is_article) {\n      tabName = this.currentBookSectionWithContent.content.book_title;\n    } else if (this.currentBookSection) {\n      tabName = `${this.currentBookSection.book.name} — ${this.currentBookSection.name}`;\n    }\n    return tabName;\n  }\n\n  get mobilePaginationType() {\n    if (!this.pagination) {\n      return '';\n    }\n    if (this.pagination.poem && this.pagination.poems.length > 1) {\n      return 'poem';\n    }\n    if (this.pagination.section && this.pagination.sections.length > 1) {\n      return 'section';\n    }\n    if (this.pagination.chapter && this.pagination.chapters.length > 1) {\n      return 'chapter';\n    }\n    return '';\n  }\n\n  get textTypeVisibilityClasses() {\n    if (!this.$store.state.reader.readMode) {\n      return '';\n    }\n    const hiddenTypes = this.presentationMode\n      ? this.presentationHideTextTypes\n      : this.$store.state.reader.hideTextTypes;\n    return Array.isArray(hiddenTypes) ? hiddenTypes.map(one => `hide-${one}`).join(' ') : '';\n  }\n\n  isPresentationCurrentSection(bookSection: BookSectionWithContent) {\n    return !!(\n      this.presentationMode &&\n      this.currentBookSection &&\n      bookSection.id === this.currentBookSection.id\n    );\n  }\n\n  getPageStyle(bookSection: BookSectionWithContent) {\n    if (this.isPresentationCurrentSection(bookSection)) {\n      return { fontSize: `${this.presentationFontSize}px` };\n    }\n    return { fontSize: `${10 * this.scale}px` };\n  }\n\n  schedulePresentationFit() {\n    if (!this.presentationMode || this.presentationFitFrame !== undefined) {\n      return;\n    }\n    this.presentationFitFrame = window.requestAnimationFrame(() => {\n      this.presentationFitFrame = undefined;\n      this.fitPresentationContent();\n    });\n  }\n\n  fitPresentationContent() {\n    if (!(this.presentationMode && this.refScroll)) {\n      return;\n    }\n    const page = this.refScroll.querySelector('.page.presentation-current') as HTMLElement | null;\n    if (!page) {\n      return;\n    }\n    this.refScroll.scrollTop = 0;\n    if (!this.presentationAutoFit) {\n      const baseSize = Math.max(18, Math.min(42, window.innerWidth * 0.018));\n      const manualSize = Math.round(baseSize * this.presentationScale * 2) / 2;\n      if (Math.abs(this.presentationFontSize - manualSize) > 0.1) {\n        this.presentationFontSize = manualSize;\n      }\n      return;\n    }\n\n    const availableHeight = this.refScroll.clientHeight;\n    const availableWidth = this.refScroll.clientWidth;\n    let lower = 10;\n    let upper = Math.max(32, Math.min(52, window.innerWidth * 0.028));\n    for (let iteration = 0; iteration < 9; iteration += 1) {\n      const candidate = (lower + upper) / 2;\n      page.style.fontSize = `${candidate}px`;\n      const fits = page.scrollHeight <= availableHeight + 1 && page.scrollWidth <= availableWidth + 1;\n      if (fits) {\n        lower = candidate;\n      } else {\n        upper = candidate;\n      }\n    }\n    const fittedSize = Math.floor(lower * 2) / 2;\n    page.style.fontSize = `${fittedSize}px`;\n    if (Math.abs(this.presentationFontSize - fittedSize) > 0.1) {\n      this.presentationFontSize = fittedSize;\n    }\n  }\n\n  get highlight() {\n    if (typeof this.$route.query.highlight !== 'string') {\n      return '';\n    }\n    return this.$route.query.highlight.split(',').filter(word => word);\n  }\n\n  async initialLoadContent() {\n    const routeLoadKey = this.getRouteLoadKey();\n    this.loading = true;\n    this.contentError = false;\n    try {\n      if (!(await this.fetchContent())) {\n        return;\n      }\n      // Keep the content concealed by the loader until its saved scroll\n      // position has been applied to the fully rendered section.\n      await this.$nextTick();\n      await this.waitForReadingFonts();\n      this.scrollToCurrentPage();\n      this.updateTabName();\n      this.ensureContinuousContentAhead();\n    } catch (e) {\n      this.setContentError(e, routeLoadKey);\n    } finally {\n      if (this.getRouteLoadKey() === routeLoadKey) {\n        this.loading = false;\n      }\n    }\n  }\n\n  getRouteLoadKey(route: Route = this.$route) {\n    return [route.params.language || '', route.params.book || '', route.params.bookSection || ''].join(':');\n  }\n\n  setContentError(error: Error, routeLoadKey: string = this.getRouteLoadKey()) {\n    if (routeLoadKey !== this.getRouteLoadKey()) {\n      return;\n    }\n    this.contentError = true;\n    console.error(error); // eslint-disable-line no-console\n  }\n\n  updateTabName() {\n    this.$store.commit('tabs/updateActiveTabDetails', {\n      name: this.tabName,\n      bookName: this.currentBookSection ? this.currentBookSection.book.name : '',\n      location: this.currentBookSection ? this.currentBookSection.name : ''\n    });\n  }\n\n  async fetchContent() {\n    if (!this.isCurrentBookSectionRoute()) {\n      return false;\n    }\n    if (!this.currentBookSection) {\n      return false;\n    }\n    const currentBookSection = this.currentBookSection;\n    const bookId = currentBookSection.book.id;\n    const routeLoadKey = this.getRouteLoadKey();\n    const bookSectionsWithContent = this.currentBookSectionsWithContent.slice(0);\n\n    this.$store.commit('navigation/updatePreloadFlag');\n    bookSectionsWithContent[currentBookSection.number] = await this.fetchBookSectionContent(\n      currentBookSection\n    );\n\n    // To modify keys of object we should use Vue.set in order to support reactivity\n    // @see https://vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats\n    Vue.set(this.bookSectionsWithContent, bookId, bookSectionsWithContent);\n\n    if (routeLoadKey !== this.getRouteLoadKey()) {\n      return false;\n    }\n\n    // Adjacent sections improve continuous scrolling, but a slow neighbour\n    // must never delay the section explicitly requested by the user.\n    const adjacentContent = this.preloadAdjacentContent(bookId, currentBookSection.id);\n    if (\n      this.$route.query.bookmark === '1' ||\n      this.$route.query.resume === '1' ||\n      this.$route.query.toc === '1' ||\n      typeof this.$route.query.position === 'string' ||\n      (this.loading && this.getSavedReadingPosition(this.$route.path) > 0)\n    ) {\n      await adjacentContent;\n    }\n    return true;\n  }\n\n  async preloadAdjacentContent(bookId: number, sectionId: string) {\n    const sectionKey = `${bookId}:${sectionId}`;\n    if (this.preloadingSectionKeys.includes(sectionKey)) {\n      return;\n    }\n    this.preloadingSectionKeys.push(sectionKey);\n\n    try {\n      const [bookSectionsBefore, bookSectionsAfter] = await Promise.all([\n        this.fetchContentBeforeCurrent(),\n        this.fetchContentAfterCurrent()\n      ]);\n      const bookSectionsWithContent = (this.bookSectionsWithContent[bookId] || []).slice(0);\n      let needFixScroll = false;\n\n      if (bookSectionsBefore) {\n        bookSectionsBefore.forEach(bookSection => {\n          needFixScroll = needFixScroll || !this.wasBookSectionPreviouslyLoaded(bookSection);\n          bookSectionsWithContent[bookSection.number] = bookSection;\n        });\n      }\n      if (bookSectionsAfter) {\n        bookSectionsAfter.forEach(bookSection => {\n          bookSectionsWithContent[bookSection.number] = bookSection;\n        });\n      }\n      Vue.set(this.bookSectionsWithContent, bookId, bookSectionsWithContent);\n      if (needFixScroll) {\n        await this.fixScrollPosition();\n      }\n      this.ensureContinuousContentAhead();\n    } catch (e) {\n      console.error(e); // eslint-disable-line no-console\n    } finally {\n      this.preloadingSectionKeys = this.preloadingSectionKeys.filter(key => key !== sectionKey);\n    }\n  }\n\n  async fetchBookSectionContent(bookSection: BookSection) {\n    const requestKey = `${bookSection.book.id}:${bookSection.id}`;\n    if (!this.sectionContentRequests[requestKey]) {\n      this.sectionContentRequests[requestKey] = BooksService.getBookSectionContent(\n        bookSection.book.language,\n        bookSection.book.slug,\n        bookSection.slug\n      )\n        .then(content => ({ ...bookSection, content } as BookSectionWithContent))\n        .finally(() => {\n          delete this.sectionContentRequests[requestKey];\n        });\n    }\n    return this.sectionContentRequests[requestKey];\n  }\n\n  async doFetchContent(bookSections: Array<BookSection>, bestEffort: boolean = false) {\n    const results = await Promise.all(\n      bookSections.map(bookSection =>\n        this.fetchBookSectionContent(bookSection).catch(error => {\n          if (!bestEffort) {\n            throw error;\n          }\n          console.error(error); // eslint-disable-line no-console\n          return null;\n        })\n      )\n    );\n    return results.filter(section => !!section) as Array<BookSectionWithContent>;\n  }\n\n  getParagraphAnchor(bookSection: BookSection, index: number) {\n    const section = String(bookSection.slug || bookSection.id || 'section')\n      .toLowerCase()\n      .replace(/[^a-z0-9]+/g, '-')\n      .replace(/^-|-$/g, '');\n    return `paragraph-${section || 'section'}-${index}`;\n  }\n\n  async loadNextContinuousSection() {\n    if (\n      this.loadingContinuousSection ||\n      !this.currentBookSection ||\n      !this.currentBookSections ||\n      !this.currentBookSections.length\n    ) {\n      return false;\n    }\n    const bookId = this.currentBookSection.book.id;\n    const loaded = this.bookSectionsWithContent[bookId] || [];\n    const loadedIds = new Set(loaded.filter(Boolean).map(section => section.id));\n    const firstMissingIndex = this.currentBookSections.findIndex(section => !loadedIds.has(section.id));\n    const currentIndex =\n      typeof this.currentBookSectionIndex === 'number' ? this.currentBookSectionIndex : firstMissingIndex - 1;\n    const nextSection = this.currentBookSections\n      .slice(Math.max(0, currentIndex + 1))\n      .find(section => !loadedIds.has(section.id));\n    if (!nextSection) {\n      return false;\n    }\n    this.loadingContinuousSection = true;\n    try {\n      const [content] = await this.doFetchContent([nextSection]);\n      if (!content) {\n        return false;\n      }\n      const latest = (this.bookSectionsWithContent[bookId] || []).slice(0);\n      latest[nextSection.number] = content;\n      Vue.set(this.bookSectionsWithContent, bookId, latest);\n      return true;\n    } catch (e) {\n      console.error(e); // eslint-disable-line no-console\n      return false;\n    } finally {\n      this.loadingContinuousSection = false;\n    }\n  }\n\n  ensureContinuousContentAhead() {\n    if (this.presentationMode || !this.refScroll) {\n      return Promise.resolve();\n    }\n    if (this.continuousFillPromise) {\n      return this.continuousFillPromise;\n    }\n    const fillPromise = (async () => {\n      for (let attempt = 0; attempt < 8; attempt += 1) {\n        await this.$nextTick();\n        const remaining =\n          this.refScroll.scrollHeight - this.refScroll.clientHeight - this.refScroll.scrollTop;\n        if (remaining > this.refScroll.clientHeight * 1.5) {\n          break;\n        }\n        if (!(await this.loadNextContinuousSection())) {\n          break;\n        }\n      }\n    })();\n    this.continuousFillPromise = fillPromise;\n    return fillPromise.finally(() => {\n      if (this.continuousFillPromise === fillPromise) {\n        this.continuousFillPromise = undefined;\n      }\n    });\n  }\n\n  async fetchContentBeforeCurrent() {\n    if (!this.currentBookSections) {\n      return;\n    }\n    const bookSectionsBefore = [];\n    const index = this.currentBookSectionIndex;\n    if (index !== null) {\n      for (let i = index; i >= 0; i--) {\n        const bookSection = this.currentBookSections[i];\n        if (i === index) {\n          continue;\n        }\n        if (bookSection.preload) {\n          bookSectionsBefore.push(bookSection);\n        } else {\n          break;\n        }\n      }\n      return this.doFetchContent(bookSectionsBefore.reverse(), true);\n    }\n  }\n\n  async fetchContentAfterCurrent() {\n    if (!this.currentBookSections) {\n      return;\n    }\n    const bookSectionsAfter = [];\n    const index = this.currentBookSectionIndex;\n    if (index !== null) {\n      for (let i = index; i < this.currentBookSections.length; i++) {\n        const bookSection = this.currentBookSections[i];\n        if (i === index) {\n          continue;\n        }\n        if (bookSection.preload) {\n          bookSectionsAfter.push(bookSection);\n        } else {\n          break;\n        }\n      }\n      return this.doFetchContent(bookSectionsAfter, true);\n    }\n  }\n\n  async fixScrollPosition() {\n    if (!this.currentBookSection) {\n      return;\n    }\n    await this.$nextTick();\n    if (!this.currentBookSection) {\n      return;\n    }\n    const bookSectionLink = this.getBookSectionUrl(this.currentBookSection);\n    const currentBookSectionElement = this.findPageElement(bookSectionLink);\n    if (currentBookSectionElement) {\n      this.scrollToPage(\n        currentBookSectionElement,\n        this.getSavedReadingPosition(currentBookSectionElement.dataset.page || '')\n      );\n    }\n  }\n\n  onScroll() {\n    const currentScrollPosition = this.refScroll.scrollTop;\n    const remaining = this.refScroll.scrollHeight - this.refScroll.clientHeight - currentScrollPosition;\n    if (\n      remaining <= this.refScroll.clientHeight * 1.5 &&\n      typeof this.ensureContinuousContentAhead === 'function'\n    ) {\n      this.ensureContinuousContentAhead();\n    }\n    const delta = currentScrollPosition - this.lastScrollPosition;\n    if (Math.abs(delta) > 12 && Date.now() >= this.suppressReaderScrollUntil) {\n      const event = {\n        direction: delta > 0 ? 'down' : 'up',\n        delta: Math.abs(delta),\n        top: currentScrollPosition,\n        max: Math.max(0, this.refScroll.scrollHeight - this.refScroll.clientHeight)\n      };\n      this.$emit('reader-scroll', event);\n      this.$root.$emit('reader-scroll', event);\n      this.lastScrollPosition = currentScrollPosition;\n    } else if (Math.abs(delta) > 0) {\n      this.lastScrollPosition = currentScrollPosition;\n    }\n    if (this.onScrollTimeout) {\n      clearTimeout(this.onScrollTimeout);\n    }\n    this.onScrollTimeout = setTimeout(() => {\n      const scrollPosition = this.refScroll.scrollTop;\n      const pages: Array<HTMLElement> = Array.from(this.refScroll.querySelectorAll('[data-page]'));\n      const newPage = pages.find(el => el.offsetTop + el.offsetHeight - 20 > scrollPosition);\n      const readingPosition = this.getReadingPosition(newPage);\n\n      if (readingPosition) {\n        this.updateReadingPositionLocally(readingPosition);\n        this.scheduleReadingPositionSave(readingPosition);\n      }\n\n      // todo maybe bad solution: once content is loaded is should be put before scroll\n      if (\n        newPage &&\n        newPage.dataset.page &&\n        Date.now() >= this.suppressReaderScrollUntil &&\n        (!newPage.dataset.isParent || scrollPosition === 0) &&\n        (router.currentRoute.path !== newPage.dataset.page || !router.currentRoute.query.reading)\n      ) {\n        router.replace({ path: newPage.dataset.page, query: { ...router.currentRoute.query, reading: '1' } });\n      }\n    }, 50);\n  }\n\n  onClickOnNote(e: Event) {\n    const target = e.target as HTMLDivElement;\n    const element = target && (target.classList.contains('footnote') ? target : target.closest('.footnote'));\n    if (element) {\n      const note = element.getAttribute('data-footnote-content');\n      const number = element.getAttribute('data-footnote-number');\n      this.note.title = number ? `${getTranslation('note')} №${number}` : '';\n      this.note.content = note || '';\n      this.note.visible = true;\n    }\n  }\n\n  resetNote() {\n    this.note.title = '';\n    this.note.content = '';\n    this.note.visible = false;\n  }\n\n  scrollToCurrentPage() {\n    const pageElement = this.findPageElement(this.$route.path);\n    if (pageElement) {\n      const queryPosition =\n        typeof this.$route.query.position === 'string' ? Number(this.$route.query.position) : NaN;\n      if (this.$route.query.toc === '1') {\n        this.scrollToSectionHeading(pageElement);\n      } else if (Number.isFinite(queryPosition)) {\n        this.scrollToPage(pageElement, queryPosition);\n      } else {\n        const queryAnchor = typeof this.$route.query.anchor === 'string' ? this.$route.query.anchor : '';\n        const savedAnchor = this.getSavedParagraphAnchor(this.$route.path);\n        const anchor = queryAnchor || savedAnchor;\n        if (anchor && this.scrollToParagraph(anchor)) {\n          const readingPosition = this.getReadingPosition(pageElement);\n          if (readingPosition) {\n            this.updateReadingPositionLocally(readingPosition);\n            this.scheduleReadingPositionSave(readingPosition);\n          }\n        } else {\n          this.scrollToPage(pageElement, this.getSavedReadingPosition(this.$route.path));\n        }\n      }\n      this.clearBookmarkOpeningFlag();\n    }\n  }\n\n  clearBookmarkOpeningFlag() {\n    if (\n      this.$route.query.bookmark !== '1' &&\n      this.$route.query.resume !== '1' &&\n      this.$route.query.toc !== '1' &&\n      !this.$route.query.position &&\n      !this.$route.query.anchor\n    ) {\n      return;\n    }\n    const query = { ...this.$route.query };\n    delete query.bookmark;\n    delete query.resume;\n    delete query.toc;\n    delete query.position;\n    delete query.anchor;\n    router.replace({ path: this.$route.path, query }).catch(() => {});\n  }\n\n  async waitForReadingFonts() {\n    const fonts = (document as any).fonts;\n    if (fonts && fonts.ready) {\n      try {\n        await fonts.ready;\n      } catch (e) {\n        // A failed optional webfont must not prevent the book from opening.\n      }\n    }\n    await this.$nextTick();\n  }\n\n  scrollToPage(el: HTMLElement, position: number = 0) {\n    this.suppressReaderScrollUntil = Date.now() + 150;\n    this.refScroll.scrollTop = el.offsetTop + el.offsetHeight * Math.max(0, Math.min(1, position));\n    this.lastScrollPosition = this.refScroll.scrollTop;\n    const readingPosition = this.getReadingPosition(el);\n    if (readingPosition) {\n      this.updateReadingPositionLocally(readingPosition);\n      this.scheduleReadingPositionSave(readingPosition);\n    }\n  }\n\n  scrollToSectionHeading(page: HTMLElement) {\n    const heading = page.querySelector('.title') as HTMLElement | null;\n    if (!heading) {\n      this.scrollToPage(page, 0);\n      return;\n    }\n    const scrollRect = this.refScroll.getBoundingClientRect();\n    const headingRect = heading.getBoundingClientRect();\n    this.suppressReaderScrollUntil = Date.now() + 150;\n    this.refScroll.scrollTop += headingRect.top - scrollRect.top - 16;\n    this.lastScrollPosition = this.refScroll.scrollTop;\n    const readingPosition = this.getReadingPosition(page);\n    if (readingPosition) {\n      this.updateReadingPositionLocally(readingPosition);\n      this.scheduleReadingPositionSave(readingPosition);\n    }\n  }\n\n  getSavedReadingPosition(link: string) {\n    const activeTab = this.$store.state.tabs.list.find((tab: { active: boolean }) => tab.active);\n    if (!(activeTab && activeTab.link && activeTab.link.split('?')[0] === link)) {\n      return 0;\n    }\n    return typeof activeTab.position === 'number' ? activeTab.position : 0;\n  }\n\n  getSavedParagraphAnchor(link: string) {\n    const activeTab = this.$store.state.tabs.list.find((tab: { active: boolean }) => tab.active);\n    if (!(activeTab && activeTab.link && activeTab.link.split('?')[0] === link)) {\n      return '';\n    }\n    return activeTab.paragraphAnchor || '';\n  }\n\n  scrollToParagraph(anchor: string) {\n    const paragraph = Array.from(this.refScroll.querySelectorAll('[data-paragraph-anchor]')).find(\n      element => (element as HTMLElement).dataset.paragraphAnchor === anchor\n    ) as HTMLElement | undefined;\n    if (!paragraph) {\n      return false;\n    }\n    const scrollRect = this.refScroll.getBoundingClientRect();\n    const paragraphRect = paragraph.getBoundingClientRect();\n    this.suppressReaderScrollUntil = Date.now() + 150;\n    this.refScroll.scrollTop += paragraphRect.top - scrollRect.top - 16;\n    this.lastScrollPosition = this.refScroll.scrollTop;\n    return true;\n  }\n\n  getReadingPosition(page?: HTMLElement) {\n    if (!(page && page.dataset.page)) {\n      return null;\n    }\n    const section = this.currentBookSectionsWithContent\n      .filter(one => one)\n      .find(bookSection => this.getBookSectionUrl(bookSection) === page.dataset.page);\n    if (!section) {\n      return null;\n    }\n    const relativeTop = Math.max(0, this.refScroll.scrollTop - page.offsetTop);\n    const position = page.offsetHeight ? Math.min(1, relativeTop / page.offsetHeight) : 0;\n    const canMeasureParagraphs =\n      typeof this.refScroll.getBoundingClientRect === 'function' &&\n      typeof page.querySelectorAll === 'function';\n    const scrollRect = canMeasureParagraphs ? this.refScroll.getBoundingClientRect() : null;\n    const paragraphs: Array<HTMLElement> = canMeasureParagraphs\n      ? Array.from(page.querySelectorAll('[data-paragraph-anchor]'))\n      : [];\n    const paragraph =\n      paragraphs\n        .filter(\n          element =>\n            !!scrollRect &&\n            typeof element.getBoundingClientRect === 'function' &&\n            element.getBoundingClientRect().top <= scrollRect.top + 32\n        )\n        .pop() || paragraphs[0];\n    return {\n      bookKey: `${section.book.language}:${section.book.slug}`,\n      language: section.book.language,\n      book: section.book.slug,\n      section: section.slug,\n      location: section.name,\n      link: page.dataset.page,\n      position,\n      paragraphAnchor: paragraph ? paragraph.dataset.paragraphAnchor || '' : ''\n    } as ReadingPosition;\n  }\n\n  updateReadingPositionLocally(position: ReadingPosition) {\n    this.lastReadingPosition = position;\n    const updatedAt = new Date().toISOString();\n    this.$store.commit('tabs/updateBookTabDetails', {\n      bookKey: position.bookKey,\n      details: {\n        link: position.link,\n        location: position.location,\n        position: position.position,\n        paragraphAnchor: position.paragraphAnchor,\n        updatedAt\n      }\n    });\n    this.$store.commit('tabs/updateCurrentReading', {\n      name: this.tabName,\n      bookName: this.currentBookSection ? this.currentBookSection.book.name : this.tabName,\n      bookKey: position.bookKey,\n      link: position.link,\n      active: false,\n      location: position.location,\n      position: position.position,\n      paragraphAnchor: position.paragraphAnchor,\n      updatedAt,\n      sectionPositions: this.getSavedSectionPositions(position.bookKey)\n    });\n  }\n\n  scheduleReadingPositionSave(position: ReadingPosition) {\n    this.pendingReadingPosition = position;\n    if (this.readingPositionTimeout) {\n      clearTimeout(this.readingPositionTimeout);\n    }\n    this.readingPositionTimeout = setTimeout(() => {\n      this.readingPositionTimeout = undefined;\n      if (this.pendingReadingPosition) {\n        this.saveReadingPosition(this.pendingReadingPosition);\n      }\n    }, 700);\n  }\n\n  flushCurrentReadingPosition() {\n    if (this.onScrollTimeout) {\n      clearTimeout(this.onScrollTimeout);\n      this.onScrollTimeout = undefined;\n    }\n    const pages: Array<HTMLElement> = Array.from(this.refScroll.querySelectorAll('[data-page]'));\n    const page = pages.find(item => item.offsetTop + item.offsetHeight - 20 > this.refScroll.scrollTop);\n    // During pagehide the browser may already be reflowing an orientation\n    // change. Prefer the last position measured while layout was stable.\n    const position = this.pendingReadingPosition || this.lastReadingPosition || this.getReadingPosition(page);\n    if (!position) {\n      return;\n    }\n    this.updateReadingPositionLocally(position);\n    this.pendingReadingPosition = undefined;\n    UserService.saveReadingPositionOnPageHide({\n      language: position.language,\n      book: position.book,\n      section: position.section,\n      position: position.position,\n      section_positions: this.getSavedSectionPositions(position.bookKey)\n    });\n  }\n\n  onViewportResize() {\n    if (typeof this.schedulePresentationFit === 'function') {\n      this.schedulePresentationFit();\n    }\n    const position = this.lastReadingPosition;\n    if (!position) {\n      return;\n    }\n    if (this.viewportResizeTimeout) {\n      clearTimeout(this.viewportResizeTimeout);\n    }\n    this.viewportResizeTimeout = setTimeout(() => {\n      this.viewportResizeTimeout = undefined;\n      const page = this.findPageElement(position.link);\n      if (page) {\n        this.scrollToPage(page, position.position);\n      }\n    }, 120);\n  }\n\n  async saveReadingPosition(position: ReadingPosition) {\n    this.pendingReadingPosition = undefined;\n    try {\n      const saved = await UserService.saveReadingPosition({\n        language: position.language,\n        book: position.book,\n        section: position.section,\n        position: position.position,\n        section_positions: this.getSavedSectionPositions(position.bookKey)\n      });\n      this.$store.commit('tabs/updateBookTabDetails', {\n        bookKey: position.bookKey,\n        details: {\n          updatedAt: saved.updated_at || new Date().toISOString()\n        }\n      });\n    } catch (e) {\n      // The local reading position remains available if synchronization is temporarily unavailable.\n    }\n  }\n\n  getSavedSectionPositions(bookKey: string) {\n    const tab = this.$store.state.tabs.list.find((item: { bookKey?: string }) => item.bookKey === bookKey);\n    return tab && tab.sectionPositions ? { ...tab.sectionPositions } : {};\n  }\n\n  findPageElement(url: string) {\n    if (!(this.refScroll && typeof this.refScroll.querySelector === 'function')) {\n      return null;\n    }\n    return this.refScroll.querySelector(`[data-page=\"${url}\"]`) as HTMLElement | null;\n  }\n\n  wasBookSectionPreviouslyLoaded(bookSection: BookSectionWithContent) {\n    const currentBookSection = this.currentBookSection;\n    if (!currentBookSection) {\n      return false;\n    }\n    return !!this.currentBookSectionsWithContent\n      .filter(one => one)\n      .find(one => one.id === bookSection.id && one.book.id === bookSection.book.id);\n  }\n\n  getAuthorUrl(slug: string) {\n    return UrlBuilderService.getAuthorUrl({\n      language: this.$route.params.language,\n      authorSlug: slug\n    });\n  }\n\n  getBookSectionUrl(bookSection: BookSection | BookSectionWithContent) {\n    return UrlBuilderService.getBookSectionUrl({\n      language: bookSection.book.language,\n      categorySlug: this.$route.params.category,\n      authorSlug: this.$route.params.author,\n      bookSlug: bookSection.book.slug,\n      bookSectionSlug: bookSection.slug\n    });\n  }\n\n  getContent(entity: { content: string; type?: string }) {\n    let content =\n      entity.type === 'word-by-word' ? this.decorateWordByWordTerms(entity.content) : entity.content;\n    if (this.highlight && this.highlight.length) {\n      for (const word of this.highlight) {\n        content = StringService.replaceAll(content, word, `<em class=\"highlight\">${word}</em>`);\n      }\n    }\n    return content;\n  }\n\n  decorateWordByWordTerms(content: string) {\n    const template = document.createElement('template');\n    template.innerHTML = content;\n    Array.from(template.content.querySelectorAll('em, i, strong, b, span')).forEach(element => {\n      const nextSibling = element.nextSibling;\n      const separator = nextSibling && nextSibling.textContent ? nextSibling.textContent : '';\n      if (\n        !element.classList.contains('word-by-word-term') &&\n        !element.closest('.word-by-word-term') &&\n        /^\\s*[—–-]\\s+/.test(separator)\n      ) {\n        element.classList.add('word-by-word-term');\n      }\n    });\n    const walker = document.createTreeWalker(template.content, NodeFilter.SHOW_TEXT);\n    const textNodes: Array<Text> = [];\n    let currentNode = walker.nextNode();\n    while (currentNode) {\n      textNodes.push(currentNode as Text);\n      currentNode = walker.nextNode();\n    }\n\n    textNodes.forEach(textNode => {\n      const parent = textNode.parentElement;\n      if (parent && parent.closest('em, i, .word-by-word-term')) {\n        return;\n      }\n      const text = textNode.textContent || '';\n      const termPattern = /(^|;\\s*)([^;—–]+?)(\\s+[—–]\\s+)/g;\n      const fragment = document.createDocumentFragment();\n      let lastIndex = 0;\n      let match = termPattern.exec(text);\n      if (!match) {\n        return;\n      }\n      do {\n        fragment.appendChild(document.createTextNode(text.slice(lastIndex, match.index) + match[1]));\n        const term = document.createElement('span');\n        term.className = 'word-by-word-term';\n        term.textContent = match[2];\n        fragment.appendChild(term);\n        fragment.appendChild(document.createTextNode(match[3]));\n        lastIndex = termPattern.lastIndex;\n        match = termPattern.exec(text);\n      } while (match);\n      fragment.appendChild(document.createTextNode(text.slice(lastIndex)));\n      textNode.replaceWith(fragment);\n    });\n\n    return template.innerHTML;\n  }\n\n  captureCurrentReadingPosition() {\n    if (this.onScrollTimeout) {\n      clearTimeout(this.onScrollTimeout);\n      this.onScrollTimeout = undefined;\n    }\n    const pages: Array<HTMLElement> = Array.from(this.refScroll.querySelectorAll('[data-page]'));\n    const page = pages.find(item => item.offsetTop + item.offsetHeight - 20 > this.refScroll.scrollTop);\n    const position = this.getReadingPosition(page);\n    if (position) {\n      this.updateReadingPositionLocally(position);\n      this.lastReadingPosition = position;\n    }\n    return position;\n  }\n\n  bindLinksEvent() {\n    const links = this.refScroll.querySelectorAll('a.link-to-poem:not([data-bound=\"1\"])') as NodeListOf<\n      HTMLAnchorElement\n    >;\n    if (!links.length) {\n      return;\n    }\n\n    const scrollOffsetTop = this.refScroll.getBoundingClientRect().top;\n\n    for (const link of links) {\n      link.addEventListener('click', e => {\n        e.preventDefault();\n        this.contextMenu.link = link.getAttribute('href') || '';\n        this.contextMenu.top = this.refScroll.scrollTop + e.pageY - scrollOffsetTop;\n        this.contextMenu.left = link.offsetLeft;\n      });\n      link.dataset.bound = '1';\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BookContent.vue?vue&type=template&id=64ac2e40&scoped=true&\"\nimport script from \"./BookContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./BookContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BookContent.vue?vue&type=style&index=0&id=64ac2e40&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"64ac2e40\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Loader',{attrs:{\"hidden\":!_vm.loading}}),(_vm.book)?_c('div',{staticClass:\"page book\",class:{ loading: _vm.loading }},[_c('div',{staticClass:\"book-top\"},[(_vm.book.cover_image)?_c('div',[_c('img',{staticClass:\"book-image\",attrs:{\"src\":_vm.book.cover_image,\"alt\":\"\"}}),(_vm.book.download_files && _vm.book.download_files.length)?_c('div',{staticClass:\"book-download\"},[_vm._v(\"\\n          \"+_vm._s(_vm.getTranslation('downloadFile'))+\"\\n          \"),_vm._l((_vm.book.download_files),function(file){return _c('div',{key:file.name},[_c('a',{staticClass:\"book-file\",attrs:{\"href\":file.url}},[_c('DownloadIcon'),_vm._v(\" \"+_vm._s(file.extension)+\" (\"+_vm._s(file.size)+\")\\n            \")],1)])})],2):_vm._e()]):_vm._e(),_c('div',{staticClass:\"book-summary\"},[(_vm.book.name)?_c('h1',{staticClass:\"book-name\"},[_vm._v(_vm._s(_vm.book.name))]):_vm._e(),(_vm.book.original_name)?_c('div',{staticClass:\"book-original-name\"},[_vm._v(_vm._s(_vm.book.original_name))]):_vm._e(),(_vm.book.authors)?_c('div',{staticClass:\"book-author\"},[_vm._v(\"\\n          \"+_vm._s(_vm.authors)+\"\\n        \")]):_vm._e(),(_vm.book.description)?_c('div',{staticClass:\"book-description\"},[_vm._v(_vm._s(_vm.book.description))]):_vm._e(),_c('div',{staticClass:\"book-actions\"},[(_vm.continueReadingUrl)?_c('router-link',{staticClass:\"button book-read-link\",attrs:{\"to\":_vm.continueReadingUrl}},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('read'))+\"\\n          \")]):_vm._e(),_c('router-link',{staticClass:\"button secondary book-search-link\",attrs:{\"to\":_vm.bookSearchUrl}},[_c('SearchIcon'),_c('span',[_vm._v(_vm._s(_vm.getTranslation('searchInBook')))])],1)],1)])]),(_vm.book.related_books && _vm.book.related_books.length)?_c('div',{staticClass:\"book-section\"},[_c('h2',{staticClass:\"book-section-title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('linkedBooks'))+\"\\n        \"),_c('span',{staticClass:\"book-section-title-note\"},[_vm._v(\"(\"+_vm._s(_vm.book.related_books.length)+\")\")])]),_c('BooksWithTranslations',{attrs:{\"books\":_vm.book.related_books}})],1):_vm._e(),(_vm.book.other_publications && _vm.book.other_publications.length)?_c('div',{staticClass:\"book-section\"},[_c('h2',{staticClass:\"book-section-title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('otherPublishings'))+\"\\n        \"),_c('span',{staticClass:\"book-section-title-note\"},[_vm._v(\"(\"+_vm._s(_vm.book.other_publications.length)+\")\")])]),_c('BooksWithTranslations',{attrs:{\"books\":_vm.book.other_publications}})],1):_vm._e(),_c('h2',{staticClass:\"book-section-title\"},[_vm._v(_vm._s(_vm.getTranslation('outputData')))]),_c('table',{staticClass:\"book-issue-data\"},[_c('tbody',[_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('bookTitle'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.name))])]),(_vm.book.original_name)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('bookOriginalTitle'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.original_name))])]):_vm._e(),(_vm.book.authors && _vm.book.authors.length)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation(_vm.book.authors.length > 1 ? 'authors' : 'author'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.authors))])]):_vm._e(),(_vm.book.commentators && _vm.book.commentators.length)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation(_vm.book.commentators.length > 1 ? 'commentators' : 'commentator'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.commentators.join(', ')))])]):_vm._e(),(_vm.book.language)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('bookTranslation'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.language))])]):_vm._e(),(_vm.book.translator)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('translator'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.translator))])]):_vm._e(),(_vm.book.editor)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('editor'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.editor))])]):_vm._e(),(_vm.book.publisher)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('publisher'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.publisher))])]):_vm._e(),(_vm.book.publishing_year)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('publishingYear'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.publishing_year))])]):_vm._e(),(_vm.book.ISBN)?_c('tr',[_c('td',[_vm._v(\"ISBN:\")]),_c('td',[_vm._v(_vm._s(_vm.book.ISBN))])]):_vm._e(),(_vm.book.pages_count)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('pagesAmount'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.pages_count))])]):_vm._e(),(_vm.book.book_copies)?_c('tr',[_c('td',[_vm._v(_vm._s(_vm.getTranslation('printRun'))+\":\")]),_c('td',[_vm._v(_vm._s(_vm.book.book_copies))])]):_vm._e()])])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n      export default {\n        functional: true,\n        render(_h, _vm) {\n          const { _c, _v, data, children = [] } = _vm;\n\n          const {\n            class: classNames,\n            staticClass,\n            style,\n            staticStyle,\n            attrs = {},\n            ...rest\n          } = data;\n\n          return _c(\n            'svg',\n            {\n              class: [classNames,staticClass],\n              style: [style,staticStyle],\n              attrs: Object.assign({\"width\":\"13\",\"height\":\"16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}, attrs),\n              ...rest,\n            },\n            children.concat([_c('path',{attrs:{\"d\":\"M8.842.124A.402.402 0 008.557 0h-6.4C.974 0 0 .947 0 2.099V13.9C0 15.053.975 16 2.156 16h8.688C12.025 16 13 15.053 13 13.901V4.53a.41.41 0 00-.115-.27L8.842.124zm.115 1.24l2.707 2.771h-1.76a.932.932 0 01-.947-.92v-1.85zm1.887 13.863H2.156c-.741 0-1.363-.599-1.363-1.326V2.1c0-.723.618-1.326 1.363-1.326h6.009v2.442c0 .94.777 1.693 1.74 1.693h2.302v8.993c0 .727-.618 1.326-1.363 1.326z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M9.762 12.56H3.238a.393.393 0 00-.396.387c0 .212.178.386.396.386h6.528a.393.393 0 00.396-.386.394.394 0 00-.4-.387zM6.211 11.173a.404.404 0 00.29.124.404.404 0 00.289-.124l2.322-2.43a.378.378 0 00-.02-.546.402.402 0 00-.558.02L6.897 9.927v-4.22a.393.393 0 00-.397-.386.393.393 0 00-.396.386v4.22L4.471 8.216a.402.402 0 00-.559-.019.379.379 0 00-.02.545l2.32 2.431z\",\"fill\":\"currentColor\"}})])\n          )\n        }\n      }\n    ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.collapseAfter)?[_c('BooksWithTranslationsList',{attrs:{\"books\":_vm.books.slice(0, _vm.collapseAfter)}}),_c('Collapsible',{attrs:{\"expand-text\":_vm.expandText,\"collapse-text\":_vm.collapseText}},[_c('BooksWithTranslationsList',{attrs:{\"books\":_vm.books.slice(_vm.collapseAfter)}})],1)]:[_c('BooksWithTranslationsList',{attrs:{\"books\":_vm.books}})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.collapsed)?_vm._t(\"default\"):_vm._e(),_c('div',[_c('button',{staticClass:\"link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.collapsed = !_vm.collapsed}}},[_vm._v(\"\\n      \"+_vm._s(_vm.collapsed ? _vm.expandText : _vm.collapseText)+\"\\n    \")])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\n@Component\nexport default class Collapsible extends Vue {\n  @Prop({ required: true })\n  collapseText!: string;\n\n  @Prop({ required: true })\n  expandText!: string;\n\n  collapsed = true;\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsible.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Collapsible.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Collapsible.vue?vue&type=template&id=7bc9de6e&scoped=true&\"\nimport script from \"./Collapsible.vue?vue&type=script&lang=ts&\"\nexport * from \"./Collapsible.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Collapsible.vue?vue&type=style&index=0&id=7bc9de6e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7bc9de6e\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.books),function(book){return _c('div',{key:book.name,staticClass:\"book-translations\"},[_vm._v(\"\\n    \"+_vm._s(book.name)+\" —\\n    \"),_vm._l((book.translations),function(translation,index){return _c('span',{key:translation.short_name,staticClass:\"book-language\"},[(index > 0)?_c('span',[_vm._v(\" | \")]):_vm._e(),_c('router-link',{attrs:{\"to\":translation.url}},[_vm._v(_vm._s(translation.short_name))])],1)})],2)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\ninterface BookWithTranslations {\n  name: string;\n  translations: Array<{ url: string; short_name: string }>;\n}\n\n@Component\nexport default class BooksWithTranslationsList extends Vue {\n  @Prop({ required: true })\n  books!: Array<BookWithTranslations>;\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BooksWithTranslationsList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BooksWithTranslationsList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BooksWithTranslationsList.vue?vue&type=template&id=7afc7ed5&scoped=true&\"\nimport script from \"./BooksWithTranslationsList.vue?vue&type=script&lang=ts&\"\nexport * from \"./BooksWithTranslationsList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BooksWithTranslationsList.vue?vue&type=style&index=0&id=7afc7ed5&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7afc7ed5\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport Collapsible from '@/components/ui/Collapsible.vue';\nimport BooksWithTranslationsList from '@/components/BooksWithTranslationsList.vue';\n\ninterface BookWithTranslations {\n  name: string;\n  translations: Array<{ url: string; short_name: string }>;\n}\n\n@Component({\n  components: { BooksWithTranslationsList, Collapsible }\n})\nexport default class BooksWithTranslations extends Vue {\n  @Prop({ required: true })\n  books!: Array<BookWithTranslations>;\n\n  @Prop()\n  collapseAfter!: number;\n\n  @Prop()\n  collapseText!: string;\n\n  @Prop()\n  expandText!: string;\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BooksWithTranslations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BooksWithTranslations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BooksWithTranslations.vue?vue&type=template&id=50176799&\"\nimport script from \"./BooksWithTranslations.vue?vue&type=script&lang=ts&\"\nexport * from \"./BooksWithTranslations.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport BooksService from '@/services/Api/BooksService';\nimport Loader from '@/components/ui/Loader.vue';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport * as Book from '@/services/Api/BooksService/Book.types';\nimport DownloadIcon from '@/assets/icons/download.svg';\nimport SearchIcon from '@/assets/icons/zoom.svg';\nimport { Getter } from 'vuex-class';\nimport { Book as NavigationBook } from '@/services/Navigation/types';\nimport BooksWithTranslations from '@/components/BooksWithTranslations.vue';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: { BooksWithTranslations, Loader, DownloadIcon, SearchIcon }\n})\nexport default class BookCover extends Vue {\n  book: null | Book.Content = null;\n\n  loading: boolean = false;\n\n  getTranslation = getTranslation;\n\n  @Getter('currentBook', { namespace: 'navigation' })\n  navigationBook?: NavigationBook;\n\n  get authors() {\n    return this.book ? this.book.authors.map(author => author.name).join(', ') : '';\n  }\n\n  get continueReadingUrl() {\n    if (!this.book) {\n      return '';\n    }\n    const validateSectionUrl = (url: string) => {\n      if (!(url && this.navigationBook && this.navigationBook.children.length)) {\n        return url;\n      }\n      const sectionSlug = url\n        .split('?')[0]\n        .split('/')\n        .filter(Boolean)\n        .pop();\n      if (this.navigationBook.children.some(section => section.slug === sectionSlug)) {\n        return url;\n      }\n      const firstValidSection =\n        this.navigationBook.children.find(section => !section.is_parent) || this.navigationBook.children[0];\n      return firstValidSection ? this.getFirstBookSectionLink(firstValidSection.slug) : '';\n    };\n    const bookKey = `${this.$route.params.language}:${this.$route.params.book}`;\n    const savedTab = this.$store.state.tabs.list.find(\n      (tab: { bookKey?: string; link?: string }) => tab.bookKey === bookKey && tab.link\n    );\n    if (savedTab && savedTab.link && savedTab.link.split('?')[0] !== this.$route.path) {\n      return validateSectionUrl(savedTab.link);\n    }\n    return validateSectionUrl(this.book.firstSectionUrl || '');\n  }\n\n  get bookSearchUrl() {\n    const query = new URLSearchParams({\n      slug: this.$route.params.book,\n      inBookOnly: '1',\n      bookSearch: '1',\n      returnTo: this.$route.fullPath\n    });\n    if (this.navigationBook && this.navigationBook.id) {\n      query.set('bookId', this.navigationBook.id.toString());\n    }\n    return `/${this.$route.params.language}/search?${query.toString()}`;\n  }\n\n  async mounted() {\n    await this.fetchBook();\n    this.updateTabName();\n  }\n\n  @Watch('$route')\n  async onRouteChange() {\n    await this.fetchBook();\n    this.updateTabName();\n  }\n\n  updateTabName() {\n    const bookName = this.navigationBook\n      ? this.navigationBook.name\n      : this.book\n      ? this.book.name\n      : getTranslation('book');\n    this.$store.commit('tabs/updateActiveTabDetails', {\n      name: bookName,\n      bookName\n    });\n  }\n\n  async fetchBook() {\n    if (this.$route.params.book) {\n      this.loading = true;\n      this.book = await BooksService.getBookCover(this.$route.params.language, this.$route.params.book);\n      if (this.book) {\n        if (this.book.other_publications) {\n          this.book.other_publications = this.prepareTranslations(this.book.other_publications);\n        }\n        if (this.book.related_books) {\n          this.book.related_books = this.prepareTranslations(this.book.related_books);\n        }\n        if (this.book.first_section_slug) {\n          this.book.firstSectionUrl = this.getFirstBookSectionLink(this.book.first_section_slug);\n        }\n      }\n      this.loading = false;\n    }\n  }\n\n  getFirstBookSectionLink(slug: string) {\n    return UrlBuilderService.getBookSectionUrl({\n      language: this.$route.params.language,\n      categorySlug: this.$route.params.category,\n      authorSlug: this.$route.params.author,\n      bookSlug: this.$route.params.book,\n      bookSectionSlug: slug\n    });\n  }\n\n  prepareTranslations(books: Array<any>) {\n    return books.map(publication => ({\n      ...publication,\n      translations: publication.translations.map((translation: Book.Translation) => ({\n        ...translation,\n        url: UrlBuilderService.getBookUrl({\n          language: translation.lang,\n          categorySlug: this.$route.params.category,\n          bookSlug: publication.slug\n        })\n      }))\n    }));\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookCover.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BookCover.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BookCover.vue?vue&type=template&id=0a638dda&scoped=true&\"\nimport script from \"./BookCover.vue?vue&type=script&lang=ts&\"\nexport * from \"./BookCover.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BookCover.vue?vue&type=style&index=0&id=0a638dda&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0a638dda\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Loader',{attrs:{\"hidden\":!_vm.loading}}),(_vm.author)?_c('div',{staticClass:\"page author\",class:{ loading: _vm.loading }},[_c('div',{staticClass:\"author-top\"},[(_vm.author.cover_image)?_c('div',[_c('img',{staticClass:\"author-image\",attrs:{\"src\":_vm.author.cover_image,\"alt\":\"\"}})]):_vm._e(),_c('div',[_c('h1',{staticClass:\"author-name\"},[_vm._v(_vm._s(_vm.author.name))]),_c('div',{staticClass:\"author-statistics\"},[_c('div',{staticClass:\"author-statistics-one\"},[_vm._v(\"\\n            \"+_vm._s(_vm.getTranslation('books'))+\": \"),_c('b',[_vm._v(_vm._s(_vm.author.statistics.all))])]),_vm._l((_vm.authorBooksStat),function(books){return _c('div',{key:books.lang,staticClass:\"author-statistics-one\"},[_vm._v(\"\\n            \"+_vm._s(books.onLanguage)+\": \"),_c('b',[_vm._v(_vm._s(books.count))])])})],2),_c('div',{staticClass:\"author-description\"},[_vm._v(_vm._s(_vm.author.description))])])]),(_vm.author.books && _vm.author.books.length)?_c('div',{staticClass:\"author-section\"},[_c('h2',{staticClass:\"author-section-title\"},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('books'))+\"\\n        \"),_c('span',{staticClass:\"author-section-title-note\"},[_vm._v(\"(\"+_vm._s(_vm.author.books.length)+\")\")])]),_c('BooksWithTranslations',{attrs:{\"books\":_vm.author.books}})],1):_vm._e()]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { store } from '@/store';\nimport { ApiService } from '@/services/Api/ApiService';\nimport { endpoints } from '@/api-endpoints.json';\nimport { Author } from '@/services/Api/AuthorsService/Author.types';\n\nexport default class AuthorsService {\n  private static instance: AuthorsService;\n\n  apiService: ApiService = new ApiService();\n\n  private static getInstance() {\n    if (!AuthorsService.instance) {\n      AuthorsService.instance = new AuthorsService();\n    }\n    return AuthorsService.instance;\n  }\n\n  static async getAuthor(lang: string, slug: string): Promise<Author> {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.author.replace(':lang', lang).replace(':slug', slug))\n      .setToken(store.state.auth.token)\n      .cache()\n      .get()\n      .then(response => response.data.data);\n  }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport StringService from '@/services/StringService';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport AuthorsService from '@/services/Api/AuthorsService';\nimport { Author } from '@/services/Api/AuthorsService/Author.types';\nimport Loader from '@/components/ui/Loader.vue';\nimport BooksWithTranslations from '@/components/BooksWithTranslations.vue';\nimport { getTranslation } from '@/services/Translation';\nimport { TranslationStrings } from '@/translations/types';\n\n@Component({\n  components: { BooksWithTranslations, Loader }\n})\nexport default class AuthorBio extends Vue {\n  loading: boolean = false;\n\n  author: Author | null = null;\n  getTranslation = getTranslation;\n\n  get authorBooksStat() {\n    return (\n      this.author &&\n      this.author.statistics.languages.map(books => ({\n        count: books.count,\n        onLanguage: getTranslation(`onLanguage${StringService.capitalize(\n          books.lang\n        )}` as keyof TranslationStrings)\n      }))\n    );\n  }\n\n  async mounted() {\n    await this.fetchAuthor();\n    this.updateTabName();\n  }\n\n  @Watch('$route')\n  async onRouteChange() {\n    await this.fetchAuthor();\n    this.updateTabName();\n  }\n\n  async fetchAuthor() {\n    if (this.$route.params.author) {\n      this.loading = true;\n      this.author = await AuthorsService.getAuthor(this.$route.params.language, this.$route.params.author);\n      this.author.books = Object.values(this.author.books).map(book => ({\n        ...book,\n        translations: book.translations.map(translation => ({\n          ...translation,\n          url: UrlBuilderService.getBookUrl({ language: translation.lang, bookSlug: book.slug })\n        }))\n      }));\n      this.loading = false;\n    }\n  }\n\n  updateTabName() {\n    this.$store.commit('tabs/updateActiveTabName', this.author ? this.author.name : getTranslation('author'));\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorBio.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorBio.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthorBio.vue?vue&type=template&id=130a682e&scoped=true&\"\nimport script from \"./AuthorBio.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthorBio.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthorBio.vue?vue&type=style&index=0&id=130a682e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"130a682e\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"scroll\",staticClass:\"scroll\",style:({ fontSize: ((10 * _vm.scale) + \"px\") })},[(_vm.searchLoading && _vm.hasQuery)?_c('Loader'):(_vm.searchError)?_c('div',{staticClass:\"search-empty red-color\"},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('errorOccurred'))),_c('br'),_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('tryToRefreshPage'))+\"\\n  \")]):(!_vm.hasQuery)?_c('div',{staticClass:\"search-empty\"},[_vm._v(\"\\n    \"+_vm._s(_vm.getTranslation('enterSearchQuery'))+\"\\n  \")]):[(_vm.searchPriorityResults)?[_vm._l((_vm.priorityBooks),function(book){return _c('SearchPriorityBook',{key:book.slug,staticClass:\"priority-results\",attrs:{\"book\":book}})}),(_vm.searchPriorityResults.person)?_c('SearchPriorityAuthor',{staticClass:\"priority-results\",attrs:{\"author\":_vm.searchPriorityResults.person}}):_vm._e(),(_vm.searchPriorityResults.poem)?_c('SearchPriorityBookSection',{staticClass:\"priority-results\",attrs:{\"book-section\":_vm.searchPriorityResults.poem}}):_vm._e()]:_vm._e(),(_vm.searchResults && _vm.searchResults.length > 0)?_c('div',{ref:\"searchResults\"},[_vm._l((_vm.searchResults),function(item,index){return _c('div',{key:item.book_slug + item.section_slug + index},[_c('h2',{staticClass:\"search-item-title\"},[_c('router-link',{attrs:{\"to\":_vm.getSearchItemUrl(item, index)}},[_vm._v(_vm._s(item.title))])],1),(item.paths && item.paths[0])?_c('div',{staticClass:\"search-item-path\"},[_vm._v(\"\\n          \"+_vm._s(item.paths[0].map(function (path) { return path.title; }).join(' • '))+\"\\n        \")]):_vm._e(),_c('div',{staticClass:\"search-item-body\",domProps:{\"innerHTML\":_vm._s(item.body)}})])}),(_vm.loadingMore)?_c('div',{staticClass:\"mini-loader-holder\"},[_c('Loader',{staticClass:\"mini-loader\",attrs:{\"active\":true}})],1):_vm._e()],2):_vm._e(),(!((_vm.searchResults && _vm.searchResults.length > 0) || _vm.searchPriorityResults))?_c('div',[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('noSearchResults'))),_c('br'),_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('changeQuery'))+\"\\n    \")]):_vm._e()]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class ArrayService {\n  /**\n   * Get intersections between two arrays\n   * e.g.:\n   * array1 = [1, 2, 3]\n   * array2 = [2, 3, 4]\n   * should return [2, 3]\n   */\n  public static getIntersections(array1: Array<string | number>, array2: Array<string | number>) {\n    return array1.filter(one => array2.includes(one));\n  }\n\n  /**\n   * Same as ArrayService.getIntersections, except it returns boolean\n   */\n  public static hasIntersections(array1: Array<string | number>, array2: Array<string | number>) {\n    return ArrayService.getIntersections(array1, array2).length > 0;\n  }\n\n  /**\n   * Extract IDs, e.g.\n   * Array[{ id: 1, a: 2, b: 3 }, { id: 2, a: 7, b: 8 }]\n   * will be converted to\n   * Array[1, 2]\n   */\n  public static extractIds(array: Array<{ [key: string]: any; id: number | string }>) {\n    return array.map(one => one.id);\n  }\n\n  /**\n   * Creates hash from IDs of array elements, e.g.\n   * Array[{ id: 1, a: 2, b: 3 }, { id: 2, a: 7, b: 8 }]\n   * will be converted to\n   * 12\n   */\n  public static makeHashFromIds(array: Array<{ [key: string]: any; id: number | string }>) {\n    return JSON.stringify(ArrayService.extractIds(array));\n  }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"title\"},[_c('router-link',{attrs:{\"to\":_vm.bookUrl}},[_vm._v(_vm._s(_vm.book.name))])],1),_c('div',{staticClass:\"author\"},[_vm._v(_vm._s(_vm.bookAuthors))]),(_vm.bookByLanguage.length || _vm.book.relation_books_quantity)?_c('div',{staticClass:\"book-info\"},[(_vm.bookByLanguage.length)?_c('div',{staticClass:\"book-info-item\"},[_c('IconGlobe',{staticClass:\"book-info-icon\"}),_c('div',{staticClass:\"book-info-languages\"},_vm._l((_vm.bookByLanguage),function(book){return _c('router-link',{key:book.onLanguage,staticClass:\"book-info-link\",attrs:{\"to\":book.url}},[_vm._v(_vm._s(book.onLanguage))])}),1)],1):_vm._e(),(_vm.book.relation_books_quantity)?_c('div',{staticClass:\"book-info-item\"},[_c('IconBookCover',{staticClass:\"book-info-icon\"}),_vm._v(\" Связи: \"),_c('b',[_vm._v(_vm._s(_vm.book.relation_books_quantity))])],1):_vm._e()]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport router from '@/router';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport { Prop } from 'vue-property-decorator';\nimport StringService from '@/services/StringService';\nimport IconBookCover from '@/assets/icons/book-cover.svg';\nimport IconGlobe from '@/assets/icons/globe.svg';\nimport { getTranslation } from '@/services/Translation';\nimport { TranslationStrings } from '@/translations/types';\n\ninterface Book {\n  language?: string;\n  name: string;\n  authors: Array<{ name: string }>;\n  slug: string;\n  languages: Array<string>;\n  relation_books_quantity: number;\n}\n\n@Component({\n  components: { IconBookCover, IconGlobe }\n})\nexport default class SearchPriorityBook extends Vue {\n  @Prop({ required: true })\n  book!: Book;\n\n  get bookAuthors() {\n    return this.book.authors.map(author => author.name).join(', ');\n  }\n\n  get bookUrl() {\n    return UrlBuilderService.getBookUrl({\n      language: this.book.language || router.currentRoute.params.language,\n      bookSlug: this.book.slug\n    });\n  }\n\n  get bookByLanguage() {\n    const currentLanguage = this.book.language || router.currentRoute.params.language;\n    const languages = [currentLanguage, ...(this.book.languages || [])].filter(Boolean);\n\n    return Array.from(new Set(languages)).map(language => {\n      return {\n        onLanguage: StringService.capitalize(\n          getTranslation(`onLanguage${StringService.capitalize(language)}` as keyof TranslationStrings)\n        ),\n        url: UrlBuilderService.getBookUrl({\n          language,\n          bookSlug: this.book.slug\n        })\n      };\n    });\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBook.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBook.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchPriorityBook.vue?vue&type=template&id=51c376ad&scoped=true&\"\nimport script from \"./SearchPriorityBook.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchPriorityBook.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchPriorityBook.vue?vue&type=style&index=0&id=51c376ad&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"51c376ad\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"priority-author\"},[_c('div',{staticClass:\"title\"},[_c('router-link',{attrs:{\"to\":_vm.authorUrl}},[_vm._v(_vm._s(_vm.author.name))])],1),_c('div',{staticClass:\"author-stats\"},[_c('div',{staticClass:\"author-stat\"},[_vm._v(\"\\n      \"+_vm._s(_vm.getTranslation('books'))+\": \"),_c('b',[_vm._v(_vm._s(_vm.author.statistics.all))])]),_vm._l((_vm.booksByLanguage),function(books){return _c('div',{key:books.lang,staticClass:\"author-stat\"},[_vm._v(\"\\n      \"+_vm._s(books.onLanguage)+\": \"),_c('b',[_vm._v(_vm._s(books.count))])])})],2),_c('div',{staticClass:\"author-books\"},[_c('BooksWithTranslations',{attrs:{\"books\":_vm.authorBooks,\"collapse-after\":3,\"expand-text\":_vm.getTranslation('showAllList'),\"collapse-text\":_vm.getTranslation('collapse')}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport router from '@/router';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport StringService from '@/services/StringService';\nimport Collapsible from '@/components/ui/Collapsible.vue';\nimport BooksWithTranslations from '@/components/BooksWithTranslations.vue';\nimport { getTranslation } from '@/services/Translation';\nimport { TranslationStrings } from '@/translations/types';\n\ninterface Author {\n  name: string;\n  slug: string;\n  statistics: {\n    all: number;\n    languages: Array<{ lang: string; count: number }>;\n    books: Array<{ name: string; slug: string; translations: Array<{ lang: string; short_name: string }> }>;\n  };\n}\n\n@Component({\n  components: { BooksWithTranslations, Collapsible }\n})\nexport default class SearchPriorityAuthor extends Vue {\n  @Prop({ required: true })\n  author!: Author;\n\n  getTranslation = getTranslation;\n\n  get authorUrl() {\n    return UrlBuilderService.getAuthorUrl({\n      language: router.currentRoute.params.language,\n      authorSlug: this.author.slug\n    });\n  }\n\n  get authorBooks() {\n    return Object.values(this.author.statistics.books).map(book => ({\n      name: book.name,\n      translations: book.translations.map(translation => ({\n        ...translation,\n        url: UrlBuilderService.getBookUrl({\n          language: translation.lang,\n          bookSlug: book.slug\n        })\n      }))\n    }));\n  }\n\n  get booksByLanguage() {\n    return this.author.statistics.languages.map(language => ({\n      ...language,\n      onLanguage: StringService.capitalize(\n        getTranslation(`onLanguage${StringService.capitalize(language.lang)}` as keyof TranslationStrings)\n      )\n    }));\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityAuthor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityAuthor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchPriorityAuthor.vue?vue&type=template&id=52d64153&scoped=true&\"\nimport script from \"./SearchPriorityAuthor.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchPriorityAuthor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchPriorityAuthor.vue?vue&type=style&index=0&id=52d64153&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"52d64153\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-priority-book-section\"},[_c('div',{staticClass:\"title\"},[_c('router-link',{attrs:{\"to\":_vm.bookSectionUrl}},[_vm._v(_vm._s(_vm.bookSectionTitle))])],1),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"content-inner\"},[_c('div',{staticClass:\"content-left\",domProps:{\"innerHTML\":_vm._s(_vm.contentOfSelectedLanguage.poem)}}),_c('div',{staticClass:\"content-right\",domProps:{\"innerHTML\":_vm._s(_vm.contentOfSelectedLanguage.translate)}})]),_c('button',{staticClass:\"link dashed switch-content-language-button\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.switchContentLanguage}},[_vm._v(\"\\n      \"+_vm._s(_vm.contentLanguageButtonText[_vm.contentLanguage])+\"\\n    \")])]),(_vm.bookTranslations.length)?_c('div',{staticClass:\"book-translations\"},[_c('div',{staticClass:\"book-translations-title\"},[_c('b',[_vm._v(_vm._s(_vm.getTranslation('booksInWhichPoemWasMentioned')))]),_vm._v(\" \\n      \"),_c('span',{staticClass:\"gray-text-color\"},[_vm._v(\"(\"+_vm._s(_vm.bookTranslations.length)+\")\")])]),_c('BooksWithTranslations',{attrs:{\"books\":_vm.bookTranslations}})],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport router from '@/router';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { LANGUAGE_CODE_ENGLISH, LANGUAGE_CODE_RUSSIAN } from '@/constants';\nimport BooksWithTranslations from '@/components/BooksWithTranslations.vue';\nimport { getTranslation } from '@/services/Translation';\n\ninterface BookSection {\n  book_slug: string;\n  slug: string;\n  books: Array<{ name: string; slug: string; translations: Array<{ short_name: string; code: string }> }>;\n  content: Array<any>;\n  patch: Array<{ title: string }>;\n}\n\n@Component({\n  components: { BooksWithTranslations }\n})\nexport default class SearchPriorityBookSection extends Vue {\n  contentLanguage = LANGUAGE_CODE_RUSSIAN;\n\n  contentLanguageButtonText = {\n    [LANGUAGE_CODE_RUSSIAN]: getTranslation('showOnEnglishLanguage'),\n    [LANGUAGE_CODE_ENGLISH]: getTranslation('showOnRussianLanguage')\n  };\n\n  getTranslation = getTranslation;\n\n  @Prop({ required: true })\n  bookSection!: BookSection;\n\n  get bookSectionUrl() {\n    return UrlBuilderService.getBookSectionUrl({\n      language: router.currentRoute.params.language,\n      bookSlug: this.bookSection.book_slug,\n      bookSectionSlug: this.bookSection.slug\n    });\n  }\n\n  get bookSectionTitle() {\n    return this.bookSection.patch.map(({ title }) => title).join(' • ');\n  }\n\n  get bookTranslations() {\n    return this.bookSection.books.map(book => ({\n      ...book,\n      translations: book.translations.map(translation => ({\n        ...translation,\n        url: UrlBuilderService.getBookSectionUrl({\n          language: translation.code,\n          bookSlug: book.slug,\n          bookSectionSlug: this.bookSection.slug\n        })\n      }))\n    }));\n  }\n\n  get contentOfSelectedLanguage() {\n    return this.bookSection.content.find(one => one.language === this.contentLanguage);\n  }\n\n  @Watch('interfaceLanguage')\n  async onChangeInterfaceLang() {\n    this.contentLanguageButtonText = {\n      [LANGUAGE_CODE_RUSSIAN]: getTranslation('showOnRussianLanguage'),\n      [LANGUAGE_CODE_ENGLISH]: getTranslation('showOnEnglishLanguage')\n    };\n  }\n\n  switchContentLanguage() {\n    if (this.contentLanguage === LANGUAGE_CODE_RUSSIAN) {\n      this.contentLanguage = LANGUAGE_CODE_ENGLISH;\n    } else {\n      this.contentLanguage = LANGUAGE_CODE_RUSSIAN;\n    }\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBookSection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchPriorityBookSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchPriorityBookSection.vue?vue&type=template&id=20da2520&scoped=true&\"\nimport script from \"./SearchPriorityBookSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchPriorityBookSection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchPriorityBookSection.vue?vue&type=style&index=0&id=20da2520&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"20da2520\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Ref, Watch } from 'vue-property-decorator';\nimport UrlBuilderService from '@/services/UrlBuilderService';\nimport Loader from '@/components/ui/Loader.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { Book, BookSection, Category } from '@/services/Navigation/types';\nimport ArrayService from '@/services/ArrayService';\nimport { SearchItem } from '@/services/Api/SearchService';\nimport SearchPriorityBook from '@/components/SearchPriorityBook.vue';\nimport SearchPriorityAuthor from '@/components/SearchPriorityAuthor.vue';\nimport SearchPriorityBookSection from '@/components/SearchPriorityBookSection.vue';\nimport { getTranslation } from '@/services/Translation';\n\n@Component({\n  components: { SearchPriorityBookSection, SearchPriorityAuthor, SearchPriorityBook, Loader }\n})\nexport default class SearchResults extends Vue {\n  loadingMore = false;\n  perPage = 50;\n  page = 1;\n  getSearchItemUrl = UrlBuilderService.getSearchResultItemUrl;\n\n  getTranslation = getTranslation;\n\n  get hasQuery() {\n    return typeof this.$route.query.query === 'string' && !!this.$route.query.query.trim();\n  }\n\n  get priorityBooks() {\n    const book = this.searchPriorityResults && (this.searchPriorityResults as any).book;\n    if (!book) {\n      return [];\n    }\n    return Array.isArray(book) ? book : [book];\n  }\n\n  @Ref('scroll')\n  refScroll!: HTMLDivElement;\n\n  @Ref('searchResults')\n  refSearchResults?: HTMLDivElement;\n\n  @State('results', { namespace: 'search' })\n  searchResults!: Array<SearchItem>;\n\n  @State('resultsCount', { namespace: 'search' })\n  searchResultsCount!: number;\n\n  @State('priorityResults', { namespace: 'search' })\n  searchPriorityResults!: {};\n\n  @State('needUpdate', { namespace: 'search' })\n  searchNeedUpdate?: Array<SearchItem>;\n\n  @State('loading', { namespace: 'search' })\n  searchLoading?: boolean;\n\n  @State('error', { namespace: 'search' })\n  searchError?: boolean;\n\n  @State('loading', { namespace: 'navigation' })\n  navLoading?: boolean;\n\n  @State('scale', { namespace: 'reader' })\n  scale!: number;\n\n  @Getter('showSearchResults', { namespace: 'navigation' })\n  navShowSearchResults?: boolean;\n\n  @Getter('checkedCategories', { namespace: 'navigation' })\n  checkedCategories!: Array<Category>;\n\n  @Getter('checkedBooks', { namespace: 'navigation' })\n  checkedBooks!: Array<Book>;\n\n  @Getter('checkedBookSections', { namespace: 'navigation' })\n  checkedBookSections!: Array<BookSection>;\n\n  @Getter('checkedFoundBooks', { namespace: 'navigation' })\n  checkedFoundBooks!: Array<Book>;\n\n  @Getter('checkedFoundBookSections', { namespace: 'navigation' })\n  checkedFoundBookSections!: Array<BookSection>;\n\n  @Action('fetchResults', { namespace: 'search' })\n  doFetchResults!: Function;\n\n  @Mutation('updateActiveTabName', { namespace: 'tabs' })\n  updateActiveTabName!: Function;\n\n  @Mutation('setShowSearchResultsFlag', { namespace: 'navigation' })\n  setShowSearchResultsFlag!: Function;\n\n  async mounted() {\n    this.refScroll.addEventListener('scroll', this.onScroll);\n  }\n\n  @Watch('searchNeedUpdate')\n  async onSearchNeedUpdate(to: boolean, from: boolean) {\n    if (to !== from && to) {\n      this.updateTabName();\n      await this.fetchResults();\n    }\n  }\n\n  @Watch('checkedFoundBooks')\n  @Watch('checkedFoundBookSections')\n  async onCheckedChange(to: Array<any>, from: Array<any>) {\n    if (\n      ArrayService.makeHashFromIds(to) !== ArrayService.makeHashFromIds(from) &&\n      this.navShowSearchResults\n    ) {\n      await this.fetchResults();\n    }\n  }\n\n  async fetchResults() {\n    this.setShowSearchResultsFlag(true);\n    await this.doFetchResults({ offset: 0, perPage: this.perPage });\n  }\n\n  async fetchMore() {\n    this.loadingMore = true;\n    this.page += 1;\n    await this.doFetchResults({ offset: this.perPage * (this.page - 1), perPage: this.perPage });\n    this.loadingMore = false;\n  }\n\n  updateTabName() {\n    this.updateActiveTabName(this.$route.query.query);\n  }\n\n  async onScroll() {\n    if (!this.refSearchResults) {\n      return;\n    }\n    const isScrolledToBottom =\n      this.refScroll.offsetHeight + this.refScroll.scrollTop >= this.refSearchResults.offsetHeight;\n    if (!isScrolledToBottom || this.searchLoading || this.loadingMore) {\n      return;\n    }\n    const hasMorePages = this.searchResultsCount > 0 && this.searchResults.length < this.searchResultsCount;\n    if (hasMorePages) {\n      await this.fetchMore();\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchResults.vue?vue&type=template&id=47d15bcc&scoped=true&\"\nimport script from \"./SearchResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchResults.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchResults.vue?vue&type=style&index=0&id=47d15bcc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"47d15bcc\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AuthLayout',[_c('div',{staticClass:\"accept-terms\"},[_c('h2',[_vm._v(_vm._s(_vm.getTranslation('termsReviewTitle')))]),_c('p',[_vm._v(_vm._s(_vm.getTranslation('termsReviewDescription')))]),_c('TermsAcceptance',{ref:\"terms\",attrs:{\"disabled\":_vm.loading || _vm.saving,\"error\":_vm.termsError},model:{value:(_vm.accepted),callback:function ($$v) {_vm.accepted=$$v},expression:\"accepted\"}}),(_vm.error)?_c('p',{staticClass:\"accept-terms__error\",attrs:{\"role\":\"alert\"}},[_vm._v(_vm._s(_vm.error))]):_vm._e(),_c('div',{staticClass:\"accept-terms__actions\"},[_c('button',{staticClass:\"link\",attrs:{\"type\":\"button\",\"disabled\":_vm.saving},on:{\"click\":_vm.logout}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('logout'))+\"\\n      \")]),_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\",\"disabled\":_vm.loading || _vm.saving},on:{\"click\":_vm.submit}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation(_vm.saving ? 'termsSaving' : 'termsAcceptContinue'))+\"\\n      \")])]),_c('p',{staticClass:\"accept-terms__deletion\"},[_c('a',{attrs:{\"href\":\"mailto:support@rupaseva.com?subject=Vedarama%3A%20account%20deletion\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.getTranslation('requestAccountDeletion'))+\"\\n      \")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport AuthLayout from '@/layouts/AuthLayout.vue';\nimport TermsAcceptance from '@/components/TermsAcceptance.vue';\nimport UserService from '@/services/Api/UserService';\nimport { ApiService } from '@/services/Api/ApiService';\nimport { getTranslation } from '@/services/Translation';\nimport { safeReturnPath, TERMS_VERSION } from '@/services/LegalService';\n\n@Component({ components: { AuthLayout, TermsAcceptance } })\nexport default class AcceptTerms extends Vue {\n  getTranslation = getTranslation;\n  accepted = false;\n  attempted = false;\n  loading = true;\n  saving = false;\n  error = '';\n\n  get termsError() {\n    return this.attempted && !this.accepted ? getTranslation('termsAcceptanceRequired') : '';\n  }\n\n  async mounted() {\n    try {\n      const user = await UserService.getUser();\n      if (user.terms_required === false) {\n        await this.$router.replace(safeReturnPath(this.$route.query.returnTo));\n      } else if (user.terms_version !== TERMS_VERSION) {\n        this.error = getTranslation('termsVersionChanged');\n        return;\n      }\n      this.loading = false;\n    } catch (e) {\n      if (e.response && [401, 403].includes(e.response.status)) {\n        await this.$router.replace(e.response.status === 401 ? '/login' : '/user/email/resend');\n      } else {\n        this.error = getTranslation('defaultErrorMessage');\n        this.loading = false;\n      }\n    }\n  }\n\n  async submit() {\n    if (this.loading || this.saving) return;\n    this.attempted = true;\n    if (!this.accepted) {\n      (this.$refs.terms as TermsAcceptance).focus();\n      return;\n    }\n    this.saving = true;\n    this.error = '';\n    try {\n      await new ApiService()\n        .setEndpoint('/user/terms')\n        .setToken(this.$store.state.auth.token)\n        .setBody({ terms_accepted: '1', terms_version: TERMS_VERSION })\n        .post();\n      await this.$router.replace(safeReturnPath(this.$route.query.returnTo));\n    } catch (e) {\n      this.error =\n        e.response && e.response.data && e.response.data.errors && e.response.data.errors.terms_version\n          ? getTranslation('termsVersionChanged')\n          : getTranslation('defaultErrorMessage');\n    } finally {\n      this.saving = false;\n    }\n  }\n\n  async logout() {\n    await this.$store.dispatch('auth/logout');\n    await this.$router.replace('/login');\n  }\n}\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AcceptTerms.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AcceptTerms.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AcceptTerms.vue?vue&type=template&id=3a8421b9&scoped=true&\"\nimport script from \"./AcceptTerms.vue?vue&type=script&lang=ts&\"\nexport * from \"./AcceptTerms.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AcceptTerms.vue?vue&type=style&index=0&id=3a8421b9&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3a8421b9\",\n  null\n  \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Router, { Route } from 'vue-router';\nimport { store } from './store';\nimport Home from './views/content/Home.vue';\nimport Login from './views/Login.vue';\nimport ForgotPassword from './views/ForgotPassword.vue';\nimport ResetPassword from './views/ResetPassword.vue';\nimport Registration from './views/Registration.vue';\nimport VerifyEmail from '@/views/VerifyEmail.vue';\nimport Help from '@/views/content/Help.vue';\nimport Reader from '@/views/Reader.vue';\nimport BookContent from '@/views/content/BookContent.vue';\nimport BookCover from '@/views/content/BookCover.vue';\nimport UserService from '@/services/Api/UserService';\nimport AuthorBio from '@/views/content/AuthorBio.vue';\nimport SearchResults from '@/views/content/SearchResults.vue';\nimport AcceptTerms from '@/views/AcceptTerms.vue';\n\nVue.use(Router);\n\nlet entryUrl: string | null = null;\n\nconst guard = async (to: Route, from: Route, next: Function) => {\n  let needEmailVerification = false;\n\n  store.commit('startLoading');\n  const user = await UserService.getUser().catch(async e => {\n    if (!e.response) {\n      return null;\n    }\n    if (e.response.status === 401) {\n      await store.dispatch('auth/logout');\n    }\n    if (e.response.status === 403) {\n      needEmailVerification = true;\n    }\n    return null;\n  });\n  store.commit('stopLoading');\n\n  if (needEmailVerification) {\n    entryUrl = to.fullPath;\n    return next('/user/email/resend');\n  }\n\n  if (!user) {\n    entryUrl = to.fullPath;\n    return next('/login');\n  }\n\n  if (!store.state.auth.authorized) {\n    store.commit('auth/login', '');\n  }\n  store.commit('user/set', user);\n  store.commit('tabs/switchOwner', String(user.id || user.email));\n  store.commit('bookmarks/switchOwner', String(user.id || user.email));\n\n  if (user.terms_required === true) {\n    const returnTo = entryUrl || to.fullPath;\n    entryUrl = null;\n    return next({ path: '/accept-terms', query: { returnTo } });\n  }\n\n  if (entryUrl) {\n    const url = entryUrl;\n    entryUrl = null;\n    return next(url);\n  }\n  return next();\n};\n\nexport default new Router({\n  mode: 'history',\n  base: process.env.BASE_URL,\n  routes: [\n    {\n      path: '/accept-terms',\n      name: 'accept-terms',\n      component: AcceptTerms\n    },\n    {\n      path: '/login',\n      name: 'login',\n      component: Login\n    },\n    {\n      path: '/forgot-password',\n      name: 'forgot-password',\n      component: ForgotPassword\n    },\n    {\n      path: '/password/reset',\n      name: 'reset-password',\n      component: ResetPassword\n    },\n    {\n      path: '/password/reset/:token',\n      name: 'reset-password-token',\n      component: ResetPassword\n    },\n    {\n      path: '/registration',\n      name: 'registration',\n      component: Registration\n    },\n    {\n      path: '/user/email/verify/:userId/:hash',\n      name: 'verify-email',\n      component: VerifyEmail\n    },\n    {\n      path: '/user/email/resend',\n      name: 'verify-email-resend',\n      component: VerifyEmail\n    },\n    {\n      path: '/',\n      component: Reader,\n      children: [\n        {\n          path: '/',\n          component: Home\n        },\n        {\n          path: '/:language/library',\n          name: 'mobile-library',\n          component: Home\n        },\n        {\n          path: '/:language/tabs',\n          redirect: to => `/${to.params.language}/bookmarks`\n        },\n        {\n          path: '/:language/bookmarks',\n          name: 'mobile-bookmarks',\n          component: Home\n        },\n        {\n          path: '/:language/settings',\n          name: 'mobile-settings',\n          component: Home\n        },\n        {\n          path: '/help',\n          component: Help\n        },\n        {\n          path: '/:language/books/:book',\n          name: 'book',\n          component: BookCover\n        },\n        {\n          path: '/:language/books/:book/:bookSection',\n          name: 'book-section',\n          component: BookContent\n        },\n        {\n          path: '/:language/categories/:category/:book',\n          name: 'category-book',\n          component: BookCover\n        },\n        {\n          path: '/:language/categories/:category/:book/:bookSection',\n          name: 'category-book-section',\n          component: BookContent\n        },\n        {\n          path: '/:language/authors/:author',\n          name: 'author-bio',\n          component: AuthorBio\n        },\n        {\n          path: '/:language/authors/:author/:book',\n          name: 'author-book',\n          component: BookCover\n        },\n        {\n          path: '/:language/authors/:author/:book/:bookSection',\n          name: 'author-book-section',\n          component: BookContent\n        },\n        {\n          path: '/:language/search',\n          name: 'search-results',\n          component: SearchResults\n        }\n      ],\n      beforeEnter: guard\n    }\n  ]\n});\n","import router from '@/router';\nimport {\n  AnyNavEntity,\n  Author,\n  AuthorLetter,\n  Book,\n  BookLetter,\n  Books,\n  BookSection,\n  Category,\n  ListType,\n  NavigationData\n} from '@/services/Navigation/types';\nimport Helpers from '@/services/Navigation/Helpers';\n\nexport default class HighlightService extends Helpers {\n  public static actualizeHighlight(navigation: NavigationData, listType: ListType, filterQuery: string) {\n    // 1. reset all highlights\n    navigation = HighlightService.reset(navigation);\n\n    // 2. highlight category\n    navigation.categories = HighlightService.highlightCategory(navigation.categories);\n\n    // 3. highlight author\n    const { authors, authorIndex } = HighlightService.highlightAuthor(navigation.authors);\n    navigation.authors = authors;\n\n    if (authorIndex > -1) {\n      // 4. highlight author letter\n      navigation.authorsAlphabet = HighlightService.highlightAuthorLetter(\n        navigation.authorsAlphabet,\n        navigation.authors[authorIndex]\n      );\n    }\n\n    // 5. highlight book letter\n    navigation.booksAlphabet = HighlightService.highlightBookLetter(\n      navigation.booksAlphabet,\n      navigation.books\n    );\n\n    if (HighlightService.needBookHighlight(navigation, listType, filterQuery)) {\n      // 6. highlight book\n      navigation.books = HighlightService.highlightBook(navigation.books);\n\n      // 7. highlight book section\n      navigation.books = HighlightService.highlightBookSection(navigation.books);\n    }\n\n    return navigation;\n  }\n\n  public static reset(navigation: NavigationData) {\n    // reset navigation objects\n    navigation.categories = HighlightService.resetEntitiesArray(navigation.categories);\n    navigation.authors = HighlightService.resetEntitiesArray(navigation.authors);\n    navigation.authorsAlphabet = HighlightService.resetEntitiesArray(navigation.authorsAlphabet);\n    navigation.booksAlphabet = HighlightService.resetEntitiesArray(navigation.booksAlphabet);\n    navigation.books = HighlightService.resetBooks(navigation.books);\n    navigation.books = HighlightService.resetBookSections(navigation.books);\n    navigation.foundBooks = HighlightService.resetBooks(navigation.foundBooks);\n    navigation.foundBooks = HighlightService.resetBookSections(navigation.foundBooks);\n    return navigation;\n  }\n\n  public static resetEntitiesArray<T extends Exclude<AnyNavEntity, Book>>(entities: Array<T>): Array<T> {\n    (entities as Array<Exclude<AnyNavEntity, Book>>).forEach((one, index) => {\n      entities[index].highlight = false;\n    });\n    return entities;\n  }\n\n  public static resetBooks(books: Books) {\n    Object.values(books).forEach(book => {\n      // reset books\n      books[book.slug].highlight = false;\n    });\n    return books;\n  }\n\n  public static resetBookSections(books: Books) {\n    Object.values(books).forEach(book => {\n      book.children.forEach((bookSection, bookSectionIndex) => {\n        books[book.slug].children[bookSectionIndex].highlight = false;\n      });\n    });\n    return books;\n  }\n\n  /**\n   * Highlights category\n   */\n  public static highlightCategory(categories: Array<Category>) {\n    const routeCategory = router.currentRoute.params.category;\n    let highlightedCategory: Category | null = null;\n    // find index of category that should be highlighted\n    const index = categories.findIndex(category => routeCategory && routeCategory === category.slug);\n    if (index > -1) {\n      highlightedCategory = categories[index];\n      highlightedCategory.highlight = true;\n      highlightedCategory.expanded = true;\n      // highlight parent categories\n      categories = HighlightService.highlightParents(categories, index) as Array<Category>;\n    }\n    return categories;\n  }\n\n  /**\n   * Highlights author\n   */\n  public static highlightAuthor(authors: Array<Author>) {\n    const routeAuthor = router.currentRoute.params.author;\n    const index = authors.findIndex(author => author.slug === routeAuthor);\n    if (index > -1) {\n      authors[index].highlight = true;\n      authors[index].expanded = true;\n    }\n    return { authors, authorIndex: index };\n  }\n\n  /**\n   * Highlight author letter\n   */\n  public static highlightAuthorLetter(authorsAlphabet: Array<AuthorLetter>, author: Author) {\n    const authorId = author.id;\n    const index = authorsAlphabet.findIndex(letter => letter.authorIds.find(id => id === authorId));\n    if (index > -1) {\n      authorsAlphabet[index].highlight = true;\n      authorsAlphabet[index].expanded = true;\n    }\n    return authorsAlphabet;\n  }\n\n  /**\n   * Highlight book letter\n   */\n  public static highlightBookLetter(booksAlphabet: Array<BookLetter>, books: Books) {\n    const routeBook = router.currentRoute.params.book;\n    const book = books[routeBook];\n    if (!book) {\n      return booksAlphabet;\n    }\n    const index = booksAlphabet.findIndex(one => one.bookIds.find(id => id === book.id));\n    if (index > -1) {\n      booksAlphabet[index].highlight = true;\n      booksAlphabet[index].expanded = true;\n    }\n    return booksAlphabet;\n  }\n\n  /**\n   * Highlights book\n   */\n  public static highlightBook(origin: Books) {\n    const routeBook = router.currentRoute.params.book;\n    const books = HighlightService.resetBooks(origin);\n\n    if (books[routeBook]) {\n      books[routeBook].highlight = true;\n      books[routeBook].expanded = true;\n    }\n    return books;\n  }\n\n  /**\n   * Highlights book sections\n   */\n  public static highlightBookSection(origin: Books) {\n    const routeBook = router.currentRoute.params.book;\n    const routeBookSection = router.currentRoute.params.bookSection;\n    const books = HighlightService.resetBookSections(origin);\n    const book = books[routeBook];\n\n    if (!book) {\n      return books;\n    }\n\n    // find index of item that should be highlighted\n    const index: number = book.children.findIndex(\n      one => one.book.slug === routeBook && one.slug === routeBookSection\n    );\n\n    if (index > -1) {\n      // highlight & expand item\n      books[routeBook].children[index].highlight = true;\n      books[routeBook].children[index].expanded = true;\n      // highlight parent sections\n      books[routeBook].children = HighlightService.highlightParents(\n        books[routeBook].children,\n        index\n      ) as Array<BookSection>;\n    }\n    return books;\n  }\n\n  public static needBookHighlight(navigationData: NavigationData, listType: ListType, filterQuery: string) {\n    return (\n      (listType === 'categories' && navigationData.categories.find(one => one.highlight)) ||\n      (listType === 'authors' && navigationData.authors.find(one => one.highlight)) ||\n      (listType === 'books' && navigationData.booksAlphabet.find(one => one.highlight)) ||\n      filterQuery\n    );\n  }\n\n  public static needBookSectionHighlight(books: Books) {\n    return Object.values(books).find(book => book.highlight);\n  }\n\n  /**\n   * Highlights parents of categories or book sections\n   */\n  private static highlightParents(array: Array<BookSection | Category>, highlightedIndex: number) {\n    return HighlightService.updateParents(array, highlightedIndex, item => ({\n      ...item,\n      highlight: true,\n      expanded: true\n    }));\n  }\n}\n","import Vue from 'vue';\nimport router from '@/router';\nimport {\n  Author,\n  AuthorLetter,\n  Book,\n  BookLetter,\n  Books,\n  BookSection,\n  BookSectionEntries,\n  Category,\n  NavigationData,\n  NavigationDataRaw\n} from '@/services/Navigation/types';\nimport Helpers from '@/services/Navigation/Helpers';\n\nexport default class ProcessService {\n  public static processNavigation(navigation: NavigationDataRaw): Partial<NavigationData> {\n    const categories = ProcessService.processCategories(navigation.categories);\n    const authors = ProcessService.processAuthors(navigation.authors);\n    const authorsAlphabet = ProcessService.makeAuthorsAlphabet(authors);\n    const booksAlphabet = ProcessService.processBooksAlphabet(navigation.books_first_letter);\n    return {\n      booksAlphabet,\n      categories,\n      authors,\n      authorsAlphabet\n    };\n  }\n\n  public static collapseAll({\n    books,\n    booksAlphabet,\n    categories,\n    authors,\n    authorsAlphabet,\n    foundBooks\n  }: NavigationData) {\n    return {\n      books: Helpers.collapseBooks(books),\n      booksAlphabet: Helpers.collapseAll(booksAlphabet),\n      categories: Helpers.collapseAll(categories),\n      authors: Helpers.collapseAll(authors),\n      authorsAlphabet: Helpers.collapseAll(authorsAlphabet),\n      foundBooks: Helpers.collapseBooks(foundBooks)\n    };\n  }\n\n  public static updatePreloadFlag(books: Books) {\n    const routeBook = router.currentRoute.params.book;\n    const routeBookSection = router.currentRoute.params.bookSection;\n    const book = books[routeBook];\n    if (!book) {\n      return;\n    }\n    const bookSections = book.children;\n    const index = bookSections.findIndex(one => one.book.slug === routeBook && one.slug === routeBookSection);\n    const preloadBookSectionAmount = parseInt(process.env.VUE_APP_PRELOAD_BOOK_SECTIONS_AMOUNT, 10);\n    let loadBookSectionsBefore = 0;\n    // going up along the tree\n    for (let i = index; i >= 0; i--) {\n      const bookSection = bookSections[i];\n      if (i === index) {\n        continue;\n      }\n      if (bookSection.book.slug === routeBook) {\n        bookSection.preload = true;\n        if (!(bookSection.is_parent && bookSection.preload)) {\n          loadBookSectionsBefore++;\n        }\n      }\n      if (loadBookSectionsBefore === preloadBookSectionAmount) {\n        break;\n      }\n    }\n    let loadBookSectionsAfter = 0;\n    // going down along the tree\n    for (let i = index; i < bookSections.length; i++) {\n      const bookSection = bookSections[i];\n      if (i === index) {\n        continue;\n      }\n      if (bookSection.book.slug === routeBook) {\n        bookSection.preload = true;\n        if (!(bookSection.is_parent && bookSection.preload)) {\n          loadBookSectionsAfter++;\n        }\n      }\n      if (loadBookSectionsAfter === preloadBookSectionAmount) {\n        break;\n      }\n    }\n  }\n\n  public static processBooks(books: Array<Book>, props = {}): Books {\n    const processedBooks: Books = {};\n    books.forEach(book => {\n      processedBooks[book.slug] = {\n        ...book,\n        highlight: false,\n        visible: true,\n        expanded: false,\n        checked: false,\n        partiallyChecked: false,\n        children: [],\n        is_show_edit_link: false,\n        edit_link: '',\n        ...props\n      };\n    });\n    return processedBooks;\n  }\n\n  public static processBookSections(\n    bookSections: Array<BookSection>,\n    book: Book,\n    props = {},\n    bookSectionEntries: Array<BookSectionEntries> = []\n  ) {\n    let prevBookId: null | number = null;\n    let number = 0;\n    const processedBookSections: Array<BookSection> = [];\n    bookSections.forEach(bookSection => {\n      prevBookId = bookSection.bookId;\n      number++;\n      const entries = bookSectionEntries.find(({ code }) => code === bookSection.code);\n      processedBookSections.push({\n        ...bookSection,\n        book,\n        id: bookSection.code,\n        parentId: bookSection.parent_code,\n        highlight: false,\n        visible: true,\n        expanded: false,\n        checked: book.checked,\n        partiallyChecked: false,\n        number: number - 1,\n        doc_count: entries ? entries.quantity : undefined,\n        ...props\n      });\n    });\n    return processedBookSections;\n  }\n\n  public static processCategories(categories: Array<Category>) {\n    return Object.values(categories).map(category => ({\n      ...category,\n      highlight: false,\n      visible: true,\n      expanded: false,\n      checked: false,\n      partiallyChecked: false,\n      bookIds: []\n    }));\n  }\n\n  public static processAuthors(authors: Array<Author>) {\n    return authors.map(author => ({\n      ...author,\n      highlight: false,\n      visible: true,\n      expanded: false,\n      checked: false,\n      partiallyChecked: false,\n      bookIds: []\n    }));\n  }\n\n  public static processBooksAlphabet(letters: Array<string>) {\n    return letters.map((letter, index) => ({\n      id: index,\n      name: letter,\n      highlight: false,\n      visible: true,\n      expanded: false,\n      bookIds: []\n    }));\n  }\n\n  public static concatBooks(currentBooks: Books, newBooks: Books) {\n    const books: Books = { ...currentBooks };\n    Object.values(newBooks).forEach(book => {\n      if (!books[book.slug]) {\n        Vue.set(books, book.slug, book);\n      }\n    });\n    return books;\n  }\n\n  public static mapBookIds<T extends Category | Author | BookLetter>(\n    entities: Array<T>,\n    entityId: number,\n    books: Books\n  ): Array<T> {\n    const index = entities.findIndex(one => one.id === entityId);\n    if (entities[index]) {\n      entities[index].bookIds = Object.values(books).map(book => book.id);\n    }\n    return entities;\n  }\n\n  public static makeAuthorsAlphabet(authors: Array<Author>) {\n    const mappedAuthors: { [key: string]: Array<any> } = {};\n    authors.forEach(author => {\n      const letter = author.name[0];\n      mappedAuthors[letter] = mappedAuthors[letter] || [];\n      mappedAuthors[letter].push(author);\n    });\n\n    const alphabet: Array<AuthorLetter> = [];\n    Object.keys(mappedAuthors)\n      .sort()\n      .forEach((letter, index) => {\n        alphabet.push({\n          id: index,\n          name: letter,\n          highlight: false,\n          visible: true,\n          expanded: false,\n          authorIds: mappedAuthors[letter].map(one => one.id)\n        });\n      });\n\n    return alphabet;\n  }\n}\n","import { BookSection, PagingItem } from '@/services/Navigation/types';\n\nexport default class PagingService {\n  private static instance: PagingService;\n\n  private static getInstance() {\n    if (!PagingService.instance) {\n      PagingService.instance = new PagingService();\n    }\n    return PagingService.instance;\n  }\n\n  public static getPaging(bookSections: Array<BookSection>, currentSection: BookSection | null) {\n    if (!currentSection) {\n      return null;\n    }\n    const instance = PagingService.getInstance();\n    return {\n      chapter: currentSection.number_code_chapter,\n      poem: currentSection.number_code_poem,\n      section: currentSection.number_code_section,\n      chapters: Object.values(instance.getChapters(bookSections)),\n      sections: Object.values(instance.getSections(bookSections, currentSection)),\n      poems: Object.values(instance.getPoems(bookSections, currentSection))\n    };\n  }\n\n  private getChapters(bookSections: Array<BookSection>) {\n    const chapters: { [key: number]: PagingItem } = {};\n    bookSections\n      .filter(({ number_code_chapter }) => number_code_chapter !== null)\n      .forEach(({ number_code_chapter: number, slug }) => {\n        if (!chapters[number as number]) {\n          chapters[number as number] = { number, bookSectionSlug: slug };\n        }\n      });\n    return chapters;\n  }\n\n  private getSections(bookSections: Array<BookSection>, currentSection: BookSection) {\n    const sections: { [key: number]: PagingItem } = {};\n    bookSections\n      .filter(\n        bookSection =>\n          !!bookSection.number_code_section &&\n          (!currentSection.number_code_chapter ||\n            currentSection.number_code_chapter === bookSection.number_code_chapter)\n      )\n      .forEach(({ number_code_section: number, slug }) => {\n        if (!sections[number as number]) {\n          sections[number as number] = { number, bookSectionSlug: slug };\n        }\n      });\n    return sections;\n  }\n\n  private getPoems(bookSections: Array<BookSection>, currentSection: BookSection) {\n    const poems: { [key: number]: PagingItem } = {};\n    bookSections\n      .filter(\n        bookSection =>\n          !!bookSection.number_code_poem &&\n          (!currentSection.number_code_chapter ||\n            currentSection.number_code_chapter === bookSection.number_code_chapter) &&\n          (!currentSection.number_code_section ||\n            currentSection.number_code_section === bookSection.number_code_section)\n      )\n      .forEach(({ number_code_poem: number, slug }) => {\n        poems[number as number] = { number, bookSectionSlug: slug };\n      });\n    return poems;\n  }\n}\n","import { store } from '@/store';\nimport { ApiService } from '@/services/Api/ApiService';\nimport { endpoints } from '@/api-endpoints.json';\nimport { NavigationDataRaw } from '../../Navigation/types';\nimport { SearchBaseOptions } from '@/services/Api/SearchService';\n\nexport default class NavigationService {\n  private static instance: NavigationService;\n\n  private apiService: ApiService = new ApiService();\n\n  private static getInstance() {\n    if (!NavigationService.instance) {\n      NavigationService.instance = new NavigationService();\n    }\n    return NavigationService.instance;\n  }\n\n  static get callsCount() {\n    return this.getInstance().apiService.callsCount;\n  }\n\n  static async getNavigation(lang: string): Promise<NavigationDataRaw> {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.navigation.catalog.replace(':lang', lang))\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getCategoryBooks(lang: string, categoryId: number) {\n    const instance = this.getInstance();\n    const endpoint = endpoints.navigation.categoryBooks\n      .replace(':lang', lang)\n      .replace(':id', categoryId.toString());\n    return instance.apiService\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getCategoriesBooks(lang: string, categoryIds: Array<number>) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.navigation.booksByCategories.replace(':lang', lang))\n      .setToken(store.state.auth.token)\n      .setBody({ categories: categoryIds })\n      .post()\n      .then(response => response.data.data);\n  }\n\n  static async getAuthorBooks(lang: string, authorId: number) {\n    const instance = this.getInstance();\n    const endpoint = endpoints.navigation.authorBooks\n      .replace(':lang', lang)\n      .replace(':id', authorId.toString());\n    return instance.apiService\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getLetterBooks(lang: string, letter: string) {\n    const instance = this.getInstance();\n    const endpoint = endpoints.navigation.letterBooks.replace(':lang', lang).replace(':letter', letter);\n    return instance.apiService\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getBookSections(lang: string, bookId: string) {\n    const instance = this.getInstance();\n    const endpoint = endpoints.navigation.bookSections.replace(':lang', lang).replace(':id', bookId);\n    return instance.apiService\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async getBookParams(lang: string, bookSlug: string) {\n    const instance = this.getInstance();\n    const endpoint = endpoints.navigation.bookParams.replace(':lang', lang).replace(':book', bookSlug);\n    return instance.apiService\n      .setEndpoint(endpoint)\n      .setToken(store.state.auth.token)\n      .get()\n      .then(response => response.data.data);\n  }\n\n  static async filterCategories(lang: string, query: string) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.navigation.filterCategories.replace(':lang', lang))\n      .setToken(store.state.auth.token)\n      .setBody({ language: lang, query })\n      .post()\n      .then(response => response.data.data);\n  }\n\n  static async filterAuthors(lang: string, query: string) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.navigation.filterAuthors.replace(':lang', lang))\n      .setToken(store.state.auth.token)\n      .setBody({ language: lang, query })\n      .post()\n      .then(response => response.data.data);\n  }\n\n  static async filterLetters(lang: string, query: string) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.navigation.filterLetters.replace(':lang', lang))\n      .setToken(store.state.auth.token)\n      .setBody({ language: lang, query })\n      .post()\n      .then(response => response.data.data);\n  }\n\n  static async searchBooks(lang: string, query: string, options: Partial<SearchBaseOptions> = {}) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.navigation.searchBooks.replace(':lang', lang))\n      .setToken(store.state.auth.token)\n      .setBody({\n        language: lang,\n        query,\n        ...options\n      })\n      .post()\n      .then(response => response.data.data);\n  }\n\n  static async searchBookSections(\n    lang: string,\n    query: string,\n    bookSlug: string,\n    options: Partial<SearchBaseOptions> = {}\n  ) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(endpoints.navigation.searchBookSections.replace(':lang', lang).replace(':book', bookSlug))\n      .setToken(store.state.auth.token)\n      .setBody({\n        language: lang,\n        query,\n        ...options\n      })\n      .post()\n      .then(response => response.data.data);\n  }\n\n  static async searchBookSectionEntries(\n    lang: string,\n    query: string,\n    bookSlug: string,\n    options: Partial<SearchBaseOptions> = {}\n  ) {\n    const instance = this.getInstance();\n    return instance.apiService\n      .setEndpoint(\n        endpoints.navigation.searchBookSectionEntries.replace(':lang', lang).replace(':book', bookSlug)\n      )\n      .setToken(store.state.auth.token)\n      .setBody({\n        language: lang,\n        query,\n        ...options\n      })\n      .post()\n      .then(response => response.data.data);\n  }\n}\n","import { Author, Book, BookSection, Category, NavigationData } from '@/services/Navigation/types';\nimport Helpers from '@/services/Navigation/Helpers';\nimport SearchScopeService from '@/services/SearchScopeService';\n\ntype CheckableNavEntity = Book | BookSection | Category | Author;\n\nexport default class CheckService {\n  public static checkAll({ books, categories, authors, foundBooks, ...rest }: NavigationData) {\n    let checkedBooks = Helpers.checkBooks(books);\n    checkedBooks = Helpers.checkBookSections(checkedBooks);\n    let checkedFoundBooks = Helpers.checkBooks(foundBooks);\n    checkedFoundBooks = Helpers.checkBookSections(checkedFoundBooks);\n    return {\n      ...rest,\n      books: checkedBooks,\n      foundBooks: checkedFoundBooks,\n      categories: Helpers.checkAll(categories),\n      authors: Helpers.checkAll(authors)\n    };\n  }\n\n  public static uncheckAll({ books, categories, authors, foundBooks, ...rest }: NavigationData) {\n    let uncheckedBooks = Helpers.uncheckBooks(books);\n    uncheckedBooks = Helpers.uncheckBookSections(uncheckedBooks);\n    let uncheckedFoundBooks = Helpers.uncheckBooks(foundBooks);\n    uncheckedFoundBooks = Helpers.uncheckBookSections(uncheckedFoundBooks);\n    return {\n      ...rest,\n      books: uncheckedBooks,\n      foundBooks: uncheckedFoundBooks,\n      categories: Helpers.uncheckAll(categories),\n      authors: Helpers.uncheckAll(authors)\n    };\n  }\n\n  public static toggleCategoryCheck(navigation: NavigationData, categoryId: number) {\n    const categoryIndex = navigation.categories.findIndex(category => category.id === categoryId);\n    const category = navigation.categories[categoryIndex];\n    const checked = !category.checked;\n    const branchCategoryIds = SearchScopeService.getBranchCategoryIds(navigation.categories, categoryId);\n    const branchBookIds = new Set<number>();\n\n    navigation.categories.forEach(branchCategory => {\n      if (!branchCategoryIds.has(Number(branchCategory.id))) {\n        return;\n      }\n      branchCategory.checked = checked;\n      branchCategory.partiallyChecked = false;\n      branchCategory.bookIds.forEach(bookId => branchBookIds.add(Number(bookId)));\n    });\n\n    Object.values(navigation.books).forEach(book => {\n      if (!branchBookIds.has(Number(book.id))) {\n        return;\n      }\n      book.checked = checked;\n      book.partiallyChecked = false;\n      book.children = book.children.map(bookSection => ({\n        ...bookSection,\n        checked,\n        partiallyChecked: false\n      }));\n    });\n\n    CheckService.actualizeParentCategories(navigation, categoryIndex);\n  }\n\n  public static toggleBookCheck(navigation: NavigationData, bookSlug: string) {\n    const book = navigation.books[bookSlug];\n    const checked = !book.checked;\n\n    // 1. Toggle clicked book's flag\n    navigation.books[bookSlug].partiallyChecked = false;\n    navigation.books[bookSlug].checked = checked;\n\n    // 2. Iterate over all children BookSections and check them.\n    navigation.books[bookSlug].children = navigation.books[bookSlug].children.map(bookSection =>\n      !bookSection.parentId ? { ...bookSection, checked, partiallyChecked: false } : bookSection\n    );\n\n    // 3. Actualize Category's `checked` / `partiallyChecked` flags.\n    const categoryIndex = navigation.categories.findIndex(category => category.bookIds.includes(book.id));\n    CheckService.actualizeCategory(navigation, categoryIndex);\n\n    // 4.Iterate over all parent Categories and actualize `checked` / `partiallyChecked` flags.\n    CheckService.actualizeParentCategories(navigation, categoryIndex);\n  }\n\n  public static toggleFoundBookCheck(navigation: NavigationData, bookSlug: string) {\n    const book = navigation.foundBooks[bookSlug];\n    const checked = !book.checked;\n\n    // 1. Toggle clicked book's flag\n    navigation.foundBooks[bookSlug].partiallyChecked = false;\n    navigation.foundBooks[bookSlug].checked = checked;\n\n    // 2. Iterate over all children BookSections and check them.\n    navigation.foundBooks[bookSlug].children = navigation.foundBooks[bookSlug].children.map(bookSection => ({\n      ...bookSection,\n      checked,\n      partiallyChecked: false\n    }));\n  }\n\n  public static toggleBookSectionCheck(navigation: NavigationData, bookSectionId: string, bookSlug: string) {\n    const book = navigation.books[bookSlug];\n    const bookSectionIndex = book.children.findIndex(bookSection => bookSection.id === bookSectionId);\n    const bookSection = navigation.books[bookSlug].children[bookSectionIndex];\n    const checked = !bookSection.checked;\n\n    // 1. Toggle clicked bookSection's flag\n    navigation.books[bookSlug].children[bookSectionIndex].partiallyChecked = false;\n    navigation.books[bookSlug].children[bookSectionIndex].checked = checked;\n\n    // 2. Iterate over all children BookSections and check / uncheck them.\n    Helpers.updateChildren(navigation.books[bookSlug].children, bookSectionIndex, item => ({\n      ...item,\n      checked,\n      partiallyChecked: false\n    }));\n\n    // 3. Iterate over all parent BookSections and actualize `checked` / `partiallyChecked` flags.\n    Helpers.updateParents(navigation.books[bookSlug].children, bookSectionIndex, childBookSection => {\n      // find exact children of the bookSection (no sub-children)\n      const children = book.children.filter(child => child.parentId === childBookSection.id);\n      // find checked children amount and compare with amount of all children\n      return CheckService.actualizeEntryFlags(childBookSection as BookSection, children);\n    });\n\n    // 4.  Actualize Book's `checked` / `partiallyChecked` flags.\n    const bookSections = book.children.filter(\n      childBookSection => !childBookSection.parentId && childBookSection.is_parent\n    );\n    CheckService.actualizeEntryFlags(navigation.books[bookSlug], bookSections);\n\n    const categoryIndex = navigation.categories.findIndex(category => category.bookIds.includes(book.id));\n    if (categoryIndex >= 0) {\n      // 5. Actualize Category's `checked` / `partiallyChecked` flags.\n      this.actualizeCategory(navigation, categoryIndex);\n\n      // 6. Iterate over all parent Categories and actualize `checked` / `partiallyChecked` flags.\n      this.actualizeParentCategories(navigation, categoryIndex);\n    }\n  }\n\n  public static toggleFoundBookSectionCheck(\n    navigation: NavigationData,\n    bookSectionId: string,\n    bookSlug: string\n  ) {\n    const book = navigation.foundBooks[bookSlug];\n    const bookSectionIndex = book.children.findIndex(bookSection => bookSection.id === bookSectionId);\n    const bookSection = navigation.foundBooks[bookSlug].children[bookSectionIndex];\n    const checked = !bookSection.checked;\n\n    // 1. Toggle clicked bookSection's flag\n    navigation.foundBooks[bookSlug].children[bookSectionIndex].partiallyChecked = false;\n    navigation.foundBooks[bookSlug].children[bookSectionIndex].checked = checked;\n\n    // 2. Iterate over all children BookSections and check / uncheck them.\n    Helpers.updateChildren(navigation.foundBooks[bookSlug].children, bookSectionIndex, item => ({\n      ...item,\n      checked,\n      partiallyChecked: false\n    }));\n\n    // 3. Iterate over all parent BookSections and actualize `checked` / `partiallyChecked` flags.\n    Helpers.updateParents(navigation.foundBooks[bookSlug].children, bookSectionIndex, childBookSection => {\n      // find exact children of the bookSection (no sub-children)\n      const children = book.children.filter(child => child.parentId === childBookSection.id);\n      // find checked children amount and compare with amount of all children\n      return CheckService.actualizeEntryFlags(childBookSection as BookSection, children);\n    });\n\n    // 4.  Actualize Book's `checked` / `partiallyChecked` flags.\n    const bookSections = book.children.filter(\n      childBookSection => !childBookSection.parentId && childBookSection.is_parent\n    );\n    CheckService.actualizeEntryFlags(navigation.foundBooks[bookSlug], bookSections);\n  }\n\n  private static actualizeCategory(navigation: NavigationData, categoryIndex: number) {\n    if (categoryIndex < 0) {\n      return;\n    }\n    const categoryBookIds = navigation.categories[categoryIndex].bookIds;\n    const categoryBooks = Object.values(navigation.books).filter(book => categoryBookIds.includes(book.id));\n    const children = navigation.categories.filter(\n      childCategory => childCategory.parent_id === navigation.categories[categoryIndex].id\n    );\n    CheckService.actualizeEntryFlags(navigation.categories[categoryIndex], [...children, ...categoryBooks]);\n  }\n\n  private static actualizeParentCategories(navigation: NavigationData, categoryIndex: number) {\n    if (categoryIndex < 0) {\n      return;\n    }\n    Helpers.updateParents(navigation.categories, categoryIndex, category => {\n      // find exact children and books of the category (no sub-children)\n      const categoryBooks = Object.values(navigation.books).filter(book =>\n        category.bookIds.includes(book.id)\n      );\n      const children = navigation.categories.filter(childCategory => childCategory.parent_id === category.id);\n      return CheckService.actualizeEntryFlags(category as Category, [...children, ...categoryBooks]);\n    });\n  }\n\n  private static actualizeEntryFlags(entity: CheckableNavEntity, children: Array<CheckableNavEntity>) {\n    const checkedChildren = children.filter(child => child.checked);\n    const partiallyCheckedChildren = children.filter(child => child.partiallyChecked);\n    entity.checked = checkedChildren.length === children.length;\n    entity.partiallyChecked =\n      (checkedChildren.length > 0 && checkedChildren.length < children.length) ||\n      partiallyCheckedChildren.length > 0;\n    return entity;\n  }\n}\n","import { Author, AuthorLetter, BookLetter, Books, Category } from '@/services/Navigation/types';\n\nexport default class ExpandService {\n  /**\n   * This method will DO the mutation of data in order to not re-render every DOM node\n   */\n  public static toggleCategoryExpand(categories: Array<Category>, categoryId: number) {\n    const index = categories.findIndex(category => categoryId === category.id);\n    if (index > -1) {\n      categories[index].expanded = !categories[index].expanded;\n    }\n  }\n\n  /**\n   * This method will DO the mutation of data in order to not re-render every DOM node\n   */\n  public static toggleAuthorExpand(authors: Array<Author>, authorId: number) {\n    const index = authors.findIndex(author => authorId === author.id);\n    if (index > -1) {\n      authors[index].expanded = !authors[index].expanded;\n    }\n  }\n\n  /**\n   * This method will DO the mutation of data in order to not re-render every DOM node\n   */\n  public static toggleLetterExpand(letters: Array<BookLetter | AuthorLetter>, letterId: number) {\n    const index = letters.findIndex(letter => letterId === letter.id);\n    if (index > -1) {\n      letters[index].expanded = !letters[index].expanded;\n    }\n  }\n\n  /**\n   * This method will DO the mutation of data in order to not re-render every DOM node\n   */\n  public static toggleBookExpand(books: Books, bookSlug: string) {\n    books[bookSlug].expanded = !books[bookSlug].expanded;\n  }\n\n  /**\n   * This method will DO the mutation of data in order to not re-render every DOM node\n   */\n  public static toggleBookSectionExpand(books: Books, bookSectionId: string, bookSlug: string) {\n    const index = books[bookSlug].children.findIndex(bookSection => bookSectionId === bookSection.id);\n    if (index > -1) {\n      books[bookSlug].children[index].expanded = !books[bookSlug].children[index].expanded;\n    }\n  }\n\n  /**\n   * This method will DO the mutation of data in order to not re-render every DOM node\n   */\n  public static toggleFoundBookSectionExpand(books: Books, bookSectionId: string, bookSlug: string) {\n    if (!books[bookSlug]) {\n      return;\n    }\n    const index = books[bookSlug].children.findIndex(bookSection => bookSectionId === bookSection.id);\n    if (index > -1) {\n      books[bookSlug].children[index].expanded = !books[bookSlug].children[index].expanded;\n    }\n  }\n}\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport axios from 'axios';\nimport { RootState } from '@/store';\nimport {\n  Author,\n  Book,\n  Books,\n  BookSection,\n  Category,\n  ListType,\n  NavigationData,\n  NavigationDataFilter,\n  NavigationDataRaw\n} from '@/services/Navigation/types';\nimport HighlightService from '@/services/Navigation/HighlightService';\nimport ProcessService from '@/services/Navigation/ProcessService';\nimport PagingService from '@/services/Navigation/PagingService';\nimport NavigationService from '@/services/Api/NavigationService';\nimport CheckService from '@/services/Navigation/CheckService';\nimport ExpandService from '@/services/Navigation/ExpandService';\nimport { LIST_TYPE_DEFAULT } from '@/constants';\nimport ArrayService from '@/services/ArrayService';\nimport SearchScopeService from '@/services/SearchScopeService';\n\nexport type NavigationState = {\n  language: string;\n  loading: boolean;\n  error: boolean;\n  data: { [language: string]: NavigationData };\n  showSearchResultsFlag: boolean;\n  listType: ListType;\n  filterQuery: string;\n};\n\nconst initialData: NavigationData = {\n  books: {}, // books must be an object with unique key to avoid duplicates\n  booksAlphabet: [],\n  categories: [],\n  authors: [],\n  authorsAlphabet: [],\n  foundBooks: {},\n  filter: {\n    // filter data from search input in left column\n    categoryIds: [],\n    authorIds: [],\n    bookSlugs: []\n  }\n};\n\nconst state: NavigationState = {\n  // language variable is for Catalog.vue and Search.vue only\n  // we can switch catalog navigation in Sidebar.vue to the other language without changing url (to avoid blank content-area when url will be \"/ru\" or \"/en\")\n  // we initialize and watch it in Reader.vue so it will be synced with url (plus decide should we show Catalog.vue or NewBooks.vue)\n  // we don't know the exact language while user is on the main page, so it's empty by default\n  language: '',\n  loading: false,\n  error: false,\n  data: {\n    ru: initialData,\n    en: initialData,\n    st: initialData\n  },\n  showSearchResultsFlag: false,\n  listType: LIST_TYPE_DEFAULT,\n  filterQuery: ''\n};\n\nconst actions: ActionTree<NavigationState, RootState> = {\n  async fetch({ commit, state }, language) {\n    // get navigation from backend\n\n    commit('setLoading', true);\n    commit('setError', false);\n    return NavigationService.getNavigation(language)\n      .then((navigationDataRaw: NavigationDataRaw) => {\n        // process navigation data\n        let navigationData = ProcessService.processNavigation(navigationDataRaw);\n        // highlight navigation items\n        navigationData = HighlightService.actualizeHighlight(\n          {\n            ...state.data[state.language],\n            ...navigationData\n          },\n          state.listType,\n          state.filterQuery\n        );\n        // store it in the state\n        commit('updateNavigationData', navigationData);\n      })\n      .catch(e => {\n        if (!axios.isCancel(e)) {\n          // if request was canceled - we should not consider this as error\n          console.error(e); // eslint-disable-line no-console\n          commit('setError', e);\n        }\n      })\n      .finally(() => {\n        if (NavigationService.callsCount === 0) {\n          commit('setLoading', false);\n        }\n      });\n  },\n\n  async fetchCategoryBooks({ commit, state }, { language, categoryId }) {\n    const { books: newBooks } = await NavigationService.getCategoryBooks(language, categoryId);\n    const processedBooks = ProcessService.processBooks(newBooks);\n    let navigationData = {\n      ...state.data[state.language],\n      books: ProcessService.concatBooks(state.data[state.language].books, processedBooks),\n      categories: ProcessService.mapBookIds(state.data[state.language].categories, categoryId, processedBooks)\n    };\n    if (HighlightService.needBookHighlight(navigationData, state.listType, state.filterQuery)) {\n      navigationData.books = HighlightService.highlightBook(navigationData.books);\n    }\n    commit('updateNavigationData', navigationData);\n  },\n\n  async fetchCategoriesBooks({ commit, state }, { language, categoryIds }) {\n    const { books: newBooks, categories: categoryBookIds } = await NavigationService.getCategoriesBooks(\n      language,\n      categoryIds\n    );\n    const processedBooks = ProcessService.processBooks(newBooks);\n    const categories = SearchScopeService.applyCategoryBookMappings(\n      state.data[state.language].categories,\n      categoryIds,\n      categoryBookIds\n    );\n    commit('updateNavigationData', {\n      ...state.data[state.language],\n      books: ProcessService.concatBooks(state.data[state.language].books, processedBooks),\n      categories\n    });\n  },\n\n  async toggleCategorySelection({ commit, dispatch, state }, categoryId: number) {\n    const data = state.data[state.language];\n    const category = data.categories.find(item => item.id === categoryId);\n    if (!category) {\n      return;\n    }\n    const shouldLoadBookIds = !category.checked;\n    commit('toggleCategoryCheck', categoryId);\n    if (shouldLoadBookIds) {\n      const unloadedCategoryIds = SearchScopeService.getUnloadedBookCategoryIds(data.categories, categoryId);\n      if (unloadedCategoryIds.length) {\n        await dispatch('fetchCategoriesBooks', {\n          language: state.language,\n          categoryIds: unloadedCategoryIds\n        }).catch(() => {\n          // Category selection remains usable if the optional count hydration fails.\n        });\n      }\n    }\n  },\n\n  async fetchAuthorBooks({ commit, state }, { language, authorId }) {\n    const { books: newBooks } = await NavigationService.getAuthorBooks(language, authorId);\n    const processedBooks = ProcessService.processBooks(newBooks);\n    let navigationData = {\n      ...state.data[state.language],\n      books: ProcessService.concatBooks(state.data[state.language].books, processedBooks),\n      authors: ProcessService.mapBookIds(state.data[state.language].authors, authorId, processedBooks)\n    };\n    if (HighlightService.needBookHighlight(navigationData, state.listType, state.filterQuery)) {\n      navigationData.books = HighlightService.highlightBook(navigationData.books);\n    }\n    commit('updateNavigationData', navigationData);\n  },\n\n  async fetchLetterBooks({ commit, state }, { language, letterName }) {\n    const { books: newBooks } = await NavigationService.getLetterBooks(language, letterName);\n    const processedBooks = ProcessService.processBooks(newBooks);\n    let navigationData = {\n      ...state.data[state.language],\n      books: ProcessService.concatBooks(state.data[state.language].books, processedBooks)\n    };\n    const letter = state.data[state.language].booksAlphabet.find(one => one.name === letterName);\n    if (letter) {\n      navigationData.booksAlphabet = ProcessService.mapBookIds(\n        state.data[state.language].booksAlphabet,\n        letter.id,\n        processedBooks\n      );\n    }\n    if (HighlightService.needBookHighlight(navigationData, state.listType, state.filterQuery)) {\n      navigationData.books = HighlightService.highlightBook(navigationData.books);\n    }\n    commit('updateNavigationData', navigationData);\n  },\n\n  async fetchBookSections({ commit, state }, { language, bookSlug }) {\n    const { is_show_edit_link, edit_link, bookSections } = await NavigationService.getBookSections(\n      language,\n      bookSlug\n    );\n    let navigationData = { ...state.data[state.language] };\n    navigationData.books[bookSlug].children = ProcessService.processBookSections(\n      bookSections,\n      navigationData.books[bookSlug]\n    );\n    navigationData.books[bookSlug].edit_link = edit_link;\n    navigationData.books[bookSlug].is_show_edit_link = is_show_edit_link;\n    if (HighlightService.needBookSectionHighlight(navigationData.books)) {\n      navigationData.books = HighlightService.highlightBookSection(navigationData.books);\n    }\n    commit('updateNavigationData', navigationData);\n  },\n\n  async highlightLetterByBookSlug({ commit, dispatch, state }, { language, bookSlug }) {\n    try {\n      const bookParams = await NavigationService.getBookParams(language, bookSlug);\n      if (state.error) {\n        return;\n      }\n      const navigationData = state.data[state.language];\n      const { booksAlphabet } = navigationData;\n      const letter = booksAlphabet.find(one => one.name === bookParams.letter);\n      if (!letter) {\n        throw new Error(`Book letter not found: ${bookParams.letter}`);\n      }\n\n      letter.expanded = true;\n      letter.highlight = true;\n      commit('updateNavigationData', { booksAlphabet });\n\n      // A direct URL is opened before NavLetter/NavBook components exist. Load\n      // the complete branch here instead of relying on component watchers.\n      if (!state.data[state.language].books[bookSlug]) {\n        await dispatch('fetchLetterBooks', { language, letterName: letter.name });\n      }\n      let book = state.data[state.language].books[bookSlug];\n      if (!book) {\n        const fallbackBranches = [\n          ...(bookParams.categories || []).map((categoryId: number) => ({\n            action: 'fetchCategoryBooks',\n            payload: { language, categoryId }\n          })),\n          ...(bookParams.authors || []).map((authorId: number) => ({\n            action: 'fetchAuthorBooks',\n            payload: { language, authorId }\n          }))\n        ];\n        for (const branch of fallbackBranches) {\n          await dispatch(branch.action, branch.payload);\n          book = state.data[state.language].books[bookSlug];\n          if (book) {\n            break;\n          }\n        }\n      }\n      if (!book) {\n        const directBooks = ProcessService.processBooks([\n          {\n            id: bookParams.id,\n            name: bookParams.name || bookSlug,\n            slug: bookSlug,\n            categories: bookParams.categories || [],\n            authors: bookParams.authors || [],\n            language,\n            related_books_count: 0,\n            is_article: !!bookParams.is_article,\n            translations: [],\n            sectionsEntity: [],\n            status: 'published',\n            searchMatch: false,\n            highlight: false,\n            visible: true,\n            expanded: false,\n            children: [],\n            checked: false,\n            partiallyChecked: false,\n            is_show_edit_link: false,\n            edit_link: ''\n          }\n        ]);\n        const navigationData = {\n          ...state.data[state.language],\n          books: ProcessService.concatBooks(state.data[state.language].books, directBooks)\n        };\n        commit('updateNavigationData', navigationData);\n        book = navigationData.books[bookSlug];\n      }\n      if (!book) {\n        throw new Error(`Book not found in letter ${letter.name}: ${bookSlug}`);\n      }\n      book.expanded = true;\n      book.highlight = true;\n      commit('updateNavigationData', { books: state.data[state.language].books });\n\n      if (!book.children.length) {\n        await dispatch('fetchBookSections', { language, bookSlug });\n      }\n      commit('actualizeHighlight');\n    } catch (e) {\n      if (!axios.isCancel(e)) {\n        console.error(e); // eslint-disable-line no-console\n        commit('setError', e);\n      }\n    }\n  },\n\n  /**\n   * Filter categories\n   */\n  async filter({ commit, state }, { language, query }) {\n    let filterData: {\n      books?: Array<Book>;\n      categories?: Array<number>;\n      bookSections?: Array<string>;\n      authors?: Array<number>;\n      letters?: Array<string>;\n    } = {};\n    const stateData = state.data[state.language];\n    let filter: NavigationDataFilter = stateData.filter;\n    let stateBooks: Books = { ...stateData.books };\n    let filteredAuthors;\n    switch (state.listType) {\n      case 'categories':\n        filterData = await NavigationService.filterCategories(language, query);\n        break;\n      case 'authors':\n        filterData = await NavigationService.filterAuthors(language, query);\n        filteredAuthors = stateData.authors.filter(\n          author => filterData.authors && filterData.authors.includes(author.id)\n        );\n        break;\n      case 'books':\n        filterData = await NavigationService.filterLetters(language, query);\n        break;\n    }\n\n    filter.categoryIds = filterData.categories || [];\n    filter.authorIds = filterData.authors || [];\n    filter.bookSlugs = [];\n    if (filterData.books) {\n      filter.bookSlugs = filterData.books.map(book => book.slug);\n      stateBooks = { ...stateBooks, ...ProcessService.processBooks(filterData.books) };\n    }\n\n    commit('updateNavigationData', { filter, books: stateBooks });\n  },\n\n  /**\n   * Search books if there is a global search query\n   */\n  async searchBooks({ commit, getters, rootState }, { language, query, ...rest }) {\n    commit('setLoading', true);\n    commit('search/setError', false, { root: true });\n    if (rootState.search.advancedSearch && !getters.hasCheckedEntities) {\n      // if there is advanced search and there are no checked checkboxes - return empty list\n      commit('updateNavigationData', { foundBooks: [] });\n      commit('setLoading', false);\n    } else {\n      return NavigationService.searchBooks(language, query, rest)\n        .then(books => {\n          // store it in the state\n          commit('updateNavigationData', {\n            foundBooks: ProcessService.processBooks(books, { checked: true })\n          });\n        })\n        .catch(e => {\n          if (!axios.isCancel(e)) {\n            // A sidebar-search failure must not replace an already loaded catalog.\n            commit('search/setError', true, { root: true });\n          }\n        })\n        .finally(() => {\n          if (NavigationService.callsCount === 0) {\n            commit('setLoading', false);\n          }\n        });\n    }\n  },\n\n  /**\n   *  Search books sections if there is a global search query\n   */\n  async searchBookSections({ commit, state }, { language, query, bookSlug, ...rest }) {\n    const bookSections = await NavigationService.searchBookSections(language, query, bookSlug, rest);\n    const bookSectionEntries = await NavigationService.searchBookSectionEntries(\n      language,\n      query,\n      bookSlug,\n      rest\n    );\n    const book = state.data[state.language].foundBooks[bookSlug];\n    state.data[state.language].foundBooks[bookSlug].children = ProcessService.processBookSections(\n      bookSections,\n      book,\n      { checked: true },\n      bookSectionEntries\n    );\n    commit('updateNavigationData', state.data[state.language]);\n  }\n};\n\nconst mutations: MutationTree<NavigationState> = {\n  updateNavigationData(state: NavigationState, navigationData: NavigationData) {\n    state.data[state.language] = { ...state.data[state.language], ...navigationData };\n  },\n  setLanguage(state: NavigationState, language: string) {\n    state.language = language;\n  },\n  setLoading(state: NavigationState, loading: boolean) {\n    state.loading = loading;\n  },\n  setError(state: NavigationState, error: boolean) {\n    state.error = error;\n  },\n  actualizeHighlight(state: NavigationState) {\n    state.data[state.language] = HighlightService.actualizeHighlight(\n      state.data[state.language],\n      state.listType,\n      state.filterQuery\n    );\n  },\n  toggleCategoryExpand(state: NavigationState, categoryId: number) {\n    ExpandService.toggleCategoryExpand(state.data[state.language].categories, categoryId);\n  },\n  toggleAuthorExpand(state: NavigationState, authorId: number) {\n    ExpandService.toggleAuthorExpand(state.data[state.language].authors, authorId);\n  },\n  toggleBookExpand(state: NavigationState, bookSlug: string) {\n    ExpandService.toggleBookExpand(state.data[state.language].books, bookSlug);\n  },\n  toggleFoundBookExpand(state: NavigationState, bookSlug: string) {\n    ExpandService.toggleBookExpand(state.data[state.language].foundBooks, bookSlug);\n  },\n  toggleBookSectionExpand(\n    state: NavigationState,\n    {\n      bookSectionId,\n      bookSlug,\n      catalogTree\n    }: { bookSectionId: string; bookSlug: string; catalogTree?: boolean }\n  ) {\n    if (state.showSearchResultsFlag && !catalogTree) {\n      ExpandService.toggleFoundBookSectionExpand(\n        state.data[state.language].foundBooks,\n        bookSectionId,\n        bookSlug\n      );\n    } else {\n      ExpandService.toggleBookSectionExpand(state.data[state.language].books, bookSectionId, bookSlug);\n    }\n  },\n  toggleBookLetterExpand(state: NavigationState, letterId: number) {\n    ExpandService.toggleLetterExpand(state.data[state.language].booksAlphabet, letterId);\n  },\n  toggleAuthorLetterExpand(state: NavigationState, letterId: number) {\n    ExpandService.toggleLetterExpand(state.data[state.language].authorsAlphabet, letterId);\n  },\n  collapseAll(state: NavigationState) {\n    state.data[state.language] = {\n      ...state.data[state.language],\n      ...ProcessService.collapseAll(state.data[state.language])\n    };\n  },\n  collapseBookTree(state: NavigationState, bookSlug: string) {\n    const collapseSections = (sections: Array<BookSection>) => {\n      sections.forEach(section => {\n        section.expanded = false;\n        collapseSections(section.children || []);\n      });\n    };\n    const collapseBook = (books: Books) => {\n      const book = books[bookSlug];\n      if (!book) {\n        return;\n      }\n      book.expanded = false;\n      collapseSections(book.children || []);\n    };\n    collapseBook(state.data[state.language].books);\n    collapseBook(state.data[state.language].foundBooks);\n  },\n  restoreExpansionState(state: NavigationState, snapshot) {\n    const data = state.data[state.language];\n    const categoryIds = new Set(snapshot.categories || []);\n    const authorIds = new Set(snapshot.authors || []);\n    const bookLetterIds = new Set(snapshot.bookLetters || []);\n    const authorLetterIds = new Set(snapshot.authorLetters || []);\n    const bookSlugs = new Set(snapshot.books || []);\n    const foundBookSlugs = new Set(snapshot.foundBooks || []);\n    const sectionKeys = new Set(snapshot.sections || []);\n    const applySections = (sections: Array<BookSection>, bookSlug: string) => {\n      sections.forEach(section => {\n        section.expanded = sectionKeys.has(`${bookSlug}:${section.id}`);\n        applySections(section.children || [], bookSlug);\n      });\n    };\n    data.categories.forEach(category => {\n      category.expanded = categoryIds.has(category.id);\n    });\n    data.authors.forEach(author => {\n      author.expanded = authorIds.has(author.id);\n    });\n    data.booksAlphabet.forEach(letter => {\n      letter.expanded = bookLetterIds.has(letter.id);\n    });\n    data.authorsAlphabet.forEach(letter => {\n      letter.expanded = authorLetterIds.has(letter.id);\n    });\n    Object.values(data.books).forEach(book => {\n      book.expanded = bookSlugs.has(book.slug);\n      applySections(book.children || [], book.slug);\n    });\n    Object.values(data.foundBooks).forEach(book => {\n      book.expanded = foundBookSlugs.has(book.slug);\n      applySections(book.children || [], book.slug);\n    });\n  },\n  toggleCategoryCheck(state: NavigationState, categoryId: number) {\n    CheckService.toggleCategoryCheck(state.data[state.language], categoryId);\n  },\n  toggleBookCheck(state: NavigationState, bookSlug: string) {\n    CheckService.toggleBookCheck(state.data[state.language], bookSlug);\n  },\n  toggleFoundBookCheck(state: NavigationState, bookSlug: string) {\n    CheckService.toggleFoundBookCheck(state.data[state.language], bookSlug);\n  },\n  toggleBookSectionCheck(state: NavigationState, { bookSectionId, bookSlug }) {\n    CheckService.toggleBookSectionCheck(state.data[state.language], bookSectionId, bookSlug);\n  },\n  toggleFoundBookSectionCheck(state: NavigationState, { bookSectionId, bookSlug }) {\n    CheckService.toggleFoundBookSectionCheck(state.data[state.language], bookSectionId, bookSlug);\n  },\n  checkAll(state: NavigationState) {\n    state.data[state.language] = CheckService.checkAll(state.data[state.language]);\n  },\n  uncheckAll(state: NavigationState) {\n    state.data[state.language] = CheckService.uncheckAll(state.data[state.language]);\n  },\n  updatePreloadFlag(state: NavigationState) {\n    // this method will DO the mutation of data\n    ProcessService.updatePreloadFlag(state.data[state.language].books);\n  },\n  setShowSearchResultsFlag(state: NavigationState, showSearchResultsFlag) {\n    state.showSearchResultsFlag = showSearchResultsFlag;\n    if (!showSearchResultsFlag && state.language) {\n      // clear found books if we switch back to catalog\n      state.data[state.language].foundBooks = {};\n    }\n  },\n  setListType(state: NavigationState, listType: ListType) {\n    state.listType = listType;\n  },\n  clearFoundBooks(state) {\n    state.data[state.language].foundBooks = {};\n  },\n  resetFilter(state) {\n    state.data[state.language].filter = { ...initialData.filter };\n  },\n  updateFilterQuery(state, filterQuery) {\n    state.filterQuery = filterQuery;\n  }\n};\n\nconst getters: GetterTree<NavigationState, RootState> = {\n  dataFromStateLanguage: (state: NavigationState) => {\n    // this getters is used when user clicks on different languages in the left sidebar and the url is not changing (just to show the catalog tree for selected language)\n    return !!state.language && state.data[state.language];\n  },\n  dataFromRouteLanguage: (state: NavigationState, getters, rootState) => {\n    // this getter is used to get current book / bookSection / category from slugs in url\n    const routeLanguage = rootState.route.params.language;\n    return !!routeLanguage && state.data[routeLanguage];\n  },\n  currentBook: (state: NavigationState, getters, rootState) => {\n    const routeLanguage = rootState.route.params.language;\n    const routeBook = rootState.route.params.book;\n    if (!(routeLanguage && routeBook)) {\n      return undefined;\n    }\n    const data = getters.dataFromRouteLanguage;\n    const books: Array<Book> = data ? Object.values(data.books) : [];\n    return books.find(book => book.language === routeLanguage && book.slug === routeBook);\n  },\n  currentBookSections: (state: NavigationState, getters) => {\n    const book = getters.currentBook;\n    if (!book) {\n      return undefined;\n    }\n    return book.children;\n  },\n  currentBookSection: (state: NavigationState, getters, rootState) => {\n    const routeLanguage = rootState.route.params.language;\n    const routeBook = rootState.route.params.book;\n    const routeBookSection = rootState.route.params.bookSection;\n    const book = getters.currentBook;\n    if (!book) {\n      return undefined;\n    }\n    const bookSections: Array<BookSection> = book.children;\n\n    if (book && book.is_article) {\n      // when book has only one article - there is no info in the left col, so we fake the object\n      return {\n        id: routeBookSection,\n        code: routeBookSection,\n        slug: routeBookSection,\n        bookId: book.id,\n        book: book,\n        number_code_chapter: null,\n        number_code_section: null,\n        number_code_poem: null,\n        is_parent: false,\n        depth: 1,\n        preload: false,\n        number: 0, // number in the book\n        index: 0\n      } as BookSection;\n    }\n\n    return bookSections.find(\n      one =>\n        one.book.language === routeLanguage && one.book.slug === routeBook && one.slug === routeBookSection\n    );\n  },\n  pagination: (state: NavigationState, getters) => {\n    return PagingService.getPaging(getters.currentBookSections, getters.currentBookSection);\n  },\n  checkedCategories: (state: NavigationState, getters) => {\n    const data = getters.dataFromRouteLanguage;\n    const categories: Array<Category> = data ? data.categories : [];\n    return categories.filter(category => category.checked && !category.partiallyChecked);\n  },\n  checkedBooks: (state: NavigationState, getters) => {\n    const data = getters.dataFromRouteLanguage as NavigationData;\n    if (!data) {\n      return [];\n    }\n    const checkedCategoriesIds = getters.checkedCategories.map((category: Category) => category.id);\n    return Object.values(data.books).filter(\n      book =>\n        book.checked &&\n        !book.partiallyChecked &&\n        !(book.categories && ArrayService.hasIntersections(book.categories, checkedCategoriesIds)) // ... and if book's category IDs are not in checked categories IDs\n    );\n  },\n  selectedBooksCount: (state: NavigationState, getters) => {\n    return SearchScopeService.getSelectedBookIds(\n      getters.checkedBooks as Array<Book>,\n      getters.checkedCategories as Array<Category>\n    ).size;\n  },\n  checkedBookSections: (state: NavigationState, getters) => {\n    const data = getters.dataFromRouteLanguage as NavigationData;\n    if (!data) {\n      return [];\n    }\n    let checkedBookIds = getters.checkedBooks.map((book: Book) => book.id);\n    getters.checkedCategories.forEach((category: Category) => {\n      checkedBookIds = checkedBookIds.concat(category.bookIds);\n    });\n    const checkedBookSections: Array<BookSection> = [];\n    for (let slug in data.books) {\n      if (!data.books.hasOwnProperty(slug)) {\n        continue;\n      }\n      data.books[slug].children.forEach(bookSection => {\n        if (\n          bookSection.checked &&\n          !bookSection.partiallyChecked &&\n          !checkedBookIds.includes(bookSection.book.id)\n        ) {\n          checkedBookSections.push(bookSection);\n        }\n      });\n    }\n    return checkedBookSections;\n  },\n  checkedFoundBooks: (state: NavigationState, getters) => {\n    const data = getters.dataFromRouteLanguage as NavigationData;\n    if (!(data && data.foundBooks)) {\n      return [];\n    }\n    return Object.values(data.foundBooks).filter(book => book.checked && !book.partiallyChecked);\n  },\n  checkedFoundBookSections: (state: NavigationState, getters) => {\n    const data = getters.dataFromRouteLanguage as NavigationData;\n    if (!(data && data.foundBooks)) {\n      return [];\n    }\n    let bookSections: Array<BookSection> = [];\n    Object.values(data.foundBooks)\n      .filter(book => !book.checked)\n      .forEach(book => {\n        bookSections = bookSections.concat(book.children.filter(bookSection => bookSection.checked));\n      });\n    return bookSections;\n  },\n  hasCheckedEntities(state: NavigationState, getters) {\n    const books = getters.checkedBooks as Array<Book>;\n    const categories = getters.checkedCategories as Array<Category>;\n    const bookSections = getters.checkedBookSections as Array<BookSection>;\n    const foundBooks = getters.checkedFoundBooks as Array<Book>;\n    const foundBookSections = getters.checkedFoundBookSections as Array<BookSection>;\n\n    return (\n      !!books.length ||\n      !!bookSections.length ||\n      !!categories.length ||\n      !!foundBooks.length ||\n      !!foundBookSections.length\n    );\n  },\n\n  showSearchResults: (state: NavigationState, getters, rootState) => {\n    return state.showSearchResultsFlag && rootState.route.name === 'search-results';\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  actions,\n  mutations,\n  getters\n} as Module<NavigationState, RootState>;\n","import { Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store';\n\nexport interface User {\n  id?: number;\n  name: string;\n  email: string;\n  last_name: string;\n  spiritual_name: string;\n  subscribe_level: string;\n}\n\nexport interface UserState {\n  data: object | User;\n}\n\nconst state: UserState = {\n  data: {}\n};\n\nconst mutations: MutationTree<UserState> = {\n  set(state, user) {\n    state.data = user;\n  },\n  unset(state) {\n    state.data = {};\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  mutations\n} as Module<UserState, RootState>;\n","import { Module, MutationTree } from 'vuex';\nimport Vue from 'vue';\nimport { RootState } from '@/store';\nimport StorageService from '@/services/StorageService';\nimport { LANGUAGE_CODE_DEFAULT, LIST_SCALE_DEFAULT } from '@/constants';\n\nexport interface ReaderState {\n  scale: number;\n  readMode: boolean;\n  presentationMode: boolean;\n  presentationScale: number;\n  presentationAutoFit: boolean;\n  presentationHideTextTypes: Array<string>;\n  colorMode: 'light' | 'dark' | 'mixed';\n  isTextTypesFiltersVisible: boolean;\n  hideTextTypes: Array<string>;\n  interfaceLanguage: string;\n  catalogListScale: string;\n}\n\nconst defaultState: ReaderState = {\n  scale: 1,\n  readMode: false,\n  presentationMode: false,\n  presentationScale: 1,\n  presentationAutoFit: true,\n  presentationHideTextTypes: ['word-by-word', 'comment'],\n  isTextTypesFiltersVisible: false,\n  hideTextTypes: [],\n  colorMode: 'light',\n  interfaceLanguage: LANGUAGE_CODE_DEFAULT,\n  catalogListScale: LIST_SCALE_DEFAULT\n};\n\nexport const normalizeReaderState = (storedState?: Partial<ReaderState>): ReaderState => ({\n  ...defaultState,\n  ...(storedState || {}),\n  hideTextTypes:\n    storedState && Array.isArray(storedState.hideTextTypes)\n      ? [...storedState.hideTextTypes]\n      : [...defaultState.hideTextTypes],\n  presentationMode: false,\n  presentationScale:\n    storedState && typeof storedState.presentationScale === 'number'\n      ? Math.max(0.7, Math.min(1.8, storedState.presentationScale))\n      : defaultState.presentationScale,\n  presentationAutoFit:\n    storedState && typeof storedState.presentationAutoFit === 'boolean'\n      ? storedState.presentationAutoFit\n      : defaultState.presentationAutoFit,\n  presentationHideTextTypes:\n    storedState && Array.isArray(storedState.presentationHideTextTypes)\n      ? [...storedState.presentationHideTextTypes]\n      : [...defaultState.presentationHideTextTypes]\n});\n\nconst state: ReaderState = normalizeReaderState(StorageService.get('reader'));\n\nconst saveState = (state: ReaderState) => {\n  StorageService.save('reader', { ...state, readMode: false, presentationMode: false });\n};\n\nconst mutations: MutationTree<ReaderState> = {\n  setScale(state, scale) {\n    state.scale = scale;\n    saveState(state);\n  },\n\n  setReadMode(state, readMode) {\n    state.readMode = readMode;\n    saveState(state);\n  },\n\n  setPresentationMode(state, presentationMode) {\n    state.presentationMode = presentationMode;\n    saveState(state);\n  },\n\n  setPresentationScale(state, scale) {\n    state.presentationScale = Math.max(0.7, Math.min(1.8, Number(scale) || 1));\n    saveState(state);\n  },\n\n  setPresentationAutoFit(state, autoFit) {\n    state.presentationAutoFit = !!autoFit;\n    saveState(state);\n  },\n\n  switchPresentationTextTypeFilter(state, filter) {\n    state.presentationHideTextTypes = state.presentationHideTextTypes || [];\n    const index = state.presentationHideTextTypes.indexOf(filter);\n    if (index > -1) {\n      state.presentationHideTextTypes.splice(index, 1);\n    } else {\n      state.presentationHideTextTypes.push(filter);\n    }\n    saveState(state);\n  },\n\n  setColorMode(state, colorMode) {\n    state.colorMode = colorMode;\n    saveState(state);\n  },\n\n  setInterfaceLanguage(state, interfaceLanguage) {\n    state.interfaceLanguage = interfaceLanguage;\n    saveState(state);\n  },\n\n  setCatalogListScale(state, catalogListScale) {\n    Vue.set(state, 'catalogListScale', catalogListScale);\n    saveState(state);\n  },\n\n  toggleTextTypesFilter(state) {\n    Vue.set(state, 'isTextTypesFiltersVisible', !state.isTextTypesFiltersVisible);\n    saveState(state);\n  },\n\n  setTextTypesFilterVisible(state, visible) {\n    Vue.set(state, 'isTextTypesFiltersVisible', visible);\n    saveState(state);\n  },\n\n  switchTextTypeFilter(state, filter) {\n    state.hideTextTypes = state.hideTextTypes || [];\n    const index = state.hideTextTypes.indexOf(filter);\n    if (index > -1) {\n      state.hideTextTypes.splice(index, 1);\n    } else {\n      state.hideTextTypes.push(filter);\n    }\n    saveState(state);\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  mutations\n} as Module<ReaderState, RootState>;\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store';\nimport SearchService, { SearchItem } from '@/services/Api/SearchService';\nimport router from '@/router';\nimport { Book, BookSection, Category } from '@/services/Navigation/types';\nimport ArrayService from '@/services/ArrayService';\nimport SearchScopeService from '@/services/SearchScopeService';\n\nexport interface SearchState {\n  advancedSearch: boolean;\n  inBookSearch: boolean;\n  results: Array<SearchItem>;\n  resultsCount: number;\n  priorityResults: null | object;\n  needUpdate: boolean;\n  loading: boolean;\n  error: boolean;\n}\n\nlet latestSearchRequestId = 0;\n\nconst actions: ActionTree<SearchState, RootState> = {\n  async fetchResults({ commit, getters, state }, { offset, perPage }) {\n    const requestId = ++latestSearchRequestId;\n    const { language } = router.currentRoute.params;\n    const { query } = router.currentRoute.query;\n    const searchOptions = getters.searchOptions;\n    commit('setError', false);\n    if (typeof query === 'string' && query) {\n      commit('setLoading', true);\n      try {\n        const hasSelectedScope = SearchScopeService.hasActiveScope(searchOptions);\n        const [searchResults, searchPriorityResults] = await Promise.all([\n          SearchService.search(language, query, {\n            size: perPage,\n            from: offset,\n            ...searchOptions\n          }),\n          hasSelectedScope ? Promise.resolve(null) : SearchService.getPriorityResults(language, query)\n        ]);\n        if (requestId !== latestSearchRequestId) {\n          return;\n        }\n        let { results } = searchResults.data;\n        const { total_results } = searchResults.data;\n        if (offset > 0) {\n          results = state.results.concat(results);\n        }\n        commit('setResults', results);\n        commit('setResultsCount', total_results);\n        commit('setPriorityResults', searchPriorityResults);\n      } catch (e) {\n        if (requestId === latestSearchRequestId) {\n          commit('setResults', []);\n          commit('setResultsCount', 0);\n          commit('setPriorityResults', null);\n          commit('setError', true);\n        }\n      } finally {\n        if (requestId === latestSearchRequestId) {\n          commit('setLoading', false);\n          commit('setNeedUpdate', false);\n        }\n      }\n    } else {\n      commit('setResults', []);\n      commit('setResultsCount', 0);\n      commit('setPriorityResults', null);\n      commit('setNeedUpdate', false);\n    }\n  }\n};\n\nconst state: SearchState = {\n  advancedSearch: false,\n  inBookSearch: false,\n  results: [],\n  resultsCount: 0,\n  priorityResults: null,\n  needUpdate: false,\n  loading: false,\n  error: false\n};\n\nconst mutations: MutationTree<SearchState> = {\n  setResults(state, items) {\n    state.results = items;\n  },\n  setResultsCount(state, resultsCount) {\n    state.resultsCount = resultsCount;\n  },\n  setPriorityResults(state, priorityResults) {\n    state.priorityResults = priorityResults;\n  },\n  setAdvancedSearch(state, advancedSearch) {\n    state.advancedSearch = advancedSearch;\n  },\n  setInBookSearch(state, inBookSearch) {\n    state.inBookSearch = inBookSearch;\n  },\n  setNeedUpdate(state, needUpdated) {\n    state.needUpdate = needUpdated;\n  },\n  setLoading(state, loading) {\n    state.loading = loading;\n  },\n  setError(state, error) {\n    state.error = error;\n  }\n};\n\nconst getters: GetterTree<SearchState, RootState> = {\n  searchOptions(state: SearchState, getters, rootState, rootGetters) {\n    const {\n      searchInPoem,\n      exact,\n      considerDiacritics,\n      equalizeWriting,\n      slug,\n      bookId,\n      inBookOnly,\n      bookSearch\n    } = router.currentRoute.query;\n    const { showSearchResultsFlag } = rootState.navigation;\n    const checkedBooks = rootGetters['navigation/checkedBooks'] as Array<Book>;\n    const checkedCategories = rootGetters['navigation/checkedCategories'] as Array<Category>;\n    const checkedBookSections = rootGetters['navigation/checkedBookSections'] as Array<BookSection>;\n    const navigationData = rootGetters['navigation/dataFromStateLanguage'] || {};\n    const navigationBooks = Object.values(navigationData.books || {}) as Array<Book>;\n    const foundBooks = Object.values(navigationData.foundBooks || {}) as Array<Book>;\n    const checkedFoundBooks = rootGetters['navigation/checkedFoundBooks'] as Array<Book>;\n    const checkedFoundBookSections = rootGetters['navigation/checkedFoundBookSections'] as Array<BookSection>;\n    const hasBookSlug = typeof slug === 'string' && !!slug;\n    const routeRequestsBookSearch = inBookOnly === '1' || bookSearch === '1';\n    const useBookScope = hasBookSlug && (state.inBookSearch || routeRequestsBookSearch);\n    const useSelectedScope = state.advancedSearch && !useBookScope;\n    const routeBookId = typeof bookId === 'string' ? parseInt(bookId, 10) : NaN;\n    const scopedBook = [...navigationBooks, ...foundBooks].find(book => book.slug === slug);\n    const scopedBookId = routeBookId > 0 ? routeBookId : scopedBook && scopedBook.id;\n\n    let booksIds: Array<number> = [];\n    if (useBookScope && scopedBookId) {\n      booksIds = [scopedBookId];\n    } else if (useSelectedScope) {\n      if (\n        showSearchResultsFlag &&\n        checkedFoundBooks.length &&\n        checkedFoundBooks.length !== foundBooks.length\n      ) {\n        booksIds = ArrayService.extractIds([...checkedBooks, ...checkedFoundBooks]) as Array<number>;\n      } else if (checkedBooks.length) {\n        booksIds = ArrayService.extractIds(checkedBooks) as Array<number>;\n      }\n    }\n\n    return {\n      book_slug: useBookScope && typeof slug === 'string' ? slug : '',\n      search_in_poem: !!searchInPoem,\n      exact: !!exact,\n      consider_diacritics: !!considerDiacritics,\n      equalize_writing: !!equalizeWriting,\n      books: booksIds,\n      categories: useSelectedScope ? ArrayService.extractIds(checkedCategories) : [],\n      book_sections: useSelectedScope\n        ? ArrayService.extractIds(\n            checkedFoundBookSections.length ? checkedFoundBookSections : checkedBookSections\n          )\n        : []\n    };\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  actions,\n  mutations,\n  getters\n} as Module<SearchState, RootState>;\n","import { Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store';\n\nexport interface SettingsState {\n  visible: boolean;\n}\n\nconst state: SettingsState = {\n  visible: false\n};\n\nconst mutations: MutationTree<SettingsState> = {\n  toggle(state: SettingsState) {\n    state.visible = !state.visible;\n  },\n  show(state: SettingsState) {\n    state.visible = true;\n  },\n  hide(state: SettingsState) {\n    state.visible = false;\n  }\n};\n\nexport const module = {\n  namespaced: true,\n  state,\n  mutations\n} as Module<SettingsState, RootState>;\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport { module as auth, AuthState } from './modules/auth';\nimport { module as navigation, NavigationState } from './modules/navigation';\nimport { module as tabs, TabsState } from './modules/tabs';\nimport { module as user, UserState } from './modules/user';\nimport { module as reader, ReaderState } from './modules/reader';\nimport { module as search, SearchState } from '@/store/modules/search';\nimport { module as settings, SettingsState } from '@/store/modules/settings';\nimport { module as bookmarks, BookmarksState } from '@/store/modules/bookmarks';\n\nexport interface RootState {\n  loading: boolean;\n  auth: AuthState;\n  navigation: NavigationState;\n  tabs: TabsState;\n  user: UserState;\n  reader: ReaderState;\n  search: SearchState;\n  settings: SettingsState;\n  bookmarks: BookmarksState;\n  route: any;\n}\n\nVue.use(Vuex);\n\nexport const store = new Vuex.Store({\n  state: <RootState>{\n    loading: false\n  },\n  mutations: {\n    startLoading(state) {\n      state.loading = true;\n    },\n    stopLoading(state) {\n      state.loading = false;\n    }\n  },\n  modules: {\n    auth,\n    navigation,\n    tabs,\n    user,\n    reader,\n    search,\n    settings,\n    bookmarks\n  }\n});\n","import { TranslationStrings } from '@/translations/types';\n\nconst ru: TranslationStrings = {\n  termsAcceptPrefix: 'Я принимаю',\n  howWeProcessData: 'Как обрабатываются ваши данные',\n  termsAcceptanceRequired: 'Чтобы продолжить, примите Пользовательское соглашение.',\n  termsVersionChanged:\n    'Условия обновились. Обновите страницу, прочитайте новую редакцию и подтвердите принятие.',\n  termsReviewTitle: 'Условия использования Vedarama',\n  termsReviewDescription:\n    'Пожалуйста, прочитайте и примите Пользовательское соглашение, чтобы продолжить работу с библиотекой. Для этой редакции подтверждение потребуется один раз.',\n  termsAcceptContinue: 'Принять и продолжить',\n  termsSaving: 'Сохраняем…',\n  requestAccountDeletion: 'Запросить удаление аккаунта',\n  legalDocuments: 'Правовые документы',\n  privacyPolicy: 'Политика конфиденциальности',\n  termsOfUse: 'Пользовательское соглашение',\n  opensInNewTab: 'в новой вкладке',\n  defaultErrorMessage: 'Ошибка соединения. Проверьте сетевое подключение и попробуйте снова.',\n  onLanguageRu: 'на русском',\n  onLanguageEn: 'на английском',\n  onLanguageSt: 'на санскрите',\n  onLanguageCatalogRu: 'на русском',\n  onLanguageCatalogEn: 'на английском',\n  onLanguageCatalogSt: 'на санскрите',\n  russian: 'Русский',\n  english: 'Английский',\n  submit: 'Отправить',\n  save: 'Сохранить',\n  cancel: 'Отменить',\n  all: 'Все',\n  change: 'Изменить',\n  logout: 'Выйти',\n  profile: 'Профиль',\n  close: 'Закрыть',\n  open: 'Открыть',\n  edit: 'Правка',\n  show: 'Показывать',\n  help: 'Помощь',\n  refresh: 'Обновить',\n  navigation: 'Навигация',\n  library: 'Библиотека',\n  search: 'Поиск',\n  continueReading: 'Продолжить',\n  reading: 'Чтение',\n  bookmarks: 'Закладки',\n  bookmark: 'Закладка',\n  addBookmarkHere: 'Положить закладку',\n  moveBookmarkHere: 'Переместить сюда',\n  deleteBookmark: 'Удалить закладку',\n  bookmarkNotePlaceholder: 'Пометка к закладке (необязательно)',\n  moreActions: 'Другие действия',\n  noBookmarks: 'Здесь появятся сохранённые места чтения.',\n  tableOfContents: 'Оглавление',\n  searchInBook: 'Поиск по книге',\n  backToBook: 'Вернуться к книге',\n  backToPreviousText: 'Вернуться к предыдущему тексту',\n  backToReading: 'Вернуться к чтению',\n  connectionLost: 'Интернет-соединение потеряно',\n  connectionLostDescription: 'Некоторые данные могут не загрузиться. Проверьте подключение к сети.',\n  connectionRestored: 'Соединение восстановлено',\n\n  // login\n  loginCaption: 'Вход в систему',\n  yourEmail: 'Е-mail адрес',\n  enterYourEmail: 'Введите e-mail адрес',\n  password: 'Пароль',\n  forgotPassword: 'Забыли пароль?',\n  repeatPassword: 'Пароль еще раз',\n  rememberMe: 'Запомнить меня',\n  signIn: 'Войти',\n  registration: 'Регистрация',\n  registrationVerifyEmail: 'На ваш email отправлена ссылка для подтверждения email.',\n  authorization: 'Авторизация',\n  verifyEmail: 'Подтверждение email',\n  verifyEmailIsNotVerified:\n    'Ваш email не подтвержден. Вы можете повторно отправить ссылку подтверждения на email, указанный при регистрации.',\n  verifyEmailFail: 'Не удалось подтвердить email по запрошенному коду',\n  name: 'Имя',\n  lastName: 'Фамилия',\n  spiritualName: 'Духовное имя',\n  fillIfExists: '(укажите если есть)',\n  accessCode: 'Код доступа',\n  resetPassword: 'Сбросить пароль',\n  token: 'Токен',\n  tooManyRequests: 'Слишком много запросов. Попробуйте обновить страницу чуть позднее.',\n\n  // settings\n  settings: 'Настройки',\n\n  // catalogs\n  catalogsUpdate: 'Обновление каталогов',\n  book: 'Книга',\n  bookInCategories: 'Книга в категориях',\n  books: 'Книги',\n  errorOccurred: 'Произошла ошибка.',\n  tryToRefreshPage: 'Попробуйте обновить страницу.',\n  selectSearchAreaInCatalog: 'Выбрать область поиска в каталоге',\n  showBooksCatalog: 'Показать каталог книг',\n  found: 'Найдено',\n  foundBooks: 'Книг',\n  selectAll: 'Выбрать все',\n  reset: 'Сбросить',\n  collapse: 'Свернуть',\n  collapseAllBranches: 'Свернуть все ветки',\n  catalogSearch: 'Поиск по каталогу',\n\n  filterCategories: 'Категории',\n  filterAuthors: 'Авторы',\n  filterBooks: 'Названия',\n\n  newTab: 'Новая вкладка',\n  useSearch: 'Воспользуйтесь поиском',\n  orOpenBookInCatalog: 'или откройте любую книгу из каталога',\n  above: 'сверху',\n  onLeft: 'слева',\n  noSearchResults: 'К сожалению по вашему запросу ничего не найдено.',\n  changeQuery: 'Попробуйте изменить запрос, или уточнить условия поиска.',\n  downloadFile: 'Скачать файл',\n  read: 'Читать',\n  linkedBooks: 'Связанные книги',\n  otherPublishings: 'Другие издания',\n  outputData: 'Выходные данные',\n  bookTitle: 'Название',\n  bookOriginalTitle: 'Оригинальное название',\n  bookTranslation: 'Язык перевода',\n  translator: 'Переводчик',\n  editor: 'Редактор',\n  publisher: 'Издательство',\n  publishingYear: 'Год издания',\n  pagesAmount: 'Количество страниц',\n  printRun: 'Тираж',\n  author: 'Автор',\n  authors: 'Авторы',\n  commentator: 'Комментатор',\n  commentators: 'Комментаторы',\n  translation: 'Перевод',\n  wordByWordTranslation: 'Пословный перевод',\n  comment: 'Комментарий',\n  sanskrit: 'Санскрит',\n  diacritic: 'Диакритика',\n  advancedSearch: 'Расширенный поиск',\n  history: 'История',\n  inBookOnly: 'Только по книге',\n  booksSelected: 'Выбрано книг',\n  searchScope: 'Область поиска',\n  searchEverywhere: 'Везде',\n  searchPoems: 'Стихи',\n  resetSettings: 'Сбросить настройки',\n  exactPhrase: 'Точная фраза',\n  considerDiacritics: 'Учитывать дикритику',\n  equalizeWriting: 'Уравнять написание',\n  searchOperatorsHelper: 'Справочник операторов поиска',\n  aboutBook: 'О книге',\n  bookSection: 'Раздел',\n  bookChapter: 'Глава',\n  bookPoem: 'Стих',\n  colorTheme: 'Цветовой режим',\n  colorThemeLight: 'Светлая',\n  colorThemeMixed: 'Мягкая',\n  colorThemeDark: 'Тёмная',\n  scale: 'Масштаб',\n  clearList: 'Очистить список',\n  enterNewAddress: 'Для изменения введите новый адрес в поле',\n  newPassword: 'Новый пароль',\n  repeatNewPassword: 'Новый пароль еще раз',\n  toChangePasswordEnterNewPassword: 'Для изменения пароля введите новый пароль в каждое поле',\n  enterPersonalData: 'Изменить личные данные',\n  changePassword: 'Изменить пароль',\n  note: 'Примечание',\n\n  exitReadingMode: 'Выйти из режима чтения',\n  presentationMode: 'Режим показа',\n  exitPresentationMode: 'Завершить показ',\n  presentationSettings: 'Настройки показа',\n  fitToScreen: 'Вместить на экран',\n  previousSection: 'Предыдущий текст',\n  nextSection: 'Следующий текст',\n  textSettings: 'Настройки текста',\n  logOutAreYouSure: 'Вы действительно хотите выйти из системы?',\n  news: 'Новости',\n  recentlyViewedBooks: 'Недавно просмотренные книги',\n  searchQueries: 'Поисковые запросы',\n\n  enterSearchQuery: 'Введите запрос',\n  inNewTab: 'В новой вкладке',\n  inCurrentTab: 'В текущей',\n  interfaceLanguage: 'Язык интерфейса',\n  structureScale: 'Плотность каталога',\n  textScale: 'Размер текста (масштаб)',\n  textExample: 'Пример текста',\n  tablet: 'Крупно',\n  pc: 'Компактно',\n  auto: 'Авто',\n  booksInWhichPoemWasMentioned: 'Книги, в которых упоминается стих',\n  searchHistory: 'История поиска',\n  searchHistoryEmpty: 'История поиска пока пуста',\n  allResults: 'Все результаты',\n  showAllList: 'Смотреть весь список',\n  showOnEnglishLanguage: 'Показать на английском языке',\n  showOnRussianLanguage: 'Показать на русском языке',\n  textInOtherBooks: 'Текст <b>%bookName% — %currentSectionSlug%</b> в других книгах',\n  textInOtherBooksAction: 'Этот стих в других книгах',\n  searchHelp: `<div class=\"help-col\">\n      <p>Логические операторы: AND — и, OR — или, NOT — не</p>\n      <div class=\"help-example\">Примеры:</div>\n      <p>\n        <b>А AND Б</b> — содержит А и Б<br />\n        <b>А OR Б</b> — содержит или А или Б<br />\n        <b>NOT А</b> — не содержит А\n      </p>\n      <br />\n      <p>Используйте ? для замены одного символа в слове</p>\n      <div class=\"help-example\">Примеры:</div>\n      <p><b>Ра?а</b> — Рага, Рама, Рака...</p>\n    </div>\n    <div class=\"help-col\">\n      <p>\n        В пределах N слов в строгом порядке: “А Б В”/N <br />\n        или не в строгом: “А Б В”@N\n      </p>\n      <div class=\"help-example\">Примеры:</div>\n      <p>\n        “А Б”/5 — А Б на расстоянии 5 слов<br />\n        “А Б”@5 — А Б или Б А на расстоянии 5 слов\n      </p>\n      <br />\n      <p>Используйте * для нескольких символов</p>\n      <div class=\"help-example\">Примеры:</div>\n      <p>Гаур* — Гаури, Гаура, Гауранга... *швара — Ишвара, Парамешвара</p>\n    </div>`\n};\n\nexport default ru;\n","import { TranslationStrings } from '@/translations/types';\n\nconst en: TranslationStrings = {\n  termsAcceptPrefix: 'I accept the',\n  howWeProcessData: 'How we process your data',\n  termsAcceptanceRequired: 'Please accept the Terms of Use to continue.',\n  termsVersionChanged: 'The terms have changed. Reload this page, read the new version and accept it.',\n  termsReviewTitle: 'Using Vedarama',\n  termsReviewDescription:\n    'Please read and accept the Terms of Use to continue to the library. You only need to confirm once for this version.',\n  termsAcceptContinue: 'Accept and continue',\n  termsSaving: 'Saving…',\n  requestAccountDeletion: 'Request account deletion',\n  legalDocuments: 'Legal documents',\n  privacyPolicy: 'Privacy policy',\n  termsOfUse: 'Terms of use',\n  opensInNewTab: 'opens in a new tab',\n  defaultErrorMessage: 'Ошибка соединения. Проверьте сетевое подключение и попробуйте снова.',\n  onLanguageRu: 'on Russian',\n  onLanguageEn: 'on English',\n  onLanguageSt: 'on Sanskrit',\n  onLanguageCatalogRu: 'Russian',\n  onLanguageCatalogEn: 'English',\n  onLanguageCatalogSt: 'Sanskrit',\n  russian: 'Russian',\n  english: 'English',\n  submit: 'Submit',\n  save: 'Save',\n  cancel: 'Cancel',\n  all: 'All',\n  change: 'Change',\n  logout: 'Log out',\n  profile: 'Profile',\n  close: 'Close',\n  open: 'Open',\n  edit: 'Edit',\n  show: 'Show',\n  refresh: 'Refresh',\n  navigation: 'Navigation',\n  library: 'Library',\n  search: 'Search',\n  continueReading: 'Continue',\n  reading: 'Reading',\n  bookmarks: 'Bookmarks',\n  bookmark: 'Bookmark',\n  addBookmarkHere: 'Bookmark this place',\n  moveBookmarkHere: 'Move here',\n  deleteBookmark: 'Delete bookmark',\n  bookmarkNotePlaceholder: 'Bookmark note (optional)',\n  moreActions: 'More actions',\n  noBookmarks: 'Your saved reading places will appear here.',\n  tableOfContents: 'Contents',\n  searchInBook: 'Search this book',\n  backToBook: 'Back to book',\n  backToPreviousText: 'Back to the previous text',\n  backToReading: 'Back to reading',\n  connectionLost: 'Internet connection lost',\n  connectionLostDescription: 'Some data may not load. Check your network connection.',\n  connectionRestored: 'Connection restored',\n\n  // login\n  loginCaption: 'Login',\n  yourEmail: 'Your e-mail',\n  enterYourEmail: 'Enter your e-mail',\n  password: 'Password',\n  forgotPassword: 'Forgot password?',\n  repeatPassword: 'Repeat password',\n  rememberMe: 'Remember me',\n  signIn: 'Sign in',\n  registration: 'Registration',\n  registrationVerifyEmail: 'Confirmation link has been sent to your email.',\n  authorization: 'Authorization',\n  verifyEmail: 'Verify email',\n  verifyEmailIsNotVerified:\n    'Your email is not verified. You can resend verification link to the email specified in registration.',\n  verifyEmailFail: 'Could not verify email by requested code',\n  name: 'Name',\n  lastName: 'Last Name',\n  spiritualName: 'Spiritual Name',\n  fillIfExists: '(if you have one)',\n  accessCode: 'Access code',\n  resetPassword: 'Reset password',\n  token: 'Token',\n  help: 'Help',\n  tooManyRequests: 'Too many requests. Please try to refresh the page a bit later.',\n\n  // settings\n  settings: 'Settings',\n\n  // catalogs\n  catalogsUpdate: 'Catalogs update',\n  book: 'Book',\n  bookInCategories: 'Book in categories',\n  books: 'Books',\n  errorOccurred: 'Error occurred.',\n  tryToRefreshPage: 'Please, try to refresh the page',\n  selectSearchAreaInCatalog: 'Select search area in the catalog',\n  showBooksCatalog: 'Show books catalog',\n  found: 'Found',\n  foundBooks: 'Books',\n  selectAll: 'Select all',\n  reset: 'Reset',\n  collapse: 'Collapse',\n  collapseAllBranches: 'Collapse all',\n  catalogSearch: 'Catalog search',\n\n  filterCategories: 'Categories',\n  filterAuthors: 'Authors',\n  filterBooks: 'Books',\n\n  newTab: 'New tab',\n  useSearch: 'Please try to use search',\n  orOpenBookInCatalog: 'or open a book in the catalog',\n  above: 'above',\n  onLeft: 'on the left side',\n  noSearchResults: 'Unfortunately your search returned no results.',\n  changeQuery: 'Please try to change search query or specify search conditions',\n  downloadFile: 'Download file',\n  read: 'Read',\n  linkedBooks: 'Linked books',\n  otherPublishings: 'Other publishings',\n  outputData: 'Output data',\n  bookTitle: 'Title',\n  bookOriginalTitle: 'Original title',\n  bookTranslation: 'Translation language',\n  translator: 'Translator',\n  editor: 'Editor',\n  publisher: 'Publisher',\n  publishingYear: 'Publishing year',\n  pagesAmount: 'Pages amount',\n  printRun: 'Print run',\n  author: 'Author',\n  authors: 'Authors',\n  commentator: 'Commentator',\n  commentators: 'Commentators',\n  translation: 'Translation',\n  wordByWordTranslation: 'Word by word translation',\n  comment: 'Comment',\n  sanskrit: 'Sanskrit',\n  diacritic: 'Diacritic',\n  advancedSearch: 'Advanced search',\n  history: 'History',\n  inBookOnly: 'Search in book',\n  booksSelected: 'Books selected',\n  searchScope: 'Search scope',\n  searchEverywhere: 'Everywhere',\n  searchPoems: 'Poems',\n  resetSettings: 'Reset settings',\n  exactPhrase: 'Exact phrase',\n  considerDiacritics: 'Consider diacritics',\n  equalizeWriting: 'Equalize writing',\n  searchOperatorsHelper: 'Search operators helper',\n  aboutBook: 'About book',\n  bookSection: 'Section',\n  bookChapter: 'Chapter',\n  bookPoem: 'Poem',\n  colorTheme: 'Color theme',\n  colorThemeLight: 'Light',\n  colorThemeMixed: 'Soft',\n  colorThemeDark: 'Dark',\n  scale: 'Scale',\n  clearList: 'Clear list',\n  enterNewAddress: 'Enter new address',\n  newPassword: 'New password',\n  repeatNewPassword: 'New password again',\n  toChangePasswordEnterNewPassword: 'Enter new password in each field',\n  enterPersonalData: 'Edit personal data',\n  changePassword: 'Change password',\n  note: 'Note',\n\n  exitReadingMode: 'Exit reading mode',\n  presentationMode: 'Presentation mode',\n  exitPresentationMode: 'End presentation',\n  presentationSettings: 'Presentation settings',\n  fitToScreen: 'Fit to screen',\n  previousSection: 'Previous text',\n  nextSection: 'Next text',\n  textSettings: 'Text settings',\n  logOutAreYouSure: 'Are you sure you want to log out?',\n  news: 'News',\n  recentlyViewedBooks: 'Recently viewed books',\n  searchQueries: 'Search queries',\n\n  enterSearchQuery: 'Enter search query',\n  inNewTab: 'In new tab',\n  inCurrentTab: 'In current',\n  interfaceLanguage: 'Interface language',\n  structureScale: 'Catalog density',\n  textScale: 'Text scale',\n  textExample: 'Text preview',\n  tablet: 'Comfortable',\n  pc: 'Compact',\n  auto: 'Auto',\n  booksInWhichPoemWasMentioned: 'Books, in which poem was mentioned',\n  searchHistory: 'Search history',\n  searchHistoryEmpty: 'Your search history is empty',\n  allResults: 'All results',\n  showAllList: 'Show all list',\n  showOnEnglishLanguage: 'Show on english language',\n  showOnRussianLanguage: 'Show on russian language',\n  textInOtherBooks: 'Text <b>%bookName% — %currentSectionSlug%</b> in other books',\n  textInOtherBooksAction: 'This verse in other books',\n  searchHelp: `<div class=\"help-col\">\n      <p>Logic operators: AND, OR, NOT</p>\n      <div class=\"help-example\">Examples:</div>\n      <p>\n        <b>A AND B</b> — includes A and B<br />\n        <b>A OR B</b> — includes either A or B<br />\n        <b>NOT A</b> — do not includes A\n      </p>\n      <br />\n      <p>Use ? to replace a letter in a word</p>\n      <div class=\"help-example\">Examples:</div>\n      <p><b>Ra?a</b> — Raga, Rama, Raka...</p>\n    </div>\n    <div class=\"help-col\">\n      <p>\n        In N words in strict order: “A B C”/N <br />\n        or not strict order “A B C”@N\n      </p>\n      <div class=\"help-example\">Examples:</div>\n      <p>\n        “A B”/5 — A B in 5 words distance<br />\n        “А B”@5 — A B or B A in 5 words distance\n      </p>\n      <br />\n      <p>Use * for several letters</p>\n      <div class=\"help-example\">Examples:</div>\n      <p>Gaur* — Gauri, Gaura, Gauranga... *shvara — Ishvara, Parameshvara</p>\n    </div>`\n};\n\nexport default en;\n","import { TranslationStrings } from '@/translations/types';\nimport ru from './ru';\nimport en from './en';\n\ninterface Translations {\n  [language: string]: TranslationStrings;\n}\n\nexport const translations: Translations = { ru, en };\n","import { store } from '@/store';\nimport { LANGUAGE_CODE_DEFAULT } from '@/constants';\nimport { translations } from '@/translations';\nimport { TranslationStrings } from '@/translations/types';\n\nexport const getTranslation = (key: keyof TranslationStrings) => {\n  const interfaceLanguage = store.state.reader.interfaceLanguage || LANGUAGE_CODE_DEFAULT;\n\n  return translations[interfaceLanguage][key] || '';\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport IconInfo from '@/assets/icons/info.svg';\nimport { getTranslation } from '@/services/Translation';\n\ntype ConnectionState = '' | 'offline' | 'restored';\n\n@Component({ components: { IconInfo } })\nexport default class ConnectionStatus extends Vue {\n  status: ConnectionState = '';\n  wasOffline = false;\n  restoreTimer?: number;\n  getTranslation = getTranslation;\n\n  mounted() {\n    window.addEventListener('offline', this.handleOffline);\n    window.addEventListener('online', this.handleOnline);\n    if (!window.navigator.onLine) {\n      this.handleOffline();\n    }\n  }\n\n  beforeDestroy() {\n    window.removeEventListener('offline', this.handleOffline);\n    window.removeEventListener('online', this.handleOnline);\n    this.clearRestoreTimer();\n  }\n\n  get title() {\n    this.$store.state.reader.interfaceLanguage;\n    return getTranslation(this.status === 'restored' ? 'connectionRestored' : 'connectionLost');\n  }\n\n  handleOffline() {\n    this.clearRestoreTimer();\n    this.wasOffline = true;\n    this.status = 'offline';\n  }\n\n  handleOnline() {\n    if (!this.wasOffline) {\n      return;\n    }\n    this.wasOffline = false;\n    this.status = 'restored';\n    this.clearRestoreTimer();\n    this.restoreTimer = window.setTimeout(() => {\n      this.status = '';\n      this.restoreTimer = undefined;\n    }, 3200);\n  }\n\n  clearRestoreTimer() {\n    if (this.restoreTimer !== undefined) {\n      window.clearTimeout(this.restoreTimer);\n      this.restoreTimer = undefined;\n    }\n  }\n}\n","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConnectionStatus.vue?vue&type=template&id=2779270b&scoped=true&\"\nimport script from \"./ConnectionStatus.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConnectionStatus.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConnectionStatus.vue?vue&type=style&index=0&id=2779270b&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2779270b\",\n  null\n  \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Loader from './components/ui/Loader.vue';\nimport ConnectionStatus from './components/ui/ConnectionStatus.vue';\nimport Component from 'vue-class-component';\n\n@Component({\n  components: { ConnectionStatus, Loader }\n})\nexport default class App extends Vue {\n  loading: boolean;\n\n  constructor() {\n    super();\n    this.loading = this.$store.state.loading;\n  }\n\n  created() {\n    this.$store.subscribe((mutation, state) => {\n      if (['startLoading', 'stopLoading'].includes(mutation.type)) {\n        this.loading = state.loading;\n      }\n    });\n  }\n}\n","import mod from \"-!../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../.codex-layout-20260909/frontend/node_modules/thread-loader/dist/cjs.js!../../../../.codex-layout-20260909/frontend/node_modules/babel-loader/lib/index.js!../../../../.codex-layout-20260909/frontend/node_modules/ts-loader/index.js??ref--14-3!../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=434fd099&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import Vue from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport { store } from './store';\nimport { sync } from 'vuex-router-sync';\n\nVue.config.productionTip = false;\n\nconst unsync = sync(store, router); // done. Returns an unsync callback fn\n\nnew Vue({\n  router,\n  store,\n  render: h => h(App)\n}).$mount('#app');\n\n// unsync();\n","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRecentBooks.vue?vue&type=style&index=0&id=4d91831c&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRecentBooks.vue?vue&type=style&index=0&id=4d91831c&lang=scss&scoped=true&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewBooks.vue?vue&type=style&index=0&id=2b61ab7c&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewBooks.vue?vue&type=style&index=0&id=2b61ab7c&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarRelated.vue?vue&type=style&index=0&id=6be01c29&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./BottomBarRelated.vue?vue&type=style&index=0&id=6be01c29&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=style&index=0&id=0fa5e6af&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=style&index=0&id=0fa5e6af&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=style&index=0&id=da544bbc&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=style&index=0&id=da544bbc&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileReaderThemePicker.vue?vue&type=style&index=0&id=17e45af7&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileReaderThemePicker.vue?vue&type=style&index=0&id=17e45af7&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=4bb3ac2f&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=4bb3ac2f&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&id=b74f8330&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&id=b74f8330&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionControl.vue?vue&type=style&index=0&id=3727bfc9&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionControl.vue?vue&type=style&index=0&id=3727bfc9&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=style&index=0&id=6d8cedde&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=style&index=0&id=6d8cedde&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Overlay.vue?vue&type=style&index=0&id=47986292&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./Overlay.vue?vue&type=style&index=0&id=47986292&scoped=true&lang=scss&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemEntriesCount.vue?vue&type=style&index=0&id=22d7a447&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./NavItemEntriesCount.vue?vue&type=style&index=0&id=22d7a447&scoped=true&lang=scss&\"","import mod from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHistory.vue?vue&type=style&index=0&id=0b20d2ae&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHistory.vue?vue&type=style&index=0&id=0b20d2ae&lang=scss&scoped=true&\"","import mod from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarkSheet.vue?vue&type=style&index=0&id=c3918418&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../.codex-layout-20260909/frontend/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../.codex-layout-20260909/frontend/node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../.codex-layout-20260909/frontend/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../.codex-layout-20260909/frontend/node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../../.codex-layout-20260909/frontend/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../.codex-layout-20260909/frontend/node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileBookmarkSheet.vue?vue&type=style&index=0&id=c3918418&scoped=true&lang=scss&\""],"sourceRoot":""}