@gamepark/react-game 6.0.0-alpha.0 → 6.1.0

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 (264) hide show
  1. package/dist/components/Avatar/Avatar.js +7 -5
  2. package/dist/components/Avatar/Avatar.js.map +1 -1
  3. package/dist/components/GameProvider/GameContext.d.ts +1 -0
  4. package/dist/components/GameProvider/GameContext.js.map +1 -1
  5. package/dist/components/GameProvider/GameProvider.d.ts +1 -1
  6. package/dist/components/GameProvider/GameProvider.js +13 -4
  7. package/dist/components/GameProvider/GameProvider.js.map +1 -1
  8. package/dist/components/ImagesLoader/ImagesLoader.d.ts +2 -3
  9. package/dist/components/ImagesLoader/ImagesLoader.js.map +1 -1
  10. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +25 -10
  11. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
  12. package/dist/components/dialogs/ResultDialog/ResultDialog.js +22 -17
  13. package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
  14. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.d.ts +4 -9
  15. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js +7 -7
  16. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js.map +1 -1
  17. package/dist/components/dialogs/RulesDialog/MaterialRulesDialog.js +5 -17
  18. package/dist/components/dialogs/RulesDialog/MaterialRulesDialog.js.map +1 -1
  19. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.d.ts +3 -6
  20. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +8 -8
  21. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
  22. package/dist/components/dialogs/RulesDialog/RulesDialog.d.ts +1 -0
  23. package/dist/components/dialogs/RulesDialog/RulesDialog.js +3 -3
  24. package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
  25. package/dist/components/index.d.ts +2 -0
  26. package/dist/components/index.js +2 -0
  27. package/dist/components/index.js.map +1 -1
  28. package/dist/components/material/DraggableMaterial.d.ts +14 -11
  29. package/dist/components/material/DraggableMaterial.js +102 -48
  30. package/dist/components/material/DraggableMaterial.js.map +1 -1
  31. package/dist/components/material/FlatMaterial/BoardDescription.d.ts +3 -0
  32. package/dist/components/material/FlatMaterial/BoardDescription.js +28 -0
  33. package/dist/components/material/FlatMaterial/BoardDescription.js.map +1 -0
  34. package/dist/components/material/FlatMaterial/CardDescription.d.ts +6 -0
  35. package/dist/components/material/FlatMaterial/CardDescription.js +32 -0
  36. package/dist/components/material/FlatMaterial/CardDescription.js.map +1 -0
  37. package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +35 -0
  38. package/dist/components/material/FlatMaterial/FlatMaterial.js +128 -0
  39. package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -0
  40. package/dist/components/material/FlatMaterial/TokenDescription.d.ts +10 -0
  41. package/dist/components/material/FlatMaterial/TokenDescription.js +44 -0
  42. package/dist/components/material/FlatMaterial/TokenDescription.js.map +1 -0
  43. package/dist/components/material/FlatMaterial/index.d.ts +4 -0
  44. package/dist/components/material/{Card → FlatMaterial}/index.js +4 -1
  45. package/dist/components/material/FlatMaterial/index.js.map +1 -0
  46. package/dist/components/material/GameTable/GameMaterialDisplay.js +64 -45
  47. package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
  48. package/dist/components/material/GameTable/GameTable.d.ts +2 -2
  49. package/dist/components/material/GameTable/GameTable.js +64 -16
  50. package/dist/components/material/GameTable/GameTable.js.map +1 -1
  51. package/dist/components/material/GameTable/GameTableContent.js +22 -7
  52. package/dist/components/material/GameTable/GameTableContent.js.map +1 -1
  53. package/dist/components/material/ImageLoader/MaterialImageLoader.d.ts +5 -0
  54. package/dist/components/material/ImageLoader/MaterialImageLoader.js +33 -0
  55. package/dist/components/material/ImageLoader/MaterialImageLoader.js.map +1 -0
  56. package/dist/components/material/ImageLoader/index.d.ts +1 -0
  57. package/dist/components/material/{Token → ImageLoader}/index.js +1 -1
  58. package/dist/components/material/ImageLoader/index.js.map +1 -0
  59. package/dist/components/material/MaterialAnimations.d.ts +11 -14
  60. package/dist/components/material/MaterialAnimations.js +129 -82
  61. package/dist/components/material/MaterialAnimations.js.map +1 -1
  62. package/dist/components/material/MaterialComponent.d.ts +5 -10
  63. package/dist/components/material/MaterialComponent.js +8 -53
  64. package/dist/components/material/MaterialComponent.js.map +1 -1
  65. package/dist/components/material/MaterialDescription.d.ts +31 -18
  66. package/dist/components/material/MaterialDescription.js +36 -0
  67. package/dist/components/material/MaterialDescription.js.map +1 -1
  68. package/dist/components/material/animations/CreateItemAnimations.d.ts +14 -0
  69. package/dist/components/material/animations/CreateItemAnimations.js +72 -0
  70. package/dist/components/material/animations/CreateItemAnimations.js.map +1 -0
  71. package/dist/components/material/animations/DeleteItemAnimations.d.ts +14 -0
  72. package/dist/components/material/animations/DeleteItemAnimations.js +80 -0
  73. package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -0
  74. package/dist/components/material/animations/ItemAnimations.d.ts +7 -0
  75. package/dist/components/material/animations/ItemAnimations.js +31 -0
  76. package/dist/components/material/animations/ItemAnimations.js.map +1 -0
  77. package/dist/components/material/animations/MaterialAnimations.d.ts +19 -0
  78. package/dist/components/material/animations/MaterialAnimations.js +51 -0
  79. package/dist/components/material/animations/MaterialAnimations.js.map +1 -0
  80. package/dist/components/material/animations/MaterialGameAnimations.d.ts +11 -0
  81. package/dist/components/material/animations/MaterialGameAnimations.js +42 -0
  82. package/dist/components/material/animations/MaterialGameAnimations.js.map +1 -0
  83. package/dist/components/material/animations/MoveItemAnimations.d.ts +16 -0
  84. package/dist/components/material/animations/MoveItemAnimations.js +105 -0
  85. package/dist/components/material/animations/MoveItemAnimations.js.map +1 -0
  86. package/dist/components/material/animations/ShuffleAnimations.d.ts +8 -0
  87. package/dist/components/material/animations/ShuffleAnimations.js +34 -0
  88. package/dist/components/material/animations/ShuffleAnimations.js.map +1 -0
  89. package/dist/components/material/animations/adjustRotation.d.ts +1 -0
  90. package/dist/components/material/animations/adjustRotation.js +37 -0
  91. package/dist/components/material/animations/adjustRotation.js.map +1 -0
  92. package/dist/components/material/animations/getFirstStockItemTransforms.util.d.ts +2 -0
  93. package/dist/components/material/animations/getFirstStockItemTransforms.util.js +32 -0
  94. package/dist/components/material/animations/getFirstStockItemTransforms.util.js.map +1 -0
  95. package/dist/components/material/animations/index.d.ts +9 -0
  96. package/dist/components/material/animations/index.js +29 -0
  97. package/dist/components/material/animations/index.js.map +1 -0
  98. package/dist/components/material/animations/isMovedOrDeletedItem.util.d.ts +3 -0
  99. package/dist/components/material/animations/isMovedOrDeletedItem.util.js +28 -0
  100. package/dist/components/material/animations/isMovedOrDeletedItem.util.js.map +1 -0
  101. package/dist/components/material/animations/itemMovementCss.util.d.ts +2 -0
  102. package/dist/components/material/animations/itemMovementCss.util.js +13 -0
  103. package/dist/components/material/animations/itemMovementCss.util.js.map +1 -0
  104. package/dist/components/material/animations/transformItem.util.d.ts +2 -0
  105. package/dist/components/material/animations/transformItem.util.js +11 -0
  106. package/dist/components/material/animations/transformItem.util.js.map +1 -0
  107. package/dist/components/material/index.d.ts +4 -7
  108. package/dist/components/material/index.js +4 -7
  109. package/dist/components/material/index.js.map +1 -1
  110. package/dist/components/material/locations/LocationDescription.d.ts +28 -0
  111. package/dist/components/material/locations/LocationDescription.js +54 -0
  112. package/dist/components/material/locations/LocationDescription.js.map +1 -0
  113. package/dist/components/material/locations/LocationsMask.d.ts +5 -0
  114. package/dist/components/material/locations/LocationsMask.js +48 -0
  115. package/dist/components/material/locations/LocationsMask.js.map +1 -0
  116. package/dist/components/material/locations/SimpleDropArea.d.ts +13 -0
  117. package/dist/components/material/{DropAreas → locations}/SimpleDropArea.js +44 -30
  118. package/dist/components/material/locations/SimpleDropArea.js.map +1 -0
  119. package/dist/components/material/locations/index.d.ts +3 -0
  120. package/dist/components/material/{Board → locations}/index.js +3 -1
  121. package/dist/components/material/locations/index.js.map +1 -0
  122. package/dist/components/material/utils/getItemFromContext.d.ts +3 -0
  123. package/dist/components/material/utils/getItemFromContext.js +10 -0
  124. package/dist/components/material/utils/getItemFromContext.js.map +1 -0
  125. package/dist/components/material/utils/index.d.ts +0 -3
  126. package/dist/components/material/utils/index.js +0 -3
  127. package/dist/components/material/utils/index.js.map +1 -1
  128. package/dist/components/material/utils/isDroppedItem.d.ts +2 -0
  129. package/dist/components/material/utils/isDroppedItem.js +15 -0
  130. package/dist/components/material/utils/isDroppedItem.js.map +1 -0
  131. package/dist/components/material/utils/isPlacedOnItem.d.ts +3 -0
  132. package/dist/components/material/utils/isPlacedOnItem.js +15 -0
  133. package/dist/components/material/utils/isPlacedOnItem.js.map +1 -0
  134. package/dist/components/material/utils/useIsAnimatingPlayerAction.d.ts +1 -0
  135. package/dist/components/material/utils/useIsAnimatingPlayerAction.js +10 -0
  136. package/dist/components/material/utils/useIsAnimatingPlayerAction.js.map +1 -0
  137. package/dist/components/menus/Menu/Menu.js +3 -3
  138. package/dist/components/menus/Menu/Menu.js.map +1 -1
  139. package/dist/components/menus/Result/ResultPopButton.js +1 -1
  140. package/dist/components/menus/Result/ResultPopButton.js.map +1 -1
  141. package/dist/components/tutorial/MaterialTutorial.d.ts +47 -0
  142. package/dist/components/tutorial/MaterialTutorial.js +95 -0
  143. package/dist/components/tutorial/MaterialTutorial.js.map +1 -0
  144. package/dist/components/tutorial/MaterialTutorialDisplay.d.ts +1 -0
  145. package/dist/components/tutorial/MaterialTutorialDisplay.js +73 -0
  146. package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -0
  147. package/dist/components/tutorial/TutorialRulesWrapper.d.ts +3 -0
  148. package/dist/components/tutorial/TutorialRulesWrapper.js +60 -0
  149. package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -0
  150. package/dist/components/tutorial/index.d.ts +1 -0
  151. package/dist/components/{material/DropAreas → tutorial}/index.js +1 -1
  152. package/dist/components/tutorial/index.js.map +1 -0
  153. package/dist/css/componentSizeCss.d.ts +1 -5
  154. package/dist/css/componentSizeCss.js +1 -1
  155. package/dist/css/componentSizeCss.js.map +1 -1
  156. package/dist/css/fadeIn.d.ts +1 -0
  157. package/dist/css/fadeIn.js +13 -0
  158. package/dist/css/fadeIn.js.map +1 -0
  159. package/dist/css/index.d.ts +2 -0
  160. package/dist/css/index.js +2 -0
  161. package/dist/css/index.js.map +1 -1
  162. package/dist/css/shadowEffect.d.ts +1 -0
  163. package/dist/css/shadowEffect.js +11 -0
  164. package/dist/css/shadowEffect.js.map +1 -0
  165. package/dist/css/transformCss.d.ts +1 -0
  166. package/dist/css/transformCss.js +3 -2
  167. package/dist/css/transformCss.js.map +1 -1
  168. package/dist/hooks/index.d.ts +3 -0
  169. package/dist/hooks/index.js +3 -0
  170. package/dist/hooks/index.js.map +1 -1
  171. package/dist/hooks/useItemLocator.js +2 -3
  172. package/dist/hooks/useItemLocator.js.map +1 -1
  173. package/dist/hooks/useLegalMoves.js +11 -6
  174. package/dist/hooks/useLegalMoves.js.map +1 -1
  175. package/dist/hooks/useLocators.d.ts +1 -0
  176. package/dist/hooks/useLocators.js +8 -0
  177. package/dist/hooks/useLocators.js.map +1 -0
  178. package/dist/hooks/useMaterialContext.d.ts +2 -0
  179. package/dist/hooks/useMaterialContext.js +18 -0
  180. package/dist/hooks/useMaterialContext.js.map +1 -0
  181. package/dist/hooks/useMaterials.d.ts +2 -0
  182. package/dist/hooks/useMaterials.js +10 -0
  183. package/dist/hooks/useMaterials.js.map +1 -0
  184. package/dist/hooks/usePlayerName.js +12 -1
  185. package/dist/hooks/usePlayerName.js.map +1 -1
  186. package/dist/hooks/usePlayers.js +1 -1
  187. package/dist/hooks/usePlayers.js.map +1 -1
  188. package/dist/hooks/useRulesStep.d.ts +2 -0
  189. package/dist/hooks/useRulesStep.js +10 -0
  190. package/dist/hooks/useRulesStep.js.map +1 -0
  191. package/dist/hooks/useTutorialStep.d.ts +2 -0
  192. package/dist/hooks/useTutorialStep.js +15 -0
  193. package/dist/hooks/useTutorialStep.js.map +1 -0
  194. package/dist/hooks/useZoomToElements.d.ts +5 -0
  195. package/dist/hooks/useZoomToElements.js +65 -0
  196. package/dist/hooks/useZoomToElements.js.map +1 -0
  197. package/dist/index.d.ts +1 -0
  198. package/dist/locators/DeckLocator.d.ts +4 -4
  199. package/dist/locators/DeckLocator.js +3 -2
  200. package/dist/locators/DeckLocator.js.map +1 -1
  201. package/dist/locators/HandLocator.d.ts +11 -11
  202. package/dist/locators/HandLocator.js.map +1 -1
  203. package/dist/locators/ItemLocator.d.ts +31 -41
  204. package/dist/locators/ItemLocator.js +33 -90
  205. package/dist/locators/ItemLocator.js.map +1 -1
  206. package/dist/locators/LineLocator.d.ts +7 -5
  207. package/dist/locators/LineLocator.js +10 -1
  208. package/dist/locators/LineLocator.js.map +1 -1
  209. package/dist/locators/PileLocator.d.ts +8 -6
  210. package/dist/locators/PileLocator.js +13 -1
  211. package/dist/locators/PileLocator.js.map +1 -1
  212. package/dist/utilities/animations.constants.d.ts +16 -0
  213. package/dist/utilities/animations.constants.js +82 -0
  214. package/dist/utilities/animations.constants.js.map +1 -0
  215. package/dist/utilities/animations.util.d.ts +4 -0
  216. package/dist/utilities/animations.util.js +78 -0
  217. package/dist/utilities/animations.util.js.map +1 -0
  218. package/dist/utilities/bounds.util.d.ts +18 -0
  219. package/dist/utilities/bounds.util.js +85 -0
  220. package/dist/utilities/bounds.util.js.map +1 -0
  221. package/dist/utilities/calculation.util.d.ts +14 -0
  222. package/dist/utilities/calculation.util.js +24 -0
  223. package/dist/utilities/calculation.util.js.map +1 -0
  224. package/dist/utilities/zoom.util.d.ts +4 -0
  225. package/dist/utilities/zoom.util.js +17 -0
  226. package/dist/utilities/zoom.util.js.map +1 -0
  227. package/package.json +7 -5
  228. package/dist/components/material/Board/Board.d.ts +0 -17
  229. package/dist/components/material/Board/Board.js +0 -34
  230. package/dist/components/material/Board/Board.js.map +0 -1
  231. package/dist/components/material/Board/index.d.ts +0 -1
  232. package/dist/components/material/Board/index.js.map +0 -1
  233. package/dist/components/material/Card/Card.d.ts +0 -23
  234. package/dist/components/material/Card/Card.js +0 -49
  235. package/dist/components/material/Card/Card.js.map +0 -1
  236. package/dist/components/material/Card/index.d.ts +0 -1
  237. package/dist/components/material/Card/index.js.map +0 -1
  238. package/dist/components/material/DropAreas/SimpleDropArea.d.ts +0 -12
  239. package/dist/components/material/DropAreas/SimpleDropArea.js.map +0 -1
  240. package/dist/components/material/DropAreas/index.d.ts +0 -1
  241. package/dist/components/material/DropAreas/index.js.map +0 -1
  242. package/dist/components/material/Items.d.ts +0 -4
  243. package/dist/components/material/Items.js +0 -3
  244. package/dist/components/material/Items.js.map +0 -1
  245. package/dist/components/material/Token/Token.d.ts +0 -18
  246. package/dist/components/material/Token/Token.js +0 -34
  247. package/dist/components/material/Token/Token.js.map +0 -1
  248. package/dist/components/material/Token/index.d.ts +0 -1
  249. package/dist/components/material/Token/index.js.map +0 -1
  250. package/dist/components/material/utils/IsMoveThisItem.d.ts +0 -2
  251. package/dist/components/material/utils/IsMoveThisItem.js +0 -12
  252. package/dist/components/material/utils/IsMoveThisItem.js.map +0 -1
  253. package/dist/components/material/utils/IsMoveThisItemToLocation.d.ts +0 -3
  254. package/dist/components/material/utils/IsMoveThisItemToLocation.js +0 -11
  255. package/dist/components/material/utils/IsMoveThisItemToLocation.js.map +0 -1
  256. package/dist/components/material/utils/IsMoveToLocation.d.ts +0 -2
  257. package/dist/components/material/utils/IsMoveToLocation.js +0 -13
  258. package/dist/components/material/utils/IsMoveToLocation.js.map +0 -1
  259. package/dist/components/material/utils/IsMoveToStock.d.ts +0 -4
  260. package/dist/components/material/utils/IsMoveToStock.js +0 -18
  261. package/dist/components/material/utils/IsMoveToStock.js.map +0 -1
  262. package/dist/hooks/useStocks.d.ts +0 -2
  263. package/dist/hooks/useStocks.js +0 -12
  264. package/dist/hooks/useStocks.js.map +0 -1
@@ -1,8 +1,4 @@
1
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
2
  var __assign = (this && this.__assign) || function () {
7
3
  __assign = Object.assign || function(t) {
8
4
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -32,47 +28,62 @@ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
32
28
  var react_1 = require("react");
33
29
  var hooks_1 = require("../../../hooks");
34
30
  var rules_api_1 = require("@gamepark/rules-api");
35
- var pickBy_1 = __importDefault(require("lodash/pickBy"));
36
- var utils_1 = require("../utils");
37
31
  var MaterialComponent_1 = require("../MaterialComponent");
38
32
  var css_1 = require("../../../css");
39
33
  var DraggableMaterial_1 = require("../DraggableMaterial");
40
34
  var dialogs_1 = require("../../dialogs");
41
- var core_1 = require("@dnd-kit/core");
42
- var react_2 = require("@emotion/react");
43
- var GameProvider_1 = require("../../GameProvider");
35
+ var MaterialTutorialDisplay_1 = require("../../tutorial/MaterialTutorialDisplay");
36
+ var useTutorialStep_1 = require("../../../hooks/useTutorialStep");
37
+ var tutorial_1 = require("../../tutorial");
38
+ var locations_1 = require("../locations");
39
+ var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
40
+ var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
44
41
  var GameMaterialDisplay = function () {
45
- var _a, _b;
46
- var context = (0, react_1.useContext)(GameProvider_1.gameContext);
47
- var material = (_a = context.material) !== null && _a !== void 0 ? _a : {};
48
- var locators = (_b = context.locators) !== null && _b !== void 0 ? _b : {};
49
- var player = (0, hooks_1.usePlayerId)();
42
+ var context = (0, hooks_1.useMaterialContext)();
43
+ var material = context.material;
44
+ var locators = context.locators;
50
45
  var rules = (0, hooks_1.useRules)();
51
- var legalMoves = (0, hooks_1.useLegalMoves)();
52
46
  var play = (0, hooks_1.usePlay)();
53
- var _c = (0, react_1.useState)(), draggedItem = _c[0], setDraggedItem = _c[1];
54
- (0, core_1.useDndMonitor)({
55
- onDragStart: function (event) { return (0, DraggableMaterial_1.isDraggedItem)(event.active.data.current) && setDraggedItem(event.active.data.current); },
56
- onDragEnd: function () { return setDraggedItem(undefined); }
57
- });
47
+ var zoomToElements = (0, hooks_1.useZoomToElements)();
48
+ var resetTransform = (0, react_zoom_pan_pinch_1.useControls)().resetTransform;
49
+ var focusRefs = (0, react_1.useRef)(new Set());
50
+ var tutorialStep = (0, useTutorialStep_1.useTutorialStep)();
51
+ var tutorialPopup = !(rules === null || rules === void 0 ? void 0 : rules.game.tutorialPopupClosed) && (tutorialStep === null || tutorialStep === void 0 ? void 0 : tutorialStep.popup);
52
+ var tutorialFocus = (0, react_1.useMemo)(function () {
53
+ var _a;
54
+ focusRefs.current = new Set();
55
+ var tutorialFocus = (rules === null || rules === void 0 ? void 0 : rules.game) ? (_a = tutorialStep === null || tutorialStep === void 0 ? void 0 : tutorialStep.focus) === null || _a === void 0 ? void 0 : _a.call(tutorialStep, rules.game) : undefined;
56
+ if (!tutorialFocus) {
57
+ resetTransform(1000);
58
+ }
59
+ return tutorialFocus;
60
+ }, [tutorialStep]);
61
+ var addFocusRef = (0, react_1.useCallback)(function (ref) {
62
+ if (!ref || focusRefs.current.has(ref))
63
+ return;
64
+ focusRefs.current.add(ref);
65
+ if ((0, tutorial_1.countTutorialFocusRefs)(tutorialFocus) === focusRefs.current.size) {
66
+ var elements_1 = Array.from(focusRefs.current);
67
+ setTimeout(function () { return zoomToElements(elements_1, undefined, 1000); });
68
+ }
69
+ }, [tutorialFocus]);
58
70
  if (!rules)
59
71
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
60
72
  var game = rules === null || rules === void 0 ? void 0 : rules.game;
61
- var commonContext = { game: game, player: player, material: material, locators: locators };
62
73
  return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [Object.entries(material).map(function (_a) {
63
74
  var stringType = _a[0], description = _a[1];
64
- if (!description.items)
65
- return null;
66
75
  var type = parseInt(stringType);
67
- var innerLocators = (0, pickBy_1.default)(locators, function (locator) { return locator.parentItemType === type; });
68
- var innerLocations = Object.keys(innerLocators).map(function (type) { return parseInt(type); });
69
- return description.items(game, player).map(function (item) {
76
+ return description.getStaticItems(context).map(function (item, index) {
70
77
  var _a;
71
- var legalMovesTo = innerLocations.length > 0 ? legalMoves.filter(function (move) { return rules.isMoveTrigger(move, function (move) { return (0, utils_1.isMoveOnItem)(move, item.id, innerLocations); }); }) : undefined;
72
78
  var locator = locators[item.location.type];
73
- return __spreadArray([], Array((_a = item.quantity) !== null && _a !== void 0 ? _a : 1), true).map(function (_, index) {
74
- var context = __assign(__assign({}, commonContext), { type: type, index: index });
75
- return (0, jsx_runtime_1.jsx)(MaterialComponent_1.MaterialComponent, { type: type, itemId: item.id, withLocations: true, legalMovesTo: legalMovesTo, css: [css_1.pointerCursorCss, css_1.transformCss.apply(void 0, locator.transformItem(item, context))], onShortClick: function () { return play((0, rules_api_1.displayMaterialRules)(type, index, item), { local: true }); } }, "".concat(stringType, "_").concat(index));
79
+ return __spreadArray([], Array((_a = item.quantity) !== null && _a !== void 0 ? _a : 1), true).map(function (_, displayIndex) {
80
+ var itemContext = __assign(__assign({}, context), { type: type, index: index, displayIndex: displayIndex });
81
+ var innerLocations = description.getLocations(item, itemContext);
82
+ var focus = (0, tutorial_1.isStaticItemFocus)(type, item, tutorialFocus);
83
+ var locationsFocus = tutorialPopup ? getLocationsFocus(tutorialFocus).filter(function (location) { return innerLocations.some(function (innerLocation) { return (0, fast_deep_equal_1.default)(innerLocation, location); }); }) : [];
84
+ return (0, jsx_runtime_1.jsxs)(MaterialComponent_1.MaterialComponent, __assign({ type: type, itemId: item.id, playDown: tutorialPopup && !focus && !locationsFocus.length, ref: focus ? addFocusRef : undefined, css: [css_1.pointerCursorCss, css_1.transformCss.apply(void 0, locator.transformItem(item, itemContext))], onShortClick: function () { return play((0, rules_api_1.displayMaterialRules)(type, item), { local: true }); } }, { children: [(0, jsx_runtime_1.jsx)(locations_1.LocationsMask, { locations: locationsFocus }), innerLocations.map(function (location) {
85
+ return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, { location: location, ref: (0, tutorial_1.isLocationFocus)(location, tutorialFocus) ? addFocusRef : undefined }, JSON.stringify(location));
86
+ })] }), "".concat(type, "_").concat(index, "_").concat(displayIndex));
76
87
  });
77
88
  });
78
89
  }), rules && game && Object.entries(game.items).map(function (_a) {
@@ -83,25 +94,33 @@ var GameMaterialDisplay = function () {
83
94
  return items.map(function (item, index) {
84
95
  var _a;
85
96
  var locator = locators[item.location.type];
97
+ var description = material[type];
98
+ var focus = (0, tutorial_1.isItemFocus)(type, index, tutorialFocus);
86
99
  return __spreadArray([], Array((_a = item.quantity) !== null && _a !== void 0 ? _a : 1), true).map(function (_, displayIndex) {
87
- var context = __assign(__assign({}, commonContext), { type: type, index: displayIndex });
88
- if (locator.hide(item, context))
100
+ var itemContext = __assign(__assign({}, context), { type: type, index: index, displayIndex: displayIndex });
101
+ if (locator.hide(item, itemContext))
89
102
  return null;
90
- var itemMoves = legalMoves.filter(function (move) { return rules.isMoveTrigger(move, function (move) { return (0, utils_1.isMoveThisItem)(move, type, index); }); });
91
- var draggingToSameLocation = !!draggedItem && legalMoves.some(function (move) {
92
- return (0, utils_1.isMoveThisItemToLocation)(move, draggedItem.type, draggedItem.index, item.location);
93
- });
94
- return (0, jsx_runtime_1.jsx)(DraggableMaterial_1.DraggableMaterial, { type: type, item: item, index: index, displayIndex: displayIndex, withLocations: true, disabled: !itemMoves.length, postTransform: locator.transformItem(item, context).join(' '), css: draggingToSameLocation && noPointerEvents, onShortClick: function () { return play((0, rules_api_1.displayMaterialRules)(type, index, item), { local: true }); }, onLongClick: itemMoves.length === 1 ?
95
- function () { return play(itemMoves[0], { delayed: rules.isUnpredictableMove(itemMoves[0], player) }); }
96
- : undefined }, "".concat(type, "_").concat(index, "_").concat(displayIndex));
103
+ var innerLocations = description.getLocations(item, itemContext);
104
+ var locationsFocus = tutorialPopup ? getLocationsFocus(tutorialFocus).filter(function (location) { return innerLocations.some(function (innerLocation) { return (0, fast_deep_equal_1.default)(innerLocation, location); }); }) : [];
105
+ return (0, jsx_runtime_1.jsxs)(DraggableMaterial_1.DraggableMaterial, __assign({ type: type, index: index, displayIndex: displayIndex, playDown: tutorialPopup && !focus && !locationsFocus.length, ref: focus ? addFocusRef : undefined, onShortClick: function () { return play((0, rules_api_1.displayMaterialRules)(type, item, index), { local: true }); } }, { children: [(0, jsx_runtime_1.jsx)(locations_1.LocationsMask, { locations: locationsFocus }), innerLocations.map(function (location) {
106
+ return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, { location: location, ref: (0, tutorial_1.isLocationFocus)(location, tutorialFocus) ? addFocusRef : undefined }, JSON.stringify(location));
107
+ })] }), "".concat(type, "_").concat(index, "_").concat(displayIndex));
97
108
  });
98
109
  });
99
- }), Object.entries(locators).map(function (_a) {
100
- var locator = _a[1];
101
- return locator.createLocations(legalMoves, rules, commonContext);
102
- }), (0, jsx_runtime_1.jsx)(dialogs_1.MaterialRulesDialog, { open: !!(game === null || game === void 0 ? void 0 : game.rulesDisplay), close: function () { return play(rules_api_1.closeRulesDisplay, { local: true }); } })] });
110
+ }), Object.values(locators).map(function (locator) {
111
+ var _a;
112
+ return (_a = locator.locationDescription) === null || _a === void 0 ? void 0 : _a.getLocations(context).map(function (location) {
113
+ return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, { location: location, ref: (0, tutorial_1.isLocationFocus)(location, tutorialFocus) ? addFocusRef : undefined }, JSON.stringify(location));
114
+ });
115
+ }), (0, jsx_runtime_1.jsx)(dialogs_1.MaterialRulesDialog, { open: !!(game === null || game === void 0 ? void 0 : game.rulesDisplay), close: function () { return play(rules_api_1.closeRulesDisplay, { local: true }); } }), (game === null || game === void 0 ? void 0 : game.tutorialStep) !== undefined && (0, jsx_runtime_1.jsx)(MaterialTutorialDisplay_1.MaterialTutorialDisplay, {})] });
103
116
  };
104
117
  exports.GameMaterialDisplay = GameMaterialDisplay;
105
- var noPointerEvents = (0, react_2.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n pointer-events: none;\n"], ["\n pointer-events: none;\n"])));
106
- var templateObject_1;
118
+ var getLocationsFocus = function (focus) {
119
+ if (!focus)
120
+ return [];
121
+ if (Array.isArray(focus)) {
122
+ return focus.filter(tutorial_1.isLocationBuilder).map(function (builder) { return builder.location; });
123
+ }
124
+ return (0, tutorial_1.isLocationBuilder)(focus) ? [focus.location] : [];
125
+ };
107
126
  //# sourceMappingURL=GameMaterialDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GameMaterialDisplay.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameMaterialDisplay.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+BAA4C;AAC5C,wCAA8E;AAC9E,iDAAyH;AACzH,yDAAkC;AAClC,kCAAiF;AACjF,0DAAwD;AACxD,oCAA6D;AAC7D,0DAAuE;AACvE,yCAAmD;AACnD,sCAA6D;AAC7D,wCAAoC;AACpC,mDAAgD;AAEzC,IAAM,mBAAmB,GAAG;;IACjC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,0BAAW,CAAC,CAAA;IACvC,IAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAA;IACvC,IAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAA;IACvC,IAAM,MAAM,GAAG,IAAA,mBAAW,GAAE,CAAA;IAC5B,IAAM,KAAK,GAAG,IAAA,gBAAQ,GAAiB,CAAA;IACvC,IAAM,UAAU,GAAG,IAAA,qBAAa,GAAgB,CAAA;IAChD,IAAM,IAAI,GAAG,IAAA,eAAO,GAAE,CAAA;IAEhB,IAAA,KAAgC,IAAA,gBAAQ,GAAiB,EAAxD,WAAW,QAAA,EAAE,cAAc,QAA6B,CAAA;IAC/D,IAAA,oBAAa,EAAC;QACZ,WAAW,EAAE,UAAC,KAAqB,IAAK,OAAA,IAAA,iCAAa,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAArF,CAAqF;QAC7H,SAAS,EAAE,cAAM,OAAA,cAAc,CAAC,SAAS,CAAC,EAAzB,CAAyB;KAC3C,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK;QAAE,OAAO,kDAAK,CAAA;IACxB,IAAM,IAAI,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA;IACxB,IAAM,aAAa,GAAgB,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,CAAA;IAEvE,OAAO,6DACJ,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,EAAyB;oBAAxB,UAAU,QAAA,EAAE,WAAW,QAAA;gBACrD,IAAI,CAAC,WAAW,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAA;gBACnC,IAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;gBACjC,IAAM,aAAa,GAAG,IAAA,gBAAM,EAAC,QAAQ,EAAE,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,cAAc,KAAK,IAAI,EAA/B,CAA+B,CAAC,CAAA;gBAClF,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAd,CAAc,CAAC,CAAA;gBAC7E,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI;;oBAC9C,IAAM,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,UAAA,IAAI,IAAI,OAAA,IAAA,oBAAY,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,EAA3C,CAA2C,CAAC,EAA9E,CAA8E,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;oBACtK,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBAC5C,OAAO,kBAAI,KAAK,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,CAAC,CAAC,QAAE,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK;wBACjD,IAAM,OAAO,yBAA0B,aAAa,KAAE,IAAI,MAAA,EAAE,KAAK,OAAA,GAAE,CAAA;wBACnE,OAAO,uBAAC,qCAAiB,IAAgC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,QACzE,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,CAAC,sBAAgB,EAAE,kBAAY,eAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAC9E,YAAY,EAAE,cAAM,OAAA,IAAI,CAAC,IAAA,gCAAoB,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAA9D,CAA8D,IAH7E,UAAG,UAAU,cAAI,KAAK,CAAE,CAGwD,CAAA;oBACjH,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,EACD,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,EAAmB;oBAAlB,UAAU,QAAA,EAAE,KAAK,QAAA;gBAClE,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAA;gBACvB,IAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;gBACjC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;;oBAC3B,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBAC5C,OAAO,kBAAI,KAAK,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,CAAC,CAAC,QAAE,GAAG,CAAC,UAAC,CAAC,EAAE,YAAY;wBACxD,IAAM,OAAO,yBAA0B,aAAa,KAAE,IAAI,MAAA,EAAE,KAAK,EAAE,YAAY,GAAE,CAAA;wBACjF,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;4BAAE,OAAO,IAAI,CAAA;wBAC5C,IAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,UAAA,IAAI,IAAI,OAAA,IAAA,sBAAc,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAjC,CAAiC,CAAC,EAApE,CAAoE,CAAC,CAAA;wBACjH,IAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,UAAA,IAAI;4BAClE,OAAA,IAAA,gCAAwB,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;wBAAlF,CAAkF,CACnF,CAAA;wBACD,OAAO,uBAAC,qCAAiB,IACC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,QAC/E,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,EAC3B,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC7D,GAAG,EAAE,sBAAsB,IAAI,eAAe,EAC9C,YAAY,EAAE,cAAM,OAAA,IAAI,CAAC,IAAA,gCAAoB,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAA9D,CAA8D,EAClF,WAAW,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;gCACnC,cAAM,OAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAhF,CAAgF;gCACtF,CAAC,CAAC,SAAS,IARR,UAAG,IAAI,cAAI,KAAK,cAAI,YAAY,CAAE,CAQvB,CAAA;oBAC5C,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,EACD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,EAAW;oBAAR,OAAO,QAAA;gBACvC,OAAA,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC;YAAzD,CAAyD,CAC1D,EACD,uBAAC,6BAAmB,IAAC,IAAI,EAAE,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,EAAE,KAAK,EAAE,cAAM,OAAA,IAAI,CAAC,6BAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAxC,CAAwC,GAAG,IACxG,CAAA;AACL,CAAC,CAAA;AAlEY,QAAA,mBAAmB,uBAkE/B;AAED,IAAM,eAAe,OAAG,WAAG,iGAAA,6BAE1B,IAAA,CAAA"}
1
+ {"version":3,"file":"GameMaterialDisplay.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameMaterialDisplay.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  /** @jsxImportSource @emotion/react */
2
2
  import { FC } from 'react';
3
+ import { CollisionDetection } from '@dnd-kit/core';
3
4
  export type GameTableProps = {
5
+ collisionAlgorithm?: CollisionDetection;
4
6
  xMin: number;
5
7
  xMax: number;
6
8
  yMin: number;
7
9
  yMax: number;
8
- zoomMin?: number;
9
- zoomMax?: number;
10
10
  perspective?: number;
11
11
  margin?: {
12
12
  left: number;
@@ -1,4 +1,8 @@
1
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
+ };
2
6
  var __assign = (this && this.__assign) || function () {
3
7
  __assign = Object.assign || function(t) {
4
8
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -10,6 +14,9 @@ var __assign = (this && this.__assign) || function () {
10
14
  };
11
15
  return __assign.apply(this, arguments);
12
16
  };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
13
20
  Object.defineProperty(exports, "__esModule", { value: true });
14
21
  exports.GameTable = void 0;
15
22
  var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
@@ -20,34 +27,75 @@ var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
20
27
  var hooks_1 = require("../../../hooks");
21
28
  var core_1 = require("@dnd-kit/core");
22
29
  var modifiers_1 = require("@dnd-kit/modifiers");
23
- var utils_1 = require("../utils");
24
- var GameTableContent_1 = require("./GameTableContent");
25
- var useStocks_1 = require("../../../hooks/useStocks");
26
30
  var DraggableMaterial_1 = require("../DraggableMaterial");
27
- var DropAreas_1 = require("../DropAreas");
31
+ var react_2 = require("@emotion/react");
32
+ var emotion_normalize_1 = __importDefault(require("emotion-normalize"));
33
+ var css_1 = require("../../../css");
34
+ var GameMaterialDisplay_1 = require("./GameMaterialDisplay");
35
+ var bounds_util_1 = require("../../../utilities/bounds.util");
28
36
  var wheel = { step: 0.05 };
29
37
  var doubleClick = { disabled: true };
30
- var GameTable = function (props) {
31
- var _a = props.zoomMin, zoomMin = _a === void 0 ? 1 : _a, _b = props.zoomMax, zoomMax = _b === void 0 ? 1 : _b;
38
+ var GameTable = function (_a) {
39
+ var collisionAlgorithm = _a.collisionAlgorithm, perspective = _a.perspective, xMin = _a.xMin, xMax = _a.xMax, yMin = _a.yMin, yMax = _a.yMax, _b = _a.margin, margin = _b === void 0 ? { left: 0, right: 0, top: 7, bottom: 0 } : _b;
32
40
  var _c = (0, react_1.useState)(false), dragging = _c[0], setDragging = _c[1];
41
+ var context = (0, hooks_1.useMaterialContext)();
33
42
  var play = (0, hooks_1.usePlay)();
34
- var playerId = (0, hooks_1.usePlayerId)();
35
- var rules = (0, hooks_1.useRules)();
36
43
  var legalMoves = (0, hooks_1.useLegalMoves)();
37
- var stocks = (0, useStocks_1.useStocks)();
38
44
  var onDragEnd = (0, react_1.useCallback)(function (event) {
39
45
  setDragging(false);
40
- if (event.over && (0, DraggableMaterial_1.isDraggedItem)(event.active.data.current) && (0, DropAreas_1.isDropLocation)(event.over.data.current)) {
41
- var _a = event.active.data.current, type_1 = _a.type, index_1 = _a.index, displayIndex = _a.displayIndex;
46
+ if (event.over && (0, DraggableMaterial_1.dataIsDisplayedItem)(event.active.data.current) && dataIsLocation(event.over.data.current)) {
47
+ var item_1 = event.active.data.current;
48
+ var type = item_1.type, index = item_1.index, displayIndex = item_1.displayIndex;
49
+ var description_1 = context.material[type];
42
50
  var location_1 = event.over.data.current;
43
- var moves = legalMoves.filter(function (move) { return rules.isMoveTrigger(move, function (move) { return (0, utils_1.isMoveThisItemToLocation)(move, type_1, index_1, location_1, stocks); }); });
51
+ var locator_1 = context.locators[location_1.type];
52
+ var moves = legalMoves.filter(function (move) {
53
+ return description_1.canDrag(move, __assign(__assign({}, context), item_1)) && locator_1.locationDescription.canDrop(move, location_1, context);
54
+ });
44
55
  if (moves.length === 1) {
45
- play((0, rules_api_1.dropItemMove)(type_1, index_1, displayIndex), { local: true });
46
- play(moves[0], { delayed: rules.isUnpredictableMove(moves[0], playerId) });
56
+ play((0, rules_api_1.dropItemMove)(type, index, displayIndex), { local: true });
57
+ play(moves[0]);
47
58
  }
48
59
  }
49
- }, [play, rules, legalMoves]);
50
- return ((0, jsx_runtime_1.jsx)(core_1.DndContext, __assign({ measuring: { draggable: { measure: core_1.getClientRect }, droppable: { measure: core_1.getClientRect } }, modifiers: [modifiers_1.snapCenterToCursor], onDragStart: function () { return setDragging(true); }, onDragEnd: onDragEnd, onDragCancel: function () { return setDragging(false); } }, { children: (0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformWrapper, __assign({ minScale: zoomMin / zoomMax, maxScale: 1, initialScale: zoomMin / zoomMax, centerOnInit: true, wheel: wheel, panning: { disabled: dragging }, disablePadding: true, doubleClick: doubleClick }, { children: (0, jsx_runtime_1.jsx)(GameTableContent_1.GameTableContent, __assign({}, props)) })) })));
60
+ }, [context, play, legalMoves]);
61
+ var ref = (0, react_1.useRef)(null);
62
+ (0, react_1.useEffect)(function () {
63
+ var handler = function () {
64
+ var _a;
65
+ var zoomPanPinch = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.instance;
66
+ if (!(zoomPanPinch === null || zoomPanPinch === void 0 ? void 0 : zoomPanPinch.bounds))
67
+ return;
68
+ var _b = zoomPanPinch.transformState, positionX = _b.positionX, positionY = _b.positionY, scale = _b.scale;
69
+ var bounds = (0, bounds_util_1.calculateBounds)(zoomPanPinch, scale);
70
+ var _c = (0, bounds_util_1.getMouseBoundedPosition)(positionX, positionY, bounds, true, 0, 0, zoomPanPinch.wrapperComponent), x = _c.x, y = _c.y;
71
+ zoomPanPinch.setTransformState(scale, x, y);
72
+ };
73
+ window.addEventListener('resize', handler);
74
+ return function () {
75
+ window.removeEventListener('resize', handler);
76
+ };
77
+ }, []);
78
+ var hm = margin.left + margin.right;
79
+ var vm = margin.top + margin.bottom;
80
+ var tableFontSize = 8;
81
+ var minScale = (100 - vm) / tableFontSize / (yMax - yMin);
82
+ var ratio = (xMax - xMin) / (yMax - yMin);
83
+ var ratioWithMargins = ((100 - vm) * ratio + hm) / 100;
84
+ return ((0, jsx_runtime_1.jsxs)(core_1.DndContext, __assign({ collisionDetection: collisionAlgorithm, measuring: { draggable: { measure: core_1.getClientRect }, droppable: { measure: core_1.getClientRect } }, modifiers: [modifiers_1.snapCenterToCursor], onDragStart: function () { return setDragging(true); }, onDragEnd: onDragEnd, onDragCancel: function () { return setDragging(false); } }, { children: [(0, jsx_runtime_1.jsx)(react_2.Global, { styles: [emotion_normalize_1.default, globalStyle, globalFontSize(ratioWithMargins)] }), (0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformWrapper, __assign({ ref: ref, minScale: minScale, maxScale: 1, initialScale: minScale, centerOnInit: true, wheel: wheel, smooth: false, panning: { disabled: dragging }, disablePadding: true, doubleClick: doubleClick }, { children: (0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformComponent, __assign({ wrapperStyle: {
85
+ position: 'absolute',
86
+ margin: "".concat(margin.top, "em ").concat(margin.right, "em ").concat(margin.bottom, "em ").concat(margin.left, "em"),
87
+ transformStyle: 'preserve-3d',
88
+ height: "min(100% - ".concat(vm, "em, (100vw - ").concat(hm, "em) / ").concat(ratio, ")"),
89
+ width: "calc(100vw - ".concat(hm, "em)"),
90
+ overflow: 'visible'
91
+ } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: [tableCss(xMin, xMax, yMin, yMax), (0, css_1.fontSizeCss)(tableFontSize), perspective && (0, css_1.perspectiveCss)(perspective)] }, { children: (0, jsx_runtime_1.jsx)(GameMaterialDisplay_1.GameMaterialDisplay, {}) })) })) }))] })));
51
92
  };
52
93
  exports.GameTable = GameTable;
94
+ function dataIsLocation(data) {
95
+ return typeof (data === null || data === void 0 ? void 0 : data.type) === 'number';
96
+ }
97
+ var globalStyle = (0, react_2.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"], ["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"])), process.env.PUBLIC_URL + '/cover-1920.jpg');
98
+ var globalFontSize = function (ratio) { return (0, react_2.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/1) {\n font-size: calc(1vw / ", ");\n }\n }\n"], ["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/1) {\n font-size: calc(1vw / ", ");\n }\n }\n"])), ratio, ratio); };
99
+ var tableCss = function (xMin, xMax, yMin, yMax) { return (0, react_2.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"], ["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"])), xMax - xMin, yMax - yMin, -yMin, -xMin); };
100
+ var templateObject_1, templateObject_2, templateObject_3;
53
101
  //# sourceMappingURL=GameTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GameTable.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GameTable.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTable.tsx"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@ var __assign = (this && this.__assign) || function () {
14
14
  };
15
15
  return __assign.apply(this, arguments);
16
16
  };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
17
20
  Object.defineProperty(exports, "__esModule", { value: true });
18
21
  exports.GameTableContent = void 0;
19
22
  var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
@@ -23,26 +26,38 @@ var react_2 = require("@emotion/react");
23
26
  var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
24
27
  var css_1 = require("../../../css");
25
28
  var GameMaterialDisplay_1 = require("./GameMaterialDisplay");
29
+ var bounds_util_1 = require("../../../utilities/bounds.util");
30
+ var emotion_normalize_1 = __importDefault(require("emotion-normalize"));
26
31
  var GameTableContent = function (props) {
27
- var perspective = props.perspective, xMin = props.xMin, xMax = props.xMax, yMin = props.yMin, yMax = props.yMax, _a = props.zoomMax, zoomMax = _a === void 0 ? 1 : _a, _b = props.margin, margin = _b === void 0 ? { left: 0, right: 0, top: 7, bottom: 0 } : _b;
28
- var centerView = (0, react_zoom_pan_pinch_1.useControls)().centerView;
32
+ var perspective = props.perspective, xMin = props.xMin, xMax = props.xMax, yMin = props.yMin, yMax = props.yMax, _a = props.margin, margin = _a === void 0 ? { left: 0, right: 0, top: 7, bottom: 0 } : _a;
33
+ var ratio = (xMax - xMin) / (yMax - yMin);
34
+ var context = (0, react_zoom_pan_pinch_1.useTransformContext)();
29
35
  (0, react_1.useEffect)(function () {
30
- var handler = function () { return centerView(); };
36
+ var handler = function () {
37
+ if (!context.bounds)
38
+ return;
39
+ var _a = context.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;
40
+ var bounds = (0, bounds_util_1.calculateBounds)(context, scale);
41
+ var _b = (0, bounds_util_1.getMouseBoundedPosition)(positionX, positionY, bounds, true, 0, 0, context.wrapperComponent), x = _b.x, y = _b.y;
42
+ context.setTransformState(scale, x, y);
43
+ };
31
44
  window.addEventListener('resize', handler);
32
45
  return function () {
33
46
  window.removeEventListener('resize', handler);
34
47
  };
35
48
  }, []);
36
- return ((0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformComponent, __assign({ wrapperStyle: {
49
+ return ((0, jsx_runtime_1.jsxs)(react_zoom_pan_pinch_1.TransformComponent, __assign({ wrapperStyle: {
37
50
  position: 'absolute',
38
51
  margin: "".concat(margin.top, "em ").concat(margin.right, "em ").concat(margin.bottom, "em ").concat(margin.left, "em"),
39
52
  transformStyle: 'preserve-3d',
40
- height: "calc(100% - ".concat(margin.top + margin.bottom, "em)"),
53
+ height: "min(100% - ".concat((margin.top + margin.bottom), "em, 100vw / ").concat(ratio, ")"),
41
54
  width: "calc(100% - ".concat(margin.left + margin.right, "em)"),
42
55
  overflow: 'visible'
43
- } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: [tableCss(xMin, xMax, yMin, yMax), (0, css_1.fontSizeCss)(zoomMax), perspective && (0, css_1.perspectiveCss)(perspective)] }, { children: (0, jsx_runtime_1.jsx)(GameMaterialDisplay_1.GameMaterialDisplay, {}) })) })));
56
+ } }, { children: [(0, jsx_runtime_1.jsx)(react_2.Global, { styles: [emotion_normalize_1.default, globalStyle, globalFontSize(xMax - xMin + margin.left + margin.right, yMax - yMin + margin.top + margin.bottom)] }), (0, jsx_runtime_1.jsx)("div", __assign({ css: [tableCss(xMin, xMax, yMin, yMax), perspective && (0, css_1.perspectiveCss)(perspective)] }, { children: (0, jsx_runtime_1.jsx)(GameMaterialDisplay_1.GameMaterialDisplay, {}) }))] })));
44
57
  };
45
58
  exports.GameTableContent = GameTableContent;
46
59
  var tableCss = function (xMin, xMax, yMin, yMax) { return (0, react_2.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"], ["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"])), xMax - xMin, yMax - yMin, -yMin, -xMin); };
47
- var templateObject_1;
60
+ var globalStyle = (0, react_2.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"], ["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"])), process.env.PUBLIC_URL + '/cover-1920.jpg');
61
+ var globalFontSize = function (width, height) { return (0, react_2.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/", ") {\n font-size: calc(", "vw / ", ");\n }\n }\n"], ["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/", ") {\n font-size: calc(", "vw / ", ");\n }\n }\n"])), width, height, height, width); };
62
+ var templateObject_1, templateObject_2, templateObject_3;
48
63
  //# sourceMappingURL=GameTableContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GameTableContent.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTableContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAAqC;AACrC,wCAAoC;AACpC,6DAAsE;AACtE,oCAA0D;AAC1D,6DAA2D;AAapD,IAAM,gBAAgB,GAA8B,UAAC,KAAK;IACvD,IAAA,WAAW,GAA6F,KAAK,YAAlG,EAAE,IAAI,GAAuF,KAAK,KAA5F,EAAE,IAAI,GAAiF,KAAK,KAAtF,EAAE,IAAI,GAA2E,KAAK,KAAhF,EAAE,IAAI,GAAqE,KAAK,KAA1E,EAAE,KAAmE,KAAK,QAA7D,EAAX,OAAO,mBAAG,CAAC,KAAA,EAAE,KAAsD,KAAK,OAAV,EAAjD,MAAM,mBAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAA,CAAU;IAE7G,IAAA,UAAU,GAAK,IAAA,kCAAW,GAAE,WAAlB,CAAkB;IACpC,IAAA,iBAAS,EAAC;QACR,IAAM,OAAO,GAAG,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,CAAA;QAClC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,uBAAC,yCAAkB,aAAC,YAAY,EAAE;YAChC,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAG,MAAM,CAAC,GAAG,gBAAM,MAAM,CAAC,KAAK,gBAAM,MAAM,CAAC,MAAM,gBAAM,MAAM,CAAC,IAAI,OAAI;YAC/E,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,sBAAe,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,QAAK;YACtD,KAAK,EAAE,sBAAe,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,QAAK;YACrD,QAAQ,EAAE,SAAS;SACpB,gBACC,yCAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,iBAAW,EAAC,OAAO,CAAC,EAAE,WAAW,IAAI,IAAA,oBAAc,EAAC,WAAW,CAAC,CAAC,gBAC5G,uBAAC,yCAAmB,KAAE,IAClB,IACa,CACtB,CAAA;AACH,CAAC,CAAA;AA1BY,QAAA,gBAAgB,oBA0B5B;AAED,IAAM,QAAQ,GAAG,UAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,IAAK,WAAA,WAAG,+PAAA,8CAErE,EAAW,iBACV,EAAW,oDAIZ,EAAK,iBACJ,EAAK,+CAGhB,KATU,IAAI,GAAG,IAAI,EACV,IAAI,GAAG,IAAI,EAIZ,CAAC,IAAI,EACJ,CAAC,IAAI,GAR4D,CAW5E,CAAA"}
1
+ {"version":3,"file":"GameTableContent.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTableContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { ImagesLoaderProps } from '../../ImagesLoader';
3
+ type MaterialImageLoaderProps = Omit<ImagesLoaderProps, 'images'>;
4
+ declare const MaterialImageLoader: FC<MaterialImageLoaderProps>;
5
+ export { MaterialImageLoader };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.MaterialImageLoader = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var react_1 = require("react");
17
+ var ImagesLoader_1 = require("../../ImagesLoader");
18
+ var useMaterials_1 = require("../../../hooks/useMaterials");
19
+ var useMaterialImages = function () {
20
+ var descriptions = (0, useMaterials_1.useMaterials)();
21
+ return (0, react_1.useMemo)(function () {
22
+ if (!descriptions) {
23
+ return [];
24
+ }
25
+ return Object.values(descriptions).flatMap(function (description) { return description.getImages(); });
26
+ }, [descriptions]);
27
+ };
28
+ var MaterialImageLoader = function (props) {
29
+ var images = useMaterialImages();
30
+ return (0, jsx_runtime_1.jsx)(ImagesLoader_1.ImagesLoader, __assign({ images: images }, props));
31
+ };
32
+ exports.MaterialImageLoader = MaterialImageLoader;
33
+ //# sourceMappingURL=MaterialImageLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialImageLoader.js","sourceRoot":"","sources":["../../../../src/components/material/ImageLoader/MaterialImageLoader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAmC;AACnC,mDAAoE;AACpE,4DAA0D;AAI1D,IAAM,iBAAiB,GAAG;IACxB,IAAM,YAAY,GAAG,IAAA,2BAAY,GAAE,CAAA;IACnC,OAAO,IAAA,eAAO,EAAC;QACb,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,EAAE,CAAA;SACV;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAC,WAAW,IAAK,OAAA,WAAW,CAAC,SAAS,EAAE,EAAvB,CAAuB,CAAC,CAAA;IACtF,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;AACpB,CAAC,CAAA;AAED,IAAM,mBAAmB,GAAiC,UAAC,KAAK;IAC9D,IAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;IAElC,OAAO,uBAAC,2BAAY,aAAC,MAAM,EAAE,MAAM,IAAM,KAAK,EAAI,CAAA;AACpD,CAAC,CAAA;AAGC,kDAAmB"}
@@ -0,0 +1 @@
1
+ export * from './MaterialImageLoader';
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Token"), exports);
17
+ __exportStar(require("./MaterialImageLoader"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/ImageLoader/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
@@ -1,24 +1,21 @@
1
1
  import { Animation, AnimationContext, Animations } from '@gamepark/react-client';
2
- import { CreateItem, DeleteItem, DisplayedItem, ItemMove, MaterialGame, MaterialMove, MaterialRules, MoveItem } from '@gamepark/rules-api';
3
- import { Interpolation, Theme } from '@emotion/react';
4
- import { ItemLocator } from '../../locators';
2
+ import { CreateItem, DeleteItem, ItemMove, MaterialGame, MaterialMove, MaterialRules, MoveItem } from '@gamepark/rules-api';
3
+ import { Interpolation, Keyframes, Theme } from '@emotion/react';
4
+ import { ItemContext, ItemLocator } from '../../locators';
5
5
  import { MaterialDescription } from './MaterialDescription';
6
6
  export declare class MaterialAnimations<P extends number = number, M extends number = number, L extends number = number> extends Animations<MaterialGame<P, M, L>, ItemMove<P, M, L>, P> {
7
7
  getPreDuration(move: ItemMove<P, M, L>, context: AnimationContext<MaterialGame<P, M, L>, MaterialMove<P, M, L>, P>): number;
8
8
  getPostDuration(move: ItemMove<P, M, L>, context: AnimationContext<MaterialGame<P, M, L>, MaterialMove<P, M, L>, P>): number;
9
9
  moveDuration(_move: ItemMove<P, M, L>, _context: AnimationContext<MaterialGame<P, M, L>, MaterialMove<P, M, L>, P>): number;
10
- getItemAnimation(item: DisplayedItem<M>, animation: Animation<ItemMove<P, M, L>>, context: ItemAnimationContext<P, M, L>): Interpolation<Theme>;
11
- protected getCreateItemAnimation(item: DisplayedItem<M>, animation: Animation<CreateItem<P, M, L>>, context: ItemAnimationContext<P, M, L>): Interpolation<Theme>;
10
+ isItemToAnimate({ game, type, index, displayIndex, locators }: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L>>): boolean;
11
+ getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L>>): Interpolation<Theme>;
12
+ protected getCreateItemAnimation(context: ItemContext<P, M, L>, animation: Animation<CreateItem<P, M, L>>): Interpolation<Theme>;
12
13
  protected fadein(duration: number): import("@emotion/utils").SerializedStyles;
13
- protected getStockLocation(itemType: M, { rules, ...context }: ItemAnimationContext<P, M, L>): string;
14
- protected getKeyframesFromOrigin(origin: string, _item: DisplayedItem<M>, _animation: Animation<ItemMove<P, M, L>>, _context: ItemAnimationContext<P, M, L>): import("@emotion/serialize").Keyframes;
15
- protected getMoveItemAnimation(item: DisplayedItem<M>, animation: Animation<MoveItem<P, M, L>>, context: ItemAnimationContext<P, M, L>): Interpolation<Theme>;
16
- private closestItemRotation;
17
- private transformItem;
18
- private closestRotation;
19
- private getRotation;
20
- protected getKeyframesToDestination(destination: string, _item: DisplayedItem<M>, _animation: Animation<ItemMove<P, M, L>>, _context: ItemAnimationContext<P, M, L>): import("@emotion/serialize").Keyframes;
21
- protected getDeleteItemAnimation(item: DisplayedItem<M>, animation: Animation<DeleteItem<M>>, context: ItemAnimationContext<P, M, L>): Interpolation<Theme>;
14
+ protected getFirstStockItemTransforms(context: ItemContext<P, M, L>): string[];
15
+ protected getKeyframesFromOrigin(origin: string, _animation: Animation<ItemMove<P, M, L>>, _context: ItemContext<P, M, L>): Keyframes;
16
+ protected getMoveItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItem<P, M, L>>): Interpolation<Theme>;
17
+ protected getKeyframesToDestination(destination: string, _animation: Animation<ItemMove<P, M, L>>, _context: ItemContext<P, M, L>): Keyframes;
18
+ protected getDeleteItemAnimation(context: ItemContext<P, M, L>, animation: Animation<DeleteItem<M>>): Interpolation<Theme>;
22
19
  }
23
20
  export type ItemAnimationContext<P extends number = number, M extends number = number, L extends number = number> = {
24
21
  material: Record<M, MaterialDescription<P, M, L>>;