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