jp.ms.common.modules 1.0.41 → 1.0.43

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 (234) hide show
  1. package/dist/dto/app-table/card.dto.d.ts +1 -0
  2. package/dist/dto/app-table/card.dto.js +11 -0
  3. package/dist/dto/app-table/card.dto.js.map +1 -1
  4. package/dist/dto/app-table/player.dto.d.ts +1 -0
  5. package/dist/dto/app-table/player.dto.js +11 -0
  6. package/dist/dto/app-table/player.dto.js.map +1 -1
  7. package/dist/dto/games/fool/fool-table.dto.d.ts +1 -0
  8. package/dist/dto/games/fool/fool-table.dto.js +10 -0
  9. package/dist/dto/games/fool/fool-table.dto.js.map +1 -1
  10. package/dist/modules/anti-freeze-system/anti-freeze-system.module.d.ts +3 -1
  11. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js +8 -4
  12. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js.map +1 -1
  13. package/dist/modules/anti-freeze-system/anti-freeze-system.service.d.ts +6 -2
  14. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js +37 -10
  15. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js.map +1 -1
  16. package/dist/modules/base-achievements/base-achievements.module.js +2 -2
  17. package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
  18. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.d.ts +1 -0
  19. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.js +5 -0
  20. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.js.map +1 -0
  21. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.d.ts +13 -0
  22. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.js +3 -0
  23. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.js.map +1 -0
  24. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.d.ts +15 -0
  25. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.js +77 -0
  26. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.js.map +1 -0
  27. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.d.ts +19 -0
  28. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.js +83 -0
  29. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.js.map +1 -0
  30. package/dist/modules/event-bus/events-bus.module.js +3 -0
  31. package/dist/modules/event-bus/events-bus.module.js.map +1 -1
  32. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.d.ts +10 -0
  33. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.js +26 -0
  34. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.js.map +1 -0
  35. package/dist/modules/event-bus/index.d.ts +1 -0
  36. package/dist/modules/event-bus/index.js +3 -1
  37. package/dist/modules/event-bus/index.js.map +1 -1
  38. package/dist/modules/events/events.gateway.d.ts +6 -1
  39. package/dist/modules/events/events.gateway.js +19 -5
  40. package/dist/modules/events/events.gateway.js.map +1 -1
  41. package/dist/modules/index.d.ts +1 -0
  42. package/dist/modules/index.js +3 -1
  43. package/dist/modules/index.js.map +1 -1
  44. package/dist/modules/main/main.controller.d.ts +0 -1
  45. package/dist/modules/main/main.controller.js +0 -12
  46. package/dist/modules/main/main.controller.js.map +1 -1
  47. package/dist/modules/main/main.module.js +1 -1
  48. package/dist/modules/main/main.module.js.map +1 -1
  49. package/dist/modules/main/main.service.d.ts +0 -1
  50. package/dist/modules/main/main.service.js +0 -13
  51. package/dist/modules/main/main.service.js.map +1 -1
  52. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +1 -0
  53. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +12 -0
  54. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
  55. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +7 -2
  56. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
  57. package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +4 -1
  58. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +18 -2
  59. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
  60. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js +2 -0
  61. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js.map +1 -1
  62. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.d.ts +3 -2
  63. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js +9 -6
  64. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js.map +1 -1
  65. package/dist/modules/menu/menu-screen.view.d.ts +2 -1
  66. package/dist/modules/menu/menu-screen.view.js +9 -3
  67. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  68. package/dist/modules/menu/menu.interfaces.d.ts +1 -0
  69. package/dist/modules/menu/menu.service.js +1 -1
  70. package/dist/modules/menu/menu.service.js.map +1 -1
  71. package/dist/modules/one-table-tournament/one-table-tournament.module.js +1 -1
  72. package/dist/modules/one-table-tournament/one-table-tournament.module.js.map +1 -1
  73. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js +2 -0
  74. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js.map +1 -1
  75. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.d.ts +3 -2
  76. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js +9 -6
  77. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js.map +1 -1
  78. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js +2 -0
  79. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js.map +1 -1
  80. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +3 -2
  81. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +8 -5
  82. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
  83. package/dist/tsconfig.tsbuildinfo +1 -1
  84. package/dist/utils/game-table-result.d.ts +4 -3
  85. package/dist/utils/game-table-result.js +54 -4
  86. package/dist/utils/game-table-result.js.map +1 -1
  87. package/package.json +57 -57
  88. package/src/dto/app-screen/app-screen-app-bar.dto.ts +36 -36
  89. package/src/dto/app-screen/app-screen-dialog.dto.ts +64 -64
  90. package/src/dto/app-screen/app-screen-field-list-item.dto.ts +42 -42
  91. package/src/dto/app-screen/app-screen-field.dto.ts +59 -59
  92. package/src/dto/app-screen/app-screen-section-button.dto.ts +60 -60
  93. package/src/dto/app-screen/app-screen-section-buttons.dto.ts +14 -14
  94. package/src/dto/app-screen/app-screen-section-image.dto.ts +33 -33
  95. package/src/dto/app-screen/app-screen-section-list-item.dto.ts +105 -105
  96. package/src/dto/app-screen/app-screen-section-req.dto.ts +33 -33
  97. package/src/dto/app-screen/app-screen-section.dto.ts +76 -76
  98. package/src/dto/app-screen/app-screen.dto.ts +50 -50
  99. package/src/dto/app-screen/base-app-screen.dto.ts +16 -16
  100. package/src/dto/app-screen/index.ts +10 -10
  101. package/src/dto/app-table/bids-panel-item.dto.ts +33 -33
  102. package/src/dto/app-table/bids-panel.dto.ts +32 -32
  103. package/src/dto/app-table/card.dto.ts +63 -54
  104. package/src/dto/app-table/cards-deck.dto.ts +22 -22
  105. package/src/dto/app-table/cards-pair-slots-item.dto.ts +45 -45
  106. package/src/dto/app-table/cards-pair-slots.dto.ts +13 -13
  107. package/src/dto/app-table/cards-panel.dto.ts +48 -48
  108. package/src/dto/app-table/cards-player.dto.ts +14 -14
  109. package/src/dto/app-table/cards-slots-item.dto.ts +40 -40
  110. package/src/dto/app-table/cards-slots.dto.ts +13 -13
  111. package/src/dto/app-table/index.ts +15 -15
  112. package/src/dto/app-table/moves-panel-button.dto.ts +24 -24
  113. package/src/dto/app-table/moves-panel.dto.ts +23 -23
  114. package/src/dto/app-table/player.dto.ts +78 -69
  115. package/src/dto/app-table/summary-item.dto.ts +51 -51
  116. package/src/dto/app-table/summary.dto.ts +13 -13
  117. package/src/dto/common/find-free-table.dto.ts +3 -3
  118. package/src/dto/common/index.ts +2 -2
  119. package/src/dto/common/join-tournament.dto.ts +33 -33
  120. package/src/dto/common/log.dto.ts +9 -9
  121. package/src/dto/common/many-tables-tournament-create.dto.ts +125 -125
  122. package/src/dto/common/many-tables-tournament-update.dto.ts +3 -3
  123. package/src/dto/common/player-check-state.dto.ts +33 -33
  124. package/src/dto/common/player-connected.dto.ts +58 -58
  125. package/src/dto/games/fool/fool-player.dto.ts +3 -3
  126. package/src/dto/games/fool/fool-table.dto.ts +89 -81
  127. package/src/dto/games/index.ts +2 -2
  128. package/src/dto/games/poker/poker-player.dto.ts +3 -3
  129. package/src/dto/games/poker/poker-table.dto.ts +81 -81
  130. package/src/dto/index.ts +4 -4
  131. package/src/exception/error-code.enum.ts +4 -4
  132. package/src/exception/global-exception-filter.ts +53 -53
  133. package/src/exception/http-exception-wth-snackbar.ts +27 -27
  134. package/src/exception/index.ts +4 -4
  135. package/src/exception/not-enough-money-for-purchase.exception.ts +14 -14
  136. package/src/exception/not-found-free-room-for-fast-game.exception.ts +14 -14
  137. package/src/index.ts +4 -4
  138. package/src/modules/anti-freeze-system/anti-freeze-system.constants.ts +1 -1
  139. package/src/modules/anti-freeze-system/anti-freeze-system.interfaces.ts +20 -20
  140. package/src/modules/anti-freeze-system/anti-freeze-system.module.ts +59 -55
  141. package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +136 -105
  142. package/src/modules/anti-freeze-system/index.ts +1 -1
  143. package/src/modules/base-achievements/base-achievements.module.ts +324 -322
  144. package/src/modules/base-achievements/index.ts +1 -1
  145. package/src/modules/confirmation-message-manager/confirmation-message-manager.constants.ts +3 -0
  146. package/src/modules/confirmation-message-manager/confirmation-message-manager.interfaces.ts +20 -0
  147. package/src/modules/confirmation-message-manager/confirmation-message-manager.module.ts +77 -0
  148. package/src/modules/confirmation-message-manager/confirmation-message-manager.service.ts +91 -0
  149. package/src/modules/event-bus/events-bus.app.subscribe.service.ts +20 -20
  150. package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +34 -34
  151. package/src/modules/event-bus/events-bus.many-tables-tournament.subscribe.service.ts +6 -6
  152. package/src/modules/event-bus/events-bus.module.ts +26 -23
  153. package/src/modules/event-bus/events-bus.one-table-tournament.subscribe.service.ts +6 -6
  154. package/src/modules/event-bus/events-bus.player-ws-message.subscribe.service.ts +30 -0
  155. package/src/modules/event-bus/events-bus.tournament.subscribe.service.ts +18 -18
  156. package/src/modules/event-bus/index.ts +6 -5
  157. package/src/modules/events/events.constants.ts +1 -1
  158. package/src/modules/events/events.gateway.ts +84 -70
  159. package/src/modules/events/events.interfaces.ts +17 -17
  160. package/src/modules/events/events.module.ts +32 -32
  161. package/src/modules/events/index.ts +1 -1
  162. package/src/modules/index.ts +28 -27
  163. package/src/modules/logger/index.ts +2 -2
  164. package/src/modules/logger/jp-logger.module.ts +10 -10
  165. package/src/modules/logger/jp-logger.service.ts +38 -38
  166. package/src/modules/main/index.ts +1 -1
  167. package/src/modules/main/main-tables-list-screen.view.ts +275 -275
  168. package/src/modules/main/main.constants.ts +1 -1
  169. package/src/modules/main/main.controller.ts +51 -72
  170. package/src/modules/main/main.interfaces.ts +17 -17
  171. package/src/modules/main/main.module.ts +73 -73
  172. package/src/modules/main/main.service.ts +154 -183
  173. package/src/modules/many-tables-tournament/index.ts +1 -1
  174. package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +143 -143
  175. package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +63 -63
  176. package/src/modules/many-tables-tournament/many-tables-tournament.constants.ts +3 -3
  177. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +164 -151
  178. package/src/modules/many-tables-tournament/many-tables-tournament.interfaces.ts +20 -20
  179. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +89 -80
  180. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +241 -208
  181. package/src/modules/many-tables-tournament-rooms-manager/index.ts +2 -2
  182. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.constants.ts +3 -3
  183. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.interfaces.ts +37 -37
  184. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.ts +89 -84
  185. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.ts +333 -331
  186. package/src/modules/menu/index.ts +1 -1
  187. package/src/modules/menu/menu-screen.view.ts +78 -71
  188. package/src/modules/menu/menu.constants.ts +1 -1
  189. package/src/modules/menu/menu.controller.ts +16 -16
  190. package/src/modules/menu/menu.interfaces.ts +18 -17
  191. package/src/modules/menu/menu.module.ts +39 -39
  192. package/src/modules/menu/menu.service.ts +40 -39
  193. package/src/modules/one-table-tournament/index.ts +1 -1
  194. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +166 -166
  195. package/src/modules/one-table-tournament/one-table-tournament.constants.ts +3 -3
  196. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +104 -104
  197. package/src/modules/one-table-tournament/one-table-tournament.interfaces.ts +20 -20
  198. package/src/modules/one-table-tournament/one-table-tournament.module.ts +80 -76
  199. package/src/modules/one-table-tournament/one-table-tournament.service.ts +146 -146
  200. package/src/modules/one-table-tournament-rooms-manager/index.ts +2 -2
  201. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.constants.ts +3 -3
  202. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.interfaces.ts +31 -31
  203. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts +71 -66
  204. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts +222 -220
  205. package/src/modules/players-manager/index.ts +2 -2
  206. package/src/modules/players-manager/players-manager.module.ts +9 -9
  207. package/src/modules/players-manager/players-manager.service.ts +27 -27
  208. package/src/modules/simple-rooms/index.ts +1 -1
  209. package/src/modules/simple-rooms/simple-rooms.constants.ts +1 -1
  210. package/src/modules/simple-rooms/simple-rooms.controller.ts +63 -63
  211. package/src/modules/simple-rooms/simple-rooms.interfaces.ts +20 -20
  212. package/src/modules/simple-rooms/simple-rooms.module.ts +39 -39
  213. package/src/modules/simple-rooms/simple-rooms.service.ts +95 -95
  214. package/src/modules/simple-rooms-manager/index.ts +2 -2
  215. package/src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts +3 -3
  216. package/src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts +26 -26
  217. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +65 -60
  218. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +192 -190
  219. package/src/modules/support/dump.service.ts +11 -11
  220. package/src/modules/support/index.ts +1 -1
  221. package/src/modules/support/metric.service.ts +41 -41
  222. package/src/modules/support/support.constants.ts +1 -1
  223. package/src/modules/support/support.controller.ts +79 -79
  224. package/src/modules/support/support.interfaces.ts +16 -16
  225. package/src/modules/support/support.module.ts +35 -35
  226. package/src/modules/support/support.service.ts +27 -27
  227. package/src/utils/date.ts +7 -7
  228. package/src/utils/game-table-result.ts +190 -129
  229. package/src/views/index.ts +5 -5
  230. package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +37 -37
  231. package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +37 -37
  232. package/src/views/simple-room-conifrm-exit-dialog.view.ts +37 -37
  233. package/src/views/table-summary.view.ts +104 -104
  234. package/src/views/tournament-buy-ticket-dialog.view.ts +34 -34
@@ -1,275 +1,275 @@
1
- import dayjs from 'dayjs';
2
- import {
3
- AppScreenIconEnum,
4
- AppScreenIdEnum,
5
- IAppScreen,
6
- UniversalScreenView,
7
- ILocaleService,
8
- AppScreeButtonIdEnum,
9
- StandardScreenComponent,
10
- AppScreenRouter,
11
- IAppScreenSectionListItem,
12
- StandardAppBarComponent,
13
- ArrowBackButtonComponent,
14
- CardListSectionComponent,
15
- MiniCardSectionListItemComponent,
16
- IconImageComponent,
17
- ExtendedCardSectionListItemComponent,
18
- TextButtonComponent,
19
- FullButtonsButtonsComponent,
20
- PrimaryButtonButtonsComponent,
21
- IconTextImageComponent,
22
- } from 'jp.common.models';
23
- import {
24
- SimpleRoom,
25
- OneTableTournamentRoom,
26
- ManyTablesTournamentRoom,
27
- TournamentMaster,
28
- TournamentRoom,
29
- } from 'jp.ms.common.engine';
30
- import { formatDate, formatTime, replacePattern } from 'jp.common.utils';
31
-
32
- import { TournamentBuyTicketDialogView } from '../../views';
33
-
34
- export class MainTablesListScreenView extends UniversalScreenView {
35
- private readonly simpleRooms: Array<SimpleRoom>;
36
- private readonly oneTableTournamentRooms: Array<OneTableTournamentRoom>;
37
- private readonly manyTablesTournamentRooms: Array<ManyTablesTournamentRoom>;
38
- private readonly playerId: string;
39
-
40
- constructor(
41
- localeService: ILocaleService,
42
- lang: string,
43
- simpleRooms: Array<SimpleRoom>,
44
- oneTableTournamentRooms: Array<OneTableTournamentRoom>,
45
- manyTablesTournamentRooms: Array<ManyTablesTournamentRoom>,
46
- playerId: string,
47
- ) {
48
- super(localeService, lang);
49
- this.simpleRooms = simpleRooms;
50
- this.oneTableTournamentRooms = oneTableTournamentRooms;
51
- this.manyTablesTournamentRooms = manyTablesTournamentRooms;
52
- this.playerId = playerId;
53
- }
54
-
55
- build(): IAppScreen {
56
- return new StandardScreenComponent(AppScreenIdEnum.ROOMS)
57
- .addAppBar(
58
- new StandardAppBarComponent(
59
- this.localeService.t('common.rooms.screen.title', {
60
- lang: this.lang,
61
- }),
62
- new ArrowBackButtonComponent(
63
- this.localeService.t('common.button.back', { lang: this.lang }),
64
- ),
65
- ),
66
- )
67
- .addSection(
68
- new CardListSectionComponent('id1', [
69
- ...this.getManyTablesTournamentsCardList(),
70
- ...this.getOneTableTournamentsCardList(),
71
- ...this.getSimpleRoomsTableCardList(),
72
- ]),
73
- )
74
- .addDialog(
75
- new TournamentBuyTicketDialogView(
76
- this.localeService,
77
- this.lang,
78
- ).build(),
79
- );
80
- }
81
-
82
- private getSimpleRoomsTableCardList(): Array<IAppScreenSectionListItem> {
83
- return this.simpleRooms.reduce<Array<IAppScreenSectionListItem>>(
84
- (result, room) => {
85
- const list = room.getTables().map(
86
- (table) =>
87
- new MiniCardSectionListItemComponent(
88
- table.getId(),
89
- table.getTitleWithNumber(this.lang),
90
- replacePattern(table.getSubtitle(this.lang), {
91
- HALF_BET: table.getHalfBet().toString(),
92
- BET: table.getBet().toString(),
93
- }),
94
- new IconTextImageComponent(
95
- `${table.getPlayers().length}/${table.getTableSize()}`,
96
- ),
97
- true,
98
- true,
99
- AppScreenRouter.getSimpleRoomTablePath(table.getId()),
100
- ),
101
- );
102
-
103
- return [...result, ...list];
104
- },
105
- [],
106
- );
107
- }
108
-
109
- private getOneTableTournamentsCardList(): Array<IAppScreenSectionListItem> {
110
- return this.oneTableTournamentRooms.map(
111
- (room) =>
112
- new MiniCardSectionListItemComponent(
113
- room.getId(),
114
- room.getTitle(this.lang),
115
- this.getOneTableTournamentSubtitle(room),
116
- this.getOneTableTournamentIcon(room),
117
- true,
118
- true,
119
- AppScreenRouter.getOneTableTournamentStatusPath(room.getId()),
120
- ),
121
- );
122
- }
123
-
124
- private getOneTableTournamentSubtitle(tournament: TournamentRoom): string {
125
- if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
126
- return this.localeService.t('common.tournaments.status.4', {
127
- lang: this.lang,
128
- });
129
- } else if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
130
- return this.localeService.t('common.tournaments.status.3', {
131
- lang: this.lang,
132
- });
133
- } else if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
134
- return this.localeService.t('common.tournaments.status.2', {
135
- lang: this.lang,
136
- });
137
- } else if (tournament.getRoomMaster<TournamentMaster>().isWaiting()) {
138
- return tournament.getSubtitle(this.lang);
139
- }
140
-
141
- return '';
142
- }
143
-
144
- private getOneTableTournamentIcon(tournament: TournamentRoom) {
145
- if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
146
- return new IconImageComponent(AppScreenIconEnum.EMOJI_EVENTS);
147
- }
148
-
149
- if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
150
- return new IconImageComponent(AppScreenIconEnum.INFO);
151
- }
152
-
153
- if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
154
- return new IconImageComponent(AppScreenIconEnum.BOLT);
155
- }
156
-
157
- return new IconTextImageComponent(
158
- `${tournament.getParticipants().length}/${tournament.getTableSize()}`,
159
- );
160
- }
161
-
162
- private getManyTablesTournamentsCardList(): Array<IAppScreenSectionListItem> {
163
- return this.manyTablesTournamentRooms.map((room) =>
164
- this.getManyTablesTournamentsCardListItem(room),
165
- );
166
- }
167
-
168
- private getManyTablesTournamentsCardListItem(
169
- tournament: ManyTablesTournamentRoom,
170
- ): IAppScreenSectionListItem {
171
- if (
172
- tournament.getRoomMaster<TournamentMaster>().isWaiting() ||
173
- tournament.getRoomMaster<TournamentMaster>().isInProgress()
174
- ) {
175
- return new ExtendedCardSectionListItemComponent(
176
- tournament.getId(),
177
- tournament.getTitle(this.lang),
178
- this.getManyTablesTournamentSubtitle(tournament),
179
- this.getManyTablesTournamentIcon(tournament),
180
- true,
181
- true,
182
- this.getManyTablesTournamentIcon(tournament),
183
- replacePattern(tournament.getDescription(this.lang), {
184
- PARTICIPANTS: tournament.getParticipants().length.toString(),
185
- TOTAL_PARTICIPANTS: tournament.getMaxParticipants().toString(),
186
- }),
187
- this.getManyTablesTournamenButtons(tournament),
188
- );
189
- }
190
-
191
- return new MiniCardSectionListItemComponent(
192
- tournament.getId(),
193
- tournament.getTitle(this.lang),
194
- this.getManyTablesTournamentSubtitle(tournament),
195
- this.getManyTablesTournamentIcon(tournament),
196
- true,
197
- true,
198
- AppScreenRouter.getManyTablesTournamentStatusPath(tournament.getId()),
199
- );
200
- }
201
-
202
- private getManyTablesTournamentIcon(tournament: TournamentRoom) {
203
- if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
204
- return new IconImageComponent(AppScreenIconEnum.INFO);
205
- }
206
-
207
- if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
208
- return new IconImageComponent(AppScreenIconEnum.BOLT);
209
- }
210
-
211
- return new IconImageComponent(AppScreenIconEnum.EMOJI_EVENTS);
212
- }
213
-
214
- private getManyTablesTournamentSubtitle(
215
- tournament: ManyTablesTournamentRoom,
216
- ): string {
217
- if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
218
- return this.localeService.t('common.tournaments.status.4', {
219
- lang: this.lang,
220
- });
221
- } else if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
222
- return this.localeService.t('common.tournaments.status.3', {
223
- lang: this.lang,
224
- });
225
- } else if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
226
- return this.localeService.t('common.tournaments.status.2', {
227
- lang: this.lang,
228
- });
229
- } else if (tournament.getRoomMaster<TournamentMaster>().isWaiting()) {
230
- return replacePattern(tournament.getSubtitle(this.lang), {
231
- DATE: dayjs(tournament.getScheduleDate()).isToday()
232
- ? this.localeService.t('common.tournaments.status.today', {
233
- lang: this.lang,
234
- })
235
- : formatDate(tournament.getScheduleDate() ?? ''),
236
- SCHEDULE_DATE: formatTime(tournament.getScheduleDate() ?? ''),
237
- });
238
- }
239
-
240
- return '';
241
- }
242
-
243
- private getManyTablesTournamenButtons(tournament: ManyTablesTournamentRoom) {
244
- if (tournament.isParticipant(this.playerId)) {
245
- return new PrimaryButtonButtonsComponent(
246
- new TextButtonComponent(
247
- this.localeService.t(
248
- 'common.tournaments.screen.button.join.tournament',
249
- { lang: this.lang },
250
- ),
251
- ).setId(
252
- AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_JOIN,
253
- ),
254
- );
255
- }
256
-
257
- return new FullButtonsButtonsComponent(
258
- new TextButtonComponent(
259
- this.localeService.t('common.tournaments.screen.button.buy.ticket', {
260
- lang: this.lang,
261
- }),
262
- ).setId(
263
- AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_BUY_TICKET,
264
- ),
265
- new TextButtonComponent(
266
- this.localeService.t(
267
- 'common.tournaments.screen.button.join.tournament',
268
- { lang: this.lang },
269
- ),
270
- ).setId(
271
- AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_JOIN,
272
- ),
273
- );
274
- }
275
- }
1
+ import dayjs from 'dayjs';
2
+ import {
3
+ AppScreenIconEnum,
4
+ AppScreenIdEnum,
5
+ IAppScreen,
6
+ UniversalScreenView,
7
+ ILocaleService,
8
+ AppScreeButtonIdEnum,
9
+ StandardScreenComponent,
10
+ AppScreenRouter,
11
+ IAppScreenSectionListItem,
12
+ StandardAppBarComponent,
13
+ ArrowBackButtonComponent,
14
+ CardListSectionComponent,
15
+ MiniCardSectionListItemComponent,
16
+ IconImageComponent,
17
+ ExtendedCardSectionListItemComponent,
18
+ TextButtonComponent,
19
+ FullButtonsButtonsComponent,
20
+ PrimaryButtonButtonsComponent,
21
+ IconTextImageComponent,
22
+ } from 'jp.common.models';
23
+ import {
24
+ SimpleRoom,
25
+ OneTableTournamentRoom,
26
+ ManyTablesTournamentRoom,
27
+ TournamentMaster,
28
+ TournamentRoom,
29
+ } from 'jp.ms.common.engine';
30
+ import { formatDate, formatTime, replacePattern } from 'jp.common.utils';
31
+
32
+ import { TournamentBuyTicketDialogView } from '../../views';
33
+
34
+ export class MainTablesListScreenView extends UniversalScreenView {
35
+ private readonly simpleRooms: Array<SimpleRoom>;
36
+ private readonly oneTableTournamentRooms: Array<OneTableTournamentRoom>;
37
+ private readonly manyTablesTournamentRooms: Array<ManyTablesTournamentRoom>;
38
+ private readonly playerId: string;
39
+
40
+ constructor(
41
+ localeService: ILocaleService,
42
+ lang: string,
43
+ simpleRooms: Array<SimpleRoom>,
44
+ oneTableTournamentRooms: Array<OneTableTournamentRoom>,
45
+ manyTablesTournamentRooms: Array<ManyTablesTournamentRoom>,
46
+ playerId: string,
47
+ ) {
48
+ super(localeService, lang);
49
+ this.simpleRooms = simpleRooms;
50
+ this.oneTableTournamentRooms = oneTableTournamentRooms;
51
+ this.manyTablesTournamentRooms = manyTablesTournamentRooms;
52
+ this.playerId = playerId;
53
+ }
54
+
55
+ build(): IAppScreen {
56
+ return new StandardScreenComponent(AppScreenIdEnum.ROOMS)
57
+ .addAppBar(
58
+ new StandardAppBarComponent(
59
+ this.localeService.t('common.rooms.screen.title', {
60
+ lang: this.lang,
61
+ }),
62
+ new ArrowBackButtonComponent(
63
+ this.localeService.t('common.button.back', { lang: this.lang }),
64
+ ),
65
+ ),
66
+ )
67
+ .addSection(
68
+ new CardListSectionComponent('id1', [
69
+ ...this.getManyTablesTournamentsCardList(),
70
+ ...this.getOneTableTournamentsCardList(),
71
+ ...this.getSimpleRoomsTableCardList(),
72
+ ]),
73
+ )
74
+ .addDialog(
75
+ new TournamentBuyTicketDialogView(
76
+ this.localeService,
77
+ this.lang,
78
+ ).build(),
79
+ );
80
+ }
81
+
82
+ private getSimpleRoomsTableCardList(): Array<IAppScreenSectionListItem> {
83
+ return this.simpleRooms.reduce<Array<IAppScreenSectionListItem>>(
84
+ (result, room) => {
85
+ const list = room.getTables().map(
86
+ (table) =>
87
+ new MiniCardSectionListItemComponent(
88
+ table.getId(),
89
+ table.getTitleWithNumber(this.lang),
90
+ replacePattern(table.getSubtitle(this.lang), {
91
+ HALF_BET: table.getHalfBet().toString(),
92
+ BET: table.getBet().toString(),
93
+ }),
94
+ new IconTextImageComponent(
95
+ `${table.getPlayers().length}/${table.getTableSize()}`,
96
+ ),
97
+ true,
98
+ true,
99
+ AppScreenRouter.getSimpleRoomTablePath(table.getId()),
100
+ ),
101
+ );
102
+
103
+ return [...result, ...list];
104
+ },
105
+ [],
106
+ );
107
+ }
108
+
109
+ private getOneTableTournamentsCardList(): Array<IAppScreenSectionListItem> {
110
+ return this.oneTableTournamentRooms.map(
111
+ (room) =>
112
+ new MiniCardSectionListItemComponent(
113
+ room.getId(),
114
+ room.getTitle(this.lang),
115
+ this.getOneTableTournamentSubtitle(room),
116
+ this.getOneTableTournamentIcon(room),
117
+ true,
118
+ true,
119
+ AppScreenRouter.getOneTableTournamentStatusPath(room.getId()),
120
+ ),
121
+ );
122
+ }
123
+
124
+ private getOneTableTournamentSubtitle(tournament: TournamentRoom): string {
125
+ if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
126
+ return this.localeService.t('common.tournaments.status.4', {
127
+ lang: this.lang,
128
+ });
129
+ } else if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
130
+ return this.localeService.t('common.tournaments.status.3', {
131
+ lang: this.lang,
132
+ });
133
+ } else if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
134
+ return this.localeService.t('common.tournaments.status.2', {
135
+ lang: this.lang,
136
+ });
137
+ } else if (tournament.getRoomMaster<TournamentMaster>().isWaiting()) {
138
+ return tournament.getSubtitle(this.lang);
139
+ }
140
+
141
+ return '';
142
+ }
143
+
144
+ private getOneTableTournamentIcon(tournament: TournamentRoom) {
145
+ if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
146
+ return new IconImageComponent(AppScreenIconEnum.EMOJI_EVENTS);
147
+ }
148
+
149
+ if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
150
+ return new IconImageComponent(AppScreenIconEnum.INFO);
151
+ }
152
+
153
+ if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
154
+ return new IconImageComponent(AppScreenIconEnum.BOLT);
155
+ }
156
+
157
+ return new IconTextImageComponent(
158
+ `${tournament.getParticipants().length}/${tournament.getTableSize()}`,
159
+ );
160
+ }
161
+
162
+ private getManyTablesTournamentsCardList(): Array<IAppScreenSectionListItem> {
163
+ return this.manyTablesTournamentRooms.map((room) =>
164
+ this.getManyTablesTournamentsCardListItem(room),
165
+ );
166
+ }
167
+
168
+ private getManyTablesTournamentsCardListItem(
169
+ tournament: ManyTablesTournamentRoom,
170
+ ): IAppScreenSectionListItem {
171
+ if (
172
+ tournament.getRoomMaster<TournamentMaster>().isWaiting() ||
173
+ tournament.getRoomMaster<TournamentMaster>().isInProgress()
174
+ ) {
175
+ return new ExtendedCardSectionListItemComponent(
176
+ tournament.getId(),
177
+ tournament.getTitle(this.lang),
178
+ this.getManyTablesTournamentSubtitle(tournament),
179
+ this.getManyTablesTournamentIcon(tournament),
180
+ true,
181
+ true,
182
+ this.getManyTablesTournamentIcon(tournament),
183
+ replacePattern(tournament.getDescription(this.lang), {
184
+ PARTICIPANTS: tournament.getParticipants().length.toString(),
185
+ TOTAL_PARTICIPANTS: tournament.getMaxParticipants().toString(),
186
+ }),
187
+ this.getManyTablesTournamenButtons(tournament),
188
+ );
189
+ }
190
+
191
+ return new MiniCardSectionListItemComponent(
192
+ tournament.getId(),
193
+ tournament.getTitle(this.lang),
194
+ this.getManyTablesTournamentSubtitle(tournament),
195
+ this.getManyTablesTournamentIcon(tournament),
196
+ true,
197
+ true,
198
+ AppScreenRouter.getManyTablesTournamentStatusPath(tournament.getId()),
199
+ );
200
+ }
201
+
202
+ private getManyTablesTournamentIcon(tournament: TournamentRoom) {
203
+ if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
204
+ return new IconImageComponent(AppScreenIconEnum.INFO);
205
+ }
206
+
207
+ if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
208
+ return new IconImageComponent(AppScreenIconEnum.BOLT);
209
+ }
210
+
211
+ return new IconImageComponent(AppScreenIconEnum.EMOJI_EVENTS);
212
+ }
213
+
214
+ private getManyTablesTournamentSubtitle(
215
+ tournament: ManyTablesTournamentRoom,
216
+ ): string {
217
+ if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
218
+ return this.localeService.t('common.tournaments.status.4', {
219
+ lang: this.lang,
220
+ });
221
+ } else if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
222
+ return this.localeService.t('common.tournaments.status.3', {
223
+ lang: this.lang,
224
+ });
225
+ } else if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
226
+ return this.localeService.t('common.tournaments.status.2', {
227
+ lang: this.lang,
228
+ });
229
+ } else if (tournament.getRoomMaster<TournamentMaster>().isWaiting()) {
230
+ return replacePattern(tournament.getSubtitle(this.lang), {
231
+ DATE: dayjs(tournament.getScheduleDate()).isToday()
232
+ ? this.localeService.t('common.tournaments.status.today', {
233
+ lang: this.lang,
234
+ })
235
+ : formatDate(tournament.getScheduleDate() ?? ''),
236
+ SCHEDULE_DATE: formatTime(tournament.getScheduleDate() ?? ''),
237
+ });
238
+ }
239
+
240
+ return '';
241
+ }
242
+
243
+ private getManyTablesTournamenButtons(tournament: ManyTablesTournamentRoom) {
244
+ if (tournament.isParticipant(this.playerId)) {
245
+ return new PrimaryButtonButtonsComponent(
246
+ new TextButtonComponent(
247
+ this.localeService.t(
248
+ 'common.tournaments.screen.button.join.tournament',
249
+ { lang: this.lang },
250
+ ),
251
+ ).setId(
252
+ AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_JOIN,
253
+ ),
254
+ );
255
+ }
256
+
257
+ return new FullButtonsButtonsComponent(
258
+ new TextButtonComponent(
259
+ this.localeService.t('common.tournaments.screen.button.buy.ticket', {
260
+ lang: this.lang,
261
+ }),
262
+ ).setId(
263
+ AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_BUY_TICKET,
264
+ ),
265
+ new TextButtonComponent(
266
+ this.localeService.t(
267
+ 'common.tournaments.screen.button.join.tournament',
268
+ { lang: this.lang },
269
+ ),
270
+ ).setId(
271
+ AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_JOIN,
272
+ ),
273
+ );
274
+ }
275
+ }
@@ -1 +1 @@
1
- export const MAIN_OPTIONS = Symbol('MAIN_OPTIONS');
1
+ export const MAIN_OPTIONS = Symbol('MAIN_OPTIONS');