@myrmidon/auth-jwt-admin 1.0.6 → 2.0.0
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/esm2022/lib/auth-jwt-admin.module.mjs +120 -0
- package/esm2022/lib/components/auth-jwt-registration/auth-jwt-registration.component.mjs +165 -0
- package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +30 -0
- package/esm2022/lib/components/password-strength-bar/password-strength-bar.component.mjs +81 -0
- package/esm2022/lib/components/state/user-list.repository.mjs +145 -0
- package/esm2022/lib/components/user-editor/user-editor.component.mjs +113 -0
- package/esm2022/lib/components/user-filter/user-filter.component.mjs +56 -0
- package/{esm2020 → esm2022}/lib/components/user-list/user-list.component.mjs +71 -70
- package/esm2022/lib/services/auth-jwt-account.service.mjs +182 -0
- package/esm2022/lib/services/dialog.service.mjs +38 -0
- package/{esm2020 → esm2022}/lib/validators/password.validators.mjs +48 -48
- package/{esm2020 → esm2022}/myrmidon-auth-jwt-admin.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +11 -11
- package/{fesm2020 → fesm2022}/myrmidon-auth-jwt-admin.mjs +919 -919
- package/{fesm2020 → fesm2022}/myrmidon-auth-jwt-admin.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/auth-jwt-admin.module.d.ts +30 -30
- package/lib/components/auth-jwt-registration/auth-jwt-registration.component.d.ts +37 -37
- package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +15 -15
- package/lib/components/password-strength-bar/password-strength-bar.component.d.ts +17 -17
- package/lib/components/state/user-list.repository.d.ts +36 -36
- package/lib/components/user-editor/user-editor.component.d.ts +29 -29
- package/lib/components/user-filter/user-filter.component.d.ts +21 -21
- package/lib/components/user-list/user-list.component.d.ts +29 -29
- package/lib/services/auth-jwt-account.service.d.ts +114 -114
- package/lib/services/dialog.service.d.ts +19 -19
- package/lib/validators/password.validators.d.ts +6 -6
- package/package.json +24 -17
- package/public-api.d.ts +8 -8
- package/esm2020/lib/auth-jwt-admin.module.mjs +0 -119
- package/esm2020/lib/components/auth-jwt-registration/auth-jwt-registration.component.mjs +0 -164
- package/esm2020/lib/components/confirm-dialog/confirm-dialog.component.mjs +0 -29
- package/esm2020/lib/components/password-strength-bar/password-strength-bar.component.mjs +0 -80
- package/esm2020/lib/components/state/user-list.repository.mjs +0 -144
- package/esm2020/lib/components/user-editor/user-editor.component.mjs +0 -112
- package/esm2020/lib/components/user-filter/user-filter.component.mjs +0 -55
- package/esm2020/lib/services/auth-jwt-account.service.mjs +0 -181
- package/esm2020/lib/services/dialog.service.mjs +0 -37
- package/fesm2015/myrmidon-auth-jwt-admin.mjs +0 -998
- package/fesm2015/myrmidon-auth-jwt-admin.mjs.map +0 -1
|
@@ -1,70 +1,71 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { take } from 'rxjs/operators';
|
|
3
|
-
import '@angular/localize/init';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../state/user-list.repository";
|
|
6
|
-
import * as i2 from "../../services/dialog.service";
|
|
7
|
-
import * as i3 from "@myrmidon/auth-jwt-login";
|
|
8
|
-
import * as i4 from "@angular/common";
|
|
9
|
-
import * as i5 from "@angular/material/button";
|
|
10
|
-
import * as i6 from "@angular/material/expansion";
|
|
11
|
-
import * as i7 from "@angular/material/icon";
|
|
12
|
-
import * as i8 from "@angular/material/paginator";
|
|
13
|
-
import * as i9 from "@angular/material/progress-bar";
|
|
14
|
-
import * as i10 from "@angular/material/tooltip";
|
|
15
|
-
import * as i11 from "../user-filter/user-filter.component";
|
|
16
|
-
import * as i12 from "../user-editor/user-editor.component";
|
|
17
|
-
|
|
18
|
-
constructor(_repository, _dialogService, _gravatarService) {
|
|
19
|
-
this._repository = _repository;
|
|
20
|
-
this._dialogService = _dialogService;
|
|
21
|
-
this._gravatarService = _gravatarService;
|
|
22
|
-
this.pagination$ = _repository.pagination$;
|
|
23
|
-
this.active$ = _repository.activeUser$;
|
|
24
|
-
this.loading$ = _repository.loading$;
|
|
25
|
-
}
|
|
26
|
-
pageChange(event) {
|
|
27
|
-
this._repository.loadPage(event.pageIndex + 1, event.pageSize);
|
|
28
|
-
}
|
|
29
|
-
deleteUser(user) {
|
|
30
|
-
this._dialogService
|
|
31
|
-
.confirm($localize `Confirm`, $localize `Delete user ${user.userName}?`)
|
|
32
|
-
.pipe(take(1))
|
|
33
|
-
.subscribe((yes) => {
|
|
34
|
-
if (!yes) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
this._repository.deleteUser(user.userName).finally(() => {
|
|
38
|
-
this._repository.clearCache();
|
|
39
|
-
this._repository.loadPage(1);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
setActiveUser(user) {
|
|
44
|
-
this._repository.setActive(user?.userName || null);
|
|
45
|
-
}
|
|
46
|
-
resetActiveUser() {
|
|
47
|
-
this._repository.setActive(null);
|
|
48
|
-
}
|
|
49
|
-
saveActiveUser(user) {
|
|
50
|
-
this._repository.updateActive(user);
|
|
51
|
-
this._repository.setActive(null);
|
|
52
|
-
}
|
|
53
|
-
onUserEditorClose() {
|
|
54
|
-
this._repository.setActive(null);
|
|
55
|
-
}
|
|
56
|
-
getGravatarUrl(email, size = 80) {
|
|
57
|
-
return this._gravatarService.buildGravatarUrl(email, size);
|
|
58
|
-
}
|
|
59
|
-
clearCache() {
|
|
60
|
-
this._repository.clearCache();
|
|
61
|
-
this._repository.loadPage(1);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBY2hDLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsWUFDVSxXQUErQixFQUMvQixjQUE2QixFQUM3QixnQkFBaUM7UUFGakMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFFekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFnQjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFVO1FBQzFCLElBQUksQ0FBQyxjQUFjO2FBQ2hCLE9BQU8sQ0FBQyxTQUFTLENBQUEsU0FBUyxFQUFFLFNBQVMsQ0FBQSxlQUFlLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQzthQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBaUI7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sY0FBYyxDQUFDLElBQVU7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUM1QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OzhHQTFEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwRENsQjlCLHU5R0FnSEE7MkZEOUZhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgJ0Bhbmd1bGFyL2xvY2FsaXplL2luaXQnO1xyXG5cclxuaW1wb3J0IHsgUGFnaW5hdGlvbkRhdGEgfSBmcm9tICdAbmduZWF0L2VsZi1wYWdpbmF0aW9uJztcclxuXHJcbmltcG9ydCB7IEdyYXZhdGFyU2VydmljZSwgVXNlciB9IGZyb20gJ0BteXJtaWRvbi9hdXRoLWp3dC1sb2dpbic7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyTGlzdFJlcG9zaXRvcnkgfSBmcm9tICcuLi9zdGF0ZS91c2VyLWxpc3QucmVwb3NpdG9yeSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F1dGgtand0LXVzZXItbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1saXN0LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJMaXN0Q29tcG9uZW50IHtcclxuICBwdWJsaWMgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbkRhdGEgJiB7IGRhdGE6IFVzZXJbXSB9PjtcclxuICBwdWJsaWMgYWN0aXZlJDogT2JzZXJ2YWJsZTxVc2VyIHwgdW5kZWZpbmVkPjtcclxuICBwdWJsaWMgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcmVwb3NpdG9yeTogVXNlckxpc3RSZXBvc2l0b3J5LFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2dyYXZhdGFyU2VydmljZTogR3JhdmF0YXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnBhZ2luYXRpb24kID0gX3JlcG9zaXRvcnkucGFnaW5hdGlvbiQ7XHJcbiAgICB0aGlzLmFjdGl2ZSQgPSBfcmVwb3NpdG9yeS5hY3RpdmVVc2VyJDtcclxuICAgIHRoaXMubG9hZGluZyQgPSBfcmVwb3NpdG9yeS5sb2FkaW5nJDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdlQ2hhbmdlKGV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlcG9zaXRvcnkubG9hZFBhZ2UoZXZlbnQucGFnZUluZGV4ICsgMSwgZXZlbnQucGFnZVNpemUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZVVzZXIodXNlcjogVXNlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlhbG9nU2VydmljZVxyXG4gICAgICAuY29uZmlybSgkbG9jYWxpemVgQ29uZmlybWAsICRsb2NhbGl6ZWBEZWxldGUgdXNlciAke3VzZXIudXNlck5hbWV9P2ApXHJcbiAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHllcykgPT4ge1xyXG4gICAgICAgIGlmICgheWVzKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3JlcG9zaXRvcnkuZGVsZXRlVXNlcih1c2VyLnVzZXJOYW1lKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3JlcG9zaXRvcnkuY2xlYXJDYWNoZSgpO1xyXG4gICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeS5sb2FkUGFnZSgxKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QWN0aXZlVXNlcih1c2VyOiBVc2VyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVwb3NpdG9yeS5zZXRBY3RpdmUodXNlcj8udXNlck5hbWUgfHwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRBY3RpdmVVc2VyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVwb3NpdG9yeS5zZXRBY3RpdmUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFjdGl2ZVVzZXIodXNlcjogVXNlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVwb3NpdG9yeS51cGRhdGVBY3RpdmUodXNlcik7XHJcbiAgICB0aGlzLl9yZXBvc2l0b3J5LnNldEFjdGl2ZShudWxsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVzZXJFZGl0b3JDbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlcG9zaXRvcnkuc2V0QWN0aXZlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEdyYXZhdGFyVXJsKGVtYWlsOiBzdHJpbmcsIHNpemUgPSA4MCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dyYXZhdGFyU2VydmljZS5idWlsZEdyYXZhdGFyVXJsKGVtYWlsLCBzaXplKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckNhY2hlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVwb3NpdG9yeS5jbGVhckNhY2hlKCk7XHJcbiAgICB0aGlzLl9yZXBvc2l0b3J5LmxvYWRQYWdlKDEpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwiY29udGFpbmVyXCI+XG4gIDxkaXY+XG4gICAgPCEtLSBmaWx0ZXJzIC0tPlxuICAgIDxkaXYgaWQ9XCJmaWx0ZXJzXCI+XG4gICAgICA8YXV0aC1qd3QtdXNlci1maWx0ZXI+PC9hdXRoLWp3dC11c2VyLWZpbHRlcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gbGlzdCAtLT5cbiAgICA8ZGl2IGlkPVwibGlzdFwiICpuZ0lmPVwicGFnaW5hdGlvbiQgfCBhc3luYyBhcyBwYWdpbmF0aW9uXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZyQgfCBhc3luY1wiIGdkQXJlYT1cInByb2dyZXNzXCI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9kaXY+XG4gICAgICA8dGFibGU+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dGQ+PC90ZD5cbiAgICAgICAgICA8dGQ+PC90ZD5cbiAgICAgICAgICA8dGggaTE4bj5uYW1lPC90aD5cbiAgICAgICAgICA8dGggaTE4biBjbGFzcz1cIm5vaWYtbHQtbWRcIj5maXJzdDwvdGg+XG4gICAgICAgICAgPHRoIGkxOG4gY2xhc3M9XCJub2lmLWx0LW1kXCI+bGFzdDwvdGg+XG4gICAgICAgICAgPHRoIGkxOG4gY2xhc3M9XCJub2lmLWx0LW1kXCI+ZW1haWw8L3RoPlxuICAgICAgICAgIDx0aCBpMThuPnJvbGVzPC90aD5cbiAgICAgICAgICA8dGggaTE4biBjbGFzcz1cIm5vaWYtbHQtbWRcIj5sb2NrIGVuZDwvdGg+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHVzZXIgb2YgcGFnaW5hdGlvbi5kYXRhXCI+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBpMThuLW1hdFRvb2x0aXBcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB0aGlzIHVzZXJcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZVVzZXIodXNlcilcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPm1vZGVfZWRpdDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgaTE4bi1tYXRUb29sdGlwXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSB0aGlzIHVzZXJcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVVzZXIodXNlcilcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPnJlbW92ZV9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhbHQ9XCJhdmF0YXJcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0R3JhdmF0YXJVcmwodXNlci5lbWFpbCwgMzIpXCJcbiAgICAgICAgICAgICAgICBbYWx0XT1cInVzZXIudXNlck5hbWVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyB1c2VyLnVzZXJOYW1lIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm5vaWYtbHQtbWRcIj57eyB1c2VyLmZpcnN0TmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJub2lmLWx0LW1kXCI+e3sgdXNlci5sYXN0TmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJub2lmLWx0LW1kXCI+XG4gICAgICAgICAgICAgIDxhIFtocmVmXT1cIidtYWlsdG86JyArIHVzZXIuZW1haWxcIj57eyB1c2VyLmVtYWlsIH19PC9hPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyB1c2VyLnJvbGVzLmpvaW4oXCIgXCIpIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm5vaWYtbHQtbWRcIj57eyB1c2VyLmxvY2tvdXRFbmQgfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuXG4gICAgICA8IS0tIHBhZ2luYXRvciAtLT5cbiAgICAgIDxkaXYgaWQ9XCJwYWdpbmF0b3JcIiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICAgIGkxOG4tbWF0bWF0VG9vbHRpcFxuICAgICAgICAgIG1hdFRvb2x0aXA9XCJDbGVhciBpdGVtcyBjYWNoZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyQ2FjaGUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24+YXV0b3JlbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgICAgICBnZEFyZWE9XCJwYWdlclwiXG4gICAgICAgICAgZ2RBbGlnbkNvbHVtbnM9XCJjZW50ZXJcIlxuICAgICAgICAgIGdkQWxpZ25Sb3dzPVwic3RhcnRcIlxuICAgICAgICAgIFtsZW5ndGhdPVwicGFnaW5hdGlvbi50b3RhbFwiXG4gICAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2luYXRpb24ucGVyUGFnZVwiXG4gICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbMjAsIDUwLCA3NSwgMTAwXVwiXG4gICAgICAgICAgW3BhZ2VJbmRleF09XCJwYWdpbmF0aW9uLmN1cnJlbnRQYWdlIC0gMVwiXG4gICAgICAgICAgW3Nob3dGaXJzdExhc3RCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgIChwYWdlKT1cInBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L21hdC1wYWdpbmF0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBlZGl0b3IgLS0+XG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsXG4gICAgaWQ9XCJlZGl0b3JcIlxuICAgIFtleHBhbmRlZF09XCJhY3RpdmUkIHwgYXN5bmNcIlxuICAgIFtkaXNhYmxlZF09XCIhKGFjdGl2ZSQgfCBhc3luYylcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cImFjdGl2ZSQgfCBhc3luYyBhcyBhY3RpdmVcIj5cbiAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgPGxlZ2VuZD57eyBhY3RpdmUudXNlck5hbWUgfX08L2xlZ2VuZD5cbiAgICAgICAgPGF1dGgtand0LXVzZXItZWRpdG9yXG4gICAgICAgICAgW3VzZXJdPVwiYWN0aXZlXCJcbiAgICAgICAgICAodXNlckNoYW5nZSk9XCJzYXZlQWN0aXZlVXNlcigkZXZlbnQpXCJcbiAgICAgICAgICAoZWRpdG9yQ2xvc2UpPVwicmVzZXRBY3RpdmVVc2VyKClcIlxuICAgICAgICA+PC9hdXRoLWp3dC11c2VyLWVkaXRvcj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbjwvZGl2PlxuIl19
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { take } from 'rxjs/operators';
|
|
3
|
+
import '@angular/localize/init';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../state/user-list.repository";
|
|
6
|
+
import * as i2 from "../../services/dialog.service";
|
|
7
|
+
import * as i3 from "@myrmidon/auth-jwt-login";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i5 from "@angular/material/button";
|
|
10
|
+
import * as i6 from "@angular/material/expansion";
|
|
11
|
+
import * as i7 from "@angular/material/icon";
|
|
12
|
+
import * as i8 from "@angular/material/paginator";
|
|
13
|
+
import * as i9 from "@angular/material/progress-bar";
|
|
14
|
+
import * as i10 from "@angular/material/tooltip";
|
|
15
|
+
import * as i11 from "../user-filter/user-filter.component";
|
|
16
|
+
import * as i12 from "../user-editor/user-editor.component";
|
|
17
|
+
class UserListComponent {
|
|
18
|
+
constructor(_repository, _dialogService, _gravatarService) {
|
|
19
|
+
this._repository = _repository;
|
|
20
|
+
this._dialogService = _dialogService;
|
|
21
|
+
this._gravatarService = _gravatarService;
|
|
22
|
+
this.pagination$ = _repository.pagination$;
|
|
23
|
+
this.active$ = _repository.activeUser$;
|
|
24
|
+
this.loading$ = _repository.loading$;
|
|
25
|
+
}
|
|
26
|
+
pageChange(event) {
|
|
27
|
+
this._repository.loadPage(event.pageIndex + 1, event.pageSize);
|
|
28
|
+
}
|
|
29
|
+
deleteUser(user) {
|
|
30
|
+
this._dialogService
|
|
31
|
+
.confirm($localize `Confirm`, $localize `Delete user ${user.userName}?`)
|
|
32
|
+
.pipe(take(1))
|
|
33
|
+
.subscribe((yes) => {
|
|
34
|
+
if (!yes) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this._repository.deleteUser(user.userName).finally(() => {
|
|
38
|
+
this._repository.clearCache();
|
|
39
|
+
this._repository.loadPage(1);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
setActiveUser(user) {
|
|
44
|
+
this._repository.setActive(user?.userName || null);
|
|
45
|
+
}
|
|
46
|
+
resetActiveUser() {
|
|
47
|
+
this._repository.setActive(null);
|
|
48
|
+
}
|
|
49
|
+
saveActiveUser(user) {
|
|
50
|
+
this._repository.updateActive(user);
|
|
51
|
+
this._repository.setActive(null);
|
|
52
|
+
}
|
|
53
|
+
onUserEditorClose() {
|
|
54
|
+
this._repository.setActive(null);
|
|
55
|
+
}
|
|
56
|
+
getGravatarUrl(email, size = 80) {
|
|
57
|
+
return this._gravatarService.buildGravatarUrl(email, size);
|
|
58
|
+
}
|
|
59
|
+
clearCache() {
|
|
60
|
+
this._repository.clearCache();
|
|
61
|
+
this._repository.loadPage(1);
|
|
62
|
+
}
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: UserListComponent, deps: [{ token: i1.UserListRepository }, { token: i2.DialogService }, { token: i3.GravatarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: UserListComponent, selector: "auth-jwt-user-list", ngImport: i0, template: "<div id=\"container\">\n <div>\n <!-- filters -->\n <div id=\"filters\">\n <auth-jwt-user-filter></auth-jwt-user-filter>\n </div>\n\n <!-- list -->\n <div id=\"list\" *ngIf=\"pagination$ | async as pagination\">\n <div *ngIf=\"loading$ | async\" gdArea=\"progress\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <table>\n <thead>\n <td></td>\n <td></td>\n <th i18n>name</th>\n <th i18n class=\"noif-lt-md\">first</th>\n <th i18n class=\"noif-lt-md\">last</th>\n <th i18n class=\"noif-lt-md\">email</th>\n <th i18n>roles</th>\n <th i18n class=\"noif-lt-md\">lock end</th>\n </thead>\n <tbody>\n <tr *ngFor=\"let user of pagination.data\">\n <td>\n <button\n mat-icon-button\n type=\"button\"\n i18n-matTooltip\n matTooltip=\"Edit this user\"\n color=\"primary\"\n (click)=\"setActiveUser(user)\"\n >\n <mat-icon>mode_edit</mat-icon>\n </button>\n <button\n mat-icon-button\n type=\"button\"\n i18n-matTooltip\n matTooltip=\"Delete this user\"\n color=\"warn\"\n (click)=\"deleteUser(user)\"\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n </td>\n <td>\n <img\n alt=\"avatar\"\n [src]=\"getGravatarUrl(user.email, 32)\"\n [alt]=\"user.userName\"\n />\n </td>\n <td>{{ user.userName }}</td>\n <td class=\"noif-lt-md\">{{ user.firstName }}</td>\n <td class=\"noif-lt-md\">{{ user.lastName }}</td>\n <td class=\"noif-lt-md\">\n <a [href]=\"'mailto:' + user.email\">{{ user.email }}</a>\n </td>\n <td>{{ user.roles.join(\" \") }}</td>\n <td class=\"noif-lt-md\">{{ user.lockoutEnd }}</td>\n </tr>\n </tbody>\n </table>\n\n <!-- paginator -->\n <div id=\"paginator\" class=\"form-row\">\n <button\n type=\"button\"\n mat-icon-button\n color=\"warn\"\n i18n-matmatTooltip\n matTooltip=\"Clear items cache\"\n (click)=\"clearCache()\"\n >\n <mat-icon>autorenew</mat-icon>\n </button>\n\n <mat-paginator\n gdArea=\"pager\"\n gdAlignColumns=\"center\"\n gdAlignRows=\"start\"\n [length]=\"pagination.total\"\n [pageSize]=\"pagination.perPage\"\n [pageSizeOptions]=\"[20, 50, 75, 100]\"\n [pageIndex]=\"pagination.currentPage - 1\"\n [showFirstLastButtons]=\"true\"\n (page)=\"pageChange($event)\"\n ></mat-paginator>\n </div>\n </div>\n </div>\n\n <!-- editor -->\n <mat-expansion-panel\n id=\"editor\"\n [expanded]=\"active$ | async\"\n [disabled]=\"!(active$ | async)\"\n >\n <div *ngIf=\"active$ | async as active\">\n <fieldset>\n <legend>{{ active.userName }}</legend>\n <auth-jwt-user-editor\n [user]=\"active\"\n (userChange)=\"saveActiveUser($event)\"\n (editorClose)=\"resetActiveUser()\"\n ></auth-jwt-user-editor>\n </fieldset>\n </div>\n </mat-expansion-panel>\n</div>\n", styles: ["tr:nth-child(odd){background-color:#f8f8f8}th{padding:0 8px;text-align:left;color:silver;font-weight:400}td{padding:0 8px}td.command{width:24px}table{width:100%;border-collapse:collapse}fieldset{border:1px solid silver;border-radius:8px;padding:16px}.form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}div#filters{grid-area:filters}div#list{grid-area:list}div#paginator{grid-area:paginator;justify-content:end}div#editor{grid-area:editor}div#container{display:grid;grid-template-rows:auto 1fr auto auto;grid-template-columns:1fr;grid-template-areas:\"filters\" \"list\" \"paginator\" \"editor\";gap:8px}@media only screen and (max-width: 959px){.noif-lt-md{display:none}}@media only screen and (min-width: 1920px){div#container{grid-template-rows:auto 1fr auto;grid-template-columns:1fr auto;grid-template-areas:\"filters filters\" \"list editor\" \"paginator .\"}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i9.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.UserFilterComponent, selector: "auth-jwt-user-filter", inputs: ["disabled"] }, { kind: "component", type: i12.UserEditorComponent, selector: "auth-jwt-user-editor", inputs: ["user"], outputs: ["userChange", "editorClose"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
65
|
+
}
|
|
66
|
+
export { UserListComponent };
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: UserListComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'auth-jwt-user-list', template: "<div id=\"container\">\n <div>\n <!-- filters -->\n <div id=\"filters\">\n <auth-jwt-user-filter></auth-jwt-user-filter>\n </div>\n\n <!-- list -->\n <div id=\"list\" *ngIf=\"pagination$ | async as pagination\">\n <div *ngIf=\"loading$ | async\" gdArea=\"progress\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <table>\n <thead>\n <td></td>\n <td></td>\n <th i18n>name</th>\n <th i18n class=\"noif-lt-md\">first</th>\n <th i18n class=\"noif-lt-md\">last</th>\n <th i18n class=\"noif-lt-md\">email</th>\n <th i18n>roles</th>\n <th i18n class=\"noif-lt-md\">lock end</th>\n </thead>\n <tbody>\n <tr *ngFor=\"let user of pagination.data\">\n <td>\n <button\n mat-icon-button\n type=\"button\"\n i18n-matTooltip\n matTooltip=\"Edit this user\"\n color=\"primary\"\n (click)=\"setActiveUser(user)\"\n >\n <mat-icon>mode_edit</mat-icon>\n </button>\n <button\n mat-icon-button\n type=\"button\"\n i18n-matTooltip\n matTooltip=\"Delete this user\"\n color=\"warn\"\n (click)=\"deleteUser(user)\"\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n </td>\n <td>\n <img\n alt=\"avatar\"\n [src]=\"getGravatarUrl(user.email, 32)\"\n [alt]=\"user.userName\"\n />\n </td>\n <td>{{ user.userName }}</td>\n <td class=\"noif-lt-md\">{{ user.firstName }}</td>\n <td class=\"noif-lt-md\">{{ user.lastName }}</td>\n <td class=\"noif-lt-md\">\n <a [href]=\"'mailto:' + user.email\">{{ user.email }}</a>\n </td>\n <td>{{ user.roles.join(\" \") }}</td>\n <td class=\"noif-lt-md\">{{ user.lockoutEnd }}</td>\n </tr>\n </tbody>\n </table>\n\n <!-- paginator -->\n <div id=\"paginator\" class=\"form-row\">\n <button\n type=\"button\"\n mat-icon-button\n color=\"warn\"\n i18n-matmatTooltip\n matTooltip=\"Clear items cache\"\n (click)=\"clearCache()\"\n >\n <mat-icon>autorenew</mat-icon>\n </button>\n\n <mat-paginator\n gdArea=\"pager\"\n gdAlignColumns=\"center\"\n gdAlignRows=\"start\"\n [length]=\"pagination.total\"\n [pageSize]=\"pagination.perPage\"\n [pageSizeOptions]=\"[20, 50, 75, 100]\"\n [pageIndex]=\"pagination.currentPage - 1\"\n [showFirstLastButtons]=\"true\"\n (page)=\"pageChange($event)\"\n ></mat-paginator>\n </div>\n </div>\n </div>\n\n <!-- editor -->\n <mat-expansion-panel\n id=\"editor\"\n [expanded]=\"active$ | async\"\n [disabled]=\"!(active$ | async)\"\n >\n <div *ngIf=\"active$ | async as active\">\n <fieldset>\n <legend>{{ active.userName }}</legend>\n <auth-jwt-user-editor\n [user]=\"active\"\n (userChange)=\"saveActiveUser($event)\"\n (editorClose)=\"resetActiveUser()\"\n ></auth-jwt-user-editor>\n </fieldset>\n </div>\n </mat-expansion-panel>\n</div>\n", styles: ["tr:nth-child(odd){background-color:#f8f8f8}th{padding:0 8px;text-align:left;color:silver;font-weight:400}td{padding:0 8px}td.command{width:24px}table{width:100%;border-collapse:collapse}fieldset{border:1px solid silver;border-radius:8px;padding:16px}.form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}div#filters{grid-area:filters}div#list{grid-area:list}div#paginator{grid-area:paginator;justify-content:end}div#editor{grid-area:editor}div#container{display:grid;grid-template-rows:auto 1fr auto auto;grid-template-columns:1fr;grid-template-areas:\"filters\" \"list\" \"paginator\" \"editor\";gap:8px}@media only screen and (max-width: 959px){.noif-lt-md{display:none}}@media only screen and (min-width: 1920px){div#container{grid-template-rows:auto 1fr auto;grid-template-columns:1fr auto;grid-template-areas:\"filters filters\" \"list editor\" \"paginator .\"}}\n"] }]
|
|
70
|
+
}], ctorParameters: function () { return [{ type: i1.UserListRepository }, { type: i2.DialogService }, { type: i3.GravatarService }]; } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU2hDLE1BS2EsaUJBQWlCO0lBSzVCLFlBQ1UsV0FBK0IsRUFDL0IsY0FBNkIsRUFDN0IsZ0JBQWlDO1FBRmpDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRXpDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBZ0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBVTtRQUMxQixJQUFJLENBQUMsY0FBYzthQUNoQixPQUFPLENBQUMsU0FBUyxDQUFBLFNBQVMsRUFBRSxTQUFTLENBQUEsZUFBZSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUM7YUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQWlCO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFVO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDNUMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQTFEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwRENsQjlCLHU5R0FnSEE7O1NEOUZhLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdCc7XHJcblxyXG5pbXBvcnQgeyBQYWdpbmF0aW9uRGF0YSB9IGZyb20gJ0BuZ25lYXQvZWxmLXBhZ2luYXRpb24nO1xyXG5cclxuaW1wb3J0IHsgR3JhdmF0YXJTZXJ2aWNlLCBVc2VyIH0gZnJvbSAnQG15cm1pZG9uL2F1dGgtand0LWxvZ2luJztcclxuXHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJMaXN0UmVwb3NpdG9yeSB9IGZyb20gJy4uL3N0YXRlL3VzZXItbGlzdC5yZXBvc2l0b3J5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXV0aC1qd3QtdXNlci1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91c2VyLWxpc3QuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckxpc3RDb21wb25lbnQge1xyXG4gIHB1YmxpYyBwYWdpbmF0aW9uJDogT2JzZXJ2YWJsZTxQYWdpbmF0aW9uRGF0YSAmIHsgZGF0YTogVXNlcltdIH0+O1xyXG4gIHB1YmxpYyBhY3RpdmUkOiBPYnNlcnZhYmxlPFVzZXIgfCB1bmRlZmluZWQ+O1xyXG4gIHB1YmxpYyBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9yZXBvc2l0b3J5OiBVc2VyTGlzdFJlcG9zaXRvcnksXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZ3JhdmF0YXJTZXJ2aWNlOiBHcmF2YXRhclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMucGFnaW5hdGlvbiQgPSBfcmVwb3NpdG9yeS5wYWdpbmF0aW9uJDtcclxuICAgIHRoaXMuYWN0aXZlJCA9IF9yZXBvc2l0b3J5LmFjdGl2ZVVzZXIkO1xyXG4gICAgdGhpcy5sb2FkaW5nJCA9IF9yZXBvc2l0b3J5LmxvYWRpbmckO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVwb3NpdG9yeS5sb2FkUGFnZShldmVudC5wYWdlSW5kZXggKyAxLCBldmVudC5wYWdlU2l6ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlVXNlcih1c2VyOiBVc2VyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlXHJcbiAgICAgIC5jb25maXJtKCRsb2NhbGl6ZWBDb25maXJtYCwgJGxvY2FsaXplYERlbGV0ZSB1c2VyICR7dXNlci51c2VyTmFtZX0/YClcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgoeWVzKSA9PiB7XHJcbiAgICAgICAgaWYgKCF5ZXMpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcmVwb3NpdG9yeS5kZWxldGVVc2VyKHVzZXIudXNlck5hbWUpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeS5jbGVhckNhY2hlKCk7XHJcbiAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5LmxvYWRQYWdlKDEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRBY3RpdmVVc2VyKHVzZXI6IFVzZXIgfCBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvc2l0b3J5LnNldEFjdGl2ZSh1c2VyPy51c2VyTmFtZSB8fCBudWxsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldEFjdGl2ZVVzZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvc2l0b3J5LnNldEFjdGl2ZShudWxsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlQWN0aXZlVXNlcih1c2VyOiBVc2VyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvc2l0b3J5LnVwZGF0ZUFjdGl2ZSh1c2VyKTtcclxuICAgIHRoaXMuX3JlcG9zaXRvcnkuc2V0QWN0aXZlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVXNlckVkaXRvckNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVwb3NpdG9yeS5zZXRBY3RpdmUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0R3JhdmF0YXJVcmwoZW1haWw6IHN0cmluZywgc2l6ZSA9IDgwKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ3JhdmF0YXJTZXJ2aWNlLmJ1aWxkR3JhdmF0YXJVcmwoZW1haWwsIHNpemUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyQ2FjaGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvc2l0b3J5LmNsZWFyQ2FjaGUoKTtcclxuICAgIHRoaXMuX3JlcG9zaXRvcnkubG9hZFBhZ2UoMSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJjb250YWluZXJcIj5cbiAgPGRpdj5cbiAgICA8IS0tIGZpbHRlcnMgLS0+XG4gICAgPGRpdiBpZD1cImZpbHRlcnNcIj5cbiAgICAgIDxhdXRoLWp3dC11c2VyLWZpbHRlcj48L2F1dGgtand0LXVzZXItZmlsdGVyPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBsaXN0IC0tPlxuICAgIDxkaXYgaWQ9XCJsaXN0XCIgKm5nSWY9XCJwYWdpbmF0aW9uJCB8IGFzeW5jIGFzIHBhZ2luYXRpb25cIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nJCB8IGFzeW5jXCIgZ2RBcmVhPVwicHJvZ3Jlc3NcIj5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx0YWJsZT5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0ZD48L3RkPlxuICAgICAgICAgIDx0ZD48L3RkPlxuICAgICAgICAgIDx0aCBpMThuPm5hbWU8L3RoPlxuICAgICAgICAgIDx0aCBpMThuIGNsYXNzPVwibm9pZi1sdC1tZFwiPmZpcnN0PC90aD5cbiAgICAgICAgICA8dGggaTE4biBjbGFzcz1cIm5vaWYtbHQtbWRcIj5sYXN0PC90aD5cbiAgICAgICAgICA8dGggaTE4biBjbGFzcz1cIm5vaWYtbHQtbWRcIj5lbWFpbDwvdGg+XG4gICAgICAgICAgPHRoIGkxOG4+cm9sZXM8L3RoPlxuICAgICAgICAgIDx0aCBpMThuIGNsYXNzPVwibm9pZi1sdC1tZFwiPmxvY2sgZW5kPC90aD5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgdXNlciBvZiBwYWdpbmF0aW9uLmRhdGFcIj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGkxOG4tbWF0VG9vbHRpcFxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFZGl0IHRoaXMgdXNlclwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlVXNlcih1c2VyKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9kZV9lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBpMThuLW1hdFRvb2x0aXBcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHRoaXMgdXNlclwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlVXNlcih1c2VyKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+cmVtb3ZlX2NpcmNsZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cImF2YXRhclwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJnZXRHcmF2YXRhclVybCh1c2VyLmVtYWlsLCAzMilcIlxuICAgICAgICAgICAgICAgIFthbHRdPVwidXNlci51c2VyTmFtZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPnt7IHVzZXIudXNlck5hbWUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibm9pZi1sdC1tZFwiPnt7IHVzZXIuZmlyc3ROYW1lIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm5vaWYtbHQtbWRcIj57eyB1c2VyLmxhc3ROYW1lIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm5vaWYtbHQtbWRcIj5cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiJ21haWx0bzonICsgdXNlci5lbWFpbFwiPnt7IHVzZXIuZW1haWwgfX08L2E+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPnt7IHVzZXIucm9sZXMuam9pbihcIiBcIikgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibm9pZi1sdC1tZFwiPnt7IHVzZXIubG9ja291dEVuZCB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG5cbiAgICAgIDwhLS0gcGFnaW5hdG9yIC0tPlxuICAgICAgPGRpdiBpZD1cInBhZ2luYXRvclwiIGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgaTE4bi1tYXRtYXRUb29sdGlwXG4gICAgICAgICAgbWF0VG9vbHRpcD1cIkNsZWFyIGl0ZW1zIGNhY2hlXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJDYWNoZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbj5hdXRvcmVuZXc8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8bWF0LXBhZ2luYXRvclxuICAgICAgICAgIGdkQXJlYT1cInBhZ2VyXCJcbiAgICAgICAgICBnZEFsaWduQ29sdW1ucz1cImNlbnRlclwiXG4gICAgICAgICAgZ2RBbGlnblJvd3M9XCJzdGFydFwiXG4gICAgICAgICAgW2xlbmd0aF09XCJwYWdpbmF0aW9uLnRvdGFsXCJcbiAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvbi5wZXJQYWdlXCJcbiAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cIlsyMCwgNTAsIDc1LCAxMDBdXCJcbiAgICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2luYXRpb24uY3VycmVudFBhZ2UgLSAxXCJcbiAgICAgICAgICBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgKHBhZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvbWF0LXBhZ2luYXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIGVkaXRvciAtLT5cbiAgPG1hdC1leHBhbnNpb24tcGFuZWxcbiAgICBpZD1cImVkaXRvclwiXG4gICAgW2V4cGFuZGVkXT1cImFjdGl2ZSQgfCBhc3luY1wiXG4gICAgW2Rpc2FibGVkXT1cIiEoYWN0aXZlJCB8IGFzeW5jKVwiXG4gID5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlJCB8IGFzeW5jIGFzIGFjdGl2ZVwiPlxuICAgICAgPGZpZWxkc2V0PlxuICAgICAgICA8bGVnZW5kPnt7IGFjdGl2ZS51c2VyTmFtZSB9fTwvbGVnZW5kPlxuICAgICAgICA8YXV0aC1qd3QtdXNlci1lZGl0b3JcbiAgICAgICAgICBbdXNlcl09XCJhY3RpdmVcIlxuICAgICAgICAgICh1c2VyQ2hhbmdlKT1cInNhdmVBY3RpdmVVc2VyKCRldmVudClcIlxuICAgICAgICAgIChlZGl0b3JDbG9zZSk9XCJyZXNldEFjdGl2ZVVzZXIoKVwiXG4gICAgICAgID48L2F1dGgtand0LXVzZXItZWRpdG9yPlxuICAgICAgPC9maWVsZHNldD5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpParams } from '@angular/common/http';
|
|
3
|
+
import { retry, catchError } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
import * as i2 from "@myrmidon/ng-tools";
|
|
7
|
+
class AuthJwtAccountService {
|
|
8
|
+
constructor(_http, _error, _env) {
|
|
9
|
+
this._http = _http;
|
|
10
|
+
this._error = _error;
|
|
11
|
+
this._env = _env;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Checks if the specified email address is registered on the server.
|
|
15
|
+
* @param email email address to test.
|
|
16
|
+
* @returns result.
|
|
17
|
+
*/
|
|
18
|
+
isEmailRegistered(email) {
|
|
19
|
+
return this._http.get(this._env.get('apiUrl') +
|
|
20
|
+
'accounts/emailexists/' +
|
|
21
|
+
encodeURIComponent(email));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Checks if the specified user's given name is registered on the server.
|
|
25
|
+
* This name is a nickname chosen by users during registration, and is the key
|
|
26
|
+
* used for referencing users when talking to the server.
|
|
27
|
+
* @param name name to test.
|
|
28
|
+
* @returns result.
|
|
29
|
+
*/
|
|
30
|
+
isNameRegistered(name) {
|
|
31
|
+
return this._http.get(this._env.get('apiUrl') +
|
|
32
|
+
'accounts/nameexists/' +
|
|
33
|
+
encodeURIComponent(name));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Register the user with the specified registration data.
|
|
37
|
+
* @param registration The registration data.
|
|
38
|
+
* @param confirmed True to automatically confirm the user's email address
|
|
39
|
+
* without sending the confirmation email message.
|
|
40
|
+
*/
|
|
41
|
+
register(registration, confirmed = false) {
|
|
42
|
+
return this._http.post(this._env.get('apiUrl') +
|
|
43
|
+
'accounts/register' +
|
|
44
|
+
(confirmed ? '?confirmed=true' : ''), registration);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resend the confirmation email to the specified address.
|
|
48
|
+
* @param email address.
|
|
49
|
+
*/
|
|
50
|
+
resendConfirmEmail(email) {
|
|
51
|
+
return this._http.get(this._env.get('apiUrl') +
|
|
52
|
+
'accounts/resendconfirm/' +
|
|
53
|
+
encodeURIComponent(email)
|
|
54
|
+
// options
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Request a password reset for the specified email address.
|
|
59
|
+
* @param email Email address.
|
|
60
|
+
*/
|
|
61
|
+
requestPasswordReset(email) {
|
|
62
|
+
return this._http.post(this._env.get('apiUrl') + 'accounts/resetpassword/request', { email });
|
|
63
|
+
}
|
|
64
|
+
getAllUsers() {
|
|
65
|
+
return this._http
|
|
66
|
+
.get(this._env.get('apiUrl') + 'users', {
|
|
67
|
+
params: new HttpParams().set('pageNumber', '1'),
|
|
68
|
+
})
|
|
69
|
+
.pipe(retry(3), catchError(this._error.handleError));
|
|
70
|
+
}
|
|
71
|
+
getUsers(filter, pageNumber = 1, pageSize = 20) {
|
|
72
|
+
let httpParams = new HttpParams();
|
|
73
|
+
httpParams = httpParams.set('pageNumber', pageNumber.toString());
|
|
74
|
+
httpParams = httpParams.set('pageSize', pageSize.toString());
|
|
75
|
+
if (filter.name) {
|
|
76
|
+
httpParams = httpParams.set('name', filter.name);
|
|
77
|
+
}
|
|
78
|
+
return this._http
|
|
79
|
+
.get(this._env.get('apiUrl') + 'users', {
|
|
80
|
+
params: httpParams,
|
|
81
|
+
})
|
|
82
|
+
.pipe(retry(3), catchError(this._error.handleError));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get the top N users matching the specified name filter.
|
|
86
|
+
* @param nameFilter The user name filter.
|
|
87
|
+
* @param limit The maximum number of users to get.
|
|
88
|
+
*/
|
|
89
|
+
getTopUsers(nameFilter, limit = 10) {
|
|
90
|
+
let httpParams = new HttpParams();
|
|
91
|
+
httpParams = httpParams.set('pageNumber', '1');
|
|
92
|
+
httpParams = httpParams.set('pageSize', limit.toString());
|
|
93
|
+
if (nameFilter) {
|
|
94
|
+
httpParams = httpParams.set('name', nameFilter);
|
|
95
|
+
}
|
|
96
|
+
const options = httpParams.keys().length > 0
|
|
97
|
+
? {
|
|
98
|
+
params: httpParams,
|
|
99
|
+
}
|
|
100
|
+
: {};
|
|
101
|
+
return this._http
|
|
102
|
+
.get(this._env.get('apiUrl') + 'users', options)
|
|
103
|
+
.pipe(retry(3), catchError(this._error.handleError));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get information about all the users listed in the specified names.
|
|
107
|
+
* @param names User(s) names.
|
|
108
|
+
*/
|
|
109
|
+
getUsersFromNames(names) {
|
|
110
|
+
let httpParams = new HttpParams();
|
|
111
|
+
if (names && names.length > 0) {
|
|
112
|
+
httpParams = httpParams.set('names', names.join(','));
|
|
113
|
+
}
|
|
114
|
+
const options = httpParams.keys().length > 0
|
|
115
|
+
? {
|
|
116
|
+
params: httpParams,
|
|
117
|
+
}
|
|
118
|
+
: {};
|
|
119
|
+
return this._http
|
|
120
|
+
.get(this._env.get('apiUrl') + 'users-from-names', options)
|
|
121
|
+
.pipe(retry(3), catchError(this._error.handleError));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get data about the specified user.
|
|
125
|
+
* @param name The user name.
|
|
126
|
+
*/
|
|
127
|
+
getUser(name) {
|
|
128
|
+
return this._http
|
|
129
|
+
.get(this._env.get('apiUrl') + 'users/' + name)
|
|
130
|
+
.pipe(retry(3), catchError(this._error.handleError));
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Update the editable data for the specified user.
|
|
134
|
+
* @param user The user to update.
|
|
135
|
+
*/
|
|
136
|
+
updateUser(user) {
|
|
137
|
+
return this._http
|
|
138
|
+
.put(this._env.get('apiUrl') +
|
|
139
|
+
'users' +
|
|
140
|
+
(user.emailConfirmed ? '?confirmed=true' : ''), user)
|
|
141
|
+
.pipe(catchError(this._error.handleError));
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Request a password reset email for the specified email address.
|
|
145
|
+
* @param email The email address to receive the reset message.
|
|
146
|
+
*/
|
|
147
|
+
resetPassword(email) {
|
|
148
|
+
return this._http
|
|
149
|
+
.post(this._env.get('apiUrl') + 'accounts/resetpassword/request', {
|
|
150
|
+
email: email,
|
|
151
|
+
})
|
|
152
|
+
.pipe(catchError(this._error.handleError));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Change the password.
|
|
156
|
+
* @param change The password change data.
|
|
157
|
+
*/
|
|
158
|
+
changePassword(change) {
|
|
159
|
+
return this._http
|
|
160
|
+
.post(this._env.get('apiUrl') + 'accounts/changepassword', change)
|
|
161
|
+
.pipe(catchError(this._error.handleError));
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Delete the user with the specified username.
|
|
165
|
+
* @param name The user name.
|
|
166
|
+
*/
|
|
167
|
+
deleteUser(name) {
|
|
168
|
+
return this._http
|
|
169
|
+
.delete(this._env.get('apiUrl') + 'accounts/' + name)
|
|
170
|
+
.pipe(catchError(this._error.handleError));
|
|
171
|
+
}
|
|
172
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthJwtAccountService, deps: [{ token: i1.HttpClient }, { token: i2.ErrorService }, { token: i2.EnvService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
173
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthJwtAccountService, providedIn: 'root' }); }
|
|
174
|
+
}
|
|
175
|
+
export { AuthJwtAccountService };
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthJwtAccountService, decorators: [{
|
|
177
|
+
type: Injectable,
|
|
178
|
+
args: [{
|
|
179
|
+
providedIn: 'root',
|
|
180
|
+
}]
|
|
181
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ErrorService }, { type: i2.EnvService }]; } });
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1qd3QtYWNjb3VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vYXV0aC1qd3QtYWRtaW4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoLWp3dC1hY2NvdW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQXlDbkQsTUFHYSxxQkFBcUI7SUFDaEMsWUFDVSxLQUFpQixFQUNqQixNQUFvQixFQUNwQixJQUFnQjtRQUZoQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUo7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ3JCLHVCQUF1QjtZQUN2QixrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNyQixzQkFBc0I7WUFDdEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQzNCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQ2IsWUFBK0IsRUFDL0IsU0FBUyxHQUFHLEtB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Q0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLElBQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBM01VLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRnBCLE1BQU07O1NBRVAscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJldHJ5LCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEYXRhUGFnZSwgRW52U2VydmljZSwgRXJyb3JTZXJ2aWNlIH0gZnJvbSAnQG15cm1pZG9uL25nLXRvb2xzJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAbXlybWlkb24vYXV0aC1qd3QtbG9naW4nO1xuXG4vKipcbiAqIFVzZXIgcmVnaXN0cmF0aW9uIG1vZGVsLiBZb3UgY2FuIGV4cGFuZCB0aGlzIGludGVyZmFjZSB0byBhZGQgbW9yZSBkYXRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJhdGlvbk1vZGVsIHtcbiAgZW1haWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBhbiBleGlzdGluZyByZXNvdXJjZSBjaGVjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGlzdFJlc3VsdCB7XG4gIGVudHJ5OiBzdHJpbmc7XG4gIGlzRXhpc3Rpbmc6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFzc3dvcmQgY2hhbmdlIGRhdGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc3dvcmRDaGFuZ2Uge1xuICBlbWFpbDogc3RyaW5nO1xuICBvbGRQYXNzd29yZDogc3RyaW5nO1xuICBuZXdQYXNzd29yZDogc3RyaW5nO1xuICBjb25maXJtUGFzc3dvcmQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2VyIGZpbHRlciBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJGaWx0ZXIge1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aEp3dEFjY291bnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIF9lcnJvcjogRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2VudjogRW52U2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3MgaXMgcmVnaXN0ZXJlZCBvbiB0aGUgc2VydmVyLlxuICAgKiBAcGFyYW0gZW1haWwgZW1haWwgYWRkcmVzcyB0byB0ZXN0LlxuICAgKiBAcmV0dXJucyByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgaXNFbWFpbFJlZ2lzdGVyZWQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8RXhpc3RSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8RXhpc3RSZXN1bHQ+KFxuICAgICAgdGhpcy5fZW52LmdldCgnYXBpVXJsJykgK1xuICAgICAgICAnYWNjb3VudHMvZW1haWxleGlzdHMvJyArXG4gICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChlbWFpbClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIHVzZXIncyBnaXZlbiBuYW1lIGlzIHJlZ2lzdGVyZWQgb24gdGhlIHNlcnZlci5cbiAgICogVGhpcyBuYW1lIGlzIGEgbmlja25hbWUgY2hvc2VuIGJ5IHVzZXJzIGR1cmluZyByZWdpc3RyYXRpb24sIGFuZCBpcyB0aGUga2V5XG4gICAqIHVzZWQgZm9yIHJlZmVyZW5jaW5nIHVzZXJzIHdoZW4gdGFsa2luZyB0byB0aGUgc2VydmVyLlxuICAgKiBAcGFyYW0gbmFtZSBuYW1lIHRvIHRlc3QuXG4gICAqIEByZXR1cm5zIHJlc3VsdC5cbiAgICovXG4gIHB1YmxpYyBpc05hbWVSZWdpc3RlcmVkKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8RXhpc3RSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8RXhpc3RSZXN1bHQ+KFxuICAgICAgdGhpcy5fZW52LmdldCgnYXBpVXJsJykgK1xuICAgICAgICAnYWNjb3VudHMvbmFtZWV4aXN0cy8nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciB0aGUgdXNlciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVnaXN0cmF0aW9uIGRhdGEuXG4gICAqIEBwYXJhbSByZWdpc3RyYXRpb24gVGhlIHJlZ2lzdHJhdGlvbiBkYXRhLlxuICAgKiBAcGFyYW0gY29uZmlybWVkIFRydWUgdG8gYXV0b21hdGljYWxseSBjb25maXJtIHRoZSB1c2VyJ3MgZW1haWwgYWRkcmVzc1xuICAgKiB3aXRob3V0IHNlbmRpbmcgdGhlIGNvbmZpcm1hdGlvbiBlbWFpbCBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyKFxuICAgIHJlZ2lzdHJhdGlvbjogUmVnaXN0cmF0aW9uTW9kZWwsXG4gICAgY29uZmlybWVkID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0KFxuICAgICAgdGhpcy5fZW52LmdldCgnYXBpVXJsJykgK1xuICAgICAgICAnYWNjb3VudHMvcmVnaXN0ZXInICtcbiAgICAgICAgKGNvbmZpcm1lZCA/ICc/Y29uZmlybWVkPXRydWUnIDogJycpLFxuICAgICAgcmVnaXN0cmF0aW9uXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNlbmQgdGhlIGNvbmZpcm1hdGlvbiBlbWFpbCB0byB0aGUgc3BlY2lmaWVkIGFkZHJlc3MuXG4gICAqIEBwYXJhbSBlbWFpbCBhZGRyZXNzLlxuICAgKi9cbiAgcHVibGljIHJlc2VuZENvbmZpcm1FbWFpbChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoXG4gICAgICB0aGlzLl9lbnYuZ2V0KCdhcGlVcmwnKSArXG4gICAgICAgICdhY2NvdW50cy9yZXNlbmRjb25maXJtLycgK1xuICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoZW1haWwpXG4gICAgICAvLyBvcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQgZm9yIHRoZSBzcGVjaWZpZWQgZW1haWwgYWRkcmVzcy5cbiAgICogQHBhcmFtIGVtYWlsIEVtYWlsIGFkZHJlc3MuXG4gICAqL1xuICBwdWJsaWMgcmVxdWVzdFBhc3N3b3JkUmVzZXQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdChcbiAgICAgIHRoaXMuX2Vudi5nZXQoJ2FwaVVybCcpICsgJ2FjY291bnRzL3Jlc2V0cGFzc3dvcmQvcmVxdWVzdCcsXG4gICAgICB7IGVtYWlsIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEFsbFVzZXJzKCk6IE9ic2VydmFibGU8RGF0YVBhZ2U8VXNlcj4+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cFxuICAgICAgLmdldDxEYXRhUGFnZTxVc2VyPj4odGhpcy5fZW52LmdldCgnYXBpVXJsJykgKyAndXNlcnMnLCB7XG4gICAgICAgIHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3BhZ2VOdW1iZXInLCAnMScpLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHJldHJ5KDMpLCBjYXRjaEVycm9yKHRoaXMuX2Vycm9yLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlcnMoXG4gICAgZmlsdGVyOiBVc2VyRmlsdGVyLFxuICAgIHBhZ2VOdW1iZXIgPSAxLFxuICAgIHBhZ2VTaXplID0gMjBcbiAgKTogT2JzZXJ2YWJsZTxEYXRhUGFnZTxVc2VyPj4ge1xuICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJ3BhZ2VOdW1iZXInLCBwYWdlTnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldCgncGFnZVNpemUnLCBwYWdlU2l6ZS50b1N0cmluZygpKTtcbiAgICBpZiAoZmlsdGVyLm5hbWUpIHtcbiAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldCgnbmFtZScsIGZpbHRlci5uYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5faHR0cFxuICAgICAgLmdldDxEYXRhUGFnZTxVc2VyPj4odGhpcy5fZW52LmdldCgnYXBpVXJsJykgKyAndXNlcnMnLCB7XG4gICAgICAgIHBhcmFtczogaHR0cFBhcmFtcyxcbiAgICAgIH0pXG4gICAgICAucGlwZShyZXRyeSgzKSwgY2F0Y2hFcnJvcih0aGlzLl9lcnJvci5oYW5kbGVFcnJvcikpO1xuICB9XG4gIC8qKlxuICAgKiBHZXQgdGhlIHRvcCBOIHVzZXJzIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQgbmFtZSBmaWx0ZXIuXG4gICAqIEBwYXJhbSBuYW1lRmlsdGVyIFRoZSB1c2VyIG5hbWUgZmlsdGVyLlxuICAgKiBAcGFyYW0gbGltaXQgVGhlIG1heGltdW0gbnVtYmVyIG9mIHVzZXJzIHRvIGdldC5cbiAgICovXG4gIHB1YmxpYyBnZXRUb3BVc2VycyhuYW1lRmlsdGVyOiBzdHJpbmcsIGxpbWl0ID0gMTApOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xuICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJ3BhZ2VOdW1iZXInLCAnMScpO1xuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldCgncGFnZVNpemUnLCBsaW1pdC50b1N0cmluZygpKTtcbiAgICBpZiAobmFtZUZpbHRlcikge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCduYW1lJywgbmFtZUZpbHRlcik7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPVxuICAgICAgaHR0cFBhcmFtcy5rZXlzKCkubGVuZ3RoID4gMFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHBhcmFtczogaHR0cFBhcmFtcyxcbiAgICAgICAgICB9XG4gICAgICAgIDoge307XG5cbiAgICByZXR1cm4gdGhpcy5faHR0cFxuICAgICAgLmdldDxVc2VyW10+KHRoaXMuX2Vudi5nZXQoJ2FwaVVybCcpICsgJ3VzZXJzJywgb3B0aW9ucylcbiAgICAgIC5waXBlKHJldHJ5KDMpLCBjYXRjaEVycm9yKHRoaXMuX2Vycm9yLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGluZm9ybWF0aW9uIGFib3V0IGFsbCB0aGUgdXNlcnMgbGlzdGVkIGluIHRoZSBzcGVjaWZpZWQgbmFtZXMuXG4gICAqIEBwYXJhbSBuYW1lcyBVc2VyKHMpIG5hbWVzLlxuICAgKi9cbiAgcHVibGljIGdldFVzZXJzRnJvbU5hbWVzKG5hbWVzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8VXNlcltdPiB7XG4gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChuYW1lcyAmJiBuYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJ25hbWVzJywgbmFtZXMuam9pbignLCcpKTtcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9ucyA9XG4gICAgICBodHRwUGFyYW1zLmtleXMoKS5sZW5ndGggPiAwXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcGFyYW1zOiBodHRwUGFyYW1zLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fTtcblxuICAgIHJldHVybiB0aGlzLl9odHRwXG4gICAgICAuZ2V0PFVzZXJbXT4odGhpcy5fZW52LmdldCgnYXBpVXJsJykgKyAndXNlcnMtZnJvbS1uYW1lcycsIG9wdGlvbnMpXG4gICAgICAucGlwZShyZXRyeSgzKSwgY2F0Y2hFcnJvcih0aGlzLl9lcnJvci5oYW5kbGVFcnJvcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkYXRhIGFib3V0IHRoZSBzcGVjaWZpZWQgdXNlci5cbiAgICogQHBhcmFtIG5hbWUgVGhlIHVzZXIgbmFtZS5cbiAgICovXG4gIHB1YmxpYyBnZXRVc2VyKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiB0aGlzLl9odHRwXG4gICAgICAuZ2V0PFVzZXI+KHRoaXMuX2Vudi5nZXQoJ2FwaVVybCcpICsgJ3VzZXJzLycgKyBuYW1lKVxuICAgICAgLnBpcGUocmV0cnkoMyksIGNhdGNoRXJyb3IodGhpcy5fZXJyb3IuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGVkaXRhYmxlIGRhdGEgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci5cbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gdXBkYXRlLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVVzZXIodXNlcjogVXNlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcbiAgICAgIC5wdXQoXG4gICAgICAgIHRoaXMuX2Vudi5nZXQoJ2FwaVVybCcpICtcbiAgICAgICAgICAndXNlcnMnICtcbiAgICAgICAgICAodXNlci5lbWFpbENvbmZpcm1lZCA/ICc/Y29uZmlybWVkPXRydWUnIDogJycpLFxuICAgICAgICB1c2VyXG4gICAgICApXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuX2Vycm9yLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVxdWVzdCBhIHBhc3N3b3JkIHJlc2V0IGVtYWlsIGZvciB0aGUgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3MuXG4gICAqIEBwYXJhbSBlbWFpbCBUaGUgZW1haWwgYWRkcmVzcyB0byByZWNlaXZlIHRoZSByZXNldCBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIHJlc2V0UGFzc3dvcmQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcbiAgICAgIC5wb3N0KHRoaXMuX2Vudi5nZXQoJ2FwaVVybCcpICsgJ2FjY291bnRzL3Jlc2V0cGFzc3dvcmQvcmVxdWVzdCcsIHtcbiAgICAgICAgZW1haWw6IGVtYWlsLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5fZXJyb3IuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIHBhc3N3b3JkLlxuICAgKiBAcGFyYW0gY2hhbmdlIFRoZSBwYXNzd29yZCBjaGFuZ2UgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VQYXNzd29yZChjaGFuZ2U6IFBhc3N3b3JkQ2hhbmdlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cFxuICAgICAgLnBvc3QodGhpcy5fZW52LmdldCgnYXBpVXJsJykgKyAnYWNjb3VudHMvY2hhbmdlcGFzc3dvcmQnLCBjaGFuZ2UpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuX2Vycm9yLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHRoZSB1c2VyIHdpdGggdGhlIHNwZWNpZmllZCB1c2VybmFtZS5cbiAgICogQHBhcmFtIG5hbWUgVGhlIHVzZXIgbmFtZS5cbiAgICovXG4gIHB1YmxpYyBkZWxldGVVc2VyKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcbiAgICAgIC5kZWxldGUodGhpcy5fZW52LmdldCgnYXBpVXJsJykgKyAnYWNjb3VudHMvJyArIG5hbWUpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuX2Vycm9yLmhhbmRsZUVycm9yKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ConfirmDialogComponent } from '../components/confirm-dialog/confirm-dialog.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
// https://medium.com/@tarik.nzl/making-use-of-dialogs-in-material-2-mddialog-7533d27df41
|
|
6
|
+
/**
|
|
7
|
+
* This service acts as a wrapper for MatDialog to simplify the process of calling
|
|
8
|
+
* the dialog and subscribing to it. What it will do is create an Instance of
|
|
9
|
+
* MatDialog with our custom component (ConfirmDialogComponent). Then it will set
|
|
10
|
+
* any public properties it needs to by setting the properties on the
|
|
11
|
+
* componentInstance object. It will return the observable afterClosed()
|
|
12
|
+
* to the caller so they can subscribe to it. This will emit an event whenever
|
|
13
|
+
* the dialog is closed.
|
|
14
|
+
*/
|
|
15
|
+
class DialogService {
|
|
16
|
+
constructor(dialog) {
|
|
17
|
+
this.dialog = dialog;
|
|
18
|
+
}
|
|
19
|
+
confirm(title, prompt, ok = $localize `yes`, cancel = $localize `no`) {
|
|
20
|
+
let dialogRef;
|
|
21
|
+
dialogRef = this.dialog.open(ConfirmDialogComponent);
|
|
22
|
+
dialogRef.componentInstance.title = title;
|
|
23
|
+
dialogRef.componentInstance.prompt = prompt;
|
|
24
|
+
dialogRef.componentInstance.ok = ok;
|
|
25
|
+
dialogRef.componentInstance.cancel = cancel;
|
|
26
|
+
return dialogRef.afterClosed();
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: DialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: DialogService, providedIn: 'root' }); }
|
|
30
|
+
}
|
|
31
|
+
export { DialogService };
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: DialogService, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root'
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9hdXRoLWp3dC1hZG1pbi9zcmMvbGliL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7OztBQUcvRix5RkFBeUY7QUFFekY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUdhLGFBQWE7SUFFeEIsWUFBb0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUFJLENBQUM7SUFFbkMsT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQSxLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQSxJQUFJO1FBR3ZGLElBQUksU0FBK0MsQ0FBQztRQUVwRCxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyRCxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUM1QyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNwQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUU1QyxPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzhHQWhCVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOztTQUVQLGFBQWE7MkZBQWIsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0B0YXJpay5uemwvbWFraW5nLXVzZS1vZi1kaWFsb2dzLWluLW1hdGVyaWFsLTItbWRkaWFsb2ctNzUzM2QyN2RmNDFcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHNlcnZpY2UgYWN0cyBhcyBhIHdyYXBwZXIgZm9yIE1hdERpYWxvZyB0byBzaW1wbGlmeSB0aGUgcHJvY2VzcyBvZiBjYWxsaW5nXHJcbiAqIHRoZSBkaWFsb2cgYW5kIHN1YnNjcmliaW5nIHRvIGl0LiBXaGF0IGl0IHdpbGwgZG8gaXMgY3JlYXRlIGFuIEluc3RhbmNlIG9mXHJcbiAqIE1hdERpYWxvZyB3aXRoIG91ciBjdXN0b20gY29tcG9uZW50IChDb25maXJtRGlhbG9nQ29tcG9uZW50KS4gVGhlbiBpdCB3aWxsIHNldFxyXG4gKiBhbnkgcHVibGljIHByb3BlcnRpZXMgaXQgbmVlZHMgdG8gYnkgc2V0dGluZyB0aGUgcHJvcGVydGllcyBvbiB0aGVcclxuICogY29tcG9uZW50SW5zdGFuY2Ugb2JqZWN0LiBJdCB3aWxsIHJldHVybiB0aGUgb2JzZXJ2YWJsZSBhZnRlckNsb3NlZCgpXHJcbiAqIHRvIHRoZSBjYWxsZXIgc28gdGhleSBjYW4gc3Vic2NyaWJlIHRvIGl0LiBUaGlzIHdpbGwgZW1pdCBhbiBldmVudCB3aGVuZXZlclxyXG4gKiB0aGUgZGlhbG9nIGlzIGNsb3NlZC5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cclxuXHJcbiAgcHVibGljIGNvbmZpcm0odGl0bGU6IHN0cmluZywgcHJvbXB0OiBzdHJpbmcsIG9rID0gJGxvY2FsaXplYHllc2AsIGNhbmNlbCA9ICRsb2NhbGl6ZWBub2ApOlxyXG4gICAgT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcblxyXG4gICAgbGV0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbmZpcm1EaWFsb2dDb21wb25lbnQ+O1xyXG5cclxuICAgIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybURpYWxvZ0NvbXBvbmVudCk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UudGl0bGUgPSB0aXRsZTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5wcm9tcHQgPSBwcm9tcHQ7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2Uub2sgPSBvaztcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5jYW5jZWwgPSBjYW5jZWw7XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
export class PasswordValidators {
|
|
2
|
-
/** "Standard" password validator for my API services. */
|
|
3
|
-
static standard() {
|
|
4
|
-
return (control) => {
|
|
5
|
-
if (!control.value) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
if (control.value.length < 8) {
|
|
9
|
-
return {
|
|
10
|
-
passwordtooshort: true,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
if (!/.*[A-Z].*/.test(control.value)) {
|
|
14
|
-
return {
|
|
15
|
-
noupperinpassword: true,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
if (!/.*[a-z].*/.test(control.value)) {
|
|
19
|
-
return {
|
|
20
|
-
nolowerinpassword: true,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
if (!/.*[A-Z].*/.test(control.value)) {
|
|
24
|
-
return {
|
|
25
|
-
noupperinpassword: true,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (!/.*[-`~!@#$%^&*()_+=\[\]{};:'",.<>/?|\\].*/.test(control.value)) {
|
|
29
|
-
return {
|
|
30
|
-
nosymbolinpassword: true,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
return null;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
static areEqual(controlName, otherControlName) {
|
|
37
|
-
return (control) => {
|
|
38
|
-
const g = control;
|
|
39
|
-
const a = g.controls[controlName];
|
|
40
|
-
const b = g.controls[otherControlName];
|
|
41
|
-
return a.value !== b.value
|
|
42
|
-
? {
|
|
43
|
-
areequal: true,
|
|
44
|
-
}
|
|
45
|
-
: null;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
1
|
+
export class PasswordValidators {
|
|
2
|
+
/** "Standard" password validator for my API services. */
|
|
3
|
+
static standard() {
|
|
4
|
+
return (control) => {
|
|
5
|
+
if (!control.value) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
if (control.value.length < 8) {
|
|
9
|
+
return {
|
|
10
|
+
passwordtooshort: true,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
if (!/.*[A-Z].*/.test(control.value)) {
|
|
14
|
+
return {
|
|
15
|
+
noupperinpassword: true,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (!/.*[a-z].*/.test(control.value)) {
|
|
19
|
+
return {
|
|
20
|
+
nolowerinpassword: true,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (!/.*[A-Z].*/.test(control.value)) {
|
|
24
|
+
return {
|
|
25
|
+
noupperinpassword: true,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (!/.*[-`~!@#$%^&*()_+=\[\]{};:'",.<>/?|\\].*/.test(control.value)) {
|
|
29
|
+
return {
|
|
30
|
+
nosymbolinpassword: true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
static areEqual(controlName, otherControlName) {
|
|
37
|
+
return (control) => {
|
|
38
|
+
const g = control;
|
|
39
|
+
const a = g.controls[controlName];
|
|
40
|
+
const b = g.controls[otherControlName];
|
|
41
|
+
return a.value !== b.value
|
|
42
|
+
? {
|
|
43
|
+
areequal: true,
|
|
44
|
+
}
|
|
45
|
+
: null;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
49
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQudmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvdmFsaWRhdG9ycy9wYXNzd29yZC52YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IseURBQXlEO0lBQ2xELE1BQU0sQ0FBQyxRQUFRO1FBQ3BCLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNsQixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLE9BQU87b0JBQ0wsZ0JBQWdCLEVBQUUsSUFBSTtpQkFDdkIsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQyxPQUFPO29CQUNMLGlCQUFpQixFQUFFLElBQUk7aUJBQ3hCLENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEMsT0FBTztvQkFDTCxpQkFBaUIsRUFBRSxJQUFJO2lCQUN4QixDQUFDO2FBQ0g7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU87b0JBQ0wsaUJBQWlCLEVBQUUsSUFBSTtpQkFDeEIsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BFLE9BQU87b0JBQ0wsa0JBQWtCLEVBQUUsSUFBSTtpQkFDekIsQ0FBQzthQUNIO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FDcEIsV0FBbUIsRUFDbkIsZ0JBQXdCO1FBRXhCLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBQzNELE1BQU0sQ0FBQyxHQUFHLE9BQXVDLENBQUM7WUFDbEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdkMsT0FBTyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLO2dCQUN4QixDQUFDLENBQUM7b0JBQ0UsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIEZvcm1Hcm91cCxcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkVmFsaWRhdG9ycyB7XHJcbiAgLyoqIFwiU3RhbmRhcmRcIiBwYXNzd29yZCB2YWxpZGF0b3IgZm9yIG15IEFQSSBzZXJ2aWNlcy4gKi9cclxuICBwdWJsaWMgc3RhdGljIHN0YW5kYXJkKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbnRyb2wudmFsdWUubGVuZ3RoIDwgOCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBwYXNzd29yZHRvb3Nob3J0OiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghLy4qW0EtWl0uKi8udGVzdChjb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBub3VwcGVyaW5wYXNzd29yZDogdHJ1ZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIS8uKlthLXpdLiovLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbm9sb3dlcmlucGFzc3dvcmQ6IHRydWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCEvLipbQS1aXS4qLy50ZXN0KGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIG5vdXBwZXJpbnBhc3N3b3JkOiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghLy4qWy1gfiFAIyQlXiYqKClfKz1cXFtcXF17fTs6J1wiLC48Pi8/fFxcXFxdLiovLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbm9zeW1ib2xpbnBhc3N3b3JkOiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYXJlRXF1YWwoXHJcbiAgICBjb250cm9sTmFtZTogc3RyaW5nLFxyXG4gICAgb3RoZXJDb250cm9sTmFtZTogc3RyaW5nXHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgIGNvbnN0IGcgPSBjb250cm9sIGFzIEZvcm1Hcm91cCB8IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgICAgIGNvbnN0IGEgPSBnLmNvbnRyb2xzW2NvbnRyb2xOYW1lXTtcclxuICAgICAgY29uc3QgYiA9IGcuY29udHJvbHNbb3RoZXJDb250cm9sTmFtZV07XHJcbiAgICAgIHJldHVybiBhLnZhbHVlICE9PSBiLnZhbHVlXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIGFyZWVxdWFsOiB0cnVlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlybWlkb24tYXV0aC1qd3QtYWRtaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9hdXRoLWp3dC1hZG1pbi9zcmMvbXlybWlkb24tYXV0aC1qd3QtYWRtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|