{ "version": 3, "sources": ["src/app/settings/_components/settings/settings.component.ts", "src/app/settings/_components/settings/settings.component.html", "src/app/_routes/settings-routing.module.ts"], "sourcesContent": ["import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject} from '@angular/core';\r\nimport {\r\n ChangeAgeRestrictionComponent\r\n} from \"../../../user-settings/change-age-restriction/change-age-restriction.component\";\r\nimport {ChangeEmailComponent} from \"../../../user-settings/change-email/change-email.component\";\r\nimport {ChangePasswordComponent} from \"../../../user-settings/change-password/change-password.component\";\r\nimport {ManageDevicesComponent} from \"../../../user-settings/manage-devices/manage-devices.component\";\r\nimport {ManageOpdsComponent} from \"../../../user-settings/manage-opds/manage-opds.component\";\r\nimport {\r\n ManageScrobblingProvidersComponent\r\n} from \"../../../user-settings/manage-scrobbling-providers/manage-scrobbling-providers.component\";\r\nimport {\r\n ManageUserPreferencesComponent\r\n} from \"../../../user-settings/manga-user-preferences/manage-user-preferences.component\";\r\nimport {NgbNav, NgbNavContent, NgbNavLinkBase} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport {ActivatedRoute, Router, RouterLink} from \"@angular/router\";\r\nimport {\r\n SideNavCompanionBarComponent\r\n} from \"../../../sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component\";\r\nimport {ThemeManagerComponent} from \"../../../user-settings/theme-manager/theme-manager.component\";\r\nimport {TranslocoDirective} from \"@jsverse/transloco\";\r\nimport {ScrobblingHoldsComponent} from \"../../../user-settings/user-holds/scrobbling-holds.component\";\r\nimport {\r\n UserScrobbleHistoryComponent\r\n} from \"../../../_single-module/user-scrobble-history/user-scrobble-history.component\";\r\nimport {UserStatsComponent} from \"../../../statistics/_components/user-stats/user-stats.component\";\r\nimport {SettingsTabId} from \"../../../sidenav/preference-nav/preference-nav.component\";\r\nimport {AsyncPipe} from \"@angular/common\";\r\nimport {AccountService} from \"../../../_services/account.service\";\r\nimport {WikiLink} from \"../../../_models/wiki\";\r\nimport {LicenseComponent} from \"../../../admin/license/license.component\";\r\nimport {ManageEmailSettingsComponent} from \"../../../admin/manage-email-settings/manage-email-settings.component\";\r\nimport {ManageLibraryComponent} from \"../../../admin/manage-library/manage-library.component\";\r\nimport {ManageMediaSettingsComponent} from \"../../../admin/manage-media-settings/manage-media-settings.component\";\r\nimport {ManageSettingsComponent} from \"../../../admin/manage-settings/manage-settings.component\";\r\nimport {ManageSystemComponent} from \"../../../admin/manage-system/manage-system.component\";\r\nimport {ManageTasksSettingsComponent} from \"../../../admin/manage-tasks-settings/manage-tasks-settings.component\";\r\nimport {ManageUsersComponent} from \"../../../admin/manage-users/manage-users.component\";\r\nimport {ServerStatsComponent} from \"../../../statistics/_components/server-stats/server-stats.component\";\r\nimport {SettingFragmentPipe} from \"../../../_pipes/setting-fragment.pipe\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {tap} from \"rxjs\";\r\nimport {\r\n KavitaplusMetadataBreakdownStatsComponent\r\n} from \"../../../statistics/_components/kavitaplus-metadata-breakdown-stats/kavitaplus-metadata-breakdown-stats.component\";\r\nimport {ManageKavitaplusComponent} from \"../../../admin/manage-kavitaplus/manage-kavitaplus.component\";\r\nimport {ManageScrobblingComponent} from \"../../../admin/manage-scrobling/manage-scrobbling.component\";\r\nimport {ManageMediaIssuesComponent} from \"../../../admin/manage-media-issues/manage-media-issues.component\";\r\nimport {\r\n ManageCustomizationComponent\r\n} from \"../../../sidenav/_components/manage-customization/manage-customization.component\";\r\nimport {\r\n ImportMalCollectionComponent\r\n} from \"../../../collections/_components/import-mal-collection/import-mal-collection.component\";\r\nimport {ImportCblComponent} from \"../../../reading-list/_components/import-cbl/import-cbl.component\";\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n standalone: true,\r\n imports: [\r\n ChangeAgeRestrictionComponent,\r\n ChangeEmailComponent,\r\n ChangePasswordComponent,\r\n ManageDevicesComponent,\r\n ManageOpdsComponent,\r\n ManageScrobblingProvidersComponent,\r\n ManageUserPreferencesComponent,\r\n NgbNav,\r\n NgbNavContent,\r\n NgbNavLinkBase,\r\n RouterLink,\r\n SideNavCompanionBarComponent,\r\n ThemeManagerComponent,\r\n TranslocoDirective,\r\n ScrobblingHoldsComponent,\r\n UserScrobbleHistoryComponent,\r\n UserStatsComponent,\r\n AsyncPipe,\r\n LicenseComponent,\r\n ManageEmailSettingsComponent,\r\n ManageLibraryComponent,\r\n ManageMediaSettingsComponent,\r\n ManageSettingsComponent,\r\n ManageSystemComponent,\r\n ManageTasksSettingsComponent,\r\n ManageUsersComponent,\r\n ServerStatsComponent,\r\n SettingFragmentPipe,\r\n KavitaplusMetadataBreakdownStatsComponent,\r\n ManageKavitaplusComponent,\r\n ManageScrobblingComponent,\r\n ManageMediaIssuesComponent,\r\n ManageCustomizationComponent,\r\n ImportMalCollectionComponent,\r\n ImportCblComponent\r\n ],\r\n templateUrl: './settings.component.html',\r\n styleUrl: './settings.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SettingsComponent {\r\n\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly router = inject(Router);\r\n protected readonly accountService = inject(AccountService);\r\n\r\n protected readonly SettingsTabId = SettingsTabId;\r\n protected readonly WikiLink = WikiLink;\r\n\r\n fragment: SettingsTabId = SettingsTabId.Account;\r\n hasActiveLicense = false;\r\n\r\n constructor() {\r\n this.route.fragment.pipe(tap(frag => {\r\n if (frag === null) {\r\n frag = SettingsTabId.Account;\r\n }\r\n if (!Object.values(SettingsTabId).includes(frag as SettingsTabId)) {\r\n this.router.navigate(['home']);\r\n return;\r\n }\r\n this.fragment = frag as SettingsTabId;\r\n\r\n //this.titleService.setTitle('Kavita - ' + translate('admin-dashboard.title'));\r\n\r\n this.cdRef.markForCheck();\r\n }), takeUntilDestroyed(this.destroyRef)).subscribe();\r\n\r\n this.accountService.hasValidLicense$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(res => {\r\n if (res) {\r\n this.hasActiveLicense = true;\r\n this.cdRef.markForCheck();\r\n }\r\n });\r\n }\r\n}\r\n", "