@yuuvis/client-framework 3.0.1 → 3.2.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 (67) hide show
  1. package/fesm2022/yuuvis-client-framework-actions.mjs +214 -126
  2. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  3. package/fesm2022/yuuvis-client-framework-app-bar.mjs +3 -3
  4. package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
  5. package/fesm2022/yuuvis-client-framework-badges.mjs +379 -0
  6. package/fesm2022/yuuvis-client-framework-badges.mjs.map +1 -0
  7. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +3 -3
  8. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/yuuvis-client-framework-clipboard.mjs +8 -8
  10. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
  11. package/fesm2022/yuuvis-client-framework-datepicker.mjs +31 -31
  12. package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
  13. package/fesm2022/yuuvis-client-framework-forms.mjs +745 -657
  14. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  15. package/fesm2022/yuuvis-client-framework-icons.mjs +9 -9
  16. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
  17. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +10 -9
  18. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
  19. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +19 -17
  20. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  21. package/fesm2022/yuuvis-client-framework-object-details.mjs +215 -208
  22. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  23. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +18 -18
  24. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
  25. package/fesm2022/yuuvis-client-framework-object-form.mjs +41 -37
  26. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  27. package/fesm2022/yuuvis-client-framework-object-preview.mjs +9 -9
  28. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
  29. package/fesm2022/yuuvis-client-framework-object-relationship.mjs +29 -29
  30. package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
  31. package/fesm2022/yuuvis-client-framework-object-summary.mjs +16 -16
  32. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
  33. package/fesm2022/yuuvis-client-framework-object-versions.mjs +18 -12
  34. package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
  35. package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -3
  36. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
  37. package/fesm2022/yuuvis-client-framework-query-list.mjs +7 -7
  38. package/fesm2022/yuuvis-client-framework-query-list.mjs.map +1 -1
  39. package/fesm2022/yuuvis-client-framework-renderer.mjs +40 -40
  40. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
  41. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +50 -38
  42. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  43. package/fesm2022/yuuvis-client-framework-simple-search.mjs +3 -3
  44. package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
  45. package/fesm2022/yuuvis-client-framework-sort.mjs +3 -3
  46. package/fesm2022/yuuvis-client-framework-sort.mjs.map +1 -1
  47. package/fesm2022/yuuvis-client-framework-tile-list.mjs +191 -127
  48. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  49. package/fesm2022/yuuvis-client-framework-token-search.mjs +7 -7
  50. package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -1
  51. package/fesm2022/yuuvis-client-framework-tree.mjs +9 -9
  52. package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
  53. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +10 -10
  54. package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
  55. package/fesm2022/yuuvis-client-framework.mjs +96 -51
  56. package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
  57. package/lib/assets/i18n/de.json +12 -1
  58. package/lib/assets/i18n/en.json +12 -1
  59. package/package.json +9 -5
  60. package/types/yuuvis-client-framework-actions.d.ts +91 -52
  61. package/types/yuuvis-client-framework-badges.d.ts +194 -0
  62. package/types/yuuvis-client-framework-forms.d.ts +215 -186
  63. package/types/yuuvis-client-framework-object-details.d.ts +104 -104
  64. package/types/yuuvis-client-framework-object-versions.d.ts +1 -0
  65. package/types/yuuvis-client-framework-sequence-list.d.ts +2 -2
  66. package/types/yuuvis-client-framework-tile-list.d.ts +11 -6
  67. package/types/yuuvis-client-framework.d.ts +13 -0
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injector, Signal, TemplateRef } from '@angular/core';
2
+ import { TemplateRef, Injector, Signal, InjectionToken } from '@angular/core';
3
3
  import * as i1 from '@ngx-translate/core';
4
- import { MatIconRegistry } from '@angular/material/icon';
4
+ import { CdkMenu, CdkMenuItem, CdkContextMenuTrigger } from '@angular/cdk/menu';
5
5
  import { DmsObject } from '@yuuvis/client-core';
6
6
  import { Observable } from 'rxjs';
7
- import { CdkMenu, CdkMenuItem, CdkContextMenuTrigger } from '@angular/cdk/menu';
7
+ import { MatIconRegistry } from '@angular/material/icon';
8
8
 
9
9
  /**
10
10
  * Module for the actions library.
@@ -15,6 +15,14 @@ declare class ActionsModule {
15
15
  static ɵinj: i0.ɵɵInjectorDeclaration<ActionsModule>;
16
16
  }
17
17
 
18
+ declare const ACTION_ICON: {
19
+ download: string;
20
+ delete: string;
21
+ copy: string;
22
+ cut: string;
23
+ manageFlavor: string;
24
+ };
25
+
18
26
  type ActionClass = {
19
27
  new (...args: any[]): any;
20
28
  };
@@ -120,6 +128,79 @@ declare const BASE_ACTION: {
120
128
  delete: string;
121
129
  };
122
130
 
131
+ interface ContextMenuAction extends Action {
132
+ iconName?: string;
133
+ disabled?: boolean;
134
+ executeFn?: (...args: any[]) => void;
135
+ }
136
+ interface ContextMenuItemSelectEvent {
137
+ action: ContextMenuAction;
138
+ }
139
+
140
+ declare class ContextmenuComponent {
141
+ actions: i0.InputSignal<ContextMenuAction[]>;
142
+ selection: i0.InputSignal<unknown[]>;
143
+ itemSelect: i0.OutputEmitterRef<ContextMenuItemSelectEvent>;
144
+ private translate;
145
+ cdkMenu: i0.Signal<CdkMenu>;
146
+ menuItems: i0.Signal<readonly (CdkMenuItem | null)[]>;
147
+ sortedActions: i0.Signal<ContextMenuAction[]>;
148
+ constructor();
149
+ onItemTrigger({ action }: ContextMenuItemSelectEvent): void;
150
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContextmenuComponent, never>;
151
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContextmenuComponent, "yuv-contextmenu", never, { "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, never>;
152
+ }
153
+
154
+ declare class YuvContextMenuTriggerDirective extends CdkContextMenuTrigger {
155
+ #private;
156
+ menuTemplateRef: TemplateRef<unknown>;
157
+ triggerWhen: i0.InputSignal<boolean | null>;
158
+ constructor();
159
+ _openOnContextMenu(event: MouseEvent): void;
160
+ static ɵfac: i0.ɵɵFactoryDeclaration<YuvContextMenuTriggerDirective, never>;
161
+ static ɵdir: i0.ɵɵDirectiveDeclaration<YuvContextMenuTriggerDirective, "[yuvContextMenuTrigger]", ["yuvContextMenuTrigger"], { "menuTemplateRef": { "alias": "yuvContextMenuTrigger"; "required": false; }; "triggerWhen": { "alias": "yuvContextMenuTriggerWhen"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
162
+ }
163
+
164
+ declare const ActionPriorityLevel: {
165
+ readonly LEVEL_1: 1;
166
+ readonly LEVEL_2: 2;
167
+ readonly LEVEL_3: 3;
168
+ readonly LEVEL_4: 4;
169
+ readonly LEVEL_5: 5;
170
+ readonly LEVEL_6: 6;
171
+ readonly LEVEL_7: 7;
172
+ readonly LEVEL_8: 8;
173
+ readonly LEVEL_9: 9;
174
+ readonly LEVEL_10: 10;
175
+ };
176
+
177
+ /**
178
+ * Service responsible for validating actions on DMS objects.
179
+ * Provides checks for document lock states and related user information.
180
+ */
181
+ declare class ActionsValidationService {
182
+ #private;
183
+ private readonly translate;
184
+ /**
185
+ * Checks whether a DMS object is locked by another user.
186
+ *
187
+ * Delegates lock detection to {@link ObjectLockingService.getLockState}. When the
188
+ * object is locked by a different user, returns `state: true` along with a
189
+ * translated description identifying the lock holder.
190
+ *
191
+ * @param dmsObject - The DMS object to check for a lock.
192
+ * @returns An observable emitting an object with:
193
+ * - `state`: `true` if the object is locked by another user, `false` otherwise.
194
+ * - `description`: An optional translated message describing the lock state (only present when `state` is `true`).
195
+ */
196
+ checkDocumentLock(dmsObject: DmsObject): Observable<{
197
+ state: boolean;
198
+ description?: string;
199
+ }>;
200
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionsValidationService, never>;
201
+ static ɵprov: i0.ɵɵInjectableDeclaration<ActionsValidationService>;
202
+ }
203
+
123
204
  declare class ActionsService {
124
205
  #private;
125
206
  readonly injector: Injector;
@@ -176,34 +257,33 @@ declare class ActionsService {
176
257
  * are available for use.
177
258
  */
178
259
  registerDefaultActions(): void;
179
- private _actionsSupportsType;
180
260
  static ɵfac: i0.ɵɵFactoryDeclaration<ActionsService, never>;
181
261
  static ɵprov: i0.ɵɵInjectableDeclaration<ActionsService>;
182
262
  }
183
263
 
264
+ declare const ACTION_CONTEXT_TOKEN: InjectionToken<ActionContext>;
265
+
184
266
  declare class DeleteAction extends AbstractContextAction implements Action {
185
267
  #private;
186
- private translate;
187
- private retention;
188
268
  id: string;
189
269
  label: any;
190
270
  description: any;
191
- priority: number;
271
+ priority: 8;
192
272
  icon: string;
193
273
  group: string;
194
274
  range: SelectionRange;
195
275
  supports: ActionSupport;
276
+ isDisabled(items: DmsObject[]): Observable<boolean>;
196
277
  isExecutable(items: DmsObject[]): Observable<boolean>;
197
278
  run(items: DmsObject[]): Observable<boolean>;
198
279
  }
199
280
 
200
281
  declare class DownloadAction extends AbstractContextAction implements Action {
201
- private translate;
202
- private dmsService;
282
+ #private;
203
283
  id: string;
204
284
  label: any;
205
285
  description: any;
206
- priority: number;
286
+ priority: 2;
207
287
  icon: string;
208
288
  group: string;
209
289
  range: SelectionRange;
@@ -212,46 +292,5 @@ declare class DownloadAction extends AbstractContextAction implements Action {
212
292
  run(selection: DmsObject[]): Observable<boolean>;
213
293
  }
214
294
 
215
- declare const ACTION_ICON: {
216
- download: string;
217
- delete: string;
218
- copy: string;
219
- cut: string;
220
- manageFlavor: string;
221
- };
222
-
223
- interface ContextMenuAction extends Action {
224
- iconName?: string;
225
- disabled?: boolean;
226
- executeFn?: (...args: any[]) => void;
227
- }
228
- interface ContextMenuItemSelectEvent {
229
- action: ContextMenuAction;
230
- }
231
-
232
- declare class ContextmenuComponent {
233
- actions: i0.InputSignal<ContextMenuAction[]>;
234
- selection: i0.InputSignal<unknown[]>;
235
- itemSelect: i0.OutputEmitterRef<ContextMenuItemSelectEvent>;
236
- private translate;
237
- cdkMenu: i0.Signal<CdkMenu>;
238
- menuItems: i0.Signal<readonly (CdkMenuItem | null)[]>;
239
- sortedActions: i0.Signal<ContextMenuAction[]>;
240
- constructor();
241
- onItemTrigger({ action }: ContextMenuItemSelectEvent): void;
242
- static ɵfac: i0.ɵɵFactoryDeclaration<ContextmenuComponent, never>;
243
- static ɵcmp: i0.ɵɵComponentDeclaration<ContextmenuComponent, "yuv-contextmenu", never, { "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, never>;
244
- }
245
-
246
- declare class YuvContextMenuTriggerDirective extends CdkContextMenuTrigger {
247
- #private;
248
- menuTemplateRef: TemplateRef<unknown>;
249
- triggerWhen: i0.InputSignal<boolean | null>;
250
- constructor();
251
- _openOnContextMenu(event: MouseEvent): void;
252
- static ɵfac: i0.ɵɵFactoryDeclaration<YuvContextMenuTriggerDirective, never>;
253
- static ɵdir: i0.ɵɵDirectiveDeclaration<YuvContextMenuTriggerDirective, "[yuvContextMenuTrigger]", ["yuvContextMenuTrigger"], { "menuTemplateRef": { "alias": "yuvContextMenuTrigger"; "required": false; }; "triggerWhen": { "alias": "yuvContextMenuTriggerWhen"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
254
- }
255
-
256
- export { ACTION_ICON, AbstractContextAction, ActionsModule, ActionsService, BASE_ACTION, ContextmenuComponent, DeleteAction, DownloadAction, SelectionRange, YuvContextMenuTriggerDirective };
295
+ export { ACTION_CONTEXT_TOKEN, ACTION_ICON, AbstractContextAction, ActionPriorityLevel, ActionsModule, ActionsService, ActionsValidationService, BASE_ACTION, ContextmenuComponent, DeleteAction, DownloadAction, SelectionRange, YuvContextMenuTriggerDirective };
257
296
  export type { Action, ActionClass, ActionContext, ActionOptions, ActionSupport, BaseAction, ContextMenuAction, ContextMenuItemSelectEvent };
@@ -0,0 +1,194 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Signal } from '@angular/core';
3
+ import { DmsObject, YuvUser, LockState } from '@yuuvis/client-core';
4
+ import { Severity } from '@yuuvis/material/badge';
5
+
6
+ type BadgeSeverity = Severity;
7
+
8
+ interface BadgeContext {
9
+ currentUser?: YuvUser;
10
+ lockState?: LockState;
11
+ }
12
+ interface BadgeRule {
13
+ field: string;
14
+ op: 'isSet' | 'equals' | 'tagPresent';
15
+ value?: unknown;
16
+ }
17
+ interface Badge {
18
+ id: string;
19
+ labelKey: string;
20
+ descriptionKey?: string;
21
+ icon: string;
22
+ svgIcon?: boolean;
23
+ severity?: BadgeSeverity;
24
+ priority?: number;
25
+ /**
26
+ * Marks this badge as a context-specific variant of another badge id.
27
+ * The parent badge id alone is configured (e.g. in tile-config); the
28
+ * registry implicitly evaluates variants whenever their parent is in
29
+ * the id filter. Variants are hidden from selection UIs.
30
+ */
31
+ variantOf?: string;
32
+ applies?: (dmsObject: DmsObject, ctx: BadgeContext) => boolean;
33
+ rule?: BadgeRule;
34
+ }
35
+
36
+ declare class BadgeChipComponent {
37
+ #private;
38
+ badge: _angular_core.InputSignal<Badge>;
39
+ showLabel: _angular_core.InputSignal<boolean>;
40
+ readonly tooltip: _angular_core.Signal<string>;
41
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeChipComponent, never>;
42
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeChipComponent, "yuv-badge-chip", never, { "badge": { "alias": "badge"; "required": true; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
43
+ }
44
+
45
+ declare class BadgeSelectComponent {
46
+ #private;
47
+ selectedBadgeIds: _angular_core.InputSignal<string[]>;
48
+ bucket: _angular_core.InputSignal<string | undefined>;
49
+ badgeSelect: _angular_core.OutputEmitterRef<Badge>;
50
+ readonly badges: Signal<Badge[]>;
51
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeSelectComponent, never>;
52
+ 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>;
53
+ }
54
+
55
+ /**
56
+ * Badge shown when an object is locked by another user.
57
+ */
58
+ declare const LOCK_BADGE: Badge;
59
+ /**
60
+ * Badge shown when an object is locked by the current user.
61
+ */
62
+ declare const LOCK_SELF_BADGE: Badge;
63
+
64
+ /**
65
+ * Badge definition for DMS objects that are subject to a destruction retention policy.
66
+ *
67
+ * This badge is displayed when a DMS object has the `DESTRUCTION_RETENTION` secondary object type
68
+ * assigned and an active or ongoing retention period. It helps users identify objects that are
69
+ * legally or organizationally protected from deletion during their retention period.
70
+ *
71
+ * **Applies when:**
72
+ * - The object includes the `SystemSOT.DESTRUCTION_RETENTION` secondary object type.
73
+ * - A retention start date (`RetentionField.RETENTION_START`) is present.
74
+ * - The retention period has started (start date is in the past), or an end date is set and
75
+ * still lies in the future.
76
+ *
77
+ * @remarks
78
+ * - `severity` is set to `'danger'` to visually emphasize the retention constraint.
79
+ * - `priority` is `20`, which controls the display order relative to other badges.
80
+ */ declare const RETENTION_BADGE: Badge;
81
+
82
+ declare class BadgeRegistryService {
83
+ #private;
84
+ /**
85
+ * Registers one or multiple badges in the registry.
86
+ *
87
+ * If a badge with the same id already exists in the same scope, it is replaced.
88
+ * Otherwise, the badge is added to the scope.
89
+ *
90
+ * @param badges An array of badges to register.
91
+ * @param bucket Optional bucket id (typically an APP_ID). If omitted, badges are
92
+ * registered globally and visible to every consumer. If provided,
93
+ * badges are scoped to that bucket and only visible when consumers
94
+ * query with the matching bucket.
95
+ *
96
+ * @see {@link Badge}
97
+ */
98
+ registerBadges(badges: Badge[], bucket?: string): void;
99
+ /**
100
+ * Registers the default badges into the registry.
101
+ *
102
+ * Initializes three built-in badge types:
103
+ * - LOCK_BADGE: Indicates objects locked by other users
104
+ * - LOCK_SELF_BADGE: Indicates objects locked by the current user
105
+ * - RETENTION_BADGE: Indicates objects under retention hold
106
+ *
107
+ * @param bucket Optional bucket id. If omitted, defaults are registered globally.
108
+ *
109
+ * @see {@link Badge}
110
+ */
111
+ registerDefaultBadges(bucket?: string): void;
112
+ /**
113
+ * Unregisters one or multiple badges from the registry by id.
114
+ *
115
+ * Operates only on the specified scope: omitting `bucket` removes from the global
116
+ * scope only, providing `bucket` removes from that bucket only.
117
+ *
118
+ * @param id A single badge id or an array of badge ids to remove.
119
+ * @param bucket Optional bucket id.
120
+ */
121
+ unregister(id: string | string[], bucket?: string): void;
122
+ /**
123
+ * Returns a registered badge by id.
124
+ *
125
+ * Looks first in the given bucket (if any), then in the global scope.
126
+ *
127
+ * @param id The badge id.
128
+ * @param bucket Optional bucket id.
129
+ * @returns The matching badge, or undefined if no badge is registered with that id.
130
+ */
131
+ get(id: string, bucket?: string): Badge | undefined;
132
+ /**
133
+ * Returns all registered badges across the global scope and every bucket.
134
+ *
135
+ * Bucket entries override globals with the same id; remaining duplicates between
136
+ * buckets keep the first occurrence. Useful for tests and debug inspection.
137
+ */
138
+ all(): Badge[];
139
+ /**
140
+ * Returns a reactive list of badges visible in the given scope.
141
+ *
142
+ * The returned signal recomputes whenever the registry changes. The list contains
143
+ * the global badges merged with the named bucket's badges (bucket entries override
144
+ * globals with the same id), sorted by ascending priority. At equal priority,
145
+ * globals come first, then bucket-local badges.
146
+ *
147
+ * @param bucket Optional bucket id.
148
+ */
149
+ getBadgesForBucket(bucket?: string): Signal<Badge[]>;
150
+ /**
151
+ * Resolves all active badges for a given object in the given scope.
152
+ *
153
+ * The visible scope is `main ∪ bucket`. Variants only resolve when their parent id
154
+ * is present in the visible scope. If `idFilter` is provided, only badges whose id
155
+ * (or whose variant's parent id) is in the filter are considered. The resulting
156
+ * list is sorted by ascending priority.
157
+ *
158
+ * @param dmsObject The object to evaluate badges against.
159
+ * @param options Optional bucket and id filter.
160
+ */
161
+ getActiveBadges(dmsObject: DmsObject, options?: {
162
+ bucket?: string;
163
+ idFilter?: string[];
164
+ }): Badge[];
165
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeRegistryService, never>;
166
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BadgeRegistryService>;
167
+ }
168
+
169
+ declare class TileBadgesComponent {
170
+ #private;
171
+ dmsObject: _angular_core.InputSignal<DmsObject>;
172
+ badgeIds: _angular_core.InputSignal<string[] | undefined>;
173
+ bucket: _angular_core.InputSignal<string | undefined>;
174
+ readonly activeBadges: _angular_core.Signal<Badge[]>;
175
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TileBadgesComponent, never>;
176
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TileBadgesComponent, "yuv-tile-badges", never, { "dmsObject": { "alias": "dmsObject"; "required": true; "isSignal": true; }; "badgeIds": { "alias": "badgeIds"; "required": false; "isSignal": true; }; "bucket": { "alias": "bucket"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
177
+ }
178
+
179
+ /**
180
+ * Evaluates a single badge rule against a given DMS object.
181
+ *
182
+ * Supported operations:
183
+ * - `isSet`: returns `true` when the field value is not `undefined`, `null`, or an empty string.
184
+ * - `equals`: returns `true` when the field value strictly equals `rule.value`.
185
+ * - `tagPresent`: returns `true` when the configured tags field contains a tag whose first element equals `rule.value`.
186
+ *
187
+ * @param rule Badge rule definition to evaluate.
188
+ * @param dmsObject Source object containing field data.
189
+ * @returns `true` if the rule matches; otherwise `false`.
190
+ */
191
+ declare function evaluateRule(rule: BadgeRule, dmsObject: DmsObject): boolean;
192
+
193
+ export { BadgeChipComponent, BadgeRegistryService, BadgeSelectComponent, LOCK_BADGE, LOCK_SELF_BADGE, RETENTION_BADGE, TileBadgesComponent, evaluateRule };
194
+ export type { Badge, BadgeContext, BadgeRule, BadgeSeverity };