@abp/ng.identity 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/config/enums/index.d.ts +2 -2
- package/config/enums/policy-names.d.ts +5 -5
- package/config/enums/route-names.d.ts +5 -5
- package/config/identity-config.module.d.ts +8 -8
- package/config/index.d.ts +5 -5
- package/config/providers/index.d.ts +1 -1
- package/config/providers/route.provider.d.ts +8 -8
- package/config/public-api.d.ts +3 -3
- package/{esm2020 → esm2022}/abp-ng.identity.mjs +4 -4
- package/{esm2020 → esm2022}/config/abp-ng.identity-config.mjs +4 -4
- package/{esm2020 → esm2022}/config/enums/index.mjs +2 -2
- package/{esm2020 → esm2022}/config/enums/policy-names.mjs +1 -1
- package/{esm2020 → esm2022}/config/enums/route-names.mjs +1 -1
- package/esm2022/config/identity-config.module.mjs +19 -0
- package/{esm2020 → esm2022}/config/providers/index.mjs +1 -1
- package/{esm2020 → esm2022}/config/providers/route.provider.mjs +34 -34
- package/{esm2020 → esm2022}/config/public-api.mjs +3 -3
- package/{esm2020 → esm2022}/lib/components/index.mjs +2 -2
- package/esm2022/lib/components/roles/roles.component.mjs +112 -0
- package/esm2022/lib/components/users/users.component.mjs +151 -0
- package/{esm2020 → esm2022}/lib/defaults/default-roles-entity-actions.mjs +29 -29
- package/{esm2020 → esm2022}/lib/defaults/default-roles-entity-props.mjs +23 -23
- package/{esm2020 → esm2022}/lib/defaults/default-roles-form-props.mjs +27 -27
- package/{esm2020 → esm2022}/lib/defaults/default-roles-toolbar-actions.mjs +13 -13
- package/{esm2020 → esm2022}/lib/defaults/default-users-entity-actions.mjs +35 -35
- package/{esm2020 → esm2022}/lib/defaults/default-users-entity-props.mjs +33 -33
- package/{esm2020 → esm2022}/lib/defaults/default-users-form-props.mjs +71 -71
- package/{esm2020 → esm2022}/lib/defaults/default-users-toolbar-actions.mjs +13 -13
- package/{esm2020 → esm2022}/lib/enums/components.mjs +1 -1
- package/{esm2020 → esm2022}/lib/enums/index.mjs +1 -1
- package/esm2022/lib/guards/extensions.guard.mjs +37 -0
- package/{esm2020 → esm2022}/lib/guards/index.mjs +1 -1
- package/esm2022/lib/identity-routing.module.mjs +54 -0
- package/esm2022/lib/identity.module.mjs +86 -0
- package/{esm2020 → esm2022}/lib/models/config-options.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/tokens/extensions.token.mjs +34 -34
- package/{esm2020 → esm2022}/lib/tokens/index.mjs +1 -1
- package/{esm2020 → esm2022}/proxy/abp-ng.identity-proxy.mjs +4 -4
- package/{esm2020 → esm2022}/proxy/lib/index.mjs +2 -2
- package/esm2022/proxy/lib/proxy/identity/identity-role.service.mjs +47 -0
- package/esm2022/proxy/lib/proxy/identity/identity-user-lookup.service.mjs +38 -0
- package/esm2022/proxy/lib/proxy/identity/identity-user.service.mjs +64 -0
- package/{esm2020 → esm2022}/proxy/lib/proxy/identity/index.mjs +4 -4
- package/{esm2020 → esm2022}/proxy/lib/proxy/identity/models.mjs +1 -1
- package/{esm2020 → esm2022}/proxy/lib/proxy/users/index.mjs +1 -1
- package/{esm2020 → esm2022}/proxy/lib/proxy/users/models.mjs +1 -1
- package/{esm2020 → esm2022}/proxy/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/public-api.mjs +6 -6
- package/{fesm2015 → fesm2022}/abp-ng.identity-config.mjs +46 -46
- package/{fesm2020 → fesm2022}/abp-ng.identity-config.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/abp-ng.identity-proxy.mjs +130 -130
- package/{fesm2015 → fesm2022}/abp-ng.identity-proxy.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/abp-ng.identity.mjs +609 -609
- package/fesm2022/abp-ng.identity.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components/index.d.ts +2 -2
- package/lib/components/roles/roles.component.d.ts +36 -36
- package/lib/components/users/users.component.d.ts +44 -44
- package/lib/defaults/default-roles-entity-actions.d.ts +3 -3
- package/lib/defaults/default-roles-entity-props.d.ts +3 -3
- package/lib/defaults/default-roles-form-props.d.ts +4 -4
- package/lib/defaults/default-roles-toolbar-actions.d.ts +3 -3
- package/lib/defaults/default-users-entity-actions.d.ts +3 -3
- package/lib/defaults/default-users-entity-props.d.ts +3 -3
- package/lib/defaults/default-users-form-props.d.ts +4 -4
- package/lib/defaults/default-users-toolbar-actions.d.ts +3 -3
- package/lib/enums/components.d.ts +4 -4
- package/lib/enums/index.d.ts +1 -1
- package/lib/guards/extensions.guard.d.ts +11 -11
- package/lib/guards/index.d.ts +1 -1
- package/lib/identity-routing.module.d.ts +7 -7
- package/lib/identity.module.d.ts +20 -20
- package/lib/models/config-options.d.ts +30 -30
- package/lib/models/index.d.ts +1 -1
- package/lib/tokens/extensions.token.d.ts +43 -43
- package/lib/tokens/index.d.ts +1 -1
- package/package.json +15 -25
- package/proxy/index.d.ts +5 -5
- package/proxy/lib/index.d.ts +2 -2
- package/proxy/lib/proxy/identity/identity-role.service.d.ts +17 -17
- package/proxy/lib/proxy/identity/identity-user-lookup.service.d.ts +16 -16
- package/proxy/lib/proxy/identity/identity-user.service.d.ts +21 -21
- package/proxy/lib/proxy/identity/index.d.ts +4 -4
- package/proxy/lib/proxy/identity/models.d.ts +64 -64
- package/proxy/lib/proxy/users/index.d.ts +1 -1
- package/proxy/lib/proxy/users/models.d.ts +11 -11
- package/proxy/public-api.d.ts +1 -1
- package/public-api.d.ts +6 -6
- package/esm2020/config/identity-config.module.mjs +0 -18
- package/esm2020/lib/components/roles/roles.component.mjs +0 -111
- package/esm2020/lib/components/users/users.component.mjs +0 -150
- package/esm2020/lib/guards/extensions.guard.mjs +0 -36
- package/esm2020/lib/identity-routing.module.mjs +0 -53
- package/esm2020/lib/identity.module.mjs +0 -85
- package/esm2020/proxy/lib/proxy/identity/identity-role.service.mjs +0 -46
- package/esm2020/proxy/lib/proxy/identity/identity-user-lookup.service.mjs +0 -37
- package/esm2020/proxy/lib/proxy/identity/identity-user.service.mjs +0 -63
- package/fesm2015/abp-ng.identity-config.mjs.map +0 -1
- package/fesm2015/abp-ng.identity-proxy.mjs +0 -144
- package/fesm2015/abp-ng.identity.mjs +0 -661
- package/fesm2015/abp-ng.identity.mjs.map +0 -1
- package/fesm2020/abp-ng.identity-config.mjs +0 -58
- package/fesm2020/abp-ng.identity-proxy.mjs.map +0 -1
- package/fesm2020/abp-ng.identity.mjs.map +0 -1
- package/proxy/src/lib/proxy/README.md +0 -17
package/README.md
CHANGED
|
@@ -1,3 +1,130 @@
|
|
|
1
|
-
|
|
1
|
+
## ℹ️ Description
|
|
2
2
|
|
|
3
|
-
[
|
|
3
|
+
ABP Framework is a complete open-source infrastructure to create modern web applications by following the best practices and conventions of software development. This package is a part of the [ABP Framework](https://abp.io) and contains client-side files.
|
|
4
|
+
For more information, check out the below links:
|
|
5
|
+
|
|
6
|
+
🔗Official Website: https://abp.io
|
|
7
|
+
|
|
8
|
+
🔗Commercial Website: https://commercial.abp.io
|
|
9
|
+
|
|
10
|
+
🔗Commercial Demo: https://commercial.abp.io/demo
|
|
11
|
+
|
|
12
|
+
🔗GitHub Repository: https://github.com/abpframework/abp
|
|
13
|
+
|
|
14
|
+
🔗Official Theme: https://www.LeptonTheme.com
|
|
15
|
+
|
|
16
|
+
🔗Documentation: https://docs.abp.io
|
|
17
|
+
|
|
18
|
+
🔗Community: https://community.abp.io
|
|
19
|
+
|
|
20
|
+
🔗Blog: https://blog.abp.io
|
|
21
|
+
|
|
22
|
+
🔗Books: https://abp.io/books
|
|
23
|
+
|
|
24
|
+
🔗Twitter: https://twitter.com/abpframework
|
|
25
|
+
|
|
26
|
+
🔗Discord: https://community.abp.io/discord
|
|
27
|
+
|
|
28
|
+
🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp
|
|
29
|
+
|
|
30
|
+
🔗YouTube: https://www.youtube.com/@Volosoft
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## 🤔 Why ABP Platform?
|
|
34
|
+
|
|
35
|
+
Why should you use the ABP.IO Platform instead of creating a new solution from scratch?
|
|
36
|
+
|
|
37
|
+
You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## 🚀 Key Features of the ABP Framework
|
|
41
|
+
|
|
42
|
+
🟡 Modularity
|
|
43
|
+
|
|
44
|
+
🟡 Multi-Tenancy
|
|
45
|
+
|
|
46
|
+
🟡 Bootstrap Tag Helpers
|
|
47
|
+
|
|
48
|
+
🟡 Dynamic Forms
|
|
49
|
+
|
|
50
|
+
🟡 Authentication
|
|
51
|
+
|
|
52
|
+
🟡 Authorization
|
|
53
|
+
|
|
54
|
+
🟡 Distributed Event Bus
|
|
55
|
+
|
|
56
|
+
🟡 BLOB Storing
|
|
57
|
+
|
|
58
|
+
🟡 Text Templating
|
|
59
|
+
|
|
60
|
+
🟡 Tooling: ABP CLI
|
|
61
|
+
|
|
62
|
+
🟡 Cross-Cutting Concerns
|
|
63
|
+
|
|
64
|
+
🟡 Bundling & Minification
|
|
65
|
+
|
|
66
|
+
🟡 Virtual File System
|
|
67
|
+
|
|
68
|
+
🟡 Theming
|
|
69
|
+
|
|
70
|
+
🟡 Background Jobs
|
|
71
|
+
|
|
72
|
+
🟡 DDD Infrastructure
|
|
73
|
+
|
|
74
|
+
🟡 Auto REST APIs
|
|
75
|
+
|
|
76
|
+
🟡 Dynamic Client Proxies
|
|
77
|
+
|
|
78
|
+
🟡 Multiple Database Providers
|
|
79
|
+
|
|
80
|
+
🟡 Data filtering
|
|
81
|
+
|
|
82
|
+
🟡 Test Infrastructure
|
|
83
|
+
|
|
84
|
+
🟡 Audit Logging
|
|
85
|
+
|
|
86
|
+
🟡 Object to Object Mapping
|
|
87
|
+
|
|
88
|
+
🟡 Email & SMS Abstractions
|
|
89
|
+
|
|
90
|
+
🟡 Localization
|
|
91
|
+
|
|
92
|
+
🟡 Setting Management
|
|
93
|
+
|
|
94
|
+
🟡 Extension Methods
|
|
95
|
+
|
|
96
|
+
🟡 Aspect Oriented Programming
|
|
97
|
+
|
|
98
|
+
🟡 Dependency Injection
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## 🧐 How It Works?
|
|
102
|
+
|
|
103
|
+
The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
### 📘 Supported Database Providers
|
|
107
|
+
|
|
108
|
+
🔵 Entity Framework Core
|
|
109
|
+
|
|
110
|
+
🔵 MongoDB
|
|
111
|
+
|
|
112
|
+
🔵 Dapper
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### 🎴 Supported UI Frameworks
|
|
116
|
+
|
|
117
|
+
🔵 Angular
|
|
118
|
+
|
|
119
|
+
🔵 Razor Pages
|
|
120
|
+
|
|
121
|
+
🔵 Blazor Web Assembly
|
|
122
|
+
|
|
123
|
+
🔵 Blazor Server
|
|
124
|
+
|
|
125
|
+
🔵 MAUI with Blazor Hybrid
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
## 📫 Bug & Support
|
|
129
|
+
|
|
130
|
+
Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io).
|
package/config/enums/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './policy-names';
|
|
2
|
-
export * from './route-names';
|
|
1
|
+
export * from './policy-names';
|
|
2
|
+
export * from './route-names';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const enum eIdentityPolicyNames {
|
|
2
|
-
IdentityManagement = "AbpIdentity.Roles || AbpIdentity.Users",
|
|
3
|
-
Roles = "AbpIdentity.Roles",
|
|
4
|
-
Users = "AbpIdentity.Users"
|
|
5
|
-
}
|
|
1
|
+
export declare const enum eIdentityPolicyNames {
|
|
2
|
+
IdentityManagement = "AbpIdentity.Roles || AbpIdentity.Users",
|
|
3
|
+
Roles = "AbpIdentity.Roles",
|
|
4
|
+
Users = "AbpIdentity.Users"
|
|
5
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const enum eIdentityRouteNames {
|
|
2
|
-
IdentityManagement = "AbpIdentity::Menu:IdentityManagement",
|
|
3
|
-
Roles = "AbpIdentity::Roles",
|
|
4
|
-
Users = "AbpIdentity::Users"
|
|
5
|
-
}
|
|
1
|
+
export declare const enum eIdentityRouteNames {
|
|
2
|
+
IdentityManagement = "AbpIdentity::Menu:IdentityManagement",
|
|
3
|
+
Roles = "AbpIdentity::Roles",
|
|
4
|
+
Users = "AbpIdentity::Users"
|
|
5
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class IdentityConfigModule {
|
|
4
|
-
static forRoot(): ModuleWithProviders<IdentityConfigModule>;
|
|
5
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<IdentityConfigModule, never>;
|
|
6
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<IdentityConfigModule, never, never, never>;
|
|
7
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<IdentityConfigModule>;
|
|
8
|
-
}
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IdentityConfigModule {
|
|
4
|
+
static forRoot(): ModuleWithProviders<IdentityConfigModule>;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdentityConfigModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<IdentityConfigModule, never, never, never>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<IdentityConfigModule>;
|
|
8
|
+
}
|
package/config/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
/// <amd-module name="@abp/ng.identity/config" />
|
|
5
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="@abp/ng.identity/config" />
|
|
5
|
+
export * from './public-api';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './route.provider';
|
|
1
|
+
export * from './route.provider';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { RoutesService } from '@abp/ng.core';
|
|
2
|
-
export declare const IDENTITY_ROUTE_PROVIDERS: {
|
|
3
|
-
provide: import("@angular/core").InjectionToken<readonly (() => void | import("rxjs").Observable<unknown> | Promise<unknown>)[]>;
|
|
4
|
-
useFactory: typeof configureRoutes;
|
|
5
|
-
deps: (typeof RoutesService)[];
|
|
6
|
-
multi: boolean;
|
|
7
|
-
}[];
|
|
8
|
-
export declare function configureRoutes(routesService: RoutesService): () => void;
|
|
1
|
+
import { RoutesService } from '@abp/ng.core';
|
|
2
|
+
export declare const IDENTITY_ROUTE_PROVIDERS: {
|
|
3
|
+
provide: import("@angular/core").InjectionToken<readonly (() => void | import("rxjs").Observable<unknown> | Promise<unknown>)[]>;
|
|
4
|
+
useFactory: typeof configureRoutes;
|
|
5
|
+
deps: (typeof RoutesService)[];
|
|
6
|
+
multi: boolean;
|
|
7
|
+
}[];
|
|
8
|
+
export declare function configureRoutes(routesService: RoutesService): () => void;
|
package/config/public-api.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './enums';
|
|
2
|
-
export * from './identity-config.module';
|
|
3
|
-
export * from './providers';
|
|
1
|
+
export * from './enums';
|
|
2
|
+
export * from './identity-config.module';
|
|
3
|
+
export * from './providers';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvaWRlbnRpdHkvc3JjL2FicC1uZy5pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2lkZW50aXR5L2NvbmZpZy9zcmMvYWJwLW5nLmlkZW50aXR5LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './policy-names';
|
|
2
|
-
export * from './route-names';
|
|
1
|
+
export * from './policy-names';
|
|
2
|
+
export * from './route-names';
|
|
3
3
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pZGVudGl0eS9jb25maWcvc3JjL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BvbGljeS1uYW1lcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGUtbmFtZXMnO1xyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LW5hbWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaWRlbnRpdHkvY29uZmlnL3NyYy9lbnVtcy9wb2xpY3ktbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVJZGVudGl0eVBvbGljeU5hbWVzIHtcclxuICBJZGVudGl0eU1hbmFnZW1lbnQgPSAnQWJwSWRlbnRpdHkuUm9sZXMgfHwgQWJwSWRlbnRpdHkuVXNlcnMnLFxyXG4gIFJvbGVzID0gJ0FicElkZW50aXR5LlJvbGVzJyxcclxuICBVc2VycyA9ICdBYnBJZGVudGl0eS5Vc2VycycsXHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pZGVudGl0eS9jb25maWcvc3JjL2VudW1zL3JvdXRlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBlSWRlbnRpdHlSb3V0ZU5hbWVzIHtcclxuICBJZGVudGl0eU1hbmFnZW1lbnQgPSAnQWJwSWRlbnRpdHk6Ok1lbnU6SWRlbnRpdHlNYW5hZ2VtZW50JyxcclxuICBSb2xlcyA9ICdBYnBJZGVudGl0eTo6Um9sZXMnLFxyXG4gIFVzZXJzID0gJ0FicElkZW50aXR5OjpVc2VycycsXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { IDENTITY_ROUTE_PROVIDERS } from './providers/route.provider';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class IdentityConfigModule {
|
|
5
|
+
static forRoot() {
|
|
6
|
+
return {
|
|
7
|
+
ngModule: IdentityConfigModule,
|
|
8
|
+
providers: [IDENTITY_ROUTE_PROVIDERS],
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: IdentityConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: IdentityConfigModule }); }
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: IdentityConfigModule }); }
|
|
14
|
+
}
|
|
15
|
+
export { IdentityConfigModule };
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: IdentityConfigModule, decorators: [{
|
|
17
|
+
type: NgModule
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHktY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2lkZW50aXR5L2NvbmZpZy9zcmMvaWRlbnRpdHktY29uZmlnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFdEUsTUFDYSxvQkFBb0I7SUFDL0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztTQUN0QyxDQUFDO0lBQ0osQ0FBQzs4R0FOVSxvQkFBb0I7K0dBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9COztTQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElERU5USVRZX1JPVVRFX1BST1ZJREVSUyB9IGZyb20gJy4vcHJvdmlkZXJzL3JvdXRlLnByb3ZpZGVyJztcclxuXHJcbkBOZ01vZHVsZSgpXHJcbmV4cG9ydCBjbGFzcyBJZGVudGl0eUNvbmZpZ01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZGVudGl0eUNvbmZpZ01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IElkZW50aXR5Q29uZmlnTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtJREVOVElUWV9ST1VURV9QUk9WSURFUlNdLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './route.provider';
|
|
1
|
+
export * from './route.provider';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pZGVudGl0eS9jb25maWcvc3JjL3Byb3ZpZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS5wcm92aWRlcic7XHJcbiJdfQ==
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { RoutesService } from '@abp/ng.core';
|
|
2
|
-
import { APP_INITIALIZER } from '@angular/core';
|
|
3
|
-
export const IDENTITY_ROUTE_PROVIDERS = [
|
|
4
|
-
{ provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },
|
|
5
|
-
];
|
|
6
|
-
export function configureRoutes(routesService) {
|
|
7
|
-
return () => {
|
|
8
|
-
routesService.add([
|
|
9
|
-
{
|
|
10
|
-
path: undefined,
|
|
11
|
-
name: "AbpIdentity::Menu:IdentityManagement" /* eIdentityRouteNames.IdentityManagement */,
|
|
12
|
-
parentName: "AbpUiNavigation::Menu:Administration" /* eThemeSharedRouteNames.Administration */,
|
|
13
|
-
requiredPolicy: "AbpIdentity.Roles || AbpIdentity.Users" /* eIdentityPolicyNames.IdentityManagement */,
|
|
14
|
-
iconClass: 'fa fa-id-card-o',
|
|
15
|
-
layout: "application" /* eLayoutType.application */,
|
|
16
|
-
order: 1,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
path: '/identity/roles',
|
|
20
|
-
name: "AbpIdentity::Roles" /* eIdentityRouteNames.Roles */,
|
|
21
|
-
parentName: "AbpIdentity::Menu:IdentityManagement" /* eIdentityRouteNames.IdentityManagement */,
|
|
22
|
-
requiredPolicy: "AbpIdentity.Roles" /* eIdentityPolicyNames.Roles */,
|
|
23
|
-
order: 1,
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
path: '/identity/users',
|
|
27
|
-
name: "AbpIdentity::Users" /* eIdentityRouteNames.Users */,
|
|
28
|
-
parentName: "AbpIdentity::Menu:IdentityManagement" /* eIdentityRouteNames.IdentityManagement */,
|
|
29
|
-
requiredPolicy: "AbpIdentity.Users" /* eIdentityPolicyNames.Users */,
|
|
30
|
-
order: 2,
|
|
31
|
-
},
|
|
32
|
-
]);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
1
|
+
import { RoutesService } from '@abp/ng.core';
|
|
2
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
3
|
+
export const IDENTITY_ROUTE_PROVIDERS = [
|
|
4
|
+
{ provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },
|
|
5
|
+
];
|
|
6
|
+
export function configureRoutes(routesService) {
|
|
7
|
+
return () => {
|
|
8
|
+
routesService.add([
|
|
9
|
+
{
|
|
10
|
+
path: undefined,
|
|
11
|
+
name: "AbpIdentity::Menu:IdentityManagement" /* eIdentityRouteNames.IdentityManagement */,
|
|
12
|
+
parentName: "AbpUiNavigation::Menu:Administration" /* eThemeSharedRouteNames.Administration */,
|
|
13
|
+
requiredPolicy: "AbpIdentity.Roles || AbpIdentity.Users" /* eIdentityPolicyNames.IdentityManagement */,
|
|
14
|
+
iconClass: 'fa fa-id-card-o',
|
|
15
|
+
layout: "application" /* eLayoutType.application */,
|
|
16
|
+
order: 1,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
path: '/identity/roles',
|
|
20
|
+
name: "AbpIdentity::Roles" /* eIdentityRouteNames.Roles */,
|
|
21
|
+
parentName: "AbpIdentity::Menu:IdentityManagement" /* eIdentityRouteNames.IdentityManagement */,
|
|
22
|
+
requiredPolicy: "AbpIdentity.Roles" /* eIdentityPolicyNames.Roles */,
|
|
23
|
+
order: 1,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
path: '/identity/users',
|
|
27
|
+
name: "AbpIdentity::Users" /* eIdentityRouteNames.Users */,
|
|
28
|
+
parentName: "AbpIdentity::Menu:IdentityManagement" /* eIdentityRouteNames.IdentityManagement */,
|
|
29
|
+
requiredPolicy: "AbpIdentity.Users" /* eIdentityPolicyNames.Users */,
|
|
30
|
+
order: 2,
|
|
31
|
+
},
|
|
32
|
+
]);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
35
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pZGVudGl0eS9jb25maWcvc3JjL3Byb3ZpZGVycy9yb3V0ZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJaEQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtDQUM5RixDQUFDO0FBRUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxhQUE0QjtJQUMxRCxPQUFPLEdBQUcsRUFBRTtRQUNWLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDaEI7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxxRkFBd0M7Z0JBQzVDLFVBQVUsb0ZBQXVDO2dCQUNqRCxjQUFjLHdGQUF5QztnQkFDdkQsU0FBUyxFQUFFLGlCQUFpQjtnQkFDNUIsTUFBTSw2Q0FBeUI7Z0JBQy9CLEtBQUssRUFBRSxDQUFDO2FBQ1Q7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixJQUFJLHNEQUEyQjtnQkFDL0IsVUFBVSxxRkFBd0M7Z0JBQ2xELGNBQWMsc0RBQTRCO2dCQUMxQyxLQUFLLEVBQUUsQ0FBQzthQUNUO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsSUFBSSxzREFBMkI7Z0JBQy9CLFVBQVUscUZBQXdDO2dCQUNsRCxjQUFjLHNEQUE0QjtnQkFDMUMsS0FBSyxFQUFFLENBQUM7YUFDVDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlTGF5b3V0VHlwZSwgUm91dGVzU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IGVUaGVtZVNoYXJlZFJvdXRlTmFtZXMgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlSWRlbnRpdHlQb2xpY3lOYW1lcyB9IGZyb20gJy4uL2VudW1zL3BvbGljeS1uYW1lcyc7XHJcbmltcG9ydCB7IGVJZGVudGl0eVJvdXRlTmFtZXMgfSBmcm9tICcuLi9lbnVtcy9yb3V0ZS1uYW1lcyc7XHJcblxyXG5leHBvcnQgY29uc3QgSURFTlRJVFlfUk9VVEVfUFJPVklERVJTID0gW1xyXG4gIHsgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBjb25maWd1cmVSb3V0ZXMsIGRlcHM6IFtSb3V0ZXNTZXJ2aWNlXSwgbXVsdGk6IHRydWUgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVSb3V0ZXMocm91dGVzU2VydmljZTogUm91dGVzU2VydmljZSkge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICByb3V0ZXNTZXJ2aWNlLmFkZChbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbmFtZTogZUlkZW50aXR5Um91dGVOYW1lcy5JZGVudGl0eU1hbmFnZW1lbnQsXHJcbiAgICAgICAgcGFyZW50TmFtZTogZVRoZW1lU2hhcmVkUm91dGVOYW1lcy5BZG1pbmlzdHJhdGlvbixcclxuICAgICAgICByZXF1aXJlZFBvbGljeTogZUlkZW50aXR5UG9saWN5TmFtZXMuSWRlbnRpdHlNYW5hZ2VtZW50LFxyXG4gICAgICAgIGljb25DbGFzczogJ2ZhIGZhLWlkLWNhcmQtbycsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICBvcmRlcjogMSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvaWRlbnRpdHkvcm9sZXMnLFxyXG4gICAgICAgIG5hbWU6IGVJZGVudGl0eVJvdXRlTmFtZXMuUm9sZXMsXHJcbiAgICAgICAgcGFyZW50TmFtZTogZUlkZW50aXR5Um91dGVOYW1lcy5JZGVudGl0eU1hbmFnZW1lbnQsXHJcbiAgICAgICAgcmVxdWlyZWRQb2xpY3k6IGVJZGVudGl0eVBvbGljeU5hbWVzLlJvbGVzLFxyXG4gICAgICAgIG9yZGVyOiAxLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJy9pZGVudGl0eS91c2VycycsXHJcbiAgICAgICAgbmFtZTogZUlkZW50aXR5Um91dGVOYW1lcy5Vc2VycyxcclxuICAgICAgICBwYXJlbnROYW1lOiBlSWRlbnRpdHlSb3V0ZU5hbWVzLklkZW50aXR5TWFuYWdlbWVudCxcclxuICAgICAgICByZXF1aXJlZFBvbGljeTogZUlkZW50aXR5UG9saWN5TmFtZXMuVXNlcnMsXHJcbiAgICAgICAgb3JkZXI6IDIsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './enums';
|
|
2
|
-
export * from './identity-config.module';
|
|
3
|
-
export * from './providers';
|
|
1
|
+
export * from './enums';
|
|
2
|
+
export * from './identity-config.module';
|
|
3
|
+
export * from './providers';
|
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2lkZW50aXR5L2NvbmZpZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnVtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaWRlbnRpdHktY29uZmlnLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcclxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './roles/roles.component';
|
|
2
|
-
export * from './users/users.component';
|
|
1
|
+
export * from './roles/roles.component';
|
|
2
|
+
export * from './users/users.component';
|
|
3
3
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pZGVudGl0eS9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { ListService } from '@abp/ng.core';
|
|
2
|
+
import { IdentityRoleService } from '@abp/ng.identity/proxy';
|
|
3
|
+
import { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';
|
|
4
|
+
import { EXTENSIONS_IDENTIFIER, FormPropData, generateFormFromProps, } from '@abp/ng.theme.shared/extensions';
|
|
5
|
+
import { Component, Injector } from '@angular/core';
|
|
6
|
+
import { finalize } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@abp/ng.core";
|
|
9
|
+
import * as i2 from "@abp/ng.theme.shared";
|
|
10
|
+
import * as i3 from "@abp/ng.identity/proxy";
|
|
11
|
+
import * as i4 from "@angular/forms";
|
|
12
|
+
import * as i5 from "@ngx-validate/core";
|
|
13
|
+
import * as i6 from "@abp/ng.theme.shared/extensions";
|
|
14
|
+
import * as i7 from "@abp/ng.permission-management";
|
|
15
|
+
import * as i8 from "@abp/ng.components/page";
|
|
16
|
+
class RolesComponent {
|
|
17
|
+
constructor(list, confirmationService, toasterService, injector, service) {
|
|
18
|
+
this.list = list;
|
|
19
|
+
this.confirmationService = confirmationService;
|
|
20
|
+
this.toasterService = toasterService;
|
|
21
|
+
this.injector = injector;
|
|
22
|
+
this.service = service;
|
|
23
|
+
this.data = { items: [], totalCount: 0 };
|
|
24
|
+
this.visiblePermissions = false;
|
|
25
|
+
this.modalBusy = false;
|
|
26
|
+
this.permissionManagementKey = "PermissionManagement.PermissionManagementComponent" /* ePermissionManagementComponents.PermissionManagement */;
|
|
27
|
+
this.onVisiblePermissionChange = (event) => {
|
|
28
|
+
this.visiblePermissions = event;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.hookToQuery();
|
|
33
|
+
}
|
|
34
|
+
buildForm() {
|
|
35
|
+
const data = new FormPropData(this.injector, this.selected);
|
|
36
|
+
this.form = generateFormFromProps(data);
|
|
37
|
+
}
|
|
38
|
+
openModal() {
|
|
39
|
+
this.buildForm();
|
|
40
|
+
this.isModalVisible = true;
|
|
41
|
+
}
|
|
42
|
+
add() {
|
|
43
|
+
this.selected = {};
|
|
44
|
+
this.openModal();
|
|
45
|
+
}
|
|
46
|
+
edit(id) {
|
|
47
|
+
this.service.get(id).subscribe(res => {
|
|
48
|
+
this.selected = res;
|
|
49
|
+
this.openModal();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
save() {
|
|
53
|
+
if (!this.form.valid)
|
|
54
|
+
return;
|
|
55
|
+
this.modalBusy = true;
|
|
56
|
+
const { id } = this.selected || {};
|
|
57
|
+
(id
|
|
58
|
+
? this.service.update(id, { ...this.selected, ...this.form.value })
|
|
59
|
+
: this.service.create(this.form.value))
|
|
60
|
+
.pipe(finalize(() => (this.modalBusy = false)))
|
|
61
|
+
.subscribe(() => {
|
|
62
|
+
this.isModalVisible = false;
|
|
63
|
+
this.list.get();
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
delete(id, name) {
|
|
67
|
+
this.confirmationService
|
|
68
|
+
.warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {
|
|
69
|
+
messageLocalizationParams: [name],
|
|
70
|
+
})
|
|
71
|
+
.subscribe((status) => {
|
|
72
|
+
if (status === Confirmation.Status.confirm) {
|
|
73
|
+
this.toasterService.success('AbpUi::SuccessfullyDeleted');
|
|
74
|
+
this.service.delete(id).subscribe(() => this.list.get());
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
hookToQuery() {
|
|
79
|
+
this.list.hookToQuery(query => this.service.getList(query)).subscribe(res => (this.data = res));
|
|
80
|
+
}
|
|
81
|
+
openPermissionsModal(providerKey) {
|
|
82
|
+
this.providerKey = providerKey;
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
this.visiblePermissions = true;
|
|
85
|
+
}, 0);
|
|
86
|
+
}
|
|
87
|
+
sort(data) {
|
|
88
|
+
const { prop, dir } = data.sorts[0];
|
|
89
|
+
this.list.sortKey = prop;
|
|
90
|
+
this.list.sortOrder = dir;
|
|
91
|
+
}
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RolesComponent, deps: [{ token: i1.ListService }, { token: i2.ConfirmationService }, { token: i2.ToasterService }, { token: i0.Injector }, { token: i3.IdentityRoleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: RolesComponent, selector: "abp-roles", providers: [
|
|
94
|
+
ListService,
|
|
95
|
+
{
|
|
96
|
+
provide: EXTENSIONS_IDENTIFIER,
|
|
97
|
+
useValue: "Identity.RolesComponent" /* eIdentityComponents.Roles */,
|
|
98
|
+
},
|
|
99
|
+
], ngImport: i0, template: "<abp-page [title]=\"'AbpIdentity::Roles' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\" validateOnSubmit>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'R' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true },\r\n hideBadges: { value: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i1.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.ExtensibleFormComponent, selector: "abp-extensible-form", inputs: ["selectedRecord"], exportAs: ["abpExtensibleForm"] }, { kind: "component", type: i6.ExtensibleTableComponent, selector: "abp-extensible-table", inputs: ["actionsText", "data", "list", "recordsTotal", "actionsColumnWidth", "actionsTemplate"], outputs: ["tableActivate"], exportAs: ["abpExtensibleTable"] }, { kind: "component", type: i7.PermissionManagementComponent, selector: "abp-permission-management", inputs: ["providerName", "providerKey", "hideBadges", "entityDisplayName", "visible"], outputs: ["visibleChange"], exportAs: ["abpPermissionManagement"] }, { kind: "component", type: i8.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
100
|
+
}
|
|
101
|
+
export { RolesComponent };
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RolesComponent, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ selector: 'abp-roles', providers: [
|
|
105
|
+
ListService,
|
|
106
|
+
{
|
|
107
|
+
provide: EXTENSIONS_IDENTIFIER,
|
|
108
|
+
useValue: "Identity.RolesComponent" /* eIdentityComponents.Roles */,
|
|
109
|
+
},
|
|
110
|
+
], template: "<abp-page [title]=\"'AbpIdentity::Roles' | abpLocalization\" [toolbar]=\"data.items\">\r\n <div id=\"identity-roles-wrapper\" class=\"card\">\r\n <div class=\"card-body\">\r\n <abp-extensible-table\r\n [data]=\"data.items\"\r\n [recordsTotal]=\"data.totalCount\"\r\n [list]=\"list\"\r\n ></abp-extensible-table>\r\n </div>\r\n </div>\r\n\r\n <abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\">\r\n <ng-template #abpHeader>\r\n <h3>{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\" validateOnSubmit>\r\n <abp-extensible-form [selectedRecord]=\"selected\"></abp-extensible-form>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpIdentity::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"form?.invalid\" (click)=\"save()\">{{\r\n 'AbpIdentity::Save' | abpLocalization\r\n }}</abp-button>\r\n </ng-template>\r\n </abp-modal>\r\n\r\n <abp-permission-management\r\n #abpPermissionManagement=\"abpPermissionManagement\"\r\n *abpReplaceableTemplate=\"\r\n {\r\n inputs: {\r\n providerName: { value: 'R' },\r\n providerKey: { value: providerKey },\r\n visible: { value: visiblePermissions, twoWay: true },\r\n hideBadges: { value: true }\r\n },\r\n outputs: { visibleChange: onVisiblePermissionChange },\r\n componentKey: permissionManagementKey\r\n };\r\n let init = initTemplate\r\n \"\r\n (abpInit)=\"init(abpPermissionManagement)\"\r\n >\r\n </abp-permission-management>\r\n</abp-page>\r\n" }]
|
|
111
|
+
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.ConfirmationService }, { type: i2.ToasterService }, { type: i0.Injector }, { type: i3.IdentityRoleService }]; } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaWRlbnRpdHkvc3JjL2xpYi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2lkZW50aXR5L3NyYy9saWIvY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFrRCxNQUFNLGNBQWMsQ0FBQztBQUMzRixPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUUsT0FBTyxFQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFlBQVksRUFDWixxQkFBcUIsR0FDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFHMUMsTUFXYSxjQUFjO0lBcUJ6QixZQUNrQixJQUFpRCxFQUN2RCxtQkFBd0MsRUFDMUMsY0FBOEIsRUFDNUIsUUFBa0IsRUFDbEIsT0FBNEI7UUFKdEIsU0FBSSxHQUFKLElBQUksQ0FBNkM7UUFDdkQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQXpCeEMsU0FBSSxHQUFvQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBUXJFLHVCQUFrQixHQUFHLEtB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QUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsV0FBbUI7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDakMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFTO1FBQ1osTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7SUFDNUIsQ0FBQzs4R0FuR1UsY0FBYztrR0FBZCxjQUFjLG9DQVJkO1lBQ1QsV0FBVztZQUNYO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsMkRBQTJCO2FBQ3BDO1NBQ0YsMEJDdkJILDgwREFtREE7O1NEMUJhLGNBQWM7MkZBQWQsY0FBYztrQkFYMUIsU0FBUzsrQkFDRSxXQUFXLGFBRVY7d0JBQ1QsV0FBVzt3QkFDWDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLDJEQUEyQjt5QkFDcEM7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0U2VydmljZSwgUGFnZWRBbmRTb3J0ZWRSZXN1bHRSZXF1ZXN0RHRvLCBQYWdlZFJlc3VsdER0byB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IElkZW50aXR5Um9sZUR0bywgSWRlbnRpdHlSb2xlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuaWRlbnRpdHkvcHJveHknO1xyXG5pbXBvcnQgeyBlUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRzIH0gZnJvbSAnQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQnO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2V9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHtcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgRm9ybVByb3BEYXRhLFxyXG4gIGdlbmVyYXRlRm9ybUZyb21Qcm9wcyxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlSWRlbnRpdHlDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1yb2xlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JvbGVzLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIExpc3RTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgICAgIHVzZVZhbHVlOiBlSWRlbnRpdHlDb21wb25lbnRzLlJvbGVzLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm9sZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPElkZW50aXR5Um9sZUR0bz4gPSB7IGl0ZW1zOiBbXSwgdG90YWxDb3VudDogMCB9O1xyXG5cclxuICBmb3JtITogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgc2VsZWN0ZWQ/OiBJZGVudGl0eVJvbGVEdG87XHJcblxyXG4gIGlzTW9kYWxWaXNpYmxlITogYm9vbGVhbjtcclxuXHJcbiAgdmlzaWJsZVBlcm1pc3Npb25zID0gZmFsc2U7XHJcblxyXG4gIHByb3ZpZGVyS2V5Pzogc3RyaW5nO1xyXG5cclxuICBtb2RhbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgcGVybWlzc2lvbk1hbmFnZW1lbnRLZXkgPSBlUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRzLlBlcm1pc3Npb25NYW5hZ2VtZW50O1xyXG5cclxuICBvblZpc2libGVQZXJtaXNzaW9uQ2hhbmdlID0gKGV2ZW50OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLnZpc2libGVQZXJtaXNzaW9ucyA9IGV2ZW50O1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlPFBhZ2VkQW5kU29ydGVkUmVzdWx0UmVxdWVzdER0bz4sXHJcbiAgICBwcm90ZWN0ZWQgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RlclNlcnZpY2U6IFRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBzZXJ2aWNlOiBJZGVudGl0eVJvbGVTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KCk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1Qcm9wRGF0YSh0aGlzLmluamVjdG9yLCB0aGlzLnNlbGVjdGVkKTtcclxuICAgIHRoaXMuZm9ybSA9IGdlbmVyYXRlRm9ybUZyb21Qcm9wcyhkYXRhKTtcclxuICB9XHJcblxyXG4gIG9wZW5Nb2RhbCgpIHtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGFkZCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fSBhcyBJZGVudGl0eVJvbGVEdG87XHJcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xyXG4gIH1cclxuXHJcbiAgZWRpdChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0KGlkKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IHJlcztcclxuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSByZXR1cm47XHJcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgeyBpZCB9ID0gdGhpcy5zZWxlY3RlZCB8fCB7fTtcclxuICAgIChpZFxyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUoaWQsIHsgLi4udGhpcy5zZWxlY3RlZCwgLi4udGhpcy5mb3JtLnZhbHVlIH0pXHJcbiAgICAgIDogdGhpcy5zZXJ2aWNlLmNyZWF0ZSh0aGlzLmZvcm0udmFsdWUpXHJcbiAgICApXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLm1vZGFsQnVzeSA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxpc3QuZ2V0KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXHJcbiAgICAgIC53YXJuKCdBYnBJZGVudGl0eTo6Um9sZURlbGV0aW9uQ29uZmlybWF0aW9uTWVzc2FnZScsICdBYnBJZGVudGl0eTo6QXJlWW91U3VyZScsIHtcclxuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbbmFtZV0sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT09IENvbmZpcm1hdGlvbi5TdGF0dXMuY29uZmlybSkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKCdBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZCcpO1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZShpZCkuc3Vic2NyaWJlKCgpID0+IHRoaXMubGlzdC5nZXQoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaG9va1RvUXVlcnkoKSB7XHJcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkocXVlcnkgPT4gdGhpcy5zZXJ2aWNlLmdldExpc3QocXVlcnkpKS5zdWJzY3JpYmUocmVzID0+ICh0aGlzLmRhdGEgPSByZXMpKTtcclxuICB9XHJcblxyXG4gIG9wZW5QZXJtaXNzaW9uc01vZGFsKHByb3ZpZGVyS2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucHJvdmlkZXJLZXkgPSBwcm92aWRlcktleTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZpc2libGVQZXJtaXNzaW9ucyA9IHRydWU7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHNvcnQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB7IHByb3AsIGRpciB9ID0gZGF0YS5zb3J0c1swXTtcclxuICAgIHRoaXMubGlzdC5zb3J0S2V5ID0gcHJvcDtcclxuICAgIHRoaXMubGlzdC5zb3J0T3JkZXIgPSBkaXI7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0FicElkZW50aXR5OjpSb2xlcycgfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJkYXRhLml0ZW1zXCI+XHJcbiAgPGRpdiBpZD1cImlkZW50aXR5LXJvbGVzLXdyYXBwZXJcIiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGFicC1leHRlbnNpYmxlLXRhYmxlXHJcbiAgICAgICAgW2RhdGFdPVwiZGF0YS5pdGVtc1wiXHJcbiAgICAgICAgW3JlY29yZHNUb3RhbF09XCJkYXRhLnRvdGFsQ291bnRcIlxyXG4gICAgICAgIFtsaXN0XT1cImxpc3RcIlxyXG4gICAgICA+PC9hYnAtZXh0ZW5zaWJsZS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiaXNNb2RhbFZpc2libGVcIiBbYnVzeV09XCJtb2RhbEJ1c3lcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgICA8aDM+e3sgKHNlbGVjdGVkPy5pZCA/ICdBYnBJZGVudGl0eTo6RWRpdCcgOiAnQWJwSWRlbnRpdHk6Ok5ld1JvbGUnKSB8IGFicExvY2FsaXphdGlvbiB9fTwvaDM+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cInNhdmUoKVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgICAgPGFicC1leHRlbnNpYmxlLWZvcm0gW3NlbGVjdGVkUmVjb3JkXT1cInNlbGVjdGVkXCI+PC9hYnAtZXh0ZW5zaWJsZS1mb3JtPlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgICAge3sgJ0FicElkZW50aXR5OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIFtkaXNhYmxlZF09XCJmb3JtPy5pbnZhbGlkXCIgKGNsaWNrKT1cInNhdmUoKVwiPnt7XHJcbiAgICAgICAgJ0FicElkZW50aXR5OjpTYXZlJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgIH19PC9hYnAtYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2FicC1tb2RhbD5cclxuXHJcbiAgPGFicC1wZXJtaXNzaW9uLW1hbmFnZW1lbnRcclxuICAgICNhYnBQZXJtaXNzaW9uTWFuYWdlbWVudD1cImFicFBlcm1pc3Npb25NYW5hZ2VtZW50XCJcclxuICAgICphYnBSZXBsYWNlYWJsZVRlbXBsYXRlPVwiXHJcbiAgICB7XHJcbiAgICAgIGlucHV0czoge1xyXG4gICAgICAgIHByb3ZpZGVyTmFtZTogeyB2YWx1ZTogJ1InIH0sXHJcbiAgICAgICAgcHJvdmlkZXJLZXk6IHsgdmFsdWU6IHByb3ZpZGVyS2V5IH0sXHJcbiAgICAgICAgdmlzaWJsZTogeyB2YWx1ZTogdmlzaWJsZVBlcm1pc3Npb25zLCB0d29XYXk6IHRydWUgfSxcclxuICAgICAgICBoaWRlQmFkZ2VzOiB7IHZhbHVlOiB0cnVlIH1cclxuICAgICAgfSxcclxuICAgICAgb3V0cHV0czogeyB2aXNpYmxlQ2hhbmdlOiBvblZpc2libGVQZXJtaXNzaW9uQ2hhbmdlIH0sXHJcbiAgICAgIGNvbXBvbmVudEtleTogcGVybWlzc2lvbk1hbmFnZW1lbnRLZXlcclxuICAgIH07XHJcbiAgICBsZXQgaW5pdCA9IGluaXRUZW1wbGF0ZVxyXG4gIFwiXHJcbiAgICAoYWJwSW5pdCk9XCJpbml0KGFicFBlcm1pc3Npb25NYW5hZ2VtZW50KVwiXHJcbiAgPlxyXG4gIDwvYWJwLXBlcm1pc3Npb24tbWFuYWdlbWVudD5cclxuPC9hYnAtcGFnZT5cclxuIl19
|