@openmfp/ngx 0.6.1

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.
@@ -0,0 +1,437 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, OnDestroy, Type } from '@angular/core';
3
+ import { FormGroup, FormControl } from '@angular/forms';
4
+ import * as _openmfp_ngx from '@openmfp/ngx';
5
+ import { Input } from '@fundamental-ngx/ui5-webcomponents/input';
6
+ import { GridStackOptions } from 'gridstack';
7
+ import { nodesCB } from 'gridstack/dist/angular';
8
+
9
+ interface GenericResource extends Record<string, unknown> {
10
+ id?: string;
11
+ isAvailable?: boolean;
12
+ accessibleName?: string;
13
+ }
14
+
15
+ type TransformType = 'uppercase' | 'lowercase' | 'capitalize' | 'decode' | 'encode';
16
+ interface PropertyField {
17
+ key: string;
18
+ transform?: TransformType[];
19
+ }
20
+ interface UiSettings {
21
+ labelDisplay?: boolean;
22
+ displayAs?: 'secret' | 'boolIcon' | 'link' | 'tooltip' | 'alert' | 'img' | 'button';
23
+ buttonSettings?: ButtonSettings;
24
+ tooltipIcon?: string;
25
+ withCopyButton?: boolean;
26
+ cssCustomization?: Partial<CSSStyleDeclaration>;
27
+ cssRules?: CssRule[];
28
+ columnWidth?: string;
29
+ }
30
+ type KnownButtonActions = 'openInModal' | 'navigate' | 'edit' | 'delete';
31
+ type ButtonActions = KnownButtonActions | (string & {});
32
+ interface ButtonSettings {
33
+ text?: string;
34
+ icon?: string;
35
+ endIcon?: string;
36
+ design?: 'Default' | 'Positive' | 'Negative' | 'Transparent' | 'Emphasized' | 'Attention';
37
+ tooltip?: string;
38
+ action: ButtonActions;
39
+ modalSettings?: ModalSettings;
40
+ }
41
+ interface ModalSettings {
42
+ title?: string;
43
+ size?: 'fullscreen' | 'l' | 'm' | 's';
44
+ width?: string;
45
+ height?: string;
46
+ }
47
+ type CssRuleCondition = 'equals' | 'notEquals' | 'greaterThan' | 'greaterThanOrEqual' | 'lessThan' | 'lessThanOrEqual' | 'contains';
48
+ interface CssRule {
49
+ if: {
50
+ condition: CssRuleCondition;
51
+ value: string;
52
+ };
53
+ styles: Partial<CSSStyleDeclaration>;
54
+ }
55
+ interface ValueCellButtonClickEvent<T extends GenericResource> {
56
+ event: MouseEvent;
57
+ field: TableFieldDefinition;
58
+ resource: T | undefined;
59
+ }
60
+ interface FieldDefinition {
61
+ label?: string;
62
+ property?: string | string[];
63
+ propertyField?: PropertyField;
64
+ jsonPathExpression?: string;
65
+ value?: string;
66
+ uiSettings?: UiSettings;
67
+ }
68
+ interface TableFieldDefinition extends FieldDefinition {
69
+ group?: {
70
+ name: string;
71
+ label?: string;
72
+ delimiter?: string;
73
+ multiline?: boolean;
74
+ };
75
+ }
76
+
77
+ type GroupBase = NonNullable<TableFieldDefinition['group']>;
78
+ type ProcessedGroup = GroupBase & {
79
+ fields?: TableFieldDefinition[];
80
+ };
81
+ type ProcessedTableFieldDefinition = Omit<TableFieldDefinition, 'group'> & {
82
+ group?: ProcessedGroup;
83
+ };
84
+
85
+ declare class DeclarativeTable<T extends GenericResource> {
86
+ columns: _angular_core.InputSignal<TableFieldDefinition[]>;
87
+ resources: _angular_core.InputSignal<T[]>;
88
+ trackByPath: _angular_core.InputSignal<string>;
89
+ totalItemsCount: _angular_core.InputSignal<number | undefined>;
90
+ paginationLimit: _angular_core.InputSignal<number>;
91
+ hasMore: _angular_core.InputSignal<boolean>;
92
+ readonly buttonClick: _angular_core.OutputEmitterRef<ValueCellButtonClickEvent<T>>;
93
+ readonly tableRowClicked: _angular_core.OutputEmitterRef<T>;
94
+ readonly loadMoreResources: _angular_core.OutputEmitterRef<void>;
95
+ readonly paginationLimitChanged: _angular_core.OutputEmitterRef<number>;
96
+ columnTrackBy: (column: TableFieldDefinition, index: number) => string | number | string[];
97
+ rowTrackBy: (_index: number, item: T) => unknown;
98
+ viewColumns: _angular_core.Signal<ProcessedTableFieldDefinition[]>;
99
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DeclarativeTable<any>, never>;
100
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeclarativeTable<any>, "mfp-declarative-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "resources": { "alias": "resources"; "required": true; "isSignal": true; }; "trackByPath": { "alias": "trackByPath"; "required": false; "isSignal": true; }; "totalItemsCount": { "alias": "totalItemsCount"; "required": false; "isSignal": true; }; "paginationLimit": { "alias": "paginationLimit"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; "tableRowClicked": "tableRowClicked"; "loadMoreResources": "loadMoreResources"; "paginationLimitChanged": "paginationLimitChanged"; }, never, never, true, never>;
101
+ }
102
+
103
+ interface FormFieldDefinition {
104
+ name: string;
105
+ label?: string;
106
+ required?: boolean;
107
+ values?: string[];
108
+ disabled?: boolean;
109
+ validation?: 'onBlur' | 'onChange';
110
+ }
111
+ interface FormFieldChangeEvent {
112
+ fieldProperty: string;
113
+ value: unknown;
114
+ }
115
+ type FormFieldErrors = Record<string, string | null>;
116
+
117
+ declare class DeclarativeForm {
118
+ readonly fields: _angular_core.InputSignal<FormFieldDefinition[]>;
119
+ readonly initialValues: _angular_core.InputSignal<Record<string, unknown>>;
120
+ readonly fieldErrors: _angular_core.InputSignal<FormFieldErrors>;
121
+ readonly fieldChange: _angular_core.OutputEmitterRef<FormFieldChangeEvent>;
122
+ readonly formSubmit: _angular_core.OutputEmitterRef<Record<string, unknown>>;
123
+ readonly form: FormGroup;
124
+ private readonly fb;
125
+ constructor();
126
+ setFormControlValue($event: Event, field: FormFieldDefinition): void;
127
+ getError(name: string): string | null;
128
+ getValueState(name: string): 'None' | 'Negative';
129
+ onFieldBlur(field: FormFieldDefinition): void;
130
+ submit(): void;
131
+ clear(): void;
132
+ private rebuildControls;
133
+ private setInitialValues;
134
+ private buildOutputValue;
135
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DeclarativeForm, never>;
136
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeclarativeForm, "mfp-declarative-form", never, { "fields": { "alias": "fields"; "required": true; "isSignal": true; }; "initialValues": { "alias": "initialValues"; "required": false; "isSignal": true; }; "fieldErrors": { "alias": "fieldErrors"; "required": false; "isSignal": true; }; }, { "fieldChange": "fieldChange"; "formSubmit": "formSubmit"; }, never, never, true, never>;
137
+ }
138
+
139
+ interface ResourceFormConfig {
140
+ fields: FormFieldDefinition[];
141
+ title?: string;
142
+ confirmLabel?: string;
143
+ cancelLabel?: string;
144
+ }
145
+ interface TableCardFormState {
146
+ fieldErrors?: FormFieldErrors;
147
+ }
148
+ interface DeleteResourceConfirmationConfig {
149
+ title?: string;
150
+ message?: string;
151
+ confirmLabel?: string;
152
+ cancelLabel?: string;
153
+ }
154
+ interface TableConfig {
155
+ fields: TableFieldDefinition[];
156
+ totalItemsCount?: number;
157
+ paginationLimit?: number;
158
+ hasMore?: boolean;
159
+ }
160
+ interface TableCardButtonSettings {
161
+ createButton?: Partial<ButtonSettings>;
162
+ searchButton?: Partial<ButtonSettings>;
163
+ editButton?: Partial<ButtonSettings>;
164
+ deleteButton?: Partial<ButtonSettings>;
165
+ }
166
+ interface TableCardConfig {
167
+ header?: string;
168
+ headerTooltip?: string;
169
+ tableConfig: TableConfig;
170
+ buttonSettings?: TableCardButtonSettings;
171
+ resourcesSearchable?: boolean;
172
+ createResourceFormConfig?: ResourceFormConfig;
173
+ editResourceFormConfig?: ResourceFormConfig;
174
+ deleteResourceConfirmationConfig?: DeleteResourceConfirmationConfig;
175
+ }
176
+
177
+ type SearchState = 'collapsed' | 'expanded' | 'collapsing';
178
+ declare class DeclarativeTableCard<T extends GenericResource> {
179
+ resources: _angular_core.InputSignal<T[]>;
180
+ config: _angular_core.InputSignal<TableCardConfig>;
181
+ createFormState: _angular_core.InputSignal<TableCardFormState>;
182
+ editFormState: _angular_core.InputSignal<TableCardFormState>;
183
+ readonly actionButtonClick: _angular_core.OutputEmitterRef<ValueCellButtonClickEvent<T>>;
184
+ readonly tableRowClicked: _angular_core.OutputEmitterRef<T>;
185
+ readonly loadMoreResources: _angular_core.OutputEmitterRef<void>;
186
+ readonly paginationLimitChanged: _angular_core.OutputEmitterRef<number>;
187
+ readonly searchChanged: _angular_core.OutputEmitterRef<string>;
188
+ readonly createFieldChange: _angular_core.OutputEmitterRef<FormFieldChangeEvent>;
189
+ readonly editFieldChange: _angular_core.OutputEmitterRef<{
190
+ resource: T;
191
+ formChangeEvent: FormFieldChangeEvent;
192
+ }>;
193
+ readonly createSubmit: _angular_core.OutputEmitterRef<Record<string, unknown>>;
194
+ readonly editSubmit: _angular_core.OutputEmitterRef<{
195
+ resource: T;
196
+ value: Record<string, unknown>;
197
+ }>;
198
+ readonly deleteSubmit: _angular_core.OutputEmitterRef<T>;
199
+ protected searchState: _angular_core.WritableSignal<SearchState>;
200
+ protected searchExpanded: _angular_core.Signal<boolean>;
201
+ protected searchCollapsing: _angular_core.Signal<boolean>;
202
+ protected searchControl: FormControl<string | null>;
203
+ protected searchInputRef: _angular_core.Signal<Input | undefined>;
204
+ protected createDialogOpen: _angular_core.WritableSignal<boolean>;
205
+ protected editDialogOpen: _angular_core.WritableSignal<boolean>;
206
+ protected deleteDialogOpen: _angular_core.WritableSignal<boolean>;
207
+ protected pendingResource: _angular_core.WritableSignal<T | null>;
208
+ protected tableConfig: _angular_core.Signal<_openmfp_ngx.TableConfig>;
209
+ protected header: _angular_core.Signal<string | undefined>;
210
+ protected headerTooltip: _angular_core.Signal<string | undefined>;
211
+ protected createFormConfig: _angular_core.Signal<_openmfp_ngx.ResourceFormConfig | undefined>;
212
+ protected editFormConfig: _angular_core.Signal<_openmfp_ngx.ResourceFormConfig | undefined>;
213
+ protected deleteConfirmationConfig: _angular_core.Signal<_openmfp_ngx.DeleteResourceConfirmationConfig | undefined>;
214
+ protected createButtonConfig: _angular_core.Signal<Partial<_openmfp_ngx.ButtonSettings> | undefined>;
215
+ protected searchButtonConfig: _angular_core.Signal<Partial<_openmfp_ngx.ButtonSettings> | undefined>;
216
+ protected effectiveColumns: _angular_core.Signal<TableFieldDefinition[]>;
217
+ protected editInitialValue: _angular_core.Signal<Record<string, unknown>>;
218
+ private readonly injector;
219
+ constructor();
220
+ toggleSearch(): void;
221
+ onSearchBlur(): void;
222
+ onSearchAnimationEnd(): void;
223
+ private collapseSearch;
224
+ onButtonClick(event: ValueCellButtonClickEvent<T>): void;
225
+ closeCreateDialog(): void;
226
+ closeEditDialog(): void;
227
+ closeDeleteDialog(): void;
228
+ onCreateFieldChange(event: FormFieldChangeEvent): void;
229
+ onEditFieldChange(event: FormFieldChangeEvent): void;
230
+ onCreateSubmit(value: Record<string, unknown>): void;
231
+ onEditSubmit(value: Record<string, unknown>): void;
232
+ onDeleteSubmit(): void;
233
+ protected hasErrors(state: TableCardFormState): boolean;
234
+ private addActionsColumn;
235
+ private buildInitialValues;
236
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DeclarativeTableCard<any>, never>;
237
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeclarativeTableCard<any>, "mfp-declarative-table-card", never, { "resources": { "alias": "resources"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "createFormState": { "alias": "createFormState"; "required": false; "isSignal": true; }; "editFormState": { "alias": "editFormState"; "required": false; "isSignal": true; }; }, { "actionButtonClick": "actionButtonClick"; "tableRowClicked": "tableRowClicked"; "loadMoreResources": "loadMoreResources"; "paginationLimitChanged": "paginationLimitChanged"; "searchChanged": "searchChanged"; "createFieldChange": "createFieldChange"; "editFieldChange": "editFieldChange"; "createSubmit": "createSubmit"; "editSubmit": "editSubmit"; "deleteSubmit": "deleteSubmit"; }, never, never, true, never>;
238
+ }
239
+
240
+ declare const CARD_TYPES: {
241
+ readonly WC: "wc";
242
+ readonly ANGULAR: "angular";
243
+ readonly SAP_UI: "sap-ui";
244
+ };
245
+ type CardsType = (typeof CARD_TYPES)[keyof typeof CARD_TYPES];
246
+ interface CardConfig {
247
+ id: string;
248
+ w?: number;
249
+ h?: number;
250
+ x?: number;
251
+ y?: number;
252
+ maxH?: number;
253
+ maxW?: number;
254
+ minH?: number;
255
+ minW?: number;
256
+ sectionId?: string;
257
+ component: string;
258
+ type?: CardsType;
259
+ componentInputs?: Record<string, unknown>;
260
+ label?: string;
261
+ }
262
+ interface SectionConfig {
263
+ id: string;
264
+ w?: number;
265
+ title?: string;
266
+ editable?: boolean;
267
+ }
268
+ interface DashboardButtonsSettings {
269
+ editViewButton?: Partial<ButtonSettings>;
270
+ addCardButton?: Partial<ButtonSettings>;
271
+ }
272
+ interface DashboardConfig {
273
+ title: string;
274
+ description?: string;
275
+ backgroundImageUrl?: string;
276
+ buttonsSettings?: DashboardButtonsSettings;
277
+ customActions?: ButtonSettings[];
278
+ editable?: boolean;
279
+ }
280
+
281
+ declare class Dashboard implements OnInit, OnDestroy {
282
+ static registerAngularComponents(componentTypes: Type<unknown>[]): void;
283
+ config: _angular_core.InputSignal<DashboardConfig>;
284
+ sections: _angular_core.ModelSignal<SectionConfig[]>;
285
+ cards: _angular_core.ModelSignal<CardConfig[]>;
286
+ availableCards: _angular_core.InputSignal<CardConfig[]>;
287
+ readonly saved: _angular_core.OutputEmitterRef<{
288
+ sections: SectionConfig[];
289
+ cards: CardConfig[];
290
+ }>;
291
+ readonly actionButtonClick: _angular_core.OutputEmitterRef<{
292
+ event: MouseEvent;
293
+ action: ButtonSettings;
294
+ }>;
295
+ editMode: _angular_core.WritableSignal<boolean>;
296
+ compactToolbar: _angular_core.WritableSignal<boolean>;
297
+ toolbarMenuOpen: _angular_core.WritableSignal<boolean>;
298
+ private sectionsSnapshot;
299
+ private cardsSnapshot;
300
+ private gridStackItems;
301
+ private resizeObserver?;
302
+ private readonly hostEl;
303
+ protected gridOptions: _angular_core.Signal<GridStackOptions>;
304
+ cardDialogOpen: _angular_core.WritableSignal<boolean>;
305
+ customActions: _angular_core.Signal<ButtonSettings[]>;
306
+ addedCardsIds: _angular_core.Signal<Set<string>>;
307
+ editViewButton: _angular_core.Signal<{
308
+ text: string;
309
+ icon: string;
310
+ endIcon?: string;
311
+ design: "Default" | "Positive" | "Negative" | "Transparent" | "Emphasized" | "Attention";
312
+ tooltip: string;
313
+ action?: (("openInModal" | "navigate" | "edit" | "delete") | (string & {})) | undefined;
314
+ modalSettings?: _openmfp_ngx.ModalSettings;
315
+ }>;
316
+ addCardButton: _angular_core.Signal<{
317
+ text: string;
318
+ icon: string;
319
+ endIcon?: string;
320
+ design: "Default" | "Positive" | "Negative" | "Transparent" | "Emphasized" | "Attention";
321
+ tooltip: string;
322
+ action?: (("openInModal" | "navigate" | "edit" | "delete") | (string & {})) | undefined;
323
+ modalSettings?: _openmfp_ngx.ModalSettings;
324
+ }>;
325
+ sectionCards: _angular_core.Signal<(sectionId: string) => CardConfig[]>;
326
+ cardsPosition: Map<string, {
327
+ x?: number;
328
+ y?: number;
329
+ }>;
330
+ looseCards: _angular_core.WritableSignal<CardConfig[]>;
331
+ private newGridStackNodes;
332
+ ngOnInit(): void;
333
+ ngOnDestroy(): void;
334
+ onMenuItemClick(actionId: string, event: Event): void;
335
+ enterEditMode(): void;
336
+ saveEdit(): void;
337
+ cancelEdit(): void;
338
+ removeSection(id: string): void;
339
+ removeCard(id: string): void;
340
+ openCardPanel(): void;
341
+ closeCardPanel(): void;
342
+ onCardsAdded(cards: CardConfig[]): void;
343
+ onOrderChange(event: nodesCB): void;
344
+ private saveCardsPosition;
345
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dashboard, never>;
346
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dashboard, "mfp-dashboard", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "cards": { "alias": "cards"; "required": false; "isSignal": true; }; "availableCards": { "alias": "availableCards"; "required": false; "isSignal": true; }; }, { "sections": "sectionsChange"; "cards": "cardsChange"; "saved": "saved"; "actionButtonClick": "actionButtonClick"; }, never, never, true, never>;
347
+ }
348
+
349
+ declare class AddCardDialog {
350
+ availableCards: _angular_core.InputSignal<CardConfig[]>;
351
+ addedCardsIds: _angular_core.InputSignal<Set<string>>;
352
+ open: _angular_core.InputSignal<boolean>;
353
+ confirm: _angular_core.OutputEmitterRef<CardConfig[]>;
354
+ cancel: _angular_core.OutputEmitterRef<void>;
355
+ selectedIds: _angular_core.WritableSignal<Set<string>>;
356
+ constructor();
357
+ toggle(id: string): void;
358
+ confirmAdd(): void;
359
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AddCardDialog, never>;
360
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AddCardDialog, "mfp-add-card-dialog", never, { "availableCards": { "alias": "availableCards"; "required": false; "isSignal": true; }; "addedCardsIds": { "alias": "addedCardsIds"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "confirm": "confirm"; "cancel": "cancel"; }, never, never, true, never>;
361
+ }
362
+
363
+ declare class DashboardCard {
364
+ card: _angular_core.InputSignal<CardConfig>;
365
+ editMode: _angular_core.InputSignal<boolean>;
366
+ readonly removeCard: _angular_core.OutputEmitterRef<void>;
367
+ protected readonly gridColumn: _angular_core.Signal<string>;
368
+ protected readonly gridRow: _angular_core.Signal<string>;
369
+ private host;
370
+ private renderer;
371
+ constructor();
372
+ private createGridTrack;
373
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DashboardCard, never>;
374
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardCard, "mfp-dashboard-card", never, { "card": { "alias": "card"; "required": true; "isSignal": true; }; "editMode": { "alias": "editMode"; "required": false; "isSignal": true; }; }, { "removeCard": "removeCard"; }, never, ["*"], true, never>;
375
+ }
376
+
377
+ declare class DashboardSection {
378
+ section: _angular_core.InputSignal<SectionConfig>;
379
+ cards: _angular_core.InputSignal<CardConfig[]>;
380
+ columns: _angular_core.InputSignal<number>;
381
+ editMode: _angular_core.InputSignal<boolean>;
382
+ readonly removeSection: _angular_core.OutputEmitterRef<void>;
383
+ readonly removeCard: _angular_core.OutputEmitterRef<string>;
384
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DashboardSection, never>;
385
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardSection, "mfp-dashboard-section", never, { "section": { "alias": "section"; "required": true; "isSignal": true; }; "cards": { "alias": "cards"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "editMode": { "alias": "editMode"; "required": false; "isSignal": true; }; }, { "removeSection": "removeSection"; "removeCard": "removeCard"; }, never, never, true, never>;
386
+ }
387
+
388
+ declare class VisitedServiceCard {
389
+ serviceType: _angular_core.InputSignal<string>;
390
+ serviceName: _angular_core.InputSignal<string>;
391
+ serviceDescription: _angular_core.InputSignal<string>;
392
+ serviceIcon: _angular_core.InputSignal<string>;
393
+ path: _angular_core.InputSignal<string>;
394
+ click: _angular_core.OutputEmitterRef<string>;
395
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VisitedServiceCard, never>;
396
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<VisitedServiceCard, "mfp-visited-service-card", never, { "serviceType": { "alias": "serviceType"; "required": true; "isSignal": true; }; "serviceName": { "alias": "serviceName"; "required": true; "isSignal": true; }; "serviceDescription": { "alias": "serviceDescription"; "required": true; "isSignal": true; }; "serviceIcon": { "alias": "serviceIcon"; "required": true; "isSignal": true; }; "path": { "alias": "path"; "required": true; "isSignal": true; }; }, { "click": "click"; }, never, never, true, never>;
397
+ }
398
+
399
+ declare class Favorites {
400
+ readonly items: {
401
+ label: string;
402
+ icon: string;
403
+ action: string;
404
+ }[];
405
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Favorites, never>;
406
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Favorites, "mfp-favorites", never, {}, {}, never, never, true, never>;
407
+ }
408
+
409
+ type ServiceStatusValue = 'operational' | 'degraded' | 'outage' | 'maintenance';
410
+ interface ServiceStatusItem {
411
+ name: string;
412
+ icon: string;
413
+ status: ServiceStatusValue;
414
+ }
415
+ declare class ServiceStatusCard {
416
+ readonly services: ServiceStatusItem[];
417
+ readonly statusConfig: Record<ServiceStatusValue, {
418
+ label: string;
419
+ icon: string;
420
+ colorClass: string;
421
+ }>;
422
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ServiceStatusCard, never>;
423
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ServiceStatusCard, "mfp-service-status-card", never, {}, {}, never, never, true, never>;
424
+ }
425
+
426
+ declare class WhatsNew {
427
+ readonly headlines: {
428
+ title: string;
429
+ description: string;
430
+ icon: string;
431
+ }[];
432
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhatsNew, never>;
433
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WhatsNew, "mfp-whats-new", never, {}, {}, never, never, true, never>;
434
+ }
435
+
436
+ export { AddCardDialog, CARD_TYPES, Dashboard, DashboardCard, DashboardSection, DeclarativeForm, DeclarativeTable, DeclarativeTableCard, Favorites, ServiceStatusCard, VisitedServiceCard, WhatsNew };
437
+ export type { ButtonSettings, CardConfig, CardsType, CssRule, CssRuleCondition, DashboardButtonsSettings, DashboardConfig, DeleteResourceConfirmationConfig, FieldDefinition, FormFieldChangeEvent, FormFieldDefinition, FormFieldErrors, GenericResource, ModalSettings, PropertyField, ResourceFormConfig, SectionConfig, ServiceStatusItem, ServiceStatusValue, TableCardButtonSettings, TableCardConfig, TableCardFormState, TableConfig, TableFieldDefinition, TransformType, UiSettings, ValueCellButtonClickEvent };