@recursyve/nice-ui-kit.v2 15.0.0-beta.125 → 15.0.0-beta.127

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 (34) hide show
  1. package/esm2020/lib/components/alert/alert.component.mjs +3 -3
  2. package/esm2020/lib/components/async-typeahead/async-typeahead.component.mjs +6 -2
  3. package/esm2020/lib/components/async-typeahead/providers/async-typeahead.provider.mjs +1 -1
  4. package/esm2020/lib/components/async-typeahead/providers/async-typeahead.service.mjs +73 -63
  5. package/esm2020/lib/components/form-error/control-status.directive.mjs +9 -2
  6. package/esm2020/lib/components/form-error/form-error.component.mjs +1 -1
  7. package/esm2020/lib/components/navigation/horizontal/components/basic/basic.component.mjs +11 -4
  8. package/esm2020/lib/components/navigation/horizontal/components/branch/branch.component.mjs +9 -3
  9. package/esm2020/lib/components/navigation/horizontal/horizontal.component.mjs +9 -3
  10. package/esm2020/lib/components/navigation/navigation.types.mjs +1 -1
  11. package/esm2020/lib/components/navigation/vertical/components/aside/aside.component.mjs +9 -3
  12. package/esm2020/lib/components/navigation/vertical/components/basic/basic.component.mjs +13 -6
  13. package/esm2020/lib/components/navigation/vertical/components/collapsable/collapsable.component.mjs +9 -3
  14. package/esm2020/lib/components/navigation/vertical/components/group/group.component.mjs +9 -3
  15. package/esm2020/lib/components/navigation/vertical/vertical.component.mjs +9 -3
  16. package/fesm2015/recursyve-nice-ui-kit.v2.mjs +134 -62
  17. package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  18. package/fesm2020/recursyve-nice-ui-kit.v2.mjs +153 -86
  19. package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  20. package/lib/components/async-typeahead/providers/async-typeahead.provider.d.ts +2 -1
  21. package/lib/components/async-typeahead/providers/async-typeahead.service.d.ts +13 -2
  22. package/lib/components/form-error/control-status.directive.d.ts +4 -2
  23. package/lib/components/form-error/form-error.component.d.ts +1 -1
  24. package/lib/components/navigation/horizontal/components/basic/basic.component.d.ts +4 -1
  25. package/lib/components/navigation/horizontal/components/branch/branch.component.d.ts +4 -1
  26. package/lib/components/navigation/horizontal/horizontal.component.d.ts +4 -1
  27. package/lib/components/navigation/navigation.types.d.ts +1 -0
  28. package/lib/components/navigation/vertical/components/aside/aside.component.d.ts +4 -1
  29. package/lib/components/navigation/vertical/components/basic/basic.component.d.ts +4 -1
  30. package/lib/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +4 -1
  31. package/lib/components/navigation/vertical/components/group/group.component.d.ts +4 -1
  32. package/lib/components/navigation/vertical/vertical.component.d.ts +4 -1
  33. package/package.json +1 -1
  34. package/src/lib/components/navigation/vertical/vertical.theme.scss +11 -0
@@ -4,9 +4,9 @@ import { HttpContextToken, HttpResponse, HttpContext, HttpParams } from '@angula
4
4
  import * as i0 from '@angular/core';
5
5
  import { Injectable, NgModule, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, HostBinding, InjectionToken, Directive, HostListener, forwardRef, TemplateRef, Optional, Inject, ViewChild, ContentChild, ViewChildren, Self, Pipe, ElementRef, PLATFORM_ID, ContentChildren, SimpleChange, SkipSelf } from '@angular/core';
6
6
  import { plainToInstance } from 'class-transformer';
7
- import { map, filter, takeUntil, tap, take, finalize, debounceTime as debounceTime$1, delay, switchMap } from 'rxjs/operators';
7
+ import { map, filter, takeUntil, tap, finalize, take, debounceTime as debounceTime$1, delay, switchMap as switchMap$1 } from 'rxjs/operators';
8
8
  import { __rest, __awaiter } from 'tslib';
9
- import { catchError, ReplaySubject, Subject, BehaviorSubject, mergeMap, from, isObservable, firstValueFrom, debounceTime, distinctUntilChanged, startWith, pairwise, tap as tap$1, Observable, combineLatest, defer, timer, of, fromEvent, merge as merge$1 } from 'rxjs';
9
+ import { catchError, ReplaySubject, Subject, BehaviorSubject, distinctUntilChanged, switchMap, defer, EMPTY, isObservable, mergeMap, from, firstValueFrom, debounceTime, startWith, pairwise, tap as tap$1, Observable, combineLatest, timer, of, fromEvent, merge as merge$1 } from 'rxjs';
10
10
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
11
11
  import * as i2 from '@angular/common';
12
12
  import { CommonModule, DatePipe, CurrencyPipe, DOCUMENT, isPlatformServer, NgForOf, NgIf, AsyncPipe, UpperCasePipe } from '@angular/common';
@@ -35,6 +35,7 @@ import * as i1$4 from '@angular/material/input';
35
35
  import { MatInputModule } from '@angular/material/input';
36
36
  import * as i10 from '@angular/material/progress-bar';
37
37
  import { MatProgressBarModule } from '@angular/material/progress-bar';
38
+ import { fromPromise } from 'rxjs/internal/observable/innerFrom';
38
39
  import { CdkStepper, CdkStep, CdkStepperModule } from '@angular/cdk/stepper';
39
40
  import * as i1$6 from '@recursyve/ngx-form-generator';
40
41
  import { registerAsyncValidatorDecorator, AsyncValidator, NGX_FORM_GENERATOR_ASYNC_VALIDATORS, DynamicGroup } from '@recursyve/ngx-form-generator';
@@ -64,9 +65,10 @@ import * as i1$e from '@angular/cdk/scrolling';
64
65
  import * as i3$1 from '@angular/cdk/bidi';
65
66
  import * as i1$f from '@angular/material/snack-bar';
66
67
  import { MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
68
+ import * as i6 from '@angular/material/tooltip';
69
+ import { MatTooltipModule } from '@angular/material/tooltip';
67
70
  import PerfectScrollbar from 'perfect-scrollbar';
68
71
  import { MatDividerModule } from '@angular/material/divider';
69
- import { MatTooltipModule } from '@angular/material/tooltip';
70
72
  import * as i1$h from '@angular/material/dialog';
71
73
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
72
74
  import * as i3$2 from '@angular/material/button-toggle';
@@ -934,10 +936,10 @@ class NiceAlertComponent {
934
936
  }
935
937
  }
936
938
  NiceAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAlertComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NiceAlertService }, { token: NiceUtilsService }], target: i0.ɵɵFactoryTarget.Component });
937
- NiceAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceAlertComponent, selector: "nice-alert", inputs: { appearance: "appearance", dismissed: "dismissed", dismissible: "dismissible", disableAnimation: "disableAnimation", name: "name", showIcon: "showIcon", type: "type", color: "color" }, outputs: { dismissedChanged: "dismissedChanged" }, host: { properties: { "class": "this.classList" } }, exportAs: ["niceAlert"], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"nice-alert-container\"\n *ngIf=\"!dismissible || dismissible && !dismissed\"\n [@fadeIn]=\"!dismissed && !disableAnimation\"\n [@fadeOut]=\"!dismissed && !disableAnimation\">\n\n <!-- Border -->\n <div\n class=\"nice-alert-border\"\n *ngIf=\"appearance === 'border'\"></div>\n\n <!-- Icon -->\n <div\n class=\"nice-alert-icon\"\n *ngIf=\"showIcon\">\n\n <!-- Custom icon -->\n <div class=\"nice-alert-custom-icon\">\n <ng-content select=\"[niceAlertIcon]\"></ng-content>\n </div>\n\n <!-- Default icons -->\n <div class=\"nice-alert-default-icon\">\n\n <mat-icon\n *ngIf=\"type === 'primary'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'accent'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warn'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'basic'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'info'\"\n [svgIcon]=\"'heroicons_solid:information-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'success'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warning'\"\n [svgIcon]=\"'heroicons_solid:exclamation'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'error'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n </div>\n\n </div>\n\n <!-- Content -->\n <div class=\"nice-alert-content\">\n\n <div class=\"nice-alert-title\">\n <ng-content select=\"[niceAlertTitle]\"></ng-content>\n </div>\n\n <div class=\"nice-alert-message\">\n <ng-content></ng-content>\n </div>\n\n </div>\n\n <!-- Dismiss button -->\n <button\n class=\"nice-alert-dismiss-button\"\n mat-icon-button\n (click)=\"dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_solid:x'\"></mat-icon>\n </button>\n\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
939
+ NiceAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceAlertComponent, selector: "nice-alert", inputs: { appearance: "appearance", dismissed: "dismissed", dismissible: "dismissible", disableAnimation: "disableAnimation", name: "name", showIcon: "showIcon", type: "type", color: "color" }, outputs: { dismissedChanged: "dismissedChanged" }, host: { properties: { "class": "this.classList" } }, exportAs: ["niceAlert"], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"nice-alert-container\"\n *ngIf=\"!dismissible || dismissible && !dismissed\"\n [@fadeIn]=\"!dismissed && !disableAnimation\"\n [@fadeOut]=\"!dismissed && !disableAnimation\">\n\n <!-- Border -->\n <div\n class=\"nice-alert-border\"\n *ngIf=\"appearance === 'border'\"></div>\n\n <!-- Icon -->\n <div\n class=\"nice-alert-icon\"\n *ngIf=\"showIcon\">\n\n <!-- Custom icon -->\n <div class=\"nice-alert-custom-icon\">\n <ng-content select=\"[niceAlertIcon]\"></ng-content>\n </div>\n\n <!-- Default icons -->\n <div class=\"nice-alert-default-icon\">\n\n <mat-icon\n *ngIf=\"type === 'primary'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'accent'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warn'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'basic'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'info'\"\n [svgIcon]=\"'heroicons_solid:information-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'success'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warning'\"\n [svgIcon]=\"'heroicons_solid:exclamation-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'error'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n </div>\n\n </div>\n\n <!-- Content -->\n <div class=\"nice-alert-content\">\n\n <div class=\"nice-alert-title\">\n <ng-content select=\"[niceAlertTitle]\"></ng-content>\n </div>\n\n <div class=\"nice-alert-message\">\n <ng-content></ng-content>\n </div>\n\n </div>\n\n <!-- Dismiss button -->\n <button\n class=\"nice-alert-dismiss-button\"\n mat-icon-button\n (click)=\"dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_solid:x'\"></mat-icon>\n </button>\n\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
938
940
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAlertComponent, decorators: [{
939
941
  type: Component,
940
- args: [{ selector: "nice-alert", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: niceAnimations, exportAs: "niceAlert", template: "<div\n class=\"nice-alert-container\"\n *ngIf=\"!dismissible || dismissible && !dismissed\"\n [@fadeIn]=\"!dismissed && !disableAnimation\"\n [@fadeOut]=\"!dismissed && !disableAnimation\">\n\n <!-- Border -->\n <div\n class=\"nice-alert-border\"\n *ngIf=\"appearance === 'border'\"></div>\n\n <!-- Icon -->\n <div\n class=\"nice-alert-icon\"\n *ngIf=\"showIcon\">\n\n <!-- Custom icon -->\n <div class=\"nice-alert-custom-icon\">\n <ng-content select=\"[niceAlertIcon]\"></ng-content>\n </div>\n\n <!-- Default icons -->\n <div class=\"nice-alert-default-icon\">\n\n <mat-icon\n *ngIf=\"type === 'primary'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'accent'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warn'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'basic'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'info'\"\n [svgIcon]=\"'heroicons_solid:information-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'success'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warning'\"\n [svgIcon]=\"'heroicons_solid:exclamation'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'error'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n </div>\n\n </div>\n\n <!-- Content -->\n <div class=\"nice-alert-content\">\n\n <div class=\"nice-alert-title\">\n <ng-content select=\"[niceAlertTitle]\"></ng-content>\n </div>\n\n <div class=\"nice-alert-message\">\n <ng-content></ng-content>\n </div>\n\n </div>\n\n <!-- Dismiss button -->\n <button\n class=\"nice-alert-dismiss-button\"\n mat-icon-button\n (click)=\"dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_solid:x'\"></mat-icon>\n </button>\n\n</div>\n" }]
942
+ args: [{ selector: "nice-alert", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: niceAnimations, exportAs: "niceAlert", template: "<div\n class=\"nice-alert-container\"\n *ngIf=\"!dismissible || dismissible && !dismissed\"\n [@fadeIn]=\"!dismissed && !disableAnimation\"\n [@fadeOut]=\"!dismissed && !disableAnimation\">\n\n <!-- Border -->\n <div\n class=\"nice-alert-border\"\n *ngIf=\"appearance === 'border'\"></div>\n\n <!-- Icon -->\n <div\n class=\"nice-alert-icon\"\n *ngIf=\"showIcon\">\n\n <!-- Custom icon -->\n <div class=\"nice-alert-custom-icon\">\n <ng-content select=\"[niceAlertIcon]\"></ng-content>\n </div>\n\n <!-- Default icons -->\n <div class=\"nice-alert-default-icon\">\n\n <mat-icon\n *ngIf=\"type === 'primary'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'accent'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warn'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'basic'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'info'\"\n [svgIcon]=\"'heroicons_solid:information-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'success'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warning'\"\n [svgIcon]=\"'heroicons_solid:exclamation-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'error'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n </div>\n\n </div>\n\n <!-- Content -->\n <div class=\"nice-alert-content\">\n\n <div class=\"nice-alert-title\">\n <ng-content select=\"[niceAlertTitle]\"></ng-content>\n </div>\n\n <div class=\"nice-alert-message\">\n <ng-content></ng-content>\n </div>\n\n </div>\n\n <!-- Dismiss button -->\n <button\n class=\"nice-alert-dismiss-button\"\n mat-icon-button\n (click)=\"dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_solid:x'\"></mat-icon>\n </button>\n\n</div>\n" }]
941
943
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceAlertService }, { type: NiceUtilsService }]; }, propDecorators: { appearance: [{
942
944
  type: Input
943
945
  }], dismissed: [{
@@ -2709,15 +2711,23 @@ class NiceAsyncTypeaheadService {
2709
2711
  isLastPage: false,
2710
2712
  excludedIds: []
2711
2713
  });
2712
- this.loading$ = this.state$.pipe(map(x => x.loading));
2713
- this.loadingPage$ = this.state$.pipe(map(x => x.loadingPage));
2714
- this.active$ = this.state$.pipe(map(x => x.active));
2715
- this.items$ = this.state$.pipe(map(x => x.items));
2716
- this.filteredItems$ = this.state$.pipe(map(x => x.items.filter(item => !x.excludedIds.includes(item.id))));
2714
+ this.loading$ = this.state$.pipe(map(x => x.loading), distinctUntilChanged());
2715
+ this.loadingPage$ = this.state$.pipe(map(x => x.loadingPage), distinctUntilChanged());
2716
+ this.active$ = this.state$.pipe(map(x => x.active), distinctUntilChanged());
2717
+ this.items$ = this.state$.pipe(map(x => x.items), distinctUntilChanged());
2718
+ this.filteredItems$ = this.state$.pipe(map(x => x.items.filter(item => !x.excludedIds.includes(item.id))), distinctUntilChanged());
2719
+ this.requests$ = new Subject();
2717
2720
  if (!this.apis) {
2718
2721
  this.apis = [];
2719
2722
  }
2720
2723
  }
2724
+ listenForRequest() {
2725
+ this.requestsSubscription$ = this.requests$.pipe(switchMap((request) => this.sendRequest(request))).subscribe();
2726
+ }
2727
+ closeRequestSubscription() {
2728
+ var _a;
2729
+ (_a = this.requestsSubscription$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
2730
+ }
2721
2731
  initialize(resource, options) {
2722
2732
  return __awaiter(this, void 0, void 0, function* () {
2723
2733
  const { initialized } = this.state$.getValue();
@@ -2727,48 +2737,54 @@ class NiceAsyncTypeaheadService {
2727
2737
  return this.search(resource, "", options);
2728
2738
  });
2729
2739
  }
2730
- search(resource, searchQuery, options) {
2731
- return __awaiter(this, void 0, void 0, function* () {
2740
+ sendRequest(request) {
2741
+ return defer(() => {
2732
2742
  const { active, initialized } = this.state$.getValue();
2733
2743
  if (active && !initialized) {
2734
2744
  this.state$.next(Object.assign(Object.assign({}, this.state$.value), { initialized: true }));
2735
- return;
2745
+ return EMPTY;
2736
2746
  }
2737
- const api = this.apis.find(x => x.resource === resource);
2747
+ const api = this.apis.find(x => x.resource === request.resource);
2738
2748
  if (!api) {
2739
- return;
2749
+ return EMPTY;
2740
2750
  }
2741
- try {
2742
- this.state$.next(Object.assign(Object.assign({}, this.state$.value), { loading: true, initialized: true, page: 0, isLastPage: false, searchQuery }));
2743
- const result = yield api.search(searchQuery, 0, options);
2744
- this.state$.next(Object.assign(Object.assign({}, this.state$.value), { items: result.items, page: result.nextPage ? result.nextPage : this.state$.value.page, isLastPage: !result.nextPage }));
2751
+ if (request.page === 0) {
2752
+ this.state$.next(Object.assign(Object.assign({}, this.state$.value), { loading: true, initialized: true, page: request.page, isLastPage: false, searchQuery: request.searchQuery }));
2745
2753
  }
2746
- catch (_a) { }
2747
- finally {
2748
- this.state$.next(Object.assign(Object.assign({}, this.state$.value), { loading: false }));
2754
+ else {
2755
+ this.state$.next(Object.assign(Object.assign({}, this.state$.value), { loadingPage: true }));
2756
+ }
2757
+ const result = api.search(request.searchQuery, request.page, request.searchOptions);
2758
+ if (isObservable(result)) {
2759
+ return result;
2749
2760
  }
2761
+ return fromPromise(result);
2762
+ }).pipe(map((result) => {
2763
+ var _a;
2764
+ this.state$.next(Object.assign(Object.assign({}, this.state$.value), { items: request.page === 0 ? result.items : [...((_a = this.state$.value.items) !== null && _a !== void 0 ? _a : []), ...result.items], page: result.nextPage ? result.nextPage : this.state$.value.page, isLastPage: !result.nextPage }));
2765
+ }), catchError(() => EMPTY), finalize(() => {
2766
+ this.state$.next(Object.assign(Object.assign({}, this.state$.value), { loading: false, loadingPage: false }));
2767
+ }));
2768
+ }
2769
+ search(resource, searchQuery, options) {
2770
+ this.requests$.next({
2771
+ resource,
2772
+ searchQuery,
2773
+ searchOptions: options,
2774
+ page: 0
2750
2775
  });
2751
2776
  }
2752
2777
  loadMore(resource, options) {
2753
- return __awaiter(this, void 0, void 0, function* () {
2754
- const { loadingPage, isLastPage } = this.state$.getValue();
2755
- if (loadingPage || isLastPage) {
2756
- return;
2757
- }
2758
- const api = this.apis.find(x => x.resource === resource);
2759
- if (!api) {
2760
- return;
2761
- }
2762
- try {
2763
- this.state$.next(Object.assign(Object.assign({}, this.state$.value), { loadingPage: true }));
2764
- const { searchQuery, page, items } = this.state$.getValue();
2765
- const result = yield api.search(searchQuery, page, options);
2766
- this.state$.next(Object.assign(Object.assign({}, this.state$.value), { items: [...items, ...result.items], page: result.nextPage ? result.nextPage : this.state$.value.page, isLastPage: !result.nextPage }));
2767
- }
2768
- catch (_a) { }
2769
- finally {
2770
- this.state$.next(Object.assign(Object.assign({}, this.state$.value), { loadingPage: false }));
2771
- }
2778
+ const { loadingPage, isLastPage } = this.state$.getValue();
2779
+ if (loadingPage || isLastPage) {
2780
+ return;
2781
+ }
2782
+ const { searchQuery, page } = this.state$.getValue();
2783
+ this.requests$.next({
2784
+ resource,
2785
+ page,
2786
+ searchQuery,
2787
+ searchOptions: options,
2772
2788
  });
2773
2789
  }
2774
2790
  getActive() {
@@ -2962,6 +2978,7 @@ class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
2962
2978
  }
2963
2979
  }
2964
2980
  ngOnInit() {
2981
+ this.service.listenForRequest();
2965
2982
  if (this.ngControl) {
2966
2983
  if (this.ngControl.disabled) {
2967
2984
  this.searchControl.disable({ emitEvent: false });
@@ -2992,13 +3009,15 @@ class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
2992
3009
  }
2993
3010
  }
2994
3011
  ngOnDestroy() {
3012
+ this.service.closeRequestSubscription();
2995
3013
  this.valueChangesSub$.unsubscribe();
2996
3014
  }
2997
3015
  ngOnChanges(changes) {
2998
3016
  if ("searchOptions" in changes) {
2999
3017
  const change = changes.searchOptions;
3000
3018
  if (!change.isFirstChange() && change.currentValue !== change.previousValue && this.autoReload) {
3001
- this.service.search(this.resource, "", change.currentValue).then(() => this.checkIfValueStillExist());
3019
+ this.service.search(this.resource, "", change.currentValue);
3020
+ this.service.items$.pipe(take(1)).subscribe(() => this.checkIfValueStillExist());
3002
3021
  }
3003
3022
  }
3004
3023
  if ("filterFn" in changes) {
@@ -5345,10 +5364,15 @@ class NiceControlStatusDirective {
5345
5364
  this.vcr = vcr;
5346
5365
  this.formField = formField;
5347
5366
  this.translateService = translateService;
5367
+ this.unsubscribeAll$ = new Subject();
5348
5368
  }
5349
5369
  ngAfterViewInit() {
5350
5370
  this.control = this.formField._control.ngControl;
5351
- this.control.statusChanges.subscribe(() => this.onChange());
5371
+ this.control.statusChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(() => this.onChange());
5372
+ }
5373
+ ngOnDestroy() {
5374
+ this.unsubscribeAll$.next();
5375
+ this.unsubscribeAll$.complete();
5352
5376
  }
5353
5377
  onChange() {
5354
5378
  if (this.control.pending) {
@@ -7765,6 +7789,8 @@ class NiceHorizontalNavigationBasicItemComponent {
7765
7789
  this._changeDetectorRef = _changeDetectorRef;
7766
7790
  this._niceNavigationService = _niceNavigationService;
7767
7791
  this._unsubscribeAll = new Subject();
7792
+ this.showTooltips = false;
7793
+ this.tooltipPosition = "after";
7768
7794
  }
7769
7795
  // -----------------------------------------------------------------------------------------------------
7770
7796
  // @ Lifecycle hooks
@@ -7791,14 +7817,18 @@ class NiceHorizontalNavigationBasicItemComponent {
7791
7817
  }
7792
7818
  }
7793
7819
  NiceHorizontalNavigationBasicItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationBasicItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
7794
- NiceHorizontalNavigationBasicItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceHorizontalNavigationBasicItemComponent, selector: "nice-horizontal-navigation-basic-item", inputs: { item: "item", name: "name" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <!-- Item with an internal link -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n (click)=\"item.function(item)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-horizontal-navigation-item-active-forced': item.active}\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-horizontal-navigation-item nice-horizontal-navigation-item-disabled\"\n *ngIf=\"item.disabled\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\">\n {{ item.badge.title | translate }}\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$b.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$b.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7820
+ NiceHorizontalNavigationBasicItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceHorizontalNavigationBasicItemComponent, selector: "nice-horizontal-navigation-basic-item", inputs: { item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | translate\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n <!-- Item with an internal link -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n (click)=\"item.function(item)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-horizontal-navigation-item-active-forced': item.active}\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-horizontal-navigation-item nice-horizontal-navigation-item-disabled\"\n *ngIf=\"item.disabled\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\">\n {{ item.badge.title | translate }}\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$b.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$b.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7795
7821
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationBasicItemComponent, decorators: [{
7796
7822
  type: Component,
7797
- args: [{ selector: "nice-horizontal-navigation-basic-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <!-- Item with an internal link -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n (click)=\"item.function(item)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-horizontal-navigation-item-active-forced': item.active}\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-horizontal-navigation-item nice-horizontal-navigation-item-disabled\"\n *ngIf=\"item.disabled\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\">\n {{ item.badge.title | translate }}\n </div>\n </div>\n</ng-template>\n" }]
7823
+ args: [{ selector: "nice-horizontal-navigation-basic-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | translate\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n <!-- Item with an internal link -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n (click)=\"item.function(item)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-horizontal-navigation-item-active-forced': item.active}\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-horizontal-navigation-item nice-horizontal-navigation-item-disabled\"\n *ngIf=\"item.disabled\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\">\n {{ item.badge.title | translate }}\n </div>\n </div>\n</ng-template>\n" }]
7798
7824
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }]; }, propDecorators: { item: [{
7799
7825
  type: Input
7800
7826
  }], name: [{
7801
7827
  type: Input
7828
+ }], showTooltips: [{
7829
+ type: Input
7830
+ }], tooltipPosition: [{
7831
+ type: Input
7802
7832
  }] } });
7803
7833
 
7804
7834
  class NiceHorizontalNavigationDividerItemComponent {
@@ -7882,6 +7912,8 @@ class NiceHorizontalNavigationBranchItemComponent {
7882
7912
  this._niceNavigationService = _niceNavigationService;
7883
7913
  this._unsubscribeAll = new Subject();
7884
7914
  this.child = false;
7915
+ this.showTooltips = false;
7916
+ this.tooltipPosition = "after";
7885
7917
  }
7886
7918
  // -----------------------------------------------------------------------------------------------------
7887
7919
  // @ Lifecycle hooks
@@ -7918,10 +7950,10 @@ class NiceHorizontalNavigationBranchItemComponent {
7918
7950
  }
7919
7951
  }
7920
7952
  NiceHorizontalNavigationBranchItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationBranchItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
7921
- NiceHorizontalNavigationBranchItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceHorizontalNavigationBranchItemComponent, selector: "nice-horizontal-navigation-branch-item", inputs: { child: "child", item: "item", name: "name" }, viewQueries: [{ propertyName: "matMenu", first: true, predicate: ["matMenu"], descendants: true, static: true }], ngImport: i0, template: "<div\n *ngIf=\"!child\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-menu-active': trigger.menuOpen,\n 'nice-horizontal-navigation-menu-active-forced': item.active\n }\"\n [matMenuTriggerFor]=\"matMenu\"\n (onMenuOpen)=\"triggerChangeDetection()\"\n (onMenuClose)=\"triggerChangeDetection()\"\n #trigger=\"matMenuTrigger\"\n>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n</div>\n\n<mat-menu\n class=\"nice-horizontal-navigation-menu-panel\"\n [overlapTrigger]=\"false\"\n #matMenu=\"matMenu\"\n>\n <ng-container *ngFor=\"let item of item.children\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [disabled]=\"item.disabled\"\n mat-menu-item\n >\n <nice-horizontal-navigation-basic-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-basic-item>\n </div>\n\n <!-- Branch: aside, collapsable, group -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [disabled]=\"item.disabled\"\n [matMenuTriggerFor]=\"branch.matMenu\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <nice-horizontal-navigation-branch-item\n [child]=\"true\"\n [item]=\"item\"\n [name]=\"name\"\n #branch\n ></nice-horizontal-navigation-branch-item>\n </div>\n\n <!-- Divider -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'divider'\"\n mat-menu-item\n >\n <nice-horizontal-navigation-divider-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-divider-item>\n </div>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<!-- Item template -->\n<ng-template\n let-item\n #itemTemplate\n>\n <div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n >\n <div\n class=\"nice-horizontal-navigation-item\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-item-disabled': item.disabled,\n 'nice-horizontal-navigation-item-active-forced': item.active\n }\">\n\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\">\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: NiceHorizontalNavigationBasicItemComponent, selector: "nice-horizontal-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: NiceHorizontalNavigationBranchItemComponent, selector: "nice-horizontal-navigation-branch-item", inputs: ["child", "item", "name"] }, { kind: "component", type: NiceHorizontalNavigationDividerItemComponent, selector: "nice-horizontal-navigation-divider-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7953
+ NiceHorizontalNavigationBranchItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceHorizontalNavigationBranchItemComponent, selector: "nice-horizontal-navigation-branch-item", inputs: { child: "child", item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, viewQueries: [{ propertyName: "matMenu", first: true, predicate: ["matMenu"], descendants: true, static: true }], ngImport: i0, template: "<div\n *ngIf=\"!child\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-menu-active': trigger.menuOpen,\n 'nice-horizontal-navigation-menu-active-forced': item.active\n }\"\n [matMenuTriggerFor]=\"matMenu\"\n (onMenuOpen)=\"triggerChangeDetection()\"\n (onMenuClose)=\"triggerChangeDetection()\"\n #trigger=\"matMenuTrigger\"\n>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n</div>\n\n<mat-menu\n class=\"nice-horizontal-navigation-menu-panel\"\n [overlapTrigger]=\"false\"\n #matMenu=\"matMenu\"\n>\n <ng-container *ngFor=\"let item of item.children\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [disabled]=\"item.disabled\"\n mat-menu-item\n >\n <nice-horizontal-navigation-basic-item\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n </div>\n\n <!-- Branch: aside, collapsable, group -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [disabled]=\"item.disabled\"\n [matMenuTriggerFor]=\"branch.matMenu\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <nice-horizontal-navigation-branch-item\n [child]=\"true\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n #branch\n ></nice-horizontal-navigation-branch-item>\n </div>\n\n <!-- Divider -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'divider'\"\n mat-menu-item\n >\n <nice-horizontal-navigation-divider-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-divider-item>\n </div>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<!-- Item template -->\n<ng-template\n let-item\n #itemTemplate\n>\n <div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n >\n <div\n class=\"nice-horizontal-navigation-item\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-item-disabled': item.disabled,\n 'nice-horizontal-navigation-item-active-forced': item.active\n }\">\n\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\">\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: NiceHorizontalNavigationBasicItemComponent, selector: "nice-horizontal-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceHorizontalNavigationBranchItemComponent, selector: "nice-horizontal-navigation-branch-item", inputs: ["child", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceHorizontalNavigationDividerItemComponent, selector: "nice-horizontal-navigation-divider-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7922
7954
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationBranchItemComponent, decorators: [{
7923
7955
  type: Component,
7924
- args: [{ selector: "nice-horizontal-navigation-branch-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"!child\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-menu-active': trigger.menuOpen,\n 'nice-horizontal-navigation-menu-active-forced': item.active\n }\"\n [matMenuTriggerFor]=\"matMenu\"\n (onMenuOpen)=\"triggerChangeDetection()\"\n (onMenuClose)=\"triggerChangeDetection()\"\n #trigger=\"matMenuTrigger\"\n>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n</div>\n\n<mat-menu\n class=\"nice-horizontal-navigation-menu-panel\"\n [overlapTrigger]=\"false\"\n #matMenu=\"matMenu\"\n>\n <ng-container *ngFor=\"let item of item.children\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [disabled]=\"item.disabled\"\n mat-menu-item\n >\n <nice-horizontal-navigation-basic-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-basic-item>\n </div>\n\n <!-- Branch: aside, collapsable, group -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [disabled]=\"item.disabled\"\n [matMenuTriggerFor]=\"branch.matMenu\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <nice-horizontal-navigation-branch-item\n [child]=\"true\"\n [item]=\"item\"\n [name]=\"name\"\n #branch\n ></nice-horizontal-navigation-branch-item>\n </div>\n\n <!-- Divider -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'divider'\"\n mat-menu-item\n >\n <nice-horizontal-navigation-divider-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-divider-item>\n </div>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<!-- Item template -->\n<ng-template\n let-item\n #itemTemplate\n>\n <div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n >\n <div\n class=\"nice-horizontal-navigation-item\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-item-disabled': item.disabled,\n 'nice-horizontal-navigation-item-active-forced': item.active\n }\">\n\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\">\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n" }]
7956
+ args: [{ selector: "nice-horizontal-navigation-branch-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"!child\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-menu-active': trigger.menuOpen,\n 'nice-horizontal-navigation-menu-active-forced': item.active\n }\"\n [matMenuTriggerFor]=\"matMenu\"\n (onMenuOpen)=\"triggerChangeDetection()\"\n (onMenuClose)=\"triggerChangeDetection()\"\n #trigger=\"matMenuTrigger\"\n>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n</div>\n\n<mat-menu\n class=\"nice-horizontal-navigation-menu-panel\"\n [overlapTrigger]=\"false\"\n #matMenu=\"matMenu\"\n>\n <ng-container *ngFor=\"let item of item.children\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [disabled]=\"item.disabled\"\n mat-menu-item\n >\n <nice-horizontal-navigation-basic-item\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n </div>\n\n <!-- Branch: aside, collapsable, group -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [disabled]=\"item.disabled\"\n [matMenuTriggerFor]=\"branch.matMenu\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <nice-horizontal-navigation-branch-item\n [child]=\"true\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n #branch\n ></nice-horizontal-navigation-branch-item>\n </div>\n\n <!-- Divider -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'divider'\"\n mat-menu-item\n >\n <nice-horizontal-navigation-divider-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-divider-item>\n </div>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<!-- Item template -->\n<ng-template\n let-item\n #itemTemplate\n>\n <div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n >\n <div\n class=\"nice-horizontal-navigation-item\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-item-disabled': item.disabled,\n 'nice-horizontal-navigation-item-active-forced': item.active\n }\">\n\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\">\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n" }]
7925
7957
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }]; }, propDecorators: { child: [{
7926
7958
  type: Input
7927
7959
  }], item: [{
@@ -7931,6 +7963,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
7931
7963
  }], matMenu: [{
7932
7964
  type: ViewChild,
7933
7965
  args: ["matMenu", { static: true }]
7966
+ }], showTooltips: [{
7967
+ type: Input
7968
+ }], tooltipPosition: [{
7969
+ type: Input
7934
7970
  }] } });
7935
7971
 
7936
7972
  class NiceHorizontalNavigationSpacerItemComponent {
@@ -7991,15 +8027,21 @@ class NiceHorizontalNavigationComponent extends NiceNavigationComponent {
7991
8027
  constructor(_changeDetectorRef, _niceNavigationService, _niceUtilsService) {
7992
8028
  super(_changeDetectorRef, _niceNavigationService, _niceUtilsService);
7993
8029
  this.name = this._niceUtilsService.randomId();
8030
+ this.showTooltips = false;
8031
+ this.tooltipPosition = "after";
7994
8032
  }
7995
8033
  }
7996
8034
  NiceHorizontalNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NiceNavigationService }, { token: NiceUtilsService }], target: i0.ɵɵFactoryTarget.Component });
7997
- NiceHorizontalNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceHorizontalNavigationComponent, selector: "nice-horizontal-navigation", inputs: { name: "name", navigation: "navigation" }, exportAs: ["niceHorizontalNavigation"], usesInheritance: true, ngImport: i0, template: "<div class=\"nice-horizontal-navigation-wrapper\">\n <ng-container *ngFor=\"let item of navigation\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-horizontal-navigation-basic-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-basic-item>\n\n <!-- Branch: aside, collapsable, group -->\n <nice-horizontal-navigation-branch-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-branch-item>\n\n <!-- Spacer -->\n <nice-horizontal-navigation-spacer-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NiceHorizontalNavigationBasicItemComponent, selector: "nice-horizontal-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: NiceHorizontalNavigationBranchItemComponent, selector: "nice-horizontal-navigation-branch-item", inputs: ["child", "item", "name"] }, { kind: "component", type: NiceHorizontalNavigationSpacerItemComponent, selector: "nice-horizontal-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
8035
+ NiceHorizontalNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceHorizontalNavigationComponent, selector: "nice-horizontal-navigation", inputs: { name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition", navigation: "navigation" }, exportAs: ["niceHorizontalNavigation"], usesInheritance: true, ngImport: i0, template: "<div class=\"nice-horizontal-navigation-wrapper\">\n <ng-container *ngFor=\"let item of navigation\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-horizontal-navigation-basic-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n\n <!-- Branch: aside, collapsable, group -->\n <nice-horizontal-navigation-branch-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-branch-item>\n\n <!-- Spacer -->\n <nice-horizontal-navigation-spacer-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NiceHorizontalNavigationBasicItemComponent, selector: "nice-horizontal-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceHorizontalNavigationBranchItemComponent, selector: "nice-horizontal-navigation-branch-item", inputs: ["child", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceHorizontalNavigationSpacerItemComponent, selector: "nice-horizontal-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7998
8036
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationComponent, decorators: [{
7999
8037
  type: Component,
8000
- args: [{ selector: "nice-horizontal-navigation", animations: niceAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: "niceHorizontalNavigation", template: "<div class=\"nice-horizontal-navigation-wrapper\">\n <ng-container *ngFor=\"let item of navigation\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-horizontal-navigation-basic-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-basic-item>\n\n <!-- Branch: aside, collapsable, group -->\n <nice-horizontal-navigation-branch-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-branch-item>\n\n <!-- Spacer -->\n <nice-horizontal-navigation-spacer-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
8038
+ args: [{ selector: "nice-horizontal-navigation", animations: niceAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: "niceHorizontalNavigation", template: "<div class=\"nice-horizontal-navigation-wrapper\">\n <ng-container *ngFor=\"let item of navigation\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-horizontal-navigation-basic-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n\n <!-- Branch: aside, collapsable, group -->\n <nice-horizontal-navigation-branch-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-branch-item>\n\n <!-- Spacer -->\n <nice-horizontal-navigation-spacer-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
8001
8039
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }, { type: NiceUtilsService }]; }, propDecorators: { name: [{
8002
8040
  type: Input
8041
+ }], showTooltips: [{
8042
+ type: Input
8043
+ }], tooltipPosition: [{
8044
+ type: Input
8003
8045
  }], navigation: [{
8004
8046
  type: Input
8005
8047
  }] } });
@@ -8564,6 +8606,8 @@ class NiceVerticalNavigationBasicItemComponent {
8564
8606
  this._route = _route;
8565
8607
  this._router = _router;
8566
8608
  this._unsubscribeAll = new Subject();
8609
+ this.showTooltips = false;
8610
+ this.tooltipPosition = "after";
8567
8611
  this.itemActive$ = this._route.url.pipe(map(() => {
8568
8612
  const url = this._router.url.split("?").shift();
8569
8613
  if (this.item.exactMatch === true) {
@@ -8597,14 +8641,18 @@ class NiceVerticalNavigationBasicItemComponent {
8597
8641
  }
8598
8642
  }
8599
8643
  NiceVerticalNavigationBasicItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationBasicItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NiceNavigationService }, { token: NiceUtilsService }, { token: i1$b.ActivatedRoute }, { token: i1$b.Router }], target: i0.ɵɵFactoryTarget.Component });
8600
- NiceVerticalNavigationBasicItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: { item: "item", name: "name" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$b.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$b.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NiceShowHintDirective, selector: "[niceShowHint]", inputs: ["shouldShow", "item"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldShowHintPipe, name: "niceShouldShowHint" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8644
+ NiceVerticalNavigationBasicItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: { item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n matTooltipClass=\"nice-vertical-navigation-item-tooltips\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | translate\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$b.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$b.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: NiceShowHintDirective, selector: "[niceShowHint]", inputs: ["shouldShow", "item"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldShowHintPipe, name: "niceShouldShowHint" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8601
8645
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationBasicItemComponent, decorators: [{
8602
8646
  type: Component,
8603
- args: [{ selector: "nice-vertical-navigation-basic-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n" }]
8647
+ args: [{ selector: "nice-vertical-navigation-basic-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n matTooltipClass=\"nice-vertical-navigation-item-tooltips\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | translate\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n" }]
8604
8648
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }, { type: NiceUtilsService }, { type: i1$b.ActivatedRoute }, { type: i1$b.Router }]; }, propDecorators: { item: [{
8605
8649
  type: Input
8606
8650
  }], name: [{
8607
8651
  type: Input
8652
+ }], showTooltips: [{
8653
+ type: Input
8654
+ }], tooltipPosition: [{
8655
+ type: Input
8608
8656
  }] } });
8609
8657
 
8610
8658
  class NiceVerticalNavigationDividerItemComponent {
@@ -8704,6 +8752,8 @@ class NiceVerticalNavigationCollapsableItemComponent {
8704
8752
  this._router = _router;
8705
8753
  this._niceNavigationService = _niceNavigationService;
8706
8754
  this._unsubscribeAll = new Subject();
8755
+ this.showTooltips = false;
8756
+ this.tooltipPosition = "after";
8707
8757
  this.isCollapsed = true;
8708
8758
  this.isExpanded = false;
8709
8759
  this.hasChildActivated$ = new BehaviorSubject(false);
@@ -8921,16 +8971,20 @@ class NiceVerticalNavigationCollapsableItemComponent {
8921
8971
  }
8922
8972
  }
8923
8973
  NiceVerticalNavigationCollapsableItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$b.Router }, { token: NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
8924
- NiceVerticalNavigationCollapsableItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name" }, host: { properties: { "class": "this.classList" } }, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }, { kind: "pipe", type: NiceShouldShowHintPipe, name: "niceShouldShowHint" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8974
+ NiceVerticalNavigationCollapsableItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, host: { properties: { "class": "this.classList" } }, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }, { kind: "pipe", type: NiceShouldShowHintPipe, name: "niceShouldShowHint" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8925
8975
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, decorators: [{
8926
8976
  type: Component,
8927
- args: [{ selector: "nice-vertical-navigation-collapsable-item", animations: niceAnimations, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
8977
+ args: [{ selector: "nice-vertical-navigation-collapsable-item", animations: niceAnimations, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
8928
8978
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$b.Router }, { type: NiceNavigationService }]; }, propDecorators: { autoCollapse: [{
8929
8979
  type: Input
8930
8980
  }], item: [{
8931
8981
  type: Input
8932
8982
  }], name: [{
8933
8983
  type: Input
8984
+ }], showTooltips: [{
8985
+ type: Input
8986
+ }], tooltipPosition: [{
8987
+ type: Input
8934
8988
  }], classList: [{
8935
8989
  type: HostBinding,
8936
8990
  args: ["class"]
@@ -8944,6 +8998,8 @@ class NiceVerticalNavigationGroupItemComponent {
8944
8998
  this._changeDetectorRef = _changeDetectorRef;
8945
8999
  this._niceNavigationService = _niceNavigationService;
8946
9000
  this._unsubscribeAll = new Subject();
9001
+ this.showTooltips = false;
9002
+ this.tooltipPosition = "after";
8947
9003
  }
8948
9004
  // -----------------------------------------------------------------------------------------------------
8949
9005
  // @ Lifecycle hooks
@@ -8979,16 +9035,20 @@ class NiceVerticalNavigationGroupItemComponent {
8979
9035
  }
8980
9036
  }
8981
9037
  NiceVerticalNavigationGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
8982
- NiceVerticalNavigationGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div class=\"nice-vertical-navigation-item\">\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\" *ngIf=\"item.title || item.subtitle\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9038
+ NiceVerticalNavigationGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div class=\"nice-vertical-navigation-item\">\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\" *ngIf=\"item.title || item.subtitle\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8983
9039
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationGroupItemComponent, decorators: [{
8984
9040
  type: Component,
8985
- args: [{ selector: "nice-vertical-navigation-group-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div class=\"nice-vertical-navigation-item\">\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\" *ngIf=\"item.title || item.subtitle\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n</ng-container>\n" }]
9041
+ args: [{ selector: "nice-vertical-navigation-group-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div class=\"nice-vertical-navigation-item\">\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\" *ngIf=\"item.title || item.subtitle\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n</ng-container>\n" }]
8986
9042
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }]; }, propDecorators: { autoCollapse: [{
8987
9043
  type: Input
8988
9044
  }], item: [{
8989
9045
  type: Input
8990
9046
  }], name: [{
8991
9047
  type: Input
9048
+ }], showTooltips: [{
9049
+ type: Input
9050
+ }], tooltipPosition: [{
9051
+ type: Input
8992
9052
  }] } });
8993
9053
 
8994
9054
  class NiceVerticalNavigationAsideItemComponent {
@@ -9000,6 +9060,8 @@ class NiceVerticalNavigationAsideItemComponent {
9000
9060
  this._router = _router;
9001
9061
  this._niceNavigationService = _niceNavigationService;
9002
9062
  this._unsubscribeAll = new Subject();
9063
+ this.showTooltips = false;
9064
+ this.tooltipPosition = "after";
9003
9065
  this.active = false;
9004
9066
  }
9005
9067
  // -----------------------------------------------------------------------------------------------------
@@ -9098,10 +9160,10 @@ class NiceVerticalNavigationAsideItemComponent {
9098
9160
  }
9099
9161
  }
9100
9162
  NiceVerticalNavigationAsideItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$b.Router }, { token: NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
9101
- NiceVerticalNavigationAsideItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationAsideItemComponent, selector: "nice-vertical-navigation-aside-item", inputs: { activeItemId: "activeItemId", autoCollapse: "autoCollapse", item: "item", name: "name", skipChildren: "skipChildren" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9163
+ NiceVerticalNavigationAsideItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationAsideItemComponent, selector: "nice-vertical-navigation-aside-item", inputs: { activeItemId: "activeItemId", autoCollapse: "autoCollapse", item: "item", name: "name", showTooltips: "showTooltips", skipChildren: "skipChildren", tooltipPosition: "tooltipPosition" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9102
9164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, decorators: [{
9103
9165
  type: Component,
9104
- args: [{ selector: "nice-vertical-navigation-aside-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
9166
+ args: [{ selector: "nice-vertical-navigation-aside-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
9105
9167
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$b.Router }, { type: NiceNavigationService }]; }, propDecorators: { activeItemId: [{
9106
9168
  type: Input
9107
9169
  }], autoCollapse: [{
@@ -9110,8 +9172,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
9110
9172
  type: Input
9111
9173
  }], name: [{
9112
9174
  type: Input
9175
+ }], showTooltips: [{
9176
+ type: Input
9113
9177
  }], skipChildren: [{
9114
9178
  type: Input
9179
+ }], tooltipPosition: [{
9180
+ type: Input
9115
9181
  }] } });
9116
9182
 
9117
9183
  class NiceVerticalNavigationComponent extends NiceNavigationComponent {
@@ -9150,7 +9216,9 @@ class NiceVerticalNavigationComponent extends NiceNavigationComponent {
9150
9216
  this.hovered = false;
9151
9217
  this.hasHint = false;
9152
9218
  this.position = "left";
9219
+ this.showTooltips = false;
9153
9220
  this.transparentOverlay = false;
9221
+ this.tooltipPosition = "after";
9154
9222
  this.appearanceChanged = new EventEmitter();
9155
9223
  this.modeChanged = new EventEmitter();
9156
9224
  this.openedChanged = new EventEmitter();
@@ -9618,10 +9686,10 @@ class NiceVerticalNavigationComponent extends NiceNavigationComponent {
9618
9686
  }
9619
9687
  }
9620
9688
  NiceVerticalNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NiceNavigationService }, { token: NiceUtilsService }, { token: i1$c.AnimationBuilder }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$b.Router }, { token: i1$7.ScrollStrategyOptions }, { token: NiceNavigationHintService }], target: i0.ɵɵFactoryTarget.Component });
9621
- NiceVerticalNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationComponent, selector: "nice-vertical-navigation", inputs: { name: "name", appearance: "appearance", autoCollapse: "autoCollapse", inner: "inner", mode: "mode", opened: "opened", hovered: "hovered", hasHint: "hasHint", position: "position", transparentOverlay: "transparentOverlay", navigation: "navigation" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", hoveredChanged: "hoveredChanged", positionChanged: "positionChanged" }, host: { listeners: { "mouseenter": "_onMouseenter()", "mouseleave": "_onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }, { propertyName: "niceScrollbarDirectives", predicate: NiceScrollbarDirective, descendants: true }], exportAs: ["niceVerticalNavigation"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"nice-vertical-navigation-wrapper\">\n <!-- Header -->\n <div class=\"nice-vertical-navigation-header\">\n <ng-content select=\"[niceVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div\n class=\"nice-vertical-navigation-content\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: inner, suppressScrollX: true }\"\n #navigationContent\n >\n <!-- Content header -->\n <div class=\"nice-vertical-navigation-content-header\">\n <ng-content select=\"[niceVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n <div *ngFor=\"let item of navigation; trackBy: trackByFn\" [@.disabled]=\"!animateNextNavChange\" @slideInRight>\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside'\"\n [item]=\"item\"\n [name]=\"name\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n (click)=\"toggleAside(item)\"\n ></nice-vertical-navigation-aside-item>\n\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </div>\n\n <!-- Content footer -->\n <div class=\"nice-vertical-navigation-content-footer\">\n <ng-content select=\"[niceVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n\n <!-- Footer -->\n <div class=\"nice-vertical-navigation-footer\">\n <ng-content select=\"[niceVerticalNavigationFooter]\"></ng-content>\n </div>\n</div>\n\n<!-- Aside -->\n<div\n class=\"nice-vertical-navigation-aside-wrapper\"\n *ngIf=\"activeAsideItemId\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: false, suppressScrollX: true }\"\n [@fadeInLeft]=\"position === 'left'\"\n [@fadeInRight]=\"position === 'right'\"\n [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\"\n>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-aside-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NiceScrollbarDirective, selector: "[niceScrollbar]", inputs: ["niceScrollbar", "niceScrollbarOptions"], exportAs: ["niceScrollbar"] }, { kind: "component", type: NiceVerticalNavigationAsideItemComponent, selector: "nice-vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "name", "skipChildren"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
9689
+ NiceVerticalNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationComponent, selector: "nice-vertical-navigation", inputs: { name: "name", appearance: "appearance", autoCollapse: "autoCollapse", inner: "inner", mode: "mode", opened: "opened", hovered: "hovered", hasHint: "hasHint", position: "position", showTooltips: "showTooltips", transparentOverlay: "transparentOverlay", tooltipPosition: "tooltipPosition", navigation: "navigation" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", hoveredChanged: "hoveredChanged", positionChanged: "positionChanged" }, host: { listeners: { "mouseenter": "_onMouseenter()", "mouseleave": "_onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }, { propertyName: "niceScrollbarDirectives", predicate: NiceScrollbarDirective, descendants: true }], exportAs: ["niceVerticalNavigation"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"nice-vertical-navigation-wrapper\">\n <!-- Header -->\n <div class=\"nice-vertical-navigation-header\">\n <ng-content select=\"[niceVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div\n class=\"nice-vertical-navigation-content\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: inner, suppressScrollX: true }\"\n #navigationContent\n >\n <!-- Content header -->\n <div class=\"nice-vertical-navigation-content-header\">\n <ng-content select=\"[niceVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n <div *ngFor=\"let item of navigation; trackBy: trackByFn\" [@.disabled]=\"!animateNextNavChange\" @slideInRight>\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside'\"\n [item]=\"item\"\n [name]=\"name\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"toggleAside(item)\"\n ></nice-vertical-navigation-aside-item>\n\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </div>\n\n <!-- Content footer -->\n <div class=\"nice-vertical-navigation-content-footer\">\n <ng-content select=\"[niceVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n\n <!-- Footer -->\n <div class=\"nice-vertical-navigation-footer\">\n <ng-content select=\"[niceVerticalNavigationFooter]\"></ng-content>\n </div>\n</div>\n\n<!-- Aside -->\n<div\n class=\"nice-vertical-navigation-aside-wrapper\"\n *ngIf=\"activeAsideItemId\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: false, suppressScrollX: true }\"\n [@fadeInLeft]=\"position === 'left'\"\n [@fadeInRight]=\"position === 'right'\"\n [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\"\n>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-aside-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NiceScrollbarDirective, selector: "[niceScrollbar]", inputs: ["niceScrollbar", "niceScrollbarOptions"], exportAs: ["niceScrollbar"] }, { kind: "component", type: NiceVerticalNavigationAsideItemComponent, selector: "nice-vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "name", "showTooltips", "skipChildren", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
9622
9690
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationComponent, decorators: [{
9623
9691
  type: Component,
9624
- args: [{ selector: "nice-vertical-navigation", animations: niceAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: "niceVerticalNavigation", template: "<div class=\"nice-vertical-navigation-wrapper\">\n <!-- Header -->\n <div class=\"nice-vertical-navigation-header\">\n <ng-content select=\"[niceVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div\n class=\"nice-vertical-navigation-content\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: inner, suppressScrollX: true }\"\n #navigationContent\n >\n <!-- Content header -->\n <div class=\"nice-vertical-navigation-content-header\">\n <ng-content select=\"[niceVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n <div *ngFor=\"let item of navigation; trackBy: trackByFn\" [@.disabled]=\"!animateNextNavChange\" @slideInRight>\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside'\"\n [item]=\"item\"\n [name]=\"name\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n (click)=\"toggleAside(item)\"\n ></nice-vertical-navigation-aside-item>\n\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </div>\n\n <!-- Content footer -->\n <div class=\"nice-vertical-navigation-content-footer\">\n <ng-content select=\"[niceVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n\n <!-- Footer -->\n <div class=\"nice-vertical-navigation-footer\">\n <ng-content select=\"[niceVerticalNavigationFooter]\"></ng-content>\n </div>\n</div>\n\n<!-- Aside -->\n<div\n class=\"nice-vertical-navigation-aside-wrapper\"\n *ngIf=\"activeAsideItemId\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: false, suppressScrollX: true }\"\n [@fadeInLeft]=\"position === 'left'\"\n [@fadeInRight]=\"position === 'right'\"\n [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\"\n>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n ></nice-vertical-navigation-aside-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
9692
+ args: [{ selector: "nice-vertical-navigation", animations: niceAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: "niceVerticalNavigation", template: "<div class=\"nice-vertical-navigation-wrapper\">\n <!-- Header -->\n <div class=\"nice-vertical-navigation-header\">\n <ng-content select=\"[niceVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div\n class=\"nice-vertical-navigation-content\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: inner, suppressScrollX: true }\"\n #navigationContent\n >\n <!-- Content header -->\n <div class=\"nice-vertical-navigation-content-header\">\n <ng-content select=\"[niceVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n <div *ngFor=\"let item of navigation; trackBy: trackByFn\" [@.disabled]=\"!animateNextNavChange\" @slideInRight>\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside'\"\n [item]=\"item\"\n [name]=\"name\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"toggleAside(item)\"\n ></nice-vertical-navigation-aside-item>\n\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </div>\n\n <!-- Content footer -->\n <div class=\"nice-vertical-navigation-content-footer\">\n <ng-content select=\"[niceVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n\n <!-- Footer -->\n <div class=\"nice-vertical-navigation-footer\">\n <ng-content select=\"[niceVerticalNavigationFooter]\"></ng-content>\n </div>\n</div>\n\n<!-- Aside -->\n<div\n class=\"nice-vertical-navigation-aside-wrapper\"\n *ngIf=\"activeAsideItemId\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: false, suppressScrollX: true }\"\n [@fadeInLeft]=\"position === 'left'\"\n [@fadeInRight]=\"position === 'right'\"\n [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\"\n>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-aside-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
9625
9693
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }, { type: NiceUtilsService }, { type: i1$c.AnimationBuilder }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$b.Router }, { type: i1$7.ScrollStrategyOptions }, { type: NiceNavigationHintService }]; }, propDecorators: { name: [{
9626
9694
  type: Input
9627
9695
  }], appearance: [{
@@ -9640,8 +9708,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
9640
9708
  type: Input
9641
9709
  }], position: [{
9642
9710
  type: Input
9711
+ }], showTooltips: [{
9712
+ type: Input
9643
9713
  }], transparentOverlay: [{
9644
9714
  type: Input
9715
+ }], tooltipPosition: [{
9716
+ type: Input
9645
9717
  }], appearanceChanged: [{
9646
9718
  type: Output
9647
9719
  }], modeChanged: [{
@@ -9923,7 +9995,7 @@ class NiceSweetAlertService {
9923
9995
  }
9924
9996
  success(...args) {
9925
9997
  const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);
9926
- return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(switchMap(([title, message, buttons]) => {
9998
+ return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(switchMap$1(([title, message, buttons]) => {
9927
9999
  return this.matDialog
9928
10000
  .open(this.modal, {
9929
10001
  panelClass: "nice-alert-modal",
@@ -9939,7 +10011,7 @@ class NiceSweetAlertService {
9939
10011
  }
9940
10012
  warning(...args) {
9941
10013
  const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);
9942
- return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(switchMap(([title, message, buttons]) => {
10014
+ return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(switchMap$1(([title, message, buttons]) => {
9943
10015
  return this.matDialog
9944
10016
  .open(this.modal, {
9945
10017
  panelClass: "nice-alert-modal",
@@ -9955,7 +10027,7 @@ class NiceSweetAlertService {
9955
10027
  }
9956
10028
  info(...args) {
9957
10029
  const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);
9958
- return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(switchMap(([title, message, buttons]) => {
10030
+ return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(switchMap$1(([title, message, buttons]) => {
9959
10031
  return this.matDialog
9960
10032
  .open(this.modal, {
9961
10033
  panelClass: "nice-alert-modal",