1
0
mirror of https://github.com/bpatrik/pigallery2.git synced 2025-11-29 22:48:28 +02:00

upgrade to angular 19

This commit is contained in:
Patrik J. Braun
2025-07-28 01:22:39 +02:00
parent ec1e1b9df6
commit bf7ec1c0a3
52 changed files with 4431 additions and 2648 deletions

View File

@@ -13,8 +13,7 @@ import { RouterOutlet } from '@angular/router';
selector: 'app-pi-gallery2',
template: `
<router-outlet></router-outlet>`,
standalone: true,
imports: [RouterOutlet],
imports: [RouterOutlet]
})
export class AppComponent implements OnInit, OnDestroy {
private subscription: Subscription = null;

View File

@@ -14,8 +14,7 @@ import { SafeHtmlPipe } from './pipes/SafeHTMLPipe';
[attr.viewBox]="Config.Server.svgIcon.viewBox || '0 0 512 512'"
[innerHtml]="Config.Server.svgIcon.items | safeHtml">
</svg>`,
standalone: true,
imports: [SafeHtmlPipe],
imports: [SafeHtmlPipe]
})
export class IconComponent {

View File

@@ -27,7 +27,6 @@ import { StringifyEnum } from '../../pipes/StringifyEnum';
selector: 'app-admin',
templateUrl: './admin.component.html',
styleUrls: ['./admin.component.css'],
standalone: true,
imports: [
FrameComponent,
NgIf,
@@ -46,7 +45,7 @@ import { StringifyEnum } from '../../pipes/StringifyEnum';
JsonPipe,
DatePipe,
StringifyEnum,
],
]
})
export class AdminComponent implements OnInit, AfterViewInit {
@ViewChildren('setting') settingsComponents: QueryList<ISettingsComponent>;

View File

@@ -18,13 +18,12 @@ import { NgIconComponent } from '@ng-icons/core';
templateUrl: './album.component.html',
styleUrls: ['./album.component.css'],
providers: [RouterLink],
standalone: true,
imports: [
RouterLink,
NgIf,
IconComponent,
NgIconComponent,
],
]
})
export class AlbumComponent implements OnInit, OnDestroy {
@Input() album: AlbumBaseDTO;

View File

@@ -18,7 +18,6 @@ import { SavedSearchPopupComponent } from './saved-search-popup/saved-search-pop
selector: 'app-albums',
templateUrl: './albums.component.html',
styleUrls: ['./albums.component.css'],
standalone: true,
imports: [
FrameComponent,
NgFor,
@@ -29,7 +28,7 @@ import { SavedSearchPopupComponent } from './saved-search-popup/saved-search-pop
GallerySearchQueryBuilderComponent,
SavedSearchPopupComponent,
AsyncPipe,
],
]
})
export class AlbumsComponent implements OnInit {
@ViewChild('container', {static: true}) container: ElementRef;

View File

@@ -9,8 +9,7 @@ import { JsonPipe } from '@angular/common';
selector: 'app-saved-search-popup-btn',
templateUrl: './saved-search-popup.component.html',
styleUrls: ['./saved-search-popup.component.css'],
standalone: true,
imports: [NgIconComponent, JsonPipe],
imports: [NgIconComponent, JsonPipe]
})
export class SavedSearchPopupComponent {
@Input() disabled: boolean;

View File

@@ -24,7 +24,6 @@ interface GroupedDuplicate {
selector: 'app-duplicate',
templateUrl: './duplicates.component.html',
styleUrls: ['./duplicates.component.css'],
standalone: true,
imports: [
FrameComponent,
NgIf,
@@ -33,7 +32,7 @@ interface GroupedDuplicate {
DuplicatesPhotoComponent,
DatePipe,
FileSizePipe,
],
]
})
export class DuplicateComponent implements OnDestroy, OnInit {
directoryGroups: GroupedDuplicate[] = null;

View File

@@ -9,8 +9,7 @@ import { PopoverDirective } from 'ngx-bootstrap/popover';
selector: 'app-duplicates-photo',
templateUrl: './photo.duplicates.component.html',
styleUrls: ['./photo.duplicates.component.css'],
standalone: true,
imports: [NgIf, PopoverDirective],
imports: [NgIf, PopoverDirective]
})
export class DuplicatesPhotoComponent implements OnInit, OnDestroy {
@Input() media: MediaDTO;

View File

@@ -15,12 +15,11 @@ import { NgIconComponent } from '@ng-icons/core';
templateUrl: './face.component.html',
styleUrls: ['./face.component.css'],
providers: [RouterLink],
standalone: true,
imports: [
RouterLink,
NgIf,
NgIconComponent,
],
]
})
export class FaceComponent implements OnInit, OnDestroy {
@Input() person: PersonDTO;

View File

@@ -13,14 +13,13 @@ import { FaceComponent } from './face/face.component';
selector: 'app-faces',
templateUrl: './faces.component.html',
styleUrls: ['./faces.component.css'],
standalone: true,
imports: [
FrameComponent,
NgFor,
FaceComponent,
NgIf,
AsyncPipe,
],
]
})
export class FacesComponent implements OnInit {
@ViewChild('container', {static: true}) container: ElementRef;

View File

@@ -29,7 +29,6 @@ import { FormsModule } from '@angular/forms';
styleUrls: ['./frame.component.css'],
providers: [RouterLink],
encapsulation: ViewEncapsulation.Emulated,
standalone: true,
imports: [
LoadingBarModule,
RouterLink,
@@ -48,7 +47,7 @@ import { FormsModule } from '@angular/forms';
NgSwitchCase,
FormsModule,
JsonPipe,
],
]
})
export class FrameComponent {
@Input() showSearch = false;

View File

@@ -10,7 +10,6 @@ import { FileDTOToRelativePathPipe } from '../../../pipes/FileDTOToRelativePathP
selector: 'app-gallery-blog',
templateUrl: './blog.gallery.component.html',
styleUrls: ['./blog.gallery.component.css'],
standalone: true,
imports: [
NgIf,
NgFor,
@@ -18,7 +17,7 @@ import { FileDTOToRelativePathPipe } from '../../../pipes/FileDTOToRelativePathP
NgIconComponent,
AsyncPipe,
FileDTOToRelativePathPipe,
],
]
})
export class GalleryBlogComponent implements OnChanges {
@Input() open: boolean;

View File

@@ -8,8 +8,7 @@ import { GalleryDirectoryComponent } from './directory/directory.gallery.compone
selector: 'app-gallery-directories',
templateUrl: './directories.component.html',
styleUrls: ['./directories.component.css'],
standalone: true,
imports: [NgFor, GalleryDirectoryComponent],
imports: [NgFor, GalleryDirectoryComponent]
})
export class DirectoriesComponent implements OnChanges {
@Input() directories: SubDirectoryDTO[];

View File

@@ -15,12 +15,11 @@ import { IconComponent } from '../../../../icon.component';
templateUrl: './directory.gallery.component.html',
styleUrls: ['./directory.gallery.component.css'],
providers: [RouterLink],
standalone: true,
imports: [
RouterLink,
NgIf,
IconComponent,
],
]
})
export class GalleryDirectoryComponent implements OnInit, OnDestroy {
@Input() directory: SubDirectoryDTO;

View File

@@ -11,7 +11,6 @@ import { FormsModule } from '@angular/forms';
styleUrls: ['./filter.gallery.component.css'],
templateUrl: './filter.gallery.component.html',
providers: [RouterLink],
standalone: true,
imports: [
NgIf,
NgFor,
@@ -20,7 +19,7 @@ import { FormsModule } from '@angular/forms';
FormsModule,
NgClass,
DatePipe,
],
]
})
export class GalleryFilterComponent implements OnInit, OnDestroy {
public readonly unknownText;

View File

@@ -32,7 +32,6 @@ import { PhotoFilterPipe } from '../../pipes/PhotoFilterPipe';
selector: 'app-gallery',
templateUrl: './gallery.component.html',
styleUrls: ['./gallery.component.css'],
standalone: true,
imports: [
GalleryLightboxComponent,
FrameComponent,
@@ -45,7 +44,7 @@ import { PhotoFilterPipe } from '../../pipes/PhotoFilterPipe';
GalleryGridComponent,
GPXFilesFilterPipe,
PhotoFilterPipe,
],
]
})
export class GalleryComponent implements OnInit, OnDestroy {
@ViewChild(GalleryGridComponent, {static: false})

View File

@@ -37,7 +37,6 @@ import { ParseIntPipe } from '../../../pipes/ParseIntPipe';
selector: 'app-gallery-grid',
templateUrl: './grid.gallery.component.html',
styleUrls: ['./grid.gallery.component.css'],
standalone: true,
imports: [
NgIf,
NgFor,
@@ -48,7 +47,7 @@ import { ParseIntPipe } from '../../../pipes/ParseIntPipe';
GalleryBlogComponent,
GalleryPhotoComponent,
ParseIntPipe,
],
]
})
export class GalleryGridComponent
implements OnInit, OnChanges, AfterViewInit, OnDestroy {

View File

@@ -6,8 +6,7 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-gallery-grid-photo-loading',
templateUrl: './loading.photo.grid.gallery.component.html',
styleUrls: ['./loading.photo.grid.gallery.component.css'],
standalone: true,
imports: [NgIf, NgIconComponent],
imports: [NgIf, NgIconComponent]
})
export class GalleryPhotoLoadingComponent {
@Input() animate: boolean;

View File

@@ -18,7 +18,6 @@ import { DurationPipe } from '../../../../pipes/DurationPipe';
templateUrl: './photo.grid.gallery.component.html',
styleUrls: ['./photo.grid.gallery.component.css'],
providers: [RouterLink],
standalone: true,
imports: [
NgIf,
GalleryPhotoLoadingComponent,
@@ -28,7 +27,7 @@ import { DurationPipe } from '../../../../pipes/DurationPipe';
NgSwitch,
NgSwitchCase,
DurationPipe,
],
]
})
export class GalleryPhotoComponent implements IRenderable, OnInit, OnDestroy {
@Input() gridMedia: GridMedia;

View File

@@ -25,7 +25,6 @@ import { RouterLink } from '@angular/router';
selector: 'app-lightbox-controls',
styleUrls: ['./controls.lightbox.gallery.component.css', './inputrange.css'],
templateUrl: './controls.lightbox.gallery.component.html',
standalone: true,
imports: [
NgIf,
NgIconComponent,
@@ -35,7 +34,7 @@ import { RouterLink } from '@angular/router';
FormsModule,
NgFor,
RouterLink,
],
]
})
export class ControlsLightboxComponent implements OnDestroy, OnInit, OnChanges {
readonly MAX_ZOOM = 10;

View File

@@ -22,7 +22,6 @@ import { FileSizePipe } from '../../../../pipes/FileSizePipe';
selector: 'app-info-panel',
styleUrls: ['./info-panel.lightbox.gallery.component.css'],
templateUrl: './info-panel.lightbox.gallery.component.html',
standalone: true,
imports: [
NgIf,
NgIconComponent,
@@ -34,7 +33,7 @@ import { FileSizePipe } from '../../../../pipes/FileSizePipe';
DatePipe,
DurationPipe,
FileSizePipe,
],
]
})
export class InfoPanelLightboxComponent implements OnInit, OnChanges {
@Input() media: MediaDTO;

View File

@@ -31,7 +31,6 @@ export enum LightboxStates {
selector: 'app-gallery-lightbox',
styleUrls: ['./lightbox.gallery.component.css'],
templateUrl: './lightbox.gallery.component.html',
standalone: true,
imports: [
GalleryLightboxMediaComponent,
NgIf,
@@ -39,7 +38,7 @@ export enum LightboxStates {
NgFor,
ControlsLightboxComponent,
InfoPanelLightboxComponent,
],
]
})
export class GalleryLightboxComponent implements OnDestroy, OnInit {
@ViewChild('photo', {static: true})

View File

@@ -11,8 +11,7 @@ import { NgIf } from '@angular/common';
selector: 'app-gallery-lightbox-media',
styleUrls: ['./media.lightbox.gallery.component.css'],
templateUrl: './media.lightbox.gallery.component.html',
standalone: true,
imports: [NgIf],
imports: [NgIf]
})
export class GalleryLightboxMediaComponent implements OnChanges {
@Input() gridMedia: GridMedia;

View File

@@ -42,15 +42,14 @@ import {NgIconComponent} from '@ng-icons/core';
@Component({
selector: 'app-gallery-map-lightbox',
styleUrls: ['./lightbox.map.gallery.component.css'],
templateUrl: './lightbox.map.gallery.component.html',
standalone: true,
imports: [
LeafletModule,
NgIf,
NgIconComponent,
],
selector: 'app-gallery-map-lightbox',
styleUrls: ['./lightbox.map.gallery.component.css'],
templateUrl: './lightbox.map.gallery.component.html',
imports: [
LeafletModule,
NgIf,
NgIconComponent,
]
})
export class GalleryMapLightboxComponent implements OnChanges, OnDestroy {
@Input() photos: PhotoDTO[];

View File

@@ -15,8 +15,7 @@ import { LeafletModule } from '@bluehalo/ngx-leaflet';
selector: 'app-gallery-map',
templateUrl: './map.gallery.component.html',
styleUrls: ['./map.gallery.component.css'],
standalone: true,
imports: [GalleryMapLightboxComponent, LeafletModule],
imports: [GalleryMapLightboxComponent, LeafletModule]
})
export class GalleryMapComponent implements OnChanges, IRenderable {
@Input() photos: PhotoDTO[];

View File

@@ -31,7 +31,6 @@ import { StringifyGridSize } from '../../../pipes/StringifyGridSize';
styleUrls: ['./navigator.gallery.component.css'],
templateUrl: './navigator.gallery.component.html',
providers: [RouterLink],
standalone: true,
imports: [
NgIf,
NgFor,
@@ -47,7 +46,7 @@ import { StringifyGridSize } from '../../../pipes/StringifyGridSize';
StringifySortingMethod,
StringifySearchQuery,
StringifyGridSize,
],
]
})
export class GalleryNavigatorComponent {
public readonly sortingByTypes: { key: number; value: string }[] = [];

View File

@@ -20,13 +20,12 @@ import { GallerySearchQueryBuilderComponent } from '../search/query-builder/quer
selector: 'app-gallery-random-query-builder',
templateUrl: './random-query-builder.gallery.component.html',
styleUrls: ['./random-query-builder.gallery.component.css'],
standalone: true,
imports: [
NgIconComponent,
FormsModule,
ClipboardModule,
GallerySearchQueryBuilderComponent,
],
]
})
export class RandomQueryBuilderGalleryComponent implements OnInit, OnDestroy {
public searchQueryDTO: SearchQueryDTO = {

View File

@@ -22,12 +22,11 @@ import { GallerySearchQueryEntryComponent } from '../query-enrty/query-entry.sea
multi: true,
},
],
standalone: true,
imports: [
GallerySearchFieldBaseComponent,
FormsModule,
GallerySearchQueryEntryComponent,
],
]
})
export class GallerySearchQueryBuilderComponent
implements ControlValueAccessor, Validator {

View File

@@ -36,7 +36,6 @@ import { StringifySearchType } from '../../../../pipes/StringifySearchType';
multi: true,
},
],
standalone: true,
imports: [
NgIf,
FormsModule,
@@ -47,7 +46,7 @@ import { StringifySearchType } from '../../../../pipes/StringifySearchType';
NgSwitchCase,
DatePipe,
StringifySearchType,
],
]
})
export class GallerySearchQueryEntryComponent
implements ControlValueAccessor, Validator {

View File

@@ -27,7 +27,6 @@ import { NgIconComponent } from '@ng-icons/core';
multi: true,
},
],
standalone: true,
imports: [
FormsModule,
NgIf,
@@ -36,7 +35,7 @@ import { NgIconComponent } from '@ng-icons/core';
NgSwitch,
NgSwitchCase,
NgIconComponent,
],
]
})
export class GallerySearchFieldBaseComponent
implements ControlValueAccessor, Validator, OnDestroy {

View File

@@ -28,13 +28,12 @@ import { GallerySearchQueryBuilderComponent } from '../query-builder/query-bulde
multi: true,
},
],
standalone: true,
imports: [
GallerySearchFieldBaseComponent,
FormsModule,
NgIconComponent,
GallerySearchQueryBuilderComponent,
],
]
})
export class GallerySearchFieldComponent
implements ControlValueAccessor, Validator {

View File

@@ -24,7 +24,6 @@ import { SavedSearchPopupComponent } from '../../albums/saved-search-popup/saved
templateUrl: './search.gallery.component.html',
styleUrls: ['./search.gallery.component.css'],
providers: [AutoCompleteService, RouterLink],
standalone: true,
imports: [
FormsModule,
GallerySearchFieldBaseComponent,
@@ -33,7 +32,7 @@ import { SavedSearchPopupComponent } from '../../albums/saved-search-popup/saved
GallerySearchQueryBuilderComponent,
NgIf,
SavedSearchPopupComponent,
],
]
})
export class GallerySearchComponent implements OnDestroy {
public searchQueryDTO: SearchQueryDTO = {

View File

@@ -20,7 +20,6 @@ import { FormsModule } from '@angular/forms';
selector: 'app-gallery-share',
templateUrl: './share.gallery.component.html',
styleUrls: ['./share.gallery.component.css'],
standalone: true,
imports: [
NgIf,
NgIconComponent,
@@ -28,7 +27,7 @@ import { FormsModule } from '@angular/forms';
ClipboardModule,
NgFor,
DatePipe,
],
]
})
export class GalleryShareComponent implements OnInit, OnDestroy {
enabled = true;

View File

@@ -10,7 +10,6 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-language',
templateUrl: './language.component.html',
styleUrls: ['./language.component.css'],
standalone: true,
imports: [
BsDropdownDirective,
BsDropdownToggleDirective,
@@ -18,7 +17,7 @@ import { NgIconComponent } from '@ng-icons/core';
NgIconComponent,
BsDropdownMenuDirective,
NgFor,
],
]
})
export class LanguageComponent {
languages: string[] = [];

View File

@@ -13,13 +13,12 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css'],
standalone: true,
imports: [
LanguageComponent,
IconComponent,
FormsModule,
NgIconComponent,
],
]
})
export class LoginComponent implements OnInit {
loginCredential: LoginCredential;

View File

@@ -11,7 +11,6 @@ import { NgIf, NgFor } from '@angular/common';
selector: 'app-extension-installer',
templateUrl: './extension-installer.component.html',
styleUrls: ['./extension-installer.component.css'],
standalone: true,
imports: [NgIconComponent, ModalDirective, NgIf, NgFor]
})
export class ExtensionInstallerComponent {

View File

@@ -7,7 +7,6 @@ import { FileSizePipe } from '../../../pipes/FileSizePipe';
selector: 'app-settings-gallery-statistic',
templateUrl: './gallery-statistic.component.html',
styleUrls: ['./gallery-statistic.component.css'],
standalone: true,
imports: [NgIconComponent, FileSizePipe]
})
export class GalleryStatisticComponent {

View File

@@ -9,7 +9,6 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-settigns-sharings-list',
templateUrl: './sharings-list.component.html',
styleUrls: ['./sharings-list.component.css'],
standalone: true,
imports: [NgIf, NgFor, NgIconComponent, DatePipe]
})
export class SharingsListComponent implements OnInit {

View File

@@ -64,7 +64,6 @@ interface IState {
multi: true,
},
],
standalone: true,
imports: [
NgIf,
NgSwitch,
@@ -78,7 +77,7 @@ interface IState {
NgClass,
PopoverDirective,
SafeHtmlPipe,
],
]
})
export class SettingsEntryComponent
implements ControlValueAccessor, Validator, OnChanges {

View File

@@ -36,7 +36,6 @@ import { StringifySortingMethod } from '../../../../../pipes/StringifySortingMet
multi: true,
},
],
standalone: true,
imports: [
BsDropdownDirective,
BsDropdownToggleDirective,
@@ -46,7 +45,7 @@ import { StringifySortingMethod } from '../../../../../pipes/StringifySortingMet
BsDropdownMenuDirective,
NgFor,
StringifySortingMethod,
],
]
})
export class SortingMethodSettingsEntryComponent
implements ControlValueAccessor, Validator, OnInit {

View File

@@ -60,7 +60,6 @@ export interface RecursiveState extends ConfigState {
selector: 'app-settings-template',
templateUrl: './template.component.html',
styleUrls: ['./template.component.css'],
standalone: true,
imports: [FormsModule, NgIconComponent, NgIf, NgTemplateOutlet, NgFor, SettingsEntryComponent, JobButtonComponent, JobProgressComponent, AsyncPipe]
})
export class TemplateComponent implements OnInit, OnChanges, OnDestroy, ISettingsComponent {

View File

@@ -17,7 +17,6 @@ import { StringifyRole } from '../../../pipes/StringifyRolePipe';
selector: 'app-settings-users',
templateUrl: './users.component.html',
styleUrls: ['./users.component.css'],
standalone: true,
imports: [NgIf, NgFor, FormsModule, NgClass, NgIconComponent, ModalDirective, StringifyRole]
})
export class UsersComponent implements OnInit {

View File

@@ -14,8 +14,7 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-settings-job-button',
templateUrl: './job-button.settings.component.html',
styleUrls: ['./job-button.settings.component.css'],
standalone: true,
imports: [NgIf, NgIconComponent],
imports: [NgIf, NgIconComponent]
})
export class JobButtonComponent {
@Input() jobName: string;

View File

@@ -12,7 +12,6 @@ import { DurationPipe } from '../../../../pipes/DurationPipe';
selector: 'app-settings-job-progress',
templateUrl: './job-progress.settings.component.html',
styleUrls: ['./job-progress.settings.component.css'],
standalone: true,
imports: [
NgIf,
NgIconComponent,
@@ -21,7 +20,7 @@ import { DurationPipe } from '../../../../pipes/DurationPipe';
DecimalPipe,
DatePipe,
DurationPipe,
],
]
})
export class JobProgressComponent implements OnDestroy, OnChanges {
@Input() progress: JobProgressDTO;

View File

@@ -48,7 +48,6 @@ import { JobProgressComponent } from './progress/job-progress.settings.component
multi: true,
},
],
standalone: true,
imports: [
NgFor,
NgIf,
@@ -66,7 +65,7 @@ import { JobProgressComponent } from './progress/job-progress.settings.component
ModalDirective,
AsyncPipe,
DatePipe,
],
]
})
export class WorkflowComponent implements ControlValueAccessor, Validator, OnInit, OnDestroy {

View File

@@ -14,7 +14,6 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-share-login',
templateUrl: './share-login.component.html',
styleUrls: ['./share-login.component.css'],
standalone: true,
imports: [
LanguageComponent,
IconComponent,
@@ -22,7 +21,7 @@ import { NgIconComponent } from '@ng-icons/core';
FormsModule,
NgIconComponent,
AsyncPipe,
],
]
})
export class ShareLoginComponent implements OnInit {
password: string;

View File

@@ -7,7 +7,6 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-grid-size-icon',
templateUrl: './grid-size-icon.component.html',
styleUrls: ['./grid-size-icon.component.css'],
standalone: true,
imports: [NgSwitch, NgSwitchCase, NgIconComponent]
})
export class GridSizeIconComponent {

View File

@@ -7,7 +7,6 @@ import { NgIconComponent } from '@ng-icons/core';
selector: 'app-sorting-method-icon',
templateUrl: './sorting-method-icon.component.html',
styleUrls: ['./sorting-method-icon.component.css'],
standalone: true,
imports: [NgSwitch, NgSwitchCase, NgIconComponent]
})
export class SortingMethodIconComponent {

View File

@@ -5,12 +5,11 @@ import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-timestamp-datepicker',
templateUrl: './datepicker.component.html',
standalone: true,
imports: [
BsDatepickerInputDirective,
FormsModule,
BsDatepickerDirective,
],
]
})
export class TimeStampDatePickerComponent {
timestampValue = 0;

View File

@@ -5,8 +5,7 @@ import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-timestamp-timepicker',
templateUrl: './timepicker.component.html',
standalone: true,
imports: [TimepickerComponent, FormsModule],
imports: [TimepickerComponent, FormsModule]
})
export class TimeStampTimePickerComponent {
timestampValue = 0;