@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
@@ -29,22 +29,15 @@ var __assign = (this && this.__assign) || function () {
29
29
  };
30
30
  return __assign.apply(this, arguments);
31
31
  };
32
- var __rest = (this && this.__rest) || function (s, e) {
33
- var t = {};
34
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35
- t[p] = s[p];
36
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
37
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
38
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
39
- t[p[i]] = s[p[i]];
40
- }
41
- return t;
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
34
  };
43
35
  Object.defineProperty(exports, "__esModule", { value: true });
44
36
  exports.MaterialAnimations = void 0;
45
37
  var react_client_1 = require("@gamepark/react-client");
46
38
  var rules_api_1 = require("@gamepark/rules-api");
47
39
  var react_1 = require("@emotion/react");
40
+ var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
48
41
  var MaterialAnimations = /** @class */ (function (_super) {
49
42
  __extends(MaterialAnimations, _super);
50
43
  function MaterialAnimations() {
@@ -74,99 +67,153 @@ var MaterialAnimations = /** @class */ (function (_super) {
74
67
  MaterialAnimations.prototype.moveDuration = function (_move, _context) {
75
68
  return 1;
76
69
  };
77
- MaterialAnimations.prototype.getItemAnimation = function (item, animation, context) {
70
+ MaterialAnimations.prototype.isItemToAnimate = function (_a, animation) {
71
+ var _b, _c, _d, _e, _f;
72
+ var game = _a.game, type = _a.type, index = _a.index, displayIndex = _a.displayIndex, locators = _a.locators;
73
+ var item = game.items[type][index];
74
+ if ((0, rules_api_1.isMoveItem)(animation.move, type, index) || (0, rules_api_1.isDeleteItem)(animation.move, type, index)) {
75
+ var quantity = (_b = item.quantity) !== null && _b !== void 0 ? _b : 1;
76
+ if (quantity === 1)
77
+ return true;
78
+ var itemLocator = locators[item.location.type];
79
+ if (itemLocator.limit)
80
+ quantity = Math.min(quantity, itemLocator.limit);
81
+ var movedQuantity = (_c = animation.move.quantity) !== null && _c !== void 0 ? _c : 1;
82
+ if (((_d = game.droppedItem) === null || _d === void 0 ? void 0 : _d.type) === type && game.droppedItem.index === index) {
83
+ var droppedIndex = game.droppedItem.displayIndex;
84
+ if (displayIndex === droppedIndex)
85
+ return true;
86
+ if (droppedIndex < quantity - movedQuantity) {
87
+ return displayIndex > quantity - movedQuantity;
88
+ }
89
+ }
90
+ return displayIndex >= quantity - movedQuantity;
91
+ }
92
+ else if ((0, rules_api_1.isCreateItem)(animation.move, type) && (0, rules_api_1.itemsCanMerge)(item, animation.move.item)) {
93
+ var quantity = (_e = item.quantity) !== null && _e !== void 0 ? _e : 1;
94
+ var createdQuantity = (_f = animation.move.item.quantity) !== null && _f !== void 0 ? _f : 1;
95
+ return displayIndex >= quantity - createdQuantity;
96
+ }
97
+ return false;
98
+ };
99
+ MaterialAnimations.prototype.getItemAnimation = function (context, animation) {
100
+ if (!this.isItemToAnimate(context, animation))
101
+ return;
102
+ if (animation.move.kind !== rules_api_1.MoveKind.ItemMove)
103
+ return;
78
104
  switch (animation.move.type) {
79
105
  case rules_api_1.ItemMoveType.Create:
80
- return this.getCreateItemAnimation(item, animation, context);
106
+ return this.getCreateItemAnimation(context, animation);
81
107
  case rules_api_1.ItemMoveType.Move:
82
- return this.getMoveItemAnimation(item, animation, context);
108
+ return this.getMoveItemAnimation(context, animation);
83
109
  case rules_api_1.ItemMoveType.Delete:
84
- return this.getDeleteItemAnimation(item, animation, context);
110
+ return this.getDeleteItemAnimation(context, animation);
85
111
  }
86
112
  };
87
- MaterialAnimations.prototype.getCreateItemAnimation = function (item, animation, context) {
88
- var stockLocation = this.getStockLocation(item.type, context);
89
- if (stockLocation) {
90
- var origin_1 = this.closestItemRotation(stockLocation, item, context);
91
- var animationKeyframes = this.getKeyframesFromOrigin(origin_1, item, animation, context);
92
- return (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["animation: ", " ", "s ease-in-out"], ["animation: ", " ", "s ease-in-out"])), animationKeyframes, animation.duration);
113
+ MaterialAnimations.prototype.getCreateItemAnimation = function (context, animation) {
114
+ var stockTransforms = this.getFirstStockItemTransforms(context);
115
+ if (stockTransforms) {
116
+ var targetTransform = adjustRotation(stockTransforms, transformItem(context)).join(' ');
117
+ var animationKeyframes = this.getKeyframesFromOrigin(targetTransform, animation, context);
118
+ return movementAnimationCss(animationKeyframes, animation.duration);
93
119
  }
94
120
  else {
95
121
  return this.fadein(animation.duration);
96
122
  }
97
123
  };
98
124
  MaterialAnimations.prototype.fadein = function (duration) {
99
- var fadein = (0, react_1.keyframes)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n from {\n opacity: 0;\n }\n "], ["\n from {\n opacity: 0;\n }\n "])));
100
- return (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["animation: ", " ", "s ease-in-out"], ["animation: ", " ", "s ease-in-out"])), fadein, duration);
101
- };
102
- MaterialAnimations.prototype.getStockLocation = function (itemType, _a) {
103
- var _b, _c;
104
- var rules = _a.rules, context = __rest(_a, ["rules"]);
105
- var type = itemType;
106
- var stock = context.material[type].stock;
107
- if (!stock)
108
- return;
109
- var stockItem = (_c = (_b = context.material[type]).items) === null || _c === void 0 ? void 0 : _c.call(_b, rules.game, context.player).find(function (item) { return item.location.type === stock.location.type; });
110
- var index = (stockItem === null || stockItem === void 0 ? void 0 : stockItem.quantity) ? stockItem.quantity - 1 : 0;
111
- var stockLocator = context.locators[stock.location.type];
112
- return stockLocator.transformItem(stockItem !== null && stockItem !== void 0 ? stockItem : stock, __assign(__assign({}, context), { game: rules.game, type: type, index: index })).join(' ');
113
- };
114
- MaterialAnimations.prototype.getKeyframesFromOrigin = function (origin, _item, _animation, _context) {
115
- return (0, react_1.keyframes)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n from {\n transform: ", ";\n }\n "], ["\n from {\n transform: ", ";\n }\n "])), origin);
116
- };
117
- MaterialAnimations.prototype.getMoveItemAnimation = function (item, animation, context) {
118
- var _a, _b, _c;
119
- var rules = context.rules;
120
- var type = item.type;
121
- var gameCopy = JSON.parse(JSON.stringify(rules.game));
122
- var mutator = new rules_api_1.MaterialMutator(type, (_a = gameCopy.items[type]) !== null && _a !== void 0 ? _a : [], rules.locationsStrategies[type]);
125
+ var fadein = (0, react_1.keyframes)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n from {\n opacity: 0;\n }\n "], ["\n from {\n opacity: 0;\n }\n "])));
126
+ return (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["animation: ", " ", "s ease-in-out forwards"], ["animation: ", " ", "s ease-in-out forwards"])), fadein, duration);
127
+ };
128
+ MaterialAnimations.prototype.getFirstStockItemTransforms = function (context) {
129
+ var game = context.game, type = context.type, index = context.index, locators = context.locators, material = context.material;
130
+ var item = game.items[type][index];
131
+ var description = material[type];
132
+ var stockLocation = description.getStockLocation(item, context);
133
+ if (!stockLocation)
134
+ return [];
135
+ var stockItem = description.getStaticItems(context).find(function (item) { return (0, fast_deep_equal_1.default)(item.location, stockLocation); });
136
+ var displayIndex = (stockItem === null || stockItem === void 0 ? void 0 : stockItem.quantity) ? stockItem.quantity - 1 : 0;
137
+ var stockLocator = locators[stockLocation.type];
138
+ return stockLocator.transformItem(stockItem !== null && stockItem !== void 0 ? stockItem : { location: stockLocation }, __assign(__assign({}, context), { index: 0, displayIndex: displayIndex }));
139
+ };
140
+ MaterialAnimations.prototype.getKeyframesFromOrigin = function (origin, _animation, _context) {
141
+ return (0, react_1.keyframes)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n from {\n transform: ", ";\n }\n "], ["\n from {\n transform: ", ";\n }\n "])), origin);
142
+ };
143
+ MaterialAnimations.prototype.getMoveItemAnimation = function (context, animation) {
144
+ var _a, _b;
145
+ var type = context.type, game = context.game, Rules = context.Rules, locators = context.locators;
146
+ var futureGame = JSON.parse(JSON.stringify(game));
147
+ var rules = new Rules(futureGame);
148
+ var mutator = rules.mutator(type);
123
149
  var futureIndex = mutator.move(animation.move);
124
150
  var futureItem = mutator.items[futureIndex];
125
151
  // TODO: if animation.move.quantity > 1, we will have to give a different target to each moving item. Formula bellow works only if 1 item moves
126
- var indexAfter = ((_b = futureItem.quantity) !== null && _b !== void 0 ? _b : 1) - ((_c = animation.move.quantity) !== null && _c !== void 0 ? _c : 1);
127
- var targetLocator = context.locators[futureItem.location.type];
128
- var targetTransform = targetLocator.transformItem(futureItem, __assign(__assign({}, context), { game: gameCopy, type: type, index: indexAfter })).join(' ');
129
- var destination = this.closestItemRotation(targetTransform, item, context);
130
- var animationKeyframes = this.getKeyframesToDestination(destination, item, animation, context);
131
- return (0, react_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["animation: ", " ", "s ease-in-out"], ["animation: ", " ", "s ease-in-out"])), animationKeyframes, animation.duration);
132
- };
133
- MaterialAnimations.prototype.closestItemRotation = function (transform, item, context) {
134
- return this.closestRotation(transform, this.transformItem(item, context));
135
- };
136
- MaterialAnimations.prototype.transformItem = function (item, _a) {
137
- var game = _a.rules.game, context = __rest(_a, ["rules"]);
138
- var type = item.type;
139
- var currentItem = game.items[type][item.index];
140
- var sourceLocator = context.locators[currentItem.location.type];
141
- return sourceLocator.transformItem(currentItem, __assign(__assign({}, context), { game: game, type: type, index: item.displayIndex })).join(' ');
142
- };
143
- MaterialAnimations.prototype.closestRotation = function (targetTransform, sourceTransform) {
144
- var sourceRotation = this.getRotation(sourceTransform);
145
- var targetRotation = this.getRotation(targetTransform);
146
- var rotationAdjustment = Math.round((sourceRotation - targetRotation) / 360) * 360;
147
- return rotationAdjustment ? targetTransform + " rotateZ(".concat(rotationAdjustment, "deg)") : targetTransform;
148
- };
149
- MaterialAnimations.prototype.getRotation = function (transform) {
150
- return Array.from(transform.matchAll(/rotateZ\((\d+.?\d*)deg\)/gi)).reduce(function (sum, match) { return sum + parseFloat(match[1]); }, 0)
151
- + Array.from(transform.matchAll(/rotateZ\((\d+.?\d*)rad\)/gi)).reduce(function (sum, match) { return sum + parseFloat(match[1]) * 180 / Math.PI; }, 0);
152
- };
153
- MaterialAnimations.prototype.getKeyframesToDestination = function (destination, _item, _animation, _context) {
154
- return (0, react_1.keyframes)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n to {\n transform: ", ";\n }\n "], ["\n to {\n transform: ", ";\n }\n "])), destination);
155
- };
156
- MaterialAnimations.prototype.getDeleteItemAnimation = function (item, animation, context) {
157
- var stockLocation = this.getStockLocation(animation.move.itemType, context);
152
+ var futureDisplayIndex = ((_a = futureItem.quantity) !== null && _a !== void 0 ? _a : 1) - ((_b = animation.move.quantity) !== null && _b !== void 0 ? _b : 1);
153
+ var targetLocator = locators[futureItem.location.type];
154
+ var futureContext = __assign(__assign({}, context), { game: futureGame, type: type, index: futureIndex, displayIndex: futureDisplayIndex });
155
+ var targetTransforms = targetLocator.transformItem(futureItem, futureContext);
156
+ var targetTransform = adjustRotation(targetTransforms, transformItem(context)).join(' ');
157
+ var animationKeyframes = this.getKeyframesToDestination(targetTransform, animation, context);
158
+ return movementAnimationCss(animationKeyframes, animation.duration);
159
+ };
160
+ MaterialAnimations.prototype.getKeyframesToDestination = function (destination, _animation, _context) {
161
+ return (0, react_1.keyframes)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n to {\n transform: ", ";\n }\n "], ["\n to {\n transform: ", ";\n }\n "])), destination);
162
+ };
163
+ MaterialAnimations.prototype.getDeleteItemAnimation = function (context, animation) {
164
+ var stockLocation = this.getFirstStockItemTransforms(context);
158
165
  if (stockLocation) {
159
- var destination = this.closestItemRotation(stockLocation, item, context);
160
- var animationKeyframes = this.getKeyframesToDestination(destination, item, animation, context);
161
- return (0, react_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["animation: ", " ", "s ease-in-out"], ["animation: ", " ", "s ease-in-out"])), animationKeyframes, animation.duration);
166
+ var targetTransform = adjustRotation(stockLocation, transformItem(context)).join(' ');
167
+ var animationKeyframes = this.getKeyframesToDestination(targetTransform, animation, context);
168
+ return movementAnimationCss(animationKeyframes, animation.duration);
162
169
  }
163
170
  else {
164
- var fadeout = (0, react_1.keyframes)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n to {\n opacity: 0;\n }\n "], ["\n to {\n opacity: 0;\n }\n "])));
165
- return (0, react_1.css)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["animation: ", " ", "s ease-in-out"], ["animation: ", " ", "s ease-in-out"])), fadeout, animation.duration);
171
+ var fadeout = (0, react_1.keyframes)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n to {\n opacity: 0;\n }\n "], ["\n to {\n opacity: 0;\n }\n "])));
172
+ return (0, react_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["animation: ", " ", "s ease-in-out forwards"], ["animation: ", " ", "s ease-in-out forwards"])), fadeout, animation.duration);
166
173
  }
167
174
  };
168
175
  return MaterialAnimations;
169
176
  }(react_client_1.Animations));
170
177
  exports.MaterialAnimations = MaterialAnimations;
171
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
178
+ var movementAnimationCss = function (keyframes, duration) { return (0, react_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n animation: ", " ", "s linear infinite;\n\n > * {\n animation: ", " ", "s ease-in-out forwards;\n }\n"], ["\n animation: ", " ", "s linear infinite;\n\n > * {\n animation: ", " ", "s ease-in-out forwards;\n }\n"])), upAndDown, duration, keyframes, duration); };
179
+ var upAndDown = (0, react_1.keyframes)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n from, to {\n transform: none;\n }\n 50% {\n transform: translateZ(10em);\n }\n"], ["\n from, to {\n transform: none;\n }\n 50% {\n transform: translateZ(10em);\n }\n"])));
180
+ function adjustRotation(targetTransforms, sourceTransforms) {
181
+ var result = [];
182
+ var sourceRotation = sumRotationsDegrees(sourceTransforms);
183
+ var targetRotation = sumRotationsDegrees(targetTransforms);
184
+ for (var axis in sourceRotation) {
185
+ var delta = Math.round((sourceRotation[axis] - targetRotation[axis]) / 360);
186
+ if (delta)
187
+ result.push("rotate".concat(axis.toUpperCase(), "(").concat(delta * 360, "deg)"));
188
+ }
189
+ return targetTransforms.concat(result);
190
+ }
191
+ function sumRotationsDegrees(transforms) {
192
+ var rotations = { x: 0, y: 0, z: 0 };
193
+ for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) {
194
+ var transform = transforms_1[_i];
195
+ var rotateMatch = transform.match(/rotate([^(]*)\((-?\d+.?\d*)([^)]*)\)/);
196
+ if (rotateMatch) {
197
+ var axis = rotateMatch[1].toLowerCase(), value = parseFloat(rotateMatch[2]), unit = rotateMatch[3];
198
+ if (axis in rotations) {
199
+ switch (unit) {
200
+ case 'deg':
201
+ rotations[axis] += value;
202
+ break;
203
+ case 'rad':
204
+ rotations[axis] += value * 180 / Math.PI;
205
+ break;
206
+ }
207
+ }
208
+ }
209
+ }
210
+ return rotations;
211
+ }
212
+ function transformItem(context) {
213
+ var game = context.game, type = context.type, index = context.index, locators = context.locators;
214
+ var currentItem = game.items[type][index];
215
+ var sourceLocator = locators[currentItem.location.type];
216
+ return sourceLocator.transformItem(currentItem, context);
217
+ }
218
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
172
219
  //# sourceMappingURL=MaterialAnimations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialAnimations.js","sourceRoot":"","sources":["../../../src/components/material/MaterialAnimations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialAnimations.js","sourceRoot":"","sources":["../../../src/components/material/MaterialAnimations.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,15 @@
1
1
  /** @jsxImportSource @emotion/react */
2
2
  import { HTMLAttributes } from 'react';
3
- import { MaterialMove } from '@gamepark/rules-api';
4
- export type MaterialComponentProps<ItemId extends number = number, P extends number = number, M extends number = number, L extends number = number> = {
3
+ import { ComponentCommonProps } from './MaterialDescription';
4
+ export type MaterialComponentProps<M extends number = number, ItemId = any> = {
5
5
  type: M;
6
6
  itemId?: ItemId;
7
- withLocations?: boolean;
8
- legalMovesTo?: MaterialMove<P, M, L>[];
9
7
  onShortClick?: () => void;
10
8
  onLongClick?: () => void;
11
- } & HTMLAttributes<HTMLElement>;
9
+ } & ComponentCommonProps & HTMLAttributes<HTMLElement>;
12
10
  export declare const MaterialComponent: import("react").ForwardRefExoticComponent<{
13
11
  type: number;
14
- itemId?: number;
15
- withLocations?: boolean;
16
- legalMovesTo?: MaterialMove<number, number, number>[];
12
+ itemId?: any;
17
13
  onShortClick?: () => void;
18
14
  onLongClick?: () => void;
19
- } & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLDivElement>>;
20
- export declare const getPropForItem: <Id extends number = number>(prop: any, itemId?: Id) => any;
15
+ } & ComponentCommonProps & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -21,30 +21,19 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  }
22
22
  return t;
23
23
  };
24
- var __importDefault = (this && this.__importDefault) || function (mod) {
25
- return (mod && mod.__esModule) ? mod : { "default": mod };
26
- };
27
24
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.getPropForItem = exports.MaterialComponent = void 0;
25
+ exports.MaterialComponent = void 0;
29
26
  var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
30
27
  /** @jsxImportSource @emotion/react */
31
28
  var react_1 = require("react");
32
- var MaterialComponentType_1 = require("./MaterialComponentType");
33
- var Board_1 = require("./Board");
34
- var Card_1 = require("./Card");
35
- var Token_1 = require("./Token");
36
- var mapValues_1 = __importDefault(require("lodash/mapValues"));
37
29
  var use_long_press_1 = require("use-long-press");
38
30
  var utilities_1 = require("../../utilities");
39
- var pickBy_1 = __importDefault(require("lodash/pickBy"));
40
31
  var hooks_1 = require("../../hooks");
41
- var GameProvider_1 = require("../GameProvider");
32
+ var FlatMaterial_1 = require("./FlatMaterial");
42
33
  exports.MaterialComponent = (0, react_1.forwardRef)(function (_a, ref) {
43
- var type = _a.type, itemId = _a.itemId, withLocations = _a.withLocations, legalMovesTo = _a.legalMovesTo, onShortClick = _a.onShortClick, _b = _a.onLongClick, onLongClick = _b === void 0 ? onShortClick : _b, props = __rest(_a, ["type", "itemId", "withLocations", "legalMovesTo", "onShortClick", "onLongClick"]);
34
+ var type = _a.type, itemId = _a.itemId, onShortClick = _a.onShortClick, _b = _a.onLongClick, onLongClick = _b === void 0 ? onShortClick : _b, props = __rest(_a, ["type", "itemId", "onShortClick", "onLongClick"]);
35
+ var game = (0, hooks_1.useGame)();
44
36
  var description = (0, hooks_1.useMaterialDescription)(type);
45
- var locators = (0, react_1.useContext)(GameProvider_1.gameContext).locators;
46
- var rules = (0, hooks_1.useRules)();
47
- var innerLocators = (0, pickBy_1.default)(locators, function (locator) { return (locator === null || locator === void 0 ? void 0 : locator.parentItemType) === type; });
48
37
  var listeners = (0, use_long_press_1.useLongPress)(function () { return onLongClick && onLongClick(); }, {
49
38
  detect: use_long_press_1.LongPressEventType.Pointer,
50
39
  cancelOnMovement: 5,
@@ -57,45 +46,11 @@ exports.MaterialComponent = (0, react_1.forwardRef)(function (_a, ref) {
57
46
  },
58
47
  filterEvents: function (event) { return !event.button; } // Ignore clicks on mouse buttons > 0
59
48
  })();
60
- if (!description || !locators || !rules)
49
+ if (!description || !game)
61
50
  return null;
62
- var itemProps = (0, exports.getPropForItem)(description.props, itemId);
63
- switch (description.type) {
64
- case MaterialComponentType_1.MaterialComponentType.Board:
65
- return (0, jsx_runtime_1.jsx)(Board_1.Board, __assign({ ref: ref }, itemProps, props, (0, utilities_1.combineEventListeners)(listeners, props), { children: withLocations && (description.getLocations ? description.getLocations(itemId, legalMovesTo) : createLocations(rules, innerLocators, itemId, legalMovesTo)) }));
66
- case MaterialComponentType_1.MaterialComponentType.Card:
67
- return (0, jsx_runtime_1.jsx)(Card_1.Card, __assign({ ref: ref }, itemProps, props, (0, utilities_1.combineEventListeners)(listeners, props)));
68
- case MaterialComponentType_1.MaterialComponentType.Token:
69
- return (0, jsx_runtime_1.jsx)(Token_1.Token, __assign({ ref: ref }, itemProps, props, (0, utilities_1.combineEventListeners)(listeners, props)));
70
- default:
71
- return null;
51
+ if ((0, FlatMaterial_1.isFlatMaterialDescription)(description)) {
52
+ return ((0, jsx_runtime_1.jsx)(FlatMaterial_1.FlatMaterial, __assign({ ref: ref }, description.getFlatMaterialProps(itemId), props, (0, utilities_1.combineEventListeners)(listeners, props))));
72
53
  }
54
+ return null;
73
55
  });
74
- var getPropForItem = function (prop, itemId) {
75
- if (typeof prop === 'object') {
76
- if (isIdRecord(prop)) {
77
- return itemId !== undefined ? prop[itemId] : undefined;
78
- }
79
- else {
80
- return (0, mapValues_1.default)(prop, function (p) { return (0, exports.getPropForItem)(p, itemId); });
81
- }
82
- }
83
- else if (typeof prop === 'function') {
84
- return prop(itemId);
85
- }
86
- else {
87
- return prop;
88
- }
89
- };
90
- exports.getPropForItem = getPropForItem;
91
- var isIdRecord = function (prop) {
92
- return !isNaN(parseInt(Object.keys(prop)[0]));
93
- };
94
- var createLocations = function (rules, locators, itemId, moves) {
95
- if (moves === void 0) { moves = []; }
96
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: Object.entries(locators).map(function (_a) {
97
- var locator = _a[1];
98
- return locator && locator.createLocationsOnItem(itemId, moves, rules);
99
- }) });
100
- };
101
56
  //# sourceMappingURL=MaterialComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialComponent.js","sourceRoot":"","sources":["../../../src/components/material/MaterialComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialComponent.js","sourceRoot":"","sources":["../../../src/components/material/MaterialComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAA8D;AAE9D,iDAA0F;AAC1F,6CAAuD;AACvD,qCAA6D;AAC7D,+CAAwE;AAU3D,QAAA,iBAAiB,GAAG,IAAA,kBAAU,EAAyC,UAClF,EAAoE,EAAE,GAAG;IAAvE,IAAA,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAA,EAAE,mBAA0B,EAA1B,WAAW,mBAAG,YAAY,KAAA,EAAK,KAAK,cAAlE,iDAAoE,CAAF;IAElE,IAAM,IAAI,GAAG,IAAA,eAAO,GAAgB,CAAA;IACpC,IAAM,WAAW,GAAG,IAAA,8BAAsB,EAAC,IAAI,CAAC,CAAA;IAEhD,IAAM,SAAS,GAAG,IAAA,6BAAY,EAAC,cAAM,OAAA,WAAW,IAAI,WAAW,EAAE,EAA5B,CAA4B,EAAE;QACjE,MAAM,EAAE,mCAAkB,CAAC,OAAO;QAClC,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,UAAC,CAAC,EAAE,EAAU;gBAAR,MAAM,YAAA;YACpB,IAAI,MAAM,KAAK,wCAAuB,CAAC,kBAAkB,EAAE;gBACzD,UAAU,CAAC,cAAM,OAAA,YAAY,IAAI,YAAY,EAAE,EAA9B,CAA8B,CAAC,CAAA;aACjD;QACH,CAAC;QACD,YAAY,EAAE,UAAA,KAAK,IAAI,OAAA,CAAE,KAAoB,CAAC,MAAM,EAA7B,CAA6B,CAAC,qCAAqC;KAC3F,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtC,IAAI,IAAA,wCAAyB,EAAC,WAAW,CAAC,EAAE;QAC1C,OAAO,CACL,uBAAC,2BAAY,aAAC,GAAG,EAAE,GAAG,IAAM,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAM,KAAK,EAAM,IAAA,iCAAqB,EAAC,SAAS,EAAE,KAAK,CAAC,EAAG,CAChI,CAAA;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA"}
@@ -1,20 +1,33 @@
1
- import { BoardMaterialDescription } from './Board';
2
- import { CardMaterialDescription } from './Card';
3
- import { ReactNode } from 'react';
4
- import { ItemMove, Location, MaterialGame, MaterialItem, MaterialMove } from '@gamepark/rules-api';
5
- import { TokenMaterialDescription } from './Token';
6
- export type MaterialDescription<P extends number = number, M extends number = number, L extends number = number> = BoardMaterialDescription<P, M, L> | CardMaterialDescription<P, M, L> | TokenMaterialDescription<P, M, L>;
7
- export type StockDescription<P extends number = number, L extends number = number> = {
8
- location: Location<P, L>;
9
- };
10
- export type CommonMaterialDescription<P extends number = number, M extends number = number, L extends number = number> = {
11
- rules: (props: MaterialRulesProps<P, M, L>) => ReactNode;
12
- items?: (game: MaterialGame<P, M, L>, player?: P) => MaterialItem<P, L>[];
13
- stock?: StockDescription<P, L>;
14
- };
1
+ import { FC } from 'react';
2
+ import { Location, MaterialItem, MaterialMove, MaterialRulesDisplay } from '@gamepark/rules-api';
3
+ import { ItemContext, MaterialContext } from '../../locators';
15
4
  export type MaterialRulesProps<P extends number = number, M extends number = number, L extends number = number> = {
16
- item: Partial<MaterialItem<P, L>>;
17
- legalMoves: ItemMove<P, M, L>[];
18
- close: () => void;
5
+ closeDialog: () => void;
6
+ } & Omit<MaterialRulesDisplay<P, M, L>, 'type'>;
7
+ export type ComponentSize = {
8
+ width: number;
9
+ height: number;
10
+ };
11
+ export type ComponentCommonProps = {
12
+ highlight?: boolean;
13
+ playDown?: boolean;
19
14
  };
20
- export type MaterialLocationsFunction<ItemId = number> = (itemId?: ItemId, legalMoves?: MaterialMove[]) => ReactNode | undefined;
15
+ export declare abstract class MaterialDescription<P extends number = number, M extends number = number, L extends number = number, ItemId = any> {
16
+ abstract rules: FC<MaterialRulesProps<P, M, L>>;
17
+ staticItem?: MaterialItem<P, L>;
18
+ staticItems: MaterialItem<P, L>[];
19
+ getStaticItems(_context: MaterialContext<P, M, L>): MaterialItem<P, L>[];
20
+ stockLocation?: Location<P, L>;
21
+ getStockLocation(_item: MaterialItem<P, L>, _context: MaterialContext<P, M, L>): Location<P, L> | undefined;
22
+ location?: Location<P, L>;
23
+ locations: Location<P, L>[];
24
+ getLocations(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): Location<P, L>[];
25
+ canDrag(move: MaterialMove<P, M, L>, { type, index }: ItemContext<P, M, L>): boolean;
26
+ height?: number;
27
+ width?: number;
28
+ ratio?: number;
29
+ getSize(_itemId: ItemId): ComponentSize;
30
+ abstract getImages(): string[];
31
+ thickness: number;
32
+ getThickness(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
33
+ }
@@ -1,3 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaterialDescription = void 0;
4
+ var rules_api_1 = require("@gamepark/rules-api");
5
+ var MaterialDescription = /** @class */ (function () {
6
+ function MaterialDescription() {
7
+ this.staticItems = [];
8
+ this.locations = [];
9
+ this.thickness = 0.05;
10
+ }
11
+ MaterialDescription.prototype.getStaticItems = function (_context) {
12
+ return this.staticItem ? [this.staticItem] : this.staticItems;
13
+ };
14
+ MaterialDescription.prototype.getStockLocation = function (_item, _context) {
15
+ return this.stockLocation;
16
+ };
17
+ MaterialDescription.prototype.getLocations = function (_item, _context) {
18
+ return this.location ? [this.location] : this.locations;
19
+ };
20
+ MaterialDescription.prototype.canDrag = function (move, _a) {
21
+ var type = _a.type, index = _a.index;
22
+ return ((0, rules_api_1.isMoveItem)(move) || (0, rules_api_1.isDeleteItem)(move)) && move.itemType === type && move.itemIndex === index;
23
+ };
24
+ MaterialDescription.prototype.getSize = function (_itemId) {
25
+ if (this.width && this.height)
26
+ return { width: this.width, height: this.height };
27
+ if (this.ratio && this.width)
28
+ return { width: this.width, height: this.width / this.ratio };
29
+ if (this.ratio && this.height)
30
+ return { width: this.height * this.ratio, height: this.height };
31
+ throw new Error('You must implement 2 of "width", "height" & "ratio" in any Material description');
32
+ };
33
+ MaterialDescription.prototype.getThickness = function (_item, _context) {
34
+ return this.thickness;
35
+ };
36
+ return MaterialDescription;
37
+ }());
38
+ exports.MaterialDescription = MaterialDescription;
3
39
  //# sourceMappingURL=MaterialDescription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialDescription.js","sourceRoot":"","sources":["../../../src/components/material/MaterialDescription.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"MaterialDescription.js","sourceRoot":"","sources":["../../../src/components/material/MaterialDescription.ts"],"names":[],"mappings":";;;AACA,iDAA0H;AAiB1H;IAAA;QAIE,gBAAW,GAAyB,EAAE,CAAA;QAatC,cAAS,GAAqB,EAAE,CAAA;QAuBhC,cAAS,GAAG,IAAI,CAAA;IAKlB,CAAC;IAvCC,4CAAc,GAAd,UAAe,QAAkC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;IAC/D,CAAC;IAID,8CAAgB,GAAhB,UAAiB,KAAyB,EAAE,QAAkC;QAC5E,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAKD,0CAAY,GAAZ,UAAa,KAAyB,EAAE,QAA8B;QACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;IACzD,CAAC;IAED,qCAAO,GAAP,UAAQ,IAA2B,EAAE,EAAqC;YAAnC,IAAI,UAAA,EAAE,KAAK,WAAA;QAChD,OAAO,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,IAAI,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAA;IACvG,CAAC;IAMD,qCAAO,GAAP,UAAQ,OAAe;QACrB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;QAChF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;QAC9F,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;IACpG,CAAC;IAMD,0CAAY,GAAZ,UAAa,KAAyB,EAAE,QAA8B;QACpE,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IACH,0BAAC;AAAD,CAAC,AA7CD,IA6CC;AA7CqB,kDAAmB"}
@@ -0,0 +1,14 @@
1
+ import { ItemAnimations } from './ItemAnimations';
2
+ import { CreateItem, ItemMove } from '@gamepark/rules-api';
3
+ import { Animation } from '@gamepark/react-client';
4
+ import { ItemContext } from '../../../locators';
5
+ import { Interpolation, Theme } from '@emotion/react';
6
+ import { MaterialAnimationContext } from './MaterialGameAnimations';
7
+ export declare class CreateItemAnimations<P extends number = number, M extends number = number, L extends number = number> extends ItemAnimations<P, M, L> {
8
+ protected duration: number;
9
+ constructor(duration?: number);
10
+ getPostDuration(_move: CreateItem<P, M, L>, _context: MaterialAnimationContext<P, M, L>): number;
11
+ getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<CreateItem<P, M, L>>): Interpolation<Theme>;
12
+ isItemToAnimate({ game, type, index, displayIndex }: ItemContext<P, M, L>, animation: Animation<CreateItem<P, M, L>>): boolean;
13
+ protected getKeyframesFromOrigin(origin: string, _animation: Animation<ItemMove<P, M, L>>, _context: ItemContext<P, M, L>): import("@emotion/serialize").Keyframes;
14
+ }