@a.nemreen/dga-ui 0.3.1 → 0.3.3
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 +18 -6
- package/fesm2022/a.nemreen-dga-ui-cookies.mjs +303 -0
- package/fesm2022/a.nemreen-dga-ui-date-picker.mjs +385 -0
- package/fesm2022/a.nemreen-dga-ui-header.mjs +2615 -0
- package/fesm2022/a.nemreen-dga-ui.mjs +874 -4512
- package/package.json +20 -4
- package/types/a.nemreen-dga-ui-cookies.d.ts +201 -0
- package/types/a.nemreen-dga-ui-date-picker.d.ts +207 -0
- package/types/a.nemreen-dga-ui-header.d.ts +427 -0
- package/types/a.nemreen-dga-ui.d.ts +218 -1009
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { DgaIconName, DgaBadgeVariant } from '@a.nemreen/dga-ui';
|
|
3
|
+
|
|
4
|
+
type DgaHeaderAppearance = 'default' | 'portal';
|
|
5
|
+
/**
|
|
6
|
+
* Mobile / narrow navigation chrome (portal header, `md` and below):
|
|
7
|
+
* - `sheet` - side drawer from the inline-end (burger) edge
|
|
8
|
+
* - `fullscreen` - full-viewport overlay panel
|
|
9
|
+
* - `push` - panel expands under the header bar (inline dropdown)
|
|
10
|
+
*/
|
|
11
|
+
type DgaMobileNavMode = 'sheet' | 'fullscreen' | 'push';
|
|
12
|
+
/** Panel chrome: compact under trigger, full-bleed mega, or mega + featured lead. */
|
|
13
|
+
type DgaNavDropdownVariant = 'menu' | 'mega' | 'featured';
|
|
14
|
+
/** How links are arranged inside the panel. */
|
|
15
|
+
type DgaNavDropdownLayout = 'list' | 'columns' | 'rows';
|
|
16
|
+
interface DgaNavLink {
|
|
17
|
+
label: string;
|
|
18
|
+
href?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
current?: boolean;
|
|
21
|
+
}
|
|
22
|
+
interface DgaNavColumn {
|
|
23
|
+
title?: string;
|
|
24
|
+
links: DgaNavLink[];
|
|
25
|
+
}
|
|
26
|
+
/** Lead / promo block for `variant: 'featured'`. */
|
|
27
|
+
interface DgaNavFeatured {
|
|
28
|
+
title: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
href?: string;
|
|
31
|
+
cta?: string;
|
|
32
|
+
imageUrl?: string;
|
|
33
|
+
}
|
|
34
|
+
interface DgaNavDropdown {
|
|
35
|
+
/**
|
|
36
|
+
* Panel width/placement:
|
|
37
|
+
* - `menu` - compact panel anchored under the trigger (default for simple lists)
|
|
38
|
+
* - `mega` - full-width under the header
|
|
39
|
+
* - `featured` - full-width mega with a lead promo column
|
|
40
|
+
*/
|
|
41
|
+
variant?: DgaNavDropdownVariant;
|
|
42
|
+
/** Inner arrangement: `list` | `columns` | `rows`. */
|
|
43
|
+
layout?: DgaNavDropdownLayout;
|
|
44
|
+
columns?: DgaNavColumn[];
|
|
45
|
+
links?: DgaNavLink[];
|
|
46
|
+
featured?: DgaNavFeatured;
|
|
47
|
+
}
|
|
48
|
+
interface DgaNavItem {
|
|
49
|
+
label: string;
|
|
50
|
+
href?: string;
|
|
51
|
+
current?: boolean;
|
|
52
|
+
dropdown?: DgaNavDropdown;
|
|
53
|
+
}
|
|
54
|
+
interface DgaHeaderAction {
|
|
55
|
+
id: string;
|
|
56
|
+
label: string;
|
|
57
|
+
icon?: DgaIconName;
|
|
58
|
+
href?: string;
|
|
59
|
+
badge?: number;
|
|
60
|
+
iconOnly?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Suggestion chip shown under the header search field. */
|
|
63
|
+
interface DgaHeaderSearchSuggestion {
|
|
64
|
+
label: string;
|
|
65
|
+
/** Value written into the query (defaults to `label`). */
|
|
66
|
+
value?: string;
|
|
67
|
+
icon?: DgaIconName;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Built-in header search popup (opens from the action whose `id` matches `actionId`).
|
|
71
|
+
* Pass this to `[search]` to enable the modal search experience.
|
|
72
|
+
*/
|
|
73
|
+
interface DgaHeaderSearchConfig {
|
|
74
|
+
/** Action id that toggles the panel. Default: `'search'`. */
|
|
75
|
+
actionId?: string;
|
|
76
|
+
/** Modal title. Default: `'Search'`. */
|
|
77
|
+
title?: string;
|
|
78
|
+
description?: string;
|
|
79
|
+
closeLabel?: string;
|
|
80
|
+
placeholder?: string;
|
|
81
|
+
submitLabel?: string;
|
|
82
|
+
suggestionsLabel?: string;
|
|
83
|
+
clearLabel?: string;
|
|
84
|
+
voiceLabel?: string;
|
|
85
|
+
/** Show microphone control (uses Web Speech API when available). Default: true. */
|
|
86
|
+
voice?: boolean;
|
|
87
|
+
suggestions?: DgaHeaderSearchSuggestion[];
|
|
88
|
+
/**
|
|
89
|
+
* Optional results URL. On submit, navigates to
|
|
90
|
+
* `{resultsHref}?{queryParam}={query}` when set.
|
|
91
|
+
*/
|
|
92
|
+
resultsHref?: string;
|
|
93
|
+
/** Query string key. Default: `'q'`. */
|
|
94
|
+
queryParam?: string;
|
|
95
|
+
}
|
|
96
|
+
type DgaHeaderNotificationTone = DgaBadgeVariant;
|
|
97
|
+
/** Single item in the header notifications panel. */
|
|
98
|
+
interface DgaHeaderNotification {
|
|
99
|
+
id: string;
|
|
100
|
+
title: string;
|
|
101
|
+
message: string;
|
|
102
|
+
statusLabel?: string;
|
|
103
|
+
tone?: DgaHeaderNotificationTone;
|
|
104
|
+
icon?: DgaIconName;
|
|
105
|
+
href?: string;
|
|
106
|
+
read?: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Built-in notifications dropdown for the action whose `id` matches `actionId`
|
|
110
|
+
* (default `'notifications'`).
|
|
111
|
+
*/
|
|
112
|
+
interface DgaHeaderNotificationsConfig {
|
|
113
|
+
actionId?: string;
|
|
114
|
+
/** Panel heading. Default: `'Notifications'`. */
|
|
115
|
+
title?: string;
|
|
116
|
+
emptyLabel?: string;
|
|
117
|
+
viewAllLabel?: string;
|
|
118
|
+
viewAllHref?: string;
|
|
119
|
+
markReadLabel?: string;
|
|
120
|
+
markAllReadLabel?: string;
|
|
121
|
+
viewLabel?: string;
|
|
122
|
+
dismissLabel?: string;
|
|
123
|
+
closeLabel?: string;
|
|
124
|
+
items?: DgaHeaderNotification[];
|
|
125
|
+
}
|
|
126
|
+
type DgaHeaderNotificationAction = 'read' | 'view' | 'dismiss' | 'select';
|
|
127
|
+
/** Link row inside the login panel footer. */
|
|
128
|
+
interface DgaHeaderLoginLink {
|
|
129
|
+
id?: string;
|
|
130
|
+
label: string;
|
|
131
|
+
href?: string;
|
|
132
|
+
}
|
|
133
|
+
/** Guest login form opened from the login action. */
|
|
134
|
+
interface DgaHeaderLoginConfig {
|
|
135
|
+
actionId?: string;
|
|
136
|
+
title?: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
emailLabel?: string;
|
|
139
|
+
emailPlaceholder?: string;
|
|
140
|
+
emailHint?: string;
|
|
141
|
+
passwordLabel?: string;
|
|
142
|
+
passwordPlaceholder?: string;
|
|
143
|
+
passwordHint?: string;
|
|
144
|
+
submitLabel?: string;
|
|
145
|
+
cancelLabel?: string;
|
|
146
|
+
closeLabel?: string;
|
|
147
|
+
forgotPasswordLabel?: string;
|
|
148
|
+
forgotPasswordHref?: string;
|
|
149
|
+
showPasswordLabel?: string;
|
|
150
|
+
hidePasswordLabel?: string;
|
|
151
|
+
/** Panel width CSS value. Default: `'24rem'`. */
|
|
152
|
+
panelWidth?: string;
|
|
153
|
+
/** Max inner scroll height. Default: `'44rem'`. */
|
|
154
|
+
maxHeight?: string;
|
|
155
|
+
/** Register prompt (e.g. "Don't have an account?"). */
|
|
156
|
+
registerPrompt?: string;
|
|
157
|
+
registerLabel?: string;
|
|
158
|
+
registerHref?: string;
|
|
159
|
+
/** Extra links below actions (help, SSO, etc.). */
|
|
160
|
+
footerLinks?: DgaHeaderLoginLink[];
|
|
161
|
+
/** Submit button label while loading. Default: `'…'`. */
|
|
162
|
+
submittingLabel?: string;
|
|
163
|
+
/** Form-level error shown above action buttons. */
|
|
164
|
+
errorMessage?: string;
|
|
165
|
+
emailRequiredMessage?: string;
|
|
166
|
+
emailInvalidMessage?: string;
|
|
167
|
+
passwordRequiredMessage?: string;
|
|
168
|
+
/** Show cancel button. Default: `true`. */
|
|
169
|
+
showCancel?: boolean;
|
|
170
|
+
}
|
|
171
|
+
/** Projected content after the login title, before fields. */
|
|
172
|
+
declare class DgaHeaderLoginBeforeForm {
|
|
173
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaHeaderLoginBeforeForm, never>;
|
|
174
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaHeaderLoginBeforeForm, "[dgaHeaderLoginBeforeForm]", never, {}, {}, never, never, true, never>;
|
|
175
|
+
}
|
|
176
|
+
/** Projected content between fields and action buttons. */
|
|
177
|
+
declare class DgaHeaderLoginAfterFields {
|
|
178
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaHeaderLoginAfterFields, never>;
|
|
179
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaHeaderLoginAfterFields, "[dgaHeaderLoginAfterFields]", never, {}, {}, never, never, true, never>;
|
|
180
|
+
}
|
|
181
|
+
/** Projected footer; overrides config register/footer links when present. */
|
|
182
|
+
declare class DgaHeaderLoginFooter {
|
|
183
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaHeaderLoginFooter, never>;
|
|
184
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaHeaderLoginFooter, "[dgaHeaderLoginFooter]", never, {}, {}, never, never, true, never>;
|
|
185
|
+
}
|
|
186
|
+
/** Replaces the built-in email/password form; panel chrome remains. */
|
|
187
|
+
declare class DgaHeaderLoginForm {
|
|
188
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaHeaderLoginForm, never>;
|
|
189
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaHeaderLoginForm, "[dgaHeaderLoginForm]", never, {}, {}, never, never, true, never>;
|
|
190
|
+
}
|
|
191
|
+
interface DgaHeaderUserMenuLink {
|
|
192
|
+
id: string;
|
|
193
|
+
label: string;
|
|
194
|
+
href?: string;
|
|
195
|
+
icon?: DgaIconName;
|
|
196
|
+
danger?: boolean;
|
|
197
|
+
}
|
|
198
|
+
/** Authenticated user menu shown after login (same action id as login). */
|
|
199
|
+
interface DgaHeaderUserConfig {
|
|
200
|
+
name: string;
|
|
201
|
+
role?: string;
|
|
202
|
+
email?: string;
|
|
203
|
+
avatarSrc?: string;
|
|
204
|
+
links?: DgaHeaderUserMenuLink[];
|
|
205
|
+
}
|
|
206
|
+
declare class DgaHeader {
|
|
207
|
+
private readonly host;
|
|
208
|
+
private readonly baseHref;
|
|
209
|
+
private closeTimer;
|
|
210
|
+
private dropdownSyncFrame;
|
|
211
|
+
private lastDropdownStyleKey;
|
|
212
|
+
readonly collapseId = "dga-nav-collapse";
|
|
213
|
+
readonly dropLink: string;
|
|
214
|
+
readonly dropTile: string;
|
|
215
|
+
readonly mobileLink: string;
|
|
216
|
+
readonly brand: _angular_core.InputSignal<string>;
|
|
217
|
+
readonly brandSlogan: _angular_core.InputSignal<string>;
|
|
218
|
+
readonly brandLogo: _angular_core.InputSignal<string>;
|
|
219
|
+
readonly brandLogoAlt: _angular_core.InputSignal<string>;
|
|
220
|
+
/** When true and no `brandLogo`, portal headers show a home-icon placeholder beside the brand text. */
|
|
221
|
+
readonly brandPlaceholder: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
222
|
+
readonly brandHref: _angular_core.InputSignal<string>;
|
|
223
|
+
readonly navLabel: _angular_core.InputSignal<string>;
|
|
224
|
+
readonly menuToggleLabel: _angular_core.InputSignal<string>;
|
|
225
|
+
readonly menuCloseLabel: _angular_core.InputSignal<string>;
|
|
226
|
+
readonly appearance: _angular_core.InputSignal<DgaHeaderAppearance>;
|
|
227
|
+
/**
|
|
228
|
+
* Portal mobile navigation layout. Ignored for `appearance="default"`.
|
|
229
|
+
* - `sheet` - side drawer (narrow, page peeks beside)
|
|
230
|
+
* - `fullscreen` - covers the whole screen with its own close control
|
|
231
|
+
* - `push` - accordion panel under the header
|
|
232
|
+
*/
|
|
233
|
+
readonly mobileNav: _angular_core.InputSignal<DgaMobileNavMode>;
|
|
234
|
+
readonly sticky: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
235
|
+
readonly items: _angular_core.InputSignal<DgaNavItem[]>;
|
|
236
|
+
readonly actions: _angular_core.InputSignal<DgaHeaderAction[]>;
|
|
237
|
+
/**
|
|
238
|
+
* When set, the header action matching `search.actionId` (default `'search'`)
|
|
239
|
+
* opens a full-width search panel with suggestions instead of a no-op click.
|
|
240
|
+
*/
|
|
241
|
+
readonly search: _angular_core.InputSignal<DgaHeaderSearchConfig | null>;
|
|
242
|
+
/** Bound query for the header search panel. */
|
|
243
|
+
readonly searchQuery: _angular_core.ModelSignal<string>;
|
|
244
|
+
/**
|
|
245
|
+
* When set, the header action matching `notifications.actionId`
|
|
246
|
+
* (default `'notifications'`) opens the notifications dropdown.
|
|
247
|
+
*/
|
|
248
|
+
readonly notifications: _angular_core.InputSignal<DgaHeaderNotificationsConfig | null>;
|
|
249
|
+
/**
|
|
250
|
+
* Guest login panel config. Opens from the action matching `login.actionId`
|
|
251
|
+
* (default `'login'`). After auth, the same action opens the user menu.
|
|
252
|
+
*/
|
|
253
|
+
readonly login: _angular_core.InputSignal<DgaHeaderLoginConfig | null>;
|
|
254
|
+
/** Authenticated user profile shown in the account menu. */
|
|
255
|
+
readonly user: _angular_core.InputSignal<DgaHeaderUserConfig | null>;
|
|
256
|
+
/** Whether the user is signed in (two-way). */
|
|
257
|
+
readonly authenticated: _angular_core.ModelSignal<boolean>;
|
|
258
|
+
/** Login submit loading state (two-way). Parent clears after API response. */
|
|
259
|
+
readonly loginSubmitting: _angular_core.ModelSignal<boolean>;
|
|
260
|
+
/** Form-level login error (two-way). Cleared when the panel closes. */
|
|
261
|
+
readonly loginError: _angular_core.ModelSignal<string>;
|
|
262
|
+
readonly actionClick: _angular_core.OutputEmitterRef<DgaHeaderAction>;
|
|
263
|
+
readonly searchSubmit: _angular_core.OutputEmitterRef<string>;
|
|
264
|
+
readonly searchSuggestionSelect: _angular_core.OutputEmitterRef<DgaHeaderSearchSuggestion>;
|
|
265
|
+
readonly searchVoice: _angular_core.OutputEmitterRef<void>;
|
|
266
|
+
readonly notificationAction: _angular_core.OutputEmitterRef<{
|
|
267
|
+
item: DgaHeaderNotification;
|
|
268
|
+
action: DgaHeaderNotificationAction;
|
|
269
|
+
}>;
|
|
270
|
+
readonly loginSubmit: _angular_core.OutputEmitterRef<{
|
|
271
|
+
email: string;
|
|
272
|
+
password: string;
|
|
273
|
+
}>;
|
|
274
|
+
readonly logout: _angular_core.OutputEmitterRef<void>;
|
|
275
|
+
readonly userLinkClick: _angular_core.OutputEmitterRef<DgaHeaderUserMenuLink>;
|
|
276
|
+
/** Emits on click of any top-level nav link or dropdown link (desktop + mobile). */
|
|
277
|
+
readonly navLinkClick: _angular_core.OutputEmitterRef<DgaNavLink | DgaNavItem>;
|
|
278
|
+
readonly mobileOpen: _angular_core.WritableSignal<boolean>;
|
|
279
|
+
readonly openDropdown: _angular_core.WritableSignal<number | null>;
|
|
280
|
+
readonly searchOpen: _angular_core.WritableSignal<boolean>;
|
|
281
|
+
readonly notificationsOpen: _angular_core.WritableSignal<boolean>;
|
|
282
|
+
readonly loginOpen: _angular_core.WritableSignal<boolean>;
|
|
283
|
+
readonly userMenuOpen: _angular_core.WritableSignal<boolean>;
|
|
284
|
+
readonly voiceListening: _angular_core.WritableSignal<boolean>;
|
|
285
|
+
readonly expandedNotificationId: _angular_core.WritableSignal<string | null>;
|
|
286
|
+
readonly loginEmail: _angular_core.WritableSignal<string>;
|
|
287
|
+
readonly loginPassword: _angular_core.WritableSignal<string>;
|
|
288
|
+
readonly showLoginPassword: _angular_core.WritableSignal<boolean>;
|
|
289
|
+
readonly loginEmailError: _angular_core.WritableSignal<string>;
|
|
290
|
+
readonly loginPasswordError: _angular_core.WritableSignal<string>;
|
|
291
|
+
/** Fixed coords for notifications / login / user panels (anchored to trigger). */
|
|
292
|
+
readonly dropdownPanelStyle: _angular_core.WritableSignal<Record<string, string>>;
|
|
293
|
+
private readonly customLoginForm;
|
|
294
|
+
private readonly customLoginFooter;
|
|
295
|
+
private readonly dismissedNotificationIds;
|
|
296
|
+
private readonly readNotificationIds;
|
|
297
|
+
private dropdownTrigger;
|
|
298
|
+
private dropdownActionId;
|
|
299
|
+
private readonly injector;
|
|
300
|
+
private readonly doc;
|
|
301
|
+
private readonly destroyRef;
|
|
302
|
+
private readonly searchInputRef;
|
|
303
|
+
private readonly utilLayerRef;
|
|
304
|
+
readonly searchPanelId = "dga-header-search-panel";
|
|
305
|
+
readonly notificationsPanelId = "dga-header-notifications-panel";
|
|
306
|
+
readonly loginPanelId = "dga-header-login-panel";
|
|
307
|
+
readonly userPanelId = "dga-header-user-panel";
|
|
308
|
+
readonly isPortal: _angular_core.Signal<boolean>;
|
|
309
|
+
/** Resolve root-relative hrefs against the app base (`/dga/` on cPanel). */
|
|
310
|
+
appHref(href: string | undefined | null): string;
|
|
311
|
+
readonly searchConfig: _angular_core.Signal<DgaHeaderSearchConfig | null>;
|
|
312
|
+
readonly searchActionId: _angular_core.Signal<string>;
|
|
313
|
+
readonly notificationsConfig: _angular_core.Signal<DgaHeaderNotificationsConfig | null>;
|
|
314
|
+
readonly notificationsActionId: _angular_core.Signal<string>;
|
|
315
|
+
readonly loginConfig: _angular_core.Signal<DgaHeaderLoginConfig | null>;
|
|
316
|
+
readonly loginActionId: _angular_core.Signal<string>;
|
|
317
|
+
readonly userConfig: _angular_core.Signal<DgaHeaderUserConfig | null>;
|
|
318
|
+
readonly hasCustomLoginForm: _angular_core.Signal<boolean>;
|
|
319
|
+
readonly hasCustomLoginFooter: _angular_core.Signal<boolean>;
|
|
320
|
+
readonly utilityOverlayOpen: _angular_core.Signal<boolean>;
|
|
321
|
+
readonly visibleNotifications: _angular_core.Signal<{
|
|
322
|
+
read: boolean;
|
|
323
|
+
id: string;
|
|
324
|
+
title: string;
|
|
325
|
+
message: string;
|
|
326
|
+
statusLabel?: string;
|
|
327
|
+
tone?: DgaHeaderNotificationTone;
|
|
328
|
+
icon?: DgaIconName;
|
|
329
|
+
href?: string;
|
|
330
|
+
}[]>;
|
|
331
|
+
readonly unreadNotificationCount: _angular_core.Signal<number>;
|
|
332
|
+
constructor();
|
|
333
|
+
private portalUtilLayer;
|
|
334
|
+
private removePortaledUtilLayer;
|
|
335
|
+
/** Compact under-trigger menus are rendered inside the `<li>` (desktop only). */
|
|
336
|
+
readonly activeWideDropdown: _angular_core.Signal<{
|
|
337
|
+
index: number;
|
|
338
|
+
item: DgaNavItem;
|
|
339
|
+
variant: "mega" | "featured";
|
|
340
|
+
} | null>;
|
|
341
|
+
readonly hostClasses: _angular_core.Signal<string>;
|
|
342
|
+
readonly innerClasses: _angular_core.Signal<string>;
|
|
343
|
+
readonly desktopNavClasses: _angular_core.Signal<string>;
|
|
344
|
+
readonly actionsClasses: _angular_core.Signal<string>;
|
|
345
|
+
mobilePanelClass(): string;
|
|
346
|
+
hoverMenus(): boolean;
|
|
347
|
+
isMobileViewport(): boolean;
|
|
348
|
+
resolveVariant(item: DgaNavItem): DgaNavDropdownVariant;
|
|
349
|
+
resolveLayout(item: DgaNavItem): DgaNavDropdownLayout;
|
|
350
|
+
colCount(item: DgaNavItem): number;
|
|
351
|
+
flatLinks(item: DgaNavItem): DgaNavLink[];
|
|
352
|
+
columnsGridClass(count: number): string;
|
|
353
|
+
featuredGridClass(variant: DgaNavDropdownVariant, hasFeatured: boolean): string;
|
|
354
|
+
navItemClass(current: boolean, open?: boolean): string;
|
|
355
|
+
mobileItemClass(current: boolean, open?: boolean): string;
|
|
356
|
+
indicatorClass(active: boolean): string;
|
|
357
|
+
actionClass(_action: DgaHeaderAction): string;
|
|
358
|
+
badgeClass(): string;
|
|
359
|
+
isIconOnly(action: DgaHeaderAction): boolean;
|
|
360
|
+
isSearchAction(action: DgaHeaderAction): boolean;
|
|
361
|
+
isNotificationsAction(action: DgaHeaderAction): boolean;
|
|
362
|
+
isLoginAction(action: DgaHeaderAction): boolean;
|
|
363
|
+
actionTooltip(action: DgaHeaderAction): string;
|
|
364
|
+
actionAriaLabel(action: DgaHeaderAction): string;
|
|
365
|
+
actionExpanded(action: DgaHeaderAction): boolean | null;
|
|
366
|
+
actionControls(action: DgaHeaderAction): string | null;
|
|
367
|
+
actionIndicatorActive(action: DgaHeaderAction): boolean;
|
|
368
|
+
private clearCloseTimer;
|
|
369
|
+
private scheduleClose;
|
|
370
|
+
private setBodyScrollLocked;
|
|
371
|
+
private unlockBodyIfIdle;
|
|
372
|
+
onItemEnter(i: number): void;
|
|
373
|
+
onPanelEnter(): void;
|
|
374
|
+
onHostLeave(event: MouseEvent): void;
|
|
375
|
+
toggleMobile(): void;
|
|
376
|
+
toggleDropdown(i: number, event: Event): void;
|
|
377
|
+
closeAll(): void;
|
|
378
|
+
onAction(action: DgaHeaderAction, event?: Event): void;
|
|
379
|
+
onMobileAction(action: DgaHeaderAction, event?: Event): void;
|
|
380
|
+
closeUtilityOverlays(): void;
|
|
381
|
+
/** Ask demo portal font/brand menus to close so they don't stack over header panels. */
|
|
382
|
+
private closePortalChromeMenus;
|
|
383
|
+
onCloseHeaderOverlays(): void;
|
|
384
|
+
toggleSearch(): void;
|
|
385
|
+
onSearchModalOpenChange(open: boolean): void;
|
|
386
|
+
focusSearchInput(): void;
|
|
387
|
+
closeSearch(clearVoice?: boolean): void;
|
|
388
|
+
toggleNotifications(trigger?: HTMLElement | null): void;
|
|
389
|
+
closeNotifications(): void;
|
|
390
|
+
toggleLogin(trigger?: HTMLElement | null): void;
|
|
391
|
+
closeLogin(): void;
|
|
392
|
+
toggleUserMenu(trigger?: HTMLElement | null): void;
|
|
393
|
+
closeUserMenu(): void;
|
|
394
|
+
onLoginEmailInput(value: string): void;
|
|
395
|
+
onLoginPasswordInput(value: string): void;
|
|
396
|
+
showLoginRegisterRow(lcfg: DgaHeaderLoginConfig): boolean;
|
|
397
|
+
loginPanelOuterStyle(): Record<string, string>;
|
|
398
|
+
loginPanelInnerStyle(): Record<string, string>;
|
|
399
|
+
onLoginSubmit(event: Event): void;
|
|
400
|
+
onUserLink(link: DgaHeaderUserMenuLink): void;
|
|
401
|
+
toggleNotificationExpand(item: DgaHeaderNotification): void;
|
|
402
|
+
onNotificationAction(item: DgaHeaderNotification, action: DgaHeaderNotificationAction): void;
|
|
403
|
+
markAllNotificationsRead(): void;
|
|
404
|
+
clearSearchQuery(): void;
|
|
405
|
+
applySearchSuggestion(item: DgaHeaderSearchSuggestion): void;
|
|
406
|
+
onSearchFormSubmit(event: Event): void;
|
|
407
|
+
onSearchVoice(): void;
|
|
408
|
+
private speechRecognition;
|
|
409
|
+
private stopVoice;
|
|
410
|
+
private triggerFromEvent;
|
|
411
|
+
private scheduleDropdownSync;
|
|
412
|
+
private requestDropdownSync;
|
|
413
|
+
private clearDropdownAnchor;
|
|
414
|
+
private findActionTrigger;
|
|
415
|
+
private activeUtilityPanelWidthPx;
|
|
416
|
+
private syncDropdownPanel;
|
|
417
|
+
onKey(event: KeyboardEvent): void;
|
|
418
|
+
onScroll(): void;
|
|
419
|
+
onResize(): void;
|
|
420
|
+
onNavLinkClick(link: DgaNavLink | DgaNavItem, event: MouseEvent): void;
|
|
421
|
+
onDocClick(event: MouseEvent): void;
|
|
422
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaHeader, never>;
|
|
423
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaHeader, "dga-header", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "brandSlogan": { "alias": "brandSlogan"; "required": false; "isSignal": true; }; "brandLogo": { "alias": "brandLogo"; "required": false; "isSignal": true; }; "brandLogoAlt": { "alias": "brandLogoAlt"; "required": false; "isSignal": true; }; "brandPlaceholder": { "alias": "brandPlaceholder"; "required": false; "isSignal": true; }; "brandHref": { "alias": "brandHref"; "required": false; "isSignal": true; }; "navLabel": { "alias": "navLabel"; "required": false; "isSignal": true; }; "menuToggleLabel": { "alias": "menuToggleLabel"; "required": false; "isSignal": true; }; "menuCloseLabel": { "alias": "menuCloseLabel"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "mobileNav": { "alias": "mobileNav"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "searchQuery": { "alias": "searchQuery"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "login": { "alias": "login"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "authenticated": { "alias": "authenticated"; "required": false; "isSignal": true; }; "loginSubmitting": { "alias": "loginSubmitting"; "required": false; "isSignal": true; }; "loginError": { "alias": "loginError"; "required": false; "isSignal": true; }; }, { "searchQuery": "searchQueryChange"; "authenticated": "authenticatedChange"; "loginSubmitting": "loginSubmittingChange"; "loginError": "loginErrorChange"; "actionClick": "actionClick"; "searchSubmit": "searchSubmit"; "searchSuggestionSelect": "searchSuggestionSelect"; "searchVoice": "searchVoice"; "notificationAction": "notificationAction"; "loginSubmit": "loginSubmit"; "logout": "logout"; "userLinkClick": "userLinkClick"; "navLinkClick": "navLinkClick"; }, ["customLoginForm", "customLoginFooter"], ["[dgaHeaderBrand]", "*", "[dgaHeaderEnd]", "[dgaHeaderLoginBeforeForm]", "[dgaHeaderLoginForm]", "[dgaHeaderLoginAfterFields]", "[dgaHeaderLoginFooter]"], true, never>;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export { DgaHeader, DgaHeaderLoginAfterFields, DgaHeaderLoginBeforeForm, DgaHeaderLoginFooter, DgaHeaderLoginForm };
|
|
427
|
+
export type { DgaHeaderAction, DgaHeaderAppearance, DgaHeaderLoginConfig, DgaHeaderLoginLink, DgaHeaderNotification, DgaHeaderNotificationAction, DgaHeaderNotificationTone, DgaHeaderNotificationsConfig, DgaHeaderSearchConfig, DgaHeaderSearchSuggestion, DgaHeaderUserConfig, DgaHeaderUserMenuLink, DgaMobileNavMode, DgaNavColumn, DgaNavDropdown, DgaNavDropdownLayout, DgaNavDropdownVariant, DgaNavFeatured, DgaNavItem, DgaNavLink };
|