@myclub_se/data-access 3.4.4 → 3.4.5
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/models/auth/auth.mjs +4 -2
- package/esm2022/lib/services/factories/auth-factory.mjs +2 -2
- package/esm2022/lib/store/effects/auth.effects.mjs +2 -2
- package/esm2022/lib/store/operators/ensure-auths.mjs +4 -4
- package/esm2022/lib/store/operators/ensure-current-user.mjs +4 -4
- package/esm2022/lib/store/reducers/auth.reducer.mjs +18 -5
- package/fesm2022/myclub_se-data-access.mjs +27 -12
- package/fesm2022/myclub_se-data-access.mjs.map +1 -1
- package/lib/models/auth/auth.d.ts +2 -1
- package/package.json +1 -1
|
@@ -8,12 +8,13 @@ export class Auth {
|
|
|
8
8
|
sections;
|
|
9
9
|
siteEnabled;
|
|
10
10
|
teams;
|
|
11
|
+
teamsLoaded;
|
|
11
12
|
user_name;
|
|
12
13
|
clubAdmin2faRequired;
|
|
13
14
|
sectionAdmin2faRequired;
|
|
14
15
|
teamAdmin2faRequired;
|
|
15
16
|
memberAdmin2faRequired;
|
|
16
|
-
constructor(id, name, clubAdmin, isSectionClub, members, registrationEnabled, sections, siteEnabled, teams, user_name, clubAdmin2faRequired, sectionAdmin2faRequired, teamAdmin2faRequired, memberAdmin2faRequired) {
|
|
17
|
+
constructor(id, name, clubAdmin, isSectionClub, members, registrationEnabled, sections, siteEnabled, teams, teamsLoaded, user_name, clubAdmin2faRequired, sectionAdmin2faRequired, teamAdmin2faRequired, memberAdmin2faRequired) {
|
|
17
18
|
this.id = id;
|
|
18
19
|
this.name = name;
|
|
19
20
|
this.clubAdmin = clubAdmin;
|
|
@@ -23,6 +24,7 @@ export class Auth {
|
|
|
23
24
|
this.sections = sections;
|
|
24
25
|
this.siteEnabled = siteEnabled;
|
|
25
26
|
this.teams = teams;
|
|
27
|
+
this.teamsLoaded = teamsLoaded;
|
|
26
28
|
this.user_name = user_name;
|
|
27
29
|
this.clubAdmin2faRequired = clubAdmin2faRequired;
|
|
28
30
|
this.sectionAdmin2faRequired = sectionAdmin2faRequired;
|
|
@@ -30,4 +32,4 @@ export class Auth {
|
|
|
30
32
|
this.memberAdmin2faRequired = memberAdmin2faRequired;
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvbW9kZWxzL2F1dGgvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sSUFBSTtJQUVOO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDUztJQUNBO0lBQ0E7SUFDQTtJQWZsQixZQUNTLEVBQVUsRUFDVixJQUFZLEVBQ1osU0FBa0IsRUFDbEIsYUFBc0IsRUFDdEIsT0FBcUIsRUFDckIsbUJBQTRCLEVBQzVCLFFBQXVCLEVBQ3ZCLFdBQW9CLEVBQ3BCLEtBQWdDLEVBQ2hDLFdBQW9CLEVBQ3BCLFNBQWlCLEVBQ1Isb0JBQTZCLEVBQzdCLHVCQUFnQyxFQUNoQyxvQkFBNkIsRUFDN0Isc0JBQStCO1FBZHhDLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBUztRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQTJCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDUix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVM7UUFDN0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFTO1FBQ2hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUztRQUM3QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVM7SUFDOUMsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aE1lbWJlciB9IGZyb20gJy4vYXV0aC1tZW1iZXInO1xuaW1wb3J0IHsgQXV0aFNlY3Rpb24gfSBmcm9tICcuL2F1dGgtc2VjdGlvbic7XG5pbXBvcnQgeyBBdXRoVGVhbSB9IGZyb20gJy4vYXV0aC10ZWFtJztcbmltcG9ydCB7IFNlYXJjaFRlYW0gfSBmcm9tICcuLi9zZWFyY2gtdGVhbSc7XG5cbmV4cG9ydCBjbGFzcyBBdXRoIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkOiBzdHJpbmcsXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgY2x1YkFkbWluOiBib29sZWFuLFxuICAgIHB1YmxpYyBpc1NlY3Rpb25DbHViOiBib29sZWFuLFxuICAgIHB1YmxpYyBtZW1iZXJzOiBBdXRoTWVtYmVyW10sXG4gICAgcHVibGljIHJlZ2lzdHJhdGlvbkVuYWJsZWQ6IGJvb2xlYW4sXG4gICAgcHVibGljIHNlY3Rpb25zOiBBdXRoU2VjdGlvbltdLFxuICAgIHB1YmxpYyBzaXRlRW5hYmxlZDogYm9vbGVhbixcbiAgICBwdWJsaWMgdGVhbXM6IEF1dGhUZWFtW10gfCBTZWFyY2hUZWFtW10sXG4gICAgcHVibGljIHRlYW1zTG9hZGVkOiBib29sZWFuLFxuICAgIHB1YmxpYyB1c2VyX25hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2x1YkFkbWluMmZhUmVxdWlyZWQ6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IHNlY3Rpb25BZG1pbjJmYVJlcXVpcmVkOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSB0ZWFtQWRtaW4yZmFSZXF1aXJlZDogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWVtYmVyQWRtaW4yZmFSZXF1aXJlZDogYm9vbGVhbixcbiAgKSB7fVxufVxuIl19
|
|
@@ -2,5 +2,5 @@ import { Auth } from '../../models';
|
|
|
2
2
|
import { authSectionFactory } from './auth-section-factory';
|
|
3
3
|
import { authMemberFactory } from './auth-member-factory';
|
|
4
4
|
import { authTeamFactory } from './auth-team-factory';
|
|
5
|
-
export const authFactory = (apiAuth) => new Auth(apiAuth.id, apiAuth.name, apiAuth.club_admin, apiAuth.is_section_club, apiAuth.members.map((apiAuthMember) => authMemberFactory(apiAuthMember)), apiAuth.registration_enabled, apiAuth.sections.map((apiAuthSection) => authSectionFactory(apiAuthSection)), apiAuth.site_enabled, apiAuth.teams.map((apiAuthTeam) => authTeamFactory(apiAuthTeam)), apiAuth.user_name, apiAuth.club_admin_2fa_required, apiAuth.section_admin_2fa_required, apiAuth.team_admin_2fa_required, apiAuth.member_admin_2fa_required);
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const authFactory = (apiAuth) => new Auth(apiAuth.id, apiAuth.name, apiAuth.club_admin, apiAuth.is_section_club, apiAuth.members.map((apiAuthMember) => authMemberFactory(apiAuthMember)), apiAuth.registration_enabled, apiAuth.sections.map((apiAuthSection) => authSectionFactory(apiAuthSection)), apiAuth.site_enabled, apiAuth.teams.map((apiAuthTeam) => authTeamFactory(apiAuthTeam)), apiAuth.teams.length > 0, apiAuth.user_name, apiAuth.club_admin_2fa_required, apiAuth.section_admin_2fa_required, apiAuth.team_admin_2fa_required, apiAuth.member_admin_2fa_required);
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zZXJ2aWNlcy9mYWN0b3JpZXMvYXV0aC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUM5QyxJQUFJLElBQUksQ0FDTixPQUFPLENBQUMsRUFBRSxFQUNWLE9BQU8sQ0FBQyxJQUFJLEVBQ1osT0FBTyxDQUFDLFVBQVUsRUFDbEIsT0FBTyxDQUFDLGVBQWUsRUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUN2RixPQUFPLENBQUMsb0JBQW9CLEVBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBOEIsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUMsRUFDNUYsT0FBTyxDQUFDLFlBQVksRUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDN0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUN4QixPQUFPLENBQUMsU0FBUyxFQUNqQixPQUFPLENBQUMsdUJBQXVCLEVBQy9CLE9BQU8sQ0FBQywwQkFBMEIsRUFDbEMsT0FBTyxDQUFDLHVCQUF1QixFQUMvQixPQUFPLENBQUMseUJBQXlCLENBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlBdXRoLCBBcGlBdXRoTWVtYmVyLCBBcGlBdXRoU2VjdGlvbiwgQXBpQXV0aFRlYW0gfSBmcm9tICcuLi8uLi9hcGktbW9kZWxzJztcbmltcG9ydCB7IEF1dGggfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgYXV0aFNlY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi9hdXRoLXNlY3Rpb24tZmFjdG9yeSc7XG5pbXBvcnQgeyBhdXRoTWVtYmVyRmFjdG9yeSB9IGZyb20gJy4vYXV0aC1tZW1iZXItZmFjdG9yeSc7XG5pbXBvcnQgeyBhdXRoVGVhbUZhY3RvcnkgfSBmcm9tICcuL2F1dGgtdGVhbS1mYWN0b3J5JztcblxuZXhwb3J0IGNvbnN0IGF1dGhGYWN0b3J5ID0gKGFwaUF1dGg6IEFwaUF1dGgpID0+XG4gIG5ldyBBdXRoKFxuICAgIGFwaUF1dGguaWQsXG4gICAgYXBpQXV0aC5uYW1lLFxuICAgIGFwaUF1dGguY2x1Yl9hZG1pbixcbiAgICBhcGlBdXRoLmlzX3NlY3Rpb25fY2x1YixcbiAgICBhcGlBdXRoLm1lbWJlcnMubWFwKChhcGlBdXRoTWVtYmVyOiBBcGlBdXRoTWVtYmVyKSA9PiBhdXRoTWVtYmVyRmFjdG9yeShhcGlBdXRoTWVtYmVyKSksXG4gICAgYXBpQXV0aC5yZWdpc3RyYXRpb25fZW5hYmxlZCxcbiAgICBhcGlBdXRoLnNlY3Rpb25zLm1hcCgoYXBpQXV0aFNlY3Rpb246IEFwaUF1dGhTZWN0aW9uKSA9PiBhdXRoU2VjdGlvbkZhY3RvcnkoYXBpQXV0aFNlY3Rpb24pKSxcbiAgICBhcGlBdXRoLnNpdGVfZW5hYmxlZCxcbiAgICBhcGlBdXRoLnRlYW1zLm1hcCgoYXBpQXV0aFRlYW06IEFwaUF1dGhUZWFtKSA9PiBhdXRoVGVhbUZhY3RvcnkoYXBpQXV0aFRlYW0pKSxcbiAgICBhcGlBdXRoLnRlYW1zLmxlbmd0aCA+IDAsXG4gICAgYXBpQXV0aC51c2VyX25hbWUsXG4gICAgYXBpQXV0aC5jbHViX2FkbWluXzJmYV9yZXF1aXJlZCxcbiAgICBhcGlBdXRoLnNlY3Rpb25fYWRtaW5fMmZhX3JlcXVpcmVkLFxuICAgIGFwaUF1dGgudGVhbV9hZG1pbl8yZmFfcmVxdWlyZWQsXG4gICAgYXBpQXV0aC5tZW1iZXJfYWRtaW5fMmZhX3JlcXVpcmVkXG4gICk7XG4iXX0=
|
|
@@ -39,7 +39,7 @@ export class AuthEffects {
|
|
|
39
39
|
.pipe(ofType(listAuthAction), exhaustMap(({ payload }) => this.authService.getAuths(payload)
|
|
40
40
|
.pipe(map((auths) => listAuthSuccessAction({ payload: auths.toArray() })), catchError((error) => of(listAuthFailureAction({ payload: error })))))));
|
|
41
41
|
listAuthTeams$ = createEffect(() => this.actions$
|
|
42
|
-
.pipe(ofType(listAuthTeamsAction),
|
|
42
|
+
.pipe(ofType(listAuthTeamsAction), mergeMap(({ payload }) => {
|
|
43
43
|
if (payload.clubAdmin) {
|
|
44
44
|
return this.teamService.getClubTeams(payload.id)
|
|
45
45
|
.pipe(map((searchTeams) => {
|
|
@@ -108,4 +108,4 @@ export class AuthEffects {
|
|
|
108
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthEffects, decorators: [{
|
|
109
109
|
type: Injectable
|
|
110
110
|
}] });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYixjQUFjLEVBQ2QsV0FBVyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFDaEMsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDckIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUc3RCxNQUFNLE9BQU8sV0FBVztJQUNk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Q0FBQyxDQUNILENBQUE7SUFDTCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FDRixDQUFDO3VHQXhMUyxXQUFXOzJHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQge1xuICBBdXRoU2VydmljZSxcbiAgU1RPUkFHRV9TRUxFQ1RFRF9BVVRILFxuICBTVE9SQUdFX1NFTEVDVEVEX01FTUJFUlMsXG4gIFNUT1JBR0VfVE9LRU4sXG4gIFN0b3JhZ2VTZXJ2aWNlLFxuICBUZWFtU2VydmljZVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBjbGVhckF1dGhlbnRpY2F0aW9uQWN0aW9uLFxuICBjbGVhckF1dGhlbnRpY2F0aW9uU3VjY2Vzc0FjdGlvbixcbiAgY2xlYXJDdXJyZW50QXV0aEFjdGlvbixcbiAgY2xlYXJDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGdldEN1cnJlbnRBdXRoQWN0aW9uLFxuICBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBdXRoQWN0aW9uLFxuICBsaXN0QXV0aEZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoVGVhbXNTdWNjZXNzQWN0aW9uLFxuICByZWZyZXNoQXV0aHNBY3Rpb24sXG4gIHJlZnJlc2hBdXRoc0ZhaWx1cmVBY3Rpb24sXG4gIHJlZnJlc2hBdXRoc1N1Y2Nlc3NBY3Rpb24sXG4gIHJlbW92ZU1lbWJlckF1dGhBY3Rpb24sXG4gIHJlbW92ZU1lbWJlckF1dGhGYWlsdXJlQWN0aW9uLFxuICByZW1vdmVNZW1iZXJBdXRoU3VjY2Vzc0FjdGlvbixcbiAgcmVtb3ZlVGVhbUF1dGhBY3Rpb24sXG4gIHJlbW92ZVRlYW1BdXRoRmFpbHVyZUFjdGlvbixcbiAgcmVtb3ZlVGVhbUF1dGhTdWNjZXNzQWN0aW9uLFxuICBzZXRDdXJyZW50QXV0aEFjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZvcmtKb2luLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQXV0aCwgQ29sbGVjdGlvbiwgU2VhcmNoVGVhbSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZW1vdmVNZW1iZXJBdXRoSW50ZXJmYWNlLCBSZW1vdmVUZWFtQXV0aEludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZSA9IGluamVjdChBdXRoZW50aWNhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZSA9IGluamVjdChTdG9yYWdlU2VydmljZSk7XG4gIHByaXZhdGUgdGVhbVNlcnZpY2UgPSBpbmplY3QoVGVhbVNlcnZpY2UpO1xuXG4gIGNsZWFyQXV0aGVudGljYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjbGVhckF1dGhlbnRpY2F0aW9uQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT5cbiAgICAgICAgZm9ya0pvaW4oXG4gICAgICAgICAge1xuICAgICAgICAgICAgdG9rZW5SZW1vdmFsOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1RPS0VOKSxcbiAgICAgICAgICAgIHNlbGVjdGVkQXV0aFJlbW92YWw6IHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlQXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSCksXG4gICAgICAgICAgICBzZWxlY3RlZE1lbWJlcnNSZW1vdmFsOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX01FTUJFUlMpLFxuICAgICAgICAgIH1cbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmNsZWFyQXV0aGVudGljYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIGNsZWFyU3RvcmVBY3Rpb24oKSxcbiAgICAgICAgICAgICAgY2xlYXJBdXRoZW50aWNhdGlvblN1Y2Nlc3NBY3Rpb24oKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY2xlYXJDdXJyZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY2xlYXJDdXJyZW50QXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlQXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IGNsZWFyQ3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZ2V0Q3VycmVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGdldEN1cnJlbnRBdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9BVVRIKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGF1dGg6IEF1dGggfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXV0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG51bGx9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGF1dGh9KTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RBdXRoJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdEF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9KSA9PiB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhzKHBheWxvYWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYXV0aHM6IENvbGxlY3Rpb248QXV0aD4pID0+IGxpc3RBdXRoU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aHMudG9BcnJheSgpfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdEF1dGhGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0QXV0aFRlYW1zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdEF1dGhUZWFtc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH0pID0+IHtcbiAgICAgICAgaWYgKHBheWxvYWQuY2x1YkFkbWluKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGVhbVNlcnZpY2UuZ2V0Q2x1YlRlYW1zKHBheWxvYWQuaWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgbWFwKChzZWFyY2hUZWFtczogQ29sbGVjdGlvbjxTZWFyY2hUZWFtPikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGggPSB7XG4gICAgICAgICAgICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICAgICAgICAgICAgdGVhbXM6IHNlYXJjaFRlYW1zLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgICAuc29ydCgoYTogU2VhcmNoVGVhbSwgYjogU2VhcmNoVGVhbSkgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpc3RBdXRoVGVhbXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhdXRofSk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBdXRoVGVhbXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qgc2VjdGlvbnNUZWFtcyQ6IEFycmF5PE9ic2VydmFibGU8Q29sbGVjdGlvbjxTZWFyY2hUZWFtPj4+ID0gcGF5bG9hZC5zZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+XG4gICAgICAgICAgICB0aGlzLnRlYW1TZXJ2aWNlLmdldFNlY3Rpb25UZWFtcyhzZWN0aW9uLmlkKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gZm9ya0pvaW4oc2VjdGlvbnNUZWFtcyQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3VsdHM6IEFycmF5PENvbGxlY3Rpb248U2VhcmNoVGVhbT4+KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNvcnRlZFRlYW1zOiBBcnJheTxTZWFyY2hUZWFtPiA9IHJlc3VsdHNcbiAgICAgICAgICAgICAgICAuZmxhdE1hcCgocmVzdWx0OiBDb2xsZWN0aW9uPFNlYXJjaFRlYW0+KSA9PiByZXN1bHQudG9BcnJheSgpKVxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKTtcbiAgICAgICAgICAgICAgY29uc3QgYXV0aCA9IHtcbiAgICAgICAgICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICAgICAgICAgIHRlYW1zOiBzb3J0ZWRUZWFtcyxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgcmV0dXJuIGxpc3RBdXRoVGVhbXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhdXRofSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdEF1dGhUZWFtc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHJlZnJlc2gkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZWZyZXNoQXV0aHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZU1lbWJlcnMoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoc3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICByZWZyZXNoQXV0aHNTdWNjZXNzQWN0aW9uKCksXG4gICAgICAgICAgICAgICAgbGlzdEF1dGhBY3Rpb24oKVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHJlZnJlc2hBdXRoc0ZhaWx1cmVBY3Rpb24oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihyZWZyZXNoQXV0aHNGYWlsdXJlQWN0aW9uKCkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJlbW92ZU1lbWJlciQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJlbW92ZU1lbWJlckF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogUmVtb3ZlTWVtYmVyQXV0aEludGVyZmFjZVxuICAgICAgICB9KSA9PiB0aGlzLmF1dGhTZXJ2aWNlLnJlbW92ZU1lbWJlckF1dGgocGF5bG9hZC5hdXRoSWQsIHBheWxvYWQubWVtYmVySWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlOiBib29sZWFuKSA9PiB2YWx1ZSA/IHJlbW92ZU1lbWJlckF1dGhTdWNjZXNzQWN0aW9uKCkgOiByZW1vdmVNZW1iZXJBdXRoRmFpbHVyZUFjdGlvbigpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZW1vdmVUZWFtJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmVtb3ZlVGVhbUF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogUmVtb3ZlVGVhbUF1dGhJbnRlcmZhY2VcbiAgICAgICAgfSkgPT4gdGhpcy5hdXRoU2VydmljZS5yZW1vdmVUZWFtQXV0aChwYXlsb2FkLmF1dGhJZCwgcGF5bG9hZC50ZWFtSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlOiBib29sZWFuKSA9PiB2YWx1ZSA/IHJlbW92ZVRlYW1BdXRoU3VjY2Vzc0FjdGlvbigpIDogcmVtb3ZlVGVhbUF1dGhGYWlsdXJlQWN0aW9uKCkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihyZW1vdmVNZW1iZXJBdXRoRmFpbHVyZUFjdGlvbigpKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNldEN1cnJlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShzZXRDdXJyZW50QXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHsgcGF5bG9hZDogQXV0aCB9KSA9PiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX0FVVEgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKChvbGRBdXRoOiBBdXRoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9BVVRILCBwYXlsb2FkKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgobmV3QXV0aDogQXV0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9sZEF1dGggJiYgbmV3QXV0aC5pZCA9PT0gb2xkQXV0aC5pZCAmJiAoKG5ld0F1dGgubWVtYmVycyAmJiBuZXdBdXRoLm1lbWJlcnMubGVuZ3RoID09PSBvbGRBdXRoLm1lbWJlcnMubGVuZ3RoKSB8fCAobmV3QXV0aC50ZWFtcyAmJiBuZXdBdXRoLnRlYW1zLmxlbmd0aCA9PT0gb2xkQXV0aC50ZWFtcy5sZW5ndGggJiYgbmV3QXV0aC50ZWFtc1swXS5pZCA9PT0gb2xkQXV0aC50ZWFtc1swXS5pZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBuZXdBdXRofSlcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG5ld0F1dGh9KSxcbiAgICAgICAgICAgICAgICAgICAgICBjbGVhclN0b3JlQWN0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYixjQUFjLEVBQ2QsV0FBVyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFDaEMsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDckIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUc3RCxNQUFNLE9BQU8sV0FBVztJQUNk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Q0FBQyxDQUNILENBQUE7SUFDTCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FDRixDQUFDO3VHQXhMUyxXQUFXOzJHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQge1xuICBBdXRoU2VydmljZSxcbiAgU1RPUkFHRV9TRUxFQ1RFRF9BVVRILFxuICBTVE9SQUdFX1NFTEVDVEVEX01FTUJFUlMsXG4gIFNUT1JBR0VfVE9LRU4sXG4gIFN0b3JhZ2VTZXJ2aWNlLFxuICBUZWFtU2VydmljZVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBjbGVhckF1dGhlbnRpY2F0aW9uQWN0aW9uLFxuICBjbGVhckF1dGhlbnRpY2F0aW9uU3VjY2Vzc0FjdGlvbixcbiAgY2xlYXJDdXJyZW50QXV0aEFjdGlvbixcbiAgY2xlYXJDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGdldEN1cnJlbnRBdXRoQWN0aW9uLFxuICBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBdXRoQWN0aW9uLFxuICBsaXN0QXV0aEZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoVGVhbXNTdWNjZXNzQWN0aW9uLFxuICByZWZyZXNoQXV0aHNBY3Rpb24sXG4gIHJlZnJlc2hBdXRoc0ZhaWx1cmVBY3Rpb24sXG4gIHJlZnJlc2hBdXRoc1N1Y2Nlc3NBY3Rpb24sXG4gIHJlbW92ZU1lbWJlckF1dGhBY3Rpb24sXG4gIHJlbW92ZU1lbWJlckF1dGhGYWlsdXJlQWN0aW9uLFxuICByZW1vdmVNZW1iZXJBdXRoU3VjY2Vzc0FjdGlvbixcbiAgcmVtb3ZlVGVhbUF1dGhBY3Rpb24sXG4gIHJlbW92ZVRlYW1BdXRoRmFpbHVyZUFjdGlvbixcbiAgcmVtb3ZlVGVhbUF1dGhTdWNjZXNzQWN0aW9uLFxuICBzZXRDdXJyZW50QXV0aEFjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZvcmtKb2luLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQXV0aCwgQ29sbGVjdGlvbiwgU2VhcmNoVGVhbSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZW1vdmVNZW1iZXJBdXRoSW50ZXJmYWNlLCBSZW1vdmVUZWFtQXV0aEludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZSA9IGluamVjdChBdXRoZW50aWNhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZSA9IGluamVjdChTdG9yYWdlU2VydmljZSk7XG4gIHByaXZhdGUgdGVhbVNlcnZpY2UgPSBpbmplY3QoVGVhbVNlcnZpY2UpO1xuXG4gIGNsZWFyQXV0aGVudGljYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjbGVhckF1dGhlbnRpY2F0aW9uQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT5cbiAgICAgICAgZm9ya0pvaW4oXG4gICAgICAgICAge1xuICAgICAgICAgICAgdG9rZW5SZW1vdmFsOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1RPS0VOKSxcbiAgICAgICAgICAgIHNlbGVjdGVkQXV0aFJlbW92YWw6IHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlQXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSCksXG4gICAgICAgICAgICBzZWxlY3RlZE1lbWJlcnNSZW1vdmFsOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX01FTUJFUlMpLFxuICAgICAgICAgIH1cbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmNsZWFyQXV0aGVudGljYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIGNsZWFyU3RvcmVBY3Rpb24oKSxcbiAgICAgICAgICAgICAgY2xlYXJBdXRoZW50aWNhdGlvblN1Y2Nlc3NBY3Rpb24oKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY2xlYXJDdXJyZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY2xlYXJDdXJyZW50QXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlQXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IGNsZWFyQ3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZ2V0Q3VycmVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGdldEN1cnJlbnRBdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9BVVRIKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGF1dGg6IEF1dGggfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXV0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG51bGx9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGF1dGh9KTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RBdXRoJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdEF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9KSA9PiB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhzKHBheWxvYWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYXV0aHM6IENvbGxlY3Rpb248QXV0aD4pID0+IGxpc3RBdXRoU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aHMudG9BcnJheSgpfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdEF1dGhGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0QXV0aFRlYW1zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdEF1dGhUZWFtc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9KSA9PiB7XG4gICAgICAgIGlmIChwYXlsb2FkLmNsdWJBZG1pbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRlYW1TZXJ2aWNlLmdldENsdWJUZWFtcyhwYXlsb2FkLmlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoc2VhcmNoVGVhbXM6IENvbGxlY3Rpb248U2VhcmNoVGVhbT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoID0ge1xuICAgICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICAgIHRlYW1zOiBzZWFyY2hUZWFtcy50b0FycmF5KClcbiAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGE6IFNlYXJjaFRlYW0sIGI6IFNlYXJjaFRlYW0pID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aH0pO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0QXV0aFRlYW1zRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHNlY3Rpb25zVGVhbXMkOiBBcnJheTxPYnNlcnZhYmxlPENvbGxlY3Rpb248U2VhcmNoVGVhbT4+PiA9IHBheWxvYWQuc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PlxuICAgICAgICAgICAgdGhpcy50ZWFtU2VydmljZS5nZXRTZWN0aW9uVGVhbXMoc2VjdGlvbi5pZClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHNlY3Rpb25zVGVhbXMkKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBBcnJheTxDb2xsZWN0aW9uPFNlYXJjaFRlYW0+PikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzb3J0ZWRUZWFtczogQXJyYXk8U2VhcmNoVGVhbT4gPSByZXN1bHRzXG4gICAgICAgICAgICAgICAgLmZsYXRNYXAoKHJlc3VsdDogQ29sbGVjdGlvbjxTZWFyY2hUZWFtPikgPT4gcmVzdWx0LnRvQXJyYXkoKSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGF1dGggPSB7XG4gICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICB0ZWFtczogc29ydGVkVGVhbXMsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHJldHVybiBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBdXRoVGVhbXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICByZWZyZXNoJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmVmcmVzaEF1dGhzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5hdXRoU2VydmljZS51cGRhdGVNZW1iZXJzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgcmVmcmVzaEF1dGhzU3VjY2Vzc0FjdGlvbigpLFxuICAgICAgICAgICAgICAgIGxpc3RBdXRoQWN0aW9uKClcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihyZWZyZXNoQXV0aHNGYWlsdXJlQWN0aW9uKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVmcmVzaEF1dGhzRmFpbHVyZUFjdGlvbigpKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZW1vdmVNZW1iZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZW1vdmVNZW1iZXJBdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFJlbW92ZU1lbWJlckF1dGhJbnRlcmZhY2VcbiAgICAgICAgfSkgPT4gdGhpcy5hdXRoU2VydmljZS5yZW1vdmVNZW1iZXJBdXRoKHBheWxvYWQuYXV0aElkLCBwYXlsb2FkLm1lbWJlcklkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyByZW1vdmVNZW1iZXJBdXRoU3VjY2Vzc0FjdGlvbigpIDogcmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHJlbW92ZU1lbWJlckF1dGhGYWlsdXJlQWN0aW9uKCkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmVtb3ZlVGVhbSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJlbW92ZVRlYW1BdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFJlbW92ZVRlYW1BdXRoSW50ZXJmYWNlXG4gICAgICAgIH0pID0+IHRoaXMuYXV0aFNlcnZpY2UucmVtb3ZlVGVhbUF1dGgocGF5bG9hZC5hdXRoSWQsIHBheWxvYWQudGVhbUlkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyByZW1vdmVUZWFtQXV0aFN1Y2Nlc3NBY3Rpb24oKSA6IHJlbW92ZVRlYW1BdXRoRmFpbHVyZUFjdGlvbigpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzZXRDdXJyZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoc2V0Q3VycmVudEF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEF1dGggfSkgPT4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9BVVRIKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgob2xkQXV0aDogQXV0aCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0QXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSCwgcGF5bG9hZClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoKG5ld0F1dGg6IEF1dGgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChvbGRBdXRoICYmIG5ld0F1dGguaWQgPT09IG9sZEF1dGguaWQgJiYgKChuZXdBdXRoLm1lbWJlcnMgJiYgbmV3QXV0aC5tZW1iZXJzLmxlbmd0aCA9PT0gb2xkQXV0aC5tZW1iZXJzLmxlbmd0aCkgfHwgKG5ld0F1dGgudGVhbXMgJiYgbmV3QXV0aC50ZWFtcy5sZW5ndGggPT09IG9sZEF1dGgudGVhbXMubGVuZ3RoICYmIG5ld0F1dGgudGVhbXNbMF0uaWQgPT09IG9sZEF1dGgudGVhbXNbMF0uaWQpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAgIGdldEN1cnJlbnRBdXRoU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogbmV3QXV0aH0pXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBuZXdBdXRofSksXG4gICAgICAgICAgICAgICAgICAgICAgY2xlYXJTdG9yZUFjdGlvbigpXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -9,10 +9,10 @@ import { listAuthAction } from '../actions';
|
|
|
9
9
|
* @return {Observable<ListResultInterface<Auth>>} An observable that emits only when authentication data is present.
|
|
10
10
|
*/
|
|
11
11
|
export function ensureAuths(store) {
|
|
12
|
-
return (source) => source.pipe(tap((
|
|
13
|
-
if (!
|
|
12
|
+
return (source) => source.pipe(tap((state) => {
|
|
13
|
+
if (!state) {
|
|
14
14
|
store.dispatch(listAuthAction());
|
|
15
15
|
}
|
|
16
|
-
}), filter((
|
|
16
|
+
}), filter((state) => !!state && !state.loading));
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWF1dGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9vcGVyYXRvcnMvZW5zdXJlLWF1dGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHNUM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBWTtJQUN0QyxPQUFPLENBQUMsTUFBeUQsRUFBRSxFQUFFLENBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxDQUFDLENBQUMsS0FBNEMsRUFBRSxFQUFFO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDakYsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IGxpc3RBdXRoQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBMaXN0UmVzdWx0SW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogRW5zdXJlcyBhdXRoZW50aWNhdGlvbiBvYmplY3RzIGFyZSBwcmVzZW50IGluIHRoZSBzdG9yZS5cbiAqIElmIHRoZSByZXN1bHRzIGFyZSB1bmRlZmluZWQsIGl0IHdpbGwgZGlzcGF0Y2ggYW4gYWN0aW9uIHRvIGxpc3QgYXV0aHMuXG4gKiBGaWx0ZXJzIHRoZSByZXN1bHRzIHRvIHBhc3Mgb25seSBkZWZpbmVkIGF1dGhlbnRpY2F0aW9uIG9iamVjdHMuXG4gKlxuICogQHBhcmFtIHN0b3JlIC0gVGhlIFJlZHV4IHN0b3JlIHVzZWQgdG8gZGlzcGF0Y2ggYWN0aW9ucyBhbmQgbWFuYWdlIHN0YXRlLlxuICogQHJldHVybiB7T2JzZXJ2YWJsZTxMaXN0UmVzdWx0SW50ZXJmYWNlPEF1dGg+Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIG9ubHkgd2hlbiBhdXRoZW50aWNhdGlvbiBkYXRhIGlzIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVBdXRocyhzdG9yZTogU3RvcmUpIHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8TGlzdFJlc3VsdEludGVyZmFjZTxBdXRoPiB8IHVuZGVmaW5lZD4pID0+XG4gICAgc291cmNlLnBpcGUoXG4gICAgICB0YXAoKHN0YXRlOiBMaXN0UmVzdWx0SW50ZXJmYWNlPEF1dGg+IHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICBzdG9yZS5kaXNwYXRjaChsaXN0QXV0aEFjdGlvbigpKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBmaWx0ZXIoKHN0YXRlKTogc3RhdGUgaXMgTGlzdFJlc3VsdEludGVyZmFjZTxBdXRoPiA9PiAhIXN0YXRlICYmICFzdGF0ZS5sb2FkaW5nKVxuICAgICk7XG59XG4iXX0=
|
|
@@ -7,10 +7,10 @@ import { filter, tap } from 'rxjs/operators';
|
|
|
7
7
|
* @return {Observable<RetrieveResultInterface<User>>} An observable that emits only valid user results.
|
|
8
8
|
*/
|
|
9
9
|
export function ensureCurrentUser(store) {
|
|
10
|
-
return (source) => source.pipe(tap((
|
|
11
|
-
if (!
|
|
10
|
+
return (source) => source.pipe(tap((state) => {
|
|
11
|
+
if (!state) {
|
|
12
12
|
store.dispatch(getCurrentUserAction());
|
|
13
13
|
}
|
|
14
|
-
}), filter((
|
|
14
|
+
}), filter((state) => !!state && !state.loading));
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWN1cnJlbnQtdXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvb3BlcmF0b3JzL2Vuc3VyZS1jdXJyZW50LXVzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0M7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBWTtJQUM1QyxPQUFPLENBQUMsTUFBNkQsRUFBRSxFQUFFLENBQ3ZFLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxDQUFDLENBQUMsS0FBZ0QsRUFBRSxFQUFFO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsQ0FBQyxLQUFnRCxFQUEwQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDaEksQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVzZXJBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmV0cmlldmVSZXN1bHRJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBpcyBsb2FkZWQgYnkgZGlzcGF0Y2hpbmcgYW4gYWN0aW9uIGlmIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLlxuICpcbiAqIEBwYXJhbSB7U3RvcmV9IHN0b3JlIC0gVGhlIFJlZHV4IHN0b3JlIHVzZWQgdG8gZGlzcGF0Y2ggYWN0aW9ucy5cbiAqIEByZXR1cm4ge09ic2VydmFibGU8UmV0cmlldmVSZXN1bHRJbnRlcmZhY2U8VXNlcj4+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgb25seSB2YWxpZCB1c2VyIHJlc3VsdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVDdXJyZW50VXNlcihzdG9yZTogU3RvcmUpIHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8UmV0cmlldmVSZXN1bHRJbnRlcmZhY2U8VXNlcj4gfCB1bmRlZmluZWQ+KSA9PlxuICAgIHNvdXJjZS5waXBlKFxuICAgICAgdGFwKChzdGF0ZTogUmV0cmlldmVSZXN1bHRJbnRlcmZhY2U8VXNlcj4gfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKGdldEN1cnJlbnRVc2VyQWN0aW9uKCkpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcigoc3RhdGU6IFJldHJpZXZlUmVzdWx0SW50ZXJmYWNlPFVzZXI+IHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgUmV0cmlldmVSZXN1bHRJbnRlcmZhY2U8VXNlcj4gPT4gISFzdGF0ZSAmJiAhc3RhdGUubG9hZGluZylcbiAgICApO1xufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createReducer, on } from '@ngrx/store';
|
|
2
2
|
import { initialAuthState } from '../state';
|
|
3
|
-
import { clearAuthenticationSuccessAction, clearCurrentAuthSuccessAction, getCurrentAuthAction, getCurrentAuthSuccessAction, listAuthAction, listAuthFailureAction, listAuthSuccessAction, listAuthTeamsAction, listAuthTeamsSuccessAction } from '../actions';
|
|
3
|
+
import { clearAuthenticationSuccessAction, clearCurrentAuthSuccessAction, getCurrentAuthAction, getCurrentAuthSuccessAction, listAuthAction, listAuthFailureAction, listAuthSuccessAction, listAuthTeamsAction, listAuthTeamsFailureAction, listAuthTeamsSuccessAction } from '../actions';
|
|
4
4
|
import { listLoadFailure, listLoadSuccess, listStartLoading, retrieveLoadSuccess, retrieveStartLoading } from './reducer-helpers';
|
|
5
5
|
// Helper function to update the teams for a specific auth
|
|
6
6
|
function updateAuthTeams(state, payload) {
|
|
@@ -11,7 +11,8 @@ function updateAuthTeams(state, payload) {
|
|
|
11
11
|
...state.auths.results.slice(0, index),
|
|
12
12
|
{
|
|
13
13
|
...state.auths.results[index],
|
|
14
|
-
teams: payload.teams
|
|
14
|
+
teams: payload.teams,
|
|
15
|
+
teamsLoaded: true
|
|
15
16
|
},
|
|
16
17
|
...state.auths.results.slice(index + 1)
|
|
17
18
|
];
|
|
@@ -19,12 +20,21 @@ function updateAuthTeams(state, payload) {
|
|
|
19
20
|
...state,
|
|
20
21
|
auths: {
|
|
21
22
|
...state.auths,
|
|
22
|
-
results: updatedResult
|
|
23
|
+
results: updatedResult,
|
|
24
|
+
lastLoaded: new Date(),
|
|
25
|
+
loading: false
|
|
23
26
|
}
|
|
24
27
|
};
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
|
-
return
|
|
30
|
+
return {
|
|
31
|
+
...state,
|
|
32
|
+
auths: {
|
|
33
|
+
...state.auths,
|
|
34
|
+
lastLoaded: new Date(),
|
|
35
|
+
loading: false
|
|
36
|
+
}
|
|
37
|
+
};
|
|
28
38
|
}
|
|
29
39
|
export const authReducer = createReducer(initialAuthState, on(clearAuthenticationSuccessAction, clearCurrentAuthSuccessAction, state => ({
|
|
30
40
|
...state,
|
|
@@ -48,5 +58,8 @@ export const authReducer = createReducer(initialAuthState, on(clearAuthenticatio
|
|
|
48
58
|
})), on(listAuthTeamsAction, state => ({
|
|
49
59
|
...state,
|
|
50
60
|
auths: { ...state.auths || listStartLoading(), loading: true }
|
|
61
|
+
})), on(listAuthTeamsFailureAction, (state, { payload }) => ({
|
|
62
|
+
...state,
|
|
63
|
+
auths: { ...state.auths || listLoadFailure(payload) }
|
|
51
64
|
})), on(listAuthTeamsSuccessAction, (state, { payload }) => updateAuthTeams(state, payload)));
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy9hdXRoLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsNkJBQTZCLEVBQzdCLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDM0IsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDckIsTUFBTSxtQkFBbUIsQ0FBQztBQUkzQiwwREFBMEQ7QUFDMUQsU0FBUyxlQUFlLENBQUMsS0FBZ0IsRUFBRSxPQUFhO0lBQ3RELElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENB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RUFBRSxPQUFPLENBQUMsQ0FBQyxDQUN6RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBBdXRoU3RhdGUsIGluaXRpYWxBdXRoU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQge1xuICBjbGVhckF1dGhlbnRpY2F0aW9uU3VjY2Vzc0FjdGlvbixcbiAgY2xlYXJDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGdldEN1cnJlbnRBdXRoQWN0aW9uLFxuICBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBdXRoQWN0aW9uLFxuICBsaXN0QXV0aEZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoVGVhbXNTdWNjZXNzQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgQXV0aCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBsaXN0TG9hZEZhaWx1cmUsXG4gIGxpc3RMb2FkU3VjY2VzcyxcbiAgbGlzdFN0YXJ0TG9hZGluZyxcbiAgcmV0cmlldmVMb2FkU3VjY2VzcyxcbiAgcmV0cmlldmVTdGFydExvYWRpbmdcbn0gZnJvbSAnLi9yZWR1Y2VyLWhlbHBlcnMnO1xuaW1wb3J0IHsgTGlzdFJlc3VsdEludGVyZmFjZSB9IGZyb20gJ0BteWNsdWIvZGF0YS1hY2Nlc3MnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIHRlYW1zIGZvciBhIHNwZWNpZmljIGF1dGhcbmZ1bmN0aW9uIHVwZGF0ZUF1dGhUZWFtcyhzdGF0ZTogQXV0aFN0YXRlLCBwYXlsb2FkOiBBdXRoKTogQXV0aFN0YXRlIHtcbiAgaWYgKHN0YXRlLmF1dGhzICYmIHN0YXRlLmF1dGhzLnJlc3VsdHMgIT09IG51bGwpIHtcbiAgICBjb25zdCBpbmRleCA9IHN0YXRlLmF1dGhzLnJlc3VsdHMuZmluZEluZGV4KChhdXRoOiBBdXRoKSA9PiBhdXRoLmlkID09PSBwYXlsb2FkLmlkKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHQgPSBbXG4gICAgICAgIC4uLnN0YXRlLmF1dGhzLnJlc3VsdHMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICB7XG4gICAgICAgICAgLi4uc3RhdGUuYXV0aHMucmVzdWx0c1tpbmRleF0sXG4gICAgICAgICAgdGVhbXM6IHBheWxvYWQudGVhbXMsXG4gICAgICAgICAgdGVhbXNMb2FkZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgLi4uc3RhdGUuYXV0aHMucmVzdWx0cy5zbGljZShpbmRleCArIDEpXG4gICAgICBdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGF1dGhzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuYXV0aHMsXG4gICAgICAgICAgcmVzdWx0czogdXBkYXRlZFJlc3VsdCxcbiAgICAgICAgICBsYXN0TG9hZGVkOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgYXV0aHM6IHtcbiAgICAgIC4uLnN0YXRlLmF1dGhzIGFzIExpc3RSZXN1bHRJbnRlcmZhY2U8QXV0aD4sXG4gICAgICBsYXN0TG9hZGVkOiBuZXcgRGF0ZSgpLFxuICAgICAgbG9hZGluZzogZmFsc2VcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgaW5pdGlhbEF1dGhTdGF0ZSxcbiAgb24oY2xlYXJBdXRoZW50aWNhdGlvblN1Y2Nlc3NBY3Rpb24sIGNsZWFyQ3VycmVudEF1dGhTdWNjZXNzQWN0aW9uLCBzdGF0ZSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRBdXRoOiB1bmRlZmluZWQsXG4gICAgYXV0aHM6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKGdldEN1cnJlbnRBdXRoQWN0aW9uLCBzdGF0ZSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRBdXRoOiByZXRyaWV2ZVN0YXJ0TG9hZGluZzxBdXRoPigpXG4gIH0pKSxcbiAgb24oZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRBdXRoOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpXG4gIH0pKSxcbiAgb24obGlzdEF1dGhBY3Rpb24sIHN0YXRlID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgYXV0aHM6IGxpc3RTdGFydExvYWRpbmc8QXV0aD4oKVxuICB9KSksXG4gIG9uKGxpc3RBdXRoRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBhdXRoczogbGlzdExvYWRGYWlsdXJlPEF1dGg+KHBheWxvYWQpXG4gIH0pKSxcbiAgb24obGlzdEF1dGhTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGF1dGhzOiBsaXN0TG9hZFN1Y2Nlc3MocGF5bG9hZClcbiAgfSkpLFxuICBvbihsaXN0QXV0aFRlYW1zQWN0aW9uLCBzdGF0ZSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGF1dGhzOiB7IC4uLnN0YXRlLmF1dGhzIHx8IGxpc3RTdGFydExvYWRpbmcoKSwgbG9hZGluZzogdHJ1ZSB9XG4gIH0pKSxcbiAgb24obGlzdEF1dGhUZWFtc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH06IHsgcGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2UgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBhdXRoczogey4uLnN0YXRlLmF1dGhzIHx8IGxpc3RMb2FkRmFpbHVyZTxBdXRoPihwYXlsb2FkKX1cbiAgfSkpLFxuICBvbihsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfToge3BheWxvYWQ6IEF1dGh9KSA9PiB1cGRhdGVBdXRoVGVhbXMoc3RhdGUsIHBheWxvYWQpKVxuKTtcbiJdfQ==
|
|
@@ -1799,12 +1799,13 @@ class Auth {
|
|
|
1799
1799
|
sections;
|
|
1800
1800
|
siteEnabled;
|
|
1801
1801
|
teams;
|
|
1802
|
+
teamsLoaded;
|
|
1802
1803
|
user_name;
|
|
1803
1804
|
clubAdmin2faRequired;
|
|
1804
1805
|
sectionAdmin2faRequired;
|
|
1805
1806
|
teamAdmin2faRequired;
|
|
1806
1807
|
memberAdmin2faRequired;
|
|
1807
|
-
constructor(id, name, clubAdmin, isSectionClub, members, registrationEnabled, sections, siteEnabled, teams, user_name, clubAdmin2faRequired, sectionAdmin2faRequired, teamAdmin2faRequired, memberAdmin2faRequired) {
|
|
1808
|
+
constructor(id, name, clubAdmin, isSectionClub, members, registrationEnabled, sections, siteEnabled, teams, teamsLoaded, user_name, clubAdmin2faRequired, sectionAdmin2faRequired, teamAdmin2faRequired, memberAdmin2faRequired) {
|
|
1808
1809
|
this.id = id;
|
|
1809
1810
|
this.name = name;
|
|
1810
1811
|
this.clubAdmin = clubAdmin;
|
|
@@ -1814,6 +1815,7 @@ class Auth {
|
|
|
1814
1815
|
this.sections = sections;
|
|
1815
1816
|
this.siteEnabled = siteEnabled;
|
|
1816
1817
|
this.teams = teams;
|
|
1818
|
+
this.teamsLoaded = teamsLoaded;
|
|
1817
1819
|
this.user_name = user_name;
|
|
1818
1820
|
this.clubAdmin2faRequired = clubAdmin2faRequired;
|
|
1819
1821
|
this.sectionAdmin2faRequired = sectionAdmin2faRequired;
|
|
@@ -4354,7 +4356,7 @@ const authTeamSectionFactory = (apiAuthTeamSection) => new AuthTeamSection(apiAu
|
|
|
4354
4356
|
|
|
4355
4357
|
const authTeamFactory = (apiAuthTeam) => new AuthTeam(apiAuthTeam.id, apiAuthTeam.calendar_url, apiAuthTeam.name, apiAuthTeam.section ? authTeamSectionFactory(apiAuthTeam.section) : null, apiAuthTeam.team_admin_2fa_required);
|
|
4356
4358
|
|
|
4357
|
-
const authFactory = (apiAuth) => new Auth(apiAuth.id, apiAuth.name, apiAuth.club_admin, apiAuth.is_section_club, apiAuth.members.map((apiAuthMember) => authMemberFactory(apiAuthMember)), apiAuth.registration_enabled, apiAuth.sections.map((apiAuthSection) => authSectionFactory(apiAuthSection)), apiAuth.site_enabled, apiAuth.teams.map((apiAuthTeam) => authTeamFactory(apiAuthTeam)), apiAuth.user_name, apiAuth.club_admin_2fa_required, apiAuth.section_admin_2fa_required, apiAuth.team_admin_2fa_required, apiAuth.member_admin_2fa_required);
|
|
4359
|
+
const authFactory = (apiAuth) => new Auth(apiAuth.id, apiAuth.name, apiAuth.club_admin, apiAuth.is_section_club, apiAuth.members.map((apiAuthMember) => authMemberFactory(apiAuthMember)), apiAuth.registration_enabled, apiAuth.sections.map((apiAuthSection) => authSectionFactory(apiAuthSection)), apiAuth.site_enabled, apiAuth.teams.map((apiAuthTeam) => authTeamFactory(apiAuthTeam)), apiAuth.teams.length > 0, apiAuth.user_name, apiAuth.club_admin_2fa_required, apiAuth.section_admin_2fa_required, apiAuth.team_admin_2fa_required, apiAuth.member_admin_2fa_required);
|
|
4358
4360
|
|
|
4359
4361
|
const bookablePartFactory = (apiBookablePart) => {
|
|
4360
4362
|
return new BookablePart(apiBookablePart.id, apiBookablePart.name);
|
|
@@ -8167,7 +8169,7 @@ class AuthEffects {
|
|
|
8167
8169
|
.pipe(ofType(listAuthAction), exhaustMap(({ payload }) => this.authService.getAuths(payload)
|
|
8168
8170
|
.pipe(map((auths) => listAuthSuccessAction({ payload: auths.toArray() })), catchError((error) => of(listAuthFailureAction({ payload: error })))))));
|
|
8169
8171
|
listAuthTeams$ = createEffect(() => this.actions$
|
|
8170
|
-
.pipe(ofType(listAuthTeamsAction),
|
|
8172
|
+
.pipe(ofType(listAuthTeamsAction), mergeMap(({ payload }) => {
|
|
8171
8173
|
if (payload.clubAdmin) {
|
|
8172
8174
|
return this.teamService.getClubTeams(payload.id)
|
|
8173
8175
|
.pipe(map((searchTeams) => {
|
|
@@ -9652,11 +9654,11 @@ function ensureOpenActivityTypeLoadingDone() {
|
|
|
9652
9654
|
* @return {Observable<ListResultInterface<Auth>>} An observable that emits only when authentication data is present.
|
|
9653
9655
|
*/
|
|
9654
9656
|
function ensureAuths(store) {
|
|
9655
|
-
return (source) => source.pipe(tap$1((
|
|
9656
|
-
if (!
|
|
9657
|
+
return (source) => source.pipe(tap$1((state) => {
|
|
9658
|
+
if (!state) {
|
|
9657
9659
|
store.dispatch(listAuthAction());
|
|
9658
9660
|
}
|
|
9659
|
-
}), filter((
|
|
9661
|
+
}), filter((state) => !!state && !state.loading));
|
|
9660
9662
|
}
|
|
9661
9663
|
|
|
9662
9664
|
/**
|
|
@@ -9723,11 +9725,11 @@ function ensureCurrentAuth(store) {
|
|
|
9723
9725
|
* @return {Observable<RetrieveResultInterface<User>>} An observable that emits only valid user results.
|
|
9724
9726
|
*/
|
|
9725
9727
|
function ensureCurrentUser(store) {
|
|
9726
|
-
return (source) => source.pipe(tap((
|
|
9727
|
-
if (!
|
|
9728
|
+
return (source) => source.pipe(tap((state) => {
|
|
9729
|
+
if (!state) {
|
|
9728
9730
|
store.dispatch(getCurrentUserAction());
|
|
9729
9731
|
}
|
|
9730
|
-
}), filter$1((
|
|
9732
|
+
}), filter$1((state) => !!state && !state.loading));
|
|
9731
9733
|
}
|
|
9732
9734
|
|
|
9733
9735
|
/**
|
|
@@ -10002,7 +10004,8 @@ function updateAuthTeams(state, payload) {
|
|
|
10002
10004
|
...state.auths.results.slice(0, index),
|
|
10003
10005
|
{
|
|
10004
10006
|
...state.auths.results[index],
|
|
10005
|
-
teams: payload.teams
|
|
10007
|
+
teams: payload.teams,
|
|
10008
|
+
teamsLoaded: true
|
|
10006
10009
|
},
|
|
10007
10010
|
...state.auths.results.slice(index + 1)
|
|
10008
10011
|
];
|
|
@@ -10010,12 +10013,21 @@ function updateAuthTeams(state, payload) {
|
|
|
10010
10013
|
...state,
|
|
10011
10014
|
auths: {
|
|
10012
10015
|
...state.auths,
|
|
10013
|
-
results: updatedResult
|
|
10016
|
+
results: updatedResult,
|
|
10017
|
+
lastLoaded: new Date(),
|
|
10018
|
+
loading: false
|
|
10014
10019
|
}
|
|
10015
10020
|
};
|
|
10016
10021
|
}
|
|
10017
10022
|
}
|
|
10018
|
-
return
|
|
10023
|
+
return {
|
|
10024
|
+
...state,
|
|
10025
|
+
auths: {
|
|
10026
|
+
...state.auths,
|
|
10027
|
+
lastLoaded: new Date(),
|
|
10028
|
+
loading: false
|
|
10029
|
+
}
|
|
10030
|
+
};
|
|
10019
10031
|
}
|
|
10020
10032
|
const authReducer = createReducer(initialAuthState, on(clearAuthenticationSuccessAction, clearCurrentAuthSuccessAction, state => ({
|
|
10021
10033
|
...state,
|
|
@@ -10039,6 +10051,9 @@ const authReducer = createReducer(initialAuthState, on(clearAuthenticationSucces
|
|
|
10039
10051
|
})), on(listAuthTeamsAction, state => ({
|
|
10040
10052
|
...state,
|
|
10041
10053
|
auths: { ...state.auths || listStartLoading(), loading: true }
|
|
10054
|
+
})), on(listAuthTeamsFailureAction, (state, { payload }) => ({
|
|
10055
|
+
...state,
|
|
10056
|
+
auths: { ...state.auths || listLoadFailure(payload) }
|
|
10042
10057
|
})), on(listAuthTeamsSuccessAction, (state, { payload }) => updateAuthTeams(state, payload)));
|
|
10043
10058
|
|
|
10044
10059
|
// --- Helper Functions ---
|