@mk-kit/ui 0.53.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/fesm2022/mk-kit-ui-core.mjs +2 -0
- package/fesm2022/mk-kit-ui-core.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-dnd.mjs +339 -27
- package/fesm2022/mk-kit-ui-dnd.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-kanban.mjs +81 -9
- package/fesm2022/mk-kit-ui-kanban.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-locales-de.mjs +2 -0
- package/fesm2022/mk-kit-ui-locales-de.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-locales-es.mjs +2 -0
- package/fesm2022/mk-kit-ui-locales-es.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-locales-fr.mjs +2 -0
- package/fesm2022/mk-kit-ui-locales-fr.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-locales-pl.mjs +2 -0
- package/fesm2022/mk-kit-ui-locales-pl.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-locales-uk.mjs +2 -0
- package/fesm2022/mk-kit-ui-locales-uk.mjs.map +1 -1
- package/fesm2022/mk-kit-ui-translate-server.mjs +55 -0
- package/fesm2022/mk-kit-ui-translate-server.mjs.map +1 -0
- package/fesm2022/mk-kit-ui-translate.mjs +417 -0
- package/fesm2022/mk-kit-ui-translate.mjs.map +1 -0
- package/fesm2022/mk-kit-ui.mjs +1 -0
- package/fesm2022/mk-kit-ui.mjs.map +1 -1
- package/package.json +13 -1
- package/styles/presets/momentum.css +272 -0
- package/types/mk-kit-ui-core.d.ts +4 -0
- package/types/mk-kit-ui-dnd.d.ts +178 -6
- package/types/mk-kit-ui-kanban.d.ts +68 -13
- package/types/mk-kit-ui-translate-server.d.ts +39 -0
- package/types/mk-kit-ui-translate.d.ts +251 -0
- package/types/mk-kit-ui.d.ts +1 -0
|
@@ -1,11 +1,51 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { model, input, booleanAttribute, output, contentChild,
|
|
3
|
+
import { inject, TemplateRef, Directive, model, input, booleanAttribute, output, contentChild, contentChildren, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { mkUniqueId } from '@mk-kit/ui/core';
|
|
5
5
|
import { mkMoveItemInArray, MkDropList, MkDrag } from '@mk-kit/ui/dnd';
|
|
6
6
|
|
|
7
7
|
/** Stable empty fallback so out-of-range lookups don't allocate per call. */
|
|
8
8
|
const NO_CONNECTIONS = [];
|
|
9
|
+
/**
|
|
10
|
+
* Marks the projected card renderer explicitly:
|
|
11
|
+
* `<ng-template mkKanbanCard let-card let-column="column">`. Without it the
|
|
12
|
+
* first plain `<ng-template>` inside `<mk-kanban>` is used, as before 0.54.
|
|
13
|
+
*/
|
|
14
|
+
class MkKanbanCardDef {
|
|
15
|
+
template = inject(TemplateRef);
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanbanCardDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MkKanbanCardDef, isStandalone: true, selector: "ng-template[mkKanbanCard]", ngImport: i0 });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanbanCardDef, decorators: [{
|
|
20
|
+
type: Directive,
|
|
21
|
+
args: [{ selector: 'ng-template[mkKanbanCard]' }]
|
|
22
|
+
}] });
|
|
23
|
+
/**
|
|
24
|
+
* Replaces the default column header (title + count):
|
|
25
|
+
* `<ng-template mkKanbanColumnHeader let-column let-count="count">`.
|
|
26
|
+
*/
|
|
27
|
+
class MkKanbanColumnHeaderDef {
|
|
28
|
+
template = inject(TemplateRef);
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanbanColumnHeaderDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MkKanbanColumnHeaderDef, isStandalone: true, selector: "ng-template[mkKanbanColumnHeader]", ngImport: i0 });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanbanColumnHeaderDef, decorators: [{
|
|
33
|
+
type: Directive,
|
|
34
|
+
args: [{ selector: 'ng-template[mkKanbanColumnHeader]' }]
|
|
35
|
+
}] });
|
|
36
|
+
/**
|
|
37
|
+
* Rendered under each column's card list — a "quick add" input, say:
|
|
38
|
+
* `<ng-template mkKanbanColumnFooter let-column>`.
|
|
39
|
+
*/
|
|
40
|
+
class MkKanbanColumnFooterDef {
|
|
41
|
+
template = inject(TemplateRef);
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanbanColumnFooterDef, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
43
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MkKanbanColumnFooterDef, isStandalone: true, selector: "ng-template[mkKanbanColumnFooter]", ngImport: i0 });
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanbanColumnFooterDef, decorators: [{
|
|
46
|
+
type: Directive,
|
|
47
|
+
args: [{ selector: 'ng-template[mkKanbanColumnFooter]' }]
|
|
48
|
+
}] });
|
|
9
49
|
/**
|
|
10
50
|
* Kanban board — a horizontal row of columns whose cards can be dragged and
|
|
11
51
|
* reordered within a column or transferred between columns. Built on the dnd
|
|
@@ -14,13 +54,22 @@ const NO_CONNECTIONS = [];
|
|
|
14
54
|
*
|
|
15
55
|
* Bind `columns` two-way; the model is updated immutably on each drop. Project
|
|
16
56
|
* an `<ng-template>` to render custom card content — it receives the card as
|
|
17
|
-
* `$implicit` and the owning column as `column
|
|
57
|
+
* `$implicit` and the owning column as `column`. Column headers and footers
|
|
58
|
+
* take their own templates (`mkKanbanColumnHeader` / `mkKanbanColumnFooter`,
|
|
59
|
+
* context `{ $implicit: column, index, count }`):
|
|
18
60
|
*
|
|
19
61
|
* ```html
|
|
20
62
|
* <mk-kanban [(columns)]="board" (cardMoved)="onMoved($event)">
|
|
21
|
-
* <ng-template
|
|
63
|
+
* <ng-template mkKanbanColumnHeader let-column let-count="count">
|
|
64
|
+
* <strong>{{ column.title }}</strong> {{ count }}
|
|
65
|
+
* <button (click)="rename(column)">Rename</button>
|
|
66
|
+
* </ng-template>
|
|
67
|
+
* <ng-template mkKanbanCard let-card let-column="column">
|
|
22
68
|
* <strong>{{ card.title }}</strong>
|
|
23
69
|
* </ng-template>
|
|
70
|
+
* <ng-template mkKanbanColumnFooter let-column>
|
|
71
|
+
* <button (click)="add(column)">+ Card</button>
|
|
72
|
+
* </ng-template>
|
|
24
73
|
* </mk-kanban>
|
|
25
74
|
* ```
|
|
26
75
|
*/
|
|
@@ -32,9 +81,32 @@ class MkKanban {
|
|
|
32
81
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
33
82
|
/** Emitted after the model is updated when a card is moved. */
|
|
34
83
|
cardMoved = output();
|
|
35
|
-
|
|
36
|
-
|
|
84
|
+
cardDef = contentChild(MkKanbanCardDef, /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "cardDef" }] : /* istanbul ignore next */ []));
|
|
86
|
+
headerDef = contentChild(MkKanbanColumnHeaderDef, /* @ts-ignore */
|
|
87
|
+
...(ngDevMode ? [{ debugName: "headerDef" }] : /* istanbul ignore next */ []));
|
|
88
|
+
footerDef = contentChild(MkKanbanColumnFooterDef, /* @ts-ignore */
|
|
89
|
+
...(ngDevMode ? [{ debugName: "footerDef" }] : /* istanbul ignore next */ []));
|
|
90
|
+
/** Every projected template, for the pre-0.54 "first plain template is the card" rule. */
|
|
91
|
+
templates = contentChildren(TemplateRef, /* @ts-ignore */
|
|
92
|
+
...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
|
|
93
|
+
/** Consumer-projected card renderer: `[mkKanbanCard]`, else the first template that is not a header/footer. */
|
|
94
|
+
cardTemplate = computed(() => {
|
|
95
|
+
const explicit = this.cardDef()?.template;
|
|
96
|
+
if (explicit)
|
|
97
|
+
return explicit;
|
|
98
|
+
// A query and a directive's injected TemplateRef are different instances
|
|
99
|
+
// of the same template — compare their anchor nodes.
|
|
100
|
+
const taken = new Set([this.headerDef(), this.footerDef()].map((d) => d?.template.elementRef.nativeElement));
|
|
101
|
+
return this.templates().find((t) => !taken.has(t.elementRef.nativeElement));
|
|
102
|
+
}, /* @ts-ignore */
|
|
37
103
|
...(ngDevMode ? [{ debugName: "cardTemplate" }] : /* istanbul ignore next */ []));
|
|
104
|
+
/** Optional column header renderer (replaces title + count). */
|
|
105
|
+
headerTemplate = computed(() => this.headerDef()?.template, /* @ts-ignore */
|
|
106
|
+
...(ngDevMode ? [{ debugName: "headerTemplate" }] : /* istanbul ignore next */ []));
|
|
107
|
+
/** Optional column footer renderer (under the card list). */
|
|
108
|
+
footerTemplate = computed(() => this.footerDef()?.template, /* @ts-ignore */
|
|
109
|
+
...(ngDevMode ? [{ debugName: "footerTemplate" }] : /* istanbul ignore next */ []));
|
|
38
110
|
/** Board-scoped prefix so this board's drop-list ids never collide. */
|
|
39
111
|
boardId = mkUniqueId('mk-kanban');
|
|
40
112
|
/** Column count as its own computed so id arrays survive card-only updates. */
|
|
@@ -111,12 +183,12 @@ class MkKanban {
|
|
|
111
183
|
});
|
|
112
184
|
}
|
|
113
185
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanban, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MkKanban, isStandalone: true, selector: "mk-kanban", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { columns: "columnsChange", cardMoved: "cardMoved" }, host: { classAttribute: "mk-kanban" }, queries: [{ propertyName: "
|
|
186
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MkKanban, isStandalone: true, selector: "mk-kanban", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { columns: "columnsChange", cardMoved: "cardMoved" }, host: { classAttribute: "mk-kanban" }, queries: [{ propertyName: "cardDef", first: true, predicate: MkKanbanCardDef, descendants: true, isSignal: true }, { propertyName: "headerDef", first: true, predicate: MkKanbanColumnHeaderDef, descendants: true, isSignal: true }, { propertyName: "footerDef", first: true, predicate: MkKanbanColumnFooterDef, descendants: true, isSignal: true }, { propertyName: "templates", predicate: TemplateRef, isSignal: true }], ngImport: i0, template: "<div class=\"mk-kanban__board\">\n @for (column of columns(); track column.id; let colIndex = $index) {\n <section\n class=\"mk-kanban__column\"\n role=\"region\"\n [attr.aria-label]=\"column.title\"\n >\n <header class=\"mk-kanban__column-header\">\n @if (headerTemplate(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: column, index: colIndex, count: column.cards.length }\"\n />\n } @else {\n <span class=\"mk-kanban__column-title\">{{ column.title }}</span>\n <span class=\"mk-kanban__column-count\" aria-hidden=\"true\">\n {{ column.cards.length }}\n </span>\n }\n </header>\n\n <div\n mkDropList\n class=\"mk-kanban__cards\"\n [mkDropListData]=\"column.cards\"\n [mkDropListId]=\"listIds()[colIndex]\"\n [mkDropListLabel]=\"column.title\"\n [mkDropListConnectedTo]=\"connectedTo(colIndex)\"\n [mkDropListDisabled]=\"disabled()\"\n mkDropListOrientation=\"vertical\"\n (mkDropListDropped)=\"onDrop($event)\"\n >\n @for (card of column.cards; track card.id) {\n <div\n mkDrag\n class=\"mk-kanban__card\"\n [mkDragData]=\"card\"\n [mkDragDisabled]=\"disabled()\"\n >\n <ng-container\n [ngTemplateOutlet]=\"cardTemplate() ?? defaultCard\"\n [ngTemplateOutletContext]=\"{ $implicit: card, column: column }\"\n />\n </div>\n }\n </div>\n\n @if (footerTemplate(); as footer) {\n <div class=\"mk-kanban__column-footer\">\n <ng-container\n [ngTemplateOutlet]=\"footer\"\n [ngTemplateOutletContext]=\"{ $implicit: column, index: colIndex, count: column.cards.length }\"\n />\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template #defaultCard let-card>\n <span class=\"mk-kanban__card-title\">{{ card.title }}</span>\n</ng-template>\n", styles: [":host{display:block;color:var(--mk-text)}.mk-kanban__board{display:flex;gap:var(--mk-space-4);align-items:flex-start;overflow-x:auto;padding-bottom:var(--mk-space-2)}.mk-kanban__column{display:flex;flex-direction:column;flex:0 0 auto;width:17rem;max-height:100%;background-color:var(--mk-surface-2);border:var(--mk-border-width) solid var(--mk-border);border-radius:var(--mk-radius-lg)}.mk-kanban__column-header{display:flex;align-items:center;justify-content:space-between;gap:var(--mk-space-2);padding:var(--mk-space-3) var(--mk-space-4);font-weight:600;border-bottom:var(--mk-border-width) solid var(--mk-border)}.mk-kanban__column-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mk-kanban__column-count{flex:0 0 auto;min-width:1.5rem;padding:0 var(--mk-space-2);font-size:.75rem;font-weight:600;line-height:1.5rem;text-align:center;color:var(--mk-text-muted);background-color:var(--mk-surface);border-radius:var(--mk-radius-md)}.mk-kanban__cards{display:flex;flex-direction:column;gap:var(--mk-space-2);flex:1 1 auto;min-height:var(--mk-space-8);padding:var(--mk-space-3);overflow-y:auto}.mk-kanban__column-footer{flex:0 0 auto;padding:var(--mk-space-2) var(--mk-space-3) var(--mk-space-3);border-top:var(--mk-border-width) solid var(--mk-border)}.mk-kanban__card{padding:var(--mk-space-3) var(--mk-space-4);background-color:var(--mk-surface);border:var(--mk-border-width) solid var(--mk-border);border-radius:var(--mk-radius-md);box-shadow:var(--mk-shadow-sm)}.mk-kanban__card:focus-visible{outline:var(--mk-focus-ring-width) solid var(--mk-focus-ring);outline-offset:var(--mk-focus-ring-offset)}.mk-kanban__card-title{display:block;min-width:0;overflow-wrap:anywhere}\n"], dependencies: [{ kind: "component", type: MkDropList, selector: "[mkDropList]", inputs: ["mkDropListData", "mkDropListId", "mkDropListConnectedTo", "mkDropListLabel", "mkDropListLabelledBy", "mkDropListOrientation", "mkDropListDisabled"], outputs: ["mkDropListDropped"], exportAs: ["mkDropList"] }, { kind: "component", type: MkDrag, selector: "[mkDrag]", inputs: ["mkDragData", "mkDragDisabled", "mkDragTouchDelay"], exportAs: ["mkDrag"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
115
187
|
}
|
|
116
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MkKanban, decorators: [{
|
|
117
189
|
type: Component,
|
|
118
|
-
args: [{ selector: 'mk-kanban', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MkDropList, MkDrag, NgTemplateOutlet], host: { class: 'mk-kanban' }, template: "<div class=\"mk-kanban__board\">\n @for (column of columns(); track column.id; let colIndex = $index) {\n <section\n class=\"mk-kanban__column\"\n role=\"region\"\n [attr.aria-label]=\"column.title\"\n >\n <header class=\"mk-kanban__column-header\">\n <span class=\"mk-kanban__column-title\">{{ column.title }}</span>\n
|
|
119
|
-
}], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }, { type: i0.Output, args: ["columnsChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], cardMoved: [{ type: i0.Output, args: ["cardMoved"] }],
|
|
190
|
+
args: [{ selector: 'mk-kanban', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MkDropList, MkDrag, NgTemplateOutlet], host: { class: 'mk-kanban' }, template: "<div class=\"mk-kanban__board\">\n @for (column of columns(); track column.id; let colIndex = $index) {\n <section\n class=\"mk-kanban__column\"\n role=\"region\"\n [attr.aria-label]=\"column.title\"\n >\n <header class=\"mk-kanban__column-header\">\n @if (headerTemplate(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: column, index: colIndex, count: column.cards.length }\"\n />\n } @else {\n <span class=\"mk-kanban__column-title\">{{ column.title }}</span>\n <span class=\"mk-kanban__column-count\" aria-hidden=\"true\">\n {{ column.cards.length }}\n </span>\n }\n </header>\n\n <div\n mkDropList\n class=\"mk-kanban__cards\"\n [mkDropListData]=\"column.cards\"\n [mkDropListId]=\"listIds()[colIndex]\"\n [mkDropListLabel]=\"column.title\"\n [mkDropListConnectedTo]=\"connectedTo(colIndex)\"\n [mkDropListDisabled]=\"disabled()\"\n mkDropListOrientation=\"vertical\"\n (mkDropListDropped)=\"onDrop($event)\"\n >\n @for (card of column.cards; track card.id) {\n <div\n mkDrag\n class=\"mk-kanban__card\"\n [mkDragData]=\"card\"\n [mkDragDisabled]=\"disabled()\"\n >\n <ng-container\n [ngTemplateOutlet]=\"cardTemplate() ?? defaultCard\"\n [ngTemplateOutletContext]=\"{ $implicit: card, column: column }\"\n />\n </div>\n }\n </div>\n\n @if (footerTemplate(); as footer) {\n <div class=\"mk-kanban__column-footer\">\n <ng-container\n [ngTemplateOutlet]=\"footer\"\n [ngTemplateOutletContext]=\"{ $implicit: column, index: colIndex, count: column.cards.length }\"\n />\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template #defaultCard let-card>\n <span class=\"mk-kanban__card-title\">{{ card.title }}</span>\n</ng-template>\n", styles: [":host{display:block;color:var(--mk-text)}.mk-kanban__board{display:flex;gap:var(--mk-space-4);align-items:flex-start;overflow-x:auto;padding-bottom:var(--mk-space-2)}.mk-kanban__column{display:flex;flex-direction:column;flex:0 0 auto;width:17rem;max-height:100%;background-color:var(--mk-surface-2);border:var(--mk-border-width) solid var(--mk-border);border-radius:var(--mk-radius-lg)}.mk-kanban__column-header{display:flex;align-items:center;justify-content:space-between;gap:var(--mk-space-2);padding:var(--mk-space-3) var(--mk-space-4);font-weight:600;border-bottom:var(--mk-border-width) solid var(--mk-border)}.mk-kanban__column-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mk-kanban__column-count{flex:0 0 auto;min-width:1.5rem;padding:0 var(--mk-space-2);font-size:.75rem;font-weight:600;line-height:1.5rem;text-align:center;color:var(--mk-text-muted);background-color:var(--mk-surface);border-radius:var(--mk-radius-md)}.mk-kanban__cards{display:flex;flex-direction:column;gap:var(--mk-space-2);flex:1 1 auto;min-height:var(--mk-space-8);padding:var(--mk-space-3);overflow-y:auto}.mk-kanban__column-footer{flex:0 0 auto;padding:var(--mk-space-2) var(--mk-space-3) var(--mk-space-3);border-top:var(--mk-border-width) solid var(--mk-border)}.mk-kanban__card{padding:var(--mk-space-3) var(--mk-space-4);background-color:var(--mk-surface);border:var(--mk-border-width) solid var(--mk-border);border-radius:var(--mk-radius-md);box-shadow:var(--mk-shadow-sm)}.mk-kanban__card:focus-visible{outline:var(--mk-focus-ring-width) solid var(--mk-focus-ring);outline-offset:var(--mk-focus-ring-offset)}.mk-kanban__card-title{display:block;min-width:0;overflow-wrap:anywhere}\n"] }]
|
|
191
|
+
}], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }, { type: i0.Output, args: ["columnsChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], cardMoved: [{ type: i0.Output, args: ["cardMoved"] }], cardDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MkKanbanCardDef), { isSignal: true }] }], headerDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MkKanbanColumnHeaderDef), { isSignal: true }] }], footerDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MkKanbanColumnFooterDef), { isSignal: true }] }], templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
120
192
|
|
|
121
193
|
/**
|
|
122
194
|
* @mk-kit/ui/kanban — the board (columns + drag-and-drop cards). Its own
|
|
@@ -129,5 +201,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
|
|
|
129
201
|
* Generated bundle index. Do not edit.
|
|
130
202
|
*/
|
|
131
203
|
|
|
132
|
-
export { MkKanban };
|
|
204
|
+
export { MkKanban, MkKanbanCardDef, MkKanbanColumnFooterDef, MkKanbanColumnHeaderDef };
|
|
133
205
|
//# sourceMappingURL=mk-kit-ui-kanban.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mk-kit-ui-kanban.mjs","sources":["../../../projects/mk-kit/kanban/kanban.ts","../../../projects/mk-kit/kanban/kanban.html","../../../projects/mk-kit/kanban/index.ts","../../../projects/mk-kit/kanban/mk-kit-ui-kanban.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n booleanAttribute,\n computed,\n contentChild,\n input,\n model,\n output,\n} from '@angular/core';\nimport { mkUniqueId } from '@mk-kit/ui/core';\nimport { MkDrag, MkDropList, mkMoveItemInArray } from '@mk-kit/ui/dnd';\nimport type { MkDropEvent } from '@mk-kit/ui/dnd';\n\n/** Stable empty fallback so out-of-range lookups don't allocate per call. */\nconst NO_CONNECTIONS: string[] = [];\n\n/** A single draggable card on a {@link MkKanban} board. */\nexport interface MkKanbanCard {\n /** Stable identity used for tracking and move events. */\n id: unknown;\n /** Text shown by the default card renderer. */\n title: string;\n /** Arbitrary extra fields for custom card templates. */\n [key: string]: unknown;\n}\n\n/** A column (bucket) of {@link MkKanbanCard}s on a {@link MkKanban} board. */\nexport interface MkKanbanColumn {\n /** Stable identity used for tracking and move events. */\n id: unknown;\n /** Heading shown in the column header and used as its aria-label. */\n title: string;\n /** The ordered cards contained in this column. */\n cards: MkKanbanCard[];\n}\n\n/**\n * Emitted by {@link MkKanban} after a card has been moved (between or within\n * columns) and the two-way `columns` model has been updated.\n */\nexport interface MkKanbanCardMovedEvent {\n /** The card that was moved. */\n card: MkKanbanCard;\n /** `id` of the column the card came from. */\n from: unknown;\n /** `id` of the column the card was dropped into. */\n to: unknown;\n /** The card's index within the source column before the move. */\n fromIndex: number;\n /** The card's index within the destination column after the move. */\n toIndex: number;\n}\n\n/**\n * Kanban board — a horizontal row of columns whose cards can be dragged and\n * reordered within a column or transferred between columns. Built on the dnd\n * group's connected `[mkDropList]` / `[mkDrag]` directives, so it inherits both\n * pointer and keyboard dragging (WCAG 2.1.1) for free.\n *\n * Bind `columns` two-way; the model is updated immutably on each drop. Project\n * an `<ng-template>` to render custom card content — it receives the card as\n * `$implicit` and the owning column as `column`:\n *\n * ```html\n * <mk-kanban [(columns)]=\"board\" (cardMoved)=\"onMoved($event)\">\n * <ng-template #cardTemplate let-card let-column=\"column\">\n * <strong>{{ card.title }}</strong>\n * </ng-template>\n * </mk-kanban>\n * ```\n */\n@Component({\n selector: 'mk-kanban',\n templateUrl: './kanban.html',\n styleUrl: './kanban.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MkDropList, MkDrag, NgTemplateOutlet],\n host: { class: 'mk-kanban' },\n})\nexport class MkKanban {\n /** The board's columns and their cards (two-way). Updated on every drop. */\n readonly columns = model<MkKanbanColumn[]>([]);\n\n /** Disable all dragging on the board. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Emitted after the model is updated when a card is moved. */\n readonly cardMoved = output<MkKanbanCardMovedEvent>();\n\n /** Optional consumer-projected card renderer (`$implicit` = card). */\n protected readonly cardTemplate = contentChild<TemplateRef<unknown>>(TemplateRef);\n\n /** Board-scoped prefix so this board's drop-list ids never collide. */\n private readonly boardId = mkUniqueId('mk-kanban');\n\n /** Column count as its own computed so id arrays survive card-only updates. */\n private readonly columnCount = computed(() => this.columns().length);\n\n /** Stable drop-list id per column, positionally matched to `columns()`. */\n protected readonly listIds = computed(() =>\n Array.from({ length: this.columnCount() }, (_, i) => `${this.boardId}-col-${i}`),\n );\n\n /**\n * Per-column connected-target ids (every other column's list). One stable\n * array per column, recomputed only when the column count changes — a fresh\n * array per change-detection pass would dirty each `MkDropList`'s\n * `connectedTo` input identity on every cycle.\n */\n private readonly connections = computed(() => {\n const ids = this.listIds();\n return ids.map((_, i) => ids.filter((_, j) => j !== i));\n });\n\n /** Ids of every other column's list — the connected transfer targets for `i`. */\n protected connectedTo(index: number): string[] {\n return this.connections()[index] ?? NO_CONNECTIONS;\n }\n\n /**\n * Apply a drop from the dnd module. Reads the source/target columns from the\n * event's containers (matched by their drop-list ids), updates the two-way\n * `columns` model immutably, then emits {@link cardMoved}.\n */\n protected onDrop(event: MkDropEvent<MkKanbanCard>): void {\n const ids = this.listIds();\n const fromCol = ids.indexOf(event.previousContainer.id());\n const toCol = ids.indexOf(event.container.id());\n if (fromCol === -1 || toCol === -1) return;\n this.moveCard(fromCol, toCol, event.previousIndex, event.currentIndex);\n }\n\n /**\n * Immutably move the card at `fromIndex` of column `fromCol` to `toIndex` of\n * column `toCol`, updating the model and emitting {@link cardMoved}. Column\n * indices refer to positions in `columns()`.\n */\n private moveCard(\n fromCol: number,\n toCol: number,\n fromIndex: number,\n toIndex: number,\n ): void {\n const cols = this.columns();\n const source = cols[fromCol];\n const target = cols[toCol];\n if (!source || !target) return;\n const card = source.cards[fromIndex];\n if (!card) return;\n\n const next = cols.map((col, i) => {\n if (fromCol === toCol && i === fromCol) {\n const cards = [...col.cards];\n mkMoveItemInArray(cards, fromIndex, toIndex);\n return { ...col, cards };\n }\n if (i === fromCol) {\n return { ...col, cards: col.cards.filter((_, idx) => idx !== fromIndex) };\n }\n if (i === toCol) {\n const cards = [...col.cards];\n cards.splice(Math.max(0, Math.min(toIndex, cards.length)), 0, card);\n return { ...col, cards };\n }\n return col;\n });\n\n this.columns.set(next);\n this.cardMoved.emit({\n card,\n from: source.id,\n to: target.id,\n fromIndex,\n toIndex,\n });\n }\n}\n","<div class=\"mk-kanban__board\">\n @for (column of columns(); track column.id; let colIndex = $index) {\n <section\n class=\"mk-kanban__column\"\n role=\"region\"\n [attr.aria-label]=\"column.title\"\n >\n <header class=\"mk-kanban__column-header\">\n <span class=\"mk-kanban__column-title\">{{ column.title }}</span>\n <span class=\"mk-kanban__column-count\" aria-hidden=\"true\">\n {{ column.cards.length }}\n </span>\n </header>\n\n <div\n mkDropList\n class=\"mk-kanban__cards\"\n [mkDropListData]=\"column.cards\"\n [mkDropListId]=\"listIds()[colIndex]\"\n [mkDropListLabel]=\"column.title\"\n [mkDropListConnectedTo]=\"connectedTo(colIndex)\"\n [mkDropListDisabled]=\"disabled()\"\n mkDropListOrientation=\"vertical\"\n (mkDropListDropped)=\"onDrop($event)\"\n >\n @for (card of column.cards; track card.id) {\n <div\n mkDrag\n class=\"mk-kanban__card\"\n [mkDragData]=\"card\"\n [mkDragDisabled]=\"disabled()\"\n >\n <ng-container\n [ngTemplateOutlet]=\"cardTemplate() ?? defaultCard\"\n [ngTemplateOutletContext]=\"{ $implicit: card, column: column }\"\n />\n </div>\n }\n </div>\n </section>\n }\n</div>\n\n<ng-template #defaultCard let-card>\n <span class=\"mk-kanban__card-title\">{{ card.title }}</span>\n</ng-template>\n","/**\n * @mk-kit/ui/kanban — the board (columns + drag-and-drop cards). Its own\n * entry since 0.53 because it is the only `data` component that needs\n * `@mk-kit/ui/dnd`; keeping it in `data` shipped dnd to every page that\n * rendered a badge.\n */\nexport * from './kanban';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mk-kit-ui-kanban.mjs","sources":["../../../projects/mk-kit/kanban/kanban.ts","../../../projects/mk-kit/kanban/kanban.html","../../../projects/mk-kit/kanban/index.ts","../../../projects/mk-kit/kanban/mk-kit-ui-kanban.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n TemplateRef,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport { mkUniqueId } from '@mk-kit/ui/core';\nimport { MkDrag, MkDropList, mkMoveItemInArray } from '@mk-kit/ui/dnd';\nimport type { MkDropEvent } from '@mk-kit/ui/dnd';\n\n/** Stable empty fallback so out-of-range lookups don't allocate per call. */\nconst NO_CONNECTIONS: string[] = [];\n\n/** A single draggable card on a {@link MkKanban} board. */\nexport interface MkKanbanCard {\n /** Stable identity used for tracking and move events. */\n id: unknown;\n /** Text shown by the default card renderer. */\n title: string;\n /** Arbitrary extra fields for custom card templates. */\n [key: string]: unknown;\n}\n\n/** A column (bucket) of {@link MkKanbanCard}s on a {@link MkKanban} board. */\nexport interface MkKanbanColumn {\n /** Stable identity used for tracking and move events. */\n id: unknown;\n /** Heading shown in the column header and used as its aria-label. */\n title: string;\n /** The ordered cards contained in this column. */\n cards: MkKanbanCard[];\n}\n\n/**\n * Emitted by {@link MkKanban} after a card has been moved (between or within\n * columns) and the two-way `columns` model has been updated.\n */\nexport interface MkKanbanCardMovedEvent {\n /** The card that was moved. */\n card: MkKanbanCard;\n /** `id` of the column the card came from. */\n from: unknown;\n /** `id` of the column the card was dropped into. */\n to: unknown;\n /** The card's index within the source column before the move. */\n fromIndex: number;\n /** The card's index within the destination column after the move. */\n toIndex: number;\n}\n\n/** Context handed to the column header / footer templates. */\nexport interface MkKanbanColumnContext {\n /** The column being rendered. */\n $implicit: MkKanbanColumn;\n /** Its position in `columns`. */\n index: number;\n /** `column.cards.length`, for a count badge. */\n count: number;\n}\n\n/**\n * Marks the projected card renderer explicitly:\n * `<ng-template mkKanbanCard let-card let-column=\"column\">`. Without it the\n * first plain `<ng-template>` inside `<mk-kanban>` is used, as before 0.54.\n */\n@Directive({ selector: 'ng-template[mkKanbanCard]' })\nexport class MkKanbanCardDef {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/**\n * Replaces the default column header (title + count):\n * `<ng-template mkKanbanColumnHeader let-column let-count=\"count\">`.\n */\n@Directive({ selector: 'ng-template[mkKanbanColumnHeader]' })\nexport class MkKanbanColumnHeaderDef {\n readonly template = inject<TemplateRef<MkKanbanColumnContext>>(TemplateRef);\n}\n\n/**\n * Rendered under each column's card list — a \"quick add\" input, say:\n * `<ng-template mkKanbanColumnFooter let-column>`.\n */\n@Directive({ selector: 'ng-template[mkKanbanColumnFooter]' })\nexport class MkKanbanColumnFooterDef {\n readonly template = inject<TemplateRef<MkKanbanColumnContext>>(TemplateRef);\n}\n\n/**\n * Kanban board — a horizontal row of columns whose cards can be dragged and\n * reordered within a column or transferred between columns. Built on the dnd\n * group's connected `[mkDropList]` / `[mkDrag]` directives, so it inherits both\n * pointer and keyboard dragging (WCAG 2.1.1) for free.\n *\n * Bind `columns` two-way; the model is updated immutably on each drop. Project\n * an `<ng-template>` to render custom card content — it receives the card as\n * `$implicit` and the owning column as `column`. Column headers and footers\n * take their own templates (`mkKanbanColumnHeader` / `mkKanbanColumnFooter`,\n * context `{ $implicit: column, index, count }`):\n *\n * ```html\n * <mk-kanban [(columns)]=\"board\" (cardMoved)=\"onMoved($event)\">\n * <ng-template mkKanbanColumnHeader let-column let-count=\"count\">\n * <strong>{{ column.title }}</strong> {{ count }}\n * <button (click)=\"rename(column)\">Rename</button>\n * </ng-template>\n * <ng-template mkKanbanCard let-card let-column=\"column\">\n * <strong>{{ card.title }}</strong>\n * </ng-template>\n * <ng-template mkKanbanColumnFooter let-column>\n * <button (click)=\"add(column)\">+ Card</button>\n * </ng-template>\n * </mk-kanban>\n * ```\n */\n@Component({\n selector: 'mk-kanban',\n templateUrl: './kanban.html',\n styleUrl: './kanban.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MkDropList, MkDrag, NgTemplateOutlet],\n host: { class: 'mk-kanban' },\n})\nexport class MkKanban {\n /** The board's columns and their cards (two-way). Updated on every drop. */\n readonly columns = model<MkKanbanColumn[]>([]);\n\n /** Disable all dragging on the board. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Emitted after the model is updated when a card is moved. */\n readonly cardMoved = output<MkKanbanCardMovedEvent>();\n\n private readonly cardDef = contentChild(MkKanbanCardDef);\n private readonly headerDef = contentChild(MkKanbanColumnHeaderDef);\n private readonly footerDef = contentChild(MkKanbanColumnFooterDef);\n /** Every projected template, for the pre-0.54 \"first plain template is the card\" rule. */\n private readonly templates = contentChildren(TemplateRef);\n\n /** Consumer-projected card renderer: `[mkKanbanCard]`, else the first template that is not a header/footer. */\n protected readonly cardTemplate = computed<TemplateRef<unknown> | undefined>(() => {\n const explicit = this.cardDef()?.template;\n if (explicit) return explicit;\n // A query and a directive's injected TemplateRef are different instances\n // of the same template — compare their anchor nodes.\n const taken = new Set(\n [this.headerDef(), this.footerDef()].map((d) => d?.template.elementRef.nativeElement as Node | undefined),\n );\n return this.templates().find((t) => !taken.has(t.elementRef.nativeElement as Node));\n });\n /** Optional column header renderer (replaces title + count). */\n protected readonly headerTemplate = computed(() => this.headerDef()?.template);\n /** Optional column footer renderer (under the card list). */\n protected readonly footerTemplate = computed(() => this.footerDef()?.template);\n\n /** Board-scoped prefix so this board's drop-list ids never collide. */\n private readonly boardId = mkUniqueId('mk-kanban');\n\n /** Column count as its own computed so id arrays survive card-only updates. */\n private readonly columnCount = computed(() => this.columns().length);\n\n /** Stable drop-list id per column, positionally matched to `columns()`. */\n protected readonly listIds = computed(() =>\n Array.from({ length: this.columnCount() }, (_, i) => `${this.boardId}-col-${i}`),\n );\n\n /**\n * Per-column connected-target ids (every other column's list). One stable\n * array per column, recomputed only when the column count changes — a fresh\n * array per change-detection pass would dirty each `MkDropList`'s\n * `connectedTo` input identity on every cycle.\n */\n private readonly connections = computed(() => {\n const ids = this.listIds();\n return ids.map((_, i) => ids.filter((_, j) => j !== i));\n });\n\n /** Ids of every other column's list — the connected transfer targets for `i`. */\n protected connectedTo(index: number): string[] {\n return this.connections()[index] ?? NO_CONNECTIONS;\n }\n\n /**\n * Apply a drop from the dnd module. Reads the source/target columns from the\n * event's containers (matched by their drop-list ids), updates the two-way\n * `columns` model immutably, then emits {@link cardMoved}.\n */\n protected onDrop(event: MkDropEvent<MkKanbanCard>): void {\n const ids = this.listIds();\n const fromCol = ids.indexOf(event.previousContainer.id());\n const toCol = ids.indexOf(event.container.id());\n if (fromCol === -1 || toCol === -1) return;\n this.moveCard(fromCol, toCol, event.previousIndex, event.currentIndex);\n }\n\n /**\n * Immutably move the card at `fromIndex` of column `fromCol` to `toIndex` of\n * column `toCol`, updating the model and emitting {@link cardMoved}. Column\n * indices refer to positions in `columns()`.\n */\n private moveCard(\n fromCol: number,\n toCol: number,\n fromIndex: number,\n toIndex: number,\n ): void {\n const cols = this.columns();\n const source = cols[fromCol];\n const target = cols[toCol];\n if (!source || !target) return;\n const card = source.cards[fromIndex];\n if (!card) return;\n\n const next = cols.map((col, i) => {\n if (fromCol === toCol && i === fromCol) {\n const cards = [...col.cards];\n mkMoveItemInArray(cards, fromIndex, toIndex);\n return { ...col, cards };\n }\n if (i === fromCol) {\n return { ...col, cards: col.cards.filter((_, idx) => idx !== fromIndex) };\n }\n if (i === toCol) {\n const cards = [...col.cards];\n cards.splice(Math.max(0, Math.min(toIndex, cards.length)), 0, card);\n return { ...col, cards };\n }\n return col;\n });\n\n this.columns.set(next);\n this.cardMoved.emit({\n card,\n from: source.id,\n to: target.id,\n fromIndex,\n toIndex,\n });\n }\n}\n","<div class=\"mk-kanban__board\">\n @for (column of columns(); track column.id; let colIndex = $index) {\n <section\n class=\"mk-kanban__column\"\n role=\"region\"\n [attr.aria-label]=\"column.title\"\n >\n <header class=\"mk-kanban__column-header\">\n @if (headerTemplate(); as header) {\n <ng-container\n [ngTemplateOutlet]=\"header\"\n [ngTemplateOutletContext]=\"{ $implicit: column, index: colIndex, count: column.cards.length }\"\n />\n } @else {\n <span class=\"mk-kanban__column-title\">{{ column.title }}</span>\n <span class=\"mk-kanban__column-count\" aria-hidden=\"true\">\n {{ column.cards.length }}\n </span>\n }\n </header>\n\n <div\n mkDropList\n class=\"mk-kanban__cards\"\n [mkDropListData]=\"column.cards\"\n [mkDropListId]=\"listIds()[colIndex]\"\n [mkDropListLabel]=\"column.title\"\n [mkDropListConnectedTo]=\"connectedTo(colIndex)\"\n [mkDropListDisabled]=\"disabled()\"\n mkDropListOrientation=\"vertical\"\n (mkDropListDropped)=\"onDrop($event)\"\n >\n @for (card of column.cards; track card.id) {\n <div\n mkDrag\n class=\"mk-kanban__card\"\n [mkDragData]=\"card\"\n [mkDragDisabled]=\"disabled()\"\n >\n <ng-container\n [ngTemplateOutlet]=\"cardTemplate() ?? defaultCard\"\n [ngTemplateOutletContext]=\"{ $implicit: card, column: column }\"\n />\n </div>\n }\n </div>\n\n @if (footerTemplate(); as footer) {\n <div class=\"mk-kanban__column-footer\">\n <ng-container\n [ngTemplateOutlet]=\"footer\"\n [ngTemplateOutletContext]=\"{ $implicit: column, index: colIndex, count: column.cards.length }\"\n />\n </div>\n }\n </section>\n }\n</div>\n\n<ng-template #defaultCard let-card>\n <span class=\"mk-kanban__card-title\">{{ card.title }}</span>\n</ng-template>\n","/**\n * @mk-kit/ui/kanban — the board (columns + drag-and-drop cards). Its own\n * entry since 0.53 because it is the only `data` component that needs\n * `@mk-kit/ui/dnd`; keeping it in `data` shipped dnd to every page that\n * rendered a badge.\n */\nexport * from './kanban';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -440,6 +440,8 @@ const MK_DE_I18N = {
|
|
|
440
440
|
dndMoved: (position, total) => `Auf Position ${position} von ${total} verschoben.`,
|
|
441
441
|
dndMovedToList: (list, position, total) => `Verschoben nach: ${list}, Position ${position} von ${total}.`,
|
|
442
442
|
dndDropped: (position) => `Auf Position ${position} abgelegt.`,
|
|
443
|
+
dndMovedToZone: (zone) => `Verschoben nach: ${zone}. Leertaste oder Enter legt hier ab.`,
|
|
444
|
+
dndDroppedInZone: (zone) => `Abgelegt in: ${zone}.`,
|
|
443
445
|
dndCancelled: 'Verschieben abgebrochen. Der Eintrag ist zurück an seinem Platz.',
|
|
444
446
|
repeaterAddRow: 'Zeile hinzufügen',
|
|
445
447
|
repeaterRemoveRow: (index) => `Zeile ${index} entfernen`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mk-kit-ui-locales-de.mjs","sources":["../../../projects/mk-kit/locales/de/de.ts","../../../projects/mk-kit/locales/de/index.ts","../../../projects/mk-kit/locales/de/mk-kit-ui-locales-de.ts"],"sourcesContent":["import type { Provider } from '@angular/core';\nimport {\n type MkBlockEditorStrings,\n type MkDateNames,\n type MkI18nOverrides,\n type MkI18nStrings,\n type MkValidationStrings,\n provideMkI18n,\n} from '@mk-kit/ui/core';\n\n/**\n * Picks the German plural form for a count — CLDR's `de` rules for integers:\n * `one` for 1, `other` for everything else.\n *\n * ```ts\n * mkPluralDe(1, 'Ergebnis', 'Ergebnisse'); // 'Ergebnis'\n * mkPluralDe(3, 'Ergebnis', 'Ergebnisse'); // 'Ergebnisse'\n * ```\n */\nexport function mkPluralDe(count: number, one: string, other: string): string {\n return Math.abs(Math.trunc(count)) === 1 ? one : other;\n}\n\nconst plural = mkPluralDe;\n\n/** German month and weekday names (Sunday-first, as in `Intl`). */\nexport const MK_DE_DATE_NAMES: MkDateNames = {\n months: [\n 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',\n 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember',\n ],\n monthsShort: [\n 'Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni',\n 'Juli', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dez.',\n ],\n weekdays: [\n 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag',\n ],\n weekdaysShort: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n weekdaysNarrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n};\n\n/** German validation messages rendered by `mk-form-field`. */\nexport const MK_DE_VALIDATION: MkValidationStrings = {\n required: 'Dieses Feld ist erforderlich',\n email: 'Geben Sie eine gültige E-Mail-Adresse ein',\n min: ({ min }) => `Der Wert darf nicht kleiner als ${min} sein`,\n max: ({ max }) => `Der Wert darf nicht größer als ${max} sein`,\n minlength: ({ requiredLength }) =>\n `Geben Sie mindestens ${requiredLength} ${plural(requiredLength, 'Zeichen', 'Zeichen')} ein`,\n maxlength: ({ requiredLength }) =>\n `Geben Sie höchstens ${requiredLength} ${plural(requiredLength, 'Zeichen', 'Zeichen')} ein`,\n pattern: 'Geben Sie einen Wert im erwarteten Format ein',\n mkMinDate: ({ min }) =>\n `Das Datum darf nicht vor dem ${min.toLocaleDateString('de-DE')} liegen`,\n mkMaxDate: ({ max }) =>\n `Das Datum darf nicht nach dem ${max.toLocaleDateString('de-DE')} liegen`,\n mkDateFilter: 'Dieses Datum ist nicht verfügbar',\n mkDateRangeIncomplete: 'Wählen Sie ein Start- und ein Enddatum',\n mkMinTime: ({ min }) => `Die Uhrzeit darf nicht vor ${min} liegen`,\n mkMaxTime: ({ max }) => `Die Uhrzeit darf nicht nach ${max} liegen`,\n mkMaxItems: ({ max }) =>\n `Wählen Sie höchstens ${max} ${plural(max, 'Eintrag', 'Einträge')}`,\n mkFileSize: ({ name, maxLabel }) => `Die Datei ${name} überschreitet ${maxLabel}`,\n mkFileType: ({ name }) => `Die Datei ${name} hat einen unzulässigen Typ`,\n cardNumber: 'Geben Sie eine gültige Kartennummer ein',\n iban: ({ expectedLength }) =>\n expectedLength\n ? `Geben Sie eine gültige IBAN ein (${expectedLength} Zeichen)`\n : 'Geben Sie eine gültige IBAN ein',\n postalCode: ({ example }) => `Geben Sie eine gültige Postleitzahl ein, z. B. ${example}`,\n taxId: ({ label, example }) => `Geben Sie eine gültige ${label} ein, z. B. ${example}`,\n unknown: 'Ungültiger Wert',\n};\n\n/** German strings of the block editor's chrome. */\nexport const MK_DE_BLOCK_EDITOR: MkBlockEditorStrings = {\n addBlock: 'Block hinzufügen',\n addFirstBlock: 'Ersten Block hinzufügen',\n insertBlockHere: 'Block hier einfügen',\n blockInserter: 'Blockauswahl',\n searchBlocks: 'Blöcke suchen…',\n blocks: 'Blöcke',\n moveBlockUp: 'Block nach oben verschieben',\n moveBlockDown: 'Block nach unten verschieben',\n blockOptions: 'Blockoptionen',\n duplicate: 'Duplizieren',\n remove: 'Entfernen',\n textFormatting: 'Textformatierung',\n altText: 'Alternativtext',\n caption: 'Bildunterschrift',\n alignment: 'Ausrichtung',\n replaceImage: 'Bild ersetzen',\n imageUrl: 'Bild-URL',\n externalContent: 'Externer Inhalt',\n embedUrl: 'Einbettungs-URL',\n columnSettings: 'Spalteneinstellungen',\n columns: 'Spalten',\n ratio: 'Verhältnis',\n gap: 'Abstand',\n align: 'Ausrichten',\n justify: 'Verteilen',\n headingLevel: (level) => `Überschrift Ebene ${level}`,\n editorLabel: 'Blockeditor für Inhalte',\n emptyBlockPlaceholder: 'Mit / einen Block wählen oder einfach lostippen…',\n dragHandle: 'Ziehgriff',\n turnInto: (label) => `Umwandeln in: ${label}`,\n unknownBlock: (type) => `Unbekannter Block: ${type}`,\n blockAdded: (label) => `Hinzugefügt: ${label}`,\n blockDuplicated: 'Block dupliziert',\n blockDeleted: (label) => `Entfernt: ${label}`,\n blockMovedUp: 'Block nach oben verschoben',\n blockMovedDown: 'Block nach unten verschoben',\n turnedInto: (label) => `Umgewandelt in: ${label}`,\n noBlocksMatch: (query) => `Keine Blöcke passen zu „${query}“.`,\n groupText: 'Text',\n groupMedia: 'Medien',\n groupLayout: 'Layout',\n blockParagraph: 'Absatz',\n blockParagraphDesc: 'Text mit Inline-Formatierung.',\n blockHeading: 'Überschrift',\n blockHeadingDesc: 'Abschnittstitel (H1–H4).',\n blockList: 'Liste',\n blockListDesc: 'Aufzählung oder nummerierte Liste.',\n blockQuote: 'Zitat',\n blockQuoteDesc: 'Blockzitat mit optionaler Quelle.',\n blockCode: 'Code',\n blockCodeDesc: 'Formatierter Code in Festbreitenschrift.',\n blockImage: 'Bild',\n blockImageDesc: 'Bild hochladen oder verlinken.',\n blockEmbed: 'Einbettung',\n blockEmbedDesc: 'YouTube, Vimeo oder eine beliebige URL.',\n blockButton: 'Button',\n blockButtonDesc: 'Ein Call-to-Action-Button.',\n blockDivider: 'Trennlinie',\n blockDividerDesc: 'Eine horizontale Trennlinie.',\n blockColumns: 'Spalten',\n blockColumnsDesc: 'Responsives Mehrspaltenlayout.',\n bold: 'Fett',\n italic: 'Kursiv',\n underline: 'Unterstrichen',\n strikethrough: 'Durchgestrichen',\n inlineCode: 'Inline-Code',\n link: 'Link',\n clearFormatting: 'Formatierung entfernen',\n linkUrlPrompt: 'Link-URL',\n editableText: 'Bearbeitbarer Text',\n headingPlaceholder: (level) => `Überschrift ${level}`,\n headingLevelGroup: 'Überschriftenebene',\n listStyle: 'Listenstil',\n bulleted: 'Aufzählung',\n numbered: 'Nummeriert',\n listItem: 'Listeneintrag',\n quoteText: 'Zitattext',\n citation: 'Quelle',\n addCitation: '— Quelle hinzufügen',\n codeLanguage: 'Codesprache',\n codeLanguagePlaceholder: 'Sprache (optional)',\n enterCode: 'Code eingeben…',\n imageWidth: (percent) => `Breite: ${percent} %`,\n uploading: 'Wird hochgeladen…',\n dropImagePrompt: 'Bild hierher ziehen oder',\n chooseFile: 'Datei wählen',\n pasteImageUrl: '…oder eine Bild-URL einfügen',\n notAnImage: 'Wählen Sie eine Bilddatei.',\n uploadFailed: 'Hochladen fehlgeschlagen. Versuchen Sie es erneut oder fügen Sie eine URL ein.',\n imageAdded: 'Bild hinzugefügt',\n pasteEmbedUrl: 'URL von YouTube, Vimeo oder anderswo einfügen…',\n embedFallbackNote: 'Diese URL lässt sich nicht einbetten; sie wird als Link angezeigt.',\n embedTitle: (provider) => `${provider}-Einbettung`,\n embedAdded: (provider) => `${provider}-Einbettung hinzugefügt`,\n embeddedContent: 'Eingebetteter Inhalt',\n buttonLabel: 'Beschriftung',\n buttonLink: 'Link (href)',\n buttonTone: 'Farbton',\n buttonVariant: 'Variante',\n buttonDefaultLabel: 'Klick mich',\n alignLeft: 'Linksbündig',\n alignCenter: 'Zentriert',\n alignRight: 'Rechtsbündig',\n tonePrimary: 'Primär',\n toneNeutral: 'Neutral',\n toneSuccess: 'Erfolg',\n toneWarning: 'Warnung',\n toneDanger: 'Gefahr',\n toneInfo: 'Info',\n variantSolid: 'Gefüllt',\n variantSoft: 'Dezent',\n variantOutline: 'Umrandet',\n ratioEqual: 'Gleich',\n alignStretch: 'Strecken',\n alignTop: 'Oben',\n alignMiddle: 'Mitte',\n alignBottom: 'Unten',\n justifyStart: 'Anfang',\n justifyCenter: 'Mitte',\n justifyEnd: 'Ende',\n justifyBetween: 'Gleichmäßig',\n};\n\nconst PASSWORD_STRENGTH_LABELS = ['Schwach', 'Schwach', 'Mittel', 'Gut', 'Stark'];\n\n/**\n * The complete German string map — every key of {@link MkI18nStrings},\n * `locale: 'de-DE'` and `currency: 'EUR'` for the formatting pipes.\n * Provide it whole with {@link provideMkI18nDe}, or pass it as the base of\n * `provideMkI18n(overrides, MK_DE_I18N)`.\n */\nexport const MK_DE_I18N: MkI18nStrings = {\n locale: 'de-DE',\n currency: 'EUR',\n\n validation: MK_DE_VALIDATION,\n\n close: 'Schließen',\n dismiss: 'Verwerfen',\n clear: 'Leeren',\n confirm: 'Bestätigen',\n cancel: 'Abbrechen',\n ok: 'OK',\n save: 'Speichern',\n submit: 'Absenden',\n edit: 'Bearbeiten',\n remove: 'Entfernen',\n removeItem: (name) => `${name} entfernen`,\n empty: 'Leer',\n optional: 'Optional',\n filter: 'Filtern…',\n confirmMessage: 'Sind Sie sicher?',\n decrease: 'Verringern',\n increase: 'Erhöhen',\n\n loading: 'Wird geladen…',\n noOptions: 'Keine Optionen',\n noResults: 'Keine Ergebnisse',\n noData: 'Keine Daten vorhanden',\n resultsCount: (count) =>\n `${count} ${plural(count, 'Ergebnis', 'Ergebnisse')}`,\n\n previousPage: 'Zur vorherigen Seite',\n nextPage: 'Zur nächsten Seite',\n goToPage: (page) => `Zu Seite ${page}`,\n paginationLabel: 'Seitennummerierung',\n previousSlide: 'Vorherige Folie',\n nextSlide: 'Nächste Folie',\n goToSlide: (slide) => `Zu Folie ${slide}`,\n carouselLabel: 'Karussell',\n pauseSlideshow: 'Diashow anhalten',\n playSlideshow: 'Diashow fortsetzen',\n slideOf: (slide, total) => `Folie ${slide} von ${total}`,\n\n dateNames: MK_DE_DATE_NAMES,\n previousMonth: 'Vorheriger Monat',\n nextMonth: 'Nächster Monat',\n previousYear: 'Vorheriges Jahr',\n nextYear: 'Nächstes Jahr',\n previousYears: 'Vorherige Jahre',\n nextYears: 'Nächste Jahre',\n selectDate: 'Datum wählen…',\n selectRange: 'Zeitraum wählen…',\n selectTime: 'Uhrzeit wählen…',\n selectMonth: 'Monat wählen…',\n selectYear: 'Jahr wählen…',\n selectWeek: 'Woche wählen…',\n selectPlaceholder: 'Auswählen…',\n chooseDate: 'Datumsauswahl',\n chooseDateRange: 'Zeitraumauswahl',\n chooseMonth: 'Monatsauswahl',\n chooseYear: 'Jahresauswahl',\n chooseWeek: 'Wochenauswahl',\n openCalendar: 'Kalender öffnen',\n openTimeList: 'Uhrzeitliste öffnen',\n moreActions: 'Weitere Aktionen',\n selectDateTime: 'Datum und Uhrzeit wählen…',\n chooseDateTime: 'Datums- und Uhrzeitauswahl',\n chooseTime: 'Uhrzeitauswahl',\n openDateTimePicker: 'Datums- und Uhrzeitauswahl öffnen',\n daySegment: 'Tag',\n monthSegment: 'Monat',\n yearSegment: 'Jahr',\n countdownDays: 'Tage',\n countdownHours: 'Std.',\n countdownMinutes: 'Min.',\n countdownSeconds: 'Sek.',\n countdownFinished: 'Beendet',\n dayEvents: (count, titles) =>\n `${count} ${plural(count, 'Termin', 'Termine')}${titles ? `: ${titles}` : ''}`,\n moreEvents: (count) => `+${count} weitere`,\n\n selectAllRows: 'Alle Zeilen auswählen',\n selectRow: (row) => (row ? `Zeile ${row} auswählen` : 'Zeile auswählen'),\n expandHeader: 'Aufklappen',\n expandRow: 'Zeile aufklappen',\n collapseRow: 'Zeile zuklappen',\n expandTreeRow: 'Unterzeilen anzeigen',\n collapseTreeRow: 'Unterzeilen ausblenden',\n expandGroup: 'Gruppe aufklappen',\n collapseGroup: 'Gruppe zuklappen',\n groupCount: (count) =>\n `${count} ${plural(count, 'Eintrag', 'Einträge')}`,\n resizeColumn: 'Spaltenbreite ändern',\n columnWidth: (column, width) => `Breite der Spalte ${column}: ${width} px`,\n columnMoved: (column, position, total) =>\n `Spalte ${column} an Position ${position} von ${total} verschoben`,\n editCell: 'Zum Bearbeiten Enter drücken',\n cellSaved: (value) => `${value} gespeichert`,\n sortedBy: (column, direction) =>\n `Sortiert nach ${column}, ${direction === 'asc' ? 'aufsteigend' : 'absteigend'}`,\n sortingCleared: (column) => `Sortierung nach ${column} aufgehoben`,\n\n showPassword: 'Passwort anzeigen',\n hidePassword: 'Passwort verbergen',\n passwordRuleMinLength: (length) =>\n `Mindestens ${length} ${plural(length, 'Zeichen', 'Zeichen')}`,\n passwordRuleUppercase: 'Ein Großbuchstabe',\n passwordRuleNumber: 'Eine Ziffer',\n passwordRuleSymbol: 'Ein Sonderzeichen',\n passwordStrength: (score) =>\n PASSWORD_STRENGTH_LABELS[Math.max(0, Math.min(4, score))],\n passwordStrengthLabel: 'Passwortstärke:',\n ruleMet: 'Erfüllt:',\n ruleNotMet: 'Nicht erfüllt:',\n oneTimeCode: 'Einmalcode',\n otpDigit: (position) => `Ziffer ${position}`,\n numericKeypadLabel: 'Ziffernblock',\n keypadClear: 'Leeren',\n keypadBackspace: 'Rücktaste',\n keypadDigitsEntered: (count, length) => `${count} von ${length} Ziffern eingegeben`,\n onScreenKeyboardLabel: 'Bildschirmtastatur',\n keyboardShift: 'Umschalt',\n keyboardSpace: 'Leertaste',\n keyboardEnter: 'Eingabe',\n keyboardAltLayer: 'Weitere Zeichen',\n keyboardBaseLayer: 'Buchstaben',\n ratingLabel: 'Bewertung',\n ratingValueText: (value, max) =>\n `${value} von ${max} ${plural(max, 'Stern', 'Sternen')}`,\n minimum: 'Minimum',\n maximum: 'Maximum',\n chooseColor: 'Farbe wählen',\n hexValue: 'Hexadezimalwert',\n presetColors: 'Vordefinierte Farben',\n chooseCountry: 'Land wählen',\n searchCountries: 'Land suchen…',\n phoneNumber: 'Telefonnummer',\n postalCode: 'Postleitzahl',\n amount: 'Betrag',\n cardNumber: 'Kartennummer',\n cardBrand: (brand) => `Kartentyp: ${brand}`,\n iban: 'IBAN',\n taxId: 'Steuernummer',\n signature: 'Unterschrift',\n jsonLabel: 'JSON',\n\n logViewerLabel: 'Ereignisprotokoll',\n logFollow: 'Folgen',\n logCopyAll: 'Protokoll kopieren',\n logWrapLines: 'Zeilen umbrechen',\n\n orgChartLabel: 'Organigramm',\n orgChartExpand: '{label} aufklappen',\n orgChartCollapse: '{label} zuklappen',\n\n chatLabel: 'Unterhaltung',\n chatComposerLabel: 'Nachricht',\n chatPlaceholder: 'Nachricht schreiben…',\n chatSend: 'Senden',\n chatStop: 'Generierung stoppen',\n chatAttach: 'Dateien anhängen',\n chatRemoveAttachment: 'Anhang entfernen',\n chatAttachments: 'Anhänge',\n chatSuggestions: 'Vorschläge',\n chatCopy: 'Nachricht kopieren',\n chatRetry: 'Erneut versuchen',\n chatTyping: 'Schreibt…',\n chatStreaming: 'Wird generiert…',\n chatJumpToLatest: 'Zu den neuesten springen',\n chatEmpty: 'Keine Nachrichten',\n chatYou: 'Sie',\n chatAssistant: 'Assistent',\n chatToolRunning: 'Läuft',\n chatToolDone: 'Fertig',\n chatToolError: 'Fehlgeschlagen',\n\n dynamicFormAdd: 'Hinzufügen',\n dynamicFormRemove: (index) => `Eintrag ${index} entfernen`,\n\n queryBuilderLabel: 'Filterbedingungen',\n queryAddRule: 'Regel hinzufügen',\n queryAddGroup: 'Gruppe hinzufügen',\n queryRemoveRule: 'Regel entfernen',\n queryRemoveGroup: 'Gruppe entfernen',\n queryAnd: 'Und',\n queryOr: 'Oder',\n queryNot: 'Nicht',\n queryField: 'Feld',\n queryOperator: 'Operator',\n queryValue: 'Wert',\n queryValueFrom: 'Von',\n queryValueTo: 'Bis',\n queryEmptyGroup: 'Keine Bedingungen',\n queryTrue: 'Wahr',\n queryFalse: 'Falsch',\n queryOpEq: 'ist gleich',\n queryOpNeq: 'ist ungleich',\n queryOpContains: 'enthält',\n queryOpNotContains: 'enthält nicht',\n queryOpStartsWith: 'beginnt mit',\n queryOpEndsWith: 'endet mit',\n queryOpGt: 'größer als',\n queryOpGte: 'mindestens',\n queryOpLt: 'kleiner als',\n queryOpLte: 'höchstens',\n queryOpBetween: 'zwischen',\n queryOpIn: 'ist eines von',\n queryOpNotIn: 'ist keines von',\n queryOpBefore: 'vor',\n queryOpAfter: 'nach',\n queryOpEmpty: 'ist leer',\n queryOpNotEmpty: 'ist nicht leer',\n\n dialogMove: 'Fenster verschieben (Pfeiltasten; Pos1 setzt zurück)',\n dialogResize: 'Fenstergröße ändern (Pfeiltasten; Pos1 setzt zurück)',\n\n listboxFilter: 'Optionen filtern',\n listboxEmpty: 'Keine passenden Optionen',\n\n eventCalendarGrabbed: (title, from, to) =>\n `${title} aufgenommen, ${from} – ${to}. Pfeiltasten verschieben, ` +\n 'Umschalt mit Pfeil nach oben oder unten ändert das Ende, ' +\n 'Enter speichert, Escape bricht ab.',\n eventCalendarPosition: (title, day, from, to) =>\n `${title}, ${day}, ${from} – ${to}.`,\n eventCalendarMoved: (title, day, from, to) =>\n `${title} verschoben auf ${day}, ${from} – ${to}.`,\n eventCalendarResized: (title, to) => `${title} endet jetzt um ${to}.`,\n eventCalendarEditCancelled:\n 'Verschieben abgebrochen. Der Termin behält seine ursprüngliche Zeit.',\n eventCalendarMovableEvent: 'Verschiebbarer Termin',\n\n previousImage: 'Vorheriges Bild',\n nextImage: 'Nächstes Bild',\n imageOf: (index, total) => `Bild ${index} von ${total}`,\n viewImage: (alt) => (alt ? `${alt} ansehen` : 'Bild ansehen'),\n imageFailed: 'Bild konnte nicht geladen werden',\n zoom: 'Zoom',\n zoomIn: 'Vergrößern',\n zoomOut: 'Verkleinern',\n mediaLibrary: 'Medienbibliothek',\n dropzoneLabel: 'Dateien hierher ziehen oder klicken, um sie auszuwählen',\n uploadFailed: 'Hochladen fehlgeschlagen',\n retryUpload: 'Hochladen wiederholen',\n errorSummaryTitle: 'Es gibt ein Problem',\n\n available: 'Verfügbar',\n selected: 'Ausgewählt',\n transferSelected: (target) => `Ausgewählte verschieben nach: ${target}`,\n transferAll: (target) => `Alle verschieben nach: ${target}`,\n itemsMoved: (count, target) =>\n `${count} ${plural(count, 'Eintrag', 'Einträge')} verschoben nach: ${target}`,\n\n notificationsTitle: 'Benachrichtigungen',\n allCaughtUp: 'Alles gelesen',\n markAllRead: 'Alle als gelesen markieren',\n notificationsUnread: (count) =>\n `Benachrichtigungen, ${count} ${plural(count, 'ungelesene', 'ungelesene')}`,\n unread: 'Ungelesen',\n tourStepOf: (step, total) => `Schritt ${step} von ${total}`,\n tourSkip: 'Überspringen',\n tourPrevious: 'Zurück',\n tourNext: 'Weiter',\n tourDone: 'Fertig',\n\n commandPalettePlaceholder: 'Befehl eingeben oder suchen…',\n commandPaletteLabel: 'Befehlspalette',\n stepCompleted: 'Abgeschlossen',\n stepError: 'Enthält Fehler',\n diffAddedLine: 'Hinzugefügt:',\n diffRemovedLine: 'Entfernt:',\n itemAdded: (name) => `${name} hinzugefügt`,\n itemRemoved: (name) => `${name} entfernt`,\n resizePanes: 'Bereichsgröße ändern',\n backToTop: 'Nach oben',\n breadcrumbLabel: 'Pfadnavigation',\n fabLabel: 'Aktionen',\n diffBefore: 'Vorher',\n diffAfter: 'Nachher',\n diffChanges: 'Änderungen',\n skipToContent: 'Zum Inhalt springen',\n primaryNav: 'Hauptnavigation',\n\n dndPickedUp: (position, total) =>\n `Aufgenommen. Eintrag ${position} von ${total}. ` +\n 'Pfeiltasten verschieben, Leertaste oder Enter legt ab, Escape bricht ab.',\n dndMoved: (position, total) => `Auf Position ${position} von ${total} verschoben.`,\n dndMovedToList: (list, position, total) =>\n `Verschoben nach: ${list}, Position ${position} von ${total}.`,\n dndDropped: (position) => `Auf Position ${position} abgelegt.`,\n dndCancelled: 'Verschieben abgebrochen. Der Eintrag ist zurück an seinem Platz.',\n\n repeaterAddRow: 'Zeile hinzufügen',\n repeaterRemoveRow: (index) => `Zeile ${index} entfernen`,\n repeaterReorderRow: (index) => `Zeile ${index} umsortieren`,\n repeaterRowMoved: (from, to) =>\n `Zeile von Position ${from} auf Position ${to} verschoben.`,\n\n fileRejectedType: (name) => `${name}: nicht unterstützter Dateityp`,\n fileRejectedSize: (name, limit) => `${name}: überschreitet ${limit}`,\n fileRejectedCount: (name, max) =>\n `${name}: Limit von ${max} ${plural(max, 'Datei', 'Dateien')} überschritten`,\n\n chartCategory: 'Kategorie',\n chartValue: 'Wert',\n chartSeries: 'Serie',\n chartSlice: 'Segment',\n chartStage: 'Stufe',\n chartConversion: 'Konversion',\n chartAxis: 'Achse',\n chartShare: 'Anteil',\n chartLabel: 'Beschriftung',\n\n qrCodeLabel: (text) => `QR-Code: ${text}`,\n\n sortableListLabel: 'Sortierbare Liste',\n filterColumn: (column) => `${column} filtern`,\n clearFilter: (column) => `Filter der Spalte ${column} leeren`,\n filterAny: 'Alle',\n filterMin: 'Min.',\n\n blockEditor: MK_DE_BLOCK_EDITOR,\n};\n\n/**\n * Provides the German strings — {@link MK_DE_I18N} with any `overrides`\n * merged on top (deep for `dateNames`, `blockEditor` and `validation`, like\n * `provideMkI18n`).\n *\n * ```ts\n * bootstrapApplication(App, {\n * providers: [provideMkI18nDe({ noData: 'Nichts zu sehen' })],\n * });\n * ```\n */\nexport function provideMkI18nDe(overrides: MkI18nOverrides = {}): Provider {\n return provideMkI18n(overrides, MK_DE_I18N);\n}\n","/**\n * German locale pack for @mk-kit/ui — `@mk-kit/ui/locales/de`.\n *\n * Its own entry point so an app carries only the locales it provides.\n */\nexport * from './de';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAUA;;;;;;;;AAQG;SACa,UAAU,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa,EAAA;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK;AACxD;AAEA,MAAM,MAAM,GAAG,UAAU;AAEzB;AACO,MAAM,gBAAgB,GAAgB;AAC3C,IAAA,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;QACnD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;AACjE,KAAA;AACD,IAAA,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;QAC7C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;AAChD,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS;AAChF,KAAA;AACD,IAAA,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAChE,IAAA,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAGrD;AACO,MAAM,gBAAgB,GAAwB;AACnD,IAAA,QAAQ,EAAE,8BAA8B;AACxC,IAAA,KAAK,EAAE,2CAA2C;IAClD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,gCAAA,EAAmC,GAAG,CAAA,KAAA,CAAO;IAC/D,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,+BAAA,EAAkC,GAAG,CAAA,KAAA,CAAO;AAC9D,IAAA,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,KAC5B,CAAA,qBAAA,EAAwB,cAAc,CAAA,CAAA,EAAI,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA,IAAA,CAAM;AAC9F,IAAA,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,KAC5B,CAAA,oBAAA,EAAuB,cAAc,CAAA,CAAA,EAAI,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA,IAAA,CAAM;AAC7F,IAAA,OAAO,EAAE,+CAA+C;AACxD,IAAA,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KACjB,CAAA,6BAAA,EAAgC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,OAAA,CAAS;AAC1E,IAAA,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KACjB,CAAA,8BAAA,EAAiC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,OAAA,CAAS;AAC3E,IAAA,YAAY,EAAE,kCAAkC;AAChD,IAAA,qBAAqB,EAAE,wCAAwC;IAC/D,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,2BAAA,EAA8B,GAAG,CAAA,OAAA,CAAS;IAClE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,4BAAA,EAA+B,GAAG,CAAA,OAAA,CAAS;AACnE,IAAA,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,KAClB,CAAA,qBAAA,EAAwB,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA,CAAE;AACrE,IAAA,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAA,UAAA,EAAa,IAAI,CAAA,eAAA,EAAkB,QAAQ,CAAA,CAAE;IACjF,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAA,UAAA,EAAa,IAAI,CAAA,2BAAA,CAA6B;AACxE,IAAA,UAAU,EAAE,yCAAyC;IACrD,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,KACvB;UACI,CAAA,iCAAA,EAAoC,cAAc,CAAA,SAAA;AACpD,UAAE,iCAAiC;IACvC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAA,+CAAA,EAAkD,OAAO,CAAA,CAAE;AACxF,IAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAA,uBAAA,EAA0B,KAAK,CAAA,YAAA,EAAe,OAAO,CAAA,CAAE;AACtF,IAAA,OAAO,EAAE,iBAAiB;;AAG5B;AACO,MAAM,kBAAkB,GAAyB;AACtD,IAAA,QAAQ,EAAE,kBAAkB;AAC5B,IAAA,aAAa,EAAE,yBAAyB;AACxC,IAAA,eAAe,EAAE,qBAAqB;AACtC,IAAA,aAAa,EAAE,cAAc;AAC7B,IAAA,YAAY,EAAE,gBAAgB;AAC9B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,WAAW,EAAE,6BAA6B;AAC1C,IAAA,aAAa,EAAE,8BAA8B;AAC7C,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,cAAc,EAAE,sBAAsB;AACtC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,CAAC,KAAK,KAAK,CAAA,kBAAA,EAAqB,KAAK,CAAA,CAAE;AACrD,IAAA,WAAW,EAAE,yBAAyB;AACtC,IAAA,qBAAqB,EAAE,kDAAkD;AACzE,IAAA,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,CAAC,KAAK,KAAK,CAAA,cAAA,EAAiB,KAAK,CAAA,CAAE;IAC7C,YAAY,EAAE,CAAC,IAAI,KAAK,CAAA,mBAAA,EAAsB,IAAI,CAAA,CAAE;IACpD,UAAU,EAAE,CAAC,KAAK,KAAK,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAE;AAC9C,IAAA,eAAe,EAAE,kBAAkB;IACnC,YAAY,EAAE,CAAC,KAAK,KAAK,CAAA,UAAA,EAAa,KAAK,CAAA,CAAE;AAC7C,IAAA,YAAY,EAAE,4BAA4B;AAC1C,IAAA,cAAc,EAAE,6BAA6B;IAC7C,UAAU,EAAE,CAAC,KAAK,KAAK,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE;IACjD,aAAa,EAAE,CAAC,KAAK,KAAK,CAAA,wBAAA,EAA2B,KAAK,CAAA,EAAA,CAAI;AAC9D,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,kBAAkB,EAAE,+BAA+B;AACnD,IAAA,YAAY,EAAE,aAAa;AAC3B,IAAA,gBAAgB,EAAE,0BAA0B;AAC5C,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,aAAa,EAAE,oCAAoC;AACnD,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,cAAc,EAAE,mCAAmC;AACnD,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,aAAa,EAAE,0CAA0C;AACzD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,cAAc,EAAE,gCAAgC;AAChD,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,cAAc,EAAE,yCAAyC;AACzD,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,gBAAgB,EAAE,8BAA8B;AAChD,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,gBAAgB,EAAE,gCAAgC;AAClD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,YAAY,EAAE,oBAAoB;IAClC,kBAAkB,EAAE,CAAC,KAAK,KAAK,CAAA,YAAA,EAAe,KAAK,CAAA,CAAE;AACrD,IAAA,iBAAiB,EAAE,oBAAoB;AACvC,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,WAAW,EAAE,qBAAqB;AAClC,IAAA,YAAY,EAAE,aAAa;AAC3B,IAAA,uBAAuB,EAAE,oBAAoB;AAC7C,IAAA,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,CAAC,OAAO,KAAK,CAAA,QAAA,EAAW,OAAO,CAAA,EAAA,CAAI;AAC/C,IAAA,SAAS,EAAE,mBAAmB;AAC9B,IAAA,eAAe,EAAE,0BAA0B;AAC3C,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,aAAa,EAAE,8BAA8B;AAC7C,IAAA,UAAU,EAAE,4BAA4B;AACxC,IAAA,YAAY,EAAE,gFAAgF;AAC9F,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,aAAa,EAAE,gDAAgD;AAC/D,IAAA,iBAAiB,EAAE,oEAAoE;IACvF,UAAU,EAAE,CAAC,QAAQ,KAAK,CAAA,EAAG,QAAQ,CAAA,WAAA,CAAa;IAClD,UAAU,EAAE,CAAC,QAAQ,KAAK,CAAA,EAAG,QAAQ,CAAA,uBAAA,CAAyB;AAC9D,IAAA,eAAe,EAAE,sBAAsB;AACvC,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,kBAAkB,EAAE,YAAY;AAChC,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,YAAY,EAAE,UAAU;AACxB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,cAAc,EAAE,aAAa;;AAG/B,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;AAEjF;;;;;AAKG;AACI,MAAM,UAAU,GAAkB;AACvC,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,QAAQ,EAAE,KAAK;AAEf,IAAA,UAAU,EAAE,gBAAgB;AAE5B,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,UAAA,CAAY;AACzC,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,SAAS;AAEnB,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,MAAM,EAAE,uBAAuB;AAC/B,IAAA,YAAY,EAAE,CAAC,KAAK,KAClB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA,CAAE;AAEvD,IAAA,YAAY,EAAE,sBAAsB;AACpC,IAAA,QAAQ,EAAE,oBAAoB;IAC9B,QAAQ,EAAE,CAAC,IAAI,KAAK,CAAA,SAAA,EAAY,IAAI,CAAA,CAAE;AACtC,IAAA,eAAe,EAAE,oBAAoB;AACrC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,CAAC,KAAK,KAAK,CAAA,SAAA,EAAY,KAAK,CAAA,CAAE;AACzC,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,oBAAoB;AACnC,IAAA,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAA,MAAA,EAAS,KAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AAExD,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,YAAY,EAAE,iBAAiB;AAC/B,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,WAAW,EAAE,kBAAkB;AAC/B,IAAA,UAAU,EAAE,iBAAiB;AAC7B,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,iBAAiB,EAAE,YAAY;AAC/B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,YAAY,EAAE,iBAAiB;AAC/B,IAAA,YAAY,EAAE,qBAAqB;AACnC,IAAA,WAAW,EAAE,kBAAkB;AAC/B,IAAA,cAAc,EAAE,2BAA2B;AAC3C,IAAA,cAAc,EAAE,4BAA4B;AAC5C,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,kBAAkB,EAAE,mCAAmC;AACvD,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,YAAY,EAAE,OAAO;AACrB,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KACvB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA,EAAG,MAAM,GAAG,CAAA,EAAA,EAAK,MAAM,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE;IAChF,UAAU,EAAE,CAAC,KAAK,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA,QAAA,CAAU;AAE1C,IAAA,aAAa,EAAE,uBAAuB;AACtC,IAAA,SAAS,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,SAAS,GAAG,CAAA,UAAA,CAAY,GAAG,iBAAiB,CAAC;AACxE,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,aAAa,EAAE,sBAAsB;AACrC,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,WAAW,EAAE,mBAAmB;AAChC,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,UAAU,EAAE,CAAC,KAAK,KAChB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA,CAAE;AACpD,IAAA,YAAY,EAAE,sBAAsB;AACpC,IAAA,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,CAAA,kBAAA,EAAqB,MAAM,CAAA,EAAA,EAAK,KAAK,CAAA,GAAA,CAAK;AAC1E,IAAA,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,KACnC,UAAU,MAAM,CAAA,aAAA,EAAgB,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,WAAA,CAAa;AACpE,IAAA,QAAQ,EAAE,8BAA8B;IACxC,SAAS,EAAE,CAAC,KAAK,KAAK,CAAA,EAAG,KAAK,CAAA,YAAA,CAAc;IAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAC1B,CAAA,cAAA,EAAiB,MAAM,CAAA,EAAA,EAAK,SAAS,KAAK,KAAK,GAAG,aAAa,GAAG,YAAY,CAAA,CAAE;IAClF,cAAc,EAAE,CAAC,MAAM,KAAK,CAAA,gBAAA,EAAmB,MAAM,CAAA,WAAA,CAAa;AAElE,IAAA,YAAY,EAAE,mBAAmB;AACjC,IAAA,YAAY,EAAE,oBAAoB;AAClC,IAAA,qBAAqB,EAAE,CAAC,MAAM,KAC5B,CAAA,WAAA,EAAc,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA,CAAE;AAChE,IAAA,qBAAqB,EAAE,mBAAmB;AAC1C,IAAA,kBAAkB,EAAE,aAAa;AACjC,IAAA,kBAAkB,EAAE,mBAAmB;IACvC,gBAAgB,EAAE,CAAC,KAAK,KACtB,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,IAAA,qBAAqB,EAAE,iBAAiB;AACxC,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,WAAW,EAAE,YAAY;IACzB,QAAQ,EAAE,CAAC,QAAQ,KAAK,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAE;AAC5C,IAAA,kBAAkB,EAAE,cAAc;AAClC,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,eAAe,EAAE,WAAW;AAC5B,IAAA,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAA,EAAG,KAAK,CAAA,KAAA,EAAQ,MAAM,CAAA,mBAAA,CAAqB;AACnF,IAAA,qBAAqB,EAAE,oBAAoB;AAC3C,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,gBAAgB,EAAE,iBAAiB;AACnC,IAAA,iBAAiB,EAAE,YAAY;AAC/B,IAAA,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,KAC1B,CAAA,EAAG,KAAK,QAAQ,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA,CAAE;AAC1D,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,YAAY,EAAE,sBAAsB;AACpC,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,eAAe,EAAE,cAAc;AAC/B,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,CAAC,KAAK,KAAK,CAAA,WAAA,EAAc,KAAK,CAAA,CAAE;AAC3C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,SAAS,EAAE,cAAc;AACzB,IAAA,SAAS,EAAE,MAAM;AAEjB,IAAA,cAAc,EAAE,mBAAmB;AACnC,IAAA,SAAS,EAAE,QAAQ;AACnB,IAAA,UAAU,EAAE,oBAAoB;AAChC,IAAA,YAAY,EAAE,kBAAkB;AAEhC,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,cAAc,EAAE,oBAAoB;AACpC,IAAA,gBAAgB,EAAE,mBAAmB;AAErC,IAAA,SAAS,EAAE,cAAc;AACzB,IAAA,iBAAiB,EAAE,WAAW;AAC9B,IAAA,eAAe,EAAE,sBAAsB;AACvC,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,oBAAoB,EAAE,kBAAkB;AACxC,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,QAAQ,EAAE,oBAAoB;AAC9B,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,0BAA0B;AAC5C,IAAA,SAAS,EAAE,mBAAmB;AAC9B,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,aAAa,EAAE,gBAAgB;AAE/B,IAAA,cAAc,EAAE,YAAY;IAC5B,iBAAiB,EAAE,CAAC,KAAK,KAAK,CAAA,QAAA,EAAW,KAAK,CAAA,UAAA,CAAY;AAE1D,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,YAAY,EAAE,kBAAkB;AAChC,IAAA,aAAa,EAAE,mBAAmB;AAClC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,gBAAgB,EAAE,kBAAkB;AACpC,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,QAAQ,EAAE,OAAO;AACjB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,eAAe,EAAE,mBAAmB;AACpC,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,kBAAkB,EAAE,eAAe;AACnC,IAAA,iBAAiB,EAAE,aAAa;AAChC,IAAA,eAAe,EAAE,WAAW;AAC5B,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,YAAY,EAAE,gBAAgB;AAC9B,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,YAAY,EAAE,UAAU;AACxB,IAAA,eAAe,EAAE,gBAAgB;AAEjC,IAAA,UAAU,EAAE,sDAAsD;AAClE,IAAA,YAAY,EAAE,sDAAsD;AAEpE,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,YAAY,EAAE,0BAA0B;AAExC,IAAA,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KACpC,GAAG,KAAK,CAAA,cAAA,EAAiB,IAAI,CAAA,GAAA,EAAM,EAAE,CAAA,2BAAA,CAA6B;QAClE,2DAA2D;QAC3D,oCAAoC;IACtC,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAC1C,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,GAAG,KAAK,IAAI,CAAA,GAAA,EAAM,EAAE,CAAA,CAAA,CAAG;IACtC,kBAAkB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KACvC,CAAA,EAAG,KAAK,CAAA,gBAAA,EAAmB,GAAG,KAAK,IAAI,CAAA,GAAA,EAAM,EAAE,CAAA,CAAA,CAAG;AACpD,IAAA,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,CAAA,EAAG,KAAK,CAAA,gBAAA,EAAmB,EAAE,CAAA,CAAA,CAAG;AACrE,IAAA,0BAA0B,EACxB,sEAAsE;AACxE,IAAA,yBAAyB,EAAE,uBAAuB;AAElD,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AACvD,IAAA,SAAS,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA,QAAA,CAAU,GAAG,cAAc,CAAC;AAC7D,IAAA,WAAW,EAAE,kCAAkC;AAC/C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,YAAY,EAAE,kBAAkB;AAChC,IAAA,aAAa,EAAE,yDAAyD;AACxE,IAAA,YAAY,EAAE,0BAA0B;AACxC,IAAA,WAAW,EAAE,uBAAuB;AACpC,IAAA,iBAAiB,EAAE,qBAAqB;AAExC,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,QAAQ,EAAE,YAAY;IACtB,gBAAgB,EAAE,CAAC,MAAM,KAAK,CAAA,8BAAA,EAAiC,MAAM,CAAA,CAAE;IACvE,WAAW,EAAE,CAAC,MAAM,KAAK,CAAA,uBAAA,EAA0B,MAAM,CAAA,CAAE;IAC3D,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KACxB,CAAA,EAAG,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE;AAE/E,IAAA,kBAAkB,EAAE,oBAAoB;AACxC,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,WAAW,EAAE,4BAA4B;AACzC,IAAA,mBAAmB,EAAE,CAAC,KAAK,KACzB,CAAA,oBAAA,EAAuB,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA,CAAE;AAC7E,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAA,QAAA,EAAW,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AAC3D,IAAA,QAAQ,EAAE,cAAc;AACxB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAElB,IAAA,yBAAyB,EAAE,8BAA8B;AACzD,IAAA,mBAAmB,EAAE,gBAAgB;AACrC,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,aAAa,EAAE,cAAc;AAC7B,IAAA,eAAe,EAAE,WAAW;IAC5B,SAAS,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,YAAA,CAAc;IAC1C,WAAW,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,SAAA,CAAW;AACzC,IAAA,WAAW,EAAE,sBAAsB;AACnC,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,eAAe,EAAE,gBAAgB;AACjC,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,WAAW,EAAE,YAAY;AACzB,IAAA,aAAa,EAAE,qBAAqB;AACpC,IAAA,UAAU,EAAE,iBAAiB;AAE7B,IAAA,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,KAC3B,CAAA,qBAAA,EAAwB,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,EAAA,CAAI;QACjD,0EAA0E;AAC5E,IAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAA,aAAA,EAAgB,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,YAAA,CAAc;AAClF,IAAA,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,KACpC,oBAAoB,IAAI,CAAA,WAAA,EAAc,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAA,CAAG;IAChE,UAAU,EAAE,CAAC,QAAQ,KAAK,CAAA,aAAA,EAAgB,QAAQ,CAAA,UAAA,CAAY;AAC9D,IAAA,YAAY,EAAE,kEAAkE;AAEhF,IAAA,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,CAAC,KAAK,KAAK,CAAA,MAAA,EAAS,KAAK,CAAA,UAAA,CAAY;IACxD,kBAAkB,EAAE,CAAC,KAAK,KAAK,CAAA,MAAA,EAAS,KAAK,CAAA,YAAA,CAAc;AAC3D,IAAA,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,KACzB,CAAA,mBAAA,EAAsB,IAAI,CAAA,cAAA,EAAiB,EAAE,CAAA,YAAA,CAAc;IAE7D,gBAAgB,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,8BAAA,CAAgC;AACnE,IAAA,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAA,EAAG,IAAI,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE;IACpE,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAC3B,CAAA,EAAG,IAAI,eAAe,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA,cAAA,CAAgB;AAE9E,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,UAAU,EAAE,cAAc;IAE1B,WAAW,EAAE,CAAC,IAAI,KAAK,CAAA,SAAA,EAAY,IAAI,CAAA,CAAE;AAEzC,IAAA,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAA,EAAG,MAAM,CAAA,QAAA,CAAU;IAC7C,WAAW,EAAE,CAAC,MAAM,KAAK,CAAA,kBAAA,EAAqB,MAAM,CAAA,OAAA,CAAS;AAC7D,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,SAAS,EAAE,MAAM;AAEjB,IAAA,WAAW,EAAE,kBAAkB;;AAGjC;;;;;;;;;;AAUG;AACG,SAAU,eAAe,CAAC,SAAA,GAA6B,EAAE,EAAA;AAC7D,IAAA,OAAO,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC;AAC7C;;ACjiBA;;;;AAIG;;ACJH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"mk-kit-ui-locales-de.mjs","sources":["../../../projects/mk-kit/locales/de/de.ts","../../../projects/mk-kit/locales/de/index.ts","../../../projects/mk-kit/locales/de/mk-kit-ui-locales-de.ts"],"sourcesContent":["import type { Provider } from '@angular/core';\nimport {\n type MkBlockEditorStrings,\n type MkDateNames,\n type MkI18nOverrides,\n type MkI18nStrings,\n type MkValidationStrings,\n provideMkI18n,\n} from '@mk-kit/ui/core';\n\n/**\n * Picks the German plural form for a count — CLDR's `de` rules for integers:\n * `one` for 1, `other` for everything else.\n *\n * ```ts\n * mkPluralDe(1, 'Ergebnis', 'Ergebnisse'); // 'Ergebnis'\n * mkPluralDe(3, 'Ergebnis', 'Ergebnisse'); // 'Ergebnisse'\n * ```\n */\nexport function mkPluralDe(count: number, one: string, other: string): string {\n return Math.abs(Math.trunc(count)) === 1 ? one : other;\n}\n\nconst plural = mkPluralDe;\n\n/** German month and weekday names (Sunday-first, as in `Intl`). */\nexport const MK_DE_DATE_NAMES: MkDateNames = {\n months: [\n 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',\n 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember',\n ],\n monthsShort: [\n 'Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni',\n 'Juli', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dez.',\n ],\n weekdays: [\n 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag',\n ],\n weekdaysShort: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n weekdaysNarrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n};\n\n/** German validation messages rendered by `mk-form-field`. */\nexport const MK_DE_VALIDATION: MkValidationStrings = {\n required: 'Dieses Feld ist erforderlich',\n email: 'Geben Sie eine gültige E-Mail-Adresse ein',\n min: ({ min }) => `Der Wert darf nicht kleiner als ${min} sein`,\n max: ({ max }) => `Der Wert darf nicht größer als ${max} sein`,\n minlength: ({ requiredLength }) =>\n `Geben Sie mindestens ${requiredLength} ${plural(requiredLength, 'Zeichen', 'Zeichen')} ein`,\n maxlength: ({ requiredLength }) =>\n `Geben Sie höchstens ${requiredLength} ${plural(requiredLength, 'Zeichen', 'Zeichen')} ein`,\n pattern: 'Geben Sie einen Wert im erwarteten Format ein',\n mkMinDate: ({ min }) =>\n `Das Datum darf nicht vor dem ${min.toLocaleDateString('de-DE')} liegen`,\n mkMaxDate: ({ max }) =>\n `Das Datum darf nicht nach dem ${max.toLocaleDateString('de-DE')} liegen`,\n mkDateFilter: 'Dieses Datum ist nicht verfügbar',\n mkDateRangeIncomplete: 'Wählen Sie ein Start- und ein Enddatum',\n mkMinTime: ({ min }) => `Die Uhrzeit darf nicht vor ${min} liegen`,\n mkMaxTime: ({ max }) => `Die Uhrzeit darf nicht nach ${max} liegen`,\n mkMaxItems: ({ max }) =>\n `Wählen Sie höchstens ${max} ${plural(max, 'Eintrag', 'Einträge')}`,\n mkFileSize: ({ name, maxLabel }) => `Die Datei ${name} überschreitet ${maxLabel}`,\n mkFileType: ({ name }) => `Die Datei ${name} hat einen unzulässigen Typ`,\n cardNumber: 'Geben Sie eine gültige Kartennummer ein',\n iban: ({ expectedLength }) =>\n expectedLength\n ? `Geben Sie eine gültige IBAN ein (${expectedLength} Zeichen)`\n : 'Geben Sie eine gültige IBAN ein',\n postalCode: ({ example }) => `Geben Sie eine gültige Postleitzahl ein, z. B. ${example}`,\n taxId: ({ label, example }) => `Geben Sie eine gültige ${label} ein, z. B. ${example}`,\n unknown: 'Ungültiger Wert',\n};\n\n/** German strings of the block editor's chrome. */\nexport const MK_DE_BLOCK_EDITOR: MkBlockEditorStrings = {\n addBlock: 'Block hinzufügen',\n addFirstBlock: 'Ersten Block hinzufügen',\n insertBlockHere: 'Block hier einfügen',\n blockInserter: 'Blockauswahl',\n searchBlocks: 'Blöcke suchen…',\n blocks: 'Blöcke',\n moveBlockUp: 'Block nach oben verschieben',\n moveBlockDown: 'Block nach unten verschieben',\n blockOptions: 'Blockoptionen',\n duplicate: 'Duplizieren',\n remove: 'Entfernen',\n textFormatting: 'Textformatierung',\n altText: 'Alternativtext',\n caption: 'Bildunterschrift',\n alignment: 'Ausrichtung',\n replaceImage: 'Bild ersetzen',\n imageUrl: 'Bild-URL',\n externalContent: 'Externer Inhalt',\n embedUrl: 'Einbettungs-URL',\n columnSettings: 'Spalteneinstellungen',\n columns: 'Spalten',\n ratio: 'Verhältnis',\n gap: 'Abstand',\n align: 'Ausrichten',\n justify: 'Verteilen',\n headingLevel: (level) => `Überschrift Ebene ${level}`,\n editorLabel: 'Blockeditor für Inhalte',\n emptyBlockPlaceholder: 'Mit / einen Block wählen oder einfach lostippen…',\n dragHandle: 'Ziehgriff',\n turnInto: (label) => `Umwandeln in: ${label}`,\n unknownBlock: (type) => `Unbekannter Block: ${type}`,\n blockAdded: (label) => `Hinzugefügt: ${label}`,\n blockDuplicated: 'Block dupliziert',\n blockDeleted: (label) => `Entfernt: ${label}`,\n blockMovedUp: 'Block nach oben verschoben',\n blockMovedDown: 'Block nach unten verschoben',\n turnedInto: (label) => `Umgewandelt in: ${label}`,\n noBlocksMatch: (query) => `Keine Blöcke passen zu „${query}“.`,\n groupText: 'Text',\n groupMedia: 'Medien',\n groupLayout: 'Layout',\n blockParagraph: 'Absatz',\n blockParagraphDesc: 'Text mit Inline-Formatierung.',\n blockHeading: 'Überschrift',\n blockHeadingDesc: 'Abschnittstitel (H1–H4).',\n blockList: 'Liste',\n blockListDesc: 'Aufzählung oder nummerierte Liste.',\n blockQuote: 'Zitat',\n blockQuoteDesc: 'Blockzitat mit optionaler Quelle.',\n blockCode: 'Code',\n blockCodeDesc: 'Formatierter Code in Festbreitenschrift.',\n blockImage: 'Bild',\n blockImageDesc: 'Bild hochladen oder verlinken.',\n blockEmbed: 'Einbettung',\n blockEmbedDesc: 'YouTube, Vimeo oder eine beliebige URL.',\n blockButton: 'Button',\n blockButtonDesc: 'Ein Call-to-Action-Button.',\n blockDivider: 'Trennlinie',\n blockDividerDesc: 'Eine horizontale Trennlinie.',\n blockColumns: 'Spalten',\n blockColumnsDesc: 'Responsives Mehrspaltenlayout.',\n bold: 'Fett',\n italic: 'Kursiv',\n underline: 'Unterstrichen',\n strikethrough: 'Durchgestrichen',\n inlineCode: 'Inline-Code',\n link: 'Link',\n clearFormatting: 'Formatierung entfernen',\n linkUrlPrompt: 'Link-URL',\n editableText: 'Bearbeitbarer Text',\n headingPlaceholder: (level) => `Überschrift ${level}`,\n headingLevelGroup: 'Überschriftenebene',\n listStyle: 'Listenstil',\n bulleted: 'Aufzählung',\n numbered: 'Nummeriert',\n listItem: 'Listeneintrag',\n quoteText: 'Zitattext',\n citation: 'Quelle',\n addCitation: '— Quelle hinzufügen',\n codeLanguage: 'Codesprache',\n codeLanguagePlaceholder: 'Sprache (optional)',\n enterCode: 'Code eingeben…',\n imageWidth: (percent) => `Breite: ${percent} %`,\n uploading: 'Wird hochgeladen…',\n dropImagePrompt: 'Bild hierher ziehen oder',\n chooseFile: 'Datei wählen',\n pasteImageUrl: '…oder eine Bild-URL einfügen',\n notAnImage: 'Wählen Sie eine Bilddatei.',\n uploadFailed: 'Hochladen fehlgeschlagen. Versuchen Sie es erneut oder fügen Sie eine URL ein.',\n imageAdded: 'Bild hinzugefügt',\n pasteEmbedUrl: 'URL von YouTube, Vimeo oder anderswo einfügen…',\n embedFallbackNote: 'Diese URL lässt sich nicht einbetten; sie wird als Link angezeigt.',\n embedTitle: (provider) => `${provider}-Einbettung`,\n embedAdded: (provider) => `${provider}-Einbettung hinzugefügt`,\n embeddedContent: 'Eingebetteter Inhalt',\n buttonLabel: 'Beschriftung',\n buttonLink: 'Link (href)',\n buttonTone: 'Farbton',\n buttonVariant: 'Variante',\n buttonDefaultLabel: 'Klick mich',\n alignLeft: 'Linksbündig',\n alignCenter: 'Zentriert',\n alignRight: 'Rechtsbündig',\n tonePrimary: 'Primär',\n toneNeutral: 'Neutral',\n toneSuccess: 'Erfolg',\n toneWarning: 'Warnung',\n toneDanger: 'Gefahr',\n toneInfo: 'Info',\n variantSolid: 'Gefüllt',\n variantSoft: 'Dezent',\n variantOutline: 'Umrandet',\n ratioEqual: 'Gleich',\n alignStretch: 'Strecken',\n alignTop: 'Oben',\n alignMiddle: 'Mitte',\n alignBottom: 'Unten',\n justifyStart: 'Anfang',\n justifyCenter: 'Mitte',\n justifyEnd: 'Ende',\n justifyBetween: 'Gleichmäßig',\n};\n\nconst PASSWORD_STRENGTH_LABELS = ['Schwach', 'Schwach', 'Mittel', 'Gut', 'Stark'];\n\n/**\n * The complete German string map — every key of {@link MkI18nStrings},\n * `locale: 'de-DE'` and `currency: 'EUR'` for the formatting pipes.\n * Provide it whole with {@link provideMkI18nDe}, or pass it as the base of\n * `provideMkI18n(overrides, MK_DE_I18N)`.\n */\nexport const MK_DE_I18N: MkI18nStrings = {\n locale: 'de-DE',\n currency: 'EUR',\n\n validation: MK_DE_VALIDATION,\n\n close: 'Schließen',\n dismiss: 'Verwerfen',\n clear: 'Leeren',\n confirm: 'Bestätigen',\n cancel: 'Abbrechen',\n ok: 'OK',\n save: 'Speichern',\n submit: 'Absenden',\n edit: 'Bearbeiten',\n remove: 'Entfernen',\n removeItem: (name) => `${name} entfernen`,\n empty: 'Leer',\n optional: 'Optional',\n filter: 'Filtern…',\n confirmMessage: 'Sind Sie sicher?',\n decrease: 'Verringern',\n increase: 'Erhöhen',\n\n loading: 'Wird geladen…',\n noOptions: 'Keine Optionen',\n noResults: 'Keine Ergebnisse',\n noData: 'Keine Daten vorhanden',\n resultsCount: (count) =>\n `${count} ${plural(count, 'Ergebnis', 'Ergebnisse')}`,\n\n previousPage: 'Zur vorherigen Seite',\n nextPage: 'Zur nächsten Seite',\n goToPage: (page) => `Zu Seite ${page}`,\n paginationLabel: 'Seitennummerierung',\n previousSlide: 'Vorherige Folie',\n nextSlide: 'Nächste Folie',\n goToSlide: (slide) => `Zu Folie ${slide}`,\n carouselLabel: 'Karussell',\n pauseSlideshow: 'Diashow anhalten',\n playSlideshow: 'Diashow fortsetzen',\n slideOf: (slide, total) => `Folie ${slide} von ${total}`,\n\n dateNames: MK_DE_DATE_NAMES,\n previousMonth: 'Vorheriger Monat',\n nextMonth: 'Nächster Monat',\n previousYear: 'Vorheriges Jahr',\n nextYear: 'Nächstes Jahr',\n previousYears: 'Vorherige Jahre',\n nextYears: 'Nächste Jahre',\n selectDate: 'Datum wählen…',\n selectRange: 'Zeitraum wählen…',\n selectTime: 'Uhrzeit wählen…',\n selectMonth: 'Monat wählen…',\n selectYear: 'Jahr wählen…',\n selectWeek: 'Woche wählen…',\n selectPlaceholder: 'Auswählen…',\n chooseDate: 'Datumsauswahl',\n chooseDateRange: 'Zeitraumauswahl',\n chooseMonth: 'Monatsauswahl',\n chooseYear: 'Jahresauswahl',\n chooseWeek: 'Wochenauswahl',\n openCalendar: 'Kalender öffnen',\n openTimeList: 'Uhrzeitliste öffnen',\n moreActions: 'Weitere Aktionen',\n selectDateTime: 'Datum und Uhrzeit wählen…',\n chooseDateTime: 'Datums- und Uhrzeitauswahl',\n chooseTime: 'Uhrzeitauswahl',\n openDateTimePicker: 'Datums- und Uhrzeitauswahl öffnen',\n daySegment: 'Tag',\n monthSegment: 'Monat',\n yearSegment: 'Jahr',\n countdownDays: 'Tage',\n countdownHours: 'Std.',\n countdownMinutes: 'Min.',\n countdownSeconds: 'Sek.',\n countdownFinished: 'Beendet',\n dayEvents: (count, titles) =>\n `${count} ${plural(count, 'Termin', 'Termine')}${titles ? `: ${titles}` : ''}`,\n moreEvents: (count) => `+${count} weitere`,\n\n selectAllRows: 'Alle Zeilen auswählen',\n selectRow: (row) => (row ? `Zeile ${row} auswählen` : 'Zeile auswählen'),\n expandHeader: 'Aufklappen',\n expandRow: 'Zeile aufklappen',\n collapseRow: 'Zeile zuklappen',\n expandTreeRow: 'Unterzeilen anzeigen',\n collapseTreeRow: 'Unterzeilen ausblenden',\n expandGroup: 'Gruppe aufklappen',\n collapseGroup: 'Gruppe zuklappen',\n groupCount: (count) =>\n `${count} ${plural(count, 'Eintrag', 'Einträge')}`,\n resizeColumn: 'Spaltenbreite ändern',\n columnWidth: (column, width) => `Breite der Spalte ${column}: ${width} px`,\n columnMoved: (column, position, total) =>\n `Spalte ${column} an Position ${position} von ${total} verschoben`,\n editCell: 'Zum Bearbeiten Enter drücken',\n cellSaved: (value) => `${value} gespeichert`,\n sortedBy: (column, direction) =>\n `Sortiert nach ${column}, ${direction === 'asc' ? 'aufsteigend' : 'absteigend'}`,\n sortingCleared: (column) => `Sortierung nach ${column} aufgehoben`,\n\n showPassword: 'Passwort anzeigen',\n hidePassword: 'Passwort verbergen',\n passwordRuleMinLength: (length) =>\n `Mindestens ${length} ${plural(length, 'Zeichen', 'Zeichen')}`,\n passwordRuleUppercase: 'Ein Großbuchstabe',\n passwordRuleNumber: 'Eine Ziffer',\n passwordRuleSymbol: 'Ein Sonderzeichen',\n passwordStrength: (score) =>\n PASSWORD_STRENGTH_LABELS[Math.max(0, Math.min(4, score))],\n passwordStrengthLabel: 'Passwortstärke:',\n ruleMet: 'Erfüllt:',\n ruleNotMet: 'Nicht erfüllt:',\n oneTimeCode: 'Einmalcode',\n otpDigit: (position) => `Ziffer ${position}`,\n numericKeypadLabel: 'Ziffernblock',\n keypadClear: 'Leeren',\n keypadBackspace: 'Rücktaste',\n keypadDigitsEntered: (count, length) => `${count} von ${length} Ziffern eingegeben`,\n onScreenKeyboardLabel: 'Bildschirmtastatur',\n keyboardShift: 'Umschalt',\n keyboardSpace: 'Leertaste',\n keyboardEnter: 'Eingabe',\n keyboardAltLayer: 'Weitere Zeichen',\n keyboardBaseLayer: 'Buchstaben',\n ratingLabel: 'Bewertung',\n ratingValueText: (value, max) =>\n `${value} von ${max} ${plural(max, 'Stern', 'Sternen')}`,\n minimum: 'Minimum',\n maximum: 'Maximum',\n chooseColor: 'Farbe wählen',\n hexValue: 'Hexadezimalwert',\n presetColors: 'Vordefinierte Farben',\n chooseCountry: 'Land wählen',\n searchCountries: 'Land suchen…',\n phoneNumber: 'Telefonnummer',\n postalCode: 'Postleitzahl',\n amount: 'Betrag',\n cardNumber: 'Kartennummer',\n cardBrand: (brand) => `Kartentyp: ${brand}`,\n iban: 'IBAN',\n taxId: 'Steuernummer',\n signature: 'Unterschrift',\n jsonLabel: 'JSON',\n\n logViewerLabel: 'Ereignisprotokoll',\n logFollow: 'Folgen',\n logCopyAll: 'Protokoll kopieren',\n logWrapLines: 'Zeilen umbrechen',\n\n orgChartLabel: 'Organigramm',\n orgChartExpand: '{label} aufklappen',\n orgChartCollapse: '{label} zuklappen',\n\n chatLabel: 'Unterhaltung',\n chatComposerLabel: 'Nachricht',\n chatPlaceholder: 'Nachricht schreiben…',\n chatSend: 'Senden',\n chatStop: 'Generierung stoppen',\n chatAttach: 'Dateien anhängen',\n chatRemoveAttachment: 'Anhang entfernen',\n chatAttachments: 'Anhänge',\n chatSuggestions: 'Vorschläge',\n chatCopy: 'Nachricht kopieren',\n chatRetry: 'Erneut versuchen',\n chatTyping: 'Schreibt…',\n chatStreaming: 'Wird generiert…',\n chatJumpToLatest: 'Zu den neuesten springen',\n chatEmpty: 'Keine Nachrichten',\n chatYou: 'Sie',\n chatAssistant: 'Assistent',\n chatToolRunning: 'Läuft',\n chatToolDone: 'Fertig',\n chatToolError: 'Fehlgeschlagen',\n\n dynamicFormAdd: 'Hinzufügen',\n dynamicFormRemove: (index) => `Eintrag ${index} entfernen`,\n\n queryBuilderLabel: 'Filterbedingungen',\n queryAddRule: 'Regel hinzufügen',\n queryAddGroup: 'Gruppe hinzufügen',\n queryRemoveRule: 'Regel entfernen',\n queryRemoveGroup: 'Gruppe entfernen',\n queryAnd: 'Und',\n queryOr: 'Oder',\n queryNot: 'Nicht',\n queryField: 'Feld',\n queryOperator: 'Operator',\n queryValue: 'Wert',\n queryValueFrom: 'Von',\n queryValueTo: 'Bis',\n queryEmptyGroup: 'Keine Bedingungen',\n queryTrue: 'Wahr',\n queryFalse: 'Falsch',\n queryOpEq: 'ist gleich',\n queryOpNeq: 'ist ungleich',\n queryOpContains: 'enthält',\n queryOpNotContains: 'enthält nicht',\n queryOpStartsWith: 'beginnt mit',\n queryOpEndsWith: 'endet mit',\n queryOpGt: 'größer als',\n queryOpGte: 'mindestens',\n queryOpLt: 'kleiner als',\n queryOpLte: 'höchstens',\n queryOpBetween: 'zwischen',\n queryOpIn: 'ist eines von',\n queryOpNotIn: 'ist keines von',\n queryOpBefore: 'vor',\n queryOpAfter: 'nach',\n queryOpEmpty: 'ist leer',\n queryOpNotEmpty: 'ist nicht leer',\n\n dialogMove: 'Fenster verschieben (Pfeiltasten; Pos1 setzt zurück)',\n dialogResize: 'Fenstergröße ändern (Pfeiltasten; Pos1 setzt zurück)',\n\n listboxFilter: 'Optionen filtern',\n listboxEmpty: 'Keine passenden Optionen',\n\n eventCalendarGrabbed: (title, from, to) =>\n `${title} aufgenommen, ${from} – ${to}. Pfeiltasten verschieben, ` +\n 'Umschalt mit Pfeil nach oben oder unten ändert das Ende, ' +\n 'Enter speichert, Escape bricht ab.',\n eventCalendarPosition: (title, day, from, to) =>\n `${title}, ${day}, ${from} – ${to}.`,\n eventCalendarMoved: (title, day, from, to) =>\n `${title} verschoben auf ${day}, ${from} – ${to}.`,\n eventCalendarResized: (title, to) => `${title} endet jetzt um ${to}.`,\n eventCalendarEditCancelled:\n 'Verschieben abgebrochen. Der Termin behält seine ursprüngliche Zeit.',\n eventCalendarMovableEvent: 'Verschiebbarer Termin',\n\n previousImage: 'Vorheriges Bild',\n nextImage: 'Nächstes Bild',\n imageOf: (index, total) => `Bild ${index} von ${total}`,\n viewImage: (alt) => (alt ? `${alt} ansehen` : 'Bild ansehen'),\n imageFailed: 'Bild konnte nicht geladen werden',\n zoom: 'Zoom',\n zoomIn: 'Vergrößern',\n zoomOut: 'Verkleinern',\n mediaLibrary: 'Medienbibliothek',\n dropzoneLabel: 'Dateien hierher ziehen oder klicken, um sie auszuwählen',\n uploadFailed: 'Hochladen fehlgeschlagen',\n retryUpload: 'Hochladen wiederholen',\n errorSummaryTitle: 'Es gibt ein Problem',\n\n available: 'Verfügbar',\n selected: 'Ausgewählt',\n transferSelected: (target) => `Ausgewählte verschieben nach: ${target}`,\n transferAll: (target) => `Alle verschieben nach: ${target}`,\n itemsMoved: (count, target) =>\n `${count} ${plural(count, 'Eintrag', 'Einträge')} verschoben nach: ${target}`,\n\n notificationsTitle: 'Benachrichtigungen',\n allCaughtUp: 'Alles gelesen',\n markAllRead: 'Alle als gelesen markieren',\n notificationsUnread: (count) =>\n `Benachrichtigungen, ${count} ${plural(count, 'ungelesene', 'ungelesene')}`,\n unread: 'Ungelesen',\n tourStepOf: (step, total) => `Schritt ${step} von ${total}`,\n tourSkip: 'Überspringen',\n tourPrevious: 'Zurück',\n tourNext: 'Weiter',\n tourDone: 'Fertig',\n\n commandPalettePlaceholder: 'Befehl eingeben oder suchen…',\n commandPaletteLabel: 'Befehlspalette',\n stepCompleted: 'Abgeschlossen',\n stepError: 'Enthält Fehler',\n diffAddedLine: 'Hinzugefügt:',\n diffRemovedLine: 'Entfernt:',\n itemAdded: (name) => `${name} hinzugefügt`,\n itemRemoved: (name) => `${name} entfernt`,\n resizePanes: 'Bereichsgröße ändern',\n backToTop: 'Nach oben',\n breadcrumbLabel: 'Pfadnavigation',\n fabLabel: 'Aktionen',\n diffBefore: 'Vorher',\n diffAfter: 'Nachher',\n diffChanges: 'Änderungen',\n skipToContent: 'Zum Inhalt springen',\n primaryNav: 'Hauptnavigation',\n\n dndPickedUp: (position, total) =>\n `Aufgenommen. Eintrag ${position} von ${total}. ` +\n 'Pfeiltasten verschieben, Leertaste oder Enter legt ab, Escape bricht ab.',\n dndMoved: (position, total) => `Auf Position ${position} von ${total} verschoben.`,\n dndMovedToList: (list, position, total) =>\n `Verschoben nach: ${list}, Position ${position} von ${total}.`,\n dndDropped: (position) => `Auf Position ${position} abgelegt.`,\n dndMovedToZone: (zone) => `Verschoben nach: ${zone}. Leertaste oder Enter legt hier ab.`,\n dndDroppedInZone: (zone) => `Abgelegt in: ${zone}.`,\n dndCancelled: 'Verschieben abgebrochen. Der Eintrag ist zurück an seinem Platz.',\n\n repeaterAddRow: 'Zeile hinzufügen',\n repeaterRemoveRow: (index) => `Zeile ${index} entfernen`,\n repeaterReorderRow: (index) => `Zeile ${index} umsortieren`,\n repeaterRowMoved: (from, to) =>\n `Zeile von Position ${from} auf Position ${to} verschoben.`,\n\n fileRejectedType: (name) => `${name}: nicht unterstützter Dateityp`,\n fileRejectedSize: (name, limit) => `${name}: überschreitet ${limit}`,\n fileRejectedCount: (name, max) =>\n `${name}: Limit von ${max} ${plural(max, 'Datei', 'Dateien')} überschritten`,\n\n chartCategory: 'Kategorie',\n chartValue: 'Wert',\n chartSeries: 'Serie',\n chartSlice: 'Segment',\n chartStage: 'Stufe',\n chartConversion: 'Konversion',\n chartAxis: 'Achse',\n chartShare: 'Anteil',\n chartLabel: 'Beschriftung',\n\n qrCodeLabel: (text) => `QR-Code: ${text}`,\n\n sortableListLabel: 'Sortierbare Liste',\n filterColumn: (column) => `${column} filtern`,\n clearFilter: (column) => `Filter der Spalte ${column} leeren`,\n filterAny: 'Alle',\n filterMin: 'Min.',\n\n blockEditor: MK_DE_BLOCK_EDITOR,\n};\n\n/**\n * Provides the German strings — {@link MK_DE_I18N} with any `overrides`\n * merged on top (deep for `dateNames`, `blockEditor` and `validation`, like\n * `provideMkI18n`).\n *\n * ```ts\n * bootstrapApplication(App, {\n * providers: [provideMkI18nDe({ noData: 'Nichts zu sehen' })],\n * });\n * ```\n */\nexport function provideMkI18nDe(overrides: MkI18nOverrides = {}): Provider {\n return provideMkI18n(overrides, MK_DE_I18N);\n}\n","/**\n * German locale pack for @mk-kit/ui — `@mk-kit/ui/locales/de`.\n *\n * Its own entry point so an app carries only the locales it provides.\n */\nexport * from './de';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAUA;;;;;;;;AAQG;SACa,UAAU,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa,EAAA;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK;AACxD;AAEA,MAAM,MAAM,GAAG,UAAU;AAEzB;AACO,MAAM,gBAAgB,GAAgB;AAC3C,IAAA,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;QACnD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;AACjE,KAAA;AACD,IAAA,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;QAC7C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;AAChD,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS;AAChF,KAAA;AACD,IAAA,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAChE,IAAA,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAGrD;AACO,MAAM,gBAAgB,GAAwB;AACnD,IAAA,QAAQ,EAAE,8BAA8B;AACxC,IAAA,KAAK,EAAE,2CAA2C;IAClD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,gCAAA,EAAmC,GAAG,CAAA,KAAA,CAAO;IAC/D,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,+BAAA,EAAkC,GAAG,CAAA,KAAA,CAAO;AAC9D,IAAA,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,KAC5B,CAAA,qBAAA,EAAwB,cAAc,CAAA,CAAA,EAAI,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA,IAAA,CAAM;AAC9F,IAAA,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,KAC5B,CAAA,oBAAA,EAAuB,cAAc,CAAA,CAAA,EAAI,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA,IAAA,CAAM;AAC7F,IAAA,OAAO,EAAE,+CAA+C;AACxD,IAAA,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KACjB,CAAA,6BAAA,EAAgC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,OAAA,CAAS;AAC1E,IAAA,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KACjB,CAAA,8BAAA,EAAiC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,OAAA,CAAS;AAC3E,IAAA,YAAY,EAAE,kCAAkC;AAChD,IAAA,qBAAqB,EAAE,wCAAwC;IAC/D,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,2BAAA,EAA8B,GAAG,CAAA,OAAA,CAAS;IAClE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAA,4BAAA,EAA+B,GAAG,CAAA,OAAA,CAAS;AACnE,IAAA,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,KAClB,CAAA,qBAAA,EAAwB,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA,CAAE;AACrE,IAAA,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAA,UAAA,EAAa,IAAI,CAAA,eAAA,EAAkB,QAAQ,CAAA,CAAE;IACjF,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAA,UAAA,EAAa,IAAI,CAAA,2BAAA,CAA6B;AACxE,IAAA,UAAU,EAAE,yCAAyC;IACrD,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,KACvB;UACI,CAAA,iCAAA,EAAoC,cAAc,CAAA,SAAA;AACpD,UAAE,iCAAiC;IACvC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAA,+CAAA,EAAkD,OAAO,CAAA,CAAE;AACxF,IAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAA,uBAAA,EAA0B,KAAK,CAAA,YAAA,EAAe,OAAO,CAAA,CAAE;AACtF,IAAA,OAAO,EAAE,iBAAiB;;AAG5B;AACO,MAAM,kBAAkB,GAAyB;AACtD,IAAA,QAAQ,EAAE,kBAAkB;AAC5B,IAAA,aAAa,EAAE,yBAAyB;AACxC,IAAA,eAAe,EAAE,qBAAqB;AACtC,IAAA,aAAa,EAAE,cAAc;AAC7B,IAAA,YAAY,EAAE,gBAAgB;AAC9B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,WAAW,EAAE,6BAA6B;AAC1C,IAAA,aAAa,EAAE,8BAA8B;AAC7C,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,cAAc,EAAE,sBAAsB;AACtC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,CAAC,KAAK,KAAK,CAAA,kBAAA,EAAqB,KAAK,CAAA,CAAE;AACrD,IAAA,WAAW,EAAE,yBAAyB;AACtC,IAAA,qBAAqB,EAAE,kDAAkD;AACzE,IAAA,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,CAAC,KAAK,KAAK,CAAA,cAAA,EAAiB,KAAK,CAAA,CAAE;IAC7C,YAAY,EAAE,CAAC,IAAI,KAAK,CAAA,mBAAA,EAAsB,IAAI,CAAA,CAAE;IACpD,UAAU,EAAE,CAAC,KAAK,KAAK,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAE;AAC9C,IAAA,eAAe,EAAE,kBAAkB;IACnC,YAAY,EAAE,CAAC,KAAK,KAAK,CAAA,UAAA,EAAa,KAAK,CAAA,CAAE;AAC7C,IAAA,YAAY,EAAE,4BAA4B;AAC1C,IAAA,cAAc,EAAE,6BAA6B;IAC7C,UAAU,EAAE,CAAC,KAAK,KAAK,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE;IACjD,aAAa,EAAE,CAAC,KAAK,KAAK,CAAA,wBAAA,EAA2B,KAAK,CAAA,EAAA,CAAI;AAC9D,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,kBAAkB,EAAE,+BAA+B;AACnD,IAAA,YAAY,EAAE,aAAa;AAC3B,IAAA,gBAAgB,EAAE,0BAA0B;AAC5C,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,aAAa,EAAE,oCAAoC;AACnD,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,cAAc,EAAE,mCAAmC;AACnD,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,aAAa,EAAE,0CAA0C;AACzD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,cAAc,EAAE,gCAAgC;AAChD,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,cAAc,EAAE,yCAAyC;AACzD,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,gBAAgB,EAAE,8BAA8B;AAChD,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,gBAAgB,EAAE,gCAAgC;AAClD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,YAAY,EAAE,oBAAoB;IAClC,kBAAkB,EAAE,CAAC,KAAK,KAAK,CAAA,YAAA,EAAe,KAAK,CAAA,CAAE;AACrD,IAAA,iBAAiB,EAAE,oBAAoB;AACvC,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,WAAW,EAAE,qBAAqB;AAClC,IAAA,YAAY,EAAE,aAAa;AAC3B,IAAA,uBAAuB,EAAE,oBAAoB;AAC7C,IAAA,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,CAAC,OAAO,KAAK,CAAA,QAAA,EAAW,OAAO,CAAA,EAAA,CAAI;AAC/C,IAAA,SAAS,EAAE,mBAAmB;AAC9B,IAAA,eAAe,EAAE,0BAA0B;AAC3C,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,aAAa,EAAE,8BAA8B;AAC7C,IAAA,UAAU,EAAE,4BAA4B;AACxC,IAAA,YAAY,EAAE,gFAAgF;AAC9F,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,aAAa,EAAE,gDAAgD;AAC/D,IAAA,iBAAiB,EAAE,oEAAoE;IACvF,UAAU,EAAE,CAAC,QAAQ,KAAK,CAAA,EAAG,QAAQ,CAAA,WAAA,CAAa;IAClD,UAAU,EAAE,CAAC,QAAQ,KAAK,CAAA,EAAG,QAAQ,CAAA,uBAAA,CAAyB;AAC9D,IAAA,eAAe,EAAE,sBAAsB;AACvC,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,kBAAkB,EAAE,YAAY;AAChC,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,YAAY,EAAE,UAAU;AACxB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,cAAc,EAAE,aAAa;;AAG/B,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;AAEjF;;;;;AAKG;AACI,MAAM,UAAU,GAAkB;AACvC,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,QAAQ,EAAE,KAAK;AAEf,IAAA,UAAU,EAAE,gBAAgB;AAE5B,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,UAAA,CAAY;AACzC,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,SAAS;AAEnB,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,MAAM,EAAE,uBAAuB;AAC/B,IAAA,YAAY,EAAE,CAAC,KAAK,KAClB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA,CAAE;AAEvD,IAAA,YAAY,EAAE,sBAAsB;AACpC,IAAA,QAAQ,EAAE,oBAAoB;IAC9B,QAAQ,EAAE,CAAC,IAAI,KAAK,CAAA,SAAA,EAAY,IAAI,CAAA,CAAE;AACtC,IAAA,eAAe,EAAE,oBAAoB;AACrC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,CAAC,KAAK,KAAK,CAAA,SAAA,EAAY,KAAK,CAAA,CAAE;AACzC,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,oBAAoB;AACnC,IAAA,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAA,MAAA,EAAS,KAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AAExD,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,YAAY,EAAE,iBAAiB;AAC/B,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,WAAW,EAAE,kBAAkB;AAC/B,IAAA,UAAU,EAAE,iBAAiB;AAC7B,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,iBAAiB,EAAE,YAAY;AAC/B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,YAAY,EAAE,iBAAiB;AAC/B,IAAA,YAAY,EAAE,qBAAqB;AACnC,IAAA,WAAW,EAAE,kBAAkB;AAC/B,IAAA,cAAc,EAAE,2BAA2B;AAC3C,IAAA,cAAc,EAAE,4BAA4B;AAC5C,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,kBAAkB,EAAE,mCAAmC;AACvD,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,YAAY,EAAE,OAAO;AACrB,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KACvB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA,EAAG,MAAM,GAAG,CAAA,EAAA,EAAK,MAAM,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE;IAChF,UAAU,EAAE,CAAC,KAAK,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA,QAAA,CAAU;AAE1C,IAAA,aAAa,EAAE,uBAAuB;AACtC,IAAA,SAAS,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,SAAS,GAAG,CAAA,UAAA,CAAY,GAAG,iBAAiB,CAAC;AACxE,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,aAAa,EAAE,sBAAsB;AACrC,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,WAAW,EAAE,mBAAmB;AAChC,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,UAAU,EAAE,CAAC,KAAK,KAChB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA,CAAE;AACpD,IAAA,YAAY,EAAE,sBAAsB;AACpC,IAAA,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,CAAA,kBAAA,EAAqB,MAAM,CAAA,EAAA,EAAK,KAAK,CAAA,GAAA,CAAK;AAC1E,IAAA,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,KACnC,UAAU,MAAM,CAAA,aAAA,EAAgB,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,WAAA,CAAa;AACpE,IAAA,QAAQ,EAAE,8BAA8B;IACxC,SAAS,EAAE,CAAC,KAAK,KAAK,CAAA,EAAG,KAAK,CAAA,YAAA,CAAc;IAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAC1B,CAAA,cAAA,EAAiB,MAAM,CAAA,EAAA,EAAK,SAAS,KAAK,KAAK,GAAG,aAAa,GAAG,YAAY,CAAA,CAAE;IAClF,cAAc,EAAE,CAAC,MAAM,KAAK,CAAA,gBAAA,EAAmB,MAAM,CAAA,WAAA,CAAa;AAElE,IAAA,YAAY,EAAE,mBAAmB;AACjC,IAAA,YAAY,EAAE,oBAAoB;AAClC,IAAA,qBAAqB,EAAE,CAAC,MAAM,KAC5B,CAAA,WAAA,EAAc,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA,CAAE;AAChE,IAAA,qBAAqB,EAAE,mBAAmB;AAC1C,IAAA,kBAAkB,EAAE,aAAa;AACjC,IAAA,kBAAkB,EAAE,mBAAmB;IACvC,gBAAgB,EAAE,CAAC,KAAK,KACtB,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,IAAA,qBAAqB,EAAE,iBAAiB;AACxC,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,WAAW,EAAE,YAAY;IACzB,QAAQ,EAAE,CAAC,QAAQ,KAAK,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAE;AAC5C,IAAA,kBAAkB,EAAE,cAAc;AAClC,IAAA,WAAW,EAAE,QAAQ;AACrB,IAAA,eAAe,EAAE,WAAW;AAC5B,IAAA,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAA,EAAG,KAAK,CAAA,KAAA,EAAQ,MAAM,CAAA,mBAAA,CAAqB;AACnF,IAAA,qBAAqB,EAAE,oBAAoB;AAC3C,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,gBAAgB,EAAE,iBAAiB;AACnC,IAAA,iBAAiB,EAAE,YAAY;AAC/B,IAAA,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,KAC1B,CAAA,EAAG,KAAK,QAAQ,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA,CAAE;AAC1D,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,YAAY,EAAE,sBAAsB;AACpC,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,eAAe,EAAE,cAAc;AAC/B,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,CAAC,KAAK,KAAK,CAAA,WAAA,EAAc,KAAK,CAAA,CAAE;AAC3C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,SAAS,EAAE,cAAc;AACzB,IAAA,SAAS,EAAE,MAAM;AAEjB,IAAA,cAAc,EAAE,mBAAmB;AACnC,IAAA,SAAS,EAAE,QAAQ;AACnB,IAAA,UAAU,EAAE,oBAAoB;AAChC,IAAA,YAAY,EAAE,kBAAkB;AAEhC,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,cAAc,EAAE,oBAAoB;AACpC,IAAA,gBAAgB,EAAE,mBAAmB;AAErC,IAAA,SAAS,EAAE,cAAc;AACzB,IAAA,iBAAiB,EAAE,WAAW;AAC9B,IAAA,eAAe,EAAE,sBAAsB;AACvC,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,oBAAoB,EAAE,kBAAkB;AACxC,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,QAAQ,EAAE,oBAAoB;AAC9B,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,0BAA0B;AAC5C,IAAA,SAAS,EAAE,mBAAmB;AAC9B,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,aAAa,EAAE,gBAAgB;AAE/B,IAAA,cAAc,EAAE,YAAY;IAC5B,iBAAiB,EAAE,CAAC,KAAK,KAAK,CAAA,QAAA,EAAW,KAAK,CAAA,UAAA,CAAY;AAE1D,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,YAAY,EAAE,kBAAkB;AAChC,IAAA,aAAa,EAAE,mBAAmB;AAClC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,gBAAgB,EAAE,kBAAkB;AACpC,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,QAAQ,EAAE,OAAO;AACjB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,eAAe,EAAE,mBAAmB;AACpC,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,kBAAkB,EAAE,eAAe;AACnC,IAAA,iBAAiB,EAAE,aAAa;AAChC,IAAA,eAAe,EAAE,WAAW;AAC5B,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,YAAY,EAAE,gBAAgB;AAC9B,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,YAAY,EAAE,UAAU;AACxB,IAAA,eAAe,EAAE,gBAAgB;AAEjC,IAAA,UAAU,EAAE,sDAAsD;AAClE,IAAA,YAAY,EAAE,sDAAsD;AAEpE,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,YAAY,EAAE,0BAA0B;AAExC,IAAA,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KACpC,GAAG,KAAK,CAAA,cAAA,EAAiB,IAAI,CAAA,GAAA,EAAM,EAAE,CAAA,2BAAA,CAA6B;QAClE,2DAA2D;QAC3D,oCAAoC;IACtC,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAC1C,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,GAAG,KAAK,IAAI,CAAA,GAAA,EAAM,EAAE,CAAA,CAAA,CAAG;IACtC,kBAAkB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KACvC,CAAA,EAAG,KAAK,CAAA,gBAAA,EAAmB,GAAG,KAAK,IAAI,CAAA,GAAA,EAAM,EAAE,CAAA,CAAA,CAAG;AACpD,IAAA,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,CAAA,EAAG,KAAK,CAAA,gBAAA,EAAmB,EAAE,CAAA,CAAA,CAAG;AACrE,IAAA,0BAA0B,EACxB,sEAAsE;AACxE,IAAA,yBAAyB,EAAE,uBAAuB;AAElD,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AACvD,IAAA,SAAS,EAAE,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA,QAAA,CAAU,GAAG,cAAc,CAAC;AAC7D,IAAA,WAAW,EAAE,kCAAkC;AAC/C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,YAAY,EAAE,kBAAkB;AAChC,IAAA,aAAa,EAAE,yDAAyD;AACxE,IAAA,YAAY,EAAE,0BAA0B;AACxC,IAAA,WAAW,EAAE,uBAAuB;AACpC,IAAA,iBAAiB,EAAE,qBAAqB;AAExC,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,QAAQ,EAAE,YAAY;IACtB,gBAAgB,EAAE,CAAC,MAAM,KAAK,CAAA,8BAAA,EAAiC,MAAM,CAAA,CAAE;IACvE,WAAW,EAAE,CAAC,MAAM,KAAK,CAAA,uBAAA,EAA0B,MAAM,CAAA,CAAE;IAC3D,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KACxB,CAAA,EAAG,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE;AAE/E,IAAA,kBAAkB,EAAE,oBAAoB;AACxC,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,WAAW,EAAE,4BAA4B;AACzC,IAAA,mBAAmB,EAAE,CAAC,KAAK,KACzB,CAAA,oBAAA,EAAuB,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA,CAAE;AAC7E,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAA,QAAA,EAAW,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AAC3D,IAAA,QAAQ,EAAE,cAAc;AACxB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAElB,IAAA,yBAAyB,EAAE,8BAA8B;AACzD,IAAA,mBAAmB,EAAE,gBAAgB;AACrC,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,aAAa,EAAE,cAAc;AAC7B,IAAA,eAAe,EAAE,WAAW;IAC5B,SAAS,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,YAAA,CAAc;IAC1C,WAAW,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,SAAA,CAAW;AACzC,IAAA,WAAW,EAAE,sBAAsB;AACnC,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,eAAe,EAAE,gBAAgB;AACjC,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,WAAW,EAAE,YAAY;AACzB,IAAA,aAAa,EAAE,qBAAqB;AACpC,IAAA,UAAU,EAAE,iBAAiB;AAE7B,IAAA,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,KAC3B,CAAA,qBAAA,EAAwB,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,EAAA,CAAI;QACjD,0EAA0E;AAC5E,IAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAA,aAAA,EAAgB,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,YAAA,CAAc;AAClF,IAAA,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,KACpC,oBAAoB,IAAI,CAAA,WAAA,EAAc,QAAQ,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAA,CAAG;IAChE,UAAU,EAAE,CAAC,QAAQ,KAAK,CAAA,aAAA,EAAgB,QAAQ,CAAA,UAAA,CAAY;IAC9D,cAAc,EAAE,CAAC,IAAI,KAAK,CAAA,iBAAA,EAAoB,IAAI,CAAA,oCAAA,CAAsC;IACxF,gBAAgB,EAAE,CAAC,IAAI,KAAK,CAAA,aAAA,EAAgB,IAAI,CAAA,CAAA,CAAG;AACnD,IAAA,YAAY,EAAE,kEAAkE;AAEhF,IAAA,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,CAAC,KAAK,KAAK,CAAA,MAAA,EAAS,KAAK,CAAA,UAAA,CAAY;IACxD,kBAAkB,EAAE,CAAC,KAAK,KAAK,CAAA,MAAA,EAAS,KAAK,CAAA,YAAA,CAAc;AAC3D,IAAA,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,KACzB,CAAA,mBAAA,EAAsB,IAAI,CAAA,cAAA,EAAiB,EAAE,CAAA,YAAA,CAAc;IAE7D,gBAAgB,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,8BAAA,CAAgC;AACnE,IAAA,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAA,EAAG,IAAI,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE;IACpE,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAC3B,CAAA,EAAG,IAAI,eAAe,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA,cAAA,CAAgB;AAE9E,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,UAAU,EAAE,cAAc;IAE1B,WAAW,EAAE,CAAC,IAAI,KAAK,CAAA,SAAA,EAAY,IAAI,CAAA,CAAE;AAEzC,IAAA,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAA,EAAG,MAAM,CAAA,QAAA,CAAU;IAC7C,WAAW,EAAE,CAAC,MAAM,KAAK,CAAA,kBAAA,EAAqB,MAAM,CAAA,OAAA,CAAS;AAC7D,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,SAAS,EAAE,MAAM;AAEjB,IAAA,WAAW,EAAE,kBAAkB;;AAGjC;;;;;;;;;;AAUG;AACG,SAAU,eAAe,CAAC,SAAA,GAA6B,EAAE,EAAA;AAC7D,IAAA,OAAO,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC;AAC7C;;ACniBA;;;;AAIG;;ACJH;;AAEG;;;;"}
|
|
@@ -440,6 +440,8 @@ const MK_ES_I18N = {
|
|
|
440
440
|
dndMoved: (position, total) => `Movido a la posición ${position} de ${total}.`,
|
|
441
441
|
dndMovedToList: (list, position, total) => `Movido a: ${list}, posición ${position} de ${total}.`,
|
|
442
442
|
dndDropped: (position) => `Soltado en la posición ${position}.`,
|
|
443
|
+
dndMovedToZone: (zone) => `Movido a: ${zone}. Espacio o Intro lo suelta aquí.`,
|
|
444
|
+
dndDroppedInZone: (zone) => `Soltado en: ${zone}.`,
|
|
443
445
|
dndCancelled: 'Movimiento cancelado. El elemento ha vuelto a su sitio original.',
|
|
444
446
|
repeaterAddRow: 'Añadir una fila',
|
|
445
447
|
repeaterRemoveRow: (index) => `Eliminar la fila ${index}`,
|