@acontplus/ng-components 3.2.1 → 5.0.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/README.md +122 -21
- package/fesm2022/acontplus-ng-components.mjs +1112 -720
- package/fesm2022/acontplus-ng-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/alert/_m3-alert.scss +57 -54
- package/src/lib/components/alert/alert.scss +87 -36
- package/src/lib/components/badge/_m3-badge.scss +6 -1
- package/src/lib/components/badge/badge.scss +18 -6
- package/src/lib/components/card/card.scss +189 -176
- package/src/lib/components/grid/grid.scss +61 -0
- package/src/lib/components/kpi-card/_m3-kpi-card.scss +44 -59
- package/src/lib/components/kpi-card/kpi-card.scss +250 -573
- package/types/acontplus-ng-components.d.ts +452 -379
- package/src/lib/components/cards/dynamic-card/dynamic-card.scss +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { TemplateRef, InjectionToken, OnDestroy, EventEmitter, OnInit, ElementRef, Signal, ViewContainerRef, Injector, Binding, Type, ComponentRef, AfterViewInit, EnvironmentProviders, DoCheck, OnChanges, SimpleChanges, NgZone, QueryList, TrackByFunction, KeyValueChangeRecord, OutputEmitterRef, WritableSignal, AfterContentInit, PipeTransform } from '@angular/core';
|
|
3
3
|
import * as rxjs from 'rxjs';
|
|
4
4
|
import { Observable, Subject } from 'rxjs';
|
|
5
5
|
import { DialogPosition, MatDialogRef, MatDialogState } from '@angular/material/dialog';
|
|
@@ -7,6 +7,9 @@ import { ScrollStrategy } from '@angular/cdk/overlay';
|
|
|
7
7
|
import * as _acontplus_ng_components from '@acontplus/ng-components';
|
|
8
8
|
import { FormControl, ControlValueAccessor, FormGroup } from '@angular/forms';
|
|
9
9
|
import { SelectOption, IconDefinition, ButtonVariant, ButtonType, MaterialButtonStyle, REPORT_FORMAT } from '@acontplus/ui-kit';
|
|
10
|
+
import { ErrorStateMatcher, ThemePalette } from '@angular/material/core';
|
|
11
|
+
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
|
|
12
|
+
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
10
13
|
import { SafeHtml } from '@angular/platform-browser';
|
|
11
14
|
import { MatChipInputEvent, MatChipEditedEvent } from '@angular/material/chips';
|
|
12
15
|
import { LiveAnnouncer, FocusOrigin } from '@angular/cdk/a11y';
|
|
@@ -17,7 +20,6 @@ import { SortDirection, MatSort, Sort } from '@angular/material/sort';
|
|
|
17
20
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
18
21
|
import { MatBadgePosition, MatBadgeSize } from '@angular/material/badge';
|
|
19
22
|
import { MatButtonAppearance } from '@angular/material/button';
|
|
20
|
-
import { ThemePalette } from '@angular/material/core';
|
|
21
23
|
import { TooltipPosition, TooltipTouchGestures } from '@angular/material/tooltip';
|
|
22
24
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
23
25
|
import { MatMenu, MatMenuTrigger } from '@angular/material/menu';
|
|
@@ -32,21 +34,44 @@ import { MatSidenav, MatSidenavContent } from '@angular/material/sidenav';
|
|
|
32
34
|
import { RouterLinkActive } from '@angular/router';
|
|
33
35
|
|
|
34
36
|
type AcpAlertType = 'default' | 'info' | 'success' | 'warning' | 'danger';
|
|
37
|
+
/**
|
|
38
|
+
* - `soft`: tinted container (default).
|
|
39
|
+
* - `outlined`: neutral container with a colored border and icon.
|
|
40
|
+
* - `filled`: solid colored container, for high-emphasis messages.
|
|
41
|
+
*/
|
|
42
|
+
type AcpAlertVariant = 'soft' | 'outlined' | 'filled';
|
|
35
43
|
declare class AcpAlert {
|
|
36
|
-
private _changeDetectorRef;
|
|
37
|
-
get hostClassList(): string;
|
|
38
44
|
/** The alert's type. Can be `default`, `info`, `success`, `warning` or `danger`. */
|
|
39
|
-
type: AcpAlertType
|
|
45
|
+
readonly type: _angular_core.InputSignal<AcpAlertType>;
|
|
46
|
+
/** Visual style: `soft` (default), `outlined` or `filled`. */
|
|
47
|
+
readonly variant: _angular_core.InputSignal<AcpAlertVariant>;
|
|
48
|
+
/** Optional bold heading shown above the content. */
|
|
49
|
+
readonly heading: _angular_core.InputSignal<string | undefined>;
|
|
50
|
+
/** Material icon name. Defaults to an icon per type (none for `default`). */
|
|
51
|
+
readonly icon: _angular_core.InputSignal<string | undefined>;
|
|
52
|
+
/** Whether to show the icon. */
|
|
53
|
+
readonly showIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
40
54
|
/** Whether to display an inline close button. */
|
|
41
|
-
dismissible: boolean
|
|
55
|
+
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
56
|
+
/** Accessible label of the close button. */
|
|
57
|
+
readonly closeLabel: _angular_core.InputSignal<string>;
|
|
42
58
|
/** The alert's elevation (0~24). */
|
|
43
|
-
elevation: number
|
|
44
|
-
/** Event emitted when the alert closed. */
|
|
45
|
-
closed:
|
|
46
|
-
|
|
59
|
+
readonly elevation: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
60
|
+
/** Event emitted when the alert is closed. */
|
|
61
|
+
readonly closed: _angular_core.OutputEmitterRef<AcpAlert>;
|
|
62
|
+
private readonly _open;
|
|
63
|
+
/** Whether the alert is visible. */
|
|
64
|
+
readonly isOpen: _angular_core.Signal<boolean>;
|
|
65
|
+
protected readonly resolvedIcon: _angular_core.Signal<string | null>;
|
|
66
|
+
/** Errors and warnings interrupt screen readers; the rest are announced politely. */
|
|
67
|
+
protected readonly role: _angular_core.Signal<"alert" | "status">;
|
|
68
|
+
protected readonly hostClassList: _angular_core.Signal<string>;
|
|
69
|
+
/** Hides the alert and emits `closed`. */
|
|
70
|
+
close(): void;
|
|
71
|
+
/** Shows the alert again after it was closed. */
|
|
72
|
+
open(): void;
|
|
47
73
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpAlert, never>;
|
|
48
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpAlert, "acp-alert", ["acpAlert"], { "type": { "alias": "type"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
|
|
49
|
-
static ngAcceptInputType_dismissible: unknown;
|
|
74
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpAlert, "acp-alert", ["acpAlert"], { "type": { "alias": "type"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "elevation": { "alias": "elevation"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*", "[acpAlertActions]"], true, never>;
|
|
50
75
|
}
|
|
51
76
|
|
|
52
77
|
type AcpBadgeColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral' | 'custom';
|
|
@@ -113,136 +138,6 @@ declare const ACP_BADGE_SHAPES: AcpBadgeShape[];
|
|
|
113
138
|
|
|
114
139
|
declare const TREND_CONFIGS: Record<AcpBadgeTrend, AcpBadgeTrendConfig>;
|
|
115
140
|
|
|
116
|
-
/**
|
|
117
|
-
* A versatile card component that wraps Angular Material's mat-card with additional functionality
|
|
118
|
-
* and customization options. This component provides a consistent card layout with configurable
|
|
119
|
-
* header, content, and action areas.
|
|
120
|
-
*/
|
|
121
|
-
declare class DynamicCard {
|
|
122
|
-
/**
|
|
123
|
-
* The title text to display in the card header.
|
|
124
|
-
* @default null
|
|
125
|
-
*/
|
|
126
|
-
cardTitle: _angular_core.InputSignal<string | null>;
|
|
127
|
-
/**
|
|
128
|
-
* The subtitle text to display in the card header.
|
|
129
|
-
* @default null
|
|
130
|
-
*/
|
|
131
|
-
cardSubtitle: _angular_core.InputSignal<string | null>;
|
|
132
|
-
/**
|
|
133
|
-
* URL for the avatar image to display in the card header.
|
|
134
|
-
* @default null
|
|
135
|
-
*/
|
|
136
|
-
avatarImageUrl: _angular_core.InputSignal<string | null>;
|
|
137
|
-
/**
|
|
138
|
-
* Whether to show the card header section.
|
|
139
|
-
* @default false
|
|
140
|
-
*/
|
|
141
|
-
isHeaderVisible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
142
|
-
/**
|
|
143
|
-
* CSS padding value for the card content area.
|
|
144
|
-
* @default '1rem'
|
|
145
|
-
*/
|
|
146
|
-
contentPadding: _angular_core.InputSignal<string>;
|
|
147
|
-
/**
|
|
148
|
-
* Whether to show a divider between the header and content sections.
|
|
149
|
-
* @default false
|
|
150
|
-
*/
|
|
151
|
-
hasDivider: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
152
|
-
/**
|
|
153
|
-
* Whether to show the action buttons section.
|
|
154
|
-
* @default false
|
|
155
|
-
*/
|
|
156
|
-
areActionsVisible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
157
|
-
/**
|
|
158
|
-
* Text for the primary action button.
|
|
159
|
-
* @default 'Confirm'
|
|
160
|
-
*/
|
|
161
|
-
primaryButtonText: _angular_core.InputSignal<string>;
|
|
162
|
-
/**
|
|
163
|
-
* Text for the secondary action button.
|
|
164
|
-
* @default 'Cancel'
|
|
165
|
-
*/
|
|
166
|
-
secondaryButtonText: _angular_core.InputSignal<string>;
|
|
167
|
-
/**
|
|
168
|
-
* Material icon name for the primary button.
|
|
169
|
-
* @default null
|
|
170
|
-
*/
|
|
171
|
-
primaryButtonIcon: _angular_core.InputSignal<string | null>;
|
|
172
|
-
/**
|
|
173
|
-
* Material icon name for the secondary button.
|
|
174
|
-
* @default null
|
|
175
|
-
*/
|
|
176
|
-
secondaryButtonIcon: _angular_core.InputSignal<string | null>;
|
|
177
|
-
/**
|
|
178
|
-
* Alignment of the action buttons.
|
|
179
|
-
* @default 'end'
|
|
180
|
-
*/
|
|
181
|
-
buttonsPosition: _angular_core.InputSignal<"start" | "end">;
|
|
182
|
-
/**
|
|
183
|
-
* Event emitted when the primary button is clicked.
|
|
184
|
-
*/
|
|
185
|
-
primaryButtonClicked: _angular_core.OutputEmitterRef<void>;
|
|
186
|
-
/**
|
|
187
|
-
* Event emitted when the secondary button is clicked.
|
|
188
|
-
*/
|
|
189
|
-
secondaryButtonClicked: _angular_core.OutputEmitterRef<void>;
|
|
190
|
-
/**
|
|
191
|
-
* Event emitted when the card is clicked.
|
|
192
|
-
*/
|
|
193
|
-
cardClicked: _angular_core.OutputEmitterRef<Event>;
|
|
194
|
-
/**
|
|
195
|
-
* Event emitted when a key is pressed down on the card.
|
|
196
|
-
*/
|
|
197
|
-
keyDown: _angular_core.OutputEmitterRef<KeyboardEvent>;
|
|
198
|
-
/**
|
|
199
|
-
* Event emitted when a key is released on the card.
|
|
200
|
-
*/
|
|
201
|
-
keyUp: _angular_core.OutputEmitterRef<KeyboardEvent>;
|
|
202
|
-
/**
|
|
203
|
-
* Event emitted when a key is pressed on the card.
|
|
204
|
-
*/
|
|
205
|
-
keyPress: _angular_core.OutputEmitterRef<KeyboardEvent>;
|
|
206
|
-
/**
|
|
207
|
-
* Handles the primary button click event.
|
|
208
|
-
* Stops event propagation and emits the primaryButtonClicked event.
|
|
209
|
-
* @param event The click event
|
|
210
|
-
*/
|
|
211
|
-
handlePrimaryButtonClick(event: Event): void;
|
|
212
|
-
/**
|
|
213
|
-
* Handles the secondary button click event.
|
|
214
|
-
* Stops event propagation and emits the secondaryButtonClicked event.
|
|
215
|
-
* @param event The click event
|
|
216
|
-
*/
|
|
217
|
-
handleSecondaryButtonClick(event: Event): void;
|
|
218
|
-
/**
|
|
219
|
-
* Handles the card click event.
|
|
220
|
-
* Emits the cardClicked event with the original event.
|
|
221
|
-
* @param event The click event
|
|
222
|
-
*/
|
|
223
|
-
handleCardClick(event: Event): void;
|
|
224
|
-
/**
|
|
225
|
-
* Handles the key down event on the card.
|
|
226
|
-
* Emits the keyDown event with the original keyboard event.
|
|
227
|
-
* @param event The keyboard event
|
|
228
|
-
*/
|
|
229
|
-
handleKeyDown(event: KeyboardEvent): void;
|
|
230
|
-
/**
|
|
231
|
-
* Handles the key up event on the card.
|
|
232
|
-
* Emits the keyUp event with the original keyboard event.
|
|
233
|
-
* @param event The keyboard event
|
|
234
|
-
*/
|
|
235
|
-
handleKeyUp(event: KeyboardEvent): void;
|
|
236
|
-
/**
|
|
237
|
-
* Handles the key press event on the card.
|
|
238
|
-
* Emits the keyPress event with the original keyboard event.
|
|
239
|
-
* @param event The keyboard event
|
|
240
|
-
*/
|
|
241
|
-
handleKeyPress(event: KeyboardEvent): void;
|
|
242
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicCard, never>;
|
|
243
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicCard, "acp-dynamic-card", never, { "cardTitle": { "alias": "cardTitle"; "required": false; "isSignal": true; }; "cardSubtitle": { "alias": "cardSubtitle"; "required": false; "isSignal": true; }; "avatarImageUrl": { "alias": "avatarImageUrl"; "required": false; "isSignal": true; }; "isHeaderVisible": { "alias": "isHeaderVisible"; "required": false; "isSignal": true; }; "contentPadding": { "alias": "contentPadding"; "required": false; "isSignal": true; }; "hasDivider": { "alias": "hasDivider"; "required": false; "isSignal": true; }; "areActionsVisible": { "alias": "areActionsVisible"; "required": false; "isSignal": true; }; "primaryButtonText": { "alias": "primaryButtonText"; "required": false; "isSignal": true; }; "secondaryButtonText": { "alias": "secondaryButtonText"; "required": false; "isSignal": true; }; "primaryButtonIcon": { "alias": "primaryButtonIcon"; "required": false; "isSignal": true; }; "secondaryButtonIcon": { "alias": "secondaryButtonIcon"; "required": false; "isSignal": true; }; "buttonsPosition": { "alias": "buttonsPosition"; "required": false; "isSignal": true; }; }, { "primaryButtonClicked": "primaryButtonClicked"; "secondaryButtonClicked": "secondaryButtonClicked"; "cardClicked": "cardClicked"; "keyDown": "keyDown"; "keyUp": "keyUp"; "keyPress": "keyPress"; }, never, ["*"], true, never>;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
141
|
/**
|
|
247
142
|
* Context Menu Types and Interfaces
|
|
248
143
|
* Defines the API contract for the ContextMenu component
|
|
@@ -387,16 +282,27 @@ declare class AcpContextMenuService {
|
|
|
387
282
|
private readonly openMenuRef;
|
|
388
283
|
private readonly menuItems;
|
|
389
284
|
private readonly contextData;
|
|
285
|
+
private readonly escapeCloses;
|
|
286
|
+
private outsideClickCloses;
|
|
287
|
+
private openOwner;
|
|
288
|
+
/** @internal Items rendered by the open panel. */
|
|
289
|
+
readonly activeItems: _angular_core.Signal<AcpContextMenuItem[]>;
|
|
290
|
+
/** @internal Data passed to the open panel. */
|
|
291
|
+
readonly activeData: _angular_core.Signal<unknown>;
|
|
292
|
+
/** @internal Whether Escape closes the open panel. */
|
|
293
|
+
readonly closeOnEscape: _angular_core.Signal<boolean>;
|
|
390
294
|
private readonly itemSelected$;
|
|
295
|
+
private readonly closed$;
|
|
391
296
|
constructor();
|
|
392
297
|
/**
|
|
393
298
|
* Open a context menu at the specified position
|
|
394
299
|
*/
|
|
395
|
-
open(items: AcpContextMenuItem[], config: AcpContextMenuOpenConfig): Promise<AcpContextMenuRef>;
|
|
300
|
+
open(items: AcpContextMenuItem[], config: AcpContextMenuOpenConfig, owner?: unknown): Promise<AcpContextMenuRef>;
|
|
396
301
|
/**
|
|
397
302
|
* Close all open context menus
|
|
398
303
|
*/
|
|
399
304
|
closeAll(): void;
|
|
305
|
+
private closeOverlay;
|
|
400
306
|
/**
|
|
401
307
|
* Check if any menu is open
|
|
402
308
|
*/
|
|
@@ -404,7 +310,15 @@ declare class AcpContextMenuService {
|
|
|
404
310
|
/**
|
|
405
311
|
* Get the item selection subject
|
|
406
312
|
*/
|
|
407
|
-
getItemSelected$():
|
|
313
|
+
getItemSelected$(): Observable<AcpContextMenuItemContext>;
|
|
314
|
+
/**
|
|
315
|
+
* Item selections of menus opened by the given owner
|
|
316
|
+
*/
|
|
317
|
+
itemSelectedFor$(owner: unknown): Observable<AcpContextMenuItemContext>;
|
|
318
|
+
/**
|
|
319
|
+
* Emits when a menu opened by the given owner closes, for any reason
|
|
320
|
+
*/
|
|
321
|
+
closedFor$(owner: unknown): Observable<void>;
|
|
408
322
|
/**
|
|
409
323
|
* Emit item selection
|
|
410
324
|
*/
|
|
@@ -426,13 +340,11 @@ declare class AcpContextMenuService {
|
|
|
426
340
|
*/
|
|
427
341
|
private createMenuRef;
|
|
428
342
|
/**
|
|
429
|
-
*
|
|
343
|
+
* Single outside-click mechanism. A backdrop is not used: CDK renders overlays as popovers, so
|
|
344
|
+
* the backdrop does not cover the page, and without it a right-click on another element reaches
|
|
345
|
+
* that element directly (opening its own menu).
|
|
430
346
|
*/
|
|
431
|
-
private
|
|
432
|
-
/**
|
|
433
|
-
* Check if click is inside the menu
|
|
434
|
-
*/
|
|
435
|
-
private isClickInsideMenu;
|
|
347
|
+
private listenForOutsideClicks;
|
|
436
348
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpContextMenuService, never>;
|
|
437
349
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AcpContextMenuService>;
|
|
438
350
|
}
|
|
@@ -526,8 +438,10 @@ declare class AcpContextMenuPanel implements OnInit, OnDestroy {
|
|
|
526
438
|
private readonly ngZone;
|
|
527
439
|
private readonly elementRef;
|
|
528
440
|
menuContainer?: ElementRef;
|
|
529
|
-
|
|
530
|
-
|
|
441
|
+
private readonly initialItems;
|
|
442
|
+
private readonly initialData;
|
|
443
|
+
items: _angular_core.Signal<AcpContextMenuItem[]>;
|
|
444
|
+
contextData: _angular_core.Signal<unknown>;
|
|
531
445
|
selectedIndex: _angular_core.WritableSignal<number>;
|
|
532
446
|
expandedIndex: _angular_core.WritableSignal<number>;
|
|
533
447
|
private destroy$;
|
|
@@ -554,21 +468,14 @@ declare class AcpContextMenuPanel implements OnInit, OnDestroy {
|
|
|
554
468
|
* Get item classes
|
|
555
469
|
*/
|
|
556
470
|
getItemClasses(item: AcpContextMenuItem, index: number): Record<string, boolean>;
|
|
471
|
+
private isSelectable;
|
|
557
472
|
/**
|
|
558
|
-
*
|
|
473
|
+
* Move the selection to the next selectable item in the given direction, wrapping around
|
|
559
474
|
*/
|
|
475
|
+
private moveSelection;
|
|
560
476
|
private selectNext;
|
|
561
|
-
/**
|
|
562
|
-
* Select previous item
|
|
563
|
-
*/
|
|
564
477
|
private selectPrevious;
|
|
565
|
-
/**
|
|
566
|
-
* Select first item
|
|
567
|
-
*/
|
|
568
478
|
private selectFirst;
|
|
569
|
-
/**
|
|
570
|
-
* Select last item
|
|
571
|
-
*/
|
|
572
479
|
private selectLast;
|
|
573
480
|
/**
|
|
574
481
|
* Expand selected item
|
|
@@ -1148,7 +1055,7 @@ declare class AcpDialogContainer implements AfterViewInit {
|
|
|
1148
1055
|
/** Pending declarative titlebar template, captured before the outlet is ready. */
|
|
1149
1056
|
private readonly pendingTitlebarTemplate;
|
|
1150
1057
|
/** Alignment requested by a declarative actions template. */
|
|
1151
|
-
protected readonly declarativeActionsAlign: _angular_core.WritableSignal<"start" | "
|
|
1058
|
+
protected readonly declarativeActionsAlign: _angular_core.WritableSignal<"start" | "center" | "end" | undefined>;
|
|
1152
1059
|
/** Title requested by a declarative titlebar template. */
|
|
1153
1060
|
protected readonly declarativeTitle: _angular_core.WritableSignal<string | undefined>;
|
|
1154
1061
|
/** Outlet object provided to content so `acp-dialog-actions` can register itself. */
|
|
@@ -1160,7 +1067,7 @@ declare class AcpDialogContainer implements AfterViewInit {
|
|
|
1160
1067
|
/** Title used for the actions footer label. */
|
|
1161
1068
|
protected readonly resolvedDialogTitle: Signal<string | undefined>;
|
|
1162
1069
|
/** Alignment used for the actions footer. */
|
|
1163
|
-
protected readonly resolvedActionsAlign: Signal<"start" | "
|
|
1070
|
+
protected readonly resolvedActionsAlign: Signal<"start" | "center" | "end">;
|
|
1164
1071
|
/** Whether the current content is a plain string. */
|
|
1165
1072
|
protected readonly isStringContent: _angular_core.WritableSignal<boolean>;
|
|
1166
1073
|
get config(): _acontplus_ng_components.AcpDialogConfig<unknown>;
|
|
@@ -1246,7 +1153,7 @@ declare class AcpDialogActions implements AfterViewInit {
|
|
|
1246
1153
|
protected readonly renderInline: _angular_core.WritableSignal<boolean>;
|
|
1247
1154
|
protected readonly hostDisplay: _angular_core.WritableSignal<string>;
|
|
1248
1155
|
/** Alignment of the action buttons. @default 'end' */
|
|
1249
|
-
align: _angular_core.InputSignal<"start" | "
|
|
1156
|
+
align: _angular_core.InputSignal<"start" | "center" | "end">;
|
|
1250
1157
|
/** Configured footer actions. When omitted, the component works as a declarative slot. */
|
|
1251
1158
|
actions: _angular_core.InputSignal<AcpDialogAction<unknown>[] | undefined>;
|
|
1252
1159
|
/** Optional title used to label the actions footer. */
|
|
@@ -1584,6 +1491,113 @@ declare class DynamicSelect implements OnInit, OnDestroy {
|
|
|
1584
1491
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicSelect, "acp-dynamic-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "dropdownPosition": { "alias": "dropdownPosition"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "hideSelected": { "alias": "hideSelected"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "selectOnTab": { "alias": "selectOnTab"; "required": false; "isSignal": true; }; "openOnEnter": { "alias": "openOnEnter"; "required": false; "isSignal": true; }; "selectableGroup": { "alias": "selectableGroup"; "required": false; "isSignal": true; }; "selectableGroupAsModel": { "alias": "selectableGroupAsModel"; "required": false; "isSignal": true; }; "clearOnBackspace": { "alias": "clearOnBackspace"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "searchWhileComposing": { "alias": "searchWhileComposing"; "required": false; "isSignal": true; }; "minTermLength": { "alias": "minTermLength"; "required": false; "isSignal": true; }; "editableSearchTerm": { "alias": "editableSearchTerm"; "required": false; "isSignal": true; }; "typeToSearchText": { "alias": "typeToSearchText"; "required": false; "isSignal": true; }; "addTagText": { "alias": "addTagText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "clearAllText": { "alias": "clearAllText"; "required": false; "isSignal": true; }; "notFoundText": { "alias": "notFoundText"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
1585
1492
|
}
|
|
1586
1493
|
|
|
1494
|
+
/** Property name or function that reads a value from an item. */
|
|
1495
|
+
type AcpSearchSelectAccessor<T, R> = keyof T | ((item: T) => R);
|
|
1496
|
+
/** Context of the `#option` template. */
|
|
1497
|
+
interface AcpSearchSelectOptionContext<T> {
|
|
1498
|
+
$implicit: T;
|
|
1499
|
+
group: T | null;
|
|
1500
|
+
}
|
|
1501
|
+
/** Payload of `optionSelected`. */
|
|
1502
|
+
interface AcpSearchSelectSelection<T, V = unknown> {
|
|
1503
|
+
value: V;
|
|
1504
|
+
item: T;
|
|
1505
|
+
group: T | null;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
interface OptionVm<T> {
|
|
1509
|
+
key: string;
|
|
1510
|
+
label: string;
|
|
1511
|
+
value: unknown;
|
|
1512
|
+
source: T;
|
|
1513
|
+
group: T | null;
|
|
1514
|
+
}
|
|
1515
|
+
/** `label === null` holds loose options rendered without `mat-optgroup`. */
|
|
1516
|
+
interface GroupVm<T> {
|
|
1517
|
+
label: string | null;
|
|
1518
|
+
options: OptionVm<T>[];
|
|
1519
|
+
}
|
|
1520
|
+
/** Matches `1` with `'1'`, useful when ids come as strings from forms or query params. */
|
|
1521
|
+
declare const acpSearchSelectLooseEquals: (a: unknown, b: unknown) => boolean;
|
|
1522
|
+
/** Lowercase and strip accents, so "camion" matches "Camión". */
|
|
1523
|
+
declare const acpSearchSelectNormalize: (text: string) => string;
|
|
1524
|
+
/**
|
|
1525
|
+
* Searchable select built on `mat-autocomplete`. Accepts flat or one-level tree lists:
|
|
1526
|
+
* an item whose `children` is an array renders as a group.
|
|
1527
|
+
* Works with `ngModel`, reactive forms and `[(value)]`.
|
|
1528
|
+
*/
|
|
1529
|
+
declare class AcpSearchSelect<T = any> implements ControlValueAccessor, DoCheck {
|
|
1530
|
+
private readonly document;
|
|
1531
|
+
private readonly ngControl;
|
|
1532
|
+
private readonly parentForm;
|
|
1533
|
+
private readonly parentFormGroup;
|
|
1534
|
+
readonly items: _angular_core.InputSignal<T[] | null | undefined>;
|
|
1535
|
+
readonly bindLabel: _angular_core.InputSignal<AcpSearchSelectAccessor<T, string>>;
|
|
1536
|
+
readonly bindValue: _angular_core.InputSignal<AcpSearchSelectAccessor<T, unknown>>;
|
|
1537
|
+
readonly children: _angular_core.InputSignal<AcpSearchSelectAccessor<T, T[] | undefined>>;
|
|
1538
|
+
readonly groupLabel: _angular_core.InputSignal<AcpSearchSelectAccessor<T, string>>;
|
|
1539
|
+
readonly compareWith: _angular_core.InputSignal<(a: unknown, b: unknown) => boolean>;
|
|
1540
|
+
/** Custom match. Receives the item and the normalized query. */
|
|
1541
|
+
readonly filterFn: _angular_core.InputSignal<((item: T, query: string) => boolean) | null>;
|
|
1542
|
+
/** Set to `false` when `items` already come filtered from the server (see `searchChange`). */
|
|
1543
|
+
readonly localFilter: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1544
|
+
/** Value written when the field is cleared, e.g. `0` for "all". */
|
|
1545
|
+
readonly emptyValue: _angular_core.InputSignal<unknown>;
|
|
1546
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1547
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1548
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
1549
|
+
readonly errorText: _angular_core.InputSignal<string>;
|
|
1550
|
+
readonly noResultsText: _angular_core.InputSignal<string>;
|
|
1551
|
+
readonly loadingText: _angular_core.InputSignal<string>;
|
|
1552
|
+
readonly clearLabel: _angular_core.InputSignal<string>;
|
|
1553
|
+
readonly appearance: _angular_core.InputSignal<MatFormFieldAppearance>;
|
|
1554
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1555
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1556
|
+
readonly clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1557
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1558
|
+
readonly value: _angular_core.ModelSignal<unknown>;
|
|
1559
|
+
readonly optionSelected: _angular_core.OutputEmitterRef<AcpSearchSelectSelection<T, unknown>>;
|
|
1560
|
+
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
1561
|
+
/** Raw text typed by the user; debounce it in the consumer for server-side search. */
|
|
1562
|
+
readonly searchChange: _angular_core.OutputEmitterRef<string>;
|
|
1563
|
+
private readonly input;
|
|
1564
|
+
private readonly trigger;
|
|
1565
|
+
private readonly inputEl;
|
|
1566
|
+
readonly optionTemplate: _angular_core.Signal<TemplateRef<AcpSearchSelectOptionContext<T>> | undefined>;
|
|
1567
|
+
/** Text typed by the user; `null` while not searching. */
|
|
1568
|
+
protected readonly query: _angular_core.WritableSignal<string | null>;
|
|
1569
|
+
private readonly formDisabled;
|
|
1570
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1571
|
+
private onChange;
|
|
1572
|
+
private onTouched;
|
|
1573
|
+
protected readonly errorStateMatcher: ErrorStateMatcher;
|
|
1574
|
+
constructor();
|
|
1575
|
+
/** The inner `matInput` has no `NgControl`, so it never refreshes its error state by itself. */
|
|
1576
|
+
ngDoCheck(): void;
|
|
1577
|
+
private readonly groups;
|
|
1578
|
+
protected readonly filteredGroups: _angular_core.Signal<GroupVm<T>[]>;
|
|
1579
|
+
private readonly selected;
|
|
1580
|
+
protected readonly text: _angular_core.Signal<string>;
|
|
1581
|
+
protected readonly hasValue: _angular_core.Signal<boolean>;
|
|
1582
|
+
protected readonly displayWith: (option: OptionVm<T> | string | null) => string;
|
|
1583
|
+
/** Clears the selection and the search text. */
|
|
1584
|
+
clear(): void;
|
|
1585
|
+
protected selectAll(event: Event): void;
|
|
1586
|
+
protected onInput(event: Event): void;
|
|
1587
|
+
/** Leaving the field without picking drops the typed text and shows the selection again. */
|
|
1588
|
+
protected onBlur(): void;
|
|
1589
|
+
/** The panel also closes while typing (e.g. no results yet); keep the text in that case. */
|
|
1590
|
+
protected onClosed(): void;
|
|
1591
|
+
protected onSelected(event: MatAutocompleteSelectedEvent): void;
|
|
1592
|
+
writeValue(value: unknown): void;
|
|
1593
|
+
registerOnChange(fn: (value: unknown) => void): void;
|
|
1594
|
+
registerOnTouched(fn: () => void): void;
|
|
1595
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1596
|
+
private setValue;
|
|
1597
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpSearchSelect<any>, never>;
|
|
1598
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpSearchSelect<any>, "acp-search-select", ["acpSearchSelect"], { "items": { "alias": "items"; "required": true; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "children": { "alias": "children"; "required": false; "isSignal": true; }; "groupLabel": { "alias": "groupLabel"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "filterFn": { "alias": "filterFn"; "required": false; "isSignal": true; }; "localFilter": { "alias": "localFilter"; "required": false; "isSignal": true; }; "emptyValue": { "alias": "emptyValue"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "optionSelected": "optionSelected"; "cleared": "cleared"; "searchChange": "searchChange"; }, ["optionTemplate"], never, true, never>;
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1587
1601
|
declare class UserIcon {
|
|
1588
1602
|
size: _angular_core.InputSignal<string>;
|
|
1589
1603
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserIcon, never>;
|
|
@@ -2011,6 +2025,7 @@ interface DataGridRowSelectionFormatter<T = any> {
|
|
|
2011
2025
|
}
|
|
2012
2026
|
type DataGridRowClassFormatter<T = any> = Record<string, (rowData: T, index: number) => boolean>;
|
|
2013
2027
|
type DataGridButtonType = MatButtonAppearance | 'icon';
|
|
2028
|
+
type DataGridSize = 'small' | 'medium' | 'large';
|
|
2014
2029
|
/**
|
|
2015
2030
|
* Represents the default options for the grid that can be configured
|
|
2016
2031
|
* using the `DATA_GRID_DEFAULT_OPTIONS` injection token.
|
|
@@ -2040,6 +2055,7 @@ interface DataGridDefaultOptions {
|
|
|
2040
2055
|
hideRowSelectionCheckbox?: boolean;
|
|
2041
2056
|
disableRowClickSelection?: boolean;
|
|
2042
2057
|
cellSelectable?: boolean;
|
|
2058
|
+
keyboardNavigation?: boolean;
|
|
2043
2059
|
showToolbar?: boolean;
|
|
2044
2060
|
toolbarTitle?: string;
|
|
2045
2061
|
columnHideable?: boolean;
|
|
@@ -2304,10 +2320,21 @@ declare class AcpGridExpansionToggle {
|
|
|
2304
2320
|
|
|
2305
2321
|
declare const DATA_GRID_DEFAULT_OPTIONS: InjectionToken<DataGridDefaultOptions>;
|
|
2306
2322
|
declare class DataGrid implements AfterViewInit, OnChanges {
|
|
2307
|
-
|
|
2323
|
+
/** Densidad de la tabla. `'normal'` está obsoleto y equivale a `'medium'`. */
|
|
2324
|
+
size: _angular_core.InputSignal<"normal" | DataGridSize>;
|
|
2325
|
+
protected readonly _size: _angular_core.Signal<DataGridSize>;
|
|
2308
2326
|
protected _animationsDisabled: boolean;
|
|
2309
2327
|
private readonly _utils;
|
|
2310
2328
|
private readonly _changeDetectorRef;
|
|
2329
|
+
private readonly _elementRef;
|
|
2330
|
+
private readonly _injector;
|
|
2331
|
+
private static _nextId;
|
|
2332
|
+
/** Unique id of the grid, used for row ids and `aria-controls`. */
|
|
2333
|
+
readonly gridId: string;
|
|
2334
|
+
private readonly _activeRow;
|
|
2335
|
+
private _focusFirstRowOnRender;
|
|
2336
|
+
/** @internal Set by `acpGridNavigationFor` to activate the first row when data changes. */
|
|
2337
|
+
_activateFirstRowOnDataChange: boolean;
|
|
2311
2338
|
private readonly _defaultOptions;
|
|
2312
2339
|
table: MatTable<any>;
|
|
2313
2340
|
paginator: MatPaginator;
|
|
@@ -2484,8 +2511,15 @@ declare class DataGrid implements AfterViewInit, OnChanges {
|
|
|
2484
2511
|
noResultText: string;
|
|
2485
2512
|
/** The template for the empty data. */
|
|
2486
2513
|
noResultTemplate: TemplateRef<any>;
|
|
2487
|
-
|
|
2514
|
+
/**
|
|
2515
|
+
* Whether rows can be navigated with the keyboard: arrows, Home/End, PageUp/PageDown,
|
|
2516
|
+
* Enter (same as a click), Space (toggle selection) and Ctrl+A (select all).
|
|
2517
|
+
*/
|
|
2518
|
+
keyboardNavigation: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2519
|
+
/** Index (within the rendered page) of the row to mark as active. */
|
|
2488
2520
|
highlightedRowIndex: _angular_core.InputSignal<number>;
|
|
2521
|
+
private readonly _highlightedRowEffect;
|
|
2522
|
+
/** Event emitted when the active row changes. */
|
|
2489
2523
|
focusedRowChange: _angular_core.OutputEmitterRef<{
|
|
2490
2524
|
row: any;
|
|
2491
2525
|
index: number;
|
|
@@ -2522,6 +2556,37 @@ declare class DataGrid implements AfterViewInit, OnChanges {
|
|
|
2522
2556
|
ngOnChanges(changes: SimpleChanges): void;
|
|
2523
2557
|
ngAfterViewInit(): void;
|
|
2524
2558
|
_countPinnedPosition(): void;
|
|
2559
|
+
/** Rows currently rendered (after sorting and front-end paging). */
|
|
2560
|
+
get renderedRows(): any[];
|
|
2561
|
+
/** Index of the active row within the rendered rows, or -1. */
|
|
2562
|
+
get activeRowIndex(): number;
|
|
2563
|
+
/** The active row, or `null`. */
|
|
2564
|
+
get activeRow(): any;
|
|
2565
|
+
/**
|
|
2566
|
+
* Marks a rendered row as active.
|
|
2567
|
+
* @param focus Whether to move the browser focus to the row.
|
|
2568
|
+
*/
|
|
2569
|
+
setActiveRow(index: number, focus?: boolean): void;
|
|
2570
|
+
/** Moves the active row by `delta` rows; starts at the first row when none is active. */
|
|
2571
|
+
moveActiveRow(delta: number, focus?: boolean): void;
|
|
2572
|
+
/** Runs the click behavior (selection and `rowClick`) on the active row. */
|
|
2573
|
+
activateActiveRow(event: MouseEvent | KeyboardEvent): boolean;
|
|
2574
|
+
/** Goes to the next page, if there is one, and activates its first row. */
|
|
2575
|
+
nextPage(focus?: boolean): void;
|
|
2576
|
+
/** Goes to the previous page, if there is one, and activates its first row. */
|
|
2577
|
+
previousPage(focus?: boolean): void;
|
|
2578
|
+
_rowId(index: number): string;
|
|
2579
|
+
_activeRowId(): string | null;
|
|
2580
|
+
_isActiveRow(row: unknown): boolean;
|
|
2581
|
+
_rowTabIndex(row: unknown, index: number): number | null;
|
|
2582
|
+
_onRowFocus(row: unknown): void;
|
|
2583
|
+
private _setActiveRow;
|
|
2584
|
+
private _rowElement;
|
|
2585
|
+
private _changePage;
|
|
2586
|
+
private _syncActiveRowWithData;
|
|
2587
|
+
private _activateFirstRowAfterRender;
|
|
2588
|
+
private _isEditableTarget;
|
|
2589
|
+
private _handleRowKeyDown;
|
|
2525
2590
|
_getIndex(index: number | undefined, dataIndex: number): number;
|
|
2526
2591
|
_onSortChange(sort: Sort): void;
|
|
2527
2592
|
_onRowDataChange(record: KeyValueChangeRecord<string, any>): void;
|
|
@@ -2530,7 +2595,7 @@ declare class DataGrid implements AfterViewInit, OnChanges {
|
|
|
2530
2595
|
/** Cell select event */
|
|
2531
2596
|
_selectCell(cellRef: AcpGridSelectableCell, rowData: Record<string, any>, colDef: DataGridColumn): void;
|
|
2532
2597
|
/** Row select event */
|
|
2533
|
-
_selectRow(event: MouseEvent, rowData: Record<string, any>, index: number): void;
|
|
2598
|
+
_selectRow(event: MouseEvent | KeyboardEvent, rowData: Record<string, any>, index: number): void;
|
|
2534
2599
|
/** Whether the number of selected elements matches the total number of rows. */
|
|
2535
2600
|
_isAllSelected(): boolean;
|
|
2536
2601
|
/** Select all rows if they are not all selected; otherwise clear selection. */
|
|
@@ -2590,85 +2655,25 @@ declare class DataGrid implements AfterViewInit, OnChanges {
|
|
|
2590
2655
|
}
|
|
2591
2656
|
|
|
2592
2657
|
/**
|
|
2593
|
-
*
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
/** Callback opcional que se ejecuta cuando se presiona la flecha abajo y no hay más elementos abajo */
|
|
2603
|
-
onArrowDown?: () => void;
|
|
2604
|
-
/** Callback opcional que se ejecuta cuando se presiona la flecha izquierda */
|
|
2605
|
-
onArrowLeft?: () => void;
|
|
2606
|
-
/** Callback opcional que se ejecuta cuando se presiona la flecha derecha */
|
|
2607
|
-
onArrowRight?: () => void;
|
|
2608
|
-
/** Callback opcional que se ejecuta cuando el elemento recibe el foco */
|
|
2609
|
-
onFocus?: (index?: number) => void;
|
|
2610
|
-
/** Callback opcional que se ejecuta cuando el índice enfocado dentro del elemento cambia (ej: una fila en una tabla) */
|
|
2611
|
-
onFocusedChange?: (index: number) => void;
|
|
2612
|
-
}
|
|
2613
|
-
/**
|
|
2614
|
-
* Servicio que gestiona la navegación por teclado entre componentes registrados.
|
|
2615
|
-
* Permite mover el foco entre elementos usando las teclas de flecha y centraliza el estado del foco.
|
|
2658
|
+
* Lets a text input drive the rows of an `acp-data-grid` while keeping the focus in the input,
|
|
2659
|
+
* like an autocomplete: ArrowDown/ArrowUp move the active row, PageDown/PageUp change page and
|
|
2660
|
+
* Enter runs the row click (selection and `rowClick`) on the active row.
|
|
2661
|
+
*
|
|
2662
|
+
* @example
|
|
2663
|
+
* ```html
|
|
2664
|
+
* <input matInput [acpGridNavigationFor]="grid" />
|
|
2665
|
+
* <acp-data-grid #grid [data]="results" [columns]="columns" (rowClick)="pick($event.rowData)" />
|
|
2666
|
+
* ```
|
|
2616
2667
|
*/
|
|
2617
|
-
declare class
|
|
2618
|
-
/**
|
|
2619
|
-
|
|
2620
|
-
/**
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
* Es un signal escribible porque el componente hijo (DataGrid) es quien actualiza su valor.
|
|
2627
|
-
*/
|
|
2628
|
-
focusedRowIndex: _angular_core.WritableSignal<number>;
|
|
2629
|
-
/**
|
|
2630
|
-
* Signal público que expone el nombre del elemento actualmente enfocado.
|
|
2631
|
-
* Es un signal `computed` que se deriva automáticamente del `currentFocusIndex` privado.
|
|
2632
|
-
*/
|
|
2633
|
-
focusedElementName: _angular_core.Signal<string>;
|
|
2634
|
-
/**
|
|
2635
|
-
* Registra un nuevo elemento en el sistema de navegación por teclado.
|
|
2636
|
-
* @param element El objeto FocusableElement a registrar.
|
|
2637
|
-
*/
|
|
2638
|
-
registerElement(element: FocusableElement): void;
|
|
2639
|
-
/**
|
|
2640
|
-
* Elimina un elemento del sistema de navegación por teclado.
|
|
2641
|
-
* @param element El ElementRef del elemento a desregistrar.
|
|
2642
|
-
*/
|
|
2643
|
-
unregisterElement(element: ElementRef): void;
|
|
2644
|
-
/**
|
|
2645
|
-
* Mueve el foco a un elemento específico por su nombre.
|
|
2646
|
-
* @param name El nombre único del elemento al que se quiere mover el foco.
|
|
2647
|
-
* @param index Opcional: el índice interno a enfocar (ej: el índice de una fila en una tabla).
|
|
2648
|
-
*/
|
|
2649
|
-
focusElement(name: string, index?: number): void;
|
|
2650
|
-
/**
|
|
2651
|
-
* Actualiza el índice enfocado (usado por componentes internos como una tabla).
|
|
2652
|
-
* @param index El nuevo índice enfocado.
|
|
2653
|
-
*/
|
|
2654
|
-
updateFocusedIndex(index: number): void;
|
|
2655
|
-
/**
|
|
2656
|
-
* Maneja la lógica de navegación basada en la tecla presionada.
|
|
2657
|
-
* @param key La tecla presionada ('ArrowUp', 'ArrowDown', etc.).
|
|
2658
|
-
*/
|
|
2659
|
-
private handleKeyNavigation;
|
|
2660
|
-
/**
|
|
2661
|
-
* Resetea el índice de la fila enfocada a -1.
|
|
2662
|
-
* Útil cuando los datos de un componente cambian y el foco anterior ya no es válido.
|
|
2663
|
-
*/
|
|
2664
|
-
resetFocusedRowIndex(): void;
|
|
2665
|
-
/**
|
|
2666
|
-
* Método de limpieza para ser llamado cuando el servicio se destruye.
|
|
2667
|
-
* Cierra el Subject `destroy$` para completar todas las suscripciones activas.
|
|
2668
|
-
*/
|
|
2669
|
-
onDestroy(): void;
|
|
2670
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KeyboardNavigationService, never>;
|
|
2671
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<KeyboardNavigationService>;
|
|
2668
|
+
declare class AcpGridNavigationFor {
|
|
2669
|
+
/** The grid controlled by this input. */
|
|
2670
|
+
readonly grid: _angular_core.InputSignal<DataGrid>;
|
|
2671
|
+
/** Whether the first row becomes active each time the grid data changes. */
|
|
2672
|
+
readonly acpGridNavigationActivateFirstRow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2673
|
+
constructor();
|
|
2674
|
+
_onKeydown(event: KeyboardEvent): void;
|
|
2675
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpGridNavigationFor, never>;
|
|
2676
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpGridNavigationFor, "[acpGridNavigationFor]", ["acpGridNavigationFor"], { "grid": { "alias": "acpGridNavigationFor"; "required": true; "isSignal": true; }; "acpGridNavigationActivateFirstRow": { "alias": "acpGridNavigationActivateFirstRow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2672
2677
|
}
|
|
2673
2678
|
|
|
2674
2679
|
interface DateRangePickerOptions {
|
|
@@ -4051,53 +4056,47 @@ declare class AcpCheckboxGroup implements AfterViewInit, OnDestroy, ControlValue
|
|
|
4051
4056
|
}
|
|
4052
4057
|
|
|
4053
4058
|
/**
|
|
4054
|
-
* Card appearance variants
|
|
4059
|
+
* Card appearance variants. Mirrors Angular Material's `MatCardAppearance`
|
|
4060
|
+
* (`elevated` maps to Material's `raised`).
|
|
4055
4061
|
*/
|
|
4056
|
-
type AcpCardAppearance = '
|
|
4062
|
+
type AcpCardAppearance = 'elevated' | 'outlined' | 'filled';
|
|
4057
4063
|
/**
|
|
4058
|
-
* Card elevation levels
|
|
4064
|
+
* Card elevation levels, mapped to `--mat-sys-level{n}`. Only applies to `elevated` cards.
|
|
4059
4065
|
*/
|
|
4060
4066
|
type AcpCardElevation = 0 | 1 | 2 | 3 | 4 | 5;
|
|
4061
4067
|
/**
|
|
4062
|
-
*
|
|
4068
|
+
* Content padding options.
|
|
4063
4069
|
*/
|
|
4064
4070
|
type AcpCardPadding = 'none' | 'small' | 'medium' | 'large';
|
|
4065
4071
|
/**
|
|
4066
|
-
* Card
|
|
4072
|
+
* Card color variants based on Material Design 3 system roles.
|
|
4067
4073
|
*/
|
|
4068
|
-
type
|
|
4074
|
+
type AcpCardColor = 'primary' | 'primary-container' | 'secondary' | 'secondary-container' | 'tertiary' | 'tertiary-container' | 'error' | 'error-container' | 'surface' | 'surface-variant' | 'surface-container-highest' | 'surface-container-high' | 'surface-container' | 'surface-container-low' | 'surface-container-lowest' | 'inverse-surface' | 'disabled-bg';
|
|
4069
4075
|
/**
|
|
4070
|
-
*
|
|
4076
|
+
* Media aspect ratio.
|
|
4071
4077
|
*/
|
|
4072
4078
|
type AcpCardImageRatio = '1:1' | '4:3' | '16:9' | '21:9' | '3:2' | '3:4';
|
|
4073
4079
|
/**
|
|
4074
|
-
*
|
|
4080
|
+
* Horizontal alignment of the actions slot (same as `mat-card-actions[align]`).
|
|
4081
|
+
*/
|
|
4082
|
+
type AcpCardActionsAlign = 'start' | 'end';
|
|
4083
|
+
/**
|
|
4084
|
+
* Application-wide or subtree defaults for `acp-card`.
|
|
4085
|
+
* Provide them with `provideAcpCardDefaults()` or the `ACP_CARD_DEFAULT_OPTIONS` token.
|
|
4086
|
+
* Inputs set on an individual card always win.
|
|
4075
4087
|
*/
|
|
4076
4088
|
interface AcpCardConfig {
|
|
4077
4089
|
appearance?: AcpCardAppearance;
|
|
4078
4090
|
elevation?: AcpCardElevation;
|
|
4079
4091
|
rounded?: boolean | number;
|
|
4080
|
-
hover?: boolean;
|
|
4081
|
-
clickable?: boolean;
|
|
4082
|
-
outlined?: boolean;
|
|
4083
|
-
loading?: boolean;
|
|
4084
|
-
disabled?: boolean;
|
|
4085
4092
|
padding?: AcpCardPadding;
|
|
4093
|
+
color?: AcpCardColor;
|
|
4094
|
+
hoverable?: boolean;
|
|
4095
|
+
actionsAlign?: AcpCardActionsAlign;
|
|
4086
4096
|
imageRatio?: AcpCardImageRatio;
|
|
4087
|
-
fullHeight?: boolean;
|
|
4088
|
-
fullWidth?: boolean;
|
|
4089
4097
|
}
|
|
4090
4098
|
/**
|
|
4091
|
-
*
|
|
4092
|
-
*/
|
|
4093
|
-
interface AcpCardBadge {
|
|
4094
|
-
content: string | number;
|
|
4095
|
-
color?: 'primary' | 'secondary' | 'accent' | 'error' | 'success' | 'warning' | 'info';
|
|
4096
|
-
position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
4097
|
-
}
|
|
4098
|
-
/**
|
|
4099
|
-
* Pass Through options for card sections
|
|
4100
|
-
* Allows customization of classes, styles, and attributes for each section
|
|
4099
|
+
* Pass-through classes and styles for a single card section.
|
|
4101
4100
|
*/
|
|
4102
4101
|
interface AcpCardPassThroughSection {
|
|
4103
4102
|
class?: string | string[] | Record<string, boolean>;
|
|
@@ -4116,135 +4115,209 @@ interface AcpCardPassThroughOptions {
|
|
|
4116
4115
|
footer?: AcpCardPassThroughSection | undefined;
|
|
4117
4116
|
}
|
|
4118
4117
|
|
|
4118
|
+
/**
|
|
4119
|
+
* Defaults for every `acp-card` in the injector tree. Mirrors `MAT_CARD_CONFIG`.
|
|
4120
|
+
* Can also be provided at component level: `providers: [{ provide: ACP_CARD_DEFAULT_OPTIONS, useValue }]`.
|
|
4121
|
+
*/
|
|
4122
|
+
declare const ACP_CARD_DEFAULT_OPTIONS: InjectionToken<AcpCardConfig>;
|
|
4123
|
+
/**
|
|
4124
|
+
* Registers application-wide card defaults, e.g.:
|
|
4125
|
+
* `provideAcpCardDefaults({ appearance: 'outlined', rounded: 16 })`.
|
|
4126
|
+
*/
|
|
4127
|
+
declare function provideAcpCardDefaults(defaults: AcpCardConfig): EnvironmentProviders;
|
|
4128
|
+
|
|
4129
|
+
/**
|
|
4130
|
+
* Typed slot directives for `acp-card`. Preferred over `#title`-style template refs:
|
|
4131
|
+
* they are type-checked, discoverable and never collide with refs of nested components.
|
|
4132
|
+
*
|
|
4133
|
+
* @example
|
|
4134
|
+
* ```html
|
|
4135
|
+
* <acp-card>
|
|
4136
|
+
* <ng-template acpCardTitle>Order #123</ng-template>
|
|
4137
|
+
* <p>Body</p>
|
|
4138
|
+
* <ng-template acpCardActions><acp-button text="Open" /></ng-template>
|
|
4139
|
+
* </acp-card>
|
|
4140
|
+
* ```
|
|
4141
|
+
*/
|
|
4142
|
+
declare class AcpCardHeader {
|
|
4143
|
+
readonly templateRef: TemplateRef<any>;
|
|
4144
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCardHeader, never>;
|
|
4145
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpCardHeader, "ng-template[acpCardHeader]", never, {}, {}, never, never, true, never>;
|
|
4146
|
+
}
|
|
4147
|
+
declare class AcpCardMedia {
|
|
4148
|
+
readonly templateRef: TemplateRef<any>;
|
|
4149
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCardMedia, never>;
|
|
4150
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpCardMedia, "ng-template[acpCardMedia]", never, {}, {}, never, never, true, never>;
|
|
4151
|
+
}
|
|
4152
|
+
declare class AcpCardAvatar {
|
|
4153
|
+
readonly templateRef: TemplateRef<any>;
|
|
4154
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCardAvatar, never>;
|
|
4155
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpCardAvatar, "ng-template[acpCardAvatar]", never, {}, {}, never, never, true, never>;
|
|
4156
|
+
}
|
|
4157
|
+
declare class AcpCardTitle {
|
|
4158
|
+
readonly templateRef: TemplateRef<any>;
|
|
4159
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCardTitle, never>;
|
|
4160
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpCardTitle, "ng-template[acpCardTitle]", never, {}, {}, never, never, true, never>;
|
|
4161
|
+
}
|
|
4162
|
+
declare class AcpCardSubtitle {
|
|
4163
|
+
readonly templateRef: TemplateRef<any>;
|
|
4164
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCardSubtitle, never>;
|
|
4165
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpCardSubtitle, "ng-template[acpCardSubtitle]", never, {}, {}, never, never, true, never>;
|
|
4166
|
+
}
|
|
4167
|
+
declare class AcpCardActions {
|
|
4168
|
+
readonly templateRef: TemplateRef<any>;
|
|
4169
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCardActions, never>;
|
|
4170
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpCardActions, "ng-template[acpCardActions]", never, {}, {}, never, never, true, never>;
|
|
4171
|
+
}
|
|
4172
|
+
declare class AcpCardFooter {
|
|
4173
|
+
readonly templateRef: TemplateRef<any>;
|
|
4174
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCardFooter, never>;
|
|
4175
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpCardFooter, "ng-template[acpCardFooter]", never, {}, {}, never, never, true, never>;
|
|
4176
|
+
}
|
|
4177
|
+
declare const ACP_CARD_SLOTS: readonly [typeof AcpCardHeader, typeof AcpCardMedia, typeof AcpCardAvatar, typeof AcpCardTitle, typeof AcpCardSubtitle, typeof AcpCardActions, typeof AcpCardFooter];
|
|
4178
|
+
|
|
4119
4179
|
declare class AcpCard {
|
|
4120
|
-
readonly
|
|
4121
|
-
readonly
|
|
4122
|
-
readonly
|
|
4123
|
-
readonly
|
|
4180
|
+
private readonly defaults;
|
|
4181
|
+
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
4182
|
+
readonly subtitle: _angular_core.InputSignal<string | undefined>;
|
|
4183
|
+
readonly appearance: _angular_core.InputSignal<AcpCardAppearance | undefined>;
|
|
4184
|
+
readonly color: _angular_core.InputSignal<AcpCardColor | undefined>;
|
|
4185
|
+
readonly elevation: _angular_core.InputSignal<AcpCardElevation | undefined>;
|
|
4186
|
+
/** `true` = theme radius, `false` = square, number = radius in px. */
|
|
4187
|
+
readonly rounded: _angular_core.InputSignal<number | boolean | undefined>;
|
|
4188
|
+
readonly padding: _angular_core.InputSignal<AcpCardPadding | undefined>;
|
|
4189
|
+
readonly hoverable: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
|
|
4190
|
+
readonly actionsAlign: _angular_core.InputSignal<AcpCardActionsAlign | undefined>;
|
|
4191
|
+
/** Aspect ratio applied to the media slot. Media keeps its natural size when unset. */
|
|
4192
|
+
readonly imageRatio: _angular_core.InputSignal<AcpCardImageRatio | undefined>;
|
|
4124
4193
|
readonly clickable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4125
|
-
readonly outlined: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4126
4194
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4127
|
-
readonly
|
|
4128
|
-
readonly imageRatio: _angular_core.InputSignal<AcpCardImageRatio>;
|
|
4195
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4129
4196
|
readonly fullHeight: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4130
4197
|
readonly fullWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4131
|
-
readonly
|
|
4198
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
4132
4199
|
readonly passThrough: _angular_core.InputSignal<AcpCardPassThroughOptions>;
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4200
|
+
/** Emitted on click, Enter or Space when `clickable` and not disabled/loading. */
|
|
4201
|
+
readonly clicked: _angular_core.OutputEmitterRef<MouseEvent | KeyboardEvent>;
|
|
4202
|
+
private readonly headerDir;
|
|
4203
|
+
private readonly mediaDir;
|
|
4204
|
+
private readonly avatarDir;
|
|
4205
|
+
private readonly titleDir;
|
|
4206
|
+
private readonly subtitleDir;
|
|
4207
|
+
private readonly actionsDir;
|
|
4208
|
+
private readonly footerDir;
|
|
4209
|
+
private readonly headerRef;
|
|
4210
|
+
private readonly mediaRef;
|
|
4211
|
+
private readonly avatarRef;
|
|
4212
|
+
private readonly titleRef;
|
|
4213
|
+
private readonly subtitleRef;
|
|
4214
|
+
private readonly actionsRef;
|
|
4215
|
+
private readonly footerRef;
|
|
4216
|
+
readonly headerTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4217
|
+
readonly mediaTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4218
|
+
readonly avatarTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4219
|
+
readonly titleTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4220
|
+
readonly subtitleTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4221
|
+
readonly actionsTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4222
|
+
readonly footerTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4223
|
+
readonly hasTitleGroup: _angular_core.Signal<boolean>;
|
|
4224
|
+
readonly resolvedAppearance: _angular_core.Signal<AcpCardAppearance>;
|
|
4225
|
+
readonly matAppearance: _angular_core.Signal<"outlined" | "filled" | "raised">;
|
|
4226
|
+
readonly resolvedPadding: _angular_core.Signal<AcpCardPadding>;
|
|
4227
|
+
readonly resolvedColor: _angular_core.Signal<AcpCardColor | undefined>;
|
|
4228
|
+
readonly resolvedHoverable: _angular_core.Signal<boolean>;
|
|
4229
|
+
readonly resolvedActionsAlign: _angular_core.Signal<AcpCardActionsAlign>;
|
|
4230
|
+
readonly mediaRatio: _angular_core.Signal<string | undefined>;
|
|
4231
|
+
readonly interactive: _angular_core.Signal<boolean>;
|
|
4232
|
+
readonly shape: _angular_core.Signal<string | null>;
|
|
4233
|
+
readonly elevationShadow: _angular_core.Signal<string | null>;
|
|
4234
|
+
readonly hostClasses: _angular_core.Signal<string>;
|
|
4235
|
+
onActivate(event: MouseEvent): void;
|
|
4236
|
+
onKeyActivate(event: Event): void;
|
|
4143
4237
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCard, never>;
|
|
4144
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpCard, "acp-card",
|
|
4238
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpCard, "acp-card", ["acpCard"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "elevation": { "alias": "elevation"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "actionsAlign": { "alias": "actionsAlign"; "required": false; "isSignal": true; }; "imageRatio": { "alias": "imageRatio"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullHeight": { "alias": "fullHeight"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "passThrough": { "alias": "passThrough"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, ["headerDir", "mediaDir", "avatarDir", "titleDir", "subtitleDir", "actionsDir", "footerDir", "headerRef", "mediaRef", "avatarRef", "titleRef", "subtitleRef", "actionsRef", "footerRef"], ["*"], true, never>;
|
|
4145
4239
|
}
|
|
4146
4240
|
|
|
4147
|
-
type AcpKpiCardColor = 'primary' | 'secondary' | 'success' | 'success-light' | 'warning' | 'warning-light' | 'error' | 'error-light' | 'info' | 'info-light' | 'neutral' | '
|
|
4241
|
+
type AcpKpiCardColor = 'primary' | 'secondary' | 'success' | 'success-light' | 'warning' | 'warning-light' | 'error' | 'error-light' | 'info' | 'info-light' | 'neutral' | 'surface' | 'custom';
|
|
4148
4242
|
type AcpKpiCardVariant = 'default' | 'elevated' | 'outlined' | 'filled' | 'tonal';
|
|
4149
4243
|
type AcpKpiCardSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
4244
|
+
/** Horizontal alignment of header, value and text. */
|
|
4245
|
+
type AcpKpiCardAlign = 'start' | 'center' | 'end';
|
|
4246
|
+
/** Direction of the change. `none` hides the trend icon. */
|
|
4150
4247
|
type AcpKpiCardTrend = 'up' | 'down' | 'neutral' | 'none';
|
|
4248
|
+
/** Whether the change is good or bad for the business; drives the delta badge color. */
|
|
4249
|
+
type AcpKpiCardTrendSentiment = 'positive' | 'negative' | 'neutral';
|
|
4151
4250
|
interface AcpKpiCardTrendConfig {
|
|
4152
4251
|
icon: string;
|
|
4153
|
-
color: AcpKpiCardColor;
|
|
4154
4252
|
ariaLabel: string;
|
|
4155
4253
|
}
|
|
4156
|
-
interface AcpKpiCardLayout {
|
|
4157
|
-
title: boolean;
|
|
4158
|
-
subtitle: boolean;
|
|
4159
|
-
value: boolean;
|
|
4160
|
-
description: boolean;
|
|
4161
|
-
trend: boolean;
|
|
4162
|
-
percentage: boolean;
|
|
4163
|
-
icon: boolean;
|
|
4164
|
-
avatar: boolean;
|
|
4165
|
-
actions: boolean;
|
|
4166
|
-
footer: boolean;
|
|
4167
|
-
progress: boolean;
|
|
4168
|
-
}
|
|
4169
4254
|
|
|
4170
4255
|
declare class AcpKpiCard {
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4256
|
+
private readonly defaultLocale;
|
|
4257
|
+
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
4258
|
+
readonly subtitle: _angular_core.InputSignal<string | undefined>;
|
|
4259
|
+
/** Numbers are formatted with `Intl.NumberFormat`; strings are shown as-is. */
|
|
4260
|
+
readonly value: _angular_core.InputSignal<string | number | null | undefined>;
|
|
4261
|
+
readonly valueFormat: _angular_core.InputSignal<Intl.NumberFormatOptions | undefined>;
|
|
4262
|
+
readonly prefix: _angular_core.InputSignal<string | undefined>;
|
|
4263
|
+
readonly suffix: _angular_core.InputSignal<string | undefined>;
|
|
4264
|
+
readonly description: _angular_core.InputSignal<string | undefined>;
|
|
4265
|
+
readonly footer: _angular_core.InputSignal<string | undefined>;
|
|
4266
|
+
/** BCP 47 locale for number formatting. Defaults to the app `LOCALE_ID`. */
|
|
4267
|
+
readonly locale: _angular_core.InputSignal<string | undefined>;
|
|
4268
|
+
readonly variant: _angular_core.InputSignal<AcpKpiCardVariant>;
|
|
4269
|
+
readonly color: _angular_core.InputSignal<AcpKpiCardColor>;
|
|
4270
|
+
readonly size: _angular_core.InputSignal<AcpKpiCardSize>;
|
|
4271
|
+
readonly align: _angular_core.InputSignal<AcpKpiCardAlign>;
|
|
4272
|
+
readonly icon: _angular_core.InputSignal<string | undefined>;
|
|
4273
|
+
readonly svgIcon: _angular_core.InputSignal<string | undefined>;
|
|
4274
|
+
readonly avatar: _angular_core.InputSignal<string | undefined>;
|
|
4275
|
+
readonly avatarInitials: _angular_core.InputSignal<string | undefined>;
|
|
4276
|
+
readonly percentage: _angular_core.InputSignal<string | number | null | undefined>;
|
|
4277
|
+
readonly percentageFormat: _angular_core.InputSignal<"number" | "percent">;
|
|
4278
|
+
/** Direction of the change. Inferred from the sign of `percentage` when unset. */
|
|
4279
|
+
readonly trend: _angular_core.InputSignal<AcpKpiCardTrend | undefined>;
|
|
4280
|
+
/** Invert the badge color for metrics where a decrease is good (costs, churn, errors). */
|
|
4281
|
+
readonly lowerIsBetter: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4282
|
+
/** Comparison context shown next to the change, e.g. "vs last month". */
|
|
4283
|
+
readonly trendLabel: _angular_core.InputSignal<string | undefined>;
|
|
4284
|
+
/** Show the trend arrow inside the change badge. */
|
|
4285
|
+
readonly showTrendIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4286
|
+
readonly progress: _angular_core.InputSignal<number | undefined>;
|
|
4287
|
+
readonly progressColor: _angular_core.InputSignal<AcpKpiCardColor | undefined>;
|
|
4288
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4289
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4290
|
+
readonly clickable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4291
|
+
readonly selected: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4292
|
+
readonly routerLink: _angular_core.InputSignal<string | any[] | null>;
|
|
4293
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
4294
|
+
readonly menuAriaLabel: _angular_core.InputSignal<string>;
|
|
4295
|
+
readonly tooltip: _angular_core.InputSignal<string | undefined>;
|
|
4296
|
+
/** Emitted on click, Enter or Space when `clickable`. */
|
|
4297
|
+
readonly clicked: _angular_core.OutputEmitterRef<void>;
|
|
4298
|
+
readonly iconTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4299
|
+
readonly avatarTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4300
|
+
readonly footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4301
|
+
readonly actionsTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
4302
|
+
private readonly resolvedLocale;
|
|
4303
|
+
readonly formattedValue: _angular_core.Signal<string | null>;
|
|
4304
|
+
readonly formattedDelta: _angular_core.Signal<string | null>;
|
|
4305
|
+
readonly resolvedTrend: _angular_core.Signal<AcpKpiCardTrend>;
|
|
4306
|
+
readonly trendConfig: _angular_core.Signal<_acontplus_ng_components.AcpKpiCardTrendConfig>;
|
|
4307
|
+
readonly sentiment: _angular_core.Signal<AcpKpiCardTrendSentiment>;
|
|
4308
|
+
readonly hasHeader: _angular_core.Signal<boolean>;
|
|
4309
|
+
readonly hasFooter: _angular_core.Signal<boolean>;
|
|
4310
|
+
readonly interactive: _angular_core.Signal<boolean>;
|
|
4311
|
+
readonly hostClasses: _angular_core.Signal<string>;
|
|
4211
4312
|
onCardClick(): void;
|
|
4212
|
-
|
|
4213
|
-
onMouseEnter(): void;
|
|
4214
|
-
onMouseLeave(): void;
|
|
4313
|
+
onCardKey(event: Event): void;
|
|
4215
4314
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpKpiCard, never>;
|
|
4216
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpKpiCard, "acp-kpi-card", ["acpKpiCard"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "svgIcon": { "alias": "svgIcon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "avatarInitials": { "alias": "avatarInitials"; "required": false; "isSignal": true; }; "trend": { "alias": "trend"; "required": false; "isSignal": true; }; "
|
|
4315
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpKpiCard, "acp-kpi-card", ["acpKpiCard"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "footer": { "alias": "footer"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "svgIcon": { "alias": "svgIcon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "avatarInitials": { "alias": "avatarInitials"; "required": false; "isSignal": true; }; "percentage": { "alias": "percentage"; "required": false; "isSignal": true; }; "percentageFormat": { "alias": "percentageFormat"; "required": false; "isSignal": true; }; "trend": { "alias": "trend"; "required": false; "isSignal": true; }; "lowerIsBetter": { "alias": "lowerIsBetter"; "required": false; "isSignal": true; }; "trendLabel": { "alias": "trendLabel"; "required": false; "isSignal": true; }; "showTrendIcon": { "alias": "showTrendIcon"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "progressColor": { "alias": "progressColor"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, ["iconTemplate", "avatarTemplate", "footerTemplate", "actionsTemplate"], never, true, never>;
|
|
4217
4316
|
}
|
|
4218
4317
|
|
|
4219
4318
|
declare const KPI_CARD_TREND_CONFIGS: Record<AcpKpiCardTrend, AcpKpiCardTrendConfig>;
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
declare const KPI_CARD_TOKENS: {
|
|
4223
|
-
SIZE_SM: string;
|
|
4224
|
-
SIZE_MD: string;
|
|
4225
|
-
SIZE_LG: string;
|
|
4226
|
-
VARIANT_DEFAULT: string;
|
|
4227
|
-
VARIANT_ELEVATED: string;
|
|
4228
|
-
VARIANT_OUTLINED: string;
|
|
4229
|
-
VARIANT_FILLED: string;
|
|
4230
|
-
VARIANT_TONAL: string;
|
|
4231
|
-
COLOR_PRIMARY: string;
|
|
4232
|
-
COLOR_SECONDARY: string;
|
|
4233
|
-
COLOR_SUCCESS: string;
|
|
4234
|
-
COLOR_SUCCESS_LIGHT: string;
|
|
4235
|
-
COLOR_WARNING: string;
|
|
4236
|
-
COLOR_WARNING_LIGHT: string;
|
|
4237
|
-
COLOR_ERROR: string;
|
|
4238
|
-
COLOR_ERROR_LIGHT: string;
|
|
4239
|
-
COLOR_INFO: string;
|
|
4240
|
-
COLOR_INFO_LIGHT: string;
|
|
4241
|
-
COLOR_NEUTRAL: string;
|
|
4242
|
-
COLOR_CUSTOM: string;
|
|
4243
|
-
TREND_UP: string;
|
|
4244
|
-
TREND_DOWN: string;
|
|
4245
|
-
TREND_NEUTRAL: string;
|
|
4246
|
-
TREND_NONE: string;
|
|
4247
|
-
};
|
|
4319
|
+
/** Infers the trend direction from a numeric or numeric-string delta (`'+12.5'`, `-3`). */
|
|
4320
|
+
declare function inferKpiTrend(delta: number | string | null | undefined): AcpKpiCardTrend;
|
|
4248
4321
|
|
|
4249
4322
|
declare class Branding {
|
|
4250
4323
|
readonly logo: _angular_core.InputSignal<string | null>;
|
|
@@ -5394,5 +5467,5 @@ declare class StatusDisplayPipe implements PipeTransform {
|
|
|
5394
5467
|
static ɵpipe: _angular_core.ɵɵPipeDeclaration<StatusDisplayPipe, "statusDisplay", true>;
|
|
5395
5468
|
}
|
|
5396
5469
|
|
|
5397
|
-
export { ACP_ACTIVE_DATE_DEBOUNCE, ACP_BADGE_COLORS, ACP_BADGE_SHAPES, ACP_BADGE_SIZES, ACP_BADGE_VARIANTS, ACP_DATE_OPTION_TYPE, ACP_DEFAULT_DATE_OPTIONS, ACP_DIALOG_ACTIONS, ACP_DIALOG_DATA, ACP_DIALOG_DEFAULT_OPTIONS, ACP_DIALOG_TITLEBAR, ACP_DRAWER_DATA, ACP_DRAWER_DEFAULT_OPTIONS, ACP_POPOVER_CONTENT, ACP_POPOVER_DEFAULT_OPTIONS, ACP_POPOVER_SCROLL_STRATEGY, AcpAlert, AcpBadge, AcpButton, AcpCard, AcpCheckboxBase, AcpCheckboxGroup, AcpContextMenu, AcpContextMenuDirective, AcpContextMenuPanel, AcpContextMenuService, AcpDateRangeInput, AcpDialog, AcpDialogActions, AcpDialogContainer, AcpDialogContent, AcpDialogRef, AcpDialogService, AcpDialogTitlebar, AcpDrawer, AcpDrawerConfig, AcpDrawerContainer, AcpDrawerRef, AcpHeader, AcpHeaderActions, AcpHeaderBranding, AcpHeaderCenter, AcpHeaderEnd, AcpHeaderLanguage, AcpHeaderNotifications, AcpHeaderStart, AcpHeaderTheme, AcpHeaderWorkspace, AcpKpiCard, AcpPopover, AcpPopoverContent, AcpPopoverTarget, AcpPopoverTrigger, AcpSelectDateOption, AcpShellLayout, AcpShellSlotHeader, AcpShellSlotSidebar, AcpShellSlotSidebarFooter, AcpShellSlotToolbar, AcpShellSlotTopmenu, AcpSidebar, AcpSidebarBranding, AcpSidebarContent, AcpSidebarHeader, AcpSidebarToggle, AcpSidebarUserPanel, AcpTopmenu, AcpTopmenuPanel, AdvancedDialogService, Branding, Button, CONTEXT_MENU_DATA, CONTEXT_MENU_ITEMS, DATA_GRID_DEFAULT_OPTIONS, DataGrid, DateRangePicker, DialogWrapper, DialogZIndexService,
|
|
5398
|
-
export type { AcpAlertType, AcpBadgeColor, AcpBadgeShape, AcpBadgeSize, AcpBadgeTrend, AcpBadgeTrendConfig, AcpBadgeVariant, AcpButtonAppearance$1 as AcpButtonAppearance, AcpButtonColor$1 as AcpButtonColor, AcpButtonSize, AcpButtonType$1 as AcpButtonType, AcpButtonVariant$1 as AcpButtonVariant,
|
|
5470
|
+
export { ACP_ACTIVE_DATE_DEBOUNCE, ACP_BADGE_COLORS, ACP_BADGE_SHAPES, ACP_BADGE_SIZES, ACP_BADGE_VARIANTS, ACP_CARD_DEFAULT_OPTIONS, ACP_CARD_SLOTS, ACP_DATE_OPTION_TYPE, ACP_DEFAULT_DATE_OPTIONS, ACP_DIALOG_ACTIONS, ACP_DIALOG_DATA, ACP_DIALOG_DEFAULT_OPTIONS, ACP_DIALOG_TITLEBAR, ACP_DRAWER_DATA, ACP_DRAWER_DEFAULT_OPTIONS, ACP_POPOVER_CONTENT, ACP_POPOVER_DEFAULT_OPTIONS, ACP_POPOVER_SCROLL_STRATEGY, AcpAlert, AcpBadge, AcpButton, AcpCard, AcpCardActions, AcpCardAvatar, AcpCardFooter, AcpCardHeader, AcpCardMedia, AcpCardSubtitle, AcpCardTitle, AcpCheckboxBase, AcpCheckboxGroup, AcpContextMenu, AcpContextMenuDirective, AcpContextMenuPanel, AcpContextMenuService, AcpDateRangeInput, AcpDialog, AcpDialogActions, AcpDialogContainer, AcpDialogContent, AcpDialogRef, AcpDialogService, AcpDialogTitlebar, AcpDrawer, AcpDrawerConfig, AcpDrawerContainer, AcpDrawerRef, AcpGridNavigationFor, AcpHeader, AcpHeaderActions, AcpHeaderBranding, AcpHeaderCenter, AcpHeaderEnd, AcpHeaderLanguage, AcpHeaderNotifications, AcpHeaderStart, AcpHeaderTheme, AcpHeaderWorkspace, AcpKpiCard, AcpPopover, AcpPopoverContent, AcpPopoverTarget, AcpPopoverTrigger, AcpSearchSelect, AcpSelectDateOption, AcpShellLayout, AcpShellSlotHeader, AcpShellSlotSidebar, AcpShellSlotSidebarFooter, AcpShellSlotToolbar, AcpShellSlotTopmenu, AcpSidebar, AcpSidebarBranding, AcpSidebarContent, AcpSidebarHeader, AcpSidebarToggle, AcpSidebarUserPanel, AcpTopmenu, AcpTopmenuPanel, AdvancedDialogService, Branding, Button, CONTEXT_MENU_DATA, CONTEXT_MENU_ITEMS, DATA_GRID_DEFAULT_OPTIONS, DataGrid, DateRangePicker, DialogWrapper, DialogZIndexService, DynamicSelect, GetTotalPipe, IconRegistryService, InputChip, KPI_CARD_TREND_CONFIGS, NavAccordionDirective, NavAccordionItemDirective, NavAccordionToggleDirective, OverlayService, Pagination, SidemenuComponent, Spinner, StatusDisplayPipe, SvgIcon, TREND_CONFIGS, TabulatorTable, ThemeSwitcher, ThemeToggle, ToUpperCase, UserIcon, UserMenu, UserPanel, _AcpPopoverContentBase, acpSearchSelectLooseEquals, acpSearchSelectNormalize, inferKpiTrend, provideAcpCardDefaults, provideAcpDialogDefaults };
|
|
5471
|
+
export type { AcpAlertType, AcpAlertVariant, AcpBadgeColor, AcpBadgeShape, AcpBadgeSize, AcpBadgeTrend, AcpBadgeTrendConfig, AcpBadgeVariant, AcpButtonAppearance$1 as AcpButtonAppearance, AcpButtonColor$1 as AcpButtonColor, AcpButtonSize, AcpButtonType$1 as AcpButtonType, AcpButtonVariant$1 as AcpButtonVariant, AcpCardActionsAlign, AcpCardAppearance, AcpCardColor, AcpCardConfig, AcpCardElevation, AcpCardImageRatio, AcpCardPadding, AcpCardPassThroughOptions, AcpCardPassThroughSection, AcpCheckboxGroupOption, AcpContextMenuItem, AcpContextMenuItemContext, AcpContextMenuOpenConfig, AcpContextMenuPosition, AcpContextMenuRef, AcpContextMenuTriggerConfig, AcpDialogAction, AcpDialogActionClick, AcpDialogActionState, AcpDialogActionsOutlet, AcpDialogCloseConfig, AcpDialogComponentLoader, AcpDialogConfig, AcpDialogContainerData, AcpDialogContentFunction, AcpDialogContentInput, AcpDialogDirection, AcpDialogHeaderConfig, AcpDialogResolvedContent, AcpDialogRestoreFocus, AcpDialogSize, AcpDialogTitlebarOutlet, AcpDir, AcpHeaderAction, AcpHeaderActionEvent, AcpHeaderBrandingConfig, AcpHeaderConfig, AcpHeaderPos, AcpHeaderUserMenuConfig, AcpHeaderUserMenuItem, AcpHeaderUserMenuItemEvent, AcpKpiCardAlign, AcpKpiCardColor, AcpKpiCardSize, AcpKpiCardTrend, AcpKpiCardTrendConfig, AcpKpiCardTrendSentiment, AcpKpiCardVariant, AcpLanguageItem, AcpNavPos, AcpNotificationItem, AcpPopoverDefaultOptions, AcpPopoverPanel, AcpPopoverPosition, AcpPopoverPositionEnd, AcpPopoverPositionStart, AcpPopoverTriggerEvent, AcpSearchSelectAccessor, AcpSearchSelectOptionContext, AcpSearchSelectSelection, AcpSelectedDateEvent, AcpThemeVariant, AcpTopmenuChildItem, AcpTopmenuItem, AcpTopmenuPermissions, AcpTopmenuTag, AcpWorkspaceItem, AutoFocusTarget, DataGridButtonType, DataGridCellTemplate, DataGridColumn, DataGridColumnButton, DataGridColumnButtonBadge, DataGridColumnButtonPop, DataGridColumnButtonTooltip, DataGridColumnPinOption, DataGridColumnPinValue, DataGridColumnTag, DataGridColumnTagValue, DataGridColumnType, DataGridColumnTypeParameter, DataGridDefaultOptions, DataGridMenuItem, DataGridRowClassFormatter, DataGridRowSelectionFormatter, DataGridSize, DataGridSortProp, DateRangePickerOptions, DateRangeValue, DialogSize, DialogType, DialogWrapperConfig, DrawerPosition, IAcpSelectDateOption, IconRegistryConfig, MatCustomDialogConfig, MenuItem, MenuPermissions, MenuTag, PaginationOptions, PopoverCloseReason, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme, UserMenuItem, UserMenuSelectedEvent, UserProfile };
|