@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.
- package/fesm2022/yuuvis-client-framework-actions.mjs +214 -126
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-app-bar.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-badges.mjs +379 -0
- package/fesm2022/yuuvis-client-framework-badges.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-breadcrumb.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-clipboard.mjs +8 -8
- package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-datepicker.mjs +31 -31
- package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +745 -657
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +10 -9
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +19 -17
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +215 -208
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +18 -18
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +41 -37
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs +29 -29
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +16 -16
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-versions.mjs +18 -12
- package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-query-list.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-query-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-renderer.mjs +40 -40
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +50 -38
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sort.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-sort.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +191 -127
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-token-search.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tree.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +10 -10
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +96 -51
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/lib/assets/i18n/de.json +12 -1
- package/lib/assets/i18n/en.json +12 -1
- package/package.json +9 -5
- package/types/yuuvis-client-framework-actions.d.ts +91 -52
- package/types/yuuvis-client-framework-badges.d.ts +194 -0
- package/types/yuuvis-client-framework-forms.d.ts +215 -186
- package/types/yuuvis-client-framework-object-details.d.ts +104 -104
- package/types/yuuvis-client-framework-object-versions.d.ts +1 -0
- package/types/yuuvis-client-framework-sequence-list.d.ts +2 -2
- package/types/yuuvis-client-framework-tile-list.d.ts +11 -6
- 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,
|
|
2
|
+
import { TemplateRef, Injector, Signal, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as i1 from '@ngx-translate/core';
|
|
4
|
-
import {
|
|
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 {
|
|
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:
|
|
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
|
|
202
|
-
private dmsService;
|
|
282
|
+
#private;
|
|
203
283
|
id: string;
|
|
204
284
|
label: any;
|
|
205
285
|
description: any;
|
|
206
|
-
priority:
|
|
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
|
-
|
|
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 };
|