fix: ng update core 19

This commit is contained in:
2025-06-09 13:37:06 +02:00
parent f9d133a7db
commit c74e80721a
56 changed files with 3154 additions and 2011 deletions

4720
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -12,28 +12,28 @@
},
"private": true,
"dependencies": {
"@angular/animations": "^18.2.13",
"@angular/animations": "^19.2.14",
"@angular/cdk": "^18.2.14",
"@angular/cli": "^18.2.19",
"@angular/common": "^18.2.13",
"@angular/compiler": "^18.2.13",
"@angular/core": "^18.2.13",
"@angular/forms": "^18.2.13",
"@angular/cli": "^19.2.14",
"@angular/common": "^19.2.14",
"@angular/compiler": "^19.2.14",
"@angular/core": "^19.2.14",
"@angular/forms": "^19.2.14",
"@angular/material": "^18.2.14",
"@angular/material-moment-adapter": "^18.2.14",
"@angular/platform-browser": "^18.2.13",
"@angular/platform-browser-dynamic": "^18.2.13",
"@angular/router": "^18.2.13",
"@angular/service-worker": "^18.2.13",
"@angular/platform-browser": "^19.2.14",
"@angular/platform-browser-dynamic": "^19.2.14",
"@angular/router": "^19.2.14",
"@angular/service-worker": "^19.2.14",
"marked": "^12.0.1",
"moment": "^2.29.4",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
"zone.js": "~0.14.10"
"zone.js": "~0.15.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^18.2.19",
"@angular/compiler-cli": "^18.2.13",
"@angular-devkit/build-angular": "^19.2.14",
"@angular/compiler-cli": "^19.2.14",
"@types/jasmine": "~4.3.0",
"jasmine-core": "~4.5.0",
"karma": "~6.4.0",
@@ -41,6 +41,6 @@
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
"typescript": "~5.4.3"
"typescript": "~5.8.3"
}
}

View File

@@ -10,9 +10,10 @@ import { Group } from 'src/app/types/group';
import User from 'src/app/types/user';
@Component({
selector: 'app-account-mgmt',
templateUrl: './account-mgmt.component.html',
styleUrls: ['./account-mgmt.component.scss']
selector: 'app-account-mgmt',
templateUrl: './account-mgmt.component.html',
styleUrls: ['./account-mgmt.component.scss'],
standalone: false
})

View File

@@ -1,9 +1,10 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-user-delete',
templateUrl: './user-delete.component.html',
styleUrls: ['./user-delete.component.scss']
selector: 'app-user-delete',
templateUrl: './user-delete.component.html',
styleUrls: ['./user-delete.component.scss'],
standalone: false
})
export class UserDeleteComponent {

View File

@@ -17,9 +17,10 @@ export namespace UserEditComponent {
}
@Component({
selector: 'app-user-edit',
templateUrl: './user-edit.component.html',
styleUrls: ['./user-edit.component.scss']
selector: 'app-user-edit',
templateUrl: './user-edit.component.html',
styleUrls: ['./user-edit.component.scss'],
standalone: false
})
export class UserEditComponent {
lockout = false;

View File

@@ -1,9 +1,10 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-user-reset',
templateUrl: './user-reset.component.html',
styleUrls: ['./user-reset.component.scss']
selector: 'app-user-reset',
templateUrl: './user-reset.component.html',
styleUrls: ['./user-reset.component.scss'],
standalone: false
})
export class UserResetComponent {

View File

@@ -9,7 +9,10 @@ import { MatListModule } from '@angular/material/list';
import { RouterModule } from '@angular/router';
import { Component, Input } from '@angular/core';
@Component({selector: "app-toolbar", template: ''})
@Component({
selector: "app-toolbar", template: '',
standalone: false
})
class ToolbarMock {
@Input() drawer!: MatDrawer;
}

View File

@@ -6,7 +6,8 @@ import { Link } from '../types/link';
@Component({
selector: 'app-admin-view',
templateUrl: './admin-view.component.html',
styleUrls: ['./admin-view.component.scss']
styleUrls: ['./admin-view.component.scss'],
standalone: false
})
export class AdminViewComponent {
private readonly _LINKS: Link[] = [

View File

@@ -5,9 +5,10 @@ import { MatTableDataSource } from '@angular/material/table';
import { AdminCommService } from '../../admin-comm.service';
@Component({
selector: 'app-attendence-summary',
templateUrl: './attendence-summary.component.html',
styleUrl: './attendence-summary.component.scss'
selector: 'app-attendence-summary',
templateUrl: './attendence-summary.component.html',
styleUrl: './attendence-summary.component.scss',
standalone: false
})
export class AttendenceSummaryComponent implements OnInit {

View File

@@ -2,9 +2,10 @@ import { Component, Input } from '@angular/core';
import moment from 'moment';
@Component({
selector: 'app-hour-display',
templateUrl: './hour-display.component.html',
styleUrl: './hour-display.component.scss'
selector: 'app-hour-display',
templateUrl: './hour-display.component.html',
styleUrl: './hour-display.component.scss',
standalone: false
})
export class HourDisplayComponent {
@Input() value = "";

View File

@@ -4,9 +4,10 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { AdminCommService } from '../../admin-comm.service';
@Component({
selector: 'app-attendence',
templateUrl: './attendence.component.html',
styleUrl: './attendence.component.scss'
selector: 'app-attendence',
templateUrl: './attendence.component.html',
styleUrl: './attendence.component.scss',
standalone: false
})
export class AttendenceComponent implements OnInit {

View File

@@ -12,14 +12,20 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatInputModule } from '@angular/material/input';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
@Component({selector: "app-date-selector", template: ''})
@Component({
selector: "app-date-selector", template: '',
standalone: false
})
class DateSelectorStub {
@Input() date: moment.Moment = moment.utc().startOf('day');
@Output() dateChange = new EventEmitter<moment.Moment>();
@Input() filter: (date: moment.Moment | null) => boolean = () => true
}
@Component({selector: "app-room-chooser", template: ''})
@Component({
selector: "app-room-chooser", template: '',
standalone: false
})
class RoomSelectorStub {
@Input() rooms: string[] = []
@Output() room: EventEmitter<string> = new EventEmitter<string>();

View File

@@ -10,9 +10,10 @@ import { MatDialog } from '@angular/material/dialog';
import { AttendenceComponent } from './attendence/attendence.component';
@Component({
selector: 'app-grades',
templateUrl: './grades.component.html',
styleUrl: './grades.component.scss'
selector: 'app-grades',
templateUrl: './grades.component.html',
styleUrl: './grades.component.scss',
standalone: false
})
export class GradesComponent implements OnInit, OnDestroy {
rooms!: string[]

View File

@@ -8,9 +8,10 @@ import { FormBuilder } from '@angular/forms';
import { MatSort } from '@angular/material/sort';
@Component({
selector: 'app-summary',
templateUrl: './summary.component.html',
styleUrl: './summary.component.scss'
selector: 'app-summary',
templateUrl: './summary.component.html',
styleUrl: './summary.component.scss',
standalone: false
})
export class SummaryComponent implements OnInit, OnDestroy {

View File

@@ -6,9 +6,10 @@ import { MatDialog } from '@angular/material/dialog';
import { RemoveConfirmComponent } from './remove-confirm/remove-confirm.component';
@Component({
selector: 'app-groups',
templateUrl: './groups.component.html',
styleUrls: ['./groups.component.scss']
selector: 'app-groups',
templateUrl: './groups.component.html',
styleUrls: ['./groups.component.scss'],
standalone: false
})
export class GroupsComponent implements OnInit {
groups?: Group[]

View File

@@ -1,9 +1,10 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-remove-confirm',
templateUrl: './remove-confirm.component.html',
styleUrls: ['./remove-confirm.component.scss']
selector: 'app-remove-confirm',
templateUrl: './remove-confirm.component.html',
styleUrls: ['./remove-confirm.component.scss'],
standalone: false
})
export class RemoveConfirmComponent {

View File

@@ -11,9 +11,10 @@ import { catchError, throwError } from 'rxjs';
import { MatSnackBar } from '@angular/material/snack-bar';
@Component({
selector: 'app-admin-key',
templateUrl: './key.component.html',
styleUrl: './key.component.scss'
selector: 'app-admin-key',
templateUrl: './key.component.html',
styleUrl: './key.component.scss',
standalone: false
})
export class AdminKeyComponent implements AfterViewInit, OnInit {
keys: MatTableDataSource<AKey> = new MatTableDataSource<AKey>();

View File

@@ -11,15 +11,16 @@ import { AbstractControlDirective, ControlValueAccessor, FormsModule, NG_VALUE_A
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
@Component({
selector: "app-user-search", template: '', providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => UserSearchStub),
multi: true,
},
{
provide: MatFormFieldControl,
useExisting: UserSearchStub
}]
selector: "app-user-search", template: '', providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => UserSearchStub),
multi: true,
},
{
provide: MatFormFieldControl,
useExisting: UserSearchStub
}],
standalone: false
})
class UserSearchStub implements ControlValueAccessor, MatFormFieldControl<never> {
value: null = null;

View File

@@ -5,9 +5,10 @@ import { FormControl, FormGroup } from '@angular/forms';
import { UserSearchResult } from 'src/app/commonComponents/user-search/user-search.component';
@Component({
selector: 'app-new-key',
templateUrl: './new-key.component.html',
styleUrl: './new-key.component.scss'
selector: 'app-new-key',
templateUrl: './new-key.component.html',
styleUrl: './new-key.component.scss',
standalone: false
})
export class NewKeyComponent implements OnInit {
rooms: string[] = []

View File

@@ -8,12 +8,13 @@ import { MAT_DATE_RANGE_SELECTION_STRATEGY } from '@angular/material/datepicker'
import * as moment from 'moment';
@Component({
selector: 'app-menu-add',
templateUrl: './menu-add.component.html',
styleUrl: './menu-add.component.scss',
providers: [
{provide: MAT_DATE_RANGE_SELECTION_STRATEGY, useClass: FDSelection}
]
selector: 'app-menu-add',
templateUrl: './menu-add.component.html',
styleUrl: './menu-add.component.scss',
providers: [
{ provide: MAT_DATE_RANGE_SELECTION_STRATEGY, useClass: FDSelection }
],
standalone: false
})
export class MenuAddComponent {
type: string | undefined;

View File

@@ -15,12 +15,13 @@ import { MenuAddComponent } from './menu-add/menu-add.component';
import { LocalStorageService } from 'src/app/services/local-storage.service';
@Component({
selector: 'app-menu-new',
templateUrl: './menu-new.component.html',
styleUrls: ['./menu-new.component.scss'],
providers: [
{provide: MAT_DATE_RANGE_SELECTION_STRATEGY, useClass: FDSelection}
]
selector: 'app-menu-new',
templateUrl: './menu-new.component.html',
styleUrls: ['./menu-new.component.scss'],
providers: [
{ provide: MAT_DATE_RANGE_SELECTION_STRATEGY, useClass: FDSelection }
],
standalone: false
})
export class MenuNewComponent {
dcols: string[] = ['day', 'sn', 'ob', 'kol']

View File

@@ -3,9 +3,10 @@ import { AdminCommService } from '../../admin-comm.service';
import { MatDialogRef } from '@angular/material/dialog';
@Component({
selector: 'app-upload-edit',
templateUrl: './menu-upload.component.html',
styleUrls: ['./menu-upload.component.scss'],
selector: 'app-upload-edit',
templateUrl: './menu-upload.component.html',
styleUrls: ['./menu-upload.component.scss'],
standalone: false
})
export class MenuUploadComponent {
constructor(private ac:AdminCommService, public dialogRef: MatDialogRef<MenuUploadComponent>) {}

View File

@@ -3,9 +3,10 @@ import { FormControl, FormGroup } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
@Component({
selector: 'app-edit-post',
templateUrl: './edit-post.component.html',
styleUrls: ['./edit-post.component.scss']
selector: 'app-edit-post',
templateUrl: './edit-post.component.html',
styleUrls: ['./edit-post.component.scss'],
standalone: false
})
export class NewPostComponent {
form: FormGroup;

View File

@@ -8,9 +8,10 @@ import { News } from 'src/app/types/news';
import { marked } from 'marked';
@Component({
selector: 'app-news-edit',
templateUrl: './news-edit.component.html',
styleUrls: ['./news-edit.component.scss']
selector: 'app-news-edit',
templateUrl: './news-edit.component.html',
styleUrls: ['./news-edit.component.scss'],
standalone: false
})
export class NewsEditComponent implements OnInit {
news:Array<News & {formatted: string}> = new Array<News & {formatted: string}>

View File

@@ -13,15 +13,16 @@ import { MatInputModule } from '@angular/material/input';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
@Component({
selector: "app-user-search", template: '', providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => UserSearchStub),
multi: true,
},
{
provide: MatFormFieldControl,
useExisting: UserSearchStub
}]
selector: "app-user-search", template: '', providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => UserSearchStub),
multi: true,
},
{
provide: MatFormFieldControl,
useExisting: UserSearchStub
}],
standalone: false
})
class UserSearchStub implements ControlValueAccessor, MatFormFieldControl<never> {
value: null = null;

View File

@@ -9,9 +9,10 @@ import { ActivatedRoute, Router } from '@angular/router';
import { UserSearchResult } from 'src/app/commonComponents/user-search/user-search.component';
@Component({
selector: 'app-notifications',
templateUrl: './notifications.component.html',
styleUrls: ['./notifications.component.scss']
selector: 'app-notifications',
templateUrl: './notifications.component.html',
styleUrls: ['./notifications.component.scss'],
standalone: false
})
export class NotificationsComponent implements OnInit, OnDestroy {

View File

@@ -2,9 +2,10 @@ import { Component, Input } from '@angular/core';
import { AdminCommService } from 'src/app/admin-view/admin-comm.service';
@Component({
selector: 'app-message',
templateUrl: './message.component.html',
styleUrl: './message.component.scss'
selector: 'app-message',
templateUrl: './message.component.html',
styleUrl: './message.component.scss',
standalone: false
})
export class MessageComponent {
@Input() item!: {_id: string, sentDate: moment.Moment, title: string}

View File

@@ -5,9 +5,10 @@ import { ToolbarService } from '../../toolbar/toolbar.service';
import moment from 'moment';
@Component({
selector: 'app-outbox',
templateUrl: './outbox.component.html',
styleUrl: './outbox.component.scss'
selector: 'app-outbox',
templateUrl: './outbox.component.html',
styleUrl: './outbox.component.scss',
standalone: false
})
export class OutboxComponent implements OnInit {

View File

@@ -12,7 +12,10 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { of } from 'rxjs';
import { MatInputModule } from '@angular/material/input';
@Component({selector: 'app-list-editor', template: ''})
@Component({
selector: 'app-list-editor', template: '',
standalone: false
})
class ListEditorStub {
@Input() converter?: any[];
@Input() list?: string[];

View File

@@ -4,9 +4,10 @@ import { MatSnackBar } from '@angular/material/snack-bar';
import { FormBuilder } from '@angular/forms';
@Component({
selector: 'app-settings',
templateUrl: './settings.component.html',
styleUrl: './settings.component.scss'
selector: 'app-settings',
templateUrl: './settings.component.html',
styleUrl: './settings.component.scss',
standalone: false
})
export class SettingsComponent implements OnInit {
usettings: IUSettings = {cleanThings: [], keyrooms: [], menu: {defaultItems: {kol: [], sn: []}}, rooms: [], security: {loginTimeout: {attempts: 0, lockout: 0, time: 0}}}

View File

@@ -1,9 +1,10 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-start',
templateUrl: './start.component.html',
styleUrl: './start.component.scss'
selector: 'app-start',
templateUrl: './start.component.html',
styleUrl: './start.component.scss',
standalone: false
})
export class StartAdminComponent {

View File

@@ -5,9 +5,10 @@ import { ToolbarService } from './toolbar.service';
import { MatMenuTrigger } from '@angular/material/menu';
@Component({
selector: 'app-toolbar',
templateUrl: './toolbar.component.html',
styleUrl: './toolbar.component.scss'
selector: 'app-toolbar',
templateUrl: './toolbar.component.html',
styleUrl: './toolbar.component.scss',
standalone: false
})
export class ToolbarComponent {
@Input() drawer!: MatDrawer;

View File

@@ -10,9 +10,10 @@ import { MatDialog } from '@angular/material/dialog';
import { NotifDialogComponent } from './notif-dialog/notif-dialog.component';
@Component({
selector: 'app-app-view',
templateUrl: './app-view.component.html',
styleUrls: ['./app-view.component.scss']
selector: 'app-app-view',
templateUrl: './app-view.component.html',
styleUrls: ['./app-view.component.scss'],
standalone: false
})
export class AppViewComponent implements OnInit {
private readonly _LINKS: Link[] = [

View File

@@ -1,9 +1,10 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-allergens',
templateUrl: './allergens.component.html',
styleUrls: ['./allergens.component.scss']
selector: 'app-allergens',
templateUrl: './allergens.component.html',
styleUrls: ['./allergens.component.scss'],
standalone: false
})
export class AllergensComponent {

View File

@@ -8,9 +8,10 @@ import { weekendFilter } from "../../fd.da";
import { LocalStorageService } from 'src/app/services/local-storage.service';
@Component({
selector: 'app-menu',
templateUrl: './menu.component.html',
styleUrls: ['./menu.component.scss']
selector: 'app-menu',
templateUrl: './menu.component.html',
styleUrls: ['./menu.component.scss'],
standalone: false
})
export class MenuComponent {
constructor(private uc:UpdatesService, readonly bs: MatBottomSheet, readonly ls: LocalStorageService) {

View File

@@ -5,9 +5,10 @@ import { News } from 'src/app/types/news';
import { marked } from 'marked';
@Component({
selector: 'app-news',
templateUrl: './news.component.html',
styleUrls: ['./news.component.scss'],
selector: 'app-news',
templateUrl: './news.component.html',
styleUrls: ['./news.component.scss'],
standalone: false
})
export class NewsComponent implements OnInit {
news:Array<News> = new Array<News>

View File

@@ -4,9 +4,10 @@ import moment from 'moment';
import { UpdatesService } from 'src/app/services/updates.service';
@Component({
selector: 'app-notif-dialog',
templateUrl: './notif-dialog.component.html',
styleUrl: './notif-dialog.component.scss'
selector: 'app-notif-dialog',
templateUrl: './notif-dialog.component.html',
styleUrl: './notif-dialog.component.scss',
standalone: false
})
export class NotifDialogComponent {

View File

@@ -2,9 +2,10 @@ import { Component } from '@angular/core';
import { Link } from 'src/app/types/link';
@Component({
selector: 'app-about',
templateUrl: './about.component.html',
styleUrl: './about.component.scss'
selector: 'app-about',
templateUrl: './about.component.html',
styleUrl: './about.component.scss',
standalone: false
})
export class AboutComponent {
LINKS: { title: string, info: string, icon: string, link: string }[] = [

View File

@@ -7,9 +7,10 @@ import { Router } from '@angular/router';
import { LocalStorageService } from 'src/app/services/local-storage.service';
@Component({
selector: 'app-change-password-dialog',
templateUrl: './change-password-dialog.component.html',
styleUrls: ['./change-password-dialog.component.scss']
selector: 'app-change-password-dialog',
templateUrl: './change-password-dialog.component.html',
styleUrls: ['./change-password-dialog.component.scss'],
standalone: false
})
export class ChangePasswordDialogComponent {
error: string | null = null;

View File

@@ -10,7 +10,10 @@ import { MatDatepicker } from '@angular/material/datepicker';
import { Component, EventEmitter, Input, Output } from '@angular/core';
import * as moment from 'moment';
@Component({selector: "app-date-selector", template: ''})
@Component({
selector: "app-date-selector", template: '',
standalone: false
})
class DateSelectorStub {
@Input() date: moment.Moment = moment.utc().startOf('day');
@Output() dateChange = new EventEmitter<moment.Moment>();

View File

@@ -5,9 +5,10 @@ import { UpdatesService } from 'src/app/services/updates.service';
import { CleanNote } from 'src/app/types/clean-note';
@Component({
selector: 'app-clean',
templateUrl: './clean.component.html',
styleUrl: './clean.component.scss'
selector: 'app-clean',
templateUrl: './clean.component.html',
styleUrl: './clean.component.scss',
standalone: false
})
export class CleanComponent implements OnInit {
private _day: moment.Moment = moment()

View File

@@ -5,9 +5,10 @@ import { RedirectComponent } from './redirect/redirect.component';
import { MatDialog } from '@angular/material/dialog';
@Component({
selector: 'app-extra',
templateUrl: './extra.component.html',
styleUrl: './extra.component.scss'
selector: 'app-extra',
templateUrl: './extra.component.html',
styleUrl: './extra.component.scss',
standalone: false
})
export class ExtraComponent {

View File

@@ -3,9 +3,10 @@ import { MatDialogRef } from '@angular/material/dialog';
import { AuthClient } from 'src/app/services/auth.client';
@Component({
selector: 'app-redirect',
templateUrl: './redirect.component.html',
styleUrl: './redirect.component.scss'
selector: 'app-redirect',
templateUrl: './redirect.component.html',
styleUrl: './redirect.component.scss',
standalone: false
})
export class RedirectComponent {
protected redirect = ""

View File

@@ -3,9 +3,10 @@ import { UpdatesService } from 'src/app/services/updates.service';
import { UKey } from 'src/app/types/key';
@Component({
selector: 'app-key',
templateUrl: './key.component.html',
styleUrl: './key.component.scss'
selector: 'app-key',
templateUrl: './key.component.html',
styleUrl: './key.component.scss',
standalone: false
})
export class KeyComponent implements OnInit {

View File

@@ -1,9 +1,10 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-logout-confirmation',
templateUrl: './logout-confirmation.component.html',
styleUrls: ['./logout-confirmation.component.scss']
selector: 'app-logout-confirmation',
templateUrl: './logout-confirmation.component.html',
styleUrls: ['./logout-confirmation.component.scss'],
standalone: false
})
export class LogoutConfirmationComponent {

View File

@@ -13,9 +13,10 @@ import { AboutComponent } from './about/about.component';
import { ExtraComponent } from './extra/extra.component';
@Component({
selector: 'app-personal',
templateUrl: './personal.component.html',
styleUrls: ['./personal.component.scss']
selector: 'app-personal',
templateUrl: './personal.component.html',
styleUrls: ['./personal.component.scss'],
standalone: false
})
export class PersonalComponent {
updateaval: boolean | unknown = false

View File

@@ -4,9 +4,10 @@ import { LocalStorageService } from 'src/app/services/local-storage.service';
import { Link } from 'src/app/types/link';
@Component({
selector: 'app-start',
templateUrl: './start.component.html',
styleUrl: './start.component.scss'
selector: 'app-start',
templateUrl: './start.component.html',
styleUrl: './start.component.scss',
standalone: false
})
export class StartComponent {
private readonly _LINKS: Link[] = [

View File

@@ -4,9 +4,10 @@ import { MatIconRegistry } from '@angular/material/icon';
import * as moment from 'moment';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: false
})
export class AppComponent {
constructor (readonly updates: AppUpdateService, mir: MatIconRegistry) {

View File

@@ -1,7 +1,8 @@
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
@Directive({
selector: '[appCe] [contenteditable]'
selector: '[appCe] [contenteditable]',
standalone: false
})
export class CeDirective {
@Input() multiline: boolean = false

View File

@@ -3,9 +3,10 @@ import { FormControl } from '@angular/forms';
import moment from 'moment';
@Component({
selector: 'app-date-selector',
templateUrl: './date-selector.component.html',
styleUrls: ['./date-selector.component.scss']
selector: 'app-date-selector',
templateUrl: './date-selector.component.html',
styleUrls: ['./date-selector.component.scss'],
standalone: false
})
export class DateSelectorComponent implements OnChanges {
@Input() date: moment.Moment = moment.utc().startOf('day');

View File

@@ -1,9 +1,10 @@
import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
@Component({
selector: 'app-field-editor',
templateUrl: './field-editor.component.html',
styleUrl: './field-editor.component.scss'
selector: 'app-field-editor',
templateUrl: './field-editor.component.html',
styleUrl: './field-editor.component.scss',
standalone: false
})
export class FieldEditorComponent {
@HostBinding('tabindex') tabindex = 0;

View File

@@ -2,9 +2,10 @@ import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, Output, QueryList, SimpleChanges, ViewChildren } from '@angular/core';
@Component({
selector: 'app-list-editor[list], app-list-editor[converter]',
templateUrl: './list-editor.component.html',
styleUrls: ['./list-editor.component.scss'],
selector: 'app-list-editor[list], app-list-editor[converter]',
templateUrl: './list-editor.component.html',
styleUrls: ['./list-editor.component.scss'],
standalone: false
})
export class ListEditorComponent implements OnChanges {
@HostBinding('tabindex') tabindex = 0;

View File

@@ -1,9 +1,10 @@
import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
@Component({
selector: 'app-room-chooser',
templateUrl: './room-chooser.component.html',
styleUrl: './room-chooser.component.scss'
selector: 'app-room-chooser',
templateUrl: './room-chooser.component.html',
styleUrl: './room-chooser.component.scss',
standalone: false
})
export class RoomChooserComponent implements OnChanges {
@Input() rooms: string[] = []

View File

@@ -15,18 +15,19 @@ export interface UserSearchResult {
}
@Component({
selector: 'app-user-search',
templateUrl: './user-search.component.html',
styleUrl: './user-search.component.scss',
providers: [
{
provide: MatFormFieldControl,
useExisting: UserSearchComponent
}
],
host: {
'(blur)': '_onTouched()'
}
selector: 'app-user-search',
templateUrl: './user-search.component.html',
styleUrl: './user-search.component.scss',
providers: [
{
provide: MatFormFieldControl,
useExisting: UserSearchComponent
}
],
host: {
'(blur)': '_onTouched()'
},
standalone: false
})
export class UserSearchComponent implements ControlValueAccessor, MatFormFieldControl<UserSearchResult>, OnDestroy, DoCheck {
protected loading: boolean = false

View File

@@ -2,7 +2,8 @@ import { Directive, HostBinding, Input, Optional } from '@angular/core';
import { ControlContainer } from '@angular/forms';
@Directive({
selector: 'span[control]'
selector: 'span[control]',
standalone: false
})
export class LabelDirective {
@Input() control: string = ""

View File

@@ -6,9 +6,10 @@ import { catchError, throwError } from 'rxjs';
import { LocalStorageService } from '../services/local-storage.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss'],
standalone: false
})
export class LoginComponent implements OnInit {
protected error: string | null = null;