myrtex-mf-competition 1.0.22 → 1.0.24
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/esm2020/lib/modules/competition-header/store/competition-header.effects.mjs +77 -165
- package/fesm2015/myrtex-mf-competition.mjs +73 -166
- package/fesm2015/myrtex-mf-competition.mjs.map +1 -1
- package/fesm2020/myrtex-mf-competition.mjs +73 -166
- package/fesm2020/myrtex-mf-competition.mjs.map +1 -1
- package/lib/modules/competition-header/store/competition-header.effects.d.ts +29 -1
- package/package.json +1 -1
|
@@ -1,179 +1,91 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { select } from '@ngrx/store';
|
|
4
|
+
import { EMPTY } from 'rxjs';
|
|
5
|
+
import { catchError, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';
|
|
6
|
+
import * as CompetitionHeaderActions from './competition-header.actions';
|
|
7
|
+
import { ECompetitionHeaderActions } from './competition-header.actions';
|
|
8
|
+
import { CompetitionVersionStatusEnum, MessageSeverity, selectCompetitionId, Utilities } from 'myrtex-mf-ui-composite';
|
|
2
9
|
import * as i0 from "@angular/core";
|
|
3
10
|
import * as i1 from "../services/competition-header.service";
|
|
4
11
|
import * as i2 from "@ngrx/effects";
|
|
5
12
|
import * as i3 from "@ngrx/store";
|
|
6
13
|
import * as i4 from "myrtex-mf-ui-composite";
|
|
7
14
|
export class CompetitionHeaderEffects {
|
|
8
|
-
// loadCompetitionHeader$ = createEffect(() => this.actions$.pipe(
|
|
9
|
-
// ofType(ECompetitionHeaderActions.LoadCompetitionHeader),
|
|
10
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
11
|
-
// switchMap(([, competitionId]) => {
|
|
12
|
-
// return this.competitionHeaderService.getHeader(competitionId).pipe(
|
|
13
|
-
// map((result: CompetitionHeaderVersionModel) => CompetitionHeaderActions.loadCompetitionHeaderSuccess({competitionHeader: result})),
|
|
14
|
-
// catchError((err) => {
|
|
15
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
16
|
-
// return EMPTY;
|
|
17
|
-
// })
|
|
18
|
-
// );
|
|
19
|
-
// })));
|
|
20
|
-
//
|
|
21
|
-
// deleteCompetitionVersion$ = createEffect(() => this.actions$.pipe(
|
|
22
|
-
// ofType(ECompetitionHeaderActions.DeleteCompetitionVersion),
|
|
23
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
24
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
25
|
-
// switchMap(([versionId, competitionId]) => {
|
|
26
|
-
// return this.competitionHeaderService.deleteVersion(competitionId, versionId).pipe(
|
|
27
|
-
// map((result: boolean) => CompetitionHeaderActions.deleteCompetitionVersionSuccess({ versionId })),
|
|
28
|
-
// catchError((err) => {
|
|
29
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
30
|
-
// return EMPTY;
|
|
31
|
-
// })
|
|
32
|
-
// );
|
|
33
|
-
// })));
|
|
34
|
-
//
|
|
35
|
-
// deleteCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(
|
|
36
|
-
// ofType(ECompetitionHeaderActions.DeleteCompetitionVersionSuccess),
|
|
37
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
38
|
-
// tap(([, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}`)
|
|
39
|
-
// ), {dispatch: false});
|
|
40
|
-
//
|
|
41
|
-
// createCompetitionVersion$ = createEffect(() => this.actions$.pipe(
|
|
42
|
-
// ofType(ECompetitionHeaderActions.CreateCompetitionVersion),
|
|
43
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
44
|
-
// switchMap(([, competitionId]) => {
|
|
45
|
-
// return this.competitionHeaderService.createVersion(competitionId).pipe(
|
|
46
|
-
// map((result: string) => CompetitionHeaderActions.createCompetitionVersionSuccess({ versionId: result })),
|
|
47
|
-
// catchError((err) => {
|
|
48
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
49
|
-
// return EMPTY;
|
|
50
|
-
// })
|
|
51
|
-
// );
|
|
52
|
-
// })));
|
|
53
|
-
//
|
|
54
|
-
// createCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(
|
|
55
|
-
// ofType(ECompetitionHeaderActions.CreateCompetitionVersionSuccess),
|
|
56
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
57
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
58
|
-
// tap(([versionId, competitionId]) =>
|
|
59
|
-
// window.location.href = `/application/competitions/item?competitionId=${competitionId}&versionId=${versionId}`)
|
|
60
|
-
// ), {dispatch: false});
|
|
61
|
-
//
|
|
62
|
-
// competitionVersionChangeStatus$ = createEffect(() => this.actions$.pipe(
|
|
63
|
-
// ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatus),
|
|
64
|
-
// map((action: { versionId: string, status: CompetitionVersionStatusEnum }) => action),
|
|
65
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
66
|
-
// switchMap(([action, competitionId]) => {
|
|
67
|
-
// return this.competitionHeaderService.versionChangeStatus(competitionId, action.versionId, action.status).pipe(
|
|
68
|
-
// map((result: boolean) => {
|
|
69
|
-
// return CompetitionHeaderActions.competitionVersionChangeStatusSuccess({
|
|
70
|
-
// versionId: action.versionId,
|
|
71
|
-
// status: action.status
|
|
72
|
-
// });
|
|
73
|
-
// }),
|
|
74
|
-
// catchError((err) => {
|
|
75
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
76
|
-
// return EMPTY;
|
|
77
|
-
// })
|
|
78
|
-
// );
|
|
79
|
-
// })));
|
|
80
|
-
//
|
|
81
|
-
// competitionVersionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(
|
|
82
|
-
// ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatusSuccess),
|
|
83
|
-
// map((action: { versionId: string, status: CompetitionVersionStatusEnum }) => action),
|
|
84
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
85
|
-
// tap(([action, competitionId]) => {
|
|
86
|
-
// if (action.status === CompetitionVersionStatusEnum.Validation) {
|
|
87
|
-
// window.location.href = `/m-data/minfin/selection/edit?competitionId=${competitionId}&versionId=${action.versionId}`;
|
|
88
|
-
// } else {
|
|
89
|
-
// window.location.reload();
|
|
90
|
-
// }
|
|
91
|
-
// })
|
|
92
|
-
// ), { dispatch: false });
|
|
93
|
-
//
|
|
94
|
-
// selectCompetitionVersion$ = createEffect(() => this.actions$.pipe(
|
|
95
|
-
// ofType(ECompetitionHeaderActions.SelectCompetitionVersion),
|
|
96
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
97
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
98
|
-
// tap(([versionId, competitionId]) => {
|
|
99
|
-
// const newUri = Utilities.updateQueryStringParameter(window.location.href, 'versionId', versionId);
|
|
100
|
-
// window.location.href = newUri;
|
|
101
|
-
// })
|
|
102
|
-
// ), {dispatch: false});
|
|
103
|
-
//
|
|
104
|
-
// activateCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
105
|
-
// ofType(ECompetitionHeaderActions.ActivateCompetition),
|
|
106
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
107
|
-
// switchMap(([, competitionId]) => {
|
|
108
|
-
// return this.competitionHeaderService.activate(competitionId).pipe(
|
|
109
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
110
|
-
// catchError((err, caught) => {
|
|
111
|
-
// this.alertService.showStickyMessage(err, 'Ошибка активации', MessageSeverity.error);
|
|
112
|
-
// return EMPTY;
|
|
113
|
-
// })
|
|
114
|
-
// );
|
|
115
|
-
// })
|
|
116
|
-
// )));
|
|
117
|
-
//
|
|
118
|
-
// pauseCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
119
|
-
// ofType(ECompetitionHeaderActions.PauseCompetition),
|
|
120
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
121
|
-
// switchMap(([, competitionId]) => {
|
|
122
|
-
// return this.competitionHeaderService.pause(competitionId).pipe(
|
|
123
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
124
|
-
// catchError((err, caught) => {
|
|
125
|
-
// this.alertService.showStickyMessage(err, 'Ошибка приостановки', MessageSeverity.error);
|
|
126
|
-
// return EMPTY;
|
|
127
|
-
// })
|
|
128
|
-
// );
|
|
129
|
-
// })
|
|
130
|
-
// )));
|
|
131
|
-
//
|
|
132
|
-
// completeCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
133
|
-
// ofType(ECompetitionHeaderActions.CompleteCompetition),
|
|
134
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
135
|
-
// switchMap(([, competitionId]) => {
|
|
136
|
-
// return this.competitionHeaderService.complete(competitionId).pipe(
|
|
137
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
138
|
-
// catchError((err, caught) => {
|
|
139
|
-
// this.alertService.showStickyMessage(err, 'Ошибка при завершении', MessageSeverity.error);
|
|
140
|
-
// return EMPTY;
|
|
141
|
-
// })
|
|
142
|
-
// );
|
|
143
|
-
// })
|
|
144
|
-
// )));
|
|
145
|
-
//
|
|
146
|
-
// cancelCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
147
|
-
// ofType(ECompetitionHeaderActions.CancelCompetition),
|
|
148
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
149
|
-
// switchMap(([, competitionId]) => {
|
|
150
|
-
// return this.competitionHeaderService.cancel(competitionId).pipe(
|
|
151
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
152
|
-
// catchError((err, caught) => {
|
|
153
|
-
// this.alertService.showStickyMessage(err, 'Ошибка при отмене', MessageSeverity.error);
|
|
154
|
-
// return EMPTY;
|
|
155
|
-
// })
|
|
156
|
-
// );
|
|
157
|
-
// })
|
|
158
|
-
// )));
|
|
159
|
-
//
|
|
160
|
-
// cancelCompetitionWithValidation$ = createEffect(() => this.actions$.pipe(
|
|
161
|
-
// ofType(ECompetitionHeaderActions.CancelCompetitionWithValidation),
|
|
162
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
163
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
164
|
-
// tap(([versionId, competitionId]) =>
|
|
165
|
-
// window.location.href = `/m-data/minfin/selection/edit/cancel?competitionId=${competitionId}&versionId=${versionId}`)
|
|
166
|
-
// ), {dispatch: false});
|
|
167
|
-
//
|
|
168
|
-
// competitionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(
|
|
169
|
-
// ofType(ECompetitionHeaderActions.CompetitionChangeStatusSuccess),
|
|
170
|
-
// tap(() => window.location.reload())
|
|
171
|
-
// ), {dispatch: false});
|
|
172
15
|
constructor(competitionHeaderService, actions$, store, alertService) {
|
|
173
16
|
this.competitionHeaderService = competitionHeaderService;
|
|
174
17
|
this.actions$ = actions$;
|
|
175
18
|
this.store = store;
|
|
176
19
|
this.alertService = alertService;
|
|
20
|
+
this.loadCompetitionHeader$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.LoadCompetitionHeader), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
21
|
+
return this.competitionHeaderService.getHeader(competitionId).pipe(map((result) => CompetitionHeaderActions.loadCompetitionHeaderSuccess({ competitionHeader: result })), catchError((err) => {
|
|
22
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
23
|
+
return EMPTY;
|
|
24
|
+
}));
|
|
25
|
+
})));
|
|
26
|
+
this.deleteCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.DeleteCompetitionVersion), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([versionId, competitionId]) => {
|
|
27
|
+
return this.competitionHeaderService.deleteVersion(competitionId, versionId).pipe(map((result) => CompetitionHeaderActions.deleteCompetitionVersionSuccess({ versionId })), catchError((err) => {
|
|
28
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
29
|
+
return EMPTY;
|
|
30
|
+
}));
|
|
31
|
+
})));
|
|
32
|
+
this.deleteCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.DeleteCompetitionVersionSuccess), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}`)), { dispatch: false });
|
|
33
|
+
this.createCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CreateCompetitionVersion), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
34
|
+
return this.competitionHeaderService.createVersion(competitionId).pipe(map((result) => CompetitionHeaderActions.createCompetitionVersionSuccess({ versionId: result })), catchError((err) => {
|
|
35
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
36
|
+
return EMPTY;
|
|
37
|
+
}));
|
|
38
|
+
})));
|
|
39
|
+
this.createCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CreateCompetitionVersionSuccess), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}&versionId=${versionId}`)), { dispatch: false });
|
|
40
|
+
this.competitionVersionChangeStatus$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatus), map((action) => action), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([action, competitionId]) => {
|
|
41
|
+
return this.competitionHeaderService.versionChangeStatus(competitionId, action.versionId, action.status).pipe(map((result) => {
|
|
42
|
+
return CompetitionHeaderActions.competitionVersionChangeStatusSuccess({
|
|
43
|
+
versionId: action.versionId,
|
|
44
|
+
status: action.status
|
|
45
|
+
});
|
|
46
|
+
}), catchError((err) => {
|
|
47
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
48
|
+
return EMPTY;
|
|
49
|
+
}));
|
|
50
|
+
})));
|
|
51
|
+
this.competitionVersionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatusSuccess), map((action) => action), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([action, competitionId]) => {
|
|
52
|
+
if (action.status === CompetitionVersionStatusEnum.Validation) {
|
|
53
|
+
window.location.href = `/m-data/minfin/selection/edit?competitionId=${competitionId}&versionId=${action.versionId}`;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
window.location.reload();
|
|
57
|
+
}
|
|
58
|
+
})), { dispatch: false });
|
|
59
|
+
this.selectCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.SelectCompetitionVersion), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => {
|
|
60
|
+
const newUri = Utilities.updateQueryStringParameter(window.location.href, 'versionId', versionId);
|
|
61
|
+
window.location.href = newUri;
|
|
62
|
+
})), { dispatch: false });
|
|
63
|
+
this.activateCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.ActivateCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
64
|
+
return this.competitionHeaderService.activate(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
65
|
+
this.alertService.showStickyMessage(err, 'Ошибка активации', MessageSeverity.error);
|
|
66
|
+
return EMPTY;
|
|
67
|
+
}));
|
|
68
|
+
}))));
|
|
69
|
+
this.pauseCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.PauseCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
70
|
+
return this.competitionHeaderService.pause(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
71
|
+
this.alertService.showStickyMessage(err, 'Ошибка приостановки', MessageSeverity.error);
|
|
72
|
+
return EMPTY;
|
|
73
|
+
}));
|
|
74
|
+
}))));
|
|
75
|
+
this.completeCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.CompleteCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
76
|
+
return this.competitionHeaderService.complete(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
77
|
+
this.alertService.showStickyMessage(err, 'Ошибка при завершении', MessageSeverity.error);
|
|
78
|
+
return EMPTY;
|
|
79
|
+
}));
|
|
80
|
+
}))));
|
|
81
|
+
this.cancelCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.CancelCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
82
|
+
return this.competitionHeaderService.cancel(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
83
|
+
this.alertService.showStickyMessage(err, 'Ошибка при отмене', MessageSeverity.error);
|
|
84
|
+
return EMPTY;
|
|
85
|
+
}));
|
|
86
|
+
}))));
|
|
87
|
+
this.cancelCompetitionWithValidation$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CancelCompetitionWithValidation), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => window.location.href = `/m-data/minfin/selection/edit/cancel?competitionId=${competitionId}&versionId=${versionId}`)), { dispatch: false });
|
|
88
|
+
this.competitionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionChangeStatusSuccess), tap(() => window.location.reload())), { dispatch: false });
|
|
177
89
|
}
|
|
178
90
|
}
|
|
179
91
|
CompetitionHeaderEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CompetitionHeaderEffects, deps: [{ token: i1.CompetitionHeaderService }, { token: i2.Actions }, { token: i3.Store }, { token: i4.AlertService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -181,4 +93,4 @@ CompetitionHeaderEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
|
|
|
181
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CompetitionHeaderEffects, decorators: [{
|
|
182
94
|
type: Injectable
|
|
183
95
|
}], ctorParameters: function () { return [{ type: i1.CompetitionHeaderService }, { type: i2.Actions }, { type: i3.Store }, { type: i4.AlertService }]; } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0aXRpb24taGVhZGVyLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtY29tcGV0aXRpb24vc3JjL2xpYi9tb2R1bGVzL2NvbXBldGl0aW9uLWhlYWRlci9zdG9yZS9jb21wZXRpdGlvbi1oZWFkZXIuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFtQnpDLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsa0VBQWtFO0lBQ2xFLDZEQUE2RDtJQUM3RCxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLDBFQUEwRTtJQUMxRSw0SUFBNEk7SUFDNUksOEJBQThCO0lBQzlCLDJFQUEyRTtJQUMzRSx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsRUFBRTtJQUNGLHFFQUFxRTtJQUNyRSxnRUFBZ0U7SUFDaEUsOERBQThEO0lBQzlELGtFQUFrRTtJQUNsRSxnREFBZ0Q7SUFDaEQseUZBQXlGO0lBQ3pGLDJHQUEyRztJQUMzRyw4QkFBOEI7SUFDOUIsMkVBQTJFO0lBQzNFLHdCQUF3QjtJQUN4QixXQUFXO0lBQ1gsU0FBUztJQUNULFVBQVU7SUFDVixFQUFFO0lBQ0YsNEVBQTRFO0lBQzVFLHVFQUF1RTtJQUN2RSxrRUFBa0U7SUFDbEUsdUhBQXVIO0lBQ3ZILHlCQUF5QjtJQUN6QixFQUFFO0lBQ0YscUVBQXFFO0lBQ3JFLGdFQUFnRTtJQUNoRSxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLDhFQUE4RTtJQUM5RSxrSEFBa0g7SUFDbEgsOEJBQThCO0lBQzlCLDJFQUEyRTtJQUMzRSx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsRUFBRTtJQUNGLDRFQUE0RTtJQUM1RSx1RUFBdUU7SUFDdkUsOERBQThEO0lBQzlELGtFQUFrRTtJQUNsRSx3Q0FBd0M7SUFDeEMscUhBQXFIO0lBQ3JILHlCQUF5QjtJQUN6QixFQUFFO0lBQ0YsMkVBQTJFO0lBQzNFLHNFQUFzRTtJQUN0RSwwRkFBMEY7SUFDMUYsa0VBQWtFO0lBQ2xFLDZDQUE2QztJQUM3QyxxSEFBcUg7SUFDckgsbUNBQW1DO0lBQ25DLGtGQUFrRjtJQUNsRix5Q0FBeUM7SUFDekMsa0NBQWtDO0lBQ2xDLGNBQWM7SUFDZCxZQUFZO0lBQ1osOEJBQThCO0lBQzlCLDJFQUEyRTtJQUMzRSx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsRUFBRTtJQUNGLG9GQUFvRjtJQUNwRiwrRUFBK0U7SUFDL0UsNEZBQTRGO0lBQzVGLG9FQUFvRTtJQUNwRSx5Q0FBeUM7SUFDekMseUVBQXlFO0lBQ3pFLCtIQUErSDtJQUMvSCxpQkFBaUI7SUFDakIsb0NBQW9DO0lBQ3BDLFVBQVU7SUFDVixTQUFTO0lBQ1QsNkJBQTZCO0lBQzdCLEVBQUU7SUFDRixxRUFBcUU7SUFDckUsZ0VBQWdFO0lBQ2hFLDhEQUE4RDtJQUM5RCxrRUFBa0U7SUFDbEUsMENBQTBDO0lBQzFDLHlHQUF5RztJQUN6RyxxQ0FBcUM7SUFDckMsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixFQUFFO0lBQ0YsaUVBQWlFO0lBQ2pFLDJEQUEyRDtJQUMzRCxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLHlFQUF5RTtJQUN6RSx5RkFBeUY7SUFDekYsc0NBQXNDO0lBQ3RDLCtGQUErRjtJQUMvRix3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxPQUFPO0lBQ1AsT0FBTztJQUNQLEVBQUU7SUFDRiw4REFBOEQ7SUFDOUQsd0RBQXdEO0lBQ3hELGtFQUFrRTtJQUNsRSx1Q0FBdUM7SUFDdkMsc0VBQXNFO0lBQ3RFLHlGQUF5RjtJQUN6RixzQ0FBc0M7SUFDdEMsa0dBQWtHO0lBQ2xHLHdCQUF3QjtJQUN4QixXQUFXO0lBQ1gsU0FBUztJQUNULE9BQU87SUFDUCxPQUFPO0lBQ1AsRUFBRTtJQUNGLGlFQUFpRTtJQUNqRSwyREFBMkQ7SUFDM0Qsa0VBQWtFO0lBQ2xFLHVDQUF1QztJQUN2Qyx5RUFBeUU7SUFDekUseUZBQXlGO0lBQ3pGLHNDQUFzQztJQUN0QyxvR0FBb0c7SUFDcEcsd0JBQXdCO0lBQ3hCLFdBQVc7SUFDWCxTQUFTO0lBQ1QsT0FBTztJQUNQLE9BQU87SUFDUCxFQUFFO0lBQ0YsK0RBQStEO0lBQy9ELHlEQUF5RDtJQUN6RCxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLHVFQUF1RTtJQUN2RSx5RkFBeUY7SUFDekYsc0NBQXNDO0lBQ3RDLGdHQUFnRztJQUNoRyx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxPQUFPO0lBQ1AsT0FBTztJQUNQLEVBQUU7SUFDRiw0RUFBNEU7SUFDNUUsdUVBQXVFO0lBQ3ZFLDhEQUE4RDtJQUM5RCxrRUFBa0U7SUFDbEUsd0NBQXdDO0lBQ3hDLDJIQUEySDtJQUMzSCx5QkFBeUI7SUFDekIsRUFBRTtJQUNGLDJFQUEyRTtJQUMzRSxzRUFBc0U7SUFDdEUsd0NBQXdDO0lBQ3hDLHlCQUF5QjtJQUV6QixZQUFvQix3QkFBa0QsRUFDbEQsUUFBaUIsRUFDakIsS0FBWSxFQUNaLFlBQTBCO1FBSDFCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osaUJBQVksR0FBWixZQUFZLENBQWM7SUFFOUMsQ0FBQzs7c0hBNUtVLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7RU1QVFl9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucyBmcm9tICcuL2NvbXBldGl0aW9uLWhlYWRlci5hY3Rpb25zJztcclxuaW1wb3J0IHtjYW5jZWxDb21wZXRpdGlvbldpdGhWYWxpZGF0aW9uLCBFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zfSBmcm9tICcuL2NvbXBldGl0aW9uLWhlYWRlci5hY3Rpb25zJztcclxuaW1wb3J0IHtDb21wZXRpdGlvbkhlYWRlclZlcnNpb25Nb2RlbH0gZnJvbSAnLi4vbW9kZWxzL2NvbXBldGl0aW9uLWhlYWRlci12ZXJzaW9uLm1vZGVsJztcclxuaW1wb3J0IHtDb21wZXRpdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2NvbXBldGl0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBbGVydFNlcnZpY2UsXHJcbiAgQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSxcclxuICBNZXNzYWdlU2V2ZXJpdHksXHJcbiAgc2VsZWN0Q29tcGV0aXRpb25JZCxcclxuICBVdGlsaXRpZXNcclxufSBmcm9tICdteXJ0ZXgtbWYtdWktY29tcG9zaXRlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb21wZXRpdGlvbkhlYWRlckVmZmVjdHMge1xyXG5cclxuICAvLyBsb2FkQ29tcGV0aXRpb25IZWFkZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkxvYWRDb21wZXRpdGlvbkhlYWRlciksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5nZXRIZWFkZXIoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAvLyAgICAgICBtYXAoKHJlc3VsdDogQ29tcGV0aXRpb25IZWFkZXJWZXJzaW9uTW9kZWwpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5sb2FkQ29tcGV0aXRpb25IZWFkZXJTdWNjZXNzKHtjb21wZXRpdGlvbkhlYWRlcjogcmVzdWx0fSkpLFxyXG4gIC8vICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2UoZXJyLCBudWxsLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KSkpO1xyXG4gIC8vXHJcbiAgLy8gZGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgLy8gICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5EZWxldGVDb21wZXRpdGlvblZlcnNpb24pLFxyXG4gIC8vICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5kZWxldGVWZXJzaW9uKGNvbXBldGl0aW9uSWQsIHZlcnNpb25JZCkucGlwZShcclxuICAvLyAgICAgICBtYXAoKHJlc3VsdDogYm9vbGVhbikgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmRlbGV0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MoeyB2ZXJzaW9uSWQgfSkpLFxyXG4gIC8vICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2UoZXJyLCBudWxsLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KSkpO1xyXG4gIC8vXHJcbiAgLy8gZGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuRGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2VzcyksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICB0YXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvYXBwbGljYXRpb24vY29tcGV0aXRpb25zL2l0ZW0/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9YClcclxuICAvLyApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcbiAgLy9cclxuICAvLyBjcmVhdGVDb21wZXRpdGlvblZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvbiksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5jcmVhdGVWZXJzaW9uKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IHN0cmluZykgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MoeyB2ZXJzaW9uSWQ6IHJlc3VsdCB9KSksXHJcbiAgLy8gICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgLy8gICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZShlcnIsIG51bGwsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgLy8gICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgLy8gICAgICAgfSlcclxuICAvLyAgICAgKTtcclxuICAvLyAgIH0pKSk7XHJcbiAgLy9cclxuICAvLyBjcmVhdGVDb21wZXRpdGlvblZlcnNpb25TdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgLy8gICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5DcmVhdGVDb21wZXRpdGlvblZlcnNpb25TdWNjZXNzKSxcclxuICAvLyAgIG1hcCgoYWN0aW9uOiB7IHZlcnNpb25JZDogc3RyaW5nIH0pID0+IGFjdGlvbi52ZXJzaW9uSWQpLFxyXG4gIC8vICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gIC8vICAgdGFwKChbdmVyc2lvbklkLCBjb21wZXRpdGlvbklkXSkgPT5cclxuICAvLyAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL2FwcGxpY2F0aW9uL2NvbXBldGl0aW9ucy9pdGVtP2NvbXBldGl0aW9uSWQ9JHtjb21wZXRpdGlvbklkfSZ2ZXJzaW9uSWQ9JHt2ZXJzaW9uSWR9YClcclxuICAvLyApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcbiAgLy9cclxuICAvLyBjb21wZXRpdGlvblZlcnNpb25DaGFuZ2VTdGF0dXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNvbXBldGl0aW9uVmVyc2lvbkNoYW5nZVN0YXR1cyksXHJcbiAgLy8gICBtYXAoKGFjdGlvbjogeyB2ZXJzaW9uSWQ6IHN0cmluZywgc3RhdHVzOiBDb21wZXRpdGlvblZlcnNpb25TdGF0dXNFbnVtIH0pID0+IGFjdGlvbiksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFthY3Rpb24sIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS52ZXJzaW9uQ2hhbmdlU3RhdHVzKGNvbXBldGl0aW9uSWQsIGFjdGlvbi52ZXJzaW9uSWQsIGFjdGlvbi5zdGF0dXMpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAvLyAgICAgICAgIHJldHVybiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY29tcGV0aXRpb25WZXJzaW9uQ2hhbmdlU3RhdHVzU3VjY2Vzcyh7XHJcbiAgLy8gICAgICAgICAgIHZlcnNpb25JZDogYWN0aW9uLnZlcnNpb25JZCxcclxuICAvLyAgICAgICAgICAgc3RhdHVzOiBhY3Rpb24uc3RhdHVzXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICB9KSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAvLyAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dNZXNzYWdlKGVyciwgbnVsbCwgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAvLyAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAvLyAgICAgICB9KVxyXG4gIC8vICAgICApO1xyXG4gIC8vICAgfSkpKTtcclxuICAvL1xyXG4gIC8vICAgY29tcGV0aXRpb25WZXJzaW9uQ2hhbmdlU3RhdHVzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Db21wZXRpdGlvblZlcnNpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKSxcclxuICAvLyAgICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcsIHN0YXR1czogQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSB9KSA9PiBhY3Rpb24pLFxyXG4gIC8vICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICAgIHRhcCgoW2FjdGlvbiwgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAvLyAgICAgICBpZiAoYWN0aW9uLnN0YXR1cyA9PT0gQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bS5WYWxpZGF0aW9uKSB7XHJcbiAgLy8gICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvbS1kYXRhL21pbmZpbi9zZWxlY3Rpb24vZWRpdD9jb21wZXRpdGlvbklkPSR7Y29tcGV0aXRpb25JZH0mdmVyc2lvbklkPSR7YWN0aW9uLnZlcnNpb25JZH1gO1xyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgKSwgeyBkaXNwYXRjaDogZmFsc2UgfSk7XHJcbiAgLy9cclxuICAvLyBzZWxlY3RDb21wZXRpdGlvblZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLlNlbGVjdENvbXBldGl0aW9uVmVyc2lvbiksXHJcbiAgLy8gICBtYXAoKGFjdGlvbjogeyB2ZXJzaW9uSWQ6IHN0cmluZyB9KSA9PiBhY3Rpb24udmVyc2lvbklkKSxcclxuICAvLyAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAvLyAgIHRhcCgoW3ZlcnNpb25JZCwgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAvLyAgICAgY29uc3QgbmV3VXJpID0gVXRpbGl0aWVzLnVwZGF0ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVyKHdpbmRvdy5sb2NhdGlvbi5ocmVmLCAndmVyc2lvbklkJywgdmVyc2lvbklkKTtcclxuICAvLyAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBuZXdVcmk7XHJcbiAgLy8gICB9KVxyXG4gIC8vICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuICAvL1xyXG4gIC8vIGFjdGl2YXRlQ29tcGV0aXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+ICh0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgLy8gICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5BY3RpdmF0ZUNvbXBldGl0aW9uKSxcclxuICAvLyAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAvLyAgIHN3aXRjaE1hcCgoWywgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLmFjdGl2YXRlKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcygpKSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd1N0aWNreU1lc3NhZ2UoZXJyLCAn0J7RiNC40LHQutCwINCw0LrRgtC40LLQsNGG0LjQuCcsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgLy8gICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgLy8gICAgICAgfSlcclxuICAvLyAgICAgKTtcclxuICAvLyAgIH0pXHJcbiAgLy8gKSkpO1xyXG4gIC8vXHJcbiAgLy8gcGF1c2VDb21wZXRpdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gKHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLlBhdXNlQ29tcGV0aXRpb24pLFxyXG4gIC8vICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gIC8vICAgc3dpdGNoTWFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UucGF1c2UoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAvLyAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKCkpLFxyXG4gIC8vICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XHJcbiAgLy8gICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93U3RpY2t5TWVzc2FnZShlcnIsICfQntGI0LjQsdC60LAg0L/RgNC40L7RgdGC0LDQvdC+0LLQutC4JywgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAvLyAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAvLyAgICAgICB9KVxyXG4gIC8vICAgICApO1xyXG4gIC8vICAgfSlcclxuICAvLyApKSk7XHJcbiAgLy9cclxuICAvLyBjb21wbGV0ZUNvbXBldGl0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiAodGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ29tcGxldGVDb21wZXRpdGlvbiksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5jb21wbGV0ZShjb21wZXRpdGlvbklkKS5waXBlKFxyXG4gIC8vICAgICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5jb21wZXRpdGlvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MoKSksXHJcbiAgLy8gICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcclxuICAvLyAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dTdGlja3lNZXNzYWdlKGVyciwgJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LfQsNCy0LXRgNGI0LXQvdC40LgnLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KVxyXG4gIC8vICkpKTtcclxuICAvL1xyXG4gIC8vIGNhbmNlbENvbXBldGl0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiAodGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ2FuY2VsQ29tcGV0aXRpb24pLFxyXG4gIC8vICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gIC8vICAgc3dpdGNoTWFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UuY2FuY2VsKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcygpKSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd1N0aWNreU1lc3NhZ2UoZXJyLCAn0J7RiNC40LHQutCwINC/0YDQuCDQvtGC0LzQtdC90LUnLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KVxyXG4gIC8vICkpKTtcclxuICAvL1xyXG4gIC8vIGNhbmNlbENvbXBldGl0aW9uV2l0aFZhbGlkYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNhbmNlbENvbXBldGl0aW9uV2l0aFZhbGlkYXRpb24pLFxyXG4gIC8vICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICB0YXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PlxyXG4gIC8vICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvbS1kYXRhL21pbmZpbi9zZWxlY3Rpb24vZWRpdC9jYW5jZWw/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9JnZlcnNpb25JZD0ke3ZlcnNpb25JZH1gKVxyXG4gIC8vICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuICAvL1xyXG4gIC8vIGNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKSxcclxuICAvLyAgIHRhcCgoKSA9PiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkpXHJcbiAgLy8gKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBldGl0aW9uSGVhZGVyU2VydmljZTogQ29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxyXG4gICkge1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0aXRpb24taGVhZGVyLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtY29tcGV0aXRpb24vc3JjL2xpYi9tb2R1bGVzL2NvbXBldGl0aW9uLWhlYWRlci9zdG9yZS9jb21wZXRpdGlvbi1oZWFkZXIuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyx3QkFBd0IsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQW1DLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHMUcsT0FBTyxFQUVMLDRCQUE0QixFQUM1QixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLFNBQVMsRUFDVixNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFJaEMsTUFBTSxPQUFPLHdCQUF3QjtJQXVLbkMsWUFBb0Isd0JBQWtELEVBQ2xELFFBQWlCLEVBQ2pCLEtBQVksRUFDWixZQUEwQjtRQUgxQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBeEs5QywyQkFBc0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEs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QUFJLENBQ3JFLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNoRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUNwQyxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFPdEIsQ0FBQzs7c0hBNUtVLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IEVNUFRZIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMgZnJvbSAnLi9jb21wZXRpdGlvbi1oZWFkZXIuYWN0aW9ucyc7XHJcbmltcG9ydCB7IGNhbmNlbENvbXBldGl0aW9uV2l0aFZhbGlkYXRpb24sIEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMgfSBmcm9tICcuL2NvbXBldGl0aW9uLWhlYWRlci5hY3Rpb25zJztcclxuaW1wb3J0IHsgQ29tcGV0aXRpb25IZWFkZXJWZXJzaW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvY29tcGV0aXRpb24taGVhZGVyLXZlcnNpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDb21wZXRpdGlvbkhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wZXRpdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRTZXJ2aWNlLFxyXG4gIENvbXBldGl0aW9uVmVyc2lvblN0YXR1c0VudW0sXHJcbiAgTWVzc2FnZVNldmVyaXR5LFxyXG4gIHNlbGVjdENvbXBldGl0aW9uSWQsXHJcbiAgVXRpbGl0aWVzXHJcbn0gZnJvbSAnbXlydGV4LW1mLXVpLWNvbXBvc2l0ZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29tcGV0aXRpb25IZWFkZXJFZmZlY3RzIHtcclxuXHJcbiAgbG9hZENvbXBldGl0aW9uSGVhZGVyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Mb2FkQ29tcGV0aXRpb25IZWFkZXIpLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgc3dpdGNoTWFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UuZ2V0SGVhZGVyKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXN1bHQ6IENvbXBldGl0aW9uSGVhZGVyVmVyc2lvbk1vZGVsKSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMubG9hZENvbXBldGl0aW9uSGVhZGVyU3VjY2Vzcyh7Y29tcGV0aXRpb25IZWFkZXI6IHJlc3VsdH0pKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dNZXNzYWdlKGVyciwgbnVsbCwgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpKTtcclxuXHJcbiAgZGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5EZWxldGVDb21wZXRpdGlvblZlcnNpb24pLFxyXG4gICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICBzd2l0Y2hNYXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5kZWxldGVWZXJzaW9uKGNvbXBldGl0aW9uSWQsIHZlcnNpb25JZCkucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdDogYm9vbGVhbikgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmRlbGV0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3Moe3ZlcnNpb25JZH0pKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dNZXNzYWdlKGVyciwgbnVsbCwgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSkpKTtcclxuXHJcbiAgZGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuRGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2VzcyksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICB0YXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvYXBwbGljYXRpb24vY29tcGV0aXRpb25zL2l0ZW0/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9YClcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIGNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ3JlYXRlQ29tcGV0aXRpb25WZXJzaW9uKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAgIHN3aXRjaE1hcCgoWywgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLmNyZWF0ZVZlcnNpb24oY29tcGV0aXRpb25JZCkucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdDogc3RyaW5nKSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY3JlYXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2Vzcyh7dmVyc2lvbklkOiByZXN1bHR9KSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZShlcnIsIG51bGwsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKSk7XHJcblxyXG4gIGNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICB0YXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PlxyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvYXBwbGljYXRpb24vY29tcGV0aXRpb25zL2l0ZW0/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9JnZlcnNpb25JZD0ke3ZlcnNpb25JZH1gKVxyXG4gICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuXHJcbiAgY29tcGV0aXRpb25WZXJzaW9uQ2hhbmdlU3RhdHVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Db21wZXRpdGlvblZlcnNpb25DaGFuZ2VTdGF0dXMpLFxyXG4gICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcsIHN0YXR1czogQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSB9KSA9PiBhY3Rpb24pLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgc3dpdGNoTWFwKChbYWN0aW9uLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UudmVyc2lvbkNoYW5nZVN0YXR1cyhjb21wZXRpdGlvbklkLCBhY3Rpb24udmVyc2lvbklkLCBhY3Rpb24uc3RhdHVzKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uVmVyc2lvbkNoYW5nZVN0YXR1c1N1Y2Nlc3Moe1xyXG4gICAgICAgICAgICB2ZXJzaW9uSWQ6IGFjdGlvbi52ZXJzaW9uSWQsXHJcbiAgICAgICAgICAgIHN0YXR1czogYWN0aW9uLnN0YXR1c1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZShlcnIsIG51bGwsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKSk7XHJcblxyXG4gIGNvbXBldGl0aW9uVmVyc2lvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNvbXBldGl0aW9uVmVyc2lvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcsIHN0YXR1czogQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSB9KSA9PiBhY3Rpb24pLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgdGFwKChbYWN0aW9uLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gICAgICBpZiAoYWN0aW9uLnN0YXR1cyA9PT0gQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bS5WYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL20tZGF0YS9taW5maW4vc2VsZWN0aW9uL2VkaXQ/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9JnZlcnNpb25JZD0ke2FjdGlvbi52ZXJzaW9uSWR9YDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBzZWxlY3RDb21wZXRpdGlvblZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLlNlbGVjdENvbXBldGl0aW9uVmVyc2lvbiksXHJcbiAgICBtYXAoKGFjdGlvbjogeyB2ZXJzaW9uSWQ6IHN0cmluZyB9KSA9PiBhY3Rpb24udmVyc2lvbklkKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAgIHRhcCgoW3ZlcnNpb25JZCwgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAgICAgY29uc3QgbmV3VXJpID0gVXRpbGl0aWVzLnVwZGF0ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVyKHdpbmRvdy5sb2NhdGlvbi5ocmVmLCAndmVyc2lvbklkJywgdmVyc2lvbklkKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBuZXdVcmk7XHJcbiAgICB9KVxyXG4gICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuXHJcbiAgYWN0aXZhdGVDb21wZXRpdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gKHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkFjdGl2YXRlQ29tcGV0aXRpb24pLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgc3dpdGNoTWFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UuYWN0aXZhdGUoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKCkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93U3RpY2t5TWVzc2FnZShlcnIsICfQntGI0LjQsdC60LAg0LDQutGC0LjQstCw0YbQuNC4JywgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSlcclxuICApKSk7XHJcblxyXG4gIHBhdXNlQ29tcGV0aXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+ICh0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5QYXVzZUNvbXBldGl0aW9uKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAgIHN3aXRjaE1hcCgoWywgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLnBhdXNlKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcygpKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd1N0aWNreU1lc3NhZ2UoZXJyLCAn0J7RiNC40LHQutCwINC/0YDQuNC+0YHRgtCw0L3QvtCy0LrQuCcsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pXHJcbiAgKSkpO1xyXG5cclxuICBjb21wbGV0ZUNvbXBldGl0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiAodGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ29tcGxldGVDb21wZXRpdGlvbiksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5jb21wbGV0ZShjb21wZXRpdGlvbklkKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5jb21wZXRpdGlvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MoKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dTdGlja3lNZXNzYWdlKGVyciwgJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LfQsNCy0LXRgNGI0LXQvdC40LgnLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KVxyXG4gICkpKTtcclxuXHJcbiAgY2FuY2VsQ29tcGV0aXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+ICh0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5DYW5jZWxDb21wZXRpdGlvbiksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5jYW5jZWwoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKCkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93U3RpY2t5TWVzc2FnZShlcnIsICfQntGI0LjQsdC60LAg0L/RgNC4INC+0YLQvNC10L3QtScsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pXHJcbiAgKSkpO1xyXG5cclxuICBjYW5jZWxDb21wZXRpdGlvbldpdGhWYWxpZGF0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5DYW5jZWxDb21wZXRpdGlvbldpdGhWYWxpZGF0aW9uKSxcclxuICAgIG1hcCgoYWN0aW9uOiB7IHZlcnNpb25JZDogc3RyaW5nIH0pID0+IGFjdGlvbi52ZXJzaW9uSWQpLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgdGFwKChbdmVyc2lvbklkLCBjb21wZXRpdGlvbklkXSkgPT5cclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL20tZGF0YS9taW5maW4vc2VsZWN0aW9uL2VkaXQvY2FuY2VsP2NvbXBldGl0aW9uSWQ9JHtjb21wZXRpdGlvbklkfSZ2ZXJzaW9uSWQ9JHt2ZXJzaW9uSWR9YClcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIGNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKSxcclxuICAgIHRhcCgoKSA9PiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkpXHJcbiAgKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBldGl0aW9uSGVhZGVyU2VydmljZTogQ29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxyXG4gICkge1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -3,11 +3,11 @@ import { Directive, EventEmitter, Component, ContentChild, Input, Output, Inject
|
|
|
3
3
|
import * as i5 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2$1 from '@ngrx/effects';
|
|
6
|
-
import { EffectsModule } from '@ngrx/effects';
|
|
6
|
+
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
7
7
|
import * as i2 from '@ngrx/store';
|
|
8
8
|
import { createAction, props, createFeatureSelector, createSelector, select, createReducer, on, StoreModule } from '@ngrx/store';
|
|
9
9
|
import * as i3 from 'myrtex-mf-ui-composite';
|
|
10
|
-
import { selectCompetitionIdAndVersionId, UnSubscriber, CompetitionStatusEnum, CancelCompetitionTypeEnum, CompetitionVersionStatusEnum, CompetitionVersionStatusEnumLabel, CompetitionStatusEnumLabel, CompetitionModeEnum, selectCompetitionLabel, selectCompetitionConfig, CompetitionVersionStatusGrouppingLabel, DialogColor, DialogType, EndpointBaseService, TenantSettingsModule, MyrtexUiComponentsModule, MyrtexMfUiCompositeModule } from 'myrtex-mf-ui-composite';
|
|
10
|
+
import { selectCompetitionIdAndVersionId, UnSubscriber, CompetitionStatusEnum, CancelCompetitionTypeEnum, CompetitionVersionStatusEnum, CompetitionVersionStatusEnumLabel, CompetitionStatusEnumLabel, CompetitionModeEnum, selectCompetitionLabel, selectCompetitionConfig, CompetitionVersionStatusGrouppingLabel, DialogColor, DialogType, EndpointBaseService, selectCompetitionId, MessageSeverity, Utilities, TenantSettingsModule, MyrtexUiComponentsModule, MyrtexMfUiCompositeModule } from 'myrtex-mf-ui-composite';
|
|
11
11
|
import * as i1 from 'myrtex-mf-signer';
|
|
12
12
|
import { MyrtexSignerModule } from 'myrtex-mf-signer';
|
|
13
13
|
import * as i4 from '@ng-select/ng-select';
|
|
@@ -15,6 +15,8 @@ import { NgSelectModule } from '@ng-select/ng-select';
|
|
|
15
15
|
import * as i6 from '@angular/forms';
|
|
16
16
|
import { FormsModule } from '@angular/forms';
|
|
17
17
|
import * as i1$1 from '@angular/common/http';
|
|
18
|
+
import { EMPTY } from 'rxjs';
|
|
19
|
+
import { withLatestFrom, switchMap, map, catchError, tap } from 'rxjs/operators';
|
|
18
20
|
|
|
19
21
|
var ECompetitionHeaderActions;
|
|
20
22
|
(function (ECompetitionHeaderActions) {
|
|
@@ -591,175 +593,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
591
593
|
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i0.Injector }]; } });
|
|
592
594
|
|
|
593
595
|
class CompetitionHeaderEffects {
|
|
594
|
-
// loadCompetitionHeader$ = createEffect(() => this.actions$.pipe(
|
|
595
|
-
// ofType(ECompetitionHeaderActions.LoadCompetitionHeader),
|
|
596
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
597
|
-
// switchMap(([, competitionId]) => {
|
|
598
|
-
// return this.competitionHeaderService.getHeader(competitionId).pipe(
|
|
599
|
-
// map((result: CompetitionHeaderVersionModel) => CompetitionHeaderActions.loadCompetitionHeaderSuccess({competitionHeader: result})),
|
|
600
|
-
// catchError((err) => {
|
|
601
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
602
|
-
// return EMPTY;
|
|
603
|
-
// })
|
|
604
|
-
// );
|
|
605
|
-
// })));
|
|
606
|
-
//
|
|
607
|
-
// deleteCompetitionVersion$ = createEffect(() => this.actions$.pipe(
|
|
608
|
-
// ofType(ECompetitionHeaderActions.DeleteCompetitionVersion),
|
|
609
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
610
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
611
|
-
// switchMap(([versionId, competitionId]) => {
|
|
612
|
-
// return this.competitionHeaderService.deleteVersion(competitionId, versionId).pipe(
|
|
613
|
-
// map((result: boolean) => CompetitionHeaderActions.deleteCompetitionVersionSuccess({ versionId })),
|
|
614
|
-
// catchError((err) => {
|
|
615
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
616
|
-
// return EMPTY;
|
|
617
|
-
// })
|
|
618
|
-
// );
|
|
619
|
-
// })));
|
|
620
|
-
//
|
|
621
|
-
// deleteCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(
|
|
622
|
-
// ofType(ECompetitionHeaderActions.DeleteCompetitionVersionSuccess),
|
|
623
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
624
|
-
// tap(([, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}`)
|
|
625
|
-
// ), {dispatch: false});
|
|
626
|
-
//
|
|
627
|
-
// createCompetitionVersion$ = createEffect(() => this.actions$.pipe(
|
|
628
|
-
// ofType(ECompetitionHeaderActions.CreateCompetitionVersion),
|
|
629
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
630
|
-
// switchMap(([, competitionId]) => {
|
|
631
|
-
// return this.competitionHeaderService.createVersion(competitionId).pipe(
|
|
632
|
-
// map((result: string) => CompetitionHeaderActions.createCompetitionVersionSuccess({ versionId: result })),
|
|
633
|
-
// catchError((err) => {
|
|
634
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
635
|
-
// return EMPTY;
|
|
636
|
-
// })
|
|
637
|
-
// );
|
|
638
|
-
// })));
|
|
639
|
-
//
|
|
640
|
-
// createCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(
|
|
641
|
-
// ofType(ECompetitionHeaderActions.CreateCompetitionVersionSuccess),
|
|
642
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
643
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
644
|
-
// tap(([versionId, competitionId]) =>
|
|
645
|
-
// window.location.href = `/application/competitions/item?competitionId=${competitionId}&versionId=${versionId}`)
|
|
646
|
-
// ), {dispatch: false});
|
|
647
|
-
//
|
|
648
|
-
// competitionVersionChangeStatus$ = createEffect(() => this.actions$.pipe(
|
|
649
|
-
// ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatus),
|
|
650
|
-
// map((action: { versionId: string, status: CompetitionVersionStatusEnum }) => action),
|
|
651
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
652
|
-
// switchMap(([action, competitionId]) => {
|
|
653
|
-
// return this.competitionHeaderService.versionChangeStatus(competitionId, action.versionId, action.status).pipe(
|
|
654
|
-
// map((result: boolean) => {
|
|
655
|
-
// return CompetitionHeaderActions.competitionVersionChangeStatusSuccess({
|
|
656
|
-
// versionId: action.versionId,
|
|
657
|
-
// status: action.status
|
|
658
|
-
// });
|
|
659
|
-
// }),
|
|
660
|
-
// catchError((err) => {
|
|
661
|
-
// this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
662
|
-
// return EMPTY;
|
|
663
|
-
// })
|
|
664
|
-
// );
|
|
665
|
-
// })));
|
|
666
|
-
//
|
|
667
|
-
// competitionVersionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(
|
|
668
|
-
// ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatusSuccess),
|
|
669
|
-
// map((action: { versionId: string, status: CompetitionVersionStatusEnum }) => action),
|
|
670
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
671
|
-
// tap(([action, competitionId]) => {
|
|
672
|
-
// if (action.status === CompetitionVersionStatusEnum.Validation) {
|
|
673
|
-
// window.location.href = `/m-data/minfin/selection/edit?competitionId=${competitionId}&versionId=${action.versionId}`;
|
|
674
|
-
// } else {
|
|
675
|
-
// window.location.reload();
|
|
676
|
-
// }
|
|
677
|
-
// })
|
|
678
|
-
// ), { dispatch: false });
|
|
679
|
-
//
|
|
680
|
-
// selectCompetitionVersion$ = createEffect(() => this.actions$.pipe(
|
|
681
|
-
// ofType(ECompetitionHeaderActions.SelectCompetitionVersion),
|
|
682
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
683
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
684
|
-
// tap(([versionId, competitionId]) => {
|
|
685
|
-
// const newUri = Utilities.updateQueryStringParameter(window.location.href, 'versionId', versionId);
|
|
686
|
-
// window.location.href = newUri;
|
|
687
|
-
// })
|
|
688
|
-
// ), {dispatch: false});
|
|
689
|
-
//
|
|
690
|
-
// activateCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
691
|
-
// ofType(ECompetitionHeaderActions.ActivateCompetition),
|
|
692
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
693
|
-
// switchMap(([, competitionId]) => {
|
|
694
|
-
// return this.competitionHeaderService.activate(competitionId).pipe(
|
|
695
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
696
|
-
// catchError((err, caught) => {
|
|
697
|
-
// this.alertService.showStickyMessage(err, 'Ошибка активации', MessageSeverity.error);
|
|
698
|
-
// return EMPTY;
|
|
699
|
-
// })
|
|
700
|
-
// );
|
|
701
|
-
// })
|
|
702
|
-
// )));
|
|
703
|
-
//
|
|
704
|
-
// pauseCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
705
|
-
// ofType(ECompetitionHeaderActions.PauseCompetition),
|
|
706
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
707
|
-
// switchMap(([, competitionId]) => {
|
|
708
|
-
// return this.competitionHeaderService.pause(competitionId).pipe(
|
|
709
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
710
|
-
// catchError((err, caught) => {
|
|
711
|
-
// this.alertService.showStickyMessage(err, 'Ошибка приостановки', MessageSeverity.error);
|
|
712
|
-
// return EMPTY;
|
|
713
|
-
// })
|
|
714
|
-
// );
|
|
715
|
-
// })
|
|
716
|
-
// )));
|
|
717
|
-
//
|
|
718
|
-
// completeCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
719
|
-
// ofType(ECompetitionHeaderActions.CompleteCompetition),
|
|
720
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
721
|
-
// switchMap(([, competitionId]) => {
|
|
722
|
-
// return this.competitionHeaderService.complete(competitionId).pipe(
|
|
723
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
724
|
-
// catchError((err, caught) => {
|
|
725
|
-
// this.alertService.showStickyMessage(err, 'Ошибка при завершении', MessageSeverity.error);
|
|
726
|
-
// return EMPTY;
|
|
727
|
-
// })
|
|
728
|
-
// );
|
|
729
|
-
// })
|
|
730
|
-
// )));
|
|
731
|
-
//
|
|
732
|
-
// cancelCompetition$ = createEffect(() => (this.actions$.pipe(
|
|
733
|
-
// ofType(ECompetitionHeaderActions.CancelCompetition),
|
|
734
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
735
|
-
// switchMap(([, competitionId]) => {
|
|
736
|
-
// return this.competitionHeaderService.cancel(competitionId).pipe(
|
|
737
|
-
// map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
|
|
738
|
-
// catchError((err, caught) => {
|
|
739
|
-
// this.alertService.showStickyMessage(err, 'Ошибка при отмене', MessageSeverity.error);
|
|
740
|
-
// return EMPTY;
|
|
741
|
-
// })
|
|
742
|
-
// );
|
|
743
|
-
// })
|
|
744
|
-
// )));
|
|
745
|
-
//
|
|
746
|
-
// cancelCompetitionWithValidation$ = createEffect(() => this.actions$.pipe(
|
|
747
|
-
// ofType(ECompetitionHeaderActions.CancelCompetitionWithValidation),
|
|
748
|
-
// map((action: { versionId: string }) => action.versionId),
|
|
749
|
-
// withLatestFrom(this.store.pipe(select(selectCompetitionId))),
|
|
750
|
-
// tap(([versionId, competitionId]) =>
|
|
751
|
-
// window.location.href = `/m-data/minfin/selection/edit/cancel?competitionId=${competitionId}&versionId=${versionId}`)
|
|
752
|
-
// ), {dispatch: false});
|
|
753
|
-
//
|
|
754
|
-
// competitionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(
|
|
755
|
-
// ofType(ECompetitionHeaderActions.CompetitionChangeStatusSuccess),
|
|
756
|
-
// tap(() => window.location.reload())
|
|
757
|
-
// ), {dispatch: false});
|
|
758
596
|
constructor(competitionHeaderService, actions$, store, alertService) {
|
|
759
597
|
this.competitionHeaderService = competitionHeaderService;
|
|
760
598
|
this.actions$ = actions$;
|
|
761
599
|
this.store = store;
|
|
762
600
|
this.alertService = alertService;
|
|
601
|
+
this.loadCompetitionHeader$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.LoadCompetitionHeader), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
602
|
+
return this.competitionHeaderService.getHeader(competitionId).pipe(map((result) => loadCompetitionHeaderSuccess({ competitionHeader: result })), catchError((err) => {
|
|
603
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
604
|
+
return EMPTY;
|
|
605
|
+
}));
|
|
606
|
+
})));
|
|
607
|
+
this.deleteCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.DeleteCompetitionVersion), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([versionId, competitionId]) => {
|
|
608
|
+
return this.competitionHeaderService.deleteVersion(competitionId, versionId).pipe(map((result) => deleteCompetitionVersionSuccess({ versionId })), catchError((err) => {
|
|
609
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
610
|
+
return EMPTY;
|
|
611
|
+
}));
|
|
612
|
+
})));
|
|
613
|
+
this.deleteCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.DeleteCompetitionVersionSuccess), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}`)), { dispatch: false });
|
|
614
|
+
this.createCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CreateCompetitionVersion), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
615
|
+
return this.competitionHeaderService.createVersion(competitionId).pipe(map((result) => createCompetitionVersionSuccess({ versionId: result })), catchError((err) => {
|
|
616
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
617
|
+
return EMPTY;
|
|
618
|
+
}));
|
|
619
|
+
})));
|
|
620
|
+
this.createCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CreateCompetitionVersionSuccess), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}&versionId=${versionId}`)), { dispatch: false });
|
|
621
|
+
this.competitionVersionChangeStatus$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatus), map((action) => action), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([action, competitionId]) => {
|
|
622
|
+
return this.competitionHeaderService.versionChangeStatus(competitionId, action.versionId, action.status).pipe(map((result) => {
|
|
623
|
+
return competitionVersionChangeStatusSuccess({
|
|
624
|
+
versionId: action.versionId,
|
|
625
|
+
status: action.status
|
|
626
|
+
});
|
|
627
|
+
}), catchError((err) => {
|
|
628
|
+
this.alertService.showMessage(err, null, MessageSeverity.error);
|
|
629
|
+
return EMPTY;
|
|
630
|
+
}));
|
|
631
|
+
})));
|
|
632
|
+
this.competitionVersionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatusSuccess), map((action) => action), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([action, competitionId]) => {
|
|
633
|
+
if (action.status === CompetitionVersionStatusEnum.Validation) {
|
|
634
|
+
window.location.href = `/m-data/minfin/selection/edit?competitionId=${competitionId}&versionId=${action.versionId}`;
|
|
635
|
+
}
|
|
636
|
+
else {
|
|
637
|
+
window.location.reload();
|
|
638
|
+
}
|
|
639
|
+
})), { dispatch: false });
|
|
640
|
+
this.selectCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.SelectCompetitionVersion), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => {
|
|
641
|
+
const newUri = Utilities.updateQueryStringParameter(window.location.href, 'versionId', versionId);
|
|
642
|
+
window.location.href = newUri;
|
|
643
|
+
})), { dispatch: false });
|
|
644
|
+
this.activateCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.ActivateCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
645
|
+
return this.competitionHeaderService.activate(competitionId).pipe(map((result) => competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
646
|
+
this.alertService.showStickyMessage(err, 'Ошибка активации', MessageSeverity.error);
|
|
647
|
+
return EMPTY;
|
|
648
|
+
}));
|
|
649
|
+
}))));
|
|
650
|
+
this.pauseCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.PauseCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
651
|
+
return this.competitionHeaderService.pause(competitionId).pipe(map((result) => competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
652
|
+
this.alertService.showStickyMessage(err, 'Ошибка приостановки', MessageSeverity.error);
|
|
653
|
+
return EMPTY;
|
|
654
|
+
}));
|
|
655
|
+
}))));
|
|
656
|
+
this.completeCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.CompleteCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
657
|
+
return this.competitionHeaderService.complete(competitionId).pipe(map((result) => competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
658
|
+
this.alertService.showStickyMessage(err, 'Ошибка при завершении', MessageSeverity.error);
|
|
659
|
+
return EMPTY;
|
|
660
|
+
}));
|
|
661
|
+
}))));
|
|
662
|
+
this.cancelCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.CancelCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
|
|
663
|
+
return this.competitionHeaderService.cancel(competitionId).pipe(map((result) => competitionChangeStatusSuccess()), catchError((err, caught) => {
|
|
664
|
+
this.alertService.showStickyMessage(err, 'Ошибка при отмене', MessageSeverity.error);
|
|
665
|
+
return EMPTY;
|
|
666
|
+
}));
|
|
667
|
+
}))));
|
|
668
|
+
this.cancelCompetitionWithValidation$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CancelCompetitionWithValidation), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => window.location.href = `/m-data/minfin/selection/edit/cancel?competitionId=${competitionId}&versionId=${versionId}`)), { dispatch: false });
|
|
669
|
+
this.competitionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionChangeStatusSuccess), tap(() => window.location.reload())), { dispatch: false });
|
|
763
670
|
}
|
|
764
671
|
}
|
|
765
672
|
CompetitionHeaderEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CompetitionHeaderEffects, deps: [{ token: CompetitionHeaderService }, { token: i2$1.Actions }, { token: i2.Store }, { token: i3.AlertService }], target: i0.ɵɵFactoryTarget.Injectable });
|