mirror of
https://github.com/booklore-app/booklore.git
synced 2026-02-18 00:17:53 +01:00
Update Angular dependencies to latest versions (#1366)
This commit is contained in:
3295
booklore-ui/package-lock.json
generated
3295
booklore-ui/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -12,14 +12,14 @@
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "^20.1.6",
|
||||
"@angular/common": "^20.1.6",
|
||||
"@angular/compiler": "^20.1.6",
|
||||
"@angular/core": "^20.1.6",
|
||||
"@angular/forms": "^20.1.6",
|
||||
"@angular/platform-browser": "^20.1.6",
|
||||
"@angular/platform-browser-dynamic": "^20.1.6",
|
||||
"@angular/router": "^20.1.6",
|
||||
"@angular/animations": "^20.3.5",
|
||||
"@angular/common": "^20.3.5",
|
||||
"@angular/compiler": "^20.3.5",
|
||||
"@angular/core": "^20.3.5",
|
||||
"@angular/forms": "^20.3.5",
|
||||
"@angular/platform-browser": "^20.3.5",
|
||||
"@angular/platform-browser-dynamic": "^20.3.5",
|
||||
"@angular/router": "^20.3.5",
|
||||
"@iharbeck/ngx-virtual-scroller": "^19.0.1",
|
||||
"@primeng/themes": "^20.0.1",
|
||||
"@stomp/rx-stomp": "^2.0.1",
|
||||
@@ -45,16 +45,16 @@
|
||||
"tslib": "^2.8.1",
|
||||
"ws": "^8.18.2",
|
||||
"zone.js": "^0.15.1",
|
||||
"@angular/cdk": "^20.2.2"
|
||||
"@angular/cdk": "^20.2.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^20.1.5",
|
||||
"@angular/cli": "^20.1.5",
|
||||
"@angular/compiler-cli": "^20.1.6",
|
||||
"@angular-devkit/build-angular": "^20.3.6",
|
||||
"@angular/cli": "^20.3.6",
|
||||
"@angular/compiler-cli": "^20.3.5",
|
||||
"@tailwindcss/typography": "^0.5.16",
|
||||
"@types/jasmine": "^5.1.8",
|
||||
"@types/showdown": "^2.0.6",
|
||||
"angular-eslint": "^20.1.1",
|
||||
"angular-eslint": "^20.4.0",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"eslint": "^9.33.0",
|
||||
"jasmine-core": "^5.7.1",
|
||||
@@ -64,7 +64,7 @@
|
||||
"karma-jasmine": "^5.1.0",
|
||||
"karma-jasmine-html-reporter": "^2.1.0",
|
||||
"tailwindcss": "3.4.17",
|
||||
"typescript": "~5.8.2",
|
||||
"typescript": "~5.9.3",
|
||||
"typescript-eslint": "^8.39.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ export class BookDialogHelperService {
|
||||
|
||||
private dialogService = inject(DialogService);
|
||||
|
||||
openShelfAssigner(bookIds: Set<number>): DynamicDialogRef {
|
||||
openShelfAssigner(bookIds: Set<number>): DynamicDialogRef | null {
|
||||
return this.dialogService.open(ShelfAssignerComponent, {
|
||||
header: `Update Books' Shelves`,
|
||||
modal: true,
|
||||
@@ -31,7 +31,7 @@ export class BookDialogHelperService {
|
||||
});
|
||||
}
|
||||
|
||||
openLockUnlockMetadataDialog(bookIds: Set<number>): DynamicDialogRef {
|
||||
openLockUnlockMetadataDialog(bookIds: Set<number>): DynamicDialogRef | null {
|
||||
const count = bookIds.size;
|
||||
return this.dialogService.open(LockUnlockMetadataDialogComponent, {
|
||||
header: `Lock or Unlock Metadata for ${count} Selected Book${count > 1 ? 's' : ''}`,
|
||||
@@ -43,7 +43,7 @@ export class BookDialogHelperService {
|
||||
});
|
||||
}
|
||||
|
||||
openMetadataRefreshDialog(bookIds: Set<number>): DynamicDialogRef {
|
||||
openMetadataRefreshDialog(bookIds: Set<number>): DynamicDialogRef | null {
|
||||
return this.dialogService.open(MultiBookMetadataFetchComponent, {
|
||||
header: 'Metadata Refresh Options',
|
||||
modal: true,
|
||||
@@ -55,7 +55,7 @@ export class BookDialogHelperService {
|
||||
});
|
||||
}
|
||||
|
||||
openBulkMetadataEditDialog(bookIds: Set<number>): DynamicDialogRef {
|
||||
openBulkMetadataEditDialog(bookIds: Set<number>): DynamicDialogRef | null {
|
||||
return this.dialogService.open(BulkMetadataUpdateComponent, {
|
||||
header: 'Bulk Edit Metadata',
|
||||
modal: true,
|
||||
@@ -71,7 +71,7 @@ export class BookDialogHelperService {
|
||||
});
|
||||
}
|
||||
|
||||
openMultibookMetadataEditorDialog(bookIds: Set<number>): DynamicDialogRef {
|
||||
openMultibookMetadataEditorDialog(bookIds: Set<number>): DynamicDialogRef | null {
|
||||
return this.dialogService.open(MultiBookMetadataEditorComponent, {
|
||||
header: 'Bulk Edit Metadata',
|
||||
showHeader: false,
|
||||
|
||||
@@ -131,7 +131,7 @@ export class BookBrowserComponent implements OnInit {
|
||||
entityOptions: MenuItem[] | undefined;
|
||||
selectedBooks = new Set<number>();
|
||||
isDrawerVisible = false;
|
||||
dynamicDialogRef: DynamicDialogRef | undefined;
|
||||
dynamicDialogRef: DynamicDialogRef | undefined | null;
|
||||
EntityType = EntityType;
|
||||
currentFilterLabel: string | null = null;
|
||||
rawFilterParamFromUrl: string | null = null;
|
||||
@@ -542,7 +542,7 @@ export class BookBrowserComponent implements OnInit {
|
||||
|
||||
openShelfAssigner(): void {
|
||||
this.dynamicDialogRef = this.dialogHelperService.openShelfAssigner(this.selectedBooks);
|
||||
this.dynamicDialogRef.onClose.subscribe(() => {
|
||||
this.dynamicDialogRef?.onClose.subscribe(() => {
|
||||
this.selectedBooks = new Set<number>();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ import {ProgressSpinner} from 'primeng/progressspinner';
|
||||
standalone: true
|
||||
})
|
||||
export class MainDashboardComponent implements OnInit {
|
||||
ref: DynamicDialogRef | undefined;
|
||||
ref: DynamicDialogRef | undefined | null;
|
||||
|
||||
private bookService = inject(BookService);
|
||||
private dialogService = inject(DialogService);
|
||||
|
||||
@@ -30,7 +30,7 @@ export class LibraryCreatorComponent implements OnInit {
|
||||
mode!: string;
|
||||
library!: Library | undefined;
|
||||
editModeLibraryName: string = '';
|
||||
directoryPickerDialogRef!: DynamicDialogRef<DirectoryPickerComponent>;
|
||||
directoryPickerDialogRef!: DynamicDialogRef<DirectoryPickerComponent> | null;
|
||||
watch: boolean = false;
|
||||
scanMode: LibraryScanMode = 'FILE_AS_BOOK';
|
||||
defaultBookFormat: BookFileType | undefined = undefined;
|
||||
@@ -81,7 +81,7 @@ export class LibraryCreatorComponent implements OnInit {
|
||||
contentStyle: {overflow: 'hidden'},
|
||||
baseZIndex: 10
|
||||
});
|
||||
this.directoryPickerDialogRef.onClose.subscribe((selectedFolders: string[] | null) => {
|
||||
this.directoryPickerDialogRef?.onClose.subscribe((selectedFolders: string[] | null) => {
|
||||
if (selectedFolders && selectedFolders.length > 0) {
|
||||
selectedFolders.forEach(folder => {
|
||||
if (!this.folders.includes(folder)) {
|
||||
|
||||
@@ -676,7 +676,7 @@ export class MetadataEditorComponent implements OnInit {
|
||||
},
|
||||
});
|
||||
|
||||
ref.onClose.subscribe((result) => {
|
||||
ref?.onClose.subscribe((result) => {
|
||||
if (result) {
|
||||
this.metadataForm.get("thumbnailUrl")?.setValue(result);
|
||||
this.onSave();
|
||||
|
||||
@@ -31,7 +31,7 @@ import {UserService} from '../../user-management/user.service';
|
||||
export class EmailV2ProviderComponent implements OnInit {
|
||||
emailProviders: EmailProvider[] = [];
|
||||
editingProviderIds: number[] = [];
|
||||
ref: DynamicDialogRef | undefined;
|
||||
ref: DynamicDialogRef | undefined | null;
|
||||
private dialogService = inject(DialogService);
|
||||
private emailProvidersService = inject(EmailV2ProviderService);
|
||||
private messageService = inject(MessageService);
|
||||
@@ -130,7 +130,7 @@ export class EmailV2ProviderComponent implements OnInit {
|
||||
closable: true,
|
||||
style: {position: 'absolute', top: '15%'},
|
||||
});
|
||||
this.ref.onClose.subscribe((result) => {
|
||||
this.ref?.onClose.subscribe((result) => {
|
||||
if (result) {
|
||||
this.loadEmailProviders();
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ import {CreateEmailRecipientDialogComponent} from '../create-email-recipient-dia
|
||||
export class EmailV2RecipientComponent implements OnInit {
|
||||
recipientEmails: EmailRecipient[] = [];
|
||||
editingRecipientIds: number[] = [];
|
||||
ref: DynamicDialogRef | undefined;
|
||||
ref: DynamicDialogRef | undefined | null;
|
||||
private dialogService = inject(DialogService);
|
||||
private emailRecipientService = inject(EmailV2RecipientService);
|
||||
private messageService = inject(MessageService);
|
||||
@@ -117,7 +117,7 @@ export class EmailV2RecipientComponent implements OnInit {
|
||||
closable: true,
|
||||
style: {position: 'absolute', top: '15%'},
|
||||
});
|
||||
this.ref.onClose.subscribe((result) => {
|
||||
this.ref?.onClose.subscribe((result) => {
|
||||
if (result) {
|
||||
this.loadRecipientEmails();
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ import {Tooltip} from 'primeng/tooltip';
|
||||
styleUrls: ['./user-management.component.scss'],
|
||||
})
|
||||
export class UserManagementComponent implements OnInit, OnDestroy {
|
||||
ref: DynamicDialogRef | undefined;
|
||||
ref: DynamicDialogRef | undefined | null;
|
||||
private dialogService = inject(DialogService);
|
||||
private userService = inject(UserService);
|
||||
private libraryService = inject(LibraryService);
|
||||
@@ -111,7 +111,7 @@ export class UserManagementComponent implements OnInit, OnDestroy {
|
||||
closable: true,
|
||||
style: {position: 'absolute', top: '15%'},
|
||||
});
|
||||
this.ref.onClose.subscribe((result) => {
|
||||
this.ref?.onClose.subscribe((result) => {
|
||||
if (result) {
|
||||
this.loadUsers();
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ export class DuplicateFilesNotificationComponent implements OnDestroy {
|
||||
displayDialog = false;
|
||||
|
||||
private duplicateFileService = inject(DuplicateFileService);
|
||||
private ref: DynamicDialogRef | undefined;
|
||||
private ref: DynamicDialogRef | undefined | null;
|
||||
|
||||
duplicateFiles$ = this.duplicateFileService.duplicateFiles$;
|
||||
duplicateFilesCount$: Observable<number> = this.duplicateFiles$.pipe(
|
||||
@@ -48,7 +48,7 @@ export class DuplicateFilesNotificationComponent implements OnDestroy {
|
||||
}
|
||||
});
|
||||
|
||||
this.ref.onClose.subscribe((result: any) => {
|
||||
this.ref?.onClose.subscribe((result: any) => {
|
||||
if (result) {
|
||||
// Handle any result from dialog if needed
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ export class AppMenuComponent implements OnInit {
|
||||
magicShelfMenu$: Observable<any> | undefined;
|
||||
|
||||
versionInfo: AppVersion | null = null;
|
||||
dynamicDialogRef: DynamicDialogRef | undefined;
|
||||
dynamicDialogRef: DynamicDialogRef | undefined | null;
|
||||
|
||||
private libraryService = inject(LibraryService);
|
||||
private shelfService = inject(ShelfService);
|
||||
|
||||
@@ -9,7 +9,7 @@ export class IconPickerService {
|
||||
|
||||
open(): Observable<string> {
|
||||
const isMobile = window.innerWidth <= 768;
|
||||
const ref: DynamicDialogRef = this.dialog.open(IconPickerComponent, {
|
||||
const ref: DynamicDialogRef | null = this.dialog.open(IconPickerComponent, {
|
||||
header: 'Choose an Icon',
|
||||
modal: true,
|
||||
closable: true,
|
||||
@@ -22,6 +22,6 @@ export class IconPickerService {
|
||||
minWidth: isMobile ? '90vw' : '800px',
|
||||
}
|
||||
});
|
||||
return ref.onClose as Observable<string>;
|
||||
return ref!.onClose as Observable<string>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ export class DialogLauncherService {
|
||||
|
||||
dialogService = inject(DialogService);
|
||||
|
||||
open(options: { component: any; header: string; top?: string; width?: string }): DynamicDialogRef {
|
||||
open(options: { component: any; header: string; top?: string; width?: string }): DynamicDialogRef | null {
|
||||
const isMobile = window.innerWidth <= 768;
|
||||
const {component, header, top, width} = options;
|
||||
return this.dialogService.open(component, {
|
||||
|
||||
Reference in New Issue
Block a user