@yuuvis/client-framework 3.17.0 → 3.18.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/fesm2022/yuuvis-client-framework-actions.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-badges.mjs +45 -7
- package/fesm2022/yuuvis-client-framework-badges.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +15 -6
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/lib/assets/i18n/de.json +6 -5
- package/lib/assets/i18n/en.json +4 -3
- package/package.json +5 -5
- package/types/yuuvis-client-framework-badges.d.ts +51 -4
package/lib/assets/i18n/de.json
CHANGED
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"yuv.clipboard.text.cut.multiple": "{{count}} Elemente ausgeschnitten",
|
|
39
39
|
"yuv.clipboard.text.cut.single": "1 Element ausgeschnitten",
|
|
40
40
|
"yuv.calendar.time.label": "Uhrzeit",
|
|
41
|
+
"yuv.form.element.catalog.option.none": "Nichts ausgewählt",
|
|
41
42
|
"yuv.form.element.data.grid.add-row.button.tooltip": "Zeile hinzufügen",
|
|
42
43
|
"yuv.form.element.data.grid.add.headline": "Neue Zeile hinzufügen",
|
|
43
44
|
"yuv.form.element.data.grid.edit": "Bearbeiten",
|
|
@@ -49,13 +50,10 @@
|
|
|
49
50
|
"yuv.form.element.data.grid.row.button.actions.tooltip": "Aktionsmenü öffnen",
|
|
50
51
|
"yuv.form.element.datetime.calendar.cancel": "Abbrechen",
|
|
51
52
|
"yuv.form.element.datetime.calendar.select": "Auswählen",
|
|
52
|
-
"yuv.form.element.catalog.option.none": "Nichts ausgewählt",
|
|
53
53
|
"yuv.form.element.datetime.calendar.today": "Heute",
|
|
54
54
|
"yuv.form.element.organization-set.classify.icon.title": "Gruppe",
|
|
55
55
|
"yuv.form.element.organization.classify.icon.title": "Benutzer",
|
|
56
56
|
"yuv.form.element.organization.freetext.tooltip": "Freitext – kein aufgelöster Benutzer bzw. keine Gruppe",
|
|
57
|
-
"yuv.form.element.reference.classify.icon.title": "Referenz",
|
|
58
|
-
"yuv.form.element.reference.open.title": "Referenziertes Objekt öffnen",
|
|
59
57
|
"yuv.form.element.range-select-date.custom.overlay.button.apply": "Anwenden",
|
|
60
58
|
"yuv.form.element.range-select-date.custom.overlay.title": "Benutzerdefinierter Zeitraum",
|
|
61
59
|
"yuv.form.element.range-select-date.option.any": "Beliebiges Datum",
|
|
@@ -70,9 +68,11 @@
|
|
|
70
68
|
"yuv.form.element.range-select-date.option.yesterday": "Gestern",
|
|
71
69
|
"yuv.form.element.range-select-filesize.option.any": "Beliebige Größe",
|
|
72
70
|
"yuv.form.element.range-select-filesize.option.large": "Groß (10-100 MB)",
|
|
73
|
-
"yuv.form.element.range-select-filesize.option.medium": "Mittel (1
|
|
71
|
+
"yuv.form.element.range-select-filesize.option.medium": "Mittel (1–10 MB)",
|
|
74
72
|
"yuv.form.element.range-select-filesize.option.small": "Klein (<1 MB)",
|
|
75
73
|
"yuv.form.element.range-select-filesize.option.verylarge": "Sehr groß (>100 MB)",
|
|
74
|
+
"yuv.form.element.reference.classify.icon.title": "Referenz",
|
|
75
|
+
"yuv.form.element.reference.open.title": "Referenziertes Objekt öffnen",
|
|
76
76
|
"yuv.object-metadata.button.save": "Speichern",
|
|
77
77
|
"yuv.audit.fetch.error": "Historieneinträge konnten nicht geladen werden",
|
|
78
78
|
"yuv.audit.label.paging": "Seitennavigation",
|
|
@@ -92,6 +92,7 @@
|
|
|
92
92
|
"yuv.object-metadata.tabs.indexdata.title": "Metadaten",
|
|
93
93
|
"yuv.object-flavor.apply-flavor.button.apply": "Anwenden",
|
|
94
94
|
"yuv.object-flavor.apply-flavor.button.cancel": "Abbrechen",
|
|
95
|
+
"yuv.object-flavor.apply-flavor.error": "Der Typ konnte nicht hinzugefügt werden.",
|
|
95
96
|
"yuv.object-flavor.apply-flavor.headline": "Typ '{{name}}' hinzufügen",
|
|
96
97
|
"yuv.object-flavor.button.add": "Typ hinzufügen",
|
|
97
98
|
"yuv.object-flavor.button.clear-selection": "Auswahl aufheben",
|
|
@@ -214,9 +215,9 @@
|
|
|
214
215
|
"yuv.sort.tooltip": "Sortieren",
|
|
215
216
|
"yuv.action.empty.selection": "",
|
|
216
217
|
"yuv.tile-config.button.close": "Schließen",
|
|
217
|
-
"yuv.tile-config.error.title-required": "Ein Titel-Attribut ist erforderlich. Wählen Sie ein Attribut für den Titel aus.",
|
|
218
218
|
"yuv.tile-config.button.reset": "Zurücksetzen",
|
|
219
219
|
"yuv.tile-config.button.save": "Änderungen speichern",
|
|
220
|
+
"yuv.tile-config.error.title-required": "Ein Titel-Attribut ist erforderlich. Wählen Sie ein Attribut für den Titel aus.",
|
|
220
221
|
"yuv.tile-config.icon-select.pick": "Icon auswählen",
|
|
221
222
|
"yuv.tile-config.icon-select.reset": "Zurücksetzen",
|
|
222
223
|
"yuv.tile-config.slot.action.headline": "Aktionen",
|
package/lib/assets/i18n/en.json
CHANGED
|
@@ -54,8 +54,6 @@
|
|
|
54
54
|
"yuv.form.element.organization-set.classify.icon.title": "Group",
|
|
55
55
|
"yuv.form.element.organization.classify.icon.title": "User",
|
|
56
56
|
"yuv.form.element.organization.freetext.tooltip": "Free text – not a resolved user or group",
|
|
57
|
-
"yuv.form.element.reference.classify.icon.title": "Reference",
|
|
58
|
-
"yuv.form.element.reference.open.title": "Open referenced object",
|
|
59
57
|
"yuv.form.element.range-select-date.custom.overlay.button.apply": "Apply",
|
|
60
58
|
"yuv.form.element.range-select-date.custom.overlay.title": "User-defined time period",
|
|
61
59
|
"yuv.form.element.range-select-date.option.any": "Any date",
|
|
@@ -73,6 +71,8 @@
|
|
|
73
71
|
"yuv.form.element.range-select-filesize.option.medium": "Medium (1–10 MB)",
|
|
74
72
|
"yuv.form.element.range-select-filesize.option.small": "Small (<1 MB)",
|
|
75
73
|
"yuv.form.element.range-select-filesize.option.verylarge": "Very large (>100 MB)",
|
|
74
|
+
"yuv.form.element.reference.classify.icon.title": "Reference",
|
|
75
|
+
"yuv.form.element.reference.open.title": "Open referenced object",
|
|
76
76
|
"yuv.object-metadata.button.save": "Save",
|
|
77
77
|
"yuv.audit.fetch.error": "Unable to load history entries",
|
|
78
78
|
"yuv.audit.label.paging": "Page navigation",
|
|
@@ -92,6 +92,7 @@
|
|
|
92
92
|
"yuv.object-metadata.tabs.indexdata.title": "Metadata",
|
|
93
93
|
"yuv.object-flavor.apply-flavor.button.apply": "Apply",
|
|
94
94
|
"yuv.object-flavor.apply-flavor.button.cancel": "Cancel",
|
|
95
|
+
"yuv.object-flavor.apply-flavor.error": "The type could not be added.",
|
|
95
96
|
"yuv.object-flavor.apply-flavor.headline": "Add type '{{name}}'",
|
|
96
97
|
"yuv.object-flavor.button.add": "Add type",
|
|
97
98
|
"yuv.object-flavor.button.clear-selection": "Unselect",
|
|
@@ -214,9 +215,9 @@
|
|
|
214
215
|
"yuv.sort.tooltip": "Sort",
|
|
215
216
|
"yuv.action.empty.selection": "",
|
|
216
217
|
"yuv.tile-config.button.close": "Close",
|
|
217
|
-
"yuv.tile-config.error.title-required": "A title attribute is required. Select an attribute for the title slot.",
|
|
218
218
|
"yuv.tile-config.button.reset": "Reset",
|
|
219
219
|
"yuv.tile-config.button.save": "Save changes",
|
|
220
|
+
"yuv.tile-config.error.title-required": "A title attribute is required. Select an attribute for the title slot.",
|
|
220
221
|
"yuv.tile-config.icon-select.pick": "Select icon",
|
|
221
222
|
"yuv.tile-config.icon-select.reset": "Reset",
|
|
222
223
|
"yuv.tile-config.slot.action.headline": "Actions",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuuvis/client-framework",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.18.0",
|
|
4
4
|
"author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
"@angular/common": "^21.2.19",
|
|
9
9
|
"@angular/core": "^21.2.19",
|
|
10
10
|
"angular-gridster2": "^21.0.1",
|
|
11
|
-
"@yuuvis/client-core": "^3.
|
|
12
|
-
"@yuuvis/client-shell-core": "^3.
|
|
13
|
-
"@yuuvis/client-components": "^3.
|
|
11
|
+
"@yuuvis/client-core": "^3.18.0",
|
|
12
|
+
"@yuuvis/client-shell-core": "^3.18.0",
|
|
13
|
+
"@yuuvis/client-components": "^3.18.0",
|
|
14
14
|
"ng-dynamic-component": "^10.8.2",
|
|
15
15
|
"modern-normalize": "^3.0.1"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@angular/material": "^21.2.14",
|
|
19
19
|
"@ngrx/signals": "^21.1.0",
|
|
20
|
-
"@yuuvis/material": "^3.
|
|
20
|
+
"@yuuvis/material": "^3.18.0",
|
|
21
21
|
"@yuuvis/media-viewer": "^4.0.0",
|
|
22
22
|
"angular-split": "^20.0.0",
|
|
23
23
|
"vis-network": "^10.0.2",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal } from '@angular/core';
|
|
3
|
-
import { DmsObject, YuvUser, LockState } from '@yuuvis/client-core';
|
|
3
|
+
import { DmsObject, YuvUser, LockState, VirtualObjectType } from '@yuuvis/client-core';
|
|
4
4
|
import { Severity } from '@yuuvis/material/badge';
|
|
5
5
|
|
|
6
6
|
type BadgeSeverity = Severity;
|
|
@@ -14,6 +14,23 @@ interface BadgeRule {
|
|
|
14
14
|
op: 'isSet' | 'equals' | 'tagPresent';
|
|
15
15
|
value?: unknown;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Restricts the object types a badge may be configured for. Mirrors
|
|
19
|
+
* `ActionSupport`: an entry matches when the object type id is listed in
|
|
20
|
+
* `types` or `sots`, or matches `pattern`.
|
|
21
|
+
*
|
|
22
|
+
* This scopes *configurability* (which types offer the badge in selection UIs
|
|
23
|
+
* such as the tile config), not rendering — whether a badge actually shows on
|
|
24
|
+
* a given object stays governed by {@link Badge.applies} / {@link Badge.rule}.
|
|
25
|
+
*/
|
|
26
|
+
interface BadgeSupport {
|
|
27
|
+
/** Object types the badge can be configured for (e.g. `system:document`). */
|
|
28
|
+
types?: string[];
|
|
29
|
+
/** Secondary object types the badge can be configured for. */
|
|
30
|
+
sots?: string[];
|
|
31
|
+
/** Pattern matched against the object type id. */
|
|
32
|
+
pattern?: string;
|
|
33
|
+
}
|
|
17
34
|
interface Badge {
|
|
18
35
|
id: string;
|
|
19
36
|
labelKey: string;
|
|
@@ -29,6 +46,12 @@ interface Badge {
|
|
|
29
46
|
* the id filter. Variants are hidden from selection UIs.
|
|
30
47
|
*/
|
|
31
48
|
variantOf?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Object types this badge may be configured for. When omitted, the badge is
|
|
51
|
+
* offered for every type. Variants inherit the support of their parent badge
|
|
52
|
+
* and are hidden from selection UIs anyway.
|
|
53
|
+
*/
|
|
54
|
+
supports?: BadgeSupport;
|
|
32
55
|
applies?: (dmsObject: DmsObject, ctx: BadgeContext) => boolean;
|
|
33
56
|
rule?: BadgeRule;
|
|
34
57
|
}
|
|
@@ -53,10 +76,15 @@ declare class BadgeSelectComponent {
|
|
|
53
76
|
#private;
|
|
54
77
|
selectedBadgeIds: _angular_core.InputSignal<string[]>;
|
|
55
78
|
bucket: _angular_core.InputSignal<string | undefined>;
|
|
79
|
+
/**
|
|
80
|
+
* Type currently being configured. Badges that declare `supports` are only
|
|
81
|
+
* offered for the types they support. Omitting it offers every badge.
|
|
82
|
+
*/
|
|
83
|
+
objectType: _angular_core.InputSignal<VirtualObjectType | undefined>;
|
|
56
84
|
badgeSelect: _angular_core.OutputEmitterRef<Badge>;
|
|
57
85
|
readonly badges: Signal<Badge[]>;
|
|
58
86
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeSelectComponent, never>;
|
|
59
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeSelectComponent, "yuv-tile-badge-select", never, { "selectedBadgeIds": { "alias": "selectedBadgeIds"; "required": false; "isSignal": true; }; "bucket": { "alias": "bucket"; "required": false; "isSignal": true; }; }, { "badgeSelect": "badgeSelect"; }, never, never, true, never>;
|
|
87
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeSelectComponent, "yuv-tile-badge-select", never, { "selectedBadgeIds": { "alias": "selectedBadgeIds"; "required": false; "isSignal": true; }; "bucket": { "alias": "bucket"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; }, { "badgeSelect": "badgeSelect"; }, never, never, true, never>;
|
|
60
88
|
}
|
|
61
89
|
|
|
62
90
|
/**
|
|
@@ -84,6 +112,10 @@ declare const LOCK_SELF_BADGE: Badge;
|
|
|
84
112
|
* @remarks
|
|
85
113
|
* - `severity` is set to `'danger'` to visually emphasize the retention constraint.
|
|
86
114
|
* - `priority` is `20`, which controls the display order relative to other badges.
|
|
115
|
+
* - `supports` limits the badge to documents, so selection UIs such as the tile
|
|
116
|
+
* config do not offer it for folder types. It only scopes configurability -
|
|
117
|
+
* `applies` still governs rendering, so an object under retention keeps its
|
|
118
|
+
* badge regardless.
|
|
87
119
|
*/ declare const RETENTION_BADGE: Badge;
|
|
88
120
|
|
|
89
121
|
declare class BadgeRegistryService {
|
|
@@ -196,6 +228,21 @@ declare class TileBadgesComponent {
|
|
|
196
228
|
* @returns `true` if the rule matches; otherwise `false`.
|
|
197
229
|
*/
|
|
198
230
|
declare function evaluateRule(rule: BadgeRule, dmsObject: DmsObject): boolean;
|
|
231
|
+
/**
|
|
232
|
+
* Checks whether a badge may be configured for the given object type.
|
|
233
|
+
*
|
|
234
|
+
* A badge without {@link Badge.supports} is unrestricted and matches every
|
|
235
|
+
* type. Otherwise the type's `objectType` and its `sots` are matched against
|
|
236
|
+
* the badge's `types` / `sots` lists and its `pattern`; a single hit is enough.
|
|
237
|
+
*
|
|
238
|
+
* Called without an object type (no type context available) the badge is kept,
|
|
239
|
+
* so callers that do not know the type never lose badges.
|
|
240
|
+
*
|
|
241
|
+
* @param badge Badge to check.
|
|
242
|
+
* @param objectType Type the selection UI is currently configuring.
|
|
243
|
+
* @returns `true` if the badge may be offered for that type; otherwise `false`.
|
|
244
|
+
*/
|
|
245
|
+
declare function badgeSupportsType(badge: Badge, objectType?: VirtualObjectType): boolean;
|
|
199
246
|
|
|
200
|
-
export { BadgeChipComponent, BadgeRegistryService, BadgeSelectComponent, LOCK_BADGE, LOCK_SELF_BADGE, RETENTION_BADGE, TileBadgesComponent, evaluateRule };
|
|
201
|
-
export type { Badge, BadgeContext, BadgeRule, BadgeSeverity };
|
|
247
|
+
export { BadgeChipComponent, BadgeRegistryService, BadgeSelectComponent, LOCK_BADGE, LOCK_SELF_BADGE, RETENTION_BADGE, TileBadgesComponent, badgeSupportsType, evaluateRule };
|
|
248
|
+
export type { Badge, BadgeContext, BadgeRule, BadgeSeverity, BadgeSupport };
|