@mtgame/core 0.0.53 → 0.0.54

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 (66) hide show
  1. package/api/football-game-api.d.ts +19 -0
  2. package/api/public-api.d.ts +1 -0
  3. package/api/tournament-api.d.ts +2 -0
  4. package/bundles/mtgame-core.umd.js +723 -45
  5. package/bundles/mtgame-core.umd.js.map +1 -1
  6. package/bundles/mtgame-core.umd.min.js +2 -2
  7. package/bundles/mtgame-core.umd.min.js.map +1 -1
  8. package/esm2015/api/football-game-api.js +70 -0
  9. package/esm2015/api/public-api.js +2 -1
  10. package/esm2015/api/tournament-api.js +18 -1
  11. package/esm2015/localization/football-game-log-types.js +29 -0
  12. package/esm2015/localization/overtime-types.js +4 -2
  13. package/esm2015/localization/public-api.js +2 -1
  14. package/esm2015/localization/user-profile.js +13 -1
  15. package/esm2015/models/football-game-config.js +34 -0
  16. package/esm2015/models/football-game-log.js +94 -0
  17. package/esm2015/models/football-game-statistic.js +129 -0
  18. package/esm2015/models/football-game-team-statistic.js +27 -0
  19. package/esm2015/models/football-profile.js +43 -0
  20. package/esm2015/models/football-statistic.js +92 -0
  21. package/esm2015/models/game.js +4 -1
  22. package/esm2015/models/public-api.js +7 -1
  23. package/esm2015/models/sport.js +13 -1
  24. package/esm2015/models/team.js +4 -1
  25. package/esm2015/models/tournament.js +6 -1
  26. package/esm2015/models/user.js +4 -1
  27. package/esm5/api/football-game-api.js +85 -0
  28. package/esm5/api/public-api.js +2 -1
  29. package/esm5/api/tournament-api.js +32 -1
  30. package/esm5/localization/football-game-log-types.js +30 -0
  31. package/esm5/localization/overtime-types.js +3 -1
  32. package/esm5/localization/public-api.js +2 -1
  33. package/esm5/localization/user-profile.js +14 -2
  34. package/esm5/models/football-game-config.js +39 -0
  35. package/esm5/models/football-game-log.js +101 -0
  36. package/esm5/models/football-game-statistic.js +206 -0
  37. package/esm5/models/football-game-team-statistic.js +32 -0
  38. package/esm5/models/football-profile.js +48 -0
  39. package/esm5/models/football-statistic.js +101 -0
  40. package/esm5/models/game.js +4 -1
  41. package/esm5/models/public-api.js +7 -1
  42. package/esm5/models/sport.js +13 -1
  43. package/esm5/models/team.js +4 -1
  44. package/esm5/models/tournament.js +6 -1
  45. package/esm5/models/user.js +4 -1
  46. package/fesm2015/mtgame-core.js +532 -2
  47. package/fesm2015/mtgame-core.js.map +1 -1
  48. package/fesm5/mtgame-core.js +713 -45
  49. package/fesm5/mtgame-core.js.map +1 -1
  50. package/localization/football-game-log-types.d.ts +28 -0
  51. package/localization/overtime-types.d.ts +2 -0
  52. package/localization/public-api.d.ts +1 -0
  53. package/localization/user-profile.d.ts +12 -0
  54. package/models/football-game-config.d.ts +15 -0
  55. package/models/football-game-log.d.ts +53 -0
  56. package/models/football-game-statistic.d.ts +55 -0
  57. package/models/football-game-team-statistic.d.ts +8 -0
  58. package/models/football-profile.d.ts +20 -0
  59. package/models/football-statistic.d.ts +64 -0
  60. package/models/game.d.ts +2 -0
  61. package/models/public-api.d.ts +6 -0
  62. package/models/sport.d.ts +7 -1
  63. package/models/tournament.d.ts +3 -1
  64. package/models/user.d.ts +2 -0
  65. package/mtgame-core.metadata.json +1 -1
  66. package/package.json +1 -1
@@ -336,6 +336,9 @@ var SportTypes;
336
336
  SportTypes[SportTypes["hockey"] = 7] = "hockey";
337
337
  SportTypes[SportTypes["ice_hockey"] = 8] = "ice_hockey";
338
338
  SportTypes[SportTypes["ball_hockey"] = 9] = "ball_hockey";
339
+ SportTypes[SportTypes["football"] = 10] = "football";
340
+ SportTypes[SportTypes["classic_football"] = 11] = "classic_football";
341
+ SportTypes[SportTypes["mini_football"] = 12] = "mini_football";
339
342
  })(SportTypes || (SportTypes = {}));
340
343
  let Sport = class Sport extends BaseModel {
341
344
  isBasketball() {
@@ -365,6 +368,15 @@ let Sport = class Sport extends BaseModel {
365
368
  isBallHockey() {
366
369
  return this.id === SportTypes.ball_hockey;
367
370
  }
371
+ isFootball() {
372
+ return this.id === SportTypes.football || this.parentId === SportTypes.football;
373
+ }
374
+ isClassicFootball() {
375
+ return this.id === SportTypes.classic_football;
376
+ }
377
+ isMiniFootball() {
378
+ return this.id === SportTypes.mini_football;
379
+ }
368
380
  static toFront(data) {
369
381
  return null;
370
382
  }
@@ -547,6 +559,46 @@ HockeyProfile = __decorate([
547
559
  })
548
560
  ], HockeyProfile);
549
561
 
562
+ var GameFootballPosition;
563
+ (function (GameFootballPosition) {
564
+ GameFootballPosition[GameFootballPosition["defensemen"] = 1] = "defensemen";
565
+ GameFootballPosition[GameFootballPosition["midfielder"] = 2] = "midfielder";
566
+ GameFootballPosition[GameFootballPosition["forward"] = 3] = "forward";
567
+ GameFootballPosition[GameFootballPosition["goalkeeper"] = 4] = "goalkeeper";
568
+ })(GameFootballPosition || (GameFootballPosition = {}));
569
+ var FootballWorkFoot;
570
+ (function (FootballWorkFoot) {
571
+ FootballWorkFoot[FootballWorkFoot["left"] = 1] = "left";
572
+ FootballWorkFoot[FootballWorkFoot["right"] = 2] = "right";
573
+ FootballWorkFoot[FootballWorkFoot["both"] = 3] = "both";
574
+ })(FootballWorkFoot || (FootballWorkFoot = {}));
575
+ let FootballProfile = class FootballProfile extends BaseModel {
576
+ static toFront(value) {
577
+ }
578
+ static toBack(value) {
579
+ }
580
+ };
581
+ __decorate([
582
+ ToFrontHook
583
+ ], FootballProfile, "toFront", null);
584
+ __decorate([
585
+ ToBackHook
586
+ ], FootballProfile, "toBack", null);
587
+ FootballProfile = __decorate([
588
+ ModelInstance({
589
+ mappingFields: {
590
+ id: 'id',
591
+ user_id: 'userId',
592
+ position: 'position',
593
+ work_foot: 'workFoot'
594
+ },
595
+ relation: {
596
+ position: enumField(GameFootballPosition),
597
+ workFoot: enumField(FootballWorkFoot)
598
+ }
599
+ })
600
+ ], FootballProfile);
601
+
550
602
  var UserGender;
551
603
  (function (UserGender) {
552
604
  UserGender[UserGender["male"] = 1] = "male";
@@ -597,6 +649,7 @@ User = __decorate([
597
649
  basketball_profile: 'basketballProfile',
598
650
  volleyball_profile: 'volleyballProfile',
599
651
  hockey_profile: 'hockeyProfile',
652
+ football_profile: 'footballProfile',
600
653
  wizards: 'wizards',
601
654
  city: 'city',
602
655
  gender: 'gender',
@@ -609,6 +662,7 @@ User = __decorate([
609
662
  basketballProfile: BasketballProfile,
610
663
  volleyballProfile: VolleyballProfile,
611
664
  hockeyProfile: HockeyProfile,
665
+ footballProfile: FootballProfile,
612
666
  city: City,
613
667
  gender: enumField(UserGender)
614
668
  }
@@ -627,6 +681,9 @@ let Team = class Team extends BaseModel {
627
681
  if (this.sport.isHockey()) {
628
682
  classList.push('empty-logo-hockey');
629
683
  }
684
+ if (this.sport.isFootball()) {
685
+ classList.push('empty-logo-football');
686
+ }
630
687
  return classList.join(' ');
631
688
  }
632
689
  static toFront(data) {
@@ -821,6 +878,8 @@ var OvertimeTypes;
821
878
  OvertimeTypes[OvertimeTypes["to_first_goal"] = 5] = "to_first_goal";
822
879
  OvertimeTypes[OvertimeTypes["to_first_goal_and_bullitts"] = 6] = "to_first_goal_and_bullitts";
823
880
  OvertimeTypes[OvertimeTypes["bullitts"] = 7] = "bullitts";
881
+ OvertimeTypes[OvertimeTypes["penalties"] = 8] = "penalties";
882
+ OvertimeTypes[OvertimeTypes["time_and_penalties"] = 9] = "time_and_penalties";
824
883
  })(OvertimeTypes || (OvertimeTypes = {}));
825
884
  let TournamentSettings = class TournamentSettings extends BaseModel {
826
885
  static toFront(data) { }
@@ -910,6 +969,9 @@ let Tournament = class Tournament extends BaseModel {
910
969
  if (this.sport.isHockey()) {
911
970
  classList.push('empty-logo-hockey');
912
971
  }
972
+ if (this.sport.isFootball()) {
973
+ classList.push('empty-logo-football');
974
+ }
913
975
  return classList.join(' ');
914
976
  }
915
977
  static toFront(data) { }
@@ -1128,6 +1190,36 @@ HockeyGameConfig = __decorate([
1128
1190
  })
1129
1191
  ], HockeyGameConfig);
1130
1192
 
1193
+ let FootballGameConfig = class FootballGameConfig extends BaseModel {
1194
+ static toFront(data) { }
1195
+ static toBack(data) { }
1196
+ };
1197
+ __decorate([
1198
+ ToFrontHook
1199
+ ], FootballGameConfig, "toFront", null);
1200
+ __decorate([
1201
+ ToBackHook
1202
+ ], FootballGameConfig, "toBack", null);
1203
+ FootballGameConfig = __decorate([
1204
+ ModelInstance({
1205
+ mappingFields: {
1206
+ periods_count: 'periodsCount',
1207
+ period_time: 'periodTime',
1208
+ overtime_type: 'overtimeType',
1209
+ overtime_time: 'overtimeTime',
1210
+ max_game_players: 'maxGamePlayers',
1211
+ timeout_count: 'timeoutCount',
1212
+ overtime_timeout_count: 'overtimeTimeoutCount',
1213
+ timeout_time: 'timeoutTime',
1214
+ game_time_type: 'gameTimeType',
1215
+ },
1216
+ relation: {
1217
+ overtimeType: enumField(OvertimeTypes),
1218
+ gameTimeType: enumField(GameTimeTypes),
1219
+ }
1220
+ })
1221
+ ], FootballGameConfig);
1222
+
1131
1223
  var GameStatuses;
1132
1224
  (function (GameStatuses) {
1133
1225
  GameStatuses[GameStatuses["open"] = 1] = "open";
@@ -1209,6 +1301,7 @@ Game = __decorate([
1209
1301
  basketball_game_config: 'basketballGameConfig',
1210
1302
  volleyball_game_config: 'volleyballGameConfig',
1211
1303
  hockey_game_config: 'hockeyGameConfig',
1304
+ football_game_config: 'footballGameConfig',
1212
1305
  score_by_period: 'scoreByPeriod',
1213
1306
  playoff_stage: 'playoffStage',
1214
1307
  tournament_stage_id: 'tournamentStageId',
@@ -1228,6 +1321,7 @@ Game = __decorate([
1228
1321
  basketballGameConfig: BasketballGameConfig,
1229
1322
  volleyballGameConfig: VolleyballGameConfig,
1230
1323
  hockeyGameConfig: HockeyGameConfig,
1324
+ footballGameConfig: FootballGameConfig,
1231
1325
  tournamentCourt: LeagueCourt,
1232
1326
  media: listField(MediaItem),
1233
1327
  tournament: Tournament,
@@ -2387,6 +2481,385 @@ HockeyGameApi = __decorate([
2387
2481
  Injectable({ providedIn: 'root' })
2388
2482
  ], HockeyGameApi);
2389
2483
 
2484
+ var FootballGameLogTypes;
2485
+ (function (FootballGameLogTypes) {
2486
+ FootballGameLogTypes[FootballGameLogTypes["enter_game"] = 1] = "enter_game";
2487
+ FootballGameLogTypes[FootballGameLogTypes["exit_game"] = 2] = "exit_game";
2488
+ FootballGameLogTypes[FootballGameLogTypes["shot_miss"] = 3] = "shot_miss";
2489
+ FootballGameLogTypes[FootballGameLogTypes["shot_on_goal"] = 4] = "shot_on_goal";
2490
+ FootballGameLogTypes[FootballGameLogTypes["shot_blocked"] = 5] = "shot_blocked";
2491
+ FootballGameLogTypes[FootballGameLogTypes["goal"] = 6] = "goal";
2492
+ FootballGameLogTypes[FootballGameLogTypes["penalty_attempt"] = 7] = "penalty_attempt";
2493
+ FootballGameLogTypes[FootballGameLogTypes["penalty_goal"] = 8] = "penalty_goal";
2494
+ FootballGameLogTypes[FootballGameLogTypes["penalty_save"] = 9] = "penalty_save";
2495
+ FootballGameLogTypes[FootballGameLogTypes["small_penalty_attempt"] = 10] = "small_penalty_attempt";
2496
+ FootballGameLogTypes[FootballGameLogTypes["small_penalty_goal"] = 11] = "small_penalty_goal";
2497
+ FootballGameLogTypes[FootballGameLogTypes["small_penalty_save"] = 12] = "small_penalty_save";
2498
+ FootballGameLogTypes[FootballGameLogTypes["assist"] = 13] = "assist";
2499
+ FootballGameLogTypes[FootballGameLogTypes["block_shot"] = 14] = "block_shot";
2500
+ FootballGameLogTypes[FootballGameLogTypes["corner"] = 15] = "corner";
2501
+ FootballGameLogTypes[FootballGameLogTypes["free_kick"] = 16] = "free_kick";
2502
+ FootballGameLogTypes[FootballGameLogTypes["foul"] = 17] = "foul";
2503
+ FootballGameLogTypes[FootballGameLogTypes["save"] = 18] = "save";
2504
+ FootballGameLogTypes[FootballGameLogTypes["yellow_card"] = 19] = "yellow_card";
2505
+ FootballGameLogTypes[FootballGameLogTypes["red_card"] = 20] = "red_card";
2506
+ FootballGameLogTypes[FootballGameLogTypes["perfect_pass"] = 21] = "perfect_pass";
2507
+ FootballGameLogTypes[FootballGameLogTypes["loss"] = 22] = "loss";
2508
+ FootballGameLogTypes[FootballGameLogTypes["steal"] = 23] = "steal";
2509
+ FootballGameLogTypes[FootballGameLogTypes["out"] = 24] = "out";
2510
+ FootballGameLogTypes[FootballGameLogTypes["timeout"] = 25] = "timeout";
2511
+ })(FootballGameLogTypes || (FootballGameLogTypes = {}));
2512
+ let FootballGameLog = class FootballGameLog extends BaseModel {
2513
+ constructor() {
2514
+ super(...arguments);
2515
+ this.active = true;
2516
+ }
2517
+ compare(model) {
2518
+ if (this.time === model.time && this.period === model.period) {
2519
+ return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;
2520
+ }
2521
+ if (this.period === model.period) {
2522
+ return this.time < model.time ? 1 : -1;
2523
+ }
2524
+ return this.period < model.period ? 1 : -1;
2525
+ }
2526
+ get timeFormatted() {
2527
+ const minutes = Math.floor(this.time / 60);
2528
+ const seconds = this.time - minutes * 60;
2529
+ return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
2530
+ }
2531
+ isScoreType() {
2532
+ return [FootballGameLogTypes.goal, FootballGameLogTypes.penalty_goal, FootballGameLogTypes.small_penalty_goal].indexOf(this.logType) > -1;
2533
+ }
2534
+ isAfter(log) {
2535
+ if (this.time === log.time && this.period === log.period) {
2536
+ return this.id > log.id;
2537
+ }
2538
+ if (this.period === log.period) {
2539
+ return this.time > log.time;
2540
+ }
2541
+ return this.period > log.period;
2542
+ }
2543
+ static toFront(value) { }
2544
+ static toBack(value) { }
2545
+ };
2546
+ __decorate([
2547
+ ToFrontHook
2548
+ ], FootballGameLog, "toFront", null);
2549
+ __decorate([
2550
+ ToBackHook
2551
+ ], FootballGameLog, "toBack", null);
2552
+ FootballGameLog = __decorate([
2553
+ ModelInstance({
2554
+ mappingFields: {
2555
+ id: 'id',
2556
+ unique_id: 'uniqueId',
2557
+ game_id: 'gameId',
2558
+ game_user_id: 'gameUserId',
2559
+ team_id: 'teamId',
2560
+ log_type: 'logType',
2561
+ datetime: 'datetime',
2562
+ time: 'time',
2563
+ period: 'period',
2564
+ active: 'active',
2565
+ is_highlight: 'isHighlight',
2566
+ is_goalie: 'isGoalie',
2567
+ },
2568
+ relation: {
2569
+ datetime: DateTimeField,
2570
+ logType: enumField(FootballGameLogTypes)
2571
+ }
2572
+ })
2573
+ ], FootballGameLog);
2574
+
2575
+ let FootballGameStatistic = class FootballGameStatistic extends BaseModel {
2576
+ get id() {
2577
+ return this.gameUserId;
2578
+ }
2579
+ get shots() {
2580
+ return (this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0);
2581
+ }
2582
+ get totalGoals() {
2583
+ return (this.goals || 0) + (this.penaltyGoals || 0) + (this.smallPenaltyGoals || 0);
2584
+ }
2585
+ get goalsPercent() {
2586
+ if (!this.shots || !this.totalGoals) {
2587
+ return 0;
2588
+ }
2589
+ return Math.round(1000 * this.totalGoals / this.shots) / 10;
2590
+ }
2591
+ get shotsOnGoalPercent() {
2592
+ if (!this.shotsOnGoal || !this.shots) {
2593
+ return 0;
2594
+ }
2595
+ return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;
2596
+ }
2597
+ get penalties() {
2598
+ return (this.penaltyGoals || 0) + (this.penaltyAttempts || 0);
2599
+ }
2600
+ get penaltyGoalsPercent() {
2601
+ if (!this.penaltyAttempts || !this.penaltyGoals) {
2602
+ return 0;
2603
+ }
2604
+ return Math.round(1000 * this.penaltyGoals / this.penaltyAttempts) / 10;
2605
+ }
2606
+ get smallPenalties() {
2607
+ return (this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0);
2608
+ }
2609
+ get smallPenaltyGoalsPercent() {
2610
+ if (!this.smallPenaltyAttempts || !this.smallPenaltyGoals) {
2611
+ return 0;
2612
+ }
2613
+ return Math.round(1000 * this.smallPenaltyGoals / this.smallPenaltyAttempts) / 10;
2614
+ }
2615
+ get shotsAgainst() {
2616
+ return (this.saves || 0) + (this.goalsAgainst || 0);
2617
+ }
2618
+ get penaltyShotsAgainst() {
2619
+ return (this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0);
2620
+ }
2621
+ get smallPenaltyShotsAgainst() {
2622
+ return (this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0);
2623
+ }
2624
+ get totalGoalsAgainst() {
2625
+ return (this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0) + (this.smallPenaltyGoalsAgainst || 0);
2626
+ }
2627
+ get totalSaves() {
2628
+ return (this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0);
2629
+ }
2630
+ get savesPercent() {
2631
+ if (!this.shotsAgainst || !this.saves) {
2632
+ return 0;
2633
+ }
2634
+ return Math.round(1000 * this.saves / this.shotsAgainst) / 10;
2635
+ }
2636
+ get penaltySavesPercent() {
2637
+ if (!this.penaltyShotsAgainst || !this.penaltySaves) {
2638
+ return 0;
2639
+ }
2640
+ return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;
2641
+ }
2642
+ get smallPenaltySavesPercent() {
2643
+ if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {
2644
+ return 0;
2645
+ }
2646
+ return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;
2647
+ }
2648
+ get gameMinutes() {
2649
+ return Math.floor(this.gameTime / 60);
2650
+ }
2651
+ static toFront(data) { }
2652
+ static toBack(data) { }
2653
+ };
2654
+ __decorate([
2655
+ ToFrontHook
2656
+ ], FootballGameStatistic, "toFront", null);
2657
+ __decorate([
2658
+ ToBackHook
2659
+ ], FootballGameStatistic, "toBack", null);
2660
+ FootballGameStatistic = __decorate([
2661
+ ModelInstance({
2662
+ mappingFields: {
2663
+ game_user_id: 'gameUserId',
2664
+ updated_at: 'updatedAt',
2665
+ points: 'points',
2666
+ shot_misses: 'shotMisses',
2667
+ shots_on_goal: 'shotsOnGoal',
2668
+ shots_blocked: 'shotsBlocked',
2669
+ goals: 'goals',
2670
+ assists: 'assists',
2671
+ corners: 'corners',
2672
+ free_kicks: 'freeKicks',
2673
+ penalty_goals: 'penaltyGoals',
2674
+ penalty_attempts: 'penaltyAttempts',
2675
+ penalty_goals_against: 'penaltyGoalsAgainst',
2676
+ penalty_saves: 'penaltySaves',
2677
+ small_penalty_goals: 'smallPenaltyGoals',
2678
+ small_penalty_attempts: 'smallPenaltyAttempts',
2679
+ small_penalty_goals_against: 'smallPenaltyGoalsAgainst',
2680
+ small_penalty_saves: 'smallPenaltySaves',
2681
+ saves: 'saves',
2682
+ goals_against: 'goalsAgainst',
2683
+ safety_rate: 'safetyRate',
2684
+ game_time: 'gameTime',
2685
+ plus_minus: 'plusMinus',
2686
+ fouls: 'fouls',
2687
+ yellow_cards: 'yellowCards',
2688
+ red_cards: 'redCards',
2689
+ perfect_passes: 'perfectPasses',
2690
+ losses: 'losses',
2691
+ steals: 'steals',
2692
+ outs: 'outs',
2693
+ block_shots: 'blockShots'
2694
+ },
2695
+ relation: {
2696
+ updatedAt: DateTimeField,
2697
+ }
2698
+ })
2699
+ ], FootballGameStatistic);
2700
+
2701
+ let FootballStatistic = class FootballStatistic extends BaseStatistic {
2702
+ get userMinutes() {
2703
+ const minutes = Math.floor(this.gameTime / 60);
2704
+ const seconds = Math.floor(this.gameTime - minutes * 60);
2705
+ return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;
2706
+ }
2707
+ static toFront(data) { }
2708
+ static toBack(data) { }
2709
+ };
2710
+ __decorate([
2711
+ ToFrontHook
2712
+ ], FootballStatistic, "toFront", null);
2713
+ __decorate([
2714
+ ToBackHook
2715
+ ], FootballStatistic, "toBack", null);
2716
+ FootballStatistic = __decorate([
2717
+ ModelInstance({
2718
+ mappingFields: {
2719
+ tournament_team_user: 'tournamentTeamUser',
2720
+ team: 'team',
2721
+ team_user: 'teamUser',
2722
+ user: 'user',
2723
+ tournament_team: 'tournamentTeam',
2724
+ month: 'month',
2725
+ win_lose: 'winLose',
2726
+ games_count: 'gamesCount',
2727
+ won_games_count: 'wonGamesCount',
2728
+ points: 'points',
2729
+ shot_misses: 'shotMisses',
2730
+ shots_on_goal: 'shotsOnGoal',
2731
+ shots_blocked: 'shotsBlocked',
2732
+ shots_on_goal_percent: 'shotsOnGoalPercent',
2733
+ shots: 'shots',
2734
+ goals: 'goals',
2735
+ goals_percent: 'goalsPercent',
2736
+ total_goals: 'totalGoals',
2737
+ assists: 'assists',
2738
+ penalty_goals: 'penaltyGoals',
2739
+ penalty_attempts: 'penaltyAttempts',
2740
+ penalty_goals_percent: 'penaltyGoalsPercent',
2741
+ penalty_saves: 'penaltySaves',
2742
+ penalty_goals_against: 'penaltyGoalsAgainst',
2743
+ penalty_shots_against: 'penaltyShotsAgainst',
2744
+ penalty_saves_percent: 'penaltySavesPercent',
2745
+ small_penalty_goals: 'smallPenaltyGoals',
2746
+ small_penalty_attempts: 'smallPenaltyAttempts',
2747
+ small_penalty_goals_percent: 'smallPenaltyGoalsPercent',
2748
+ small_penalty_saves: 'smallPenaltySaves',
2749
+ small_penalty_goals_against: 'smallPenaltyGoalsAgainst',
2750
+ small_penalty_shots_against: 'smallPenaltyShotsAgainst',
2751
+ small_penalty_saves_percent: 'smallPenaltySavesPercent',
2752
+ saves: 'saves',
2753
+ saves_percent: 'savesPercent',
2754
+ total_saves: 'totalSaves',
2755
+ goals_against: 'goalsAgainst',
2756
+ total_goals_against: 'totalGoalsAgainst',
2757
+ shots_against: 'shotsAgainst',
2758
+ safety_rate: 'safetyRate',
2759
+ fouls: 'fouls',
2760
+ yellow_cards: 'yellowCards',
2761
+ red_cards: 'redCards',
2762
+ perfect_passes: 'perfectPasses',
2763
+ losses: 'losses',
2764
+ steals: 'steals',
2765
+ outs: 'outs',
2766
+ block_shots: 'blockShots',
2767
+ corners: 'corners',
2768
+ free_kicks: 'freeKicks',
2769
+ game_time: 'gameTime',
2770
+ plus_minus: 'plusMinus',
2771
+ newbie: 'newbie'
2772
+ },
2773
+ relation: {
2774
+ tournamentTeamUser: TournamentTeamUser,
2775
+ team: Team,
2776
+ teamUser: TeamUser,
2777
+ user: User,
2778
+ tournamentTeam: TournamentTeam,
2779
+ month: DateField
2780
+ }
2781
+ })
2782
+ ], FootballStatistic);
2783
+
2784
+ let FootballGameTeamStatistic = class FootballGameTeamStatistic extends BaseModel {
2785
+ static toFront(data) { }
2786
+ static toBack(data) { }
2787
+ };
2788
+ __decorate([
2789
+ ToFrontHook
2790
+ ], FootballGameTeamStatistic, "toFront", null);
2791
+ __decorate([
2792
+ ToBackHook
2793
+ ], FootballGameTeamStatistic, "toBack", null);
2794
+ FootballGameTeamStatistic = __decorate([
2795
+ ModelInstance({
2796
+ mappingFields: {
2797
+ team: 'team',
2798
+ competitor_team: 'competitorTeam'
2799
+ },
2800
+ relation: {
2801
+ team: FootballStatistic,
2802
+ competitorTeam: FootballStatistic
2803
+ }
2804
+ })
2805
+ ], FootballGameTeamStatistic);
2806
+
2807
+ let FootballGameApi = class FootballGameApi {
2808
+ constructor(httpClient, configService) {
2809
+ this.httpClient = httpClient;
2810
+ this.configService = configService;
2811
+ }
2812
+ getById(gameId) {
2813
+ return __awaiter(this, void 0, void 0, function* () {
2814
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(map(result => Game.toFront(result))).toPromise();
2815
+ });
2816
+ }
2817
+ getUsers(gameId) {
2818
+ return __awaiter(this, void 0, void 0, function* () {
2819
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(map(result => GameUser.toFront(result))).toPromise();
2820
+ });
2821
+ }
2822
+ getTeamStatistic(gameId) {
2823
+ return __awaiter(this, void 0, void 0, function* () {
2824
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(map(result => FootballGameTeamStatistic.toFront(result))).toPromise();
2825
+ });
2826
+ }
2827
+ getUserStatistic(gameId) {
2828
+ return __awaiter(this, void 0, void 0, function* () {
2829
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`).pipe(map(result => FootballGameStatistic.toFront(result))).toPromise();
2830
+ });
2831
+ }
2832
+ getLogs(gameId) {
2833
+ return __awaiter(this, void 0, void 0, function* () {
2834
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(map(result => FootballGameLog.toFront(result))).toPromise();
2835
+ });
2836
+ }
2837
+ downloadProtocol(gameId, format) {
2838
+ return __awaiter(this, void 0, void 0, function* () {
2839
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {
2840
+ params: new HttpParams().set('file_type', format),
2841
+ responseType: 'blob'
2842
+ }).toPromise();
2843
+ });
2844
+ }
2845
+ downloadApplication(gameId, format, type) {
2846
+ return __awaiter(this, void 0, void 0, function* () {
2847
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {
2848
+ params: new HttpParams().set('file_type', format).set('application_type', type),
2849
+ responseType: 'blob'
2850
+ }).toPromise();
2851
+ });
2852
+ }
2853
+ };
2854
+ FootballGameApi.ctorParameters = () => [
2855
+ { type: HttpClient },
2856
+ { type: ConfigService }
2857
+ ];
2858
+ FootballGameApi.ɵprov = ɵɵdefineInjectable({ factory: function FootballGameApi_Factory() { return new FootballGameApi(ɵɵinject(HttpClient), ɵɵinject(ConfigService)); }, token: FootballGameApi, providedIn: "root" });
2859
+ FootballGameApi = __decorate([
2860
+ Injectable({ providedIn: 'root' })
2861
+ ], FootballGameApi);
2862
+
2390
2863
  var LeagueNewsType;
2391
2864
  (function (LeagueNewsType) {
2392
2865
  LeagueNewsType[LeagueNewsType["text"] = 1] = "text";
@@ -4507,6 +4980,22 @@ let TournamentApi = class TournamentApi {
4507
4980
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`, { params }).pipe(map(result => HockeyStatistic.toFront(result))).toPromise();
4508
4981
  });
4509
4982
  }
4983
+ getFootballStatistic(filters) {
4984
+ return __awaiter(this, void 0, void 0, function* () {
4985
+ let params = new HttpParams();
4986
+ if (filters) {
4987
+ for (const key of Object.keys(filters)) {
4988
+ if (filters[key]) {
4989
+ params = params.set(key, filters[key]);
4990
+ }
4991
+ }
4992
+ if (filters.per_game !== undefined) {
4993
+ params = params.set('per_game', filters.per_game ? '1' : '0');
4994
+ }
4995
+ }
4996
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic/`, { params }).pipe(map(result => FootballStatistic.toFront(result))).toPromise();
4997
+ });
4998
+ }
4510
4999
  getTournamentTeamUsers(tournamentTeamId) {
4511
5000
  return __awaiter(this, void 0, void 0, function* () {
4512
5001
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`).pipe(map(result => TournamentTeamUser.toFront(result))).toPromise();
@@ -5400,6 +5889,34 @@ const HockeyGameLogTypeLocalization = {
5400
5889
  [HockeyGameLogTypes.penalty_end]: 'Конец штрафного времени'
5401
5890
  };
5402
5891
 
5892
+ const FootballGameLogTypeLocalization = {
5893
+ [FootballGameLogTypes.enter_game]: 'Выход на поле',
5894
+ [FootballGameLogTypes.exit_game]: 'Ушел с поля',
5895
+ [FootballGameLogTypes.shot_miss]: 'Удар мимо',
5896
+ [FootballGameLogTypes.shot_on_goal]: 'Удар в створ',
5897
+ [FootballGameLogTypes.shot_blocked]: 'Заблокированный удар',
5898
+ [FootballGameLogTypes.goal]: 'Гол',
5899
+ [FootballGameLogTypes.assist]: 'Передача',
5900
+ [FootballGameLogTypes.penalty_attempt]: 'Пенальти промах',
5901
+ [FootballGameLogTypes.penalty_goal]: 'Пенальти гол',
5902
+ [FootballGameLogTypes.small_penalty_attempt]: '10-метровый промах',
5903
+ [FootballGameLogTypes.small_penalty_goal]: '10-метровый гол',
5904
+ [FootballGameLogTypes.block_shot]: 'Блокировка удара',
5905
+ [FootballGameLogTypes.corner]: 'Угловой',
5906
+ [FootballGameLogTypes.free_kick]: 'Штрафной удар',
5907
+ [FootballGameLogTypes.save]: 'Отражен удар',
5908
+ [FootballGameLogTypes.penalty_save]: 'Отражен пенальти',
5909
+ [FootballGameLogTypes.small_penalty_save]: 'Отражен 10 метровый',
5910
+ [FootballGameLogTypes.foul]: 'Фол',
5911
+ [FootballGameLogTypes.yellow_card]: 'Желтая карточка',
5912
+ [FootballGameLogTypes.red_card]: 'Красная карточка',
5913
+ [FootballGameLogTypes.perfect_pass]: 'Пас',
5914
+ [FootballGameLogTypes.loss]: 'Потеря',
5915
+ [FootballGameLogTypes.steal]: 'Перехват',
5916
+ [FootballGameLogTypes.out]: 'Аут',
5917
+ [FootballGameLogTypes.timeout]: 'Таймаут'
5918
+ };
5919
+
5403
5920
  const OvertimeTypeLocalization = {
5404
5921
  [OvertimeTypes.to_score_diff]: 'До разницы в N мячей',
5405
5922
  [OvertimeTypes.to_score_total]: 'До N очков',
@@ -5407,7 +5924,9 @@ const OvertimeTypeLocalization = {
5407
5924
  [OvertimeTypes.without_overtime]: 'Без овертайма',
5408
5925
  [OvertimeTypes.to_first_goal]: 'На N минут до первой шайбы',
5409
5926
  [OvertimeTypes.to_first_goal_and_bullitts]: 'На N минут до первой шайбы + буллиты',
5410
- [OvertimeTypes.bullitts]: 'Буллиты'
5927
+ [OvertimeTypes.bullitts]: 'Буллиты',
5928
+ [OvertimeTypes.penalties]: 'Пенальти',
5929
+ [OvertimeTypes.time_and_penalties]: 'Дополнительное время + пенальти'
5411
5930
  };
5412
5931
 
5413
5932
  const TeamUserRoleLocalization = {
@@ -5464,6 +5983,17 @@ const GameHockeyPositionLocalization = {
5464
5983
  [GameHockeyPosition.defensemen]: 'Защитник',
5465
5984
  [GameHockeyPosition.forward]: 'Нападающий'
5466
5985
  };
5986
+ const GameFootballPositionLocalization = {
5987
+ [GameFootballPosition.goalkeeper]: 'Вратарь',
5988
+ [GameFootballPosition.defensemen]: 'Защитник',
5989
+ [GameFootballPosition.midfielder]: 'Полузащитник',
5990
+ [GameFootballPosition.forward]: 'Нападающий'
5991
+ };
5992
+ const FootballWorkFootLocalization = {
5993
+ [FootballWorkFoot.left]: 'Левая',
5994
+ [FootballWorkFoot.right]: 'Правая',
5995
+ [FootballWorkFoot.both]: 'Обе'
5996
+ };
5467
5997
 
5468
5998
  const VolleyballGameLogTypeLocalization = {
5469
5999
  [VolleyballGameLogType.enter_game]: 'Выход на площадку',
@@ -5877,5 +6407,5 @@ HttpCookieInterceptor = __decorate([
5877
6407
  * Generated bundle index. Do not edit.
5878
6408
  */
5879
6409
 
5880
- export { BannerLocation, BaseModel, BaseService, BaseStatistic, BasketballGameApi, BasketballGameConfig, BasketballGameLog, BasketballGameLogTypeLocalization, BasketballGameLogTypes, BasketballGameStatistic, BasketballGameTeamStatistic, BasketballProfile, BasketballStatistic, BasketballStatisticTypes, CONFIG_DATA, CentrifugoService, City, ConfigService, DateField, DateTimeField, FAULT_LOG_TYPES, Feedback, FeedbackApi, File, FileApi, FileEngine, Game, GameBasketballPosition, GameBasketballPositionLocalization, GameBasketballPositionShortLocalization, GameHockeyPosition, GameHockeyPositionLocalization, GameInvite, GameInviteStatus, GameResultTypes, GameStatuses, GameTimeTypes, GameTimelineStageItem, GameTimelineStages, GameUser, GameVolleyballPosition, GameVolleyballPositionLocalization, GameVolleyballPositionShortLocalization, GameVolleyballPositionShortRuLocalization, HockeyAdvantageTypes, HockeyGameApi, HockeyGameConfig, HockeyGameLog, HockeyGameLogTypeLocalization, HockeyGameLogTypes, HockeyGameStatistic, HockeyGameTeamStatistic, HockeyPenaltyTypes, HockeyProfile, HockeyStatistic, HockeyWorkHand, HttpCookieInterceptor, League, LeagueApi, LeagueBanner, LeagueCourt, LeagueNews, LeagueNewsApi, LeagueNewsType, LeaguePartner, LeaguePlaylist, LocalStorageEngine, MediaApi, MediaItem, ModelInstance, Notification, NotificationAllowTypes, NotificationApi, NotificationBaseApi, NotificationServiceEnum, NotificationSettings, NotificationType, OrgNotificationApi, Organization, OvertimeTypeLocalization, OvertimeTypes, Playoff, PlayoffSettings, PlayoffTypes, Poll, PollAnswer, PollStatuses, PollVariant, ReferenceApi, SCORE_LOG_TYPES, Sport, SportTypes, StorageEngine, StorageEngineField, Store, Team, TeamAccess, TeamApi, TeamEvent, TeamEventApi, TeamEventInvite, TeamEventInviteStatuses, TeamEventTypeLocalization, TeamEventTypes, TeamInvite, TeamInviteExternal, TeamPermission, TeamPermissionTypes, TeamUser, TeamUserRole, TeamUserRoleLocalization, ToBackHook, ToFrontHook, Tournament, TournamentApi, TournamentDisqualification, TournamentEvent, TournamentEventTypes, TournamentGender, TournamentGroup, TournamentInvite, TournamentJoinApi, TournamentJoinData, TournamentJoinTeam, TournamentNews, TournamentSeason, TournamentSeasonApi, TournamentSeasonStatuses, TournamentSettings, TournamentStage, TournamentStageApi, TournamentStageStatuses, TournamentStageTeam, TournamentStatuses, TournamentTeam, 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, WorkHand, WorkHandLocalization, addItemInArray, changeFavicons, componentDestroyed, deleteItemFromArray, enumField, fileSizeValidator, generateArray, getArrayChunks, getCookie, getEnumOptions, getIconsData, handleError, isTouchDevice, listField, markFormGroupTouched, minLengthArrayValidator, patchItemInArray, updateItemInArray, updateItemsInArray, validateDate, validateEmail, validatePhone, validateUrl, penaltyTypeField as ɵa };
6410
+ export { BannerLocation, BaseModel, BaseService, BaseStatistic, BasketballGameApi, BasketballGameConfig, BasketballGameLog, BasketballGameLogTypeLocalization, BasketballGameLogTypes, BasketballGameStatistic, BasketballGameTeamStatistic, BasketballProfile, BasketballStatistic, BasketballStatisticTypes, 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, GameBasketballPosition, GameBasketballPositionLocalization, GameBasketballPositionShortLocalization, GameFootballPosition, GameFootballPositionLocalization, GameHockeyPosition, GameHockeyPositionLocalization, GameInvite, GameInviteStatus, GameResultTypes, GameStatuses, GameTimeTypes, GameTimelineStageItem, GameTimelineStages, GameUser, GameVolleyballPosition, GameVolleyballPositionLocalization, GameVolleyballPositionShortLocalization, GameVolleyballPositionShortRuLocalization, HockeyAdvantageTypes, HockeyGameApi, HockeyGameConfig, HockeyGameLog, HockeyGameLogTypeLocalization, HockeyGameLogTypes, HockeyGameStatistic, HockeyGameTeamStatistic, HockeyPenaltyTypes, HockeyProfile, HockeyStatistic, HockeyWorkHand, HttpCookieInterceptor, League, LeagueApi, LeagueBanner, LeagueCourt, LeagueNews, LeagueNewsApi, LeagueNewsType, LeaguePartner, LeaguePlaylist, LocalStorageEngine, MediaApi, MediaItem, ModelInstance, Notification, NotificationAllowTypes, NotificationApi, NotificationBaseApi, NotificationServiceEnum, NotificationSettings, NotificationType, OrgNotificationApi, Organization, OvertimeTypeLocalization, OvertimeTypes, Playoff, PlayoffSettings, PlayoffTypes, Poll, PollAnswer, PollStatuses, PollVariant, ReferenceApi, SCORE_LOG_TYPES, Sport, SportTypes, StorageEngine, StorageEngineField, Store, Team, TeamAccess, TeamApi, TeamEvent, TeamEventApi, TeamEventInvite, TeamEventInviteStatuses, TeamEventTypeLocalization, TeamEventTypes, TeamInvite, TeamInviteExternal, TeamPermission, TeamPermissionTypes, TeamUser, TeamUserRole, TeamUserRoleLocalization, ToBackHook, ToFrontHook, Tournament, TournamentApi, TournamentDisqualification, TournamentEvent, TournamentEventTypes, TournamentGender, TournamentGroup, TournamentInvite, TournamentJoinApi, TournamentJoinData, TournamentJoinTeam, TournamentNews, TournamentSeason, TournamentSeasonApi, TournamentSeasonStatuses, TournamentSettings, TournamentStage, TournamentStageApi, TournamentStageStatuses, TournamentStageTeam, TournamentStatuses, TournamentTeam, 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, WorkHand, WorkHandLocalization, addItemInArray, changeFavicons, componentDestroyed, deleteItemFromArray, enumField, fileSizeValidator, generateArray, getArrayChunks, getCookie, getEnumOptions, getIconsData, handleError, isTouchDevice, listField, markFormGroupTouched, minLengthArrayValidator, patchItemInArray, updateItemInArray, updateItemsInArray, validateDate, validateEmail, validatePhone, validateUrl, penaltyTypeField as ɵa };
5881
6411
  //# sourceMappingURL=mtgame-core.js.map