@abp/ng.theme.basic 7.2.2 → 7.3.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -2
- package/{esm2020 → esm2022}/abp-ng.theme.basic.mjs +4 -4
- package/esm2022/lib/components/account-layout/account-layout.component.mjs +32 -0
- package/esm2022/lib/components/account-layout/auth-wrapper/auth-wrapper.component.mjs +20 -0
- package/esm2022/lib/components/account-layout/tenant-box/tenant-box.component.mjs +21 -0
- package/esm2022/lib/components/application-layout/application-layout.component.mjs +31 -0
- package/esm2022/lib/components/empty-layout/empty-layout.component.mjs +24 -0
- package/{esm2020 → esm2022}/lib/components/index.mjs +12 -12
- package/esm2022/lib/components/logo/logo.component.mjs +53 -0
- package/esm2022/lib/components/nav-items/current-user.component.mjs +40 -0
- package/esm2022/lib/components/nav-items/languages.component.mjs +108 -0
- package/{esm2020 → esm2022}/lib/components/nav-items/nav-items.component.mjs +20 -19
- package/esm2022/lib/components/page-alert-container/page-alert-container.component.mjs +19 -0
- package/esm2022/lib/components/routes/routes.component.mjs +38 -0
- package/esm2022/lib/components/validation-error/validation-error.component.mjs +45 -0
- package/{esm2020 → esm2022}/lib/constants/styles.mjs +1 -1
- package/{esm2020 → esm2022}/lib/enums/components.mjs +1 -1
- package/{esm2020 → esm2022}/lib/enums/index.mjs +2 -2
- package/{esm2020 → esm2022}/lib/enums/user-menu-items.mjs +1 -1
- package/{esm2020 → esm2022}/lib/handlers/index.mjs +1 -1
- package/esm2022/lib/handlers/lazy-style.handler.mjs +83 -0
- package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/layout.mjs +1 -1
- package/{esm2020 → esm2022}/lib/providers/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/providers/nav-item.provider.mjs +28 -28
- package/{esm2020 → esm2022}/lib/providers/styles.provider.mjs +34 -34
- package/{esm2020 → esm2022}/lib/providers/user-menu.provider.mjs +40 -40
- package/esm2022/lib/services/layout.service.mjs +42 -0
- package/esm2022/lib/theme-basic.module.mjs +128 -0
- package/{esm2020 → esm2022}/lib/tokens/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/tokens/lazy-styles.token.mjs +2 -2
- package/{esm2020 → esm2022}/public-api.mjs +10 -10
- package/{esm2020 → esm2022}/testing/abp-ng.theme.basic-testing.mjs +4 -4
- package/esm2022/testing/lib/theme-basic-testing.module.mjs +39 -0
- package/{esm2020 → esm2022}/testing/public-api.mjs +1 -1
- package/{fesm2015 → fesm2022}/abp-ng.theme.basic-testing.mjs +34 -34
- package/{fesm2015 → fesm2022}/abp-ng.theme.basic-testing.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/abp-ng.theme.basic.mjs +520 -520
- package/{fesm2020 → fesm2022}/abp-ng.theme.basic.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/account-layout/account-layout.component.d.ts +13 -13
- package/lib/components/account-layout/auth-wrapper/auth-wrapper.component.d.ts +8 -8
- package/lib/components/account-layout/tenant-box/tenant-box.component.d.ts +8 -8
- package/lib/components/application-layout/application-layout.component.d.ts +12 -12
- package/lib/components/empty-layout/empty-layout.component.d.ts +7 -7
- package/lib/components/index.d.ts +12 -12
- package/lib/components/logo/logo.component.d.ts +9 -9
- package/lib/components/nav-items/current-user.component.d.ts +21 -21
- package/lib/components/nav-items/languages.component.d.ts +16 -16
- package/lib/components/nav-items/nav-items.component.d.ts +10 -10
- package/lib/components/page-alert-container/page-alert-container.component.d.ts +8 -8
- package/lib/components/routes/routes.component.d.ts +18 -18
- package/lib/components/validation-error/validation-error.component.d.ts +9 -9
- package/lib/constants/styles.d.ts +2 -2
- package/lib/enums/components.d.ts +10 -10
- package/lib/enums/index.d.ts +2 -2
- package/lib/enums/user-menu-items.d.ts +4 -4
- package/lib/handlers/index.d.ts +1 -1
- package/lib/handlers/lazy-style.handler.d.ts +23 -23
- package/lib/models/index.d.ts +1 -1
- package/lib/models/layout.d.ts +11 -11
- package/lib/providers/index.d.ts +3 -3
- package/lib/providers/nav-item.provider.d.ts +8 -8
- package/lib/providers/styles.provider.d.ts +8 -8
- package/lib/providers/user-menu.provider.d.ts +8 -8
- package/lib/services/layout.service.d.ts +18 -18
- package/lib/theme-basic.module.d.ts +32 -32
- package/lib/tokens/index.d.ts +1 -1
- package/lib/tokens/lazy-styles.token.d.ts +2 -2
- package/package.json +25 -19
- package/public-api.d.ts +7 -7
- package/testing/index.d.ts +5 -5
- package/testing/lib/theme-basic-testing.module.d.ts +9 -9
- package/testing/public-api.d.ts +1 -1
- package/esm2020/lib/components/account-layout/account-layout.component.mjs +0 -32
- package/esm2020/lib/components/account-layout/auth-wrapper/auth-wrapper.component.mjs +0 -19
- package/esm2020/lib/components/account-layout/tenant-box/tenant-box.component.mjs +0 -20
- package/esm2020/lib/components/application-layout/application-layout.component.mjs +0 -31
- package/esm2020/lib/components/empty-layout/empty-layout.component.mjs +0 -23
- package/esm2020/lib/components/logo/logo.component.mjs +0 -52
- package/esm2020/lib/components/nav-items/current-user.component.mjs +0 -39
- package/esm2020/lib/components/nav-items/languages.component.mjs +0 -107
- package/esm2020/lib/components/page-alert-container/page-alert-container.component.mjs +0 -18
- package/esm2020/lib/components/routes/routes.component.mjs +0 -37
- package/esm2020/lib/components/validation-error/validation-error.component.mjs +0 -44
- package/esm2020/lib/handlers/lazy-style.handler.mjs +0 -82
- package/esm2020/lib/services/layout.service.mjs +0 -41
- package/esm2020/lib/theme-basic.module.mjs +0 -126
- package/esm2020/testing/lib/theme-basic-testing.module.mjs +0 -38
- package/fesm2015/abp-ng.theme.basic.mjs +0 -834
- package/fesm2015/abp-ng.theme.basic.mjs.map +0 -1
- package/fesm2020/abp-ng.theme.basic-testing.mjs +0 -45
- package/fesm2020/abp-ng.theme.basic-testing.mjs.map +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ConfigStateService, SessionStateService } from '@abp/ng.core';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@abp/ng.core";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
8
|
+
class LanguagesComponent {
|
|
9
|
+
get smallScreen() {
|
|
10
|
+
return window.innerWidth < 992;
|
|
11
|
+
}
|
|
12
|
+
get defaultLanguage$() {
|
|
13
|
+
return this.languages$.pipe(map(languages => languages?.find(lang => lang.cultureName === this.selectedLangCulture)?.displayName || ''));
|
|
14
|
+
}
|
|
15
|
+
get dropdownLanguages$() {
|
|
16
|
+
return this.languages$.pipe(map(languages => languages?.filter(lang => lang.cultureName !== this.selectedLangCulture) || []));
|
|
17
|
+
}
|
|
18
|
+
get selectedLangCulture() {
|
|
19
|
+
return this.sessionState.getLanguage();
|
|
20
|
+
}
|
|
21
|
+
constructor(sessionState, configState) {
|
|
22
|
+
this.sessionState = sessionState;
|
|
23
|
+
this.configState = configState;
|
|
24
|
+
this.languages$ = this.configState.getDeep$('localization.languages');
|
|
25
|
+
}
|
|
26
|
+
onChangeLang(cultureName) {
|
|
27
|
+
this.sessionState.setLanguage(cultureName);
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", 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: "16.0.1", 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
|
+
>
|
|
55
|
+
<a
|
|
56
|
+
*ngFor="let lang of dropdownLanguages$ | async"
|
|
57
|
+
href="javascript:void(0)"
|
|
58
|
+
class="dropdown-item"
|
|
59
|
+
(click)="onChangeLang(lang.cultureName || '')"
|
|
60
|
+
>{{ lang?.displayName }}</a
|
|
61
|
+
>
|
|
62
|
+
</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" }] }); }
|
|
65
|
+
}
|
|
66
|
+
export { LanguagesComponent };
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LanguagesComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{
|
|
70
|
+
selector: 'abp-languages',
|
|
71
|
+
template: `
|
|
72
|
+
<div
|
|
73
|
+
*ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
|
|
74
|
+
class="dropdown"
|
|
75
|
+
ngbDropdown
|
|
76
|
+
#languageDropdown="ngbDropdown"
|
|
77
|
+
display="static"
|
|
78
|
+
>
|
|
79
|
+
<a
|
|
80
|
+
ngbDropdownToggle
|
|
81
|
+
class="nav-link"
|
|
82
|
+
href="javascript:void(0)"
|
|
83
|
+
role="button"
|
|
84
|
+
id="dropdownMenuLink"
|
|
85
|
+
data-toggle="dropdown"
|
|
86
|
+
aria-haspopup="true"
|
|
87
|
+
aria-expanded="false"
|
|
88
|
+
>
|
|
89
|
+
{{ defaultLanguage$ | async }}
|
|
90
|
+
</a>
|
|
91
|
+
<div
|
|
92
|
+
class="dropdown-menu dropdown-menu-end border-0 shadow-sm"
|
|
93
|
+
aria-labelledby="dropdownMenuLink"
|
|
94
|
+
[class.d-block]="smallScreen && languageDropdown.isOpen()"
|
|
95
|
+
>
|
|
96
|
+
<a
|
|
97
|
+
*ngFor="let lang of dropdownLanguages$ | async"
|
|
98
|
+
href="javascript:void(0)"
|
|
99
|
+
class="dropdown-item"
|
|
100
|
+
(click)="onChangeLang(lang.cultureName || '')"
|
|
101
|
+
>{{ lang?.displayName }}</a
|
|
102
|
+
>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
`,
|
|
106
|
+
}]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }]; } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbGFuZ3VhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUVyQyxNQXNDYSxrQkFBa0I7SUFDN0IsSUFBSSxXQUFXO1FBQ2IsT0FBTyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBSUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUNELFNBQVMsQ0FBQyxFQUFFLENBQ1YsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FDNUYsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FDRCxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FDNUYsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBb0IsWUFBaUMsRUFBVSxXQUErQjtRQUExRSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUF2QjlGLGVBQVUsR0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQXVCSSxDQUFDO0lBRWxHLFlBQVksQ0FBQyxXQUFtQjtRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQWhDVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixxREFwQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUOztTQUVVLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQXRDOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlLCBMYW5ndWFnZUluZm8sIFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1sYW5ndWFnZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiKChkcm9wZG93bkxhbmd1YWdlcyQgfCBhc3luYyk/Lmxlbmd0aCB8fCAwKSA+IDBcIlxyXG4gICAgICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICAgICAgbmdiRHJvcGRvd25cclxuICAgICAgI2xhbmd1YWdlRHJvcGRvd249XCJuZ2JEcm9wZG93blwiXHJcbiAgICAgIGRpc3BsYXk9XCJzdGF0aWNcIlxyXG4gICAgPlxyXG4gICAgICA8YVxyXG4gICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgaWQ9XCJkcm9wZG93bk1lbnVMaW5rXCJcclxuICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGRlZmF1bHRMYW5ndWFnZSQgfCBhc3luYyB9fVxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1lbmQgYm9yZGVyLTAgc2hhZG93LXNtXCJcclxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVMaW5rXCJcclxuICAgICAgICBbY2xhc3MuZC1ibG9ja109XCJzbWFsbFNjcmVlbiAmJiBsYW5ndWFnZURyb3Bkb3duLmlzT3BlbigpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZyBvZiBkcm9wZG93bkxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DaGFuZ2VMYW5nKGxhbmcuY3VsdHVyZU5hbWUgfHwgJycpXCJcclxuICAgICAgICAgID57eyBsYW5nPy5kaXNwbGF5TmFtZSB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VzQ29tcG9uZW50IHtcclxuICBnZXQgc21hbGxTY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA5OTI7XHJcbiAgfVxyXG5cclxuICBsYW5ndWFnZXMkOiBPYnNlcnZhYmxlPExhbmd1YWdlSW5mb1tdPiA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCQoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKTtcclxuXHJcbiAgZ2V0IGRlZmF1bHRMYW5ndWFnZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlcyQucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIGxhbmd1YWdlcyA9PlxyXG4gICAgICAgICAgbGFuZ3VhZ2VzPy5maW5kKGxhbmcgPT4gbGFuZy5jdWx0dXJlTmFtZSA9PT0gdGhpcy5zZWxlY3RlZExhbmdDdWx0dXJlKT8uZGlzcGxheU5hbWUgfHwgJycsXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRyb3Bkb3duTGFuZ3VhZ2VzJCgpOiBPYnNlcnZhYmxlPExhbmd1YWdlSW5mb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZXMkLnBpcGUoXHJcbiAgICAgIG1hcChcclxuICAgICAgICBsYW5ndWFnZXMgPT4gbGFuZ3VhZ2VzPy5maWx0ZXIobGFuZyA9PiBsYW5nLmN1bHR1cmVOYW1lICE9PSB0aGlzLnNlbGVjdGVkTGFuZ0N1bHR1cmUpIHx8IFtdLFxyXG4gICAgICApLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZExhbmdDdWx0dXJlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Vzc2lvblN0YXRlOiBTZXNzaW9uU3RhdGVTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UpIHt9XHJcblxyXG4gIG9uQ2hhbmdlTGFuZyhjdWx0dXJlTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdGF0ZS5zZXRMYW5ndWFnZShjdWx0dXJlTmFtZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { NavItemsService } from '@abp/ng.theme.shared';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@abp/ng.theme.shared";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@abp/ng.core";
|
|
7
|
-
|
|
8
|
-
constructor(navItems) {
|
|
9
|
-
this.navItems = navItems;
|
|
10
|
-
this.trackByFn = (_, element) => element.id;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
import { NavItemsService } from '@abp/ng.theme.shared';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@abp/ng.theme.shared";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@abp/ng.core";
|
|
7
|
+
class NavItemsComponent {
|
|
8
|
+
constructor(navItems) {
|
|
9
|
+
this.navItems = navItems;
|
|
10
|
+
this.trackByFn = (_, element) => element.id;
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: NavItemsComponent, deps: [{ token: i1.NavItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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", "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" }] }); }
|
|
14
|
+
}
|
|
15
|
+
export { NavItemsComponent };
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: NavItemsComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
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>" }]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: i1.NavItemsService }]; } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9uYXYtaXRlbXMvbmF2LWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUEwQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFbEUsTUFJYSxpQkFBaUI7SUFHNUIsWUFBNEIsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFGckQsY0FBUyxHQUE2QixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFFVCxDQUFDOzhHQUg5QyxpQkFBaUI7a0dBQWpCLGlCQUFpQixxRENQOUIsaXdCQWlCSzs7U0RWUSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2SXRlbSwgTmF2SXRlbXNTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLW5hdi1pdGVtcycsXHJcbiAgdGVtcGxhdGVVcmw6ICduYXYtaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2SXRlbXNDb21wb25lbnQge1xyXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPE5hdkl0ZW0+ID0gKF8sIGVsZW1lbnQpID0+IGVsZW1lbnQuaWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBuYXZJdGVtczogTmF2SXRlbXNTZXJ2aWNlKSB7fVxyXG59XHJcbiIsIjx1bCBjbGFzcz1cIm5hdmJhci1uYXZcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5hdkl0ZW1zLml0ZW1zJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgIDxuZy1jb250YWluZXIgICphYnBWaXNpYmxlPVwiIWl0ZW0udmlzaWJsZSB8fCBpdGVtLnZpc2libGUoaXRlbSlcIj5cclxuICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICphYnBQZXJtaXNzaW9uPVwiaXRlbS5yZXF1aXJlZFBvbGljeVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgXHJcbiAgICAgICAgXHJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uY29tcG9uZW50OyBlbHNlIGh0bWxUZW1wbGF0ZVwiIFxyXG4gICAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0XT1cIml0ZW0uY29tcG9uZW50XCJcclxuICAgICAgICAgIFtuZ0NvbXBvbmVudE91dGxldEluamVjdG9yXT1cIml0ZW0gfCB0b0luamVjdG9yXCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNodG1sVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiaXRlbS5odG1sXCIgKGNsaWNrKT1cIml0ZW0uYWN0aW9uID8gaXRlbS5hY3Rpb24oKSA6IG51bGxcIj48L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvdWw+Il19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { PageAlertService } from '@abp/ng.theme.shared';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@abp/ng.theme.shared";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@abp/ng.core";
|
|
7
|
+
class PageAlertContainerComponent {
|
|
8
|
+
constructor(service) {
|
|
9
|
+
this.service = service;
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: PageAlertContainerComponent, deps: [{ token: i1.PageAlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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 }); }
|
|
13
|
+
}
|
|
14
|
+
export { PageAlertContainerComponent };
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: PageAlertContainerComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
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" }]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i1.PageAlertService }]; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1hbGVydC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtYWxlcnQtY29udGFpbmVyL3BhZ2UtYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWFsZXJ0LWNvbnRhaW5lci9wYWdlLWFsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQUV4RCxNQUthLDJCQUEyQjtJQUN0QyxZQUFtQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUFHLENBQUM7OEdBRHJDLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdFQ1J4Qyw4ekJBd0JBOztTRGhCYSwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEIsaUJBRXJCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhZ2VBbGVydFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1wYWdlLWFsZXJ0LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZUFsZXJ0Q29udGFpbmVyQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogUGFnZUFsZXJ0U2VydmljZSkge31cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbGVydCBvZiBzZXJ2aWNlLmFsZXJ0cyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQte3sgYWxlcnQudHlwZSB9fSBmYWRlIHNob3dcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnYWxlcnQtZGlzbWlzc2libGUgZmFkZSBzaG93JzogYWxlcnQuZGlzbWlzc2libGUgfVwiXHJcbiAgICByb2xlPVwiYWxlcnRcIlxyXG4gID5cclxuICAgIDxoNFxyXG4gICAgICBjbGFzcz1cImFsZXJ0LWhlYWRpbmdcIlxyXG4gICAgICAqbmdJZj1cImFsZXJ0LnRpdGxlXCJcclxuICAgICAgW2lubmVySFRNTF09XCJhbGVydC50aXRsZSB8IGFicFNhZmVIdG1sIHwgYWJwTG9jYWxpemF0aW9uOiBhbGVydC50aXRsZUxvY2FsaXphdGlvblBhcmFtc1wiXHJcbiAgICA+PC9oND5cclxuICAgIDxzcGFuXHJcbiAgICAgIFtpbm5lckhUTUxdPVwiYWxlcnQubWVzc2FnZSB8IGFicFNhZmVIdG1sIHwgYWJwTG9jYWxpemF0aW9uOiBhbGVydC5tZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zXCJcclxuICAgID48L3NwYW4+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiYWxlcnQuZGlzbWlzc2libGVcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJidG4tY2xvc2VcIlxyXG4gICAgICBkYXRhLWRpc21pc3M9XCJhbGVydFwiXHJcbiAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXHJcbiAgICAgIChjbGljayk9XCJzZXJ2aWNlLnJlbW92ZShpKVwiXHJcbiAgICA+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { RoutesService } from '@abp/ng.core';
|
|
2
|
+
import { Component, Input, QueryList, Renderer2, ViewChildren, } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@abp/ng.core";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/router";
|
|
7
|
+
import * as i4 from "@abp/ng.theme.shared";
|
|
8
|
+
import * as i5 from "@ng-bootstrap/ng-bootstrap";
|
|
9
|
+
class RoutesComponent {
|
|
10
|
+
constructor(routesService, renderer) {
|
|
11
|
+
this.routesService = routesService;
|
|
12
|
+
this.renderer = renderer;
|
|
13
|
+
this.rootDropdownExpand = {};
|
|
14
|
+
this.trackByFn = (_, item) => item.name;
|
|
15
|
+
}
|
|
16
|
+
isDropdown(node) {
|
|
17
|
+
return !node?.isLeaf || this.routesService.hasChildren(node.name);
|
|
18
|
+
}
|
|
19
|
+
closeDropdown() {
|
|
20
|
+
this.childrenContainers.forEach(({ nativeElement }) => {
|
|
21
|
+
this.renderer.addClass(nativeElement, 'd-none');
|
|
22
|
+
setTimeout(() => this.renderer.removeClass(nativeElement, 'd-none'), 0);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RoutesComponent, deps: [{ token: i1.RoutesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i4.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }, { kind: "directive", type: i5.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i5.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
27
|
+
}
|
|
28
|
+
export { RoutesComponent };
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RoutesComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
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" }]
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i1.RoutesService }, { type: i0.Renderer2 }]; }, propDecorators: { smallScreen: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], childrenContainers: [{
|
|
35
|
+
type: ViewChildren,
|
|
36
|
+
args: ['childrenContainer']
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvY29tcG9uZW50cy9yb3V0ZXMvcm91dGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxhQUFhLEVBQVksTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFFdkIsTUFJYSxlQUFlO0lBUzFCLFlBQTRCLGFBQTRCLEVBQVksUUFBbUI7UUFBM0Qsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBWSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSnZGLHVCQUFrQixHQUFHLEVBQWdDLENBQUM7UUFFdEQsY0FBUyxHQUF5QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFFaUIsQ0FBQztJQUUzRixVQUFVLENBQUMsSUFBeUI7UUFDbEMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcEJVLGVBQWU7a0dBQWYsZUFBZSxzTUNmNUIsNnVIQXVHQTs7U0R4RmEsZUFBZTsyRkFBZixlQUFlO2tCQUozQixTQUFTOytCQUNFLFlBQVk7NEhBSWIsV0FBVztzQkFBbkIsS0FBSztnQkFFNkIsa0JBQWtCO3NCQUFwRCxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgUm91dGVzU2VydmljZSwgVHJlZU5vZGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXJvdXRlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICdyb3V0ZXMuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm91dGVzQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzbWFsbFNjcmVlbj86IGJvb2xlYW47XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2NoaWxkcmVuQ29udGFpbmVyJykgY2hpbGRyZW5Db250YWluZXJzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcclxuXHJcbiAgcm9vdERyb3Bkb3duRXhwYW5kID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XHJcblxyXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFRyZWVOb2RlPEFCUC5Sb3V0ZT4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJvdXRlc1NlcnZpY2U6IFJvdXRlc1NlcnZpY2UsIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG5cclxuICBpc0Ryb3Bkb3duKG5vZGU6IFRyZWVOb2RlPEFCUC5Sb3V0ZT4pIHtcclxuICAgIHJldHVybiAhbm9kZT8uaXNMZWFmIHx8IHRoaXMucm91dGVzU2VydmljZS5oYXNDaGlsZHJlbihub2RlLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEcm9wZG93bigpIHtcclxuICAgIHRoaXMuY2hpbGRyZW5Db250YWluZXJzLmZvckVhY2goKHsgbmF0aXZlRWxlbWVudCB9KSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobmF0aXZlRWxlbWVudCwgJ2Qtbm9uZScpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWxlbWVudCwgJ2Qtbm9uZScpLCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nRm9yPVwibGV0IHJvdXRlIG9mIHJvdXRlc1NlcnZpY2UudmlzaWJsZSQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlzRHJvcGRvd24ocm91dGUpID8gZHJvcGRvd25MaW5rIDogZGVmYXVsdExpbmtcIlxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3V0ZSB9XCJcclxuICA+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExpbmsgbGV0LXJvdXRlPlxyXG4gICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqYWJwUGVybWlzc2lvbj1cInJvdXRlLnJlcXVpcmVkUG9saWN5XCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbcm91dGVyTGlua109XCJbcm91dGUucGF0aF1cIlxyXG4gICAgICAgID48aSAqbmdJZj1cInJvdXRlLmljb25DbGFzc1wiIFtuZ0NsYXNzXT1cInJvdXRlLmljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICB7eyByb3V0ZS5uYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19PC9hXHJcbiAgICAgID5cclxuICAgIDwvbGk+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkxpbmsgbGV0LXJvdXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdXRlLmNoaWxkcmVuPy5sZW5ndGhcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgY2xhc3M9XCJuYXYtaXRlbSBkcm9wZG93blwiXHJcbiAgICAgICAgZGlzcGxheT1cInN0YXRpY1wiXHJcbiAgICAgICAgKmFicFBlcm1pc3Npb249XCJyb3V0ZS5yZXF1aXJlZFBvbGljeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgcm9vdERyb3Bkb3duRXhwYW5kW3JvdXRlLm5hbWVdXHJcbiAgICAgICAgICAgID8gKHJvb3REcm9wZG93bkV4cGFuZFtyb3V0ZS5uYW1lXSA9IGZhbHNlKVxyXG4gICAgICAgICAgICA6IChyb290RHJvcGRvd25FeHBhbmRbcm91dGUubmFtZV0gPSB0cnVlKVxyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBkcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGkgKm5nSWY9XCJyb3V0ZS5pY29uQ2xhc3NcIiBbbmdDbGFzc109XCJyb3V0ZS5pY29uQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICB7eyByb3V0ZS5uYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICNyb3V0ZUNvbnRhaW5lclxyXG4gICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGJvcmRlci0wIHNoYWRvdy1zbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICBbY2xhc3MuZC1ibG9ja109XCJzbWFsbFNjcmVlbiAmJiByb290RHJvcGRvd25FeHBhbmRbcm91dGUubmFtZV1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdXRlIH1cIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNmb3JUZW1wbGF0ZSBsZXQtcm91dGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiByb3V0ZS5jaGlsZHJlblwiPlxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlsZC5jaGlsZHJlbj8ubGVuZ3RoID8gZHJvcGRvd25DaGlsZCA6IGRlZmF1bHRDaGlsZFwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCJcclxuICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDaGlsZCBsZXQtY2hpbGQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hpbGQucGF0aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc3VibWVudVwiICphYnBQZXJtaXNzaW9uPVwiY2hpbGQucmVxdWlyZWRQb2xpY3lcIj5cclxuICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBbcm91dGVyTGlua109XCJbY2hpbGQucGF0aF1cIiAoY2xpY2spPVwiY2xvc2VEcm9wZG93bigpXCI+XHJcbiAgICAgICAgICA8aSAqbmdJZj1cImNoaWxkLmljb25DbGFzc1wiIFtuZ0NsYXNzXT1cImNoaWxkLmljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICAgIHt7IGNoaWxkLm5hbWUgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FcclxuICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkNoaWxkIGxldC1jaGlsZD5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1zdWJtZW51XCJcclxuICAgICAgbmdiRHJvcGRvd25cclxuICAgICAgI2Ryb3Bkb3duU3VibWVudT1cIm5nYkRyb3Bkb3duXCJcclxuICAgICAgcGxhY2VtZW50PVwicmlnaHQtdG9wXCJcclxuICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgKmFicFBlcm1pc3Npb249XCJjaGlsZC5yZXF1aXJlZFBvbGljeVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgbmdiRHJvcGRvd25Ub2dnbGUgW2NsYXNzLmRyb3Bkb3duLXRvZ2dsZV09XCJmYWxzZVwiPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICBhYnBFbGxpcHNpcz1cIjIxMHB4XCJcclxuICAgICAgICAgIFthYnBFbGxpcHNpc0VuYWJsZWRdPVwiIXNtYWxsU2NyZWVuXCJcclxuICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gZC1ibG9jayB0ZXh0LXN0YXJ0IGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGkgKm5nSWY9XCJjaGlsZC5pY29uQ2xhc3NcIiBbbmdDbGFzc109XCJjaGlsZC5pY29uQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICB7eyBjaGlsZC5uYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICNjaGlsZHJlbkNvbnRhaW5lclxyXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXN0YXJ0IGJvcmRlci0wIHNoYWRvdy1zbVwiXHJcbiAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic21hbGxTY3JlZW4gJiYgZHJvcGRvd25TdWJtZW51LmlzT3BlbigpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaWxkIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3VsPlxyXG4iXX0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@abp/ng.core";
|
|
6
|
+
class ValidationErrorComponent extends ErrorComponent {
|
|
7
|
+
get abpErrors() {
|
|
8
|
+
if (!this.errors || !this.errors.length)
|
|
9
|
+
return [];
|
|
10
|
+
return this.errors.map(error => {
|
|
11
|
+
if (!error.message)
|
|
12
|
+
return error;
|
|
13
|
+
const index = error.message.indexOf('[');
|
|
14
|
+
if (index > -1) {
|
|
15
|
+
return {
|
|
16
|
+
...error,
|
|
17
|
+
message: error.message.slice(0, index),
|
|
18
|
+
interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return error;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValidationErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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 }); }
|
|
30
|
+
}
|
|
31
|
+
export { ValidationErrorComponent };
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValidationErrorComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{
|
|
35
|
+
selector: 'abp-validation-error',
|
|
36
|
+
template: `
|
|
37
|
+
<div class="invalid-feedback" *ngFor="let error of abpErrors; trackBy: trackByFn">
|
|
38
|
+
{{ error.message | abpLocalization: error.interpoliteParams }}
|
|
39
|
+
</div>
|
|
40
|
+
`,
|
|
41
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
+
encapsulation: ViewEncapsulation.None,
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBYyx3QkFBd0IsSUFBSSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUU1RixNQVVhLHdCQUF5QixTQUFRLGNBQWM7SUFDMUQsSUFBSSxTQUFTO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUVqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUV6QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDZCxPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztvQkFDdEMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUN2RixDQUFDO2FBQ0g7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuQlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUZBUnpCOzs7O0dBSVQ7O1NBSVUsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBVnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb24sIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBhcyBFcnJvckNvbXBvbmVudCB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC12YWxpZGF0aW9uLWVycm9yJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgYWJwRXJyb3JzOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgICAge3sgZXJyb3IubWVzc2FnZSB8IGFicExvY2FsaXphdGlvbjogZXJyb3IuaW50ZXJwb2xpdGVQYXJhbXMgfX1cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBleHRlbmRzIEVycm9yQ29tcG9uZW50IHtcclxuICBnZXQgYWJwRXJyb3JzKCk6IChWYWxpZGF0aW9uLkVycm9yICYgeyBpbnRlcnBvbGl0ZVBhcmFtcz86IHN0cmluZ1tdIH0pW10ge1xyXG4gICAgaWYgKCF0aGlzLmVycm9ycyB8fCAhdGhpcy5lcnJvcnMubGVuZ3RoKSByZXR1cm4gW107XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLm1hcChlcnJvciA9PiB7XHJcbiAgICAgIGlmICghZXJyb3IubWVzc2FnZSkgcmV0dXJuIGVycm9yO1xyXG5cclxuICAgICAgY29uc3QgaW5kZXggPSBlcnJvci5tZXNzYWdlLmluZGV4T2YoJ1snKTtcclxuXHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLmVycm9yLFxyXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZS5zbGljZSgwLCBpbmRleCksXHJcbiAgICAgICAgICBpbnRlcnBvbGl0ZVBhcmFtczogZXJyb3IubWVzc2FnZS5zbGljZShpbmRleCArIDEsIGVycm9yLm1lc3NhZ2UubGVuZ3RoIC0gMSkuc3BsaXQoJywnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -147,5 +147,5 @@ background-color: rgba(0, 0, 0, 0.6);
|
|
|
147
147
|
background-color: transparent;
|
|
148
148
|
padding: 0.27rem;
|
|
149
149
|
}
|
|
150
|
-
`;
|
|
150
|
+
`;
|
|
151
151
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9jb25zdGFudHMvc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUpkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBgXHJcbi5jb250ZW50LWhlYWRlci10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbn1cclxuLmVudHJ5LXJvdyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG59XHJcbiNtYWluLW5hdmJhci10b29scyBhLmRyb3Bkb3duLXRvZ2dsZSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxufVxyXG4ubmF2YmFyIC5kcm9wZG93bi1zdWJtZW51IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4ubmF2YmFyIC5kcm9wZG93bi1tZW51IHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuLm5hdmJhciAuZHJvcGRvd24tbWVudSBhIHtcclxuICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWluLXdpZHRoOiAyMTBweDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xyXG4gICAgbWluLWhlaWdodDogNDRweDtcclxufVxyXG5bZGlyPXJ0bF0gLm5hdmJhciAuZHJvcGRvd24tbWVudSBhIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0IWltcG9ydGFudDtcclxufVxyXG4ubmF2YmFyIC5kcm9wZG93bi1zdWJtZW51IGE6OmFmdGVyIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMTZweDtcclxuICAgIHRvcDogMThweDtcclxufVxyXG5bZGlyPXJ0bF0gLm5hdmJhciAuZHJvcGRvd24tc3VibWVudSBhOjphZnRlciB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgICBsZWZ0OiAxNnB4O1xyXG4gICAgcmlnaHQ6IGF1dG87XHJcbiAgICB0b3A6IDIwcHg7XHJcbn1cclxuLm5hdmJhciAuZHJvcGRvd24tc3VibWVudSAuZHJvcGRvd24tbWVudSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAxMDAlO1xyXG59XHJcbi8qIHdvcmsgYXJvdW5kIGZvciBydGwuIFRyYWNrIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1ib290c3RyYXAvbmctYm9vdHN0cmFwL2lzc3Vlcy80MTAwIGlzc3VlICovXHJcbltkaXI9cnRsXSAubmF2YmFyIC5kcm9wZG93bi1zdWJtZW51IC5kcm9wZG93bi1tZW51IHtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAxMDAlO1xyXG59XHJcbi5jYXJkLWhlYWRlciAuYnRuIHtcclxuICAgIHBhZGRpbmc6IDJweCA2cHg7XHJcbn1cclxuLmNhcmQtaGVhZGVyIGg1IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG4uY29udGFpbmVyID4gLmNhcmQge1xyXG4gICAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjI1cmVtIHJnYmEoMCwgMCwgMCwgMC4wNzUpICFpbXBvcnRhbnQ7XHJcbn1cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC5uYXZiYXIgLmRyb3Bkb3duOmhvdmVyID4gLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXIgLmRyb3Bkb3duLXN1Ym1lbnU6aG92ZXIgPiAuZHJvcGRvd24tbWVudSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuLmlucHV0LXZhbGlkYXRpb24tZXJyb3Ige1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1O1xyXG59XHJcbi5maWVsZC12YWxpZGF0aW9uLWVycm9yIHtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbn1cclxuLnVpLXRhYmxlIC51aS10YWJsZS10Ym9keSA+IHRyLmVtcHR5LXJvdyA+IGRpdi5lbXB0eS1yb3ctY29udGVudCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzhjOGM4O1xyXG4gIH1cclxuLmFicC1sb2FkaW5nIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XHJcbn1cclxuLm1vZGFsLWJhY2tkcm9wIHtcclxuYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG59XHJcblxyXG4uY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tYmFja2Ryb3Age1xyXG5cdCBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNykgIWltcG9ydGFudDtcclxufVxyXG4gLmNvbmZpcm1hdGlvbiAuY29uZmlybWF0aW9uLWRpYWxvZyB7XHJcblx0IGJvcmRlcjogbm9uZTtcclxuXHQgYm9yZGVyLXJhZGl1czogMTBweDtcclxuXHQgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHQgYm94LXNoYWRvdzogMCAwIDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbn1cclxuIC5jb25maXJtYXRpb24gLmNvbmZpcm1hdGlvbi1kaWFsb2cgLmljb24tY29udGFpbmVyIC5pY29uIHtcclxuXHQgc3Ryb2tlOiAjZmZmO1xyXG5cdCBjb2xvcjogI2ZmZjtcclxufVxyXG4gLmNvbmZpcm1hdGlvbiAuY29uZmlybWF0aW9uLWRpYWxvZyAuaWNvbi1jb250YWluZXIuaW5mbyAuaWNvbiB7XHJcblx0IHN0cm9rZTogIzJmOTZiNDtcclxuXHQgY29sb3I6ICMyZjk2YjQ7XHJcbn1cclxuIC5jb25maXJtYXRpb24gLmNvbmZpcm1hdGlvbi1kaWFsb2cgLmljb24tY29udGFpbmVyLnN1Y2Nlc3MgLmljb24ge1xyXG5cdCBzdHJva2U6ICM1MWEzNTE7XHJcblx0IGNvbG9yOiAjNTFhMzUxO1xyXG59XHJcbiAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tZGlhbG9nIC5pY29uLWNvbnRhaW5lci53YXJuaW5nIC5pY29uIHtcclxuXHQgc3Ryb2tlOiAjZjg5NDA2O1xyXG5cdCBjb2xvcjogI2Y4OTQwNjtcclxufVxyXG4gLmNvbmZpcm1hdGlvbiAuY29uZmlybWF0aW9uLWRpYWxvZyAuaWNvbi1jb250YWluZXIuZXJyb3IgLmljb24ge1xyXG5cdCBzdHJva2U6ICNiZDM2MmY7XHJcblx0IGNvbG9yOiAjYmQzNjJmO1xyXG59XHJcbiAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tZGlhbG9nIC5jb250ZW50IC50aXRsZSB7XHJcblx0IGNvbG9yOiAjMjIyO1xyXG59XHJcbiAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tZGlhbG9nIC5jb250ZW50IC5tZXNzYWdlIHtcclxuXHQgY29sb3I6ICM3Nzc7XHJcbn1cclxuIC5jb25maXJtYXRpb24gLmNvbmZpcm1hdGlvbi1kaWFsb2cgLmZvb3RlciB7XHJcblx0IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG59XHJcbiAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tZGlhbG9nIC5mb290ZXIgLmNvbmZpcm1hdGlvbi1idXR0b24ge1xyXG5cdCBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG5cdCBjb2xvcjogIzc3NztcclxufVxyXG4gLmNvbmZpcm1hdGlvbiAuY29uZmlybWF0aW9uLWRpYWxvZyAuZm9vdGVyIC5jb25maXJtYXRpb24tYnV0dG9uOmhvdmVyLCAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tZGlhbG9nIC5mb290ZXIgLmNvbmZpcm1hdGlvbi1idXR0b246Zm9jdXMsIC5jb25maXJtYXRpb24gLmNvbmZpcm1hdGlvbi1kaWFsb2cgLmZvb3RlciAuY29uZmlybWF0aW9uLWJ1dHRvbjphY3RpdmUge1xyXG5cdCBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xyXG59XHJcbiAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tZGlhbG9nIC5mb290ZXIgLmNvbmZpcm1hdGlvbi1idXR0b24tLWNvbmZpcm0ge1xyXG5cdCBiYWNrZ3JvdW5kLWNvbG9yOiAjMmY5NmI0O1xyXG5cdCBjb2xvcjogI2ZmZjtcclxufVxyXG4gLmNvbmZpcm1hdGlvbiAuY29uZmlybWF0aW9uLWRpYWxvZyAuZm9vdGVyIC5jb25maXJtYXRpb24tYnV0dG9uLS1jb25maXJtOmhvdmVyIHtcclxuXHQgYmFja2dyb3VuZC1jb2xvcjogIzJlODE5YjtcclxufVxyXG4udWktdGFibGUgLnBhZ2luYXRpb24td3JhcHBlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M4YzhjODtcclxufVxyXG4uYm9yZGVyZWQgLmRhdGF0YWJsZS1ib2R5LXJvdyB7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcclxuICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbn1cclxuLmJyZWFkY3J1bWIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiAwLjI3cmVtO1xyXG59XHJcbmA7XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLWJhc2ljL3NyYy9saWIvZW51bXMvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gZVRoZW1lQmFzaWNDb21wb25lbnRzIHtcclxuICBBcHBsaWNhdGlvbkxheW91dCA9ICdUaGVtZS5BcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCcsXHJcbiAgQWNjb3VudExheW91dCA9ICdUaGVtZS5BY2NvdW50TGF5b3V0Q29tcG9uZW50JyxcclxuICBFbXB0eUxheW91dCA9ICdUaGVtZS5FbXB0eUxheW91dENvbXBvbmVudCcsXHJcbiAgTG9nbyA9ICdUaGVtZS5Mb2dvQ29tcG9uZW50JyxcclxuICBSb3V0ZXMgPSAnVGhlbWUuUm91dGVzQ29tcG9uZW50JyxcclxuICBOYXZJdGVtcyA9ICdUaGVtZS5OYXZJdGVtc0NvbXBvbmVudCcsXHJcbiAgQ3VycmVudFVzZXIgPSAnVGhlbWUuQ3VycmVudFVzZXJDb21wb25lbnQnLFxyXG4gIExhbmd1YWdlcyA9ICdUaGVtZS5MYW5ndWFnZXNDb21wb25lbnQnLFxyXG59XHJcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './components';
|
|
2
|
-
export * from './user-menu-items';
|
|
1
|
+
export * from './components';
|
|
2
|
+
export * from './user-menu-items';
|
|
3
3
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXItbWVudS1pdGVtcyc7XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LWl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9lbnVtcy91c2VyLW1lbnUtaXRlbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVVc2VyTWVudUl0ZW1zIHtcclxuICBNeUFjY291bnQgPSAnVXNlck1lbnUuTXlBY2NvdW50JyxcclxuICBMb2dvdXQgPSAnVXNlck1lbnUuTG9nb3V0JyxcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './lazy-style.handler';
|
|
1
|
+
export * from './lazy-style.handler';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL2hhbmRsZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xhenktc3R5bGUuaGFuZGxlcic7XHJcbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';
|
|
2
|
+
import { DocumentDirHandlerService } from '@abp/ng.theme.shared';
|
|
3
|
+
import { Injectable, Injector } from '@angular/core';
|
|
4
|
+
import { LAZY_STYLES } from '../tokens/lazy-styles.token';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';
|
|
7
|
+
class LazyStyleHandler {
|
|
8
|
+
set dir(dir) {
|
|
9
|
+
if (dir === this._dir)
|
|
10
|
+
return;
|
|
11
|
+
this.switchCSS(dir);
|
|
12
|
+
this._dir = dir;
|
|
13
|
+
}
|
|
14
|
+
get dir() {
|
|
15
|
+
return this._dir;
|
|
16
|
+
}
|
|
17
|
+
constructor(injector) {
|
|
18
|
+
this._dir = 'ltr';
|
|
19
|
+
this.loaded = new Map();
|
|
20
|
+
this.setStyles(injector);
|
|
21
|
+
this.setLazyLoad(injector);
|
|
22
|
+
this.listenToDirectionChanges(injector);
|
|
23
|
+
}
|
|
24
|
+
getHrefFromLink(link) {
|
|
25
|
+
if (!link)
|
|
26
|
+
return '';
|
|
27
|
+
const a = document.createElement('a');
|
|
28
|
+
a.href = link.href;
|
|
29
|
+
return a.pathname.replace(/^\//, '');
|
|
30
|
+
}
|
|
31
|
+
getLoadedBootstrap() {
|
|
32
|
+
const href = createLazyStyleHref(BOOTSTRAP, this.dir);
|
|
33
|
+
const selector = `[href*="${href.replace(/\.css$/, '')}"]`;
|
|
34
|
+
const link = document.querySelector(selector);
|
|
35
|
+
return { href, link };
|
|
36
|
+
}
|
|
37
|
+
listenToDirectionChanges(injector) {
|
|
38
|
+
const docDirHandler = injector.get(DocumentDirHandlerService);
|
|
39
|
+
// will always listen, no need to unsubscribe
|
|
40
|
+
docDirHandler.dir$.subscribe(dir => {
|
|
41
|
+
this.dir = dir;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
setLazyLoad(injector) {
|
|
45
|
+
this.lazyLoad = injector.get(LazyLoadService);
|
|
46
|
+
const { href, link } = this.getLoadedBootstrap();
|
|
47
|
+
this.lazyLoad.loaded.set(href, link);
|
|
48
|
+
}
|
|
49
|
+
setStyles(injector) {
|
|
50
|
+
this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);
|
|
51
|
+
}
|
|
52
|
+
switchCSS(dir) {
|
|
53
|
+
this.styles.forEach(style => {
|
|
54
|
+
const oldHref = createLazyStyleHref(style, this.dir);
|
|
55
|
+
const newHref = createLazyStyleHref(style, dir);
|
|
56
|
+
const link = this.loaded.get(newHref);
|
|
57
|
+
const href = this.getHrefFromLink(link) || newHref;
|
|
58
|
+
const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);
|
|
59
|
+
this.lazyLoad.load(strategy).subscribe(() => {
|
|
60
|
+
const oldLink = this.lazyLoad.loaded.get(oldHref);
|
|
61
|
+
this.loaded.delete(newHref);
|
|
62
|
+
this.loaded.set(oldHref, oldLink);
|
|
63
|
+
const newLink = this.lazyLoad.loaded.get(href);
|
|
64
|
+
this.lazyLoad.loaded.delete(href);
|
|
65
|
+
this.lazyLoad.loaded.set(newHref, newLink);
|
|
66
|
+
this.lazyLoad.remove(oldHref);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LazyStyleHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
71
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LazyStyleHandler }); }
|
|
72
|
+
}
|
|
73
|
+
export { LazyStyleHandler };
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LazyStyleHandler, decorators: [{
|
|
75
|
+
type: Injectable
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
77
|
+
export function createLazyStyleHref(style, dir) {
|
|
78
|
+
return style.replace(/{{\s*dir\s*}}/g, dir);
|
|
79
|
+
}
|
|
80
|
+
export function initLazyStyleHandler(injector) {
|
|
81
|
+
return () => new LazyStyleHandler(injector);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1zdHlsZS5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9oYW5kbGVycy9sYXp5LXN0eWxlLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUMxRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsMkJBQTJCLENBQUM7QUFFckQsTUFDYSxnQkFBZ0I7SUFPM0IsSUFBSSxHQUFHLENBQUMsR0FBb0I7UUFDMUIsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRTlCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWSxRQUFrQjtRQWZ0QixTQUFJLEdBQW9CLEtBQUssQ0FBQztRQUU3QixXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7UUFjbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQXdDO1FBQzlELElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFckIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sUUFBUSxHQUFHLFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFrQixRQUFRLENBQUMsQ0FBQztRQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxRQUFrQjtRQUNqRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFOUQsNkNBQTZDO1FBQzdDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFrQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxTQUFTLENBQUMsUUFBa0I7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFvQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQztZQUVuRCxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFvQixDQUFDO2dCQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFvQixDQUFDO2dCQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVFVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7U0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7O0FBZ0ZYLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsR0FBVztJQUM1RCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFrQjtJQUNyRCxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenlMb2FkU2VydmljZSwgTE9BRElOR19TVFJBVEVHWSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50RGlySGFuZGxlclNlcnZpY2UsIExvY2FsZURpcmVjdGlvbiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTEFaWV9TVFlMRVMgfSBmcm9tICcuLi90b2tlbnMvbGF6eS1zdHlsZXMudG9rZW4nO1xyXG5leHBvcnQgY29uc3QgQk9PVFNUUkFQID0gJ2Jvb3RzdHJhcC17e2Rpcn19Lm1pbi5jc3MnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTGF6eVN0eWxlSGFuZGxlciB7XHJcbiAgcHJpdmF0ZSBsYXp5TG9hZCE6IExhenlMb2FkU2VydmljZTtcclxuICBwcml2YXRlIHN0eWxlcyE6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2RpcjogTG9jYWxlRGlyZWN0aW9uID0gJ2x0cic7XHJcblxyXG4gIHJlYWRvbmx5IGxvYWRlZCA9IG5ldyBNYXA8c3RyaW5nLCBIVE1MTGlua0VsZW1lbnQ+KCk7XHJcblxyXG4gIHNldCBkaXIoZGlyOiBMb2NhbGVEaXJlY3Rpb24pIHtcclxuICAgIGlmIChkaXIgPT09IHRoaXMuX2RpcikgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuc3dpdGNoQ1NTKGRpcik7XHJcbiAgICB0aGlzLl9kaXIgPSBkaXI7XHJcbiAgfVxyXG5cclxuICBnZXQgZGlyKCk6IExvY2FsZURpcmVjdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlyO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLnNldFN0eWxlcyhpbmplY3Rvcik7XHJcbiAgICB0aGlzLnNldExhenlMb2FkKGluamVjdG9yKTtcclxuICAgIHRoaXMubGlzdGVuVG9EaXJlY3Rpb25DaGFuZ2VzKGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SHJlZkZyb21MaW5rKGxpbms6IEhUTUxMaW5rRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFsaW5rKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IGxpbmsuaHJlZjtcclxuICAgIHJldHVybiBhLnBhdGhuYW1lLnJlcGxhY2UoL15cXC8vLCAnJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExvYWRlZEJvb3RzdHJhcCgpOiBMb2FkZWRTdHlsZSB7XHJcbiAgICBjb25zdCBocmVmID0gY3JlYXRlTGF6eVN0eWxlSHJlZihCT09UU1RSQVAsIHRoaXMuZGlyKTtcclxuICAgIGNvbnN0IHNlbGVjdG9yID0gYFtocmVmKj1cIiR7aHJlZi5yZXBsYWNlKC9cXC5jc3MkLywgJycpfVwiXWA7XHJcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MTGlua0VsZW1lbnQ+KHNlbGVjdG9yKTtcclxuICAgIHJldHVybiB7IGhyZWYsIGxpbmsgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuVG9EaXJlY3Rpb25DaGFuZ2VzKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgY29uc3QgZG9jRGlySGFuZGxlciA9IGluamVjdG9yLmdldChEb2N1bWVudERpckhhbmRsZXJTZXJ2aWNlKTtcclxuXHJcbiAgICAvLyB3aWxsIGFsd2F5cyBsaXN0ZW4sIG5vIG5lZWQgdG8gdW5zdWJzY3JpYmVcclxuICAgIGRvY0RpckhhbmRsZXIuZGlyJC5zdWJzY3JpYmUoZGlyID0+IHtcclxuICAgICAgdGhpcy5kaXIgPSBkaXI7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGF6eUxvYWQoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLmxhenlMb2FkID0gaW5qZWN0b3IuZ2V0KExhenlMb2FkU2VydmljZSk7XHJcbiAgICBjb25zdCB7IGhyZWYsIGxpbmsgfSA9IHRoaXMuZ2V0TG9hZGVkQm9vdHN0cmFwKCk7XHJcbiAgICB0aGlzLmxhenlMb2FkLmxvYWRlZC5zZXQoaHJlZiwgbGluayk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN0eWxlcyhpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMuc3R5bGVzID0gaW5qZWN0b3IuZ2V0KExBWllfU1RZTEVTLCBbQk9PVFNUUkFQXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN3aXRjaENTUyhkaXI6IExvY2FsZURpcmVjdGlvbikge1xyXG4gICAgdGhpcy5zdHlsZXMuZm9yRWFjaChzdHlsZSA9PiB7XHJcbiAgICAgIGNvbnN0IG9sZEhyZWYgPSBjcmVhdGVMYXp5U3R5bGVIcmVmKHN0eWxlLCB0aGlzLmRpcik7XHJcbiAgICAgIGNvbnN0IG5ld0hyZWYgPSBjcmVhdGVMYXp5U3R5bGVIcmVmKHN0eWxlLCBkaXIpO1xyXG4gICAgICBjb25zdCBsaW5rID0gdGhpcy5sb2FkZWQuZ2V0KG5ld0hyZWYpO1xyXG4gICAgICBjb25zdCBocmVmID0gdGhpcy5nZXRIcmVmRnJvbUxpbmsobGluaykgfHwgbmV3SHJlZjtcclxuXHJcbiAgICAgIGNvbnN0IHN0cmF0ZWd5ID0gTE9BRElOR19TVFJBVEVHWS5QcmVwZW5kQW5vbnltb3VzU3R5bGVUb0hlYWQoaHJlZik7XHJcbiAgICAgIHRoaXMubGF6eUxvYWQubG9hZChzdHJhdGVneSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBjb25zdCBvbGRMaW5rID0gdGhpcy5sYXp5TG9hZC5sb2FkZWQuZ2V0KG9sZEhyZWYpIGFzIEhUTUxMaW5rRWxlbWVudDtcclxuICAgICAgICB0aGlzLmxvYWRlZC5kZWxldGUobmV3SHJlZik7XHJcbiAgICAgICAgdGhpcy5sb2FkZWQuc2V0KG9sZEhyZWYsIG9sZExpbmspO1xyXG4gICAgICAgIGNvbnN0IG5ld0xpbmsgPSB0aGlzLmxhenlMb2FkLmxvYWRlZC5nZXQoaHJlZikgYXMgSFRNTExpbmtFbGVtZW50O1xyXG4gICAgICAgIHRoaXMubGF6eUxvYWQubG9hZGVkLmRlbGV0ZShocmVmKTtcclxuICAgICAgICB0aGlzLmxhenlMb2FkLmxvYWRlZC5zZXQobmV3SHJlZiwgbmV3TGluayk7XHJcbiAgICAgICAgdGhpcy5sYXp5TG9hZC5yZW1vdmUob2xkSHJlZik7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGF6eVN0eWxlSHJlZihzdHlsZTogc3RyaW5nLCBkaXI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHN0eWxlLnJlcGxhY2UoL3t7XFxzKmRpclxccyp9fS9nLCBkaXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdExhenlTdHlsZUhhbmRsZXIoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgcmV0dXJuICgpID0+IG5ldyBMYXp5U3R5bGVIYW5kbGVyKGluamVjdG9yKTtcclxufVxyXG5cclxuaW50ZXJmYWNlIExvYWRlZFN0eWxlIHtcclxuICBocmVmOiBzdHJpbmc7XHJcbiAgbGluazogSFRNTExpbmtFbGVtZW50IHwgbnVsbDtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './layout';
|
|
1
|
+
export * from './layout';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGF5b3V0JztcclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtYmFzaWMvc3JjL2xpYi9tb2RlbHMvbGF5b3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBMYXlvdXQge1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gICAgbmF2aWdhdGlvbkVsZW1lbnRzOiBOYXZpZ2F0aW9uRWxlbWVudFtdO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uRWxlbWVudCB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBlbGVtZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgb3JkZXI/OiBudW1iZXI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './nav-item.provider';
|
|
2
|
-
export * from './styles.provider';
|
|
3
|
-
export * from './user-menu.provider';
|
|
1
|
+
export * from './nav-item.provider';
|
|
2
|
+
export * from './styles.provider';
|
|
3
|
+
export * from './user-menu.provider';
|
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL3Byb3ZpZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmF2LWl0ZW0ucHJvdmlkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0eWxlcy5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1tZW51LnByb3ZpZGVyJztcclxuIl19
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { NavItemsService } from '@abp/ng.theme.shared';
|
|
2
|
-
import { APP_INITIALIZER } from '@angular/core';
|
|
3
|
-
import { CurrentUserComponent } from '../components/nav-items/current-user.component';
|
|
4
|
-
import { LanguagesComponent } from '../components/nav-items/languages.component';
|
|
5
|
-
export const BASIC_THEME_NAV_ITEM_PROVIDERS = [
|
|
6
|
-
{
|
|
7
|
-
provide: APP_INITIALIZER,
|
|
8
|
-
useFactory: configureNavItems,
|
|
9
|
-
deps: [NavItemsService],
|
|
10
|
-
multi: true,
|
|
11
|
-
},
|
|
12
|
-
];
|
|
13
|
-
export function configureNavItems(navItems) {
|
|
14
|
-
return () => {
|
|
15
|
-
navItems.addItems([
|
|
16
|
-
{
|
|
17
|
-
id: "Theme.LanguagesComponent" /* eThemeBasicComponents.Languages */,
|
|
18
|
-
order: 100,
|
|
19
|
-
component: LanguagesComponent,
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
id: "Theme.CurrentUserComponent" /* eThemeBasicComponents.CurrentUser */,
|
|
23
|
-
order: 100,
|
|
24
|
-
component: CurrentUserComponent,
|
|
25
|
-
},
|
|
26
|
-
]);
|
|
27
|
-
};
|
|
28
|
-
}
|
|
1
|
+
import { NavItemsService } from '@abp/ng.theme.shared';
|
|
2
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
3
|
+
import { CurrentUserComponent } from '../components/nav-items/current-user.component';
|
|
4
|
+
import { LanguagesComponent } from '../components/nav-items/languages.component';
|
|
5
|
+
export const BASIC_THEME_NAV_ITEM_PROVIDERS = [
|
|
6
|
+
{
|
|
7
|
+
provide: APP_INITIALIZER,
|
|
8
|
+
useFactory: configureNavItems,
|
|
9
|
+
deps: [NavItemsService],
|
|
10
|
+
multi: true,
|
|
11
|
+
},
|
|
12
|
+
];
|
|
13
|
+
export function configureNavItems(navItems) {
|
|
14
|
+
return () => {
|
|
15
|
+
navItems.addItems([
|
|
16
|
+
{
|
|
17
|
+
id: "Theme.LanguagesComponent" /* eThemeBasicComponents.Languages */,
|
|
18
|
+
order: 100,
|
|
19
|
+
component: LanguagesComponent,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: "Theme.CurrentUserComponent" /* eThemeBasicComponents.CurrentUser */,
|
|
23
|
+
order: 100,
|
|
24
|
+
component: CurrentUserComponent,
|
|
25
|
+
},
|
|
26
|
+
]);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
29
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWl0ZW0ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1iYXNpYy9zcmMvbGliL3Byb3ZpZGVycy9uYXYtaXRlbS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUdqRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1QztRQUNFLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7UUFDN0IsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQ3ZCLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFFBQXlCO0lBQ3pELE9BQU8sR0FBRyxFQUFFO1FBQ1YsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoQjtnQkFDRSxFQUFFLGtFQUFpQztnQkFDbkMsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsU0FBUyxFQUFFLGtCQUFrQjthQUM5QjtZQUNEO2dCQUNFLEVBQUUsc0VBQW1DO2dCQUNyQyxLQUFLLEVBQUUsR0FBRztnQkFDVixTQUFTLEVBQUUsb0JBQW9CO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdkl0ZW1zU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEN1cnJlbnRVc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9uYXYtaXRlbXMvY3VycmVudC11c2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExhbmd1YWdlc0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbmF2LWl0ZW1zL2xhbmd1YWdlcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBlVGhlbWVCYXNpY0NvbXBvbmVudHMgfSBmcm9tICcuLi9lbnVtcy9jb21wb25lbnRzJztcclxuXHJcbmV4cG9ydCBjb25zdCBCQVNJQ19USEVNRV9OQVZfSVRFTV9QUk9WSURFUlMgPSBbXHJcbiAge1xyXG4gICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgdXNlRmFjdG9yeTogY29uZmlndXJlTmF2SXRlbXMsXHJcbiAgICBkZXBzOiBbTmF2SXRlbXNTZXJ2aWNlXSxcclxuICAgIG11bHRpOiB0cnVlLFxyXG4gIH0sXHJcbl07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlTmF2SXRlbXMobmF2SXRlbXM6IE5hdkl0ZW1zU2VydmljZSkge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICBuYXZJdGVtcy5hZGRJdGVtcyhbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogZVRoZW1lQmFzaWNDb21wb25lbnRzLkxhbmd1YWdlcyxcclxuICAgICAgICBvcmRlcjogMTAwLFxyXG4gICAgICAgIGNvbXBvbmVudDogTGFuZ3VhZ2VzQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IGVUaGVtZUJhc2ljQ29tcG9uZW50cy5DdXJyZW50VXNlcixcclxuICAgICAgICBvcmRlcjogMTAwLFxyXG4gICAgICAgIGNvbXBvbmVudDogQ3VycmVudFVzZXJDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|