@gamepark/react-game 6.23.4 → 6.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/components/Header/MaterialHeader.js +2 -1
  2. package/dist/components/Header/MaterialHeader.js.map +1 -1
  3. package/dist/components/PlayerPanel/Counters.d.ts +13 -0
  4. package/dist/components/PlayerPanel/Counters.js +44 -0
  5. package/dist/components/PlayerPanel/Counters.js.map +1 -0
  6. package/dist/components/PlayerPanel/StyledPlayerPanel.d.ts +4 -2
  7. package/dist/components/PlayerPanel/StyledPlayerPanel.js +30 -25
  8. package/dist/components/PlayerPanel/StyledPlayerPanel.js.map +1 -1
  9. package/dist/components/PlayerPanel/index.d.ts +1 -0
  10. package/dist/components/PlayerPanel/index.js +1 -0
  11. package/dist/components/PlayerPanel/index.js.map +1 -1
  12. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.d.ts +1 -1
  13. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js +6 -6
  14. package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js.map +1 -1
  15. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +13 -6
  16. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
  17. package/dist/components/material/ComponentDescription.d.ts +14 -0
  18. package/dist/components/material/ComponentDescription.js +27 -0
  19. package/dist/components/material/ComponentDescription.js.map +1 -0
  20. package/dist/components/material/Dices/CubicDiceDescription.d.ts +1 -0
  21. package/dist/components/material/Dices/CubicDiceDescription.js +13 -0
  22. package/dist/components/material/Dices/CubicDiceDescription.js.map +1 -1
  23. package/dist/components/material/DraggableMaterial.d.ts +1 -13
  24. package/dist/components/material/DraggableMaterial.js +37 -91
  25. package/dist/components/material/DraggableMaterial.js.map +1 -1
  26. package/dist/components/material/FlatMaterial/CardDescription.d.ts +2 -2
  27. package/dist/components/material/FlatMaterial/CardDescription.js +1 -1
  28. package/dist/components/material/FlatMaterial/CardDescription.js.map +1 -1
  29. package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +4 -2
  30. package/dist/components/material/FlatMaterial/FlatMaterial.js +17 -11
  31. package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -1
  32. package/dist/components/material/FlatMaterial/TokenDescription.d.ts +1 -1
  33. package/dist/components/material/FlatMaterial/TokenDescription.js.map +1 -1
  34. package/dist/components/material/GameTable/GameMaterialDisplay.js +1 -1
  35. package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
  36. package/dist/components/material/GameTable/GameTable.js +9 -7
  37. package/dist/components/material/GameTable/GameTable.js.map +1 -1
  38. package/dist/components/material/GameTable/ItemDisplay.d.ts +4 -2
  39. package/dist/components/material/GameTable/ItemDisplay.js +104 -15
  40. package/dist/components/material/GameTable/ItemDisplay.js.map +1 -1
  41. package/dist/components/material/GameTable/StaticItemsDisplay.js +2 -2
  42. package/dist/components/material/GameTable/StaticItemsDisplay.js.map +1 -1
  43. package/dist/components/material/GameTable/StaticLocationsDisplay.js +12 -12
  44. package/dist/components/material/GameTable/StaticLocationsDisplay.js.map +1 -1
  45. package/dist/components/material/GameTable/focus/FocusProvider.d.ts +6 -6
  46. package/dist/components/material/GameTable/focus/FocusProvider.js +2 -2
  47. package/dist/components/material/GameTable/focus/FocusProvider.js.map +1 -1
  48. package/dist/components/material/GameTable/focus/index.d.ts +0 -1
  49. package/dist/components/material/GameTable/focus/index.js +0 -1
  50. package/dist/components/material/GameTable/focus/index.js.map +1 -1
  51. package/dist/components/material/ImageLoader/MaterialImageLoader.js +17 -11
  52. package/dist/components/material/ImageLoader/MaterialImageLoader.js.map +1 -1
  53. package/dist/components/material/MaterialComponent.d.ts +0 -4
  54. package/dist/components/material/MaterialComponent.js +5 -18
  55. package/dist/components/material/MaterialComponent.js.map +1 -1
  56. package/dist/components/material/MaterialDescription.d.ts +5 -13
  57. package/dist/components/material/MaterialDescription.js +48 -22
  58. package/dist/components/material/MaterialDescription.js.map +1 -1
  59. package/dist/components/material/Writing/WritingDescription.d.ts +0 -4
  60. package/dist/components/material/Writing/WritingDescription.js +0 -10
  61. package/dist/components/material/Writing/WritingDescription.js.map +1 -1
  62. package/dist/components/material/animations/CreateItemAnimations.js +5 -3
  63. package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
  64. package/dist/components/material/animations/DeleteItemAnimations.js +7 -5
  65. package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
  66. package/dist/components/material/animations/ItemAnimations.d.ts +2 -1
  67. package/dist/components/material/animations/ItemAnimations.js +9 -0
  68. package/dist/components/material/animations/ItemAnimations.js.map +1 -1
  69. package/dist/components/material/animations/MaterialAnimations.d.ts +2 -2
  70. package/dist/components/material/animations/MoveItemAnimations.d.ts +1 -2
  71. package/dist/components/material/animations/MoveItemAnimations.js +18 -31
  72. package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
  73. package/dist/components/material/animations/MoveItemAtOnceAnimations.d.ts +1 -2
  74. package/dist/components/material/animations/MoveItemAtOnceAnimations.js +14 -28
  75. package/dist/components/material/animations/MoveItemAtOnceAnimations.js.map +1 -1
  76. package/dist/components/material/animations/RollItemAnimations.d.ts +1 -2
  77. package/dist/components/material/animations/RollItemAnimations.js +4 -15
  78. package/dist/components/material/animations/RollItemAnimations.js.map +1 -1
  79. package/dist/components/material/animations/adjustRotation.d.ts +1 -1
  80. package/dist/components/material/animations/adjustRotation.js +60 -19
  81. package/dist/components/material/animations/adjustRotation.js.map +1 -1
  82. package/dist/components/material/animations/getFirstStockItemTransforms.util.js +3 -6
  83. package/dist/components/material/animations/getFirstStockItemTransforms.util.js.map +1 -1
  84. package/dist/components/material/animations/rotations.utils.d.ts +2 -0
  85. package/dist/components/material/animations/rotations.utils.js +99 -0
  86. package/dist/components/material/animations/rotations.utils.js.map +1 -0
  87. package/dist/components/material/animations/transformItem.util.js +3 -5
  88. package/dist/components/material/animations/transformItem.util.js.map +1 -1
  89. package/dist/components/material/index.d.ts +1 -0
  90. package/dist/components/material/index.js +1 -0
  91. package/dist/components/material/index.js.map +1 -1
  92. package/dist/components/material/locations/DropAreaDescription.d.ts +9 -0
  93. package/dist/components/material/locations/DropAreaDescription.js +46 -0
  94. package/dist/components/material/locations/DropAreaDescription.js.map +1 -0
  95. package/dist/components/material/locations/LocationComponent.d.ts +16 -0
  96. package/dist/components/material/locations/LocationComponent.js +89 -0
  97. package/dist/components/material/locations/LocationComponent.js.map +1 -0
  98. package/dist/components/material/locations/LocationDescription.d.ts +14 -25
  99. package/dist/components/material/locations/LocationDescription.js +43 -50
  100. package/dist/components/material/locations/LocationDescription.js.map +1 -1
  101. package/dist/components/material/locations/LocationDisplay.d.ts +4 -1
  102. package/dist/components/material/locations/LocationDisplay.js +4 -9
  103. package/dist/components/material/locations/LocationDisplay.js.map +1 -1
  104. package/dist/components/material/locations/LocationsMask.d.ts +2 -1
  105. package/dist/components/material/locations/LocationsMask.js +6 -6
  106. package/dist/components/material/locations/LocationsMask.js.map +1 -1
  107. package/dist/components/material/locations/SimpleDropArea.d.ts +4 -7
  108. package/dist/components/material/locations/SimpleDropArea.js +18 -88
  109. package/dist/components/material/locations/SimpleDropArea.js.map +1 -1
  110. package/dist/components/material/locations/index.d.ts +1 -0
  111. package/dist/components/material/locations/index.js +1 -0
  112. package/dist/components/material/locations/index.js.map +1 -1
  113. package/dist/components/material/utils/isDroppedItem.js +12 -1
  114. package/dist/components/material/utils/isDroppedItem.js.map +1 -1
  115. package/dist/components/material/utils/isPlacedOnItem.d.ts +3 -3
  116. package/dist/components/material/utils/isPlacedOnItem.js +5 -5
  117. package/dist/components/material/utils/isPlacedOnItem.js.map +1 -1
  118. package/dist/components/tutorial/MaterialTutorial.js +4 -4
  119. package/dist/components/tutorial/MaterialTutorial.js.map +1 -1
  120. package/dist/components/tutorial/MaterialTutorialDisplay.js +7 -6
  121. package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -1
  122. package/dist/components/tutorial/TutorialRulesWrapper.js +26 -26
  123. package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -1
  124. package/dist/hooks/index.d.ts +1 -1
  125. package/dist/hooks/index.js +1 -1
  126. package/dist/hooks/index.js.map +1 -1
  127. package/dist/hooks/useDraggedItem.d.ts +2 -0
  128. package/dist/hooks/useDraggedItem.js +19 -0
  129. package/dist/hooks/useDraggedItem.js.map +1 -0
  130. package/dist/hooks/useItemLocations.d.ts +8 -0
  131. package/dist/hooks/useItemLocations.js +83 -0
  132. package/dist/hooks/useItemLocations.js.map +1 -0
  133. package/dist/hooks/useItemLocator.d.ts +2 -2
  134. package/dist/hooks/useItemLocator.js.map +1 -1
  135. package/dist/hooks/useLegalMoves.js +4 -18
  136. package/dist/hooks/useLegalMoves.js.map +1 -1
  137. package/dist/hooks/usePlayers.js +14 -1
  138. package/dist/hooks/usePlayers.js.map +1 -1
  139. package/dist/hooks/useStaticLocations.d.ts +2 -0
  140. package/dist/hooks/useStaticLocations.js +53 -0
  141. package/dist/hooks/useStaticLocations.js.map +1 -0
  142. package/dist/hooks/useTutorialStep.js +2 -2
  143. package/dist/hooks/useTutorialStep.js.map +1 -1
  144. package/dist/hooks/useZoomToElements.d.ts +1 -1
  145. package/dist/hooks/useZoomToElements.js +8 -8
  146. package/dist/hooks/useZoomToElements.js.map +1 -1
  147. package/dist/index.d.ts +1 -1
  148. package/dist/index.js +3 -1
  149. package/dist/index.js.map +1 -1
  150. package/dist/locators/DeckLocator.d.ts +5 -4
  151. package/dist/locators/DeckLocator.js +6 -8
  152. package/dist/locators/DeckLocator.js.map +1 -1
  153. package/dist/locators/FlexLocator.d.ts +18 -0
  154. package/dist/locators/FlexLocator.js +88 -0
  155. package/dist/locators/FlexLocator.js.map +1 -0
  156. package/dist/locators/HandLocator.d.ts +22 -13
  157. package/dist/locators/HandLocator.js +71 -39
  158. package/dist/locators/HandLocator.js.map +1 -1
  159. package/dist/locators/ListLocator.d.ts +18 -0
  160. package/dist/locators/ListLocator.js +97 -0
  161. package/dist/locators/ListLocator.js.map +1 -0
  162. package/dist/locators/Locator.d.ts +50 -0
  163. package/dist/locators/Locator.js +153 -0
  164. package/dist/locators/Locator.js.map +1 -0
  165. package/dist/locators/PileLocator.d.ts +12 -11
  166. package/dist/locators/PileLocator.js +44 -29
  167. package/dist/locators/PileLocator.js.map +1 -1
  168. package/dist/locators/index.d.ts +3 -3
  169. package/dist/locators/index.js +3 -3
  170. package/dist/locators/index.js.map +1 -1
  171. package/dist/utilities/combineEventListeners.js.map +1 -1
  172. package/dist/utilities/findIfUnique.util.js.map +1 -1
  173. package/dist/utilities/index.d.ts +1 -0
  174. package/dist/utilities/index.js +1 -0
  175. package/dist/utilities/index.js.map +1 -1
  176. package/dist/utilities/translation.util.d.ts +5 -0
  177. package/dist/utilities/translation.util.js +33 -0
  178. package/dist/utilities/translation.util.js.map +1 -0
  179. package/dist/utilities/zoom-pan-pinch/animations.constants.d.ts +16 -0
  180. package/dist/utilities/zoom-pan-pinch/animations.constants.js +62 -0
  181. package/dist/utilities/zoom-pan-pinch/animations.constants.js.map +1 -0
  182. package/dist/utilities/zoom-pan-pinch/animations.util.d.ts +4 -0
  183. package/dist/utilities/zoom-pan-pinch/animations.util.js +71 -0
  184. package/dist/utilities/zoom-pan-pinch/animations.util.js.map +1 -0
  185. package/dist/utilities/zoom-pan-pinch/bounds.util.d.ts +7 -0
  186. package/dist/utilities/zoom-pan-pinch/bounds.util.js +77 -0
  187. package/dist/utilities/zoom-pan-pinch/bounds.util.js.map +1 -0
  188. package/dist/utilities/zoom-pan-pinch/calculation.util.d.ts +2 -0
  189. package/dist/utilities/zoom-pan-pinch/calculation.util.js +12 -0
  190. package/dist/utilities/zoom-pan-pinch/calculation.util.js.map +1 -0
  191. package/dist/utilities/zoom-pan-pinch/index.d.ts +5 -0
  192. package/dist/utilities/zoom-pan-pinch/index.js +22 -0
  193. package/dist/utilities/zoom-pan-pinch/index.js.map +1 -0
  194. package/dist/utilities/zoom-pan-pinch/zoom.util.d.ts +1 -0
  195. package/dist/utilities/zoom-pan-pinch/zoom.util.js +14 -0
  196. package/dist/utilities/zoom-pan-pinch/zoom.util.js.map +1 -0
  197. package/package.json +3 -3
@@ -1,26 +1,67 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.adjustRotation = void 0;
4
- var adjustRotation = function (targetTransforms, sourceTransforms) {
5
- return targetTransforms.map(function (value, i) { return toClosestRotation(value, sourceTransforms[i]); });
5
+ var adjustRotation = function (transforms, _sourceTransforms) {
6
+ var result = [];
7
+ var rotateZ = 0;
8
+ for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) {
9
+ var transform = transforms_1[_i];
10
+ var rotateZMatch = transform.match(/rotateZ?\((-?\d+\.?\d*)([^)]*)\)/);
11
+ if (rotateZMatch) {
12
+ rotateZ += convertAngle(parseFloat(rotateZMatch[1]), rotateZMatch[2]);
13
+ }
14
+ else {
15
+ if (Math.abs(rotateZ) % 360 === 0 || !transform.startsWith('translate')) {
16
+ result.push(transform);
17
+ }
18
+ else {
19
+ var values = getTranslateValues(transform);
20
+ if (!values)
21
+ result.push(transform);
22
+ else {
23
+ var x = values.x, y = values.y, z = values.z;
24
+ var cos = Math.cos(rotateZ);
25
+ var sin = Math.sin(rotateZ);
26
+ result.push("translate3d(".concat(cos * x - sin * y, "em, ").concat(cos * y + sin * x, "em, ").concat(z, "em)"));
27
+ }
28
+ }
29
+ }
30
+ }
31
+ var radTurn = 2 * Math.PI;
32
+ var finalRotate = ((rotateZ % radTurn) + radTurn) % radTurn;
33
+ if (finalRotate)
34
+ result.push("rotateZ(".concat(finalRotate, "rad)"));
35
+ return result;
6
36
  };
7
37
  exports.adjustRotation = adjustRotation;
8
- var toClosestRotation = function (target, source) {
9
- if (!source)
10
- return target;
11
- var sourceMatch = source.match(/rotate([^(]*)\((-?\d+\.?\d*)([^)]*)\)/);
12
- var targetMatch = target.match(/rotate([^(]*)\((-?\d+\.?\d*)([^)]*)\)/);
13
- if (!(sourceMatch && targetMatch))
14
- return target;
15
- var sourceAxis = sourceMatch[1].toLowerCase(), targetAxis = targetMatch[1].toLowerCase();
16
- if (!targetAxis || sourceAxis !== targetAxis)
17
- return target;
18
- var sourceRotation = getRotationDegrees(parseFloat(sourceMatch[2]), sourceMatch[3]);
19
- var targetRotation = getRotationDegrees(parseFloat(targetMatch[2]), targetMatch[3]);
20
- var delta = Math.round((sourceRotation - targetRotation) / 360);
21
- if (delta === 0)
22
- return target;
23
- return "rotate".concat(targetAxis, "(").concat(targetRotation + delta * 360, "deg)");
38
+ function getTranslateValues(transform) {
39
+ var translate3d = transform.match(/translate3d\((-?\d+\.?\d*)em, (-?\d+\.?\d*)em, (-?\d+\.?\d*)em\)/);
40
+ if (translate3d) {
41
+ return { x: parseFloat(translate3d[1]), y: parseFloat(translate3d[2]), z: parseFloat(translate3d[3]) };
42
+ }
43
+ var translate = transform.match(/translate\((-?\d+\.?\d*)em, (-?\d+\.?\d*)em\)/);
44
+ if (translate) {
45
+ return { x: parseFloat(translate[1]), y: parseFloat(translate[2]), z: 0 };
46
+ }
47
+ var translateX = transform.match(/translateX?\((-?\d+\.?\d*)em\)/);
48
+ if (translateX) {
49
+ return { x: parseFloat(translateX[1]), y: 0, z: 0 };
50
+ }
51
+ var translateY = transform.match(/translateY\((-?\d+\.?\d*)em\)/);
52
+ if (translateY) {
53
+ return { x: 0, y: parseFloat(translateY[1]), z: 0 };
54
+ }
55
+ return;
56
+ }
57
+ var angleUnitValue = (_a = {},
58
+ _a['deg'] = 360,
59
+ _a['grad'] = 400,
60
+ _a['rad'] = 2 * Math.PI,
61
+ _a['turn'] = 1,
62
+ _a);
63
+ var convertAngle = function (value, unit, targetUnit) {
64
+ if (targetUnit === void 0) { targetUnit = 'rad'; }
65
+ return unit === targetUnit ? value : value * angleUnitValue[targetUnit] / angleUnitValue[unit];
24
66
  };
25
- var getRotationDegrees = function (value, unit) { return unit === 'rad' ? value * 180 / Math.PI : value; };
26
67
  //# sourceMappingURL=adjustRotation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adjustRotation.js","sourceRoot":"","sources":["../../../../src/components/material/animations/adjustRotation.ts"],"names":[],"mappings":";;;AAAO,IAAM,cAAc,GAAG,UAAC,gBAA0B,EAAE,gBAA0B;IACnF,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAA7C,CAA6C,CAAC,CAAA;AAC1F,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B;AAED,IAAM,iBAAiB,GAAG,UAAC,MAAc,EAAE,MAAc;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAA;IAC1B,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;IACzE,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;IACzE,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC;QAAE,OAAO,MAAM,CAAA;IAChD,IAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAC1F,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,MAAM,CAAA;IAC3D,IAAM,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,IAAM,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAA;IACjE,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAC9B,OAAO,gBAAS,UAAU,cAAI,cAAc,GAAG,KAAK,GAAG,GAAG,SAAM,CAAA;AAClE,CAAC,CAAA;AAED,IAAM,kBAAkB,GAAG,UAAC,KAAa,EAAE,IAAY,IAAK,OAAA,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAA9C,CAA8C,CAAA"}
1
+ {"version":3,"file":"adjustRotation.js","sourceRoot":"","sources":["../../../../src/components/material/animations/adjustRotation.ts"],"names":[],"mappings":"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"}
@@ -16,19 +16,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.getFirstStockItemTransforms = void 0;
18
18
  var isEqual_1 = __importDefault(require("lodash/isEqual"));
19
- var locators_1 = require("../../../locators");
20
19
  var getFirstStockItemTransforms = function (context) {
21
- var _a;
22
- var rules = context.rules, type = context.type, index = context.index, locators = context.locators, material = context.material;
20
+ var rules = context.rules, type = context.type, index = context.index, material = context.material;
23
21
  var item = rules.material(type).getItem(index);
24
22
  var description = material[type];
25
23
  var stockLocation = description === null || description === void 0 ? void 0 : description.getStockLocation(item, context);
26
- if (!stockLocation)
24
+ if (!description || !stockLocation)
27
25
  return [];
28
26
  var stockItem = description === null || description === void 0 ? void 0 : description.getStaticItems(context).find(function (item) { return (0, isEqual_1.default)(item.location, stockLocation); });
29
27
  var displayIndex = (stockItem === null || stockItem === void 0 ? void 0 : stockItem.quantity) ? stockItem.quantity - 1 : 0;
30
- var stockLocator = (_a = locators[stockLocation.type]) !== null && _a !== void 0 ? _a : locators_1.centerLocator;
31
- return stockLocator.transformItem(stockItem !== null && stockItem !== void 0 ? stockItem : { location: stockLocation }, __assign(__assign({}, context), { index: 0, displayIndex: displayIndex }));
28
+ return description.getItemTransform(stockItem !== null && stockItem !== void 0 ? stockItem : { location: stockLocation }, __assign(__assign({}, context), { index: 0, displayIndex: displayIndex }));
32
29
  };
33
30
  exports.getFirstStockItemTransforms = getFirstStockItemTransforms;
34
31
  //# sourceMappingURL=getFirstStockItemTransforms.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFirstStockItemTransforms.util.js","sourceRoot":"","sources":["../../../../src/components/material/animations/getFirstStockItemTransforms.util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2DAAoC;AACpC,8CAA2E;AAEpE,IAAM,2BAA2B,GAAG,UACzC,OAA6B;;IAErB,IAAA,KAAK,GAAsC,OAAO,MAA7C,EAAE,IAAI,GAAgC,OAAO,KAAvC,EAAE,KAAK,GAAyB,OAAO,MAAhC,EAAE,QAAQ,GAAe,OAAO,SAAtB,EAAE,QAAQ,GAAK,OAAO,SAAZ,CAAY;IAC1D,IAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,CAAA;IACjD,IAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClC,IAAM,aAAa,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClE,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAA;IAC7B,IAAM,SAAS,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAA,iBAAO,EAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAArC,CAAqC,CAAC,CAAA;IAC1G,IAAM,YAAY,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,IAAM,YAAY,GAAG,MAAA,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,mCAAI,wBAAgD,CAAA;IACrG,OAAO,YAAY,CAAC,aAAa,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAO,OAAO,KAAE,KAAK,EAAE,CAAC,EAAE,YAAY,cAAA,IAAG,CAAA;AACrH,CAAC,CAAA;AAZY,QAAA,2BAA2B,+BAYvC"}
1
+ {"version":3,"file":"getFirstStockItemTransforms.util.js","sourceRoot":"","sources":["../../../../src/components/material/animations/getFirstStockItemTransforms.util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2DAAoC;AAG7B,IAAM,2BAA2B,GAAG,UACzC,OAA6B;IAErB,IAAA,KAAK,GAA4B,OAAO,MAAnC,EAAE,IAAI,GAAsB,OAAO,KAA7B,EAAE,KAAK,GAAe,OAAO,MAAtB,EAAE,QAAQ,GAAK,OAAO,SAAZ,CAAY;IAChD,IAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,CAAA;IACjD,IAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClC,IAAM,aAAa,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClE,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAA;IAC7C,IAAM,SAAS,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAA,iBAAO,EAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAArC,CAAqC,CAAC,CAAA;IAC1G,IAAM,YAAY,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,OAAO,WAAW,CAAC,gBAAgB,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAO,OAAO,KAAE,KAAK,EAAE,CAAC,EAAE,YAAY,cAAA,IAAG,CAAA;AACvH,CAAC,CAAA;AAXY,QAAA,2BAA2B,+BAWvC"}
@@ -0,0 +1,2 @@
1
+ export declare const toSingleRotation: (transforms: string[]) => string[];
2
+ export declare const toClosestRotations: (originTransforms: string[], targetTransforms: string[]) => void;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.toClosestRotations = exports.toSingleRotation = void 0;
5
+ var toSingleRotation = function (transforms) {
6
+ var result = [];
7
+ var rotateZ = 0;
8
+ for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) {
9
+ var transform = transforms_1[_i];
10
+ var rotateZMatch = transform.match(/rotateZ?\((-?\d+\.?\d*)([^)]*)\)/);
11
+ if (rotateZMatch) {
12
+ rotateZ += convertAngle(parseFloat(rotateZMatch[1]), rotateZMatch[2]);
13
+ }
14
+ else {
15
+ if (Math.abs(rotateZ) % 360 === 0 || !transform.startsWith('translate')) {
16
+ result.push(transform);
17
+ }
18
+ else {
19
+ var values = getTranslateValues(transform);
20
+ if (!values)
21
+ result.push(transform);
22
+ else {
23
+ var x = values.x, y = values.y, z = values.z;
24
+ var cos = Math.cos(rotateZ);
25
+ var sin = Math.sin(rotateZ);
26
+ result.push("translate3d(".concat(cos * x - sin * y, "em, ").concat(cos * y + sin * x, "em, ").concat(z, "em)"));
27
+ }
28
+ }
29
+ }
30
+ }
31
+ var radTurn = 2 * Math.PI;
32
+ var finalRotate = ((rotateZ % radTurn) + radTurn) % radTurn;
33
+ if (finalRotate)
34
+ result.push("rotateZ(".concat(finalRotate, "rad)"));
35
+ return result;
36
+ };
37
+ exports.toSingleRotation = toSingleRotation;
38
+ function getTranslateValues(transform) {
39
+ var translate3d = transform.match(/translate3d\((-?\d+\.?\d*)em, (-?\d+\.?\d*)em, (-?\d+\.?\d*)em\)/);
40
+ if (translate3d) {
41
+ return { x: parseFloat(translate3d[1]), y: parseFloat(translate3d[2]), z: parseFloat(translate3d[3]) };
42
+ }
43
+ var translate = transform.match(/translate\((-?\d+\.?\d*)em, (-?\d+\.?\d*)em\)/);
44
+ if (translate) {
45
+ return { x: parseFloat(translate[1]), y: parseFloat(translate[2]), z: 0 };
46
+ }
47
+ var translateX = transform.match(/translateX?\((-?\d+\.?\d*)em\)/);
48
+ if (translateX) {
49
+ return { x: parseFloat(translateX[1]), y: 0, z: 0 };
50
+ }
51
+ var translateY = transform.match(/translateY\((-?\d+\.?\d*)em\)/);
52
+ if (translateY) {
53
+ return { x: 0, y: parseFloat(translateY[1]), z: 0 };
54
+ }
55
+ return;
56
+ }
57
+ var angleUnitValue = (_a = {},
58
+ _a['deg'] = 360,
59
+ _a['grad'] = 400,
60
+ _a['rad'] = 2 * Math.PI,
61
+ _a['turn'] = 1,
62
+ _a);
63
+ var convertAngle = function (value, unit, targetUnit) {
64
+ if (targetUnit === void 0) { targetUnit = 'rad'; }
65
+ return unit === targetUnit ? value : value * angleUnitValue[targetUnit] / angleUnitValue[unit];
66
+ };
67
+ var toClosestRotations = function (originTransforms, targetTransforms) {
68
+ var _a, _b;
69
+ var lastOriginAngle = 0;
70
+ var lastTargetAngle = 0;
71
+ for (var i = 0; i < Math.max(originTransforms.length, targetTransforms.length); i++) {
72
+ var originMatch = (_a = originTransforms[i]) === null || _a === void 0 ? void 0 : _a.match(/rotateZ?\((-?\d+\.?\d*)([^)]*)\)/);
73
+ if (originMatch) {
74
+ var originAngle = convertAngle(parseFloat(originMatch[1]), originMatch[2]);
75
+ var delta = Math.round((lastTargetAngle - originAngle) / (2 * Math.PI));
76
+ if (delta === 0) {
77
+ lastOriginAngle = originAngle;
78
+ }
79
+ else {
80
+ lastOriginAngle = originAngle + delta * 2 * Math.PI;
81
+ originTransforms[i] = "rotateZ(".concat(lastOriginAngle, "rad)");
82
+ }
83
+ }
84
+ var targetMatch = (_b = targetTransforms[i]) === null || _b === void 0 ? void 0 : _b.match(/rotateZ?\((-?\d+\.?\d*)([^)]*)\)/);
85
+ if (targetMatch) {
86
+ var targetAngle = convertAngle(parseFloat(targetMatch[1]), targetMatch[2]);
87
+ var delta = Math.round((lastOriginAngle - targetAngle) / (2 * Math.PI));
88
+ if (delta === 0) {
89
+ lastTargetAngle = targetAngle;
90
+ }
91
+ else {
92
+ lastTargetAngle = targetAngle + delta * 2 * Math.PI;
93
+ targetTransforms[i] = "rotateZ(".concat(lastTargetAngle, "rad)");
94
+ }
95
+ }
96
+ }
97
+ };
98
+ exports.toClosestRotations = toClosestRotations;
99
+ //# sourceMappingURL=rotations.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotations.utils.js","sourceRoot":"","sources":["../../../../src/components/material/animations/rotations.utils.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,11 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.transformItem = void 0;
13
- var locators_1 = require("../../../locators");
14
13
  function transformItem(context) {
15
- var _a;
16
- var rules = context.rules, type = context.type, index = context.index, locators = context.locators, dragTransform = context.dragTransform;
14
+ var _a, _b;
15
+ var rules = context.rules, type = context.type, index = context.index, material = context.material, dragTransform = context.dragTransform;
17
16
  var currentItem = rules.material(type).getItem(index);
18
- var sourceLocator = (_a = locators[currentItem.location.type]) !== null && _a !== void 0 ? _a : locators_1.centerLocator;
19
- var locatorTransforms = sourceLocator.transformItem(currentItem, context);
17
+ var locatorTransforms = (_b = (_a = material[type]) === null || _a === void 0 ? void 0 : _a.getItemTransform(currentItem, context)) !== null && _b !== void 0 ? _b : [];
20
18
  return dragTransform ? __spreadArray([dragTransform], locatorTransforms, true) : locatorTransforms;
21
19
  }
22
20
  exports.transformItem = transformItem;
@@ -1 +1 @@
1
- {"version":3,"file":"transformItem.util.js","sourceRoot":"","sources":["../../../../src/components/material/animations/transformItem.util.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,8CAA2E;AAE3E,SAAgB,aAAa,CAAkF,OAA6B;;IAClI,IAAA,KAAK,GAA2C,OAAO,MAAlD,EAAE,IAAI,GAAqC,OAAO,KAA5C,EAAE,KAAK,GAA8B,OAAO,MAArC,EAAE,QAAQ,GAAoB,OAAO,SAA3B,EAAE,aAAa,GAAK,OAAO,cAAZ,CAAY;IAC/D,IAAM,WAAW,GAAuB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,CAAA;IAC5E,IAAM,aAAa,GAAG,MAAA,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAI,wBAAgD,CAAA;IAC7G,IAAM,iBAAiB,GAAG,aAAa,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC3E,OAAO,aAAa,CAAC,CAAC,gBAAE,aAAa,GAAK,iBAAiB,QAAE,CAAC,CAAC,iBAAiB,CAAA;AAClF,CAAC;AAND,sCAMC"}
1
+ {"version":3,"file":"transformItem.util.js","sourceRoot":"","sources":["../../../../src/components/material/animations/transformItem.util.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,SAAgB,aAAa,CAAkF,OAA6B;;IAClI,IAAA,KAAK,GAA2C,OAAO,MAAlD,EAAE,IAAI,GAAqC,OAAO,KAA5C,EAAE,KAAK,GAA8B,OAAO,MAArC,EAAE,QAAQ,GAAoB,OAAO,SAA3B,EAAE,aAAa,GAAK,OAAO,cAAZ,CAAY;IAC/D,IAAM,WAAW,GAAuB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,CAAA;IAC5E,IAAM,iBAAiB,GAAG,MAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,0CAAE,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,mCAAI,EAAE,CAAA;IACtF,OAAO,aAAa,CAAC,CAAC,gBAAE,aAAa,GAAK,iBAAiB,QAAE,CAAC,CAAC,iBAAiB,CAAA;AAClF,CAAC;AALD,sCAKC"}
@@ -1,5 +1,6 @@
1
1
  export * from './animations';
2
2
  export * from './locations';
3
+ export * from './ComponentDescription';
3
4
  export * from './Dices';
4
5
  export * from './Writing';
5
6
  export * from './FlatMaterial';
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./animations"), exports);
18
18
  __exportStar(require("./locations"), exports);
19
+ __exportStar(require("./ComponentDescription"), exports);
19
20
  __exportStar(require("./Dices"), exports);
20
21
  __exportStar(require("./Writing"), exports);
21
22
  __exportStar(require("./FlatMaterial"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/material/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,8CAA2B;AAC3B,0CAAuB;AACvB,4CAAyB;AACzB,iDAA8B;AAC9B,8CAA2B;AAC3B,sDAAmC;AACnC,0DAAuC;AACvC,wDAAqC;AACrC,gDAA6B;AAC7B,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/material/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,8CAA2B;AAC3B,yDAAsC;AACtC,0CAAuB;AACvB,4CAAyB;AACzB,iDAA8B;AAC9B,8CAA2B;AAC3B,sDAAmC;AACnC,0DAAuC;AACvC,wDAAqC;AACrC,gDAA6B;AAC7B,0CAAuB"}
@@ -0,0 +1,9 @@
1
+ import { Location, MaterialMove } from '@gamepark/rules-api';
2
+ import { ElementType } from 'react';
3
+ import { ItemContext } from '../../../locators';
4
+ import { LocationDescription } from './LocationDescription';
5
+ export declare class DropAreaDescription<P extends number = number, M extends number = number, L extends number = number, Id = any> extends LocationDescription<P, M, L, Id> {
6
+ Component: ElementType;
7
+ canDrop(move: MaterialMove<P, M, L>, location: Location<P, L>, context: ItemContext<P, M, L>): boolean;
8
+ getBestDropMove(moves: MaterialMove<P, M, L>[], location: Location<P, L>, context: ItemContext<P, M, L>): MaterialMove<P, M, L>;
9
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.DropAreaDescription = void 0;
22
+ var rules_api_1 = require("@gamepark/rules-api");
23
+ var isEqual_1 = __importDefault(require("lodash/isEqual"));
24
+ var LocationDescription_1 = require("./LocationDescription");
25
+ var SimpleDropArea_1 = require("./SimpleDropArea");
26
+ var DropAreaDescription = (function (_super) {
27
+ __extends(DropAreaDescription, _super);
28
+ function DropAreaDescription() {
29
+ var _this = _super !== null && _super.apply(this, arguments) || this;
30
+ _this.Component = SimpleDropArea_1.SimpleDropArea;
31
+ return _this;
32
+ }
33
+ DropAreaDescription.prototype.canDrop = function (move, location, context) {
34
+ return this.isMoveToLocation(move, location, context);
35
+ };
36
+ DropAreaDescription.prototype.getBestDropMove = function (moves, location, context) {
37
+ var exactMove = moves.find(function (move) { return (0, rules_api_1.isMoveItem)(move) && (0, isEqual_1.default)(location, move.location); });
38
+ if (exactMove)
39
+ return exactMove;
40
+ var moveWithSameRotation = moves.find(function (move) { var _a; return (0, rules_api_1.isMoveItem)(move) && move.location.rotation === ((_a = context.rules.material(move.itemType).getItem(move.itemIndex)) === null || _a === void 0 ? void 0 : _a.location.rotation); });
41
+ return moveWithSameRotation !== null && moveWithSameRotation !== void 0 ? moveWithSameRotation : moves[0];
42
+ };
43
+ return DropAreaDescription;
44
+ }(LocationDescription_1.LocationDescription));
45
+ exports.DropAreaDescription = DropAreaDescription;
46
+ //# sourceMappingURL=DropAreaDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropAreaDescription.js","sourceRoot":"","sources":["../../../../src/components/material/locations/DropAreaDescription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,iDAAwE;AACxE,2DAAoC;AAGpC,6DAA2D;AAC3D,mDAAiD;AAEjD;IACU,uCAAgC;IAD1C;QAAA,qEAkBC;QAfC,eAAS,GAAgB,+BAAc,CAAA;;IAezC,CAAC;IAbC,qCAAO,GAAP,UAAQ,IAA2B,EAAE,QAAwB,EAAE,OAA6B;QAC1F,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,6CAAe,GAAf,UAAgB,KAA8B,EAAE,QAAwB,EAAE,OAA6B;QACrG,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAA,sBAAU,EAAC,IAAI,CAAC,IAAI,IAAA,iBAAO,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAApD,CAAoD,CAAC,CAAA;QAC5F,IAAI,SAAS;YAAE,OAAO,SAAS,CAAA;QAE/B,IAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,YAC1C,OAAA,IAAA,sBAAU,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,MAAK,MAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,0CAAE,QAAQ,CAAC,QAAQ,CAAA,CAAA,EAAA,CAChI,CAAA;QACD,OAAO,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IACH,0BAAC;AAAD,CAAC,AAlBD,CACU,yCAAmB,GAiB5B;AAlBY,kDAAmB"}
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ import { LocationDisplayProps } from './LocationDisplay';
3
+ export type LocationComponentProps<P extends number = number, M extends number = number, L extends number = number> = LocationDisplayProps<P, M, L> & {
4
+ highlight?: boolean;
5
+ onShortClick?: () => void;
6
+ onLongClick?: () => void;
7
+ };
8
+ export declare const LocationComponent: import("react").ForwardRefExoticComponent<{
9
+ location: import("@gamepark/rules-api").Location<number, number, any, any>;
10
+ description: import("./LocationDescription").LocationDescription<number, number, number, any>;
11
+ canDrop?: boolean | undefined;
12
+ } & import("react").HTMLAttributes<HTMLDivElement> & {
13
+ highlight?: boolean | undefined;
14
+ onShortClick?: (() => void) | undefined;
15
+ onLongClick?: (() => void) | undefined;
16
+ } & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,89 @@
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
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __rest = (this && this.__rest) || function (s, e) {
18
+ var t = {};
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
20
+ t[p] = s[p];
21
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
22
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
24
+ t[p[i]] = s[p[i]];
25
+ }
26
+ return t;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.LocationComponent = void 0;
30
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
31
+ var react_1 = require("@emotion/react");
32
+ var react_2 = require("react");
33
+ var use_long_press_1 = require("use-long-press");
34
+ var css_1 = require("../../../css");
35
+ var hooks_1 = require("../../../hooks");
36
+ var utilities_1 = require("../../../utilities");
37
+ var LocationDisplay_1 = require("./LocationDisplay");
38
+ exports.LocationComponent = (0, react_2.forwardRef)(function (_a, ref) {
39
+ var _b;
40
+ var location = _a.location, description = _a.description, highlight = _a.highlight, onShortClick = _a.onShortClick, onLongClick = _a.onLongClick, props = __rest(_a, ["location", "description", "highlight", "onShortClick", "onLongClick"]);
41
+ var context = (0, hooks_1.useMaterialContext)();
42
+ var play = (0, hooks_1.usePlay)();
43
+ var displayHelp = (0, react_2.useMemo)(function () {
44
+ var move = description.displayHelp(location, context);
45
+ return move && (function () { return play(move, { local: true }); });
46
+ }, [location, context]);
47
+ onLongClick = onLongClick !== null && onLongClick !== void 0 ? onLongClick : (onShortClick ? displayHelp : undefined);
48
+ onShortClick = onShortClick !== null && onShortClick !== void 0 ? onShortClick : displayHelp;
49
+ var _c = (0, react_2.useState)(false), clicking = _c[0], setClicking = _c[1];
50
+ var lastShortClick = (0, react_2.useRef)(new Date().getTime());
51
+ var listeners = (0, use_long_press_1.useLongPress)(function () { return onLongClick && onLongClick(); }, {
52
+ detect: use_long_press_1.LongPressEventType.Pointer,
53
+ cancelOnMovement: 5,
54
+ threshold: 600,
55
+ onStart: function (event) {
56
+ setClicking(true);
57
+ event.stopPropagation();
58
+ },
59
+ onFinish: function () { return setClicking(false); },
60
+ onCancel: function (_, _a) {
61
+ var reason = _a.reason;
62
+ if (reason === use_long_press_1.LongPressCallbackReason.CancelledByRelease && onShortClick) {
63
+ var time = new Date().getTime();
64
+ if (time - lastShortClick.current < 300)
65
+ return;
66
+ lastShortClick.current = time;
67
+ setTimeout(onShortClick);
68
+ }
69
+ },
70
+ filterEvents: function (event) { return !event.button; }
71
+ })();
72
+ highlight = highlight || ((_b = description.highlight) === null || _b === void 0 ? void 0 : _b.call(description, location, context));
73
+ return ((0, jsx_runtime_1.jsx)(LocationDisplay_1.LocationDisplay, __assign({ ref: ref, location: location, description: description, css: [
74
+ (onShortClick || onLongClick) ? hoverHighlight : noPointerEvents,
75
+ onLongClick && clicking && clickingAnimation,
76
+ highlight && css_1.shineEffect
77
+ ] }, props, (0, utilities_1.combineEventListeners)(listeners, props))));
78
+ });
79
+ var hoverHighlight = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n cursor: pointer;\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.2);\n }\n"], ["\n cursor: pointer;\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.2);\n }\n"])));
80
+ var noPointerEvents = (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n pointer-events: none;\n"], ["\n pointer-events: none;\n"])));
81
+ var clickingKeyframes = function (theme) {
82
+ var _a;
83
+ return (0, react_1.keyframes)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n from {\n background-color: rgba(255, 255, 255, 0.2);\n }\n to {\n background-color: ", ";\n }\n"], ["\n from {\n background-color: rgba(255, 255, 255, 0.2);\n }\n to {\n background-color: ", ";\n }\n"])), (_a = theme.dropArea) === null || _a === void 0 ? void 0 : _a.backgroundColor);
84
+ };
85
+ var longClickThreshold = 600;
86
+ var clickingAnimation = function (theme) { return (0, react_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n animation: ", " ", "ms ease-in-out;\n"], ["\n animation: ", " ", "ms ease-in-out;\n"])), clickingKeyframes(theme), longClickThreshold); };
87
+ exports.LocationComponent.displayName = 'LocationComponent';
88
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
89
+ //# sourceMappingURL=LocationComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocationComponent.js","sourceRoot":"","sources":["../../../../src/components/material/locations/LocationComponent.tsx"],"names":[],"mappings":"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"}
@@ -1,45 +1,34 @@
1
1
  import { Interpolation, Theme } from '@emotion/react';
2
- import { Coordinates, Location, MaterialMove } from '@gamepark/rules-api';
3
- import { ComponentType } from 'react';
4
- import { ItemContext, LocationContext, LocationHelpProps, MaterialContext } from '../../../locators';
5
- import { ComponentSize } from '../MaterialDescription';
6
- export declare class LocationDescription<P extends number = number, M extends number = number, L extends number = number, Id = any> {
2
+ import { Location, MaterialMove } from '@gamepark/rules-api';
3
+ import { ComponentType, ElementType } from 'react';
4
+ import { LocationContext, MaterialContext } from '../../../locators';
5
+ import { ComponentDescription, ComponentSize } from '../ComponentDescription';
6
+ export declare class LocationDescription<P extends number = number, M extends number = number, L extends number = number, Id = any> extends ComponentDescription<Id> {
7
+ Component: ElementType;
7
8
  help?: ComponentType<LocationHelpProps<P, L>>;
8
- height?: number;
9
- width?: number;
10
- ratio?: number;
11
- rotationUnit: string;
12
- location?: Location<P, L>;
13
- locations: Location<P, L>[];
14
- getLocations(_context: MaterialContext<P, M, L>): Location<P, L>[];
15
- getSize(_location: Location<P, L>, _context: MaterialContext<P, M, L>): ComponentSize;
9
+ getLocationSize(location: Location<P, L>, _context: MaterialContext<P, M, L>): ComponentSize;
16
10
  image?: string;
17
11
  images?: Record<Id extends keyof any ? Id : never, string>;
18
12
  getImage(location: Location<P, L>, _context: MaterialContext<P, M, L>): string | undefined;
19
13
  helpImage?: string;
20
14
  getHelpImage(location: Location<P, L>, context: MaterialContext<P, M, L>): string | undefined;
21
- borderRadius?: number;
22
- getBorderRadius(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number | undefined;
15
+ getImages(): string[];
23
16
  extraCss?: Interpolation<Theme>;
24
17
  getExtraCss(_location: Location<P, L>, _context: LocationContext<P, M, L>): Interpolation<Theme>;
25
- transformLocation(location: Location<P, L>, context: LocationContext<P, M, L>): string[];
26
- transformOwnLocation(location: Location<P, L>, context: LocationContext<P, M, L>): string[];
27
- coordinates?: Coordinates;
28
- getCoordinates(_location: Location<P, L>, _context: LocationContext<P, M, L>): Coordinates | undefined;
29
- rotateZ: number;
30
- getRotateZ(_location: Location<P, L>, _context: LocationContext<P, M, L>): number;
31
- alwaysVisible?: boolean;
32
- isAlwaysVisible(location: Location<P, L>, context: MaterialContext<P, M, L>): boolean;
18
+ getLocationTransform(location: Location<P, L>, context: LocationContext<P, M, L>): string[];
33
19
  highlight?(location: Location<P, L>, context: MaterialContext<P, M, L>): boolean | undefined;
34
20
  content?: ComponentType<{
35
21
  location: Location;
36
22
  }>;
37
- canDrop(move: MaterialMove<P, M, L>, location: Location<P, L>, context: ItemContext<P, M, L>): boolean;
38
- getBestDropMove(moves: MaterialMove<P, M, L>[], _location: Location<P, L>, context: ItemContext<P, M, L>): MaterialMove<P, M, L>;
39
23
  canLongClick(move: MaterialMove<P, M, L>, location: Location<P, L>, context: MaterialContext<P, M, L>): boolean;
40
24
  canShortClick(move: MaterialMove<P, M, L>, location: Location<P, L>, context: MaterialContext<P, M, L>): boolean;
41
25
  isMoveToLocation(move: MaterialMove<P, M, L>, location: Location<P, L>, context: MaterialContext<P, M, L>): boolean;
42
26
  getShortClickMove(_location: Location<P, L>, _context: MaterialContext<P, M, L>): MaterialMove<P, M, L> | undefined;
43
27
  getShortClickLocalMove(_location: Location<P, L>, _context: MaterialContext<P, M, L>): MaterialMove<P, M, L> | undefined;
44
28
  displayInParentItemHelp?: boolean;
29
+ displayHelp(location: Location<P, L>, _context: MaterialContext<P, M, L>): MaterialMove<P, M, L> | undefined;
45
30
  }
31
+ export type LocationHelpProps<P extends number = number, L extends number = number> = {
32
+ location: Location<P, L>;
33
+ closeDialog: () => void;
34
+ };