diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 24bc559..6f40abc 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -194,6 +194,7 @@ import { PermissionSelectedPipe } from "./components/einstellungen/rollen-edit/p
import { AnschriftenOverviewComponent as AnschriftOverviewComponent } from "./components/anschriften/anschriften-overview/anschriften-overview.component";
import { AnschriftEditComponent } from "./components/anschriften/anschriften-edit/anschriften-edit.component";
import { MkjListCellComponent } from "./utilities/mkj-list/mkj-list-cell/mkj-list-cell.component";
+import { ListCellValuePipe } from "./utilities/mkj-list/mkj-list-cell/list-cell-value.pipe";
// FullCalendarModule.registerPlugins([
// dayGridPlugin,
@@ -331,6 +332,7 @@ registerLocaleData(localeDe);
MkjToolbarComponent,
AusrueckungEditorComponent,
RollenEditComponent,
+ ListCellValuePipe,
MkjTextTransformPipe,
MkjDisplayFieldComponent,
AatestComponent,
diff --git a/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.html b/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.html
index 4cb2d14..e5cdb0a 100644
--- a/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.html
+++ b/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.html
@@ -1,14 +1,11 @@
-
-
- {{ add.vorname }} {{ add.zuname }}{{ add.firma }}
-
-
-
+
+
+
+
diff --git a/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.ts b/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.ts
index c015408..12a501b 100644
--- a/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.ts
+++ b/src/app/components/anschriften/anschriften-overview/anschriften-overview.component.ts
@@ -2,26 +2,26 @@ import { Component } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
import { Anschrift } from "src/app/models/Anschrift";
import { PermissionMap } from "src/app/models/User";
-import { AnschriftenApiService } from "src/app/services/api/anschriften-api.service";
+import { UserService } from "src/app/services/authentication/user.service";
+import { AnschriftenListConfig } from "src/app/utilities/_list-configurations/anschriften-list-config.class";
+import { AnschriftenListDatasource } from "src/app/utilities/_list-datasources/anschriften-list-datasource.class";
import { MkjToolbarService } from "src/app/utilities/mkj-toolbar/mkj-toolbar.service";
@Component({
selector: "app-anschriften-overview",
templateUrl: "./anschriften-overview.component.html",
styleUrl: "./anschriften-overview.component.scss",
+ providers: [AnschriftenListConfig, AnschriftenListDatasource],
})
export class AnschriftenOverviewComponent {
- public adressen: Anschrift[];
-
constructor(
- private apiService: AnschriftenApiService,
- private toolbarService: MkjToolbarService,
+ public datasource: AnschriftenListDatasource,
+ public listConfig: AnschriftenListConfig,
+ toolbarService: MkjToolbarService,
private router: Router,
- private route: ActivatedRoute
+ private route: ActivatedRoute,
+ private userServie: UserService
) {
- apiService.getList().subscribe((list) => {
- this.adressen = list.values;
- });
toolbarService.header = "Adressen";
toolbarService.buttons = [
{
@@ -35,4 +35,12 @@ export class AnschriftenOverviewComponent {
},
];
}
+
+ public navigateToEdit(item: Anschrift): void {
+ if (this.userServie.hasPermission(PermissionMap.ANSCHRIFTEN_SAVE)) {
+ this.router.navigate([item.id], {
+ relativeTo: this.route,
+ });
+ }
+ }
}
diff --git a/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.html b/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.html
index e878110..c090b8e 100644
--- a/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.html
+++ b/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.html
@@ -1,29 +1,11 @@
-
-
-
- Bezeichnung |
- Marke |
-
- Register
- |
- |
-
-
-
-
- {{ item.bezeichnung }} |
- {{ item.marke }} |
- {{ item.gruppe?.name }} |
-
-
- |
-
+
+
+
+
diff --git a/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.ts b/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.ts
index 0111e5d..c9000ce 100644
--- a/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.ts
+++ b/src/app/components/archiv/instrumente/instrumente-overview/instrumente-overview.component.ts
@@ -1,48 +1,45 @@
-import { Component, OnInit } from "@angular/core";
+import { Component } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
import { Instrument } from "src/app/models/Instrument";
import { PermissionMap } from "src/app/models/User";
-import { MkjToolbarService } from "src/app/utilities/mkj-toolbar/mkj-toolbar.service";
import { AppConfigService } from "src/app/services/app-config.service";
-import { InstrumenteApiService } from "src/app/services/api/instrumente-api.service";
+import { UserService } from "src/app/services/authentication/user.service";
+import { InstrumenteListConfig } from "src/app/utilities/_list-configurations/instrumente-list-config.class";
+import { InstrumenteListDatasource } from "src/app/utilities/_list-datasources/instrumente-list-datasource.class";
+import { MkjToolbarService } from "src/app/utilities/mkj-toolbar/mkj-toolbar.service";
@Component({
selector: "app-instrumente-overview",
templateUrl: "./instrumente-overview.component.html",
styleUrls: ["./instrumente-overview.component.scss"],
+ providers: [InstrumenteListDatasource, InstrumenteListConfig],
})
-export class InstrumenteOverviewComponent implements OnInit {
- public values: Instrument[];
- public readonly PermissionMap = PermissionMap;
-
+export class InstrumenteOverviewComponent {
constructor(
- private toolbarService: MkjToolbarService,
- private apiService: InstrumenteApiService,
+ public datasource: InstrumenteListDatasource,
+ public listConfig: InstrumenteListConfig,
private router: Router,
private route: ActivatedRoute,
+ private userService: UserService,
+ toolbarService: MkjToolbarService,
configService: AppConfigService
) {
- this.toolbarService.header = configService.appNaming.Instrumente;
- this.toolbarService.backButton = null;
- this.toolbarService.buttons = [
+ toolbarService.header = configService.appNaming.Instrumente;
+ toolbarService.buttons = [
{
icon: "pi pi-plus",
label: "Neu",
permissions: [PermissionMap.INSTRUMENTE_SAVE],
- click: () => {
- this.router.navigate(["new"], { relativeTo: this.route });
- },
+ click: () => this.navigateEditor(),
},
];
}
- public ngOnInit(): void {
- this.apiService.getList(null).subscribe((data) => {
- this.values = data.values;
+ public navigateEditor(instrument?: Instrument): void {
+ if (!this.userService.hasPermission(PermissionMap.INSTRUMENTE_SAVE))
+ return;
+ this.router.navigate([instrument?.id ?? "new"], {
+ relativeTo: this.route,
});
}
-
- public navigateEditor(instrument: Instrument): void {
- this.router.navigate([instrument.id], { relativeTo: this.route });
- }
}
diff --git a/src/app/components/archiv/noten/noten-overview/noten-overview.component.html b/src/app/components/archiv/noten/noten-overview/noten-overview.component.html
index 1371e39..1df9d92 100644
--- a/src/app/components/archiv/noten/noten-overview/noten-overview.component.html
+++ b/src/app/components/archiv/noten/noten-overview/noten-overview.component.html
@@ -4,6 +4,7 @@
[templateMap]="{
rowexpansion: rowexpansion,
}"
+ (onDoubleClick)="navigateToEditView($event)"
>
diff --git a/src/app/components/archiv/noten/noten-overview/noten-overview.component.ts b/src/app/components/archiv/noten/noten-overview/noten-overview.component.ts
index d944864..b0e7898 100644
--- a/src/app/components/archiv/noten/noten-overview/noten-overview.component.ts
+++ b/src/app/components/archiv/noten/noten-overview/noten-overview.component.ts
@@ -3,6 +3,7 @@ import { ActivatedRoute, Router } from "@angular/router";
import { Noten } from "src/app/models/Noten";
import { PermissionMap } from "src/app/models/User";
import { AppConfigService } from "src/app/services/app-config.service";
+import { UserService } from "src/app/services/authentication/user.service";
import { NotenListConfig } from "src/app/utilities/_list-configurations/noten-list-config.class";
import { NotenListDatasource } from "src/app/utilities/_list-datasources/noten-list-datasource.class";
import { MkjToolbarService } from "src/app/utilities/mkj-toolbar/mkj-toolbar.service";
@@ -22,7 +23,8 @@ export class NotenOverviewComponent {
private toolbarService: MkjToolbarService,
private router: Router,
private route: ActivatedRoute,
- private namingService: AppConfigService
+ private namingService: AppConfigService,
+ private userService: UserService
) {
this.toolbarService.header = this.namingService.appNaming.Noten;
this.toolbarService.buttons = [
@@ -36,6 +38,9 @@ export class NotenOverviewComponent {
}
public navigateToEditView(noten?: Noten) {
+ if (!this.userService.hasPermission(PermissionMap.NOTEN_SAVE)) {
+ return;
+ }
this.router.navigate([noten?.id ?? "new"], { relativeTo: this.route });
}
}
diff --git a/src/app/components/einstellungen/rollen-edit/permission-included.pipe.ts b/src/app/components/einstellungen/rollen-edit/permission-included.pipe.ts
index f54195c..c5c337f 100644
--- a/src/app/components/einstellungen/rollen-edit/permission-included.pipe.ts
+++ b/src/app/components/einstellungen/rollen-edit/permission-included.pipe.ts
@@ -5,7 +5,7 @@ import { Permission } from "../../../models/User";
name: "permissionIncluded",
})
export class PermissionSelectedPipe implements PipeTransform {
- transform(value: Permission, permissions: Permission[]) {
+ public transform(value: Permission, permissions: Permission[]) {
return permissions?.some((p) => p.id === value.id);
}
}
diff --git a/src/app/pages/login/login.component.html b/src/app/pages/login/login.component.html
index 4254cd3..50c7cc7 100644
--- a/src/app/pages/login/login.component.html
+++ b/src/app/pages/login/login.component.html
@@ -1,4 +1,7 @@
-
+
diff --git a/src/app/pages/signup/signup.component.html b/src/app/pages/signup/signup.component.html
index 710fb6e..26a4a45 100644
--- a/src/app/pages/signup/signup.component.html
+++ b/src/app/pages/signup/signup.component.html
@@ -1,4 +1,7 @@
-
+
diff --git a/src/app/utilities/_list-configurations/_list-configuration.class.ts b/src/app/utilities/_list-configurations/_list-configuration.class.ts
index b4a65ca..e60218d 100644
--- a/src/app/utilities/_list-configurations/_list-configuration.class.ts
+++ b/src/app/utilities/_list-configurations/_list-configuration.class.ts
@@ -2,23 +2,31 @@ export interface ListConfiguration
{
listName: string;
columns: MkjListColumn[];
showTotalCount?: boolean;
- sort?: {
- field: string;
- order: number;
- };
- globalFilter?: {
- fields: string[];
- matchMode?: string;
- };
+ sort?: MkjListSortConfiguration;
+ globalFilter?: MkjListGlobalFilterConfiguration;
}
export interface MkjListColumn {
- type: "string" | "currency" | "date" | "boolean" | "template";
+ type: "string" | "currency" | "date" | "boolean" | "template" | "value";
header?: string;
field?: keyof T;
+ templateName?: string;
styleClass?: string;
sortable?: boolean;
- filter?: {
- filterOptions?: any;
- };
+ filter?: MkjListColumnFilter;
+ getValue?: (item: T) => any;
+}
+
+export interface MkjListSortConfiguration {
+ field: keyof T;
+ order: number;
+}
+
+export interface MkjListGlobalFilterConfiguration {
+ fields: Array;
+ matchMode?: string;
+}
+
+export interface MkjListColumnFilter {
+ filterOptions?: any;
}
diff --git a/src/app/utilities/_list-configurations/anschriften-list-config.class.ts b/src/app/utilities/_list-configurations/anschriften-list-config.class.ts
new file mode 100644
index 0000000..c165ad6
--- /dev/null
+++ b/src/app/utilities/_list-configurations/anschriften-list-config.class.ts
@@ -0,0 +1,43 @@
+import { Noten, NotenGattungMap } from "src/app/models/Noten";
+import {
+ ListConfiguration,
+ MkjListColumn,
+ MkjListGlobalFilterConfiguration,
+ MkjListSortConfiguration,
+} from "./_list-configuration.class";
+import { Injectable } from "@angular/core";
+import { Anschrift } from "src/app/models/Anschrift";
+
+@Injectable()
+export class AnschriftenListConfig implements ListConfiguration {
+ listName: string = "Anschriften";
+ showTotalCount = true;
+ sort: MkjListSortConfiguration = {
+ field: "zuname",
+ order: 1,
+ };
+ globalFilter: MkjListGlobalFilterConfiguration = {
+ fields: ["vorname", "zuname", "firma"],
+ matchMode: "contains",
+ };
+ columns: MkjListColumn[] = [
+ {
+ header: "Vorname",
+ field: "vorname",
+ type: "string",
+ sortable: true,
+ },
+ {
+ header: "Nachname",
+ field: "zuname",
+ type: "string",
+ sortable: true,
+ },
+ {
+ header: "Firma",
+ field: "firma",
+ type: "string",
+ sortable: true,
+ },
+ ];
+}
diff --git a/src/app/utilities/_list-configurations/instrumente-list-config.class.ts b/src/app/utilities/_list-configurations/instrumente-list-config.class.ts
new file mode 100644
index 0000000..ecb1ee0
--- /dev/null
+++ b/src/app/utilities/_list-configurations/instrumente-list-config.class.ts
@@ -0,0 +1,48 @@
+import { Noten, NotenGattungMap } from "src/app/models/Noten";
+import {
+ ListConfiguration,
+ MkjListColumn,
+ MkjListGlobalFilterConfiguration,
+ MkjListSortConfiguration,
+} from "./_list-configuration.class";
+import { Injectable } from "@angular/core";
+import { Anschrift } from "src/app/models/Anschrift";
+import { Instrument } from "src/app/models/Instrument";
+import { AppConfigService } from "src/app/services/app-config.service";
+
+@Injectable()
+export class InstrumenteListConfig implements ListConfiguration {
+ constructor(private appNaming: AppConfigService) {}
+
+ listName: string = "Instrumente";
+ showTotalCount = true;
+ sort: MkjListSortConfiguration = {
+ field: "marke",
+ order: 1,
+ };
+ globalFilter: MkjListGlobalFilterConfiguration = {
+ fields: ["bezeichnung", "marke"],
+ matchMode: "contains",
+ };
+ columns: MkjListColumn[] = [
+ {
+ header: "Bezeichung",
+ field: "bezeichnung",
+ type: "string",
+ sortable: true,
+ },
+ {
+ header: "Marke",
+ field: "marke",
+ type: "string",
+ sortable: true,
+ },
+ {
+ header: this.appNaming.appNaming.Gruppen,
+ field: null,
+ templateName: "gruppen",
+ type: "value",
+ getValue: (item: Instrument) => item.gruppe?.name,
+ },
+ ];
+}
diff --git a/src/app/utilities/_list-configurations/noten-list-config.class.ts b/src/app/utilities/_list-configurations/noten-list-config.class.ts
index d886042..dc4dcff 100644
--- a/src/app/utilities/_list-configurations/noten-list-config.class.ts
+++ b/src/app/utilities/_list-configurations/noten-list-config.class.ts
@@ -1,16 +1,21 @@
import { Noten, NotenGattungMap } from "src/app/models/Noten";
-import { ListConfiguration, MkjListColumn } from "./_list-configuration.class";
+import {
+ ListConfiguration,
+ MkjListColumn,
+ MkjListGlobalFilterConfiguration,
+ MkjListSortConfiguration,
+} from "./_list-configuration.class";
import { Injectable } from "@angular/core";
@Injectable()
export class NotenListConfig implements ListConfiguration {
listName: string = "Noten";
showTotalCount = true;
- sort = {
+ sort: MkjListSortConfiguration = {
field: "titel",
order: 1,
};
- globalFilter = {
+ globalFilter: MkjListGlobalFilterConfiguration = {
fields: ["titel", "komponist", "arrangeur"],
matchMode: "contains",
};
@@ -47,7 +52,10 @@ export class NotenListConfig implements ListConfiguration {
styleClass: "not-on-small",
sortable: true,
filter: {
- filterOptions: NotenGattungMap,
+ filterOptions: [
+ { label: "Kein Filter", value: null },
+ ...NotenGattungMap,
+ ],
},
},
];
diff --git a/src/app/utilities/_list-datasources/anschriften-list-datasource.class.ts b/src/app/utilities/_list-datasources/anschriften-list-datasource.class.ts
new file mode 100644
index 0000000..eb04448
--- /dev/null
+++ b/src/app/utilities/_list-datasources/anschriften-list-datasource.class.ts
@@ -0,0 +1,22 @@
+import { Injectable } from "@angular/core";
+import { Observable } from "rxjs";
+import { GetListOutput } from "src/app/interfaces/api-middleware";
+import { Anschrift } from "src/app/models/Anschrift";
+import { AnschriftenApiService } from "src/app/services/api/anschriften-api.service";
+import { TileValue } from "../mkj-tile-view/mkj-tile-view.component";
+import { AbstractListDatasource } from "./_abstract-list-datasource.class";
+
+@Injectable()
+export class AnschriftenListDatasource extends AbstractListDatasource {
+ constructor(private apiService: AnschriftenApiService) {
+ super();
+ }
+
+ public getList(): Observable> {
+ return this.apiService.getList();
+ }
+
+ public mapToTileValue(item: Anschrift): TileValue {
+ throw new Error("Method not implemented.");
+ }
+}
diff --git a/src/app/utilities/_list-datasources/instrumente-list-datasource.class.ts b/src/app/utilities/_list-datasources/instrumente-list-datasource.class.ts
new file mode 100644
index 0000000..ae61fa1
--- /dev/null
+++ b/src/app/utilities/_list-datasources/instrumente-list-datasource.class.ts
@@ -0,0 +1,22 @@
+import { Injectable } from "@angular/core";
+import { Observable } from "rxjs";
+import { GetListOutput } from "src/app/interfaces/api-middleware";
+import { Instrument } from "src/app/models/Instrument";
+import { InstrumenteApiService } from "src/app/services/api/instrumente-api.service";
+import { TileValue } from "../mkj-tile-view/mkj-tile-view.component";
+import { AbstractListDatasource } from "./_abstract-list-datasource.class";
+
+@Injectable()
+export class InstrumenteListDatasource extends AbstractListDatasource {
+ constructor(private apiService: InstrumenteApiService) {
+ super();
+ }
+
+ public getList(): Observable> {
+ return this.apiService.getList();
+ }
+
+ public mapToTileValue(item: Instrument): TileValue {
+ throw new Error("Method not implemented.");
+ }
+}
diff --git a/src/app/utilities/form-components/_abstract-form-component.class.ts b/src/app/utilities/form-components/_abstract-form-component.class.ts
index 1932f32..61fe5e2 100644
--- a/src/app/utilities/form-components/_abstract-form-component.class.ts
+++ b/src/app/utilities/form-components/_abstract-form-component.class.ts
@@ -119,15 +119,20 @@ export abstract class AbstractFormComponent implements OnDestroy {
}
public delete(): void {
- this._loading.next(true);
- if (this.getId() === "new") {
+ const id = this.getId();
+ if (id === "new") {
throw new Error("Cannot delete unsaved data");
}
this.infoService
- .confirmDelete(null, () => this.apiService.delete(this.getId()))
+ .confirmDelete(null, () => {
+ this._loading.next(true);
+ return this.apiService.delete(id);
+ })
.subscribe({
next: () => {
this.infoService.success("Gelöscht");
+ this.formGroup.markAsPristine();
+ this.formGroup.markAsUntouched();
this.router.navigate([this.navigateBackRouteString], {
relativeTo: this.route,
});
@@ -149,6 +154,7 @@ export abstract class AbstractFormComponent implements OnDestroy {
this._loadedModel = data;
this.formGroup.patchValue(data);
this.formGroup.markAsPristine();
+ this.formGroup.markAsUntouched();
this._loading.next(false);
},
});
diff --git a/src/app/utilities/mkj-list/mkj-list-cell/list-cell-value.pipe.ts b/src/app/utilities/mkj-list/mkj-list-cell/list-cell-value.pipe.ts
new file mode 100644
index 0000000..3e43339
--- /dev/null
+++ b/src/app/utilities/mkj-list/mkj-list-cell/list-cell-value.pipe.ts
@@ -0,0 +1,10 @@
+import { Pipe, PipeTransform } from "@angular/core";
+
+@Pipe({
+ name: "listCellValue",
+})
+export class ListCellValuePipe implements PipeTransform {
+ public transform(value: unknown, getFn: (item: any) => any): unknown {
+ return getFn(value);
+ }
+}
diff --git a/src/app/utilities/mkj-list/mkj-list-cell/mkj-list-cell.component.html b/src/app/utilities/mkj-list/mkj-list-cell/mkj-list-cell.component.html
index e9c1dd5..12eb715 100644
--- a/src/app/utilities/mkj-list/mkj-list-cell/mkj-list-cell.component.html
+++ b/src/app/utilities/mkj-list/mkj-list-cell/mkj-list-cell.component.html
@@ -1,4 +1,7 @@
+ {{
+ value | listCellValue : colConfig?.getValue
+ }}
{{ value?.[colConfig?.field] }}
diff --git a/src/app/utilities/mkj-list/mkj-list.component.html b/src/app/utilities/mkj-list/mkj-list.component.html
index 67ee5cb..6753b3e 100644
--- a/src/app/utilities/mkj-list/mkj-list.component.html
+++ b/src/app/utilities/mkj-list/mkj-list.component.html
@@ -54,8 +54,8 @@
matchMode="equals"
display="menu"
[showOperator]="false"
- [showClearButton]="true"
- [showApplyButton]="true"
+ [showClearButton]="false"
+ [showApplyButton]="false"
[showMatchModes]="false"
[showAddButton]="false"
[hideOnClear]="true"
@@ -106,7 +106,11 @@
let-expanded="expanded"
let-rowIndex="rowIndex"
>
-
+
|
-
+
-
+
+
+ |
diff --git a/src/app/utilities/mkj-list/mkj-list.component.ts b/src/app/utilities/mkj-list/mkj-list.component.ts
index 97b016b..ee8cf07 100644
--- a/src/app/utilities/mkj-list/mkj-list.component.ts
+++ b/src/app/utilities/mkj-list/mkj-list.component.ts
@@ -1,7 +1,9 @@
import {
Component,
+ EventEmitter,
Input,
OnInit,
+ Output,
TemplateRef,
ViewChild,
signal,
@@ -29,6 +31,9 @@ export class MkjListComponent implements OnInit {
@Input()
public templateMap: { [key: string]: TemplateRef };
+ @Output()
+ public onDoubleClick: EventEmitter = new EventEmitter();
+
public readonly loading$ = signal(false);
public values: T[] = [];
diff --git a/src/configurations/primeTranslation.ts b/src/configurations/primeTranslation.ts
index a701fff..e462066 100644
--- a/src/configurations/primeTranslation.ts
+++ b/src/configurations/primeTranslation.ts
@@ -31,6 +31,7 @@ export const MkjPrimeTranslation: Translation = {
choose: "Wähle",
upload: "Upload",
cancel: "Abbrechen",
+ fileSizeTypes: null,
dayNames: [
"Sonntag",
"Montag",
@@ -42,6 +43,7 @@ export const MkjPrimeTranslation: Translation = {
],
dayNamesShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
dayNamesMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
+ firstDayOfWeek: 1,
monthNames: [
"Januar",
"Februar",
@@ -79,4 +81,27 @@ export const MkjPrimeTranslation: Translation = {
passwordPrompt: "Passwort eingeben",
emptyMessage: "Keine Ergebnise gefunden",
emptyFilterMessage: "Keine Ergebnise gefunden",
+ pending: "Wartet...",
+ chooseYear: "Wähle Jahr",
+ chooseMonth: "Wähle Monat",
+ chooseDate: "Wähle Datum",
+ prevDecade: "voriges Jahrzehnt",
+ nextDecade: "nächstes Jahrzehnt",
+ prevYear: "vorheriges Jahr",
+ nextYear: "nächstes Jahr",
+ prevMonth: "vorheriger Monat",
+ nextMonth: "nächster Monat",
+ prevHour: "vorherige Stunde",
+ nextHour: "nächste Stunde",
+ prevMinute: "vorherige Minute",
+ nextMinute: "nächste Minute",
+ prevSecond: "vorherige Sekunde",
+ nextSecond: "nächste Sekunde",
+ am: "Vormittag",
+ pm: "Nachmittag",
+ searchMessage: "Suchtext",
+ selectionMessage: "Auswahltext",
+ emptySelectionMessage: "Keine Auswahl",
+ emptySearchMessage: "Kein Suchtext",
+ aria: null,
};