@ojiepermana/angular 22.2.0 → 22.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ojiepermana-angular-chart-area.mjs +3 -3
- package/fesm2022/ojiepermana-angular-chart-bar.mjs +3 -3
- package/fesm2022/ojiepermana-angular-chart-core.mjs +33 -33
- package/fesm2022/ojiepermana-angular-chart-line.mjs +3 -3
- package/fesm2022/ojiepermana-angular-chart-pie.mjs +3 -3
- package/fesm2022/ojiepermana-angular-chart-primitives.mjs +33 -33
- package/fesm2022/ojiepermana-angular-chart-radar.mjs +3 -3
- package/fesm2022/ojiepermana-angular-chart-radial.mjs +3 -3
- package/fesm2022/ojiepermana-angular-chart-scatter.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-accordion.mjs +15 -15
- package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +27 -27
- package/fesm2022/ojiepermana-angular-component-alert.mjs +12 -12
- package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-avatar.mjs +18 -18
- package/fesm2022/ojiepermana-angular-component-badge.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +21 -21
- package/fesm2022/ojiepermana-angular-component-button-group.mjs +9 -9
- package/fesm2022/ojiepermana-angular-component-button.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-calendar.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-card.mjs +21 -21
- package/fesm2022/ojiepermana-angular-component-carousel.mjs +18 -18
- package/fesm2022/ojiepermana-angular-component-checkbox.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-collapsible.mjs +12 -12
- package/fesm2022/ojiepermana-angular-component-combobox.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-command.mjs +27 -27
- package/fesm2022/ojiepermana-angular-component-composer.mjs +21 -21
- package/fesm2022/ojiepermana-angular-component-context-menu.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-date-picker.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-dialog.mjs +21 -21
- package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -2
- package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +39 -39
- package/fesm2022/ojiepermana-angular-component-editor.mjs +18 -18
- package/fesm2022/ojiepermana-angular-component-empty.mjs +18 -18
- package/fesm2022/ojiepermana-angular-component-form.mjs +36 -36
- package/fesm2022/ojiepermana-angular-component-hover-card.mjs +9 -9
- package/fesm2022/ojiepermana-angular-component-icon.mjs +6 -6
- package/fesm2022/ojiepermana-angular-component-input-group.mjs +18 -18
- package/fesm2022/ojiepermana-angular-component-input-otp.mjs +15 -15
- package/fesm2022/ojiepermana-angular-component-input.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-item.mjs +30 -30
- package/fesm2022/ojiepermana-angular-component-kanban.mjs +27 -27
- package/fesm2022/ojiepermana-angular-component-kbd.mjs +6 -6
- package/fesm2022/ojiepermana-angular-component-label.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-menubar.mjs +12 -12
- package/fesm2022/ojiepermana-angular-component-native-select.mjs +9 -9
- package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +21 -21
- package/fesm2022/ojiepermana-angular-component-pagination.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-pillbox.mjs +15 -15
- package/fesm2022/ojiepermana-angular-component-popover.mjs +6 -6
- package/fesm2022/ojiepermana-angular-component-progress.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-radio.mjs +6 -6
- package/fesm2022/ojiepermana-angular-component-resizable.mjs +12 -12
- package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-select.mjs +6 -6
- package/fesm2022/ojiepermana-angular-component-separator.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-sheet.mjs +21 -21
- package/fesm2022/ojiepermana-angular-component-skeleton.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-slider.mjs +6 -6
- package/fesm2022/ojiepermana-angular-component-spinner.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-switch.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-table.mjs +24 -24
- package/fesm2022/ojiepermana-angular-component-tabs.mjs +18 -18
- package/fesm2022/ojiepermana-angular-component-textarea.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-timeline.mjs +18 -18
- package/fesm2022/ojiepermana-angular-component-toast.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +9 -9
- package/fesm2022/ojiepermana-angular-component-toggle.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-tooltip.mjs +15 -15
- package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +3 -3
- package/fesm2022/ojiepermana-angular-navigation-icon.mjs +3 -3
- package/fesm2022/{ojiepermana-angular-navigation-navigation-badge-count.component-BKCeWzml.mjs → ojiepermana-angular-navigation-navigation-badge-count.component-DYuysKVf.mjs} +3 -3
- package/fesm2022/{ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs → ojiepermana-angular-navigation-navigation-dockbar-menu.component-COiTaw34.mjs} +7 -6
- package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-YIz0IsIb.mjs} +27 -46
- package/fesm2022/{ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs → ojiepermana-angular-navigation-navigation-flyout-menu.component-D2vwEwBY.mjs} +5 -5
- package/fesm2022/{ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs → ojiepermana-angular-navigation-navigation-horizontal.component-B5D7yXfb.mjs} +5 -5
- package/fesm2022/{ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs → ojiepermana-angular-navigation-navigation-item.component-CUb68MZH.mjs} +27 -36
- package/fesm2022/{ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs → ojiepermana-angular-navigation-navigation-list.component-CrK16trj.mjs} +22 -6
- package/fesm2022/ojiepermana-angular-navigation-service.mjs +6 -4
- package/fesm2022/ojiepermana-angular-navigation-types.mjs +113 -1
- package/fesm2022/ojiepermana-angular-navigation.mjs +271 -67
- package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +29 -19
- package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +6 -6
- package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +239 -31
- package/fesm2022/ojiepermana-angular-theme-layout.mjs +24 -24
- package/fesm2022/ojiepermana-angular-theme-page-core.mjs +3 -3
- package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +6 -6
- package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +3 -3
- package/fesm2022/ojiepermana-angular-theme-page-root.mjs +3 -3
- package/fesm2022/ojiepermana-angular-theme-page-side.mjs +6 -6
- package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +12 -12
- package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +3 -3
- package/fesm2022/ojiepermana-angular-theme-shell.mjs +9 -9
- package/fesm2022/ojiepermana-angular-theme-styles.mjs +15 -15
- package/navigation/README.md +68 -17
- package/package.json +2 -2
- package/types/ojiepermana-angular-component-card.d.ts +1 -1
- package/types/ojiepermana-angular-component-command.d.ts +1 -1
- package/types/ojiepermana-angular-navigation-types.d.ts +47 -2
- package/types/ojiepermana-angular-navigation.d.ts +47 -3
- package/types/ojiepermana-angular-theme-component-settings.d.ts +5 -3
- package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +48 -1
|
@@ -374,7 +374,7 @@ var ThemeBrandService = class ThemeBrandService {
|
|
|
374
374
|
}
|
|
375
375
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
376
376
|
minVersion: "12.0.0",
|
|
377
|
-
version: "22.2.
|
|
377
|
+
version: "22.2.2",
|
|
378
378
|
ngImport: i0,
|
|
379
379
|
type: ThemeBrandService,
|
|
380
380
|
deps: [],
|
|
@@ -382,14 +382,14 @@ var ThemeBrandService = class ThemeBrandService {
|
|
|
382
382
|
});
|
|
383
383
|
static ɵprov = i0.ɵɵngDeclareService({
|
|
384
384
|
minVersion: "22.0.0",
|
|
385
|
-
version: "22.2.
|
|
385
|
+
version: "22.2.2",
|
|
386
386
|
ngImport: i0,
|
|
387
387
|
type: ThemeBrandService
|
|
388
388
|
});
|
|
389
389
|
};
|
|
390
390
|
i0.ɵɵngDeclareClassMetadata({
|
|
391
391
|
minVersion: "12.0.0",
|
|
392
|
-
version: "22.2.
|
|
392
|
+
version: "22.2.2",
|
|
393
393
|
ngImport: i0,
|
|
394
394
|
type: ThemeBrandService,
|
|
395
395
|
decorators: [{ type: Service }],
|
|
@@ -419,7 +419,7 @@ var ThemeColorService = class ThemeColorService {
|
|
|
419
419
|
}
|
|
420
420
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
421
421
|
minVersion: "12.0.0",
|
|
422
|
-
version: "22.2.
|
|
422
|
+
version: "22.2.2",
|
|
423
423
|
ngImport: i0,
|
|
424
424
|
type: ThemeColorService,
|
|
425
425
|
deps: [],
|
|
@@ -427,14 +427,14 @@ var ThemeColorService = class ThemeColorService {
|
|
|
427
427
|
});
|
|
428
428
|
static ɵprov = i0.ɵɵngDeclareService({
|
|
429
429
|
minVersion: "22.0.0",
|
|
430
|
-
version: "22.2.
|
|
430
|
+
version: "22.2.2",
|
|
431
431
|
ngImport: i0,
|
|
432
432
|
type: ThemeColorService
|
|
433
433
|
});
|
|
434
434
|
};
|
|
435
435
|
i0.ɵɵngDeclareClassMetadata({
|
|
436
436
|
minVersion: "12.0.0",
|
|
437
|
-
version: "22.2.
|
|
437
|
+
version: "22.2.2",
|
|
438
438
|
ngImport: i0,
|
|
439
439
|
type: ThemeColorService,
|
|
440
440
|
decorators: [{ type: Service }]
|
|
@@ -460,7 +460,7 @@ var ThemeModeService = class ThemeModeService {
|
|
|
460
460
|
}
|
|
461
461
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
462
462
|
minVersion: "12.0.0",
|
|
463
|
-
version: "22.2.
|
|
463
|
+
version: "22.2.2",
|
|
464
464
|
ngImport: i0,
|
|
465
465
|
type: ThemeModeService,
|
|
466
466
|
deps: [],
|
|
@@ -468,14 +468,14 @@ var ThemeModeService = class ThemeModeService {
|
|
|
468
468
|
});
|
|
469
469
|
static ɵprov = i0.ɵɵngDeclareService({
|
|
470
470
|
minVersion: "22.0.0",
|
|
471
|
-
version: "22.2.
|
|
471
|
+
version: "22.2.2",
|
|
472
472
|
ngImport: i0,
|
|
473
473
|
type: ThemeModeService
|
|
474
474
|
});
|
|
475
475
|
};
|
|
476
476
|
i0.ɵɵngDeclareClassMetadata({
|
|
477
477
|
minVersion: "12.0.0",
|
|
478
|
-
version: "22.2.
|
|
478
|
+
version: "22.2.2",
|
|
479
479
|
ngImport: i0,
|
|
480
480
|
type: ThemeModeService,
|
|
481
481
|
decorators: [{ type: Service }]
|
|
@@ -503,7 +503,7 @@ var ThemeRadiusService = class ThemeRadiusService {
|
|
|
503
503
|
}
|
|
504
504
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
505
505
|
minVersion: "12.0.0",
|
|
506
|
-
version: "22.2.
|
|
506
|
+
version: "22.2.2",
|
|
507
507
|
ngImport: i0,
|
|
508
508
|
type: ThemeRadiusService,
|
|
509
509
|
deps: [],
|
|
@@ -511,14 +511,14 @@ var ThemeRadiusService = class ThemeRadiusService {
|
|
|
511
511
|
});
|
|
512
512
|
static ɵprov = i0.ɵɵngDeclareService({
|
|
513
513
|
minVersion: "22.0.0",
|
|
514
|
-
version: "22.2.
|
|
514
|
+
version: "22.2.2",
|
|
515
515
|
ngImport: i0,
|
|
516
516
|
type: ThemeRadiusService
|
|
517
517
|
});
|
|
518
518
|
};
|
|
519
519
|
i0.ɵɵngDeclareClassMetadata({
|
|
520
520
|
minVersion: "12.0.0",
|
|
521
|
-
version: "22.2.
|
|
521
|
+
version: "22.2.2",
|
|
522
522
|
ngImport: i0,
|
|
523
523
|
type: ThemeRadiusService,
|
|
524
524
|
decorators: [{ type: Service }]
|
|
@@ -537,7 +537,7 @@ var ThemeSpaceService = class ThemeSpaceService {
|
|
|
537
537
|
}
|
|
538
538
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
539
539
|
minVersion: "12.0.0",
|
|
540
|
-
version: "22.2.
|
|
540
|
+
version: "22.2.2",
|
|
541
541
|
ngImport: i0,
|
|
542
542
|
type: ThemeSpaceService,
|
|
543
543
|
deps: [],
|
|
@@ -545,14 +545,14 @@ var ThemeSpaceService = class ThemeSpaceService {
|
|
|
545
545
|
});
|
|
546
546
|
static ɵprov = i0.ɵɵngDeclareService({
|
|
547
547
|
minVersion: "22.0.0",
|
|
548
|
-
version: "22.2.
|
|
548
|
+
version: "22.2.2",
|
|
549
549
|
ngImport: i0,
|
|
550
550
|
type: ThemeSpaceService
|
|
551
551
|
});
|
|
552
552
|
};
|
|
553
553
|
i0.ɵɵngDeclareClassMetadata({
|
|
554
554
|
minVersion: "12.0.0",
|
|
555
|
-
version: "22.2.
|
|
555
|
+
version: "22.2.2",
|
|
556
556
|
ngImport: i0,
|
|
557
557
|
type: ThemeSpaceService,
|
|
558
558
|
decorators: [{ type: Service }]
|
package/navigation/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
```ts
|
|
6
6
|
import {
|
|
7
7
|
NavigationContainerComponent,
|
|
8
|
-
NavigationSidebarComponent, // type: NavigationDockbar/Navbar/FlyoutComponent
|
|
8
|
+
NavigationSidebarComponent, // type: NavigationDockbar/Minidock/Navbar/FlyoutComponent
|
|
9
9
|
NavigationHeaderComponent,
|
|
10
10
|
NavigationContentComponent,
|
|
11
11
|
NavigationFooterComponent,
|
|
@@ -44,17 +44,17 @@ const items: NavigationItem[] = [
|
|
|
44
44
|
</Navigation>
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
Type dipilih lewat komponen anak deklaratif
|
|
47
|
+
Type dipilih lewat komponen anak deklaratif (`NavigationSidebar`, `NavigationDockbar`, `NavigationMinidock`, `NavigationNavbar`, atau `NavigationFlyout`), satu type hidup per `<Navigation>`. Di dalam type, `NavigationHeader` dan `NavigationFooter` opsional, sedangkan `NavigationContent` selalu dirender (otomatis dibuat bila tidak diproyeksikan).
|
|
48
48
|
|
|
49
49
|
## API Notes
|
|
50
50
|
|
|
51
51
|
- `data` is the source of navigation data.
|
|
52
|
-
- Type is declared by the child component: `NavigationSidebar`/`NavigationDockbar` (vertical), `NavigationNavbar`/`NavigationFlyout` (horizontal). Orientation is implied by the type child.
|
|
52
|
+
- Type is declared by the child component: `NavigationSidebar`/`NavigationDockbar`/`NavigationMinidock` (vertical), `NavigationNavbar`/`NavigationFlyout` (horizontal). Orientation is implied by the type child.
|
|
53
53
|
- `id` identifies a navigation instance so multiple navs can keep distinct service state.
|
|
54
54
|
- `data-id` optionally publishes the input data under a different registry id. This lets a
|
|
55
55
|
mobile mirror use isolated state (`id="main-mobile"`) while exposing the same data contract
|
|
56
56
|
as the desktop navigation (`data-id="main"`).
|
|
57
|
-
- `position` on `NavigationSidebar`/`NavigationDockbar` accepts `left` or `right` (vertical).
|
|
57
|
+
- `position` on `NavigationSidebar`/`NavigationDockbar`/`NavigationMinidock` accepts `left` or `right` (vertical).
|
|
58
58
|
- `collapsed` on `NavigationSidebar` controls the icon-only sidebar state.
|
|
59
59
|
- `mode` on `NavigationDockbar` accepts `sticky` or `drawer`.
|
|
60
60
|
- `dockbar-route-context` on `NavigationDockbar` opts into Router-aware header, rail deduplication,
|
|
@@ -109,19 +109,20 @@ Inputs pada `<Navigation>` (container):
|
|
|
109
109
|
|
|
110
110
|
Inputs pada komponen type:
|
|
111
111
|
|
|
112
|
-
| Component
|
|
113
|
-
|
|
|
114
|
-
| `NavigationSidebar`
|
|
115
|
-
| `NavigationSidebar`
|
|
116
|
-
| `NavigationSidebar`
|
|
117
|
-
| `NavigationSidebar`
|
|
118
|
-
| `NavigationDockbar`
|
|
119
|
-
| `NavigationDockbar`
|
|
120
|
-
| `NavigationDockbar`
|
|
121
|
-
| `NavigationDockbar`
|
|
122
|
-
| `
|
|
123
|
-
| `
|
|
124
|
-
| `NavigationFlyout`
|
|
112
|
+
| Component | API | Type | Notes |
|
|
113
|
+
| -------------------- | ----------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------- |
|
|
114
|
+
| `NavigationSidebar` | `position` | `left \| right \| null` | Side the rail docks to. |
|
|
115
|
+
| `NavigationSidebar` | `collapsed` | `boolean \| null` | Controls collapsed vertical sidebar state. |
|
|
116
|
+
| `NavigationSidebar` | `nav-sidebar-collapse` | `boolean` | Enables hover-driven preview expansion on collapsed sidebars. |
|
|
117
|
+
| `NavigationSidebar` | `previewExpanded` | `boolean` | Forces a collapsed sidebar to render expanded for preview. |
|
|
118
|
+
| `NavigationDockbar` | `mode` | `sticky \| drawer \| null` | Docked aside beside the rail, or overlay drawer. |
|
|
119
|
+
| `NavigationDockbar` | `position` | `left \| right \| null` | Side the rail docks to. |
|
|
120
|
+
| `NavigationDockbar` | `dockbar-route-context` | `boolean \| NavigationDockbarRouteConfig \| null` | Opt-in Router context and optional overrides. |
|
|
121
|
+
| `NavigationDockbar` | `dockbar-badge` | `NavigationBadgeContext` | Reactive badge sources keyed by item or route metadata. |
|
|
122
|
+
| `NavigationMinidock` | `position` | `left \| right \| null` | Side the rail docks to. The separating border is set through `class`. |
|
|
123
|
+
| `NavigationNavbar` | `nav-appearance` | `flat \| border-rail` | Style variant. `border-rail` = squared panel, dashed icon rails, no hover bg. |
|
|
124
|
+
| `NavigationFlyout` | `label` | `string` | Trigger label. Defaults to `Menu`. |
|
|
125
|
+
| `NavigationFlyout` | `nav-appearance` | `flat \| border-rail` | Style variant. `border-rail` = squared panel, dashed icon rails, no hover bg. |
|
|
125
126
|
|
|
126
127
|
Semua type juga menerima `class` untuk kelas tambahan pada elemen shell-nya.
|
|
127
128
|
|
|
@@ -149,6 +150,56 @@ Semua type juga menerima `class` untuk kelas tambahan pada elemen shell-nya.
|
|
|
149
150
|
| `columns` | `number` | Column count for `mega` style items. |
|
|
150
151
|
| `children` | `readonly NavigationItem[]` | Nested items. Trees can be deeper than one level. |
|
|
151
152
|
|
|
153
|
+
## Minidock
|
|
154
|
+
|
|
155
|
+
`NavigationMinidock` is a permanent vertical icon rail. It renders exactly like a collapsed
|
|
156
|
+
sidebar (`--layout-sidebar-collapsed-width`, `--nav-rail-item-size`, a tooltip per item, a two
|
|
157
|
+
letter fallback for items without an icon), but it never expands: there is no `collapsed` input,
|
|
158
|
+
no `nav-sidebar-collapse`, no hover or focus preview, no header toggle, and
|
|
159
|
+
`NavigationService.toggleCollapsed()` does nothing for it. Its stored `nav-type-mode` is always
|
|
160
|
+
`default`.
|
|
161
|
+
|
|
162
|
+
```html
|
|
163
|
+
<Navigation id="app-rail" [data]="items" class="h-full">
|
|
164
|
+
<NavigationMinidock class="border-r border-border" />
|
|
165
|
+
</Navigation>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
The data contract is strict. Minidock only accepts `basic`, `item`, or untyped items without
|
|
169
|
+
children, plus `divider` and `spacer`. Any `group`, `collapsible`, `collapsable`, `mega`, or
|
|
170
|
+
`aside` item, or any item with non empty `children` (hidden items included), throws an `Error`
|
|
171
|
+
in development **and production**. The error reaches Angular's `ErrorHandler` and names the item
|
|
172
|
+
index, its title, and the rejected type, for example
|
|
173
|
+
`Item [2] "Component" bertipe "group".`
|
|
174
|
+
|
|
175
|
+
Flatten grouped data with `toMinidockItems()` from `@ojiepermana/angular/navigation/types`.
|
|
176
|
+
It is a pure function whose output always passes that check, and it is the safe path for data
|
|
177
|
+
that comes from a backend:
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
import { toMinidockItems } from '@ojiepermana/angular/navigation/types';
|
|
181
|
+
|
|
182
|
+
protected readonly railItems = computed(() => toMinidockItems(this.items()));
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
- Leaves are kept as the same object, unless a parent's `isHidden` has to be merged in.
|
|
186
|
+
- `group` and `mega` (at any level) become a divider boundary and their content is flattened;
|
|
187
|
+
an empty group adds no divider.
|
|
188
|
+
- `collapsible`, `collapsable`, and `aside` are dropped as parents; their children are lifted.
|
|
189
|
+
- Leading, trailing, and repeated dividers are compacted; `spacer` survives only at the top level.
|
|
190
|
+
- A leaf whose `id` repeats is kept once (first occurrence wins).
|
|
191
|
+
- A lifted leaf is hidden when any of its parents is hidden, and a group's boundary divider hides
|
|
192
|
+
with that group.
|
|
193
|
+
|
|
194
|
+
A `spacer` pushes every item after it to the bottom of the rail. `LayoutWrapperDefault` offers
|
|
195
|
+
the type as `nav-type="minidock"` on a vertical layout: it renders `LayoutNavMinidock` with
|
|
196
|
+
`toMinidockItems(data())` under the data id `main-minidock`, and keeps publishing the full
|
|
197
|
+
`data()` under `main`.
|
|
198
|
+
|
|
199
|
+
Adding `'minidock'` widens `NavigationVerticalType` (and so `NavigationType`). The change is
|
|
200
|
+
additive, but a consumer `switch` that is exhaustive over `NavigationType` needs a `minidock`
|
|
201
|
+
branch before it compiles again.
|
|
202
|
+
|
|
152
203
|
## Route-aware dockbar
|
|
153
204
|
|
|
154
205
|
The feature is opt-in so existing dockbar, sidebar, navbar, and flyout consumers keep their
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ojiepermana/angular",
|
|
3
|
-
"version": "22.2.
|
|
3
|
+
"version": "22.2.1",
|
|
4
4
|
"description": "Accessible, tree-shakable Angular 22 design system from ojiepermana: UI components, charts, navigation shells, theme tokens, and an OpenAPI SDK generator.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -502,5 +502,5 @@
|
|
|
502
502
|
"module": "fesm2022/ojiepermana-angular.mjs",
|
|
503
503
|
"typings": "types/ojiepermana-angular.d.ts",
|
|
504
504
|
"type": "module",
|
|
505
|
-
"gitHead": "
|
|
505
|
+
"gitHead": "1d9e13ff98804f60ee81765a22a6b5a814d0f374"
|
|
506
506
|
}
|
|
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export type CardSize = 'default' | 'sm';
|
|
5
5
|
export declare class CardComponent {
|
|
6
6
|
protected readonly componentScale: ComponentScaleDirective;
|
|
7
|
-
readonly radius: import("@angular/core").InputSignal<"
|
|
7
|
+
readonly radius: import("@angular/core").InputSignal<"sm" | "inherit" | "none" | "xs" | "md" | "xl" | "full">;
|
|
8
8
|
readonly density: import("@angular/core").InputSignal<"inherit" | "compact" | "normal" | "relaxed" | "spacious">;
|
|
9
9
|
readonly size: import("@angular/core").InputSignal<CardSize>;
|
|
10
10
|
readonly class: import("@angular/core").InputSignal<string>;
|
|
@@ -165,7 +165,7 @@ export declare class CommandItemComponent {
|
|
|
165
165
|
* on the input instead, which is the listbox pattern.
|
|
166
166
|
*/
|
|
167
167
|
readonly selectedState: import("@angular/core").InputSignal<boolean>;
|
|
168
|
-
readonly selected: import("@angular/core").OutputEmitterRef<
|
|
168
|
+
readonly selected: import("@angular/core").OutputEmitterRef<KeyboardEvent | MouseEvent>;
|
|
169
169
|
/** The highlighted row. Drives styling and `aria-activedescendant`, not `aria-selected`. */
|
|
170
170
|
readonly active: import("@angular/core").WritableSignal<boolean>;
|
|
171
171
|
readonly visible: import("@angular/core").Signal<boolean>;
|
|
@@ -2,7 +2,7 @@ import { Signal } from "@angular/core";
|
|
|
2
2
|
import { IsActiveMatchOptions, Params, QueryParamsHandling, UrlTree } from "@angular/router";
|
|
3
3
|
import { Observable } from "rxjs";
|
|
4
4
|
export type NavigationOrientation = 'vertical' | 'horizontal';
|
|
5
|
-
export type NavigationVerticalType = 'sidebar' | 'dockbar';
|
|
5
|
+
export type NavigationVerticalType = 'sidebar' | 'dockbar' | 'minidock';
|
|
6
6
|
export type NavigationHorizontalType = 'navbar' | 'flyout';
|
|
7
7
|
export type NavigationType = NavigationVerticalType | NavigationHorizontalType;
|
|
8
8
|
export type NavigationCollapseTree = 'stairs' | 'straight';
|
|
@@ -137,4 +137,49 @@ export interface NavigationIconContext {
|
|
|
137
137
|
}
|
|
138
138
|
export declare function normalizeUiNavItems(items: readonly NavigationItem[]): readonly NavigationNormalizedItem[];
|
|
139
139
|
/** Format visual count badge dockbar. Count nol atau invalid tidak dirender. */
|
|
140
|
-
export declare function formatNavigationBadgeCount(value: NavigationBadgeCount): string | null;
|
|
140
|
+
export declare function formatNavigationBadgeCount(value: NavigationBadgeCount): string | null;
|
|
141
|
+
/**
|
|
142
|
+
* Memadatkan divider: yang di awal, di akhir, dan yang berurutan dibuang. Dari
|
|
143
|
+
* satu deret divider berurutan, divider pertama tanpa `isHidden` yang dipertahankan
|
|
144
|
+
* (atau divider pertama bila semuanya punya `isHidden`), supaya pemisah yang selalu
|
|
145
|
+
* terlihat tidak kalah oleh pemisah yang bisa tersembunyi saat runtime.
|
|
146
|
+
*
|
|
147
|
+
* Dipakai dua kali: oleh `toMinidockItems` atas data mentah, dan oleh jalur render
|
|
148
|
+
* minidock atas item yang sudah dinormalisasi (item tersembunyi sudah hilang).
|
|
149
|
+
*
|
|
150
|
+
* @internal
|
|
151
|
+
*/
|
|
152
|
+
export declare function ɵcompactNavigationDividers<T extends {
|
|
153
|
+
readonly type?: string;
|
|
154
|
+
readonly isHidden?: unknown;
|
|
155
|
+
}>(items: readonly T[]): T[];
|
|
156
|
+
/**
|
|
157
|
+
* Melempar `Error` pertama yang ditemukan bila data minidock berisi item di luar
|
|
158
|
+
* `basic`, `item`, tanpa type, `divider`, dan `spacer`, atau item mana pun dengan
|
|
159
|
+
* `children` yang tidak kosong. Berjalan atas data mentah, termasuk item yang
|
|
160
|
+
* `isHidden`, dan tanpa `isDevMode()`: aturannya sama di dev dan production.
|
|
161
|
+
*
|
|
162
|
+
* Cukup memeriksa level atas: item apa pun yang punya children sudah ditolak,
|
|
163
|
+
* jadi item bersarang tidak pernah bisa lolos.
|
|
164
|
+
*
|
|
165
|
+
* @internal
|
|
166
|
+
*/
|
|
167
|
+
export declare function ɵassertMinidockItems(items: readonly NavigationItem[]): void;
|
|
168
|
+
/**
|
|
169
|
+
* Meratakan data navigasi bergroup menjadi data yang selalu valid untuk
|
|
170
|
+
* `<NavigationMinidock>`:
|
|
171
|
+
*
|
|
172
|
+
* - daun (`basic`, `item`, atau tanpa type, tanpa children) dipertahankan;
|
|
173
|
+
* - `group` dan `mega` di level mana pun diganti batas divider lalu isinya
|
|
174
|
+
* diratakan; group yang isinya kosong tidak menghasilkan divider;
|
|
175
|
+
* - `collapsible`, `collapsable`, `aside`, dan item lain yang punya children
|
|
176
|
+
* dibuang sebagai induk, anak anaknya diratakan rekursif;
|
|
177
|
+
* - divider di awal, di akhir, atau berurutan dipadatkan; `spacer` hanya
|
|
178
|
+
* dipertahankan di level atas;
|
|
179
|
+
* - daun dengan `id` yang sama hanya muncul sekali (kemunculan pertama).
|
|
180
|
+
*
|
|
181
|
+
* Daun dan divider yang diangkat ikut tersembunyi bila salah satu induknya
|
|
182
|
+
* tersembunyi, dan divider pengganti group ikut tersembunyi bersama group itu. Daun dikembalikan
|
|
183
|
+
* sebagai objek yang sama kecuali `isHidden` nya perlu digabung. Tidak pernah throw.
|
|
184
|
+
*/
|
|
185
|
+
export declare function toMinidockItems(items: readonly NavigationItem[]): NavigationItem[];
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { NavigationIconDirective, NavigationIconDirective as NavigationIconDirective$1 } from "@ojiepermana/angular/navigation/icon";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import { InjectionToken, Signal, TemplateRef } from "@angular/core";
|
|
4
|
-
import { NAVIGATION_DOCKBAR_FALLBACK_ICON, NavigationActionHandler, NavigationAppearance, NavigationAppearance as NavigationAppearance$1, NavigationBadgeAriaLabel, NavigationBadgeContext, NavigationBadgeContext as NavigationBadgeContext$1, NavigationBadgeCount, NavigationBadgeSource, NavigationBadgeSource as NavigationBadgeSource$1, NavigationBadgeValueSource, NavigationCollapseTree, NavigationCollapseTree as NavigationCollapseTree$1, NavigationDockbarMode, NavigationDockbarMode as NavigationDockbarMode$1, NavigationDockbarRouteConfig, NavigationDockbarRouteContext, NavigationDockbarRouteContext as NavigationDockbarRouteContext$1, NavigationFlyoutIconPosition, NavigationFlyoutIconPosition as NavigationFlyoutIconPosition$1, NavigationFlyoutTriggerVariant, NavigationFlyoutTriggerVariant as NavigationFlyoutTriggerVariant$1, NavigationHorizontalPosition, NavigationHorizontalPosition as NavigationHorizontalPosition$1, NavigationHorizontalType, NavigationIconContext, NavigationIconContext as NavigationIconContext$1, NavigationItem, NavigationItem as NavigationItem$1, NavigationItemBadge, NavigationItemClasses, NavigationItemType, NavigationLink, NavigationNormalizedItem, NavigationNormalizedItem as NavigationNormalizedItem$1, NavigationNormalizedItemType, NavigationOrientation, NavigationOrientation as NavigationOrientation$1, NavigationPosition, NavigationPosition as NavigationPosition$1, NavigationRegisterInput, NavigationResolvedRouteContext, NavigationResolvedRouteContext as NavigationResolvedRouteContext$1, NavigationRouteData, NavigationSelection, NavigationSelection as NavigationSelection$1, NavigationState, NavigationState as NavigationState$1, NavigationType, NavigationType as NavigationType$1, NavigationVerticalPosition, NavigationVerticalPosition as NavigationVerticalPosition$1, NavigationVerticalType, NavigationVisibilityHandler, formatNavigationBadgeCount, normalizeUiNavItems } from "@ojiepermana/angular/navigation/types";
|
|
4
|
+
import { NAVIGATION_DOCKBAR_FALLBACK_ICON, NavigationActionHandler, NavigationAppearance, NavigationAppearance as NavigationAppearance$1, NavigationBadgeAriaLabel, NavigationBadgeContext, NavigationBadgeContext as NavigationBadgeContext$1, NavigationBadgeCount, NavigationBadgeSource, NavigationBadgeSource as NavigationBadgeSource$1, NavigationBadgeValueSource, NavigationCollapseTree, NavigationCollapseTree as NavigationCollapseTree$1, NavigationDockbarMode, NavigationDockbarMode as NavigationDockbarMode$1, NavigationDockbarRouteConfig, NavigationDockbarRouteContext, NavigationDockbarRouteContext as NavigationDockbarRouteContext$1, NavigationFlyoutIconPosition, NavigationFlyoutIconPosition as NavigationFlyoutIconPosition$1, NavigationFlyoutTriggerVariant, NavigationFlyoutTriggerVariant as NavigationFlyoutTriggerVariant$1, NavigationHorizontalPosition, NavigationHorizontalPosition as NavigationHorizontalPosition$1, NavigationHorizontalType, NavigationIconContext, NavigationIconContext as NavigationIconContext$1, NavigationItem, NavigationItem as NavigationItem$1, NavigationItemBadge, NavigationItemClasses, NavigationItemType, NavigationLink, NavigationNormalizedItem, NavigationNormalizedItem as NavigationNormalizedItem$1, NavigationNormalizedItemType, NavigationOrientation, NavigationOrientation as NavigationOrientation$1, NavigationPosition, NavigationPosition as NavigationPosition$1, NavigationRegisterInput, NavigationResolvedRouteContext, NavigationResolvedRouteContext as NavigationResolvedRouteContext$1, NavigationRouteData, NavigationSelection, NavigationSelection as NavigationSelection$1, NavigationState, NavigationState as NavigationState$1, NavigationType, NavigationType as NavigationType$1, NavigationVerticalPosition, NavigationVerticalPosition as NavigationVerticalPosition$1, NavigationVerticalType, NavigationVisibilityHandler, formatNavigationBadgeCount, normalizeUiNavItems, toMinidockItems } from "@ojiepermana/angular/navigation/types";
|
|
5
5
|
export * from "@ojiepermana/angular/navigation/core";
|
|
6
6
|
/**
|
|
7
7
|
* Konfigurasi yang didaftarkan komponen type (`<NavigationSidebar>`,
|
|
8
|
-
* `<NavigationDockbar>`, `<
|
|
8
|
+
* `<NavigationDockbar>`, `<NavigationMinidock>`, `<NavigationNavbar>`,
|
|
9
|
+
* `<NavigationFlyout>`) ke
|
|
9
10
|
* `<Navigation>` induknya. Satu `<Navigation>` hanya boleh memuat satu
|
|
10
11
|
* type hidup pada satu waktu.
|
|
11
12
|
*/
|
|
@@ -138,6 +139,8 @@ export declare class NavigationContainerComponent implements NavigationShellCont
|
|
|
138
139
|
readonly dockbarActiveRoutePanelGroup: import("@angular/core").Signal<NavigationNormalizedItem$1 | null>;
|
|
139
140
|
readonly dockbarRouteHeader: import("@angular/core").Signal<NavigationDockbarRouteHeaderState | null>;
|
|
140
141
|
readonly dockbarRailItems: import("@angular/core").Signal<readonly NavigationNormalizedItem$1[]>;
|
|
142
|
+
/** Item rel minidock: divider di tepi atau berurutan (sesudah item tersembunyi hilang) dibuang. */
|
|
143
|
+
readonly minidockRailItems: import("@angular/core").Signal<NavigationNormalizedItem$1[]>;
|
|
141
144
|
readonly dockbarAsideId: import("@angular/core").Signal<string>;
|
|
142
145
|
readonly dockbarOpenGroup: import("@angular/core").Signal<NavigationNormalizedItem$1 | null>;
|
|
143
146
|
readonly dockbarActiveRoutePanelExpanded: import("@angular/core").Signal<boolean>;
|
|
@@ -435,6 +438,47 @@ export declare class NavigationDockbarComponent {
|
|
|
435
438
|
};
|
|
436
439
|
}, {}, ["headerSlot", "contentSlot", "footerSlot", "asideFooterSlot"], ["NavigationHeader", "NavigationContent", "NavigationFooter"], true, never>;
|
|
437
440
|
}
|
|
441
|
+
/**
|
|
442
|
+
* Type vertikal minidock untuk `<Navigation>`: rel ikon permanen yang tampil sama
|
|
443
|
+
* dengan sidebar collapsed, tetapi tidak pernah melebar (tanpa toggle, hover
|
|
444
|
+
* preview, atau focus preview).
|
|
445
|
+
*
|
|
446
|
+
* Data hanya boleh berisi item `basic`, `item`, tanpa type, `divider`, dan
|
|
447
|
+
* `spacer`, tanpa children. Data lain melempar `Error` di dev dan production;
|
|
448
|
+
* ratakan data bergroup dulu dengan `toMinidockItems()`.
|
|
449
|
+
*
|
|
450
|
+
* Slot `NavigationHeader` dan `NavigationFooter` opsional; `NavigationContent`
|
|
451
|
+
* selalu dirender (default otomatis bila tidak diproyeksikan).
|
|
452
|
+
*/
|
|
453
|
+
export declare class NavigationMinidockComponent {
|
|
454
|
+
private readonly container;
|
|
455
|
+
private readonly destroyRef;
|
|
456
|
+
readonly position: import("@angular/core").InputSignal<NavigationVerticalPosition$1 | null>;
|
|
457
|
+
readonly class: import("@angular/core").InputSignal<string>;
|
|
458
|
+
protected readonly headerSlot: import("@angular/core").Signal<NavigationHeaderComponent | undefined>;
|
|
459
|
+
protected readonly contentSlot: import("@angular/core").Signal<NavigationContentComponent | undefined>;
|
|
460
|
+
protected readonly footerSlot: import("@angular/core").Signal<NavigationFooterComponent | undefined>;
|
|
461
|
+
/**
|
|
462
|
+
* Validasi data mentah. Dibaca template, jadi data yang berubah divalidasi ulang
|
|
463
|
+
* dan error yang dilempar sampai ke `ErrorHandler` Angular saat change detection.
|
|
464
|
+
*/
|
|
465
|
+
protected readonly dataValidated: import("@angular/core").Signal<boolean>;
|
|
466
|
+
protected readonly hostClasses: import("@angular/core").Signal<string>;
|
|
467
|
+
constructor();
|
|
468
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationMinidockComponent, never>;
|
|
469
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationMinidockComponent, "NavigationMinidock", never, {
|
|
470
|
+
"position": {
|
|
471
|
+
"alias": "position";
|
|
472
|
+
"required": false;
|
|
473
|
+
"isSignal": true;
|
|
474
|
+
};
|
|
475
|
+
"class": {
|
|
476
|
+
"alias": "class";
|
|
477
|
+
"required": false;
|
|
478
|
+
"isSignal": true;
|
|
479
|
+
};
|
|
480
|
+
}, {}, ["headerSlot", "contentSlot", "footerSlot"], ["NavigationHeader", "NavigationContent", "NavigationFooter"], true, never>;
|
|
481
|
+
}
|
|
438
482
|
/**
|
|
439
483
|
* Type navbar horizontal untuk `<Navigation>`. Slot `NavigationHeader`
|
|
440
484
|
* dan `NavigationFooter` opsional; `NavigationContent` selalu dirender
|
|
@@ -793,4 +837,4 @@ export declare class NavigationHeaderTitleComponent {
|
|
|
793
837
|
* memakai dua huruf pertamanya.
|
|
794
838
|
*/
|
|
795
839
|
export declare function deriveNavigationInitials(name: string): string;
|
|
796
|
-
export { NAVIGATION_DOCKBAR_FALLBACK_ICON, type NavigationActionHandler, type NavigationAppearance, type NavigationBadgeAriaLabel, type NavigationBadgeContext, type NavigationBadgeCount, type NavigationBadgeSource, type NavigationBadgeValueSource, type NavigationCollapseTree, type NavigationDockbarMode, type NavigationDockbarRouteConfig, type NavigationDockbarRouteContext, type NavigationFlyoutIconPosition, type NavigationFlyoutTriggerVariant, type NavigationHorizontalPosition, type NavigationHorizontalType, type NavigationIconContext, NavigationIconDirective, type NavigationItem, type NavigationItemBadge, type NavigationItemClasses, type NavigationItemType, type NavigationLink, type NavigationNormalizedItem, type NavigationNormalizedItemType, type NavigationOrientation, type NavigationPosition, type NavigationRegisterInput, type NavigationResolvedRouteContext, type NavigationRouteData, type NavigationSelection, type NavigationState, type NavigationType, type NavigationVerticalPosition, type NavigationVerticalType, type NavigationVisibilityHandler, formatNavigationBadgeCount, normalizeUiNavItems };
|
|
840
|
+
export { NAVIGATION_DOCKBAR_FALLBACK_ICON, type NavigationActionHandler, type NavigationAppearance, type NavigationBadgeAriaLabel, type NavigationBadgeContext, type NavigationBadgeCount, type NavigationBadgeSource, type NavigationBadgeValueSource, type NavigationCollapseTree, type NavigationDockbarMode, type NavigationDockbarRouteConfig, type NavigationDockbarRouteContext, type NavigationFlyoutIconPosition, type NavigationFlyoutTriggerVariant, type NavigationHorizontalPosition, type NavigationHorizontalType, type NavigationIconContext, NavigationIconDirective, type NavigationItem, type NavigationItemBadge, type NavigationItemClasses, type NavigationItemType, type NavigationLink, type NavigationNormalizedItem, type NavigationNormalizedItemType, type NavigationOrientation, type NavigationPosition, type NavigationRegisterInput, type NavigationResolvedRouteContext, type NavigationRouteData, type NavigationSelection, type NavigationState, type NavigationType, type NavigationVerticalPosition, type NavigationVerticalType, type NavigationVisibilityHandler, formatNavigationBadgeCount, normalizeUiNavItems, toMinidockItems };
|
|
@@ -74,7 +74,8 @@ export declare class ThemeSettingsComponent {
|
|
|
74
74
|
type ThemeSettingsNavigationType = NavigationType | 'desktop';
|
|
75
75
|
/**
|
|
76
76
|
* The presentation modes meaningful to the currently selected navigation type.
|
|
77
|
-
* Sidebar uses `default`/`collapsed`; dockbar uses `default` (sticky) / `drawer
|
|
77
|
+
* Sidebar uses `default`/`collapsed`; dockbar uses `default` (sticky) / `drawer`;
|
|
78
|
+
* minidock is always compact and only has `default`.
|
|
78
79
|
*/
|
|
79
80
|
type ThemeSettingsNavigationMode = 'default' | 'collapsed' | 'drawer';
|
|
80
81
|
/**
|
|
@@ -104,14 +105,15 @@ export declare const NAV_TYPE_STORAGE_KEY = "nav-type";
|
|
|
104
105
|
export declare const NAV_TYPE_MODE_STORAGE_KEY = "nav-type-mode";
|
|
105
106
|
/**
|
|
106
107
|
* Nav types valid for a layout/shell pair — mirrors `LayoutWrapperDefault`
|
|
107
|
-
* (`navbar`/`flyout` → web horizontal, `sidebar`/`dockbar` → vertical).
|
|
108
|
+
* (`navbar`/`flyout` → web horizontal, `sidebar`/`dockbar`/`minidock` → vertical).
|
|
108
109
|
* A desktop-mode horizontal shell owns exactly one navigation shape: `desktop`.
|
|
109
110
|
* `empty` and `fluid` shells are brand-only, so no nav type applies.
|
|
110
111
|
*/
|
|
111
112
|
export declare function allowedNavTypes(layoutType: LayoutType, shellMode: ShellMode): readonly ThemeSettingsNavigationType[];
|
|
112
113
|
/**
|
|
113
114
|
* Presentation modes meaningful to a navigation type: sidebar collapses, dockbar
|
|
114
|
-
* turns into a drawer, and every other type
|
|
115
|
+
* turns into a drawer, and every other type (minidock included, it is always
|
|
116
|
+
* compact) has one presentation only.
|
|
115
117
|
*/
|
|
116
118
|
export declare function allowedNavTypeModes(navType: ThemeSettingsNavigationType): readonly ThemeSettingsNavigationMode[];
|
|
117
119
|
/** `fluid` width only has an effect when the layout type is also `fluid`. */
|
|
@@ -241,6 +241,46 @@ export declare class LayoutNavDockbar {
|
|
|
241
241
|
"logout": "logout";
|
|
242
242
|
}, never, never, true, never>;
|
|
243
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Nav type: a permanent vertical icon rail (minidock). It is composed exactly like
|
|
246
|
+
* {@link LayoutNavSidebar}, brand in the header and user identity in the footer, and
|
|
247
|
+
* renders the same way a collapsed sidebar does, but it never expands.
|
|
248
|
+
*
|
|
249
|
+
* The rail only accepts flat data, so `LayoutWrapperDefault` hands it
|
|
250
|
+
* `toMinidockItems(data())`. See {@link LayoutNavSidebar} for why
|
|
251
|
+
* `host.class = 'contents'` and for the header and footer borders.
|
|
252
|
+
*/
|
|
253
|
+
export declare class LayoutNavMinidock {
|
|
254
|
+
readonly brand: import("@angular/core").InputSignal<BrandIdentity>;
|
|
255
|
+
readonly user: import("@angular/core").InputSignal<UserIdentity>;
|
|
256
|
+
/** Appearance from the shell (`[appearance]`); decides the separator border weight. */
|
|
257
|
+
readonly appearance: import("@angular/core").InputSignal<"flat" | "border-rail">;
|
|
258
|
+
/** Forwarded from `<LayoutUser>`; the effect is the consumer's. */
|
|
259
|
+
readonly logout: import("@angular/core").OutputEmitterRef<void>;
|
|
260
|
+
protected readonly isBorderRail: import("@angular/core").Signal<boolean>;
|
|
261
|
+
/** Border kanan pemisah; ketebalan ikut appearance: `border-rail` = `--layout-rail-width` (selaras rail layout), `flat` 1px. */
|
|
262
|
+
protected readonly shellClass: import("@angular/core").Signal<"border-r-[length:var(--layout-rail-width)] border-border" | "border-r border-border">;
|
|
263
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LayoutNavMinidock, never>;
|
|
264
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LayoutNavMinidock, "LayoutNavMinidock", never, {
|
|
265
|
+
"brand": {
|
|
266
|
+
"alias": "brand";
|
|
267
|
+
"required": true;
|
|
268
|
+
"isSignal": true;
|
|
269
|
+
};
|
|
270
|
+
"user": {
|
|
271
|
+
"alias": "user";
|
|
272
|
+
"required": true;
|
|
273
|
+
"isSignal": true;
|
|
274
|
+
};
|
|
275
|
+
"appearance": {
|
|
276
|
+
"alias": "appearance";
|
|
277
|
+
"required": false;
|
|
278
|
+
"isSignal": true;
|
|
279
|
+
};
|
|
280
|
+
}, {
|
|
281
|
+
"logout": "logout";
|
|
282
|
+
}, never, never, true, never>;
|
|
283
|
+
}
|
|
244
284
|
/**
|
|
245
285
|
* Nav type: a top bar with inline items (navbar, horizontal). `appearance` follows the
|
|
246
286
|
* shell (`flat | border-rail`). See {@link LayoutNavSidebar} for why
|
|
@@ -385,7 +425,7 @@ export declare class LayoutWrapperDefault {
|
|
|
385
425
|
readonly closeMobileNavLabel: import("@angular/core").InputSignal<string>;
|
|
386
426
|
/**
|
|
387
427
|
* The user pressed logout in the navigation footer. Forwarded from every nav type that
|
|
388
|
-
* shows the user identity (`sidebar`, `dockbar`, `navbar`, `flyout`), the mobile drawer
|
|
428
|
+
* shows the user identity (`sidebar`, `dockbar`, `minidock`, `navbar`, `flyout`), the mobile drawer
|
|
389
429
|
* included, so one binding covers all of them. The library calls no endpoint and performs
|
|
390
430
|
* no navigation; what happens next is entirely the consumer's.
|
|
391
431
|
*/
|
|
@@ -393,6 +433,7 @@ export declare class LayoutWrapperDefault {
|
|
|
393
433
|
private readonly identity;
|
|
394
434
|
private readonly navigation;
|
|
395
435
|
private readonly desktopNavigationDataOwner;
|
|
436
|
+
private readonly minidockMainDataOwner;
|
|
396
437
|
private readonly document;
|
|
397
438
|
protected readonly mobileNavTriggerRef: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
|
|
398
439
|
constructor();
|
|
@@ -405,6 +446,12 @@ export declare class LayoutWrapperDefault {
|
|
|
405
446
|
protected readonly effectiveLayoutType: import("@angular/core").Signal<"fluid" | "vertical" | "horizontal" | "empty">;
|
|
406
447
|
/** Tipe nav di dalam `#body`: `empty`/`fluid` → `brand` (header-only); selain itu `nav-type`. */
|
|
407
448
|
protected readonly navKind: import("@angular/core").Signal<NavKind>;
|
|
449
|
+
/** Minidock only accepts flat data, so grouped data is flattened before it reaches the rail. */
|
|
450
|
+
private readonly minidockData;
|
|
451
|
+
/** Data id of the desktop `<Navigation>`; its state id stays `main` for persistence. */
|
|
452
|
+
protected readonly desktopDataId: import("@angular/core").Signal<"main" | "main-minidock">;
|
|
453
|
+
/** Data of the desktop `<Navigation>`: flattened for minidock, unfiltered for every other type. */
|
|
454
|
+
protected readonly desktopData: import("@angular/core").Signal<readonly NavigationItem[]>;
|
|
408
455
|
/** Lebar host `<Navigation>`: penuh-tinggi (vertical) atau penuh-lebar (horizontal). */
|
|
409
456
|
protected readonly navClass: import("@angular/core").Signal<"w-full" | "h-full">;
|
|
410
457
|
protected readonly showsMobileNavigation: import("@angular/core").Signal<boolean>;
|