@recursyve/nice-ui-kit.v2 15.0.0-beta.120 → 15.0.0-beta.121

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 (53) hide show
  1. package/esm2020/lib/components/assets-carousel/assets-carousel.component.mjs +48 -25
  2. package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +33 -12
  3. package/esm2020/lib/components/loading-toast/index.mjs +2 -0
  4. package/esm2020/lib/components/loading-toast/loading-toast.component.mjs +38 -0
  5. package/esm2020/lib/components/loading-toast/loading-toast.constant.mjs +3 -0
  6. package/esm2020/lib/components/loading-toast/loading-toast.directive.mjs +64 -0
  7. package/esm2020/lib/components/loading-toast/loading-toast.module.mjs +62 -0
  8. package/esm2020/lib/components/loading-toast/loading-toast.service.mjs +47 -0
  9. package/esm2020/lib/components/loading-toast/public-api.mjs +6 -0
  10. package/esm2020/lib/components/loading-toast/rxjs/show-loading-toast.operator.mjs +12 -0
  11. package/esm2020/lib/components/public-api.mjs +2 -1
  12. package/esm2020/lib/components/toast/public-api.mjs +3 -1
  13. package/esm2020/lib/components/toast/rxjs/show-success-or-error-toast.operator.mjs +22 -0
  14. package/esm2020/lib/components/toast/rxjs/show-toast.operator.mjs +22 -0
  15. package/esm2020/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +4 -3
  16. package/esm2020/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +4 -3
  17. package/esm2020/lib/components/translation-form/components/translation-form.component.mjs +8 -7
  18. package/esm2020/lib/components/translation-form/decorators/translation-form-group.decorator.mjs +4 -0
  19. package/esm2020/lib/components/translation-form/directives/translation-context.directive.mjs +11 -5
  20. package/esm2020/lib/components/translation-form/providers/nice-translation-form.service.mjs +59 -0
  21. package/esm2020/lib/components/translation-form/public-api.mjs +7 -7
  22. package/esm2020/lib/components/translation-form/toggle/translation-toggle.component.mjs +5 -5
  23. package/esm2020/lib/components/translation-form/validators/require-for-languages.validator.mjs +22 -21
  24. package/fesm2015/recursyve-nice-ui-kit.v2.mjs +511 -207
  25. package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  26. package/fesm2020/recursyve-nice-ui-kit.v2.mjs +503 -207
  27. package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  28. package/lib/components/assets-carousel/assets-carousel.component.d.ts +8 -4
  29. package/lib/components/date-range-picker/date-range-picker.component.d.ts +1 -2
  30. package/lib/components/loading-toast/index.d.ts +1 -0
  31. package/lib/components/loading-toast/loading-toast.component.d.ts +19 -0
  32. package/lib/components/loading-toast/loading-toast.constant.d.ts +2 -0
  33. package/lib/components/loading-toast/loading-toast.directive.d.ts +18 -0
  34. package/lib/components/loading-toast/loading-toast.module.d.ts +16 -0
  35. package/lib/components/loading-toast/loading-toast.service.d.ts +20 -0
  36. package/lib/components/loading-toast/public-api.d.ts +5 -0
  37. package/lib/components/loading-toast/rxjs/show-loading-toast.operator.d.ts +6 -0
  38. package/lib/components/public-api.d.ts +1 -0
  39. package/lib/components/toast/public-api.d.ts +2 -0
  40. package/lib/components/toast/rxjs/show-success-or-error-toast.operator.d.ts +37 -0
  41. package/lib/components/toast/rxjs/show-toast.operator.d.ts +17 -0
  42. package/lib/components/translation-form/components/translation-form.component.d.ts +2 -2
  43. package/lib/components/translation-form/decorators/translation-form-group.decorator.d.ts +1 -0
  44. package/lib/components/translation-form/directives/translation-context.directive.d.ts +3 -2
  45. package/lib/components/translation-form/providers/nice-translation-form.service.d.ts +16 -0
  46. package/lib/components/translation-form/public-api.d.ts +6 -6
  47. package/lib/components/translation-form/toggle/translation-toggle.component.d.ts +3 -3
  48. package/lib/components/translation-form/validators/require-for-languages.validator.d.ts +3 -3
  49. package/package.json +1 -1
  50. package/esm2020/lib/components/translation-form/decorators/translation-form.decorator.mjs +0 -4
  51. package/esm2020/lib/components/translation-form/providers/translation-form.service.mjs +0 -46
  52. package/lib/components/translation-form/decorators/translation-form.decorator.d.ts +0 -1
  53. package/lib/components/translation-form/providers/translation-form.service.d.ts +0 -12
@@ -1,12 +1,12 @@
1
- import * as i1$b from '@angular/animations';
1
+ import * as i1$c from '@angular/animations';
2
2
  import { animation, style, animate, trigger, transition, useAnimation, state, keyframes } from '@angular/animations';
3
3
  import { HttpContextToken, HttpResponse, HttpContext, HttpParams } from '@angular/common/http';
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, debounceTime as debounceTime$1, delay, switchMap } from 'rxjs/operators';
7
+ import { map, filter, takeUntil, tap, take, finalize, debounceTime as debounceTime$1, delay, switchMap } from 'rxjs/operators';
8
8
  import { __rest, __awaiter } from 'tslib';
9
- import { catchError, ReplaySubject, Subject, BehaviorSubject, mergeMap, from, isObservable, firstValueFrom, debounceTime, distinctUntilChanged, startWith, tap as tap$1, Observable, combineLatest, of, fromEvent, merge as merge$1, pairwise } from 'rxjs';
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';
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';
@@ -14,60 +14,61 @@ import * as i3 from '@angular/material/button';
14
14
  import { MatButtonModule } from '@angular/material/button';
15
15
  import * as i4 from '@angular/material/icon';
16
16
  import { MatIconModule } from '@angular/material/icon';
17
- import * as i1$2 from '@angular/forms';
17
+ import * as i1$3 from '@angular/forms';
18
18
  import { NG_VALUE_ACCESSOR, Validators, FormControl, ReactiveFormsModule, FormsModule, FormGroup } from '@angular/forms';
19
19
  import { LexoRank } from 'lexorank';
20
20
  import * as i4$1 from '@angular/material/menu';
21
21
  import { MatMenuModule } from '@angular/material/menu';
22
22
  import * as i2$1 from '@angular/material/core';
23
23
  import { MatRippleModule, MatOption, mixinErrorState, MAT_DATE_FORMATS, MATERIAL_SANITY_CHECKS } from '@angular/material/core';
24
- import * as i7 from '@angular/material/progress-spinner';
24
+ import * as i1 from '@angular/material/progress-spinner';
25
25
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
26
- import * as i1 from '@ngx-translate/core';
26
+ import * as i1$1 from '@ngx-translate/core';
27
27
  import { TranslateModule } from '@ngx-translate/core';
28
- import * as i1$4 from '@angular/material/form-field';
28
+ import * as i1$5 from '@angular/material/form-field';
29
29
  import { MatFormFieldControl, MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
30
30
  import * as uuid from 'uuid';
31
- import * as i1$1 from '@angular/material/autocomplete';
31
+ import * as i1$2 from '@angular/material/autocomplete';
32
32
  import { MatAutocompleteModule, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
33
33
  import * as i2$2 from '@angular/cdk/a11y';
34
- import * as i1$3 from '@angular/material/input';
34
+ 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
38
  import { CdkStepper, CdkStep, CdkStepperModule } from '@angular/cdk/stepper';
39
- import * as i1$5 from '@recursyve/ngx-form-generator';
39
+ import * as i1$6 from '@recursyve/ngx-form-generator';
40
40
  import { registerAsyncValidatorDecorator, AsyncValidator, NGX_FORM_GENERATOR_ASYNC_VALIDATORS, DynamicGroup } from '@recursyve/ngx-form-generator';
41
41
  import { ComponentPortal } from '@angular/cdk/portal';
42
- import * as i1$6 from '@angular/cdk/overlay';
42
+ import * as i1$7 from '@angular/cdk/overlay';
43
43
  import { OverlayContainer, Overlay } from '@angular/cdk/overlay';
44
44
  import * as i5 from '@angular/material/card';
45
45
  import { MatCardModule } from '@angular/material/card';
46
- import * as i2$3 from '@angular/material/datepicker';
47
- import { MatDateRangePicker, MatDatepickerModule } from '@angular/material/datepicker';
46
+ import { isSameDay } from 'date-fns';
48
47
  import subDays from 'date-fns/subDays';
49
- import * as i1$7 from 'ngx-mask';
50
- import * as i1$8 from '@angular/platform-browser';
48
+ import * as i2$3 from '@angular/material/datepicker';
49
+ import { MatDatepickerModule } from '@angular/material/datepicker';
50
+ import * as i1$8 from 'ngx-mask';
51
+ import * as i1$9 from '@angular/platform-browser';
51
52
  import { merge } from 'lodash-es';
52
- import * as i1$9 from '@angular/cdk/layout';
53
+ import * as i1$a from '@angular/cdk/layout';
53
54
  import { Breakpoints } from '@angular/cdk/layout';
54
- import * as i1$a from '@angular/router';
55
+ import * as i1$b from '@angular/router';
55
56
  import { NavigationEnd, RouterModule } from '@angular/router';
56
- import * as i1$c from '@angular/material/bottom-sheet';
57
+ import * as i1$d from '@angular/material/bottom-sheet';
57
58
  import { MAT_BOTTOM_SHEET_DATA, MatBottomSheetModule } from '@angular/material/bottom-sheet';
58
59
  import * as i4$2 from '@angular/material/list';
59
60
  import { MatListModule, MAT_LIST_CONFIG } from '@angular/material/list';
60
- import * as i1$e from '@angular/cdk/platform';
61
+ import * as i1$g from '@angular/cdk/platform';
61
62
  import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
62
- import * as i1$d from '@angular/cdk/scrolling';
63
+ import * as i1$e from '@angular/cdk/scrolling';
63
64
  import * as i3$1 from '@angular/cdk/bidi';
65
+ import * as i1$f from '@angular/material/snack-bar';
66
+ import { MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
64
67
  import PerfectScrollbar from 'perfect-scrollbar';
65
68
  import { MatDividerModule } from '@angular/material/divider';
66
69
  import { MatTooltipModule } from '@angular/material/tooltip';
67
- import * as i1$f from '@angular/material/dialog';
70
+ import * as i1$h from '@angular/material/dialog';
68
71
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
69
- import * as i1$g from '@angular/material/snack-bar';
70
- import { MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
71
72
  import * as i3$2 from '@angular/material/button-toggle';
72
73
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
73
74
  import * as i2$4 from '@angular/cdk/drag-drop';
@@ -1766,7 +1767,7 @@ class NiceAssetsCarouselComponent {
1766
1767
  this.color = this.defaultColor;
1767
1768
  this.edit = false;
1768
1769
  this.loading = false;
1769
- this.accept = ["image/*"];
1770
+ this.accept = [];
1770
1771
  this.customActions = [];
1771
1772
  this.multipleUpload = false;
1772
1773
  this.visiblePreviewAsset = 4;
@@ -1774,6 +1775,7 @@ class NiceAssetsCarouselComponent {
1774
1775
  this.activeChange = new EventEmitter();
1775
1776
  this.removedAsset = new EventEmitter();
1776
1777
  this.listStyle = { transform: "translateX(0px)" };
1778
+ this._imagesMimeTypes = ["image/png", "image/jpeg", "image/webp", "image/avif"];
1777
1779
  if (!this.options) {
1778
1780
  this.options = {
1779
1781
  actionButtons: {
@@ -1802,6 +1804,21 @@ class NiceAssetsCarouselComponent {
1802
1804
  };
1803
1805
  }
1804
1806
  }
1807
+ ngOnInit() {
1808
+ var _a;
1809
+ if (!((_a = this.accept) === null || _a === void 0 ? void 0 : _a.length)) {
1810
+ this.accept = [...this._imagesMimeTypes];
1811
+ }
1812
+ }
1813
+ ngOnChanges(changes) {
1814
+ if ("accept" in changes && this.accept) {
1815
+ const index = this.accept.indexOf("image/*");
1816
+ if (index >= 0) {
1817
+ this.accept.splice(index, 1);
1818
+ this.accept.push(...this._imagesMimeTypes);
1819
+ }
1820
+ }
1821
+ }
1805
1822
  writeValue(assets) {
1806
1823
  this._assets = assets !== null && assets !== void 0 ? assets : [];
1807
1824
  if (this._assets.length === 0) {
@@ -1846,42 +1863,30 @@ class NiceAssetsCarouselComponent {
1846
1863
  onFilesChange(event) {
1847
1864
  var _a;
1848
1865
  return __awaiter(this, void 0, void 0, function* () {
1849
- let files = (_a = event.target) === null || _a === void 0 ? void 0 : _a.files;
1850
- if (this.imagesProcessor) {
1851
- files = yield this.getProcessedFiles(files);
1852
- }
1866
+ const files = (_a = event.target) === null || _a === void 0 ? void 0 : _a.files;
1853
1867
  yield this.onFilesDrop(files);
1854
1868
  this.inputElement.nativeElement.value = "";
1855
1869
  });
1856
1870
  }
1857
- onFilesDrop(files) {
1871
+ onFilesDrop(fileList) {
1858
1872
  var _a;
1859
1873
  return __awaiter(this, void 0, void 0, function* () {
1874
+ let files = this.filterOutUnsupportedFiles(fileList);
1875
+ if (this.imagesProcessor) {
1876
+ files = yield this.getProcessedFiles(files);
1877
+ }
1860
1878
  if (!(files === null || files === void 0 ? void 0 : files.length)) {
1861
1879
  return;
1862
1880
  }
1863
- let newAssetsAdded = false;
1864
- for (let i = 0; i < files.length; i++) {
1865
- const file = files.item(i);
1866
- if (!this.accept.some((accept) => {
1867
- if (accept.endsWith("*")) {
1868
- return file.type.startsWith(accept.replace("*", ""));
1869
- }
1870
- return accept === file.type;
1871
- })) {
1872
- continue;
1873
- }
1874
- newAssetsAdded = true;
1881
+ for (const file of files) {
1875
1882
  this._assets.push({
1876
1883
  file,
1877
1884
  type: file.type.split("/").shift(),
1878
1885
  base64: yield FileUtils.getDataUrl(file)
1879
1886
  });
1880
1887
  }
1881
- if (newAssetsAdded) {
1882
- this.clickAsset(this._assets.length - 1);
1883
- (_a = this.propagate) === null || _a === void 0 ? void 0 : _a.call(this, this._assets);
1884
- }
1888
+ this.clickAsset(this._assets.length - 1);
1889
+ (_a = this.propagate) === null || _a === void 0 ? void 0 : _a.call(this, this._assets);
1885
1890
  });
1886
1891
  }
1887
1892
  clickRemove() {
@@ -1908,12 +1913,32 @@ class NiceAssetsCarouselComponent {
1908
1913
  yield this._assetsElement.get(this._active).nativeElement.firstElementChild.play();
1909
1914
  });
1910
1915
  }
1916
+ filterOutUnsupportedFiles(fileList) {
1917
+ const files = [];
1918
+ for (let i = 0; i < fileList.length; i++) {
1919
+ const file = fileList.item(i);
1920
+ if (this.accept.some((accept) => {
1921
+ if (accept.endsWith("*")) {
1922
+ return file.type.startsWith(accept.replace("*", ""));
1923
+ }
1924
+ return accept === file.type;
1925
+ })) {
1926
+ files.push(file);
1927
+ }
1928
+ }
1929
+ return files;
1930
+ }
1911
1931
  getProcessedFiles(files) {
1912
1932
  return __awaiter(this, void 0, void 0, function* () {
1913
1933
  try {
1934
+ if (!files.length) {
1935
+ return null;
1936
+ }
1914
1937
  return yield this.imagesProcessor(files);
1915
1938
  }
1916
- catch (e) { }
1939
+ catch (e) {
1940
+ return null;
1941
+ }
1917
1942
  });
1918
1943
  }
1919
1944
  }
@@ -1924,7 +1949,7 @@ NiceAssetsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
1924
1949
  useExisting: forwardRef(() => NiceAssetsCarouselComponent),
1925
1950
  multi: true
1926
1951
  }
1927
- ], queries: [{ propertyName: "activeContent", first: true, predicate: NiceAssetsCarouselActiveContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "activeVideoElement", first: true, predicate: ["activeVideo"], descendants: true }, { propertyName: "assetsElement", predicate: ["assets"], descendants: true }], ngImport: i0, template: "<div class=\"carousel-container\" niceDropzone (filesDropped)=\"onFilesDrop($event)\">\n <div\n class=\"active-image\"\n matRipple\n [class.empty-state]=\"!_activeAsset\"\n (click)=\"edit && fileInput.click();\n $event.stopPropagation()\"\n >\n <div *ngIf=\"loading\" class=\"flex flex-row justify-center items-center h-full\">\n <mat-spinner [diameter]=\"32\"></mat-spinner>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container\n *ngIf=\"_activeAsset && activeContent\"\n [ngTemplateOutlet]=\"activeContent\"\n [ngTemplateOutletContext]=\"{ $implicit: _activeAsset}\"\n ></ng-container>\n <img\n *ngIf=\"_activeAsset?.type === 'image'\"\n (mouseover)=\"showOverlay=true\"\n [src]=\"_activeAsset.url ?? _activeAsset.base64\"\n draggable=\"false\"\n class=\"relative\"\n alt=\"active-image\"\n >\n <video #activeVideo *ngIf=\"_activeAsset?.type === 'video'\" draggable=\"false\" loop [src]=\"_activeAsset.url ?? _activeAsset.base64\"></video>\n\n <div class=\"empty-state-content\" *ngIf=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n <div class=\"text\">\n {{ \"nice_ui_kit.assets_carousel.upload_here\" | translate }}\n </div>\n </div>\n\n <div *ngIf=\"_activeAsset && showOverlay && edit\" class=\"active-image-overlay\">\n <div\n (mouseout)=\"showOverlay=false\"\n class=\"flex flex-col justify-center items-center w-full h-full\"\n >\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"edit\" class=\"active-buttons\">\n <button mat-icon-button (click)=\"fileInput.click(); $event.stopPropagation()\">\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.matIcon\">{{ options.actionButtons.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.svgIcon\" [svgIcon]=\"options.actionButtons.addPhoto.svgIcon\"></mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"assetActions\" (click)=\"$event.stopPropagation()\" [disabled]=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.matIcon\">{{ options.actionButtons.moreOptions.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.svgIcon\" [svgIcon]=\"options.actionButtons.moreOptions.svgIcon\"></mat-icon>\n </button>\n <mat-menu class=\"nice-asset-options-menu\" [xPosition]=\"'before'\" #assetActions=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let action of customActions\"\n (click)=\"clickCustom(action)\"\n >\n <mat-icon *ngIf=\"action.icon.matIcon\">{{ action.icon.matIcon }}</mat-icon>\n <mat-icon [svgIcon]=\"action.icon.svgIcon\" *ngIf=\"action.icon.svgIcon\"></mat-icon>\n <span>{{ action.name | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"clickRemove()\">\n <mat-icon *ngIf=\"options.actionButtons.remove.matIcon\">{{ options.actionButtons.remove.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.remove.svgIcon\" [svgIcon]=\"options.actionButtons.remove.svgIcon\"></mat-icon>\n <span>{{ \"nice_ui_kit.assets_carousel.delete\" | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </ng-container>\n </div>\n\n <div class=\"carousel\">\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button left-arrow\" mat-icon-button [disabled]=\"!_active\" (click)=\"clickLeft()\">\n <mat-icon *ngIf=\"options.leftArrow.matIcon\">{{ options.leftArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.leftArrow.svgIcon\" [svgIcon]=\"options.leftArrow.svgIcon\"></mat-icon>\n </button>\n <div class=\"asset-list-container\">\n <div *ngIf=\"showAddAssetContainer && edit\" class=\"add-asset-container\">\n <div class=\"add-asset\" matRipple (click)=\"fileInput.click()\">\n <mat-icon *ngIf=\"options.addPhoto.matIcon\">{{ options.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.addPhoto.svgIcon\" [svgIcon]=\"options.addPhoto.svgIcon\"></mat-icon>\n </div>\n </div>\n <div class=\"asset-list\" [ngStyle]=\"listStyle\">\n <div\n #assets\n class=\"asset\"\n *ngFor=\"let asset of _assets; let i = index\"\n (click)=\"clickAsset(i)\"\n [ngClass]=\"color\"\n [class.active]=\"_active === i\"\n >\n <ng-container>\n <img\n *ngIf=\"asset.type === 'image'\"\n draggable=\"false\"\n [src]=\"asset.url ?? asset.base64\"\n alt=\"add-image\"\n />\n <video\n *ngIf=\"asset.type === 'video'\"\n draggable=\"false\"\n loop\n [src]=\"asset.url ?? asset.base64\"\n ></video>\n </ng-container>\n </div>\n </div>\n </div>\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button right-arrow\" mat-icon-button [disabled]=\"_lastAsset\" (click)=\"clickRight()\">\n <mat-icon *ngIf=\"options.rightArrow.matIcon\">{{ options.rightArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.rightArrow.svgIcon\" [svgIcon]=\"options.rightArrow.svgIcon\"></mat-icon>\n </button>\n </div>\n</div>\n\n<input #fileInput type=\"file\" hidden [accept]=\"accept\" (change)=\"onFilesChange($event)\" [multiple]=\"multipleUpload\">\n", styles: [":root{--nice-assets-carousel-asset-width: 90px;--nice-assets-carousel-asset-height: 60px;--nice-assets-carousel-asset-gap: .75rem}\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: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { 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: "directive", type: i2$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: NiceDropzoneDirective, selector: "[niceDropzone]", outputs: ["filesDropped"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None });
1952
+ ], queries: [{ propertyName: "activeContent", first: true, predicate: NiceAssetsCarouselActiveContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "activeVideoElement", first: true, predicate: ["activeVideo"], descendants: true }, { propertyName: "assetsElement", predicate: ["assets"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"carousel-container\" niceDropzone (filesDropped)=\"onFilesDrop($event)\">\n <div\n class=\"active-image\"\n matRipple\n [class.empty-state]=\"!_activeAsset\"\n (click)=\"edit && fileInput.click();\n $event.stopPropagation()\"\n >\n <div *ngIf=\"loading\" class=\"flex flex-row justify-center items-center h-full\">\n <mat-spinner [diameter]=\"32\"></mat-spinner>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container\n *ngIf=\"_activeAsset && activeContent\"\n [ngTemplateOutlet]=\"activeContent\"\n [ngTemplateOutletContext]=\"{ $implicit: _activeAsset}\"\n ></ng-container>\n <img\n *ngIf=\"_activeAsset?.type === 'image'\"\n (mouseover)=\"showOverlay=true\"\n [src]=\"_activeAsset.url ?? _activeAsset.base64\"\n draggable=\"false\"\n class=\"relative\"\n alt=\"active-image\"\n >\n <video #activeVideo *ngIf=\"_activeAsset?.type === 'video'\" draggable=\"false\" loop [src]=\"_activeAsset.url ?? _activeAsset.base64\"></video>\n\n <div class=\"empty-state-content\" *ngIf=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n <div class=\"text\">\n {{ \"nice_ui_kit.assets_carousel.upload_here\" | translate }}\n </div>\n </div>\n\n <div *ngIf=\"_activeAsset && showOverlay && edit\" class=\"active-image-overlay\">\n <div\n (mouseout)=\"showOverlay=false\"\n class=\"flex flex-col justify-center items-center w-full h-full\"\n >\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"edit\" class=\"active-buttons\">\n <button mat-icon-button (click)=\"fileInput.click(); $event.stopPropagation()\">\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.matIcon\">{{ options.actionButtons.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.svgIcon\" [svgIcon]=\"options.actionButtons.addPhoto.svgIcon\"></mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"assetActions\" (click)=\"$event.stopPropagation()\" [disabled]=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.matIcon\">{{ options.actionButtons.moreOptions.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.svgIcon\" [svgIcon]=\"options.actionButtons.moreOptions.svgIcon\"></mat-icon>\n </button>\n <mat-menu class=\"nice-asset-options-menu\" [xPosition]=\"'before'\" #assetActions=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let action of customActions\"\n (click)=\"clickCustom(action)\"\n >\n <mat-icon *ngIf=\"action.icon.matIcon\">{{ action.icon.matIcon }}</mat-icon>\n <mat-icon [svgIcon]=\"action.icon.svgIcon\" *ngIf=\"action.icon.svgIcon\"></mat-icon>\n <span>{{ action.name | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"clickRemove()\">\n <mat-icon *ngIf=\"options.actionButtons.remove.matIcon\">{{ options.actionButtons.remove.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.remove.svgIcon\" [svgIcon]=\"options.actionButtons.remove.svgIcon\"></mat-icon>\n <span>{{ \"nice_ui_kit.assets_carousel.delete\" | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </ng-container>\n </div>\n\n <div class=\"carousel\">\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button left-arrow\" mat-icon-button [disabled]=\"!_active\" (click)=\"clickLeft()\">\n <mat-icon *ngIf=\"options.leftArrow.matIcon\">{{ options.leftArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.leftArrow.svgIcon\" [svgIcon]=\"options.leftArrow.svgIcon\"></mat-icon>\n </button>\n <div class=\"asset-list-container\">\n <div *ngIf=\"showAddAssetContainer && edit\" class=\"add-asset-container\">\n <div class=\"add-asset\" matRipple (click)=\"fileInput.click()\">\n <mat-icon *ngIf=\"options.addPhoto.matIcon\">{{ options.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.addPhoto.svgIcon\" [svgIcon]=\"options.addPhoto.svgIcon\"></mat-icon>\n </div>\n </div>\n <div class=\"asset-list\" [ngStyle]=\"listStyle\">\n <div\n #assets\n class=\"asset\"\n *ngFor=\"let asset of _assets; let i = index\"\n (click)=\"clickAsset(i)\"\n [ngClass]=\"color\"\n [class.active]=\"_active === i\"\n >\n <ng-container>\n <img\n *ngIf=\"asset.type === 'image'\"\n draggable=\"false\"\n [src]=\"asset.url ?? asset.base64\"\n alt=\"add-image\"\n />\n <video\n *ngIf=\"asset.type === 'video'\"\n draggable=\"false\"\n loop\n [src]=\"asset.url ?? asset.base64\"\n ></video>\n </ng-container>\n </div>\n </div>\n </div>\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button right-arrow\" mat-icon-button [disabled]=\"_lastAsset\" (click)=\"clickRight()\">\n <mat-icon *ngIf=\"options.rightArrow.matIcon\">{{ options.rightArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.rightArrow.svgIcon\" [svgIcon]=\"options.rightArrow.svgIcon\"></mat-icon>\n </button>\n </div>\n</div>\n\n<input #fileInput type=\"file\" hidden [accept]=\"accept\" (change)=\"onFilesChange($event)\" [multiple]=\"multipleUpload\">\n", styles: [":root{--nice-assets-carousel-asset-width: 90px;--nice-assets-carousel-asset-height: 60px;--nice-assets-carousel-asset-gap: .75rem}\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: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { 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: "directive", type: i2$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: NiceDropzoneDirective, selector: "[niceDropzone]", outputs: ["filesDropped"] }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None });
1928
1953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAssetsCarouselComponent, decorators: [{
1929
1954
  type: Component,
1930
1955
  args: [{ selector: "nice-assets-carousel", encapsulation: ViewEncapsulation.None, animations: niceAnimations, providers: [
@@ -2123,7 +2148,7 @@ class OptionsScrollDirective {
2123
2148
  }
2124
2149
  }
2125
2150
  }
2126
- OptionsScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OptionsScrollDirective, deps: [{ token: i1$1.MatAutocomplete }], target: i0.ɵɵFactoryTarget.Directive });
2151
+ OptionsScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OptionsScrollDirective, deps: [{ token: i1$2.MatAutocomplete }], target: i0.ɵɵFactoryTarget.Directive });
2127
2152
  OptionsScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: OptionsScrollDirective, selector: "mat-autocomplete[optionsScroll]", inputs: { thresholdPercent: "thresholdPercent" }, outputs: { optionsScroll: "optionsScroll" }, ngImport: i0 });
2128
2153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OptionsScrollDirective, decorators: [{
2129
2154
  type: Directive,
@@ -2131,7 +2156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2131
2156
  // tslint:disable-next-line:directive-selector
2132
2157
  selector: "mat-autocomplete[optionsScroll]"
2133
2158
  }]
2134
- }], ctorParameters: function () { return [{ type: i1$1.MatAutocomplete }]; }, propDecorators: { thresholdPercent: [{
2159
+ }], ctorParameters: function () { return [{ type: i1$2.MatAutocomplete }]; }, propDecorators: { thresholdPercent: [{
2135
2160
  type: Input
2136
2161
  }], optionsScroll: [{
2137
2162
  type: Output
@@ -2536,13 +2561,13 @@ class NiceTypeaheadComponent {
2536
2561
  }
2537
2562
  }
2538
2563
  }
2539
- NiceTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTypeaheadComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i2$2.FocusMonitor }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2564
+ NiceTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTypeaheadComponent, deps: [{ token: i1$3.NgControl, optional: true, self: true }, { token: i2$2.FocusMonitor }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2540
2565
  NiceTypeaheadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceTypeaheadComponent, selector: "nice-typeahead", inputs: { items: "items", labelFormatFn: "labelFormatFn", required: "required", disabled: "disabled", placeholder: "placeholder", emptyPlaceholder: "emptyPlaceholder", allowNotFoundItems: "allowNotFoundItems", panelClass: "panelClass", bindValue: "bindValue", bindLabel: "bindLabel", typeahead: "typeahead", page$: "page$", loading: "loading", loadingPage: "loadingPage", searchFn: "searchFn", optionTemplate: "optionTemplate" }, outputs: { change: "change" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "id": "this.id", "attr.aria-describedby": "this.describedBy" } }, providers: [
2541
2566
  {
2542
2567
  provide: MatFormFieldControl,
2543
2568
  useExisting: NiceTypeaheadComponent
2544
2569
  }
2545
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["searchInput"], descendants: true, static: true }, { propertyName: "options", predicate: MatOption, descendants: true }], ngImport: i0, template: "<div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"required\"\n />\n <mat-icon *ngIf=\"value && !loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"loading\"></mat-spinner>\n</div>\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n>\n <mat-progress-bar *ngIf=\"open && loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n</mat-autocomplete>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"required\"\n />\n</ng-template>\n", styles: ["nice-typeahead{width:100%}nice-typeahead .close-button{flex:1 1 18px;cursor:pointer;min-height:18px!important;min-width:18px!important;height:18px!important;width:18px!important;font-size:18px!important;align-self:center}nice-typeahead .disabled-input{flex:1 1 95%}nice-typeahead .arrow-container{display:flex;bottom:7px;align-self:flex-end;position:relative;text-align:center;-webkit-user-select:none;user-select:none}nice-typeahead .arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px;color:#0000008a}.italic{font-style:italic}\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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: OptionsScrollDirective, selector: "mat-autocomplete[optionsScroll]", inputs: ["thresholdPercent"], outputs: ["optionsScroll"] }, { kind: "component", type: i1$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i1$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
2570
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["searchInput"], descendants: true, static: true }, { propertyName: "options", predicate: MatOption, descendants: true }], ngImport: i0, template: "<div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"required\"\n />\n <mat-icon *ngIf=\"value && !loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"loading\"></mat-spinner>\n</div>\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n>\n <mat-progress-bar *ngIf=\"open && loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n</mat-autocomplete>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"required\"\n />\n</ng-template>\n", styles: ["nice-typeahead{width:100%}nice-typeahead .close-button{flex:1 1 18px;cursor:pointer;min-height:18px!important;min-width:18px!important;height:18px!important;width:18px!important;font-size:18px!important;align-self:center}nice-typeahead .disabled-input{flex:1 1 95%}nice-typeahead .arrow-container{display:flex;bottom:7px;align-self:flex-end;position:relative;text-align:center;-webkit-user-select:none;user-select:none}nice-typeahead .arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px;color:#0000008a}.italic{font-style:italic}\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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: OptionsScrollDirective, selector: "mat-autocomplete[optionsScroll]", inputs: ["thresholdPercent"], outputs: ["optionsScroll"] }, { kind: "component", type: i1$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i1$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
2546
2571
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTypeaheadComponent, decorators: [{
2547
2572
  type: Component,
2548
2573
  args: [{ selector: "nice-typeahead", encapsulation: ViewEncapsulation.None, providers: [
@@ -2552,7 +2577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2552
2577
  }
2553
2578
  ], template: "<div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"required\"\n />\n <mat-icon *ngIf=\"value && !loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"loading\"></mat-spinner>\n</div>\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n>\n <mat-progress-bar *ngIf=\"open && loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n</mat-autocomplete>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"required\"\n />\n</ng-template>\n", styles: ["nice-typeahead{width:100%}nice-typeahead .close-button{flex:1 1 18px;cursor:pointer;min-height:18px!important;min-width:18px!important;height:18px!important;width:18px!important;font-size:18px!important;align-self:center}nice-typeahead .disabled-input{flex:1 1 95%}nice-typeahead .arrow-container{display:flex;bottom:7px;align-self:flex-end;position:relative;text-align:center;-webkit-user-select:none;user-select:none}nice-typeahead .arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px;color:#0000008a}.italic{font-style:italic}\n"] }]
2554
2579
  }], ctorParameters: function () {
2555
- return [{ type: i1$2.NgControl, decorators: [{
2580
+ return [{ type: i1$3.NgControl, decorators: [{
2556
2581
  type: Optional
2557
2582
  }, {
2558
2583
  type: Self
@@ -3169,14 +3194,14 @@ class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
3169
3194
  });
3170
3195
  }
3171
3196
  }
3172
- NiceAsyncTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAsyncTypeaheadComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i1$2.NgForm, optional: true }, { token: i1$2.FormGroupDirective, optional: true }, { token: i2$1.ErrorStateMatcher }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: NiceAsyncTypeaheadService }], target: i0.ɵɵFactoryTarget.Component });
3197
+ NiceAsyncTypeaheadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAsyncTypeaheadComponent, deps: [{ token: i1$3.NgControl, optional: true, self: true }, { token: i1$3.NgForm, optional: true }, { token: i1$3.FormGroupDirective, optional: true }, { token: i2$1.ErrorStateMatcher }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: NiceAsyncTypeaheadService }], target: i0.ɵɵFactoryTarget.Component });
3173
3198
  NiceAsyncTypeaheadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceAsyncTypeaheadComponent, selector: "nice-async-typeahead", inputs: { resource: "resource", searchOptions: "searchOptions", autoReload: "autoReload", preloadResource: "preloadResource", allowNotFoundItems: "allowNotFoundItems", panelClass: "panelClass", bindValue: "bindValue", bindLabel: "bindLabel", placeholder: "placeholder", emptyPlaceholder: "emptyPlaceholder", optionTemplate: "optionTemplate", filterFn: "filterFn", labelFormatFn: "labelFormatFn", disabled: "disabled", value: "value", required: "required" }, outputs: { entityRemoved: "entityRemoved", selected: "selected" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "id": "this.id", "attr.aria-describedby": "this.describedBy" } }, providers: [
3174
3199
  {
3175
3200
  provide: MatFormFieldControl,
3176
3201
  useExisting: NiceAsyncTypeaheadComponent
3177
3202
  },
3178
3203
  NiceAsyncTypeaheadService
3179
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"{ loading: service.loading$ | async, loadingPage: service.loadingPage$ | async, values: service.filteredItems$ | async } as ctx\">\n <div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"$any(disabled)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"$any(required)\"\n (focus)=\"focusChanged(true)\"\n />\n <mat-icon *ngIf=\"value && !ctx.loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"ctx.loading\"></mat-spinner>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n >\n <mat-progress-bar *ngIf=\"open && ctx.loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of ctx.values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\"\n >\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && ctx.loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n </mat-autocomplete>\n</ng-container>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"$any(required)\"\n />\n</ng-template>\n", styles: ["nice-async-typeahead{width:100%}nice-async-typeahead .close-button{flex:1 1 18px;cursor:pointer;min-height:18px!important;min-width:18px!important;height:18px!important;width:18px!important;font-size:18px!important;align-self:center}nice-async-typeahead .disabled-input{flex:1 1 95%}nice-async-typeahead .arrow-container{display:flex;bottom:7px;align-self:flex-end;position:relative;text-align:center;-webkit-user-select:none;user-select:none}nice-async-typeahead .arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px;color:#0000008a}.italic{font-style:italic}\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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: OptionsScrollDirective, selector: "mat-autocomplete[optionsScroll]", inputs: ["thresholdPercent"], outputs: ["optionsScroll"] }, { kind: "directive", type: i1$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i1$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
3204
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"{ loading: service.loading$ | async, loadingPage: service.loadingPage$ | async, values: service.filteredItems$ | async } as ctx\">\n <div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"$any(disabled)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"$any(required)\"\n (focus)=\"focusChanged(true)\"\n />\n <mat-icon *ngIf=\"value && !ctx.loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"ctx.loading\"></mat-spinner>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n >\n <mat-progress-bar *ngIf=\"open && ctx.loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of ctx.values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\"\n >\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && ctx.loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n </mat-autocomplete>\n</ng-container>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"$any(required)\"\n />\n</ng-template>\n", styles: ["nice-async-typeahead{width:100%}nice-async-typeahead .close-button{flex:1 1 18px;cursor:pointer;min-height:18px!important;min-width:18px!important;height:18px!important;width:18px!important;font-size:18px!important;align-self:center}nice-async-typeahead .disabled-input{flex:1 1 95%}nice-async-typeahead .arrow-container{display:flex;bottom:7px;align-self:flex-end;position:relative;text-align:center;-webkit-user-select:none;user-select:none}nice-async-typeahead .arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px;color:#0000008a}.italic{font-style:italic}\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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: OptionsScrollDirective, selector: "mat-autocomplete[optionsScroll]", inputs: ["thresholdPercent"], outputs: ["optionsScroll"] }, { kind: "directive", type: i1$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i1$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
3180
3205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceAsyncTypeaheadComponent, decorators: [{
3181
3206
  type: Component,
3182
3207
  args: [{ selector: "nice-async-typeahead", encapsulation: ViewEncapsulation.None, providers: [
@@ -3187,13 +3212,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3187
3212
  NiceAsyncTypeaheadService
3188
3213
  ], template: "<ng-container *ngIf=\"{ loading: service.loading$ | async, loadingPage: service.loadingPage$ | async, values: service.filteredItems$ | async } as ctx\">\n <div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"$any(disabled)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"$any(required)\"\n (focus)=\"focusChanged(true)\"\n />\n <mat-icon *ngIf=\"value && !ctx.loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"ctx.loading\"></mat-spinner>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n >\n <mat-progress-bar *ngIf=\"open && ctx.loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of ctx.values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\"\n >\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && ctx.loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n </mat-autocomplete>\n</ng-container>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"$any(required)\"\n />\n</ng-template>\n", styles: ["nice-async-typeahead{width:100%}nice-async-typeahead .close-button{flex:1 1 18px;cursor:pointer;min-height:18px!important;min-width:18px!important;height:18px!important;width:18px!important;font-size:18px!important;align-self:center}nice-async-typeahead .disabled-input{flex:1 1 95%}nice-async-typeahead .arrow-container{display:flex;bottom:7px;align-self:flex-end;position:relative;text-align:center;-webkit-user-select:none;user-select:none}nice-async-typeahead .arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px;color:#0000008a}.italic{font-style:italic}\n"] }]
3189
3214
  }], ctorParameters: function () {
3190
- return [{ type: i1$2.NgControl, decorators: [{
3215
+ return [{ type: i1$3.NgControl, decorators: [{
3191
3216
  type: Optional
3192
3217
  }, {
3193
3218
  type: Self
3194
- }] }, { type: i1$2.NgForm, decorators: [{
3219
+ }] }, { type: i1$3.NgForm, decorators: [{
3195
3220
  type: Optional
3196
- }] }, { type: i1$2.FormGroupDirective, decorators: [{
3221
+ }] }, { type: i1$3.FormGroupDirective, decorators: [{
3197
3222
  type: Optional
3198
3223
  }] }, { type: i2$1.ErrorStateMatcher }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: NiceAsyncTypeaheadService }];
3199
3224
  }, propDecorators: { input: [{
@@ -3368,14 +3393,14 @@ class NiceBaseFormComponent {
3368
3393
  return null;
3369
3394
  }
3370
3395
  }
3371
- NiceBaseFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseFormComponent, deps: [{ token: i1$5.GeneratedFormGroup }], target: i0.ɵɵFactoryTarget.Component });
3396
+ NiceBaseFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseFormComponent, deps: [{ token: i1$6.GeneratedFormGroup }], target: i0.ɵɵFactoryTarget.Component });
3372
3397
  NiceBaseFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceBaseFormComponent, selector: "ng-component", inputs: { loading: "loading" }, outputs: { submit: "submit" }, viewQueries: [{ propertyName: "stepper", first: true, predicate: CdkStepper, descendants: true }], ngImport: i0, template: ``, isInline: true });
3373
3398
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseFormComponent, decorators: [{
3374
3399
  type: Component,
3375
3400
  args: [{
3376
3401
  template: ``
3377
3402
  }]
3378
- }], ctorParameters: function () { return [{ type: i1$5.GeneratedFormGroup }]; }, propDecorators: { stepper: [{
3403
+ }], ctorParameters: function () { return [{ type: i1$6.GeneratedFormGroup }]; }, propDecorators: { stepper: [{
3379
3404
  type: ViewChild,
3380
3405
  args: [CdkStepper]
3381
3406
  }], loading: [{
@@ -3532,11 +3557,11 @@ class PictureModalService {
3532
3557
  overlayRef.backdropClick().subscribe(() => overlayRef.dispose());
3533
3558
  }
3534
3559
  }
3535
- PictureModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PictureModalService, deps: [{ token: i1$6.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
3560
+ PictureModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PictureModalService, deps: [{ token: i1$7.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
3536
3561
  PictureModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PictureModalService });
3537
3562
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PictureModalService, decorators: [{
3538
3563
  type: Injectable
3539
- }], ctorParameters: function () { return [{ type: i1$6.Overlay }]; } });
3564
+ }], ctorParameters: function () { return [{ type: i1$7.Overlay }]; } });
3540
3565
 
3541
3566
  class CarouselLayoutPipe {
3542
3567
  transform(value, direction) {
@@ -3640,7 +3665,7 @@ class NiceCollapsableComponent {
3640
3665
  }
3641
3666
  }
3642
3667
  NiceCollapsableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceCollapsableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3643
- NiceCollapsableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceCollapsableComponent, selector: "nice-collapsable", inputs: { open: "open" }, outputs: { openChange: "openChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"nice-collapse\">\n <input type=\"checkbox\" class=\"peer cursor-pointer\" [formControl]=\"control\"/>\n <div class=\"collapse-title\">\n <ng-content select=\"[niceCollapsableTitle]\"></ng-content>\n </div>\n <div class=\"collapse-content\">\n <div class=\"content\">\n <ng-content select=\"[niceCollapsableContent]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3668
+ NiceCollapsableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceCollapsableComponent, selector: "nice-collapsable", inputs: { open: "open" }, outputs: { openChange: "openChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"nice-collapse\">\n <input type=\"checkbox\" class=\"peer cursor-pointer\" [formControl]=\"control\"/>\n <div class=\"collapse-title\">\n <ng-content select=\"[niceCollapsableTitle]\"></ng-content>\n </div>\n <div class=\"collapse-content\">\n <div class=\"content\">\n <ng-content select=\"[niceCollapsableContent]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3644
3669
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceCollapsableComponent, decorators: [{
3645
3670
  type: Component,
3646
3671
  args: [{ selector: "nice-collapsable", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"nice-collapse\">\n <input type=\"checkbox\" class=\"peer cursor-pointer\" [formControl]=\"control\"/>\n <div class=\"collapse-title\">\n <ng-content select=\"[niceCollapsableTitle]\"></ng-content>\n </div>\n <div class=\"collapse-content\">\n <div class=\"content\">\n <ng-content select=\"[niceCollapsableContent]\"></ng-content>\n </div>\n </div>\n</div>\n" }]
@@ -3773,7 +3798,7 @@ class RangePresetComponent {
3773
3798
  }
3774
3799
  }
3775
3800
  RangePresetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RangePresetComponent, deps: [{ token: i2$1.DateAdapter }, { token: i2$3.MatDateRangePicker }, { token: NiceDateRangePickerServiceService }], target: i0.ɵɵFactoryTarget.Component });
3776
- RangePresetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RangePresetComponent, selector: "nice-range-preset", ngImport: i0, template: "<mat-card class=\"mat-elevation-z3\">\n <button\n *ngIf=\"allowClear$ | async\"\n mat-button\n (click)=\"clearRange()\"\n >\n {{ \"nice_ui_kit.date_range_picker.clear\" | translate }}\n </button>\n\n <button\n *ngFor=\"let item of customPresets\"\n mat-button\n (click)=\"selectRange(item)\"\n >\n {{ \"nice_ui_kit.date_range_picker.presets.\" + item | translate }}\n </button>\n</mat-card>\n", styles: [":host{position:absolute;width:200px;left:-200px}@media screen and (max-width: 959px){:host{z-index:1000;left:50px!important}}button{width:100%;text-align:left;text-transform:unset!important}\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: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3801
+ RangePresetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RangePresetComponent, selector: "nice-range-preset", ngImport: i0, template: "<mat-card class=\"mat-elevation-z3\">\n <button\n *ngIf=\"allowClear$ | async\"\n mat-button\n (click)=\"clearRange()\"\n >\n {{ \"nice_ui_kit.date_range_picker.clear\" | translate }}\n </button>\n\n <button\n *ngFor=\"let item of customPresets\"\n mat-button\n (click)=\"selectRange(item)\"\n >\n {{ \"nice_ui_kit.date_range_picker.presets.\" + item | translate }}\n </button>\n</mat-card>\n", styles: [":host{position:absolute;width:200px;left:-200px}@media screen and (max-width: 959px){:host{z-index:1000;left:50px!important}}button{width:100%;text-align:left;text-transform:unset!important}\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: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3777
3802
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RangePresetComponent, decorators: [{
3778
3803
  type: Component,
3779
3804
  args: [{ selector: "nice-range-preset", changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"mat-elevation-z3\">\n <button\n *ngIf=\"allowClear$ | async\"\n mat-button\n (click)=\"clearRange()\"\n >\n {{ \"nice_ui_kit.date_range_picker.clear\" | translate }}\n </button>\n\n <button\n *ngFor=\"let item of customPresets\"\n mat-button\n (click)=\"selectRange(item)\"\n >\n {{ \"nice_ui_kit.date_range_picker.presets.\" + item | translate }}\n </button>\n</mat-card>\n", styles: [":host{position:absolute;width:200px;left:-200px}@media screen and (max-width: 959px){:host{z-index:1000;left:50px!important}}button{width:100%;text-align:left;text-transform:unset!important}\n"] }]
@@ -3854,12 +3879,12 @@ class LocalizedDatePipe {
3854
3879
  return "MMMM d";
3855
3880
  }
3856
3881
  }
3857
- LocalizedDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
3882
+ LocalizedDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDatePipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
3858
3883
  LocalizedDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDatePipe, name: "localizedDate" });
3859
3884
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDatePipe, decorators: [{
3860
3885
  type: Pipe,
3861
3886
  args: [{ name: "localizedDate" }]
3862
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
3887
+ }], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
3863
3888
 
3864
3889
  class NiceDateRangePickerComponent {
3865
3890
  constructor() {
@@ -3880,10 +3905,32 @@ class NiceDateRangePickerComponent {
3880
3905
  to: this.max
3881
3906
  };
3882
3907
  this.formGroup.patchValue(this.value);
3883
- this.formGroup.valueChanges.subscribe((_) => {
3908
+ this.formGroup.valueChanges.pipe(startWith(this.value), pairwise(), filter(([before, after]) => {
3909
+ /**
3910
+ * We filter out the value changes to only emit when the selection is completed/
3911
+ */
3912
+ if (!after.from && !after.to) {
3913
+ return true;
3914
+ }
3915
+ // This is the middle of the selection
3916
+ if (after.from && !after.to) {
3917
+ return false;
3918
+ }
3919
+ // This means that the selection is done
3920
+ if (!before.to && after.to) {
3921
+ return true;
3922
+ }
3923
+ // This is an edge case when we select a new range with an active range selected.
3924
+ // The after.to will be at null after the after.from is emitted
3925
+ if (!isSameDay(before.from, after.from) && isSameDay(before.to, after.to)) {
3926
+ return false;
3927
+ }
3928
+ // Skip if noting has changed
3929
+ return !(isSameDay(before.from, after.from) && !isSameDay(before.to, after.to));
3930
+ })).subscribe((_) => {
3884
3931
  var _a;
3885
3932
  this.value = this.formGroup.getRawValue();
3886
- (_a = this.propage) === null || _a === void 0 ? void 0 : _a.call(this, this.value);
3933
+ (_a = this.propagate) === null || _a === void 0 ? void 0 : _a.call(this, this.value);
3887
3934
  });
3888
3935
  }
3889
3936
  writeValue(value) {
@@ -3891,7 +3938,7 @@ class NiceDateRangePickerComponent {
3891
3938
  this.formGroup.patchValue(this.value);
3892
3939
  }
3893
3940
  registerOnChange(fn) {
3894
- this.propage = fn;
3941
+ this.propagate = fn;
3895
3942
  }
3896
3943
  registerOnTouched(fn) { }
3897
3944
  }
@@ -3902,7 +3949,7 @@ NiceDateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14
3902
3949
  useExisting: forwardRef(() => NiceDateRangePickerComponent),
3903
3950
  multi: true
3904
3951
  }
3905
- ], viewQueries: [{ propertyName: "picker", first: true, predicate: MatDateRangePicker, descendants: true }], ngImport: i0, template: "<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n #picker\n ></mat-date-range-picker>\n</div>\n", styles: ["nice-date-range-picker .mat-date-range-input{width:0;height:0;padding:0;margin:0;border:none;visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$3.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$3.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i1$4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: LocalizedDatePipe, name: "localizedDate" }], encapsulation: i0.ViewEncapsulation.None });
3952
+ ], ngImport: i0, template: "<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value?.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value?.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n #picker\n ></mat-date-range-picker>\n</div>\n", styles: ["nice-date-range-picker .mat-date-range-input{width:0;height:0;padding:0;margin:0;border:none;visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$3.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$3.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i1$5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: LocalizedDatePipe, name: "localizedDate" }], encapsulation: i0.ViewEncapsulation.None });
3906
3953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceDateRangePickerComponent, decorators: [{
3907
3954
  type: Component,
3908
3955
  args: [{ selector: "nice-date-range-picker", encapsulation: ViewEncapsulation.None, providers: [
@@ -3911,11 +3958,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3911
3958
  useExisting: forwardRef(() => NiceDateRangePickerComponent),
3912
3959
  multi: true
3913
3960
  }
3914
- ], template: "<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n #picker\n ></mat-date-range-picker>\n</div>\n", styles: ["nice-date-range-picker .mat-date-range-input{width:0;height:0;padding:0;margin:0;border:none;visibility:hidden}\n"] }]
3915
- }], propDecorators: { picker: [{
3916
- type: ViewChild,
3917
- args: [MatDateRangePicker]
3918
- }], min: [{
3961
+ ], template: "<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value?.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value?.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n #picker\n ></mat-date-range-picker>\n</div>\n", styles: ["nice-date-range-picker .mat-date-range-input{width:0;height:0;padding:0;margin:0;border:none;visibility:hidden}\n"] }]
3962
+ }], propDecorators: { min: [{
3919
3963
  type: Input
3920
3964
  }], max: [{
3921
3965
  type: Input
@@ -3936,12 +3980,12 @@ class BooleanPipe {
3936
3980
  return this.translateService.instant(value ? "general.yes" : "general.no");
3937
3981
  }
3938
3982
  }
3939
- BooleanPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BooleanPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
3983
+ BooleanPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BooleanPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
3940
3984
  BooleanPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BooleanPipe, name: "boolean" });
3941
3985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BooleanPipe, decorators: [{
3942
3986
  type: Pipe,
3943
3987
  args: [{ name: "boolean" }]
3944
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
3988
+ }], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
3945
3989
 
3946
3990
  class CapitalizeFirstLetterPipe {
3947
3991
  transform(value) {
@@ -4075,12 +4119,12 @@ class LocalizedBooleanPipe {
4075
4119
  return this.translateService.instant(`general.bool_${value}`);
4076
4120
  }
4077
4121
  }
4078
- LocalizedBooleanPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedBooleanPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
4122
+ LocalizedBooleanPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedBooleanPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
4079
4123
  LocalizedBooleanPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: LocalizedBooleanPipe, name: "localizedBoolean" });
4080
4124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedBooleanPipe, decorators: [{
4081
4125
  type: Pipe,
4082
4126
  args: [{ name: "localizedBoolean" }]
4083
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
4127
+ }], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
4084
4128
 
4085
4129
  class LocalizedCurrencyPipe extends CurrencyPipe {
4086
4130
  constructor(translateService) {
@@ -4088,12 +4132,12 @@ class LocalizedCurrencyPipe extends CurrencyPipe {
4088
4132
  this.translateService = translateService;
4089
4133
  }
4090
4134
  }
4091
- LocalizedCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedCurrencyPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
4135
+ LocalizedCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedCurrencyPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
4092
4136
  LocalizedCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: LocalizedCurrencyPipe, name: "localizedCurrency" });
4093
4137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedCurrencyPipe, decorators: [{
4094
4138
  type: Pipe,
4095
4139
  args: [{ name: "localizedCurrency" }]
4096
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
4140
+ }], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
4097
4141
 
4098
4142
  class LocalizedDateOnlyPipe {
4099
4143
  constructor(translateService) {
@@ -4104,12 +4148,12 @@ class LocalizedDateOnlyPipe {
4104
4148
  return pipe.transform(value, pattern, fallbackWithNull, "UTC");
4105
4149
  }
4106
4150
  }
4107
- LocalizedDateOnlyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDateOnlyPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
4151
+ LocalizedDateOnlyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDateOnlyPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
4108
4152
  LocalizedDateOnlyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDateOnlyPipe, name: "localizedDateOnly" });
4109
4153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LocalizedDateOnlyPipe, decorators: [{
4110
4154
  type: Pipe,
4111
4155
  args: [{ name: "localizedDateOnly" }]
4112
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
4156
+ }], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
4113
4157
 
4114
4158
  // Formats minutes in hh:mm format.
4115
4159
  class MinutesToTimePipe {
@@ -4177,12 +4221,12 @@ class PhonePipe {
4177
4221
  return `${formattedPhoneNumber} #${extension}`;
4178
4222
  }
4179
4223
  }
4180
- PhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PhonePipe, deps: [{ token: i1$7.NgxMaskService }], target: i0.ɵɵFactoryTarget.Pipe });
4224
+ PhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PhonePipe, deps: [{ token: i1$8.NgxMaskService }], target: i0.ɵɵFactoryTarget.Pipe });
4181
4225
  PhonePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: PhonePipe, name: "phone" });
4182
4226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PhonePipe, decorators: [{
4183
4227
  type: Pipe,
4184
4228
  args: [{ name: "phone" }]
4185
- }], ctorParameters: function () { return [{ type: i1$7.NgxMaskService }]; } });
4229
+ }], ctorParameters: function () { return [{ type: i1$8.NgxMaskService }]; } });
4186
4230
 
4187
4231
  class PostalCodePipe {
4188
4232
  constructor(maskService) {
@@ -4195,12 +4239,12 @@ class PostalCodePipe {
4195
4239
  return "";
4196
4240
  }
4197
4241
  }
4198
- PostalCodePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PostalCodePipe, deps: [{ token: i1$7.NgxMaskService }], target: i0.ɵɵFactoryTarget.Pipe });
4242
+ PostalCodePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PostalCodePipe, deps: [{ token: i1$8.NgxMaskService }], target: i0.ɵɵFactoryTarget.Pipe });
4199
4243
  PostalCodePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: PostalCodePipe, name: "postalCode" });
4200
4244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PostalCodePipe, decorators: [{
4201
4245
  type: Pipe,
4202
4246
  args: [{ name: "postalCode" }]
4203
- }], ctorParameters: function () { return [{ type: i1$7.NgxMaskService }]; } });
4247
+ }], ctorParameters: function () { return [{ type: i1$8.NgxMaskService }]; } });
4204
4248
 
4205
4249
  class RoundPipe {
4206
4250
  transform(input) {
@@ -4259,12 +4303,12 @@ class SanitizeBypassPipe {
4259
4303
  }
4260
4304
  }
4261
4305
  }
4262
- SanitizeBypassPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SanitizeBypassPipe, deps: [{ token: i1$8.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
4306
+ SanitizeBypassPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SanitizeBypassPipe, deps: [{ token: i1$9.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
4263
4307
  SanitizeBypassPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SanitizeBypassPipe, name: "sanitizeBypass" });
4264
4308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SanitizeBypassPipe, decorators: [{
4265
4309
  type: Pipe,
4266
4310
  args: [{ name: "sanitizeBypass" }]
4267
- }], ctorParameters: function () { return [{ type: i1$8.DomSanitizer }]; } });
4311
+ }], ctorParameters: function () { return [{ type: i1$9.DomSanitizer }]; } });
4268
4312
 
4269
4313
  class TrackByPropPipe {
4270
4314
  transform(prop) {
@@ -4682,11 +4726,11 @@ class NiceMediaWatcherService {
4682
4726
  }
4683
4727
  }
4684
4728
  }
4685
- NiceMediaWatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceMediaWatcherService, deps: [{ token: i1$9.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
4729
+ NiceMediaWatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceMediaWatcherService, deps: [{ token: i1$a.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
4686
4730
  NiceMediaWatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceMediaWatcherService });
4687
4731
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceMediaWatcherService, decorators: [{
4688
4732
  type: Injectable
4689
- }], ctorParameters: function () { return [{ type: i1$9.BreakpointObserver }]; } });
4733
+ }], ctorParameters: function () { return [{ type: i1$a.BreakpointObserver }]; } });
4690
4734
 
4691
4735
  class NiceMediaWatcherModule {
4692
4736
  /**
@@ -4740,7 +4784,7 @@ class NiceSplashScreenService {
4740
4784
  this._document.body.classList.add("nice-splash-screen-hidden");
4741
4785
  }
4742
4786
  }
4743
- NiceSplashScreenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSplashScreenService, deps: [{ token: DOCUMENT }, { token: i1$a.Router }], target: i0.ɵɵFactoryTarget.Injectable });
4787
+ NiceSplashScreenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSplashScreenService, deps: [{ token: DOCUMENT }, { token: i1$b.Router }], target: i0.ɵɵFactoryTarget.Injectable });
4744
4788
  NiceSplashScreenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSplashScreenService });
4745
4789
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSplashScreenService, decorators: [{
4746
4790
  type: Injectable
@@ -4748,7 +4792,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
4748
4792
  return [{ type: undefined, decorators: [{
4749
4793
  type: Inject,
4750
4794
  args: [DOCUMENT]
4751
- }] }, { type: i1$a.Router }];
4795
+ }] }, { type: i1$b.Router }];
4752
4796
  } });
4753
4797
 
4754
4798
  class NiceSplashScreenModule {
@@ -5095,12 +5139,12 @@ class NiceDrawerComponent {
5095
5139
  this.openedChanged.next(open);
5096
5140
  }
5097
5141
  }
5098
- NiceDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceDrawerComponent, deps: [{ token: i1$b.AnimationBuilder }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NiceDrawerService }, { token: NiceUtilsService }], target: i0.ɵɵFactoryTarget.Component });
5142
+ NiceDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceDrawerComponent, deps: [{ token: i1$c.AnimationBuilder }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NiceDrawerService }, { token: NiceUtilsService }], target: i0.ɵɵFactoryTarget.Component });
5099
5143
  NiceDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceDrawerComponent, selector: "nice-drawer", inputs: { fixed: "fixed", mode: "mode", width: "width", name: "name", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { fixedChanged: "fixedChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged" }, host: { listeners: { "mouseenter": "_onMouseenter()", "mouseleave": "_onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, exportAs: ["niceDrawer"], usesOnChanges: true, ngImport: i0, template: "<div class=\"nice-drawer-toggle\">\n <ng-content select=\"[niceDrawerToggle]\"></ng-content>\n</div>\n\n<div class=\"nice-drawer-content\" [style.visibility]=\"opened ? 'visible' : 'hidden'\">\n <ng-content></ng-content>\n</div>\n", styles: [""], encapsulation: i0.ViewEncapsulation.None });
5100
5144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceDrawerComponent, decorators: [{
5101
5145
  type: Component,
5102
5146
  args: [{ selector: "nice-drawer", encapsulation: ViewEncapsulation.None, exportAs: "niceDrawer", template: "<div class=\"nice-drawer-toggle\">\n <ng-content select=\"[niceDrawerToggle]\"></ng-content>\n</div>\n\n<div class=\"nice-drawer-content\" [style.visibility]=\"opened ? 'visible' : 'hidden'\">\n <ng-content></ng-content>\n</div>\n" }]
5103
- }], ctorParameters: function () { return [{ type: i1$b.AnimationBuilder }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NiceDrawerService }, { type: NiceUtilsService }]; }, propDecorators: { fixed: [{
5147
+ }], ctorParameters: function () { return [{ type: i1$c.AnimationBuilder }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NiceDrawerService }, { type: NiceUtilsService }]; }, propDecorators: { fixed: [{
5104
5148
  type: Input
5105
5149
  }], mode: [{
5106
5150
  type: Input
@@ -5199,8 +5243,8 @@ class ExportBottomSheetComponent {
5199
5243
  strategy.onClickExport();
5200
5244
  }
5201
5245
  }
5202
- ExportBottomSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ExportBottomSheetComponent, deps: [{ token: MAT_BOTTOM_SHEET_DATA }, { token: i1$c.MatBottomSheetRef }, { token: ExportBottomSheetService }], target: i0.ɵɵFactoryTarget.Component });
5203
- ExportBottomSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ExportBottomSheetComponent, selector: "nice-export-bottom-sheet", ngImport: i0, template: "<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line [innerHtml]=\"'components.export_bottom_sheet.types.' + strategy.type | translate\"></span>\n </a>\n</mat-nav-list>\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: "component", type: i4$2.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i4$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
5246
+ ExportBottomSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ExportBottomSheetComponent, deps: [{ token: MAT_BOTTOM_SHEET_DATA }, { token: i1$d.MatBottomSheetRef }, { token: ExportBottomSheetService }], target: i0.ɵɵFactoryTarget.Component });
5247
+ ExportBottomSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ExportBottomSheetComponent, selector: "nice-export-bottom-sheet", ngImport: i0, template: "<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line [innerHtml]=\"'components.export_bottom_sheet.types.' + strategy.type | translate\"></span>\n </a>\n</mat-nav-list>\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: "component", type: i4$2.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i4$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
5204
5248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ExportBottomSheetComponent, decorators: [{
5205
5249
  type: Component,
5206
5250
  args: [{ selector: "nice-export-bottom-sheet", template: "<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line [innerHtml]=\"'components.export_bottom_sheet.types.' + strategy.type | translate\"></span>\n </a>\n</mat-nav-list>\n" }]
@@ -5208,7 +5252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5208
5252
  return [{ type: undefined, decorators: [{
5209
5253
  type: Inject,
5210
5254
  args: [MAT_BOTTOM_SHEET_DATA]
5211
- }] }, { type: i1$c.MatBottomSheetRef }, { type: ExportBottomSheetService }];
5255
+ }] }, { type: i1$d.MatBottomSheetRef }, { type: ExportBottomSheetService }];
5212
5256
  } });
5213
5257
 
5214
5258
  class NiceExportBottomSheetModule {
@@ -5265,7 +5309,7 @@ NiceFormErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
5265
5309
  <div [@animation]="increment" *ngIf="message">
5266
5310
  <mat-error>{{ message }}</mat-error>
5267
5311
  </div>
5268
- `, isInline: true, styles: [".form-error-show .mat-mdc-form-field-subscript-wrapper.override-height:before{height:32px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }], animations: [
5312
+ `, isInline: true, styles: [".form-error-show .mat-mdc-form-field-subscript-wrapper.override-height:before{height:32px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }], animations: [
5269
5313
  trigger("animation", [
5270
5314
  transition(":increment", [style({ opacity: 0 }), animate("200ms ease-in", style({ opacity: 1 }))]),
5271
5315
  transition(":enter", [
@@ -5385,12 +5429,12 @@ class NiceControlStatusDirective {
5385
5429
  this.ref.instance.error = text;
5386
5430
  }
5387
5431
  }
5388
- NiceControlStatusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceControlStatusDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$4.MatFormField }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
5432
+ NiceControlStatusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceControlStatusDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$5.MatFormField }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
5389
5433
  NiceControlStatusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceControlStatusDirective, selector: "[niceControlStatus]", ngImport: i0 });
5390
5434
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceControlStatusDirective, decorators: [{
5391
5435
  type: Directive,
5392
5436
  args: [{ selector: "[niceControlStatus]" }]
5393
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$4.MatFormField }, { type: i1.TranslateService }]; } });
5437
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$5.MatFormField }, { type: i1$1.TranslateService }]; } });
5394
5438
 
5395
5439
  class NiceFormErrorModule {
5396
5440
  }
@@ -6386,7 +6430,7 @@ class NiceImageCropperComponent {
6386
6430
  }
6387
6431
  }
6388
6432
  NiceImageCropperComponent.и = "NiceImageCropper";
6389
- NiceImageCropperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceImageCropperComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i1$d.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });
6433
+ NiceImageCropperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceImageCropperComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i1$e.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });
6390
6434
  NiceImageCropperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceImageCropperComponent, selector: "nice-img-cropper, nice-image-cropper", inputs: { config: "config", scale: "scale", maxFileSize: "maxFileSize" }, outputs: { scaleChange: "scaleChange", minScaleChange: "minScale", maxScaleChange: "maxScale", imageLoaded: "imageLoaded", ready: "ready", cropped: "cropped", cleaned: "cleaned", error: "error" }, viewQueries: [{ propertyName: "_imgContainer", first: true, predicate: ["_imgContainer"], descendants: true, static: true }, { propertyName: "_areaRef", first: true, predicate: ["_area"], descendants: true, read: ElementRef }, { propertyName: "_imgCanvas", first: true, predicate: ["_imgCanvas"], descendants: true, static: true }], ngImport: i0, template: "<!-- (selectstart): On Safari starting to slide temporarily triggers text selection mode which\nshow the wrong cursor. We prevent it by stopping the `selectstart` event. -->\n<div class=\"image-container\" #_imgContainer\n (selectstart)=\"$event.preventDefault()\"\n>\n <canvas #_imgCanvas></canvas>\n</div>\n<nice-cropper-area\n #_area\n *ngIf=\"_isLoadedImg\"\n [round]=\"!!config.round\"\n [resizableArea]=\"!!config.resizableArea\"\n [keepAspectRatio]=\"!!config.keepAspectRatio\"\n [ngStyle]=\"{\n width: config.width + 'px',\n height: config.height + 'px'\n }\"\n></nice-cropper-area>\n<button class=\"close-button\" mat-icon-button *ngIf=\"_isLoadedImg\" (click)=\"clean()\">\n <mat-icon>arrow_back</mat-icon>\n</button>\n", styles: ["nice-image-cropper,nice-img-cropper{-webkit-user-select:none;user-select:none;display:flex;overflow:hidden;position:relative;justify-content:center;align-items:center}nice-image-cropper .image-container,nice-img-cropper .image-container{cursor:move;position:absolute;top:0;left:0;display:flex;touch-action:none}nice-image-cropper .image-container>canvas,nice-img-cropper .image-container>canvas{display:block}nice-image-cropper .close-button,nice-img-cropper .close-button{position:absolute;top:8px;left:8px;background-color:#fff!important;border-radius:4px;height:20px;width:20px;min-height:20px}nice-image-cropper .close-button .mat-icon,nice-img-cropper .close-button .mat-icon{height:14px!important;width:14px!important;font-size:14px!important;line-height:14px!important}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(function () { return i3.MatIconButton; }), selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(function () { return i4.MatIcon; }), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i0.forwardRef(function () { return NiceCropperAreaComponent; }), selector: "nice-cropper-area", inputs: ["keepAspectRatio", "round", "resizableArea"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6391
6435
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceImageCropperComponent, decorators: [{
6392
6436
  type: Component,
@@ -6395,7 +6439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
6395
6439
  return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
6396
6440
  type: Inject,
6397
6441
  args: [DOCUMENT]
6398
- }] }, { type: i1$d.ViewportRuler }];
6442
+ }] }, { type: i1$e.ViewportRuler }];
6399
6443
  }, propDecorators: { _imgContainer: [{
6400
6444
  type: ViewChild,
6401
6445
  args: ["_imgContainer", { static: true }]
@@ -6942,7 +6986,7 @@ class NiceLoadingSpinnerComponent {
6942
6986
  }
6943
6987
  }
6944
6988
  NiceLoadingSpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6945
- NiceLoadingSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceLoadingSpinnerComponent, selector: "nice-loading-spinner", inputs: { loading: "loading", mode: "mode", diameter: "diameter" }, ngImport: i0, template: "<mat-spinner [diameter]=\"diameter\" [mode]=\"mode\" [color]=\"'accent'\"></mat-spinner>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] });
6989
+ NiceLoadingSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceLoadingSpinnerComponent, selector: "nice-loading-spinner", inputs: { loading: "loading", mode: "mode", diameter: "diameter" }, ngImport: i0, template: "<mat-spinner [diameter]=\"diameter\" [mode]=\"mode\" [color]=\"'accent'\"></mat-spinner>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] });
6946
6990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingSpinnerComponent, decorators: [{
6947
6991
  type: Component,
6948
6992
  args: [{ selector: "nice-loading-spinner", template: "<mat-spinner [diameter]=\"diameter\" [mode]=\"mode\" [color]=\"'accent'\"></mat-spinner>\n", styles: [":host{display:inline-block}\n"] }]
@@ -6976,7 +7020,7 @@ class DynamicOverlay extends Overlay {
6976
7020
  this._dynamicOverlayContainer.setContainerElement(containerElement);
6977
7021
  }
6978
7022
  }
6979
- DynamicOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicOverlay, deps: [{ token: DOCUMENT }, { token: i1$6.ScrollStrategyOptions }, { token: DynamicOverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: i1$6.OverlayPositionBuilder }, { token: i1$6.OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: i3$1.Directionality }, { token: i0.RendererFactory2 }, { token: i2.Location }, { token: i1$6.OverlayOutsideClickDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });
7023
+ DynamicOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicOverlay, deps: [{ token: DOCUMENT }, { token: i1$7.ScrollStrategyOptions }, { token: DynamicOverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: i1$7.OverlayPositionBuilder }, { token: i1$7.OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: i3$1.Directionality }, { token: i0.RendererFactory2 }, { token: i2.Location }, { token: i1$7.OverlayOutsideClickDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });
6980
7024
  DynamicOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicOverlay, providedIn: "root" });
6981
7025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicOverlay, decorators: [{
6982
7026
  type: Injectable,
@@ -6985,7 +7029,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
6985
7029
  return [{ type: undefined, decorators: [{
6986
7030
  type: Inject,
6987
7031
  args: [DOCUMENT]
6988
- }] }, { type: i1$6.ScrollStrategyOptions }, { type: DynamicOverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: i1$6.OverlayPositionBuilder }, { type: i1$6.OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: i3$1.Directionality }, { type: i0.RendererFactory2 }, { type: i2.Location }, { type: i1$6.OverlayOutsideClickDispatcher }];
7032
+ }] }, { type: i1$7.ScrollStrategyOptions }, { type: DynamicOverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: i1$7.OverlayPositionBuilder }, { type: i1$7.OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: i3$1.Directionality }, { type: i0.RendererFactory2 }, { type: i2.Location }, { type: i1$7.OverlayOutsideClickDispatcher }];
6989
7033
  } });
6990
7034
 
6991
7035
  const NICE_LOADING_OPTIONS = new InjectionToken("nice_loading_options");
@@ -7081,6 +7125,202 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
7081
7125
  }]
7082
7126
  }] });
7083
7127
 
7128
+ class NiceLoadingToastComponent {
7129
+ get appearance() {
7130
+ var _a, _b, _c, _d;
7131
+ return (_c = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.appearance) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.appearance;
7132
+ }
7133
+ get color() {
7134
+ var _a, _b, _c, _d;
7135
+ return (_c = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.color) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.color;
7136
+ }
7137
+ get showIcon() {
7138
+ var _a, _b, _c, _d;
7139
+ return (_c = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.showIcon) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.showIcon;
7140
+ }
7141
+ get type() {
7142
+ var _a, _b, _c, _d;
7143
+ return (_c = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.type) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.type;
7144
+ }
7145
+ constructor(data) {
7146
+ this.data = data;
7147
+ }
7148
+ }
7149
+ NiceLoadingToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastComponent, deps: [{ token: MAT_SNACK_BAR_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
7150
+ NiceLoadingToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceLoadingToastComponent, selector: "nice-loading-toast", inputs: { message: "message", options: "options" }, ngImport: i0, template: "<nice-alert class=\"toast\" disableAnimation [appearance]=\"appearance\" [color]=\"color\" [dismissible]=\"false\" [type]=\"type\" [showIcon]=\"showIcon\">\n <div class=\"full flex justify-between gap-8\" niceAlertTitle>\n <span class=\"flex-auto\">{{ data?.message ?? message }}</span>\n\n <div>\n <mat-spinner [diameter]=\"21\"></mat-spinner>\n </div>\n </div>\n</nice-alert>\n", styles: [".nice-loading-toast .mdc-snackbar__surface{background:transparent!important;box-shadow:none!important;padding:0;min-width:unset}.nice-loading-toast .toast{padding:16px;border-radius:4px;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: NiceAlertComponent, selector: "nice-alert", inputs: ["appearance", "dismissed", "dismissible", "disableAnimation", "name", "showIcon", "type", "color"], outputs: ["dismissedChanged"], exportAs: ["niceAlert"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastComponent, decorators: [{
7152
+ type: Component,
7153
+ args: [{ selector: "nice-loading-toast", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nice-alert class=\"toast\" disableAnimation [appearance]=\"appearance\" [color]=\"color\" [dismissible]=\"false\" [type]=\"type\" [showIcon]=\"showIcon\">\n <div class=\"full flex justify-between gap-8\" niceAlertTitle>\n <span class=\"flex-auto\">{{ data?.message ?? message }}</span>\n\n <div>\n <mat-spinner [diameter]=\"21\"></mat-spinner>\n </div>\n </div>\n</nice-alert>\n", styles: [".nice-loading-toast .mdc-snackbar__surface{background:transparent!important;box-shadow:none!important;padding:0;min-width:unset}.nice-loading-toast .toast{padding:16px;border-radius:4px;-webkit-user-select:none;user-select:none}\n"] }]
7154
+ }], ctorParameters: function () {
7155
+ return [{ type: undefined, decorators: [{
7156
+ type: Optional
7157
+ }, {
7158
+ type: Inject,
7159
+ args: [MAT_SNACK_BAR_DATA]
7160
+ }] }];
7161
+ }, propDecorators: { message: [{
7162
+ type: Input
7163
+ }], options: [{
7164
+ type: Input
7165
+ }] } });
7166
+
7167
+ const NICE_LOADING_TOAST_OPTIONS = new InjectionToken("nice_loading_toast_options");
7168
+
7169
+ class NiceLoadingToastDirective {
7170
+ set niceLoadingDisableUserInteraction(disableUserInteraction) {
7171
+ this._niceLoadingDisableUserInteraction = coerceBooleanProperty(disableUserInteraction);
7172
+ }
7173
+ set loading(loading) {
7174
+ if (loading === this._loading) {
7175
+ return;
7176
+ }
7177
+ this._loading = loading;
7178
+ if (!this.overlayRef) {
7179
+ this.overlayRef = this.overlay.create({
7180
+ positionStrategy: this.overlay
7181
+ .position()
7182
+ .global()
7183
+ .bottom("22px")
7184
+ .right("16px"),
7185
+ hasBackdrop: this._niceLoadingDisableUserInteraction,
7186
+ backdropClass: "bg-transparent",
7187
+ panelClass: "nice-loading-toast"
7188
+ });
7189
+ }
7190
+ if (this._loading) {
7191
+ const toastInstance = this.overlayRef.attach(new ComponentPortal(NiceLoadingToastComponent));
7192
+ toastInstance.instance.message = this.niceLoadingMessage;
7193
+ toastInstance.instance.options = this.options;
7194
+ }
7195
+ else {
7196
+ this.overlayRef.detach();
7197
+ }
7198
+ }
7199
+ constructor(options, overlay) {
7200
+ this.options = options;
7201
+ this.overlay = overlay;
7202
+ this._loading = false;
7203
+ this._niceLoadingDisableUserInteraction = true;
7204
+ }
7205
+ }
7206
+ NiceLoadingToastDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastDirective, deps: [{ token: NICE_LOADING_TOAST_OPTIONS, optional: true }, { token: i1$7.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
7207
+ NiceLoadingToastDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceLoadingToastDirective, selector: "[niceLoadingToast]", inputs: { niceLoadingMessage: "niceLoadingMessage", niceLoadingDisableUserInteraction: "niceLoadingDisableUserInteraction", loading: ["niceLoadingToast", "loading"] }, ngImport: i0 });
7208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastDirective, decorators: [{
7209
+ type: Directive,
7210
+ args: [{ selector: "[niceLoadingToast]" }]
7211
+ }], ctorParameters: function () {
7212
+ return [{ type: undefined, decorators: [{
7213
+ type: Optional
7214
+ }, {
7215
+ type: Inject,
7216
+ args: [NICE_LOADING_TOAST_OPTIONS]
7217
+ }] }, { type: i1$7.Overlay }];
7218
+ }, propDecorators: { niceLoadingMessage: [{
7219
+ type: Input
7220
+ }], niceLoadingDisableUserInteraction: [{
7221
+ type: Input
7222
+ }], loading: [{
7223
+ type: Input,
7224
+ args: ["niceLoadingToast"]
7225
+ }] } });
7226
+
7227
+ class NiceLoadingToastService {
7228
+ constructor(options, snackbar, translateService) {
7229
+ this.options = options;
7230
+ this.snackbar = snackbar;
7231
+ this.translateService = translateService;
7232
+ }
7233
+ showLoadingToast(messageKey, params) {
7234
+ const message = this.getTranslations(messageKey, params);
7235
+ return this.snackbar.openFromComponent(NiceLoadingToastComponent, {
7236
+ horizontalPosition: "end",
7237
+ verticalPosition: "bottom",
7238
+ panelClass: ["nice-loading-toast"],
7239
+ data: {
7240
+ message,
7241
+ options: this.options
7242
+ }
7243
+ });
7244
+ }
7245
+ getTranslations(message, params) {
7246
+ try {
7247
+ return this.translateService.instant(message, params);
7248
+ }
7249
+ catch (e) {
7250
+ return "";
7251
+ }
7252
+ }
7253
+ }
7254
+ NiceLoadingToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastService, deps: [{ token: NICE_LOADING_TOAST_OPTIONS, optional: true }, { token: i1$f.MatSnackBar }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
7255
+ NiceLoadingToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastService, providedIn: "any" });
7256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastService, decorators: [{
7257
+ type: Injectable,
7258
+ args: [{ providedIn: "any" }]
7259
+ }], ctorParameters: function () {
7260
+ return [{ type: undefined, decorators: [{
7261
+ type: Optional
7262
+ }, {
7263
+ type: Inject,
7264
+ args: [NICE_LOADING_TOAST_OPTIONS]
7265
+ }] }, { type: i1$f.MatSnackBar }, { type: i1$1.TranslateService }];
7266
+ } });
7267
+
7268
+ const defaultOptions$1 = {
7269
+ color: "primary",
7270
+ type: "info",
7271
+ showIcon: true,
7272
+ appearance: "outline"
7273
+ };
7274
+ class NiceLoadingToastModule {
7275
+ static forRoot(options) {
7276
+ return {
7277
+ ngModule: NiceLoadingToastModule,
7278
+ providers: [
7279
+ NiceLoadingToastService,
7280
+ {
7281
+ provide: NICE_LOADING_TOAST_OPTIONS,
7282
+ useValue: Object.assign(Object.assign({}, defaultOptions$1), (options !== null && options !== void 0 ? options : {}))
7283
+ }
7284
+ ]
7285
+ };
7286
+ }
7287
+ static forFeature(options) {
7288
+ return {
7289
+ ngModule: NiceLoadingToastModule,
7290
+ providers: [
7291
+ NiceLoadingToastService,
7292
+ {
7293
+ provide: NICE_LOADING_TOAST_OPTIONS,
7294
+ useValue: Object.assign(Object.assign({}, defaultOptions$1), options)
7295
+ }
7296
+ ]
7297
+ };
7298
+ }
7299
+ }
7300
+ NiceLoadingToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7301
+ NiceLoadingToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastModule, declarations: [NiceLoadingToastComponent, NiceLoadingToastDirective], imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule, NiceAlertModule], exports: [NiceLoadingToastDirective] });
7302
+ NiceLoadingToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastModule, providers: [DynamicOverlayContainer, NiceLoadingToastService], imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule, NiceAlertModule] });
7303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceLoadingToastModule, decorators: [{
7304
+ type: NgModule,
7305
+ args: [{
7306
+ imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule, NiceAlertModule],
7307
+ providers: [DynamicOverlayContainer, NiceLoadingToastService],
7308
+ declarations: [NiceLoadingToastComponent, NiceLoadingToastDirective],
7309
+ exports: [NiceLoadingToastDirective]
7310
+ }]
7311
+ }] });
7312
+
7313
+ function showLoadingToast(loadingToastService, key, options = {}) {
7314
+ return source => defer(() => {
7315
+ var _a;
7316
+ const ref = loadingToastService.showLoadingToast(key);
7317
+ return combineLatest([
7318
+ source,
7319
+ timer((_a = options.minDuration) !== null && _a !== void 0 ? _a : 1000)
7320
+ ]).pipe(map(([value]) => value), finalize(() => ref.dismiss()));
7321
+ });
7322
+ }
7323
+
7084
7324
  class NiceLottieComponent {
7085
7325
  constructor(platformId) {
7086
7326
  this.platformId = platformId;
@@ -7438,14 +7678,14 @@ class NiceNavigationService {
7438
7678
  }
7439
7679
  }
7440
7680
  }
7441
- NiceNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceNavigationService, deps: [{ token: i1$a.Router }], target: i0.ɵɵFactoryTarget.Injectable });
7681
+ NiceNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceNavigationService, deps: [{ token: i1$b.Router }], target: i0.ɵɵFactoryTarget.Injectable });
7442
7682
  NiceNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceNavigationService, providedIn: "root" });
7443
7683
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceNavigationService, decorators: [{
7444
7684
  type: Injectable,
7445
7685
  args: [{
7446
7686
  providedIn: "root"
7447
7687
  }]
7448
- }], ctorParameters: function () { return [{ type: i1$a.Router }]; } });
7688
+ }], ctorParameters: function () { return [{ type: i1$b.Router }]; } });
7449
7689
 
7450
7690
  class NiceNavigationComponent {
7451
7691
  constructor(_changeDetectorRef, _niceNavigationService, _niceUtilsService) {
@@ -7551,7 +7791,7 @@ class NiceHorizontalNavigationBasicItemComponent {
7551
7791
  }
7552
7792
  }
7553
7793
  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 });
7554
- 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$a.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$a.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.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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 });
7555
7795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationBasicItemComponent, decorators: [{
7556
7796
  type: Component,
7557
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" }]
@@ -7678,7 +7918,7 @@ class NiceHorizontalNavigationBranchItemComponent {
7678
7918
  }
7679
7919
  }
7680
7920
  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 });
7681
- 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.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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 });
7682
7922
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceHorizontalNavigationBranchItemComponent, decorators: [{
7683
7923
  type: Component,
7684
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" }]
@@ -8062,7 +8302,7 @@ class NiceScrollbarDirective {
8062
8302
  this._ps = null;
8063
8303
  }
8064
8304
  }
8065
- NiceScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceScrollbarDirective, deps: [{ token: i0.ElementRef }, { token: i1$e.Platform }, { token: i1$a.Router }], target: i0.ɵɵFactoryTarget.Directive });
8305
+ NiceScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceScrollbarDirective, deps: [{ token: i0.ElementRef }, { token: i1$g.Platform }, { token: i1$b.Router }], target: i0.ɵɵFactoryTarget.Directive });
8066
8306
  NiceScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceScrollbarDirective, selector: "[niceScrollbar]", inputs: { niceScrollbar: "niceScrollbar", niceScrollbarOptions: "niceScrollbarOptions" }, exportAs: ["niceScrollbar"], usesOnChanges: true, ngImport: i0 });
8067
8307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceScrollbarDirective, decorators: [{
8068
8308
  type: Directive,
@@ -8070,7 +8310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
8070
8310
  selector: "[niceScrollbar]",
8071
8311
  exportAs: "niceScrollbar"
8072
8312
  }]
8073
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$e.Platform }, { type: i1$a.Router }]; }, propDecorators: { niceScrollbar: [{
8313
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$g.Platform }, { type: i1$b.Router }]; }, propDecorators: { niceScrollbar: [{
8074
8314
  type: Input
8075
8315
  }], niceScrollbarOptions: [{
8076
8316
  type: Input
@@ -8274,12 +8514,12 @@ class NiceShowHintDirective {
8274
8514
  });
8275
8515
  }
8276
8516
  }
8277
- NiceShowHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceShowHintDirective, deps: [{ token: i1$6.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i1$e.Platform }, { token: i2$2.FocusMonitor }, { token: NiceNavigationHintService }], target: i0.ɵɵFactoryTarget.Directive });
8517
+ NiceShowHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceShowHintDirective, deps: [{ token: i1$7.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i1$g.Platform }, { token: i2$2.FocusMonitor }, { token: NiceNavigationHintService }], target: i0.ɵɵFactoryTarget.Directive });
8278
8518
  NiceShowHintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceShowHintDirective, selector: "[niceShowHint]", inputs: { shouldShow: "shouldShow", item: "item" }, ngImport: i0 });
8279
8519
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceShowHintDirective, decorators: [{
8280
8520
  type: Directive,
8281
8521
  args: [{ selector: "[niceShowHint]" }]
8282
- }], ctorParameters: function () { return [{ type: i1$6.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i1$e.Platform }, { type: i2$2.FocusMonitor }, { type: NiceNavigationHintService }]; }, propDecorators: { shouldShow: [{
8522
+ }], ctorParameters: function () { return [{ type: i1$7.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i1$g.Platform }, { type: i2$2.FocusMonitor }, { type: NiceNavigationHintService }]; }, propDecorators: { shouldShow: [{
8283
8523
  type: Input
8284
8524
  }], item: [{
8285
8525
  type: Input
@@ -8356,12 +8596,12 @@ class NiceVerticalNavigationBasicItemComponent {
8356
8596
  this._unsubscribeAll.complete();
8357
8597
  }
8358
8598
  }
8359
- 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$a.ActivatedRoute }, { token: i1$a.Router }], target: i0.ɵɵFactoryTarget.Component });
8360
- 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$a.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$a.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.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldShowHintPipe, name: "niceShouldShowHint" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8599
+ 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 });
8361
8601
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationBasicItemComponent, decorators: [{
8362
8602
  type: Component,
8363
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" }]
8364
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }, { type: NiceUtilsService }, { type: i1$a.ActivatedRoute }, { type: i1$a.Router }]; }, propDecorators: { item: [{
8604
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }, { type: NiceUtilsService }, { type: i1$b.ActivatedRoute }, { type: i1$b.Router }]; }, propDecorators: { item: [{
8365
8605
  type: Input
8366
8606
  }], name: [{
8367
8607
  type: Input
@@ -8680,12 +8920,12 @@ class NiceVerticalNavigationCollapsableItemComponent {
8680
8920
  return item.id || index;
8681
8921
  }
8682
8922
  }
8683
- NiceVerticalNavigationCollapsableItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$a.Router }, { token: NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
8684
- 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.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }, { kind: "pipe", type: NiceShouldShowHintPipe, name: "niceShouldShowHint" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush });
8923
+ 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 });
8685
8925
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, decorators: [{
8686
8926
  type: Component,
8687
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" }]
8688
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$a.Router }, { type: NiceNavigationService }]; }, propDecorators: { autoCollapse: [{
8928
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$b.Router }, { type: NiceNavigationService }]; }, propDecorators: { autoCollapse: [{
8689
8929
  type: Input
8690
8930
  }], item: [{
8691
8931
  type: Input
@@ -8739,7 +8979,7 @@ class NiceVerticalNavigationGroupItemComponent {
8739
8979
  }
8740
8980
  }
8741
8981
  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 });
8742
- 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.TranslatePipe, name: "translate" }, { kind: "pipe", type: NiceShouldHidePipe, name: "niceShouldHide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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 });
8743
8983
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationGroupItemComponent, decorators: [{
8744
8984
  type: Component,
8745
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" }]
@@ -8857,12 +9097,12 @@ class NiceVerticalNavigationAsideItemComponent {
8857
9097
  return item.id || index;
8858
9098
  }
8859
9099
  }
8860
- NiceVerticalNavigationAsideItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$a.Router }, { token: NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
8861
- 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.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9100
+ 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 });
8862
9102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, decorators: [{
8863
9103
  type: Component,
8864
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" }]
8865
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$a.Router }, { type: NiceNavigationService }]; }, propDecorators: { activeItemId: [{
9105
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$b.Router }, { type: NiceNavigationService }]; }, propDecorators: { activeItemId: [{
8866
9106
  type: Input
8867
9107
  }], autoCollapse: [{
8868
9108
  type: Input
@@ -9377,12 +9617,12 @@ class NiceVerticalNavigationComponent extends NiceNavigationComponent {
9377
9617
  this.openedChanged.next(open);
9378
9618
  }
9379
9619
  }
9380
- 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$b.AnimationBuilder }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$a.Router }, { token: i1$6.ScrollStrategyOptions }, { token: NiceNavigationHintService }], target: i0.ɵɵFactoryTarget.Component });
9620
+ 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 });
9381
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 });
9382
9622
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationComponent, decorators: [{
9383
9623
  type: Component,
9384
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" }]
9385
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NiceNavigationService }, { type: NiceUtilsService }, { type: i1$b.AnimationBuilder }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1$a.Router }, { type: i1$6.ScrollStrategyOptions }, { type: NiceNavigationHintService }]; }, propDecorators: { name: [{
9625
+ }], 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: [{
9386
9626
  type: Input
9387
9627
  }], appearance: [{
9388
9628
  type: Input
@@ -9566,7 +9806,7 @@ NiceSearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
9566
9806
  useExisting: forwardRef(() => NiceSearchBarComponent),
9567
9807
  multi: true
9568
9808
  }
9569
- ], ngImport: i0, template: "<button mat-icon-button *ngIf=\"!opened\" (click)=\"open()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n</button>\n\n<div class=\"absolute inset-0 flex items-center flex-shrink-0 z-99 bg-default\" *ngIf=\"opened\" @slideInTop @slideOutTop >\n <mat-icon class=\"absolute ml-6 sm:ml-8\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n <input class=\"w-full h-full px-16 sm:px-18 bg-transparent\" [ngModel]=\"searchValue\" (ngModelChange)=\"onSearchChange($event)\">\n <button class=\"absolute top-1/2 right-5 sm:right-7 flex-shrink-0 w-10 h-10 -mt-5\" mat-icon-button (click)=\"close()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x'\"></mat-icon>\n </button>\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"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: niceAnimations });
9809
+ ], ngImport: i0, template: "<button mat-icon-button *ngIf=\"!opened\" (click)=\"open()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n</button>\n\n<div class=\"absolute inset-0 flex items-center flex-shrink-0 z-99 bg-default\" *ngIf=\"opened\" @slideInTop @slideOutTop >\n <mat-icon class=\"absolute ml-6 sm:ml-8\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n <input class=\"w-full h-full px-16 sm:px-18 bg-transparent\" [ngModel]=\"searchValue\" (ngModelChange)=\"onSearchChange($event)\">\n <button class=\"absolute top-1/2 right-5 sm:right-7 flex-shrink-0 w-10 h-10 -mt-5\" mat-icon-button (click)=\"close()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x'\"></mat-icon>\n </button>\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"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: niceAnimations });
9570
9810
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSearchBarComponent, decorators: [{
9571
9811
  type: Component,
9572
9812
  args: [{ selector: "nice-search-bar", providers: [
@@ -9659,8 +9899,8 @@ class NiceSweetAlertComponent {
9659
9899
  }
9660
9900
  }
9661
9901
  }
9662
- NiceSweetAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$f.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
9663
- NiceSweetAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceSweetAlertComponent, selector: "nice-alert", ngImport: i0, template: "<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n", styles: [".nice-alert-modal{width:500px}\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: i1$f.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$f.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: NiceLottieComponent, selector: "nice-lottie", inputs: ["options", "width", "height"], outputs: ["animCreated"] }], encapsulation: i0.ViewEncapsulation.None });
9902
+ NiceSweetAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$h.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
9903
+ NiceSweetAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceSweetAlertComponent, selector: "nice-alert", ngImport: i0, template: "<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n", styles: [".nice-alert-modal{width:500px}\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: i1$h.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$h.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: NiceLottieComponent, selector: "nice-lottie", inputs: ["options", "width", "height"], outputs: ["animCreated"] }], encapsulation: i0.ViewEncapsulation.None });
9664
9904
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertComponent, decorators: [{
9665
9905
  type: Component,
9666
9906
  args: [{ selector: "nice-alert", encapsulation: ViewEncapsulation.None, template: "<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n", styles: [".nice-alert-modal{width:500px}\n"] }]
@@ -9668,7 +9908,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
9668
9908
  return [{ type: undefined, decorators: [{
9669
9909
  type: Inject,
9670
9910
  args: [MAT_DIALOG_DATA]
9671
- }] }, { type: i1$f.MatDialogRef }];
9911
+ }] }, { type: i1$h.MatDialogRef }];
9672
9912
  } });
9673
9913
 
9674
9914
  const NICE_ALERT_OPTIONS = new InjectionToken("nice_alert_options");
@@ -9749,7 +9989,7 @@ class NiceSweetAlertService {
9749
9989
  ];
9750
9990
  }
9751
9991
  }
9752
- NiceSweetAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertService, deps: [{ token: NICE_ALERT_OPTIONS, optional: true }, { token: i1$f.MatDialog }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
9992
+ NiceSweetAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertService, deps: [{ token: NICE_ALERT_OPTIONS, optional: true }, { token: i1$h.MatDialog }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
9753
9993
  NiceSweetAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertService });
9754
9994
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertService, decorators: [{
9755
9995
  type: Injectable
@@ -9759,7 +9999,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
9759
9999
  }, {
9760
10000
  type: Inject,
9761
10001
  args: [NICE_ALERT_OPTIONS]
9762
- }] }, { type: i1$f.MatDialog }, { type: i1.TranslateService }];
10002
+ }] }, { type: i1$h.MatDialog }, { type: i1$1.TranslateService }];
9763
10003
  } });
9764
10004
 
9765
10005
  class NiceSweetAlertDirective {
@@ -9830,7 +10070,7 @@ class NiceToastComponent {
9830
10070
  this.snackbarRef.dismiss();
9831
10071
  }
9832
10072
  }
9833
- NiceToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1$g.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component });
10073
+ NiceToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1$f.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component });
9834
10074
  NiceToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceToastComponent, selector: "nice-toast", ngImport: i0, template: "<nice-alert disableAnimation [type]=\"data.type\" [appearance]=\"data.appearance || 'outline'\" (click)=\"dismiss()\">\n <span niceAlertTitle *ngIf=\"data.title\">{{ data.title }}</span>\n <span [innerHtml]=\"data.message\" *ngIf=\"data.message\"></span>\n</nice-alert>\n", styles: [".message-box .mdc-snackbar__surface{background-color:transparent!important;box-shadow:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NiceAlertComponent, selector: "nice-alert", inputs: ["appearance", "dismissed", "dismissible", "disableAnimation", "name", "showIcon", "type", "color"], outputs: ["dismissedChanged"], exportAs: ["niceAlert"] }], encapsulation: i0.ViewEncapsulation.None });
9835
10075
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastComponent, decorators: [{
9836
10076
  type: Component,
@@ -9839,7 +10079,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
9839
10079
  return [{ type: undefined, decorators: [{
9840
10080
  type: Inject,
9841
10081
  args: [MAT_SNACK_BAR_DATA]
9842
- }] }, { type: i1$g.MatSnackBarRef }];
10082
+ }] }, { type: i1$f.MatSnackBarRef }];
9843
10083
  } });
9844
10084
 
9845
10085
  const NICE_TOAST_OPTIONS = new InjectionToken("nice_toast_options");
@@ -9887,7 +10127,7 @@ class NiceToastService {
9887
10127
  }
9888
10128
  }
9889
10129
  }
9890
- NiceToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastService, deps: [{ token: NICE_TOAST_OPTIONS }, { token: i1$g.MatSnackBar }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
10130
+ NiceToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastService, deps: [{ token: NICE_TOAST_OPTIONS }, { token: i1$f.MatSnackBar }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
9891
10131
  NiceToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastService, providedIn: "any" });
9892
10132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastService, decorators: [{
9893
10133
  type: Injectable,
@@ -9896,7 +10136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
9896
10136
  return [{ type: undefined, decorators: [{
9897
10137
  type: Inject,
9898
10138
  args: [NICE_TOAST_OPTIONS]
9899
- }] }, { type: i1$g.MatSnackBar }, { type: i1.TranslateService }];
10139
+ }] }, { type: i1$f.MatSnackBar }, { type: i1$1.TranslateService }];
9900
10140
  } });
9901
10141
 
9902
10142
  const defaultOptions = {
@@ -9941,6 +10181,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
9941
10181
  }]
9942
10182
  }] });
9943
10183
 
10184
+ function showSuccessToast(loadingToastService, options) {
10185
+ return source => source.pipe(tap$1({
10186
+ next: () => loadingToastService.success(options.messageKey, options.titleKey, options.params)
10187
+ }));
10188
+ }
10189
+ function showErrorToast(loadingToastService, options) {
10190
+ return source => source.pipe(tap$1({
10191
+ next: () => loadingToastService.error(options.messageKey, options.titleKey, options.params)
10192
+ }));
10193
+ }
10194
+ function showInfoToast(loadingToastService, options) {
10195
+ return source => source.pipe(tap$1({
10196
+ next: () => loadingToastService.info(options.messageKey, options.titleKey, options.params)
10197
+ }));
10198
+ }
10199
+ function showWarningToast(loadingToastService, options) {
10200
+ return source => source.pipe(tap$1({
10201
+ next: () => loadingToastService.warning(options.messageKey, options.titleKey, options.params)
10202
+ }));
10203
+ }
10204
+
10205
+ function showSuccessOrErrorToast(loadingToastService, options) {
10206
+ return source => source.pipe(tap$1({
10207
+ next: () => {
10208
+ const [message, title] = transformOptions(options, "success");
10209
+ loadingToastService.success(message, title, options.params);
10210
+ },
10211
+ error: () => {
10212
+ const [message, title] = transformOptions(options, "error");
10213
+ loadingToastService.error(message, title, options.params);
10214
+ }
10215
+ }));
10216
+ }
10217
+ function transformOptions(options, type) {
10218
+ var _a, _b, _c, _d;
10219
+ const commonOptions = options;
10220
+ if (commonOptions.messageKey || commonOptions.titleKey) {
10221
+ return [commonOptions.messageKey ? `${commonOptions.messageKey}.${type}` : "", commonOptions.titleKey ? `${commonOptions.titleKey}.${type}` : ""];
10222
+ }
10223
+ const fullOptions = options;
10224
+ return [(_b = (_a = fullOptions.message) === null || _a === void 0 ? void 0 : _a[type]) !== null && _b !== void 0 ? _b : "", (_d = (_c = fullOptions.title) === null || _c === void 0 ? void 0 : _c[type]) !== null && _d !== void 0 ? _d : ""];
10225
+ }
10226
+
9944
10227
  class ToggleButtonComponent {
9945
10228
  }
9946
10229
  ToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -10108,16 +10391,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10108
10391
  }]
10109
10392
  }] });
10110
10393
 
10111
- class TranslationFormService {
10394
+ class NiceTranslationFormService {
10112
10395
  constructor() {
10113
10396
  this._languages$ = new BehaviorSubject([]);
10114
10397
  this._requiredLanguages$ = new BehaviorSubject([]);
10115
10398
  }
10116
10399
  get languages$() {
10117
- return this._languages$;
10400
+ return this._languages$.asObservable();
10401
+ }
10402
+ get languages() {
10403
+ return this._languages$.getValue();
10118
10404
  }
10119
10405
  get requiredLanguages$() {
10120
- return this._requiredLanguages$;
10406
+ return this._requiredLanguages$.asObservable();
10407
+ }
10408
+ get requiredLanguages() {
10409
+ return this._requiredLanguages$.value;
10410
+ }
10411
+ get hasLanguages$() {
10412
+ return this._languages$.asObservable().pipe(map((languages) => !!(languages === null || languages === void 0 ? void 0 : languages.length)));
10413
+ }
10414
+ get hasLanguages() {
10415
+ var _a;
10416
+ return !!((_a = this.languages) === null || _a === void 0 ? void 0 : _a.length);
10121
10417
  }
10122
10418
  setLanguages(languages) {
10123
10419
  this._languages$.next(languages !== null && languages !== void 0 ? languages : []);
@@ -10126,7 +10422,7 @@ class TranslationFormService {
10126
10422
  if (!(languages === null || languages === void 0 ? void 0 : languages.length)) {
10127
10423
  this._requiredLanguages$.next([]);
10128
10424
  }
10129
- const languagesValues = this.languages$.getValue();
10425
+ const languagesValues = this.languages;
10130
10426
  const unregisteredLanguages = languages === null || languages === void 0 ? void 0 : languages.filter((language) => !languagesValues.includes(language));
10131
10427
  if (unregisteredLanguages === null || unregisteredLanguages === void 0 ? void 0 : unregisteredLanguages.length) {
10132
10428
  throw new Error(`You provided languages that are not configured
@@ -10142,9 +10438,9 @@ class TranslationFormService {
10142
10438
  }
10143
10439
  }
10144
10440
  }
10145
- TranslationFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10146
- TranslationFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormService, providedIn: "root" });
10147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormService, decorators: [{
10441
+ NiceTranslationFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTranslationFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10442
+ NiceTranslationFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTranslationFormService, providedIn: "root" });
10443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTranslationFormService, decorators: [{
10148
10444
  type: Injectable,
10149
10445
  args: [{
10150
10446
  providedIn: "root",
@@ -10171,13 +10467,19 @@ class TranslationContextDirective {
10171
10467
  updateLanguage(language) {
10172
10468
  this.activeLanguage$.next(language);
10173
10469
  }
10470
+ reset() {
10471
+ if (!this.translationFormService.languages.length) {
10472
+ return;
10473
+ }
10474
+ this.activeLanguage$.next(this.translationFormService.languages[0]);
10475
+ }
10174
10476
  }
10175
- TranslationContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationContextDirective, deps: [{ token: TranslationFormService }], target: i0.ɵɵFactoryTarget.Directive });
10477
+ TranslationContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationContextDirective, deps: [{ token: NiceTranslationFormService }], target: i0.ɵɵFactoryTarget.Directive });
10176
10478
  TranslationContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TranslationContextDirective, selector: "[niceTranslationContext]", ngImport: i0 });
10177
10479
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationContextDirective, decorators: [{
10178
10480
  type: Directive,
10179
10481
  args: [{ selector: "[niceTranslationContext]" }]
10180
- }], ctorParameters: function () { return [{ type: TranslationFormService }]; } });
10482
+ }], ctorParameters: function () { return [{ type: NiceTranslationFormService }]; } });
10181
10483
 
10182
10484
  class TranslationToggleComponent {
10183
10485
  constructor(context, translationFormService) {
@@ -10190,54 +10492,12 @@ class TranslationToggleComponent {
10190
10492
  this.context.updateLanguage($event.value);
10191
10493
  }
10192
10494
  }
10193
- TranslationToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationToggleComponent, deps: [{ token: TranslationContextDirective }, { token: TranslationFormService }], target: i0.ɵɵFactoryTarget.Component });
10495
+ TranslationToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationToggleComponent, deps: [{ token: TranslationContextDirective }, { token: NiceTranslationFormService }], target: i0.ɵɵFactoryTarget.Component });
10194
10496
  TranslationToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TranslationToggleComponent, selector: "nice-translation-toggle", ngImport: i0, template: "<mat-button-toggle-group\n *ngIf=\"(languages$ | async)?.length > 1\"\n (change)=\"onChange($event)\"\n [value]=\"activeLanguage$ | async\"\n>\n <mat-button-toggle *ngFor=\"let language of languages$ | async\" [value]=\"language\">\n {{ language | uppercase }}\n </mat-button-toggle>\n</mat-button-toggle-group>\n", dependencies: [{ kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }] });
10195
10497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationToggleComponent, decorators: [{
10196
10498
  type: Component,
10197
10499
  args: [{ selector: "nice-translation-toggle", template: "<mat-button-toggle-group\n *ngIf=\"(languages$ | async)?.length > 1\"\n (change)=\"onChange($event)\"\n [value]=\"activeLanguage$ | async\"\n>\n <mat-button-toggle *ngFor=\"let language of languages$ | async\" [value]=\"language\">\n {{ language | uppercase }}\n </mat-button-toggle>\n</mat-button-toggle-group>\n" }]
10198
- }], ctorParameters: function () { return [{ type: TranslationContextDirective }, { type: TranslationFormService }]; } });
10199
-
10200
- function RequireForLanguages() {
10201
- return registerAsyncValidatorDecorator({
10202
- name: "RequireForLanguages",
10203
- });
10204
- }
10205
- class RequireForLanguagesValidator extends AsyncValidator {
10206
- constructor(service) {
10207
- super();
10208
- this.service = service;
10209
- this.name = "RequireForLanguages";
10210
- }
10211
- validate(formGroup) {
10212
- const requiredLanguages = this.service.requiredLanguages$.getValue();
10213
- if (!requiredLanguages.length) {
10214
- return of(null);
10215
- }
10216
- const missingLanguages = [];
10217
- for (const requiredLanguage of requiredLanguages) {
10218
- const control = formGroup.get(requiredLanguage);
10219
- if (control === null || control === void 0 ? void 0 : control.value) {
10220
- continue;
10221
- }
10222
- missingLanguages.push(requiredLanguage);
10223
- }
10224
- if (missingLanguages === null || missingLanguages === void 0 ? void 0 : missingLanguages.length) {
10225
- return of({ languageRequired: { missingLanguages } });
10226
- }
10227
- return of(null);
10228
- }
10229
- }
10230
- RequireForLanguagesValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RequireForLanguagesValidator, deps: [{ token: TranslationFormService }], target: i0.ɵɵFactoryTarget.Injectable });
10231
- RequireForLanguagesValidator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RequireForLanguagesValidator });
10232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RequireForLanguagesValidator, decorators: [{
10233
- type: Injectable
10234
- }], ctorParameters: function () { return [{ type: TranslationFormService }]; } });
10235
-
10236
- class TranslationForm {
10237
- constructor(values) {
10238
- Object.assign(this, values !== null && values !== void 0 ? values : {});
10239
- }
10240
- }
10500
+ }], ctorParameters: function () { return [{ type: TranslationContextDirective }, { type: NiceTranslationFormService }]; } });
10241
10501
 
10242
10502
  class TranslationFormComponent {
10243
10503
  get classList() {
@@ -10361,14 +10621,15 @@ class TranslationFormComponent {
10361
10621
  this.currentControl = this.formGroup.get(languages[0]);
10362
10622
  }
10363
10623
  }
10364
- TranslationFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormComponent, deps: [{ token: i1$2.ControlContainer }, { token: TranslationContextDirective }, { token: TranslationFormService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10365
- TranslationFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TranslationFormComponent, selector: "ng-component", inputs: { required: "required", disabled: "disabled", placeholder: "placeholder", floating: "floating", maxLength: "maxLength" }, host: { properties: { "class": "this.classList", "class.floating": "this.shouldLabelFloat", "id": "this.id", "attr.aria-describedby": "this.describedBy" } }, ngImport: i0, template: ``, isInline: true });
10624
+ TranslationFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormComponent, deps: [{ token: i1$3.ControlContainer }, { token: TranslationContextDirective }, { token: NiceTranslationFormService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10625
+ TranslationFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TranslationFormComponent, selector: "ng-component", inputs: { required: "required", disabled: "disabled", placeholder: "placeholder", floating: "floating", maxLength: "maxLength" }, host: { properties: { "class": "this.classList", "class.floating": "this.shouldLabelFloat", "id": "this.id", "attr.aria-describedby": "this.describedBy" } }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
10366
10626
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormComponent, decorators: [{
10367
10627
  type: Component,
10368
10628
  args: [{
10369
10629
  template: ``,
10630
+ changeDetection: ChangeDetectionStrategy.OnPush
10370
10631
  }]
10371
- }], ctorParameters: function () { return [{ type: i1$2.ControlContainer }, { type: TranslationContextDirective }, { type: TranslationFormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { classList: [{
10632
+ }], ctorParameters: function () { return [{ type: i1$3.ControlContainer }, { type: TranslationContextDirective }, { type: NiceTranslationFormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { classList: [{
10372
10633
  type: HostBinding,
10373
10634
  args: ["class"]
10374
10635
  }], shouldLabelFloat: [{
@@ -10405,7 +10666,7 @@ TranslationFormTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
10405
10666
  provide: MatFormFieldControl,
10406
10667
  useExisting: TranslationFormTextareaComponent,
10407
10668
  },
10408
- ], usesInheritance: true, ngImport: i0, template: "<textarea\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n", dependencies: [{ kind: "directive", type: i1$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10669
+ ], usesInheritance: true, ngImport: i0, template: "<textarea\n *ngIf=\"currentControl\"\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n", dependencies: [{ kind: "directive", type: i1$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10409
10670
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormTextareaComponent, decorators: [{
10410
10671
  type: Component,
10411
10672
  args: [{ selector: "nice-translation-form-textarea", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -10413,7 +10674,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10413
10674
  provide: MatFormFieldControl,
10414
10675
  useExisting: TranslationFormTextareaComponent,
10415
10676
  },
10416
- ], template: "<textarea\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n" }]
10677
+ ], template: "<textarea\n *ngIf=\"currentControl\"\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n" }]
10417
10678
  }], propDecorators: { resizable: [{
10418
10679
  type: Input
10419
10680
  }], rows: [{
@@ -10430,7 +10691,7 @@ TranslationFormTextfieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
10430
10691
  provide: MatFormFieldControl,
10431
10692
  useExisting: TranslationFormTextfieldComponent,
10432
10693
  },
10433
- ], usesInheritance: true, ngImport: i0, template: "<input\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n", dependencies: [{ kind: "directive", type: i1$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10694
+ ], usesInheritance: true, ngImport: i0, template: "<input\n matInput\n *ngIf=\"currentControl\"\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n", dependencies: [{ kind: "directive", type: i1$4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10434
10695
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormTextfieldComponent, decorators: [{
10435
10696
  type: Component,
10436
10697
  args: [{ selector: "nice-translation-form-textfield", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -10438,9 +10699,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10438
10699
  provide: MatFormFieldControl,
10439
10700
  useExisting: TranslationFormTextfieldComponent,
10440
10701
  },
10441
- ], template: "<input\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n" }]
10702
+ ], template: "<input\n matInput\n *ngIf=\"currentControl\"\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n" }]
10442
10703
  }] });
10443
10704
 
10705
+ function RequireForLanguages() {
10706
+ return registerAsyncValidatorDecorator({
10707
+ name: "RequireForLanguages",
10708
+ });
10709
+ }
10710
+ class RequireForLanguagesValidator extends AsyncValidator {
10711
+ constructor(service) {
10712
+ super();
10713
+ this.service = service;
10714
+ this.name = "RequireForLanguages";
10715
+ }
10716
+ validate(formGroup) {
10717
+ return this.service.requiredLanguages$.pipe(take(1), map((requiredLanguages) => {
10718
+ if (!requiredLanguages.length) {
10719
+ return null;
10720
+ }
10721
+ const missingLanguages = [];
10722
+ for (const requiredLanguage of requiredLanguages) {
10723
+ const control = formGroup.get(requiredLanguage);
10724
+ if (control === null || control === void 0 ? void 0 : control.value) {
10725
+ continue;
10726
+ }
10727
+ missingLanguages.push(requiredLanguage);
10728
+ }
10729
+ if (missingLanguages === null || missingLanguages === void 0 ? void 0 : missingLanguages.length) {
10730
+ return { languageRequired: { missingLanguages } };
10731
+ }
10732
+ return null;
10733
+ }));
10734
+ }
10735
+ }
10736
+ RequireForLanguagesValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RequireForLanguagesValidator, deps: [{ token: NiceTranslationFormService }], target: i0.ɵɵFactoryTarget.Injectable });
10737
+ RequireForLanguagesValidator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RequireForLanguagesValidator });
10738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RequireForLanguagesValidator, decorators: [{
10739
+ type: Injectable
10740
+ }], ctorParameters: function () { return [{ type: NiceTranslationFormService }]; } });
10741
+
10444
10742
  class NiceTranslationFormModule {
10445
10743
  static forRoot() {
10446
10744
  return {
@@ -10501,7 +10799,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10501
10799
  }] });
10502
10800
 
10503
10801
  // tslint:disable-next-line:variable-name
10504
- const TranslationFormDecorator = () => DynamicGroup();
10802
+ const TranslationFormGroup = () => DynamicGroup();
10803
+
10804
+ class TranslationForm {
10805
+ constructor(values) {
10806
+ Object.assign(this, values !== null && values !== void 0 ? values : {});
10807
+ }
10808
+ }
10505
10809
 
10506
10810
  class NiceAutofocusDirective {
10507
10811
  constructor(elem) {
@@ -10852,7 +11156,7 @@ class NiceChipListDirective {
10852
11156
  });
10853
11157
  }
10854
11158
  }
10855
- NiceChipListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceChipListDirective, deps: [{ token: NiceAsyncTypeaheadComponent, optional: true }, { token: i1$2.NgControl, optional: true, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
11159
+ NiceChipListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceChipListDirective, deps: [{ token: NiceAsyncTypeaheadComponent, optional: true }, { token: i1$3.NgControl, optional: true, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
10856
11160
  NiceChipListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceChipListDirective, selector: "input[niceChipList], nice-async-typeahead[niceChipList]", inputs: { withItemList: "withItemList", reloadOnSelected: "reloadOnSelected", separatorKeyboardCodes: "separatorKeyboardCodes" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, usesOnChanges: true, ngImport: i0 });
10857
11161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceChipListDirective, decorators: [{
10858
11162
  type: Directive,
@@ -10862,7 +11166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10862
11166
  }], ctorParameters: function () {
10863
11167
  return [{ type: NiceAsyncTypeaheadComponent, decorators: [{
10864
11168
  type: Optional
10865
- }] }, { type: i1$2.NgControl, decorators: [{
11169
+ }] }, { type: i1$3.NgControl, decorators: [{
10866
11170
  type: Optional
10867
11171
  }, {
10868
11172
  type: Self
@@ -10977,7 +11281,7 @@ class NiceDraggableListDirective {
10977
11281
  return LexoRankUtils.getNewRank(itemAfter === null || itemAfter === void 0 ? void 0 : itemAfter[this.rankProperty], itemBefore === null || itemBefore === void 0 ? void 0 : itemBefore[this.rankProperty]);
10978
11282
  }
10979
11283
  }
10980
- NiceDraggableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceDraggableListDirective, deps: [{ token: i1$2.FormArrayName, optional: true }, { token: i2$4.CdkDropList }], target: i0.ɵɵFactoryTarget.Directive });
11284
+ NiceDraggableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceDraggableListDirective, deps: [{ token: i1$3.FormArrayName, optional: true }, { token: i2$4.CdkDropList }], target: i0.ɵɵFactoryTarget.Directive });
10981
11285
  NiceDraggableListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceDraggableListDirective, selector: "[cdkDropList][niceDraggableList]", inputs: { items: "items", rankProperty: "rankProperty" }, outputs: { itemsUpdated: "itemsUpdated", itemRankUpdated: "itemRankUpdated" }, usesOnChanges: true, ngImport: i0 });
10982
11286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceDraggableListDirective, decorators: [{
10983
11287
  type: Directive,
@@ -10985,7 +11289,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10985
11289
  selector: "[cdkDropList][niceDraggableList]"
10986
11290
  }]
10987
11291
  }], ctorParameters: function () {
10988
- return [{ type: i1$2.FormArrayName, decorators: [{
11292
+ return [{ type: i1$3.FormArrayName, decorators: [{
10989
11293
  type: Optional
10990
11294
  }] }, { type: i2$4.CdkDropList }];
10991
11295
  }, propDecorators: { items: [{
@@ -11116,11 +11420,11 @@ class NiceModalOpenerDirective {
11116
11420
  .subscribe(res => this.modalAfterClosed.emit(res));
11117
11421
  }
11118
11422
  }
11119
- NiceModalOpenerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceModalOpenerDirective, deps: [{ token: i1$f.MatDialog }, { token: i0.Type }, { token: i1$f.MatDialogConfig }], target: i0.ɵɵFactoryTarget.Directive });
11423
+ NiceModalOpenerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceModalOpenerDirective, deps: [{ token: i1$h.MatDialog }, { token: i0.Type }, { token: i1$h.MatDialogConfig }], target: i0.ɵɵFactoryTarget.Directive });
11120
11424
  NiceModalOpenerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceModalOpenerDirective, inputs: { modalData: "modalData" }, outputs: { modalAfterClosed: "modalAfterClosed" }, ngImport: i0 });
11121
11425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceModalOpenerDirective, decorators: [{
11122
11426
  type: Directive
11123
- }], ctorParameters: function () { return [{ type: i1$f.MatDialog }, { type: i0.Type }, { type: i1$f.MatDialogConfig }]; }, propDecorators: { modalData: [{
11427
+ }], ctorParameters: function () { return [{ type: i1$h.MatDialog }, { type: i0.Type }, { type: i1$h.MatDialogConfig }]; }, propDecorators: { modalData: [{
11124
11428
  type: Input
11125
11429
  }], modalAfterClosed: [{
11126
11430
  type: Output
@@ -11134,11 +11438,11 @@ class NiceModalOnClickDirective extends NiceModalOpenerDirective {
11134
11438
  this.open();
11135
11439
  }
11136
11440
  }
11137
- NiceModalOnClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceModalOnClickDirective, deps: [{ token: i1$f.MatDialog }, { token: i0.Type }, { token: i1$f.MatDialogConfig }], target: i0.ɵɵFactoryTarget.Directive });
11441
+ NiceModalOnClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceModalOnClickDirective, deps: [{ token: i1$h.MatDialog }, { token: i0.Type }, { token: i1$h.MatDialogConfig }], target: i0.ɵɵFactoryTarget.Directive });
11138
11442
  NiceModalOnClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceModalOnClickDirective, host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0 });
11139
11443
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceModalOnClickDirective, decorators: [{
11140
11444
  type: Directive
11141
- }], ctorParameters: function () { return [{ type: i1$f.MatDialog }, { type: i0.Type }, { type: i1$f.MatDialogConfig }]; }, propDecorators: { onClick: [{
11445
+ }], ctorParameters: function () { return [{ type: i1$h.MatDialog }, { type: i0.Type }, { type: i1$h.MatDialogConfig }]; }, propDecorators: { onClick: [{
11142
11446
  type: HostListener,
11143
11447
  args: ["click"]
11144
11448
  }] } });
@@ -11174,7 +11478,7 @@ class NiceScrollResetDirective {
11174
11478
  this._unsubscribeAll.complete();
11175
11479
  }
11176
11480
  }
11177
- NiceScrollResetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceScrollResetDirective, deps: [{ token: i0.ElementRef }, { token: i1$a.Router }], target: i0.ɵɵFactoryTarget.Directive });
11481
+ NiceScrollResetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceScrollResetDirective, deps: [{ token: i0.ElementRef }, { token: i1$b.Router }], target: i0.ɵɵFactoryTarget.Directive });
11178
11482
  NiceScrollResetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceScrollResetDirective, selector: "[niceScrollReset]", exportAs: ["niceScrollReset"], ngImport: i0 });
11179
11483
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceScrollResetDirective, decorators: [{
11180
11484
  type: Directive,
@@ -11182,7 +11486,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
11182
11486
  selector: "[niceScrollReset]",
11183
11487
  exportAs: "niceScrollReset"
11184
11488
  }]
11185
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$a.Router }]; } });
11489
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$b.Router }]; } });
11186
11490
 
11187
11491
  class NiceScrollResetModule {
11188
11492
  }
@@ -11434,5 +11738,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
11434
11738
  * Generated bundle index. Do not edit.
11435
11739
  */
11436
11740
 
11437
- export { ArrayUtils, BooleanPipe, CapitalizeFirstLetterPipe, CarouselComponent, CaseUtils, CeilPipe, ChipListItemLabelDirective, ColorsUtils, DateUtils, DefaultExportBottomSheetService, EntriesPipe, ExportBottomSheetComponent, ExportBottomSheetService, FileUtils, FindByKeyPipe, FirstLetterPipe, FloorPipe, FontAwesomeUtils, FormDataUtils, HttpStatusCodes, ImgCropperConfig, ImgCropperError, ImgResolution, JoinPipe, KeyboardCodes, LexoRankUtils, LinkPipe, LocalizedBooleanPipe, LocalizedCurrencyPipe, LocalizedDateOnlyPipe, LocalizedDatePipe, MinutesToTimePipe, ModalMode, NICE_ASYNC_TYPEAHEAD_PROVIDER, NavigationHideItemResolver, NavigationHintResolver, NiceAlertComponent, NiceAlertModule, NiceAlertService, NiceApiException, NiceAssetsCarouselActiveContentDirective, NiceAssetsCarouselComponent, NiceAssetsCarouselModule, NiceAsyncTypeaheadComponent, NiceAsyncTypeaheadModule, NiceAsyncTypeaheadProvider, NiceAutofocusDirective, NiceAutofocusDirectiveModule, NiceAutogrowDirective, NiceAutogrowModule, NiceBaseForm, NiceBaseFormComponent, NiceBaseFormModule, NiceCardComponent, NiceCardModule, NiceCarouselModule, NiceChipAsyncTypeaheadDirective, NiceChipListDirective, NiceChipListDirectiveModule, NiceChipListItemsComponent, NiceClickStopPropagationDirective, NiceCollapsableComponent, NiceCollapsableModule, NiceConfigModule, NiceConfigService, NiceControlStatusDirective, NiceCropperAreaComponent, NiceDateRangePickerComponent, NiceDateRangePickerModule, NiceDraggableListDirective, NiceDraggableListModule, NiceDrawerComponent, NiceDrawerModule, NiceDrawerService, NiceDropzoneDirective, NiceDropzoneModule, NiceExportBottomSheetModule, NiceFormErrorComponent, NiceFormErrorModule, NiceFormSubmitDirective, NiceHorizontalNavigationBasicItemComponent, NiceHorizontalNavigationBranchItemComponent, NiceHorizontalNavigationComponent, NiceHorizontalNavigationDividerItemComponent, NiceHorizontalNavigationSpacerItemComponent, NiceHorizontalStepperComponent, NiceHorizontalStepperModule, NiceHttpExceptionFactory, NiceImageCropperComponent, NiceImageCropperModule, NiceImageErrorPlaceholderDirective, NiceImageErrorPlaceholderDirectiveModule, NiceLayoutComponent, NiceLayoutModule, NiceLoadingDirective, NiceLoadingSpinnerComponent, NiceLoadingSpinnerModule, NiceLottieComponent, NiceLottieModule, NiceMaterialModule, NiceMaterialStyleDirective, NiceMediaWatcherModule, NiceMediaWatcherService, NiceModalOnClickDirective, NiceModalOpenerDirective, NiceModule, NiceNavigationComponent, NiceNavigationModule, NiceNavigationService, NicePipesModule, NicePreventCloseWindowDirective, NiceRoundedStyleDirective, NiceScrollResetDirective, NiceScrollResetModule, NiceScrollbarDirective, NiceScrollbarModule, NiceSearchBarComponent, NiceSearchBarModule, NiceSplashScreenModule, NiceSplashScreenService, NiceStepComponent, NiceStopPropagationModule, NiceSweetAlertComponent, NiceSweetAlertDirective, NiceSweetAlertModule, NiceSweetAlertService, NiceToastComponent, NiceToastModule, NiceToastService, NiceToggleButtonGroupModule, NiceTransformResponseInterceptor, NiceTranslationFormModule, NiceTypeaheadComponent, NiceTypeaheadModule, NiceTypeaheadNewValue, NiceUtilsModule, NiceUtilsService, NiceVerticalNavigationAsideItemComponent, NiceVerticalNavigationBasicItemComponent, NiceVerticalNavigationCollapsableItemComponent, NiceVerticalNavigationComponent, NiceVerticalNavigationDividerItemComponent, NiceVerticalNavigationGroupItemComponent, NiceVerticalNavigationSpacerItemComponent, NiceWindowDirectiveModule, NumberToOrdinalIndicatorPipe, NumberUtils, ObjectUtils, OptionsScrollDirective, PadPipe, PhonePipe, PictureModalComponent, PictureModalService, PostalCodePipe, PromiseUtils, QueryParamsUtils, RangePipe, RegexUtils, RequireForLanguages, RequireForLanguagesValidator, RerenderDirective, ResolveDirective, RoundPipe, SanitizeBypassPipe, SecondsToTimePipe, TRANSFORM_TYPE, ToggleButtonComponent, ToggleButtonGroupComponent, TrackByPropPipe, TranslationContextDirective, TranslationForm, TranslationFormDecorator, TranslationFormService, TranslationFormTextareaComponent, TranslationFormTextfieldComponent, TranslationToggleComponent, TypeUtils, UrlUtils, _HintComponentBase, _normalizeDegrees, isNotNullOrUndefined, isNullOrUndefined, mergeDeep, mixinNiceApi, niceAnimations, round };
11741
+ export { ArrayUtils, BooleanPipe, CapitalizeFirstLetterPipe, CarouselComponent, CaseUtils, CeilPipe, ChipListItemLabelDirective, ColorsUtils, DateUtils, DefaultExportBottomSheetService, EntriesPipe, ExportBottomSheetComponent, ExportBottomSheetService, FileUtils, FindByKeyPipe, FirstLetterPipe, FloorPipe, FontAwesomeUtils, FormDataUtils, HttpStatusCodes, ImgCropperConfig, ImgCropperError, ImgResolution, JoinPipe, KeyboardCodes, LexoRankUtils, LinkPipe, LocalizedBooleanPipe, LocalizedCurrencyPipe, LocalizedDateOnlyPipe, LocalizedDatePipe, MinutesToTimePipe, ModalMode, NICE_ASYNC_TYPEAHEAD_PROVIDER, NavigationHideItemResolver, NavigationHintResolver, NiceAlertComponent, NiceAlertModule, NiceAlertService, NiceApiException, NiceAssetsCarouselActiveContentDirective, NiceAssetsCarouselComponent, NiceAssetsCarouselModule, NiceAsyncTypeaheadComponent, NiceAsyncTypeaheadModule, NiceAsyncTypeaheadProvider, NiceAutofocusDirective, NiceAutofocusDirectiveModule, NiceAutogrowDirective, NiceAutogrowModule, NiceBaseForm, NiceBaseFormComponent, NiceBaseFormModule, NiceCardComponent, NiceCardModule, NiceCarouselModule, NiceChipAsyncTypeaheadDirective, NiceChipListDirective, NiceChipListDirectiveModule, NiceChipListItemsComponent, NiceClickStopPropagationDirective, NiceCollapsableComponent, NiceCollapsableModule, NiceConfigModule, NiceConfigService, NiceControlStatusDirective, NiceCropperAreaComponent, NiceDateRangePickerComponent, NiceDateRangePickerModule, NiceDraggableListDirective, NiceDraggableListModule, NiceDrawerComponent, NiceDrawerModule, NiceDrawerService, NiceDropzoneDirective, NiceDropzoneModule, NiceExportBottomSheetModule, NiceFormErrorComponent, NiceFormErrorModule, NiceFormSubmitDirective, NiceHorizontalNavigationBasicItemComponent, NiceHorizontalNavigationBranchItemComponent, NiceHorizontalNavigationComponent, NiceHorizontalNavigationDividerItemComponent, NiceHorizontalNavigationSpacerItemComponent, NiceHorizontalStepperComponent, NiceHorizontalStepperModule, NiceHttpExceptionFactory, NiceImageCropperComponent, NiceImageCropperModule, NiceImageErrorPlaceholderDirective, NiceImageErrorPlaceholderDirectiveModule, NiceLayoutComponent, NiceLayoutModule, NiceLoadingDirective, NiceLoadingSpinnerComponent, NiceLoadingSpinnerModule, NiceLoadingToastComponent, NiceLoadingToastDirective, NiceLoadingToastModule, NiceLoadingToastService, NiceLottieComponent, NiceLottieModule, NiceMaterialModule, NiceMaterialStyleDirective, NiceMediaWatcherModule, NiceMediaWatcherService, NiceModalOnClickDirective, NiceModalOpenerDirective, NiceModule, NiceNavigationComponent, NiceNavigationModule, NiceNavigationService, NicePipesModule, NicePreventCloseWindowDirective, NiceRoundedStyleDirective, NiceScrollResetDirective, NiceScrollResetModule, NiceScrollbarDirective, NiceScrollbarModule, NiceSearchBarComponent, NiceSearchBarModule, NiceSplashScreenModule, NiceSplashScreenService, NiceStepComponent, NiceStopPropagationModule, NiceSweetAlertComponent, NiceSweetAlertDirective, NiceSweetAlertModule, NiceSweetAlertService, NiceToastComponent, NiceToastModule, NiceToastService, NiceToggleButtonGroupModule, NiceTransformResponseInterceptor, NiceTranslationFormModule, NiceTranslationFormService, NiceTypeaheadComponent, NiceTypeaheadModule, NiceTypeaheadNewValue, NiceUtilsModule, NiceUtilsService, NiceVerticalNavigationAsideItemComponent, NiceVerticalNavigationBasicItemComponent, NiceVerticalNavigationCollapsableItemComponent, NiceVerticalNavigationComponent, NiceVerticalNavigationDividerItemComponent, NiceVerticalNavigationGroupItemComponent, NiceVerticalNavigationSpacerItemComponent, NiceWindowDirectiveModule, NumberToOrdinalIndicatorPipe, NumberUtils, ObjectUtils, OptionsScrollDirective, PadPipe, PhonePipe, PictureModalComponent, PictureModalService, PostalCodePipe, PromiseUtils, QueryParamsUtils, RangePipe, RegexUtils, RequireForLanguages, RequireForLanguagesValidator, RerenderDirective, ResolveDirective, RoundPipe, SanitizeBypassPipe, SecondsToTimePipe, TRANSFORM_TYPE, ToggleButtonComponent, ToggleButtonGroupComponent, TrackByPropPipe, TranslationContextDirective, TranslationForm, TranslationFormGroup, TranslationFormTextareaComponent, TranslationFormTextfieldComponent, TranslationToggleComponent, TypeUtils, UrlUtils, _HintComponentBase, _normalizeDegrees, isNotNullOrUndefined, isNullOrUndefined, mergeDeep, mixinNiceApi, niceAnimations, round, showErrorToast, showInfoToast, showLoadingToast, showSuccessOrErrorToast, showSuccessToast, showWarningToast };
11438
11742
  //# sourceMappingURL=recursyve-nice-ui-kit.v2.mjs.map