@mtgame/core 0.0.18 → 0.0.20
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/api/hockey-game-api.d.ts +2 -0
- package/bundles/mtgame-core.umd.js +26 -0
- package/bundles/mtgame-core.umd.js.map +1 -1
- package/bundles/mtgame-core.umd.min.js +1 -1
- package/bundles/mtgame-core.umd.min.js.map +1 -1
- package/esm2015/api/hockey-game-api.js +18 -2
- package/esm2015/models/util.js +7 -1
- package/esm5/api/hockey-game-api.js +22 -2
- package/esm5/models/util.js +7 -1
- package/fesm2015/mtgame-core.js +22 -0
- package/fesm2015/mtgame-core.js.map +1 -1
- package/fesm5/mtgame-core.js +26 -0
- package/fesm5/mtgame-core.js.map +1 -1
- package/mtgame-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter, __decorate } from "tslib";
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
5
5
|
import { Game } from '../models/game';
|
|
6
6
|
import { GameUser } from '../models/game-user';
|
|
@@ -41,6 +41,22 @@ let HockeyGameApi = class HockeyGameApi {
|
|
|
41
41
|
return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(map(result => HockeyGameLog.toFront(result))).toPromise();
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
|
+
downloadProtocol(gameId, format) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {
|
|
47
|
+
params: new HttpParams().set('file_type', format),
|
|
48
|
+
responseType: 'blob'
|
|
49
|
+
}).toPromise();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
downloadApplication(gameId, format, type) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {
|
|
55
|
+
params: new HttpParams().set('file_type', format).set('application_type', type),
|
|
56
|
+
responseType: 'blob'
|
|
57
|
+
}).toPromise();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
44
60
|
};
|
|
45
61
|
HockeyGameApi.ctorParameters = () => [
|
|
46
62
|
{ type: HttpClient },
|
|
@@ -51,4 +67,4 @@ HockeyGameApi = __decorate([
|
|
|
51
67
|
Injectable({ providedIn: 'root' })
|
|
52
68
|
], HockeyGameApi);
|
|
53
69
|
export { HockeyGameApi };
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9ja2V5LWdhbWUtYXBpLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG10Z2FtZS9jb3JlLyIsInNvdXJjZXMiOlsiYXBpL2hvY2tleS1nYW1lLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFHL0UsSUFBYSxhQUFhLEdBQTFCLE1BQWEsYUFBYTtJQUN4QixZQUNVLFVBQXNCLEVBQ3RCLGFBQTRCO1FBRDVCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFFdEMsQ0FBQztJQUVLLE9BQU8sQ0FBQyxNQUFjOztZQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGtDQUFrQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDN0csR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUNwQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVLLFFBQVEsQ0FBQyxNQUFjOztZQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLDJCQUEyQixNQUFNLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDNUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN4QyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVLLGdCQUFnQixDQUFDLE1BQWM7O1lBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsa0NBQWtDLE1BQU0sa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQzVILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN2RCxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVLLGdCQUFnQixDQUFDLE1BQWM7O1lBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsa0NBQWtDLE1BQU0sa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQzVILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUNuRCxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVLLE9BQU8sQ0FBQyxNQUFjOztZQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGtDQUFrQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDbEgsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUM3QyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVLLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxNQUFvQjs7WUFDekQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsTUFBTSxpQkFBaUIsRUFBRTtnQkFDdkgsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7Z0JBQ2pELFlBQVksRUFBRSxNQUFNO2FBQ3JCLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFSyxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsTUFBb0IsRUFBRSxJQUFtQzs7WUFDakcsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsTUFBTSx5QkFBeUIsRUFBRTtnQkFDL0gsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDO2dCQUMvRSxZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7WUFoRHVCLFVBQVU7WUFDUCxhQUFhOzs7QUFIM0IsYUFBYTtJQUR6QixVQUFVLENBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLENBQUM7R0FDcEIsYUFBYSxDQWtEekI7U0FsRFksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHYW1lIH0gZnJvbSAnLi4vbW9kZWxzL2dhbWUnO1xuaW1wb3J0IHsgR2FtZVVzZXIgfSBmcm9tICcuLi9tb2RlbHMvZ2FtZS11c2VyJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBIb2NrZXlHYW1lTG9nIH0gZnJvbSAnLi4vbW9kZWxzL2hvY2tleS1nYW1lLWxvZyc7XG5pbXBvcnQgeyBIb2NrZXlHYW1lU3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL2hvY2tleS1nYW1lLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBIb2NrZXlHYW1lVGVhbVN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy9ob2NrZXktZ2FtZS10ZWFtLXN0YXRpc3RpYyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEhvY2tleUdhbWVBcGkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZChnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8R2FtZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF9ob2NrZXlfZ2FtZS8ke2dhbWVJZH0vYCkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gR2FtZS50b0Zyb250KHJlc3VsdCkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJzKGdhbWVJZDogbnVtYmVyKTogUHJvbWlzZTxHYW1lVXNlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2dhbWUvJHtnYW1lSWR9L3VzZXJzL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEdhbWVVc2VyLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGVhbVN0YXRpc3RpYyhnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8SG9ja2V5R2FtZVRlYW1TdGF0aXN0aWM+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfaG9ja2V5X2dhbWUvJHtnYW1lSWR9L3RlYW1fc3RhdGlzdGljL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEhvY2tleUdhbWVUZWFtU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXNlclN0YXRpc3RpYyhnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8SG9ja2V5R2FtZVN0YXRpc3RpY1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2hvY2tleV9nYW1lLyR7Z2FtZUlkfS91c2VyX3N0YXRpc3RpYy9gKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBIb2NrZXlHYW1lU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TG9ncyhnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8SG9ja2V5R2FtZUxvZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2hvY2tleV9nYW1lLyR7Z2FtZUlkfS9sb2dzL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEhvY2tleUdhbWVMb2cudG9Gcm9udChyZXN1bHQpKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBkb3dubG9hZFByb3RvY29sKGdhbWVJZDogbnVtYmVyLCBmb3JtYXQ6ICdwZGYnfCd4bHN4Jyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2hvY2tleV9nYW1lLyR7Z2FtZUlkfS9nYW1lX3Byb3RvY29sL2AsIHtcbiAgICAgIHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2ZpbGVfdHlwZScsIGZvcm1hdCksXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgIH0pLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRBcHBsaWNhdGlvbihnYW1lSWQ6IG51bWJlciwgZm9ybWF0OiAncGRmJ3wneGxzeCcsIHR5cGU6ICdnYW1lX3VzZXInfCd0b3VybmFtZW50X3VzZXInKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfaG9ja2V5X2dhbWUvJHtnYW1lSWR9L2dhbWVfYXBwbGljYXRpb25fZmlsZS9gLCB7XG4gICAgICBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdmaWxlX3R5cGUnLCBmb3JtYXQpLnNldCgnYXBwbGljYXRpb25fdHlwZScsIHR5cGUpLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYidcbiAgICB9KS50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
|
package/esm2015/models/util.js
CHANGED
|
@@ -41,12 +41,18 @@ export function enumField(enumClass) {
|
|
|
41
41
|
export function penaltyTypeField() {
|
|
42
42
|
return {
|
|
43
43
|
toFront: (data) => {
|
|
44
|
+
if (!data) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
44
47
|
if (typeof data === 'object') {
|
|
45
48
|
return data;
|
|
46
49
|
}
|
|
47
50
|
return HockeyPenaltyTypes.find(item => item.id === data);
|
|
48
51
|
},
|
|
49
52
|
toBack: (data) => {
|
|
53
|
+
if (!data) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
50
56
|
if (typeof data === 'object') {
|
|
51
57
|
return data.id;
|
|
52
58
|
}
|
|
@@ -222,4 +228,4 @@ function toBack(modelType, instance, path) {
|
|
|
222
228
|
}
|
|
223
229
|
return data;
|
|
224
230
|
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBYTdDLE1BQU0sT0FBZ0IsU0FBUztJQUM3QixZQUFZLElBQTJCO1FBQ3JDLElBQUksSUFBSSxFQUFFO1lBQ1IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFRO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBTUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFTO0lBQ2pDLE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhvY2tleVBlbmFsdHlUeXBlcyB9IGZyb20gJy4uL2xvY2FsaXphdGlvbi9ob2NrZXktcGVuYWx0eS10eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVkgPSAnX21hcHBpbmdfZmllbGRzXyc7XG5leHBvcnQgY29uc3QgTU9ERUxfUkVMQVRJT05fS0VZID0gJ19yZWxhdGlvbl8nO1xuZXhwb3J0IGNvbnN0IE1PREVMX1RPX0ZST05UX0tFWSA9ICdfdG9fZnJvbnRfJztcbmV4cG9ydCBjb25zdCBNT0RFTF9UT19CQUNLX0tFWSA9ICdfdG9fYmFja18nO1xuXG50eXBlIFBhcnNlckludGVyZmFjZSA9IChkdG86IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSkgPT4gYW55O1xuXG5pbnRlcmZhY2UgTW9kZWxUeXBlSW50ZXJmYWNlIHtcbiAgbmV3KGRhdGE/OiBhbnkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsSW50ZXJmYWNlIHtcbiAgdG9Gcm9udChkdG86IGFueSk6IGFueTtcbiAgdG9CYWNrKGR0bzogYW55KTogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1vZGVsIHtcbiAgY29uc3RydWN0b3IoZGF0YT86IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGEpKSB7XG4gICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgdG9Gcm9udChkdG86IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyB0b0JhY2soZHRvOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEdyYXBoUGF0aEludGVyZmFjZSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1GaWVsZChlbnVtQ2xhc3MpIHtcbiAgcmV0dXJuIHtcbiAgICB0b0Zyb250OiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlbmFsdHlUeXBlRmllbGQoKSB7XG4gIHJldHVybiB7XG4gICAgdG9Gcm9udDogKGRhdGEpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgICByZXR1cm4gSG9ja2V5UGVuYWx0eVR5cGVzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBkYXRhKTtcbiAgICB9LFxuICAgIHRvQmFjazogKGRhdGEpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuaWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaXN0RmllbGQobW9kZWxDbGFzcykge1xuICByZXR1cm4ge1xuICAgIHRvRnJvbnQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICByZXR1cm4gbW9kZWxDbGFzcy50b0Zyb250KHZhbHVlKTtcbiAgICB9LFxuICAgIHRvQmFjazogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbENsYXNzLnRvQmFjayh2YWx1ZSk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgc3RhdGljIHRvRnJvbnQoZGF0ZTogYW55KTogYW55IHtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICBzdGF0aWMgdG9CYWNrKGRhdGU6IERhdGUpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBkYXRlVXRjID0gbmV3IERhdGUoRGF0ZS5VVEMoXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCkpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGVVdGMudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUZpZWxkIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgc3RhdGljIHRvRnJvbnQoZGF0ZTogYW55KTogYW55IHtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICBzdGF0aWMgdG9CYWNrKGRhdGU6IERhdGUpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBkYXRlVXRjID0gbmV3IERhdGUoRGF0ZS5VVEMoXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCkpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1vZGVsSW5zdGFuY2UoXG4gIGNvbmZpZzoge1xuICAgIG1hcHBpbmdGaWVsZHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIHJlbGF0aW9uPzogeyBba2V5OiBzdHJpbmddOiBCYXNlTW9kZWwgfVxuICB9XG4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSkgPT4ge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGlmIChjb25maWcubWFwcGluZ0ZpZWxkcykge1xuICAgICAgICB0YXJnZXRbTU9ERUxfTUFQUElOR19GSUVMRFNfS0VZXSA9IGNvbmZpZy5tYXBwaW5nRmllbGRzO1xuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy5yZWxhdGlvbikge1xuICAgICAgICB0YXJnZXRbTU9ERUxfUkVMQVRJT05fS0VZXSA9IGNvbmZpZy5yZWxhdGlvbjtcbiAgICAgIH1cbiAgICAgIHRhcmdldFtNT0RFTF9UT19GUk9OVF9LRVldID0gKGR0bzogYW55LCBwYXRoOiBHcmFwaFBhdGhJbnRlcmZhY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHRvRnJvbnQodGFyZ2V0LCBkdG8sIHBhdGgpO1xuICAgICAgfTtcbiAgICAgIHRhcmdldFtNT0RFTF9UT19CQUNLX0tFWV0gPSAoZHRvOiBhbnksIHBhdGg6IEdyYXBoUGF0aEludGVyZmFjZSkgPT4ge1xuICAgICAgICByZXR1cm4gdG9CYWNrKHRhcmdldCwgZHRvLCBwYXRoKTtcbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgVG9Gcm9udEhvb2sgPSAodGFyZ2V0OiBNb2RlbFR5cGVJbnRlcmZhY2UsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxGdW5jdGlvbj4pID0+IHtcbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZU1ldGhvZCA9IHRhcmdldFtNT0RFTF9UT19GUk9OVF9LRVldIGFzIFBhcnNlckludGVyZmFjZTtcbiAgICAgIGlmIChwYXJzZU1ldGhvZCkge1xuICAgICAgICByZXR1cm4gcGFyc2VNZXRob2QoYXJnc1swXSwgKGFyZ3MubGVuZ3RoID4gMSA/IGFyZ3NbMV0gOiB1bmRlZmluZWQpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IFRvQmFja0hvb2sgPSAodGFyZ2V0OiBNb2RlbFR5cGVJbnRlcmZhY2UsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxGdW5jdGlvbj4pID0+IHtcbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZU1ldGhvZCA9IHRhcmdldFtNT0RFTF9UT19CQUNLX0tFWV0gYXMgUGFyc2VySW50ZXJmYWNlO1xuICAgICAgaWYgKHBhcnNlTWV0aG9kKSB7XG4gICAgICAgIHJldHVybiBwYXJzZU1ldGhvZChhcmdzWzBdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZXh0cmFjdFZhbHVlKGtleSwgZGF0YSkge1xuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qga2V5UGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgaWYgKGtleVBhcnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIGlmIChrZXkgaW4gZGF0YSkge1xuICAgICAgcmV0dXJuIGRhdGFba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGsgb2Yga2V5UGFydHMpIHtcbiAgICBpZiAoZGF0YSAmJiBrIGluIGRhdGEpIHtcbiAgICAgIGRhdGEgPSBkYXRhW2tdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiB0b0Zyb250KG1vZGVsVHlwZTogTW9kZWxUeXBlSW50ZXJmYWNlLCBkYXRhOiBhbnksIHBhdGg/OiBHcmFwaFBhdGhJbnRlcmZhY2UpOiBhbnkge1xuICAvLyBDaGVjayBpZiByZWN1cnNpb24gaXMgcmVxdWlyZWRcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICByZXR1cm4gZGF0YS5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gdG9Gcm9udChtb2RlbFR5cGUsIGl0ZW0pO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgbW9kZWxUeXBlKCk7XG5cbiAgLy8gTWFwcGluZyBmaWVsZHNcbiAgY29uc3QgbWFwcGluZ0ZpZWxkcyA9IG1vZGVsVHlwZVtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldIGFzIHN0cmluZ1tdO1xuICBjb25zdCByZWxhdGlvbiA9IG1vZGVsVHlwZVtNT0RFTF9SRUxBVElPTl9LRVldIGFzIHsgW2tleTogc3RyaW5nXTogTW9kZWxJbnRlcmZhY2UgfTtcbiAgaWYgKG1hcHBpbmdGaWVsZHMpIHtcbiAgICBmb3IgKGNvbnN0IGJhY2tGaWVsZCBvZiBPYmplY3Qua2V5cyhtYXBwaW5nRmllbGRzKSkge1xuICAgICAgY29uc3QgZnJvbnRGaWVsZCA9IG1hcHBpbmdGaWVsZHNbYmFja0ZpZWxkXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gZXh0cmFjdFZhbHVlKGJhY2tGaWVsZCwgZGF0YSk7XG4gICAgICBpZiAocmVsYXRpb24gJiYgcmVsYXRpb24uaGFzT3duUHJvcGVydHkoZnJvbnRGaWVsZCkpIHtcbiAgICAgICAgaW5zdGFuY2VbZnJvbnRGaWVsZF0gPSByZWxhdGlvbltmcm9udEZpZWxkXS50b0Zyb250KHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluc3RhbmNlW2Zyb250RmllbGRdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG5mdW5jdGlvbiB0b0JhY2sobW9kZWxUeXBlOiBNb2RlbFR5cGVJbnRlcmZhY2UsIGluc3RhbmNlOiBhbnksIHBhdGg/OiBHcmFwaFBhdGhJbnRlcmZhY2UpOiBhbnkge1xuICBpZiAoIWluc3RhbmNlKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgcmVjdXJzaW9uIGlzIHJlcXVpcmVkXG4gIGlmIChBcnJheS5pc0FycmF5KGluc3RhbmNlKSkge1xuICAgIHJldHVybiBpbnN0YW5jZS5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gdG9CYWNrKG1vZGVsVHlwZSwgaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBkYXRhID0ge307XG4gIGNvbnN0IG1hcHBpbmdGaWVsZHMgPSBtb2RlbFR5cGVbTU9ERUxfTUFQUElOR19GSUVMRFNfS0VZXSBhcyBzdHJpbmdbXTtcbiAgY29uc3QgcmVsYXRpb24gPSBtb2RlbFR5cGVbTU9ERUxfUkVMQVRJT05fS0VZXSBhcyB7IFtrZXk6IHN0cmluZ106IE1vZGVsSW50ZXJmYWNlIH07XG4gIGlmIChtYXBwaW5nRmllbGRzKSB7XG4gICAgZm9yIChjb25zdCBiYWNrRmllbGQgb2YgT2JqZWN0LmtleXMobWFwcGluZ0ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IGZyb250RmllbGQgPSBtYXBwaW5nRmllbGRzW2JhY2tGaWVsZF07XG4gICAgICBpZiAocmVsYXRpb24gJiYgcmVsYXRpb24uaGFzT3duUHJvcGVydHkoZnJvbnRGaWVsZCkgJiYgaW5zdGFuY2VbZnJvbnRGaWVsZF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhW2JhY2tGaWVsZF0gPSByZWxhdGlvbltmcm9udEZpZWxkXS50b0JhY2soaW5zdGFuY2VbZnJvbnRGaWVsZF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YVtiYWNrRmllbGRdID0gaW5zdGFuY2VbZnJvbnRGaWVsZF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iXX0=
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBYTdDLE1BQU0sT0FBZ0IsU0FBUztJQUM3QixZQUFZLElBQTJCO1FBQ3JDLElBQUksSUFBSSxFQUFFO1lBQ1IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFRO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBTUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFTO0lBQ2pDLE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lB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QkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhvY2tleVBlbmFsdHlUeXBlcyB9IGZyb20gJy4uL2xvY2FsaXphdGlvbi9ob2NrZXktcGVuYWx0eS10eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVkgPSAnX21hcHBpbmdfZmllbGRzXyc7XG5leHBvcnQgY29uc3QgTU9ERUxfUkVMQVRJT05fS0VZID0gJ19yZWxhdGlvbl8nO1xuZXhwb3J0IGNvbnN0IE1PREVMX1RPX0ZST05UX0tFWSA9ICdfdG9fZnJvbnRfJztcbmV4cG9ydCBjb25zdCBNT0RFTF9UT19CQUNLX0tFWSA9ICdfdG9fYmFja18nO1xuXG50eXBlIFBhcnNlckludGVyZmFjZSA9IChkdG86IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSkgPT4gYW55O1xuXG5pbnRlcmZhY2UgTW9kZWxUeXBlSW50ZXJmYWNlIHtcbiAgbmV3KGRhdGE/OiBhbnkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsSW50ZXJmYWNlIHtcbiAgdG9Gcm9udChkdG86IGFueSk6IGFueTtcbiAgdG9CYWNrKGR0bzogYW55KTogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1vZGVsIHtcbiAgY29uc3RydWN0b3IoZGF0YT86IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGEpKSB7XG4gICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgdG9Gcm9udChkdG86IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyB0b0JhY2soZHRvOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEdyYXBoUGF0aEludGVyZmFjZSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1GaWVsZChlbnVtQ2xhc3MpIHtcbiAgcmV0dXJuIHtcbiAgICB0b0Zyb250OiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlbmFsdHlUeXBlRmllbGQoKSB7XG4gIHJldHVybiB7XG4gICAgdG9Gcm9udDogKGRhdGEpID0+IHtcbiAgICAgIGlmICghZGF0YSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgICByZXR1cm4gSG9ja2V5UGVuYWx0eVR5cGVzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBkYXRhKTtcbiAgICB9LFxuICAgIHRvQmFjazogKGRhdGEpID0+IHtcbiAgICAgIGlmICghZGF0YSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuaWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaXN0RmllbGQobW9kZWxDbGFzcykge1xuICByZXR1cm4ge1xuICAgIHRvRnJvbnQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICByZXR1cm4gbW9kZWxDbGFzcy50b0Zyb250KHZhbHVlKTtcbiAgICB9LFxuICAgIHRvQmFjazogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbENsYXNzLnRvQmFjayh2YWx1ZSk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgc3RhdGljIHRvRnJvbnQoZGF0ZTogYW55KTogYW55IHtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICBzdGF0aWMgdG9CYWNrKGRhdGU6IERhdGUpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBkYXRlVXRjID0gbmV3IERhdGUoRGF0ZS5VVEMoXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCkpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGVVdGMudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUZpZWxkIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgc3RhdGljIHRvRnJvbnQoZGF0ZTogYW55KTogYW55IHtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICBzdGF0aWMgdG9CYWNrKGRhdGU6IERhdGUpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBkYXRlVXRjID0gbmV3IERhdGUoRGF0ZS5VVEMoXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCkpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1vZGVsSW5zdGFuY2UoXG4gIGNvbmZpZzoge1xuICAgIG1hcHBpbmdGaWVsZHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIHJlbGF0aW9uPzogeyBba2V5OiBzdHJpbmddOiBCYXNlTW9kZWwgfVxuICB9XG4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSkgPT4ge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGlmIChjb25maWcubWFwcGluZ0ZpZWxkcykge1xuICAgICAgICB0YXJnZXRbTU9ERUxfTUFQUElOR19GSUVMRFNfS0VZXSA9IGNvbmZpZy5tYXBwaW5nRmllbGRzO1xuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy5yZWxhdGlvbikge1xuICAgICAgICB0YXJnZXRbTU9ERUxfUkVMQVRJT05fS0VZXSA9IGNvbmZpZy5yZWxhdGlvbjtcbiAgICAgIH1cbiAgICAgIHRhcmdldFtNT0RFTF9UT19GUk9OVF9LRVldID0gKGR0bzogYW55LCBwYXRoOiBHcmFwaFBhdGhJbnRlcmZhY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHRvRnJvbnQodGFyZ2V0LCBkdG8sIHBhdGgpO1xuICAgICAgfTtcbiAgICAgIHRhcmdldFtNT0RFTF9UT19CQUNLX0tFWV0gPSAoZHRvOiBhbnksIHBhdGg6IEdyYXBoUGF0aEludGVyZmFjZSkgPT4ge1xuICAgICAgICByZXR1cm4gdG9CYWNrKHRhcmdldCwgZHRvLCBwYXRoKTtcbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgVG9Gcm9udEhvb2sgPSAodGFyZ2V0OiBNb2RlbFR5cGVJbnRlcmZhY2UsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxGdW5jdGlvbj4pID0+IHtcbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZU1ldGhvZCA9IHRhcmdldFtNT0RFTF9UT19GUk9OVF9LRVldIGFzIFBhcnNlckludGVyZmFjZTtcbiAgICAgIGlmIChwYXJzZU1ldGhvZCkge1xuICAgICAgICByZXR1cm4gcGFyc2VNZXRob2QoYXJnc1swXSwgKGFyZ3MubGVuZ3RoID4gMSA/IGFyZ3NbMV0gOiB1bmRlZmluZWQpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IFRvQmFja0hvb2sgPSAodGFyZ2V0OiBNb2RlbFR5cGVJbnRlcmZhY2UsIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxGdW5jdGlvbj4pID0+IHtcbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZU1ldGhvZCA9IHRhcmdldFtNT0RFTF9UT19CQUNLX0tFWV0gYXMgUGFyc2VySW50ZXJmYWNlO1xuICAgICAgaWYgKHBhcnNlTWV0aG9kKSB7XG4gICAgICAgIHJldHVybiBwYXJzZU1ldGhvZChhcmdzWzBdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZXh0cmFjdFZhbHVlKGtleSwgZGF0YSkge1xuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qga2V5UGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgaWYgKGtleVBhcnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIGlmIChrZXkgaW4gZGF0YSkge1xuICAgICAgcmV0dXJuIGRhdGFba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGsgb2Yga2V5UGFydHMpIHtcbiAgICBpZiAoZGF0YSAmJiBrIGluIGRhdGEpIHtcbiAgICAgIGRhdGEgPSBkYXRhW2tdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiB0b0Zyb250KG1vZGVsVHlwZTogTW9kZWxUeXBlSW50ZXJmYWNlLCBkYXRhOiBhbnksIHBhdGg/OiBHcmFwaFBhdGhJbnRlcmZhY2UpOiBhbnkge1xuICAvLyBDaGVjayBpZiByZWN1cnNpb24gaXMgcmVxdWlyZWRcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICByZXR1cm4gZGF0YS5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gdG9Gcm9udChtb2RlbFR5cGUsIGl0ZW0pO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgbW9kZWxUeXBlKCk7XG5cbiAgLy8gTWFwcGluZyBmaWVsZHNcbiAgY29uc3QgbWFwcGluZ0ZpZWxkcyA9IG1vZGVsVHlwZVtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldIGFzIHN0cmluZ1tdO1xuICBjb25zdCByZWxhdGlvbiA9IG1vZGVsVHlwZVtNT0RFTF9SRUxBVElPTl9LRVldIGFzIHsgW2tleTogc3RyaW5nXTogTW9kZWxJbnRlcmZhY2UgfTtcbiAgaWYgKG1hcHBpbmdGaWVsZHMpIHtcbiAgICBmb3IgKGNvbnN0IGJhY2tGaWVsZCBvZiBPYmplY3Qua2V5cyhtYXBwaW5nRmllbGRzKSkge1xuICAgICAgY29uc3QgZnJvbnRGaWVsZCA9IG1hcHBpbmdGaWVsZHNbYmFja0ZpZWxkXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gZXh0cmFjdFZhbHVlKGJhY2tGaWVsZCwgZGF0YSk7XG4gICAgICBpZiAocmVsYXRpb24gJiYgcmVsYXRpb24uaGFzT3duUHJvcGVydHkoZnJvbnRGaWVsZCkpIHtcbiAgICAgICAgaW5zdGFuY2VbZnJvbnRGaWVsZF0gPSByZWxhdGlvbltmcm9udEZpZWxkXS50b0Zyb250KHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluc3RhbmNlW2Zyb250RmllbGRdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG5mdW5jdGlvbiB0b0JhY2sobW9kZWxUeXBlOiBNb2RlbFR5cGVJbnRlcmZhY2UsIGluc3RhbmNlOiBhbnksIHBhdGg/OiBHcmFwaFBhdGhJbnRlcmZhY2UpOiBhbnkge1xuICBpZiAoIWluc3RhbmNlKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgcmVjdXJzaW9uIGlzIHJlcXVpcmVkXG4gIGlmIChBcnJheS5pc0FycmF5KGluc3RhbmNlKSkge1xuICAgIHJldHVybiBpbnN0YW5jZS5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gdG9CYWNrKG1vZGVsVHlwZSwgaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBkYXRhID0ge307XG4gIGNvbnN0IG1hcHBpbmdGaWVsZHMgPSBtb2RlbFR5cGVbTU9ERUxfTUFQUElOR19GSUVMRFNfS0VZXSBhcyBzdHJpbmdbXTtcbiAgY29uc3QgcmVsYXRpb24gPSBtb2RlbFR5cGVbTU9ERUxfUkVMQVRJT05fS0VZXSBhcyB7IFtrZXk6IHN0cmluZ106IE1vZGVsSW50ZXJmYWNlIH07XG4gIGlmIChtYXBwaW5nRmllbGRzKSB7XG4gICAgZm9yIChjb25zdCBiYWNrRmllbGQgb2YgT2JqZWN0LmtleXMobWFwcGluZ0ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IGZyb250RmllbGQgPSBtYXBwaW5nRmllbGRzW2JhY2tGaWVsZF07XG4gICAgICBpZiAocmVsYXRpb24gJiYgcmVsYXRpb24uaGFzT3duUHJvcGVydHkoZnJvbnRGaWVsZCkgJiYgaW5zdGFuY2VbZnJvbnRGaWVsZF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhW2JhY2tGaWVsZF0gPSByZWxhdGlvbltmcm9udEZpZWxkXS50b0JhY2soaW5zdGFuY2VbZnJvbnRGaWVsZF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YVtiYWNrRmllbGRdID0gaW5zdGFuY2VbZnJvbnRGaWVsZF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter, __decorate, __generator } from "tslib";
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
5
5
|
import { Game } from '../models/game';
|
|
6
6
|
import { GameUser } from '../models/game-user';
|
|
@@ -51,6 +51,26 @@ var HockeyGameApi = /** @class */ (function () {
|
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
53
|
};
|
|
54
|
+
HockeyGameApi.prototype.downloadProtocol = function (gameId, format) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
+
return __generator(this, function (_a) {
|
|
57
|
+
return [2 /*return*/, this.httpClient.get(this.configService.get('apiUrl') + "/api/v1/tournament_hockey_game/" + gameId + "/game_protocol/", {
|
|
58
|
+
params: new HttpParams().set('file_type', format),
|
|
59
|
+
responseType: 'blob'
|
|
60
|
+
}).toPromise()];
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
HockeyGameApi.prototype.downloadApplication = function (gameId, format, type) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
+
return __generator(this, function (_a) {
|
|
67
|
+
return [2 /*return*/, this.httpClient.get(this.configService.get('apiUrl') + "/api/v1/tournament_hockey_game/" + gameId + "/game_application_file/", {
|
|
68
|
+
params: new HttpParams().set('file_type', format).set('application_type', type),
|
|
69
|
+
responseType: 'blob'
|
|
70
|
+
}).toPromise()];
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
};
|
|
54
74
|
HockeyGameApi.ctorParameters = function () { return [
|
|
55
75
|
{ type: HttpClient },
|
|
56
76
|
{ type: ConfigService }
|
|
@@ -62,4 +82,4 @@ var HockeyGameApi = /** @class */ (function () {
|
|
|
62
82
|
return HockeyGameApi;
|
|
63
83
|
}());
|
|
64
84
|
export { HockeyGameApi };
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9ja2V5LWdhbWUtYXBpLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG10Z2FtZS9jb3JlLyIsInNvdXJjZXMiOlsiYXBpL2hvY2tleS1nYW1lLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFHL0U7SUFDRSx1QkFDVSxVQUFzQixFQUN0QixhQUE0QjtRQUQ1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBRXRDLENBQUM7SUFFSywrQkFBTyxHQUFiLFVBQWMsTUFBYzs7O2dCQUMxQixzQkFBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsdUNBQWtDLE1BQU0sTUFBRyxDQUFDLENBQUMsSUFBSSxDQUM3RyxHQUFHLENBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFwQixDQUFvQixDQUFDLENBQ3BDLENBQUMsU0FBUyxFQUFFLEVBQUM7OztLQUNmO0lBRUss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ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHYW1lIH0gZnJvbSAnLi4vbW9kZWxzL2dhbWUnO1xuaW1wb3J0IHsgR2FtZVVzZXIgfSBmcm9tICcuLi9tb2RlbHMvZ2FtZS11c2VyJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBIb2NrZXlHYW1lTG9nIH0gZnJvbSAnLi4vbW9kZWxzL2hvY2tleS1nYW1lLWxvZyc7XG5pbXBvcnQgeyBIb2NrZXlHYW1lU3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL2hvY2tleS1nYW1lLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBIb2NrZXlHYW1lVGVhbVN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy9ob2NrZXktZ2FtZS10ZWFtLXN0YXRpc3RpYyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEhvY2tleUdhbWVBcGkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZChnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8R2FtZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF9ob2NrZXlfZ2FtZS8ke2dhbWVJZH0vYCkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gR2FtZS50b0Zyb250KHJlc3VsdCkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJzKGdhbWVJZDogbnVtYmVyKTogUHJvbWlzZTxHYW1lVXNlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2dhbWUvJHtnYW1lSWR9L3VzZXJzL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEdhbWVVc2VyLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGVhbVN0YXRpc3RpYyhnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8SG9ja2V5R2FtZVRlYW1TdGF0aXN0aWM+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfaG9ja2V5X2dhbWUvJHtnYW1lSWR9L3RlYW1fc3RhdGlzdGljL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEhvY2tleUdhbWVUZWFtU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXNlclN0YXRpc3RpYyhnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8SG9ja2V5R2FtZVN0YXRpc3RpY1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2hvY2tleV9nYW1lLyR7Z2FtZUlkfS91c2VyX3N0YXRpc3RpYy9gKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBIb2NrZXlHYW1lU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TG9ncyhnYW1lSWQ6IG51bWJlcik6IFByb21pc2U8SG9ja2V5R2FtZUxvZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2hvY2tleV9nYW1lLyR7Z2FtZUlkfS9sb2dzL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEhvY2tleUdhbWVMb2cudG9Gcm9udChyZXN1bHQpKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBkb3dubG9hZFByb3RvY29sKGdhbWVJZDogbnVtYmVyLCBmb3JtYXQ6ICdwZGYnfCd4bHN4Jyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X2hvY2tleV9nYW1lLyR7Z2FtZUlkfS9nYW1lX3Byb3RvY29sL2AsIHtcbiAgICAgIHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2ZpbGVfdHlwZScsIGZvcm1hdCksXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgIH0pLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRBcHBsaWNhdGlvbihnYW1lSWQ6IG51bWJlciwgZm9ybWF0OiAncGRmJ3wneGxzeCcsIHR5cGU6ICdnYW1lX3VzZXInfCd0b3VybmFtZW50X3VzZXInKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfaG9ja2V5X2dhbWUvJHtnYW1lSWR9L2dhbWVfYXBwbGljYXRpb25fZmlsZS9gLCB7XG4gICAgICBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdmaWxlX3R5cGUnLCBmb3JtYXQpLnNldCgnYXBwbGljYXRpb25fdHlwZScsIHR5cGUpLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYidcbiAgICB9KS50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
|
package/esm5/models/util.js
CHANGED
|
@@ -55,12 +55,18 @@ export function enumField(enumClass) {
|
|
|
55
55
|
export function penaltyTypeField() {
|
|
56
56
|
return {
|
|
57
57
|
toFront: function (data) {
|
|
58
|
+
if (!data) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
58
61
|
if (typeof data === 'object') {
|
|
59
62
|
return data;
|
|
60
63
|
}
|
|
61
64
|
return HockeyPenaltyTypes.find(function (item) { return item.id === data; });
|
|
62
65
|
},
|
|
63
66
|
toBack: function (data) {
|
|
67
|
+
if (!data) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
64
70
|
if (typeof data === 'object') {
|
|
65
71
|
return data.id;
|
|
66
72
|
}
|
|
@@ -289,4 +295,4 @@ function toBack(modelType, instance, path) {
|
|
|
289
295
|
}
|
|
290
296
|
return data;
|
|
291
297
|
}
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyxrQkFBa0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7QUFDL0MsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztBQWE3QztJQUNFLG1CQUFZLElBQTJCOztRQUNyQyxJQUFJLElBQUksRUFBRTs7Z0JBQ1IsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBaEMsSUFBTSxHQUFHLFdBQUE7b0JBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDdkI7Ozs7Ozs7OztTQUNGO0lBQ0gsQ0FBQztJQUVNLGlCQUFPLEdBQWQsVUFBZSxHQUFRO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxnQkFBTSxHQUFiLFVBQWMsR0FBUTtRQUNwQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBaEJELElBZ0JDOztBQU1ELE1BQU0sVUFBVSxTQUFTLENBQUMsU0FBUztJQUNqQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLFVBQUMsS0FBSztZQUNiLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxD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QkFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7aUJBQ3JFO3FCQUFNO29CQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3hDO2FBQ0Y7Ozs7Ozs7OztLQUNGO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9ja2V5UGVuYWx0eVR5cGVzIH0gZnJvbSAnLi4vbG9jYWxpemF0aW9uL2hvY2tleS1wZW5hbHR5LXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IE1PREVMX01BUFBJTkdfRklFTERTX0tFWSA9ICdfbWFwcGluZ19maWVsZHNfJztcbmV4cG9ydCBjb25zdCBNT0RFTF9SRUxBVElPTl9LRVkgPSAnX3JlbGF0aW9uXyc7XG5leHBvcnQgY29uc3QgTU9ERUxfVE9fRlJPTlRfS0VZID0gJ190b19mcm9udF8nO1xuZXhwb3J0IGNvbnN0IE1PREVMX1RPX0JBQ0tfS0VZID0gJ190b19iYWNrXyc7XG5cbnR5cGUgUGFyc2VySW50ZXJmYWNlID0gKGR0bzogYW55LCBwYXRoPzogR3JhcGhQYXRoSW50ZXJmYWNlKSA9PiBhbnk7XG5cbmludGVyZmFjZSBNb2RlbFR5cGVJbnRlcmZhY2Uge1xuICBuZXcoZGF0YT86IGFueSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxJbnRlcmZhY2Uge1xuICB0b0Zyb250KGR0bzogYW55KTogYW55O1xuICB0b0JhY2soZHRvOiBhbnkpOiBhbnk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTW9kZWwge1xuICBjb25zdHJ1Y3RvcihkYXRhPzoge1trZXk6IHN0cmluZ106IGFueX0pIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZGF0YSkpIHtcbiAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyB0b0Zyb250KGR0bzogYW55KTogYW55IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIHRvQmFjayhkdG86IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5pbnRlcmZhY2UgR3JhcGhQYXRoSW50ZXJmYWNlIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW51bUZpZWxkKGVudW1DbGFzcykge1xuICByZXR1cm4ge1xuICAgIHRvRnJvbnQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKGlzTmFOKCt2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGVudW1DbGFzc1t2YWx1ZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfSxcbiAgICB0b0JhY2s6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKGlzTmFOKCt2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVudW1DbGFzc1t2YWx1ZV07XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVuYWx0eVR5cGVGaWVsZCgpIHtcbiAgcmV0dXJuIHtcbiAgICB0b0Zyb250OiAoZGF0YSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBIb2NrZXlQZW5hbHR5VHlwZXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGRhdGEpO1xuICAgIH0sXG4gICAgdG9CYWNrOiAoZGF0YSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gZGF0YS5pZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpc3RGaWVsZChtb2RlbENsYXNzKSB7XG4gIHJldHVybiB7XG4gICAgdG9Gcm9udDogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbENsYXNzLnRvRnJvbnQodmFsdWUpO1xuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1vZGVsQ2xhc3MudG9CYWNrKHZhbHVlKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZVV0Yy50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kZWxJbnN0YW5jZShcbiAgY29uZmlnOiB7XG4gICAgbWFwcGluZ0ZpZWxkcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgcmVsYXRpb24/OiB7IFtrZXk6IHN0cmluZ106IEJhc2VNb2RlbCB9XG4gIH1cbikge1xuICByZXR1cm4gKHRhcmdldDogTW9kZWxUeXBlSW50ZXJmYWNlKSA9PiB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKGNvbmZpZy5tYXBwaW5nRmllbGRzKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldID0gY29uZmlnLm1hcHBpbmdGaWVsZHM7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnJlbGF0aW9uKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9SRUxBVElPTl9LRVldID0gY29uZmlnLnJlbGF0aW9uO1xuICAgICAgfVxuICAgICAgdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gPSAoZHRvOiBhbnksIHBhdGg6IEdyYXBoUGF0aEludGVyZmFjZSkgPT4ge1xuICAgICAgICByZXR1cm4gdG9Gcm9udCh0YXJnZXQsIGR0bywgcGF0aCk7XG4gICAgICB9O1xuICAgICAgdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSA9IChkdG86IGFueSwgcGF0aDogR3JhcGhQYXRoSW50ZXJmYWNlKSA9PiB7XG4gICAgICAgIHJldHVybiB0b0JhY2sodGFyZ2V0LCBkdG8sIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBUb0Zyb250SG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gYXMgUGFyc2VySW50ZXJmYWNlO1xuICAgICAgaWYgKHBhcnNlTWV0aG9kKSB7XG4gICAgICAgIHJldHVybiBwYXJzZU1ldGhvZChhcmdzWzBdLCAoYXJncy5sZW5ndGggPiAxID8gYXJnc1sxXSA6IHVuZGVmaW5lZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgVG9CYWNrSG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSBhcyBQYXJzZXJJbnRlcmZhY2U7XG4gICAgICBpZiAocGFyc2VNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlTWV0aG9kKGFyZ3NbMF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBleHRyYWN0VmFsdWUoa2V5LCBkYXRhKSB7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBrZXlQYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICBpZiAoa2V5UGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgaWYgKGtleSBpbiBkYXRhKSB7XG4gICAgICByZXR1cm4gZGF0YVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgayBvZiBrZXlQYXJ0cykge1xuICAgIGlmIChkYXRhICYmIGsgaW4gZGF0YSkge1xuICAgICAgZGF0YSA9IGRhdGFba107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIHRvRnJvbnQobW9kZWxUeXBlOiBNb2RlbFR5cGVJbnRlcmZhY2UsIGRhdGE6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIC8vIENoZWNrIGlmIHJlY3Vyc2lvbiBpcyByZXF1aXJlZFxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0Zyb250KG1vZGVsVHlwZSwgaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBtb2RlbFR5cGUoKTtcblxuICAvLyBNYXBwaW5nIGZpZWxkc1xuICBjb25zdCBtYXBwaW5nRmllbGRzID0gbW9kZWxUeXBlW01PREVMX01BUFBJTkdfRklFTERTX0tFWV0gYXMgc3RyaW5nW107XG4gIGNvbnN0IHJlbGF0aW9uID0gbW9kZWxUeXBlW01PREVMX1JFTEFUSU9OX0tFWV0gYXMgeyBba2V5OiBzdHJpbmddOiBNb2RlbEludGVyZmFjZSB9O1xuICBpZiAobWFwcGluZ0ZpZWxkcykge1xuICAgIGZvciAoY29uc3QgYmFja0ZpZWxkIG9mIE9iamVjdC5rZXlzKG1hcHBpbmdGaWVsZHMpKSB7XG4gICAgICBjb25zdCBmcm9udEZpZWxkID0gbWFwcGluZ0ZpZWxkc1tiYWNrRmllbGRdO1xuICAgICAgY29uc3QgdmFsdWUgPSBleHRyYWN0VmFsdWUoYmFja0ZpZWxkLCBkYXRhKTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSkge1xuICAgICAgICBpbnN0YW5jZVtmcm9udEZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvRnJvbnQodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zdGFuY2VbZnJvbnRGaWVsZF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIHRvQmFjayhtb2RlbFR5cGU6IE1vZGVsVHlwZUludGVyZmFjZSwgaW5zdGFuY2U6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIGlmICghaW5zdGFuY2UpIHtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvLyBDaGVjayBpZiByZWN1cnNpb24gaXMgcmVxdWlyZWRcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5zdGFuY2UpKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0JhY2sobW9kZWxUeXBlLCBpdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSB7fTtcbiAgY29uc3QgbWFwcGluZ0ZpZWxkcyA9IG1vZGVsVHlwZVtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldIGFzIHN0cmluZ1tdO1xuICBjb25zdCByZWxhdGlvbiA9IG1vZGVsVHlwZVtNT0RFTF9SRUxBVElPTl9LRVldIGFzIHsgW2tleTogc3RyaW5nXTogTW9kZWxJbnRlcmZhY2UgfTtcbiAgaWYgKG1hcHBpbmdGaWVsZHMpIHtcbiAgICBmb3IgKGNvbnN0IGJhY2tGaWVsZCBvZiBPYmplY3Qua2V5cyhtYXBwaW5nRmllbGRzKSkge1xuICAgICAgY29uc3QgZnJvbnRGaWVsZCA9IG1hcHBpbmdGaWVsZHNbYmFja0ZpZWxkXTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSAmJiBpbnN0YW5jZVtmcm9udEZpZWxkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGFbYmFja0ZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvQmFjayhpbnN0YW5jZVtmcm9udEZpZWxkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhW2JhY2tGaWVsZF0gPSBpbnN0YW5jZVtmcm9udEZpZWxkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyxrQkFBa0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7QUFDL0MsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztBQWE3QztJQUNFLG1CQUFZLElBQTJCOztRQUNyQyxJQUFJLElBQUksRUFBRTs7Z0JBQ1IsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBaEMsSUFBTSxHQUFHLFdBQUE7b0JBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDdkI7Ozs7Ozs7OztTQUNGO0lBQ0gsQ0FBQztJQUVNLGlCQUFPLEdBQWQsVUFBZSxHQUFRO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxnQkFBTSxHQUFiLFVBQWMsR0FBUTtRQUNwQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBaEJELElBZ0JDOztBQU1ELE1BQU0sVUFBVSxTQUFTLENBQUMsU0FBUztJQUNqQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLFVBQUMsS0FBSztZQUNiLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxD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QUFDLENBQUM7Z0JBQzVDLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLFNBQVMsRUFBRTtvQkFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7aUJBQ3JFO3FCQUFNO29CQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3hDO2FBQ0Y7Ozs7Ozs7OztLQUNGO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9ja2V5UGVuYWx0eVR5cGVzIH0gZnJvbSAnLi4vbG9jYWxpemF0aW9uL2hvY2tleS1wZW5hbHR5LXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IE1PREVMX01BUFBJTkdfRklFTERTX0tFWSA9ICdfbWFwcGluZ19maWVsZHNfJztcbmV4cG9ydCBjb25zdCBNT0RFTF9SRUxBVElPTl9LRVkgPSAnX3JlbGF0aW9uXyc7XG5leHBvcnQgY29uc3QgTU9ERUxfVE9fRlJPTlRfS0VZID0gJ190b19mcm9udF8nO1xuZXhwb3J0IGNvbnN0IE1PREVMX1RPX0JBQ0tfS0VZID0gJ190b19iYWNrXyc7XG5cbnR5cGUgUGFyc2VySW50ZXJmYWNlID0gKGR0bzogYW55LCBwYXRoPzogR3JhcGhQYXRoSW50ZXJmYWNlKSA9PiBhbnk7XG5cbmludGVyZmFjZSBNb2RlbFR5cGVJbnRlcmZhY2Uge1xuICBuZXcoZGF0YT86IGFueSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxJbnRlcmZhY2Uge1xuICB0b0Zyb250KGR0bzogYW55KTogYW55O1xuICB0b0JhY2soZHRvOiBhbnkpOiBhbnk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTW9kZWwge1xuICBjb25zdHJ1Y3RvcihkYXRhPzoge1trZXk6IHN0cmluZ106IGFueX0pIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZGF0YSkpIHtcbiAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyB0b0Zyb250KGR0bzogYW55KTogYW55IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIHRvQmFjayhkdG86IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5pbnRlcmZhY2UgR3JhcGhQYXRoSW50ZXJmYWNlIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW51bUZpZWxkKGVudW1DbGFzcykge1xuICByZXR1cm4ge1xuICAgIHRvRnJvbnQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKGlzTmFOKCt2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGVudW1DbGFzc1t2YWx1ZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfSxcbiAgICB0b0JhY2s6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKGlzTmFOKCt2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVudW1DbGFzc1t2YWx1ZV07XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVuYWx0eVR5cGVGaWVsZCgpIHtcbiAgcmV0dXJuIHtcbiAgICB0b0Zyb250OiAoZGF0YSkgPT4ge1xuICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBIb2NrZXlQZW5hbHR5VHlwZXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGRhdGEpO1xuICAgIH0sXG4gICAgdG9CYWNrOiAoZGF0YSkgPT4ge1xuICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gZGF0YS5pZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpc3RGaWVsZChtb2RlbENsYXNzKSB7XG4gIHJldHVybiB7XG4gICAgdG9Gcm9udDogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbENsYXNzLnRvRnJvbnQodmFsdWUpO1xuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1vZGVsQ2xhc3MudG9CYWNrKHZhbHVlKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZVV0Yy50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kZWxJbnN0YW5jZShcbiAgY29uZmlnOiB7XG4gICAgbWFwcGluZ0ZpZWxkcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgcmVsYXRpb24/OiB7IFtrZXk6IHN0cmluZ106IEJhc2VNb2RlbCB9XG4gIH1cbikge1xuICByZXR1cm4gKHRhcmdldDogTW9kZWxUeXBlSW50ZXJmYWNlKSA9PiB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKGNvbmZpZy5tYXBwaW5nRmllbGRzKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldID0gY29uZmlnLm1hcHBpbmdGaWVsZHM7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnJlbGF0aW9uKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9SRUxBVElPTl9LRVldID0gY29uZmlnLnJlbGF0aW9uO1xuICAgICAgfVxuICAgICAgdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gPSAoZHRvOiBhbnksIHBhdGg6IEdyYXBoUGF0aEludGVyZmFjZSkgPT4ge1xuICAgICAgICByZXR1cm4gdG9Gcm9udCh0YXJnZXQsIGR0bywgcGF0aCk7XG4gICAgICB9O1xuICAgICAgdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSA9IChkdG86IGFueSwgcGF0aDogR3JhcGhQYXRoSW50ZXJmYWNlKSA9PiB7XG4gICAgICAgIHJldHVybiB0b0JhY2sodGFyZ2V0LCBkdG8sIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBUb0Zyb250SG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gYXMgUGFyc2VySW50ZXJmYWNlO1xuICAgICAgaWYgKHBhcnNlTWV0aG9kKSB7XG4gICAgICAgIHJldHVybiBwYXJzZU1ldGhvZChhcmdzWzBdLCAoYXJncy5sZW5ndGggPiAxID8gYXJnc1sxXSA6IHVuZGVmaW5lZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgVG9CYWNrSG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSBhcyBQYXJzZXJJbnRlcmZhY2U7XG4gICAgICBpZiAocGFyc2VNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlTWV0aG9kKGFyZ3NbMF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBleHRyYWN0VmFsdWUoa2V5LCBkYXRhKSB7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBrZXlQYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICBpZiAoa2V5UGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgaWYgKGtleSBpbiBkYXRhKSB7XG4gICAgICByZXR1cm4gZGF0YVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgayBvZiBrZXlQYXJ0cykge1xuICAgIGlmIChkYXRhICYmIGsgaW4gZGF0YSkge1xuICAgICAgZGF0YSA9IGRhdGFba107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIHRvRnJvbnQobW9kZWxUeXBlOiBNb2RlbFR5cGVJbnRlcmZhY2UsIGRhdGE6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIC8vIENoZWNrIGlmIHJlY3Vyc2lvbiBpcyByZXF1aXJlZFxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0Zyb250KG1vZGVsVHlwZSwgaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBtb2RlbFR5cGUoKTtcblxuICAvLyBNYXBwaW5nIGZpZWxkc1xuICBjb25zdCBtYXBwaW5nRmllbGRzID0gbW9kZWxUeXBlW01PREVMX01BUFBJTkdfRklFTERTX0tFWV0gYXMgc3RyaW5nW107XG4gIGNvbnN0IHJlbGF0aW9uID0gbW9kZWxUeXBlW01PREVMX1JFTEFUSU9OX0tFWV0gYXMgeyBba2V5OiBzdHJpbmddOiBNb2RlbEludGVyZmFjZSB9O1xuICBpZiAobWFwcGluZ0ZpZWxkcykge1xuICAgIGZvciAoY29uc3QgYmFja0ZpZWxkIG9mIE9iamVjdC5rZXlzKG1hcHBpbmdGaWVsZHMpKSB7XG4gICAgICBjb25zdCBmcm9udEZpZWxkID0gbWFwcGluZ0ZpZWxkc1tiYWNrRmllbGRdO1xuICAgICAgY29uc3QgdmFsdWUgPSBleHRyYWN0VmFsdWUoYmFja0ZpZWxkLCBkYXRhKTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSkge1xuICAgICAgICBpbnN0YW5jZVtmcm9udEZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvRnJvbnQodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zdGFuY2VbZnJvbnRGaWVsZF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIHRvQmFjayhtb2RlbFR5cGU6IE1vZGVsVHlwZUludGVyZmFjZSwgaW5zdGFuY2U6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIGlmICghaW5zdGFuY2UpIHtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvLyBDaGVjayBpZiByZWN1cnNpb24gaXMgcmVxdWlyZWRcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5zdGFuY2UpKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0JhY2sobW9kZWxUeXBlLCBpdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSB7fTtcbiAgY29uc3QgbWFwcGluZ0ZpZWxkcyA9IG1vZGVsVHlwZVtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldIGFzIHN0cmluZ1tdO1xuICBjb25zdCByZWxhdGlvbiA9IG1vZGVsVHlwZVtNT0RFTF9SRUxBVElPTl9LRVldIGFzIHsgW2tleTogc3RyaW5nXTogTW9kZWxJbnRlcmZhY2UgfTtcbiAgaWYgKG1hcHBpbmdGaWVsZHMpIHtcbiAgICBmb3IgKGNvbnN0IGJhY2tGaWVsZCBvZiBPYmplY3Qua2V5cyhtYXBwaW5nRmllbGRzKSkge1xuICAgICAgY29uc3QgZnJvbnRGaWVsZCA9IG1hcHBpbmdGaWVsZHNbYmFja0ZpZWxkXTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSAmJiBpbnN0YW5jZVtmcm9udEZpZWxkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGFbYmFja0ZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvQmFjayhpbnN0YW5jZVtmcm9udEZpZWxkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhW2JhY2tGaWVsZF0gPSBpbnN0YW5jZVtmcm9udEZpZWxkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
|
package/fesm2015/mtgame-core.js
CHANGED
|
@@ -102,12 +102,18 @@ function enumField(enumClass) {
|
|
|
102
102
|
function penaltyTypeField() {
|
|
103
103
|
return {
|
|
104
104
|
toFront: (data) => {
|
|
105
|
+
if (!data) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
105
108
|
if (typeof data === 'object') {
|
|
106
109
|
return data;
|
|
107
110
|
}
|
|
108
111
|
return HockeyPenaltyTypes.find(item => item.id === data);
|
|
109
112
|
},
|
|
110
113
|
toBack: (data) => {
|
|
114
|
+
if (!data) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
111
117
|
if (typeof data === 'object') {
|
|
112
118
|
return data.id;
|
|
113
119
|
}
|
|
@@ -2222,6 +2228,22 @@ let HockeyGameApi = class HockeyGameApi {
|
|
|
2222
2228
|
return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(map(result => HockeyGameLog.toFront(result))).toPromise();
|
|
2223
2229
|
});
|
|
2224
2230
|
}
|
|
2231
|
+
downloadProtocol(gameId, format) {
|
|
2232
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2233
|
+
return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {
|
|
2234
|
+
params: new HttpParams().set('file_type', format),
|
|
2235
|
+
responseType: 'blob'
|
|
2236
|
+
}).toPromise();
|
|
2237
|
+
});
|
|
2238
|
+
}
|
|
2239
|
+
downloadApplication(gameId, format, type) {
|
|
2240
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2241
|
+
return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {
|
|
2242
|
+
params: new HttpParams().set('file_type', format).set('application_type', type),
|
|
2243
|
+
responseType: 'blob'
|
|
2244
|
+
}).toPromise();
|
|
2245
|
+
});
|
|
2246
|
+
}
|
|
2225
2247
|
};
|
|
2226
2248
|
HockeyGameApi.ctorParameters = () => [
|
|
2227
2249
|
{ type: HttpClient },
|