@ojiepermana/angular 0.1.1 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +41 -249
  2. package/fesm2022/ojiepermana-angular-chart.mjs +3714 -0
  3. package/fesm2022/ojiepermana-angular-chart.mjs.map +1 -0
  4. package/fesm2022/ojiepermana-angular-component.mjs +3463 -0
  5. package/fesm2022/ojiepermana-angular-component.mjs.map +1 -0
  6. package/fesm2022/ojiepermana-angular-layout.mjs +276 -408
  7. package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
  8. package/fesm2022/ojiepermana-angular-navigation.mjs +2198 -404
  9. package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -1
  10. package/fesm2022/ojiepermana-angular-theme.mjs +381 -1
  11. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  12. package/fesm2022/ojiepermana-angular.mjs +15 -1
  13. package/fesm2022/ojiepermana-angular.mjs.map +1 -1
  14. package/package.json +49 -36
  15. package/theme/styles/etos.css +38 -0
  16. package/theme/styles/index.css +32 -8
  17. package/theme/styles/themes/brand/etos/color.css +21 -0
  18. package/theme/styles/themes/brand/etos/style.css +50 -0
  19. package/theme/styles/themes/library/_components.css +63 -0
  20. package/theme/styles/themes/library/_layers.css +15 -0
  21. package/theme/styles/themes/library/_material-overrides.css +254 -0
  22. package/theme/styles/themes/library/_tokens.css +54 -0
  23. package/theme/styles/themes/library/color/amber.css +18 -0
  24. package/theme/styles/themes/library/color/blue.css +23 -0
  25. package/theme/styles/themes/library/color/green.css +18 -0
  26. package/theme/styles/themes/library/color/index.css +9 -0
  27. package/theme/styles/themes/library/color/purple.css +18 -0
  28. package/theme/styles/themes/library/color/red.css +18 -0
  29. package/theme/styles/themes/library/style/brutal.css +47 -0
  30. package/theme/styles/themes/library/style/default.css +51 -0
  31. package/theme/styles/themes/library/style/index.css +8 -0
  32. package/theme/styles/themes/library/style/sharp.css +47 -0
  33. package/theme/styles/themes/library/style/soft.css +47 -0
  34. package/theme/styles/themes/mode/dark.css +20 -0
  35. package/theme/styles/themes/mode/index.css +6 -0
  36. package/theme/styles/themes/mode/light.css +24 -0
  37. package/theme/styles/themes/taildwind.css +109 -0
  38. package/types/ojiepermana-angular-chart.d.ts +1094 -0
  39. package/types/ojiepermana-angular-component.d.ts +1174 -0
  40. package/types/ojiepermana-angular-layout.d.ts +123 -76
  41. package/types/ojiepermana-angular-navigation.d.ts +256 -116
  42. package/types/ojiepermana-angular-theme.d.ts +170 -1
  43. package/types/ojiepermana-angular.d.ts +2 -1
  44. package/fesm2022/ojiepermana-angular-internal.mjs +0 -489
  45. package/fesm2022/ojiepermana-angular-internal.mjs.map +0 -1
  46. package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs +0 -721
  47. package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs.map +0 -1
  48. package/fesm2022/ojiepermana-angular-navigation-vertical.mjs +0 -1647
  49. package/fesm2022/ojiepermana-angular-navigation-vertical.mjs.map +0 -1
  50. package/fesm2022/ojiepermana-angular-shell.mjs +0 -19
  51. package/fesm2022/ojiepermana-angular-shell.mjs.map +0 -1
  52. package/fesm2022/ojiepermana-angular-theme-component.mjs +0 -235
  53. package/fesm2022/ojiepermana-angular-theme-component.mjs.map +0 -1
  54. package/fesm2022/ojiepermana-angular-theme-directive.mjs +0 -29
  55. package/fesm2022/ojiepermana-angular-theme-directive.mjs.map +0 -1
  56. package/fesm2022/ojiepermana-angular-theme-service.mjs +0 -241
  57. package/fesm2022/ojiepermana-angular-theme-service.mjs.map +0 -1
  58. package/layout/README.md +0 -144
  59. package/layout/src/component/horizontal/horizontal.css +0 -130
  60. package/layout/src/component/vertical/vertical.css +0 -75
  61. package/layout/src/layout.css +0 -16
  62. package/navigation/README.md +0 -301
  63. package/navigation/horizontal/README.md +0 -49
  64. package/shell/README.md +0 -41
  65. package/styles/index.css +0 -2
  66. package/styles/resets.css +0 -22
  67. package/theme/README.md +0 -379
  68. package/theme/styles/adapters/material-ui/index.css +0 -205
  69. package/theme/styles/modes/dark.css +0 -84
  70. package/theme/styles/presets/colors/blue.css +0 -45
  71. package/theme/styles/presets/colors/brand.css +0 -52
  72. package/theme/styles/presets/colors/cyan.css +0 -45
  73. package/theme/styles/presets/colors/green.css +0 -45
  74. package/theme/styles/presets/colors/index.css +0 -7
  75. package/theme/styles/presets/colors/orange.css +0 -45
  76. package/theme/styles/presets/colors/purple.css +0 -45
  77. package/theme/styles/presets/colors/red.css +0 -45
  78. package/theme/styles/presets/styles/flat.css +0 -61
  79. package/theme/styles/presets/styles/glass.css +0 -28
  80. package/theme/styles/presets/styles/index.css +0 -2
  81. package/theme/styles/roles/index.css +0 -67
  82. package/theme/styles/tokens/foundation.css +0 -136
  83. package/theme/styles/tokens/semantic.css +0 -87
  84. package/theme/styles/utilities/index.css +0 -88
  85. package/types/ojiepermana-angular-internal.d.ts +0 -90
  86. package/types/ojiepermana-angular-navigation-horizontal.d.ts +0 -81
  87. package/types/ojiepermana-angular-navigation-vertical.d.ts +0 -262
  88. package/types/ojiepermana-angular-shell.d.ts +0 -14
  89. package/types/ojiepermana-angular-theme-component.d.ts +0 -46
  90. package/types/ojiepermana-angular-theme-directive.d.ts +0 -10
  91. package/types/ojiepermana-angular-theme-service.d.ts +0 -68
  92. /package/{navigation/vertical → chart}/README.md +0 -0
@@ -1,1647 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, DOCUMENT, ElementRef, Renderer2, EventEmitter, ViewChild, Output, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component, forwardRef } from '@angular/core';
3
- import { Router, NavigationEnd, RouterLink, RouterLinkActive } from '@angular/router';
4
- import { ReplaySubject, Subject, filter, takeUntil } from 'rxjs';
5
- import { NavigationService, shouldRenderNavigationItem, getNavigationItemAction, isNavigationRoutableItem } from '@ojiepermana/angular/navigation';
6
- import { trackNavigationTreeItem, NavigationItemContent, hasActiveNavigationDescendant, isNavigationTreeDescendant, NavigationTreeOutlet } from '@ojiepermana/angular/internal';
7
- import { NgClass, NgTemplateOutlet } from '@angular/common';
8
- import * as i1 from '@angular/material/tooltip';
9
- import { MatTooltipModule } from '@angular/material/tooltip';
10
-
11
- class VerticalNavigationBaseComponent {
12
- _changeDetectorRef = inject(ChangeDetectorRef);
13
- _document = inject(DOCUMENT);
14
- _elementRef = inject(ElementRef);
15
- _renderer2 = inject(Renderer2);
16
- _router = inject(Router);
17
- _navigationService = inject(NavigationService);
18
- autoCollapse = true;
19
- inner = false;
20
- mode = 'side';
21
- navigation = [];
22
- opened = true;
23
- position = 'left';
24
- transparentOverlay = false;
25
- appearanceChanged = new EventEmitter();
26
- modeChanged = new EventEmitter();
27
- openedChanged = new EventEmitter();
28
- positionChanged = new EventEmitter();
29
- _navigationContentEl;
30
- activeAsideItemId = null;
31
- onCollapsableItemCollapsed = new ReplaySubject(1);
32
- onCollapsableItemExpanded = new ReplaySubject(1);
33
- onRefreshed = new ReplaySubject(1);
34
- _animationsEnabled = false;
35
- _asideOverlay = null;
36
- _hovered = false;
37
- _mutationObserver;
38
- _overlay = null;
39
- _pendingTimeouts = [];
40
- _unsubscribeAll = new Subject();
41
- _overlayClickHandler = () => this.close();
42
- _asideOverlayClickHandler = () => this.closeAside();
43
- get hostClasses() {
44
- return {
45
- [`${this._componentPrefix}-animations-enabled`]: this._animationsEnabled,
46
- [`${this._componentPrefix}-appearance-${this.appearance}`]: true,
47
- [`${this._componentPrefix}-hover`]: this._hovered,
48
- [`${this._componentPrefix}-inner`]: this.inner,
49
- [`${this._componentPrefix}-mode-over`]: this.mode === 'over',
50
- [`${this._componentPrefix}-mode-side`]: this.mode === 'side',
51
- [`${this._componentPrefix}-opened`]: this.opened,
52
- [`${this._componentPrefix}-position-left`]: this.position === 'left',
53
- [`${this._componentPrefix}-position-right`]: this.position === 'right',
54
- };
55
- }
56
- get asideWrapperClass() {
57
- return this._asideWrapperClass;
58
- }
59
- activeAsideNavigationItem() {
60
- if (!this.activeAsideItemId) {
61
- return null;
62
- }
63
- const item = this._navigationService.getItem(this.activeAsideItemId, this.navigation);
64
- return item?.type === 'aside' ? item : null;
65
- }
66
- shouldRenderItem(item) {
67
- return shouldRenderNavigationItem(item);
68
- }
69
- onMouseenter() {
70
- this._enableAnimations();
71
- this._hovered = true;
72
- }
73
- onMouseleave() {
74
- this._enableAnimations();
75
- this._hovered = false;
76
- }
77
- ngOnChanges(changes) {
78
- if ('appearance' in changes) {
79
- this.appearanceChanged.emit(changes['appearance'].currentValue);
80
- }
81
- if ('mode' in changes) {
82
- const currentMode = changes['mode'].currentValue;
83
- const previousMode = changes['mode'].previousValue;
84
- this._disableAnimations();
85
- if (previousMode === 'over' && currentMode === 'side') {
86
- this._hideOverlay();
87
- }
88
- if (previousMode === 'side' && currentMode === 'over') {
89
- this.closeAside();
90
- if (this.opened) {
91
- this._showOverlay();
92
- }
93
- }
94
- this.modeChanged.emit(currentMode);
95
- this._setTimeout(() => {
96
- this._enableAnimations();
97
- }, 500);
98
- }
99
- if ('navigation' in changes) {
100
- this._changeDetectorRef.markForCheck();
101
- }
102
- if ('opened' in changes) {
103
- this._toggleOpened(changes['opened'].currentValue);
104
- }
105
- if ('position' in changes) {
106
- this.positionChanged.emit(changes['position'].currentValue);
107
- }
108
- }
109
- ngOnInit() {
110
- this._router.events
111
- .pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this._unsubscribeAll))
112
- .subscribe(() => {
113
- if (this.mode === 'over' && this.opened) {
114
- this.close();
115
- }
116
- if (this.mode === 'side' && this.activeAsideItemId) {
117
- this.closeAside();
118
- }
119
- });
120
- }
121
- ngAfterViewInit() {
122
- this._mutationObserver = new MutationObserver((mutations) => {
123
- mutations.forEach((mutation) => {
124
- const mutationTarget = mutation.target;
125
- if (mutation.attributeName === 'class') {
126
- if (mutationTarget.classList.contains('cdk-global-scrollblock')) {
127
- const top = parseInt(mutationTarget.style.top, 10);
128
- this._renderer2.setStyle(this._elementRef.nativeElement, 'margin-top', `${Math.abs(top)}px`);
129
- }
130
- else {
131
- this._renderer2.setStyle(this._elementRef.nativeElement, 'margin-top', null);
132
- }
133
- }
134
- });
135
- });
136
- this._mutationObserver.observe(this._document.documentElement, {
137
- attributes: true,
138
- attributeFilter: ['class'],
139
- });
140
- this._setTimeout(() => {
141
- if (!this._navigationContentEl) {
142
- return;
143
- }
144
- const activeItem = this._navigationContentEl.nativeElement.querySelector('.kit-navigation-item-active');
145
- if (activeItem) {
146
- activeItem.scrollIntoView({ behavior: 'smooth', block: 'center' });
147
- }
148
- });
149
- }
150
- ngOnDestroy() {
151
- if (this._mutationObserver) {
152
- this._mutationObserver.disconnect();
153
- }
154
- // Clear all pending timeouts to prevent memory leaks
155
- for (const id of this._pendingTimeouts) {
156
- clearTimeout(id);
157
- }
158
- this._pendingTimeouts = [];
159
- // Remove overlays synchronously on destroy
160
- this._removeOverlayElement(this._overlay, this._overlayClickHandler);
161
- this._overlay = null;
162
- this._removeOverlayElement(this._asideOverlay, this._asideOverlayClickHandler);
163
- this._asideOverlay = null;
164
- this._unsubscribeAll.next();
165
- this._unsubscribeAll.complete();
166
- this.onCollapsableItemCollapsed.complete();
167
- this.onCollapsableItemExpanded.complete();
168
- this.onRefreshed.complete();
169
- }
170
- refresh() {
171
- this._changeDetectorRef.markForCheck();
172
- this.onRefreshed.next(true);
173
- }
174
- open() {
175
- if (this.opened) {
176
- return;
177
- }
178
- this._toggleOpened(true);
179
- }
180
- close() {
181
- if (!this.opened) {
182
- return;
183
- }
184
- this.closeAside();
185
- this._toggleOpened(false);
186
- }
187
- toggle() {
188
- if (this.opened) {
189
- this.close();
190
- }
191
- else {
192
- this.open();
193
- }
194
- }
195
- openAside(item) {
196
- if (item.disabled || !item.id) {
197
- return;
198
- }
199
- this.activeAsideItemId = item.id;
200
- this._showAsideOverlay();
201
- this._changeDetectorRef.markForCheck();
202
- }
203
- closeAside() {
204
- this.activeAsideItemId = null;
205
- this._hideAsideOverlay();
206
- this._changeDetectorRef.markForCheck();
207
- }
208
- toggleAside(item) {
209
- if (this.activeAsideItemId === item.id) {
210
- this.closeAside();
211
- }
212
- else {
213
- this.openAside(item);
214
- }
215
- }
216
- trackByFn(index, item) {
217
- return trackNavigationTreeItem(index, item);
218
- }
219
- _enableAnimations() {
220
- if (this._animationsEnabled) {
221
- return;
222
- }
223
- this._animationsEnabled = true;
224
- }
225
- _disableAnimations() {
226
- if (!this._animationsEnabled) {
227
- return;
228
- }
229
- this._animationsEnabled = false;
230
- }
231
- _showOverlay() {
232
- if (this._overlay) {
233
- return;
234
- }
235
- this._overlay = this._renderer2.createElement('div');
236
- if (this._overlay) {
237
- this._overlay.classList.add(`${this._componentPrefix}-overlay`);
238
- if (this.transparentOverlay) {
239
- this._overlay.classList.add(`${this._componentPrefix}-overlay-transparent`);
240
- }
241
- this._renderer2.setStyle(this._overlay, 'opacity', '0');
242
- this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);
243
- this._overlay.addEventListener('click', this._overlayClickHandler);
244
- this._setTimeout(() => {
245
- if (this._overlay) {
246
- this._renderer2.setStyle(this._overlay, 'opacity', '1');
247
- }
248
- }, 10);
249
- }
250
- }
251
- _hideOverlay() {
252
- if (!this._overlay) {
253
- return;
254
- }
255
- this._renderer2.setStyle(this._overlay, 'opacity', '0');
256
- this._setTimeout(() => {
257
- if (this._overlay) {
258
- this._overlay.removeEventListener('click', this._overlayClickHandler);
259
- if (this._overlay.parentNode) {
260
- this._overlay.parentNode.removeChild(this._overlay);
261
- }
262
- this._overlay = null;
263
- }
264
- }, 300);
265
- }
266
- _showAsideOverlay() {
267
- if (this._asideOverlay) {
268
- return;
269
- }
270
- this._asideOverlay = this._renderer2.createElement('div');
271
- if (this._asideOverlay) {
272
- this._asideOverlay.classList.add(`${this._componentPrefix}-aside-overlay`);
273
- this._renderer2.setStyle(this._asideOverlay, 'opacity', '0');
274
- this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._asideOverlay);
275
- this._asideOverlay.addEventListener('click', this._asideOverlayClickHandler);
276
- this._setTimeout(() => {
277
- if (this._asideOverlay) {
278
- this._renderer2.setStyle(this._asideOverlay, 'opacity', '1');
279
- }
280
- }, 10);
281
- }
282
- }
283
- _hideAsideOverlay() {
284
- if (!this._asideOverlay) {
285
- return;
286
- }
287
- this._renderer2.setStyle(this._asideOverlay, 'opacity', '0');
288
- this._setTimeout(() => {
289
- if (this._asideOverlay) {
290
- this._asideOverlay.removeEventListener('click', this._asideOverlayClickHandler);
291
- if (this._asideOverlay.parentNode) {
292
- this._asideOverlay.parentNode.removeChild(this._asideOverlay);
293
- }
294
- this._asideOverlay = null;
295
- }
296
- }, 300);
297
- }
298
- _setTimeout(fn, delay) {
299
- const id = setTimeout(() => {
300
- const index = this._pendingTimeouts.indexOf(id);
301
- if (index > -1) {
302
- this._pendingTimeouts.splice(index, 1);
303
- }
304
- fn();
305
- }, delay);
306
- this._pendingTimeouts.push(id);
307
- }
308
- _removeOverlayElement(overlay, clickHandler) {
309
- if (!overlay) {
310
- return;
311
- }
312
- overlay.removeEventListener('click', clickHandler);
313
- if (overlay.parentNode) {
314
- overlay.parentNode.removeChild(overlay);
315
- }
316
- }
317
- _toggleOpened(open) {
318
- this.opened = open;
319
- this._enableAnimations();
320
- if (this.mode === 'over') {
321
- if (this.opened) {
322
- this._showOverlay();
323
- }
324
- else {
325
- this._hideOverlay();
326
- }
327
- }
328
- this.openedChanged.emit(open);
329
- }
330
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
331
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: VerticalNavigationBaseComponent, isStandalone: true, inputs: { autoCollapse: "autoCollapse", inner: "inner", mode: "mode", navigation: "navigation", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged" }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }], usesOnChanges: true, ngImport: i0 });
332
- }
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationBaseComponent, decorators: [{
334
- type: Directive
335
- }], propDecorators: { autoCollapse: [{
336
- type: Input
337
- }], inner: [{
338
- type: Input
339
- }], mode: [{
340
- type: Input
341
- }], navigation: [{
342
- type: Input
343
- }], opened: [{
344
- type: Input
345
- }], position: [{
346
- type: Input
347
- }], transparentOverlay: [{
348
- type: Input
349
- }], appearanceChanged: [{
350
- type: Output
351
- }], modeChanged: [{
352
- type: Output
353
- }], openedChanged: [{
354
- type: Output
355
- }], positionChanged: [{
356
- type: Output
357
- }], _navigationContentEl: [{
358
- type: ViewChild,
359
- args: ['navigationContent']
360
- }] } });
361
-
362
- class VerticalNavigationBasicItemComponent {
363
- _changeDetectorRef = inject(ChangeDetectorRef);
364
- _navigationComponent = inject(VerticalNavigationBaseComponent);
365
- _navigationService = inject(NavigationService);
366
- item;
367
- isActiveMatchOptions = {
368
- paths: 'subset',
369
- queryParams: 'subset',
370
- fragment: 'ignored',
371
- matrixParams: 'ignored',
372
- };
373
- _unsubscribeAll = new Subject();
374
- /**
375
- * On init
376
- */
377
- ngOnInit() {
378
- // Set the "isActiveMatchOptions" either from item's
379
- // "isActiveMatchOptions" or the equivalent form of
380
- // item's "exactMatch" option
381
- this.isActiveMatchOptions =
382
- this.item.isActiveMatchOptions ??
383
- (this.item.exactMatch
384
- ? { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' }
385
- : { paths: 'subset', queryParams: 'subset', fragment: 'ignored', matrixParams: 'ignored' });
386
- // Subscribe to onRefreshed on the navigation component
387
- this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
388
- // Mark for check
389
- this._changeDetectorRef.markForCheck();
390
- });
391
- }
392
- /**
393
- * On destroy
394
- */
395
- ngOnDestroy() {
396
- // Unsubscribe from all subscriptions
397
- this._unsubscribeAll.next();
398
- this._unsubscribeAll.complete();
399
- }
400
- hasAction() {
401
- return !!getNavigationItemAction(this.item);
402
- }
403
- markActive() {
404
- if (!this.item.id) {
405
- return;
406
- }
407
- this._navigationService.setActiveItem(this.item.id);
408
- }
409
- triggerAction() {
410
- this.markActive();
411
- getNavigationItemAction(this.item)?.(this.item);
412
- }
413
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationBasicItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
414
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: VerticalNavigationBasicItemComponent, isStandalone: true, selector: "vertical-navigation-basic-item", inputs: { item: "item" }, ngImport: i0, template: `
415
- <!-- Item wrapper -->
416
- <div
417
- class="vertical-navigation-item-wrapper"
418
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
419
- [ngClass]="item.classes?.wrapper">
420
- <!-- Item with an internal link -->
421
- @if (item.link && !item.externalLink && !hasAction() && !item.disabled) {
422
- <a
423
- class="kit-navigation-item"
424
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
425
- [routerLink]="[item.link]"
426
- [fragment]="item.fragment"
427
- [preserveFragment]="item.preserveFragment ?? false"
428
- [queryParams]="item.queryParams ?? null"
429
- [queryParamsHandling]="item.queryParamsHandling ?? null"
430
- [routerLinkActive]="'kit-navigation-item-active'"
431
- [routerLinkActiveOptions]="isActiveMatchOptions"
432
- [matTooltip]="item.tooltip || ''"
433
- (click)="markActive()">
434
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
435
- </a>
436
- }
437
-
438
- <!-- Item with an external link -->
439
- @if (item.link && item.externalLink && !hasAction() && !item.disabled) {
440
- <a
441
- class="kit-navigation-item"
442
- [href]="item.link"
443
- [target]="item.target || '_blank'"
444
- [matTooltip]="item.tooltip || ''"
445
- (click)="markActive()">
446
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
447
- </a>
448
- }
449
-
450
- <!-- Item with a function -->
451
- @if (!item.link && hasAction() && !item.disabled) {
452
- <div
453
- class="kit-navigation-item"
454
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
455
- [matTooltip]="item.tooltip || ''"
456
- role="button"
457
- tabindex="0"
458
- (click)="triggerAction()"
459
- (keydown.enter)="triggerAction()"
460
- (keydown.space)="$event.preventDefault(); triggerAction()">
461
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
462
- </div>
463
- }
464
-
465
- <!-- Item with an internal link and function -->
466
- @if (item.link && !item.externalLink && hasAction() && !item.disabled) {
467
- <a
468
- class="kit-navigation-item"
469
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
470
- [routerLink]="[item.link]"
471
- [fragment]="item.fragment"
472
- [preserveFragment]="item.preserveFragment ?? false"
473
- [queryParams]="item.queryParams ?? null"
474
- [queryParamsHandling]="item.queryParamsHandling ?? null"
475
- [routerLinkActive]="'kit-navigation-item-active'"
476
- [routerLinkActiveOptions]="isActiveMatchOptions"
477
- [matTooltip]="item.tooltip || ''"
478
- (click)="triggerAction()">
479
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
480
- </a>
481
- }
482
-
483
- <!-- Item with an external link and function -->
484
- @if (item.link && item.externalLink && hasAction() && !item.disabled) {
485
- <a
486
- class="kit-navigation-item"
487
- [href]="item.link"
488
- [target]="item.target || '_blank'"
489
- [matTooltip]="item.tooltip || ''"
490
- (click)="triggerAction()">
491
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
492
- </a>
493
- }
494
-
495
- <!-- Item with no link and no function -->
496
- @if (!item.link && !hasAction() && !item.disabled) {
497
- <div
498
- class="kit-navigation-item"
499
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
500
- [matTooltip]="item.tooltip || ''">
501
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
502
- </div>
503
- }
504
-
505
- <!-- Item is disabled -->
506
- @if (item.disabled) {
507
- <div class="kit-navigation-item kit-navigation-item-disabled" [matTooltip]="item.tooltip || ''">
508
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
509
- </div>
510
- }
511
- </div>
512
-
513
- <!-- Item template -->
514
- <ng-template #itemTemplate>
515
- <navigation-item-content [item]="item" variant="vertical"></navigation-item-content>
516
- </ng-template>
517
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: NavigationItemContent, selector: "navigation-item-content", inputs: ["item", "level", "variant"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
518
- }
519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationBasicItemComponent, decorators: [{
520
- type: Component,
521
- args: [{
522
- selector: 'vertical-navigation-basic-item',
523
- template: `
524
- <!-- Item wrapper -->
525
- <div
526
- class="vertical-navigation-item-wrapper"
527
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
528
- [ngClass]="item.classes?.wrapper">
529
- <!-- Item with an internal link -->
530
- @if (item.link && !item.externalLink && !hasAction() && !item.disabled) {
531
- <a
532
- class="kit-navigation-item"
533
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
534
- [routerLink]="[item.link]"
535
- [fragment]="item.fragment"
536
- [preserveFragment]="item.preserveFragment ?? false"
537
- [queryParams]="item.queryParams ?? null"
538
- [queryParamsHandling]="item.queryParamsHandling ?? null"
539
- [routerLinkActive]="'kit-navigation-item-active'"
540
- [routerLinkActiveOptions]="isActiveMatchOptions"
541
- [matTooltip]="item.tooltip || ''"
542
- (click)="markActive()">
543
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
544
- </a>
545
- }
546
-
547
- <!-- Item with an external link -->
548
- @if (item.link && item.externalLink && !hasAction() && !item.disabled) {
549
- <a
550
- class="kit-navigation-item"
551
- [href]="item.link"
552
- [target]="item.target || '_blank'"
553
- [matTooltip]="item.tooltip || ''"
554
- (click)="markActive()">
555
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
556
- </a>
557
- }
558
-
559
- <!-- Item with a function -->
560
- @if (!item.link && hasAction() && !item.disabled) {
561
- <div
562
- class="kit-navigation-item"
563
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
564
- [matTooltip]="item.tooltip || ''"
565
- role="button"
566
- tabindex="0"
567
- (click)="triggerAction()"
568
- (keydown.enter)="triggerAction()"
569
- (keydown.space)="$event.preventDefault(); triggerAction()">
570
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
571
- </div>
572
- }
573
-
574
- <!-- Item with an internal link and function -->
575
- @if (item.link && !item.externalLink && hasAction() && !item.disabled) {
576
- <a
577
- class="kit-navigation-item"
578
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
579
- [routerLink]="[item.link]"
580
- [fragment]="item.fragment"
581
- [preserveFragment]="item.preserveFragment ?? false"
582
- [queryParams]="item.queryParams ?? null"
583
- [queryParamsHandling]="item.queryParamsHandling ?? null"
584
- [routerLinkActive]="'kit-navigation-item-active'"
585
- [routerLinkActiveOptions]="isActiveMatchOptions"
586
- [matTooltip]="item.tooltip || ''"
587
- (click)="triggerAction()">
588
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
589
- </a>
590
- }
591
-
592
- <!-- Item with an external link and function -->
593
- @if (item.link && item.externalLink && hasAction() && !item.disabled) {
594
- <a
595
- class="kit-navigation-item"
596
- [href]="item.link"
597
- [target]="item.target || '_blank'"
598
- [matTooltip]="item.tooltip || ''"
599
- (click)="triggerAction()">
600
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
601
- </a>
602
- }
603
-
604
- <!-- Item with no link and no function -->
605
- @if (!item.link && !hasAction() && !item.disabled) {
606
- <div
607
- class="kit-navigation-item"
608
- [ngClass]="{ 'kit-navigation-item-active-forced': item.active }"
609
- [matTooltip]="item.tooltip || ''">
610
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
611
- </div>
612
- }
613
-
614
- <!-- Item is disabled -->
615
- @if (item.disabled) {
616
- <div class="kit-navigation-item kit-navigation-item-disabled" [matTooltip]="item.tooltip || ''">
617
- <ng-container *ngTemplateOutlet="itemTemplate"></ng-container>
618
- </div>
619
- }
620
- </div>
621
-
622
- <!-- Item template -->
623
- <ng-template #itemTemplate>
624
- <navigation-item-content [item]="item" variant="vertical"></navigation-item-content>
625
- </ng-template>
626
- `,
627
- encapsulation: ViewEncapsulation.None,
628
- changeDetection: ChangeDetectionStrategy.OnPush,
629
- imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive, NavigationItemContent, MatTooltipModule],
630
- }]
631
- }], propDecorators: { item: [{
632
- type: Input
633
- }] } });
634
-
635
- class VerticalNavigationDividerItemComponent {
636
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationDividerItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
637
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: VerticalNavigationDividerItemComponent, isStandalone: true, selector: "vertical-navigation-divider-item", ngImport: i0, template: '<div class="vertical-navigation-divider"></div>', isInline: true, styles: [".vertical-navigation-divider{height:1px;margin:12px 16px;background:rgb(var(--border))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
638
- }
639
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationDividerItemComponent, decorators: [{
640
- type: Component,
641
- args: [{ selector: 'vertical-navigation-divider-item', template: '<div class="vertical-navigation-divider"></div>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".vertical-navigation-divider{height:1px;margin:12px 16px;background:rgb(var(--border))}\n"] }]
642
- }] });
643
-
644
- class VerticalNavigationSpacerItemComponent {
645
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationSpacerItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
646
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: VerticalNavigationSpacerItemComponent, isStandalone: true, selector: "vertical-navigation-spacer-item", ngImport: i0, template: '<div class="vertical-navigation-spacer"></div>', isInline: true, styles: [".vertical-navigation-spacer{flex:1 1 auto;min-height:24px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
647
- }
648
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationSpacerItemComponent, decorators: [{
649
- type: Component,
650
- args: [{ selector: 'vertical-navigation-spacer-item', template: '<div class="vertical-navigation-spacer"></div>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".vertical-navigation-spacer{flex:1 1 auto;min-height:24px}\n"] }]
651
- }] });
652
-
653
- class VerticalNavigationCollapsableItemComponent {
654
- _changeDetectorRef = inject(ChangeDetectorRef);
655
- _navigationComponent = inject(VerticalNavigationBaseComponent);
656
- _navigationService = inject(NavigationService);
657
- _router = inject(Router);
658
- autoCollapse = true;
659
- item;
660
- isCollapsed = true;
661
- treeTrackByFn = trackNavigationTreeItem;
662
- treeShouldRenderItemFn = shouldRenderNavigationItem;
663
- get isExpanded() {
664
- return !this.isCollapsed;
665
- }
666
- _unsubscribeAll = new Subject();
667
- /**
668
- * On init
669
- */
670
- ngOnInit() {
671
- if (this._shouldExpand()) {
672
- this.expand();
673
- }
674
- // Otherwise...
675
- else {
676
- // If the autoCollapse is on, collapse...
677
- if (this.autoCollapse) {
678
- this.collapse();
679
- }
680
- }
681
- // Listen for the onCollapsableItemCollapsed from the service
682
- this._navigationComponent.onCollapsableItemCollapsed
683
- .pipe(takeUntil(this._unsubscribeAll))
684
- .subscribe((collapsedItem) => {
685
- // Check if the collapsed item is null
686
- if (collapsedItem === null) {
687
- return;
688
- }
689
- // Collapse if this is a children of the collapsed item
690
- if (this._isChildrenOf(collapsedItem, this.item)) {
691
- this.collapse();
692
- }
693
- });
694
- // Listen for the onCollapsableItemExpanded from the service if the autoCollapse is on
695
- if (this.autoCollapse) {
696
- this._navigationComponent.onCollapsableItemExpanded
697
- .pipe(takeUntil(this._unsubscribeAll))
698
- .subscribe((expandedItem) => {
699
- // Check if the expanded item is null
700
- if (expandedItem === null) {
701
- return;
702
- }
703
- // Check if this is a parent of the expanded item
704
- if (this._isChildrenOf(this.item, expandedItem)) {
705
- return;
706
- }
707
- // Check if this has a children with a matching url with the current active url
708
- if (this._hasActiveChild(this.item)) {
709
- return;
710
- }
711
- // Check if this is the expanded item
712
- if (this.item === expandedItem) {
713
- return;
714
- }
715
- // If none of the above conditions are matched, collapse this item
716
- this.collapse();
717
- });
718
- }
719
- // Attach a listener to the NavigationEnd event
720
- this._router.events
721
- .pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this._unsubscribeAll))
722
- .subscribe(() => {
723
- if (this._shouldExpand()) {
724
- this.expand();
725
- }
726
- // Otherwise...
727
- else {
728
- // If the autoCollapse is on, collapse...
729
- if (this.autoCollapse) {
730
- this.collapse();
731
- }
732
- }
733
- });
734
- // Subscribe to onRefreshed on the navigation component
735
- this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
736
- // Mark for check
737
- this._changeDetectorRef.markForCheck();
738
- });
739
- }
740
- /**
741
- * On destroy
742
- */
743
- ngOnDestroy() {
744
- // Unsubscribe from all subscriptions
745
- this._unsubscribeAll.next();
746
- this._unsubscribeAll.complete();
747
- }
748
- /**
749
- * Collapse
750
- */
751
- collapse() {
752
- // Return if the item is disabled
753
- if (this.item.disabled) {
754
- return;
755
- }
756
- // Return if the item is already collapsed
757
- if (this.isCollapsed) {
758
- return;
759
- }
760
- // Collapse it
761
- this.isCollapsed = true;
762
- if (this.item.id) {
763
- this._navigationService.collapseItem(this.item.id);
764
- }
765
- // Mark for check
766
- this._changeDetectorRef.markForCheck();
767
- // Execute the observable
768
- this._navigationComponent.onCollapsableItemCollapsed.next(this.item);
769
- }
770
- /**
771
- * Expand
772
- */
773
- expand() {
774
- // Return if the item is disabled
775
- if (this.item.disabled) {
776
- return;
777
- }
778
- // Return if the item is already expanded
779
- if (!this.isCollapsed) {
780
- return;
781
- }
782
- // Expand it
783
- this.isCollapsed = false;
784
- if (this.item.id) {
785
- this._navigationService.expandItem(this.item.id);
786
- }
787
- // Mark for check
788
- this._changeDetectorRef.markForCheck();
789
- // Execute the observable
790
- this._navigationComponent.onCollapsableItemExpanded.next(this.item);
791
- }
792
- /**
793
- * Toggle collapsable
794
- */
795
- toggleCollapsable() {
796
- // Toggle collapse/expand
797
- if (this.isCollapsed) {
798
- this.expand();
799
- }
800
- else {
801
- this.collapse();
802
- }
803
- }
804
- /**
805
- * Track by function for ngFor loops
806
- */
807
- trackByFn(index, item) {
808
- return trackNavigationTreeItem(index, item);
809
- }
810
- shouldRenderItem(item) {
811
- return shouldRenderNavigationItem(item);
812
- }
813
- get treeTemplateData() {
814
- return { autoCollapse: this.autoCollapse };
815
- }
816
- /**
817
- * Check if the given item has the given url in one of its children
818
- */
819
- _hasActiveChild(item) {
820
- return hasActiveNavigationDescendant(item, (child) => isNavigationRoutableItem(child) && !!child.link && this._router.isActive(child.link, child.exactMatch || false));
821
- }
822
- _shouldExpand() {
823
- return this._hasActiveChild(this.item) || (!!this.item.id && this._navigationService.isItemExpanded(this.item.id));
824
- }
825
- /**
826
- * Check if this is a children of the given item
827
- */
828
- _isChildrenOf(parent, item) {
829
- return isNavigationTreeDescendant(parent, item);
830
- }
831
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationCollapsableItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
832
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: VerticalNavigationCollapsableItemComponent, isStandalone: true, selector: "vertical-navigation-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item" }, host: { properties: { "class.vertical-navigation-item-collapsed": "isCollapsed", "class.vertical-navigation-item-expanded": "isExpanded" } }, ngImport: i0, template: `
833
- <div
834
- class="vertical-navigation-item-wrapper"
835
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
836
- [ngClass]="item.classes?.wrapper">
837
- <div
838
- class="kit-navigation-item"
839
- [ngClass]="{
840
- 'kit-navigation-item-disabled': item.disabled,
841
- 'kit-navigation-item-expanded': isExpanded,
842
- }"
843
- [matTooltip]="item.tooltip || ''"
844
- role="button"
845
- tabindex="0"
846
- (click)="toggleCollapsable()"
847
- (keydown.enter)="toggleCollapsable()"
848
- (keydown.space)="$event.preventDefault(); toggleCollapsable()">
849
- <navigation-item-content [item]="item" variant="vertical"></navigation-item-content>
850
- <!-- State dot -->
851
- <span class="kit-navigation-item-dot" aria-hidden="true"></span>
852
- </div>
853
- </div>
854
-
855
- <!-- Children (with CSS transition instead of animation) -->
856
- <div
857
- class="kit-navigation-item-children"
858
- [class.kit-navigation-item-children-expanded]="!isCollapsed"
859
- [class.kit-navigation-item-children-collapsed]="isCollapsed">
860
- @if (!isCollapsed) {
861
- <navigation-tree-outlet
862
- [items]="item.children"
863
- [data]="treeTemplateData"
864
- [branchTemplate]="branchItem"
865
- [leafTemplate]="leafItem"
866
- [groupTemplate]="groupItem"
867
- [dividerTemplate]="dividerItem"
868
- [spacerTemplate]="spacerItem"
869
- [trackByFn]="treeTrackByFn"
870
- [shouldRenderItemFn]="treeShouldRenderItemFn" />
871
- }
872
- </div>
873
-
874
- <ng-template #branchItem let-child let-data="data">
875
- @if (child.type === 'aside') {
876
- <vertical-navigation-aside-item [item]="child" [autoCollapse]="data?.['autoCollapse'] === true">
877
- </vertical-navigation-aside-item>
878
- } @else {
879
- <vertical-navigation-collapsable-item [item]="child" [autoCollapse]="data?.['autoCollapse'] !== false">
880
- </vertical-navigation-collapsable-item>
881
- }
882
- </ng-template>
883
-
884
- <ng-template #leafItem let-child>
885
- <vertical-navigation-basic-item [item]="child"></vertical-navigation-basic-item>
886
- </ng-template>
887
-
888
- <ng-template #groupItem let-child let-data="data">
889
- <div
890
- class="vertical-navigation-item-wrapper"
891
- [class.vertical-navigation-item-has-subtitle]="!!child.subtitle"
892
- [ngClass]="child.classes?.wrapper">
893
- <div class="kit-navigation-group-header">
894
- <navigation-item-content [item]="child" variant="vertical-group"></navigation-item-content>
895
- </div>
896
- </div>
897
- </ng-template>
898
-
899
- <ng-template #dividerItem>
900
- <vertical-navigation-divider-item></vertical-navigation-divider-item>
901
- </ng-template>
902
-
903
- <ng-template #spacerItem>
904
- <vertical-navigation-spacer-item></vertical-navigation-spacer-item>
905
- </ng-template>
906
- `, isInline: true, styles: [".kit-navigation-item-dot{margin-left:auto;width:.5rem;height:.5rem;flex-shrink:0;border-radius:9999px;background:#9ca3af;opacity:.85;transition:background-color .18s ease,transform .18s ease,opacity .18s ease}.kit-navigation-item:hover .kit-navigation-item-dot{opacity:1}.kit-navigation-item.kit-navigation-item-expanded .kit-navigation-item-dot{background:#16a34a;opacity:1;transform:scale(1.1)}.kit-navigation-item-children{overflow:hidden;max-height:0;opacity:0;transition:max-height .3s cubic-bezier(.25,.8,.25,1),opacity .3s cubic-bezier(.25,.8,.25,1)}.kit-navigation-item-children-expanded{max-height:2000px;opacity:1}.kit-navigation-item-children-collapsed{max-height:0;opacity:0}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => VerticalNavigationCollapsableItemComponent), selector: "vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatTooltipModule) }, { kind: "directive", type: i0.forwardRef(() => i1.MatTooltip), selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i0.forwardRef(() => NavigationItemContent), selector: "navigation-item-content", inputs: ["item", "level", "variant"] }, { kind: "component", type: i0.forwardRef(() => NavigationTreeOutlet), selector: "navigation-tree-outlet", inputs: ["items", "level", "parentKey", "data", "branchTemplate", "leafTemplate", "groupTemplate", "dividerTemplate", "spacerTemplate", "trackByFn", "shouldRenderItemFn", "hasChildrenFn", "resolveParentKeyFn"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationAsideItemComponent), selector: "vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "skipChildren"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationBasicItemComponent), selector: "vertical-navigation-basic-item", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationDividerItemComponent), selector: "vertical-navigation-divider-item" }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationSpacerItemComponent), selector: "vertical-navigation-spacer-item" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
907
- }
908
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationCollapsableItemComponent, decorators: [{
909
- type: Component,
910
- args: [{ selector: 'vertical-navigation-collapsable-item', template: `
911
- <div
912
- class="vertical-navigation-item-wrapper"
913
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
914
- [ngClass]="item.classes?.wrapper">
915
- <div
916
- class="kit-navigation-item"
917
- [ngClass]="{
918
- 'kit-navigation-item-disabled': item.disabled,
919
- 'kit-navigation-item-expanded': isExpanded,
920
- }"
921
- [matTooltip]="item.tooltip || ''"
922
- role="button"
923
- tabindex="0"
924
- (click)="toggleCollapsable()"
925
- (keydown.enter)="toggleCollapsable()"
926
- (keydown.space)="$event.preventDefault(); toggleCollapsable()">
927
- <navigation-item-content [item]="item" variant="vertical"></navigation-item-content>
928
- <!-- State dot -->
929
- <span class="kit-navigation-item-dot" aria-hidden="true"></span>
930
- </div>
931
- </div>
932
-
933
- <!-- Children (with CSS transition instead of animation) -->
934
- <div
935
- class="kit-navigation-item-children"
936
- [class.kit-navigation-item-children-expanded]="!isCollapsed"
937
- [class.kit-navigation-item-children-collapsed]="isCollapsed">
938
- @if (!isCollapsed) {
939
- <navigation-tree-outlet
940
- [items]="item.children"
941
- [data]="treeTemplateData"
942
- [branchTemplate]="branchItem"
943
- [leafTemplate]="leafItem"
944
- [groupTemplate]="groupItem"
945
- [dividerTemplate]="dividerItem"
946
- [spacerTemplate]="spacerItem"
947
- [trackByFn]="treeTrackByFn"
948
- [shouldRenderItemFn]="treeShouldRenderItemFn" />
949
- }
950
- </div>
951
-
952
- <ng-template #branchItem let-child let-data="data">
953
- @if (child.type === 'aside') {
954
- <vertical-navigation-aside-item [item]="child" [autoCollapse]="data?.['autoCollapse'] === true">
955
- </vertical-navigation-aside-item>
956
- } @else {
957
- <vertical-navigation-collapsable-item [item]="child" [autoCollapse]="data?.['autoCollapse'] !== false">
958
- </vertical-navigation-collapsable-item>
959
- }
960
- </ng-template>
961
-
962
- <ng-template #leafItem let-child>
963
- <vertical-navigation-basic-item [item]="child"></vertical-navigation-basic-item>
964
- </ng-template>
965
-
966
- <ng-template #groupItem let-child let-data="data">
967
- <div
968
- class="vertical-navigation-item-wrapper"
969
- [class.vertical-navigation-item-has-subtitle]="!!child.subtitle"
970
- [ngClass]="child.classes?.wrapper">
971
- <div class="kit-navigation-group-header">
972
- <navigation-item-content [item]="child" variant="vertical-group"></navigation-item-content>
973
- </div>
974
- </div>
975
- </ng-template>
976
-
977
- <ng-template #dividerItem>
978
- <vertical-navigation-divider-item></vertical-navigation-divider-item>
979
- </ng-template>
980
-
981
- <ng-template #spacerItem>
982
- <vertical-navigation-spacer-item></vertical-navigation-spacer-item>
983
- </ng-template>
984
- `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
985
- NgClass,
986
- MatTooltipModule,
987
- NavigationItemContent,
988
- NavigationTreeOutlet,
989
- forwardRef(() => VerticalNavigationAsideItemComponent),
990
- VerticalNavigationBasicItemComponent,
991
- forwardRef(() => VerticalNavigationCollapsableItemComponent),
992
- VerticalNavigationDividerItemComponent,
993
- VerticalNavigationSpacerItemComponent,
994
- ], host: {
995
- '[class.vertical-navigation-item-collapsed]': 'isCollapsed',
996
- '[class.vertical-navigation-item-expanded]': 'isExpanded',
997
- }, styles: [".kit-navigation-item-dot{margin-left:auto;width:.5rem;height:.5rem;flex-shrink:0;border-radius:9999px;background:#9ca3af;opacity:.85;transition:background-color .18s ease,transform .18s ease,opacity .18s ease}.kit-navigation-item:hover .kit-navigation-item-dot{opacity:1}.kit-navigation-item.kit-navigation-item-expanded .kit-navigation-item-dot{background:#16a34a;opacity:1;transform:scale(1.1)}.kit-navigation-item-children{overflow:hidden;max-height:0;opacity:0;transition:max-height .3s cubic-bezier(.25,.8,.25,1),opacity .3s cubic-bezier(.25,.8,.25,1)}.kit-navigation-item-children-expanded{max-height:2000px;opacity:1}.kit-navigation-item-children-collapsed{max-height:0;opacity:0}\n"] }]
998
- }], propDecorators: { autoCollapse: [{
999
- type: Input
1000
- }], item: [{
1001
- type: Input
1002
- }] } });
1003
-
1004
- class VerticalNavigationAsideItemComponent {
1005
- _changeDetectorRef = inject(ChangeDetectorRef);
1006
- _navigationComponent = inject(VerticalNavigationBaseComponent);
1007
- _router = inject(Router);
1008
- activeItemId;
1009
- autoCollapse = true;
1010
- item;
1011
- skipChildren = false;
1012
- active = false;
1013
- treeTrackByFn = trackNavigationTreeItem;
1014
- treeShouldRenderItemFn = shouldRenderNavigationItem;
1015
- _unsubscribeAll = new Subject();
1016
- /**
1017
- * On changes
1018
- */
1019
- ngOnChanges(changes) {
1020
- // Active item id
1021
- if ('activeItemId' in changes) {
1022
- // Mark if active
1023
- this._markIfActive();
1024
- }
1025
- }
1026
- /**
1027
- * On init
1028
- */
1029
- ngOnInit() {
1030
- // Mark if active
1031
- this._markIfActive();
1032
- // Attach a listener to the NavigationEnd event
1033
- this._router.events
1034
- .pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this._unsubscribeAll))
1035
- .subscribe(() => {
1036
- // Mark if active
1037
- this._markIfActive();
1038
- });
1039
- // Subscribe to onRefreshed on the navigation component
1040
- this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
1041
- // Mark for check
1042
- this._changeDetectorRef.markForCheck();
1043
- });
1044
- }
1045
- /**
1046
- * On destroy
1047
- */
1048
- ngOnDestroy() {
1049
- // Unsubscribe from all subscriptions
1050
- this._unsubscribeAll.next();
1051
- this._unsubscribeAll.complete();
1052
- }
1053
- /**
1054
- * Track by function for ngFor loops
1055
- */
1056
- trackByFn(index, item) {
1057
- return trackNavigationTreeItem(index, item);
1058
- }
1059
- shouldRenderItem(item) {
1060
- return shouldRenderNavigationItem(item);
1061
- }
1062
- get treeTemplateData() {
1063
- return { autoCollapse: this.autoCollapse };
1064
- }
1065
- /**
1066
- * Check if the given item has the given url in one of its children
1067
- */
1068
- _hasActiveChild(item) {
1069
- return hasActiveNavigationDescendant(item, (child) => child.type === 'basic' && !!child.link && this._router.isActive(child.link, child.exactMatch || false));
1070
- }
1071
- /**
1072
- * Decide and mark if the item is active
1073
- */
1074
- _markIfActive() {
1075
- // Check if the activeItemId is equals to this item id
1076
- this.active = this.activeItemId === this.item.id;
1077
- // If the aside has a children that is active, always mark it as active
1078
- if (this._hasActiveChild(this.item)) {
1079
- this.active = true;
1080
- }
1081
- // Mark for check
1082
- this._changeDetectorRef.markForCheck();
1083
- }
1084
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationAsideItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1085
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: VerticalNavigationAsideItemComponent, isStandalone: true, selector: "vertical-navigation-aside-item", inputs: { activeItemId: "activeItemId", autoCollapse: "autoCollapse", item: "item", skipChildren: "skipChildren" }, usesOnChanges: true, ngImport: i0, template: `
1086
- <div
1087
- class="vertical-navigation-item-wrapper"
1088
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
1089
- [ngClass]="item.classes?.wrapper">
1090
- <div
1091
- class="kit-navigation-item"
1092
- [ngClass]="{
1093
- 'kit-navigation-item-active': active,
1094
- 'kit-navigation-item-disabled': item.disabled,
1095
- 'kit-navigation-item-active-forced': item.active,
1096
- }"
1097
- [matTooltip]="item.tooltip || ''">
1098
- <navigation-item-content [item]="item" variant="vertical"></navigation-item-content>
1099
- </div>
1100
- </div>
1101
-
1102
- <!-- Children -->
1103
- @if (!skipChildren) {
1104
- <div class="kit-navigation-item-children">
1105
- <navigation-tree-outlet
1106
- [items]="item.children"
1107
- [data]="treeTemplateData"
1108
- [branchTemplate]="branchItem"
1109
- [leafTemplate]="leafItem"
1110
- [groupTemplate]="groupItem"
1111
- [dividerTemplate]="dividerItem"
1112
- [spacerTemplate]="spacerItem"
1113
- [trackByFn]="treeTrackByFn"
1114
- [shouldRenderItemFn]="treeShouldRenderItemFn" />
1115
- </div>
1116
- }
1117
-
1118
- <ng-template #branchItem let-child let-data="data">
1119
- @if (child.type === 'aside') {
1120
- <vertical-navigation-aside-item [item]="child" [autoCollapse]="data?.['autoCollapse'] === true">
1121
- </vertical-navigation-aside-item>
1122
- } @else {
1123
- <vertical-navigation-collapsable-item [item]="child" [autoCollapse]="data?.['autoCollapse'] !== false">
1124
- </vertical-navigation-collapsable-item>
1125
- }
1126
- </ng-template>
1127
-
1128
- <ng-template #leafItem let-child>
1129
- <vertical-navigation-basic-item [item]="child"></vertical-navigation-basic-item>
1130
- </ng-template>
1131
-
1132
- <ng-template #groupItem let-child>
1133
- <div
1134
- class="vertical-navigation-item-wrapper"
1135
- [class.vertical-navigation-item-has-subtitle]="!!child.subtitle"
1136
- [ngClass]="child.classes?.wrapper">
1137
- <div class="kit-navigation-group-header">
1138
- <navigation-item-content [item]="child" variant="vertical-group"></navigation-item-content>
1139
- </div>
1140
- </div>
1141
- </ng-template>
1142
-
1143
- <ng-template #dividerItem>
1144
- <vertical-navigation-divider-item></vertical-navigation-divider-item>
1145
- </ng-template>
1146
-
1147
- <ng-template #spacerItem>
1148
- <vertical-navigation-spacer-item></vertical-navigation-spacer-item>
1149
- </ng-template>
1150
- `, isInline: true, dependencies: [{ kind: "component", type: i0.forwardRef(() => VerticalNavigationAsideItemComponent), selector: "vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "skipChildren"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatTooltipModule) }, { kind: "directive", type: i0.forwardRef(() => i1.MatTooltip), selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i0.forwardRef(() => NavigationItemContent), selector: "navigation-item-content", inputs: ["item", "level", "variant"] }, { kind: "component", type: i0.forwardRef(() => NavigationTreeOutlet), selector: "navigation-tree-outlet", inputs: ["items", "level", "parentKey", "data", "branchTemplate", "leafTemplate", "groupTemplate", "dividerTemplate", "spacerTemplate", "trackByFn", "shouldRenderItemFn", "hasChildrenFn", "resolveParentKeyFn"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationBasicItemComponent), selector: "vertical-navigation-basic-item", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationCollapsableItemComponent), selector: "vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationDividerItemComponent), selector: "vertical-navigation-divider-item" }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationSpacerItemComponent), selector: "vertical-navigation-spacer-item" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1151
- }
1152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationAsideItemComponent, decorators: [{
1153
- type: Component,
1154
- args: [{
1155
- selector: 'vertical-navigation-aside-item',
1156
- template: `
1157
- <div
1158
- class="vertical-navigation-item-wrapper"
1159
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
1160
- [ngClass]="item.classes?.wrapper">
1161
- <div
1162
- class="kit-navigation-item"
1163
- [ngClass]="{
1164
- 'kit-navigation-item-active': active,
1165
- 'kit-navigation-item-disabled': item.disabled,
1166
- 'kit-navigation-item-active-forced': item.active,
1167
- }"
1168
- [matTooltip]="item.tooltip || ''">
1169
- <navigation-item-content [item]="item" variant="vertical"></navigation-item-content>
1170
- </div>
1171
- </div>
1172
-
1173
- <!-- Children -->
1174
- @if (!skipChildren) {
1175
- <div class="kit-navigation-item-children">
1176
- <navigation-tree-outlet
1177
- [items]="item.children"
1178
- [data]="treeTemplateData"
1179
- [branchTemplate]="branchItem"
1180
- [leafTemplate]="leafItem"
1181
- [groupTemplate]="groupItem"
1182
- [dividerTemplate]="dividerItem"
1183
- [spacerTemplate]="spacerItem"
1184
- [trackByFn]="treeTrackByFn"
1185
- [shouldRenderItemFn]="treeShouldRenderItemFn" />
1186
- </div>
1187
- }
1188
-
1189
- <ng-template #branchItem let-child let-data="data">
1190
- @if (child.type === 'aside') {
1191
- <vertical-navigation-aside-item [item]="child" [autoCollapse]="data?.['autoCollapse'] === true">
1192
- </vertical-navigation-aside-item>
1193
- } @else {
1194
- <vertical-navigation-collapsable-item [item]="child" [autoCollapse]="data?.['autoCollapse'] !== false">
1195
- </vertical-navigation-collapsable-item>
1196
- }
1197
- </ng-template>
1198
-
1199
- <ng-template #leafItem let-child>
1200
- <vertical-navigation-basic-item [item]="child"></vertical-navigation-basic-item>
1201
- </ng-template>
1202
-
1203
- <ng-template #groupItem let-child>
1204
- <div
1205
- class="vertical-navigation-item-wrapper"
1206
- [class.vertical-navigation-item-has-subtitle]="!!child.subtitle"
1207
- [ngClass]="child.classes?.wrapper">
1208
- <div class="kit-navigation-group-header">
1209
- <navigation-item-content [item]="child" variant="vertical-group"></navigation-item-content>
1210
- </div>
1211
- </div>
1212
- </ng-template>
1213
-
1214
- <ng-template #dividerItem>
1215
- <vertical-navigation-divider-item></vertical-navigation-divider-item>
1216
- </ng-template>
1217
-
1218
- <ng-template #spacerItem>
1219
- <vertical-navigation-spacer-item></vertical-navigation-spacer-item>
1220
- </ng-template>
1221
- `,
1222
- encapsulation: ViewEncapsulation.None,
1223
- changeDetection: ChangeDetectionStrategy.OnPush,
1224
- imports: [
1225
- NgClass,
1226
- MatTooltipModule,
1227
- NavigationItemContent,
1228
- NavigationTreeOutlet,
1229
- VerticalNavigationBasicItemComponent,
1230
- forwardRef(() => VerticalNavigationCollapsableItemComponent),
1231
- VerticalNavigationDividerItemComponent,
1232
- VerticalNavigationSpacerItemComponent,
1233
- ],
1234
- }]
1235
- }], propDecorators: { activeItemId: [{
1236
- type: Input
1237
- }], autoCollapse: [{
1238
- type: Input
1239
- }], item: [{
1240
- type: Input
1241
- }], skipChildren: [{
1242
- type: Input
1243
- }] } });
1244
-
1245
- class VerticalNavigationGroupItemComponent {
1246
- _changeDetectorRef = inject(ChangeDetectorRef);
1247
- _navigationComponent = inject(VerticalNavigationBaseComponent);
1248
- autoCollapse = true;
1249
- item;
1250
- _unsubscribeAll = new Subject();
1251
- treeTrackByFn = trackNavigationTreeItem;
1252
- treeShouldRenderItemFn = shouldRenderNavigationItem;
1253
- /**
1254
- * On init
1255
- */
1256
- ngOnInit() {
1257
- // Subscribe to onRefreshed on the navigation component
1258
- this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
1259
- // Mark for check
1260
- this._changeDetectorRef.markForCheck();
1261
- });
1262
- }
1263
- /**
1264
- * On destroy
1265
- */
1266
- ngOnDestroy() {
1267
- // Unsubscribe from all subscriptions
1268
- this._unsubscribeAll.next();
1269
- this._unsubscribeAll.complete();
1270
- }
1271
- /**
1272
- * Track by function for ngFor loops
1273
- */
1274
- trackByFn(index, item) {
1275
- return trackNavigationTreeItem(index, item);
1276
- }
1277
- shouldRenderItem(item) {
1278
- return shouldRenderNavigationItem(item);
1279
- }
1280
- get treeTemplateData() {
1281
- return { autoCollapse: this.autoCollapse };
1282
- }
1283
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationGroupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1284
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: VerticalNavigationGroupItemComponent, isStandalone: true, selector: "vertical-navigation-group-item", inputs: { autoCollapse: "autoCollapse", item: "item" }, ngImport: i0, template: `
1285
- <!-- Item wrapper -->
1286
- <div
1287
- class="vertical-navigation-item-wrapper"
1288
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
1289
- [ngClass]="item.classes?.wrapper">
1290
- <div class="kit-navigation-group-header">
1291
- <navigation-item-content [item]="item" variant="vertical-group"></navigation-item-content>
1292
- </div>
1293
- </div>
1294
-
1295
- <navigation-tree-outlet
1296
- [items]="item.children"
1297
- [data]="treeTemplateData"
1298
- [branchTemplate]="branchItem"
1299
- [leafTemplate]="leafItem"
1300
- [groupTemplate]="groupItem"
1301
- [dividerTemplate]="dividerItem"
1302
- [spacerTemplate]="spacerItem"
1303
- [trackByFn]="treeTrackByFn"
1304
- [shouldRenderItemFn]="treeShouldRenderItemFn" />
1305
-
1306
- <ng-template #branchItem let-child let-data="data">
1307
- @if (child.type === 'aside') {
1308
- <vertical-navigation-aside-item [item]="child" [autoCollapse]="data?.['autoCollapse'] === true">
1309
- </vertical-navigation-aside-item>
1310
- } @else {
1311
- <vertical-navigation-collapsable-item [item]="child" [autoCollapse]="data?.['autoCollapse'] !== false">
1312
- </vertical-navigation-collapsable-item>
1313
- }
1314
- </ng-template>
1315
-
1316
- <ng-template #leafItem let-child>
1317
- <vertical-navigation-basic-item [item]="child"></vertical-navigation-basic-item>
1318
- </ng-template>
1319
-
1320
- <ng-template #groupItem let-child>
1321
- <div
1322
- class="vertical-navigation-item-wrapper"
1323
- [class.vertical-navigation-item-has-subtitle]="!!child.subtitle"
1324
- [ngClass]="child.classes?.wrapper">
1325
- <div class="kit-navigation-group-header">
1326
- <navigation-item-content [item]="child" variant="vertical-group"></navigation-item-content>
1327
- </div>
1328
- </div>
1329
- </ng-template>
1330
-
1331
- <ng-template #dividerItem>
1332
- <vertical-navigation-divider-item></vertical-navigation-divider-item>
1333
- </ng-template>
1334
-
1335
- <ng-template #spacerItem>
1336
- <vertical-navigation-spacer-item></vertical-navigation-spacer-item>
1337
- </ng-template>
1338
- `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i0.forwardRef(() => NavigationItemContent), selector: "navigation-item-content", inputs: ["item", "level", "variant"] }, { kind: "component", type: i0.forwardRef(() => NavigationTreeOutlet), selector: "navigation-tree-outlet", inputs: ["items", "level", "parentKey", "data", "branchTemplate", "leafTemplate", "groupTemplate", "dividerTemplate", "spacerTemplate", "trackByFn", "shouldRenderItemFn", "hasChildrenFn", "resolveParentKeyFn"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationAsideItemComponent), selector: "vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "skipChildren"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationBasicItemComponent), selector: "vertical-navigation-basic-item", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationCollapsableItemComponent), selector: "vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item"] }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationDividerItemComponent), selector: "vertical-navigation-divider-item" }, { kind: "component", type: i0.forwardRef(() => VerticalNavigationSpacerItemComponent), selector: "vertical-navigation-spacer-item" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1339
- }
1340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationGroupItemComponent, decorators: [{
1341
- type: Component,
1342
- args: [{
1343
- selector: 'vertical-navigation-group-item',
1344
- template: `
1345
- <!-- Item wrapper -->
1346
- <div
1347
- class="vertical-navigation-item-wrapper"
1348
- [class.vertical-navigation-item-has-subtitle]="!!item.subtitle"
1349
- [ngClass]="item.classes?.wrapper">
1350
- <div class="kit-navigation-group-header">
1351
- <navigation-item-content [item]="item" variant="vertical-group"></navigation-item-content>
1352
- </div>
1353
- </div>
1354
-
1355
- <navigation-tree-outlet
1356
- [items]="item.children"
1357
- [data]="treeTemplateData"
1358
- [branchTemplate]="branchItem"
1359
- [leafTemplate]="leafItem"
1360
- [groupTemplate]="groupItem"
1361
- [dividerTemplate]="dividerItem"
1362
- [spacerTemplate]="spacerItem"
1363
- [trackByFn]="treeTrackByFn"
1364
- [shouldRenderItemFn]="treeShouldRenderItemFn" />
1365
-
1366
- <ng-template #branchItem let-child let-data="data">
1367
- @if (child.type === 'aside') {
1368
- <vertical-navigation-aside-item [item]="child" [autoCollapse]="data?.['autoCollapse'] === true">
1369
- </vertical-navigation-aside-item>
1370
- } @else {
1371
- <vertical-navigation-collapsable-item [item]="child" [autoCollapse]="data?.['autoCollapse'] !== false">
1372
- </vertical-navigation-collapsable-item>
1373
- }
1374
- </ng-template>
1375
-
1376
- <ng-template #leafItem let-child>
1377
- <vertical-navigation-basic-item [item]="child"></vertical-navigation-basic-item>
1378
- </ng-template>
1379
-
1380
- <ng-template #groupItem let-child>
1381
- <div
1382
- class="vertical-navigation-item-wrapper"
1383
- [class.vertical-navigation-item-has-subtitle]="!!child.subtitle"
1384
- [ngClass]="child.classes?.wrapper">
1385
- <div class="kit-navigation-group-header">
1386
- <navigation-item-content [item]="child" variant="vertical-group"></navigation-item-content>
1387
- </div>
1388
- </div>
1389
- </ng-template>
1390
-
1391
- <ng-template #dividerItem>
1392
- <vertical-navigation-divider-item></vertical-navigation-divider-item>
1393
- </ng-template>
1394
-
1395
- <ng-template #spacerItem>
1396
- <vertical-navigation-spacer-item></vertical-navigation-spacer-item>
1397
- </ng-template>
1398
- `,
1399
- encapsulation: ViewEncapsulation.None,
1400
- changeDetection: ChangeDetectionStrategy.OnPush,
1401
- imports: [
1402
- NgClass,
1403
- NavigationItemContent,
1404
- NavigationTreeOutlet,
1405
- forwardRef(() => VerticalNavigationAsideItemComponent),
1406
- VerticalNavigationBasicItemComponent,
1407
- forwardRef(() => VerticalNavigationCollapsableItemComponent),
1408
- VerticalNavigationDividerItemComponent,
1409
- VerticalNavigationSpacerItemComponent,
1410
- ],
1411
- }]
1412
- }], propDecorators: { autoCollapse: [{
1413
- type: Input
1414
- }], item: [{
1415
- type: Input
1416
- }] } });
1417
-
1418
- const VERTICAL_NAVIGATION_TEMPLATE = `
1419
- <div class="vertical-navigation-wrapper">
1420
- <div class="vertical-navigation-header">
1421
- <ng-content select="[verticalNavigationHeader]"></ng-content>
1422
- </div>
1423
-
1424
- <div class="vertical-navigation-content" #navigationContent>
1425
- <div class="vertical-navigation-content-header">
1426
- <ng-content select="[verticalNavigationContentHeader]"></ng-content>
1427
- </div>
1428
-
1429
- @for (item of navigation; track trackByFn($index, item)) {
1430
- @if (shouldRenderItem(item)) {
1431
- @switch (item.type) {
1432
- @case ('aside') {
1433
- <vertical-navigation-aside-item
1434
- [item]="item"
1435
- [activeItemId]="activeAsideItemId"
1436
- [autoCollapse]="autoCollapse"
1437
- [skipChildren]="true"
1438
- (click)="toggleAside(item)"
1439
- >
1440
- </vertical-navigation-aside-item>
1441
- }
1442
-
1443
- @case ('basic') {
1444
- <vertical-navigation-basic-item [item]="item">
1445
- </vertical-navigation-basic-item>
1446
- }
1447
-
1448
- @case ('collapsable') {
1449
- <vertical-navigation-collapsable-item
1450
- [item]="item"
1451
- [autoCollapse]="autoCollapse"
1452
- >
1453
- </vertical-navigation-collapsable-item>
1454
- }
1455
-
1456
- @case ('divider') {
1457
- <vertical-navigation-divider-item></vertical-navigation-divider-item>
1458
- }
1459
-
1460
- @case ('group') {
1461
- <vertical-navigation-group-item
1462
- [item]="item"
1463
- [autoCollapse]="autoCollapse"
1464
- >
1465
- </vertical-navigation-group-item>
1466
- }
1467
-
1468
- @case ('spacer') {
1469
- <vertical-navigation-spacer-item></vertical-navigation-spacer-item>
1470
- }
1471
- }
1472
- }
1473
- }
1474
-
1475
- <div class="vertical-navigation-content-footer">
1476
- <ng-content select="[verticalNavigationContentFooter]"></ng-content>
1477
- </div>
1478
- </div>
1479
-
1480
- <div class="vertical-navigation-footer">
1481
- <ng-content select="[verticalNavigationFooter]"></ng-content>
1482
- </div>
1483
- </div>
1484
-
1485
- @if (activeAsideNavigationItem(); as activeAsideItem) {
1486
- <div [class]="asideWrapperClass">
1487
- <vertical-navigation-aside-item
1488
- [item]="activeAsideItem"
1489
- [autoCollapse]="autoCollapse"
1490
- >
1491
- </vertical-navigation-aside-item>
1492
- </div>
1493
- }
1494
- `;
1495
- const VERTICAL_NAVIGATION_IMPORTS = [
1496
- VerticalNavigationAsideItemComponent,
1497
- VerticalNavigationBasicItemComponent,
1498
- VerticalNavigationCollapsableItemComponent,
1499
- VerticalNavigationDividerItemComponent,
1500
- VerticalNavigationGroupItemComponent,
1501
- VerticalNavigationSpacerItemComponent,
1502
- ];
1503
- const VERTICAL_NAVIGATION_HOST = {
1504
- '[class]': 'hostClasses',
1505
- '[style.visibility]': 'opened ? "visible" : "hidden"',
1506
- '(mouseenter)': 'onMouseenter()',
1507
- '(mouseleave)': 'onMouseleave()',
1508
- };
1509
- function provideVerticalNavigationComponent(component) {
1510
- return {
1511
- provide: VerticalNavigationBaseComponent,
1512
- useExisting: forwardRef(() => component),
1513
- };
1514
- }
1515
-
1516
- class VerticalNavigationDefaultComponent extends VerticalNavigationBaseComponent {
1517
- _componentPrefix = 'vertical-navigation';
1518
- _asideWrapperClass = 'vertical-navigation-aside-wrapper';
1519
- appearance = 'default';
1520
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationDefaultComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1521
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: VerticalNavigationDefaultComponent, isStandalone: true, selector: "vertical-navigation", inputs: { appearance: "appearance" }, host: { listeners: { "mouseenter": "onMouseenter()", "mouseleave": "onMouseleave()" }, properties: { "class": "hostClasses", "style.visibility": "opened ? \"visible\" : \"hidden\"" } }, providers: [provideVerticalNavigationComponent(VerticalNavigationDefaultComponent)], exportAs: ["verticalNavigationDefault"], usesInheritance: true, ngImport: i0, template: "\n <div class=\"vertical-navigation-wrapper\">\n <div class=\"vertical-navigation-header\">\n <ng-content select=\"[verticalNavigationHeader]\"></ng-content>\n </div>\n\n <div class=\"vertical-navigation-content\" #navigationContent>\n <div class=\"vertical-navigation-content-header\">\n <ng-content select=\"[verticalNavigationContentHeader]\"></ng-content>\n </div>\n\n @for (item of navigation; track trackByFn($index, item)) {\n @if (shouldRenderItem(item)) {\n @switch (item.type) {\n @case ('aside') {\n <vertical-navigation-aside-item\n [item]=\"item\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n (click)=\"toggleAside(item)\"\n >\n </vertical-navigation-aside-item>\n }\n\n @case ('basic') {\n <vertical-navigation-basic-item [item]=\"item\">\n </vertical-navigation-basic-item>\n }\n\n @case ('collapsable') {\n <vertical-navigation-collapsable-item\n [item]=\"item\"\n [autoCollapse]=\"autoCollapse\"\n >\n </vertical-navigation-collapsable-item>\n }\n\n @case ('divider') {\n <vertical-navigation-divider-item></vertical-navigation-divider-item>\n }\n\n @case ('group') {\n <vertical-navigation-group-item\n [item]=\"item\"\n [autoCollapse]=\"autoCollapse\"\n >\n </vertical-navigation-group-item>\n }\n\n @case ('spacer') {\n <vertical-navigation-spacer-item></vertical-navigation-spacer-item>\n }\n }\n }\n }\n\n <div class=\"vertical-navigation-content-footer\">\n <ng-content select=\"[verticalNavigationContentFooter]\"></ng-content>\n </div>\n </div>\n\n <div class=\"vertical-navigation-footer\">\n <ng-content select=\"[verticalNavigationFooter]\"></ng-content>\n </div>\n </div>\n\n @if (activeAsideNavigationItem(); as activeAsideItem) {\n <div [class]=\"asideWrapperClass\">\n <vertical-navigation-aside-item\n [item]=\"activeAsideItem\"\n [autoCollapse]=\"autoCollapse\"\n >\n </vertical-navigation-aside-item>\n </div>\n }\n", isInline: true, styles: [":root{--vertical-navigation-width: 280px}vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:var(--vertical-navigation-width);min-width:var(--vertical-navigation-width);max-width:var(--vertical-navigation-width);height:100%;min-height:0;max-height:100%;z-index:200}vertical-navigation.vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}vertical-navigation.vertical-navigation-animations-enabled .vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}vertical-navigation.vertical-navigation-mode-over{position:fixed;top:0;bottom:0;height:100vh;min-height:100vh;max-height:100vh}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-side{margin-left:calc(var(--vertical-navigation-width) * -1)}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-side.vertical-navigation-opened{margin-left:0}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-over.vertical-navigation-opened{transform:translateZ(0)}vertical-navigation.vertical-navigation-position-left .vertical-navigation-wrapper{left:0}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-side{margin-right:calc(var(--vertical-navigation-width) * -1)}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-side.vertical-navigation-opened{margin-right:0}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-over.vertical-navigation-opened{transform:translateZ(0)}vertical-navigation.vertical-navigation-position-right .vertical-navigation-wrapper{right:0}vertical-navigation.vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}vertical-navigation.vertical-navigation-inner .vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}vertical-navigation.vertical-navigation-inner .vertical-navigation-wrapper .vertical-navigation-content{overflow:visible!important}.vertical-navigation-wrapper{display:flex;flex-direction:column;width:100%;height:100%;z-index:10;background:var(--background)}.vertical-navigation-header{flex:0 0 auto;background:var(--background);z-index:11}.vertical-navigation-content{flex:1 1 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;min-height:0}.vertical-navigation-content>vertical-navigation-divider-item{margin:24px 0}.vertical-navigation-footer{flex:0 0 auto;background:var(--background);z-index:11}.vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:var(--vertical-navigation-width);width:var(--vertical-navigation-width);height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:var(--background)}.vertical-navigation-aside-wrapper>vertical-navigation-aside-item{padding:24px 0}.vertical-navigation-aside-wrapper>vertical-navigation-aside-item>.vertical-navigation-item-wrapper{display:none!important}vertical-navigation.vertical-navigation-position-right .vertical-navigation-aside-wrapper{left:auto;right:var(--vertical-navigation-width)}vertical-navigation-aside-item,vertical-navigation-basic-item,vertical-navigation-collapsable-item,vertical-navigation-divider-item,vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}vertical-navigation-group-item{display:block;-webkit-user-select:none;user-select:none}.kit-navigation-item,.kit-navigation-group-header{font-family:var(--nav-font-family)}vertical-navigation-aside-item .vertical-navigation-item-wrapper .kit-navigation-item,vertical-navigation-basic-item .vertical-navigation-item-wrapper .kit-navigation-item,vertical-navigation-collapsable-item .vertical-navigation-item-wrapper .kit-navigation-item,vertical-navigation-group-item .vertical-navigation-item-wrapper .kit-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:var(--nav-item-font-size);font-weight:var(--nav-item-font-weight);line-height:var(--nav-item-line-height);text-decoration:none;border-radius:6px;color:var(--foreground)}.kit-navigation-item.kit-navigation-item-disabled{cursor:default;opacity:.4}.kit-navigation-item-icon{margin-right:8px;opacity:.6;color:currentColor}.kit-navigation-item-subtitle{font-size:var(--nav-subtitle-font-size);font-weight:var(--nav-subtitle-font-weight);line-height:var(--nav-subtitle-line-height);opacity:.5;color:currentColor}.kit-navigation-item-badge{margin-left:auto}.kit-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:var(--nav-badge-font-size);font-weight:var(--nav-badge-font-weight);line-height:var(--nav-badge-line-height);white-space:nowrap;height:20px}vertical-navigation-aside-item>.vertical-navigation-item-wrapper,vertical-navigation-basic-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper{margin-bottom:-2px}vertical-navigation-aside-item .kit-navigation-item,vertical-navigation-basic-item .kit-navigation-item,vertical-navigation-collapsable-item .kit-navigation-item{cursor:pointer}vertical-navigation-aside-item .kit-navigation-item:not(.kit-navigation-item-active-forced):not(.kit-navigation-item-active):not(.kit-navigation-item-disabled):hover,vertical-navigation-basic-item .kit-navigation-item:not(.kit-navigation-item-active-forced):not(.kit-navigation-item-active):not(.kit-navigation-item-disabled):hover,vertical-navigation-collapsable-item .kit-navigation-item:not(.kit-navigation-item-active-forced):not(.kit-navigation-item-active):not(.kit-navigation-item-disabled):hover{background-color:color-mix(in oklch,var(--accent) 10%,transparent)}vertical-navigation-aside-item .kit-navigation-item:hover .kit-navigation-item-icon,vertical-navigation-basic-item .kit-navigation-item:hover .kit-navigation-item-icon,vertical-navigation-collapsable-item .kit-navigation-item:hover .kit-navigation-item-icon{opacity:1}vertical-navigation-aside-item .kit-navigation-item:hover .kit-navigation-item-title,vertical-navigation-basic-item .kit-navigation-item:hover .kit-navigation-item-title,vertical-navigation-collapsable-item .kit-navigation-item:hover .kit-navigation-item-title{opacity:1}vertical-navigation-aside-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active,vertical-navigation-aside-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active-forced,vertical-navigation-basic-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active,vertical-navigation-basic-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active-forced,vertical-navigation-collapsable-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active,vertical-navigation-collapsable-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active-forced{color:var(--primary);font-weight:var(--nav-item-active-font-weight)}vertical-navigation-aside-item .kit-navigation-item-active .kit-navigation-item-icon,vertical-navigation-basic-item .kit-navigation-item-active .kit-navigation-item-icon,vertical-navigation-collapsable-item .kit-navigation-item-active .kit-navigation-item-icon{opacity:1}vertical-navigation-aside-item .kit-navigation-item-active .kit-navigation-item-title,vertical-navigation-basic-item .kit-navigation-item-active .kit-navigation-item-title,vertical-navigation-collapsable-item .kit-navigation-item-active .kit-navigation-item-title{opacity:1}vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper .kit-navigation-item .kit-navigation-item-badge+.kit-navigation-item-dot{margin-left:8px}vertical-navigation-collapsable-item.vertical-navigation-item-expanded>.vertical-navigation-item-wrapper .kit-navigation-item .kit-navigation-item-icon,vertical-navigation-collapsable-item.vertical-navigation-item-expanded>.vertical-navigation-item-wrapper .kit-navigation-item .kit-navigation-item-title{opacity:1}vertical-navigation-collapsable-item>.kit-navigation-item-children>*:first-child,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>*:first-child{margin-top:6px}vertical-navigation-collapsable-item>.kit-navigation-item-children>*:last-child,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>*:last-child{margin-bottom:6px!important}vertical-navigation-collapsable-item>.kit-navigation-item-children .kit-navigation-item{padding:10px 16px}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item .kit-navigation-item-icon{display:none}vertical-navigation-collapsable-item .kit-navigation-item-children{position:relative}vertical-navigation-collapsable-item>.kit-navigation-item-children{margin-left:28px!important;padding-left:20px!important;position:relative!important;padding-bottom:0!important}vertical-navigation-collapsable-item>.kit-navigation-item-children:before{content:\"\"!important;position:absolute!important;left:0!important;top:0!important;height:calc(100% - 26px)!important;width:1px!important;background:repeating-linear-gradient(to bottom,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:1!important;border-radius:0!important}vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-basic-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-basic-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper{position:relative}vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before{content:\"\"!important;position:absolute!important;left:-22px!important;top:50%!important;transform:translateY(-.5px)!important;width:22px!important;height:1px!important;background:repeating-linear-gradient(to right,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:2!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children{margin-left:10px!important;padding-left:15px!important;padding-bottom:0!important;position:relative!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children:before{content:\"\"!important;position:absolute!important;left:0!important;top:0!important;height:calc(100% - 26px)!important;width:1px!important;background:repeating-linear-gradient(to bottom,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:1!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>*:last-child,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>navigation-tree-outlet>*:last-child{margin-bottom:6px!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before{content:\"\"!important;position:absolute!important;left:-17px!important;top:50%!important;transform:translateY(-.5px)!important;width:17px!important;height:1px!important;background:repeating-linear-gradient(to right,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:2!important}vertical-navigation-collapsable-item .kit-navigation-item-children{overflow:visible!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item{padding-left:8px!important;margin:0!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item{padding-left:72px}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item{padding-left:88px}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item{padding-left:104px}vertical-navigation-divider-item{margin:12px 0}vertical-navigation-group-item{position:relative;margin-top:24px}vertical-navigation-group-item:first-of-type{margin-top:0}vertical-navigation-group-item>.vertical-navigation-item-wrapper{position:relative}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;padding:16px;margin:0;max-height:49px;background:var(--background)}vertical-navigation-group-item>.vertical-navigation-item-wrapper>vertical-navigation-basic-item:first-of-type,vertical-navigation-group-item>.vertical-navigation-item-wrapper>vertical-navigation-collapsable-item:first-of-type{margin-top:12px}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-item-title-wrapper{flex:1}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-item-badge,vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-item-icon{display:none!important}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-group-title{font-size:var(--nav-group-title-font-size);font-weight:var(--nav-group-title-font-weight);letter-spacing:var(--nav-group-title-letter-spacing);text-transform:uppercase;color:var(--primary);opacity:1;line-height:var(--nav-group-title-line-height)}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-group-subtitle{font-size:var(--nav-group-subtitle-font-size);font-weight:var(--nav-group-subtitle-font-weight);line-height:var(--nav-group-subtitle-line-height);color:var(--muted-foreground);opacity:.7;text-transform:none;letter-spacing:normal;margin-top:0}vertical-navigation-spacer-item{margin:6px 0}.vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009;transition:opacity .3s cubic-bezier(.25,.8,.25,1)}.vertical-navigation-overlay+.vertical-navigation-aside-overlay{background-color:transparent}.vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d;transition:opacity .3s cubic-bezier(.25,.8,.25,1)}\n"], dependencies: [{ kind: "component", type: VerticalNavigationAsideItemComponent, selector: "vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "skipChildren"] }, { kind: "component", type: VerticalNavigationBasicItemComponent, selector: "vertical-navigation-basic-item", inputs: ["item"] }, { kind: "component", type: VerticalNavigationCollapsableItemComponent, selector: "vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item"] }, { kind: "component", type: VerticalNavigationDividerItemComponent, selector: "vertical-navigation-divider-item" }, { kind: "component", type: VerticalNavigationGroupItemComponent, selector: "vertical-navigation-group-item", inputs: ["autoCollapse", "item"] }, { kind: "component", type: VerticalNavigationSpacerItemComponent, selector: "vertical-navigation-spacer-item" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1522
- }
1523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationDefaultComponent, decorators: [{
1524
- type: Component,
1525
- args: [{ selector: 'vertical-navigation', template: VERTICAL_NAVIGATION_TEMPLATE, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'verticalNavigationDefault', imports: VERTICAL_NAVIGATION_IMPORTS, host: VERTICAL_NAVIGATION_HOST, providers: [provideVerticalNavigationComponent(VerticalNavigationDefaultComponent)], styles: [":root{--vertical-navigation-width: 280px}vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:var(--vertical-navigation-width);min-width:var(--vertical-navigation-width);max-width:var(--vertical-navigation-width);height:100%;min-height:0;max-height:100%;z-index:200}vertical-navigation.vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}vertical-navigation.vertical-navigation-animations-enabled .vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}vertical-navigation.vertical-navigation-mode-over{position:fixed;top:0;bottom:0;height:100vh;min-height:100vh;max-height:100vh}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-side{margin-left:calc(var(--vertical-navigation-width) * -1)}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-side.vertical-navigation-opened{margin-left:0}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}vertical-navigation.vertical-navigation-position-left.vertical-navigation-mode-over.vertical-navigation-opened{transform:translateZ(0)}vertical-navigation.vertical-navigation-position-left .vertical-navigation-wrapper{left:0}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-side{margin-right:calc(var(--vertical-navigation-width) * -1)}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-side.vertical-navigation-opened{margin-right:0}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}vertical-navigation.vertical-navigation-position-right.vertical-navigation-mode-over.vertical-navigation-opened{transform:translateZ(0)}vertical-navigation.vertical-navigation-position-right .vertical-navigation-wrapper{right:0}vertical-navigation.vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}vertical-navigation.vertical-navigation-inner .vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}vertical-navigation.vertical-navigation-inner .vertical-navigation-wrapper .vertical-navigation-content{overflow:visible!important}.vertical-navigation-wrapper{display:flex;flex-direction:column;width:100%;height:100%;z-index:10;background:var(--background)}.vertical-navigation-header{flex:0 0 auto;background:var(--background);z-index:11}.vertical-navigation-content{flex:1 1 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;min-height:0}.vertical-navigation-content>vertical-navigation-divider-item{margin:24px 0}.vertical-navigation-footer{flex:0 0 auto;background:var(--background);z-index:11}.vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:var(--vertical-navigation-width);width:var(--vertical-navigation-width);height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:var(--background)}.vertical-navigation-aside-wrapper>vertical-navigation-aside-item{padding:24px 0}.vertical-navigation-aside-wrapper>vertical-navigation-aside-item>.vertical-navigation-item-wrapper{display:none!important}vertical-navigation.vertical-navigation-position-right .vertical-navigation-aside-wrapper{left:auto;right:var(--vertical-navigation-width)}vertical-navigation-aside-item,vertical-navigation-basic-item,vertical-navigation-collapsable-item,vertical-navigation-divider-item,vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}vertical-navigation-group-item{display:block;-webkit-user-select:none;user-select:none}.kit-navigation-item,.kit-navigation-group-header{font-family:var(--nav-font-family)}vertical-navigation-aside-item .vertical-navigation-item-wrapper .kit-navigation-item,vertical-navigation-basic-item .vertical-navigation-item-wrapper .kit-navigation-item,vertical-navigation-collapsable-item .vertical-navigation-item-wrapper .kit-navigation-item,vertical-navigation-group-item .vertical-navigation-item-wrapper .kit-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:var(--nav-item-font-size);font-weight:var(--nav-item-font-weight);line-height:var(--nav-item-line-height);text-decoration:none;border-radius:6px;color:var(--foreground)}.kit-navigation-item.kit-navigation-item-disabled{cursor:default;opacity:.4}.kit-navigation-item-icon{margin-right:8px;opacity:.6;color:currentColor}.kit-navigation-item-subtitle{font-size:var(--nav-subtitle-font-size);font-weight:var(--nav-subtitle-font-weight);line-height:var(--nav-subtitle-line-height);opacity:.5;color:currentColor}.kit-navigation-item-badge{margin-left:auto}.kit-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:var(--nav-badge-font-size);font-weight:var(--nav-badge-font-weight);line-height:var(--nav-badge-line-height);white-space:nowrap;height:20px}vertical-navigation-aside-item>.vertical-navigation-item-wrapper,vertical-navigation-basic-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper{margin-bottom:-2px}vertical-navigation-aside-item .kit-navigation-item,vertical-navigation-basic-item .kit-navigation-item,vertical-navigation-collapsable-item .kit-navigation-item{cursor:pointer}vertical-navigation-aside-item .kit-navigation-item:not(.kit-navigation-item-active-forced):not(.kit-navigation-item-active):not(.kit-navigation-item-disabled):hover,vertical-navigation-basic-item .kit-navigation-item:not(.kit-navigation-item-active-forced):not(.kit-navigation-item-active):not(.kit-navigation-item-disabled):hover,vertical-navigation-collapsable-item .kit-navigation-item:not(.kit-navigation-item-active-forced):not(.kit-navigation-item-active):not(.kit-navigation-item-disabled):hover{background-color:color-mix(in oklch,var(--accent) 10%,transparent)}vertical-navigation-aside-item .kit-navigation-item:hover .kit-navigation-item-icon,vertical-navigation-basic-item .kit-navigation-item:hover .kit-navigation-item-icon,vertical-navigation-collapsable-item .kit-navigation-item:hover .kit-navigation-item-icon{opacity:1}vertical-navigation-aside-item .kit-navigation-item:hover .kit-navigation-item-title,vertical-navigation-basic-item .kit-navigation-item:hover .kit-navigation-item-title,vertical-navigation-collapsable-item .kit-navigation-item:hover .kit-navigation-item-title{opacity:1}vertical-navigation-aside-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active,vertical-navigation-aside-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active-forced,vertical-navigation-basic-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active,vertical-navigation-basic-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active-forced,vertical-navigation-collapsable-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active,vertical-navigation-collapsable-item .kit-navigation-item:not(.kit-navigation-item-disabled).kit-navigation-item-active-forced{color:var(--primary);font-weight:var(--nav-item-active-font-weight)}vertical-navigation-aside-item .kit-navigation-item-active .kit-navigation-item-icon,vertical-navigation-basic-item .kit-navigation-item-active .kit-navigation-item-icon,vertical-navigation-collapsable-item .kit-navigation-item-active .kit-navigation-item-icon{opacity:1}vertical-navigation-aside-item .kit-navigation-item-active .kit-navigation-item-title,vertical-navigation-basic-item .kit-navigation-item-active .kit-navigation-item-title,vertical-navigation-collapsable-item .kit-navigation-item-active .kit-navigation-item-title{opacity:1}vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper .kit-navigation-item .kit-navigation-item-badge+.kit-navigation-item-dot{margin-left:8px}vertical-navigation-collapsable-item.vertical-navigation-item-expanded>.vertical-navigation-item-wrapper .kit-navigation-item .kit-navigation-item-icon,vertical-navigation-collapsable-item.vertical-navigation-item-expanded>.vertical-navigation-item-wrapper .kit-navigation-item .kit-navigation-item-title{opacity:1}vertical-navigation-collapsable-item>.kit-navigation-item-children>*:first-child,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>*:first-child{margin-top:6px}vertical-navigation-collapsable-item>.kit-navigation-item-children>*:last-child,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>*:last-child{margin-bottom:6px!important}vertical-navigation-collapsable-item>.kit-navigation-item-children .kit-navigation-item{padding:10px 16px}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item .kit-navigation-item-icon{display:none}vertical-navigation-collapsable-item .kit-navigation-item-children{position:relative}vertical-navigation-collapsable-item>.kit-navigation-item-children{margin-left:28px!important;padding-left:20px!important;position:relative!important;padding-bottom:0!important}vertical-navigation-collapsable-item>.kit-navigation-item-children:before{content:\"\"!important;position:absolute!important;left:0!important;top:0!important;height:calc(100% - 26px)!important;width:1px!important;background:repeating-linear-gradient(to bottom,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:1!important;border-radius:0!important}vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-basic-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-basic-item>.vertical-navigation-item-wrapper,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper{position:relative}vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item>.kit-navigation-item-children>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item>.kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before{content:\"\"!important;position:absolute!important;left:-22px!important;top:50%!important;transform:translateY(-.5px)!important;width:22px!important;height:1px!important;background:repeating-linear-gradient(to right,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:2!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children{margin-left:10px!important;padding-left:15px!important;padding-bottom:0!important;position:relative!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children:before{content:\"\"!important;position:absolute!important;left:0!important;top:0!important;height:calc(100% - 26px)!important;width:1px!important;background:repeating-linear-gradient(to bottom,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:1!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>*:last-child,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>navigation-tree-outlet>*:last-child{margin-bottom:6px!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-basic-item>.vertical-navigation-item-wrapper:before,vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children>navigation-tree-outlet>vertical-navigation-collapsable-item>.vertical-navigation-item-wrapper:before{content:\"\"!important;position:absolute!important;left:-17px!important;top:50%!important;transform:translateY(-.5px)!important;width:17px!important;height:1px!important;background:repeating-linear-gradient(to right,color-mix(in oklch,var(--foreground) 20%,transparent) 0,color-mix(in oklch,var(--foreground) 20%,transparent) 2px,transparent 2px,transparent 4px)!important;z-index:2!important}vertical-navigation-collapsable-item .kit-navigation-item-children{overflow:visible!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item{padding-left:8px!important;margin:0!important}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item{padding-left:72px}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item{padding-left:88px}vertical-navigation-collapsable-item .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item-children .kit-navigation-item{padding-left:104px}vertical-navigation-divider-item{margin:12px 0}vertical-navigation-group-item{position:relative;margin-top:24px}vertical-navigation-group-item:first-of-type{margin-top:0}vertical-navigation-group-item>.vertical-navigation-item-wrapper{position:relative}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;padding:16px;margin:0;max-height:49px;background:var(--background)}vertical-navigation-group-item>.vertical-navigation-item-wrapper>vertical-navigation-basic-item:first-of-type,vertical-navigation-group-item>.vertical-navigation-item-wrapper>vertical-navigation-collapsable-item:first-of-type{margin-top:12px}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-item-title-wrapper{flex:1}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-item-badge,vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-item-icon{display:none!important}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-group-title{font-size:var(--nav-group-title-font-size);font-weight:var(--nav-group-title-font-weight);letter-spacing:var(--nav-group-title-letter-spacing);text-transform:uppercase;color:var(--primary);opacity:1;line-height:var(--nav-group-title-line-height)}vertical-navigation-group-item>.vertical-navigation-item-wrapper .kit-navigation-group-header .kit-navigation-group-subtitle{font-size:var(--nav-group-subtitle-font-size);font-weight:var(--nav-group-subtitle-font-weight);line-height:var(--nav-group-subtitle-line-height);color:var(--muted-foreground);opacity:.7;text-transform:none;letter-spacing:normal;margin-top:0}vertical-navigation-spacer-item{margin:6px 0}.vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009;transition:opacity .3s cubic-bezier(.25,.8,.25,1)}.vertical-navigation-overlay+.vertical-navigation-aside-overlay{background-color:transparent}.vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d;transition:opacity .3s cubic-bezier(.25,.8,.25,1)}\n"] }]
1526
- }], propDecorators: { appearance: [{
1527
- type: Input
1528
- }] } });
1529
-
1530
- class VerticalNavigationCollapsibleComponent {
1531
- navigationComponent;
1532
- autoCollapse = true;
1533
- appearance = 'collapsible';
1534
- inner = false;
1535
- mode = 'side';
1536
- navigation = [];
1537
- opened = true;
1538
- position = 'left';
1539
- transparentOverlay = false;
1540
- appearanceChanged = new EventEmitter();
1541
- modeChanged = new EventEmitter();
1542
- openedChanged = new EventEmitter();
1543
- positionChanged = new EventEmitter();
1544
- renderedAppearance = 'default';
1545
- refresh() {
1546
- this.navigationComponent?.refresh();
1547
- }
1548
- open() {
1549
- this.navigationComponent?.open();
1550
- }
1551
- close() {
1552
- this.navigationComponent?.close();
1553
- }
1554
- toggle() {
1555
- this.navigationComponent?.toggle();
1556
- }
1557
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationCollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1558
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: VerticalNavigationCollapsibleComponent, isStandalone: true, selector: "vertical-navigation-collapsible", inputs: { autoCollapse: "autoCollapse", appearance: "appearance", inner: "inner", mode: "mode", navigation: "navigation", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged" }, viewQueries: [{ propertyName: "navigationComponent", first: true, predicate: ["navigationInstance"], descendants: true }], exportAs: ["verticalNavigationCollapsible"], ngImport: i0, template: `
1559
- <vertical-navigation
1560
- #navigationInstance
1561
- [autoCollapse]="autoCollapse"
1562
- [appearance]="renderedAppearance"
1563
- [inner]="inner"
1564
- [mode]="mode"
1565
- [navigation]="navigation"
1566
- [opened]="opened"
1567
- [position]="position"
1568
- [transparentOverlay]="transparentOverlay"
1569
- (appearanceChanged)="appearanceChanged.emit(appearance)"
1570
- (modeChanged)="modeChanged.emit($event)"
1571
- (openedChanged)="openedChanged.emit($event)"
1572
- (positionChanged)="positionChanged.emit($event)">
1573
- <ng-content select="[verticalNavigationHeader]"></ng-content>
1574
- <ng-content select="[verticalNavigationContentHeader]"></ng-content>
1575
- <ng-content select="[verticalNavigationContentFooter]"></ng-content>
1576
- <ng-content select="[verticalNavigationFooter]"></ng-content>
1577
- </vertical-navigation>
1578
- `, isInline: true, dependencies: [{ kind: "component", type: VerticalNavigationDefaultComponent, selector: "vertical-navigation", inputs: ["appearance"], exportAs: ["verticalNavigationDefault"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1579
- }
1580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: VerticalNavigationCollapsibleComponent, decorators: [{
1581
- type: Component,
1582
- args: [{
1583
- selector: 'vertical-navigation-collapsible',
1584
- imports: [VerticalNavigationDefaultComponent],
1585
- template: `
1586
- <vertical-navigation
1587
- #navigationInstance
1588
- [autoCollapse]="autoCollapse"
1589
- [appearance]="renderedAppearance"
1590
- [inner]="inner"
1591
- [mode]="mode"
1592
- [navigation]="navigation"
1593
- [opened]="opened"
1594
- [position]="position"
1595
- [transparentOverlay]="transparentOverlay"
1596
- (appearanceChanged)="appearanceChanged.emit(appearance)"
1597
- (modeChanged)="modeChanged.emit($event)"
1598
- (openedChanged)="openedChanged.emit($event)"
1599
- (positionChanged)="positionChanged.emit($event)">
1600
- <ng-content select="[verticalNavigationHeader]"></ng-content>
1601
- <ng-content select="[verticalNavigationContentHeader]"></ng-content>
1602
- <ng-content select="[verticalNavigationContentFooter]"></ng-content>
1603
- <ng-content select="[verticalNavigationFooter]"></ng-content>
1604
- </vertical-navigation>
1605
- `,
1606
- changeDetection: ChangeDetectionStrategy.OnPush,
1607
- exportAs: 'verticalNavigationCollapsible',
1608
- }]
1609
- }], propDecorators: { navigationComponent: [{
1610
- type: ViewChild,
1611
- args: ['navigationInstance']
1612
- }], autoCollapse: [{
1613
- type: Input
1614
- }], appearance: [{
1615
- type: Input
1616
- }], inner: [{
1617
- type: Input
1618
- }], mode: [{
1619
- type: Input
1620
- }], navigation: [{
1621
- type: Input
1622
- }], opened: [{
1623
- type: Input
1624
- }], position: [{
1625
- type: Input
1626
- }], transparentOverlay: [{
1627
- type: Input
1628
- }], appearanceChanged: [{
1629
- type: Output
1630
- }], modeChanged: [{
1631
- type: Output
1632
- }], openedChanged: [{
1633
- type: Output
1634
- }], positionChanged: [{
1635
- type: Output
1636
- }] } });
1637
-
1638
- /**
1639
- * Vertical Navigation Components barrel export
1640
- */
1641
-
1642
- /**
1643
- * Generated bundle index. Do not edit.
1644
- */
1645
-
1646
- export { VerticalNavigationAsideItemComponent, VerticalNavigationBasicItemComponent, VerticalNavigationCollapsableItemComponent, VerticalNavigationCollapsibleComponent, VerticalNavigationDefaultComponent, VerticalNavigationDividerItemComponent, VerticalNavigationGroupItemComponent, VerticalNavigationSpacerItemComponent };
1647
- //# sourceMappingURL=ojiepermana-angular-navigation-vertical.mjs.map