@gamepark/react-client 7.0.0-beta.0 → 7.0.0-beta.2

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 (258) hide show
  1. package/dist/Actions/ActionFailed.js +3 -7
  2. package/dist/Actions/ActionFailed.js.map +1 -1
  3. package/dist/Actions/AnimationComplete.js +3 -7
  4. package/dist/Actions/AnimationComplete.js.map +1 -1
  5. package/dist/Actions/AnimationPaused.js +3 -7
  6. package/dist/Actions/AnimationPaused.js.map +1 -1
  7. package/dist/Actions/AnimationStart.js +1 -4
  8. package/dist/Actions/AnimationStart.js.map +1 -1
  9. package/dist/Actions/ClearFailures.d.ts +1 -5
  10. package/dist/Actions/ClearFailures.js +3 -9
  11. package/dist/Actions/ClearFailures.js.map +1 -1
  12. package/dist/Actions/GameNotificationsReceived.d.ts +2 -4
  13. package/dist/Actions/GameNotificationsReceived.js +2 -9
  14. package/dist/Actions/GameNotificationsReceived.js.map +1 -1
  15. package/dist/Actions/GameOver.js +3 -7
  16. package/dist/Actions/GameOver.js.map +1 -1
  17. package/dist/Actions/GameStateLoaded.js +5 -18
  18. package/dist/Actions/GameStateLoaded.js.map +1 -1
  19. package/dist/Actions/MovePlayed.d.ts +4 -4
  20. package/dist/Actions/MovePlayed.js +3 -4
  21. package/dist/Actions/MovePlayed.js.map +1 -1
  22. package/dist/Actions/MoveUndone.js +3 -8
  23. package/dist/Actions/MoveUndone.js.map +1 -1
  24. package/dist/Actions/PlayerQuit.d.ts +3 -9
  25. package/dist/Actions/PlayerQuit.js +2 -19
  26. package/dist/Actions/PlayerQuit.js.map +1 -1
  27. package/dist/Actions/SetAnimationsSpeed.d.ts +1 -6
  28. package/dist/Actions/SetAnimationsSpeed.js +3 -9
  29. package/dist/Actions/SetAnimationsSpeed.js.map +1 -1
  30. package/dist/Actions/giveUp.d.ts +1 -0
  31. package/dist/Actions/giveUp.js +3 -0
  32. package/dist/Actions/giveUp.js.map +1 -0
  33. package/dist/Actions/index.d.ts +7 -11
  34. package/dist/Actions/index.js +7 -27
  35. package/dist/Actions/index.js.map +1 -1
  36. package/dist/Actions/loadGameState.d.ts +14 -0
  37. package/dist/Actions/loadGameState.js +3 -0
  38. package/dist/Actions/loadGameState.js.map +1 -0
  39. package/dist/Actions/playMove.d.ts +10 -0
  40. package/dist/Actions/playMove.js +3 -0
  41. package/dist/Actions/playMove.js.map +1 -0
  42. package/dist/Actions/receiveNotifications.d.ts +8 -0
  43. package/dist/Actions/receiveNotifications.js +3 -0
  44. package/dist/Actions/receiveNotifications.js.map +1 -0
  45. package/dist/Actions/removePlayer.d.ts +5 -0
  46. package/dist/Actions/removePlayer.js +3 -0
  47. package/dist/Actions/removePlayer.js.map +1 -0
  48. package/dist/Actions/reportFailure.d.ts +1 -0
  49. package/dist/Actions/reportFailure.js +3 -0
  50. package/dist/Actions/reportFailure.js.map +1 -0
  51. package/dist/Actions/setGameOver.d.ts +2 -0
  52. package/dist/Actions/setGameOver.js +3 -0
  53. package/dist/Actions/setGameOver.js.map +1 -0
  54. package/dist/Actions/startAnimation.d.ts +1 -0
  55. package/dist/Actions/startAnimation.js +3 -0
  56. package/dist/Actions/startAnimation.js.map +1 -0
  57. package/dist/Actions/undoMove.d.ts +5 -0
  58. package/dist/Actions/undoMove.js +4 -0
  59. package/dist/Actions/undoMove.js.map +1 -0
  60. package/dist/Chat/ChatChannel.js +1 -2
  61. package/dist/Chat/Message.js +1 -2
  62. package/dist/Chat/index.js +2 -18
  63. package/dist/Chat/index.js.map +1 -1
  64. package/dist/Deckbuilding/Deck.js +1 -2
  65. package/dist/Deckbuilding/index.js +4 -24
  66. package/dist/Deckbuilding/index.js.map +1 -1
  67. package/dist/Deckbuilding/useDeleteDeck.d.ts +4 -1
  68. package/dist/Deckbuilding/useDeleteDeck.js +8 -14
  69. package/dist/Deckbuilding/useDeleteDeck.js.map +1 -1
  70. package/dist/Deckbuilding/useMyDecks.d.ts +2 -1
  71. package/dist/Deckbuilding/useMyDecks.js +7 -13
  72. package/dist/Deckbuilding/useMyDecks.js.map +1 -1
  73. package/dist/Deckbuilding/useSaveDeck.d.ts +4 -1
  74. package/dist/Deckbuilding/useSaveDeck.js +8 -14
  75. package/dist/Deckbuilding/useSaveDeck.js.map +1 -1
  76. package/dist/EjectPlayer/EjectPlayer.d.ts +1 -6
  77. package/dist/EjectPlayer/EjectPlayer.js +2 -8
  78. package/dist/EjectPlayer/EjectPlayer.js.map +1 -1
  79. package/dist/EjectPlayer/index.js +1 -17
  80. package/dist/EjectPlayer/index.js.map +1 -1
  81. package/dist/Failure/Failure.js +1 -4
  82. package/dist/Failure/Failure.js.map +1 -1
  83. package/dist/Failure/index.js +1 -17
  84. package/dist/Failure/index.js.map +1 -1
  85. package/dist/GiveUp/GiveUp.js +2 -5
  86. package/dist/GiveUp/GiveUp.js.map +1 -1
  87. package/dist/GiveUp/index.js +1 -17
  88. package/dist/GiveUp/index.js.map +1 -1
  89. package/dist/Hooks/index.js +5 -21
  90. package/dist/Hooks/index.js.map +1 -1
  91. package/dist/Hooks/useChatMessages.d.ts +1 -6
  92. package/dist/Hooks/useChatMessages.js +35 -44
  93. package/dist/Hooks/useChatMessages.js.map +1 -1
  94. package/dist/Hooks/useMessageAuthor.js +12 -16
  95. package/dist/Hooks/useMessageAuthor.js.map +1 -1
  96. package/dist/Hooks/useOptions.js +3 -6
  97. package/dist/Hooks/useOptions.js.map +1 -1
  98. package/dist/Hooks/useRematch.d.ts +1 -1
  99. package/dist/Hooks/useRematch.js +16 -20
  100. package/dist/Hooks/useRematch.js.map +1 -1
  101. package/dist/Hooks/useSendMessage.d.ts +4 -1
  102. package/dist/Hooks/useSendMessage.js +5 -12
  103. package/dist/Hooks/useSendMessage.js.map +1 -1
  104. package/dist/Log/StartLiveLog.d.ts +1 -4
  105. package/dist/Log/StartLiveLog.js +3 -5
  106. package/dist/Log/StartLiveLog.js.map +1 -1
  107. package/dist/Log/StopLiveLog.d.ts +1 -4
  108. package/dist/Log/StopLiveLog.js +4 -7
  109. package/dist/Log/StopLiveLog.js.map +1 -1
  110. package/dist/Log/index.d.ts +2 -2
  111. package/dist/Log/index.js +4 -20
  112. package/dist/Log/index.js.map +1 -1
  113. package/dist/Log/useLogControls.js +11 -14
  114. package/dist/Log/useLogControls.js.map +1 -1
  115. package/dist/PlayerTime/PlayerTime.js +1 -2
  116. package/dist/PlayerTime/index.js +1 -17
  117. package/dist/PlayerTime/index.js.map +1 -1
  118. package/dist/Rematch/RematchQueries.js +23 -13
  119. package/dist/Rematch/RematchQueries.js.map +1 -1
  120. package/dist/Rematch/index.js +1 -17
  121. package/dist/Rematch/index.js.map +1 -1
  122. package/dist/Sound/MuteSounds.d.ts +1 -4
  123. package/dist/Sound/MuteSounds.js +5 -8
  124. package/dist/Sound/MuteSounds.js.map +1 -1
  125. package/dist/Sound/UnmuteSounds.d.ts +1 -4
  126. package/dist/Sound/UnmuteSounds.js +3 -5
  127. package/dist/Sound/UnmuteSounds.js.map +1 -1
  128. package/dist/Sound/index.d.ts +2 -2
  129. package/dist/Sound/index.js +3 -19
  130. package/dist/Sound/index.js.map +1 -1
  131. package/dist/Sound/useSoundControls.js +11 -14
  132. package/dist/Sound/useSoundControls.js.map +1 -1
  133. package/dist/Store/DisplayedAction.js +4 -10
  134. package/dist/Store/DisplayedAction.js.map +1 -1
  135. package/dist/Store/GamePageState.d.ts +0 -1
  136. package/dist/Store/GamePageState.js +1 -2
  137. package/dist/Store/PlayedMove.js +1 -2
  138. package/dist/Store/endAnimation.d.ts +1 -0
  139. package/dist/Store/endAnimation.js +3 -0
  140. package/dist/Store/endAnimation.js.map +1 -0
  141. package/dist/Store/gameMiddleware.js +30 -41
  142. package/dist/Store/gameMiddleware.js.map +1 -1
  143. package/dist/Store/gameReducer.d.ts +2 -11
  144. package/dist/Store/gameReducer.js +301 -377
  145. package/dist/Store/gameReducer.js.map +1 -1
  146. package/dist/Store/index.d.ts +1 -0
  147. package/dist/Store/index.js +4 -19
  148. package/dist/Store/index.js.map +1 -1
  149. package/dist/Store/localMovePreviewMiddleware.js +15 -13
  150. package/dist/Store/localMovePreviewMiddleware.js.map +1 -1
  151. package/dist/Store/store.d.ts +13 -0
  152. package/dist/Store/store.js +27 -0
  153. package/dist/Store/store.js.map +1 -0
  154. package/dist/Tutorial/PlayTutorialMoves.d.ts +1 -9
  155. package/dist/Tutorial/PlayTutorialMoves.js +2 -6
  156. package/dist/Tutorial/PlayTutorialMoves.js.map +1 -1
  157. package/dist/Tutorial/Tutorial.js +1 -2
  158. package/dist/Tutorial/TutorialDescription.d.ts +1 -1
  159. package/dist/Tutorial/TutorialDescription.js +1 -2
  160. package/dist/Tutorial/index.js +4 -20
  161. package/dist/Tutorial/index.js.map +1 -1
  162. package/dist/Tutorial/useTutorial.js +11 -20
  163. package/dist/Tutorial/useTutorial.js.map +1 -1
  164. package/dist/Types/GameAI.js +1 -2
  165. package/dist/Types/GameData.js +1 -2
  166. package/dist/Types/GameMessage.js +1 -2
  167. package/dist/Types/GameMode.js +2 -5
  168. package/dist/Types/GameMode.js.map +1 -1
  169. package/dist/Types/GameNotification.js +1 -2
  170. package/dist/Types/GameOptions.js +2 -5
  171. package/dist/Types/GameOptions.js.map +1 -1
  172. package/dist/Types/MovePlayedNotification.d.ts +1 -1
  173. package/dist/Types/MovePlayedNotification.js +3 -8
  174. package/dist/Types/MovePlayedNotification.js.map +1 -1
  175. package/dist/Types/MoveUndoneNotification.d.ts +1 -1
  176. package/dist/Types/MoveUndoneNotification.js +3 -8
  177. package/dist/Types/MoveUndoneNotification.js.map +1 -1
  178. package/dist/Types/Player.js +1 -2
  179. package/dist/Types/PlayerQuitReason.js +2 -5
  180. package/dist/Types/PlayerQuitReason.js.map +1 -1
  181. package/dist/Types/ProxyGameData.js +1 -2
  182. package/dist/Types/Tournament.js +1 -2
  183. package/dist/Types/index.js +12 -28
  184. package/dist/Types/index.js.map +1 -1
  185. package/dist/User/User.js +1 -2
  186. package/dist/User/index.js +2 -18
  187. package/dist/User/index.js.map +1 -1
  188. package/dist/User/useMe.js +9 -19
  189. package/dist/User/useMe.js.map +1 -1
  190. package/dist/animations/Animation.js +1 -2
  191. package/dist/animations/AnimationContext.d.ts +1 -1
  192. package/dist/animations/AnimationContext.js +1 -2
  193. package/dist/animations/AnimationState.js +1 -2
  194. package/dist/animations/AnimationStep.js +2 -5
  195. package/dist/animations/AnimationStep.js.map +1 -1
  196. package/dist/animations/Animations.js +9 -16
  197. package/dist/animations/Animations.js.map +1 -1
  198. package/dist/animations/AnimationsListener.d.ts +6 -0
  199. package/dist/animations/AnimationsListener.js +54 -0
  200. package/dist/animations/AnimationsListener.js.map +1 -0
  201. package/dist/animations/AnimationsListenerCreator.d.ts +1 -4
  202. package/dist/animations/AnimationsListenerCreator.js +24 -30
  203. package/dist/animations/AnimationsListenerCreator.js.map +1 -1
  204. package/dist/animations/animationMiddleware.d.ts +4 -0
  205. package/dist/animations/animationMiddleware.js +50 -0
  206. package/dist/animations/animationMiddleware.js.map +1 -0
  207. package/dist/animations/index.d.ts +0 -1
  208. package/dist/animations/index.js +5 -22
  209. package/dist/animations/index.js.map +1 -1
  210. package/dist/api/Client/GameClientAPI.d.ts +5 -6
  211. package/dist/api/Client/GameClientAPI.js +70 -119
  212. package/dist/api/Client/GameClientAPI.js.map +1 -1
  213. package/dist/api/Client/GameNotificationsListener.js +51 -104
  214. package/dist/api/Client/GameNotificationsListener.js.map +1 -1
  215. package/dist/api/Client/RemoteGameLoader.js +50 -45
  216. package/dist/api/Client/RemoteGameLoader.js.map +1 -1
  217. package/dist/api/Client/RemoteGameProvider.js +15 -51
  218. package/dist/api/Client/RemoteGameProvider.js.map +1 -1
  219. package/dist/api/Client/apollo-client.d.ts +1 -1
  220. package/dist/api/Client/apollo-client.js +14 -31
  221. package/dist/api/Client/apollo-client.js.map +1 -1
  222. package/dist/api/Client/index.js +4 -20
  223. package/dist/api/Client/index.js.map +1 -1
  224. package/dist/api/Client/pusher.js +5 -12
  225. package/dist/api/Client/pusher.js.map +1 -1
  226. package/dist/api/GameAPI.d.ts +2 -3
  227. package/dist/api/GameAPI.js +1 -2
  228. package/dist/api/Local/ConsoleTools.d.ts +1 -2
  229. package/dist/api/Local/ConsoleTools.js +15 -22
  230. package/dist/api/Local/ConsoleTools.js.map +1 -1
  231. package/dist/api/Local/GameLocalAPI.d.ts +4 -5
  232. package/dist/api/Local/GameLocalAPI.js +264 -363
  233. package/dist/api/Local/GameLocalAPI.js.map +1 -1
  234. package/dist/api/Local/LocalGameProvider.d.ts +1 -1
  235. package/dist/api/Local/LocalGameProvider.js +17 -48
  236. package/dist/api/Local/LocalGameProvider.js.map +1 -1
  237. package/dist/api/Local/index.js +1 -17
  238. package/dist/api/Local/index.js.map +1 -1
  239. package/dist/api/index.js +2 -18
  240. package/dist/api/index.js.map +1 -1
  241. package/dist/index.d.ts +0 -2
  242. package/dist/index.js +16 -36
  243. package/dist/index.js.map +1 -1
  244. package/dist/util/ArrayUtil.js +4 -8
  245. package/dist/util/ArrayUtil.js.map +1 -1
  246. package/package.json +66 -62
  247. package/dist/Actions/ActionType.d.ts +0 -3
  248. package/dist/Actions/ActionType.js +0 -8
  249. package/dist/Actions/ActionType.js.map +0 -1
  250. package/dist/Scoring/ScoringDescription.d.ts +0 -8
  251. package/dist/Scoring/ScoringDescription.js +0 -3
  252. package/dist/Scoring/ScoringDescription.js.map +0 -1
  253. package/dist/Scoring/index.d.ts +0 -1
  254. package/dist/Scoring/index.js +0 -18
  255. package/dist/Scoring/index.js.map +0 -1
  256. package/dist/util/TimeUtil.d.ts +0 -2
  257. package/dist/util/TimeUtil.js +0 -27
  258. package/dist/util/TimeUtil.js.map +0 -1
@@ -1,19 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./User"), exports);
18
- __exportStar(require("./useMe"), exports);
1
+ export * from './User';
2
+ export * from './useMe';
19
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/User/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/User/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
@@ -1,21 +1,11 @@
1
- "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.useMe = useMe;
8
- var client_1 = require("@apollo/client");
9
- var react_1 = require("react");
10
- var api_1 = require("../api");
11
- var GET_ME = (0, client_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["query Me { me { user { id name subscriptionSince avatar {...AvatarInfo} } } } ", ""], ["query Me { me { user { id name subscriptionSince avatar {...AvatarInfo} } } } ", ""])), api_1.AVATAR_INFO);
12
- function useMe() {
13
- var _a;
14
- var urlSearchParams = new URLSearchParams(window.location.search);
15
- var fetchPolicy = (0, react_1.useMemo)(function () {
16
- return process.env.NODE_ENV !== 'production' && !urlSearchParams.get('game') && !urlSearchParams.get('mode') ? 'cache-only' : 'cache-first';
17
- }, []);
18
- return (_a = (0, client_1.useQuery)(GET_ME, { ssr: false, fetchPolicy: fetchPolicy }).data) === null || _a === void 0 ? void 0 : _a.me;
1
+ import { gql } from '@apollo/client';
2
+ import { useQuery } from '@apollo/client/react';
3
+ import { useMemo } from 'react';
4
+ import { AVATAR_INFO } from '../api';
5
+ const GET_ME = gql `query Me { me { user { id name subscriptionSince avatar {...AvatarInfo} } } } ${AVATAR_INFO}`;
6
+ export function useMe() {
7
+ const urlSearchParams = new URLSearchParams(window.location.search);
8
+ const fetchPolicy = useMemo(() => process.env.NODE_ENV !== 'production' && !urlSearchParams.get('game') && !urlSearchParams.get('mode') ? 'cache-only' : 'cache-first', []);
9
+ return useQuery(GET_ME, { ssr: false, fetchPolicy }).data?.me;
19
10
  }
20
- var templateObject_1;
21
11
  //# sourceMappingURL=useMe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMe.js","sourceRoot":"","sources":["../../src/User/useMe.ts"],"names":[],"mappings":";;;;;;AAOA,sBAMC;AAbD,yCAA8C;AAC9C,+BAA+B;AAC/B,8BAAoC;AAGpC,IAAM,MAAM,OAAG,YAAG,wJAAA,gFAAiF,EAAW,EAAE,KAAb,iBAAW,CAAE,CAAA;AAEhH,SAAgB,KAAK;;IACnB,IAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnE,IAAM,WAAW,GAAG,IAAA,eAAO,EAAC;QACxB,OAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa;IAApI,CAAoI,EACpI,EAAE,CAAC,CAAA;IACP,OAAO,MAAA,IAAA,iBAAQ,EAAyB,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC,IAAI,0CAAE,EAAE,CAAA;AACvF,CAAC"}
1
+ {"version":3,"file":"useMe.js","sourceRoot":"","sources":["../../src/User/useMe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAGpC,MAAM,MAAM,GAAG,GAAG,CAAA,iFAAiF,WAAW,EAAE,CAAA;AAEhH,MAAM,UAAU,KAAK;IACnB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EACpI,EAAE,CAAC,CAAA;IACP,OAAO,QAAQ,CAAyB,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;AACvF,CAAC"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=Animation.js.map
@@ -1,6 +1,6 @@
1
1
  import { AnimationStep } from './AnimationStep';
2
2
  import { DisplayedAction } from '../Store';
3
- export type AnimationContext<Game, Move, PlayerId> = {
3
+ export type AnimationContext<Game = any, Move = any, PlayerId = any> = {
4
4
  action: DisplayedAction<Move, PlayerId>;
5
5
  game: Game;
6
6
  step: AnimationStep;
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=AnimationContext.js.map
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=AnimationState.js.map
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AnimationStep = void 0;
4
- var AnimationStep;
1
+ export var AnimationStep;
5
2
  (function (AnimationStep) {
6
3
  AnimationStep[AnimationStep["BEFORE_MOVE"] = 1] = "BEFORE_MOVE";
7
4
  AnimationStep[AnimationStep["AFTER_MOVE"] = 2] = "AFTER_MOVE";
8
5
  AnimationStep[AnimationStep["BEFORE_UNDO"] = 3] = "BEFORE_UNDO";
9
6
  AnimationStep[AnimationStep["AFTER_UNDO"] = 4] = "AFTER_UNDO";
10
- })(AnimationStep || (exports.AnimationStep = AnimationStep = {}));
7
+ })(AnimationStep || (AnimationStep = {}));
11
8
  //# sourceMappingURL=AnimationStep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationStep.js","sourceRoot":"","sources":["../../src/animations/AnimationStep.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,+DAAe,CAAA;IAAE,6DAAU,CAAA;IAAE,+DAAW,CAAA;IAAE,6DAAU,CAAA;AACtD,CAAC,EAFW,aAAa,6BAAb,aAAa,QAExB"}
1
+ {"version":3,"file":"AnimationStep.js","sourceRoot":"","sources":["../../src/animations/AnimationStep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,+DAAe,CAAA;IAAE,6DAAU,CAAA;IAAE,+DAAW,CAAA;IAAE,6DAAU,CAAA;AACtD,CAAC,EAFW,aAAa,KAAb,aAAa,QAExB"}
@@ -1,23 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Animations = void 0;
4
- var AnimationStep_1 = require("./AnimationStep");
5
- var Animations = (function () {
6
- function Animations() {
7
- }
8
- Animations.prototype.getDuration = function (move, context) {
1
+ import { AnimationStep } from './AnimationStep';
2
+ export class Animations {
3
+ getDuration(move, context) {
9
4
  switch (context.step) {
10
- case AnimationStep_1.AnimationStep.BEFORE_MOVE:
5
+ case AnimationStep.BEFORE_MOVE:
11
6
  return this.getPreDuration ? this.getPreDuration(move, context) : 0;
12
- case AnimationStep_1.AnimationStep.AFTER_MOVE:
7
+ case AnimationStep.AFTER_MOVE:
13
8
  return this.getPostDuration ? this.getPostDuration(move, context) : 0;
14
- case AnimationStep_1.AnimationStep.BEFORE_UNDO:
9
+ case AnimationStep.BEFORE_UNDO:
15
10
  return this.getUndoPreDuration ? this.getUndoPreDuration(move, context) : 0;
16
- case AnimationStep_1.AnimationStep.AFTER_UNDO:
11
+ case AnimationStep.AFTER_UNDO:
17
12
  return this.getUndoPostDuration ? this.getUndoPostDuration(move, context) : 0;
18
13
  }
19
- };
20
- return Animations;
21
- }());
22
- exports.Animations = Animations;
14
+ }
15
+ }
23
16
  //# sourceMappingURL=Animations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Animations.js","sourceRoot":"","sources":["../../src/animations/Animations.ts"],"names":[],"mappings":";;;AACA,iDAA+C;AAE/C;IAAA;IAsBA,CAAC;IApBC,gCAAW,GAAX,UAAY,IAAU,EAAE,OAA+C;QACrE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,6BAAa,CAAC,WAAW;gBAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACrE,KAAK,6BAAa,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,KAAK,6BAAa,CAAC,WAAW;gBAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7E,KAAK,6BAAa,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IASH,iBAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBY,gCAAU"}
1
+ {"version":3,"file":"Animations.js","sourceRoot":"","sources":["../../src/animations/Animations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,OAAO,UAAU;IAErB,WAAW,CAAC,IAAU,EAAE,OAA+C;QACrE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,aAAa,CAAC,WAAW;gBAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACrE,KAAK,aAAa,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,KAAK,aAAa,CAAC,WAAW;gBAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7E,KAAK,aAAa,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;CASF"}
@@ -0,0 +1,6 @@
1
+ import { RulesCreator } from '../../../rules-api';
2
+ type Props<Game = any, Move = any, PlayerId = any> = {
3
+ Rules: RulesCreator<Game, Move, PlayerId>;
4
+ };
5
+ export declare function AnimationsListener<Game = any, Move = any, PlayerId = any>({ Rules }: Props<Game, Move, PlayerId>): null;
6
+ export {};
@@ -0,0 +1,54 @@
1
+ import { intersection } from 'es-toolkit';
2
+ import { useEffect, useRef } from 'react';
3
+ import { useDispatch } from 'react-redux';
4
+ import { startAnimation } from '../Actions/startAnimation';
5
+ import { isActionToAnimate, useGameSelector } from '../Store';
6
+ import { endAnimation } from '../Store/endAnimation';
7
+ export function AnimationsListener({ Rules }) {
8
+ const dispatch = useDispatch();
9
+ const actions = useGameSelector((state) => state.actions) ?? [];
10
+ const state = useGameSelector((state) => state.state) ?? [];
11
+ const players = useGameSelector((state) => state.players) ?? [];
12
+ const timers = useRef(new Map());
13
+ useEffect(() => {
14
+ if (!actions || !state)
15
+ return;
16
+ const rules = new Rules(state);
17
+ let playersToAnimateAction = players
18
+ .filter(player => rules.isTurnToPlay(player.id))
19
+ .map(player => player.id);
20
+ let isAnimating = false;
21
+ for (const action of actions) {
22
+ const animation = action.animation;
23
+ if (animation) {
24
+ isAnimating = true;
25
+ if (action.activePlayers) {
26
+ playersToAnimateAction = intersection(playersToAnimateAction, action.activePlayers);
27
+ }
28
+ const index = playersToAnimateAction.findIndex(p => p === action.playerId);
29
+ if (index !== -1) {
30
+ playersToAnimateAction.splice(index, 1);
31
+ }
32
+ if (!timers.current.has(animation.id)) {
33
+ console.log(`schedule timer for ${animation.id} at ${Date.now()} for ${animation.duration}`);
34
+ const timer = setTimeout(() => {
35
+ timers.current.delete(animation.id);
36
+ console.log(`end animation for ${animation.id} at ${Date.now()}`);
37
+ dispatch(endAnimation(animation.id));
38
+ }, animation.duration * 1000);
39
+ timers.current.set(animation.id, timer);
40
+ }
41
+ }
42
+ else if (isActionToAnimate(action) && (!isAnimating || playersToAnimateAction.includes(action.playerId))) {
43
+ dispatch(startAnimation(action.id));
44
+ return;
45
+ }
46
+ }
47
+ return () => {
48
+ timers.current.forEach(timer => clearTimeout(timer));
49
+ timers.current.clear();
50
+ };
51
+ }, [actions, players, state, Rules, dispatch]);
52
+ return null;
53
+ }
54
+ //# sourceMappingURL=AnimationsListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationsListener.js","sourceRoot":"","sources":["../../src/animations/AnimationsListener.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,2 @@
1
1
  import { RulesCreator } from '@gamepark/rules-api';
2
- import { Store } from 'redux';
3
- import { GamePageState } from '../Store';
4
- import { GameActions } from '../Store/gameReducer';
5
- export declare function createAnimationsListener<Game = any, Move = any, PlayerId = any>(store: Store<GamePageState<Game, Move, PlayerId>, GameActions<Game, Move, PlayerId>>, Rules: RulesCreator<Game, Move, PlayerId>): () => void;
2
+ export declare function createAnimationsListener<Game = any, Move = any, PlayerId = any>(Rules: RulesCreator<Game, Move, PlayerId>): () => void;
@@ -1,46 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAnimationsListener = createAnimationsListener;
4
- var es_toolkit_1 = require("es-toolkit");
5
- var Actions_1 = require("../Actions");
6
- var Store_1 = require("../Store");
7
- function createAnimationsListener(store, Rules) {
8
- var timers = new Map();
9
- return function () {
10
- var _a = store.getState(), actions = _a.actions, animationPaused = _a.animationPaused, players = _a.players, state = _a.state;
1
+ import { intersection } from 'es-toolkit';
2
+ import { startAnimation } from '../Actions/startAnimation';
3
+ import { isActionToAnimate, store } from '../Store';
4
+ import { endAnimation } from '../Store/endAnimation';
5
+ export function createAnimationsListener(Rules) {
6
+ const timers = new Map();
7
+ return () => {
8
+ const { actions, players, state } = store.getState();
11
9
  if (!actions || !state)
12
10
  return;
13
- var rules = new Rules(state);
14
- var playersToAnimateAction = players.filter(function (player) { return rules.isTurnToPlay(player.id); }).map(function (player) { return player.id; });
15
- var isAnimating = false;
16
- var _loop_1 = function (action) {
17
- var animation = action.animation;
11
+ const rules = new Rules(state);
12
+ let playersToAnimateAction = players.filter(player => rules.isTurnToPlay(player.id)).map(player => player.id);
13
+ let isAnimating = false;
14
+ for (const action of actions) {
15
+ const animation = action.animation;
18
16
  if (animation) {
19
17
  isAnimating = true;
20
18
  if (action.activePlayers) {
21
- playersToAnimateAction = (0, es_toolkit_1.intersection)(playersToAnimateAction, action.activePlayers);
19
+ playersToAnimateAction = intersection(playersToAnimateAction, action.activePlayers);
22
20
  }
23
- var index = playersToAnimateAction.findIndex(function (p) { return p === action.playerId; });
21
+ const index = playersToAnimateAction.findIndex(p => p === action.playerId);
24
22
  if (index !== -1) {
25
23
  playersToAnimateAction.splice(index, 1);
26
24
  }
27
25
  if (!timers.has(animation.id)) {
28
- timers.set(animation.id, setTimeout(function () {
29
- timers.delete(animation.id);
30
- store.dispatch((0, Actions_1.animationComplete)(animation.id));
31
- }, animation.duration * 1000));
26
+ requestAnimationFrame(() => {
27
+ timers.set(animation.id, setTimeout(() => {
28
+ timers.delete(animation.id);
29
+ store.dispatch(endAnimation(animation.id));
30
+ }, animation.duration * 1000));
31
+ });
32
32
  }
33
33
  }
34
- else if (!animationPaused && (0, Store_1.isActionToAnimate)(action) && (!isAnimating || playersToAnimateAction.includes(action.playerId))) {
35
- store.dispatch({ type: Actions_1.ANIMATION_START, actionId: action.id });
36
- return { value: void 0 };
34
+ else if (isActionToAnimate(action) && (!isAnimating || playersToAnimateAction.includes(action.playerId))) {
35
+ store.dispatch(startAnimation(action.id));
36
+ return;
37
37
  }
38
- };
39
- for (var _i = 0, actions_1 = actions; _i < actions_1.length; _i++) {
40
- var action = actions_1[_i];
41
- var state_1 = _loop_1(action);
42
- if (typeof state_1 === "object")
43
- return state_1.value;
44
38
  }
45
39
  };
46
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationsListenerCreator.js","sourceRoot":"","sources":["../../src/animations/AnimationsListenerCreator.ts"],"names":[],"mappings":";;AAOA,4DAiCC;AAvCD,yCAAyC;AAEzC,sCAA+D;AAC/D,kCAA2D;AAG3D,SAAgB,wBAAwB,CACtC,KAAoF,EAAE,KAAyC;IAE/H,IAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,OAAO;QACC,IAAA,KAA+C,KAAK,CAAC,QAAQ,EAAE,EAA7D,OAAO,aAAA,EAAE,eAAe,qBAAA,EAAE,OAAO,aAAA,EAAE,KAAK,WAAqB,CAAA;QACrE,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;YAAE,OAAM;QAC9B,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,EAAE,EAAT,CAAS,CAAC,CAAA;QAC7G,IAAI,WAAW,GAAG,KAAK,CAAA;gCACZ,MAAM;YACf,IAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;YAClC,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAA;gBAClB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,sBAAsB,GAAG,IAAA,yBAAY,EAAC,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;gBACrF,CAAC;gBACD,IAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,MAAM,CAAC,QAAQ,EAArB,CAAqB,CAAC,CAAA;gBAC1E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjB,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACzC,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC;wBAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;wBAC3B,KAAK,CAAC,QAAQ,CAAC,IAAA,2BAAiB,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;oBACjD,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAA;gBAChC,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,eAAe,IAAI,IAAA,yBAAiB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC/H,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,yBAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAG,EAAE,CAAC,CAAA;;YAEjE,CAAC;;QApBH,KAAqB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO;YAAvB,IAAM,MAAM,gBAAA;kCAAN,MAAM;;;SAqBhB;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"AnimationsListenerCreator.js","sourceRoot":"","sources":["../../src/animations/AnimationsListenerCreator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,UAAU,wBAAwB,CACtC,KAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,OAAO,GAAG,EAAE;QACV,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QACpD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;YAAE,OAAM;QAC9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC7G,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;YAClC,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAA;gBAClB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;gBACrF,CAAC;gBACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC1E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjB,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACzC,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,qBAAqB,CAAC,GAAG,EAAE;wBACzB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE;4BACvC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;4BAC3B,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;wBAC5C,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAA;oBAChC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC3G,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAG,CAAC,CAAC,CAAA;gBAC1C,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { RulesCreator } from '@gamepark/rules-api';
2
+ import { Middleware } from '@reduxjs/toolkit';
3
+ import { GamePageState } from '../Store';
4
+ export declare function createAnimationMiddleware<Game = any, Move = any, PlayerId = any>(Rules: RulesCreator<Game, Move, PlayerId>): Middleware<{}, GamePageState<Game, Move, PlayerId>>;
@@ -0,0 +1,50 @@
1
+ import { intersection } from 'es-toolkit';
2
+ import { startAnimation } from '../Actions/startAnimation';
3
+ import { isActionToAnimate } from '../Store';
4
+ import { endAnimation } from '../Store/endAnimation';
5
+ export function createAnimationMiddleware(Rules) {
6
+ const timers = new Map();
7
+ return store => next => action => {
8
+ const result = next(action);
9
+ const { actions, players, state } = store.getState();
10
+ if (!actions || !state)
11
+ return result;
12
+ const rules = new Rules(state);
13
+ let playersToAnimateAction = players
14
+ .filter((player) => rules.isTurnToPlay(player.id))
15
+ .map((player) => player.id);
16
+ let isAnimating = false;
17
+ for (const action of actions) {
18
+ const animation = action.animation;
19
+ if (animation) {
20
+ isAnimating = true;
21
+ if (action.activePlayers) {
22
+ playersToAnimateAction = intersection(playersToAnimateAction, action.activePlayers);
23
+ }
24
+ const index = playersToAnimateAction.findIndex((p) => p === action.playerId);
25
+ if (index !== -1) {
26
+ playersToAnimateAction.splice(index, 1);
27
+ }
28
+ if (!timers.has(animation.id)) {
29
+ const start = performance.now();
30
+ requestAnimationFrame(() => {
31
+ const rafDelay = performance.now() - start;
32
+ const timeoutDuration = Math.max(0, animation.duration * 1000 - rafDelay);
33
+ console.log(timeoutDuration);
34
+ const timer = setTimeout(() => {
35
+ timers.delete(animation.id);
36
+ store.dispatch(endAnimation(animation.id));
37
+ }, animation.duration * 1000);
38
+ timers.set(animation.id, timer);
39
+ });
40
+ }
41
+ }
42
+ else if (isActionToAnimate(action) && (!isAnimating || playersToAnimateAction.includes(action.playerId))) {
43
+ store.dispatch(startAnimation(action.id));
44
+ return;
45
+ }
46
+ }
47
+ return result;
48
+ };
49
+ }
50
+ //# sourceMappingURL=animationMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animationMiddleware.js","sourceRoot":"","sources":["../../src/animations/animationMiddleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAiB,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,UAAU,yBAAyB,CACvC,KAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAEhD,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QAE3B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAEpD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAA;QAErC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,sBAAsB,GAAG,OAAO;aACjC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE7B,IAAI,WAAW,GAAG,KAAK,CAAA;QAEvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;YAElC,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAA;gBAElB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;gBACrF,CAAC;gBAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC5E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjB,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACzC,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;oBAC/B,qBAAqB,CAAC,GAAG,EAAE;wBACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;wBAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAA;wBACzE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;wBAE5B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;4BAC5B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;4BAC3B,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;wBAC5C,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;wBAE7B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;oBACjC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC3G,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAG,CAAC,CAAC,CAAA;gBAC1C,OAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC"}
@@ -1,6 +1,5 @@
1
1
  export * from './Animation';
2
2
  export * from './AnimationContext';
3
3
  export * from './Animations';
4
- export * from './AnimationsListenerCreator';
5
4
  export * from './AnimationState';
6
5
  export * from './AnimationStep';
@@ -1,23 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Animation"), exports);
18
- __exportStar(require("./AnimationContext"), exports);
19
- __exportStar(require("./Animations"), exports);
20
- __exportStar(require("./AnimationsListenerCreator"), exports);
21
- __exportStar(require("./AnimationState"), exports);
22
- __exportStar(require("./AnimationStep"), exports);
1
+ export * from './Animation';
2
+ export * from './AnimationContext';
3
+ export * from './Animations';
4
+ export * from './AnimationState';
5
+ export * from './AnimationStep';
23
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/animations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,qDAAkC;AAClC,+CAA4B;AAC5B,8DAA2C;AAC3C,mDAAgC;AAChC,kDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/animations/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
@@ -1,25 +1,24 @@
1
- import { ApolloError } from '@apollo/client';
2
1
  import { Dispatch } from 'redux';
3
- import { GameActions } from '../../Store/gameReducer';
4
2
  import { GameAPI } from '../GameAPI';
3
+ export declare const PLATFORM_URI: string;
5
4
  export declare const AVATAR_INFO: import("@apollo/client").DocumentNode;
6
5
  export declare const PLAYERS_TIME: import("@apollo/client").DocumentNode;
7
6
  export declare const NOTIFICATIONS: import("@apollo/client").DocumentNode;
8
7
  export declare const GET_MESSAGE_AUTHOR: import("@apollo/client").DocumentNode;
9
- export declare class GameClientAPI<Game = any, Move = any, PlayerId = any> implements GameAPI<Game, Move, PlayerId> {
8
+ export declare class GameClientAPI<Move = any, PlayerId = any> implements GameAPI<Move, PlayerId> {
10
9
  private dispatch?;
11
10
  private readonly gameId;
12
11
  private ongoingAction?;
13
12
  private pendingActions;
14
13
  constructor(gameId: string);
15
- init(dispatch: Dispatch<GameActions<Game, Move, PlayerId>>): Promise<void>;
14
+ init(dispatch: Dispatch): Promise<void>;
16
15
  play(move: Move): void;
17
16
  undo(action: number | string): void;
18
17
  private executePendingActions;
19
18
  private handleGameMessageResult;
20
19
  eject(playerId: PlayerId): void;
21
20
  giveUp(): void;
22
- onError({ graphQLErrors, networkError }: ApolloError): void;
21
+ onError(error: unknown): void;
23
22
  playTutorialMoves(): void;
24
- claimVictory(): Promise<import("@apollo/client").FetchResult<any>>;
23
+ claimVictory(): Promise<import("@apollo/client").ApolloClient.MutateResult<unknown>>;
25
24
  }