@mtgame/core 0.0.1

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 (293) hide show
  1. package/README.md +24 -0
  2. package/api/basketball-game-api.d.ts +17 -0
  3. package/api/league-api.d.ts +16 -0
  4. package/api/media-api.d.ts +24 -0
  5. package/api/notification-api.d.ts +4 -0
  6. package/api/notification-base-api.d.ts +22 -0
  7. package/api/org-notification-api.d.ts +4 -0
  8. package/api/paginated-response.interface.d.ts +4 -0
  9. package/api/public-api.d.ts +12 -0
  10. package/api/reference-api.d.ts +11 -0
  11. package/api/tournament-api.d.ts +64 -0
  12. package/api/tournament-join-api.d.ts +14 -0
  13. package/api/tournament-stage-api.d.ts +15 -0
  14. package/api/volleyball-game-api.d.ts +17 -0
  15. package/bundles/mtgame-core.umd.js +4785 -0
  16. package/bundles/mtgame-core.umd.js.map +1 -0
  17. package/bundles/mtgame-core.umd.min.js +16 -0
  18. package/bundles/mtgame-core.umd.min.js.map +1 -0
  19. package/esm2015/api/basketball-game-api.js +54 -0
  20. package/esm2015/api/league-api.js +60 -0
  21. package/esm2015/api/media-api.js +110 -0
  22. package/esm2015/api/notification-api.js +18 -0
  23. package/esm2015/api/notification-base-api.js +83 -0
  24. package/esm2015/api/org-notification-api.js +18 -0
  25. package/esm2015/api/paginated-response.interface.js +1 -0
  26. package/esm2015/api/public-api.js +12 -0
  27. package/esm2015/api/reference-api.js +40 -0
  28. package/esm2015/api/tournament-api.js +187 -0
  29. package/esm2015/api/tournament-join-api.js +51 -0
  30. package/esm2015/api/tournament-stage-api.js +56 -0
  31. package/esm2015/api/volleyball-game-api.js +54 -0
  32. package/esm2015/http-cookie.interceptor.js +34 -0
  33. package/esm2015/localization/basketball-game-log-types.js +26 -0
  34. package/esm2015/localization/overtime-types.js +7 -0
  35. package/esm2015/localization/public-api.js +7 -0
  36. package/esm2015/localization/team-event-type.js +6 -0
  37. package/esm2015/localization/team-user-role.js +7 -0
  38. package/esm2015/localization/user-profile.js +46 -0
  39. package/esm2015/localization/volleyball-game-log-types.js +25 -0
  40. package/esm2015/models/basketball-game-config.js +42 -0
  41. package/esm2015/models/basketball-game-log.js +109 -0
  42. package/esm2015/models/basketball-game-statistic.js +50 -0
  43. package/esm2015/models/basketball-game-team-statistic.js +27 -0
  44. package/esm2015/models/basketball-profile.js +43 -0
  45. package/esm2015/models/basketball-statistic.js +69 -0
  46. package/esm2015/models/city.js +22 -0
  47. package/esm2015/models/file.js +38 -0
  48. package/esm2015/models/game-invite.js +37 -0
  49. package/esm2015/models/game-log-base.js +1 -0
  50. package/esm2015/models/game-statistic-base.js +1 -0
  51. package/esm2015/models/game-timeline-stages.js +49 -0
  52. package/esm2015/models/game-user.js +32 -0
  53. package/esm2015/models/game.js +108 -0
  54. package/esm2015/models/league-court.js +24 -0
  55. package/esm2015/models/league.js +52 -0
  56. package/esm2015/models/media-item.js +40 -0
  57. package/esm2015/models/notification-settings.js +35 -0
  58. package/esm2015/models/notification.js +134 -0
  59. package/esm2015/models/organization.js +27 -0
  60. package/esm2015/models/playoff.js +78 -0
  61. package/esm2015/models/poll.js +132 -0
  62. package/esm2015/models/public-api.js +50 -0
  63. package/esm2015/models/sport.js +47 -0
  64. package/esm2015/models/team-event-invite.js +32 -0
  65. package/esm2015/models/team-event-type.js +6 -0
  66. package/esm2015/models/team-event.js +45 -0
  67. package/esm2015/models/team-invite-external.js +25 -0
  68. package/esm2015/models/team-invite.js +41 -0
  69. package/esm2015/models/team-user.js +39 -0
  70. package/esm2015/models/team.js +56 -0
  71. package/esm2015/models/tournament-disqualification.js +29 -0
  72. package/esm2015/models/tournament-event.js +38 -0
  73. package/esm2015/models/tournament-group.js +23 -0
  74. package/esm2015/models/tournament-invite.js +39 -0
  75. package/esm2015/models/tournament-join-team.js +55 -0
  76. package/esm2015/models/tournament-news.js +33 -0
  77. package/esm2015/models/tournament-stage-team.js +45 -0
  78. package/esm2015/models/tournament-stage.js +35 -0
  79. package/esm2015/models/tournament-team-user-invite.js +29 -0
  80. package/esm2015/models/tournament-team-user.js +49 -0
  81. package/esm2015/models/tournament-team.js +54 -0
  82. package/esm2015/models/tournament.js +161 -0
  83. package/esm2015/models/user-profile.js +24 -0
  84. package/esm2015/models/user.js +74 -0
  85. package/esm2015/models/util.js +208 -0
  86. package/esm2015/models/volleyball-game-config.js +40 -0
  87. package/esm2015/models/volleyball-game-log.js +139 -0
  88. package/esm2015/models/volleyball-game-statistic.js +50 -0
  89. package/esm2015/models/volleyball-game-team-statistic.js +27 -0
  90. package/esm2015/models/volleyball-profile.js +43 -0
  91. package/esm2015/models/volleyball-statistic.js +66 -0
  92. package/esm2015/mtgame-core.js +5 -0
  93. package/esm2015/public-api.js +8 -0
  94. package/esm2015/services/base.service.js +18 -0
  95. package/esm2015/services/centrifugo.service.js +107 -0
  96. package/esm2015/services/config.service.js +40 -0
  97. package/esm2015/services/public-api.js +4 -0
  98. package/esm2015/storage/local-storage-engine.js +18 -0
  99. package/esm2015/storage/public-api.js +4 -0
  100. package/esm2015/storage/storage-engine.js +61 -0
  101. package/esm2015/storage/store.js +63 -0
  102. package/esm2015/utils/array.js +18 -0
  103. package/esm2015/utils/component-destroyed.js +21 -0
  104. package/esm2015/utils/cookie.js +9 -0
  105. package/esm2015/utils/data.js +75 -0
  106. package/esm2015/utils/device.js +14 -0
  107. package/esm2015/utils/enum.js +7 -0
  108. package/esm2015/utils/errors.js +10 -0
  109. package/esm2015/utils/favicon.js +25 -0
  110. package/esm2015/utils/form.js +22 -0
  111. package/esm2015/utils/public-api.js +11 -0
  112. package/esm2015/utils/validators.js +47 -0
  113. package/esm5/api/basketball-game-api.js +65 -0
  114. package/esm5/api/league-api.js +70 -0
  115. package/esm5/api/media-api.js +125 -0
  116. package/esm5/api/notification-api.js +21 -0
  117. package/esm5/api/notification-base-api.js +109 -0
  118. package/esm5/api/org-notification-api.js +21 -0
  119. package/esm5/api/paginated-response.interface.js +1 -0
  120. package/esm5/api/public-api.js +12 -0
  121. package/esm5/api/reference-api.js +45 -0
  122. package/esm5/api/tournament-api.js +245 -0
  123. package/esm5/api/tournament-join-api.js +59 -0
  124. package/esm5/api/tournament-stage-api.js +65 -0
  125. package/esm5/api/volleyball-game-api.js +65 -0
  126. package/esm5/http-cookie.interceptor.js +35 -0
  127. package/esm5/localization/basketball-game-log-types.js +27 -0
  128. package/esm5/localization/overtime-types.js +8 -0
  129. package/esm5/localization/public-api.js +7 -0
  130. package/esm5/localization/team-event-type.js +7 -0
  131. package/esm5/localization/team-user-role.js +8 -0
  132. package/esm5/localization/user-profile.js +47 -0
  133. package/esm5/localization/volleyball-game-log-types.js +26 -0
  134. package/esm5/models/basketball-game-config.js +47 -0
  135. package/esm5/models/basketball-game-log.js +117 -0
  136. package/esm5/models/basketball-game-statistic.js +63 -0
  137. package/esm5/models/basketball-game-team-statistic.js +32 -0
  138. package/esm5/models/basketball-profile.js +48 -0
  139. package/esm5/models/basketball-statistic.js +78 -0
  140. package/esm5/models/city.js +27 -0
  141. package/esm5/models/file.js +41 -0
  142. package/esm5/models/game-invite.js +42 -0
  143. package/esm5/models/game-log-base.js +1 -0
  144. package/esm5/models/game-statistic-base.js +1 -0
  145. package/esm5/models/game-timeline-stages.js +57 -0
  146. package/esm5/models/game-user.js +37 -0
  147. package/esm5/models/game.js +134 -0
  148. package/esm5/models/league-court.js +29 -0
  149. package/esm5/models/league.js +69 -0
  150. package/esm5/models/media-item.js +49 -0
  151. package/esm5/models/notification-settings.js +40 -0
  152. package/esm5/models/notification.js +143 -0
  153. package/esm5/models/organization.js +32 -0
  154. package/esm5/models/playoff.js +91 -0
  155. package/esm5/models/poll.js +154 -0
  156. package/esm5/models/public-api.js +50 -0
  157. package/esm5/models/sport.js +52 -0
  158. package/esm5/models/team-event-invite.js +35 -0
  159. package/esm5/models/team-event-type.js +6 -0
  160. package/esm5/models/team-event.js +58 -0
  161. package/esm5/models/team-invite-external.js +30 -0
  162. package/esm5/models/team-invite.js +46 -0
  163. package/esm5/models/team-user.js +44 -0
  164. package/esm5/models/team.js +61 -0
  165. package/esm5/models/tournament-disqualification.js +34 -0
  166. package/esm5/models/tournament-event.js +43 -0
  167. package/esm5/models/tournament-group.js +28 -0
  168. package/esm5/models/tournament-invite.js +48 -0
  169. package/esm5/models/tournament-join-team.js +73 -0
  170. package/esm5/models/tournament-news.js +38 -0
  171. package/esm5/models/tournament-stage-team.js +54 -0
  172. package/esm5/models/tournament-stage.js +40 -0
  173. package/esm5/models/tournament-team-user-invite.js +34 -0
  174. package/esm5/models/tournament-team-user.js +66 -0
  175. package/esm5/models/tournament-team.js +63 -0
  176. package/esm5/models/tournament.js +176 -0
  177. package/esm5/models/user-profile.js +27 -0
  178. package/esm5/models/user.js +95 -0
  179. package/esm5/models/util.js +275 -0
  180. package/esm5/models/volleyball-game-config.js +49 -0
  181. package/esm5/models/volleyball-game-log.js +142 -0
  182. package/esm5/models/volleyball-game-statistic.js +71 -0
  183. package/esm5/models/volleyball-game-team-statistic.js +32 -0
  184. package/esm5/models/volleyball-profile.js +48 -0
  185. package/esm5/models/volleyball-statistic.js +71 -0
  186. package/esm5/mtgame-core.js +5 -0
  187. package/esm5/public-api.js +8 -0
  188. package/esm5/services/base.service.js +19 -0
  189. package/esm5/services/centrifugo.service.js +111 -0
  190. package/esm5/services/config.service.js +52 -0
  191. package/esm5/services/public-api.js +4 -0
  192. package/esm5/storage/local-storage-engine.js +25 -0
  193. package/esm5/storage/public-api.js +4 -0
  194. package/esm5/storage/storage-engine.js +77 -0
  195. package/esm5/storage/store.js +77 -0
  196. package/esm5/utils/array.js +18 -0
  197. package/esm5/utils/component-destroyed.js +21 -0
  198. package/esm5/utils/cookie.js +9 -0
  199. package/esm5/utils/data.js +79 -0
  200. package/esm5/utils/device.js +14 -0
  201. package/esm5/utils/enum.js +7 -0
  202. package/esm5/utils/errors.js +12 -0
  203. package/esm5/utils/favicon.js +47 -0
  204. package/esm5/utils/form.js +22 -0
  205. package/esm5/utils/public-api.js +11 -0
  206. package/esm5/utils/validators.js +49 -0
  207. package/fesm2015/mtgame-core.js +3749 -0
  208. package/fesm2015/mtgame-core.js.map +1 -0
  209. package/fesm5/mtgame-core.js +4455 -0
  210. package/fesm5/mtgame-core.js.map +1 -0
  211. package/http-cookie.interceptor.d.ts +10 -0
  212. package/localization/basketball-game-log-types.d.ts +25 -0
  213. package/localization/overtime-types.d.ts +6 -0
  214. package/localization/public-api.d.ts +6 -0
  215. package/localization/team-event-type.d.ts +5 -0
  216. package/localization/team-user-role.d.ts +6 -0
  217. package/localization/user-profile.d.ts +45 -0
  218. package/localization/volleyball-game-log-types.d.ts +24 -0
  219. package/models/basketball-game-config.d.ts +22 -0
  220. package/models/basketball-game-log.d.ts +52 -0
  221. package/models/basketball-game-statistic.d.ts +29 -0
  222. package/models/basketball-game-team-statistic.d.ts +8 -0
  223. package/models/basketball-profile.d.ts +20 -0
  224. package/models/basketball-statistic.d.ts +44 -0
  225. package/models/city.d.ts +7 -0
  226. package/models/file.d.ts +14 -0
  227. package/models/game-invite.d.ts +16 -0
  228. package/models/game-log-base.d.ts +10 -0
  229. package/models/game-statistic-base.d.ts +3 -0
  230. package/models/game-timeline-stages.d.ts +18 -0
  231. package/models/game-user.d.ts +12 -0
  232. package/models/game.d.ts +56 -0
  233. package/models/league-court.d.ts +9 -0
  234. package/models/league.d.ts +25 -0
  235. package/models/media-item.d.ts +15 -0
  236. package/models/notification-settings.d.ts +15 -0
  237. package/models/notification.d.ts +98 -0
  238. package/models/organization.d.ts +9 -0
  239. package/models/playoff.d.ts +25 -0
  240. package/models/poll.d.ts +46 -0
  241. package/models/public-api.d.ts +50 -0
  242. package/models/sport.d.ts +19 -0
  243. package/models/team-event-invite.d.ts +12 -0
  244. package/models/team-event-type.d.ts +4 -0
  245. package/models/team-event.d.ts +17 -0
  246. package/models/team-invite-external.d.ts +10 -0
  247. package/models/team-invite.d.ts +20 -0
  248. package/models/team-user.d.ts +18 -0
  249. package/models/team.d.ts +21 -0
  250. package/models/tournament-disqualification.d.ts +10 -0
  251. package/models/tournament-event.d.ts +16 -0
  252. package/models/tournament-group.d.ts +10 -0
  253. package/models/tournament-invite.d.ts +17 -0
  254. package/models/tournament-join-team.d.ts +19 -0
  255. package/models/tournament-news.d.ts +13 -0
  256. package/models/tournament-stage-team.d.ts +21 -0
  257. package/models/tournament-stage.d.ts +15 -0
  258. package/models/tournament-team-user-invite.d.ts +11 -0
  259. package/models/tournament-team-user.d.ts +22 -0
  260. package/models/tournament-team.d.ts +28 -0
  261. package/models/tournament.d.ts +87 -0
  262. package/models/user-profile.d.ts +8 -0
  263. package/models/user.d.ts +33 -0
  264. package/models/util.d.ts +49 -0
  265. package/models/volleyball-game-config.d.ts +17 -0
  266. package/models/volleyball-game-log.d.ts +54 -0
  267. package/models/volleyball-game-statistic.d.ts +28 -0
  268. package/models/volleyball-game-team-statistic.d.ts +8 -0
  269. package/models/volleyball-profile.d.ts +20 -0
  270. package/models/volleyball-statistic.d.ts +43 -0
  271. package/mtgame-core.d.ts +4 -0
  272. package/mtgame-core.metadata.json +1 -0
  273. package/package.json +23 -0
  274. package/public-api.d.ts +7 -0
  275. package/services/base.service.d.ts +5 -0
  276. package/services/centrifugo.service.d.ts +20 -0
  277. package/services/config.service.d.ts +11 -0
  278. package/services/public-api.d.ts +3 -0
  279. package/storage/local-storage-engine.d.ts +6 -0
  280. package/storage/public-api.d.ts +3 -0
  281. package/storage/storage-engine.d.ts +24 -0
  282. package/storage/store.d.ts +21 -0
  283. package/utils/array.d.ts +2 -0
  284. package/utils/component-destroyed.d.ts +7 -0
  285. package/utils/cookie.d.ts +1 -0
  286. package/utils/data.d.ts +6 -0
  287. package/utils/device.d.ts +1 -0
  288. package/utils/enum.d.ts +1 -0
  289. package/utils/errors.d.ts +1 -0
  290. package/utils/favicon.d.ts +9 -0
  291. package/utils/form.d.ts +2 -0
  292. package/utils/public-api.d.ts +10 -0
  293. package/utils/validators.d.ts +25 -0
@@ -0,0 +1,74 @@
1
+ import { __decorate } from "tslib";
2
+ import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';
3
+ import { UserProfile } from './user-profile';
4
+ import { File } from './file';
5
+ import { City } from './city';
6
+ import { BasketballProfile } from './basketball-profile';
7
+ import { VolleyballProfile } from './volleyball-profile';
8
+ export var UserGender;
9
+ (function (UserGender) {
10
+ UserGender[UserGender["male"] = 1] = "male";
11
+ UserGender[UserGender["female"] = 2] = "female";
12
+ })(UserGender || (UserGender = {}));
13
+ let User = class User extends BaseModel {
14
+ static toFront(data) {
15
+ return null;
16
+ }
17
+ static toBack(user) {
18
+ return null;
19
+ }
20
+ get fullName() {
21
+ return [this.lastName, this.firstName].filter(s => s).join(' ');
22
+ }
23
+ get shortName() {
24
+ return [this.lastName, this.firstName].filter(s => s).join(' ');
25
+ }
26
+ get initials() {
27
+ return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');
28
+ }
29
+ get age() {
30
+ if (!this.birthDate) {
31
+ return null;
32
+ }
33
+ const diff = (new Date()).getTime() - this.birthDate.getTime();
34
+ return Math.floor(diff / (365 * 86400 * 1000));
35
+ }
36
+ };
37
+ __decorate([
38
+ ToFrontHook
39
+ ], User, "toFront", null);
40
+ __decorate([
41
+ ToBackHook
42
+ ], User, "toBack", null);
43
+ User = __decorate([
44
+ ModelInstance({
45
+ mappingFields: {
46
+ id: 'id',
47
+ last_name: 'lastName',
48
+ first_name: 'firstName',
49
+ middle_name: 'middleName',
50
+ email: 'email',
51
+ phone: 'phone',
52
+ birth_date: 'birthDate',
53
+ photo: 'photo',
54
+ profile: 'profile',
55
+ basketball_profile: 'basketballProfile',
56
+ volleyball_profile: 'volleyballProfile',
57
+ wizards: 'wizards',
58
+ city: 'city',
59
+ gender: 'gender',
60
+ is_active: 'isActive',
61
+ },
62
+ relation: {
63
+ birthDate: DateField,
64
+ photo: File,
65
+ profile: UserProfile,
66
+ basketballProfile: BasketballProfile,
67
+ volleyballProfile: VolleyballProfile,
68
+ city: City,
69
+ gender: enumField(UserGender)
70
+ }
71
+ })
72
+ ], User);
73
+ export { User };
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxNQUFNLENBQU4sSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ3BCLDJDQUFRLENBQUE7SUFDUiwrQ0FBTSxDQUFBO0FBQ1IsQ0FBQyxFQUhXLFVBQVUsS0FBVixVQUFVLFFBR3JCO0FBOEJELElBQWEsSUFBSSxHQUFqQixNQUFhLElBQUssU0FBUSxTQUFTO0lBa0JqQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0YsQ0FBQTtBQTVCQztJQURDLFdBQVc7eUJBR1g7QUFHRDtJQURDLFVBQVU7d0JBR1Y7QUF6QlUsSUFBSTtJQTVCaEIsYUFBYSxDQUFDO1FBQ2IsYUFBYSxFQUFFO1lBQ2IsRUFBRSxFQUFFLElBQUk7WUFDUixTQUFTLEVBQUUsVUFBVTtZQUNyQixVQUFVLEVBQUUsV0FBVztZQUN2QixXQUFXLEVBQUUsWUFBWTtZQUN6QixLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLE9BQU87WUFDZCxPQUFPLEVBQUUsU0FBUztZQUNsQixrQkFBa0IsRUFBRSxtQkFBbUI7WUFDdkMsa0JBQWtCLEVBQUUsbUJBQW1CO1lBQ3ZDLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFLFVBQVU7U0FDdEI7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDcEMsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQztTQUM5QjtLQUNGLENBQUM7R0FDVyxJQUFJLENBOENoQjtTQTlDWSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsLCBEYXRlRmllbGQsIGVudW1GaWVsZCwgTW9kZWxJbnN0YW5jZSwgVG9CYWNrSG9vaywgVG9Gcm9udEhvb2sgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGUgfSBmcm9tICcuL3VzZXItcHJvZmlsZSc7XG5pbXBvcnQgeyBGaWxlIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IENpdHkgfSBmcm9tICcuL2NpdHknO1xuaW1wb3J0IHsgQmFza2V0YmFsbFByb2ZpbGUgfSBmcm9tICcuL2Jhc2tldGJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBWb2xsZXliYWxsUHJvZmlsZSB9IGZyb20gJy4vdm9sbGV5YmFsbC1wcm9maWxlJztcblxuZXhwb3J0IGVudW0gVXNlckdlbmRlciB7XG4gIG1hbGUgPSAxLFxuICBmZW1hbGVcbn1cblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgaWQ6ICdpZCcsXG4gICAgbGFzdF9uYW1lOiAnbGFzdE5hbWUnLFxuICAgIGZpcnN0X25hbWU6ICdmaXJzdE5hbWUnLFxuICAgIG1pZGRsZV9uYW1lOiAnbWlkZGxlTmFtZScsXG4gICAgZW1haWw6ICdlbWFpbCcsXG4gICAgcGhvbmU6ICdwaG9uZScsXG4gICAgYmlydGhfZGF0ZTogJ2JpcnRoRGF0ZScsXG4gICAgcGhvdG86ICdwaG90bycsXG4gICAgcHJvZmlsZTogJ3Byb2ZpbGUnLFxuICAgIGJhc2tldGJhbGxfcHJvZmlsZTogJ2Jhc2tldGJhbGxQcm9maWxlJyxcbiAgICB2b2xsZXliYWxsX3Byb2ZpbGU6ICd2b2xsZXliYWxsUHJvZmlsZScsXG4gICAgd2l6YXJkczogJ3dpemFyZHMnLFxuICAgIGNpdHk6ICdjaXR5JyxcbiAgICBnZW5kZXI6ICdnZW5kZXInLFxuICAgIGlzX2FjdGl2ZTogJ2lzQWN0aXZlJyxcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICBiaXJ0aERhdGU6IERhdGVGaWVsZCxcbiAgICBwaG90bzogRmlsZSxcbiAgICBwcm9maWxlOiBVc2VyUHJvZmlsZSxcbiAgICBiYXNrZXRiYWxsUHJvZmlsZTogQmFza2V0YmFsbFByb2ZpbGUsXG4gICAgdm9sbGV5YmFsbFByb2ZpbGU6IFZvbGxleWJhbGxQcm9maWxlLFxuICAgIGNpdHk6IENpdHksXG4gICAgZ2VuZGVyOiBlbnVtRmllbGQoVXNlckdlbmRlcilcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgaWQ6IG51bWJlcjtcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIG1pZGRsZU5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbiAgYmlydGhEYXRlOiBEYXRlO1xuICBwcm9maWxlOiBVc2VyUHJvZmlsZTtcbiAgYmFza2V0YmFsbFByb2ZpbGU6IEJhc2tldGJhbGxQcm9maWxlO1xuICB2b2xsZXliYWxsUHJvZmlsZTogVm9sbGV5YmFsbFByb2ZpbGU7XG4gIHBob3RvOiBGaWxlO1xuICB3aXphcmRzOiBzdHJpbmdbXTtcbiAgY2l0eTogQ2l0eTtcbiAgZ2VuZGVyOiBVc2VyR2VuZGVyO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBUb0JhY2tIb29rXG4gIHN0YXRpYyB0b0JhY2sodXNlcjogVXNlcik6IGFueSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgZnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW3RoaXMubGFzdE5hbWUsIHRoaXMuZmlyc3ROYW1lXS5maWx0ZXIocyA9PiBzKS5qb2luKCcgJyk7XG4gIH1cblxuICBnZXQgc2hvcnROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLmxhc3ROYW1lLCB0aGlzLmZpcnN0TmFtZV0uZmlsdGVyKHMgPT4gcykuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLmxhc3ROYW1lLCB0aGlzLmZpcnN0TmFtZV0uZmlsdGVyKHMgPT4gcykubWFwKHMgPT4gcy5zdWJzdHIoMCwgMSkpLmpvaW4oJycpO1xuICB9XG5cbiAgZ2V0IGFnZSgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5iaXJ0aERhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkaWZmID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAtIHRoaXMuYmlydGhEYXRlLmdldFRpbWUoKTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmIC8gKDM2NSAqIDg2NDAwICogMTAwMCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,208 @@
1
+ export const MODEL_MAPPING_FIELDS_KEY = '_mapping_fields_';
2
+ export const MODEL_RELATION_KEY = '_relation_';
3
+ export const MODEL_TO_FRONT_KEY = '_to_front_';
4
+ export const MODEL_TO_BACK_KEY = '_to_back_';
5
+ export class BaseModel {
6
+ constructor(data) {
7
+ if (data) {
8
+ for (const key of Object.keys(data)) {
9
+ this[key] = data[key];
10
+ }
11
+ }
12
+ }
13
+ static toFront(dto) {
14
+ return undefined;
15
+ }
16
+ static toBack(dto) {
17
+ return undefined;
18
+ }
19
+ }
20
+ export function enumField(enumClass) {
21
+ return {
22
+ toFront: (value) => {
23
+ if (isNaN(+value)) {
24
+ return enumClass[value];
25
+ }
26
+ else {
27
+ return value;
28
+ }
29
+ },
30
+ toBack: (value) => {
31
+ if (isNaN(+value)) {
32
+ return value;
33
+ }
34
+ else {
35
+ return enumClass[value];
36
+ }
37
+ }
38
+ };
39
+ }
40
+ export function listField(modelClass) {
41
+ return {
42
+ toFront: (value) => {
43
+ if (!Array.isArray(value)) {
44
+ return [];
45
+ }
46
+ return modelClass.toFront(value);
47
+ },
48
+ toBack: (value) => {
49
+ if (!Array.isArray(value)) {
50
+ return [];
51
+ }
52
+ return modelClass.toBack(value);
53
+ }
54
+ };
55
+ }
56
+ export class DateField extends BaseModel {
57
+ static toFront(date) {
58
+ if (date) {
59
+ return new Date(date);
60
+ }
61
+ else {
62
+ return undefined;
63
+ }
64
+ }
65
+ static toBack(date) {
66
+ if (date) {
67
+ const dateUtc = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
68
+ return dateUtc.toISOString().slice(0, 10);
69
+ }
70
+ else {
71
+ return undefined;
72
+ }
73
+ }
74
+ }
75
+ export class DateTimeField extends BaseModel {
76
+ static toFront(date) {
77
+ if (date) {
78
+ return new Date(date);
79
+ }
80
+ else {
81
+ return undefined;
82
+ }
83
+ }
84
+ static toBack(date) {
85
+ if (date) {
86
+ const dateUtc = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
87
+ return date.toISOString();
88
+ }
89
+ else {
90
+ return undefined;
91
+ }
92
+ }
93
+ }
94
+ export function ModelInstance(config) {
95
+ return (target) => {
96
+ if (config) {
97
+ if (config.mappingFields) {
98
+ target[MODEL_MAPPING_FIELDS_KEY] = config.mappingFields;
99
+ }
100
+ if (config.relation) {
101
+ target[MODEL_RELATION_KEY] = config.relation;
102
+ }
103
+ target[MODEL_TO_FRONT_KEY] = (dto, path) => {
104
+ return toFront(target, dto, path);
105
+ };
106
+ target[MODEL_TO_BACK_KEY] = (dto, path) => {
107
+ return toBack(target, dto, path);
108
+ };
109
+ }
110
+ };
111
+ }
112
+ export const ToFrontHook = (target, key, descriptor) => {
113
+ return {
114
+ value: (...args) => {
115
+ const parseMethod = target[MODEL_TO_FRONT_KEY];
116
+ if (parseMethod) {
117
+ return parseMethod(args[0], (args.length > 1 ? args[1] : undefined));
118
+ }
119
+ return undefined;
120
+ }
121
+ };
122
+ };
123
+ export const ToBackHook = (target, key, descriptor) => {
124
+ return {
125
+ value: (...args) => {
126
+ const parseMethod = target[MODEL_TO_BACK_KEY];
127
+ if (parseMethod) {
128
+ return parseMethod(args[0]);
129
+ }
130
+ return undefined;
131
+ }
132
+ };
133
+ };
134
+ function extractValue(key, data) {
135
+ if (!data) {
136
+ return undefined;
137
+ }
138
+ const keyParts = key.split('.');
139
+ if (keyParts.length === 1) {
140
+ if (key in data) {
141
+ return data[key];
142
+ }
143
+ else {
144
+ return undefined;
145
+ }
146
+ }
147
+ for (const k of keyParts) {
148
+ if (data && k in data) {
149
+ data = data[k];
150
+ }
151
+ else {
152
+ return undefined;
153
+ }
154
+ }
155
+ return data;
156
+ }
157
+ function toFront(modelType, data, path) {
158
+ // Check if recursion is required
159
+ if (Array.isArray(data)) {
160
+ return data.map(item => {
161
+ return toFront(modelType, item);
162
+ });
163
+ }
164
+ const instance = new modelType();
165
+ // Mapping fields
166
+ const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY];
167
+ const relation = modelType[MODEL_RELATION_KEY];
168
+ if (mappingFields) {
169
+ for (const backField of Object.keys(mappingFields)) {
170
+ const frontField = mappingFields[backField];
171
+ const value = extractValue(backField, data);
172
+ if (relation && relation.hasOwnProperty(frontField)) {
173
+ instance[frontField] = relation[frontField].toFront(value);
174
+ }
175
+ else {
176
+ instance[frontField] = value;
177
+ }
178
+ }
179
+ }
180
+ return instance;
181
+ }
182
+ function toBack(modelType, instance, path) {
183
+ if (!instance) {
184
+ return instance;
185
+ }
186
+ // Check if recursion is required
187
+ if (Array.isArray(instance)) {
188
+ return instance.map(item => {
189
+ return toBack(modelType, item);
190
+ });
191
+ }
192
+ const data = {};
193
+ const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY];
194
+ const relation = modelType[MODEL_RELATION_KEY];
195
+ if (mappingFields) {
196
+ for (const backField of Object.keys(mappingFields)) {
197
+ const frontField = mappingFields[backField];
198
+ if (relation && relation.hasOwnProperty(frontField) && instance[frontField] !== undefined) {
199
+ data[backField] = relation[frontField].toBack(instance[frontField]);
200
+ }
201
+ else {
202
+ data[backField] = instance[frontField];
203
+ }
204
+ }
205
+ }
206
+ return data;
207
+ }
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBYTdDLE1BQU0sT0FBZ0IsU0FBUztJQUM3QixZQUFZLElBQTJCO1FBQ3JDLElBQUksSUFBSSxFQUFFO1lBQ1IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFRO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBTUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFTO0lBQ2pDLE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hCLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pC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QUFRLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUFzQyxDQUFDO0lBQ3BGLElBQUksYUFBYSxFQUFFO1FBQ2pCLEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUN6RixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNyRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVkgPSAnX21hcHBpbmdfZmllbGRzXyc7XG5leHBvcnQgY29uc3QgTU9ERUxfUkVMQVRJT05fS0VZID0gJ19yZWxhdGlvbl8nO1xuZXhwb3J0IGNvbnN0IE1PREVMX1RPX0ZST05UX0tFWSA9ICdfdG9fZnJvbnRfJztcbmV4cG9ydCBjb25zdCBNT0RFTF9UT19CQUNLX0tFWSA9ICdfdG9fYmFja18nO1xuXG50eXBlIFBhcnNlckludGVyZmFjZSA9IChkdG86IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSkgPT4gYW55O1xuXG5pbnRlcmZhY2UgTW9kZWxUeXBlSW50ZXJmYWNlIHtcbiAgbmV3KGRhdGE/OiBhbnkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsSW50ZXJmYWNlIHtcbiAgdG9Gcm9udChkdG86IGFueSk6IGFueTtcbiAgdG9CYWNrKGR0bzogYW55KTogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1vZGVsIHtcbiAgY29uc3RydWN0b3IoZGF0YT86IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGEpKSB7XG4gICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgdG9Gcm9udChkdG86IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyB0b0JhY2soZHRvOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEdyYXBoUGF0aEludGVyZmFjZSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1GaWVsZChlbnVtQ2xhc3MpIHtcbiAgcmV0dXJuIHtcbiAgICB0b0Zyb250OiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmIChpc05hTigrdmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbnVtQ2xhc3NbdmFsdWVdO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpc3RGaWVsZChtb2RlbENsYXNzKSB7XG4gIHJldHVybiB7XG4gICAgdG9Gcm9udDogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbENsYXNzLnRvRnJvbnQodmFsdWUpO1xuICAgIH0sXG4gICAgdG9CYWNrOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1vZGVsQ2xhc3MudG9CYWNrKHZhbHVlKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZVV0Yy50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRmllbGQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBzdGF0aWMgdG9Gcm9udChkYXRlOiBhbnkpOiBhbnkge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHN0YXRpYyB0b0JhY2soZGF0ZTogRGF0ZSk6IGFueSB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgIGNvbnN0IGRhdGVVdGMgPSBuZXcgRGF0ZShEYXRlLlVUQyhcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gTW9kZWxJbnN0YW5jZShcbiAgY29uZmlnOiB7XG4gICAgbWFwcGluZ0ZpZWxkcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgcmVsYXRpb24/OiB7IFtrZXk6IHN0cmluZ106IEJhc2VNb2RlbCB9XG4gIH1cbikge1xuICByZXR1cm4gKHRhcmdldDogTW9kZWxUeXBlSW50ZXJmYWNlKSA9PiB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKGNvbmZpZy5tYXBwaW5nRmllbGRzKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldID0gY29uZmlnLm1hcHBpbmdGaWVsZHM7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLnJlbGF0aW9uKSB7XG4gICAgICAgIHRhcmdldFtNT0RFTF9SRUxBVElPTl9LRVldID0gY29uZmlnLnJlbGF0aW9uO1xuICAgICAgfVxuICAgICAgdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gPSAoZHRvOiBhbnksIHBhdGg6IEdyYXBoUGF0aEludGVyZmFjZSkgPT4ge1xuICAgICAgICByZXR1cm4gdG9Gcm9udCh0YXJnZXQsIGR0bywgcGF0aCk7XG4gICAgICB9O1xuICAgICAgdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSA9IChkdG86IGFueSwgcGF0aDogR3JhcGhQYXRoSW50ZXJmYWNlKSA9PiB7XG4gICAgICAgIHJldHVybiB0b0JhY2sodGFyZ2V0LCBkdG8sIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBUb0Zyb250SG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0ZST05UX0tFWV0gYXMgUGFyc2VySW50ZXJmYWNlO1xuICAgICAgaWYgKHBhcnNlTWV0aG9kKSB7XG4gICAgICAgIHJldHVybiBwYXJzZU1ldGhvZChhcmdzWzBdLCAoYXJncy5sZW5ndGggPiAxID8gYXJnc1sxXSA6IHVuZGVmaW5lZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgVG9CYWNrSG9vayA9ICh0YXJnZXQ6IE1vZGVsVHlwZUludGVyZmFjZSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEZ1bmN0aW9uPikgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlTWV0aG9kID0gdGFyZ2V0W01PREVMX1RPX0JBQ0tfS0VZXSBhcyBQYXJzZXJJbnRlcmZhY2U7XG4gICAgICBpZiAocGFyc2VNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlTWV0aG9kKGFyZ3NbMF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBleHRyYWN0VmFsdWUoa2V5LCBkYXRhKSB7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBrZXlQYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICBpZiAoa2V5UGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgaWYgKGtleSBpbiBkYXRhKSB7XG4gICAgICByZXR1cm4gZGF0YVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgayBvZiBrZXlQYXJ0cykge1xuICAgIGlmIChkYXRhICYmIGsgaW4gZGF0YSkge1xuICAgICAgZGF0YSA9IGRhdGFba107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIHRvRnJvbnQobW9kZWxUeXBlOiBNb2RlbFR5cGVJbnRlcmZhY2UsIGRhdGE6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIC8vIENoZWNrIGlmIHJlY3Vyc2lvbiBpcyByZXF1aXJlZFxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0Zyb250KG1vZGVsVHlwZSwgaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBtb2RlbFR5cGUoKTtcblxuICAvLyBNYXBwaW5nIGZpZWxkc1xuICBjb25zdCBtYXBwaW5nRmllbGRzID0gbW9kZWxUeXBlW01PREVMX01BUFBJTkdfRklFTERTX0tFWV0gYXMgc3RyaW5nW107XG4gIGNvbnN0IHJlbGF0aW9uID0gbW9kZWxUeXBlW01PREVMX1JFTEFUSU9OX0tFWV0gYXMgeyBba2V5OiBzdHJpbmddOiBNb2RlbEludGVyZmFjZSB9O1xuICBpZiAobWFwcGluZ0ZpZWxkcykge1xuICAgIGZvciAoY29uc3QgYmFja0ZpZWxkIG9mIE9iamVjdC5rZXlzKG1hcHBpbmdGaWVsZHMpKSB7XG4gICAgICBjb25zdCBmcm9udEZpZWxkID0gbWFwcGluZ0ZpZWxkc1tiYWNrRmllbGRdO1xuICAgICAgY29uc3QgdmFsdWUgPSBleHRyYWN0VmFsdWUoYmFja0ZpZWxkLCBkYXRhKTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSkge1xuICAgICAgICBpbnN0YW5jZVtmcm9udEZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvRnJvbnQodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zdGFuY2VbZnJvbnRGaWVsZF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIHRvQmFjayhtb2RlbFR5cGU6IE1vZGVsVHlwZUludGVyZmFjZSwgaW5zdGFuY2U6IGFueSwgcGF0aD86IEdyYXBoUGF0aEludGVyZmFjZSk6IGFueSB7XG4gIGlmICghaW5zdGFuY2UpIHtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvLyBDaGVjayBpZiByZWN1cnNpb24gaXMgcmVxdWlyZWRcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5zdGFuY2UpKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB0b0JhY2sobW9kZWxUeXBlLCBpdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSB7fTtcbiAgY29uc3QgbWFwcGluZ0ZpZWxkcyA9IG1vZGVsVHlwZVtNT0RFTF9NQVBQSU5HX0ZJRUxEU19LRVldIGFzIHN0cmluZ1tdO1xuICBjb25zdCByZWxhdGlvbiA9IG1vZGVsVHlwZVtNT0RFTF9SRUxBVElPTl9LRVldIGFzIHsgW2tleTogc3RyaW5nXTogTW9kZWxJbnRlcmZhY2UgfTtcbiAgaWYgKG1hcHBpbmdGaWVsZHMpIHtcbiAgICBmb3IgKGNvbnN0IGJhY2tGaWVsZCBvZiBPYmplY3Qua2V5cyhtYXBwaW5nRmllbGRzKSkge1xuICAgICAgY29uc3QgZnJvbnRGaWVsZCA9IG1hcHBpbmdGaWVsZHNbYmFja0ZpZWxkXTtcbiAgICAgIGlmIChyZWxhdGlvbiAmJiByZWxhdGlvbi5oYXNPd25Qcm9wZXJ0eShmcm9udEZpZWxkKSAmJiBpbnN0YW5jZVtmcm9udEZpZWxkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGFbYmFja0ZpZWxkXSA9IHJlbGF0aW9uW2Zyb250RmllbGRdLnRvQmFjayhpbnN0YW5jZVtmcm9udEZpZWxkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhW2JhY2tGaWVsZF0gPSBpbnN0YW5jZVtmcm9udEZpZWxkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { __decorate } from "tslib";
2
+ import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';
3
+ export var VolleyballGameTypes;
4
+ (function (VolleyballGameTypes) {
5
+ VolleyballGameTypes[VolleyballGameTypes["best_of_five"] = 1] = "best_of_five";
6
+ VolleyballGameTypes[VolleyballGameTypes["best_of_three"] = 2] = "best_of_three";
7
+ })(VolleyballGameTypes || (VolleyballGameTypes = {}));
8
+ let VolleyballGameConfig = class VolleyballGameConfig extends BaseModel {
9
+ get setsCount() {
10
+ return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;
11
+ }
12
+ getSetMaxScore(set) {
13
+ return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;
14
+ }
15
+ static toFront(data) { }
16
+ static toBack(data) { }
17
+ };
18
+ __decorate([
19
+ ToFrontHook
20
+ ], VolleyballGameConfig, "toFront", null);
21
+ __decorate([
22
+ ToBackHook
23
+ ], VolleyballGameConfig, "toBack", null);
24
+ VolleyballGameConfig = __decorate([
25
+ ModelInstance({
26
+ mappingFields: {
27
+ game_type: 'gameType',
28
+ timeout_count: 'timeoutCount',
29
+ timeout_time: 'timeoutTime',
30
+ substitute_count: 'substituteCount',
31
+ score_in_set: 'scoreInSet',
32
+ score_in_last_set: 'scoreInLastSet'
33
+ },
34
+ relation: {
35
+ gameType: enumField(VolleyballGameTypes)
36
+ }
37
+ })
38
+ ], VolleyballGameConfig);
39
+ export { VolleyballGameConfig };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy92b2xsZXliYWxsLWdhbWUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV0RixNQUFNLENBQU4sSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLDZFQUFnQixDQUFBO0lBQ2hCLCtFQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUc5QjtBQWVELElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQXFCLFNBQVEsU0FBUztJQVFqRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4RSxDQUFDO0lBR0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFTLElBQVEsQ0FBQztJQUdqQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVMsSUFBUSxDQUFDO0NBQ2pDLENBQUE7QUFKQztJQURDLFdBQVc7eUNBQ3FCO0FBR2pDO0lBREMsVUFBVTt3Q0FDcUI7QUFwQnJCLG9CQUFvQjtJQWJoQyxhQUFhLENBQUM7UUFDYixhQUFhLEVBQUU7WUFDYixTQUFTLEVBQUUsVUFBVTtZQUNyQixhQUFhLEVBQUUsY0FBYztZQUM3QixZQUFZLEVBQUUsYUFBYTtZQUMzQixnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsWUFBWSxFQUFFLFlBQVk7WUFDMUIsaUJBQWlCLEVBQUUsZ0JBQWdCO1NBQ3BDO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztTQUN6QztLQUNGLENBQUM7R0FDVyxvQkFBb0IsQ0FxQmhDO1NBckJZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsSW5zdGFuY2UsIEJhc2VNb2RlbCwgVG9Gcm9udEhvb2ssIFRvQmFja0hvb2ssIGVudW1GaWVsZCB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBlbnVtIFZvbGxleWJhbGxHYW1lVHlwZXMge1xuICBiZXN0X29mX2ZpdmUgPSAxLFxuICBiZXN0X29mX3RocmVlXG59XG5cbkBNb2RlbEluc3RhbmNlKHtcbiAgbWFwcGluZ0ZpZWxkczoge1xuICAgIGdhbWVfdHlwZTogJ2dhbWVUeXBlJyxcbiAgICB0aW1lb3V0X2NvdW50OiAndGltZW91dENvdW50JyxcbiAgICB0aW1lb3V0X3RpbWU6ICd0aW1lb3V0VGltZScsXG4gICAgc3Vic3RpdHV0ZV9jb3VudDogJ3N1YnN0aXR1dGVDb3VudCcsXG4gICAgc2NvcmVfaW5fc2V0OiAnc2NvcmVJblNldCcsXG4gICAgc2NvcmVfaW5fbGFzdF9zZXQ6ICdzY29yZUluTGFzdFNldCdcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICBnYW1lVHlwZTogZW51bUZpZWxkKFZvbGxleWJhbGxHYW1lVHlwZXMpXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVm9sbGV5YmFsbEdhbWVDb25maWcgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBnYW1lVHlwZTogVm9sbGV5YmFsbEdhbWVUeXBlcztcbiAgdGltZW91dENvdW50OiBudW1iZXI7XG4gIHRpbWVvdXRUaW1lOiBudW1iZXI7XG4gIHN1YnN0aXR1dGVDb3VudDogbnVtYmVyO1xuICBzY29yZUluU2V0OiBudW1iZXI7XG4gIHNjb3JlSW5MYXN0U2V0OiBudW1iZXI7XG5cbiAgZ2V0IHNldHNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdhbWVUeXBlID09PSBWb2xsZXliYWxsR2FtZVR5cGVzLmJlc3Rfb2ZfdGhyZWUgPyAzIDogNTtcbiAgfVxuXG4gIGdldFNldE1heFNjb3JlKHNldDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHNldCA9PT0gdGhpcy5zZXRzQ291bnQgPyB0aGlzLnNjb3JlSW5MYXN0U2V0IDogdGhpcy5zY29yZUluU2V0O1xuICB9XG5cbiAgQFRvRnJvbnRIb29rXG4gIHN0YXRpYyB0b0Zyb250KGRhdGE6IGFueSk6IGFueSB7fVxuXG4gIEBUb0JhY2tIb29rXG4gIHN0YXRpYyB0b0JhY2soZGF0YTogYW55KTogYW55IHt9XG59XG4iXX0=
@@ -0,0 +1,139 @@
1
+ import { __decorate } from "tslib";
2
+ import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';
3
+ export var VolleyballGameLogType;
4
+ (function (VolleyballGameLogType) {
5
+ VolleyballGameLogType[VolleyballGameLogType["enter_game"] = 1] = "enter_game";
6
+ VolleyballGameLogType[VolleyballGameLogType["exit_game"] = 2] = "exit_game";
7
+ VolleyballGameLogType[VolleyballGameLogType["remove_game"] = 3] = "remove_game";
8
+ VolleyballGameLogType[VolleyballGameLogType["serve_hit"] = 4] = "serve_hit";
9
+ VolleyballGameLogType[VolleyballGameLogType["serve_fault"] = 5] = "serve_fault";
10
+ VolleyballGameLogType[VolleyballGameLogType["serve_ace"] = 6] = "serve_ace";
11
+ VolleyballGameLogType[VolleyballGameLogType["stuff_block"] = 7] = "stuff_block";
12
+ VolleyballGameLogType[VolleyballGameLogType["block_fault"] = 8] = "block_fault";
13
+ VolleyballGameLogType[VolleyballGameLogType["block_rebound"] = 9] = "block_rebound";
14
+ VolleyballGameLogType[VolleyballGameLogType["attack_spike"] = 10] = "attack_spike";
15
+ VolleyballGameLogType[VolleyballGameLogType["attack_fault"] = 11] = "attack_fault";
16
+ VolleyballGameLogType[VolleyballGameLogType["attack_shot"] = 12] = "attack_shot";
17
+ VolleyballGameLogType[VolleyballGameLogType["receive"] = 13] = "receive";
18
+ VolleyballGameLogType[VolleyballGameLogType["receive_fault"] = 14] = "receive_fault";
19
+ VolleyballGameLogType[VolleyballGameLogType["excellent_receive"] = 15] = "excellent_receive";
20
+ VolleyballGameLogType[VolleyballGameLogType["point"] = 16] = "point";
21
+ VolleyballGameLogType[VolleyballGameLogType["fault"] = 17] = "fault";
22
+ VolleyballGameLogType[VolleyballGameLogType["serve_receive"] = 18] = "serve_receive";
23
+ VolleyballGameLogType[VolleyballGameLogType["serve_receive_fault"] = 19] = "serve_receive_fault";
24
+ VolleyballGameLogType[VolleyballGameLogType["excellent_serve_receive"] = 20] = "excellent_serve_receive";
25
+ VolleyballGameLogType[VolleyballGameLogType["timeout"] = 21] = "timeout";
26
+ })(VolleyballGameLogType || (VolleyballGameLogType = {}));
27
+ export const SCORE_LOG_TYPES = [
28
+ VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,
29
+ VolleyballGameLogType.attack_spike, VolleyballGameLogType.point
30
+ ];
31
+ export const FAULT_LOG_TYPES = [
32
+ VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,
33
+ VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,
34
+ VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault
35
+ ];
36
+ let VolleyballGameLog = class VolleyballGameLog extends BaseModel {
37
+ constructor() {
38
+ super(...arguments);
39
+ this.active = true;
40
+ }
41
+ compare(model) {
42
+ if (this.rally === model.rally && this.set === model.set) {
43
+ if (this.datetime && model.datetime) {
44
+ return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;
45
+ }
46
+ else {
47
+ return this.id < model.id ? 1 : -1;
48
+ }
49
+ }
50
+ if (this.set === model.set) {
51
+ return this.rally < model.rally ? 1 : -1;
52
+ }
53
+ return this.set < model.set ? 1 : -1;
54
+ }
55
+ isScoreType() {
56
+ return SCORE_LOG_TYPES.includes(this.logType);
57
+ }
58
+ isFaultType() {
59
+ return FAULT_LOG_TYPES.includes(this.logType);
60
+ }
61
+ isServe() {
62
+ return [
63
+ VolleyballGameLogType.serve_hit,
64
+ VolleyballGameLogType.serve_ace,
65
+ VolleyballGameLogType.serve_fault
66
+ ].includes(this.logType);
67
+ }
68
+ isAttack() {
69
+ return [
70
+ VolleyballGameLogType.attack_fault,
71
+ VolleyballGameLogType.attack_spike,
72
+ VolleyballGameLogType.attack_shot
73
+ ].includes(this.logType);
74
+ }
75
+ isReceive() {
76
+ return [
77
+ VolleyballGameLogType.receive_fault,
78
+ VolleyballGameLogType.receive,
79
+ VolleyballGameLogType.excellent_receive
80
+ ].includes(this.logType);
81
+ }
82
+ isServeReceive() {
83
+ return [
84
+ VolleyballGameLogType.serve_receive_fault,
85
+ VolleyballGameLogType.serve_receive,
86
+ VolleyballGameLogType.excellent_serve_receive
87
+ ].includes(this.logType);
88
+ }
89
+ isBlock() {
90
+ return [
91
+ VolleyballGameLogType.block_fault,
92
+ VolleyballGameLogType.block_rebound,
93
+ VolleyballGameLogType.stuff_block
94
+ ].includes(this.logType);
95
+ }
96
+ isEnterExit() {
97
+ return [
98
+ VolleyballGameLogType.enter_game,
99
+ VolleyballGameLogType.exit_game,
100
+ VolleyballGameLogType.timeout
101
+ ].includes(this.logType);
102
+ }
103
+ isComboType() {
104
+ return ![
105
+ VolleyballGameLogType.receive,
106
+ VolleyballGameLogType.serve_receive
107
+ ].includes(this.logType);
108
+ }
109
+ static toFront(data) { }
110
+ static toBack(data) { }
111
+ };
112
+ __decorate([
113
+ ToFrontHook
114
+ ], VolleyballGameLog, "toFront", null);
115
+ __decorate([
116
+ ToBackHook
117
+ ], VolleyballGameLog, "toBack", null);
118
+ VolleyballGameLog = __decorate([
119
+ ModelInstance({
120
+ mappingFields: {
121
+ id: 'id',
122
+ unique_id: 'uniqueId',
123
+ game_id: 'gameId',
124
+ game_user_id: 'gameUserId',
125
+ log_type: 'logType',
126
+ set: 'set',
127
+ rally: 'rally',
128
+ position: 'position',
129
+ team_id: 'teamId',
130
+ datetime: 'datetime',
131
+ },
132
+ relation: {
133
+ logType: enumField(VolleyballGameLogType),
134
+ datetime: DateTimeField
135
+ }
136
+ })
137
+ ], VolleyballGameLog);
138
+ export { VolleyballGameLog };
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLWxvZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy92b2xsZXliYWxsLWdhbWUtbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJckcsTUFBTSxDQUFOLElBQVkscUJBc0JYO0FBdEJELFdBQVkscUJBQXFCO0lBQy9CLDZFQUFjLENBQUE7SUFDZCwyRUFBUyxDQUFBO0lBQ1QsK0VBQVcsQ0FBQTtJQUNYLDJFQUFTLENBQUE7SUFDVCwrRUFBVyxDQUFBO0lBQ1gsMkVBQVMsQ0FBQTtJQUNULCtFQUFXLENBQUE7SUFDWCwrRUFBVyxDQUFBO0lBQ1gsbUZBQWEsQ0FBQTtJQUNiLGtGQUFZLENBQUE7SUFDWixrRkFBWSxDQUFBO0lBQ1osZ0ZBQVcsQ0FBQTtJQUNYLHdFQUFPLENBQUE7SUFDUCxvRkFBYSxDQUFBO0lBQ2IsNEZBQWlCLENBQUE7SUFDakIsb0VBQUssQ0FBQTtJQUNMLG9FQUFLLENBQUE7SUFDTCxvRkFBYSxDQUFBO0lBQ2IsZ0dBQW1CLENBQUE7SUFDbkIsd0dBQXVCLENBQUE7SUFDdkIsd0VBQU8sQ0FBQTtBQUNULENBQUMsRUF0QlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQXNCaEM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IscUJBQXFCLENBQUMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLFdBQVc7SUFDbEUscUJBQXFCLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDLEtBQUs7Q0FDaEUsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixxQkFBcUIsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsWUFBWTtJQUNyRSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsYUFBYTtJQUN0RSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsbUJBQW1CO0NBQ3ZFLENBQUM7QUFvQkYsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBa0IsU0FBUSxTQUFTO0lBQWhEOztRQUdFLFdBQU0sR0FBRyxJQUFJLENBQUM7SUE2RmhCLENBQUM7SUFsRkMsT0FBTyxDQUFDLEtBQXdCO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUN4RCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEU7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEM7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU87WUFDTCxxQkFBcUIsQ0FBQyxTQUFTO1lBQy9CLHFCQUFxQixDQUFDLFNBQVM7WUFDL0IscUJBQXFCLENBQUMsV0FBVztTQUNsQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPO1lBQ0wscUJBQXFCLENBQUMsWUFBWTtZQUNsQyxxQkFBcUIsQ0FBQyxZQUFZO1lBQ2xDLHFCQUFxQixDQUFDLFdBQVc7U0FDbEMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTztZQUNMLHFCQUFxQixDQUFDLGFBQWE7WUFDbkMscUJBQXFCLENBQUMsT0FBTztZQUM3QixxQkFBcUIsQ0FBQyxpQkFBaUI7U0FDeEMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTztZQUNMLHFCQUFxQixDQUFDLG1CQUFtQjtZQUN6QyxxQkFBcUIsQ0FBQyxhQUFhO1lBQ25DLHFCQUFxQixDQUFDLHVCQUF1QjtTQUM5QyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1lBQ0wscUJBQXFCLENBQUMsV0FBVztZQUNqQyxxQkFBcUIsQ0FBQyxhQUFhO1lBQ25DLHFCQUFxQixDQUFDLFdBQVc7U0FDbEMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTztZQUNMLHFCQUFxQixDQUFDLFVBQVU7WUFDaEMscUJBQXFCLENBQUMsU0FBUztZQUMvQixxQkFBcUIsQ0FBQyxPQUFPO1NBQzlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sQ0FBQztZQUNOLHFCQUFxQixDQUFDLE9BQU87WUFDN0IscUJBQXFCLENBQUMsYUFBYTtTQUNwQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUdELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBUyxJQUFRLENBQUM7SUFHakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFTLElBQVEsQ0FBQztDQUNqQyxDQUFBO0FBSkM7SUFEQyxXQUFXO3NDQUNxQjtBQUdqQztJQURDLFVBQVU7cUNBQ3FCO0FBL0ZyQixpQkFBaUI7SUFsQjdCLGFBQWEsQ0FBQztRQUNiLGFBQWEsRUFBRTtZQUNiLEVBQUUsRUFBRSxJQUFJO1lBQ1IsU0FBUyxFQUFFLFVBQVU7WUFDckIsT0FBTyxFQUFFLFFBQVE7WUFDakIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsT0FBTztZQUNkLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxVQUFVO1NBQ3JCO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQztZQUN6QyxRQUFRLEVBQUUsYUFBYTtTQUN4QjtLQUNGLENBQUM7R0FDVyxpQkFBaUIsQ0FnRzdCO1NBaEdZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsSW5zdGFuY2UsIEJhc2VNb2RlbCwgVG9Gcm9udEhvb2ssIFRvQmFja0hvb2ssIGVudW1GaWVsZCwgRGF0ZVRpbWVGaWVsZCB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBHYW1lTG9nQmFzZSB9IGZyb20gJy4vZ2FtZS1sb2ctYmFzZSc7XG5pbXBvcnQgeyBHYW1lVXNlciB9IGZyb20gJy4vZ2FtZS11c2VyJztcblxuZXhwb3J0IGVudW0gVm9sbGV5YmFsbEdhbWVMb2dUeXBlIHtcbiAgZW50ZXJfZ2FtZSA9IDEsXG4gIGV4aXRfZ2FtZSxcbiAgcmVtb3ZlX2dhbWUsXG4gIHNlcnZlX2hpdCxcbiAgc2VydmVfZmF1bHQsXG4gIHNlcnZlX2FjZSxcbiAgc3R1ZmZfYmxvY2ssXG4gIGJsb2NrX2ZhdWx0LFxuICBibG9ja19yZWJvdW5kLFxuICBhdHRhY2tfc3Bpa2UsXG4gIGF0dGFja19mYXVsdCxcbiAgYXR0YWNrX3Nob3QsXG4gIHJlY2VpdmUsXG4gIHJlY2VpdmVfZmF1bHQsXG4gIGV4Y2VsbGVudF9yZWNlaXZlLFxuICBwb2ludCxcbiAgZmF1bHQsXG4gIHNlcnZlX3JlY2VpdmUsXG4gIHNlcnZlX3JlY2VpdmVfZmF1bHQsXG4gIGV4Y2VsbGVudF9zZXJ2ZV9yZWNlaXZlLFxuICB0aW1lb3V0LFxufVxuXG5leHBvcnQgY29uc3QgU0NPUkVfTE9HX1RZUEVTID0gW1xuICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfYWNlLCBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc3R1ZmZfYmxvY2ssXG4gIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5hdHRhY2tfc3Bpa2UsIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5wb2ludFxuXTtcbmV4cG9ydCBjb25zdCBGQVVMVF9MT0dfVFlQRVMgPSBbXG4gIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5zZXJ2ZV9mYXVsdCwgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmF0dGFja19mYXVsdCxcbiAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmJsb2NrX2ZhdWx0LCBWb2xsZXliYWxsR2FtZUxvZ1R5cGUucmVjZWl2ZV9mYXVsdCxcbiAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmZhdWx0LCBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfcmVjZWl2ZV9mYXVsdFxuXTtcblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgaWQ6ICdpZCcsXG4gICAgdW5pcXVlX2lkOiAndW5pcXVlSWQnLFxuICAgIGdhbWVfaWQ6ICdnYW1lSWQnLFxuICAgIGdhbWVfdXNlcl9pZDogJ2dhbWVVc2VySWQnLFxuICAgIGxvZ190eXBlOiAnbG9nVHlwZScsXG4gICAgc2V0OiAnc2V0JyxcbiAgICByYWxseTogJ3JhbGx5JyxcbiAgICBwb3NpdGlvbjogJ3Bvc2l0aW9uJyxcbiAgICB0ZWFtX2lkOiAndGVhbUlkJyxcbiAgICBkYXRldGltZTogJ2RhdGV0aW1lJyxcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICBsb2dUeXBlOiBlbnVtRmllbGQoVm9sbGV5YmFsbEdhbWVMb2dUeXBlKSxcbiAgICBkYXRldGltZTogRGF0ZVRpbWVGaWVsZFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFZvbGxleWJhbGxHYW1lTG9nIGV4dGVuZHMgQmFzZU1vZGVsIGltcGxlbWVudHMgR2FtZUxvZ0Jhc2Uge1xuICBpZDogbnVtYmVyO1xuICB1bmlxdWVJZDogc3RyaW5nO1xuICBhY3RpdmUgPSB0cnVlO1xuICBnYW1lSWQ6IG51bWJlcjtcbiAgZ2FtZVVzZXJJZDogbnVtYmVyO1xuICBsb2dUeXBlOiBWb2xsZXliYWxsR2FtZUxvZ1R5cGU7XG4gIHNldDogbnVtYmVyO1xuICByYWxseTogbnVtYmVyO1xuICBwb3NpdGlvbjogbnVtYmVyO1xuICB0ZWFtSWQ6IG51bWJlcjtcbiAgZGF0ZXRpbWU6IERhdGU7XG4gIGdhbWVVc2VyOiBHYW1lVXNlcjtcblxuICBjb21wYXJlKG1vZGVsOiBWb2xsZXliYWxsR2FtZUxvZyk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMucmFsbHkgPT09IG1vZGVsLnJhbGx5ICYmIHRoaXMuc2V0ID09PSBtb2RlbC5zZXQpIHtcbiAgICAgIGlmICh0aGlzLmRhdGV0aW1lICYmIG1vZGVsLmRhdGV0aW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGV0aW1lLmdldFRpbWUoKSA8IG1vZGVsLmRhdGV0aW1lLmdldFRpbWUoKSA/IDEgOiAtMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkIDwgbW9kZWwuaWQgPyAxIDogLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNldCA9PT0gbW9kZWwuc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5yYWxseSA8IG1vZGVsLnJhbGx5ID8gMSA6IC0xO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXQgPCBtb2RlbC5zZXQgPyAxIDogLTE7XG4gIH1cblxuICBpc1Njb3JlVHlwZSgpIHtcbiAgICByZXR1cm4gU0NPUkVfTE9HX1RZUEVTLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc0ZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRkFVTFRfTE9HX1RZUEVTLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc1NlcnZlKCkge1xuICAgIHJldHVybiBbXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfaGl0LFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnNlcnZlX2FjZSxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5zZXJ2ZV9mYXVsdFxuICAgIF0uaW5jbHVkZXModGhpcy5sb2dUeXBlKTtcbiAgfVxuXG4gIGlzQXR0YWNrKCkge1xuICAgIHJldHVybiBbXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuYXR0YWNrX2ZhdWx0LFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmF0dGFja19zcGlrZSxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5hdHRhY2tfc2hvdFxuICAgIF0uaW5jbHVkZXModGhpcy5sb2dUeXBlKTtcbiAgfVxuXG4gIGlzUmVjZWl2ZSgpIHtcbiAgICByZXR1cm4gW1xuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnJlY2VpdmVfZmF1bHQsXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUucmVjZWl2ZSxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5leGNlbGxlbnRfcmVjZWl2ZVxuICAgIF0uaW5jbHVkZXModGhpcy5sb2dUeXBlKTtcbiAgfVxuXG4gIGlzU2VydmVSZWNlaXZlKCkge1xuICAgIHJldHVybiBbXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc2VydmVfcmVjZWl2ZV9mYXVsdCxcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5zZXJ2ZV9yZWNlaXZlLFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmV4Y2VsbGVudF9zZXJ2ZV9yZWNlaXZlXG4gICAgXS5pbmNsdWRlcyh0aGlzLmxvZ1R5cGUpO1xuICB9XG5cbiAgaXNCbG9jaygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmJsb2NrX2ZhdWx0LFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmJsb2NrX3JlYm91bmQsXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuc3R1ZmZfYmxvY2tcbiAgICBdLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc0VudGVyRXhpdCgpIHtcbiAgICByZXR1cm4gW1xuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLmVudGVyX2dhbWUsXG4gICAgICBWb2xsZXliYWxsR2FtZUxvZ1R5cGUuZXhpdF9nYW1lLFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnRpbWVvdXRcbiAgICBdLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBpc0NvbWJvVHlwZSgpIHtcbiAgICByZXR1cm4gIVtcbiAgICAgIFZvbGxleWJhbGxHYW1lTG9nVHlwZS5yZWNlaXZlLFxuICAgICAgVm9sbGV5YmFsbEdhbWVMb2dUeXBlLnNlcnZlX3JlY2VpdmVcbiAgICBdLmluY2x1ZGVzKHRoaXMubG9nVHlwZSk7XG4gIH1cblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHt9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayhkYXRhOiBhbnkpOiBhbnkge31cbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { __decorate } from "tslib";
2
+ import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';
3
+ let VolleyballGameStatistic = class VolleyballGameStatistic extends BaseModel {
4
+ get id() {
5
+ return this.gameUserId;
6
+ }
7
+ get attacks() {
8
+ return this.attackSpikes + this.attackShots;
9
+ }
10
+ get blocks() {
11
+ return this.stuffBlocks + this.blockRebounds;
12
+ }
13
+ get totalReceives() {
14
+ return this.receives + this.excellentReceives;
15
+ }
16
+ static toFront(data) { }
17
+ static toBack(data) { }
18
+ };
19
+ __decorate([
20
+ ToFrontHook
21
+ ], VolleyballGameStatistic, "toFront", null);
22
+ __decorate([
23
+ ToBackHook
24
+ ], VolleyballGameStatistic, "toBack", null);
25
+ VolleyballGameStatistic = __decorate([
26
+ ModelInstance({
27
+ mappingFields: {
28
+ game_user_id: 'gameUserId',
29
+ serve_hits: 'serveHits',
30
+ serve_faults: 'serveFaults',
31
+ serve_aces: 'serveAces',
32
+ stuff_blocks: 'stuffBlocks',
33
+ block_faults: 'blockFaults',
34
+ block_rebounds: 'blockRebounds',
35
+ attack_spikes: 'attackSpikes',
36
+ attack_faults: 'attackFaults',
37
+ attack_shots: 'attackShots',
38
+ receives: 'receives',
39
+ receive_faults: 'receiveFaults',
40
+ excellent_receives: 'excellentReceives',
41
+ serve_receives: 'serveReceives',
42
+ serve_receive_faults: 'serveReceiveFaults',
43
+ excellent_serve_receives: 'excellentServeReceives',
44
+ points: 'points',
45
+ faults: 'faults',
46
+ }
47
+ })
48
+ ], VolleyballGameStatistic);
49
+ export { VolleyballGameStatistic };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLXN0YXRpc3RpYy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtdGdhbWUvY29yZS8iLCJzb3VyY2VzIjpbIm1vZGVscy92b2xsZXliYWxsLWdhbWUtc3RhdGlzdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBeUIzRSxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF3QixTQUFRLFNBQVM7SUFvQnBELElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELENBQUM7SUFHRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVMsSUFBUSxDQUFDO0lBR2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBUyxJQUFRLENBQUM7Q0FDakMsQ0FBQTtBQUpDO0lBREMsV0FBVzs0Q0FDcUI7QUFHakM7SUFEQyxVQUFVOzJDQUNxQjtBQXhDckIsdUJBQXVCO0lBdEJuQyxhQUFhLENBQUM7UUFDYixhQUFhLEVBQUU7WUFDYixZQUFZLEVBQUUsWUFBWTtZQUMxQixVQUFVLEVBQUUsV0FBVztZQUN2QixZQUFZLEVBQUUsYUFBYTtZQUMzQixVQUFVLEVBQUUsV0FBVztZQUN2QixZQUFZLEVBQUUsYUFBYTtZQUMzQixZQUFZLEVBQUUsYUFBYTtZQUMzQixjQUFjLEVBQUUsZUFBZTtZQUMvQixhQUFhLEVBQUUsY0FBYztZQUM3QixhQUFhLEVBQUUsY0FBYztZQUM3QixZQUFZLEVBQUUsYUFBYTtZQUMzQixRQUFRLEVBQUUsVUFBVTtZQUNwQixjQUFjLEVBQUUsZUFBZTtZQUMvQixrQkFBa0IsRUFBRSxtQkFBbUI7WUFDdkMsY0FBYyxFQUFFLGVBQWU7WUFDL0Isb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLHdCQUF3QixFQUFFLHdCQUF3QjtZQUNsRCxNQUFNLEVBQUUsUUFBUTtZQUNoQixNQUFNLEVBQUUsUUFBUTtTQUNqQjtLQUNGLENBQUM7R0FDVyx1QkFBdUIsQ0F5Q25DO1NBekNZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsSW5zdGFuY2UsIEJhc2VNb2RlbCwgVG9Gcm9udEhvb2ssIFRvQmFja0hvb2sgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgR2FtZVN0YXRpc3RpY0Jhc2UgfSBmcm9tICcuL2dhbWUtc3RhdGlzdGljLWJhc2UnO1xuXG5ATW9kZWxJbnN0YW5jZSh7XG4gIG1hcHBpbmdGaWVsZHM6IHtcbiAgICBnYW1lX3VzZXJfaWQ6ICdnYW1lVXNlcklkJyxcbiAgICBzZXJ2ZV9oaXRzOiAnc2VydmVIaXRzJyxcbiAgICBzZXJ2ZV9mYXVsdHM6ICdzZXJ2ZUZhdWx0cycsXG4gICAgc2VydmVfYWNlczogJ3NlcnZlQWNlcycsXG4gICAgc3R1ZmZfYmxvY2tzOiAnc3R1ZmZCbG9ja3MnLFxuICAgIGJsb2NrX2ZhdWx0czogJ2Jsb2NrRmF1bHRzJyxcbiAgICBibG9ja19yZWJvdW5kczogJ2Jsb2NrUmVib3VuZHMnLFxuICAgIGF0dGFja19zcGlrZXM6ICdhdHRhY2tTcGlrZXMnLFxuICAgIGF0dGFja19mYXVsdHM6ICdhdHRhY2tGYXVsdHMnLFxuICAgIGF0dGFja19zaG90czogJ2F0dGFja1Nob3RzJyxcbiAgICByZWNlaXZlczogJ3JlY2VpdmVzJyxcbiAgICByZWNlaXZlX2ZhdWx0czogJ3JlY2VpdmVGYXVsdHMnLFxuICAgIGV4Y2VsbGVudF9yZWNlaXZlczogJ2V4Y2VsbGVudFJlY2VpdmVzJyxcbiAgICBzZXJ2ZV9yZWNlaXZlczogJ3NlcnZlUmVjZWl2ZXMnLFxuICAgIHNlcnZlX3JlY2VpdmVfZmF1bHRzOiAnc2VydmVSZWNlaXZlRmF1bHRzJyxcbiAgICBleGNlbGxlbnRfc2VydmVfcmVjZWl2ZXM6ICdleGNlbGxlbnRTZXJ2ZVJlY2VpdmVzJyxcbiAgICBwb2ludHM6ICdwb2ludHMnLFxuICAgIGZhdWx0czogJ2ZhdWx0cycsXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVm9sbGV5YmFsbEdhbWVTdGF0aXN0aWMgZXh0ZW5kcyBCYXNlTW9kZWwgaW1wbGVtZW50cyBHYW1lU3RhdGlzdGljQmFzZSB7XG4gIGdhbWVVc2VySWQ6IG51bWJlcjtcbiAgc2VydmVIaXRzOiBudW1iZXI7XG4gIHNlcnZlRmF1bHRzOiBudW1iZXI7XG4gIHNlcnZlQWNlczogbnVtYmVyO1xuICBzdHVmZkJsb2NrczogbnVtYmVyO1xuICBibG9ja0ZhdWx0czogbnVtYmVyO1xuICBibG9ja1JlYm91bmRzOiBudW1iZXI7XG4gIGF0dGFja1NwaWtlczogbnVtYmVyO1xuICBhdHRhY2tGYXVsdHM6IG51bWJlcjtcbiAgYXR0YWNrU2hvdHM6IG51bWJlcjtcbiAgcmVjZWl2ZXM6IG51bWJlcjtcbiAgcmVjZWl2ZUZhdWx0czogbnVtYmVyO1xuICBleGNlbGxlbnRSZWNlaXZlczogbnVtYmVyO1xuICBzZXJ2ZVJlY2VpdmVzOiBudW1iZXI7XG4gIHNlcnZlUmVjZWl2ZUZhdWx0czogbnVtYmVyO1xuICBleGNlbGxlbnRTZXJ2ZVJlY2VpdmVzOiBudW1iZXI7XG4gIHBvaW50czogbnVtYmVyO1xuICBmYXVsdHM6IG51bWJlcjtcblxuICBnZXQgaWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lVXNlcklkO1xuICB9XG5cbiAgZ2V0IGF0dGFja3MoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2tTcGlrZXMgKyB0aGlzLmF0dGFja1Nob3RzO1xuICB9XG5cbiAgZ2V0IGJsb2NrcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN0dWZmQmxvY2tzICsgdGhpcy5ibG9ja1JlYm91bmRzO1xuICB9XG5cbiAgZ2V0IHRvdGFsUmVjZWl2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZWNlaXZlcyArIHRoaXMuZXhjZWxsZW50UmVjZWl2ZXM7XG4gIH1cblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHt9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayhkYXRhOiBhbnkpOiBhbnkge31cbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { __decorate } from "tslib";
2
+ import { ModelInstance, ToBackHook, ToFrontHook, BaseModel } from './util';
3
+ import { VolleyballStatistic } from './volleyball-statistic';
4
+ let VolleyballGameTeamStatistic = class VolleyballGameTeamStatistic extends BaseModel {
5
+ static toFront(data) { }
6
+ static toBack(data) { }
7
+ };
8
+ __decorate([
9
+ ToFrontHook
10
+ ], VolleyballGameTeamStatistic, "toFront", null);
11
+ __decorate([
12
+ ToBackHook
13
+ ], VolleyballGameTeamStatistic, "toBack", null);
14
+ VolleyballGameTeamStatistic = __decorate([
15
+ ModelInstance({
16
+ mappingFields: {
17
+ team: 'team',
18
+ competitor_team: 'competitorTeam',
19
+ },
20
+ relation: {
21
+ team: VolleyballStatistic,
22
+ competitorTeam: VolleyballStatistic,
23
+ }
24
+ })
25
+ ], VolleyballGameTeamStatistic);
26
+ export { VolleyballGameTeamStatistic };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1nYW1lLXRlYW0tc3RhdGlzdGljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG10Z2FtZS9jb3JlLyIsInNvdXJjZXMiOlsibW9kZWxzL3ZvbGxleWJhbGwtZ2FtZS10ZWFtLXN0YXRpc3RpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVk3RCxJQUFhLDJCQUEyQixHQUF4QyxNQUFhLDJCQUE0QixTQUFRLFNBQVM7SUFLeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFTLElBQVEsQ0FBQztJQUdqQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVMsSUFBUSxDQUFDO0NBQ2pDLENBQUE7QUFKQztJQURDLFdBQVc7Z0RBQ3FCO0FBR2pDO0lBREMsVUFBVTsrQ0FDcUI7QUFSckIsMkJBQTJCO0lBVnZDLGFBQWEsQ0FBQztRQUNiLGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxNQUFNO1lBQ1osZUFBZSxFQUFFLGdCQUFnQjtTQUNsQztRQUNELFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxtQkFBbUI7WUFDekIsY0FBYyxFQUFFLG1CQUFtQjtTQUNwQztLQUNGLENBQUM7R0FDVywyQkFBMkIsQ0FTdkM7U0FUWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEluc3RhbmNlLCBUb0JhY2tIb29rLCBUb0Zyb250SG9vaywgQmFzZU1vZGVsIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IFZvbGxleWJhbGxTdGF0aXN0aWMgfSBmcm9tICcuL3ZvbGxleWJhbGwtc3RhdGlzdGljJztcblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgdGVhbTogJ3RlYW0nLFxuICAgIGNvbXBldGl0b3JfdGVhbTogJ2NvbXBldGl0b3JUZWFtJyxcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICB0ZWFtOiBWb2xsZXliYWxsU3RhdGlzdGljLFxuICAgIGNvbXBldGl0b3JUZWFtOiBWb2xsZXliYWxsU3RhdGlzdGljLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFZvbGxleWJhbGxHYW1lVGVhbVN0YXRpc3RpYyBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIHRlYW06IFZvbGxleWJhbGxTdGF0aXN0aWM7XG4gIGNvbXBldGl0b3JUZWFtOiBWb2xsZXliYWxsU3RhdGlzdGljO1xuXG4gIEBUb0Zyb250SG9va1xuICBzdGF0aWMgdG9Gcm9udChkYXRhOiBhbnkpOiBhbnkge31cblxuICBAVG9CYWNrSG9va1xuICBzdGF0aWMgdG9CYWNrKGRhdGE6IGFueSk6IGFueSB7fVxufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { __decorate } from "tslib";
2
+ import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';
3
+ export var GameVolleyballPosition;
4
+ (function (GameVolleyballPosition) {
5
+ GameVolleyballPosition[GameVolleyballPosition["setter"] = 1] = "setter";
6
+ GameVolleyballPosition[GameVolleyballPosition["libero"] = 2] = "libero";
7
+ GameVolleyballPosition[GameVolleyballPosition["middle_player"] = 3] = "middle_player";
8
+ GameVolleyballPosition[GameVolleyballPosition["receiver_attacker"] = 4] = "receiver_attacker";
9
+ GameVolleyballPosition[GameVolleyballPosition["dioganal"] = 5] = "dioganal";
10
+ })(GameVolleyballPosition || (GameVolleyballPosition = {}));
11
+ export var VolleyballWorkHand;
12
+ (function (VolleyballWorkHand) {
13
+ VolleyballWorkHand[VolleyballWorkHand["left"] = 1] = "left";
14
+ VolleyballWorkHand[VolleyballWorkHand["right"] = 2] = "right";
15
+ })(VolleyballWorkHand || (VolleyballWorkHand = {}));
16
+ let VolleyballProfile = class VolleyballProfile extends BaseModel {
17
+ static toFront(value) {
18
+ }
19
+ static toBack(value) {
20
+ }
21
+ };
22
+ __decorate([
23
+ ToFrontHook
24
+ ], VolleyballProfile, "toFront", null);
25
+ __decorate([
26
+ ToBackHook
27
+ ], VolleyballProfile, "toBack", null);
28
+ VolleyballProfile = __decorate([
29
+ ModelInstance({
30
+ mappingFields: {
31
+ id: 'id',
32
+ user_id: 'userId',
33
+ position: 'position',
34
+ work_hand: 'workHand'
35
+ },
36
+ relation: {
37
+ position: enumField(GameVolleyballPosition),
38
+ workHand: enumField(VolleyballWorkHand)
39
+ }
40
+ })
41
+ ], VolleyballProfile);
42
+ export { VolleyballProfile };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sbGV5YmFsbC1wcm9maWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG10Z2FtZS9jb3JlLyIsInNvdXJjZXMiOlsibW9kZWxzL3ZvbGxleWJhbGwtcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEYsTUFBTSxDQUFOLElBQVksc0JBTVg7QUFORCxXQUFZLHNCQUFzQjtJQUNoQyx1RUFBVSxDQUFBO0lBQ1YsdUVBQU0sQ0FBQTtJQUNOLHFGQUFhLENBQUE7SUFDYiw2RkFBaUIsQ0FBQTtJQUNqQiwyRUFBUSxDQUFBO0FBQ1YsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakM7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFHWDtBQUhELFdBQVksa0JBQWtCO0lBQzVCLDJEQUFRLENBQUE7SUFDUiw2REFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0I7QUFjRCxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFrQixTQUFRLFNBQVM7SUFPOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVO0lBQ3pCLENBQUM7SUFHRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVU7SUFDeEIsQ0FBQztDQUNGLENBQUE7QUFOQztJQURDLFdBQVc7c0NBRVg7QUFHRDtJQURDLFVBQVU7cUNBRVY7QUFaVSxpQkFBaUI7SUFaN0IsYUFBYSxDQUFDO1FBQ2IsYUFBYSxFQUFFO1lBQ2IsRUFBRSxFQUFFLElBQUk7WUFDUixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUUsVUFBVTtTQUN0QjtRQUNELFFBQVEsRUFBRTtZQUNSLFFBQVEsRUFBRSxTQUFTLENBQUMsc0JBQXNCLENBQUM7WUFDM0MsUUFBUSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztTQUN4QztLQUNGLENBQUM7R0FDVyxpQkFBaUIsQ0FhN0I7U0FiWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGVudW1GaWVsZCwgTW9kZWxJbnN0YW5jZSwgVG9CYWNrSG9vaywgVG9Gcm9udEhvb2sgfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgZW51bSBHYW1lVm9sbGV5YmFsbFBvc2l0aW9uIHtcbiAgc2V0dGVyID0gMSxcbiAgbGliZXJvLFxuICBtaWRkbGVfcGxheWVyLFxuICByZWNlaXZlcl9hdHRhY2tlcixcbiAgZGlvZ2FuYWxcbn1cblxuZXhwb3J0IGVudW0gVm9sbGV5YmFsbFdvcmtIYW5kIHtcbiAgbGVmdCA9IDEsXG4gIHJpZ2h0XG59XG5cbkBNb2RlbEluc3RhbmNlKHtcbiAgbWFwcGluZ0ZpZWxkczoge1xuICAgIGlkOiAnaWQnLFxuICAgIHVzZXJfaWQ6ICd1c2VySWQnLFxuICAgIHBvc2l0aW9uOiAncG9zaXRpb24nLFxuICAgIHdvcmtfaGFuZDogJ3dvcmtIYW5kJ1xuICB9LFxuICByZWxhdGlvbjoge1xuICAgIHBvc2l0aW9uOiBlbnVtRmllbGQoR2FtZVZvbGxleWJhbGxQb3NpdGlvbiksXG4gICAgd29ya0hhbmQ6IGVudW1GaWVsZChWb2xsZXliYWxsV29ya0hhbmQpXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVm9sbGV5YmFsbFByb2ZpbGUgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBpZDogbnVtYmVyO1xuICB1c2VySWQ6IG51bWJlcjtcbiAgcG9zaXRpb246IEdhbWVWb2xsZXliYWxsUG9zaXRpb247XG4gIHdvcmtIYW5kOiBWb2xsZXliYWxsV29ya0hhbmQ7XG5cbiAgQFRvRnJvbnRIb29rXG4gIHN0YXRpYyB0b0Zyb250KHZhbHVlOiBhbnkpOiBhbnkge1xuICB9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayh2YWx1ZTogYW55KTogYW55IHtcbiAgfVxufVxuIl19