@yuuvis/client-framework 2.18.0 → 2.20.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.
Files changed (40) hide show
  1. package/breadcrumb/index.d.ts +2 -0
  2. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +94 -0
  3. package/breadcrumb/lib/models/breadcrumb-item.model.d.ts +14 -0
  4. package/breadcrumb/lib/models/index.d.ts +1 -0
  5. package/common/lib/components/confirm/confirm.component.d.ts +1 -0
  6. package/common/lib/components/confirm/confirm.interface.d.ts +2 -0
  7. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +117 -0
  8. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs.map +1 -0
  9. package/fesm2022/yuuvis-client-framework-common.mjs +24 -10
  10. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  11. package/fesm2022/yuuvis-client-framework-forms.mjs +2 -2
  12. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  13. package/fesm2022/yuuvis-client-framework-list.mjs +365 -121
  14. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
  15. package/fesm2022/yuuvis-client-framework-object-details.mjs +28 -26
  16. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  17. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  18. package/fesm2022/yuuvis-client-framework-object-relationship.mjs +6 -5
  19. package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
  20. package/fesm2022/yuuvis-client-framework-object-versions.mjs +1 -1
  21. package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
  22. package/fesm2022/yuuvis-client-framework-query-list.mjs +462 -127
  23. package/fesm2022/yuuvis-client-framework-query-list.mjs.map +1 -1
  24. package/fesm2022/yuuvis-client-framework-renderer.mjs +14 -16
  25. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
  26. package/fesm2022/yuuvis-client-framework-sort.mjs +26 -15
  27. package/fesm2022/yuuvis-client-framework-sort.mjs.map +1 -1
  28. package/fesm2022/yuuvis-client-framework-tile-list.mjs +709 -182
  29. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  30. package/lib/assets/i18n/ar.json +217 -0
  31. package/lib/assets/i18n/de.json +7 -3
  32. package/lib/assets/i18n/en.json +7 -3
  33. package/list/lib/list.component.d.ts +256 -44
  34. package/object-details/lib/object-details-header/object-details-header.component.d.ts +5 -2
  35. package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +5 -2
  36. package/object-details/lib/object-details.component.d.ts +3 -1
  37. package/object-relationship/lib/object-relationship.component.d.ts +5 -2
  38. package/package.json +8 -4
  39. package/query-list/lib/query-list.component.d.ts +381 -86
  40. package/tile-list/lib/tile-list/tile-list.component.d.ts +527 -72
@@ -0,0 +1,2 @@
1
+ export * from './lib/breadcrumb/breadcrumb.component';
2
+ export * from './lib/models';
@@ -0,0 +1,94 @@
1
+ import { BreadcrumbItem } from '../models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * A generic, accessible breadcrumb navigation component.
5
+ *
6
+ * Renders a flat list of navigation items where the last item always represents
7
+ * the current location (non-clickable) and all preceding items are interactive links.
8
+ * Each link is individually focusable via standard Tab navigation.
9
+ *
10
+ * Key behaviors
11
+ * - Items are rendered left-to-right, separated by a `/` divider
12
+ * - The **last item** is always the current page — displayed as plain text (no link, no click handler)
13
+ * - All **preceding items** are rendered as `<a>` links that emit the `navigate` output on click or Enter
14
+ * - The component performs **no routing** — the parent handles all navigation logic via the emitted `BreadcrumbItem`
15
+ * - Empty `items` array renders nothing (the host element stays in the DOM but is visually empty)
16
+ *
17
+ * Usage
18
+ *
19
+ * The parent builds the `BreadcrumbItem[]` and passes it as input. Typically this
20
+ * array mirrors the object hierarchy the user navigated through (e.g. Case → Phase → Document).
21
+ *
22
+ * ```ts
23
+ * // Parent component
24
+ * breadcrumbItems: BreadcrumbItem[] = [
25
+ * { id: 'case-42', name: 'Case #42' }, // ← clickable link
26
+ * { id: 'phase-3', name: 'Review' }, // ← clickable link
27
+ * { id: 'doc-7', name: 'Contract.pdf' } // ← current location (non-clickable)
28
+ * ];
29
+ *
30
+ * onBreadcrumbNavigate(item: BreadcrumbItem): void {
31
+ * // item.id is the domain-specific key — use it to navigate
32
+ * this.router.navigate(['/objects', item.id]);
33
+ * }
34
+ * ```
35
+ *
36
+ * ```html
37
+ * <yuv-breadcrumb
38
+ * [items]="breadcrumbItems"
39
+ * (navigate)="onBreadcrumbNavigate($event)" />
40
+ * ```
41
+ *
42
+ * Renders visually as:
43
+ * ```
44
+ * Case #42 / Review / Contract.pdf
45
+ * [link] [link] [current]
46
+ * ```
47
+ */
48
+ export declare class YuuvisBreadcrumbComponent {
49
+ /**
50
+ * Ordered list of breadcrumb items to display.
51
+ *
52
+ * Each `BreadcrumbItem` has `{ id: string; name: string }` — where `id` is a unique key
53
+ * (typically an object/route ID) and `name` is the display label rendered in the trail.
54
+ *
55
+ * Position determines rendering behavior:
56
+ * - All items except the last → clickable `<a>` links
57
+ * - Last item → non-clickable text (current location)
58
+ *
59
+ * Defaults to an empty array, which renders nothing.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * // Case → Document trail
64
+ * [items]="[
65
+ * { id: 'case-42', name: 'Case #42' },
66
+ * { id: 'doc-7', name: 'Invoice.pdf' }
67
+ * ]"
68
+ * ```
69
+ */
70
+ items: import("@angular/core").InputSignal<BreadcrumbItem[]>;
71
+ /**
72
+ * Emitted when the user activates a clickable breadcrumb item (click or Enter key).
73
+ *
74
+ * The emitted value is the full `BreadcrumbItem` object (`{ id, name }`) that was activated.
75
+ * Never emitted for the last item since it is non-clickable.
76
+ * The parent is responsible for performing the actual navigation using `item.id`.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * onBreadcrumbNavigate(item: BreadcrumbItem): void {
81
+ * // item = { id: 'case-42', name: 'Case #42' }
82
+ * this.router.navigate(['/objects', item.id]);
83
+ * }
84
+ * ```
85
+ */
86
+ navigate: import("@angular/core").OutputEmitterRef<BreadcrumbItem>;
87
+ /**
88
+ * Handles click on a breadcrumb link and forwards the item to the parent via `navigate` output.
89
+ * Called only for non-last items (the template guards against calling this for the current location).
90
+ */
91
+ protected onItemClick(item: BreadcrumbItem): void;
92
+ static ɵfac: i0.ɵɵFactoryDeclaration<YuuvisBreadcrumbComponent, never>;
93
+ static ɵcmp: i0.ɵɵComponentDeclaration<YuuvisBreadcrumbComponent, "yuv-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "navigate": "navigate"; }, never, never, true, never>;
94
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A single item in the breadcrumb trail.
3
+ *
4
+ * `id` is used as the `@for` track expression and emitted back on click.
5
+ * `name` is rendered as-is — no truncation, translation, or fallback applied.
6
+ * Position in the array determines the role: all items except the last are clickable links;
7
+ * the last item is rendered as non-clickable text representing the current location.
8
+ */
9
+ export interface BreadcrumbItem {
10
+ /** Unique identifier — emitted via `navigate` output when the item is activated. */
11
+ id: string;
12
+ /** Display label shown in the breadcrumb trail. */
13
+ name: string;
14
+ }
@@ -0,0 +1 @@
1
+ export * from './breadcrumb-item.model';
@@ -2,6 +2,7 @@ import { ConfirmOverlayData } from './confirm.interface';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class ConfirmComponent {
4
4
  readonly dialogData: ConfirmOverlayData;
5
+ buttonType: import("@angular/core").Signal<"danger" | "primary">;
5
6
  static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmComponent, never>;
6
7
  static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmComponent, "yuv-confirm", never, {}, {}, never, never, true, never>;
7
8
  }
@@ -1,7 +1,9 @@
1
+ export type LevelType = 'success' | 'warning' | 'error' | 'info' | 'default';
1
2
  export interface ConfirmOverlayData {
2
3
  title?: string;
3
4
  message: string;
4
5
  confirmLabel?: string;
5
6
  cancelLabel?: string;
6
7
  hideCancelButton?: boolean;
8
+ level?: Extract<LevelType, 'default' | 'info' | 'warning'>;
7
9
  }
@@ -0,0 +1,117 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, output, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1 from '@yuuvis/client-core';
4
+ import { TranslateModule } from '@yuuvis/client-core';
5
+
6
+ /**
7
+ * A generic, accessible breadcrumb navigation component.
8
+ *
9
+ * Renders a flat list of navigation items where the last item always represents
10
+ * the current location (non-clickable) and all preceding items are interactive links.
11
+ * Each link is individually focusable via standard Tab navigation.
12
+ *
13
+ * Key behaviors
14
+ * - Items are rendered left-to-right, separated by a `/` divider
15
+ * - The **last item** is always the current page — displayed as plain text (no link, no click handler)
16
+ * - All **preceding items** are rendered as `<a>` links that emit the `navigate` output on click or Enter
17
+ * - The component performs **no routing** — the parent handles all navigation logic via the emitted `BreadcrumbItem`
18
+ * - Empty `items` array renders nothing (the host element stays in the DOM but is visually empty)
19
+ *
20
+ * Usage
21
+ *
22
+ * The parent builds the `BreadcrumbItem[]` and passes it as input. Typically this
23
+ * array mirrors the object hierarchy the user navigated through (e.g. Case → Phase → Document).
24
+ *
25
+ * ```ts
26
+ * // Parent component
27
+ * breadcrumbItems: BreadcrumbItem[] = [
28
+ * { id: 'case-42', name: 'Case #42' }, // ← clickable link
29
+ * { id: 'phase-3', name: 'Review' }, // ← clickable link
30
+ * { id: 'doc-7', name: 'Contract.pdf' } // ← current location (non-clickable)
31
+ * ];
32
+ *
33
+ * onBreadcrumbNavigate(item: BreadcrumbItem): void {
34
+ * // item.id is the domain-specific key — use it to navigate
35
+ * this.router.navigate(['/objects', item.id]);
36
+ * }
37
+ * ```
38
+ *
39
+ * ```html
40
+ * <yuv-breadcrumb
41
+ * [items]="breadcrumbItems"
42
+ * (navigate)="onBreadcrumbNavigate($event)" />
43
+ * ```
44
+ *
45
+ * Renders visually as:
46
+ * ```
47
+ * Case #42 / Review / Contract.pdf
48
+ * [link] [link] [current]
49
+ * ```
50
+ */
51
+ class YuuvisBreadcrumbComponent {
52
+ constructor() {
53
+ // #region Angular stuff (inputs, outputs)
54
+ /**
55
+ * Ordered list of breadcrumb items to display.
56
+ *
57
+ * Each `BreadcrumbItem` has `{ id: string; name: string }` — where `id` is a unique key
58
+ * (typically an object/route ID) and `name` is the display label rendered in the trail.
59
+ *
60
+ * Position determines rendering behavior:
61
+ * - All items except the last → clickable `<a>` links
62
+ * - Last item → non-clickable text (current location)
63
+ *
64
+ * Defaults to an empty array, which renders nothing.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * // Case → Document trail
69
+ * [items]="[
70
+ * { id: 'case-42', name: 'Case #42' },
71
+ * { id: 'doc-7', name: 'Invoice.pdf' }
72
+ * ]"
73
+ * ```
74
+ */
75
+ this.items = input([]);
76
+ /**
77
+ * Emitted when the user activates a clickable breadcrumb item (click or Enter key).
78
+ *
79
+ * The emitted value is the full `BreadcrumbItem` object (`{ id, name }`) that was activated.
80
+ * Never emitted for the last item since it is non-clickable.
81
+ * The parent is responsible for performing the actual navigation using `item.id`.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * onBreadcrumbNavigate(item: BreadcrumbItem): void {
86
+ * // item = { id: 'case-42', name: 'Case #42' }
87
+ * this.router.navigate(['/objects', item.id]);
88
+ * }
89
+ * ```
90
+ */
91
+ this.navigate = output();
92
+ }
93
+ // #endregion
94
+ // #region UI Responses
95
+ /**
96
+ * Handles click on a breadcrumb link and forwards the item to the parent via `navigate` output.
97
+ * Called only for non-last items (the template guards against calling this for the current location).
98
+ */
99
+ onItemClick(item) {
100
+ this.navigate.emit(item);
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: YuuvisBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: YuuvisBreadcrumbComponent, isStandalone: true, selector: "yuv-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigate: "navigate" }, host: { classAttribute: "yuv-breadcrumb" }, ngImport: i0, template: "<nav [attr.aria-label]=\"'yuv.framework.breadcrumb.nav-label' | translate\">\n <ol class=\"yuv-breadcrumb__list\">\n @for (item of items(); track item.id) {\n @if ($last) {\n <li class=\"yuv-breadcrumb__item yuv-breadcrumb__item--current\" aria-current=\"page\">\n {{ item.name }}\n </li>\n } @else {\n <li class=\"yuv-breadcrumb__item\">\n <a\n class=\"yuv-breadcrumb__link\"\n role=\"link\"\n tabindex=\"0\"\n (click)=\"onItemClick(item)\"\n (keydown.enter)=\"onItemClick(item)\"\n >\n {{ item.name }}\n </a>\n <span class=\"yuv-breadcrumb__separator\" aria-hidden=\"true\">/</span>\n </li>\n }\n }\n </ol>\n</nav>\n", styles: [":host{display:block}.yuv-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0}.yuv-breadcrumb__item{display:flex;align-items:center}.yuv-breadcrumb__item--current{color:var(--yuv-breadcrumb-current-color, currentColor);font-weight:500}.yuv-breadcrumb__separator{margin:0 .375rem;color:var(--yuv-breadcrumb-separator-color, currentColor);opacity:.4;-webkit-user-select:none;user-select:none}.yuv-breadcrumb__link{color:var(--yuv-breadcrumb-link-color, inherit);text-decoration:none;border-radius:2px;cursor:pointer}.yuv-breadcrumb__link:hover{text-decoration:underline}.yuv-breadcrumb__link:focus-visible{outline:2px solid currentColor;outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: YuuvisBreadcrumbComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'yuv-breadcrumb', imports: [TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
108
+ class: 'yuv-breadcrumb'
109
+ }, template: "<nav [attr.aria-label]=\"'yuv.framework.breadcrumb.nav-label' | translate\">\n <ol class=\"yuv-breadcrumb__list\">\n @for (item of items(); track item.id) {\n @if ($last) {\n <li class=\"yuv-breadcrumb__item yuv-breadcrumb__item--current\" aria-current=\"page\">\n {{ item.name }}\n </li>\n } @else {\n <li class=\"yuv-breadcrumb__item\">\n <a\n class=\"yuv-breadcrumb__link\"\n role=\"link\"\n tabindex=\"0\"\n (click)=\"onItemClick(item)\"\n (keydown.enter)=\"onItemClick(item)\"\n >\n {{ item.name }}\n </a>\n <span class=\"yuv-breadcrumb__separator\" aria-hidden=\"true\">/</span>\n </li>\n }\n }\n </ol>\n</nav>\n", styles: [":host{display:block}.yuv-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0}.yuv-breadcrumb__item{display:flex;align-items:center}.yuv-breadcrumb__item--current{color:var(--yuv-breadcrumb-current-color, currentColor);font-weight:500}.yuv-breadcrumb__separator{margin:0 .375rem;color:var(--yuv-breadcrumb-separator-color, currentColor);opacity:.4;-webkit-user-select:none;user-select:none}.yuv-breadcrumb__link{color:var(--yuv-breadcrumb-link-color, inherit);text-decoration:none;border-radius:2px;cursor:pointer}.yuv-breadcrumb__link:hover{text-decoration:underline}.yuv-breadcrumb__link:focus-visible{outline:2px solid currentColor;outline-offset:2px}\n"] }]
110
+ }] });
111
+
112
+ /**
113
+ * Generated bundle index. Do not edit.
114
+ */
115
+
116
+ export { YuuvisBreadcrumbComponent };
117
+ //# sourceMappingURL=yuuvis-client-framework-breadcrumb.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yuuvis-client-framework-breadcrumb.mjs","sources":["../../../../../libs/yuuvis/client-framework/breadcrumb/src/lib/breadcrumb/breadcrumb.component.ts","../../../../../libs/yuuvis/client-framework/breadcrumb/src/lib/breadcrumb/breadcrumb.component.html","../../../../../libs/yuuvis/client-framework/breadcrumb/src/yuuvis-client-framework-breadcrumb.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { TranslateModule } from '@yuuvis/client-core';\nimport { BreadcrumbItem } from '../models';\n\n/**\n * A generic, accessible breadcrumb navigation component.\n *\n * Renders a flat list of navigation items where the last item always represents\n * the current location (non-clickable) and all preceding items are interactive links.\n * Each link is individually focusable via standard Tab navigation.\n *\n * Key behaviors\n * - Items are rendered left-to-right, separated by a `/` divider\n * - The **last item** is always the current page — displayed as plain text (no link, no click handler)\n * - All **preceding items** are rendered as `<a>` links that emit the `navigate` output on click or Enter\n * - The component performs **no routing** — the parent handles all navigation logic via the emitted `BreadcrumbItem`\n * - Empty `items` array renders nothing (the host element stays in the DOM but is visually empty)\n *\n * Usage\n *\n * The parent builds the `BreadcrumbItem[]` and passes it as input. Typically this\n * array mirrors the object hierarchy the user navigated through (e.g. Case → Phase → Document).\n *\n * ```ts\n * // Parent component\n * breadcrumbItems: BreadcrumbItem[] = [\n * { id: 'case-42', name: 'Case #42' }, // ← clickable link\n * { id: 'phase-3', name: 'Review' }, // ← clickable link\n * { id: 'doc-7', name: 'Contract.pdf' } // ← current location (non-clickable)\n * ];\n *\n * onBreadcrumbNavigate(item: BreadcrumbItem): void {\n * // item.id is the domain-specific key — use it to navigate\n * this.router.navigate(['/objects', item.id]);\n * }\n * ```\n *\n * ```html\n * <yuv-breadcrumb\n * [items]=\"breadcrumbItems\"\n * (navigate)=\"onBreadcrumbNavigate($event)\" />\n * ```\n *\n * Renders visually as:\n * ```\n * Case #42 / Review / Contract.pdf\n * [link] [link] [current]\n * ```\n */\n@Component({\n selector: 'yuv-breadcrumb',\n imports: [TranslateModule],\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'yuv-breadcrumb'\n }\n})\nexport class YuuvisBreadcrumbComponent {\n // #region Angular stuff (inputs, outputs)\n\n /**\n * Ordered list of breadcrumb items to display.\n *\n * Each `BreadcrumbItem` has `{ id: string; name: string }` — where `id` is a unique key\n * (typically an object/route ID) and `name` is the display label rendered in the trail.\n *\n * Position determines rendering behavior:\n * - All items except the last → clickable `<a>` links\n * - Last item → non-clickable text (current location)\n *\n * Defaults to an empty array, which renders nothing.\n *\n * @example\n * ```ts\n * // Case → Document trail\n * [items]=\"[\n * { id: 'case-42', name: 'Case #42' },\n * { id: 'doc-7', name: 'Invoice.pdf' }\n * ]\"\n * ```\n */\n items = input<BreadcrumbItem[]>([]);\n\n /**\n * Emitted when the user activates a clickable breadcrumb item (click or Enter key).\n *\n * The emitted value is the full `BreadcrumbItem` object (`{ id, name }`) that was activated.\n * Never emitted for the last item since it is non-clickable.\n * The parent is responsible for performing the actual navigation using `item.id`.\n *\n * @example\n * ```ts\n * onBreadcrumbNavigate(item: BreadcrumbItem): void {\n * // item = { id: 'case-42', name: 'Case #42' }\n * this.router.navigate(['/objects', item.id]);\n * }\n * ```\n */\n navigate = output<BreadcrumbItem>();\n\n // #endregion\n\n // #region UI Responses\n\n /**\n * Handles click on a breadcrumb link and forwards the item to the parent via `navigate` output.\n * Called only for non-last items (the template guards against calling this for the current location).\n */\n protected onItemClick(item: BreadcrumbItem): void {\n this.navigate.emit(item);\n }\n\n // #endregion\n}\n","<nav [attr.aria-label]=\"'yuv.framework.breadcrumb.nav-label' | translate\">\n <ol class=\"yuv-breadcrumb__list\">\n @for (item of items(); track item.id) {\n @if ($last) {\n <li class=\"yuv-breadcrumb__item yuv-breadcrumb__item--current\" aria-current=\"page\">\n {{ item.name }}\n </li>\n } @else {\n <li class=\"yuv-breadcrumb__item\">\n <a\n class=\"yuv-breadcrumb__link\"\n role=\"link\"\n tabindex=\"0\"\n (click)=\"onItemClick(item)\"\n (keydown.enter)=\"onItemClick(item)\"\n >\n {{ item.name }}\n </a>\n <span class=\"yuv-breadcrumb__separator\" aria-hidden=\"true\">/</span>\n </li>\n }\n }\n </ol>\n</nav>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;MAWU,yBAAyB,CAAA;AAVtC,IAAA,WAAA,GAAA;;AAaE;;;;;;;;;;;;;;;;;;;;AAoBG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE,CAAC;AAEnC;;;;;;;;;;;;;;AAcG;QACH,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAkB;AAepC,IAAA;;;AATC;;;AAGG;AACO,IAAA,WAAW,CAAC,IAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B;+GArDW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3DtC,8wBAwBA,EAAA,MAAA,EAAA,CAAA,gsBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED2BY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAQd,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;+BACE,gBAAgB,EAAA,OAAA,EACjB,CAAC,eAAe,CAAC,mBAGT,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA,EAAA,QAAA,EAAA,8wBAAA,EAAA,MAAA,EAAA,CAAA,gsBAAA,CAAA,EAAA;;;AEzDH;;AAEG;;;;"}
@@ -1,15 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, ChangeDetectionStrategy, Component, inject, DestroyRef, viewChild, signal, afterNextRender, ElementRef, Input, Directive, computed, output, EnvironmentInjector, ViewContainerRef, effect, EventEmitter, HostListener, Output, NgZone, contentChildren, Injectable, HostBinding, forwardRef, Renderer2, NgModule, InjectionToken, makeEnvironmentProviders, RendererFactory2 } from '@angular/core';
3
- import { CommonModule, DOCUMENT } from '@angular/common';
2
+ import { input, ChangeDetectionStrategy, Component, inject, computed, DestroyRef, viewChild, signal, afterNextRender, ElementRef, Input, Directive, output, EnvironmentInjector, ViewContainerRef, effect, EventEmitter, HostListener, Output, NgZone, contentChildren, Injectable, HostBinding, forwardRef, Renderer2, NgModule, InjectionToken, makeEnvironmentProviders, RendererFactory2 } from '@angular/core';
4
3
  import { MatButtonModule } from '@angular/material/button';
5
4
  import * as i2 from '@angular/material/dialog';
6
5
  import { MatDialogActions, MatDialogTitle, MatDialogContent, MAT_DIALOG_DATA, MatDialogModule, MatDialog } from '@angular/material/dialog';
6
+ import { TranslateModule as TranslateModule$1, AppCacheService, RetentionService, LocaleDatePipe } from '@yuuvis/client-core';
7
+ import { YmtButtonDirective, YmtIconButtonDirective } from '@yuuvis/material';
7
8
  import * as i1 from '@ngx-translate/core';
8
9
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
9
- import { YmtButtonDirective, YmtIconButtonDirective } from '@yuuvis/material';
10
- import { TranslateModule as TranslateModule$1, AppCacheService, RetentionService, LocaleDatePipe } from '@yuuvis/client-core';
11
10
  import * as i1$1 from '@angular/material/icon';
12
11
  import { MatIconModule } from '@angular/material/icon';
12
+ import { CommonModule, DOCUMENT } from '@angular/common';
13
13
  import { MatProgressSpinner } from '@angular/material/progress-spinner';
14
14
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
15
15
  import { Subject, fromEvent, merge, timer, of, forkJoin, map as map$1 } from 'rxjs';
@@ -33,11 +33,11 @@ class DialogComponent {
33
33
  <h2 mat-dialog-title>{{ title }}</h2>
34
34
  }
35
35
  <mat-dialog-content>
36
- <ng-content select="main"></ng-content>
36
+ <ng-content select="main" />
37
37
  </mat-dialog-content>
38
38
 
39
39
  <mat-dialog-actions align="end" class="footer">
40
- <ng-content select="footer"></ng-content>
40
+ <ng-content select="footer" />
41
41
  </mat-dialog-actions>
42
42
  `, isInline: true, styles: [":host{--_dialog-area-background: var(--dialog-area-background, light-dark(var(--ymt-surface), var(--ymt-surface-container-low)));--_dialog-area-divider-color: var(--dialog-area-divider-color, var(--ymt-outline-variant));height:100%;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr;grid-template-areas:\"header\" \"content\" \"footer\"}:host h2{grid-area:header;background-color:var(--_dialog-area-background);border-block-end:1px solid var(--_dialog-area-divider-color)}:host .footer{background-color:var(--_dialog-area-background);border-block-start:1px solid var(--_dialog-area-divider-color);gap:calc(var(--ymt-font-body) / 2)}:host.not-separated{background-color:var(--ymt-surface-app)}:host.not-separated h2,:host.not-separated .footer{background-color:transparent;border:0}.mat-mdc-dialog-container{height:100%}mat-dialog-content:empty{display:contents}mat-dialog-content main{display:var(--ymt-dialog-content-display);grid-area:content;overflow:hidden}mat-dialog-actions{grid-area:footer}mat-dialog-actions:empty{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
43
  }
@@ -49,11 +49,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
49
49
  <h2 mat-dialog-title>{{ title }}</h2>
50
50
  }
51
51
  <mat-dialog-content>
52
- <ng-content select="main"></ng-content>
52
+ <ng-content select="main" />
53
53
  </mat-dialog-content>
54
54
 
55
55
  <mat-dialog-actions align="end" class="footer">
56
- <ng-content select="footer"></ng-content>
56
+ <ng-content select="footer" />
57
57
  </mat-dialog-actions>
58
58
  `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--_dialog-area-background: var(--dialog-area-background, light-dark(var(--ymt-surface), var(--ymt-surface-container-low)));--_dialog-area-divider-color: var(--dialog-area-divider-color, var(--ymt-outline-variant));height:100%;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr;grid-template-areas:\"header\" \"content\" \"footer\"}:host h2{grid-area:header;background-color:var(--_dialog-area-background);border-block-end:1px solid var(--_dialog-area-divider-color)}:host .footer{background-color:var(--_dialog-area-background);border-block-start:1px solid var(--_dialog-area-divider-color);gap:calc(var(--ymt-font-body) / 2)}:host.not-separated{background-color:var(--ymt-surface-app)}:host.not-separated h2,:host.not-separated .footer{background-color:transparent;border:0}.mat-mdc-dialog-container{height:100%}mat-dialog-content:empty{display:contents}mat-dialog-content main{display:var(--ymt-dialog-content-display);grid-area:content;overflow:hidden}mat-dialog-actions{grid-area:footer}mat-dialog-actions:empty{display:contents}\n"] }]
59
59
  }] });
@@ -61,13 +61,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
61
61
  class ConfirmComponent {
62
62
  constructor() {
63
63
  this.dialogData = inject(MAT_DIALOG_DATA);
64
+ this.buttonType = computed(() => {
65
+ switch (this.dialogData.level) {
66
+ case 'warning':
67
+ return 'danger';
68
+ // case 'warning':
69
+ // return 'tertiary' as ButtonType;
70
+ // case 'info':
71
+ // return 'primary' as ButtonType;
72
+ // case 'success':
73
+ // return 'primary' as ButtonType;
74
+ default:
75
+ return 'primary';
76
+ }
77
+ });
64
78
  }
65
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ConfirmComponent, isStandalone: true, selector: "yuv-confirm", ngImport: i0, template: "<yuv-dialog [headertitel]=\"dialogData.title || ''\">\n <main>{{ dialogData.message }}</main>\n <footer>\n @if (!dialogData.hideCancelButton) {\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\">\n {{ dialogData.cancelLabel || ('yuv.confirm.cancel' | translate) }}\n </button>\n }\n <button ymtButton=\"primary\" type=\"button\" [mat-dialog-close]=\"true\">{{ dialogData.confirmLabel || ('yuv.confirm.confirm' | translate) }}</button>\n </footer>\n</yuv-dialog>\n", styles: [":host{display:contents}:host main{padding:var(--ymt-spacing-m)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: TranslateModule$1 }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: DialogComponent, selector: "yuv-dialog", inputs: ["headertitle", "headertitel"] }, { kind: "directive", type: YmtButtonDirective, selector: "button[ymtButton], a[ymtButton]", inputs: ["ymtButton", "disabled", "aria-disabled", "disableRipple", "disabledInteractive", "button-size"] }] }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ConfirmComponent, isStandalone: true, selector: "yuv-confirm", ngImport: i0, template: "<yuv-dialog [headertitle]=\"dialogData.title || ''\">\n <main>{{ dialogData.message }}</main>\n <footer>\n @if (!dialogData.hideCancelButton) {\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\">\n {{ dialogData.cancelLabel || ('yuv.confirm.cancel' | translate) }}\n </button>\n }\n <button [ymtButton]=\"buttonType()\" type=\"button\" [mat-dialog-close]=\"true\">\n {{ dialogData.confirmLabel || ('yuv.confirm.confirm' | translate) }}\n </button>\n </footer>\n</yuv-dialog>\n", styles: [":host{display:contents}:host main{padding:var(--ymt-spacing-m)}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: TranslateModule$1 }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: DialogComponent, selector: "yuv-dialog", inputs: ["headertitle", "headertitel"] }, { kind: "directive", type: YmtButtonDirective, selector: "button[ymtButton], a[ymtButton]", inputs: ["ymtButton", "disabled", "aria-disabled", "disableRipple", "disabledInteractive", "button-size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
81
  }
68
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ConfirmComponent, decorators: [{
69
83
  type: Component,
70
- args: [{ selector: 'yuv-confirm', imports: [CommonModule, MatButtonModule, TranslateModule$1, MatDialogModule, DialogComponent, YmtButtonDirective], template: "<yuv-dialog [headertitel]=\"dialogData.title || ''\">\n <main>{{ dialogData.message }}</main>\n <footer>\n @if (!dialogData.hideCancelButton) {\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\">\n {{ dialogData.cancelLabel || ('yuv.confirm.cancel' | translate) }}\n </button>\n }\n <button ymtButton=\"primary\" type=\"button\" [mat-dialog-close]=\"true\">{{ dialogData.confirmLabel || ('yuv.confirm.confirm' | translate) }}</button>\n </footer>\n</yuv-dialog>\n", styles: [":host{display:contents}:host main{padding:var(--ymt-spacing-m)}\n"] }]
84
+ args: [{ selector: 'yuv-confirm', imports: [MatButtonModule, TranslateModule$1, MatDialogModule, DialogComponent, YmtButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<yuv-dialog [headertitle]=\"dialogData.title || ''\">\n <main>{{ dialogData.message }}</main>\n <footer>\n @if (!dialogData.hideCancelButton) {\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\">\n {{ dialogData.cancelLabel || ('yuv.confirm.cancel' | translate) }}\n </button>\n }\n <button [ymtButton]=\"buttonType()\" type=\"button\" [mat-dialog-close]=\"true\">\n {{ dialogData.confirmLabel || ('yuv.confirm.confirm' | translate) }}\n </button>\n </footer>\n</yuv-dialog>\n", styles: [":host{display:contents}:host main{padding:var(--ymt-spacing-m)}\n"] }]
71
85
  }] });
72
86
 
73
87
  const DEFAULT_SCROLL_AMOUNT$1 = 150;