@mtgame/core 0.1.127 → 0.1.129

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.
Files changed (59) hide show
  1. package/api/league-api.d.ts +2 -0
  2. package/api/public-api.d.ts +1 -0
  3. package/api/tournament-api.d.ts +13 -2
  4. package/api/tournament-round-api.d.ts +23 -0
  5. package/bundles/mtgame-core.umd.js +394 -9
  6. package/bundles/mtgame-core.umd.js.map +1 -1
  7. package/esm2015/api/league-api.js +7 -1
  8. package/esm2015/api/public-api.js +2 -1
  9. package/esm2015/api/tournament-api.js +36 -4
  10. package/esm2015/api/tournament-round-api.js +71 -0
  11. package/esm2015/models/base-statistic.js +1 -1
  12. package/esm2015/models/basketball-statistic.js +4 -1
  13. package/esm2015/models/football-statistic.js +9 -1
  14. package/esm2015/models/game-timeline-stages.js +2 -1
  15. package/esm2015/models/game.js +14 -1
  16. package/esm2015/models/handball-statistic.js +4 -1
  17. package/esm2015/models/hockey-statistic.js +4 -1
  18. package/esm2015/models/league-court.js +3 -2
  19. package/esm2015/models/playoff.js +4 -2
  20. package/esm2015/models/public-api.js +4 -1
  21. package/esm2015/models/rugby-game-statistic.js +6 -1
  22. package/esm2015/models/rugby-statistic.js +10 -1
  23. package/esm2015/models/season-tournament.js +22 -0
  24. package/esm2015/models/tournament-division.js +27 -0
  25. package/esm2015/models/tournament-group.js +4 -2
  26. package/esm2015/models/tournament-round-team.js +95 -0
  27. package/esm2015/models/tournament-round.js +36 -0
  28. package/esm2015/models/tournament-team.js +4 -1
  29. package/esm2015/models/tournament.js +2 -1
  30. package/esm2015/models/volleyball-statistic.js +4 -1
  31. package/esm2015/models/waterpolo-statistic.js +4 -1
  32. package/esm2015/storage/store.js +4 -4
  33. package/esm2015/utils/array.js +2 -2
  34. package/fesm2015/mtgame-core.js +323 -11
  35. package/fesm2015/mtgame-core.js.map +1 -1
  36. package/models/base-statistic.d.ts +3 -1
  37. package/models/basketball-statistic.d.ts +3 -0
  38. package/models/football-statistic.d.ts +6 -0
  39. package/models/game-timeline-stages.d.ts +1 -0
  40. package/models/game.d.ts +3 -1
  41. package/models/handball-statistic.d.ts +3 -0
  42. package/models/hockey-statistic.d.ts +3 -0
  43. package/models/league-court.d.ts +1 -0
  44. package/models/playoff.d.ts +2 -0
  45. package/models/public-api.d.ts +3 -0
  46. package/models/rugby-game-statistic.d.ts +3 -0
  47. package/models/rugby-statistic.d.ts +4 -1
  48. package/models/season-tournament.d.ts +7 -0
  49. package/models/tournament-division.d.ts +9 -0
  50. package/models/tournament-group.d.ts +2 -0
  51. package/models/tournament-round-team.d.ts +51 -0
  52. package/models/tournament-round.d.ts +17 -0
  53. package/models/tournament-team.d.ts +2 -0
  54. package/models/tournament.d.ts +1 -0
  55. package/models/volleyball-statistic.d.ts +3 -0
  56. package/models/waterpolo-statistic.d.ts +3 -0
  57. package/mtgame-core.metadata.json +1 -1
  58. package/package.json +1 -1
  59. package/storage/store.d.ts +1 -1
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { Injectable, Optional, Inject, Injector, PLATFORM_ID } from '@angular/core';
4
4
  import * as i1 from '@angular/common/http';
5
5
  import { HttpParams, HttpClient } from '@angular/common/http';
6
- import { filter, map, delay, switchMap } from 'rxjs/operators';
6
+ import { map, filter, delay, switchMap } from 'rxjs/operators';
7
7
  import { BehaviorSubject, Observable, of } from 'rxjs';
8
8
  import { Subject } from 'rxjs/internal/Subject';
9
9
  import { ReplaySubject } from 'rxjs/internal/ReplaySubject';
@@ -1262,6 +1262,7 @@ Tournament = __decorate([
1262
1262
  season: 'season',
1263
1263
  season_id: 'seasonId',
1264
1264
  game_price: 'gamePrice',
1265
+ season_tournament_id: 'seasonTournamentId',
1265
1266
  },
1266
1267
  relation: {
1267
1268
  logo: File,
@@ -1373,7 +1374,8 @@ LeagueCourt = __decorate([
1373
1374
  id: 'id',
1374
1375
  name: 'name',
1375
1376
  address: 'address',
1376
- league_id: 'leagueId'
1377
+ league_id: 'leagueId',
1378
+ active_games_count: 'activeGamesCount',
1377
1379
  }
1378
1380
  })
1379
1381
  ], LeagueCourt);
@@ -1526,7 +1528,7 @@ HandballGameConfig = __decorate([
1526
1528
  ], HandballGameConfig);
1527
1529
 
1528
1530
  function generateArray(length) {
1529
- if (length <= 0) {
1531
+ if (+length <= 0) {
1530
1532
  return [];
1531
1533
  }
1532
1534
  return Array.apply(null, Array(length)).map((_, i) => i + 1);
@@ -1619,7 +1621,9 @@ Playoff = __decorate([
1619
1621
  settings: 'settings',
1620
1622
  tournament_id: 'tournamentId',
1621
1623
  tournament_stage_id: 'tournamentStageId',
1622
- is_official: 'isOfficial'
1624
+ is_official: 'isOfficial',
1625
+ tournament_round_id: 'tournamentRoundId',
1626
+ division_id: 'divisionId',
1623
1627
  },
1624
1628
  relation: {
1625
1629
  settings: PlayoffSettings
@@ -1643,7 +1647,9 @@ TournamentGroup = __decorate([
1643
1647
  id: 'id',
1644
1648
  name: 'name',
1645
1649
  sort: 'sort',
1646
- tournament_stage_id: 'tournamentStageId'
1650
+ tournament_stage_id: 'tournamentStageId',
1651
+ tournament_round_id: 'tournamentRoundId',
1652
+ division_id: 'divisionId',
1647
1653
  }
1648
1654
  })
1649
1655
  ], TournamentGroup);
@@ -1741,6 +1747,7 @@ var GameResultTypes;
1741
1747
  GameResultTypes[GameResultTypes["competitor_team_won"] = 2] = "competitor_team_won";
1742
1748
  GameResultTypes[GameResultTypes["team_technical_defeat"] = 3] = "team_technical_defeat";
1743
1749
  GameResultTypes[GameResultTypes["competitor_team_technical_defeat"] = 4] = "competitor_team_technical_defeat";
1750
+ GameResultTypes[GameResultTypes["draw"] = 5] = "draw";
1744
1751
  })(GameResultTypes || (GameResultTypes = {}));
1745
1752
  let TournamentTeamShort = class TournamentTeamShort extends BaseModel {
1746
1753
  static toFront(data) { }
@@ -1880,6 +1887,18 @@ let Game = class Game extends BaseModel {
1880
1887
  }
1881
1888
  return null;
1882
1889
  }
1890
+ get teamLoserId() {
1891
+ if (!this.isClosed) {
1892
+ return null;
1893
+ }
1894
+ if (this.isTeamWon) {
1895
+ return this.competitorTeam.id || this.competitorTeamId;
1896
+ }
1897
+ if (this.isCompetitorTeamWon) {
1898
+ return this.team.id || this.teamId;
1899
+ }
1900
+ return null;
1901
+ }
1883
1902
  static toFront(data) { }
1884
1903
  static toBack(data) { }
1885
1904
  };
@@ -2036,8 +2055,8 @@ class Store {
2036
2055
  this.engine = engine;
2037
2056
  this.data = {};
2038
2057
  }
2039
- get(key) {
2040
- return this.getSubject(key).pipe(filter(item => item !== undefined));
2058
+ get(key, defaultValue) {
2059
+ return this.getSubject(key).pipe(map(item => item === undefined ? defaultValue : item), filter(item => item !== undefined));
2041
2060
  }
2042
2061
  value(key, defaultValue) {
2043
2062
  return this.getSubject(key).value === undefined ? defaultValue : this.getSubject(key).value;
@@ -2138,6 +2157,29 @@ ConfigService.ctorParameters = () => [
2138
2157
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [CONFIG_DATA,] }] }
2139
2158
  ];
2140
2159
 
2160
+ let TournamentDivision = class TournamentDivision extends BaseModel {
2161
+ static toFront(data) { }
2162
+ static toBack(data) { }
2163
+ };
2164
+ __decorate([
2165
+ ToFrontHook
2166
+ ], TournamentDivision, "toFront", null);
2167
+ __decorate([
2168
+ ToBackHook
2169
+ ], TournamentDivision, "toBack", null);
2170
+ TournamentDivision = __decorate([
2171
+ ModelInstance({
2172
+ mappingFields: {
2173
+ id: 'id',
2174
+ name: 'name',
2175
+ cover: 'cover',
2176
+ },
2177
+ relation: {
2178
+ cover: File
2179
+ }
2180
+ })
2181
+ ], TournamentDivision);
2182
+
2141
2183
  let TournamentTeam = class TournamentTeam extends BaseModel {
2142
2184
  get gamesWonPercent() {
2143
2185
  if (!this.gamesCount) {
@@ -2165,6 +2207,7 @@ TournamentTeam = __decorate([
2165
2207
  tournament: 'tournament',
2166
2208
  team: 'team',
2167
2209
  group: 'group',
2210
+ division: 'division',
2168
2211
  final_standing: 'finalStanding',
2169
2212
  games_count: 'gamesCount',
2170
2213
  won_games_count: 'wonGamesCount',
@@ -2198,6 +2241,7 @@ TournamentTeam = __decorate([
2198
2241
  group: TournamentGroup,
2199
2242
  games: Game,
2200
2243
  lastFiveGames: Game,
2244
+ division: TournamentDivision,
2201
2245
  }
2202
2246
  })
2203
2247
  ], TournamentTeam);
@@ -2422,6 +2466,9 @@ BasketballStatistic = __decorate([
2422
2466
  win_lose: 'winLose',
2423
2467
  games_count: 'gamesCount',
2424
2468
  won_games_count: 'wonGamesCount',
2469
+ team_score_sum: 'teamScoreSum',
2470
+ team_missed_sum: 'teamMissedSum',
2471
+ tournament_points: 'tournamentPoints',
2425
2472
  points: 'points',
2426
2473
  two_points_made: 'twoPointsMade',
2427
2474
  three_points_made: 'threePointsMade',
@@ -3350,6 +3397,9 @@ HockeyStatistic = __decorate([
3350
3397
  games_count: 'gamesCount',
3351
3398
  won_games_count: 'wonGamesCount',
3352
3399
  lose_games_count: 'loseGamesCount',
3400
+ team_score_sum: 'teamScoreSum',
3401
+ team_missed_sum: 'teamMissedSum',
3402
+ tournament_points: 'tournamentPoints',
3353
3403
  points: 'points',
3354
3404
  pp_shots: 'ppShots',
3355
3405
  pp_shot_misses: 'ppShotMisses',
@@ -3731,6 +3781,9 @@ FootballGameStatistic = __decorate([
3731
3781
  ], FootballGameStatistic);
3732
3782
 
3733
3783
  let FootballStatistic = class FootballStatistic extends BaseModel {
3784
+ get teamPlusMinus() {
3785
+ return (this.teamScoreSum || 0) - (this.teamMissedSum || 0);
3786
+ }
3734
3787
  get userMinutes() {
3735
3788
  if (!this.gameTime) {
3736
3789
  return '00:00';
@@ -3800,6 +3853,11 @@ FootballStatistic = __decorate([
3800
3853
  win_lose: 'winLose',
3801
3854
  games_count: 'gamesCount',
3802
3855
  won_games_count: 'wonGamesCount',
3856
+ lose_games_count: 'loseGamesCount',
3857
+ draw_games_count: 'drawGamesCount',
3858
+ team_score_sum: 'teamScoreSum',
3859
+ team_missed_sum: 'teamMissedSum',
3860
+ tournament_points: 'tournamentPoints',
3803
3861
  points: 'points',
3804
3862
  shot_misses: 'shotMisses',
3805
3863
  shots_on_goal: 'shotsOnGoal',
@@ -4159,6 +4217,9 @@ HandballStatistic = __decorate([
4159
4217
  win_lose: 'winLose',
4160
4218
  games_count: 'gamesCount',
4161
4219
  won_games_count: 'wonGamesCount',
4220
+ team_score_sum: 'teamScoreSum',
4221
+ team_missed_sum: 'teamMissedSum',
4222
+ tournament_points: 'tournamentPoints',
4162
4223
  points: 'points',
4163
4224
  shot_misses: 'shotMisses',
4164
4225
  shots_on_goal: 'shotsOnGoal',
@@ -4352,6 +4413,7 @@ GameTimelineStages = __decorate([
4352
4413
  current_playoff_round: 'currentPlayoffRound',
4353
4414
  stages: 'stages',
4354
4415
  tournament_stage_id: 'tournamentStageId',
4416
+ tournament_round_id: 'tournamentRoundId',
4355
4417
  },
4356
4418
  relation: {
4357
4419
  stages: listField(GameTimelineStageItem)
@@ -4432,6 +4494,9 @@ VolleyballStatistic = __decorate([
4432
4494
  win_lose: 'winLose',
4433
4495
  games_count: 'gamesCount',
4434
4496
  won_games_count: 'wonGamesCount',
4497
+ team_score_sum: 'teamScoreSum',
4498
+ team_missed_sum: 'teamMissedSum',
4499
+ tournament_points: 'tournamentPoints',
4435
4500
  serve_hits: 'serveHits',
4436
4501
  serve_faults: 'serveFaults',
4437
4502
  serve_aces: 'serveAces',
@@ -4653,6 +4718,9 @@ let RugbyStatistic = class RugbyStatistic extends BaseModel {
4653
4718
  const seconds = Math.floor(this.gameTime - minutes * 60);
4654
4719
  return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;
4655
4720
  }
4721
+ get totalFouls() {
4722
+ return (this.fouls || 0) + (this.teamFouls || 0);
4723
+ }
4656
4724
  static toFront(data) { }
4657
4725
  static toBack(data) { }
4658
4726
  };
@@ -4665,6 +4733,7 @@ __decorate([
4665
4733
  RugbyStatistic = __decorate([
4666
4734
  ModelInstance({
4667
4735
  mappingFields: {
4736
+ league_player: 'leaguePlayer',
4668
4737
  tournament_team_user: 'tournamentTeamUser',
4669
4738
  team: 'team',
4670
4739
  team_user: 'teamUser',
@@ -4676,6 +4745,9 @@ RugbyStatistic = __decorate([
4676
4745
  won_games_count: 'wonGamesCount',
4677
4746
  lose_games_count: 'loseGamesCount',
4678
4747
  draw_games_count: 'drawGamesCount',
4748
+ team_score_sum: 'teamScoreSum',
4749
+ team_missed_sum: 'teamMissedSum',
4750
+ tournament_points: 'tournamentPoints',
4679
4751
  newbie: 'newbie',
4680
4752
  // User statistic
4681
4753
  points: 'points',
@@ -4740,6 +4812,7 @@ RugbyStatistic = __decorate([
4740
4812
  team_fouls: 'teamFouls',
4741
4813
  },
4742
4814
  relation: {
4815
+ leaguePlayer: LeaguePlayer,
4743
4816
  tournamentTeamUser: TournamentTeamUser,
4744
4817
  team: Team,
4745
4818
  teamUser: TeamUser,
@@ -4863,6 +4936,9 @@ WaterpoloStatistic = __decorate([
4863
4936
  games_count: 'gamesCount',
4864
4937
  won_games_count: 'wonGamesCount',
4865
4938
  lose_games_count: 'loseGamesCount',
4939
+ team_score_sum: 'teamScoreSum',
4940
+ team_missed_sum: 'teamMissedSum',
4941
+ tournament_points: 'tournamentPoints',
4866
4942
  points: 'points',
4867
4943
  pp_shots: 'ppShots',
4868
4944
  pp_shot_misses: 'ppShotMisses',
@@ -4969,6 +5045,38 @@ WaterpoloStatistic = __decorate([
4969
5045
  })
4970
5046
  ], WaterpoloStatistic);
4971
5047
 
5048
+ var TournamentRoundTypes;
5049
+ (function (TournamentRoundTypes) {
5050
+ TournamentRoundTypes[TournamentRoundTypes["group"] = 1] = "group";
5051
+ TournamentRoundTypes[TournamentRoundTypes["playoff"] = 2] = "playoff";
5052
+ })(TournamentRoundTypes || (TournamentRoundTypes = {}));
5053
+ class TournamentRoundSettings extends BaseModel {
5054
+ }
5055
+ let TournamentRound = class TournamentRound extends BaseModel {
5056
+ static toFront(data) { }
5057
+ static toBack(data) { }
5058
+ };
5059
+ __decorate([
5060
+ ToFrontHook
5061
+ ], TournamentRound, "toFront", null);
5062
+ __decorate([
5063
+ ToBackHook
5064
+ ], TournamentRound, "toBack", null);
5065
+ TournamentRound = __decorate([
5066
+ ModelInstance({
5067
+ mappingFields: {
5068
+ id: 'id',
5069
+ name: 'name',
5070
+ type: 'type',
5071
+ divisions: 'divisions',
5072
+ },
5073
+ relation: {
5074
+ type: enumField(TournamentRoundTypes),
5075
+ divisions: listField(TournamentDivision),
5076
+ }
5077
+ })
5078
+ ], TournamentRound);
5079
+
4972
5080
  class TournamentApi {
4973
5081
  constructor(httpClient, configService) {
4974
5082
  this.httpClient = httpClient;
@@ -4988,6 +5096,13 @@ class TournamentApi {
4988
5096
  .toPromise();
4989
5097
  });
4990
5098
  }
5099
+ getSeasonTournaments(seasonTournamentId) {
5100
+ return __awaiter(this, void 0, void 0, function* () {
5101
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/season_tournament/${seasonTournamentId}/tournaments/`)
5102
+ .pipe(map(result => Tournament.toFront(result)))
5103
+ .toPromise();
5104
+ });
5105
+ }
4991
5106
  getNews(tournamentId) {
4992
5107
  return __awaiter(this, void 0, void 0, function* () {
4993
5108
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)
@@ -5023,6 +5138,16 @@ class TournamentApi {
5023
5138
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(map(data => TournamentStage.toFront(data))).toPromise();
5024
5139
  });
5025
5140
  }
5141
+ getTournamentRounds(tournamentId) {
5142
+ return __awaiter(this, void 0, void 0, function* () {
5143
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/rounds/`).pipe(map(data => TournamentRound.toFront(data))).toPromise();
5144
+ });
5145
+ }
5146
+ getTournamentDivisions(tournamentId) {
5147
+ return __awaiter(this, void 0, void 0, function* () {
5148
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/divisions/`).pipe(map(data => TournamentDivision.toFront(data))).toPromise();
5149
+ });
5150
+ }
5026
5151
  getPlayoff(tournamentId) {
5027
5152
  return __awaiter(this, void 0, void 0, function* () {
5028
5153
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(map(result => Playoff.toFront(result))).toPromise();
@@ -5037,9 +5162,13 @@ class TournamentApi {
5037
5162
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`, { params }).pipe(map(result => Game.toFront(result))).toPromise();
5038
5163
  });
5039
5164
  }
5040
- getGamesStages(tournamentId) {
5165
+ getGamesStages(tournamentId, roundId) {
5041
5166
  return __awaiter(this, void 0, void 0, function* () {
5042
- return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`)
5167
+ let params = new HttpParams();
5168
+ if (roundId) {
5169
+ params = params.set('tournament_round_id', roundId.toString());
5170
+ }
5171
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`, { params })
5043
5172
  .pipe(map(data => GameTimelineStages.toFront(data)))
5044
5173
  .toPromise();
5045
5174
  });
@@ -5073,12 +5202,15 @@ class TournamentApi {
5073
5202
  .toPromise();
5074
5203
  });
5075
5204
  }
5076
- getTeams(tournamentId, groupId) {
5205
+ getTeams(tournamentId, groupId, short) {
5077
5206
  return __awaiter(this, void 0, void 0, function* () {
5078
5207
  let params = new HttpParams();
5079
5208
  if (groupId) {
5080
5209
  params = params.set('group_id', groupId.toString());
5081
5210
  }
5211
+ if (short) {
5212
+ params = params.set('short', '1');
5213
+ }
5082
5214
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`, { params })
5083
5215
  .pipe(map(result => TournamentTeam.toFront(result)))
5084
5216
  .toPromise();
@@ -5309,6 +5441,12 @@ function applyGamesFilters(filters, params) {
5309
5441
  if (filters.tournamentStageId) {
5310
5442
  params = params.set('tournament_stage_id', filters.tournamentStageId.toString());
5311
5443
  }
5444
+ if (filters.tournamentRoundId) {
5445
+ params = params.set('tournament_round_id', filters.tournamentRoundId.toString());
5446
+ }
5447
+ if (filters.divisionId) {
5448
+ params = params.set('division_id', filters.divisionId.toString());
5449
+ }
5312
5450
  if (filters.tournamentTour) {
5313
5451
  params = params.set('tournament_tour', filters.tournamentTour.toString());
5314
5452
  }
@@ -5489,6 +5627,25 @@ TeamsAndUsers = __decorate([
5489
5627
  })
5490
5628
  ], TeamsAndUsers);
5491
5629
 
5630
+ let SeasonTournament = class SeasonTournament extends BaseModel {
5631
+ static toFront(data) { }
5632
+ static toBack(data) { }
5633
+ };
5634
+ __decorate([
5635
+ ToFrontHook
5636
+ ], SeasonTournament, "toFront", null);
5637
+ __decorate([
5638
+ ToBackHook
5639
+ ], SeasonTournament, "toBack", null);
5640
+ SeasonTournament = __decorate([
5641
+ ModelInstance({
5642
+ mappingFields: {
5643
+ id: 'id',
5644
+ name: 'name',
5645
+ },
5646
+ })
5647
+ ], SeasonTournament);
5648
+
5492
5649
  class LeagueApi {
5493
5650
  constructor(httpClient, configService) {
5494
5651
  this.httpClient = httpClient;
@@ -5504,6 +5661,11 @@ class LeagueApi {
5504
5661
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(map(result => League.toFront(result))).toPromise();
5505
5662
  });
5506
5663
  }
5664
+ getSeasonTournaments(leagueId) {
5665
+ return __awaiter(this, void 0, void 0, function* () {
5666
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/season_tournaments/`).pipe(map(response => SeasonTournament.toFront(response))).toPromise();
5667
+ });
5668
+ }
5507
5669
  getTournaments(leagueId, filters) {
5508
5670
  return __awaiter(this, void 0, void 0, function* () {
5509
5671
  let params = new HttpParams();
@@ -6459,6 +6621,9 @@ let RugbyGameStatistic = class RugbyGameStatistic extends BaseModel {
6459
6621
  get footShots() {
6460
6622
  return (this.footFieldShots || 0) + (this.footOutShots || 0);
6461
6623
  }
6624
+ get totalFouls() {
6625
+ return (this.fouls || 0) + (this.teamFouls || 0);
6626
+ }
6462
6627
  static toFront(data) { }
6463
6628
  static toBack(data) { }
6464
6629
  };
@@ -6497,6 +6662,8 @@ RugbyGameStatistic = __decorate([
6497
6662
  carries_over_gainline: 'carriesOverGainline',
6498
6663
  foot_field_shots: 'footFieldShots',
6499
6664
  foot_out_shots: 'footOutShots',
6665
+ fouls: 'fouls',
6666
+ team_fouls: 'teamFouls',
6500
6667
  game_time: 'gameTime',
6501
6668
  plus_minus: 'plusMinus'
6502
6669
  },
@@ -7420,6 +7587,151 @@ TournamentJoinApi.ctorParameters = () => [
7420
7587
  { type: ConfigService }
7421
7588
  ];
7422
7589
 
7590
+ let RoundTeamGame = class RoundTeamGame extends BaseModel {
7591
+ static toFront(data) { }
7592
+ static toBack(data) { }
7593
+ };
7594
+ __decorate([
7595
+ ToFrontHook
7596
+ ], RoundTeamGame, "toFront", null);
7597
+ __decorate([
7598
+ ToBackHook
7599
+ ], RoundTeamGame, "toBack", null);
7600
+ RoundTeamGame = __decorate([
7601
+ ModelInstance({
7602
+ mappingFields: {
7603
+ id: 'id',
7604
+ team_id: 'teamId',
7605
+ competitor_team_id: 'competitorTeamId',
7606
+ team_score: 'teamScore',
7607
+ competitor_team_score: 'competitorTeamScore',
7608
+ }
7609
+ })
7610
+ ], RoundTeamGame);
7611
+ let TournamentRoundTeam = class TournamentRoundTeam extends BaseModel {
7612
+ constructor() {
7613
+ super(...arguments);
7614
+ this.gamesMapping = {};
7615
+ }
7616
+ set games(value) {
7617
+ this._games = value;
7618
+ this.gamesMapping = value.reduce((acc, game) => {
7619
+ const competitorTeamId = game.teamId === this.tournamentTeam.team.id ? game.competitorTeamId : game.teamId;
7620
+ return Object.assign(Object.assign({}, acc), { [competitorTeamId]: [
7621
+ ...(acc[competitorTeamId] || []),
7622
+ game,
7623
+ ] });
7624
+ }, {});
7625
+ }
7626
+ get games() {
7627
+ return this._games;
7628
+ }
7629
+ static toFront(data) { }
7630
+ static toBack(data) { }
7631
+ };
7632
+ __decorate([
7633
+ ToFrontHook
7634
+ ], TournamentRoundTeam, "toFront", null);
7635
+ __decorate([
7636
+ ToBackHook
7637
+ ], TournamentRoundTeam, "toBack", null);
7638
+ TournamentRoundTeam = __decorate([
7639
+ ModelInstance({
7640
+ mappingFields: {
7641
+ id: 'id',
7642
+ tournament_team: 'tournamentTeam',
7643
+ group: 'group',
7644
+ division: 'division',
7645
+ points: 'points',
7646
+ handicap: 'handicap',
7647
+ games_count: 'gamesCount',
7648
+ won_games_count: 'wonGamesCount',
7649
+ lose_games_count: 'loseGamesCount',
7650
+ draw_games_count: 'drawGamesCount',
7651
+ score_sum: 'scoreSum',
7652
+ missed_sum: 'missedSum',
7653
+ games_won_percent: 'gamesWonPercent',
7654
+ score_points_sum: 'scorePointsSum',
7655
+ missed_points_sum: 'missedPointsSum',
7656
+ win_normal_time_games_count: 'winNormalTimeGamesCount',
7657
+ lose_normal_time_games_count: 'loseNormalTimeGamesCount',
7658
+ win_overtime_games_count: 'winOvertimeGamesCount',
7659
+ lose_overtime_games_count: 'loseOvertimeGamesCount',
7660
+ last_games_won: 'lastGamesWon',
7661
+ last_games_count: 'lastGamesCount',
7662
+ tries_scored: 'triesScored',
7663
+ tries_missed: 'triesMissed',
7664
+ attack_bonuses: 'attackBonuses',
7665
+ defense_bonuses: 'defenseBonuses',
7666
+ games_by_score_count: 'gamesByScoreCount',
7667
+ games: 'games',
7668
+ },
7669
+ relation: {
7670
+ group: TournamentGroup,
7671
+ division: TournamentDivision,
7672
+ tournamentTeam: TournamentTeam,
7673
+ games: listField(RoundTeamGame),
7674
+ }
7675
+ })
7676
+ ], TournamentRoundTeam);
7677
+
7678
+ class TournamentRoundApi {
7679
+ constructor(httpClient, configService) {
7680
+ this.httpClient = httpClient;
7681
+ this.configService = configService;
7682
+ }
7683
+ getById(tournamentRoundId) {
7684
+ return __awaiter(this, void 0, void 0, function* () {
7685
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/`).pipe(map(data => TournamentRound.toFront(data))).toPromise();
7686
+ });
7687
+ }
7688
+ getTeams(tournamentRoundId, filters) {
7689
+ return __awaiter(this, void 0, void 0, function* () {
7690
+ let params = new HttpParams();
7691
+ if (filters) {
7692
+ if (filters.divisionId) {
7693
+ params = params.set('division_id', filters.divisionId);
7694
+ }
7695
+ if (filters.groupId) {
7696
+ params = params.set('group_id', filters.groupId);
7697
+ }
7698
+ }
7699
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/teams/`, { params }).pipe(map(data => TournamentRoundTeam.toFront(data))).toPromise();
7700
+ });
7701
+ }
7702
+ getPlayoffs(tournamentRoundId) {
7703
+ return __awaiter(this, void 0, void 0, function* () {
7704
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/playoffs/`).pipe(map(data => Playoff.toFront(data))).toPromise();
7705
+ });
7706
+ }
7707
+ getGroups(tournamentRoundId) {
7708
+ return __awaiter(this, void 0, void 0, function* () {
7709
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/groups/`).pipe(map(data => TournamentGroup.toFront(data))).toPromise();
7710
+ });
7711
+ }
7712
+ getGames(roundId, page, size, filters) {
7713
+ return __awaiter(this, void 0, void 0, function* () {
7714
+ let params = new HttpParams().set('page', page.toString());
7715
+ if (size) {
7716
+ params = params.set('size', size.toString());
7717
+ }
7718
+ params = applyGamesFilters(filters, params);
7719
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${roundId}/games/`, { params, observe: 'response' }).pipe(map(result => ({
7720
+ total: +result.headers.get('X-Page-Count'),
7721
+ data: Game.toFront(result.body)
7722
+ }))).toPromise();
7723
+ });
7724
+ }
7725
+ }
7726
+ TournamentRoundApi.ɵprov = i0.ɵɵdefineInjectable({ factory: function TournamentRoundApi_Factory() { return new TournamentRoundApi(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(ConfigService)); }, token: TournamentRoundApi, providedIn: "root" });
7727
+ TournamentRoundApi.decorators = [
7728
+ { type: Injectable, args: [{ providedIn: 'root' },] }
7729
+ ];
7730
+ TournamentRoundApi.ctorParameters = () => [
7731
+ { type: HttpClient },
7732
+ { type: ConfigService }
7733
+ ];
7734
+
7423
7735
  class TournamentSeasonApi {
7424
7736
  constructor(httpClient, configService) {
7425
7737
  this.httpClient = httpClient;
@@ -9593,5 +9905,5 @@ HttpCookieInterceptor.ctorParameters = () => [
9593
9905
  * Generated bundle index. Do not edit.
9594
9906
  */
9595
9907
 
9596
- export { Achievement, AchievementTypes, BannerLocation, BaseModel, BaseService, BasketballCourtSides, BasketballCourtZones, BasketballGameApi, BasketballGameConfig, BasketballGameLog, BasketballGameLogTypeLocalization, BasketballGameLogTypes, BasketballGameStatistic, BasketballGameSubLogTypesLocalization, BasketballGameTeamStatistic, BasketballPenaltyTypes, BasketballProfile, BasketballStatistic, BasketballStatisticTypes, BasketballSubLogTypes, CONFIG_DATA, CentrifugoService, City, ConfigService, DateField, DateTimeField, FAULT_LOG_TYPES, Feedback, FeedbackApi, File, FileApi, FileEngine, FootballGameApi, FootballGameConfig, FootballGameLog, FootballGameLogTypeLocalization, FootballGameLogTypes, FootballGameStatistic, FootballGameTeamStatistic, FootballProfile, FootballStatistic, FootballWorkFoot, FootballWorkFootLocalization, Game, GameBaseApi, GameBasketballPosition, GameBasketballPositionLocalization, GameBasketballPositionShortLocalization, GameBill, GameBillStatusLocalization, GameBillStatuses, GameFootballPosition, GameFootballPositionLocalization, GameHandballPosition, GameHandballPositionLocalization, GameHockeyPosition, GameHockeyPositionLocalization, GameInvite, GameInviteStatus, GameResultTypes, GameRugbyPosition, GameRugbyPositionLocalization, GameStatuses, GameTimeTypes, GameTimelineStageItem, GameTimelineStages, GameUser, GameUserDisqualification, GameUserLimitationTypes, GameUserLimitations, GameVolleyballPosition, GameVolleyballPositionLocalization, GameVolleyballPositionShortLocalization, GameVolleyballPositionShortRuLocalization, GameWaterpoloPosition, GameWaterpoloPositionLocalization, GameWaterpoloPositionShortRuLocalization, HandballGameApi, HandballGameConfig, HandballGameLog, HandballGameLogTypeLocalization, HandballGameLogTypes, HandballGameStatistic, HandballGameTeamStatistic, HandballProfile, HandballStatistic, HockeyAdvantageTypes, HockeyGameApi, HockeyGameConfig, HockeyGameLog, HockeyGameLogTypeLocalization, HockeyGameLogTypes, HockeyGameStatistic, HockeyGameTeamStatistic, HockeyPenaltyTypes, HockeyProfile, HockeyStatistic, HockeyWorkHand, HockeyWorkHandLocalization, HttpCookieInterceptor, League, LeagueApi, LeagueBanner, LeagueCourt, LeagueDocument, LeagueNews, LeagueNewsApi, LeagueNewsType, LeaguePartner, LeaguePlayer, LeaguePlayerApi, LeaguePlaylist, LocalStorageEngine, MODEL_MAPPING_FIELDS_KEY, MODEL_RELATION_KEY, MODEL_TO_BACK_KEY, MODEL_TO_FRONT_KEY, MediaApi, MediaItem, ModelInstance, Notification, NotificationAllowTypes, NotificationApi, NotificationBaseApi, NotificationServiceEnum, NotificationSettings, NotificationType, OrgNotificationApi, Organization, OrganizationBill, OrganizationBillStatusLocalization, OrganizationBillStatuses, OrganizationStatistic, OrganizationStatuses, OrganizationStatusesLocalization, OrganizationTariff, OvertimeTypeLocalization, OvertimeTypes, Playoff, PlayoffSettings, PlayoffTypes, Poll, PollAnswer, PollStatuses, PollVariant, PublicTeamApi, PublicUserApi, Qualification, QualificationLocalization, RUGBY_GAME_LOG_TYPE_POINTS, RUGBY_TEAM_LOG_TYPES, ReferenceApi, RugbyFoulGameStage, RugbyFoulGameStageLocalization, RugbyFoulSanctionLocalization, RugbyFoulSanctions, RugbyFoulType, RugbyGameApi, RugbyGameConfig, RugbyGameLog, RugbyGameLogTypeLocalization, RugbyGameLogTypes, RugbyGameStatistic, RugbyGameTeamStatistic, RugbyProfile, RugbyStatistic, RugbyStatisticTypes, SCORE_LOG_TYPES, Sport, SportTypes, StorageEngine, StorageEngineField, Store, Team, TeamAccess, TeamAchievement, TeamApi, TeamEvent, TeamEventApi, TeamEventInvite, TeamEventInviteStatuses, TeamEventTypeLocalization, TeamEventTypes, TeamInvite, TeamInviteExternal, TeamPermission, TeamPermissionTypes, TeamUser, TeamUserRole, TeamUserRoleLocalization, TeamsAndUsers, ToBackHook, ToFrontHook, Tournament, TournamentApi, TournamentDisqualification, TournamentEvent, TournamentEventTypes, TournamentGender, TournamentGroup, TournamentInvite, TournamentJoin1x1Data, TournamentJoin1x1Status, TournamentJoinApi, TournamentJoinData, TournamentJoinTeam, TournamentNews, TournamentSeason, TournamentSeasonApi, TournamentSeasonStatuses, TournamentSettings, TournamentStage, TournamentStageApi, TournamentStageStatuses, TournamentStageTeam, TournamentStatuses, TournamentTeam, TournamentTeamShort, TournamentTeamUser, TournamentTeamUserInvite, TournamentTeamWinner, TournamentTypes, UntilDestroy, User, UserAccess, UserApi, UserGender, UserPermission, UserPermissionTypes, UserProfile, VolleyballGameApi, VolleyballGameConfig, VolleyballGameLog, VolleyballGameLogType, VolleyballGameLogTypeLocalization, VolleyballGameStatistic, VolleyballGameTeamStatistic, VolleyballGameTypes, VolleyballProfile, VolleyballStatistic, VolleyballStatisticTypes, VolleyballWorkHand, VolleyballWorkHandLocalization, WaterpoloAdvantageTypes, WaterpoloGameApi, WaterpoloGameConfig, WaterpoloGameLog, WaterpoloGameLogTypeLocalization, WaterpoloGameLogTypes, WaterpoloGameStatistic, WaterpoloGameTeamStatistic, WaterpoloProfile, WaterpoloStatistic, WaterpoloWorkHand, WaterpoloWorkHandLocalization, WorkHand, WorkHandLocalization, addItemInArray, addItemsInArray, applyGameMediaFilters, applyGamesFilters, applyStatisticFilters, applyStatisticLeadersFilters, changeFavicons, componentDestroyed, deleteItemFromArray, enumField, fileSizeValidator, generateArray, getArrayChunks, getCookie, getEnumOptions, getIconsData, handleError, isTouchDevice, listField, markFormGroupTouched, minLengthArrayValidator, parseDate, patchItemInArray, penaltyTypeField, updateItemInArray, updateItemsInArray, validateDate, validateEmail, validatePhone, validateUrl };
9908
+ export { Achievement, AchievementTypes, BannerLocation, BaseModel, BaseService, BasketballCourtSides, BasketballCourtZones, BasketballGameApi, BasketballGameConfig, BasketballGameLog, BasketballGameLogTypeLocalization, BasketballGameLogTypes, BasketballGameStatistic, BasketballGameSubLogTypesLocalization, BasketballGameTeamStatistic, BasketballPenaltyTypes, BasketballProfile, BasketballStatistic, BasketballStatisticTypes, BasketballSubLogTypes, CONFIG_DATA, CentrifugoService, City, ConfigService, DateField, DateTimeField, FAULT_LOG_TYPES, Feedback, FeedbackApi, File, FileApi, FileEngine, FootballGameApi, FootballGameConfig, FootballGameLog, FootballGameLogTypeLocalization, FootballGameLogTypes, FootballGameStatistic, FootballGameTeamStatistic, FootballProfile, FootballStatistic, FootballWorkFoot, FootballWorkFootLocalization, Game, GameBaseApi, GameBasketballPosition, GameBasketballPositionLocalization, GameBasketballPositionShortLocalization, GameBill, GameBillStatusLocalization, GameBillStatuses, GameFootballPosition, GameFootballPositionLocalization, GameHandballPosition, GameHandballPositionLocalization, GameHockeyPosition, GameHockeyPositionLocalization, GameInvite, GameInviteStatus, GameResultTypes, GameRugbyPosition, GameRugbyPositionLocalization, GameStatuses, GameTimeTypes, GameTimelineStageItem, GameTimelineStages, GameUser, GameUserDisqualification, GameUserLimitationTypes, GameUserLimitations, GameVolleyballPosition, GameVolleyballPositionLocalization, GameVolleyballPositionShortLocalization, GameVolleyballPositionShortRuLocalization, GameWaterpoloPosition, GameWaterpoloPositionLocalization, GameWaterpoloPositionShortRuLocalization, HandballGameApi, HandballGameConfig, HandballGameLog, HandballGameLogTypeLocalization, HandballGameLogTypes, HandballGameStatistic, HandballGameTeamStatistic, HandballProfile, HandballStatistic, HockeyAdvantageTypes, HockeyGameApi, HockeyGameConfig, HockeyGameLog, HockeyGameLogTypeLocalization, HockeyGameLogTypes, HockeyGameStatistic, HockeyGameTeamStatistic, HockeyPenaltyTypes, HockeyProfile, HockeyStatistic, HockeyWorkHand, HockeyWorkHandLocalization, HttpCookieInterceptor, League, LeagueApi, LeagueBanner, LeagueCourt, LeagueDocument, LeagueNews, LeagueNewsApi, LeagueNewsType, LeaguePartner, LeaguePlayer, LeaguePlayerApi, LeaguePlaylist, LocalStorageEngine, MODEL_MAPPING_FIELDS_KEY, MODEL_RELATION_KEY, MODEL_TO_BACK_KEY, MODEL_TO_FRONT_KEY, MediaApi, MediaItem, ModelInstance, Notification, NotificationAllowTypes, NotificationApi, NotificationBaseApi, NotificationServiceEnum, NotificationSettings, NotificationType, OrgNotificationApi, Organization, OrganizationBill, OrganizationBillStatusLocalization, OrganizationBillStatuses, OrganizationStatistic, OrganizationStatuses, OrganizationStatusesLocalization, OrganizationTariff, OvertimeTypeLocalization, OvertimeTypes, Playoff, PlayoffSettings, PlayoffTypes, Poll, PollAnswer, PollStatuses, PollVariant, PublicTeamApi, PublicUserApi, Qualification, QualificationLocalization, RUGBY_GAME_LOG_TYPE_POINTS, RUGBY_TEAM_LOG_TYPES, ReferenceApi, RoundTeamGame, RugbyFoulGameStage, RugbyFoulGameStageLocalization, RugbyFoulSanctionLocalization, RugbyFoulSanctions, RugbyFoulType, RugbyGameApi, RugbyGameConfig, RugbyGameLog, RugbyGameLogTypeLocalization, RugbyGameLogTypes, RugbyGameStatistic, RugbyGameTeamStatistic, RugbyProfile, RugbyStatistic, RugbyStatisticTypes, SCORE_LOG_TYPES, Sport, SportTypes, StorageEngine, StorageEngineField, Store, Team, TeamAccess, TeamAchievement, TeamApi, TeamEvent, TeamEventApi, TeamEventInvite, TeamEventInviteStatuses, TeamEventTypeLocalization, TeamEventTypes, TeamInvite, TeamInviteExternal, TeamPermission, TeamPermissionTypes, TeamUser, TeamUserRole, TeamUserRoleLocalization, TeamsAndUsers, ToBackHook, ToFrontHook, Tournament, TournamentApi, TournamentDisqualification, TournamentDivision, TournamentEvent, TournamentEventTypes, TournamentGender, TournamentGroup, TournamentInvite, TournamentJoin1x1Data, TournamentJoin1x1Status, TournamentJoinApi, TournamentJoinData, TournamentJoinTeam, TournamentNews, TournamentRound, TournamentRoundApi, TournamentRoundSettings, TournamentRoundTeam, TournamentRoundTypes, TournamentSeason, TournamentSeasonApi, TournamentSeasonStatuses, TournamentSettings, TournamentStage, TournamentStageApi, TournamentStageStatuses, TournamentStageTeam, TournamentStatuses, TournamentTeam, TournamentTeamShort, TournamentTeamUser, TournamentTeamUserInvite, TournamentTeamWinner, TournamentTypes, UntilDestroy, User, UserAccess, UserApi, UserGender, UserPermission, UserPermissionTypes, UserProfile, VolleyballGameApi, VolleyballGameConfig, VolleyballGameLog, VolleyballGameLogType, VolleyballGameLogTypeLocalization, VolleyballGameStatistic, VolleyballGameTeamStatistic, VolleyballGameTypes, VolleyballProfile, VolleyballStatistic, VolleyballStatisticTypes, VolleyballWorkHand, VolleyballWorkHandLocalization, WaterpoloAdvantageTypes, WaterpoloGameApi, WaterpoloGameConfig, WaterpoloGameLog, WaterpoloGameLogTypeLocalization, WaterpoloGameLogTypes, WaterpoloGameStatistic, WaterpoloGameTeamStatistic, WaterpoloProfile, WaterpoloStatistic, WaterpoloWorkHand, WaterpoloWorkHandLocalization, WorkHand, WorkHandLocalization, addItemInArray, addItemsInArray, applyGameMediaFilters, applyGamesFilters, applyStatisticFilters, applyStatisticLeadersFilters, changeFavicons, componentDestroyed, deleteItemFromArray, enumField, fileSizeValidator, generateArray, getArrayChunks, getCookie, getEnumOptions, getIconsData, handleError, isTouchDevice, listField, markFormGroupTouched, minLengthArrayValidator, parseDate, patchItemInArray, penaltyTypeField, updateItemInArray, updateItemsInArray, validateDate, validateEmail, validatePhone, validateUrl };
9597
9909
  //# sourceMappingURL=mtgame-core.js.map