@abp/ng.theme.basic 8.1.2 → 8.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,8 +3,8 @@ import { Component } from '@angular/core';
3
3
  import { map } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@abp/ng.core";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@ng-bootstrap/ng-bootstrap";
6
+ import * as i2 from "@ng-bootstrap/ng-bootstrap";
7
+ import * as i3 from "@angular/common";
8
8
  export class LanguagesComponent {
9
9
  get smallScreen() {
10
10
  return window.innerWidth < 992;
@@ -27,81 +27,75 @@ export class LanguagesComponent {
27
27
  this.sessionState.setLanguage(cultureName);
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LanguagesComponent, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
31
- <div
32
- *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
33
- class="dropdown"
34
- ngbDropdown
35
- #languageDropdown="ngbDropdown"
36
- display="static"
37
- >
38
- <a
39
- ngbDropdownToggle
40
- class="nav-link"
41
- href="javascript:void(0)"
42
- role="button"
43
- id="dropdownMenuLink"
44
- data-toggle="dropdown"
45
- aria-haspopup="true"
46
- aria-expanded="false"
47
- >
48
- {{ defaultLanguage$ | async }}
49
- </a>
50
- <div
51
- class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
52
- aria-labelledby="dropdownMenuLink"
53
- [class.d-block]="smallScreen && languageDropdown.isOpen()"
54
- >
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: LanguagesComponent, selector: "abp-languages", ngImport: i0, template: `
31
+ @if (((dropdownLanguages$ | async)?.length || 0) > 0) {
32
+ <div class="dropdown" ngbDropdown #languageDropdown="ngbDropdown" display="static">
55
33
  <a
56
- *ngFor="let lang of dropdownLanguages$ | async"
34
+ ngbDropdownToggle
35
+ class="nav-link"
57
36
  href="javascript:void(0)"
58
- class="dropdown-item"
59
- (click)="onChangeLang(lang.cultureName || '')"
60
- >{{ lang?.displayName }}</a
37
+ role="button"
38
+ id="dropdownMenuLink"
39
+ data-toggle="dropdown"
40
+ aria-haspopup="true"
41
+ aria-expanded="false"
61
42
  >
43
+ {{ defaultLanguage$ | async }}
44
+ </a>
45
+ <div
46
+ class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
47
+ aria-labelledby="dropdownMenuLink"
48
+ [class.d-block]="smallScreen && languageDropdown.isOpen()"
49
+ >
50
+ @for (lang of dropdownLanguages$ | async; track $index) {
51
+ <a
52
+ href="javascript:void(0)"
53
+ class="dropdown-item"
54
+ (click)="onChangeLang(lang.cultureName || '')"
55
+ >{{ lang?.displayName }}</a
56
+ >
57
+ }
58
+ </div>
62
59
  </div>
63
- </div>
64
- `, isInline: true, 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: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
60
+ }
61
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i2.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
65
62
  }
66
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LanguagesComponent, decorators: [{
67
64
  type: Component,
68
65
  args: [{
69
66
  selector: 'abp-languages',
70
67
  template: `
71
- <div
72
- *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
73
- class="dropdown"
74
- ngbDropdown
75
- #languageDropdown="ngbDropdown"
76
- display="static"
77
- >
78
- <a
79
- ngbDropdownToggle
80
- class="nav-link"
81
- href="javascript:void(0)"
82
- role="button"
83
- id="dropdownMenuLink"
84
- data-toggle="dropdown"
85
- aria-haspopup="true"
86
- aria-expanded="false"
87
- >
88
- {{ defaultLanguage$ | async }}
89
- </a>
90
- <div
91
- class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
92
- aria-labelledby="dropdownMenuLink"
93
- [class.d-block]="smallScreen && languageDropdown.isOpen()"
94
- >
68
+ @if (((dropdownLanguages$ | async)?.length || 0) > 0) {
69
+ <div class="dropdown" ngbDropdown #languageDropdown="ngbDropdown" display="static">
95
70
  <a
96
- *ngFor="let lang of dropdownLanguages$ | async"
71
+ ngbDropdownToggle
72
+ class="nav-link"
97
73
  href="javascript:void(0)"
98
- class="dropdown-item"
99
- (click)="onChangeLang(lang.cultureName || '')"
100
- >{{ lang?.displayName }}</a
74
+ role="button"
75
+ id="dropdownMenuLink"
76
+ data-toggle="dropdown"
77
+ aria-haspopup="true"
78
+ aria-expanded="false"
79
+ >
80
+ {{ defaultLanguage$ | async }}
81
+ </a>
82
+ <div
83
+ class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
84
+ aria-labelledby="dropdownMenuLink"
85
+ [class.d-block]="smallScreen && languageDropdown.isOpen()"
101
86
  >
87
+ @for (lang of dropdownLanguages$ | async; track $index) {
88
+ <a
89
+ href="javascript:void(0)"
90
+ class="dropdown-item"
91
+ (click)="onChangeLang(lang.cultureName || '')"
92
+ >{{ lang?.displayName }}</a
93
+ >
94
+ }
95
+ </div>
102
96
  </div>
103
- </div>
97
+ }
104
98
  `,
105
99
  }]
106
100
  }], ctorParameters: () => [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbGFuZ3VhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQXdDckMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJLFdBQVc7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFJRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQ0QsU0FBUyxDQUFDLEVBQUUsQ0FDVixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUM1RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUNELFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUM1RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFvQixZQUFpQyxFQUFVLFdBQStCO1FBQTFFLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQXZCOUYsZUFBVSxHQUErQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBdUJJLENBQUM7SUFFbEcsWUFBWSxDQUFDLFdBQW1CO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBaENVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHFEQXBDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7OzJGQUVVLGtCQUFrQjtrQkF0QzlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSwgTGFuZ3VhZ2VJbmZvLCBTZXNzaW9uU3RhdGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbGFuZ3VhZ2VzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIigoZHJvcGRvd25MYW5ndWFnZXMkIHwgYXN5bmMpPy5sZW5ndGggfHwgMCkgPiAwXCJcclxuICAgICAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgICAgIG5nYkRyb3Bkb3duXHJcbiAgICAgICNsYW5ndWFnZURyb3Bkb3duPVwibmdiRHJvcGRvd25cIlxyXG4gICAgICBkaXNwbGF5PVwic3RhdGljXCJcclxuICAgID5cclxuICAgICAgPGFcclxuICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIlxyXG4gICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgIGlkPVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBkZWZhdWx0TGFuZ3VhZ2UkIHwgYXN5bmMgfX1cclxuICAgICAgPC9hPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtZW5kIGJvcmRlci0wIHNoYWRvdy1zbVwiXHJcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic21hbGxTY3JlZW4gJiYgbGFuZ3VhZ2VEcm9wZG93bi5pc09wZW4oKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhbmcgb2YgZHJvcGRvd25MYW5ndWFnZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlTGFuZyhsYW5nLmN1bHR1cmVOYW1lIHx8ICcnKVwiXHJcbiAgICAgICAgICA+e3sgbGFuZz8uZGlzcGxheU5hbWUgfX08L2FcclxuICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExhbmd1YWdlc0NvbXBvbmVudCB7XHJcbiAgZ2V0IHNtYWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgOTkyO1xyXG4gIH1cclxuXHJcbiAgbGFuZ3VhZ2VzJDogT2JzZXJ2YWJsZTxMYW5ndWFnZUluZm9bXT4gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAkKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJyk7XHJcblxyXG4gIGdldCBkZWZhdWx0TGFuZ3VhZ2UkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXMkLnBpcGUoXHJcbiAgICAgIG1hcChcclxuICAgICAgICBsYW5ndWFnZXMgPT5cclxuICAgICAgICAgIGxhbmd1YWdlcz8uZmluZChsYW5nID0+IGxhbmcuY3VsdHVyZU5hbWUgPT09IHRoaXMuc2VsZWN0ZWRMYW5nQ3VsdHVyZSk/LmRpc3BsYXlOYW1lIHx8ICcnLFxyXG4gICAgICApLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBkcm9wZG93bkxhbmd1YWdlcyQoKTogT2JzZXJ2YWJsZTxMYW5ndWFnZUluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzJC5waXBlKFxyXG4gICAgICBtYXAoXHJcbiAgICAgICAgbGFuZ3VhZ2VzID0+IGxhbmd1YWdlcz8uZmlsdGVyKGxhbmcgPT4gbGFuZy5jdWx0dXJlTmFtZSAhPT0gdGhpcy5zZWxlY3RlZExhbmdDdWx0dXJlKSB8fCBbXSxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRMYW5nQ3VsdHVyZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlc3Npb25TdGF0ZTogU2Vzc2lvblN0YXRlU2VydmljZSwgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICBvbkNoYW5nZUxhbmcoY3VsdHVyZU5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuc2V0TGFuZ3VhZ2UoY3VsdHVyZU5hbWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbGFuZ3VhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQXFDckMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJLFdBQVc7UUFDYixPQUFPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFJRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQ0QsU0FBUyxDQUFDLEVBQUUsQ0FDVixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUM1RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUNELFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUM1RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUNVLFlBQWlDLEVBQ2pDLFdBQStCO1FBRC9CLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUF6QnpDLGVBQVUsR0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQTBCMUYsQ0FBQztJQUVKLFlBQVksQ0FBQyxXQUFtQjtRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQW5DVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixxREFqQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzsyRkFFVSxrQkFBa0I7a0JBbkM5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIExhbmd1YWdlSW5mbywgU2Vzc2lvblN0YXRlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWxhbmd1YWdlcycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIEBpZiAoKChkcm9wZG93bkxhbmd1YWdlcyQgfCBhc3luYyk/Lmxlbmd0aCB8fCAwKSA+IDApIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duXCIgbmdiRHJvcGRvd24gI2xhbmd1YWdlRHJvcGRvd249XCJuZ2JEcm9wZG93blwiIGRpc3BsYXk9XCJzdGF0aWNcIj5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgbmdiRHJvcGRvd25Ub2dnbGVcclxuICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIlxyXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGlkPVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgZGVmYXVsdExhbmd1YWdlJCB8IGFzeW5jIH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LWVuZCBib3JkZXItMCBzaGFkb3ctc21cIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25NZW51TGlua1wiXHJcbiAgICAgICAgICBbY2xhc3MuZC1ibG9ja109XCJzbWFsbFNjcmVlbiAmJiBsYW5ndWFnZURyb3Bkb3duLmlzT3BlbigpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBAZm9yIChsYW5nIG9mIGRyb3Bkb3duTGFuZ3VhZ2VzJCB8IGFzeW5jOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNoYW5nZUxhbmcobGFuZy5jdWx0dXJlTmFtZSB8fCAnJylcIlxyXG4gICAgICAgICAgICAgID57eyBsYW5nPy5kaXNwbGF5TmFtZSB9fTwvYVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZXNDb21wb25lbnQge1xyXG4gIGdldCBzbWFsbFNjcmVlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8IDk5MjtcclxuICB9XHJcblxyXG4gIGxhbmd1YWdlcyQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VJbmZvW10+ID0gdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwJCgnbG9jYWxpemF0aW9uLmxhbmd1YWdlcycpO1xyXG5cclxuICBnZXQgZGVmYXVsdExhbmd1YWdlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzJC5waXBlKFxyXG4gICAgICBtYXAoXHJcbiAgICAgICAgbGFuZ3VhZ2VzID0+XHJcbiAgICAgICAgICBsYW5ndWFnZXM/LmZpbmQobGFuZyA9PiBsYW5nLmN1bHR1cmVOYW1lID09PSB0aGlzLnNlbGVjdGVkTGFuZ0N1bHR1cmUpPy5kaXNwbGF5TmFtZSB8fCAnJyxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgZHJvcGRvd25MYW5ndWFnZXMkKCk6IE9ic2VydmFibGU8TGFuZ3VhZ2VJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcyQucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIGxhbmd1YWdlcyA9PiBsYW5ndWFnZXM/LmZpbHRlcihsYW5nID0+IGxhbmcuY3VsdHVyZU5hbWUgIT09IHRoaXMuc2VsZWN0ZWRMYW5nQ3VsdHVyZSkgfHwgW10sXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkTGFuZ0N1bHR1cmUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdGF0ZTogU2Vzc2lvblN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG9uQ2hhbmdlTGFuZyhjdWx0dXJlTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdGF0ZS5zZXRMYW5ndWFnZShjdWx0dXJlTmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -10,10 +10,10 @@ export class NavItemsComponent {
10
10
  this.trackByFn = (_, element) => element.id;
11
11
  }
12
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0, template: "<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container \r\n \r\n *ngIf=\"item.component; else htmlTemplate\" \r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n \r\n <ng-template #htmlTemplate>\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n</ul>", dependencies: [{ kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { 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: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i1.AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ToInjectorPipe, name: "toInjector" }] }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: NavItemsComponent, selector: "abp-nav-items", ngImport: i0, template: "<ul class=\"navbar-nav\">\r\n @for (item of navItems.items$ | async; track $index) {\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n @if (item.component) {\r\n <ng-container\r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n } @else {\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n }\r\n </li>\r\n </ng-container>\r\n }\r\n</ul>\r\n", dependencies: [{ kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i1.AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.ToInjectorPipe, name: "toInjector" }] }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NavItemsComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'abp-nav-items', template: "<ul class=\"navbar-nav\">\r\n <ng-container *ngFor=\"let item of navItems.items$ | async; trackBy: trackByFn\">\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n <ng-container \r\n \r\n *ngIf=\"item.component; else htmlTemplate\" \r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n \r\n <ng-template #htmlTemplate>\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n</ul>" }]
17
+ args: [{ selector: 'abp-nav-items', template: "<ul class=\"navbar-nav\">\r\n @for (item of navItems.items$ | async; track $index) {\r\n <ng-container *abpVisible=\"!item.visible || item.visible(item)\">\r\n <li class=\"nav-item d-flex align-items-center\" *abpPermission=\"item.requiredPolicy\">\r\n @if (item.component) {\r\n <ng-container\r\n [ngComponentOutlet]=\"item.component\"\r\n [ngComponentOutletInjector]=\"item | toInjector\"\r\n ></ng-container>\r\n } @else {\r\n <div [innerHTML]=\"item.html\" (click)=\"item.action ? item.action() : null\"></div>\r\n }\r\n </li>\r\n </ng-container>\r\n }\r\n</ul>\r\n" }]
18
18
  }], ctorParameters: () => [{ type: i1.NavItemsService }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUEwQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUE0QixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUZyRCxjQUFTLEdBQTZCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUVULENBQUM7OEdBSDlDLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFEQ1A5Qixpd0JBaUJLOzsyRkRWUSxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdkl0ZW0sIE5hdkl0ZW1zU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1uYXYtaXRlbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdkl0ZW1zQ29tcG9uZW50IHtcclxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxOYXZJdGVtPiA9IChfLCBlbGVtZW50KSA9PiBlbGVtZW50LmlkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbmF2SXRlbXM6IE5hdkl0ZW1zU2VydmljZSkge31cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuYXZJdGVtcy5pdGVtcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XHJcbiAgICA8bmctY29udGFpbmVyICAqYWJwVmlzaWJsZT1cIiFpdGVtLnZpc2libGUgfHwgaXRlbS52aXNpYmxlKGl0ZW0pXCI+XHJcbiAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqYWJwUGVybWlzc2lvbj1cIml0ZW0ucmVxdWlyZWRQb2xpY3lcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFxyXG4gICAgICAgIFxyXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNvbXBvbmVudDsgZWxzZSBodG1sVGVtcGxhdGVcIiBcclxuICAgICAgICAgIFtuZ0NvbXBvbmVudE91dGxldF09XCJpdGVtLmNvbXBvbmVudFwiXHJcbiAgICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRJbmplY3Rvcl09XCJpdGVtIHwgdG9JbmplY3RvclwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaHRtbFRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW0uaHRtbFwiIChjbGljayk9XCJpdGVtLmFjdGlvbiA/IGl0ZW0uYWN0aW9uKCkgOiBudWxsXCI+PC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9saT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3VsPiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUEwQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUE0QixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUZyRCxjQUFTLEdBQTZCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUVULENBQUM7OEdBSDlDLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFEQ1A5QixtcEJBZ0JBOzsyRkRUYSxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdkl0ZW0sIE5hdkl0ZW1zU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1uYXYtaXRlbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdkl0ZW1zQ29tcG9uZW50IHtcclxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxOYXZJdGVtPiA9IChfLCBlbGVtZW50KSA9PiBlbGVtZW50LmlkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbmF2SXRlbXM6IE5hdkl0ZW1zU2VydmljZSkge31cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgQGZvciAoaXRlbSBvZiBuYXZJdGVtcy5pdGVtcyQgfCBhc3luYzsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICA8bmctY29udGFpbmVyICphYnBWaXNpYmxlPVwiIWl0ZW0udmlzaWJsZSB8fCBpdGVtLnZpc2libGUoaXRlbSlcIj5cclxuICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICphYnBQZXJtaXNzaW9uPVwiaXRlbS5yZXF1aXJlZFBvbGljeVwiPlxyXG4gICAgICAgIEBpZiAoaXRlbS5jb21wb25lbnQpIHtcclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0XT1cIml0ZW0uY29tcG9uZW50XCJcclxuICAgICAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0SW5qZWN0b3JdPVwiaXRlbSB8IHRvSW5qZWN0b3JcIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW0uaHRtbFwiIChjbGljayk9XCJpdGVtLmFjdGlvbiA/IGl0ZW0uYWN0aW9uKCkgOiBudWxsXCI+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgfVxyXG48L3VsPlxyXG4iXX0=
@@ -9,10 +9,10 @@ export class PageAlertContainerComponent {
9
9
  this.service = service;
10
10
  }
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PageAlertContainerComponent, deps: [{ token: i1.PageAlertService }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n <h4\r\n class=\"alert-heading\"\r\n *ngIf=\"alert.title\"\r\n [innerHTML]=\"alert.title | abpSafeHtml | abpLocalization: alert.titleLocalizationParams\"\r\n ></h4>\r\n <span\r\n [innerHTML]=\"alert.message | abpSafeHtml | abpLocalization: alert.messageLocalizationParams\"\r\n ></span>\r\n <button\r\n *ngIf=\"alert.dismissible\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\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: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i3.SafeHtmlPipe, name: "abpSafeHtml" }], encapsulation: i0.ViewEncapsulation.None }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PageAlertContainerComponent, selector: "abp-page-alert-container", ngImport: i0, template: "@for (alert of service.alerts$ | async; track i; let i = $index) {\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n @if (alert.title) {\r\n <h4\r\n class=\"alert-heading\"\r\n [innerHTML]=\"alert.title | abpSafeHtml | abpLocalization: alert.titleLocalizationParams\"\r\n ></h4>\r\n }\r\n <span\r\n [innerHTML]=\"alert.message | abpSafeHtml | abpLocalization: alert.messageLocalizationParams\"\r\n ></span>\r\n @if (alert.dismissible) {\r\n <button\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n }\r\n </div>\r\n}\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i3.SafeHtmlPipe, name: "abpSafeHtml" }], encapsulation: i0.ViewEncapsulation.None }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PageAlertContainerComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'abp-page-alert-container', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngFor=\"let alert of service.alerts$ | async; let i = index\">\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n <h4\r\n class=\"alert-heading\"\r\n *ngIf=\"alert.title\"\r\n [innerHTML]=\"alert.title | abpSafeHtml | abpLocalization: alert.titleLocalizationParams\"\r\n ></h4>\r\n <span\r\n [innerHTML]=\"alert.message | abpSafeHtml | abpLocalization: alert.messageLocalizationParams\"\r\n ></span>\r\n <button\r\n *ngIf=\"alert.dismissible\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n </div>\r\n</ng-container>\r\n" }]
16
+ args: [{ selector: 'abp-page-alert-container', encapsulation: ViewEncapsulation.None, template: "@for (alert of service.alerts$ | async; track i; let i = $index) {\r\n <div\r\n class=\"alert alert-{{ alert.type }} fade show\"\r\n [ngClass]=\"{ 'alert-dismissible fade show': alert.dismissible }\"\r\n role=\"alert\"\r\n >\r\n @if (alert.title) {\r\n <h4\r\n class=\"alert-heading\"\r\n [innerHTML]=\"alert.title | abpSafeHtml | abpLocalization: alert.titleLocalizationParams\"\r\n ></h4>\r\n }\r\n <span\r\n [innerHTML]=\"alert.message | abpSafeHtml | abpLocalization: alert.messageLocalizationParams\"\r\n ></span>\r\n @if (alert.dismissible) {\r\n <button\r\n type=\"button\"\r\n class=\"btn-close\"\r\n data-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n (click)=\"service.remove(i)\"\r\n ></button>\r\n }\r\n </div>\r\n}\r\n" }]
17
17
  }], ctorParameters: () => [{ type: i1.PageAlertService }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1hbGVydC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtYWxlcnQtY29udGFpbmVyL3BhZ2UtYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWFsZXJ0LWNvbnRhaW5lci9wYWdlLWFsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU94RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQW1CLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQzs4R0FEckMsMkJBQTJCO2tHQUEzQiwyQkFBMkIsZ0VDUnhDLDh6QkF3QkE7OzJGRGhCYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGlCQUVyQixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdlQWxlcnRTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtcGFnZS1hbGVydC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLWFsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VBbGVydENvbnRhaW5lckNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IFBhZ2VBbGVydFNlcnZpY2UpIHt9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWxlcnQgb2Ygc2VydmljZS5hbGVydHMkIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LXt7IGFsZXJ0LnR5cGUgfX0gZmFkZSBzaG93XCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2FsZXJ0LWRpc21pc3NpYmxlIGZhZGUgc2hvdyc6IGFsZXJ0LmRpc21pc3NpYmxlIH1cIlxyXG4gICAgcm9sZT1cImFsZXJ0XCJcclxuICA+XHJcbiAgICA8aDRcclxuICAgICAgY2xhc3M9XCJhbGVydC1oZWFkaW5nXCJcclxuICAgICAgKm5nSWY9XCJhbGVydC50aXRsZVwiXHJcbiAgICAgIFtpbm5lckhUTUxdPVwiYWxlcnQudGl0bGUgfCBhYnBTYWZlSHRtbCB8IGFicExvY2FsaXphdGlvbjogYWxlcnQudGl0bGVMb2NhbGl6YXRpb25QYXJhbXNcIlxyXG4gICAgPjwvaDQ+XHJcbiAgICA8c3BhblxyXG4gICAgICBbaW5uZXJIVE1MXT1cImFsZXJ0Lm1lc3NhZ2UgfCBhYnBTYWZlSHRtbCB8IGFicExvY2FsaXphdGlvbjogYWxlcnQubWVzc2FnZUxvY2FsaXphdGlvblBhcmFtc1wiXHJcbiAgICA+PC9zcGFuPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cImFsZXJ0LmRpc21pc3NpYmxlXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiYnRuLWNsb3NlXCJcclxuICAgICAgZGF0YS1kaXNtaXNzPVwiYWxlcnRcIlxyXG4gICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxyXG4gICAgICAoY2xpY2spPVwic2VydmljZS5yZW1vdmUoaSlcIlxyXG4gICAgPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1hbGVydC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtYWxlcnQtY29udGFpbmVyL3BhZ2UtYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWFsZXJ0LWNvbnRhaW5lci9wYWdlLWFsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU94RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQW1CLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQzs4R0FEckMsMkJBQTJCO2tHQUEzQiwyQkFBMkIsZ0VDUnhDLHEwQkEwQkE7OzJGRGxCYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGlCQUVyQixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdlQWxlcnRTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtcGFnZS1hbGVydC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLWFsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VBbGVydENvbnRhaW5lckNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IFBhZ2VBbGVydFNlcnZpY2UpIHt9XHJcbn1cclxuIiwiQGZvciAoYWxlcnQgb2Ygc2VydmljZS5hbGVydHMkIHwgYXN5bmM7IHRyYWNrIGk7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhbGVydCBhbGVydC17eyBhbGVydC50eXBlIH19IGZhZGUgc2hvd1wiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdhbGVydC1kaXNtaXNzaWJsZSBmYWRlIHNob3cnOiBhbGVydC5kaXNtaXNzaWJsZSB9XCJcclxuICAgIHJvbGU9XCJhbGVydFwiXHJcbiAgPlxyXG4gICAgQGlmIChhbGVydC50aXRsZSkge1xyXG4gICAgICA8aDRcclxuICAgICAgICBjbGFzcz1cImFsZXJ0LWhlYWRpbmdcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwiYWxlcnQudGl0bGUgfCBhYnBTYWZlSHRtbCB8IGFicExvY2FsaXphdGlvbjogYWxlcnQudGl0bGVMb2NhbGl6YXRpb25QYXJhbXNcIlxyXG4gICAgICA+PC9oND5cclxuICAgIH1cclxuICAgIDxzcGFuXHJcbiAgICAgIFtpbm5lckhUTUxdPVwiYWxlcnQubWVzc2FnZSB8IGFicFNhZmVIdG1sIHwgYWJwTG9jYWxpemF0aW9uOiBhbGVydC5tZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zXCJcclxuICAgID48L3NwYW4+XHJcbiAgICBAaWYgKGFsZXJ0LmRpc21pc3NpYmxlKSB7XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1jbG9zZVwiXHJcbiAgICAgICAgZGF0YS1kaXNtaXNzPVwiYWxlcnRcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlcnZpY2UucmVtb3ZlKGkpXCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
@@ -22,15 +22,15 @@ export class RoutesComponent {
22
22
  });
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RoutesComponent, deps: [{ token: i1.RoutesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: RoutesComponent, selector: "abp-routes", inputs: { smallScreen: "smallScreen" }, viewQueries: [{ propertyName: "childrenContainers", predicate: ["childrenContainer"], descendants: true }], ngImport: i0, template: "<ul class=\"navbar-nav\">\r\n <ng-container\r\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\r\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\r\n >\r\n </ng-container>\r\n\r\n <ng-template #defaultLink let-route>\r\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\r\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\r\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}</a\r\n >\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #dropdownLink let-route>\r\n <ng-container *ngIf=\"route.children?.length\">\r\n <li\r\n class=\"nav-item dropdown\"\r\n display=\"static\"\r\n *abpPermission=\"route.requiredPolicy\"\r\n (click)=\"\r\n rootDropdownExpand[route.name]\r\n ? (rootDropdownExpand[route.name] = false)\r\n : (rootDropdownExpand[route.name] = true)\r\n \"\r\n >\r\n <a\r\n class=\"nav-link dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n href=\"javascript:void(0)\"\r\n >\r\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n <div\r\n #routeContainer\r\n class=\"dropdown-menu border-0 shadow-sm\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n [class.d-block]=\"smallScreen && rootDropdownExpand[route.name]\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\r\n ></ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #forTemplate let-route>\r\n <ng-container *ngFor=\"let child of route.children\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #defaultChild let-child>\r\n <ng-container *ngIf=\"child.path\">\r\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\r\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}</a\r\n >\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #dropdownChild let-child>\r\n <div\r\n class=\"dropdown-submenu\"\r\n ngbDropdown\r\n #dropdownSubmenu=\"ngbDropdown\"\r\n placement=\"right-top\"\r\n [autoClose]=\"true\"\r\n *abpPermission=\"child.requiredPolicy\"\r\n >\r\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\r\n <a\r\n abpEllipsis=\"210px\"\r\n [abpEllipsisEnabled]=\"!smallScreen\"\r\n role=\"button\"\r\n class=\"btn d-block text-start dropdown-toggle\"\r\n >\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}\r\n </a>\r\n </div>\r\n <div\r\n #childrenContainer\r\n class=\"dropdown-menu dropdown-menu-start border-0 shadow-sm\"\r\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ul>\r\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: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: RoutesComponent, selector: "abp-routes", inputs: { smallScreen: "smallScreen" }, viewQueries: [{ propertyName: "childrenContainers", predicate: ["childrenContainer"], descendants: true }], ngImport: i0, template: "<ul class=\"navbar-nav\">\r\n @for (route of routesService.visible$ | async; track $index) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\r\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\r\n >\r\n </ng-container>\r\n }\r\n\r\n <ng-template #defaultLink let-route>\r\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\r\n <a class=\"nav-link\" [routerLink]=\"[route.path]\">\r\n @if (route.iconClass) {\r\n <i [ngClass]=\"route.iconClass\"></i>\r\n }\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #dropdownLink let-route>\r\n @if (route.children?.length) {\r\n <li\r\n class=\"nav-item dropdown\"\r\n display=\"static\"\r\n *abpPermission=\"route.requiredPolicy\"\r\n (click)=\"\r\n rootDropdownExpand[route.name]\r\n ? (rootDropdownExpand[route.name] = false)\r\n : (rootDropdownExpand[route.name] = true)\r\n \"\r\n >\r\n <a\r\n class=\"nav-link dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n href=\"javascript:void(0)\"\r\n >\r\n @if (route.iconClass) {\r\n <i [ngClass]=\"route.iconClass\"></i>\r\n }\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n <div\r\n #routeContainer\r\n class=\"dropdown-menu border-0 shadow-sm\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n [class.d-block]=\"smallScreen && rootDropdownExpand[route.name]\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\r\n ></ng-container>\r\n </div>\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #forTemplate let-route>\r\n @for (child of route.children; track $index) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\r\n ></ng-template>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultChild let-child>\r\n @if (child.path) {\r\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\r\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\r\n @if (child.iconClass) {\r\n <i [ngClass]=\"child.iconClass\"></i>\r\n }\r\n {{ child.name | abpLocalization }}</a\r\n >\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #dropdownChild let-child>\r\n <div\r\n class=\"dropdown-submenu\"\r\n ngbDropdown\r\n #dropdownSubmenu=\"ngbDropdown\"\r\n placement=\"right-top\"\r\n [autoClose]=\"true\"\r\n *abpPermission=\"child.requiredPolicy\"\r\n >\r\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\r\n <a\r\n abpEllipsis=\"210px\"\r\n [abpEllipsisEnabled]=\"!smallScreen\"\r\n role=\"button\"\r\n class=\"btn d-block text-start dropdown-toggle\"\r\n >\r\n @if (child.iconClass) {\r\n <i [ngClass]=\"child.iconClass\"></i>\r\n }\r\n {{ child.name | abpLocalization }}\r\n </a>\r\n </div>\r\n <div\r\n #childrenContainer\r\n class=\"dropdown-menu dropdown-menu-start border-0 shadow-sm\"\r\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ul>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RoutesComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ selector: 'abp-routes', template: "<ul class=\"navbar-nav\">\r\n <ng-container\r\n *ngFor=\"let route of routesService.visible$ | async; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\r\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\r\n >\r\n </ng-container>\r\n\r\n <ng-template #defaultLink let-route>\r\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\r\n <a class=\"nav-link\" [routerLink]=\"[route.path]\"\r\n ><i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}</a\r\n >\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #dropdownLink let-route>\r\n <ng-container *ngIf=\"route.children?.length\">\r\n <li\r\n class=\"nav-item dropdown\"\r\n display=\"static\"\r\n *abpPermission=\"route.requiredPolicy\"\r\n (click)=\"\r\n rootDropdownExpand[route.name]\r\n ? (rootDropdownExpand[route.name] = false)\r\n : (rootDropdownExpand[route.name] = true)\r\n \"\r\n >\r\n <a\r\n class=\"nav-link dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n href=\"javascript:void(0)\"\r\n >\r\n <i *ngIf=\"route.iconClass\" [ngClass]=\"route.iconClass\"></i>\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n <div\r\n #routeContainer\r\n class=\"dropdown-menu border-0 shadow-sm\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n [class.d-block]=\"smallScreen && rootDropdownExpand[route.name]\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\r\n ></ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #forTemplate let-route>\r\n <ng-container *ngFor=\"let child of route.children\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\r\n ></ng-template>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #defaultChild let-child>\r\n <ng-container *ngIf=\"child.path\">\r\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\r\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}</a\r\n >\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #dropdownChild let-child>\r\n <div\r\n class=\"dropdown-submenu\"\r\n ngbDropdown\r\n #dropdownSubmenu=\"ngbDropdown\"\r\n placement=\"right-top\"\r\n [autoClose]=\"true\"\r\n *abpPermission=\"child.requiredPolicy\"\r\n >\r\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\r\n <a\r\n abpEllipsis=\"210px\"\r\n [abpEllipsisEnabled]=\"!smallScreen\"\r\n role=\"button\"\r\n class=\"btn d-block text-start dropdown-toggle\"\r\n >\r\n <i *ngIf=\"child.iconClass\" [ngClass]=\"child.iconClass\"></i>\r\n {{ child.name | abpLocalization }}\r\n </a>\r\n </div>\r\n <div\r\n #childrenContainer\r\n class=\"dropdown-menu dropdown-menu-start border-0 shadow-sm\"\r\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ul>\r\n" }]
29
+ args: [{ selector: 'abp-routes', template: "<ul class=\"navbar-nav\">\r\n @for (route of routesService.visible$ | async; track $index) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"isDropdown(route) ? dropdownLink : defaultLink\"\r\n [ngTemplateOutletContext]=\"{ $implicit: route }\"\r\n >\r\n </ng-container>\r\n }\r\n\r\n <ng-template #defaultLink let-route>\r\n <li class=\"nav-item\" *abpPermission=\"route.requiredPolicy\">\r\n <a class=\"nav-link\" [routerLink]=\"[route.path]\">\r\n @if (route.iconClass) {\r\n <i [ngClass]=\"route.iconClass\"></i>\r\n }\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #dropdownLink let-route>\r\n @if (route.children?.length) {\r\n <li\r\n class=\"nav-item dropdown\"\r\n display=\"static\"\r\n *abpPermission=\"route.requiredPolicy\"\r\n (click)=\"\r\n rootDropdownExpand[route.name]\r\n ? (rootDropdownExpand[route.name] = false)\r\n : (rootDropdownExpand[route.name] = true)\r\n \"\r\n >\r\n <a\r\n class=\"nav-link dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n href=\"javascript:void(0)\"\r\n >\r\n @if (route.iconClass) {\r\n <i [ngClass]=\"route.iconClass\"></i>\r\n }\r\n {{ route.name | abpLocalization }}\r\n </a>\r\n <div\r\n #routeContainer\r\n class=\"dropdown-menu border-0 shadow-sm\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation()\"\r\n [class.d-block]=\"smallScreen && rootDropdownExpand[route.name]\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"forTemplate; context: { $implicit: route }\"\r\n ></ng-container>\r\n </div>\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #forTemplate let-route>\r\n @for (child of route.children; track $index) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"child.children?.length ? dropdownChild : defaultChild\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\r\n ></ng-template>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultChild let-child>\r\n @if (child.path) {\r\n <div class=\"dropdown-submenu\" *abpPermission=\"child.requiredPolicy\">\r\n <a class=\"dropdown-item\" [routerLink]=\"[child.path]\" (click)=\"closeDropdown()\">\r\n @if (child.iconClass) {\r\n <i [ngClass]=\"child.iconClass\"></i>\r\n }\r\n {{ child.name | abpLocalization }}</a\r\n >\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #dropdownChild let-child>\r\n <div\r\n class=\"dropdown-submenu\"\r\n ngbDropdown\r\n #dropdownSubmenu=\"ngbDropdown\"\r\n placement=\"right-top\"\r\n [autoClose]=\"true\"\r\n *abpPermission=\"child.requiredPolicy\"\r\n >\r\n <div ngbDropdownToggle [class.dropdown-toggle]=\"false\">\r\n <a\r\n abpEllipsis=\"210px\"\r\n [abpEllipsisEnabled]=\"!smallScreen\"\r\n role=\"button\"\r\n class=\"btn d-block text-start dropdown-toggle\"\r\n >\r\n @if (child.iconClass) {\r\n <i [ngClass]=\"child.iconClass\"></i>\r\n }\r\n {{ child.name | abpLocalization }}\r\n </a>\r\n </div>\r\n <div\r\n #childrenContainer\r\n class=\"dropdown-menu dropdown-menu-start border-0 shadow-sm\"\r\n [class.d-block]=\"smallScreen && dropdownSubmenu.isOpen()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"forTemplate; context: { $implicit: child }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ul>\r\n" }]
30
30
  }], ctorParameters: () => [{ type: i1.RoutesService }, { type: i0.Renderer2 }], propDecorators: { smallScreen: [{
31
31
  type: Input
32
32
  }], childrenContainers: [{
33
33
  type: ViewChildren,
34
34
  args: ['childrenContainer']
35
35
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxhQUFhLEVBQVksTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU12QixNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUE0QixhQUE0QixFQUFZLFFBQW1CO1FBQTNELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVksYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp2Rix1QkFBa0IsR0FBRyxFQUFnQyxDQUFDO1FBRXRELGNBQVMsR0FBeUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBRWlCLENBQUM7SUFFM0YsVUFBVSxDQUFDLElBQXlCO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXBCVSxlQUFlO2tHQUFmLGVBQWUsc01DZjVCLDZ1SEF1R0E7OzJGRHhGYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLFlBQVk7MEdBSWIsV0FBVztzQkFBbkIsS0FBSztnQkFFNkIsa0JBQWtCO3NCQUFwRCxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgUm91dGVzU2VydmljZSwgVHJlZU5vZGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXJvdXRlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICdyb3V0ZXMuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm91dGVzQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzbWFsbFNjcmVlbj86IGJvb2xlYW47XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2NoaWxkcmVuQ29udGFpbmVyJykgY2hpbGRyZW5Db250YWluZXJzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcclxuXHJcbiAgcm9vdERyb3Bkb3duRXhwYW5kID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XHJcblxyXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFRyZWVOb2RlPEFCUC5Sb3V0ZT4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJvdXRlc1NlcnZpY2U6IFJvdXRlc1NlcnZpY2UsIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG5cclxuICBpc0Ryb3Bkb3duKG5vZGU6IFRyZWVOb2RlPEFCUC5Sb3V0ZT4pIHtcclxuICAgIHJldHVybiAhbm9kZT8uaXNMZWFmIHx8IHRoaXMucm91dGVzU2VydmljZS5oYXNDaGlsZHJlbihub2RlLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wZG93bigpIHtcclxuICAgIHRoaXMuY2hpbGRyZW5Db250YWluZXJzLmZvckVhY2goKHsgbmF0aXZlRWxlbWVudCB9KSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobmF0aXZlRWxlbWVudCwgJ2Qtbm9uZScpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWxlbWVudCwgJ2Qtbm9uZScpLCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nRm9yPVwibGV0IHJvdXRlIG9mIHJvdXRlc1NlcnZpY2UudmlzaWJsZSQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlzRHJvcGRvd24ocm91dGUpID8gZHJvcGRvd25MaW5rIDogZGVmYXVsdExpbmtcIlxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3V0ZSB9XCJcclxuICA+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExpbmsgbGV0LXJvdXRlPlxyXG4gICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqYWJwUGVybWlzc2lvbj1cInJvdXRlLnJlcXVpcmVkUG9saWN5XCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbcm91dGVyTGlua109XCJbcm91dGUucGF0aF1cIlxyXG4gICAgICAgID48aSAqbmdJZj1cInJvdXRlLmljb25DbGFzc1wiIFtuZ0NsYXNzXT1cInJvdXRlLmljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICB7eyByb3V0ZS5uYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICAgID5cclxuICAgIDwvbGk+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkxpbmsgbGV0LXJvdXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdXRlLmNoaWxkcmVuPy5sZW5ndGhcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgY2xhc3M9XCJuYXYtaXRlbSBkcm9wZG93blwiXHJcbiAgICAgICAgZGlzcGxheT1cInN0YXRpY1wiXHJcbiAgICAgICAgKmFicFBlcm1pc3Npb249XCJyb3V0ZS5yZXF1aXJlZFBvbGljeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgcm9vdERyb3Bkb3duRXhwYW5kW3JvdXRlLm5hbWVdXHJcbiAgICAgICAgICAgID8gKHJvb3REcm9wZG93bkV4cGFuZFtyb3V0ZS5uYW1lXSA9IGZhbHNlKVxyXG4gICAgICAgICAgICA6IChyb290RHJvcGRvd25FeHBhbmRbcm91dGUubmFtZV0gPSB0cnVlKVxyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBkcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGkgKm5nSWY9XCJyb3V0ZS5pY29uQ2xhc3NcIiBbbmdDbGFzc109XCJyb3V0ZS5pY29uQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICB7eyByb3V0ZS5uYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICNyb3V0ZUNvbnRhaW5lclxyXG4gICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGJvcmRlci0wIHNoYWRvdy1zbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICBbY2xhc3MuZC1ibG9ja109XCJzbWFsbFNjcmVlbiAmJiByb290RHJvcGRvd25FeHBhbmRbcm91dGUubmFtZV1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdXRlIH1cIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNmb3JUZW1wbGF0ZSBsZXQtcm91dGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiByb3V0ZS5jaGlsZHJlblwiPlxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlsZC5jaGlsZHJlbj8ubGVuZ3RoID8gZHJvcGRvd25DaGlsZCA6IGRlZmF1bHRDaGlsZFwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCJcclxuICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDaGlsZCBsZXQtY2hpbGQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hpbGQucGF0aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc3VibWVudVwiICphYnBQZXJtaXNzaW9uPVwiY2hpbGQucmVxdWlyZWRQb2xpY3lcIj5cclxuICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBbcm91dGVyTGlua109XCJbY2hpbGQucGF0aF1cIiAoY2xpY2spPVwiY2xvc2VEcm9wZG93bigpXCI+XHJcbiAgICAgICAgICA8aSAqbmdJZj1cImNoaWxkLmljb25DbGFzc1wiIFtuZ0NsYXNzXT1cImNoaWxkLmljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICAgIHt7IGNoaWxkLm5hbWUgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FcclxuICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkNoaWxkIGxldC1jaGlsZD5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1zdWJtZW51XCJcclxuICAgICAgbmdiRHJvcGRvd25cclxuICAgICAgI2Ryb3Bkb3duU3VibWVudT1cIm5nYkRyb3Bkb3duXCJcclxuICAgICAgcGxhY2VtZW50PVwicmlnaHQtdG9wXCJcclxuICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgKmFicFBlcm1pc3Npb249XCJjaGlsZC5yZXF1aXJlZFBvbGljeVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgbmdiRHJvcGRvd25Ub2dnbGUgW2NsYXNzLmRyb3Bkb3duLXRvZ2dsZV09XCJmYWxzZVwiPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICBhYnBFbGxpcHNpcz1cIjIxMHB4XCJcclxuICAgICAgICAgIFthYnBFbGxpcHNpc0VuYWJsZWRdPVwiIXNtYWxsU2NyZWVuXCJcclxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gZC1ibG9jayB0ZXh0LXN0YXJ0IGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGkgKm5nSWY9XCJjaGlsZC5pY29uQ2xhc3NcIiBbbmdDbGFzc109XCJjaGlsZC5pY29uQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICB7eyBjaGlsZC5uYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICNjaGlsZHJlbkNvbnRhaW5lclxyXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXN0YXJ0IGJvcmRlci0wIHNoYWRvdy1zbVwiXHJcbiAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic21hbGxTY3JlZW4gJiYgZHJvcGRvd25TdWJtZW51LmlzT3BlbigpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaWxkIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3VsPlxyXG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxhQUFhLEVBQVksTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU12QixNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUE0QixhQUE0QixFQUFZLFFBQW1CO1FBQTNELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVksYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp2Rix1QkFBa0IsR0FBRyxFQUFnQyxDQUFDO1FBRXRELGNBQVMsR0FBeUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBRWlCLENBQUM7SUFFM0YsVUFBVSxDQUFDLElBQXlCO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXBCVSxlQUFlO2tHQUFmLGVBQWUsc01DZjVCLHl3SEFnSEE7OzJGRGpHYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLFlBQVk7MEdBSWIsV0FBVztzQkFBbkIsS0FBSztnQkFFNkIsa0JBQWtCO3NCQUFwRCxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgUm91dGVzU2VydmljZSwgVHJlZU5vZGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXJvdXRlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICdyb3V0ZXMuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm91dGVzQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzbWFsbFNjcmVlbj86IGJvb2xlYW47XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2NoaWxkcmVuQ29udGFpbmVyJykgY2hpbGRyZW5Db250YWluZXJzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcclxuXHJcbiAgcm9vdERyb3Bkb3duRXhwYW5kID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XHJcblxyXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFRyZWVOb2RlPEFCUC5Sb3V0ZT4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJvdXRlc1NlcnZpY2U6IFJvdXRlc1NlcnZpY2UsIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG5cclxuICBpc0Ryb3Bkb3duKG5vZGU6IFRyZWVOb2RlPEFCUC5Sb3V0ZT4pIHtcclxuICAgIHJldHVybiAhbm9kZT8uaXNMZWFmIHx8IHRoaXMucm91dGVzU2VydmljZS5oYXNDaGlsZHJlbihub2RlLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wZG93bigpIHtcclxuICAgIHRoaXMuY2hpbGRyZW5Db250YWluZXJzLmZvckVhY2goKHsgbmF0aXZlRWxlbWVudCB9KSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobmF0aXZlRWxlbWVudCwgJ2Qtbm9uZScpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWxlbWVudCwgJ2Qtbm9uZScpLCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgQGZvciAocm91dGUgb2Ygcm91dGVzU2VydmljZS52aXNpYmxlJCB8IGFzeW5jOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXNEcm9wZG93bihyb3V0ZSkgPyBkcm9wZG93bkxpbmsgOiBkZWZhdWx0TGlua1wiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm91dGUgfVwiXHJcbiAgICA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICB9XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExpbmsgbGV0LXJvdXRlPlxyXG4gICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqYWJwUGVybWlzc2lvbj1cInJvdXRlLnJlcXVpcmVkUG9saWN5XCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbcm91dGVyTGlua109XCJbcm91dGUucGF0aF1cIj5cclxuICAgICAgICBAaWYgKHJvdXRlLmljb25DbGFzcykge1xyXG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwicm91dGUuaWNvbkNsYXNzXCI+PC9pPlxyXG4gICAgICAgIH1cclxuICAgICAgICB7eyByb3V0ZS5uYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYT5cclxuICAgIDwvbGk+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkxpbmsgbGV0LXJvdXRlPlxyXG4gICAgQGlmIChyb3V0ZS5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgIDxsaVxyXG4gICAgICAgIGNsYXNzPVwibmF2LWl0ZW0gZHJvcGRvd25cIlxyXG4gICAgICAgIGRpc3BsYXk9XCJzdGF0aWNcIlxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwicm91dGUucmVxdWlyZWRQb2xpY3lcIlxyXG4gICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgIHJvb3REcm9wZG93bkV4cGFuZFtyb3V0ZS5uYW1lXVxyXG4gICAgICAgICAgICA/IChyb290RHJvcGRvd25FeHBhbmRbcm91dGUubmFtZV0gPSBmYWxzZSlcclxuICAgICAgICAgICAgOiAocm9vdERyb3Bkb3duRXhwYW5kW3JvdXRlLm5hbWVdID0gdHJ1ZSlcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEBpZiAocm91dGUuaWNvbkNsYXNzKSB7XHJcbiAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInJvdXRlLmljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHt7IHJvdXRlLm5hbWUgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI3JvdXRlQ29udGFpbmVyXHJcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgYm9yZGVyLTAgc2hhZG93LXNtXCJcclxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgIFtjbGFzcy5kLWJsb2NrXT1cInNtYWxsU2NyZWVuICYmIHJvb3REcm9wZG93bkV4cGFuZFtyb3V0ZS5uYW1lXVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZvclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm91dGUgfVwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbGk+XHJcbiAgICB9XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNmb3JUZW1wbGF0ZSBsZXQtcm91dGU+XHJcbiAgICBAZm9yIChjaGlsZCBvZiByb3V0ZS5jaGlsZHJlbjsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaWxkLmNoaWxkcmVuPy5sZW5ndGggPyBkcm9wZG93bkNoaWxkIDogZGVmYXVsdENoaWxkXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIlxyXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgIH1cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDaGlsZCBsZXQtY2hpbGQ+XHJcbiAgICBAaWYgKGNoaWxkLnBhdGgpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXN1Ym1lbnVcIiAqYWJwUGVybWlzc2lvbj1cImNoaWxkLnJlcXVpcmVkUG9saWN5XCI+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgW3JvdXRlckxpbmtdPVwiW2NoaWxkLnBhdGhdXCIgKGNsaWNrKT1cImNsb3NlRHJvcGRvd24oKVwiPlxyXG4gICAgICAgICAgQGlmIChjaGlsZC5pY29uQ2xhc3MpIHtcclxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiY2hpbGQuaWNvbkNsYXNzXCI+PC9pPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAge3sgY2hpbGQubmFtZSB8IGFicExvY2FsaXphdGlvbiB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkNoaWxkIGxldC1jaGlsZD5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1zdWJtZW51XCJcclxuICAgICAgbmdiRHJvcGRvd25cclxuICAgICAgI2Ryb3Bkb3duU3VibWVudT1cIm5nYkRyb3Bkb3duXCJcclxuICAgICAgcGxhY2VtZW50PVwicmlnaHQtdG9wXCJcclxuICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgKmFicFBlcm1pc3Npb249XCJjaGlsZC5yZXF1aXJlZFBvbGljeVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgbmdiRHJvcGRvd25Ub2dnbGUgW2NsYXNzLmRyb3Bkb3duLXRvZ2dsZV09XCJmYWxzZVwiPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICBhYnBFbGxpcHNpcz1cIjIxMHB4XCJcclxuICAgICAgICAgIFthYnBFbGxpcHNpc0VuYWJsZWRdPVwiIXNtYWxsU2NyZWVuXCJcclxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gZC1ibG9jayB0ZXh0LXN0YXJ0IGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgQGlmIChjaGlsZC5pY29uQ2xhc3MpIHtcclxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiY2hpbGQuaWNvbkNsYXNzXCI+PC9pPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAge3sgY2hpbGQubmFtZSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjY2hpbGRyZW5Db250YWluZXJcclxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1zdGFydCBib3JkZXItMCBzaGFkb3ctc21cIlxyXG4gICAgICAgIFtjbGFzcy5kLWJsb2NrXT1cInNtYWxsU2NyZWVuICYmIGRyb3Bkb3duU3VibWVudS5pc09wZW4oKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9yVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGlsZCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC91bD5cclxuIl19
@@ -1,8 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
2
2
  import { ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@abp/ng.core";
4
+ import * as i1 from "@abp/ng.core";
6
5
  export class ValidationErrorComponent extends ErrorComponent {
7
6
  get abpErrors() {
8
7
  if (!this.errors || !this.errors.length)
@@ -22,23 +21,27 @@ export class ValidationErrorComponent extends ErrorComponent {
22
21
  });
23
22
  }
24
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ValidationErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0, template: `
26
- <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
27
- {{ error.message | abpLocalization: error.interpoliteParams }}
28
- </div>
29
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ValidationErrorComponent, selector: "abp-validation-error", usesInheritance: true, ngImport: i0, template: `
25
+ @for (error of abpErrors; track $index) {
26
+ <div class="invalid-feedback" >
27
+ {{ error.message | abpLocalization: error.interpoliteParams }}
28
+ </div>
29
+ }
30
+ `, isInline: true, dependencies: [{ kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
30
31
  }
31
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ValidationErrorComponent, decorators: [{
32
33
  type: Component,
33
34
  args: [{
34
35
  selector: 'abp-validation-error',
35
36
  template: `
36
- <div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
37
- {{ error.message | abpLocalization: error.interpoliteParams }}
38
- </div>
37
+ @for (error of abpErrors; track $index) {
38
+ <div class="invalid-feedback" >
39
+ {{ error.message | abpLocalization: error.interpoliteParams }}
40
+ </div>
41
+ }
39
42
  `,
40
43
  changeDetection: ChangeDetectionStrategy.OnPush,
41
44
  encapsulation: ViewEncapsulation.None,
42
45
  }]
43
46
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBYyx3QkFBd0IsSUFBSSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQVk1RixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsY0FBYztJQUMxRCxJQUFJLFNBQVM7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRW5ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRWpDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7b0JBQ3RDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDdkYsQ0FBQztZQUNKLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuQlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUZBUnpCOzs7O0dBSVQ7OzJGQUlVLHdCQUF3QjtrQkFWcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiwgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IGFzIEVycm9yQ29tcG9uZW50IH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXZhbGlkYXRpb24tZXJyb3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0Zvcj1cImxldCBlcnJvciBvZiBhYnBFcnJvcnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxyXG4gICAgICB7eyBlcnJvci5tZXNzYWdlIHwgYWJwTG9jYWxpemF0aW9uOiBlcnJvci5pbnRlcnBvbGl0ZVBhcmFtcyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IGV4dGVuZHMgRXJyb3JDb21wb25lbnQge1xyXG4gIGdldCBhYnBFcnJvcnMoKTogKFZhbGlkYXRpb24uRXJyb3IgJiB7IGludGVycG9saXRlUGFyYW1zPzogc3RyaW5nW10gfSlbXSB7XHJcbiAgICBpZiAoIXRoaXMuZXJyb3JzIHx8ICF0aGlzLmVycm9ycy5sZW5ndGgpIHJldHVybiBbXTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5lcnJvcnMubWFwKGVycm9yID0+IHtcclxuICAgICAgaWYgKCFlcnJvci5tZXNzYWdlKSByZXR1cm4gZXJyb3I7XHJcblxyXG4gICAgICBjb25zdCBpbmRleCA9IGVycm9yLm1lc3NhZ2UuaW5kZXhPZignWycpO1xyXG5cclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZXJyb3IsXHJcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLnNsaWNlKDAsIGluZGV4KSxcclxuICAgICAgICAgIGludGVycG9saXRlUGFyYW1zOiBlcnJvci5tZXNzYWdlLnNsaWNlKGluZGV4ICsgMSwgZXJyb3IubWVzc2FnZS5sZW5ndGggLSAxKS5zcGxpdCgnLCcpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBYyx3QkFBd0IsSUFBSSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYzVGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxjQUFjO0lBQzFELElBQUksU0FBUztRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFbkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFakMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDZixPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztvQkFDdEMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUN2RixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQW5CVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixtRkFWekI7Ozs7OztHQU1UOzsyRkFJVSx3QkFBd0I7a0JBWnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7Ozs7R0FNVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiwgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IGFzIEVycm9yQ29tcG9uZW50IH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXZhbGlkYXRpb24tZXJyb3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICBAZm9yIChlcnJvciBvZiBhYnBFcnJvcnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiID5cclxuICAgICAgICB7eyBlcnJvci5tZXNzYWdlIHwgYWJwTG9jYWxpemF0aW9uOiBlcnJvci5pbnRlcnBvbGl0ZVBhcmFtcyB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3JDb21wb25lbnQgZXh0ZW5kcyBFcnJvckNvbXBvbmVudCB7XHJcbiAgZ2V0IGFicEVycm9ycygpOiAoVmFsaWRhdGlvbi5FcnJvciAmIHsgaW50ZXJwb2xpdGVQYXJhbXM/OiBzdHJpbmdbXSB9KVtdIHtcclxuICAgIGlmICghdGhpcy5lcnJvcnMgfHwgIXRoaXMuZXJyb3JzLmxlbmd0aCkgcmV0dXJuIFtdO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmVycm9ycy5tYXAoZXJyb3IgPT4ge1xyXG4gICAgICBpZiAoIWVycm9yLm1lc3NhZ2UpIHJldHVybiBlcnJvcjtcclxuXHJcbiAgICAgIGNvbnN0IGluZGV4ID0gZXJyb3IubWVzc2FnZS5pbmRleE9mKCdbJyk7XHJcblxyXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5lcnJvcixcclxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2Uuc2xpY2UoMCwgaW5kZXgpLFxyXG4gICAgICAgICAgaW50ZXJwb2xpdGVQYXJhbXM6IGVycm9yLm1lc3NhZ2Uuc2xpY2UoaW5kZXggKyAxLCBlcnJvci5tZXNzYWdlLmxlbmd0aCAtIDEpLnNwbGl0KCcsJyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGVycm9yO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==