@ojiepermana/angular-navigation 22.0.32 → 22.0.33
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 +7 -9
- package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -86
- package/fesm2022/ojiepermana-angular-navigation.mjs +704 -257
- package/package.json +2 -2
- package/types/ojiepermana-angular-navigation-service.d.ts +0 -4
- package/types/ojiepermana-angular-navigation.d.ts +148 -16
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ojiepermana/angular-navigation",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.33",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/edsis/angular.git"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@angular/common": ">=22.0.0",
|
|
14
14
|
"@angular/core": ">=22.0.0",
|
|
15
15
|
"@angular/router": ">=22.0.0",
|
|
16
|
-
"@ojiepermana/angular-component": "^22.0.
|
|
16
|
+
"@ojiepermana/angular-component": "^22.0.33",
|
|
17
17
|
"rxjs": ">=7.8.0"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
@@ -131,7 +131,6 @@ declare class NavigationService {
|
|
|
131
131
|
private resolveDockbarMode;
|
|
132
132
|
private persistState;
|
|
133
133
|
private defaultType;
|
|
134
|
-
private cleanupLegacyStorage;
|
|
135
134
|
private storage;
|
|
136
135
|
private readStorage;
|
|
137
136
|
private readInstanceStorage;
|
|
@@ -139,13 +138,10 @@ declare class NavigationService {
|
|
|
139
138
|
private writeStorage;
|
|
140
139
|
private removeStorage;
|
|
141
140
|
private clearInstanceStorage;
|
|
142
|
-
private migrateLegacyPersistedStorage;
|
|
143
141
|
private instanceStorageKey;
|
|
144
142
|
private persistedStorageKey;
|
|
145
143
|
private persistedTypeMode;
|
|
146
|
-
private resolveLegacyTypeMode;
|
|
147
144
|
private shouldPersistInstanceState;
|
|
148
|
-
private isLegacyInstanceStorageKey;
|
|
149
145
|
private isPersistedTypeMode;
|
|
150
146
|
private normalizeId;
|
|
151
147
|
private withoutKey;
|
|
@@ -8,11 +8,13 @@ type NavigationVerticalType = 'sidebar' | 'dockbar';
|
|
|
8
8
|
type NavigationHorizontalType = 'navbar' | 'flyout';
|
|
9
9
|
type NavigationType = NavigationVerticalType | NavigationHorizontalType;
|
|
10
10
|
type NavigationCollapseTree = 'stairs' | 'straight';
|
|
11
|
-
type
|
|
11
|
+
type NavigationAppearance = 'flat' | 'border-rail';
|
|
12
12
|
type NavigationVerticalPosition = 'left' | 'right';
|
|
13
13
|
type NavigationHorizontalPosition = 'top' | 'bottom';
|
|
14
14
|
type NavigationPosition = NavigationVerticalPosition | NavigationHorizontalPosition;
|
|
15
15
|
type NavigationFlyoutIconPosition = 'start' | 'end';
|
|
16
|
+
/** Bentuk visual tombol trigger flyout: `button` (pil), `link` (gaya tautan), `plain` (ghost). */
|
|
17
|
+
type NavigationFlyoutTriggerVariant = 'button' | 'link' | 'plain';
|
|
16
18
|
type NavigationDockbarMode = 'drawer' | 'sticky';
|
|
17
19
|
interface NavigationRegisterInput {
|
|
18
20
|
readonly id: string;
|
|
@@ -122,7 +124,7 @@ interface NavigationTypeConfig {
|
|
|
122
124
|
readonly dockbarMode?: Signal<NavigationDockbarMode | null>;
|
|
123
125
|
readonly sidebarCollapse?: Signal<boolean>;
|
|
124
126
|
readonly previewExpanded?: Signal<boolean>;
|
|
125
|
-
readonly typeStyle?: Signal<
|
|
127
|
+
readonly typeStyle?: Signal<NavigationAppearance>;
|
|
126
128
|
readonly flyoutLabel?: Signal<string>;
|
|
127
129
|
/** Nama Material Symbols untuk trigger flyout; `null` = tanpa ikon (label saja). */
|
|
128
130
|
readonly flyoutIcon?: Signal<string | null>;
|
|
@@ -130,6 +132,12 @@ interface NavigationTypeConfig {
|
|
|
130
132
|
readonly flyoutIconOnly?: Signal<boolean>;
|
|
131
133
|
/** Penempatan ikon relatif terhadap label trigger flyout. */
|
|
132
134
|
readonly flyoutIconPosition?: Signal<NavigationFlyoutIconPosition>;
|
|
135
|
+
/** Bentuk visual tombol trigger flyout: `button` (pil) | `link` | `plain` (ghost). */
|
|
136
|
+
readonly flyoutTriggerVariant?: Signal<NavigationFlyoutTriggerVariant>;
|
|
137
|
+
/** Trigger flyout mengambang (`fixed`) alih-alih mengalir di dalam bar/div. */
|
|
138
|
+
readonly flyoutTriggerFloating?: Signal<boolean>;
|
|
139
|
+
/** Kelas Tailwind tambahan untuk host trigger flyout (posisi pojok floating / override wrapper). */
|
|
140
|
+
readonly flyoutTriggerClass?: Signal<string>;
|
|
133
141
|
}
|
|
134
142
|
|
|
135
143
|
interface NavigationShellContext {
|
|
@@ -158,7 +166,6 @@ interface NavigationShellContext {
|
|
|
158
166
|
declare class NavigationContainerComponent implements NavigationShellContext {
|
|
159
167
|
readonly navId: _angular_core.InputSignal<string>;
|
|
160
168
|
readonly data: _angular_core.InputSignal<readonly NavigationItem[]>;
|
|
161
|
-
readonly items: _angular_core.InputSignal<readonly NavigationItem[]>;
|
|
162
169
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
163
170
|
readonly compact: _angular_core.InputSignal<boolean>;
|
|
164
171
|
readonly collapseTree: _angular_core.InputSignal<NavigationCollapseTree>;
|
|
@@ -181,11 +188,14 @@ declare class NavigationContainerComponent implements NavigationShellContext {
|
|
|
181
188
|
private readonly dockbarModePreference;
|
|
182
189
|
private readonly sidebarCollapse;
|
|
183
190
|
private readonly previewExpanded;
|
|
184
|
-
readonly typeStyle: _angular_core.Signal<_ojiepermana_angular_navigation.
|
|
191
|
+
readonly typeStyle: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationAppearance>;
|
|
185
192
|
readonly flyoutLabel: _angular_core.Signal<string>;
|
|
186
193
|
readonly flyoutIcon: _angular_core.Signal<string | null>;
|
|
187
194
|
readonly flyoutIconOnly: _angular_core.Signal<boolean>;
|
|
188
195
|
readonly flyoutIconPosition: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationFlyoutIconPosition>;
|
|
196
|
+
readonly flyoutTriggerVariant: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationFlyoutTriggerVariant>;
|
|
197
|
+
readonly flyoutTriggerFloating: _angular_core.Signal<boolean>;
|
|
198
|
+
readonly flyoutTriggerClass: _angular_core.Signal<string>;
|
|
189
199
|
private readonly controller;
|
|
190
200
|
readonly iconTemplate: _angular_core.Signal<NavigationIconDirective | undefined>;
|
|
191
201
|
readonly normalizedItems: _angular_core.Signal<readonly _ojiepermana_angular_navigation.NavigationNormalizedItem[]>;
|
|
@@ -209,7 +219,7 @@ declare class NavigationContainerComponent implements NavigationShellContext {
|
|
|
209
219
|
toggleCollapsed(): void;
|
|
210
220
|
protected setHoverPreview(value: boolean): void;
|
|
211
221
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationContainerComponent, never>;
|
|
212
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationContainerComponent, "Navigation", never, { "navId": { "alias": "id"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "
|
|
222
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationContainerComponent, "Navigation", never, { "navId": { "alias": "id"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "collapseTree": { "alias": "collapse-tree"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "itemClass": { "alias": "itemClass"; "required": false; "isSignal": true; }; "groupClass": { "alias": "nav-group-class"; "required": false; "isSignal": true; }; "activeIds": { "alias": "activeIds"; "required": false; "isSignal": true; }; "activeUrl": { "alias": "activeUrl"; "required": false; "isSignal": true; }; "openedIds": { "alias": "openedIds"; "required": false; "isSignal": true; }; }, { "openedIds": "openedIdsChange"; "itemSelected": "itemSelected"; }, ["iconTemplate"], ["*"], true, never>;
|
|
213
223
|
}
|
|
214
224
|
|
|
215
225
|
/**
|
|
@@ -222,7 +232,7 @@ declare class NavigationContentComponent {
|
|
|
222
232
|
readonly class: _angular_core.InputSignal<string>;
|
|
223
233
|
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
224
234
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationContentComponent, never>;
|
|
225
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationContentComponent, "NavigationContent", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never,
|
|
235
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationContentComponent, "NavigationContent", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["NavigationHeader", "NavigationFooter"], true, never>;
|
|
226
236
|
}
|
|
227
237
|
|
|
228
238
|
declare class NavigationFooterComponent {
|
|
@@ -244,7 +254,13 @@ declare class NavigationHeaderComponent {
|
|
|
244
254
|
protected readonly showToggle: _angular_core.Signal<boolean>;
|
|
245
255
|
protected readonly toggleAriaLabel: _angular_core.Signal<"Expand navigation" | "Collapse navigation">;
|
|
246
256
|
protected readonly toggleIconName: _angular_core.Signal<"left_panel_open" | "left_panel_close">;
|
|
247
|
-
|
|
257
|
+
/**
|
|
258
|
+
* Baris isi header. Saat collapsed/dockbar (vertical) isi (inisial/ikon) dipusatkan di tengah
|
|
259
|
+
* rail agar simetris dengan ikon nav-item di bawahnya (yang juga center di rail); selain itu kiri
|
|
260
|
+
* dengan padding `px-3`.
|
|
261
|
+
*/
|
|
262
|
+
protected readonly rowClasses: _angular_core.Signal<string>;
|
|
263
|
+
protected readonly contentClasses: _angular_core.Signal<"flex min-w-0 items-center gap-3" | "flex min-w-0 items-center justify-center" | "flex min-w-0 flex-1 items-center gap-3">;
|
|
248
264
|
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
249
265
|
protected toggleCollapsed(): void;
|
|
250
266
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationHeaderComponent, never>;
|
|
@@ -303,7 +319,7 @@ declare class NavigationNavbarComponent {
|
|
|
303
319
|
private readonly destroyRef;
|
|
304
320
|
/** Posisi bar terhadap konten layout: `top` (default) atau `bottom` — panel grid membuka ke arah sebaliknya. */
|
|
305
321
|
readonly position: _angular_core.InputSignal<NavigationHorizontalPosition | null>;
|
|
306
|
-
readonly typeStyle: _angular_core.InputSignal<
|
|
322
|
+
readonly typeStyle: _angular_core.InputSignal<NavigationAppearance>;
|
|
307
323
|
readonly class: _angular_core.InputSignal<string>;
|
|
308
324
|
protected readonly headerSlot: _angular_core.Signal<NavigationHeaderComponent | undefined>;
|
|
309
325
|
protected readonly contentSlot: _angular_core.Signal<NavigationContentComponent | undefined>;
|
|
@@ -311,7 +327,7 @@ declare class NavigationNavbarComponent {
|
|
|
311
327
|
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
312
328
|
constructor();
|
|
313
329
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationNavbarComponent, never>;
|
|
314
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationNavbarComponent, "NavigationNavbar", never, { "position": { "alias": "nav-position"; "required": false; "isSignal": true; }; "typeStyle": { "alias": "nav-
|
|
330
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationNavbarComponent, "NavigationNavbar", never, { "position": { "alias": "nav-position"; "required": false; "isSignal": true; }; "typeStyle": { "alias": "nav-appearance"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, ["headerSlot", "contentSlot", "footerSlot"], ["NavigationHeader", "NavigationContent", "NavigationFooter"], true, never>;
|
|
315
331
|
}
|
|
316
332
|
|
|
317
333
|
/**
|
|
@@ -329,17 +345,28 @@ declare class NavigationFlyoutComponent {
|
|
|
329
345
|
readonly iconOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
330
346
|
/** Penempatan ikon relatif terhadap label: `start` (default) atau `end`. */
|
|
331
347
|
readonly iconPosition: _angular_core.InputSignal<NavigationFlyoutIconPosition>;
|
|
348
|
+
/** Bentuk visual tombol trigger: `button` (pil, default) | `link` | `plain` (ghost). */
|
|
349
|
+
readonly triggerVariant: _angular_core.InputSignal<NavigationFlyoutTriggerVariant>;
|
|
350
|
+
/**
|
|
351
|
+
* Trigger mengambang (`fixed`) alih-alih mengalir di dalam bar/div. Default pojok kanan-atas;
|
|
352
|
+
* pakai `trigger-class` untuk pindah pojok (mis. `bottom-6 right-6 top-auto`).
|
|
353
|
+
*
|
|
354
|
+
* Catatan: `position: fixed` ber-anchor ke viewport HANYA bila tak ada ancestor pembentuk
|
|
355
|
+
* containing block. Di dalam `<Layout>` (frame-nya memakai `backdrop-blur`), trigger ber-anchor
|
|
356
|
+
* ke kotak konten frame (bukan viewport sebenarnya) dan bisa ter-clip oleh frame `overflow-hidden`.
|
|
357
|
+
* Untuk floating sebenar-viewport, tempatkan `<Navigation>` flyout di luar frame `<Layout>`.
|
|
358
|
+
*/
|
|
359
|
+
readonly triggerFloating: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
360
|
+
/** Kelas Tailwind untuk host trigger (posisi pojok floating / styling wrapper saat in-flow). */
|
|
361
|
+
readonly triggerClass: _angular_core.InputSignal<string>;
|
|
332
362
|
/** Posisi bar terhadap konten layout: `top` (default) atau `bottom` — panel membuka ke arah sebaliknya. */
|
|
333
363
|
readonly position: _angular_core.InputSignal<NavigationHorizontalPosition | null>;
|
|
334
|
-
readonly typeStyle: _angular_core.InputSignal<
|
|
364
|
+
readonly typeStyle: _angular_core.InputSignal<NavigationAppearance>;
|
|
335
365
|
readonly class: _angular_core.InputSignal<string>;
|
|
336
|
-
protected readonly headerSlot: _angular_core.Signal<NavigationHeaderComponent | undefined>;
|
|
337
|
-
protected readonly contentSlot: _angular_core.Signal<NavigationContentComponent | undefined>;
|
|
338
|
-
protected readonly footerSlot: _angular_core.Signal<NavigationFooterComponent | undefined>;
|
|
339
366
|
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
340
367
|
constructor();
|
|
341
368
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationFlyoutComponent, never>;
|
|
342
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationFlyoutComponent, "NavigationFlyout", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "icon-only"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "icon-position"; "required": false; "isSignal": true; }; "
|
|
369
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationFlyoutComponent, "NavigationFlyout", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "icon-only"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "icon-position"; "required": false; "isSignal": true; }; "triggerVariant": { "alias": "trigger-variant"; "required": false; "isSignal": true; }; "triggerFloating": { "alias": "trigger-floating"; "required": false; "isSignal": true; }; "triggerClass": { "alias": "trigger-class"; "required": false; "isSignal": true; }; "position": { "alias": "nav-position"; "required": false; "isSignal": true; }; "typeStyle": { "alias": "nav-appearance"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["NavigationHeader", "NavigationFooter"], true, never>;
|
|
343
370
|
}
|
|
344
371
|
|
|
345
372
|
declare class NavigationCollapseRootDirective {
|
|
@@ -360,5 +387,110 @@ declare class NavigationCollapseExpandedDirective {
|
|
|
360
387
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavigationCollapseExpandedDirective, "[NavigationCollapseExpanded]", never, {}, {}, never, never, true, never>;
|
|
361
388
|
}
|
|
362
389
|
|
|
363
|
-
|
|
364
|
-
|
|
390
|
+
/**
|
|
391
|
+
* Slot aksi di sisi kanan `NavigationFooter`. Selalu didorong ke kanan (`ml-auto`),
|
|
392
|
+
* rata tengah vertikal, dengan jarak antar-child otomatis (`gap`). Isi bebas dengan
|
|
393
|
+
* ikon, button, atau teks — mis. tombol logout.
|
|
394
|
+
*
|
|
395
|
+
* Otomatis disembunyikan saat sidebar vertical sedang collapsed (rail icon-only)
|
|
396
|
+
* agar tidak overflow; konsisten dengan `NavigationFooterTitle`.
|
|
397
|
+
*/
|
|
398
|
+
declare class NavigationFooterActionComponent {
|
|
399
|
+
private readonly shell;
|
|
400
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
401
|
+
protected readonly collapsed: _angular_core.Signal<boolean>;
|
|
402
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
403
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationFooterActionComponent, never>;
|
|
404
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationFooterActionComponent, "NavigationFooterAction", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* Blok avatar/inisial untuk slot `NavigationFooter` (profil user). Sama seperti
|
|
409
|
+
* `NavigationHeaderInitial` tetapi default-nya bulat (rounded-full) sesuai
|
|
410
|
+
* konvensi avatar user. Consumer cukup memberi `name`; inisial diturunkan
|
|
411
|
+
* otomatis. Beri `src` untuk foto, `icon` untuk material symbol, atau `initials`
|
|
412
|
+
* untuk override.
|
|
413
|
+
*
|
|
414
|
+
* Tetap tampil saat sidebar collapsed; pasangannya `NavigationFooterTitle` yang
|
|
415
|
+
* menyembunyikan diri.
|
|
416
|
+
*/
|
|
417
|
+
declare class NavigationFooterInitialComponent {
|
|
418
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
419
|
+
readonly src: _angular_core.InputSignal<string | null>;
|
|
420
|
+
readonly initials: _angular_core.InputSignal<string | null>;
|
|
421
|
+
readonly icon: _angular_core.InputSignal<string | null>;
|
|
422
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
423
|
+
protected readonly resolvedInitials: _angular_core.Signal<string>;
|
|
424
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
425
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationFooterInitialComponent, never>;
|
|
426
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationFooterInitialComponent, "NavigationFooterInitial", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* Judul + subjudul untuk slot `NavigationFooter` (mis. nama + email user).
|
|
431
|
+
* Otomatis disembunyikan saat sidebar vertical sedang collapsed (rail icon-only)
|
|
432
|
+
* dengan membaca `NAVIGATION_SHELL`.
|
|
433
|
+
*/
|
|
434
|
+
declare class NavigationFooterTitleComponent {
|
|
435
|
+
private readonly shell;
|
|
436
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
437
|
+
readonly subtitle: _angular_core.InputSignal<string | null>;
|
|
438
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
439
|
+
protected readonly collapsed: _angular_core.Signal<boolean>;
|
|
440
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
441
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationFooterTitleComponent, never>;
|
|
442
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationFooterTitleComponent, "NavigationFooterTitle", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Blok avatar/inisial untuk slot `NavigationHeader` (brand/logo). Consumer cukup
|
|
447
|
+
* memberi `name`; inisial diturunkan otomatis ("Ojie Permana" → "OP"). Beri `src`
|
|
448
|
+
* untuk gambar, `icon` (material symbol) sebagai ganti inisial, atau `initials`
|
|
449
|
+
* untuk override manual.
|
|
450
|
+
*
|
|
451
|
+
* Selalu tampil baik saat sidebar expanded maupun collapsed karena ukurannya muat
|
|
452
|
+
* di rail icon-only — pasangannya, `NavigationHeaderTitle`, yang menyembunyikan
|
|
453
|
+
* diri saat collapsed.
|
|
454
|
+
*/
|
|
455
|
+
declare class NavigationHeaderInitialComponent {
|
|
456
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
457
|
+
readonly src: _angular_core.InputSignal<string | null>;
|
|
458
|
+
readonly initials: _angular_core.InputSignal<string | null>;
|
|
459
|
+
readonly icon: _angular_core.InputSignal<string | null>;
|
|
460
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
461
|
+
protected readonly resolvedInitials: _angular_core.Signal<string>;
|
|
462
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
463
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationHeaderInitialComponent, never>;
|
|
464
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationHeaderInitialComponent, "NavigationHeaderInitial", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Judul + subjudul untuk slot `NavigationHeader`. Otomatis disembunyikan saat
|
|
469
|
+
* sidebar vertical sedang collapsed (rail icon-only) dengan membaca
|
|
470
|
+
* `NAVIGATION_SHELL` — consumer tidak perlu mengelola state collapse sendiri.
|
|
471
|
+
*/
|
|
472
|
+
declare class NavigationHeaderTitleComponent {
|
|
473
|
+
private readonly shell;
|
|
474
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
475
|
+
readonly subtitle: _angular_core.InputSignal<string | null>;
|
|
476
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
477
|
+
protected readonly collapsed: _angular_core.Signal<boolean>;
|
|
478
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
479
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationHeaderTitleComponent, never>;
|
|
480
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationHeaderTitleComponent, "NavigationHeaderTitle", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Turunkan inisial ringkas dari sebuah nama untuk avatar fallback.
|
|
485
|
+
*
|
|
486
|
+
* "Ojie Permana" → "OP"
|
|
487
|
+
* "Ojiepermana" → "OJ"
|
|
488
|
+
* "" → ""
|
|
489
|
+
*
|
|
490
|
+
* Mengambil huruf depan kata pertama dan kata terakhir; bila hanya satu kata,
|
|
491
|
+
* memakai dua huruf pertamanya.
|
|
492
|
+
*/
|
|
493
|
+
declare function deriveNavigationInitials(name: string): string;
|
|
494
|
+
|
|
495
|
+
export { NavigationCollapseExpandedDirective, NavigationCollapseRootDirective, NavigationContainerComponent, NavigationContentComponent, NavigationDockbarComponent, NavigationFlyoutComponent, NavigationFooterActionComponent, NavigationFooterComponent, NavigationFooterInitialComponent, NavigationFooterTitleComponent, NavigationHeaderComponent, NavigationHeaderInitialComponent, NavigationHeaderTitleComponent, NavigationIconDirective, NavigationNavbarComponent, NavigationSidebarComponent, deriveNavigationInitials, normalizeUiNavItems };
|
|
496
|
+
export type { NavigationActionHandler, NavigationAppearance, NavigationCollapseTree, NavigationDockbarMode, NavigationFlyoutIconPosition, NavigationFlyoutTriggerVariant, NavigationHorizontalPosition, NavigationHorizontalType, NavigationIconContext, NavigationItem, NavigationItemBadge, NavigationItemClasses, NavigationItemType, NavigationLink, NavigationNormalizedItem, NavigationNormalizedItemType, NavigationOrientation, NavigationPosition, NavigationRegisterInput, NavigationSelection, NavigationState, NavigationType, NavigationTypeConfig, NavigationVerticalPosition, NavigationVerticalType, NavigationVisibilityHandler };
|