@abp/ng.account 5.0.1 → 5.1.3
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/config/package.json +5 -5
- package/{esm2015/abp-ng.account.js → esm2020/abp-ng.account.mjs} +0 -0
- package/{esm2015/config/abp-ng.account-config.js → esm2020/config/abp-ng.account-config.mjs} +0 -0
- package/{esm2015/config/account-config.module.js → esm2020/config/account-config.module.mjs} +5 -5
- package/{esm2015/config/enums/index.js → esm2020/config/enums/index.mjs} +0 -0
- package/{esm2015/config/enums/route-names.js → esm2020/config/enums/route-names.mjs} +0 -0
- package/{esm2015/config/providers/index.js → esm2020/config/providers/index.mjs} +0 -0
- package/{esm2015/config/providers/route.provider.js → esm2020/config/providers/route.provider.mjs} +0 -0
- package/{esm2015/config/public-api.js → esm2020/config/public-api.mjs} +0 -0
- package/{esm2015/config/utils/factories.js → esm2020/config/utils/factories.mjs} +0 -0
- package/{esm2015/lib/account-routing.module.js → esm2020/lib/account-routing.module.mjs} +5 -5
- package/{esm2015/lib/account.module.js → esm2020/lib/account.module.mjs} +5 -5
- package/esm2020/lib/components/change-password/change-password.component.mjs +87 -0
- package/esm2020/lib/components/forgot-password/forgot-password.component.mjs +43 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
- package/esm2020/lib/components/login/login.component.mjs +64 -0
- package/esm2020/lib/components/manage-profile/manage-profile.component.mjs +45 -0
- package/esm2020/lib/components/personal-settings/personal-settings.component.mjs +55 -0
- package/esm2020/lib/components/register/register.component.mjs +83 -0
- package/esm2020/lib/components/reset-password/reset-password.component.mjs +68 -0
- package/{esm2015/lib/enums/components.js → esm2020/lib/enums/components.mjs} +0 -0
- package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +0 -0
- package/{esm2015/lib/guards/authentication-flow.guard.js → esm2020/lib/guards/authentication-flow.guard.mjs} +4 -4
- package/{esm2015/lib/guards/index.js → esm2020/lib/guards/index.mjs} +0 -0
- package/{esm2015/lib/models/account.js → esm2020/lib/models/account.mjs} +0 -0
- package/{esm2015/lib/models/config-options.js → esm2020/lib/models/config-options.mjs} +0 -0
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
- package/{esm2015/lib/services/manage-profile.state.service.js → esm2020/lib/services/manage-profile.state.service.mjs} +4 -4
- package/{esm2015/lib/tokens/config-options.token.js → esm2020/lib/tokens/config-options.token.mjs} +0 -0
- package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +0 -0
- package/{esm2015/lib/utils/auth-utils.js → esm2020/lib/utils/auth-utils.mjs} +0 -0
- package/esm2020/lib/utils/factory-utils.mjs +7 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{abp-ng.account-config.js → abp-ng.account-config.mjs} +5 -5
- package/fesm2015/abp-ng.account-config.mjs.map +1 -0
- package/fesm2015/abp-ng.account.mjs +571 -0
- package/fesm2015/abp-ng.account.mjs.map +1 -0
- package/fesm2020/abp-ng.account-config.mjs +90 -0
- package/fesm2020/abp-ng.account-config.mjs.map +1 -0
- package/fesm2020/abp-ng.account.mjs +575 -0
- package/fesm2020/abp-ng.account.mjs.map +1 -0
- package/package.json +30 -9
- package/bundles/abp-ng.account-config.umd.js +0 -120
- package/bundles/abp-ng.account-config.umd.js.map +0 -1
- package/bundles/abp-ng.account.umd.js +0 -974
- package/bundles/abp-ng.account.umd.js.map +0 -1
- package/esm2015/lib/components/change-password/change-password.component.js +0 -90
- package/esm2015/lib/components/forgot-password/forgot-password.component.js +0 -46
- package/esm2015/lib/components/login/login.component.js +0 -68
- package/esm2015/lib/components/manage-profile/manage-profile.component.js +0 -50
- package/esm2015/lib/components/personal-settings/personal-settings.component.js +0 -59
- package/esm2015/lib/components/register/register.component.js +0 -87
- package/esm2015/lib/components/reset-password/reset-password.component.js +0 -71
- package/esm2015/lib/utils/factory-utils.js +0 -4
- package/fesm2015/abp-ng.account-config.js.map +0 -1
- package/fesm2015/abp-ng.account.js +0 -598
- package/fesm2015/abp-ng.account.js.map +0 -1
package/config/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"fesm2015": "../fesm2015/abp-ng.account-config.
|
|
2
|
+
"module": "../fesm2015/abp-ng.account-config.mjs",
|
|
3
|
+
"es2020": "../fesm2020/abp-ng.account-config.mjs",
|
|
4
|
+
"esm2020": "../esm2020/config/abp-ng.account-config.mjs",
|
|
5
|
+
"fesm2020": "../fesm2020/abp-ng.account-config.mjs",
|
|
6
|
+
"fesm2015": "../fesm2015/abp-ng.account-config.mjs",
|
|
7
7
|
"typings": "abp-ng.account-config.d.ts",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"name": "@abp/ng.account/config"
|
|
File without changes
|
package/{esm2015/config/abp-ng.account-config.js → esm2020/config/abp-ng.account-config.mjs}
RENAMED
|
File without changes
|
package/{esm2015/config/account-config.module.js → esm2020/config/account-config.module.mjs}
RENAMED
|
@@ -18,10 +18,10 @@ export class AccountConfigModule {
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
AccountConfigModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
22
|
-
AccountConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
23
|
-
AccountConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
21
|
+
AccountConfigModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
22
|
+
AccountConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountConfigModule });
|
|
23
|
+
AccountConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountConfigModule });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountConfigModule, decorators: [{
|
|
25
25
|
type: NgModule
|
|
26
26
|
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1jb25maWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9jb25maWcvc3JjL2FjY291bnQtY29uZmlnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUduRSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFO2dCQUNULHVCQUF1QjtnQkFDdkI7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsVUFBVSxFQUFFLDhCQUE4QjtvQkFDMUMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUNqQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2dIQWJVLG1CQUFtQjtpSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOQVZJR0FURV9UT19NQU5BR0VfUFJPRklMRSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEFDQ09VTlRfUk9VVEVfUFJPVklERVJTIH0gZnJvbSAnLi9wcm92aWRlcnMvcm91dGUucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBuYXZpZ2F0ZVRvTWFuYWdlUHJvZmlsZUZhY3RvcnkgfSBmcm9tICcuL3V0aWxzL2ZhY3Rvcmllcyc7XHJcblxyXG5ATmdNb2R1bGUoKVxyXG5leHBvcnQgY2xhc3MgQWNjb3VudENvbmZpZ01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBY2NvdW50Q29uZmlnTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQWNjb3VudENvbmZpZ01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQUNDT1VOVF9ST1VURV9QUk9WSURFUlMsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTkFWSUdBVEVfVE9fTUFOQUdFX1BST0ZJTEUsXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBuYXZpZ2F0ZVRvTWFuYWdlUHJvZmlsZUZhY3RvcnksXHJcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/{esm2015/config/providers/route.provider.js → esm2020/config/providers/route.provider.mjs}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -76,14 +76,14 @@ const routes = [
|
|
|
76
76
|
];
|
|
77
77
|
export class AccountRoutingModule {
|
|
78
78
|
}
|
|
79
|
-
AccountRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
80
|
-
AccountRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
81
|
-
AccountRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
79
|
+
AccountRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
80
|
+
AccountRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
81
|
+
AccountRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountRoutingModule, imports: [[RouterModule.forChild(routes)], RouterModule] });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountRoutingModule, decorators: [{
|
|
83
83
|
type: NgModule,
|
|
84
84
|
args: [{
|
|
85
85
|
imports: [RouterModule.forChild(routes)],
|
|
86
86
|
exports: [RouterModule],
|
|
87
87
|
}]
|
|
88
88
|
}] });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FjY291bnQvc3JjL2xpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsa0NBQWtDLEVBQ2xDLHFCQUFxQixHQUN0QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUU3RSxNQUFNLE1BQU0sR0FBVztJQUNyQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFO0lBQ3BEO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLFFBQVEsRUFBRTtZQUNSO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSxrQ0FBa0M7Z0JBQzdDLFdBQVcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN0QyxJQUFJLEVBQUU7b0JBQ0osb0JBQW9CLEVBQUU7d0JBQ3BCLEdBQUcsc0NBQTBCO3dCQUM3QixnQkFBZ0IsRUFBRSxjQUFjO3FCQUNrQjtpQkFDckQ7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsa0NBQWtDO2dCQUM3QyxXQUFXLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEMsSUFBSSxFQUFFO29CQUNKLG9CQUFvQixFQUFFO3dCQUNwQixHQUFHLDRDQUE2Qjt3QkFDaEMsZ0JBQWdCLEVBQUUsaUJBQWlCO3FCQUNrQjtpQkFDeEQ7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFNBQVMsRUFBRSxrQ0FBa0M7Z0JBQzdDLFdBQVcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN0QyxJQUFJLEVBQUU7b0JBQ0osb0JBQW9CLEVBQUU7d0JBQ3BCLEdBQUcsd0RBQW1DO3dCQUN0QyxnQkFBZ0IsRUFBRSx1QkFBdUI7cUJBQ2tCO2lCQUM5RDthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsU0FBUyxFQUFFLGtDQUFrQztnQkFDN0MsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFO29CQUNKLGdCQUFnQixFQUFFLEtBQUs7b0JBQ3ZCLG9CQUFvQixFQUFFO3dCQUNwQixHQUFHLHNEQUFrQzt3QkFDckMsZ0JBQWdCLEVBQUUsc0JBQXNCO3FCQUNrQjtpQkFDN0Q7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLFNBQVMsRUFBRSxrQ0FBa0M7Z0JBQzdDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDeEIsSUFBSSxFQUFFO29CQUNKLG9CQUFvQixFQUFFO3dCQUNwQixHQUFHLHNEQUFrQzt3QkFDckMsZ0JBQWdCLEVBQUUsc0JBQXNCO3FCQUNrQjtpQkFDN0Q7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLHdDQUZyQixZQUFZO2tIQUVYLG9CQUFvQixZQUh0QixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDOUIsWUFBWTsyRkFFWCxvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXV0aEd1YXJkLFxyXG4gIFJlcGxhY2VhYmxlQ29tcG9uZW50cyxcclxuICBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gIFJvdXRlck91dGxldENvbXBvbmVudCxcclxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWFuYWdlUHJvZmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtcHJvZmlsZS9tYW5hZ2UtcHJvZmlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWdpc3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNldFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGVBY2NvdW50Q29tcG9uZW50cyB9IGZyb20gJy4vZW51bXMvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRmxvd0d1YXJkIH0gZnJvbSAnLi9ndWFyZHMvYXV0aGVudGljYXRpb24tZmxvdy5ndWFyZCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7IHBhdGg6ICcnLCBwYXRoTWF0Y2g6ICdmdWxsJywgcmVkaXJlY3RUbzogJ2xvZ2luJyB9LFxyXG4gIHtcclxuICAgIHBhdGg6ICcnLFxyXG4gICAgY29tcG9uZW50OiBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJ2xvZ2luJyxcclxuICAgICAgICBjb21wb25lbnQ6IFJlcGxhY2VhYmxlUm91dGVDb250YWluZXJDb21wb25lbnQsXHJcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtBdXRoZW50aWNhdGlvbkZsb3dHdWFyZF0sXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgcmVwbGFjZWFibGVDb21wb25lbnQ6IHtcclxuICAgICAgICAgICAga2V5OiBlQWNjb3VudENvbXBvbmVudHMuTG9naW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHRDb21wb25lbnQ6IExvZ2luQ29tcG9uZW50LFxyXG4gICAgICAgICAgfSBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUm91dGVEYXRhPExvZ2luQ29tcG9uZW50PixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJ3JlZ2lzdGVyJyxcclxuICAgICAgICBjb21wb25lbnQ6IFJlcGxhY2VhYmxlUm91dGVDb250YWluZXJDb21wb25lbnQsXHJcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtBdXRoZW50aWNhdGlvbkZsb3dHdWFyZF0sXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgcmVwbGFjZWFibGVDb21wb25lbnQ6IHtcclxuICAgICAgICAgICAga2V5OiBlQWNjb3VudENvbXBvbmVudHMuUmVnaXN0ZXIsXHJcbiAgICAgICAgICAgIGRlZmF1bHRDb21wb25lbnQ6IFJlZ2lzdGVyQ29tcG9uZW50LFxyXG4gICAgICAgICAgfSBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUm91dGVEYXRhPFJlZ2lzdGVyQ29tcG9uZW50PixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJ2ZvcmdvdC1wYXNzd29yZCcsXHJcbiAgICAgICAgY29tcG9uZW50OiBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbQXV0aGVudGljYXRpb25GbG93R3VhcmRdLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIHJlcGxhY2VhYmxlQ29tcG9uZW50OiB7XHJcbiAgICAgICAgICAgIGtleTogZUFjY291bnRDb21wb25lbnRzLkZvcmdvdFBhc3N3b3JkLFxyXG4gICAgICAgICAgICBkZWZhdWx0Q29tcG9uZW50OiBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCxcclxuICAgICAgICAgIH0gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJvdXRlRGF0YTxGb3Jnb3RQYXNzd29yZENvbXBvbmVudD4sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICdyZXNldC1wYXNzd29yZCcsXHJcbiAgICAgICAgY29tcG9uZW50OiBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbXSxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICB0ZW5hbnRCb3hWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIHJlcGxhY2VhYmxlQ29tcG9uZW50OiB7XHJcbiAgICAgICAgICAgIGtleTogZUFjY291bnRDb21wb25lbnRzLlJlc2V0UGFzc3dvcmQsXHJcbiAgICAgICAgICAgIGRlZmF1bHRDb21wb25lbnQ6IFJlc2V0UGFzc3dvcmRDb21wb25lbnQsXHJcbiAgICAgICAgICB9IGFzIFJlcGxhY2VhYmxlQ29tcG9uZW50cy5Sb3V0ZURhdGE8UmVzZXRQYXNzd29yZENvbXBvbmVudD4sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICdtYW5hZ2UnLFxyXG4gICAgICAgIGNvbXBvbmVudDogUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgICAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0sXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgcmVwbGFjZWFibGVDb21wb25lbnQ6IHtcclxuICAgICAgICAgICAga2V5OiBlQWNjb3VudENvbXBvbmVudHMuTWFuYWdlUHJvZmlsZSxcclxuICAgICAgICAgICAgZGVmYXVsdENvbXBvbmVudDogTWFuYWdlUHJvZmlsZUNvbXBvbmVudCxcclxuICAgICAgICAgIH0gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJvdXRlRGF0YTxNYW5hZ2VQcm9maWxlQ29tcG9uZW50PixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjb3VudFJvdXRpbmdNb2R1bGUge31cclxuIl19
|
|
@@ -43,8 +43,8 @@ export class AccountModule {
|
|
|
43
43
|
return new LazyModuleFactory(AccountModule.forChild(options));
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
AccountModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
47
|
-
AccountModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
46
|
+
AccountModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
47
|
+
AccountModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountModule, declarations: [LoginComponent,
|
|
48
48
|
RegisterComponent,
|
|
49
49
|
ChangePasswordComponent,
|
|
50
50
|
ManageProfileComponent,
|
|
@@ -61,14 +61,14 @@ AccountModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
61
61
|
PersonalSettingsComponent,
|
|
62
62
|
ForgotPasswordComponent,
|
|
63
63
|
ResetPasswordComponent] });
|
|
64
|
-
AccountModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
64
|
+
AccountModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountModule, imports: [[
|
|
65
65
|
CoreModule,
|
|
66
66
|
AccountRoutingModule,
|
|
67
67
|
ThemeSharedModule,
|
|
68
68
|
NgbDropdownModule,
|
|
69
69
|
NgxValidateCoreModule,
|
|
70
70
|
]] });
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountModule, decorators: [{
|
|
72
72
|
type: NgModule,
|
|
73
73
|
args: [{
|
|
74
74
|
declarations: [...declarations],
|
|
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
82
82
|
exports: [...declarations],
|
|
83
83
|
}]
|
|
84
84
|
}] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hY2NvdW50L3NyYy9saWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXVCLFFBQVEsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOztBQUU5RixNQUFNLFlBQVksR0FBRztJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2QixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2QixzQkFBc0I7Q0FDdkIsQ0FBQztBQWFGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUEwQjtRQUNsRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLGFBQWE7WUFDdkIsU0FBUyxFQUFFO2dCQUNULHVCQUF1QjtnQkFDdkIsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtnQkFDdEQ7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsVUFBVSxFQUFFLDJCQUEyQjtvQkFDdkMsSUFBSSxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQy9CO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUEwQjtRQUNqRCxPQUFPLElBQUksaUJBQWlCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OzBHQWxCVSxhQUFhOzJHQUFiLGFBQWEsaUJBcEJ4QixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2QixzQkFBc0IsYUFNcEIsVUFBVTtRQUNWLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLHFCQUFxQixhQWhCdkIsY0FBYztRQUNkLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6Qix1QkFBdUI7UUFDdkIsc0JBQXNCOzJHQWNYLGFBQWEsWUFUZjtZQUNQLFVBQVU7WUFDVixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixxQkFBcUI7U0FDdEI7MkZBR1UsYUFBYTtrQkFYekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQztvQkFDL0IsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1Ysb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlLCBMYXp5TW9kdWxlRmFjdG9yeSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgTmdNb2R1bGVGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBBY2NvdW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWFuYWdlUHJvZmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtcHJvZmlsZS9tYW5hZ2UtcHJvZmlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQZXJzb25hbFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BlcnNvbmFsLXNldHRpbmdzL3BlcnNvbmFsLXNldHRpbmdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlZ2lzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjY291bnRDb25maWdPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMvY29uZmlnLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBBQ0NPVU5UX0NPTkZJR19PUFRJT05TIH0gZnJvbSAnLi90b2tlbnMvY29uZmlnLW9wdGlvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBhY2NvdW50Q29uZmlnT3B0aW9uc0ZhY3RvcnkgfSBmcm9tICcuL3V0aWxzL2ZhY3RvcnktdXRpbHMnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkZsb3dHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL2F1dGhlbnRpY2F0aW9uLWZsb3cuZ3VhcmQnO1xyXG5pbXBvcnQgeyBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlc2V0UGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVzZXQtcGFzc3dvcmQvcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IGRlY2xhcmF0aW9ucyA9IFtcclxuICBMb2dpbkNvbXBvbmVudCxcclxuICBSZWdpc3RlckNvbXBvbmVudCxcclxuICBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCxcclxuICBNYW5hZ2VQcm9maWxlQ29tcG9uZW50LFxyXG4gIFBlcnNvbmFsU2V0dGluZ3NDb21wb25lbnQsXHJcbiAgRm9yZ290UGFzc3dvcmRDb21wb25lbnQsXHJcbiAgUmVzZXRQYXNzd29yZENvbXBvbmVudCxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbLi4uZGVjbGFyYXRpb25zXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgQWNjb3VudFJvdXRpbmdNb2R1bGUsXHJcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogWy4uLmRlY2xhcmF0aW9uc10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvdW50TW9kdWxlIHtcclxuICBzdGF0aWMgZm9yQ2hpbGQob3B0aW9ucyA9IHt9IGFzIEFjY291bnRDb25maWdPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBY2NvdW50TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQWNjb3VudE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQXV0aGVudGljYXRpb25GbG93R3VhcmQsXHJcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NPVU5UX0NPTkZJR19PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6ICdBQ0NPVU5UX09QVElPTlMnLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogYWNjb3VudENvbmZpZ09wdGlvbnNGYWN0b3J5LFxyXG4gICAgICAgICAgZGVwczogW0FDQ09VTlRfQ09ORklHX09QVElPTlNdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvckxhenkob3B0aW9ucyA9IHt9IGFzIEFjY291bnRDb25maWdPcHRpb25zKTogTmdNb2R1bGVGYWN0b3J5PEFjY291bnRNb2R1bGU+IHtcclxuICAgIHJldHVybiBuZXcgTGF6eU1vZHVsZUZhY3RvcnkoQWNjb3VudE1vZHVsZS5mb3JDaGlsZChvcHRpb25zKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ProfileService } from '@abp/ng.account.core/proxy';
|
|
2
|
+
import { getPasswordValidators, ToasterService } from '@abp/ng.theme.shared';
|
|
3
|
+
import { Component, Injector } from '@angular/core';
|
|
4
|
+
import { FormBuilder, FormControl, Validators } from '@angular/forms';
|
|
5
|
+
import { comparePasswords } from '@ngx-validate/core';
|
|
6
|
+
import { finalize } from 'rxjs/operators';
|
|
7
|
+
import { ManageProfileStateService } from '../../services/manage-profile.state.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/forms";
|
|
10
|
+
import * as i2 from "@abp/ng.theme.shared";
|
|
11
|
+
import * as i3 from "@abp/ng.account.core/proxy";
|
|
12
|
+
import * as i4 from "../../services/manage-profile.state.service";
|
|
13
|
+
import * as i5 from "@abp/ng.core";
|
|
14
|
+
import * as i6 from "@ngx-validate/core";
|
|
15
|
+
import * as i7 from "@angular/common";
|
|
16
|
+
const { required } = Validators;
|
|
17
|
+
const PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword'];
|
|
18
|
+
export class ChangePasswordComponent {
|
|
19
|
+
constructor(fb, injector, toasterService, profileService, manageProfileState) {
|
|
20
|
+
this.fb = fb;
|
|
21
|
+
this.injector = injector;
|
|
22
|
+
this.toasterService = toasterService;
|
|
23
|
+
this.profileService = profileService;
|
|
24
|
+
this.manageProfileState = manageProfileState;
|
|
25
|
+
this.mapErrorsFn = (errors, groupErrors, control) => {
|
|
26
|
+
if (PASSWORD_FIELDS.indexOf(String(control.name)) < 0)
|
|
27
|
+
return errors;
|
|
28
|
+
return errors.concat(groupErrors.filter(({ key }) => key === 'passwordMismatch'));
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.hideCurrentPassword = !this.manageProfileState.getProfile()?.hasPassword;
|
|
33
|
+
const passwordValidations = getPasswordValidators(this.injector);
|
|
34
|
+
this.form = this.fb.group({
|
|
35
|
+
password: ['', required],
|
|
36
|
+
newPassword: [
|
|
37
|
+
'',
|
|
38
|
+
{
|
|
39
|
+
validators: [required, ...passwordValidations],
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
repeatNewPassword: [
|
|
43
|
+
'',
|
|
44
|
+
{
|
|
45
|
+
validators: [required, ...passwordValidations],
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
}, {
|
|
49
|
+
validators: [comparePasswords(PASSWORD_FIELDS)],
|
|
50
|
+
});
|
|
51
|
+
if (this.hideCurrentPassword)
|
|
52
|
+
this.form.removeControl('password');
|
|
53
|
+
}
|
|
54
|
+
onSubmit() {
|
|
55
|
+
if (this.form.invalid)
|
|
56
|
+
return;
|
|
57
|
+
this.inProgress = true;
|
|
58
|
+
this.profileService
|
|
59
|
+
.changePassword({
|
|
60
|
+
...(!this.hideCurrentPassword && { currentPassword: this.form.get('password').value }),
|
|
61
|
+
newPassword: this.form.get('newPassword').value,
|
|
62
|
+
})
|
|
63
|
+
.pipe(finalize(() => (this.inProgress = false)))
|
|
64
|
+
.subscribe({
|
|
65
|
+
next: () => {
|
|
66
|
+
this.form.reset();
|
|
67
|
+
this.toasterService.success('AbpAccount::PasswordChangedMessage', '', {
|
|
68
|
+
life: 5000,
|
|
69
|
+
});
|
|
70
|
+
if (this.hideCurrentPassword) {
|
|
71
|
+
this.hideCurrentPassword = false;
|
|
72
|
+
this.form.addControl('password', new FormControl('', [required]));
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
error: err => {
|
|
76
|
+
this.toasterService.error(err.error?.error?.message || 'AbpAccount::DefaultErrorMessage');
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
ChangePasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i0.Injector }, { token: i2.ToasterService }, { token: i3.ProfileService }, { token: i4.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"], ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\r\n <div *ngIf=\"!hideCurrentPassword\" class=\"mb-3 form-group\">\r\n <label for=\"current-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"current-password\"\r\n class=\"form-control\"\r\n formControlName=\"password\"\r\n autofocus\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"new-password\"\r\n class=\"form-control\"\r\n formControlName=\"newPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"confirm-new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"confirm-new-password\"\r\n class=\"form-control\"\r\n formControlName=\"repeatNewPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n buttonType=\"submit\"\r\n [loading]=\"inProgress\"\r\n [disabled]=\"form?.invalid\"\r\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n</form>\r\n", components: [{ type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i5.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }], pipes: { "abpLocalization": i5.LocalizationPipe } });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'abp-change-password-form', exportAs: 'abpChangePasswordForm', template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" [mapErrorsFn]=\"mapErrorsFn\" validateOnSubmit>\r\n <div *ngIf=\"!hideCurrentPassword\" class=\"mb-3 form-group\">\r\n <label for=\"current-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:CurrentPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"current-password\"\r\n class=\"form-control\"\r\n formControlName=\"password\"\r\n autofocus\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPassword' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"new-password\"\r\n class=\"form-control\"\r\n formControlName=\"newPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"confirm-new-password\" class=\"form-label\">{{\r\n 'AbpIdentity::DisplayName:NewPasswordConfirm' | abpLocalization\r\n }}</label\r\n ><span> * </span\r\n ><input\r\n type=\"password\"\r\n id=\"confirm-new-password\"\r\n class=\"form-control\"\r\n formControlName=\"repeatNewPassword\"\r\n autocomplete=\"new-password\"\r\n />\r\n </div>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n buttonType=\"submit\"\r\n [loading]=\"inProgress\"\r\n [disabled]=\"form?.invalid\"\r\n >{{ 'AbpIdentity::Save' | abpLocalization }}</abp-button\r\n >\r\n</form>\r\n" }]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.Injector }, { type: i2.ToasterService }, { type: i3.ProfileService }, { type: i4.ManageProfileStateService }]; } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FjY291bnQvc3JjL2xpYi9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7O0FBRXhGLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFFaEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQU83RCxNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLFlBQ1UsRUFBZSxFQUNmLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGtCQUE2QztRQUo3QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7UUFYdkQsZ0JBQVcsR0FBMkIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3JFLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUVyRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDO0lBUUMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLEVBQUUsV0FBVyxDQUFDO1FBRTlFLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQ3ZCO1lBQ0UsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQztZQUN4QixXQUFXLEVBQUU7Z0JBQ1gsRUFBRTtnQkFDRjtvQkFDRSxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQztpQkFDL0M7YUFDRjtZQUNELGlCQUFpQixFQUFFO2dCQUNqQixFQUFFO2dCQUNGO29CQUNFLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLG1CQUFtQixDQUFDO2lCQUMvQzthQUNGO1NBQ0YsRUFDRDtZQUNFLFVBQVUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hELENBQ0YsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLG1CQUFtQjtZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjO2FBQ2hCLGNBQWMsQ0FBQztZQUNkLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0RixXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSztTQUNoRCxDQUFDO2FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxFQUFFLEVBQUUsRUFBRTtvQkFDcEUsSUFBSSxFQUFFLElBQUk7aUJBQ1gsQ0FBQyxDQUFDO2dCQUVILElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO29CQUM1QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO29CQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNuRTtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLGlDQUFpQyxDQUFDLENBQUM7WUFDNUYsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7O29IQTdFVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixxR0NsQnBDLHNxREFrREE7MkZEaENhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSwwQkFBMEIsWUFFMUIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmFjY291bnQuY29yZS9wcm94eSc7XHJcbmltcG9ydCB7IGdldFBhc3N3b3JkVmFsaWRhdG9ycywgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29tcGFyZVBhc3N3b3JkcywgVmFsaWRhdGlvbiB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQnO1xyXG5pbXBvcnQgeyBNYW5hZ2VQcm9maWxlU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFuYWdlLXByb2ZpbGUuc3RhdGUuc2VydmljZSc7XHJcblxyXG5jb25zdCB7IHJlcXVpcmVkIH0gPSBWYWxpZGF0b3JzO1xyXG5cclxuY29uc3QgUEFTU1dPUkRfRklFTERTID0gWyduZXdQYXNzd29yZCcsICdyZXBlYXROZXdQYXNzd29yZCddO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtY2hhbmdlLXBhc3N3b3JkLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGV4cG9ydEFzOiAnYWJwQ2hhbmdlUGFzc3dvcmRGb3JtJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYW5nZVBhc3N3b3JkQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFjY291bnQuQ2hhbmdlUGFzc3dvcmRDb21wb25lbnRJbnB1dHMsIEFjY291bnQuQ2hhbmdlUGFzc3dvcmRDb21wb25lbnRPdXRwdXRzXHJcbntcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XHJcblxyXG4gIGhpZGVDdXJyZW50UGFzc3dvcmQ6IGJvb2xlYW47XHJcblxyXG4gIG1hcEVycm9yc0ZuOiBWYWxpZGF0aW9uLk1hcEVycm9yc0ZuID0gKGVycm9ycywgZ3JvdXBFcnJvcnMsIGNvbnRyb2wpID0+IHtcclxuICAgIGlmIChQQVNTV09SRF9GSUVMRFMuaW5kZXhPZihTdHJpbmcoY29udHJvbC5uYW1lKSkgPCAwKSByZXR1cm4gZXJyb3JzO1xyXG5cclxuICAgIHJldHVybiBlcnJvcnMuY29uY2F0KGdyb3VwRXJyb3JzLmZpbHRlcigoeyBrZXkgfSkgPT4ga2V5ID09PSAncGFzc3dvcmRNaXNtYXRjaCcpKTtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYW5hZ2VQcm9maWxlU3RhdGU6IE1hbmFnZVByb2ZpbGVTdGF0ZVNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGlkZUN1cnJlbnRQYXNzd29yZCA9ICF0aGlzLm1hbmFnZVByb2ZpbGVTdGF0ZS5nZXRQcm9maWxlKCk/Lmhhc1Bhc3N3b3JkO1xyXG5cclxuICAgIGNvbnN0IHBhc3N3b3JkVmFsaWRhdGlvbnMgPSBnZXRQYXNzd29yZFZhbGlkYXRvcnModGhpcy5pbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChcclxuICAgICAge1xyXG4gICAgICAgIHBhc3N3b3JkOiBbJycsIHJlcXVpcmVkXSxcclxuICAgICAgICBuZXdQYXNzd29yZDogW1xyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtyZXF1aXJlZCwgLi4ucGFzc3dvcmRWYWxpZGF0aW9uc10sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcmVwZWF0TmV3UGFzc3dvcmQ6IFtcclxuICAgICAgICAgICcnLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiBbcmVxdWlyZWQsIC4uLnBhc3N3b3JkVmFsaWRhdGlvbnNdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdmFsaWRhdG9yczogW2NvbXBhcmVQYXNzd29yZHMoUEFTU1dPUkRfRklFTERTKV0sXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG5cclxuICAgIGlmICh0aGlzLmhpZGVDdXJyZW50UGFzc3dvcmQpIHRoaXMuZm9ybS5yZW1vdmVDb250cm9sKCdwYXNzd29yZCcpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcclxuICAgIHRoaXMuaW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICB0aGlzLnByb2ZpbGVTZXJ2aWNlXHJcbiAgICAgIC5jaGFuZ2VQYXNzd29yZCh7XHJcbiAgICAgICAgLi4uKCF0aGlzLmhpZGVDdXJyZW50UGFzc3dvcmQgJiYgeyBjdXJyZW50UGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUgfSksXHJcbiAgICAgICAgbmV3UGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ25ld1Bhc3N3b3JkJykudmFsdWUsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcygnQWJwQWNjb3VudDo6UGFzc3dvcmRDaGFuZ2VkTWVzc2FnZScsICcnLCB7XHJcbiAgICAgICAgICAgIGxpZmU6IDUwMDAsXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5oaWRlQ3VycmVudFBhc3N3b3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZUN1cnJlbnRQYXNzd29yZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgncGFzc3dvcmQnLCBuZXcgRm9ybUNvbnRyb2woJycsIFtyZXF1aXJlZF0pKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnIuZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCIgW21hcEVycm9yc0ZuXT1cIm1hcEVycm9yc0ZuXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICA8ZGl2ICpuZ0lmPVwiIWhpZGVDdXJyZW50UGFzc3dvcmRcIiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsIGZvcj1cImN1cnJlbnQtcGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xyXG4gICAgICAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOkN1cnJlbnRQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9sYWJlbFxyXG4gICAgPjxzcGFuPiAqIDwvc3BhblxyXG4gICAgPjxpbnB1dFxyXG4gICAgICB0eXBlPVwicGFzc3dvcmRcIlxyXG4gICAgICBpZD1cImN1cnJlbnQtcGFzc3dvcmRcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cImN1cnJlbnQtcGFzc3dvcmRcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XHJcbiAgICA8bGFiZWwgZm9yPVwibmV3LXBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcclxuICAgICAgJ0FicElkZW50aXR5OjpEaXNwbGF5TmFtZTpOZXdQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9sYWJlbFxyXG4gICAgPjxzcGFuPiAqIDwvc3BhblxyXG4gICAgPjxpbnB1dFxyXG4gICAgICB0eXBlPVwicGFzc3dvcmRcIlxyXG4gICAgICBpZD1cIm5ldy1wYXNzd29yZFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmV3UGFzc3dvcmRcIlxyXG4gICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XHJcbiAgICA8bGFiZWwgZm9yPVwiY29uZmlybS1uZXctcGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e1xyXG4gICAgICAnQWJwSWRlbnRpdHk6OkRpc3BsYXlOYW1lOk5ld1Bhc3N3b3JkQ29uZmlybScgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9sYWJlbFxyXG4gICAgPjxzcGFuPiAqIDwvc3BhblxyXG4gICAgPjxpbnB1dFxyXG4gICAgICB0eXBlPVwicGFzc3dvcmRcIlxyXG4gICAgICBpZD1cImNvbmZpcm0tbmV3LXBhc3N3b3JkXCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXBlYXROZXdQYXNzd29yZFwiXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gIDxhYnAtYnV0dG9uXHJcbiAgICBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiXHJcbiAgICBidXR0b25DbGFzcz1cImJ0biBidG4tcHJpbWFyeSBjb2xvci13aGl0ZVwiXHJcbiAgICBidXR0b25UeXBlPVwic3VibWl0XCJcclxuICAgIFtsb2FkaW5nXT1cImluUHJvZ3Jlc3NcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZvcm0/LmludmFsaWRcIlxyXG4gICAgPnt7ICdBYnBJZGVudGl0eTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX08L2FicC1idXR0b25cclxuICA+XHJcbjwvZm9ybT5cclxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { AccountService } from '@abp/ng.account.core/proxy';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
4
|
+
import { finalize } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "@abp/ng.account.core/proxy";
|
|
8
|
+
import * as i3 from "@abp/ng.theme.shared";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@abp/ng.core";
|
|
11
|
+
import * as i6 from "@ngx-validate/core";
|
|
12
|
+
import * as i7 from "@angular/router";
|
|
13
|
+
export class ForgotPasswordComponent {
|
|
14
|
+
constructor(fb, accountService) {
|
|
15
|
+
this.fb = fb;
|
|
16
|
+
this.accountService = accountService;
|
|
17
|
+
this.isEmailSent = false;
|
|
18
|
+
this.form = this.fb.group({
|
|
19
|
+
email: ['', [Validators.required, Validators.email]],
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
onSubmit() {
|
|
23
|
+
if (this.form.invalid)
|
|
24
|
+
return;
|
|
25
|
+
this.inProgress = true;
|
|
26
|
+
this.accountService
|
|
27
|
+
.sendPasswordResetCode({
|
|
28
|
+
email: this.form.get('email').value,
|
|
29
|
+
appName: 'Angular',
|
|
30
|
+
})
|
|
31
|
+
.pipe(finalize(() => (this.inProgress = false)))
|
|
32
|
+
.subscribe(() => {
|
|
33
|
+
this.isEmailSent = true;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AccountService }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
ForgotPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ForgotPasswordComponent, selector: "abp-forgot-password", ngImport: i0, template: "<h4>{{ 'AbpAccount::ForgotPassword' | abpLocalization }}</h4>\r\n\r\n<form\r\n *ngIf=\"!isEmailSent; else emailSentTemplate\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onSubmit()\"\r\n validateOnSubmit\r\n>\r\n <p>{{ 'AbpAccount::SendPasswordResetLink_Information' | abpLocalization }}</p>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"input-email-address\" class=\"form-label\">{{\r\n 'AbpAccount::EmailAddress' | abpLocalization\r\n }}</label\r\n ><span> * </span>\r\n <input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\r\n </div>\r\n <abp-button\r\n class=\"d-block\"\r\n buttonClass=\"mt-2 mb-3 btn btn-primary btn-block\"\r\n [loading]=\"inProgress\"\r\n buttonType=\"submit\"\r\n [disabled]=\"form?.invalid\"\r\n >\r\n {{ 'AbpAccount::Submit' | abpLocalization }}\r\n </abp-button>\r\n <a routerLink=\"/account/login\"\r\n ><i class=\"fa fa-long-arrow-left me-1\"></i>{{ 'AbpAccount::Login' | abpLocalization }}</a\r\n >\r\n</form>\r\n\r\n<ng-template #emailSentTemplate>\r\n <p>\r\n {{ 'AbpAccount::PasswordResetMailSentMessage' | abpLocalization }}\r\n </p>\r\n\r\n <a routerLink=\"/account/login\">\r\n <button class=\"d-block mt-2 mb-3 btn btn-primary btn-block\">\r\n <i class=\"fa fa-long-arrow-left me-1\"></i>\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\r\n</ng-template>\r\n", components: [{ type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i7.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], pipes: { "abpLocalization": i5.LocalizationPipe } });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ selector: 'abp-forgot-password', template: "<h4>{{ 'AbpAccount::ForgotPassword' | abpLocalization }}</h4>\r\n\r\n<form\r\n *ngIf=\"!isEmailSent; else emailSentTemplate\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onSubmit()\"\r\n validateOnSubmit\r\n>\r\n <p>{{ 'AbpAccount::SendPasswordResetLink_Information' | abpLocalization }}</p>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"input-email-address\" class=\"form-label\">{{\r\n 'AbpAccount::EmailAddress' | abpLocalization\r\n }}</label\r\n ><span> * </span>\r\n <input type=\"email\" id=\"input-email-address\" class=\"form-control\" formControlName=\"email\" />\r\n </div>\r\n <abp-button\r\n class=\"d-block\"\r\n buttonClass=\"mt-2 mb-3 btn btn-primary btn-block\"\r\n [loading]=\"inProgress\"\r\n buttonType=\"submit\"\r\n [disabled]=\"form?.invalid\"\r\n >\r\n {{ 'AbpAccount::Submit' | abpLocalization }}\r\n </abp-button>\r\n <a routerLink=\"/account/login\"\r\n ><i class=\"fa fa-long-arrow-left me-1\"></i>{{ 'AbpAccount::Login' | abpLocalization }}</a\r\n >\r\n</form>\r\n\r\n<ng-template #emailSentTemplate>\r\n <p>\r\n {{ 'AbpAccount::PasswordResetMailSentMessage' | abpLocalization }}\r\n </p>\r\n\r\n <a routerLink=\"/account/login\">\r\n <button class=\"d-block mt-2 mb-3 btn btn-primary btn-block\">\r\n <i class=\"fa fa-long-arrow-left me-1\"></i>\r\n {{ 'AbpAccount::BackToLogin' | abpLocalization }}\r\n </button>\r\n </a>\r\n</ng-template>\r\n" }]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.AccountService }]; } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FjY291bnQvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBTTFDLE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFBb0IsRUFBZSxFQUFVLGNBQThCO1FBQXZELE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGM0UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUU5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsY0FBYzthQUNoQixxQkFBcUIsQ0FBQztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUNuQyxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO2FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztvSEEzQlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDVHBDLDg2Q0EwQ0E7MkZEakNhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuYWNjb3VudC5jb3JlL3Byb3h5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtZm9yZ290LXBhc3N3b3JkJyxcclxuICB0ZW1wbGF0ZVVybDogJ2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCB7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBpblByb2dyZXNzOiBib29sZWFuO1xyXG5cclxuICBpc0VtYWlsU2VudCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UpIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBlbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuaW5Qcm9ncmVzcyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5hY2NvdW50U2VydmljZVxyXG4gICAgICAuc2VuZFBhc3N3b3JkUmVzZXRDb2RlKHtcclxuICAgICAgICBlbWFpbDogdGhpcy5mb3JtLmdldCgnZW1haWwnKS52YWx1ZSxcclxuICAgICAgICBhcHBOYW1lOiAnQW5ndWxhcicsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzRW1haWxTZW50ID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoND57eyAnQWJwQWNjb3VudDo6Rm9yZ290UGFzc3dvcmQnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oND5cclxuXHJcbjxmb3JtXHJcbiAgKm5nSWY9XCIhaXNFbWFpbFNlbnQ7IGVsc2UgZW1haWxTZW50VGVtcGxhdGVcIlxyXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIlxyXG4gIHZhbGlkYXRlT25TdWJtaXRcclxuPlxyXG4gIDxwPnt7ICdBYnBBY2NvdW50OjpTZW5kUGFzc3dvcmRSZXNldExpbmtfSW5mb3JtYXRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9wPlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJpbnB1dC1lbWFpbC1hZGRyZXNzXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcclxuICAgICAgJ0FicEFjY291bnQ6OkVtYWlsQWRkcmVzcycgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgIH19PC9sYWJlbFxyXG4gICAgPjxzcGFuPiAqIDwvc3Bhbj5cclxuICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBpZD1cImlucHV0LWVtYWlsLWFkZHJlc3NcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgLz5cclxuICA8L2Rpdj5cclxuICA8YWJwLWJ1dHRvblxyXG4gICAgY2xhc3M9XCJkLWJsb2NrXCJcclxuICAgIGJ1dHRvbkNsYXNzPVwibXQtMiBtYi0zIGJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2tcIlxyXG4gICAgW2xvYWRpbmddPVwiaW5Qcm9ncmVzc1wiXHJcbiAgICBidXR0b25UeXBlPVwic3VibWl0XCJcclxuICAgIFtkaXNhYmxlZF09XCJmb3JtPy5pbnZhbGlkXCJcclxuICA+XHJcbiAgICB7eyAnQWJwQWNjb3VudDo6U3VibWl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gIDwvYWJwLWJ1dHRvbj5cclxuICA8YSByb3V0ZXJMaW5rPVwiL2FjY291bnQvbG9naW5cIlxyXG4gICAgPjxpIGNsYXNzPVwiZmEgZmEtbG9uZy1hcnJvdy1sZWZ0IG1lLTFcIj48L2k+e3sgJ0FicEFjY291bnQ6OkxvZ2luJyB8IGFicExvY2FsaXphdGlvbiB9fTwvYVxyXG4gID5cclxuPC9mb3JtPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbWFpbFNlbnRUZW1wbGF0ZT5cclxuICA8cD5cclxuICAgIHt7ICdBYnBBY2NvdW50OjpQYXNzd29yZFJlc2V0TWFpbFNlbnRNZXNzYWdlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gIDwvcD5cclxuXHJcbiAgPGEgcm91dGVyTGluaz1cIi9hY2NvdW50L2xvZ2luXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiZC1ibG9jayBtdC0yIG1iLTMgYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9ja1wiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhIGZhLWxvbmctYXJyb3ctbGVmdCBtZS0xXCI+PC9pPlxyXG4gICAgICB7eyAnQWJwQWNjb3VudDo6QmFja1RvTG9naW4nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2E+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
File without changes
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { AuthService, ConfigStateService } from '@abp/ng.core';
|
|
2
|
+
import { ToasterService } from '@abp/ng.theme.shared';
|
|
3
|
+
import { Component, Injector } from '@angular/core';
|
|
4
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
5
|
+
import { throwError } from 'rxjs';
|
|
6
|
+
import { catchError, finalize } from 'rxjs/operators';
|
|
7
|
+
import { getRedirectUrl } from '../../utils/auth-utils';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/forms";
|
|
10
|
+
import * as i2 from "@abp/ng.theme.shared";
|
|
11
|
+
import * as i3 from "@abp/ng.core";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/router";
|
|
14
|
+
import * as i6 from "@ngx-validate/core";
|
|
15
|
+
const { maxLength, required } = Validators;
|
|
16
|
+
export class LoginComponent {
|
|
17
|
+
constructor(injector, fb, toasterService, authService, configState) {
|
|
18
|
+
this.injector = injector;
|
|
19
|
+
this.fb = fb;
|
|
20
|
+
this.toasterService = toasterService;
|
|
21
|
+
this.authService = authService;
|
|
22
|
+
this.configState = configState;
|
|
23
|
+
this.isSelfRegistrationEnabled = true;
|
|
24
|
+
this.authWrapperKey = "Account.AuthWrapperComponent" /* AuthWrapper */;
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.init();
|
|
28
|
+
this.buildForm();
|
|
29
|
+
}
|
|
30
|
+
init() {
|
|
31
|
+
this.isSelfRegistrationEnabled =
|
|
32
|
+
(this.configState.getSetting('Abp.Account.IsSelfRegistrationEnabled') || '').toLowerCase() !== 'false';
|
|
33
|
+
}
|
|
34
|
+
buildForm() {
|
|
35
|
+
this.form = this.fb.group({
|
|
36
|
+
username: ['', [required, maxLength(255)]],
|
|
37
|
+
password: ['', [required, maxLength(128)]],
|
|
38
|
+
rememberMe: [false],
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
onSubmit() {
|
|
42
|
+
if (this.form.invalid)
|
|
43
|
+
return;
|
|
44
|
+
this.inProgress = true;
|
|
45
|
+
const { username, password, rememberMe } = this.form.value;
|
|
46
|
+
const redirectUrl = getRedirectUrl(this.injector);
|
|
47
|
+
this.authService
|
|
48
|
+
.login({ username, password, rememberMe, redirectUrl })
|
|
49
|
+
.pipe(catchError(err => {
|
|
50
|
+
this.toasterService.error(err.error?.error_description ||
|
|
51
|
+
err.error?.error.message ||
|
|
52
|
+
'AbpAccount::DefaultErrorMessage', null, { life: 7000 });
|
|
53
|
+
return throwError(err);
|
|
54
|
+
}), finalize(() => (this.inProgress = false)))
|
|
55
|
+
.subscribe();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LoginComponent, deps: [{ token: i0.Injector }, { token: i1.FormBuilder }, { token: i2.ToasterService }, { token: i3.AuthService }, { token: i3.ConfigStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: LoginComponent, selector: "abp-login", ngImport: i0, template: "<h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\r\n<strong *ngIf=\"isSelfRegistrationEnabled\">\r\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\r\n <a class=\"text-decoration-none\" routerLink=\"/account/register\" queryParamsHandling=\"preserve\">{{\r\n 'AbpAccount::Register' | abpLocalization\r\n }}</a>\r\n</strong>\r\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-user-name-or-email-address\" class=\"form-label\">{{\r\n 'AbpAccount::UserNameOrEmailAddress' | abpLocalization\r\n }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n id=\"login-input-user-name-or-email-address\"\r\n formControlName=\"username\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-password\" class=\"form-label\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"password\"\r\n id=\"login-input-password\"\r\n formControlName=\"password\"\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <div class=\"form-check\">\r\n <label class=\"form-check-label mb-2\" for=\"login-input-remember-me\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n id=\"login-input-remember-me\"\r\n formControlName=\"rememberMe\"\r\n />\r\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"text-end col\">\r\n <a routerLink=\"/account/forgot-password\">{{\r\n 'AbpAccount::ForgotPassword' | abpLocalization\r\n }}</a>\r\n </div>\r\n </div>\r\n\r\n <abp-button\r\n [loading]=\"inProgress\"\r\n buttonType=\"submit\"\r\n name=\"Action\"\r\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\r\n >\r\n {{ 'AbpAccount::Login' | abpLocalization }}\r\n </abp-button>\r\n</form>\r\n", components: [{ type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit"], outputs: ["ngSubmit"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { type: i3.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }], pipes: { "abpLocalization": i3.LocalizationPipe } });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LoginComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'abp-login', template: "<h4>{{ 'AbpAccount::Login' | abpLocalization }}</h4>\r\n<strong *ngIf=\"isSelfRegistrationEnabled\">\r\n {{ 'AbpAccount::AreYouANewUser' | abpLocalization }}\r\n <a class=\"text-decoration-none\" routerLink=\"/account/register\" queryParamsHandling=\"preserve\">{{\r\n 'AbpAccount::Register' | abpLocalization\r\n }}</a>\r\n</strong>\r\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" validateOnSubmit class=\"mt-4\">\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-user-name-or-email-address\" class=\"form-label\">{{\r\n 'AbpAccount::UserNameOrEmailAddress' | abpLocalization\r\n }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n id=\"login-input-user-name-or-email-address\"\r\n formControlName=\"username\"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label for=\"login-input-password\" class=\"form-label\">{{ 'AbpAccount::Password' | abpLocalization }}</label>\r\n <input\r\n class=\"form-control\"\r\n type=\"password\"\r\n id=\"login-input-password\"\r\n formControlName=\"password\"\r\n autocomplete=\"current-password\"\r\n />\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <div class=\"form-check\">\r\n <label class=\"form-check-label mb-2\" for=\"login-input-remember-me\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n id=\"login-input-remember-me\"\r\n formControlName=\"rememberMe\"\r\n />\r\n {{ 'AbpAccount::RememberMe' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"text-end col\">\r\n <a routerLink=\"/account/forgot-password\">{{\r\n 'AbpAccount::ForgotPassword' | abpLocalization\r\n }}</a>\r\n </div>\r\n </div>\r\n\r\n <abp-button\r\n [loading]=\"inProgress\"\r\n buttonType=\"submit\"\r\n name=\"Action\"\r\n buttonClass=\"btn-block btn-lg mt-3 btn btn-primary\"\r\n >\r\n {{ 'AbpAccount::Login' | abpLocalization }}\r\n </abp-button>\r\n</form>\r\n" }]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.FormBuilder }, { type: i2.ToasterService }, { type: i3.AuthService }, { type: i3.ConfigStateService }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQUV4RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztBQU0zQyxNQUFNLE9BQU8sY0FBYztJQVN6QixZQUNZLFFBQWtCLEVBQ2xCLEVBQWUsRUFDZixjQUE4QixFQUM5QixXQUF3QixFQUN4QixXQUErQjtRQUovQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBVDNDLDhCQUF5QixHQUFHLElBQUksQ0FBQztRQUVqQyxtQkFBYyxvREFBa0M7SUFRN0MsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVTLElBQUk7UUFDWixJQUFJLENBQUMseUJBQXlCO1lBQzVCLENBQ0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsdUNBQXVDLENBQVksSUFBSSxFQUFFLENBQ3ZGLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFM0QsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsV0FBVzthQUNiLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQ3RELElBQUksQ0FDSCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FDdkIsR0FBRyxDQUFDLEtBQUssRUFBRSxpQkFBaUI7Z0JBQzFCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3hCLGlDQUFpQyxFQUNuQyxJQUFJLEVBQ0osRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQ2YsQ0FBQztZQUNGLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FDMUM7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDOzsyR0E5RFUsY0FBYzsrRkFBZCxjQUFjLGlEQ2YzQixvb0VBOERBOzJGRC9DYSxjQUFjO2tCQUoxQixTQUFTOytCQUNFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoU2VydmljZSwgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlQWNjb3VudENvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgZ2V0UmVkaXJlY3RVcmwgfSBmcm9tICcuLi8uLi91dGlscy9hdXRoLXV0aWxzJztcclxuXHJcbmNvbnN0IHsgbWF4TGVuZ3RoLCByZXF1aXJlZCB9ID0gVmFsaWRhdG9ycztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWxvZ2luJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgaW5Qcm9ncmVzczogYm9vbGVhbjtcclxuXHJcbiAgaXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCA9IHRydWU7XHJcblxyXG4gIGF1dGhXcmFwcGVyS2V5ID0gZUFjY291bnRDb21wb25lbnRzLkF1dGhXcmFwcGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcm90ZWN0ZWQgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJvdGVjdGVkIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGluaXQoKSB7XHJcbiAgICB0aGlzLmlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWQgPVxyXG4gICAgICAoXHJcbiAgICAgICAgKHRoaXMuY29uZmlnU3RhdGUuZ2V0U2V0dGluZygnQWJwLkFjY291bnQuSXNTZWxmUmVnaXN0cmF0aW9uRW5hYmxlZCcpIGFzIHN0cmluZykgfHwgJydcclxuICAgICAgKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGJ1aWxkRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB1c2VybmFtZTogWycnLCBbcmVxdWlyZWQsIG1heExlbmd0aCgyNTUpXV0sXHJcbiAgICAgIHBhc3N3b3JkOiBbJycsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDEyOCldXSxcclxuICAgICAgcmVtZW1iZXJNZTogW2ZhbHNlXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xyXG5cclxuICAgIGNvbnN0IHsgdXNlcm5hbWUsIHBhc3N3b3JkLCByZW1lbWJlck1lIH0gPSB0aGlzLmZvcm0udmFsdWU7XHJcblxyXG4gICAgY29uc3QgcmVkaXJlY3RVcmwgPSBnZXRSZWRpcmVjdFVybCh0aGlzLmluamVjdG9yKTtcclxuXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgIC5sb2dpbih7IHVzZXJuYW1lLCBwYXNzd29yZCwgcmVtZW1iZXJNZSwgcmVkaXJlY3RVcmwgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgZXJyLmVycm9yPy5lcnJvcl9kZXNjcmlwdGlvbiB8fFxyXG4gICAgICAgICAgICAgIGVyci5lcnJvcj8uZXJyb3IubWVzc2FnZSB8fFxyXG4gICAgICAgICAgICAgICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyxcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgeyBsaWZlOiA3MDAwIH0sXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pblByb2dyZXNzID0gZmFsc2UpKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxoND57eyAnQWJwQWNjb3VudDo6TG9naW4nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oND5cclxuPHN0cm9uZyAqbmdJZj1cImlzU2VsZlJlZ2lzdHJhdGlvbkVuYWJsZWRcIj5cclxuICB7eyAnQWJwQWNjb3VudDo6QXJlWW91QU5ld1VzZXInIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgPGEgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tbm9uZVwiIHJvdXRlckxpbms9XCIvYWNjb3VudC9yZWdpc3RlclwiIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJwcmVzZXJ2ZVwiPnt7XHJcbiAgICAnQWJwQWNjb3VudDo6UmVnaXN0ZXInIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgfX08L2E+XHJcbjwvc3Ryb25nPlxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIHZhbGlkYXRlT25TdWJtaXQgY2xhc3M9XCJtdC00XCI+XHJcbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsIGZvcj1cImxvZ2luLWlucHV0LXVzZXItbmFtZS1vci1lbWFpbC1hZGRyZXNzXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcclxuICAgICAgJ0FicEFjY291bnQ6OlVzZXJOYW1lT3JFbWFpbEFkZHJlc3MnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICB9fTwvbGFiZWw+XHJcbiAgICA8aW5wdXRcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibG9naW4taW5wdXQtdXNlci1uYW1lLW9yLWVtYWlsLWFkZHJlc3NcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cInVzZXJuYW1lXCJcclxuICAgICAgYXV0b2ZvY3VzXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJsb2dpbi1pbnB1dC1wYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdBYnBBY2NvdW50OjpQYXNzd29yZCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgdHlwZT1cInBhc3N3b3JkXCJcclxuICAgICAgaWQ9XCJsb2dpbi1pbnB1dC1wYXNzd29yZFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBtYi0yXCIgZm9yPVwibG9naW4taW5wdXQtcmVtZW1iZXItbWVcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cImxvZ2luLWlucHV0LXJlbWVtYmVyLW1lXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVtZW1iZXJNZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAge3sgJ0FicEFjY291bnQ6OlJlbWVtYmVyTWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBjb2xcIj5cclxuICAgICAgPGEgcm91dGVyTGluaz1cIi9hY2NvdW50L2ZvcmdvdC1wYXNzd29yZFwiPnt7XHJcbiAgICAgICAgJ0FicEFjY291bnQ6OkZvcmdvdFBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICB9fTwvYT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YWJwLWJ1dHRvblxyXG4gICAgW2xvYWRpbmddPVwiaW5Qcm9ncmVzc1wiXHJcbiAgICBidXR0b25UeXBlPVwic3VibWl0XCJcclxuICAgIG5hbWU9XCJBY3Rpb25cIlxyXG4gICAgYnV0dG9uQ2xhc3M9XCJidG4tYmxvY2sgYnRuLWxnIG10LTMgYnRuIGJ0bi1wcmltYXJ5XCJcclxuICA+XHJcbiAgICB7eyAnQWJwQWNjb3VudDo6TG9naW4nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgPC9hYnAtYnV0dG9uPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ProfileService } from '@abp/ng.account.core/proxy';
|
|
2
|
+
import { fadeIn } from '@abp/ng.theme.shared';
|
|
3
|
+
import { transition, trigger, useAnimation } from '@angular/animations';
|
|
4
|
+
import { Component } from '@angular/core';
|
|
5
|
+
import { ManageProfileStateService } from '../../services/manage-profile.state.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@abp/ng.account.core/proxy";
|
|
8
|
+
import * as i2 from "../../services/manage-profile.state.service";
|
|
9
|
+
import * as i3 from "../change-password/change-password.component";
|
|
10
|
+
import * as i4 from "../personal-settings/personal-settings.component";
|
|
11
|
+
import * as i5 from "@abp/ng.theme.shared";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
import * as i7 from "@abp/ng.core";
|
|
14
|
+
export class ManageProfileComponent {
|
|
15
|
+
constructor(profileService, manageProfileState) {
|
|
16
|
+
this.profileService = profileService;
|
|
17
|
+
this.manageProfileState = manageProfileState;
|
|
18
|
+
this.selectedTab = 0;
|
|
19
|
+
this.changePasswordKey = "Account.ChangePasswordComponent" /* ChangePassword */;
|
|
20
|
+
this.personalSettingsKey = "Account.PersonalSettingsComponent" /* PersonalSettings */;
|
|
21
|
+
this.profile$ = this.manageProfileState.getProfile$();
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.profileService.get().subscribe(profile => {
|
|
25
|
+
this.manageProfileState.setProfile(profile);
|
|
26
|
+
if (profile.isExternal) {
|
|
27
|
+
this.hideChangePasswordTab = true;
|
|
28
|
+
this.selectedTab = 1;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ManageProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ManageProfileComponent, deps: [{ token: i1.ProfileService }, { token: i2.ManageProfileStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
ManageProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ManageProfileComponent, selector: "abp-manage-profile", ngImport: i0, template: "<div id=\"AbpContentToolbar\"></div>\r\n\r\n<div class=\"card border-0 shadow-sm min-h-400\" [abpLoading]=\"!(profile$ | async)?.userName\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-3\">\r\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\r\n <li\r\n *ngIf=\"!hideChangePasswordTab && (profile$ | async)\"\r\n class=\"nav-item\"\r\n (click)=\"selectedTab = 0\"\r\n >\r\n <a\r\n class=\"nav-link\"\r\n [ngClass]=\"{ active: selectedTab === 0 }\"\r\n role=\"tab\"\r\n href=\"javascript:void(0)\"\r\n >{{ 'AbpUi::ChangePassword' | abpLocalization }}</a\r\n >\r\n </li>\r\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\r\n <a\r\n class=\"nav-link\"\r\n [ngClass]=\"{ active: selectedTab === 1 }\"\r\n role=\"tab\"\r\n href=\"javascript:void(0)\"\r\n >{{ 'AbpAccount::PersonalSettings' | abpLocalization }}</a\r\n >\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"profile$ | async\" class=\"col-12 col-md-9\">\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-change-password-form\r\n *abpReplaceableTemplate=\"{\r\n componentKey: changePasswordKey\r\n }\"\r\n ></abp-change-password-form>\r\n </div>\r\n </div>\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-personal-settings-form\r\n *abpReplaceableTemplate=\"{\r\n componentKey: personalSettingsKey\r\n }\"\r\n ></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".min-h-400{min-height:400px}\n"], components: [{ type: i3.ChangePasswordComponent, selector: "abp-change-password-form", exportAs: ["abpChangePasswordForm"] }, { type: i4.PersonalSettingsComponent, selector: "abp-personal-settings-form", exportAs: ["abpPersonalSettingsForm"] }], directives: [{ type: i5.LoadingDirective, selector: "[abpLoading]", inputs: ["abpLoading", "abpLoadingTargetElement", "abpLoadingDelay"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: ["abpReplaceableTemplate"] }], pipes: { "async": i6.AsyncPipe, "abpLocalization": i7.LocalizationPipe }, animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])] });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ManageProfileComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'abp-manage-profile', animations: [trigger('fadeIn', [transition(':enter', useAnimation(fadeIn))])], styles: [
|
|
38
|
+
`
|
|
39
|
+
.min-h-400 {
|
|
40
|
+
min-height: 400px;
|
|
41
|
+
}
|
|
42
|
+
`,
|
|
43
|
+
], template: "<div id=\"AbpContentToolbar\"></div>\r\n\r\n<div class=\"card border-0 shadow-sm min-h-400\" [abpLoading]=\"!(profile$ | async)?.userName\">\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-3\">\r\n <ul class=\"nav flex-column nav-pills\" id=\"nav-tab\" role=\"tablist\">\r\n <li\r\n *ngIf=\"!hideChangePasswordTab && (profile$ | async)\"\r\n class=\"nav-item\"\r\n (click)=\"selectedTab = 0\"\r\n >\r\n <a\r\n class=\"nav-link\"\r\n [ngClass]=\"{ active: selectedTab === 0 }\"\r\n role=\"tab\"\r\n href=\"javascript:void(0)\"\r\n >{{ 'AbpUi::ChangePassword' | abpLocalization }}</a\r\n >\r\n </li>\r\n <li class=\"nav-item mb-2\" (click)=\"selectedTab = 1\">\r\n <a\r\n class=\"nav-link\"\r\n [ngClass]=\"{ active: selectedTab === 1 }\"\r\n role=\"tab\"\r\n href=\"javascript:void(0)\"\r\n >{{ 'AbpAccount::PersonalSettings' | abpLocalization }}</a\r\n >\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"profile$ | async\" class=\"col-12 col-md-9\">\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 0\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::ChangePassword' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-change-password-form\r\n *abpReplaceableTemplate=\"{\r\n componentKey: changePasswordKey\r\n }\"\r\n ></abp-change-password-form>\r\n </div>\r\n </div>\r\n <div class=\"tab-content\" *ngIf=\"selectedTab === 1\" [@fadeIn]>\r\n <div class=\"tab-pane active\" role=\"tabpanel\">\r\n <h4>\r\n {{ 'AbpIdentity::PersonalSettings' | abpLocalization }}\r\n <hr />\r\n </h4>\r\n <abp-personal-settings-form\r\n *abpReplaceableTemplate=\"{\r\n componentKey: personalSettingsKey\r\n }\"\r\n ></abp-personal-settings-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.ProfileService }, { type: i2.ManageProfileStateService }]; } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7QUFjeEYsTUFBTSxPQUFPLHNCQUFzQjtJQVdqQyxZQUNZLGNBQThCLEVBQzlCLGtCQUE2QztRQUQ3QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEyQjtRQVp6RCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQixzQkFBaUIsMERBQXFDO1FBRXRELHdCQUFtQiw4REFBdUM7UUFFMUQsYUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQU85QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN0QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7bUhBeEJVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDBEQ25CbkMsZzBFQThEQSx3eEJEcERjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzJGQVNsRSxzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBRWxCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQ3JFO3dCQUNOOzs7O0tBSUM7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuYWNjb3VudC5jb3JlL3Byb3h5JztcclxuaW1wb3J0IHsgZmFkZUluIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyB0cmFuc2l0aW9uLCB0cmlnZ2VyLCB1c2VBbmltYXRpb24gfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZUFjY291bnRDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE1hbmFnZVByb2ZpbGVTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYW5hZ2UtcHJvZmlsZS5zdGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLW1hbmFnZS1wcm9maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdmYWRlSW4nLCBbdHJhbnNpdGlvbignOmVudGVyJywgdXNlQW5pbWF0aW9uKGZhZGVJbikpXSldLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICAubWluLWgtNDAwIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDtcclxuICAgICAgfVxyXG4gICAgYCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFuYWdlUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc2VsZWN0ZWRUYWIgPSAwO1xyXG5cclxuICBjaGFuZ2VQYXNzd29yZEtleSA9IGVBY2NvdW50Q29tcG9uZW50cy5DaGFuZ2VQYXNzd29yZDtcclxuXHJcbiAgcGVyc29uYWxTZXR0aW5nc0tleSA9IGVBY2NvdW50Q29tcG9uZW50cy5QZXJzb25hbFNldHRpbmdzO1xyXG5cclxuICBwcm9maWxlJCA9IHRoaXMubWFuYWdlUHJvZmlsZVN0YXRlLmdldFByb2ZpbGUkKCk7XHJcblxyXG4gIGhpZGVDaGFuZ2VQYXNzd29yZFRhYjogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIG1hbmFnZVByb2ZpbGVTdGF0ZTogTWFuYWdlUHJvZmlsZVN0YXRlU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wcm9maWxlU2VydmljZS5nZXQoKS5zdWJzY3JpYmUocHJvZmlsZSA9PiB7XHJcbiAgICAgIHRoaXMubWFuYWdlUHJvZmlsZVN0YXRlLnNldFByb2ZpbGUocHJvZmlsZSk7XHJcbiAgICAgIGlmIChwcm9maWxlLmlzRXh0ZXJuYWwpIHtcclxuICAgICAgICB0aGlzLmhpZGVDaGFuZ2VQYXNzd29yZFRhYiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwiQWJwQ29udGVudFRvb2xiYXJcIj48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci0wIHNoYWRvdy1zbSBtaW4taC00MDBcIiBbYWJwTG9hZGluZ109XCIhKHByb2ZpbGUkIHwgYXN5bmMpPy51c2VyTmFtZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtM1wiPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cIm5hdiBmbGV4LWNvbHVtbiBuYXYtcGlsbHNcIiBpZD1cIm5hdi10YWJcIiByb2xlPVwidGFibGlzdFwiPlxyXG4gICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIWhpZGVDaGFuZ2VQYXNzd29yZFRhYiAmJiAocHJvZmlsZSQgfCBhc3luYylcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gMFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHNlbGVjdGVkVGFiID09PSAwIH1cIlxyXG4gICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxyXG4gICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgICAgICAgICAgID57eyAnQWJwVWk6OkNoYW5nZVBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvbiB9fTwvYVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbWItMlwiIChjbGljayk9XCJzZWxlY3RlZFRhYiA9IDFcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogc2VsZWN0ZWRUYWIgPT09IDEgfVwiXHJcbiAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXHJcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICAgICAgPnt7ICdBYnBBY2NvdW50OjpQZXJzb25hbFNldHRpbmdzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvYVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwicHJvZmlsZSQgfCBhc3luY1wiIGNsYXNzPVwiY29sLTEyIGNvbC1tZC05XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCIgKm5nSWY9XCJzZWxlY3RlZFRhYiA9PT0gMFwiIFtAZmFkZUluXT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBhY3RpdmVcIiByb2xlPVwidGFicGFuZWxcIj5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7ICdBYnBJZGVudGl0eTo6Q2hhbmdlUGFzc3dvcmQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPGhyIC8+XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgIDxhYnAtY2hhbmdlLXBhc3N3b3JkLWZvcm1cclxuICAgICAgICAgICAgICAqYWJwUmVwbGFjZWFibGVUZW1wbGF0ZT1cIntcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudEtleTogY2hhbmdlUGFzc3dvcmRLZXlcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPjwvYWJwLWNoYW5nZS1wYXNzd29yZC1mb3JtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCIgKm5nSWY9XCJzZWxlY3RlZFRhYiA9PT0gMVwiIFtAZmFkZUluXT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBhY3RpdmVcIiByb2xlPVwidGFicGFuZWxcIj5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7ICdBYnBJZGVudGl0eTo6UGVyc29uYWxTZXR0aW5ncycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8aHIgLz5cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgPGFicC1wZXJzb25hbC1zZXR0aW5ncy1mb3JtXHJcbiAgICAgICAgICAgICAgKmFicFJlcGxhY2VhYmxlVGVtcGxhdGU9XCJ7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRLZXk6IHBlcnNvbmFsU2V0dGluZ3NLZXlcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPjwvYWJwLXBlcnNvbmFsLXNldHRpbmdzLWZvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|