@ojiepermana/angular-navigation 22.0.27
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 +231 -0
- package/fesm2022/ojiepermana-angular-navigation-service.mjs +510 -0
- package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-navigation.mjs +3568 -0
- package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -0
- package/package.json +43 -0
- package/types/ojiepermana-angular-navigation-service.d.ts +163 -0
- package/types/ojiepermana-angular-navigation.d.ts +364 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal } from '@angular/core';
|
|
3
|
+
import { UrlTree, Params, QueryParamsHandling, IsActiveMatchOptions } from '@angular/router';
|
|
4
|
+
|
|
5
|
+
type NavigationOrientation = 'vertical' | 'horizontal';
|
|
6
|
+
type NavigationVerticalType = 'sidebar' | 'dockbar';
|
|
7
|
+
type NavigationHorizontalType = 'navbar' | 'flyout';
|
|
8
|
+
type NavigationType = NavigationVerticalType | NavigationHorizontalType;
|
|
9
|
+
type NavigationVerticalPosition = 'left' | 'right';
|
|
10
|
+
type NavigationHorizontalPosition = 'top' | 'bottom';
|
|
11
|
+
type NavigationPosition = NavigationVerticalPosition | NavigationHorizontalPosition;
|
|
12
|
+
type NavigationDockbarMode = 'drawer' | 'sticky';
|
|
13
|
+
type NavigationLink = string | readonly unknown[] | UrlTree;
|
|
14
|
+
interface NavigationItem {
|
|
15
|
+
readonly id?: string;
|
|
16
|
+
readonly title?: string;
|
|
17
|
+
readonly subtitle?: string;
|
|
18
|
+
readonly active?: boolean;
|
|
19
|
+
readonly disabled?: boolean;
|
|
20
|
+
readonly tooltip?: string;
|
|
21
|
+
readonly classes?: {
|
|
22
|
+
readonly title?: string;
|
|
23
|
+
readonly subtitle?: string;
|
|
24
|
+
readonly icon?: string;
|
|
25
|
+
readonly wrapper?: string;
|
|
26
|
+
};
|
|
27
|
+
readonly icon?: string;
|
|
28
|
+
readonly link?: NavigationLink;
|
|
29
|
+
readonly href?: string;
|
|
30
|
+
readonly fragment?: string;
|
|
31
|
+
readonly preserveFragment?: boolean;
|
|
32
|
+
readonly queryParams?: Params | null;
|
|
33
|
+
readonly queryParamsHandling?: QueryParamsHandling | null;
|
|
34
|
+
readonly externalLink?: boolean;
|
|
35
|
+
readonly target?: '_blank' | '_self' | '_parent' | '_top' | string;
|
|
36
|
+
readonly rel?: string;
|
|
37
|
+
readonly exactMatch?: boolean;
|
|
38
|
+
readonly isActiveMatchOptions?: IsActiveMatchOptions;
|
|
39
|
+
readonly children?: readonly NavigationItem[];
|
|
40
|
+
}
|
|
41
|
+
interface NavigationNormalizedItem extends Omit<NavigationItem, 'children'> {
|
|
42
|
+
readonly key: string;
|
|
43
|
+
readonly stateId: string;
|
|
44
|
+
readonly panelId: string;
|
|
45
|
+
readonly type: 'item' | 'group' | 'collapsible' | 'mega' | 'divider' | 'spacer';
|
|
46
|
+
readonly source: NavigationItem;
|
|
47
|
+
readonly children: readonly NavigationNormalizedItem[];
|
|
48
|
+
}
|
|
49
|
+
interface NavigationRegisterInput {
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly orientation: NavigationOrientation;
|
|
52
|
+
readonly type?: NavigationType | null;
|
|
53
|
+
readonly position?: NavigationPosition | null;
|
|
54
|
+
readonly collapsed?: boolean | null;
|
|
55
|
+
readonly dockbarMode?: NavigationDockbarMode | null;
|
|
56
|
+
}
|
|
57
|
+
interface NavigationState {
|
|
58
|
+
readonly id: string;
|
|
59
|
+
readonly orientation: NavigationOrientation;
|
|
60
|
+
readonly type: NavigationType;
|
|
61
|
+
readonly position: NavigationPosition;
|
|
62
|
+
readonly collapsed: boolean;
|
|
63
|
+
readonly dockbarMode: NavigationDockbarMode;
|
|
64
|
+
}
|
|
65
|
+
interface NavigationIconContext {
|
|
66
|
+
readonly $implicit: string;
|
|
67
|
+
readonly icon: string;
|
|
68
|
+
readonly item: NavigationItem;
|
|
69
|
+
readonly active: boolean;
|
|
70
|
+
readonly orientation: NavigationOrientation;
|
|
71
|
+
readonly level: number;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
declare class NavigationService {
|
|
75
|
+
private readonly documentRef;
|
|
76
|
+
private readonly router;
|
|
77
|
+
private readonly routerUrl;
|
|
78
|
+
private readonly states;
|
|
79
|
+
private readonly openPanelKeys;
|
|
80
|
+
private readonly drawerOpenState;
|
|
81
|
+
/** id navigasi → token owner instance, untuk menjaga setiap id hanya dipakai satu <Navigation> hidup. */
|
|
82
|
+
private readonly idOwners;
|
|
83
|
+
readonly openPanelKey: Signal<string | null>;
|
|
84
|
+
readonly exactMatchOptions: IsActiveMatchOptions;
|
|
85
|
+
readonly subsetMatchOptions: IsActiveMatchOptions;
|
|
86
|
+
constructor();
|
|
87
|
+
register(input: NavigationRegisterInput, owner?: object): NavigationState;
|
|
88
|
+
unregister(id: string, owner?: object): void;
|
|
89
|
+
/**
|
|
90
|
+
* Validasi keunikan id navigasi: setiap instance `<Navigation>` wajib memakai id unik.
|
|
91
|
+
* `owner` adalah token unik per instance — klaim ulang oleh owner yang sama (mis. perubahan
|
|
92
|
+
* input) diizinkan, tetapi dua instance hidup dengan id sama dianggap salah konfigurasi dan
|
|
93
|
+
* melempar error di mode dev. Pemanggil tanpa owner (akses langsung service) dilewati.
|
|
94
|
+
*/
|
|
95
|
+
private claimId;
|
|
96
|
+
private releaseId;
|
|
97
|
+
state(id: string): Signal<NavigationState | null>;
|
|
98
|
+
currentState(id: string): NavigationState | null;
|
|
99
|
+
currentPanelKey(id: string): string | null;
|
|
100
|
+
update(id: string, patch: Partial<NavigationRegisterInput>): NavigationState;
|
|
101
|
+
setType(id: string, type: NavigationType): NavigationState;
|
|
102
|
+
setPosition(id: string, position: NavigationPosition): NavigationState;
|
|
103
|
+
setCollapsed(id: string, collapsed: boolean): NavigationState;
|
|
104
|
+
toggleCollapsed(id: string): NavigationState;
|
|
105
|
+
setDockbarMode(id: string, mode: NavigationDockbarMode): NavigationState;
|
|
106
|
+
isRouterItem(item: NavigationNormalizedItem): boolean;
|
|
107
|
+
hrefFor(item: NavigationNormalizedItem): string | null;
|
|
108
|
+
relFor(item: NavigationNormalizedItem): string | null;
|
|
109
|
+
routerLinkActiveOptions(item: NavigationNormalizedItem): IsActiveMatchOptions;
|
|
110
|
+
itemRole(orientation: NavigationOrientation, level: number): 'menuitem' | null;
|
|
111
|
+
compactLabel(item: NavigationNormalizedItem, compact: boolean): string | null;
|
|
112
|
+
titleFor(item: NavigationNormalizedItem, compact: boolean): string | null;
|
|
113
|
+
compactFallback(item: NavigationNormalizedItem): string;
|
|
114
|
+
iconContext(item: NavigationNormalizedItem, active: boolean, level: number, orientation: NavigationOrientation): NavigationIconContext;
|
|
115
|
+
isItemActive(item: NavigationNormalizedItem, activeIds: ReadonlySet<string>, explicitActiveUrl: string | null): boolean;
|
|
116
|
+
isPanelOpen(navIdOrItem: string | NavigationNormalizedItem, item?: NavigationNormalizedItem): boolean;
|
|
117
|
+
openPanel(navIdOrItem: string | NavigationNormalizedItem, item?: NavigationNormalizedItem): void;
|
|
118
|
+
togglePanel(navIdOrItem: string | NavigationNormalizedItem, item?: NavigationNormalizedItem): void;
|
|
119
|
+
closePanel(id?: string): void;
|
|
120
|
+
dockbarGroups(items: readonly NavigationNormalizedItem[]): readonly NavigationNormalizedItem[];
|
|
121
|
+
resolveDockbarGroup(id: string, items: readonly NavigationNormalizedItem[], mode: NavigationDockbarMode, activeIds: ReadonlySet<string>, activeUrl: string | null): NavigationNormalizedItem | null;
|
|
122
|
+
isDrawerOpen(id: string): boolean;
|
|
123
|
+
openDrawer(id: string): void;
|
|
124
|
+
toggleDrawer(id: string): void;
|
|
125
|
+
closeDrawer(id: string): void;
|
|
126
|
+
private matchesActiveUrl;
|
|
127
|
+
private resolveState;
|
|
128
|
+
private resolveType;
|
|
129
|
+
private resolvePosition;
|
|
130
|
+
private resolveCollapsed;
|
|
131
|
+
private resolveDockbarMode;
|
|
132
|
+
private persistState;
|
|
133
|
+
private defaultType;
|
|
134
|
+
private cleanupLegacyStorage;
|
|
135
|
+
private storage;
|
|
136
|
+
private readStorage;
|
|
137
|
+
private readInstanceStorage;
|
|
138
|
+
private readPersistedTypeMode;
|
|
139
|
+
private writeStorage;
|
|
140
|
+
private removeStorage;
|
|
141
|
+
private clearInstanceStorage;
|
|
142
|
+
private migrateLegacyPersistedStorage;
|
|
143
|
+
private instanceStorageKey;
|
|
144
|
+
private persistedStorageKey;
|
|
145
|
+
private persistedTypeMode;
|
|
146
|
+
private resolveLegacyTypeMode;
|
|
147
|
+
private shouldPersistInstanceState;
|
|
148
|
+
private isLegacyInstanceStorageKey;
|
|
149
|
+
private isPersistedTypeMode;
|
|
150
|
+
private normalizeId;
|
|
151
|
+
private withoutKey;
|
|
152
|
+
private resolvePanelArgs;
|
|
153
|
+
private isTypeForOrientation;
|
|
154
|
+
private isVerticalType;
|
|
155
|
+
private isHorizontalType;
|
|
156
|
+
private isPositionForOrientation;
|
|
157
|
+
private isDockbarMode;
|
|
158
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationService, never>;
|
|
159
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NavigationService>;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export { NavigationService };
|
|
163
|
+
export type { NavigationDockbarMode, NavigationHorizontalPosition, NavigationHorizontalType, NavigationIconContext, NavigationItem, NavigationLink, NavigationNormalizedItem, NavigationOrientation, NavigationPosition, NavigationRegisterInput, NavigationState, NavigationType, NavigationVerticalPosition, NavigationVerticalType };
|
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import * as _ojiepermana_angular_navigation from '@ojiepermana/angular-navigation';
|
|
2
|
+
import * as _angular_core from '@angular/core';
|
|
3
|
+
import { TemplateRef, Signal } from '@angular/core';
|
|
4
|
+
import { UrlTree, Params, QueryParamsHandling, IsActiveMatchOptions } from '@angular/router';
|
|
5
|
+
|
|
6
|
+
type NavigationOrientation = 'vertical' | 'horizontal';
|
|
7
|
+
type NavigationVerticalType = 'sidebar' | 'dockbar';
|
|
8
|
+
type NavigationHorizontalType = 'navbar' | 'flyout';
|
|
9
|
+
type NavigationType = NavigationVerticalType | NavigationHorizontalType;
|
|
10
|
+
type NavigationCollapseTree = 'stairs' | 'straight';
|
|
11
|
+
type NavigationTypeStyle = 'default' | 'border-rail';
|
|
12
|
+
type NavigationVerticalPosition = 'left' | 'right';
|
|
13
|
+
type NavigationHorizontalPosition = 'top' | 'bottom';
|
|
14
|
+
type NavigationPosition = NavigationVerticalPosition | NavigationHorizontalPosition;
|
|
15
|
+
type NavigationFlyoutIconPosition = 'start' | 'end';
|
|
16
|
+
type NavigationDockbarMode = 'drawer' | 'sticky';
|
|
17
|
+
interface NavigationRegisterInput {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly orientation: NavigationOrientation;
|
|
20
|
+
readonly type?: NavigationType | null;
|
|
21
|
+
readonly position?: NavigationPosition | null;
|
|
22
|
+
readonly collapsed?: boolean | null;
|
|
23
|
+
readonly dockbarMode?: NavigationDockbarMode | null;
|
|
24
|
+
}
|
|
25
|
+
interface NavigationState {
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly orientation: NavigationOrientation;
|
|
28
|
+
readonly type: NavigationType;
|
|
29
|
+
readonly position: NavigationPosition;
|
|
30
|
+
readonly collapsed: boolean;
|
|
31
|
+
readonly dockbarMode: NavigationDockbarMode;
|
|
32
|
+
}
|
|
33
|
+
type NavigationItemType = 'item' | 'basic' | 'aside' | 'group' | 'collapsible' | 'collapsable' | 'mega' | 'divider' | 'spacer';
|
|
34
|
+
type NavigationNormalizedItemType = 'item' | 'group' | 'collapsible' | 'mega' | 'divider' | 'spacer';
|
|
35
|
+
type NavigationLink = string | readonly unknown[] | UrlTree;
|
|
36
|
+
interface NavigationItemClasses {
|
|
37
|
+
readonly title?: string;
|
|
38
|
+
readonly subtitle?: string;
|
|
39
|
+
readonly icon?: string;
|
|
40
|
+
/** Kelas untuk elemen klik (tombol/anchor) item. */
|
|
41
|
+
readonly wrapper?: string;
|
|
42
|
+
/** Kelas untuk container `<li>` group horizontal (flyout tab / navbar group). Per-group. */
|
|
43
|
+
readonly container?: string;
|
|
44
|
+
}
|
|
45
|
+
interface NavigationItemBadge {
|
|
46
|
+
readonly title?: string;
|
|
47
|
+
readonly classes?: string;
|
|
48
|
+
}
|
|
49
|
+
type NavigationVisibilityHandler = (item: NavigationItem) => boolean;
|
|
50
|
+
type NavigationActionHandler = (item: NavigationItem) => void;
|
|
51
|
+
interface NavigationItem {
|
|
52
|
+
readonly id?: string;
|
|
53
|
+
readonly type?: NavigationItemType;
|
|
54
|
+
readonly title?: string;
|
|
55
|
+
readonly subtitle?: string;
|
|
56
|
+
readonly active?: boolean;
|
|
57
|
+
readonly disabled?: boolean;
|
|
58
|
+
readonly tooltip?: string;
|
|
59
|
+
readonly classes?: NavigationItemClasses;
|
|
60
|
+
readonly icon?: string;
|
|
61
|
+
readonly badge?: NavigationItemBadge;
|
|
62
|
+
readonly meta?: Record<string, unknown>;
|
|
63
|
+
readonly isHidden?: NavigationVisibilityHandler;
|
|
64
|
+
readonly link?: NavigationLink;
|
|
65
|
+
readonly href?: string;
|
|
66
|
+
readonly fragment?: string;
|
|
67
|
+
readonly preserveFragment?: boolean;
|
|
68
|
+
readonly queryParams?: Params | null;
|
|
69
|
+
readonly queryParamsHandling?: QueryParamsHandling | null;
|
|
70
|
+
readonly externalLink?: boolean;
|
|
71
|
+
readonly target?: '_blank' | '_self' | '_parent' | '_top' | string;
|
|
72
|
+
readonly rel?: string;
|
|
73
|
+
readonly exactMatch?: boolean;
|
|
74
|
+
readonly isActiveMatchOptions?: IsActiveMatchOptions;
|
|
75
|
+
readonly action?: NavigationActionHandler;
|
|
76
|
+
readonly columns?: number;
|
|
77
|
+
readonly children?: readonly NavigationItem[];
|
|
78
|
+
}
|
|
79
|
+
interface NavigationNormalizedItem extends Omit<NavigationItem, 'children' | 'type'> {
|
|
80
|
+
readonly key: string;
|
|
81
|
+
readonly stateId: string;
|
|
82
|
+
readonly panelId: string;
|
|
83
|
+
readonly type: NavigationNormalizedItemType;
|
|
84
|
+
readonly source: NavigationItem;
|
|
85
|
+
readonly children: readonly NavigationNormalizedItem[];
|
|
86
|
+
}
|
|
87
|
+
interface NavigationSelection {
|
|
88
|
+
readonly item: NavigationItem;
|
|
89
|
+
readonly key: string;
|
|
90
|
+
readonly type: NavigationNormalizedItemType;
|
|
91
|
+
readonly link?: NavigationLink;
|
|
92
|
+
readonly external: boolean;
|
|
93
|
+
}
|
|
94
|
+
interface NavigationIconContext {
|
|
95
|
+
readonly $implicit: string;
|
|
96
|
+
readonly icon: string;
|
|
97
|
+
readonly item: NavigationItem;
|
|
98
|
+
readonly active: boolean;
|
|
99
|
+
readonly orientation: NavigationOrientation;
|
|
100
|
+
readonly level: number;
|
|
101
|
+
}
|
|
102
|
+
declare function normalizeUiNavItems(items: readonly NavigationItem[]): readonly NavigationNormalizedItem[];
|
|
103
|
+
|
|
104
|
+
declare class NavigationIconDirective {
|
|
105
|
+
readonly template: TemplateRef<NavigationIconContext>;
|
|
106
|
+
static ngTemplateContextGuard(_directive: NavigationIconDirective, context: unknown): context is NavigationIconContext;
|
|
107
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationIconDirective, never>;
|
|
108
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavigationIconDirective, "ng-template[NavigationIcon]", never, {}, {}, never, never, true, never>;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Konfigurasi yang didaftarkan komponen type (`<NavigationSidebar>`,
|
|
113
|
+
* `<NavigationDockbar>`, `<NavigationNavbar>`, `<NavigationFlyout>`) ke
|
|
114
|
+
* `<Navigation>` induknya. Satu `<Navigation>` hanya boleh memuat satu
|
|
115
|
+
* type hidup pada satu waktu.
|
|
116
|
+
*/
|
|
117
|
+
interface NavigationTypeConfig {
|
|
118
|
+
readonly orientation: NavigationOrientation;
|
|
119
|
+
readonly type: NavigationType;
|
|
120
|
+
readonly position?: Signal<NavigationPosition | null>;
|
|
121
|
+
readonly collapsed?: Signal<boolean | null>;
|
|
122
|
+
readonly dockbarMode?: Signal<NavigationDockbarMode | null>;
|
|
123
|
+
readonly sidebarCollapse?: Signal<boolean>;
|
|
124
|
+
readonly previewExpanded?: Signal<boolean>;
|
|
125
|
+
readonly typeStyle?: Signal<NavigationTypeStyle>;
|
|
126
|
+
readonly flyoutLabel?: Signal<string>;
|
|
127
|
+
/** Nama Material Symbols untuk trigger flyout; `null` = tanpa ikon (label saja). */
|
|
128
|
+
readonly flyoutIcon?: Signal<string | null>;
|
|
129
|
+
/** Trigger flyout hanya ikon — label pindah ke aria-label/title. */
|
|
130
|
+
readonly flyoutIconOnly?: Signal<boolean>;
|
|
131
|
+
/** Penempatan ikon relatif terhadap label trigger flyout. */
|
|
132
|
+
readonly flyoutIconPosition?: Signal<NavigationFlyoutIconPosition>;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
interface NavigationShellContext {
|
|
136
|
+
readonly state: Signal<NavigationState>;
|
|
137
|
+
readonly displayState: Signal<NavigationState>;
|
|
138
|
+
readonly collapseEnabled: Signal<boolean>;
|
|
139
|
+
toggleCollapsed(): void;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Container navigasi deklaratif. Type ditentukan oleh komponen anak:
|
|
144
|
+
*
|
|
145
|
+
* ```html
|
|
146
|
+
* <Navigation id="main" [data]="items">
|
|
147
|
+
* <NavigationSidebar>
|
|
148
|
+
* <NavigationHeader>…</NavigationHeader>
|
|
149
|
+
* <NavigationContent />
|
|
150
|
+
* <NavigationFooter>…</NavigationFooter>
|
|
151
|
+
* </NavigationSidebar>
|
|
152
|
+
* </Navigation>
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
155
|
+
* Header dan footer opsional; `NavigationContent` selalu dirender oleh
|
|
156
|
+
* type (default otomatis bila tidak diproyeksikan).
|
|
157
|
+
*/
|
|
158
|
+
declare class NavigationContainerComponent implements NavigationShellContext {
|
|
159
|
+
readonly navId: _angular_core.InputSignal<string>;
|
|
160
|
+
readonly data: _angular_core.InputSignal<readonly NavigationItem[]>;
|
|
161
|
+
readonly items: _angular_core.InputSignal<readonly NavigationItem[]>;
|
|
162
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
163
|
+
readonly compact: _angular_core.InputSignal<boolean>;
|
|
164
|
+
readonly collapseTree: _angular_core.InputSignal<NavigationCollapseTree>;
|
|
165
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
166
|
+
readonly itemClass: _angular_core.InputSignal<string>;
|
|
167
|
+
/** Kelas Tailwind untuk container `<li>` group horizontal (flyout tab / navbar group). */
|
|
168
|
+
readonly groupClass: _angular_core.InputSignal<string>;
|
|
169
|
+
readonly activeIds: _angular_core.InputSignal<ReadonlySet<string> | readonly string[] | null>;
|
|
170
|
+
readonly activeUrl: _angular_core.InputSignal<string | null>;
|
|
171
|
+
readonly openedIds: _angular_core.ModelSignal<readonly string[]>;
|
|
172
|
+
readonly itemSelected: _angular_core.OutputEmitterRef<NavigationSelection>;
|
|
173
|
+
private readonly nav;
|
|
174
|
+
private readonly hoverPreviewExpanded;
|
|
175
|
+
/** Konfigurasi type aktif yang didaftarkan wrapper anak (sidebar/dockbar/navbar/flyout). */
|
|
176
|
+
private readonly typeConfig;
|
|
177
|
+
private readonly orientationPreference;
|
|
178
|
+
private readonly typePreference;
|
|
179
|
+
private readonly positionPreference;
|
|
180
|
+
private readonly collapsedPreference;
|
|
181
|
+
private readonly dockbarModePreference;
|
|
182
|
+
private readonly sidebarCollapse;
|
|
183
|
+
private readonly previewExpanded;
|
|
184
|
+
readonly typeStyle: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationTypeStyle>;
|
|
185
|
+
readonly flyoutLabel: _angular_core.Signal<string>;
|
|
186
|
+
readonly flyoutIcon: _angular_core.Signal<string | null>;
|
|
187
|
+
readonly flyoutIconOnly: _angular_core.Signal<boolean>;
|
|
188
|
+
readonly flyoutIconPosition: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationFlyoutIconPosition>;
|
|
189
|
+
private readonly controller;
|
|
190
|
+
readonly iconTemplate: _angular_core.Signal<NavigationIconDirective | undefined>;
|
|
191
|
+
readonly normalizedItems: _angular_core.Signal<readonly _ojiepermana_angular_navigation.NavigationNormalizedItem[]>;
|
|
192
|
+
readonly resolvedState: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationState>;
|
|
193
|
+
readonly activeIdSet: _angular_core.Signal<ReadonlySet<string>>;
|
|
194
|
+
readonly previewRailExpanded: _angular_core.Signal<boolean>;
|
|
195
|
+
readonly previewRailOffset: _angular_core.Signal<"15rem" | "0px">;
|
|
196
|
+
readonly displayState: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationState>;
|
|
197
|
+
readonly dockbarAsideOpen: _angular_core.Signal<boolean>;
|
|
198
|
+
readonly collapseEnabled: _angular_core.Signal<boolean>;
|
|
199
|
+
/** Kelas shell yang dipakai host komponen type (eks `div` shell internal). */
|
|
200
|
+
readonly shellClasses: _angular_core.Signal<string>;
|
|
201
|
+
readonly state: _angular_core.Signal<_ojiepermana_angular_navigation.NavigationState>;
|
|
202
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
203
|
+
/**
|
|
204
|
+
* Dipanggil komponen type saat dibuat. Satu `<Navigation>` hanya boleh
|
|
205
|
+
* memuat satu type hidup — pendaftaran ganda dianggap salah konfigurasi.
|
|
206
|
+
*/
|
|
207
|
+
registerType(config: NavigationTypeConfig): void;
|
|
208
|
+
unregisterType(config: NavigationTypeConfig): void;
|
|
209
|
+
toggleCollapsed(): void;
|
|
210
|
+
protected setHoverPreview(value: boolean): void;
|
|
211
|
+
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; }; "items": { "alias": "items"; "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
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Area konten navigasi: merender daftar item sesuai type aktif dari
|
|
217
|
+
* `<Navigation>` induk. Selalu hadir di setiap type — komponen type
|
|
218
|
+
* merender default-nya bila consumer tidak memproyeksikan `<NavigationContent />`.
|
|
219
|
+
*/
|
|
220
|
+
declare class NavigationContentComponent {
|
|
221
|
+
protected readonly container: NavigationContainerComponent;
|
|
222
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
223
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
224
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationContentComponent, never>;
|
|
225
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationContentComponent, "NavigationContent", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
declare class NavigationFooterComponent {
|
|
229
|
+
private readonly shell;
|
|
230
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
231
|
+
protected readonly isHorizontal: _angular_core.Signal<boolean>;
|
|
232
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
233
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationFooterComponent, never>;
|
|
234
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationFooterComponent, "NavigationFooter", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
declare class NavigationHeaderComponent {
|
|
238
|
+
private readonly shell;
|
|
239
|
+
readonly toggle: _angular_core.InputSignal<boolean>;
|
|
240
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
241
|
+
protected readonly collapsed: _angular_core.Signal<boolean>;
|
|
242
|
+
protected readonly displayCollapsed: _angular_core.Signal<boolean>;
|
|
243
|
+
protected readonly isHorizontal: _angular_core.Signal<boolean>;
|
|
244
|
+
protected readonly showToggle: _angular_core.Signal<boolean>;
|
|
245
|
+
protected readonly toggleAriaLabel: _angular_core.Signal<"Expand navigation" | "Collapse navigation">;
|
|
246
|
+
protected readonly toggleIconName: _angular_core.Signal<"left_panel_open" | "left_panel_close">;
|
|
247
|
+
protected readonly contentClasses: _angular_core.Signal<"min-w-0" | "min-w-0 flex-1">;
|
|
248
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
249
|
+
protected toggleCollapsed(): void;
|
|
250
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationHeaderComponent, never>;
|
|
251
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationHeaderComponent, "NavigationHeader", never, { "toggle": { "alias": "toggle"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Type sidebar vertikal untuk `<Navigation>`. Slot `NavigationHeader` dan
|
|
256
|
+
* `NavigationFooter` opsional; `NavigationContent` selalu dirender (default
|
|
257
|
+
* otomatis bila tidak diproyeksikan).
|
|
258
|
+
*/
|
|
259
|
+
declare class NavigationSidebarComponent {
|
|
260
|
+
private readonly container;
|
|
261
|
+
private readonly destroyRef;
|
|
262
|
+
readonly position: _angular_core.InputSignal<NavigationVerticalPosition | null>;
|
|
263
|
+
readonly collapsed: _angular_core.InputSignal<boolean | null>;
|
|
264
|
+
readonly collapse: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
265
|
+
readonly previewExpanded: _angular_core.InputSignal<boolean>;
|
|
266
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
267
|
+
protected readonly headerSlot: _angular_core.Signal<NavigationHeaderComponent | undefined>;
|
|
268
|
+
protected readonly contentSlot: _angular_core.Signal<NavigationContentComponent | undefined>;
|
|
269
|
+
protected readonly footerSlot: _angular_core.Signal<NavigationFooterComponent | undefined>;
|
|
270
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
271
|
+
constructor();
|
|
272
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationSidebarComponent, never>;
|
|
273
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationSidebarComponent, "NavigationSidebar", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "collapse": { "alias": "nav-sidebar-collapse"; "required": false; "isSignal": true; }; "previewExpanded": { "alias": "previewExpanded"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, ["headerSlot", "contentSlot", "footerSlot"], ["NavigationHeader", "NavigationContent", "NavigationFooter"], true, never>;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Type dockbar vertikal (rail ikon + aside) untuk `<Navigation>`. Slot
|
|
278
|
+
* `NavigationHeader` dan `NavigationFooter` opsional; `NavigationContent`
|
|
279
|
+
* selalu dirender (default otomatis bila tidak diproyeksikan).
|
|
280
|
+
*/
|
|
281
|
+
declare class NavigationDockbarComponent {
|
|
282
|
+
private readonly container;
|
|
283
|
+
private readonly destroyRef;
|
|
284
|
+
readonly mode: _angular_core.InputSignal<NavigationDockbarMode | null>;
|
|
285
|
+
readonly position: _angular_core.InputSignal<NavigationVerticalPosition | null>;
|
|
286
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
287
|
+
protected readonly headerSlot: _angular_core.Signal<NavigationHeaderComponent | undefined>;
|
|
288
|
+
protected readonly contentSlot: _angular_core.Signal<NavigationContentComponent | undefined>;
|
|
289
|
+
protected readonly footerSlot: _angular_core.Signal<NavigationFooterComponent | undefined>;
|
|
290
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
291
|
+
constructor();
|
|
292
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationDockbarComponent, never>;
|
|
293
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavigationDockbarComponent, "NavigationDockbar", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, ["headerSlot", "contentSlot", "footerSlot"], ["NavigationHeader", "NavigationContent", "NavigationFooter"], true, never>;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Type navbar horizontal untuk `<Navigation>`. Slot `NavigationHeader`
|
|
298
|
+
* dan `NavigationFooter` opsional; `NavigationContent` selalu dirender
|
|
299
|
+
* (default otomatis bila tidak diproyeksikan).
|
|
300
|
+
*/
|
|
301
|
+
declare class NavigationNavbarComponent {
|
|
302
|
+
private readonly container;
|
|
303
|
+
private readonly destroyRef;
|
|
304
|
+
/** Posisi bar terhadap konten layout: `top` (default) atau `bottom` — panel grid membuka ke arah sebaliknya. */
|
|
305
|
+
readonly position: _angular_core.InputSignal<NavigationHorizontalPosition | null>;
|
|
306
|
+
readonly typeStyle: _angular_core.InputSignal<NavigationTypeStyle>;
|
|
307
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
308
|
+
protected readonly headerSlot: _angular_core.Signal<NavigationHeaderComponent | undefined>;
|
|
309
|
+
protected readonly contentSlot: _angular_core.Signal<NavigationContentComponent | undefined>;
|
|
310
|
+
protected readonly footerSlot: _angular_core.Signal<NavigationFooterComponent | undefined>;
|
|
311
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
312
|
+
constructor();
|
|
313
|
+
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-type-style"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, ["headerSlot", "contentSlot", "footerSlot"], ["NavigationHeader", "NavigationContent", "NavigationFooter"], true, never>;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Type flyout horizontal (trigger + panel menu) untuk `<Navigation>`.
|
|
319
|
+
* Slot `NavigationHeader` dan `NavigationFooter` opsional; `NavigationContent`
|
|
320
|
+
* selalu dirender (default otomatis bila tidak diproyeksikan).
|
|
321
|
+
*/
|
|
322
|
+
declare class NavigationFlyoutComponent {
|
|
323
|
+
private readonly container;
|
|
324
|
+
private readonly destroyRef;
|
|
325
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
326
|
+
/** Nama Material Symbols untuk trigger (mis. `apps`, `menu`); `null` = label saja. */
|
|
327
|
+
readonly icon: _angular_core.InputSignal<string | null>;
|
|
328
|
+
/** Trigger hanya menampilkan ikon; label tetap dipakai sebagai aria-label/title. */
|
|
329
|
+
readonly iconOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
330
|
+
/** Penempatan ikon relatif terhadap label: `start` (default) atau `end`. */
|
|
331
|
+
readonly iconPosition: _angular_core.InputSignal<NavigationFlyoutIconPosition>;
|
|
332
|
+
/** Posisi bar terhadap konten layout: `top` (default) atau `bottom` — panel membuka ke arah sebaliknya. */
|
|
333
|
+
readonly position: _angular_core.InputSignal<NavigationHorizontalPosition | null>;
|
|
334
|
+
readonly typeStyle: _angular_core.InputSignal<NavigationTypeStyle>;
|
|
335
|
+
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
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
340
|
+
constructor();
|
|
341
|
+
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; }; "position": { "alias": "nav-position"; "required": false; "isSignal": true; }; "typeStyle": { "alias": "nav-type-style"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, ["headerSlot", "contentSlot", "footerSlot"], ["NavigationHeader", "NavigationContent", "NavigationFooter"], true, never>;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
declare class NavigationCollapseRootDirective {
|
|
346
|
+
private readonly shell;
|
|
347
|
+
protected readonly collapseEnabled: _angular_core.Signal<boolean>;
|
|
348
|
+
protected readonly displayCollapsed: _angular_core.Signal<boolean>;
|
|
349
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationCollapseRootDirective, never>;
|
|
350
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavigationCollapseRootDirective, "[NavigationCollapseRoot]", never, {}, {}, never, never, true, never>;
|
|
351
|
+
}
|
|
352
|
+
declare class NavigationCollapseExpandedDirective {
|
|
353
|
+
private readonly shell;
|
|
354
|
+
private readonly templateRef;
|
|
355
|
+
private readonly viewContainer;
|
|
356
|
+
private hasView;
|
|
357
|
+
private readonly shouldRender;
|
|
358
|
+
constructor();
|
|
359
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationCollapseExpandedDirective, never>;
|
|
360
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavigationCollapseExpandedDirective, "[NavigationCollapseExpanded]", never, {}, {}, never, never, true, never>;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
export { NavigationCollapseExpandedDirective, NavigationCollapseRootDirective, NavigationContainerComponent, NavigationContentComponent, NavigationDockbarComponent, NavigationFlyoutComponent, NavigationFooterComponent, NavigationHeaderComponent, NavigationIconDirective, NavigationNavbarComponent, NavigationSidebarComponent, normalizeUiNavItems };
|
|
364
|
+
export type { NavigationActionHandler, NavigationCollapseTree, NavigationDockbarMode, NavigationFlyoutIconPosition, NavigationHorizontalPosition, NavigationHorizontalType, NavigationIconContext, NavigationItem, NavigationItemBadge, NavigationItemClasses, NavigationItemType, NavigationLink, NavigationNormalizedItem, NavigationNormalizedItemType, NavigationOrientation, NavigationPosition, NavigationRegisterInput, NavigationSelection, NavigationState, NavigationType, NavigationTypeConfig, NavigationTypeStyle, NavigationVerticalPosition, NavigationVerticalType, NavigationVisibilityHandler };
|