@gamepark/react-game 6.25.0 → 6.27.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 (121) 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/buttons/PlayMoveButton/PlayMoveButton.d.ts +3 -3
  4. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +1 -1
  5. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
  6. package/dist/components/material/Dices/CubicDiceDescription.d.ts +1 -1
  7. package/dist/components/material/Dices/CubicDiceDescription.js +1 -1
  8. package/dist/components/material/Dices/CubicDiceDescription.js.map +1 -1
  9. package/dist/components/material/DraggableMaterial.js +1 -1
  10. package/dist/components/material/DraggableMaterial.js.map +1 -1
  11. package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +1 -1
  12. package/dist/components/material/FlatMaterial/FlatMaterial.js +7 -4
  13. package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -1
  14. package/dist/components/material/FlatMaterial/PolyhexDescription.d.ts +9 -0
  15. package/dist/components/material/FlatMaterial/PolyhexDescription.js +35 -0
  16. package/dist/components/material/FlatMaterial/PolyhexDescription.js.map +1 -0
  17. package/dist/components/material/FlatMaterial/index.d.ts +1 -0
  18. package/dist/components/material/FlatMaterial/index.js +1 -0
  19. package/dist/components/material/FlatMaterial/index.js.map +1 -1
  20. package/dist/components/material/GameTable/DropPreview.d.ts +2 -0
  21. package/dist/components/material/GameTable/DropPreview.js +60 -0
  22. package/dist/components/material/GameTable/DropPreview.js.map +1 -0
  23. package/dist/components/material/GameTable/GameMaterialDisplay.js +2 -1
  24. package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
  25. package/dist/components/material/GameTable/GameTable.js +7 -15
  26. package/dist/components/material/GameTable/GameTable.js.map +1 -1
  27. package/dist/components/material/GameTable/ItemDisplay.d.ts +1 -0
  28. package/dist/components/material/GameTable/ItemDisplay.js +8 -5
  29. package/dist/components/material/GameTable/ItemDisplay.js.map +1 -1
  30. package/dist/components/material/ItemMenu.js.map +1 -0
  31. package/dist/components/material/ItemMenuButton.d.ts +10 -0
  32. package/dist/components/material/ItemMenuButton.js +46 -0
  33. package/dist/components/material/ItemMenuButton.js.map +1 -0
  34. package/dist/components/material/MaterialComponent.d.ts +2 -0
  35. package/dist/components/material/MaterialComponent.js +2 -2
  36. package/dist/components/material/MaterialComponent.js.map +1 -1
  37. package/dist/components/material/MaterialDescription.d.ts +14 -3
  38. package/dist/components/material/MaterialDescription.js +64 -3
  39. package/dist/components/material/MaterialDescription.js.map +1 -1
  40. package/dist/components/material/MobileMaterialDescription.d.ts +1 -1
  41. package/dist/components/material/MobileMaterialDescription.js +4 -5
  42. package/dist/components/material/MobileMaterialDescription.js.map +1 -1
  43. package/dist/components/material/Wheel/WheelDescription.d.ts +2 -1
  44. package/dist/components/material/Wheel/WheelDescription.js +10 -0
  45. package/dist/components/material/Wheel/WheelDescription.js.map +1 -1
  46. package/dist/components/material/Writing/WritingDescription.d.ts +1 -1
  47. package/dist/components/material/Writing/WritingDescription.js +1 -1
  48. package/dist/components/material/Writing/WritingDescription.js.map +1 -1
  49. package/dist/components/material/animations/CreateItemAnimations.d.ts +1 -1
  50. package/dist/components/material/animations/CreateItemAnimations.js +8 -8
  51. package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
  52. package/dist/components/material/animations/DeleteItemAnimations.js +5 -5
  53. package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
  54. package/dist/components/material/animations/MoveItemAnimations.js +11 -10
  55. package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
  56. package/dist/components/material/animations/MoveItemAtOnceAnimations.js +8 -7
  57. package/dist/components/material/animations/MoveItemAtOnceAnimations.js.map +1 -1
  58. package/dist/components/material/animations/RollItemAnimations.js +4 -4
  59. package/dist/components/material/animations/RollItemAnimations.js.map +1 -1
  60. package/dist/components/material/animations/getFirstStockItemTransforms.util.js +3 -3
  61. package/dist/components/material/animations/getFirstStockItemTransforms.util.js.map +1 -1
  62. package/dist/components/material/animations/index.d.ts +0 -1
  63. package/dist/components/material/animations/index.js +1 -3
  64. package/dist/components/material/animations/index.js.map +1 -1
  65. package/dist/components/material/animations/rotations.utils.d.ts +1 -0
  66. package/dist/components/material/animations/rotations.utils.js +3 -7
  67. package/dist/components/material/animations/rotations.utils.js.map +1 -1
  68. package/dist/components/material/animations/transformItem.util.js +6 -5
  69. package/dist/components/material/animations/transformItem.util.js.map +1 -1
  70. package/dist/components/material/index.d.ts +1 -0
  71. package/dist/components/material/index.js +1 -0
  72. package/dist/components/material/index.js.map +1 -1
  73. package/dist/components/material/locations/DropAreaDescription.d.ts +2 -1
  74. package/dist/components/material/locations/DropAreaDescription.js +1 -1
  75. package/dist/components/material/locations/DropAreaDescription.js.map +1 -1
  76. package/dist/components/material/locations/HexGridDropArea.d.ts +11 -0
  77. package/dist/components/material/locations/HexGridDropArea.js +74 -0
  78. package/dist/components/material/locations/HexGridDropArea.js.map +1 -0
  79. package/dist/components/material/locations/HexGridDropAreaDescription.d.ts +10 -0
  80. package/dist/components/material/locations/HexGridDropAreaDescription.js +90 -0
  81. package/dist/components/material/locations/HexGridDropAreaDescription.js.map +1 -0
  82. package/dist/components/material/locations/LocationDescription.d.ts +1 -0
  83. package/dist/components/material/locations/LocationDescription.js +5 -4
  84. package/dist/components/material/locations/LocationDescription.js.map +1 -1
  85. package/dist/components/material/locations/index.d.ts +1 -0
  86. package/dist/components/material/locations/index.js +1 -0
  87. package/dist/components/material/locations/index.js.map +1 -1
  88. package/dist/components/material/utils/IsLocationSubset.js +7 -1
  89. package/dist/components/material/utils/IsLocationSubset.js.map +1 -1
  90. package/dist/components/material/utils/getBestDropMove.d.ts +4 -0
  91. package/dist/components/material/utils/getBestDropMove.js +34 -0
  92. package/dist/components/material/utils/getBestDropMove.js.map +1 -0
  93. package/dist/components/material/utils/isDroppedItem.js +2 -1
  94. package/dist/components/material/utils/isDroppedItem.js.map +1 -1
  95. package/dist/components/material/utils/isRotationMove.d.ts +3 -0
  96. package/dist/components/material/utils/isRotationMove.js +25 -0
  97. package/dist/components/material/utils/isRotationMove.js.map +1 -0
  98. package/dist/hooks/useItemLocations.js +5 -19
  99. package/dist/hooks/useItemLocations.js.map +1 -1
  100. package/dist/locators/HandLocator.js +1 -1
  101. package/dist/locators/HandLocator.js.map +1 -1
  102. package/dist/locators/HexagonalGridLocator.d.ts +81 -0
  103. package/dist/locators/HexagonalGridLocator.js +219 -0
  104. package/dist/locators/HexagonalGridLocator.js.map +1 -0
  105. package/dist/locators/ListLocator.js +1 -3
  106. package/dist/locators/ListLocator.js.map +1 -1
  107. package/dist/locators/Locator.d.ts +25 -0
  108. package/dist/locators/Locator.js +33 -1
  109. package/dist/locators/Locator.js.map +1 -1
  110. package/dist/locators/PileLocator.js +1 -1
  111. package/dist/locators/PileLocator.js.map +1 -1
  112. package/dist/locators/index.d.ts +1 -0
  113. package/dist/locators/index.js +1 -0
  114. package/dist/locators/index.js.map +1 -1
  115. package/dist/locators/utils/grid.hex.util.d.ts +43 -0
  116. package/dist/locators/utils/grid.hex.util.js +92 -0
  117. package/dist/locators/utils/grid.hex.util.js.map +1 -0
  118. package/dist/utilities/combineEventListeners.js.map +1 -1
  119. package/dist/utilities/zoom-pan-pinch/animations.util.d.ts +6 -2
  120. package/dist/utilities/zoom-pan-pinch/animations.util.js.map +1 -1
  121. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"LocationDescription.js","sourceRoot":"","sources":["../../../../src/components/material/locations/LocationDescription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocationDescription.js","sourceRoot":"","sources":["../../../../src/components/material/locations/LocationDescription.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './DropAreaDescription';
2
+ export * from './HexGridDropAreaDescription';
2
3
  export * from './LocationDescription';
3
4
  export * from './LocationsMask';
4
5
  export * from './SimpleDropArea';
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./DropAreaDescription"), exports);
18
+ __exportStar(require("./HexGridDropAreaDescription"), exports);
18
19
  __exportStar(require("./LocationDescription"), exports);
19
20
  __exportStar(require("./LocationsMask"), exports);
20
21
  __exportStar(require("./SimpleDropArea"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/locations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,wDAAqC;AACrC,kDAA+B;AAC/B,mDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/locations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,+DAA4C;AAC5C,wDAAqC;AACrC,kDAA+B;AAC/B,mDAAgC"}
@@ -6,7 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.isLocationSubset = void 0;
7
7
  var isEqual_1 = __importDefault(require("lodash/isEqual"));
8
8
  var isLocationSubset = function (testLocation, parentLocation) {
9
- return Object.keys(parentLocation).every(function (key) { return parentLocation[key] === undefined || (0, isEqual_1.default)(parentLocation[key], testLocation[key]); });
9
+ var key;
10
+ for (key in parentLocation) {
11
+ if (parentLocation[key] !== undefined && !(0, isEqual_1.default)(parentLocation[key], testLocation[key])) {
12
+ return false;
13
+ }
14
+ }
15
+ return true;
10
16
  };
11
17
  exports.isLocationSubset = isLocationSubset;
12
18
  //# sourceMappingURL=IsLocationSubset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IsLocationSubset.js","sourceRoot":"","sources":["../../../../src/components/material/utils/IsLocationSubset.ts"],"names":[],"mappings":";;;;;;AACA,2DAAoC;AAE7B,IAAM,gBAAgB,GAAG,UAAC,YAA+B,EAAE,cAAwB;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,cAAc,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAA,iBAAO,EAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAApF,CAAoF,CAAC,CAAA;AACvI,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
1
+ {"version":3,"file":"IsLocationSubset.js","sourceRoot":"","sources":["../../../../src/components/material/utils/IsLocationSubset.ts"],"names":[],"mappings":";;;;;;AACA,2DAAoC;AAE7B,IAAM,gBAAgB,GAAG,UAAC,YAA+B,EAAE,cAAwB;IACxF,IAAI,GAAmB,CAAA;IACvB,KAAK,GAAG,IAAI,cAAc,EAAE;QAC1B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,IAAA,iBAAO,EAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;YACzF,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B"}
@@ -0,0 +1,4 @@
1
+ import { DragEndEvent, DragMoveEvent } from '@dnd-kit/core';
2
+ import { MaterialMove } from '../../../../../rules-api';
3
+ import { MaterialContext } from '../../../locators';
4
+ export declare function getBestDropMove<P extends number = number, M extends number = number, L extends number = number>(event: DragMoveEvent | DragEndEvent, context: MaterialContext<P, M, L>, legalMoves: MaterialMove<P, M, L>[]): MaterialMove<P, M, L> | undefined;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getBestDropMove = void 0;
15
+ var DraggableMaterial_1 = require("../DraggableMaterial");
16
+ function getBestDropMove(event, context, legalMoves) {
17
+ if (event.over && (0, DraggableMaterial_1.dataIsDisplayedItem)(event.active.data.current) && dataIsLocation(event.over.data.current)) {
18
+ var item = event.active.data.current;
19
+ var description_1 = context.material[item.type];
20
+ var location_1 = event.over.data.current;
21
+ var locator = context.locators[location_1.type];
22
+ var itemContext_1 = __assign(__assign({}, context), item);
23
+ var locationDescription_1 = locator === null || locator === void 0 ? void 0 : locator.getLocationDescription(location_1, itemContext_1);
24
+ var moves = legalMoves.filter(function (move) { var _a; return (description_1 === null || description_1 === void 0 ? void 0 : description_1.canDrag(move, itemContext_1)) && ((_a = locationDescription_1 === null || locationDescription_1 === void 0 ? void 0 : locationDescription_1.canDrop) === null || _a === void 0 ? void 0 : _a.call(locationDescription_1, move, location_1, itemContext_1)); });
25
+ if (moves.length > 0) {
26
+ return moves.length === 1 ? moves[0] : locationDescription_1.getBestDropMove(moves, location_1, itemContext_1, event);
27
+ }
28
+ }
29
+ }
30
+ exports.getBestDropMove = getBestDropMove;
31
+ function dataIsLocation(data) {
32
+ return typeof (data === null || data === void 0 ? void 0 : data.type) === 'number';
33
+ }
34
+ //# sourceMappingURL=getBestDropMove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBestDropMove.js","sourceRoot":"","sources":["../../../../src/components/material/utils/getBestDropMove.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,0DAA0D;AAG1D,SAAgB,eAAe,CAC7B,KAAmC,EAAE,OAAiC,EAAE,UAAmC;IAE3G,IAAI,KAAK,CAAC,IAAI,IAAI,IAAA,uCAAmB,EAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,CAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACpH,IAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA;QACtC,IAAM,aAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAM,UAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QACxC,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAQ,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAM,aAAW,yBAAQ,OAAO,GAAK,IAAI,CAAE,CAAA;QAC3C,IAAM,qBAAmB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,CAAC,UAAQ,EAAE,aAAW,CAAiC,CAAA;QAClH,IAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,UAAA,IAAI,YAClC,OAAA,CAAA,aAAW,aAAX,aAAW,uBAAX,aAAW,CAAE,OAAO,CAAC,IAAI,EAAE,aAAW,CAAC,MAAI,MAAA,qBAAmB,aAAnB,qBAAmB,uBAAnB,qBAAmB,CAAE,OAAO,sEAAG,IAAI,EAAE,UAAQ,EAAE,aAAW,CAAC,CAAA,CAAA,EAAA,CACvG,CAAA;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAmB,CAAC,eAAe,CAAC,KAAK,EAAE,UAAQ,EAAE,aAAW,EAAE,KAAK,CAAC,CAAA;SAChH;KACF;AACH,CAAC;AAjBD,0CAiBC;AAED,SAAS,cAAc,CAAuD,IAA0B;IACtG,OAAO,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,KAAK,QAAQ,CAAA;AACvC,CAAC"}
@@ -12,6 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.isDroppedItem = void 0;
15
+ var locators_1 = require("../../../locators");
15
16
  var isPlacedOnItem_1 = require("./isPlacedOnItem");
16
17
  var isDroppedItem = function (context) {
17
18
  var type = context.type, index = context.index, displayIndex = context.displayIndex, rules = context.rules;
@@ -20,7 +21,7 @@ var isDroppedItem = function (context) {
20
21
  return false;
21
22
  if (droppedItem.type === type && droppedItem.index === index && droppedItem.displayIndex === displayIndex)
22
23
  return true;
23
- return (0, isPlacedOnItem_1.isPlacedOnItem)(rules.material(type).getItem(index), __assign(__assign({}, context), droppedItem));
24
+ return (0, isPlacedOnItem_1.isPlacedOnItem)((0, locators_1.getItemFromContext)(context), __assign(__assign({}, context), droppedItem));
24
25
  };
25
26
  exports.isDroppedItem = isDroppedItem;
26
27
  //# sourceMappingURL=isDroppedItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isDroppedItem.js","sourceRoot":"","sources":["../../../../src/components/material/utils/isDroppedItem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,mDAAiD;AAE1C,IAAM,aAAa,GAAG,UAC3B,OAA6B;IAErB,IAAA,IAAI,GAAiC,OAAO,KAAxC,EAAE,KAAK,GAA0B,OAAO,MAAjC,EAAE,YAAY,GAAY,OAAO,aAAnB,EAAE,KAAK,GAAK,OAAO,MAAZ,CAAY;IACpD,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAA;IAC1C,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAA;IAC9B,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,IAAI,CAAA;IACtH,OAAO,IAAA,+BAAc,EAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,wBAAO,OAAO,GAAK,WAAW,EAAG,CAAA;AAC7F,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB"}
1
+ {"version":3,"file":"isDroppedItem.js","sourceRoot":"","sources":["../../../../src/components/material/utils/isDroppedItem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8CAAmE;AACnE,mDAAiD;AAE1C,IAAM,aAAa,GAAG,UAC3B,OAA6B;IAErB,IAAA,IAAI,GAAiC,OAAO,KAAxC,EAAE,KAAK,GAA0B,OAAO,MAAjC,EAAE,YAAY,GAAY,OAAO,aAAnB,EAAE,KAAK,GAAK,OAAO,MAAZ,CAAY;IACpD,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAA;IAC1C,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAA;IAC9B,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,IAAI,CAAA;IACtH,OAAO,IAAA,+BAAc,EAAC,IAAA,6BAAkB,EAAC,OAAO,CAAC,wBAAO,OAAO,GAAK,WAAW,EAAG,CAAA;AACpF,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB"}
@@ -0,0 +1,3 @@
1
+ import { MoveItem } from '@gamepark/rules-api';
2
+ import { MaterialContext } from '../../../locators';
3
+ export declare const isRotationMove: <P extends number = number, M extends number = number, L extends number = number>(move: MoveItem<P, M, L>, context: MaterialContext<P, M, L>) => boolean;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.isRotationMove = void 0;
18
+ var isEqual_1 = __importDefault(require("lodash/isEqual"));
19
+ var isRotationMove = function (move, context) {
20
+ var _a = context.rules.material(move.itemType).getItem(move.itemIndex).location, itemRotation = _a.rotation, itemLocation = __rest(_a, ["rotation"]);
21
+ var _b = move.location, moveRotation = _b.rotation, moveLocation = __rest(_b, ["rotation"]);
22
+ return (0, isEqual_1.default)(itemLocation, moveLocation) && !(0, isEqual_1.default)(itemRotation, moveRotation);
23
+ };
24
+ exports.isRotationMove = isRotationMove;
25
+ //# sourceMappingURL=isRotationMove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isRotationMove.js","sourceRoot":"","sources":["../../../../src/components/material/utils/isRotationMove.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2DAAoC;AAG7B,IAAM,cAAc,GAAG,UAC5B,IAAuB,EAAE,OAAiC;IAE1D,IAAM,KAA8C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC,QAAQ,EAAzG,YAAY,cAAA,EAAK,YAAY,cAAzC,YAA2C,CAA0E,CAAA;IAC3H,IAAM,KAA8C,IAAI,CAAC,QAAQ,EAA/C,YAAY,cAAA,EAAK,YAAY,cAAzC,YAA2C,CAAgB,CAAA;IACjE,OAAO,IAAA,iBAAO,EAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,IAAA,iBAAO,EAAC,YAAY,EAAE,YAAY,CAAC,CAAA;AACpF,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B"}
@@ -15,6 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.useExpectedDropLocations = exports.useItemLocations = void 0;
18
+ var lodash_1 = require("lodash");
18
19
  var isEqual_1 = __importDefault(require("lodash/isEqual"));
19
20
  var react_1 = require("react");
20
21
  var components_1 = require("../components");
@@ -56,25 +57,10 @@ var useExpectedDropLocations = function () {
56
57
  delete context.expectedDropLocations;
57
58
  }
58
59
  else if (!context.expectedDropLocations) {
59
- var description = context.material[draggedItem.type];
60
- var item = context.rules.material(draggedItem.type).getItem(draggedItem.index);
61
- var itemContext = __assign(__assign({}, context), draggedItem);
62
- var locations = [];
63
- for (var _i = 0, legalMoves_1 = legalMoves; _i < legalMoves_1.length; _i++) {
64
- var move = legalMoves_1[_i];
65
- if (description === null || description === void 0 ? void 0 : description.canDrag(move, itemContext)) {
66
- var _loop_2 = function (dropLocation) {
67
- if (!locations.some(function (location) { return (0, isEqual_1.default)(location, dropLocation); })) {
68
- locations.push(dropLocation);
69
- }
70
- };
71
- for (var _b = 0, _c = description.getDropLocations(item, move, itemContext); _b < _c.length; _b++) {
72
- var dropLocation = _c[_b];
73
- _loop_2(dropLocation);
74
- }
75
- }
76
- }
77
- context.expectedDropLocations = locations;
60
+ var description_1 = context.material[draggedItem.type];
61
+ var itemContext_1 = __assign(__assign({}, context), draggedItem);
62
+ var dragMoves = legalMoves.filter(function (move) { return description_1.canDrag(move, itemContext_1); });
63
+ context.expectedDropLocations = (0, lodash_1.uniqWith)(description_1.getDropLocations(itemContext_1, dragMoves), isEqual_1.default);
78
64
  }
79
65
  return (_a = context.expectedDropLocations) !== null && _a !== void 0 ? _a : [];
80
66
  }, [draggedItem]);
@@ -1 +1 @@
1
- {"version":3,"file":"useItemLocations.js","sourceRoot":"","sources":["../../src/hooks/useItemLocations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useItemLocations.js","sourceRoot":"","sources":["../../src/hooks/useItemLocations.ts"],"names":[],"mappings":"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"}
@@ -155,7 +155,7 @@ var HandLocator = /** @class */ (function (_super) {
155
155
  HandLocator.prototype.generateLocationDescriptionFromDraggedItem = function (_location, context) {
156
156
  var _a;
157
157
  var itemDescription = (_a = context.material[context.type]) !== null && _a !== void 0 ? _a : new components_1.CardDescription();
158
- var item = context.rules.material(context.type).getItem(context.index);
158
+ var item = (0, Locator_1.getItemFromContext)(context);
159
159
  var _b = itemDescription.getSize(item.id), width = _b.width, height = _b.height;
160
160
  var borderRadius = itemDescription.getBorderRadius(item.id);
161
161
  var max = Math.max(width, height);
@@ -1 +1 @@
1
- {"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { Coordinates, GridBoundaries, HexGridSystem, Location, MaterialItem, MoveItem, XYCoordinates } from '@gamepark/rules-api';
2
+ import { LocationDescription } from '../components';
3
+ import { ItemContext, Locator, MaterialContext } from './Locator';
4
+ /**
5
+ * This locator is responsible for placing locations and items on a hexagonal grid.
6
+ */
7
+ export declare abstract class HexagonalGridLocator<P extends number = number, M extends number = number, L extends number = number> extends Locator<P, M, L> {
8
+ /**
9
+ * The coordinates system used by the location and items to place
10
+ */
11
+ abstract coordinatesSystem: HexGridSystem;
12
+ /**
13
+ * The size of one hexagon, i.e. the distance between the center of the hexagon and its vertices.
14
+ * For irregular hexagons, the distance can use XY values.
15
+ */
16
+ abstract size: number | XYCoordinates;
17
+ /**
18
+ * Horizontal size of a hexagon
19
+ */
20
+ protected get sizeX(): number;
21
+ /**
22
+ * Vertical size of a hexagon
23
+ */
24
+ protected get sizeY(): number;
25
+ /**
26
+ * The min and max X and Y coordinates of the grid, if any.
27
+ * Define the boundaries to get the drop area automatically sized and centered.
28
+ */
29
+ boundaries: Partial<GridBoundaries>;
30
+ /**
31
+ * Override if you need dynamic {@link boundaries}.
32
+ * @param _location The location to consider
33
+ * @param _context Context of the game
34
+ * @return current grid boundaries
35
+ */
36
+ getBoundaries(_location: Location<P, L>, _context: MaterialContext<P, M, L>): Partial<GridBoundaries>;
37
+ /**
38
+ * Get the delta X and Y coordinates to apply to place some area given its boundaries.
39
+ * @param boundaries Boundaries of the location to place
40
+ * @return X and Y delta to apply
41
+ */
42
+ private getAreaDelta;
43
+ /**
44
+ * Get the coordinates for the full grid area
45
+ * @param location Location to place
46
+ * @param context Context of the game
47
+ * @returns The coordinates of the area
48
+ */
49
+ getAreaCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
50
+ /**
51
+ * Get the coordinates of a location on the grid
52
+ * @param location Location to place
53
+ * @param context Context of the game
54
+ * @return the coordinates
55
+ */
56
+ getLocationCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
57
+ /**
58
+ * Get the coordinates of an item on the grid. If the item is a Polyhex, the shape will be use to center the origin coordinates of the item on the
59
+ * correct grid location.
60
+ * @param item Item to place
61
+ * @param context Context of the game
62
+ * @return the coordinates of the item
63
+ */
64
+ getItemCoordinates(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Partial<Coordinates>;
65
+ /**
66
+ * Rotate the item. On a hexagonal grid, by default the item's rotation is multiplied by 60 degrees.
67
+ * @param item Item to rotate
68
+ * @param _context Context of the item
69
+ * @return the item's rotation in degrees
70
+ */
71
+ getItemRotateZ(item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
72
+ /**
73
+ * Returns the drop locations for current dragged item. The hexagonal grid must be one simple drop location.
74
+ */
75
+ getDropLocations(moves: MoveItem<P, M, L>[], _context: ItemContext<P, M, L>): Location<P, L>[];
76
+ dropPreview: boolean;
77
+ /**
78
+ * Generate automatically a {@link HexGridDropAreaDescription} based on the grid boundaries
79
+ */
80
+ getLocationDescription(location: Location<P, L>, context: MaterialContext<P, M, L> | ItemContext<P, M, L>): LocationDescription<P, M, L> | undefined;
81
+ }
@@ -0,0 +1,219 @@
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.HexagonalGridLocator = void 0;
22
+ var rules_api_1 = require("@gamepark/rules-api");
23
+ var isEqual_1 = __importDefault(require("lodash/isEqual"));
24
+ var maxBy_1 = __importDefault(require("lodash/maxBy"));
25
+ var minBy_1 = __importDefault(require("lodash/minBy"));
26
+ var omit_1 = __importDefault(require("lodash/omit"));
27
+ var uniqWith_1 = __importDefault(require("lodash/uniqWith"));
28
+ var components_1 = require("../components");
29
+ var Locator_1 = require("./Locator");
30
+ /**
31
+ * This locator is responsible for placing locations and items on a hexagonal grid.
32
+ */
33
+ var HexagonalGridLocator = /** @class */ (function (_super) {
34
+ __extends(HexagonalGridLocator, _super);
35
+ function HexagonalGridLocator() {
36
+ var _this = _super !== null && _super.apply(this, arguments) || this;
37
+ /**
38
+ * The min and max X and Y coordinates of the grid, if any.
39
+ * Define the boundaries to get the drop area automatically sized and centered.
40
+ */
41
+ _this.boundaries = {};
42
+ _this.dropPreview = true;
43
+ return _this;
44
+ }
45
+ Object.defineProperty(HexagonalGridLocator.prototype, "sizeX", {
46
+ /**
47
+ * Horizontal size of a hexagon
48
+ */
49
+ get: function () {
50
+ return typeof this.size === 'number' ? this.size : this.size.x;
51
+ },
52
+ enumerable: false,
53
+ configurable: true
54
+ });
55
+ Object.defineProperty(HexagonalGridLocator.prototype, "sizeY", {
56
+ /**
57
+ * Vertical size of a hexagon
58
+ */
59
+ get: function () {
60
+ return typeof this.size === 'number' ? this.size : this.size.y;
61
+ },
62
+ enumerable: false,
63
+ configurable: true
64
+ });
65
+ /**
66
+ * Override if you need dynamic {@link boundaries}.
67
+ * @param _location The location to consider
68
+ * @param _context Context of the game
69
+ * @return current grid boundaries
70
+ */
71
+ HexagonalGridLocator.prototype.getBoundaries = function (_location, _context) {
72
+ return this.boundaries;
73
+ };
74
+ /**
75
+ * Get the delta X and Y coordinates to apply to place some area given its boundaries.
76
+ * @param boundaries Boundaries of the location to place
77
+ * @return X and Y delta to apply
78
+ */
79
+ HexagonalGridLocator.prototype.getAreaDelta = function (boundaries) {
80
+ var _a = boundaries.xMin, xMin = _a === void 0 ? 0 : _a, _b = boundaries.xMax, xMax = _b === void 0 ? 0 : _b, _c = boundaries.yMin, yMin = _c === void 0 ? 0 : _c, _d = boundaries.yMax, yMax = _d === void 0 ? 0 : _d;
81
+ switch (this.coordinatesSystem) {
82
+ case rules_api_1.HexGridSystem.Axial: {
83
+ throw new Error('Axial HexGridSystem is not yet implemented');
84
+ }
85
+ case rules_api_1.HexGridSystem.OddQ: {
86
+ var deltaX = (xMin + xMax) / 2;
87
+ var deltaY = ((xMin !== xMax ? 0.5 : xMin % 2 === 0 ? 0 : 1) + yMin + yMax) / 2;
88
+ return { x: deltaX * 3 / 2 * this.sizeX, y: deltaY * Math.sqrt(3) * this.sizeY };
89
+ }
90
+ case rules_api_1.HexGridSystem.EvenQ: {
91
+ var deltaX = (xMin + xMax) / 2;
92
+ var deltaY = ((xMin !== xMax ? -0.5 : xMin % 2 === 0 ? 0 : -1) + yMin + yMax) / 2;
93
+ return { x: deltaX * 3 / 2 * this.sizeX, y: deltaY * Math.sqrt(3) * this.sizeY };
94
+ }
95
+ case rules_api_1.HexGridSystem.OddR: {
96
+ throw new Error('OddR HexGridSystem is not yet implemented');
97
+ }
98
+ case rules_api_1.HexGridSystem.EvenR: {
99
+ throw new Error('EvenR HexGridSystem is not yet implemented');
100
+ }
101
+ }
102
+ };
103
+ /**
104
+ * Get the coordinates for the full grid area
105
+ * @param location Location to place
106
+ * @param context Context of the game
107
+ * @returns The coordinates of the area
108
+ */
109
+ HexagonalGridLocator.prototype.getAreaCoordinates = function (location, context) {
110
+ var _a = _super.prototype.getCoordinates.call(this, location, context), _b = _a.x, x = _b === void 0 ? 0 : _b, _c = _a.y, y = _c === void 0 ? 0 : _c, z = _a.z;
111
+ var _d = this.getAreaDelta(this.getBoundaries(location, context)), _e = _d.x, deltaX = _e === void 0 ? 0 : _e, _f = _d.y, deltaY = _f === void 0 ? 0 : _f;
112
+ return { x: x + deltaX, y: y + deltaY, z: z };
113
+ };
114
+ /**
115
+ * Get the coordinates of a location on the grid
116
+ * @param location Location to place
117
+ * @param context Context of the game
118
+ * @return the coordinates
119
+ */
120
+ HexagonalGridLocator.prototype.getLocationCoordinates = function (location, context) {
121
+ if (location.x === undefined && location.y === undefined) {
122
+ return this.getAreaCoordinates(location, context);
123
+ }
124
+ var _a = location.x, x = _a === void 0 ? 0 : _a, _b = location.y, y = _b === void 0 ? 0 : _b;
125
+ switch (this.coordinatesSystem) {
126
+ case rules_api_1.HexGridSystem.Axial: {
127
+ throw new Error('Axial HexGridSystem is not yet implemented');
128
+ }
129
+ case rules_api_1.HexGridSystem.OddQ: {
130
+ y += ((x % 2 + 2) % 2) / 2;
131
+ return {
132
+ x: x * 3 / 2 * this.sizeX,
133
+ y: y * Math.sqrt(3) * this.sizeY
134
+ };
135
+ }
136
+ case rules_api_1.HexGridSystem.EvenQ: {
137
+ y -= ((x % 2 + 2) % 2) / 2;
138
+ return {
139
+ x: x * 3 / 2 * this.sizeX,
140
+ y: y * Math.sqrt(3) * this.sizeY
141
+ };
142
+ }
143
+ case rules_api_1.HexGridSystem.OddR: {
144
+ throw new Error('OddR HexGridSystem is not yet implemented');
145
+ }
146
+ case rules_api_1.HexGridSystem.EvenR: {
147
+ throw new Error('EvenR HexGridSystem is not yet implemented');
148
+ }
149
+ }
150
+ };
151
+ /**
152
+ * Get the coordinates of an item on the grid. If the item is a Polyhex, the shape will be use to center the origin coordinates of the item on the
153
+ * correct grid location.
154
+ * @param item Item to place
155
+ * @param context Context of the game
156
+ * @return the coordinates of the item
157
+ */
158
+ HexagonalGridLocator.prototype.getItemCoordinates = function (item, context) {
159
+ var _this = this;
160
+ var _a, _b, _c, _d;
161
+ var description = context.material[context.type];
162
+ if (description && (0, components_1.isPolyhexDescription)(description)) {
163
+ var shape = description.getPolyhexShape(item, context).map(function (hex) {
164
+ return (0, rules_api_1.hexFromAxial)((0, rules_api_1.hexRotate)((0, rules_api_1.hexToAxial)(hex, description.coordinatesSystem), item.location.rotation), _this.coordinatesSystem);
165
+ });
166
+ var xMin = (_a = (0, minBy_1.default)(shape, 'x')) === null || _a === void 0 ? void 0 : _a.x, xMax = (_b = (0, maxBy_1.default)(shape, 'x')) === null || _b === void 0 ? void 0 : _b.x, yMin = (_c = (0, minBy_1.default)(shape, 'y')) === null || _c === void 0 ? void 0 : _c.y, yMax = (_d = (0, maxBy_1.default)(shape, 'y')) === null || _d === void 0 ? void 0 : _d.y;
167
+ var _e = _super.prototype.getItemCoordinates.call(this, item, context), _f = _e.x, x = _f === void 0 ? 0 : _f, _g = _e.y, y = _g === void 0 ? 0 : _g, z = _e.z;
168
+ var _h = this.getAreaDelta({ xMin: xMin, xMax: xMax, yMin: yMin, yMax: yMax }), _j = _h.x, deltaX = _j === void 0 ? 0 : _j, _k = _h.y, deltaY = _k === void 0 ? 0 : _k;
169
+ return { x: x + deltaX, y: y + deltaY, z: z };
170
+ }
171
+ return _super.prototype.getItemCoordinates.call(this, item, context);
172
+ };
173
+ /**
174
+ * Rotate the item. On a hexagonal grid, by default the item's rotation is multiplied by 60 degrees.
175
+ * @param item Item to rotate
176
+ * @param _context Context of the item
177
+ * @return the item's rotation in degrees
178
+ */
179
+ HexagonalGridLocator.prototype.getItemRotateZ = function (item, _context) {
180
+ var _a;
181
+ return ((_a = item.location.rotation) !== null && _a !== void 0 ? _a : 0) * 60;
182
+ };
183
+ /**
184
+ * Returns the drop locations for current dragged item. The hexagonal grid must be one simple drop location.
185
+ */
186
+ HexagonalGridLocator.prototype.getDropLocations = function (moves, _context) {
187
+ return (0, uniqWith_1.default)(moves.map(function (move) { return (0, omit_1.default)(move.location, ['x', 'y', 'z', 'rotation']); }), isEqual_1.default);
188
+ };
189
+ /**
190
+ * Generate automatically a {@link HexGridDropAreaDescription} based on the grid boundaries
191
+ */
192
+ HexagonalGridLocator.prototype.getLocationDescription = function (location, context) {
193
+ if (this.locationDescription)
194
+ return this.locationDescription;
195
+ var _a = this.getBoundaries(location, context), _b = _a.xMin, xMin = _b === void 0 ? 0 : _b, _c = _a.xMax, xMax = _c === void 0 ? 0 : _c, _d = _a.yMin, yMin = _d === void 0 ? 0 : _d, _e = _a.yMax, yMax = _e === void 0 ? 0 : _e;
196
+ var borderRadius = this.sizeX / 3;
197
+ switch (this.coordinatesSystem) {
198
+ case rules_api_1.HexGridSystem.Axial: {
199
+ throw new Error('Axial HexGridSystem is not yet implemented');
200
+ }
201
+ case rules_api_1.HexGridSystem.OddQ:
202
+ case rules_api_1.HexGridSystem.EvenQ:
203
+ return new components_1.HexGridDropAreaDescription({
204
+ width: (xMax - xMin + 1) * 3 / 2 * this.sizeX,
205
+ height: (yMax - yMin + 1) * Math.sqrt(3) * this.sizeY,
206
+ borderRadius: borderRadius
207
+ });
208
+ case rules_api_1.HexGridSystem.OddR: {
209
+ throw new Error('OddR HexGridSystem is not yet implemented');
210
+ }
211
+ case rules_api_1.HexGridSystem.EvenR: {
212
+ throw new Error('EvenR HexGridSystem is not yet implemented');
213
+ }
214
+ }
215
+ };
216
+ return HexagonalGridLocator;
217
+ }(Locator_1.Locator));
218
+ exports.HexagonalGridLocator = HexagonalGridLocator;
219
+ //# sourceMappingURL=HexagonalGridLocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HexagonalGridLocator.js","sourceRoot":"","sources":["../../src/locators/HexagonalGridLocator.ts"],"names":[],"mappings":"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"}
@@ -106,9 +106,7 @@ var ListLocator = /** @class */ (function (_super) {
106
106
  };
107
107
  ListLocator.prototype.generateLocationDescriptionFromDraggedItem = function (location, context) {
108
108
  var _a, _b, _c, _d;
109
- var item = context.rules.material(context.type).getItem(context.index);
110
- if (!item)
111
- return;
109
+ var item = (0, Locator_1.getItemFromContext)(context);
112
110
  var _e = (_b = (_a = context.material[context.type]) === null || _a === void 0 ? void 0 : _a.getSize(item.id)) !== null && _b !== void 0 ? _b : {}, _f = _e.width, width = _f === void 0 ? 0 : _f, _g = _e.height, height = _g === void 0 ? 0 : _g;
113
111
  var borderRadius = (_d = (_c = context.material[context.type]) === null || _c === void 0 ? void 0 : _c.getBorderRadius(item.id)) !== null && _d !== void 0 ? _d : 0;
114
112
  if (this.getLocationIndex(location, context) !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":"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"}